{"id":19992646,"url":"https://github.com/toolgood/ToolGood.Algorithm","last_synced_at":"2025-05-04T11:31:40.483Z","repository":{"id":41284320,"uuid":"69866985","full_name":"toolgood/ToolGood.Algorithm","owner":"toolgood","description":"ToolGood.Algorithm is a powerful, lightweight, Excel formula compatible algorithm library aimed at improving developers’ productivity in different business scenes.  ToolGood.Algorithm是一个功能强大、轻量级、兼容Excel公式的算法类库，旨在提高开发人员在不同业务场景中的生产力。","archived":false,"fork":false,"pushed_at":"2025-04-05T14:53:41.000Z","size":63163,"stargazers_count":110,"open_issues_count":0,"forks_count":37,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-05-02T16:04:34.290Z","etag":null,"topics":["algorithm","arithmetic","dotnet","excel","excel-expressions","expression","formula","formula-grammar","java","script"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/toolgood.png","metadata":{"files":{"readme":"README-EN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-10-03T12:06:12.000Z","updated_at":"2025-04-05T14:53:45.000Z","dependencies_parsed_at":"2024-04-15T02:31:03.481Z","dependency_job_id":"b1c73fb0-bf31-4a26-8068-9099ef2ca87c","html_url":"https://github.com/toolgood/ToolGood.Algorithm","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolgood%2FToolGood.Algorithm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolgood%2FToolGood.Algorithm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolgood%2FToolGood.Algorithm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toolgood%2FToolGood.Algorithm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toolgood","download_url":"https://codeload.github.com/toolgood/ToolGood.Algorithm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252329568,"owners_count":21730637,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","arithmetic","dotnet","excel","excel-expressions","expression","formula","formula-grammar","java","script"],"created_at":"2024-11-13T04:52:15.420Z","updated_at":"2025-05-04T11:31:35.474Z","avatar_url":"https://github.com/toolgood.png","language":"C#","readme":"ToolGood.Algorithm\n===================\n[中文文档](README.md)\n\nToolGood.Algorithm is a powerful, lightweight, `Excel formula` compatible algorithm library aimed at improving developers’ productivity in different business scenes. \n\n\n**Applicable scenarios:** Code and algorithm are separated to avoid forced project upgrade \n\n1）Uncertain algorithm at the beginning of the project; \n\n2）Algorithms that are frequently changed during project maintenance; \n\n3）Algorithms in financial data and statistical data (Note: Some formulas use the `double` type, and it is recommended to use `fen` as the unit); \n\n4）The report is exported, the data source uses the stored procedure, and the algorithm is set in the Word document. Example https://github.com/toolgood/ToolGood.WordTemplate \n\n5）Rule engines, such as: https://github.com/toolgood/ToolGood.FlowVision\n\n\n## Quick start\n``` csharp\n    AlgorithmEngine engine = new AlgorithmEngine();\n    double a=0.0;\n    if (engine.Parse(\"1+2\")) {\n        var o = engine.Evaluate();\n        a=o.NumberValue;\n    }\n    var b = engine.TryEvaluate(\"1=1 \u0026\u0026 1\u003c2 and 7-8\u003e1\", 0);// Support(支持) \u0026\u0026 || and or \n    var c = engine.TryEvaluate(\"2+3\", 0);\n    var q = engine.TryEvaluate(\"-7 \u003c -2 ?1 : 2\", 0);\n    var e = engine.TryEvaluate(\"count(array(1, 2, 3, 4))\", 0);//{} represents array, return: 4 {}代表数组, 返回:4\n    var s = engine.TryEvaluate(\"'aa'\u0026'bb'\", \"\"); //String connection, return: AABB 字符串连接, 返回:aabb\n    var r = engine.TryEvaluate(\"(1=1)*9+2\", 0); //Return: 11 返回:11\n    var d = engine.TryEvaluate(\"'2016-1-1'+1\", DateTime.MinValue); //Return date: 2016-1-2 返回日期:2016-1-2\n    var t = engine.TryEvaluate(\"'2016-1-1'+9*'1:0'\", DateTime.MinValue);//Return datetime:2016-1-1 9:0  返回日期:2016-1-1 9:0\n    var j = engine.TryEvaluate(\"json('{\\\"Name\\\":\\\"William Shakespeare\\\", \\\"Age\\\":51, \\\"Birthday\\\":\\\"04/26/1564 00:00:00\\\"}').Age\", null);//Return 51 返回51\n    var k = engine.TryEvaluate(\"json('{\\\"Name\\\":\\\"William Shakespeare   \\\", \\\"Age\\\":51, \\\"Birthday\\\":\\\"04/26/1564 00:00:00\\\"}')[Name].Trim()\", null);//Return to \"William Shakespeare\"  返回\"William Shakespeare\" (不带空格)\n    var l = engine.TryEvaluate(\"json('{\\\"Name1\\\":\\\"William Shakespeare \\\", \\\"Age\\\":51, \\\"Birthday\\\":\\\"04/26/1564 00:00:00\\\"}')['Name'\u0026 1].Trim().substring(2, 3)\", null); ;//Return \"ill\"  返回\"ill\"\n    var n = engine.TryEvaluate(\"{Name:\\\"William Shakespeare\\\", Age:51, Birthday:\\\"04/26/1564 00:00:00\\\"}.Age\", null);//Return 51 返回51\n    var m = engine.TryEvaluate(\"{1,2,3,4,5,6}.has(13)\", true);//Return false 返回false\n\n```\nConstants`pi`, `e`, `true`, `false`are supported.\n\nThe value is converted to bool, non-zero is true and zero is false.\nString to bool, ` 0`and`FALSE` is false, `1`and`TRUE` is true. Case insensitive.\n\nBool to value, false is`0`, true is`1`.\nBool to string, false to`FALSE`, true to`TRUE`.\n\n\nThe default index is`excel index`. If you want to use c# index, please set`UseExcelIndex`to`false`.\n\n\nChinese symbols are automatically converted into English symbols: `brackets`, `commas`, `quotation marks`, `double quotation marks`，`addition`,`subtraction`, `multiplication`, `division` , `equal sign`.\n\n\nNote: Use `\u0026` for string concatenation. \n\n\nNote: `find` is an Excel formula , find (the string to be searched, the string to be searched [, start position]) \n\n## Custom parameters\n``` csharp\n    //Define cylinder information  定义圆柱信息 \n    public class Cylinder : AlgorithmEngine\n    {\n        private int _radius;\n        private int _height;\n        public Cylinder(int radius, int height)\n        {\n            _radius = radius;\n            _height = height;\n        }\n\n        protected override Operand GetParameter(string parameter)\n        {\n            if (parameter == \"半径\")\n            {\n                return Operand.Create(_radius);\n            }\n            if (parameter == \"直径\")\n            {\n                return Operand.Create(_radius * 2);\n            }\n            if (parameter == \"高\")\n            {\n                return Operand.Create(_height);\n            }\n            return base.GetParameter(parameter);\n        }\n    }\n    //Call method  调用方法\n    Cylinder c = new Cylinder(3, 10);\n    c.TryEvaluate(\"[半径]*[半径]*pi()\", 0.0);      //Round bottom area  圆底面积\n    c.TryEvaluate(\"[直径]*pi()\", 0.0);            //The length of the circle  圆的长\n    c.TryEvaluate(\"[半径]*[半径]*pi()*[高]\", 0.0); //Volume of circle 圆的体积\n    c.TryEvaluate(\"['半径']*[半径]*pi()*[高]\", 0.0); //Volume of circle 圆的体积\n    c.EvaluateFormula(\"'圆'-[半径]-高\", '-'); // Return: 圆-3-10\n    c.GetSimplifiedFormula(\"半径*if(半径\u003e2, 1+4, 3)\"); // Return: 3 * 5\n```\nParameter definitions, such as`[parameter name]`, `【parameter name】` , `#parameter name#` , `@parameterName`.\n\nNote: You can also use `AddParameter`, `AddParameterFromJson` to add methods, and use `DiyFunction`+= to customize functions. \n\nNote 2: use `AlgorithmEngineHelper.GetDiyNames` get `parameter name` and `custom function name`.\n\n\n## Custom parameters\n``` csharp\n    var helper = new ToolGood.Algorithm.AlgorithmEngineHelper();\n    helper.IsKeywords(\"false\"); // return true\n    helper.IsKeywords(\"true\"); // return true\n    helper.IsKeywords(\"mysql\"); // return false\n\n    DiyNameInfo p5 = helper.GetDiyNames(\"ddd(d1, 22)\");\n    Assert.AreEqual(\"ddd\", p5.Functions[0]);\n    Assert.AreEqual(\"d1\", p5.Parameters[0]);\n\n```\n\n## Support Unit\n\nStandard units can be set: `DistanceUnit` (default:`m`), `AreaUnit`(default:`m2`), `VolumeUnit`(default:`m3`), `MassUnit`(default:`kg`).\n\nNote: When calculating the formula, first convert the quantity with units into standard units, and then perform numerical calculations.\n\n``` csharp\n    AlgorithmEngine engine = new AlgorithmEngine();\n    bool a = engine.TryEvaluate(\"1=1m\", false); // return true\n    bool b = engine.TryEvaluate(\"1=1m2\", false); // return true\n    bool c = engine.TryEvaluate(\"1=1m3\", false); // return true\n    bool d = engine.TryEvaluate(\"1=1kg\", false); // return true\n\n    // Unit Conversion 单位转化\n    var num = AlgorithmEngineHelper.UnitConversion(1M,\"米\",\"千米\"); \n\n    //  Example of not throwing mistakes  不抛错例子\n    bool error = engine.TryEvaluate(\"1m=1m2\", false); // return true\n```\n\n\n## Excel Formula\n\nFunctions: `logical functions`, `mathematics and trigonometric functions`, `text functions`, `statistical functions`, `date and time functions` \n\nNote: Function names are not case sensitive. Parameters with square brackets can be omitted. The return value of the example is approximate. \n\nNote 2: The function name with ★ indicates that the first parameter can be prefixed, such as `(-1).ISTEXT()` \n\nNote 3: The function name with ▲ means that it is affected by `Excel Index`, \n\n#### Logical function\n\u003ctable\u003e\n    \u003ctr\u003e\u003ctd\u003efunction name\u003c/td\u003e\u003ctd\u003edescription\u003c/td\u003e\u003ctd\u003eExample\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eIF\u003c/td\u003e\u003ctd\u003eif(condition, trueValue[, falseValue])\u003cbr\u003eExecute the judgment and return different results according to the true or false of the logical calculation.\u003c/td\u003e\n        \u003ctd\u003eif(1=1, 1, 2) \u003cbr\u003e\u003e\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eifError\u003c/td\u003e\u003ctd\u003eifError(condition, trueValue[, falseValue])\u003cbr\u003eIf the formula calculates incorrectly, the value you specify is returned; otherwise, the formula result is returned.\u003c/td\u003e\n        \u003ctd\u003eifError(1/0, 1, 2) \u003cbr\u003e\u003e\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eisError ★\u003c/td\u003e\n        \u003ctd\u003e\n        isError(value)\u003cbr\u003eTo determine whether there is an error, return TRUE or FALSE\n        isError(value, replace)\u003cbr\u003eIf there is an error, return the replacement value, otherwise return the original value\n        \u003c/td\u003e\n        \u003ctd\u003eisError(1) \u003cbr\u003e\u003e\u003efalse\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eisNull ★\u003c/td\u003e\n        \u003ctd\u003e\n        isNull(value)\u003cbr\u003eDetermine whether it is null or return TRUE or FALSE\n        isNull(value, replace)\u003cbr\u003eIf null, return the replacement value, otherwise return the original value\n        \u003c/td\u003e\n        \u003ctd\u003eisNull(null) \u003cbr\u003e\u003e\u003etrue\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eisNullOrError ★\u003c/td\u003e\n        \u003ctd\u003e\n        isNullOrError(value)\u003cbr\u003eTo determine whether it is null or error, return TRUE or FALSE\n        isNullOrError(value, replace)\u003cbr\u003eIf it is null or wrong, return the replacement value, otherwise return the original value\n        \u003c/td\u003e\n        \u003ctd\u003eisNullOrError(null) \u003cbr\u003e\u003e\u003etrue\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eisNumber ★\u003c/td\u003e\u003ctd\u003eisNumber(value)\u003cbr\u003eDetermine whether it is a numeric value, and return TRUE or FALSE\u003c/td\u003e\n        \u003ctd\u003eisNumber(1) \u003cbr\u003e\u003e\u003etrue\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eisText ★\u003c/td\u003e\u003ctd\u003eisText(value)\u003cbr\u003eDetermine whether it is a text and return TRUE or FALSE\u003c/td\u003e\n        \u003ctd\u003eisText('1') \u003cbr\u003e\u003e\u003etrue \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eIsNonText ★\u003c/td\u003e\u003ctd\u003eIsNonText(value)\u003cbr\u003eDetermine whether it is not a text and return TRUE or FALSE\u003c/td\u003e\n        \u003ctd\u003eIsNonText('1') \u003cbr\u003e\u003e\u003efalse \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eIsLogical ★\u003c/td\u003e\u003ctd\u003eIsLogical(value)\u003cbr\u003eDetermine whether it is a logical value and return TRUE or FALSE\u003c/td\u003e\n        \u003ctd\u003eIsLogical('1') \u003cbr\u003e\u003e\u003efalse \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eIsEven ★\u003c/td\u003e\u003ctd\u003eIsEven(value)\u003cbr\u003eIf the value is even, return TRUE or FALSE\u003c/td\u003e\n        \u003ctd\u003eIsEven('1') \u003cbr\u003e\u003e\u003efalse \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eIsOdd ★\u003c/td\u003e\u003ctd\u003eIsOdd(value)\u003cbr\u003eIf the value is odd, return TRUE or FALSE\u003c/td\u003e\n        \u003ctd\u003eIsOdd('1') \u003cbr\u003e\u003e\u003etrue \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAND\u003c/td\u003e\u003ctd\u003eand(logic1, ...)\u003cbr\u003eIf all parameters are true, return true. If there is an error, report it first\u003c/td\u003e\n        \u003ctd\u003eand(1, 2=2) \u003cbr\u003e\u003e\u003etrue\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eOR\u003c/td\u003e\u003ctd\u003eor(logic1, ...)\u003cbr\u003eIf any parameter is TRUE, return TRUE. If there is an error, report it first\u003c/td\u003e\n        \u003ctd\u003eor(1, 2=3) \u003cbr\u003e\u003e\u003etrue\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eNOT\u003c/td\u003e\u003ctd\u003enot(logic)\u003cbr\u003eNegate the logical value of a parameter\u003c/td\u003e\n        \u003ctd\u003eNOT(true()) \u003cbr\u003e\u003e\u003efalse\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTRUE\u003c/td\u003e\u003ctd\u003etrue()\u003cbr\u003eReturn TRUE\u003c/td\u003e\n        \u003ctd\u003etrue() \u003cbr\u003e\u003e\u003etrue\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eFALSE\u003c/td\u003e\u003ctd\u003efalse()\u003cbr\u003eReturn FALSE\u003c/td\u003e\n        \u003ctd\u003efalse() \u003cbr\u003e\u003e\u003efalse\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Mathematics and Trigonometric Functions\n\u003ctable\u003e\n    \u003ctr\u003e\u003ctd\u003eclassification\u003c/td\u003e\u003ctd\u003efunction name\u003c/td\u003e\u003ctd\u003edescription\u003c/td\u003e\u003ctd\u003eExample\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"14\"\u003ebasic mathematics\u003c/td\u003e\n        \u003ctd\u003eE\u003c/td\u003e\u003ctd\u003ee()\u003cbr\u003eReturn e value\u003c/td\u003e\n        \u003ctd\u003eE() \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePI\u003c/td\u003e\u003ctd\u003epi()\u003cbr\u003eReturn PI value\u003c/td\u003e\n        \u003ctd\u003epi() \u003cbr\u003e\u003e\u003e3.141592654\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eabs\u003c/td\u003e\u003ctd\u003eabs(number)\u003cbr\u003eReturns the absolute value of a numerical value\u003c/td\u003e\n        \u003ctd\u003eabs(-1) \u003cbr\u003e\u003e\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eQUOTIENT\u003c/td\u003e\u003ctd\u003equotient(number, dividend)\u003cbr\u003eReturns the integer portion of the quotient, which can be used to round off the fractional portion of the quotient.\u003c/td\u003e\n        \u003ctd\u003eQUOTIENT(7, 3) \u003cbr\u003e\u003e\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003emod\u003c/td\u003e\u003ctd\u003emod(number, dividend)\u003cbr\u003eReturns the remainder of the division of two numbers\u003c/td\u003e\n        \u003ctd\u003eMOD(7, 3) \u003cbr\u003e\u003e\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSIGN\u003c/td\u003e\u003ctd\u003esign(number)\u003cbr\u003eReturns the sign of a numerical value. Returns 1 when the value is positive, 0 when it is zero, and -1 when it is negative.\u003c/td\u003e\n        \u003ctd\u003eSIGN(-9) \u003cbr\u003e\u003e\u003e-1\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n        \u003ctd\u003eSQRT\u003c/td\u003e\u003ctd\u003esqrt(number)\u003cbr\u003eReturns the positive square root\u003c/td\u003e\n        \u003ctd\u003eSQRT(9) \u003cbr\u003e\u003e\u003e3\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTRUNC\u003c/td\u003e\u003ctd\u003etrunc(number)\u003cbr\u003eTruncate the value\u003c/td\u003e\n        \u003ctd\u003eTRUNC(9.222) \u003cbr\u003e\u003e\u003e9\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eint ★\u003c/td\u003e\u003ctd\u003eint(number)\u003cbr\u003eRounds the value down to the nearest integer.\u003c/td\u003e\n        \u003ctd\u003eint(9.222) \u003cbr\u003e\u003e\u003e9\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003egcd\u003c/td\u003e\u003ctd\u003egcd(number, ...)\u003cbr\u003eReturns the maximum common divisor\u003c/td\u003e\n        \u003ctd\u003eGCD(3, 5, 7) \u003cbr\u003e\u003e\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eLCM\u003c/td\u003e\u003ctd\u003elcm(number, ...)\u003cbr\u003eReturns the least common multiple of an integer parameter\u003c/td\u003e\n        \u003ctd\u003eLCM(3, 5, 7) \u003cbr\u003e\u003e\u003e105\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ecombin\u003c/td\u003e\u003ctd\u003ecombin(tatal, number)\u003cbr\u003eCalculate the number of combinations to extract several objects from a given number of object sets\u003c/td\u003e\n        \u003ctd\u003ecombin(10, 2) \u003cbr\u003e\u003e\u003e45\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePERMUT\u003c/td\u003e\u003ctd\u003epermut(tatal, number)\u003cbr\u003eReturns the ranking of several objects selected from a given number of object collections\u003c/td\u003e\n        \u003ctd\u003ePERMUT(10, 2) \u003cbr\u003e\u003e\u003e990\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eFIXED\u003c/td\u003e\u003ctd\u003efixed(number[, decimalDigit[, hasComma]])\u003cbr\u003eFormat numeric values to text with fixed decimal places\u003c/td\u003e\n        \u003ctd\u003eFIXED(4567.89, 1) \u003cbr\u003e\u003e\u003e4, 567.9\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003ctd rowspan=\"15\"\u003eTriangulation function\u003c/td\u003e\n        \u003ctd\u003edegrees\u003c/td\u003e\u003ctd\u003edegrees(radian)\u003cbr\u003eConvert radians to degrees\u003c/td\u003e\n        \u003ctd\u003edegrees(pi()) \u003cbr\u003e\u003e\u003e180\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eRADIANS\u003c/td\u003e\u003ctd\u003eradians(degree)\u003cbr\u003eConvert degrees to radians\u003c/td\u003e\n        \u003ctd\u003eRADIANS(180) \u003cbr\u003e\u003e\u003e3.141592654\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ecos\u003c/td\u003e\u003ctd\u003ecos(radian)\u003cbr\u003eReturns the cosine of a numerical value\u003c/td\u003e\n        \u003ctd\u003ecos(1) \u003cbr\u003e\u003e\u003e0.540302305868\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ecosh\u003c/td\u003e\u003ctd\u003ecosh(radian)\u003cbr\u003eReturns the hyperbolic cosine of a value\u003c/td\u003e\n        \u003ctd\u003ecosh(1) \u003cbr\u003e\u003e\u003e1.54308063481\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSIN\u003c/td\u003e\u003ctd\u003esin(radian)\u003cbr\u003eReturns the sine of a given angle\u003c/td\u003e\n        \u003ctd\u003esin(1) \u003cbr\u003e\u003e\u003e0.84147098480\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSINH\u003c/td\u003e\u003ctd\u003esinh(radian)\u003cbr\u003eReturns the hyperbolic sine of a numeric value\u003c/td\u003e\n        \u003ctd\u003esinh(1) \u003cbr\u003e\u003e\u003e1.1752011936\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTAN\u003c/td\u003e\u003ctd\u003etan(radian)\u003cbr\u003eReturns the tangent of a numerical value\u003c/td\u003e\n        \u003ctd\u003etan(1) \u003cbr\u003e\u003e\u003e1.55740772465\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTANH\u003c/td\u003e\u003ctd\u003etanh(radian)\u003cbr\u003eReturns the hyperbolic tangent of a value\u003c/td\u003e\n        \u003ctd\u003etanh(1) \u003cbr\u003e\u003e\u003e0.761594155955\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eacos\u003c/td\u003e\u003ctd\u003eacos(number)\u003cbr\u003eReturns the inverse cosine of a numeric value\u003c/td\u003e\n        \u003ctd\u003eacos(0.5) \u003cbr\u003e\u003e\u003e1.04719755119\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eacosh\u003c/td\u003e\u003ctd\u003eacosh(number)\u003cbr\u003eReturns the inverse hyperbolic cosine of a value\u003c/td\u003e\n        \u003ctd\u003eacosh(1.5) \u003cbr\u003e\u003e\u003e0.962423650119\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003easin\u003c/td\u003e\u003ctd\u003easin(number)\u003cbr\u003eReturns the arcsine of a value\u003c/td\u003e\n        \u003ctd\u003easin(0.5) \u003cbr\u003e\u003e\u003e0.523598775598\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003easinh\u003c/td\u003e\u003ctd\u003easinh(number)\u003cbr\u003eReturns the inverse hyperbolic sine of a value.\u003c/td\u003e\n        \u003ctd\u003easinh(1.5) \u003cbr\u003e\u003e\u003e1.1947632172\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eatan\u003c/td\u003e\u003ctd\u003eatan(number)\u003cbr\u003eReturns the inverse tangent of a value\u003c/td\u003e\n        \u003ctd\u003eatan(1) \u003cbr\u003e\u003e\u003e0.785398163397\u003c/td\u003e\n    \u003c/tr\u003e\n   \u003ctr\u003e\n        \u003ctd\u003eatanh\u003c/td\u003e\u003ctd\u003eatanh(number)\u003cbr\u003eReturns the inverse hyperbolic tangent of the parameter\u003c/td\u003e\n        \u003ctd\u003eatanh(1) \u003cbr\u003e\u003e\u003e0.549306144334\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eatan2\u003c/td\u003e\u003ctd\u003eatan2(number, number)\u003cbr\u003eReturn anti-tangent from X and Y coordinates\u003c/td\u003e\n        \u003ctd\u003eatan2(1, 2) \u003cbr\u003e\u003e\u003e1.10714871779\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"8\"\u003eRound off\u003c/td\u003e\n        \u003ctd\u003eROUND\u003c/td\u003e\u003ctd\u003eround(number, decimalDigit)\u003cbr\u003eReturns the value of a value rounded by the specified number of digits.\u003c/td\u003e\n        \u003ctd\u003eROUND(4.333, 2) \u003cbr\u003e\u003e\u003e4.33\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eroundDown\u003c/td\u003e\u003ctd\u003eroundDown(number, decimalDigit)\u003cbr\u003eClose to zero, rounding the value down (the direction in which the absolute value decreases).\u003c/td\u003e\n        \u003ctd\u003eroundDown(4.333, 2) \u003cbr\u003e\u003e\u003e4.33\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eroundUp\u003c/td\u003e\u003ctd\u003eroundUp(number, decimalDigit)\u003cbr\u003eAway from zero, round the value upward (the direction in which the absolute value increases).\u003c/td\u003e\n        \u003ctd\u003eroundUp(4.333, 2) \u003cbr\u003e\u003e\u003e4.34\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eCEILING\u003c/td\u003e\u003ctd\u003eceiling(number, roundingBase)\u003cbr\u003eRounding up (in the direction in which the absolute value increases) is a multiple of the nearest rounding base.\u003c/td\u003e\n        \u003ctd\u003eCEILING(4.333, 0.1) \u003cbr\u003e\u003e\u003e4.4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003efloor\u003c/td\u003e\u003ctd\u003efloor(number, roundingBase)\u003cbr\u003eRound down to a multiple of the nearest Significance.\u003c/td\u003e\n        \u003ctd\u003eFLOOR(4.333, 0.1) \u003cbr\u003e\u003e\u003e4.3\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eeven\u003c/td\u003e\u003ctd\u003eeven(number)\u003cbr\u003eReturns the nearest even number rounded in the direction of increasing the absolute value.\u003c/td\u003e\n        \u003ctd\u003eEVEN(3) \u003cbr\u003e\u003e\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eODD\u003c/td\u003e\u003ctd\u003eodd(number)\u003cbr\u003eRounds the value up to the nearest odd integer\u003c/td\u003e\n        \u003ctd\u003eODD(3.1) \u003cbr\u003e\u003e\u003e5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMROUND\u003c/td\u003e\u003ctd\u003emround(number, roundingBase)\u003cbr\u003eReturns a value rounded to the desired multiple\u003c/td\u003e\n        \u003ctd\u003eMROUND(13, 5) \u003cbr\u003e\u003e\u003e15\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"2\"\u003eRandom number\u003c/td\u003e\n        \u003ctd\u003eRAND\u003c/td\u003e\u003ctd\u003erand()\u003cbr\u003eReturns a random number between 0 and 1 \u003c/td\u003e\n        \u003ctd\u003eRAND() \u003cbr\u003e\u003e\u003e0.2\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003erandBetween\u003c/td\u003e\u003ctd\u003erandBetween(min, max)\u003cbr\u003eReturns a random integer greater than or equal to the specified minimum value and less than the specified maximum value.\u003c/td\u003e\n        \u003ctd\u003erandBetween(2, 44) \u003cbr\u003e\u003e\u003e9\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"11\"\u003ePower / logarithm / factorial\u003c/td\u003e\n        \u003ctd\u003efact\u003c/td\u003e\u003ctd\u003efact(number)\u003cbr\u003eReturns the factorial of a number, where the factorial of a number is equal to 1'2'3 *. * the number.\u003c/td\u003e\n        \u003ctd\u003eFACT(3) \u003cbr\u003e\u003e\u003e6\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003efactdouble\u003c/td\u003e\u003ctd\u003efactDouble(number)\u003cbr\u003eReturn the double factorial of the value\u003c/td\u003e\n        \u003ctd\u003efactDouble(10) \u003cbr\u003e\u003e\u003e3840\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePOWER\u003c/td\u003e\u003ctd\u003epower(number, power)\u003cbr\u003eThe power result of the return number\u003c/td\u003e\n        \u003ctd\u003ePOWER(10, 2) \u003cbr\u003e\u003e\u003e100\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eexp\u003c/td\u003e\u003ctd\u003eexp(power)\u003cbr\u003eReturns the power of the specified number of e\u003c/td\u003e\n        \u003ctd\u003eexp(2) \u003cbr\u003e\u003e\u003e7.389056099\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eln\u003c/td\u003e\u003ctd\u003eln(number)\u003cbr\u003eReturns the natural logarithm of the value\u003c/td\u003e\n        \u003ctd\u003eLN(4) \u003cbr\u003e\u003e\u003e1.386294361\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003elog\u003c/td\u003e\u003ctd\u003elog(number[, baseNumber])\u003cbr\u003eReturns the common logarithm of the value, such as omitting the base. The default is 10.\u003c/td\u003e\n        \u003ctd\u003eLOG(100, 10) \u003cbr\u003e\u003e\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eLOG10\u003c/td\u003e\u003ctd\u003elog10(number)\u003cbr\u003eReturns the 10 logarithm of the value\u003c/td\u003e\n        \u003ctd\u003eLOG10(100) \u003cbr\u003e\u003e\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMULTINOMIAL\u003c/td\u003e\u003ctd\u003emultinomial(number, ...)\u003cbr\u003eReturns the ratio of the factorial of the sum of parameters to the factorial product of each parameter\u003c/td\u003e\n        \u003ctd\u003eMULTINOMIAL(1, 2, 3) \u003cbr\u003e\u003e\u003e60\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePRODUCT\u003c/td\u003e\u003ctd\u003eproduct(number, ...)\u003cbr\u003eMultiplies all values given as parameters and returns the product value.\u003c/td\u003e\n        \u003ctd\u003ePRODUCT(1, 2, 3, 4) \u003cbr\u003e\u003e\u003e24\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSqrtPi\u003c/td\u003e\u003ctd\u003eSqrtPi(number)\u003cbr\u003eReturns the square root of the product of a number and PI\u003c/td\u003e\n        \u003ctd\u003eSqrtPi(3) \u003cbr\u003e\u003e\u003e3.069980124\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSUMSQ\u003c/td\u003e\u003ctd\u003esumQq(number, ...)\u003cbr\u003eReturns the sum of squares of parameters\u003c/td\u003e\n        \u003ctd\u003eSUMSQ(1, 2) \u003cbr\u003e\u003e\u003e5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"12\"\u003eTransformation\u003c/td\u003e\n        \u003ctd\u003eDEC2BIN ★\u003c/td\u003e\u003ctd\u003eDEC2BIN(number[, digit])\u003cbr\u003eDecimal to binary \u003c/td\u003e\n        \u003ctd\u003eDEC2BIN(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDEC2OCT ★\u003c/td\u003e\u003ctd\u003eDEC2OCT(number[, digit])\u003cbr\u003eDecimal to octal \u003c/td\u003e\n        \u003ctd\u003eDEC2OCT(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDEC2HEX ★\u003c/td\u003e\u003ctd\u003eDEC2HEX(number[, digit])\u003cbr\u003eConvert from decimal to hexadecimal \u003c/td\u003e\n        \u003ctd\u003eDEC2HEX(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eHEX2BIN ★\u003c/td\u003e\u003ctd\u003eHEX2BIN(number[, digit])\u003cbr\u003eHexadecimal to binary \u003c/td\u003e\n        \u003ctd\u003eHEX2BIN(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eHEX2OCT ★\u003c/td\u003e\u003ctd\u003eHEX2OCT(number[, digit])\u003cbr\u003eConvert hexadecimal to octal \u003c/td\u003e\n        \u003ctd\u003eHEX2OCT(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eHEX2DEC ★\u003c/td\u003e\u003ctd\u003eHEX2DEC(number)\u003cbr\u003eHexadecimal to decimal \u003c/td\u003e\n        \u003ctd\u003eHEX2DEC(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eOCT2BIN ★\u003c/td\u003e\u003ctd\u003eOCT2BIN(number[, digit])\u003cbr\u003eOctal to binary \u003c/td\u003e\n        \u003ctd\u003eOCT2BIN(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eOCT2DEC ★\u003c/td\u003e\u003ctd\u003eOCT2DEC(number)\u003cbr\u003eOctal to decimal \u003c/td\u003e\n        \u003ctd\u003eOCT2DEC(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eOCT2HEX ★\u003c/td\u003e\u003ctd\u003eOCT2HEX(number[, digit])\u003cbr\u003eOctal to hexadecimal \u003c/td\u003e\n        \u003ctd\u003eOCT2HEX(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eBIN2OCT ★\u003c/td\u003e\u003ctd\u003eBIN2OCT(number[, digit])\u003cbr\u003eBinary to octal \u003c/td\u003e\n        \u003ctd\u003eBIN2OCT(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eBIN2DEC ★\u003c/td\u003e\u003ctd\u003eBIN2DEC(number)\u003cbr\u003eBinary to decimal \u003c/td\u003e\n        \u003ctd\u003eBIN2DEC(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eBIN2HEX ★\u003c/td\u003e\u003ctd\u003eBIN2HEX(number[, digit])\u003cbr\u003eBinary to hexadecimal \u003c/td\u003e\n        \u003ctd\u003eBIN2HEX(100) \u003cbr\u003e\u003e\u003e \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Text function\n\u003ctable\u003e\n    \u003ctr\u003e\u003ctd\u003efunction name\u003c/td\u003e\u003ctd\u003edescription\u003c/td\u003e\u003ctd\u003eExample\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eASC ★\u003c/td\u003e\u003ctd\u003easc(text)\u003cbr\u003eChange the full-width letters in a string to half-width characters\u003c/td\u003e\n        \u003ctd\u003easc('ａｂｃＡＢＣ１２３') \u003cbr\u003e\u003e\u003eabcABC123\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eJIS ★\u003cbr\u003e WIDECHAR ★\u003c/td\u003e\u003ctd\u003ejis(text)\u003cbr\u003eChange half-width English characters in a string to full-width characters\u003c/td\u003e\n        \u003ctd\u003ejis('abcABC123') \u003cbr\u003e\u003e\u003eａｂｃＡＢＣ１２３\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eCHAR ★\u003c/td\u003e\u003ctd\u003eCHAR(number)\u003cbr\u003eReturns the character specified by the code value\u003c/td\u003e\n        \u003ctd\u003echar(49) \u003cbr\u003e\u003e\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eCLEAN ★\u003c/td\u003e\u003ctd\u003eclean(text)\u003cbr\u003eDelete all unprintable characters in the text\u003c/td\u003e\n        \u003ctd\u003eclean('\\r112\\t') \u003cbr\u003e\u003e\u003e112\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eCODE ★\u003c/td\u003e\u003ctd\u003ecode(text)\u003cbr\u003eReturns the numeric code of the first character in the text string\u003c/td\u003e\n        \u003ctd\u003eCODE(\"1\") \u003cbr\u003e\u003e\u003e49\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eCONCATENATE ★\u003c/td\u003e\u003ctd\u003econcatenate(text1, ...)\u003cbr\u003eMerge several text items into a single text item\u003c/td\u003e\n        \u003ctd\u003eCONCATENATE('tt', '11') \u003cbr\u003e\u003e\u003ett11\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eEXACT ★\u003c/td\u003e\u003ctd\u003eexact(text1, text2)\u003cbr\u003eCheck whether the two text values are exactly the same\u003c/td\u003e\n        \u003ctd\u003eEXACT(\"11\", \"22\") \u003cbr\u003e\u003e\u003efalse\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr style=\"color:red\"\u003e\n        \u003ctd\u003eFIND ★ ▲\u003c/td\u003e\u003ctd\u003efind(text, findText[, startIndex])\u003cbr\u003eFind another text value within one text value (case sensitive) \u003c/td\u003e\n        \u003ctd\u003eFIND(\"11\", \"12221122\") \u003cbr\u003e\u003e\u003e5\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eLEFT ★\u003c/td\u003e\u003ctd\u003eleft(text[, count])\u003cbr\u003eReturns the leftmost character of the text value\u003c/td\u003e\n        \u003ctd\u003eLEFT('123222', 3) \u003cbr\u003e\u003e\u003e123\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eLEN ★\u003c/td\u003e\u003ctd\u003elen(text)\u003cbr\u003eReturns the number of characters in a text string\u003c/td\u003e\n        \u003ctd\u003eLEN('123222') \u003cbr\u003e\u003e\u003e6\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMID ★  ▲\u003c/td\u003e\u003ctd\u003emid(text, startIndex, count)\u003cbr\u003eReturns a specific number of characters from a specified position in a text string\u003c/td\u003e\n        \u003ctd\u003eMID('ABCDEF', 2, 3) \u003cbr\u003e\u003e\u003eBCD\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePROPER ★\u003c/td\u003e\u003ctd\u003eproper(text)\u003cbr\u003eSet the first letter of each word in the text value to uppercase\u003c/td\u003e\n        \u003ctd\u003ePROPER('abc abc') \u003cbr\u003e\u003e\u003eAbc Abc\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eREPLACE ★  ▲\u003c/td\u003e\n        \u003ctd\u003ereplace(srcText, startIndex, count, newText)\u003cbr\u003e\n        replace(srcText, repalceText, newText)\u003cbr\u003e\n        Replace characters in text\u003c/td\u003e\n        \u003ctd\u003eREPLACE(\"abccd\", 2, 3, \"2\") \u003cbr\u003e\u003e\u003ea2d\u003cbr\u003e\n        REPLACE(\"abccd\", \"bc\", \"2\") \u003cbr\u003e\u003e\u003ea2cd\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eREPT ★\u003c/td\u003e\u003ctd\u003erept(text, times)\u003cbr\u003eRepeat the text a given number of times\u003c/td\u003e\n        \u003ctd\u003eREPT(\"q\", 3) \u003cbr\u003e\u003e\u003eqqq\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eRIGHT ★\u003c/td\u003e\u003ctd\u003eright(text[, count])\u003cbr\u003eReturns the rightmost character of the text value\u003c/td\u003e\n        \u003ctd\u003eRIGHT(\"123q\", 3) \u003cbr\u003e\u003e\u003e23q\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eRMB ★\u003c/td\u003e\u003ctd\u003eRMB(number)\u003cbr\u003eConvert numeric values to chinese uppercase numeric text\u003c/td\u003e\n        \u003ctd\u003eRMB(12.3) \u003cbr\u003e\u003e\u003e壹拾贰元叁角\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSEARCH ★ ▲\u003c/td\u003e\u003ctd\u003esearch(findText, text[, startIndex])\u003cbr\u003eFind another text value in one text value (case-insensitive)\u003c/td\u003e\n        \u003ctd\u003eSEARCH(\"aa\", \"abbAaddd\") \u003cbr\u003e\u003e\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSUBSTITUTE ★\u003c/td\u003e\u003ctd\u003esubstitute(text, srcText, newText[, index])\u003cbr\u003eReplace old text with new text in a text string\u003c/td\u003e\n        \u003ctd\u003eSUBSTITUTE(\"ababcc\", \"ab\", \"12\") \u003cbr\u003e\u003e\u003e1212cc\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eT ★\u003c/td\u003e\u003ctd\u003et(number)\u003cbr\u003eConvert parameters to text\u003c/td\u003e\n        \u003ctd\u003eT('123') \u003cbr\u003e\u003e\u003e123\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTEXT ★\u003c/td\u003e\u003ctd\u003etext(number, format)\u003cbr\u003eFormat numeric values and convert them to text\u003c/td\u003e\n        \u003ctd\u003eTEXT(123, \"0.00\") \u003cbr\u003e\u003e\u003e123.00\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTRIM ★\u003c/td\u003e\u003ctd\u003etrim(text)\u003cbr\u003eDelete spaces in text\u003c/td\u003e\n        \u003ctd\u003eTRIM(\" 123 123 \")\u003cbr\u003e\u003e\u003e123 123\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eLOWER ★\u003cbr\u003eTOLOWER ★\u003c/td\u003e\u003ctd\u003elower(text)\u003cbr\u003etolower(text)\u003cbr\u003eConvert text to lowercase\u003c/td\u003e\n        \u003ctd\u003eLOWER('ABC') \u003cbr\u003e\u003e\u003eabc\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eUPPER ★\u003cbr\u003eTOUPPER ★\u003c/td\u003e\u003ctd\u003eupper(text)\u003cbr\u003etoupper(text)\u003cbr\u003eConvert text to uppercase\u003c/td\u003e\n        \u003ctd\u003eUPPER(\"abc\") \u003cbr\u003e\u003e\u003eABC\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eVALUE ★\u003c/td\u003e\u003ctd\u003evalue(text)\u003cbr\u003eConvert text parameters to numeric values\u003c/td\u003e\n        \u003ctd\u003eVALUE(\"123\") \u003cbr\u003e\u003e\u003e123\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Date and time functions\n\u003ctable\u003e\n    \u003ctr\u003e\u003ctd\u003efunction name\u003c/td\u003e\u003ctd\u003edescription\u003c/td\u003e\u003ctd\u003eExample\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eNOW\u003c/td\u003e\u003ctd\u003enow()\u003cbr\u003eReturns the current date and time\u003c/td\u003e\n        \u003ctd\u003eNOW() \u003cbr\u003e\u003e\u003e2017-01-07 11:00:00\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTODAY\u003c/td\u003e\u003ctd\u003etoday()\u003cbr\u003eReturn to today's date\u003c/td\u003e\n        \u003ctd\u003eTODAY() \u003cbr\u003e\u003e\u003e2017-01-07\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDateValue ★\u003c/td\u003e\u003ctd\u003eDateValue(text)\u003cbr\u003eConvert a text format to a date\u003c/td\u003e\n        \u003ctd\u003eDateValue(\"2017-01-02\") \u003cbr\u003e\u003e\u003e2017-01-02\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTimeValue ★\u003c/td\u003e\u003ctd\u003eTimeValue(text)\u003cbr\u003eConvert text formatted time to date\u003c/td\u003e\n        \u003ctd\u003eTimeValue(\"12:12:12\") \u003cbr\u003e\u003e\u003e12:12:12\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDATE ★\u003c/td\u003e\u003ctd\u003edate(year, month, day[, hour[, minute[, second]]])\u003cbr\u003eReturns a specific date\u003c/td\u003e\n        \u003ctd\u003eDATE(2016, 1, 1) \u003cbr\u003e\u003e\u003e2016-01-01\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTIME ★\u003c/td\u003e\u003ctd\u003etime(hour, minute, second)\u003cbr\u003eReturns a specific time\u003c/td\u003e\n        \u003ctd\u003eTIME(12, 13, 14) \u003cbr\u003e\u003e\u003e12:13:14\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eYEAR ★\u003c/td\u003e\u003ctd\u003eyear(date)\u003cbr\u003eReturns year\u003c/td\u003e\n        \u003ctd\u003eYEAR(NOW()) \u003cbr\u003e\u003e\u003e2017\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMONTH ★\u003c/td\u003e\u003ctd\u003emonth(date)\u003cbr\u003eReturns month\u003c/td\u003e\n        \u003ctd\u003eMONTH(NOW()) \u003cbr\u003e\u003e\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDAY ★\u003c/td\u003e\u003ctd\u003eday(date)\u003cbr\u003eReturns day\u003c/td\u003e\n        \u003ctd\u003eDAY(NOW()) \u003cbr\u003e\u003e\u003e7\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eHOUR ★\u003c/td\u003e\u003ctd\u003ehour(date)\u003cbr\u003eReturns hour\u003c/td\u003e\n        \u003ctd\u003eHOUR(NOW()) \u003cbr\u003e\u003e\u003e11\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMINUTE ★\u003c/td\u003e\u003ctd\u003eminute(date)\u003cbr\u003eReturns minute\u003c/td\u003e\n        \u003ctd\u003eMINUTE(NOW()) \u003cbr\u003e\u003e\u003e12\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSECOND ★\u003c/td\u003e\u003ctd\u003esecond(date)\u003cbr\u003eReturns second\u003c/td\u003e\n        \u003ctd\u003eSECOND(NOW()) \u003cbr\u003e\u003e\u003e34\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eWEEKDAY ★\u003c/td\u003e\u003ctd\u003eWEEKDAY(date)\u003cbr\u003eReturns weekday\u003c/td\u003e\n        \u003ctd\u003eWEEKDAY(date(2017, 1, 7)) \u003cbr\u003e\u003e\u003e7\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003edateDIF\u003c/td\u003e\u003ctd\u003edateDif(startDate, endDate, type:Y/M/D/YD/MD/YM)\u003cbr\u003eReturns the number of days between two dates\u003c/td\u003e\n        \u003ctd\u003edateDIF(\"1975-1-30\", \"2017-1-7\", \"Y\") \u003cbr\u003e\u003e\u003e41\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDAYS360\u003c/td\u003e\u003ctd\u003edays360(startDate, endDate[, type:0/1])\u003cbr\u003eCalculate the number of days in a two-day period on the basis of 360 days a year\u003c/td\u003e\n        \u003ctd\u003eDAYS360('1975-1-30', '2017-1-7') \u003cbr\u003e\u003e\u003e15097\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eEDATE\u003c/td\u003e\u003ctd\u003eeDate(startDate, month)\u003cbr\u003eReturns the serial number used to represent the number of months before or after the start date\u003c/td\u003e\n        \u003ctd\u003eEDATE(\"2012-1-31\", 32) \u003cbr\u003e\u003e\u003e2014-09-30\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eEOMONTH\u003c/td\u003e\u003ctd\u003eeoMonth(startDate, month)\u003cbr\u003eReturns the serial number of the last day of the month before or after the specified number of months\u003c/td\u003e\n        \u003ctd\u003eEOMONTH(\"2012-2-1\", 32) \u003cbr\u003e\u003e\u003e2014-10-31\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003enetWorkdays\u003c/td\u003e\u003ctd\u003enetWorkdays(startDate, endDate[, holidays])\u003cbr\u003eReturns the total number of working days between two dates\u003c/td\u003e\n        \u003ctd\u003enetWorkdays(\"2012-1-1\", \"2013-1-1\") \u003cbr\u003e\u003e\u003e262\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eworkDay\u003c/td\u003e\u003ctd\u003eworkday(startDate, days[, holidays])\u003cbr\u003eReturns the serial number of the date before or after the specified number of working days\u003c/td\u003e\n        \u003ctd\u003eworkDay(\"2012-1-2\", 145) \u003cbr\u003e\u003e\u003e2012-07-23\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eWEEKNUM\u003c/td\u003e\u003ctd\u003eweekNum(date[, type：1/2])\u003cbr\u003eReturns week number\u003c/td\u003e\n        \u003ctd\u003eWEEKNUM(\"2016-1-3\") \u003cbr\u003e\u003e\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n##### Extension function\n\u003ctable\u003e\n    \u003ctr\u003e\u003ctd\u003efunction name\u003c/td\u003e\u003ctd\u003edescription\u003c/td\u003e\u003ctd\u003eExample\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAddYears ★\u003c/td\u003e\u003ctd\u003eAddYears(date, number)\u003cbr\u003eAdd Years\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eAddMonths ★\u003c/td\u003e\u003ctd\u003eAddMonths(date, number)\u003cbr\u003eAdd Months\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eAddDays ★\u003c/td\u003e\u003ctd\u003eAddDays(date, number)\u003cbr\u003eAdd Days\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAddHours ★\u003c/td\u003e\u003ctd\u003eAddHours(date, number)\u003cbr\u003eAdd Hours\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAddMinutes ★\u003c/td\u003e\u003ctd\u003eAddMinutes(date, number)\u003cbr\u003eAdd Minutes\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAddSeconds ★\u003c/td\u003e\u003ctd\u003eAddSeconds(date, number)\u003cbr\u003eAdd Seconds\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDateValue ★\u003c/td\u003e\u003ctd\u003eDateValue(value, number)\u003cbr\u003eConversion time\u003cbr\u003e\n        DateValue(text/number, 0) \u003cbr\u003eParse, automatically match to a date similar to the current date\u003cbr\u003e\n        DateValue(text, 1) \u003cbr\u003eConversion date, text format\u003cbr\u003e\n        DateValue(number, 2) \u003cbr\u003eConversion date, Excel value\u003cbr\u003e\n        DateValue(number, 3) \u003cbr\u003eConvert to date, timestamp (milliseconds)\u003cbr\u003e\n        DateValue(number, 4) \u003cbr\u003eConvert to date, timestamp (seconds)\u003cbr\u003e\n        \u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTimestamp ★\u003c/td\u003e\u003ctd\u003eTimestamp(date[, type:0/1])\u003cbr\u003eSwitch to timestamp. Default is millisecond.\u003cbr\u003e\n        Timestamp(date, 0) \u003cbr\u003eConvert to timestamp (milliseconds)\u003cbr\u003e\n        Timestamp(date, 1) \u003cbr\u003eConvert to timestamp (seconds)\u003cbr\u003e\n        \u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\nNote: The `UseLocalTime` attribute affects the conversion of `DateValue`/`Timestamp`. Set `true` to directly convert to local time.\n\n#### Statistical function\n\u003ctable\u003e\n    \u003ctr\u003e\u003ctd\u003efunction name\u003c/td\u003e\u003ctd\u003edescription\u003c/td\u003e\u003ctd\u003eExample\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMAX\u003c/td\u003e\u003ctd\u003emax(number, ...)\u003cbr\u003eReturns the maximum value in the parameter list\u003c/td\u003e\n        \u003ctd\u003emax(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e4\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMEDIAN\u003c/td\u003e\u003ctd\u003emedian(number, ...)\u003cbr\u003eReturns the median of a given value\u003c/td\u003e\n        \u003ctd\u003eMEDIAN(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMIN\u003c/td\u003e\u003ctd\u003emin(number, ...)\u003cbr\u003eReturns the minimum value in the parameter list\u003c/td\u003e\n        \u003ctd\u003eMIN(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eQUARTILE\u003c/td\u003e\u003ctd\u003equartile(number, quartile：0-4)\u003cbr\u003eReturns the quartile of the dataset\u003c/td\u003e\n        \u003ctd\u003eQUARTILE({1, 2, 3, 4, 2, 2, 1, 4}, 0) \u003cbr\u003e\u003e\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eMODE\u003c/td\u003e\u003ctd\u003emode(number, ...)\u003cbr\u003eReturns the number that occurs most frequently in the array\u003c/td\u003e\n        \u003ctd\u003eMODE(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eLARGE ▲\u003c/td\u003e\u003ctd\u003elarge(array, K)\u003cbr\u003eReturns the k largest value of the data set\u003c/td\u003e\n        \u003ctd\u003eLARGE({1, 2, 3, 4, 2, 2, 1, 4}, 3) \u003cbr\u003e\u003e\u003e3\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSMALL ▲\u003c/td\u003e\u003ctd\u003esmall(number, K)\u003cbr\u003eReturns the k-th minimum of the data set\u003c/td\u003e\n        \u003ctd\u003eSMALL({1, 2, 3, 4, 2, 2, 1, 4}, 3) \u003cbr\u003e\u003e\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePERCENTILE\u003c/td\u003e\u003ctd\u003epercentile(number, K)\u003cbr\u003eReturns the k percentile in the area\u003c/td\u003e\n        \u003ctd\u003ePERCENTILE({1, 2, 3, 4, 2, 2, 1, 4}, 0.4) \u003cbr\u003e\u003e\u003e2\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePERCENTRANK\u003c/td\u003e\u003ctd\u003epercentRank(number, K)\u003cbr\u003eReturns the percentage ranking of the values in the data set\u003c/td\u003e\n        \u003ctd\u003ePERCENTRANK({1, 2, 3, 4, 2, 2, 1, 4}, 3) \u003cbr\u003e\u003e\u003e0.714\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAVERAGE\u003c/td\u003e\u003ctd\u003eaverage(number, ...)\u003cbr\u003eReturns the average value of the parameter\u003c/td\u003e\n        \u003ctd\u003eAVERAGE(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e2.375\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eaverageIf\u003c/td\u003e\u003ctd\u003eaverageIf({number1, ...}, condition[, {number1, ...}])\u003cbr\u003eReturns the average value of the parameter\u003c/td\u003e\n        \u003ctd\u003eaverageIf({1, 2, 3, 4, 2, 2, 1, 4}, '\u003e1') \u003cbr\u003e\u003e\u003e2.833333333\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eGEOMEAN\u003c/td\u003e\u003ctd\u003egeoMean(number, ...)\u003cbr\u003eReturns the geometric mean of a positive array or region\u003c/td\u003e\n        \u003ctd\u003eGEOMEAN(1, 2, 3, 4) \u003cbr\u003e\u003e\u003e2.213363839\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eHARMEAN\u003c/td\u003e\u003ctd\u003eharMean(number, ...)\u003cbr\u003eReturns the harmonic average of the data set\u003c/td\u003e\n        \u003ctd\u003eHARMEAN(1, 2, 3, 4) \u003cbr\u003e\u003e\u003e1.92\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eCOUNT\u003c/td\u003e\u003ctd\u003ecount(number, ...)\u003cbr\u003eCalculate the number of values in the parameter list\u003c/td\u003e\n        \u003ctd\u003eCOUNT(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e8\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ecountIf\u003c/td\u003e\u003ctd\u003ecountIf({number1, ...}, condition[, {number1, ...}])\u003cbr\u003eCalculate the number of values in the parameter list\u003c/td\u003e\n        \u003ctd\u003ecountIf({1, 2, 3, 4, 2, 2, 1, 4}, '\u003e1') \u003cbr\u003e\u003e\u003e6\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSUM\u003c/td\u003e\u003ctd\u003esum(number, ...)\u003cbr\u003eReturns the sum of all values.\u003c/td\u003e\n        \u003ctd\u003eSUM(1, 2, 3, 4) \u003cbr\u003e\u003e\u003e10\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003esumIf\u003c/td\u003e\u003ctd\u003esumIf({number, ...}, condition[, {number1, ...}])\u003cbr\u003eReturns the sum of all values.\u003c/td\u003e\n        \u003ctd\u003esumIf({1, 2, 3, 4, 2, 2, 1, 4}, '\u003e1') \u003cbr\u003e\u003e\u003e17\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eAVEDEV\u003c/td\u003e\u003ctd\u003eaveDev(number, ...)\u003cbr\u003eReturns the average of the absolute deviation of a data point from its average\u003c/td\u003e\n        \u003ctd\u003eAVEDEV(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e0.96875\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSTDEV\u003c/td\u003e\u003ctd\u003estDev(number, ...)\u003cbr\u003eEstimation of standard deviation based on samples\u003c/td\u003e\n        \u003ctd\u003eSTDEV(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e1.1877349391654208\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eSTDEVP\u003c/td\u003e\u003ctd\u003estDevp(number, ...)\u003cbr\u003eCalculate the standard deviation based on the whole sample population\u003c/td\u003e\n        \u003ctd\u003eSTDEVP(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e1.1110243021644486\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDEVSQ\u003c/td\u003e\u003ctd\u003edevSq(number, ...)\u003cbr\u003eReturns the sum of squares of deviations\u003c/td\u003e\n        \u003ctd\u003eDEVSQ(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e9.875\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eVAR\u003c/td\u003e\u003ctd\u003evar(number, ...)\u003cbr\u003eEstimation of variance based on samples\u003c/td\u003e\n        \u003ctd\u003eVAR(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e1.4107142857142858\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eVARP\u003c/td\u003e\u003ctd\u003evarp(number, ...)\u003cbr\u003eCalculate the variance based on the whole sample population\u003c/td\u003e\n        \u003ctd\u003eVARP(1, 2, 3, 4, 2, 2, 1, 4) \u003cbr\u003e\u003e\u003e1.234375\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003enormDist\u003c/td\u003e\u003ctd\u003enormDist(number, arithmeticMean, StDev, returnType：0/1)\u003cbr\u003eReturn to normal cumulative distribution\u003c/td\u003e\n        \u003ctd\u003enormDist(3, 8, 4, 1) \u003cbr\u003e\u003e\u003e0.105649774\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003enormInv\u003c/td\u003e\u003ctd\u003enormInv(distributionProbability, arithmeticMean, StDev)\u003cbr\u003eReturns the anti-normal cumulative distribution\u003c/td\u003e\n        \u003ctd\u003enormInv(0.8, 8, 3) \u003cbr\u003e\u003e\u003e10.5248637\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eNormSDist\u003c/td\u003e\u003ctd\u003enormSDist(number)\u003cbr\u003eReturns the standard normal cumulative distribution function, with an average of 0 and a standard deviation of 1.\u003c/td\u003e\n        \u003ctd\u003eNORMSDist(1) \u003cbr\u003e\u003e\u003e0.841344746\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003enormSInv\u003c/td\u003e\u003ctd\u003enormSInv(number)\u003cbr\u003eReturn anti-standard normal cumulative distribution\u003c/td\u003e\n        \u003ctd\u003enormSInv(0.3) \u003cbr\u003e\u003e\u003e-0.524400513\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eBetaDist\u003c/td\u003e\u003ctd\u003eBetaDist(number, α, β)\u003cbr\u003eReturns the Beta cumulative distribution function\u003c/td\u003e\n        \u003ctd\u003eBetaDist(0.5, 11, 22) \u003cbr\u003e\u003e\u003e0.97494877\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eBetaInv\u003c/td\u003e\u003ctd\u003eBetaInv(number, α, β)\u003cbr\u003eReturns the inverse function of the cumulative distribution function of the specified Beta distribution\u003c/td\u003e\n        \u003ctd\u003eBetaInv(0.5, 23, 45) \u003cbr\u003e\u003e\u003e0.336640759\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ebinomDist\u003c/td\u003e\u003ctd\u003ebinomDist(successCount, testCount, successProbability, returnType：0/1)\u003cbr\u003eReturns the probability of unary binomial distribution\u003c/td\u003e\n        \u003ctd\u003ebinomDist(12, 45, 0.5, 0) \u003cbr\u003e\u003e\u003e0.000817409\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eexponDist\u003c/td\u003e\u003ctd\u003eexponDist(number, value, returnType：0/1)\u003cbr\u003eReturn exponential distribution\u003c/td\u003e\n        \u003ctd\u003eexponDist(3, 1, 0) \u003cbr\u003e\u003e\u003e0.049787068\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eFDist\u003c/td\u003e\u003ctd\u003efDist(numberX, molecularFreedom, denominatorFreedom)\u003cbr\u003eReturn F probability distribution\u003c/td\u003e\n        \u003ctd\u003eFDist(0.4, 2, 3) \u003cbr\u003e\u003e\u003e0.701465776\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eFInv\u003c/td\u003e\u003ctd\u003efInv(distributionProbability, molecularFreedom, denominatorFreedom)\u003cbr\u003eReturns the inverse function of F probability distribution\u003c/td\u003e\n        \u003ctd\u003eFInv(0.7, 2, 3) \u003cbr\u003e\u003e\u003e0.402651432\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eFISHER\u003c/td\u003e\u003ctd\u003efisher(number)\u003cbr\u003eReturns the Fisher transformation of point x. The transformation produces a normal distribution rather than a skewed function.\u003c/td\u003e\n        \u003ctd\u003eFISHER(0.68) \u003cbr\u003e\u003e\u003e0.8291140383\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003efisherInv\u003c/td\u003e\u003ctd\u003efisherInv(number)\u003cbr\u003eReturns the inverse value of the Fisher transform.\u003c/td\u003e\n        \u003ctd\u003efisherInv(0.6) \u003cbr\u003e\u003e\u003e0.537049567\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003egammaDist\u003c/td\u003e\u003ctd\u003egammaDist(number, α, β, returnType：0/1)\u003cbr\u003eReturn gamma distribution\u003c/td\u003e\n        \u003ctd\u003egammaDist(0.5, 3, 4, 0) \u003cbr\u003e\u003e\u003e0.001723627\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003egammaInv\u003c/td\u003e\u003ctd\u003egammaInv(distributionProbability, α, β)\u003cbr\u003eReturns the inverse function of the gamma cumulative distribution function\u003c/td\u003e\n        \u003ctd\u003egammaInv(0.2, 3, 4) \u003cbr\u003e\u003e\u003e6.140176811\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eGAMMALN\u003c/td\u003e\u003ctd\u003egammaLn(number)\u003cbr\u003eReturns the natural logarithm of γ \u003c/td\u003e\n        \u003ctd\u003eGAMMALN(4) \u003cbr\u003e\u003e\u003e1.791759469\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ehypgeomDist\u003c/td\u003e\u003ctd\u003ehypgeomDist(successCount, testCount, successCountAll, testCountAll)\u003cbr\u003eReturns the hypergeometric distribution\u003c/td\u003e\n        \u003ctd\u003ehypgeomDist(23, 45, 45, 100) \u003cbr\u003e\u003e\u003e0.08715016\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003elogInv\u003c/td\u003e\u003ctd\u003elogInv(distributionProbability, average, StDev)\u003cbr\u003eReturns the inverse function of the logarithmic cumulative distribution function of x \u003c/td\u003e\n        \u003ctd\u003elogInv(0.1, 45, 33) \u003cbr\u003e\u003e\u003e15.01122624\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eLognormDist\u003c/td\u003e\u003ctd\u003elognormDist(number, average, StDev)\u003cbr\u003eReturns the inverse normal distribution\u003c/td\u003e\n        \u003ctd\u003elognormDist(15, 23, 45) \u003cbr\u003e\u003e\u003e0.326019201\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003enegbinomDist\u003c/td\u003e\u003ctd\u003enegbinomDist(failureCount, successCount, successProbability)\u003cbr\u003eReturns negative binomial distribution\u003c/td\u003e\n        \u003ctd\u003enegbinomDist(23, 45, 0.7) \u003cbr\u003e\u003e\u003e0.053463314\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003ePOISSON\u003c/td\u003e\u003ctd\u003epoisson(number, average, returnType：0/1)\u003cbr\u003eReturns the Poisson distribution\u003c/td\u003e\n        \u003ctd\u003ePOISSON(23, 23, 0) \u003cbr\u003e\u003e\u003e0.082884384\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTDist\u003c/td\u003e\u003ctd\u003etDist(number, freedom, returnType：1/2)\u003cbr\u003eReturns the t distribution of students\u003c/td\u003e\n        \u003ctd\u003eTDist(1.2, 24, 1) \u003cbr\u003e\u003e\u003e0.120925677\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTInv\u003c/td\u003e\u003ctd\u003eTInv(distributionProbability, freedom)\u003cbr\u003eReturns the inverse distribution of students't-distribution\u003c/td\u003e\n        \u003ctd\u003eTInv(0.12, 23) \u003cbr\u003e\u003e\u003e1.614756561\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eWEIBULL\u003c/td\u003e\u003ctd\u003eweibull(number, α, β, returnType：0/1)\u003cbr\u003eReturns the Weibull distribution\u003c/td\u003e\n        \u003ctd\u003eWEIBULL(1, 2, 3, 1) \u003cbr\u003e\u003e\u003e0.105160683\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Find references\n\u003ctable\u003e\n    \u003ctr\u003e\u003ctd\u003efunction name\u003c/td\u003e\u003ctd\u003edescription\u003c/td\u003e\u003ctd\u003eExample\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eVLookUp ★ ▲\u003c/td\u003e\u003ctd\u003eVLookUp({array, ...}, value, {colIndex}[, fuzzy:0/1])\u003cbr\u003eVertical search function. Fuzzy matching default 1\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eVLookUp ★ ▲\u003c/td\u003e\u003ctd\u003eVLookUp({Json, ...}, formula, name)\u003cbr\u003eJSON array lookup function.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n#### Add function similar to C# method\n\u003ctable\u003e\n    \u003ctr\u003e\u003ctd\u003efunction name\u003c/td\u003e\u003ctd\u003edescription\u003c/td\u003e\u003ctd\u003eExample\u003c/td\u003e\u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eUrlEncode ★\u003c/td\u003e\u003ctd\u003eUrlEncode(text)\u003cbr\u003e Encode the URL string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eUrlDecode ★\u003c/td\u003e\u003ctd\u003eUrlEncode(text)\u003cbr\u003e Converts an URL-encoded string to a decoded string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eHtmlEncode ★\u003c/td\u003e\u003ctd\u003eHtmlEncode(text)\u003cbr\u003e Converts a string to a HTML-encoded string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eHtmlDecode ★\u003c/td\u003e\u003ctd\u003eHtmlDecode(text)\u003cbr\u003e  Transdecode the HTML-encoded string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eBase64ToText ★\u003c/td\u003e\u003ctd\u003eBase64ToText(text[, encodingType])\u003cbr\u003e   Converts Base64 to a string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eBase64UrlToText ★\u003c/td\u003e\u003ctd\u003eBase64UrlToText(text[, encodingType])\u003cbr\u003e   Converts a Base64 of type Url to a string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eTextToBase64 ★\u003c/td\u003e\u003ctd\u003eTextToBase64(text[, encodingType])\u003cbr\u003e   Converts a string to an Base64 string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eTextToBase64Url ★\u003c/td\u003e\u003ctd\u003eTextToBase64Url(text[, encodingType])\u003cbr\u003e   Converts a string to an Base64 string of type Url.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eRegex ★ ▲\u003c/td\u003e\u003ctd\u003eRegex(text, matchText)\u003cbr\u003e returns a matching string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eRegexRepalce ★\u003c/td\u003e\u003ctd\u003eRegexRepalce(text, matchText, replaceString)\u003cbr\u003e  Matches the replacement string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eIsRegex ★\u003cbr\u003eIsMatch ★\u003c/td\u003e\u003ctd\u003eIsRegex(text, matchText)\u003cbr\u003eIsMatch(text, matchText)\u003cbr\u003e  To determine if there is a match.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eGuid\u003c/td\u003e\u003ctd\u003eGuid()\u003cbr\u003e  Generate a Guid string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eMd5 ★\u003c/td\u003e\u003ctd\u003eMd5(text[, encodingType])\u003cbr\u003e Returns the Hash string of Md5.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eSha1 ★\u003c/td\u003e\u003ctd\u003eSha1(text[, encodingType])\u003cbr\u003e Returns the Hash string of Sha1.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eSha256 ★\u003c/td\u003e\u003ctd\u003eSha256(text[, encodingType])\u003cbr\u003e Returns the Hash string of Sha256.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eSha512 ★\u003c/td\u003e\u003ctd\u003eSha512(text[, encodingType])\u003cbr\u003e Returns the Hash string of Sha512.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eCrc32 ★\u003c/td\u003e\u003ctd\u003eCrc32(text[, encodingType])\u003cbr\u003e Returns the Hash string of Crc32.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eHmacMd5 ★\u003c/td\u003e\u003ctd\u003eHmacMd5(text, secret[, encodingType])\u003cbr\u003e Returns the Hash string of HmacMd5.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eHmacSha1 ★\u003c/td\u003e\u003ctd\u003eHmacSha1(text, secret[, encodingType])\u003cbr\u003e Returns the Hash string of HmacSha1.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eHmacSha256 ★\u003c/td\u003e\u003ctd\u003eHmacSha256(text, secret[, encodingType])\u003cbr\u003e Returns the Hash string of HmacSha256.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eHmacSha512 ★\u003c/td\u003e\u003ctd\u003eHmacSha512(text, secret[, encodingType])\u003cbr\u003e Returns the Hash string of HmacSha512.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eTrimStart ★\u003cbr\u003eLTrim ★\u003c/td\u003e\u003ctd\u003eTrimStart(text)\u003cbr\u003eLTrim(text)\u003cbr\u003eLTrim(text[, characterSet])\u003cbr\u003e   Empty the left side of the string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eTrimEnd ★\u003cbr\u003eRTrim ★\u003c/td\u003e\u003ctd\u003eTrimEnd(text)\u003cbr\u003eRTrim(text)\u003cbr\u003eRTrim(text, characterSet)\u003cbr\u003e   Empty the right side of the string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eIndexOf ★ ▲\u003c/td\u003e\u003ctd\u003eIndexOf(text, find[, start[, index]])\u003cbr\u003e   Find the position of the string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eLastIndexOf ★ ▲\u003c/td\u003e\u003ctd\u003eLastIndexOf(text, find[, start[, index]])\u003cbr\u003e   Find the position of the string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eSplit ★\u003c/td\u003e\u003ctd\u003eSplit(text, separator)\u003cbr\u003e Generate array\u003cbr\u003eSplit(text, separator, index)\u003cbr\u003e  Returns the string pointed to by the split index.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eJoin ★\u003c/td\u003e\u003ctd\u003eJoin(text1, text2....)\u003cbr\u003e  Merge strings.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eSubstring ★ ▲\u003c/td\u003e\u003ctd\u003eSubstring(text, start)\u003cbr\u003eSubstring(text, start, count)\u003cbr\u003e  Cut the string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eStartsWith ★\u003c/td\u003e\u003ctd\u003eStartsWith(text, startText[, ignoreCase:1/0])\u003cbr\u003e  Determines whether the beginning of this string instance matches the specified string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eEndsWith ★\u003c/td\u003e\u003ctd\u003eEndsWith(text, startText[, ignoreCase:1/0])\u003cbr\u003e  Determines whether the end of this string instance matches the specified string when comparing using the specified comparison option.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eIsNullOrEmpty ★\u003c/td\u003e\u003ctd\u003eIsNullOrEmpty(text)\u003cbr\u003e  Indicates whether the specified string is null or an empty string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\t\n\t\u003ctr\u003e\n        \u003ctd\u003eIsNullOrWhiteSpace ★\u003c/td\u003e\u003ctd\u003eIsNullOrWhiteSpace(text)\u003cbr\u003e  Indicates whether the specified string is null, empty, or consisting only of white space characters.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eRemoveStart ★\u003c/td\u003e\u003ctd\u003eRemoveStart(text, leftText[, ignoreCase])\u003cbr\u003eMatch the left, and if you succeed, remove the left string.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eRemoveEnd ★\u003c/td\u003e\u003ctd\u003eRemoveEnd(text, rightText[, ignoreCase])\u003cbr\u003eMatch the right, and if you succeed, remove the string on the right.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eJson ★\u003c/td\u003e\u003ctd\u003ejson(text)\u003cbr\u003eDynamic json query.\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eError \u003c/td\u003e\u003ctd\u003eError(text)\u003cbr\u003e Proactively throwing error. \u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eHAS ★\u003cbr\u003eHASKEY ★\u003cbr\u003eCONTAINS ★\u003cbr\u003eCONTAINSKEY ★\u003c/td\u003e\u003ctd\u003eHAS(json/array,text)\u003cbr\u003eDoes the JSON format include a Key\u003cbr\u003e Does the array contain values \u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003eHASVALUE ★\u003cbr\u003eCONTAINSVALUE ★\u003c/td\u003e\u003ctd\u003eHASVALUE(json/array, text)\u003cbr\u003eDoes the JSON format include a Value\u003cbr\u003e Does the array contain values\u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\t\u003ctr\u003e\n        \u003ctd\u003ePARAM\u003cbr\u003ePARAMETER\u003cbr\u003eGETPARAMETER \u003c/td\u003e\u003ctd\u003eGETPARAMETER(text)\u003cbr\u003e Dynamically obtaining parameters \u003c/td\u003e \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n\n ","funding_links":[],"categories":["C\\#"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolgood%2FToolGood.Algorithm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoolgood%2FToolGood.Algorithm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoolgood%2FToolGood.Algorithm/lists"}