nss: upgrade to release 3.73
[LibreOffice.git] / formula / inc / core_resource.hrc
blobcf1cca33373ff7903a8070bdaea453088e1d89df
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
20 #ifndef INCLUDED_FORMULA_INC_CORE_RESOURCE_HRC
21 #define INCLUDED_FORMULA_INC_CORE_RESOURCE_HRC
23 #include <formula/compiler.hxx>
24 #include <utility>
26 #define NC_(Context, String) reinterpret_cast<char const *>(Context "\004" u8##String)
28 /** These English names are used to store/load ODFF as of ODF v1.2. */
29 // NAMES CAN ONLY BE CHANGED WHEN PROVIDING BACKWARD AND FORWARD COMPATIBILITY
30 // such that at least two releases can already read the new name to be
31 // introduced by a later release.
32 // If there is a reason for another name for some function then add an
33 // *additional* name to be recognized to sc/source/core/tool/compiler.cxx
34 // ScCompiler::IsOpCode() in the if (mxSymbols->isODFF()) block.
35 const std::pair<const char*, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF[] =
37     { "IF" , SC_OPCODE_IF },
38     { "IFERROR" , SC_OPCODE_IF_ERROR },
39     { "IFNA" , SC_OPCODE_IF_NA },
40     { "CHOOSE" , SC_OPCODE_CHOOSE },
41     { "(" , SC_OPCODE_OPEN },
42     { ")" , SC_OPCODE_CLOSE },
43     // SC_OPCODE_TABLE_REF_... not supported in ODFF
44     { "{" , SC_OPCODE_ARRAY_OPEN },
45     { "}" , SC_OPCODE_ARRAY_CLOSE },
46     { "|" , SC_OPCODE_ARRAY_ROW_SEP },
47     { ";" , SC_OPCODE_ARRAY_COL_SEP },
48     { ";" , SC_OPCODE_SEP },
49     { "%" , SC_OPCODE_PERCENT_SIGN },
50     { "+" , SC_OPCODE_ADD },
51     { "-" , SC_OPCODE_SUB },
52     { "*" , SC_OPCODE_MUL },
53     { "/" , SC_OPCODE_DIV },
54     { "&" , SC_OPCODE_AMPERSAND },
55     { "^" , SC_OPCODE_POW },
56     { "=" , SC_OPCODE_EQUAL },
57     { "<>" , SC_OPCODE_NOT_EQUAL },
58     { "<" , SC_OPCODE_LESS },
59     { ">" , SC_OPCODE_GREATER },
60     { "<=" , SC_OPCODE_LESS_EQUAL },
61     { ">=" , SC_OPCODE_GREATER_EQUAL },
62     { "AND" , SC_OPCODE_AND },
63     { "OR" , SC_OPCODE_OR },
64     { "XOR" , SC_OPCODE_XOR },
65     { "!" , SC_OPCODE_INTERSECT },
66     { "~" , SC_OPCODE_UNION },
67     { ":" , SC_OPCODE_RANGE },
68     { "NOT" , SC_OPCODE_NOT },
69     { "NEG" , SC_OPCODE_NEG },
70     { "-" , SC_OPCODE_NEG_SUB },
71     { "PI" , SC_OPCODE_PI },
72     { "RAND" , SC_OPCODE_RANDOM },
73     { "TRUE" , SC_OPCODE_TRUE },
74     { "FALSE" , SC_OPCODE_FALSE },
75     { "TODAY" , SC_OPCODE_GET_ACT_DATE },
76     { "NOW" , SC_OPCODE_GET_ACT_TIME },
77     { "NA" , SC_OPCODE_NO_VALUE },
78     { "ORG.OPENOFFICE.CURRENT" , SC_OPCODE_CURRENT },
79     { "DEGREES" , SC_OPCODE_DEG },
80     { "RADIANS" , SC_OPCODE_RAD },
81     { "SIN" , SC_OPCODE_SIN },
82     { "COS" , SC_OPCODE_COS },
83     { "TAN" , SC_OPCODE_TAN },
84     { "COT" , SC_OPCODE_COT },
85     { "ASIN" , SC_OPCODE_ARC_SIN },
86     { "ACOS" , SC_OPCODE_ARC_COS },
87     { "ATAN" , SC_OPCODE_ARC_TAN },
88     { "ACOT" , SC_OPCODE_ARC_COT },
89     { "SINH" , SC_OPCODE_SIN_HYP },
90     { "COSH" , SC_OPCODE_COS_HYP },
91     { "TANH" , SC_OPCODE_TAN_HYP },
92     { "COTH" , SC_OPCODE_COT_HYP },
93     { "ASINH" , SC_OPCODE_ARC_SIN_HYP },
94     { "ACOSH" , SC_OPCODE_ARC_COS_HYP },
95     { "ATANH" , SC_OPCODE_ARC_TAN_HYP },
96     { "ACOTH" , SC_OPCODE_ARC_COT_HYP },
97     { "CSC" , SC_OPCODE_COSECANT },
98     { "SEC" , SC_OPCODE_SECANT },
99     { "CSCH" , SC_OPCODE_COSECANT_HYP },
100     { "SECH" , SC_OPCODE_SECANT_HYP },
101     { "EXP" , SC_OPCODE_EXP },
102     { "LN" , SC_OPCODE_LN },
103     { "SQRT" , SC_OPCODE_SQRT },
104     { "FACT" , SC_OPCODE_FACT },
105     { "YEAR" , SC_OPCODE_GET_YEAR },
106     { "MONTH" , SC_OPCODE_GET_MONTH },
107     { "DAY" , SC_OPCODE_GET_DAY },
108     { "HOUR" , SC_OPCODE_GET_HOUR },
109     { "MINUTE" , SC_OPCODE_GET_MIN },
110     { "SECOND" , SC_OPCODE_GET_SEC },
111     { "SIGN" , SC_OPCODE_PLUS_MINUS },
112     { "ABS" , SC_OPCODE_ABS },
113     { "INT" , SC_OPCODE_INT },
114     { "PHI" , SC_OPCODE_PHI },
115     { "GAUSS" , SC_OPCODE_GAUSS },
116     { "ISBLANK" , SC_OPCODE_IS_EMPTY },
117     { "ISTEXT" , SC_OPCODE_IS_STRING },
118     { "ISNONTEXT" , SC_OPCODE_IS_NON_STRING },
119     { "ISLOGICAL" , SC_OPCODE_IS_LOGICAL },
120     { "TYPE" , SC_OPCODE_TYPE },
121     { "CELL" , SC_OPCODE_CELL },
122     { "ISREF" , SC_OPCODE_IS_REF },
123     { "ISNUMBER" , SC_OPCODE_IS_VALUE },
124     { "ISFORMULA" , SC_OPCODE_IS_FORMULA },
125     { "ISNA" , SC_OPCODE_IS_NV },
126     { "ISERR" , SC_OPCODE_IS_ERR },
127     { "ISERROR" , SC_OPCODE_IS_ERROR },
128     { "ISEVEN" , SC_OPCODE_IS_EVEN },
129     { "ISODD" , SC_OPCODE_IS_ODD },
130     { "N" , SC_OPCODE_N },
131     { "DATEVALUE" , SC_OPCODE_GET_DATE_VALUE },
132     { "TIMEVALUE" , SC_OPCODE_GET_TIME_VALUE },
133     { "CODE" , SC_OPCODE_CODE },
134     { "TRIM" , SC_OPCODE_TRIM },
135     { "UPPER" , SC_OPCODE_UPPER },
136     { "PROPER" , SC_OPCODE_PROPER },
137     { "LOWER" , SC_OPCODE_LOWER },
138     { "LEN" , SC_OPCODE_LEN },
139     { "T" , SC_OPCODE_T },
140     { "VALUE" , SC_OPCODE_VALUE },
141     { "CLEAN" , SC_OPCODE_CLEAN },
142     { "CHAR" , SC_OPCODE_CHAR },
143     { "JIS" , SC_OPCODE_JIS },
144     { "ASC" , SC_OPCODE_ASC },
145     { "UNICODE" , SC_OPCODE_UNICODE },
146     { "UNICHAR" , SC_OPCODE_UNICHAR },
147     { "LOG10" , SC_OPCODE_LOG10 },
148     { "EVEN" , SC_OPCODE_EVEN },
149     { "ODD" , SC_OPCODE_ODD },
150     { "LEGACY.NORMSDIST" , SC_OPCODE_STD_NORM_DIST },
151     { "COM.MICROSOFT.NORM.S.DIST" , SC_OPCODE_STD_NORM_DIST_MS },
152     { "FISHER" , SC_OPCODE_FISHER },
153     { "FISHERINV" , SC_OPCODE_FISHER_INV },
154     { "LEGACY.NORMSINV" , SC_OPCODE_S_NORM_INV },
155     { "COM.MICROSOFT.NORM.S.INV" , SC_OPCODE_S_NORM_INV_MS },
156     { "GAMMALN" , SC_OPCODE_GAMMA_LN },
157     { "COM.MICROSOFT.GAMMALN.PRECISE" , SC_OPCODE_GAMMA_LN_MS },
158     { "ORG.OPENOFFICE.ERRORTYPE" , SC_OPCODE_ERROR_TYPE },
159     { "ERROR.TYPE" , SC_OPCODE_ERROR_TYPE_ODF },
160     { "FORMULA" , SC_OPCODE_FORMULA },
161     { "ATAN2" , SC_OPCODE_ARC_TAN_2 },
162     { "COM.MICROSOFT.CEILING.MATH" , SC_OPCODE_CEIL_MATH },
163     { "CEILING" , SC_OPCODE_CEIL },
164     { "COM.MICROSOFT.CEILING" , SC_OPCODE_CEIL_MS },
165     { "COM.MICROSOFT.CEILING.PRECISE" , SC_OPCODE_CEIL_PRECISE },
166     { "COM.MICROSOFT.ISO.CEILING" , SC_OPCODE_CEIL_ISO },
167     { "FLOOR" , SC_OPCODE_FLOOR },
168     { "COM.MICROSOFT.FLOOR" , SC_OPCODE_FLOOR_MS },
169     { "COM.MICROSOFT.FLOOR.MATH" , SC_OPCODE_FLOOR_MATH },
170     { "COM.MICROSOFT.FLOOR.PRECISE" , SC_OPCODE_FLOOR_PRECISE },
171     { "ROUND" , SC_OPCODE_ROUND },
172     { "ROUNDUP" , SC_OPCODE_ROUND_UP },
173     { "ROUNDDOWN" , SC_OPCODE_ROUND_DOWN },
174     { "TRUNC" , SC_OPCODE_TRUNC },
175     { "LOG" , SC_OPCODE_LOG },
176     { "POWER" , SC_OPCODE_POWER },
177     { "GCD" , SC_OPCODE_GCD },
178     { "LCM" , SC_OPCODE_LCM },
179     { "MOD" , SC_OPCODE_MOD },
180     { "SUMPRODUCT" , SC_OPCODE_SUM_PRODUCT },
181     { "SUMSQ" , SC_OPCODE_SUM_SQ },
182     { "SUMX2MY2" , SC_OPCODE_SUM_X2MY2 },
183     { "SUMX2PY2" , SC_OPCODE_SUM_X2DY2 },
184     { "SUMXMY2" , SC_OPCODE_SUM_XMY2 },
185     { "DATE" , SC_OPCODE_GET_DATE },
186     { "TIME" , SC_OPCODE_GET_TIME },
187     { "DAYS" , SC_OPCODE_GET_DIFF_DATE },
188     { "DAYS360" , SC_OPCODE_GET_DIFF_DATE_360 },
189     { "DATEDIF" , SC_OPCODE_GET_DATEDIF },
190     { "MIN" , SC_OPCODE_MIN },
191     { "MINA" , SC_OPCODE_MIN_A },
192     { "MAX" , SC_OPCODE_MAX },
193     { "MAXA" , SC_OPCODE_MAX_A },
194     { "SUM" , SC_OPCODE_SUM },
195     { "PRODUCT" , SC_OPCODE_PRODUCT },
196     { "AVERAGE" , SC_OPCODE_AVERAGE },
197     { "AVERAGEA" , SC_OPCODE_AVERAGE_A },
198     { "COUNT" , SC_OPCODE_COUNT },
199     { "COUNTA" , SC_OPCODE_COUNT_2 },
200     { "NPV" , SC_OPCODE_NPV },
201     { "IRR" , SC_OPCODE_IRR },
202     { "MIRR" , SC_OPCODE_MIRR },
203     { "ISPMT" , SC_OPCODE_ISPMT },
204     { "VAR" , SC_OPCODE_VAR },
205     { "VARA" , SC_OPCODE_VAR_A },
206     { "VARP" , SC_OPCODE_VAR_P },
207     { "VARPA" , SC_OPCODE_VAR_P_A },
208     { "COM.MICROSOFT.VAR.P" , SC_OPCODE_VAR_P_MS },
209     { "COM.MICROSOFT.VAR.S" , SC_OPCODE_VAR_S },
210     { "STDEV" , SC_OPCODE_ST_DEV },
211     { "STDEVA" , SC_OPCODE_ST_DEV_A },
212     { "STDEVP" , SC_OPCODE_ST_DEV_P },
213     { "STDEVPA" , SC_OPCODE_ST_DEV_P_A },
214     { "COM.MICROSOFT.STDEV.P" , SC_OPCODE_ST_DEV_P_MS },
215     { "COM.MICROSOFT.STDEV.S" , SC_OPCODE_ST_DEV_S },
216     { "BINOM.DIST.RANGE" , SC_OPCODE_B },
217     { "NORMDIST" , SC_OPCODE_NORM_DIST },
218     { "COM.MICROSOFT.NORM.DIST" , SC_OPCODE_NORM_DIST_MS },
219     { "EXPONDIST" , SC_OPCODE_EXP_DIST },
220     { "COM.MICROSOFT.EXPON.DIST" , SC_OPCODE_EXP_DIST_MS },
221     { "BINOMDIST" , SC_OPCODE_BINOM_DIST },
222     { "COM.MICROSOFT.BINOM.DIST" , SC_OPCODE_BINOM_DIST_MS },
223     { "POISSON" , SC_OPCODE_POISSON_DIST },
224     { "COM.MICROSOFT.POISSON.DIST" , SC_OPCODE_POISSON_DIST_MS },
225     { "COMBIN" , SC_OPCODE_COMBIN },
226     { "COMBINA" , SC_OPCODE_COMBIN_A },
227     { "PERMUT" , SC_OPCODE_PERMUT },
228     { "PERMUTATIONA" , SC_OPCODE_PERMUTATION_A },
229     { "PV" , SC_OPCODE_PV },
230     { "SYD" , SC_OPCODE_SYD },
231     { "DDB" , SC_OPCODE_DDB },
232     { "DB" , SC_OPCODE_DB },
233     { "VDB" , SC_OPCODE_VBD },
234     { "PDURATION" , SC_OPCODE_PDURATION },
235     { "SLN" , SC_OPCODE_SLN },
236     { "PMT" , SC_OPCODE_PMT },
237     { "COLUMNS" , SC_OPCODE_COLUMNS },
238     { "ROWS" , SC_OPCODE_ROWS },
239     { "SHEETS" , SC_OPCODE_SHEETS },
240     { "COLUMN" , SC_OPCODE_COLUMN },
241     { "ROW" , SC_OPCODE_ROW },
242     { "SHEET" , SC_OPCODE_SHEET },
243     { "RRI" , SC_OPCODE_RRI },
244     { "FV" , SC_OPCODE_FV },
245     { "NPER" , SC_OPCODE_NPER },
246     { "RATE" , SC_OPCODE_RATE },
247     { "IPMT" , SC_OPCODE_IPMT },
248     { "PPMT" , SC_OPCODE_PPMT },
249     { "CUMIPMT" , SC_OPCODE_CUM_IPMT },
250     { "CUMPRINC" , SC_OPCODE_CUM_PRINC },
251     { "EFFECT" , SC_OPCODE_EFFECT },
252     { "NOMINAL" , SC_OPCODE_NOMINAL },
253     { "SUBTOTAL" , SC_OPCODE_SUB_TOTAL },
254     { "DSUM" , SC_OPCODE_DB_SUM },
255     { "DCOUNT" , SC_OPCODE_DB_COUNT },
256     { "DCOUNTA" , SC_OPCODE_DB_COUNT_2 },
257     { "DAVERAGE" , SC_OPCODE_DB_AVERAGE },
258     { "DGET" , SC_OPCODE_DB_GET },
259     { "DMAX" , SC_OPCODE_DB_MAX },
260     { "DMIN" , SC_OPCODE_DB_MIN },
261     { "DPRODUCT" , SC_OPCODE_DB_PRODUCT },
262     { "DSTDEV" , SC_OPCODE_DB_STD_DEV },
263     { "DSTDEVP" , SC_OPCODE_DB_STD_DEV_P },
264     { "DVAR" , SC_OPCODE_DB_VAR },
265     { "DVARP" , SC_OPCODE_DB_VAR_P },
266     { "INDIRECT" , SC_OPCODE_INDIRECT },
267     { "ADDRESS" , SC_OPCODE_ADDRESS },
268     { "MATCH" , SC_OPCODE_MATCH },
269     { "COUNTBLANK" , SC_OPCODE_COUNT_EMPTY_CELLS },
270     { "COUNTIF" , SC_OPCODE_COUNT_IF },
271     { "SUMIF" , SC_OPCODE_SUM_IF },
272     { "AVERAGEIF" , SC_OPCODE_AVERAGE_IF },
273     { "SUMIFS" , SC_OPCODE_SUM_IFS },
274     { "AVERAGEIFS" , SC_OPCODE_AVERAGE_IFS },
275     { "COUNTIFS" , SC_OPCODE_COUNT_IFS },
276     { "LOOKUP" , SC_OPCODE_LOOKUP },
277     { "VLOOKUP" , SC_OPCODE_V_LOOKUP },
278     { "HLOOKUP" , SC_OPCODE_H_LOOKUP },
279     { "ORG.OPENOFFICE.MULTIRANGE" , SC_OPCODE_MULTI_AREA }, // legacy for range list (union)
280     { "OFFSET" , SC_OPCODE_OFFSET },
281     { "INDEX" , SC_OPCODE_INDEX },
282     { "AREAS" , SC_OPCODE_AREAS },
283     { "DOLLAR" , SC_OPCODE_CURRENCY },
284     { "REPLACE" , SC_OPCODE_REPLACE },
285     { "FIXED" , SC_OPCODE_FIXED },
286     { "FIND" , SC_OPCODE_FIND },
287     { "EXACT" , SC_OPCODE_EXACT },
288     { "LEFT" , SC_OPCODE_LEFT },
289     { "RIGHT" , SC_OPCODE_RIGHT },
290     { "SEARCH" , SC_OPCODE_SEARCH },
291     { "MID" , SC_OPCODE_MID },
292     { "LENB" , SC_OPCODE_LENB },
293     { "RIGHTB" , SC_OPCODE_RIGHTB },
294     { "LEFTB" , SC_OPCODE_LEFTB },
295     { "REPLACEB" , SC_OPCODE_REPLACEB },
296     { "FINDB" , SC_OPCODE_FINDB },
297     { "SEARCHB" , SC_OPCODE_SEARCHB },
298     { "MIDB" , SC_OPCODE_MIDB },
299     { "TEXT" , SC_OPCODE_TEXT },
300     { "SUBSTITUTE" , SC_OPCODE_SUBSTITUTE },
301     { "REPT" , SC_OPCODE_REPT },
302     { "CONCATENATE" , SC_OPCODE_CONCAT },
303     { "COM.MICROSOFT.CONCAT" , SC_OPCODE_CONCAT_MS },
304     { "COM.MICROSOFT.TEXTJOIN" , SC_OPCODE_TEXTJOIN_MS },
305     { "COM.MICROSOFT.IFS" , SC_OPCODE_IFS_MS },
306     { "COM.MICROSOFT.SWITCH" , SC_OPCODE_SWITCH_MS },
307     { "COM.MICROSOFT.MINIFS" , SC_OPCODE_MINIFS_MS },
308     { "COM.MICROSOFT.MAXIFS" , SC_OPCODE_MAXIFS_MS },
309     { "MVALUE" , SC_OPCODE_MAT_VALUE },
310     { "MDETERM" , SC_OPCODE_MAT_DET },
311     { "MINVERSE" , SC_OPCODE_MAT_INV },
312     { "MMULT" , SC_OPCODE_MAT_MULT },
313     { "TRANSPOSE" , SC_OPCODE_MAT_TRANS },
314     { "MUNIT" , SC_OPCODE_MATRIX_UNIT },
315     { "ORG.OPENOFFICE.GOALSEEK" , SC_OPCODE_BACK_SOLVER },
316     { "HYPGEOMDIST" , SC_OPCODE_HYP_GEOM_DIST },
317     { "COM.MICROSOFT.HYPGEOM.DIST" , SC_OPCODE_HYP_GEOM_DIST_MS },
318     { "LOGNORMDIST" , SC_OPCODE_LOG_NORM_DIST },
319     { "COM.MICROSOFT.LOGNORM.DIST" , SC_OPCODE_LOG_NORM_DIST_MS },
320     { "LEGACY.TDIST" , SC_OPCODE_T_DIST },
321     { "COM.MICROSOFT.T.DIST.2T" , SC_OPCODE_T_DIST_2T },
322     { "COM.MICROSOFT.T.DIST" , SC_OPCODE_T_DIST_MS },
323     { "COM.MICROSOFT.T.DIST.RT" , SC_OPCODE_T_DIST_RT },
324     { "LEGACY.FDIST" , SC_OPCODE_F_DIST },
325     { "FDIST" , SC_OPCODE_F_DIST_LT },
326     { "COM.MICROSOFT.F.DIST.RT" , SC_OPCODE_F_DIST_RT },
327     { "LEGACY.CHIDIST" , SC_OPCODE_CHI_DIST },
328     { "COM.MICROSOFT.CHISQ.DIST.RT" , SC_OPCODE_CHI_DIST_MS },
329     { "WEIBULL" , SC_OPCODE_WEIBULL },
330     { "COM.MICROSOFT.WEIBULL.DIST" , SC_OPCODE_WEIBULL_MS },
331     { "NEGBINOMDIST" , SC_OPCODE_NEG_BINOM_VERT },
332     { "COM.MICROSOFT.NEGBINOM.DIST" , SC_OPCODE_NEG_BINOM_DIST_MS },
333     { "CRITBINOM" , SC_OPCODE_CRIT_BINOM },
334     { "COM.MICROSOFT.BINOM.INV" , SC_OPCODE_BINOM_INV },
335     { "KURT" , SC_OPCODE_KURT },
336     { "HARMEAN" , SC_OPCODE_HAR_MEAN },
337     { "GEOMEAN" , SC_OPCODE_GEO_MEAN },
338     { "STANDARDIZE" , SC_OPCODE_STANDARD },
339     { "AVEDEV" , SC_OPCODE_AVE_DEV },
340     { "SKEW" , SC_OPCODE_SKEW },
341     { "SKEWP" , SC_OPCODE_SKEWP },
342     { "DEVSQ" , SC_OPCODE_DEV_SQ },
343     { "MEDIAN" , SC_OPCODE_MEDIAN },
344     { "MODE" , SC_OPCODE_MODAL_VALUE },
345     { "COM.MICROSOFT.MODE.SNGL" , SC_OPCODE_MODAL_VALUE_MS },
346     { "COM.MICROSOFT.MODE.MULT" , SC_OPCODE_MODAL_VALUE_MULTI },
347     { "ZTEST" , SC_OPCODE_Z_TEST },
348     { "COM.MICROSOFT.Z.TEST" , SC_OPCODE_Z_TEST_MS },
349     { "COM.MICROSOFT.AGGREGATE" , SC_OPCODE_AGGREGATE },
350     { "TTEST" , SC_OPCODE_T_TEST },
351     { "COM.MICROSOFT.T.TEST" , SC_OPCODE_T_TEST_MS },
352     { "RANK" , SC_OPCODE_RANK },
353     { "PERCENTILE" , SC_OPCODE_PERCENTILE },
354     { "PERCENTRANK" , SC_OPCODE_PERCENT_RANK },
355     { "COM.MICROSOFT.PERCENTILE.INC" , SC_OPCODE_PERCENTILE_INC },
356     { "COM.MICROSOFT.PERCENTRANK.INC" , SC_OPCODE_PERCENT_RANK_INC },
357     { "COM.MICROSOFT.QUARTILE.INC" , SC_OPCODE_QUARTILE_INC },
358     { "COM.MICROSOFT.RANK.EQ" , SC_OPCODE_RANK_EQ },
359     { "COM.MICROSOFT.PERCENTILE.EXC" , SC_OPCODE_PERCENTILE_EXC },
360     { "COM.MICROSOFT.PERCENTRANK.EXC" , SC_OPCODE_PERCENT_RANK_EXC },
361     { "COM.MICROSOFT.QUARTILE.EXC" , SC_OPCODE_QUARTILE_EXC },
362     { "COM.MICROSOFT.RANK.AVG" , SC_OPCODE_RANK_AVG },
363     { "LARGE" , SC_OPCODE_LARGE },
364     { "SMALL" , SC_OPCODE_SMALL },
365     { "FREQUENCY" , SC_OPCODE_FREQUENCY },
366     { "QUARTILE" , SC_OPCODE_QUARTILE },
367     { "NORMINV" , SC_OPCODE_NORM_INV },
368     { "COM.MICROSOFT.NORM.INV" , SC_OPCODE_NORM_INV_MS },
369     { "CONFIDENCE" , SC_OPCODE_CONFIDENCE },
370     { "COM.MICROSOFT.CONFIDENCE.NORM" , SC_OPCODE_CONFIDENCE_N },
371     { "COM.MICROSOFT.CONFIDENCE.T" , SC_OPCODE_CONFIDENCE_T },
372     { "FTEST" , SC_OPCODE_F_TEST },
373     { "COM.MICROSOFT.F.TEST" , SC_OPCODE_F_TEST_MS },
374     { "TRIMMEAN" , SC_OPCODE_TRIM_MEAN },
375     { "PROB" , SC_OPCODE_PROB },
376     { "CORREL" , SC_OPCODE_CORREL },
377     { "COVAR" , SC_OPCODE_COVAR },
378     { "COM.MICROSOFT.COVARIANCE.P" , SC_OPCODE_COVARIANCE_P },
379     { "COM.MICROSOFT.COVARIANCE.S" , SC_OPCODE_COVARIANCE_S },
380     { "PEARSON" , SC_OPCODE_PEARSON },
381     { "RSQ" , SC_OPCODE_RSQ },
382     { "STEYX" , SC_OPCODE_STEYX },
383     { "SLOPE" , SC_OPCODE_SLOPE },
384     { "INTERCEPT" , SC_OPCODE_INTERCEPT },
385     { "TREND" , SC_OPCODE_TREND },
386     { "GROWTH" , SC_OPCODE_GROWTH },
387     { "LINEST" , SC_OPCODE_LINEST },
388     { "LOGEST" , SC_OPCODE_LOGEST },
389     { "FORECAST" , SC_OPCODE_FORECAST },
390     { "COM.MICROSOFT.FORECAST.ETS" , SC_OPCODE_FORECAST_ETS_ADD },
391     { "COM.MICROSOFT.FORECAST.ETS.SEASONALITY" , SC_OPCODE_FORECAST_ETS_SEA },
392     { "ORG.LIBREOFFICE.FORECAST.ETS.MULT" , SC_OPCODE_FORECAST_ETS_MUL },
393     { "COM.MICROSOFT.FORECAST.ETS.CONFINT" , SC_OPCODE_FORECAST_ETS_PIA },
394     { "ORG.LIBREOFFICE.FORECAST.ETS.PI.MULT" , SC_OPCODE_FORECAST_ETS_PIM },
395     { "COM.MICROSOFT.FORECAST.ETS.STAT" , SC_OPCODE_FORECAST_ETS_STA },
396     { "ORG.LIBREOFFICE.FORECAST.ETS.STAT.MULT" , SC_OPCODE_FORECAST_ETS_STM },
397     { "COM.MICROSOFT.FORECAST.LINEAR" , SC_OPCODE_FORECAST_LIN },
398     { "LEGACY.CHIINV" , SC_OPCODE_CHI_INV },
399     { "COM.MICROSOFT.CHISQ.INV.RT" , SC_OPCODE_CHI_INV_MS },
400     { "GAMMADIST" , SC_OPCODE_GAMMA_DIST },
401     { "COM.MICROSOFT.GAMMA.DIST" , SC_OPCODE_GAMMA_DIST_MS },
402     { "GAMMAINV" , SC_OPCODE_GAMMA_INV },
403     { "COM.MICROSOFT.GAMMA.INV" , SC_OPCODE_GAMMA_INV_MS },
404     { "TINV" , SC_OPCODE_T_INV },
405     { "COM.MICROSOFT.T.INV.2T" , SC_OPCODE_T_INV_2T },
406     { "COM.MICROSOFT.T.INV" , SC_OPCODE_T_INV_MS },
407     { "LEGACY.FINV" , SC_OPCODE_F_INV },
408     { "FINV" , SC_OPCODE_F_INV_LT },
409     { "COM.MICROSOFT.F.INV.RT" , SC_OPCODE_F_INV_RT },
410     { "LEGACY.CHITEST" , SC_OPCODE_CHI_TEST },
411     { "COM.MICROSOFT.CHISQ.TEST" , SC_OPCODE_CHI_TEST_MS },
412     { "LOGINV" , SC_OPCODE_LOG_INV },
413     { "COM.MICROSOFT.LOGNORM.INV" , SC_OPCODE_LOG_INV_MS },
414     { "MULTIPLE.OPERATIONS" , SC_OPCODE_TABLE_OP },
415     { "BETADIST" , SC_OPCODE_BETA_DIST },
416     { "BETAINV" , SC_OPCODE_BETA_INV },
417     { "COM.MICROSOFT.BETA.DIST" , SC_OPCODE_BETA_DIST_MS },
418     { "COM.MICROSOFT.BETA.INV" , SC_OPCODE_BETA_INV_MS },
419     { "WEEKNUM" , SC_OPCODE_WEEK },
420     { "ISOWEEKNUM" , SC_OPCODE_ISOWEEKNUM },
421     { "ORG.LIBREOFFICE.WEEKNUM_OOO" , SC_OPCODE_WEEKNUM_OOO },
422     { "ORG.OPENOFFICE.EASTERSUNDAY" , SC_OPCODE_EASTERSUNDAY },
423     { "WEEKDAY" , SC_OPCODE_GET_DAY_OF_WEEK },
424     { "NETWORKDAYS" , SC_OPCODE_NETWORKDAYS },
425     { "COM.MICROSOFT.NETWORKDAYS.INTL" , SC_OPCODE_NETWORKDAYS_MS },
426     { "COM.MICROSOFT.WORKDAY.INTL" , SC_OPCODE_WORKDAY_MS },
427     { "#NAME!" , SC_OPCODE_NO_NAME },
428     { "ORG.OPENOFFICE.STYLE" , SC_OPCODE_STYLE },
429     { "DDE" , SC_OPCODE_DDE },
430     { "BASE" , SC_OPCODE_BASE },
431     { "DECIMAL" , SC_OPCODE_DECIMAL },
432     { "ORG.OPENOFFICE.CONVERT" , SC_OPCODE_CONVERT_OOO },
433     { "ROMAN" , SC_OPCODE_ROMAN },
434     { "ARABIC" , SC_OPCODE_ARABIC },
435     { "HYPERLINK" , SC_OPCODE_HYPERLINK },
436     { "INFO" , SC_OPCODE_INFO },
437     { "COM.MICROSOFT.BAHTTEXT" , SC_OPCODE_BAHTTEXT },
438     { "GETPIVOTDATA" , SC_OPCODE_GET_PIVOT_DATA },
439     { "EUROCONVERT" , SC_OPCODE_EUROCONVERT },
440     { "NUMBERVALUE" , SC_OPCODE_NUMBERVALUE },
441     { "GAMMA" , SC_OPCODE_GAMMA },
442     { "CHISQDIST" , SC_OPCODE_CHISQ_DIST },
443     { "COM.MICROSOFT.CHISQ.DIST" , SC_OPCODE_CHISQ_DIST_MS },
444     { "CHISQINV" , SC_OPCODE_CHISQ_INV },
445     { "COM.MICROSOFT.CHISQ.INV" , SC_OPCODE_CHISQ_INV_MS },
446     { "BITAND" , SC_OPCODE_BITAND },
447     { "BITOR" , SC_OPCODE_BITOR },
448     { "BITXOR" , SC_OPCODE_BITXOR },
449     { "BITRSHIFT" , SC_OPCODE_BITRSHIFT },
450     { "BITLSHIFT" , SC_OPCODE_BITLSHIFT },
451     /* BEGIN defined ERROR.TYPE() values. */
452     { "#NULL!" , SC_OPCODE_ERROR_NULL },
453     { "#DIV/0!" , SC_OPCODE_ERROR_DIVZERO },
454     { "#VALUE!" , SC_OPCODE_ERROR_VALUE },
455     { "#REF!" , SC_OPCODE_ERROR_REF },
456     { "#NAME?" , SC_OPCODE_ERROR_NAME },
457     { "#NUM!" , SC_OPCODE_ERROR_NUM },
458     { "#N/A" , SC_OPCODE_ERROR_NA },
459     /* END defined ERROR.TYPE() values. */
460     { "COM.MICROSOFT.FILTERXML" , SC_OPCODE_FILTERXML },
461     { "COM.MICROSOFT.WEBSERVICE" , SC_OPCODE_WEBSERVICE },
462     { "ORG.LIBREOFFICE.COLOR" , SC_OPCODE_COLOR },
463     { "COM.MICROSOFT.ERF.PRECISE" , SC_OPCODE_ERF_MS },
464     { "COM.MICROSOFT.ERFC.PRECISE" , SC_OPCODE_ERFC_MS },
465     { "COM.MICROSOFT.ENCODEURL" , SC_OPCODE_ENCODEURL },
466     { "ORG.LIBREOFFICE.RAWSUBTRACT" , SC_OPCODE_RAWSUBTRACT },
467     { "ORG.LIBREOFFICE.ROUNDSIG" , SC_OPCODE_ROUNDSIG },
468     { "ORG.LIBREOFFICE.REGEX" , SC_OPCODE_REGEX },
469     { "ORG.LIBREOFFICE.FOURIER", SC_OPCODE_FOURIER },
470     { "ORG.LIBREOFFICE.RAND.NV" , SC_OPCODE_RANDOM_NV },
471     { "ORG.LIBREOFFICE.RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV },
472     { nullptr,  -1 }
475 /** These function names are used in the OOXML XLSX import/export. */
476 const std::pair<const char*, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML[] =
478     { "IF" , SC_OPCODE_IF },
479     { "IFERROR" , SC_OPCODE_IF_ERROR },
480     { "_xlfn.IFNA" , SC_OPCODE_IF_NA },
481     { "CHOOSE" , SC_OPCODE_CHOOSE },
482     { "(" , SC_OPCODE_OPEN },
483     { ")" , SC_OPCODE_CLOSE },
484     { "[" , SC_OPCODE_TABLE_REF_OPEN },
485     { "]" , SC_OPCODE_TABLE_REF_CLOSE },
486     { "#All" , SC_OPCODE_TABLE_REF_ITEM_ALL },
487     { "#Headers" , SC_OPCODE_TABLE_REF_ITEM_HEADERS },
488     { "#Data" , SC_OPCODE_TABLE_REF_ITEM_DATA },
489     { "#Totals" , SC_OPCODE_TABLE_REF_ITEM_TOTALS },
490     { "#This Row" , SC_OPCODE_TABLE_REF_ITEM_THIS_ROW },
491     { "{" , SC_OPCODE_ARRAY_OPEN },
492     { "}" , SC_OPCODE_ARRAY_CLOSE },
493     { ";" , SC_OPCODE_ARRAY_ROW_SEP },
494     { "," , SC_OPCODE_ARRAY_COL_SEP },
495     { "," , SC_OPCODE_SEP },
496     { "%" , SC_OPCODE_PERCENT_SIGN },
497     { "+" , SC_OPCODE_ADD },
498     { "-" , SC_OPCODE_SUB },
499     { "*" , SC_OPCODE_MUL },
500     { "/" , SC_OPCODE_DIV },
501     { "&" , SC_OPCODE_AMPERSAND },
502     { "^" , SC_OPCODE_POW },
503     { "=" , SC_OPCODE_EQUAL },
504     { "<>" , SC_OPCODE_NOT_EQUAL },
505     { "<" , SC_OPCODE_LESS },
506     { ">" , SC_OPCODE_GREATER },
507     { "<=" , SC_OPCODE_LESS_EQUAL },
508     { ">=" , SC_OPCODE_GREATER_EQUAL },
509     { "AND" , SC_OPCODE_AND },
510     { "OR" , SC_OPCODE_OR },
511     { "_xlfn.XOR" , SC_OPCODE_XOR },
512     { " " , SC_OPCODE_INTERSECT },
513     { "~" , SC_OPCODE_UNION },
514     { ":" , SC_OPCODE_RANGE },
515     { "NOT" , SC_OPCODE_NOT },
516     { "NEG" , SC_OPCODE_NEG },
517     { "-" , SC_OPCODE_NEG_SUB },
518     { "PI" , SC_OPCODE_PI },
519     { "RAND" , SC_OPCODE_RANDOM },
520     { "TRUE" , SC_OPCODE_TRUE },
521     { "FALSE" , SC_OPCODE_FALSE },
522     { "TODAY" , SC_OPCODE_GET_ACT_DATE },
523     { "NOW" , SC_OPCODE_GET_ACT_TIME },
524     { "NA" , SC_OPCODE_NO_VALUE },
525     { "_xlfn.ORG.OPENOFFICE.CURRENT" , SC_OPCODE_CURRENT },
526     { "DEGREES" , SC_OPCODE_DEG },
527     { "RADIANS" , SC_OPCODE_RAD },
528     { "SIN" , SC_OPCODE_SIN },
529     { "COS" , SC_OPCODE_COS },
530     { "TAN" , SC_OPCODE_TAN },
531     { "_xlfn.COT" , SC_OPCODE_COT },
532     { "ASIN" , SC_OPCODE_ARC_SIN },
533     { "ACOS" , SC_OPCODE_ARC_COS },
534     { "ATAN" , SC_OPCODE_ARC_TAN },
535     { "_xlfn.ACOT" , SC_OPCODE_ARC_COT },
536     { "SINH" , SC_OPCODE_SIN_HYP },
537     { "COSH" , SC_OPCODE_COS_HYP },
538     { "TANH" , SC_OPCODE_TAN_HYP },
539     { "_xlfn.COTH" , SC_OPCODE_COT_HYP },
540     { "ASINH" , SC_OPCODE_ARC_SIN_HYP },
541     { "ACOSH" , SC_OPCODE_ARC_COS_HYP },
542     { "ATANH" , SC_OPCODE_ARC_TAN_HYP },
543     { "_xlfn.ACOTH" , SC_OPCODE_ARC_COT_HYP },
544     { "_xlfn.CSC" , SC_OPCODE_COSECANT },
545     { "_xlfn.SEC" , SC_OPCODE_SECANT },
546     { "_xlfn.CSCH" , SC_OPCODE_COSECANT_HYP },
547     { "_xlfn.SECH" , SC_OPCODE_SECANT_HYP },
548     { "EXP" , SC_OPCODE_EXP },
549     { "LN" , SC_OPCODE_LN },
550     { "SQRT" , SC_OPCODE_SQRT },
551     { "FACT" , SC_OPCODE_FACT },
552     { "YEAR" , SC_OPCODE_GET_YEAR },
553     { "MONTH" , SC_OPCODE_GET_MONTH },
554     { "DAY" , SC_OPCODE_GET_DAY },
555     { "HOUR" , SC_OPCODE_GET_HOUR },
556     { "MINUTE" , SC_OPCODE_GET_MIN },
557     { "SECOND" , SC_OPCODE_GET_SEC },
558     { "SIGN" , SC_OPCODE_PLUS_MINUS },
559     { "ABS" , SC_OPCODE_ABS },
560     { "INT" , SC_OPCODE_INT },
561     { "_xlfn.PHI" , SC_OPCODE_PHI },
562     { "_xlfn.GAUSS" , SC_OPCODE_GAUSS },
563     { "ISBLANK" , SC_OPCODE_IS_EMPTY },
564     { "ISTEXT" , SC_OPCODE_IS_STRING },
565     { "ISNONTEXT" , SC_OPCODE_IS_NON_STRING },
566     { "ISLOGICAL" , SC_OPCODE_IS_LOGICAL },
567     { "TYPE" , SC_OPCODE_TYPE },
568     { "CELL" , SC_OPCODE_CELL },
569     { "ISREF" , SC_OPCODE_IS_REF },
570     { "ISNUMBER" , SC_OPCODE_IS_VALUE },
571     { "_xlfn.ISFORMULA" , SC_OPCODE_IS_FORMULA },
572     { "ISNA" , SC_OPCODE_IS_NV },
573     { "ISERR" , SC_OPCODE_IS_ERR },
574     { "ISERROR" , SC_OPCODE_IS_ERROR },
575     { "ISEVEN" , SC_OPCODE_IS_EVEN },
576     { "ISODD" , SC_OPCODE_IS_ODD },
577     { "N" , SC_OPCODE_N },
578     { "DATEVALUE" , SC_OPCODE_GET_DATE_VALUE },
579     { "TIMEVALUE" , SC_OPCODE_GET_TIME_VALUE },
580     { "CODE" , SC_OPCODE_CODE },
581     { "TRIM" , SC_OPCODE_TRIM },
582     { "UPPER" , SC_OPCODE_UPPER },
583     { "PROPER" , SC_OPCODE_PROPER },
584     { "LOWER" , SC_OPCODE_LOWER },
585     { "LEN" , SC_OPCODE_LEN },
586     { "T" , SC_OPCODE_T },
587     { "VALUE" , SC_OPCODE_VALUE },
588     { "CLEAN" , SC_OPCODE_CLEAN },
589     { "CHAR" , SC_OPCODE_CHAR },
590     { "JIS" , SC_OPCODE_JIS },
591     { "ASC" , SC_OPCODE_ASC },
592     { "_xlfn.UNICODE" , SC_OPCODE_UNICODE },
593     { "_xlfn.UNICHAR" , SC_OPCODE_UNICHAR },
594     { "LOG10" , SC_OPCODE_LOG10 },
595     { "EVEN" , SC_OPCODE_EVEN },
596     { "ODD" , SC_OPCODE_ODD },
597     { "NORMSDIST" , SC_OPCODE_STD_NORM_DIST },
598     { "_xlfn.NORM.S.DIST" , SC_OPCODE_STD_NORM_DIST_MS },
599     { "FISHER" , SC_OPCODE_FISHER },
600     { "FISHERINV" , SC_OPCODE_FISHER_INV },
601     { "NORMSINV" , SC_OPCODE_S_NORM_INV },
602     { "_xlfn.NORM.S.INV" , SC_OPCODE_S_NORM_INV_MS },
603     { "GAMMALN" , SC_OPCODE_GAMMA_LN },
604     { "_xlfn.GAMMALN.PRECISE" , SC_OPCODE_GAMMA_LN_MS },
605     { "_xlfn.ORG.OPENOFFICE.ERRORTYPE" , SC_OPCODE_ERROR_TYPE },
606     { "ERROR.TYPE" , SC_OPCODE_ERROR_TYPE_ODF },
607     { "_xlfn.FORMULATEXT" , SC_OPCODE_FORMULA },
608     { "ATAN2" , SC_OPCODE_ARC_TAN_2 },
609     { "_xlfn.CEILING.MATH" , SC_OPCODE_CEIL_MATH },
610     { "_xlfn.CEILING.MATH" , SC_OPCODE_CEIL },
611     { "CEILING" , SC_OPCODE_CEIL_MS },
612     { "_xlfn.CEILING.PRECISE" , SC_OPCODE_CEIL_PRECISE },
613     { "ISO.CEILING" , SC_OPCODE_CEIL_ISO },
614     { "FLOOR" , SC_OPCODE_FLOOR_MS },
615     { "_xlfn.FLOOR.MATH" , SC_OPCODE_FLOOR_MATH },
616     { "_xlfn.FLOOR.MATH" , SC_OPCODE_FLOOR },
617     { "_xlfn.FLOOR.PRECISE" , SC_OPCODE_FLOOR_PRECISE },
618     { "ROUND" , SC_OPCODE_ROUND },
619     { "ROUNDUP" , SC_OPCODE_ROUND_UP },
620     { "ROUNDDOWN" , SC_OPCODE_ROUND_DOWN },
621     { "TRUNC" , SC_OPCODE_TRUNC },
622     { "LOG" , SC_OPCODE_LOG },
623     { "POWER" , SC_OPCODE_POWER },
624     { "GCD" , SC_OPCODE_GCD },
625     { "LCM" , SC_OPCODE_LCM },
626     { "MOD" , SC_OPCODE_MOD },
627     { "SUMPRODUCT" , SC_OPCODE_SUM_PRODUCT },
628     { "SUMSQ" , SC_OPCODE_SUM_SQ },
629     { "SUMX2MY2" , SC_OPCODE_SUM_X2MY2 },
630     { "SUMX2PY2" , SC_OPCODE_SUM_X2DY2 },
631     { "SUMXMY2" , SC_OPCODE_SUM_XMY2 },
632     { "DATE" , SC_OPCODE_GET_DATE },
633     { "TIME" , SC_OPCODE_GET_TIME },
634     { "_xlfn.DAYS" , SC_OPCODE_GET_DIFF_DATE },
635     { "DAYS360" , SC_OPCODE_GET_DIFF_DATE_360 },
636     { "DATEDIF" , SC_OPCODE_GET_DATEDIF },
637     { "MIN" , SC_OPCODE_MIN },
638     { "MINA" , SC_OPCODE_MIN_A },
639     { "MAX" , SC_OPCODE_MAX },
640     { "MAXA" , SC_OPCODE_MAX_A },
641     { "SUM" , SC_OPCODE_SUM },
642     { "PRODUCT" , SC_OPCODE_PRODUCT },
643     { "AVERAGE" , SC_OPCODE_AVERAGE },
644     { "AVERAGEA" , SC_OPCODE_AVERAGE_A },
645     { "COUNT" , SC_OPCODE_COUNT },
646     { "COUNTA" , SC_OPCODE_COUNT_2 },
647     { "NPV" , SC_OPCODE_NPV },
648     { "IRR" , SC_OPCODE_IRR },
649     { "MIRR" , SC_OPCODE_MIRR },
650     { "ISPMT" , SC_OPCODE_ISPMT },
651     { "VAR" , SC_OPCODE_VAR },
652     { "VARA" , SC_OPCODE_VAR_A },
653     { "VARP" , SC_OPCODE_VAR_P },
654     { "VARPA" , SC_OPCODE_VAR_P_A },
655     { "_xlfn.VAR.P" , SC_OPCODE_VAR_P_MS },
656     { "_xlfn.VAR.S" , SC_OPCODE_VAR_S },
657     { "STDEV" , SC_OPCODE_ST_DEV },
658     { "STDEVA" , SC_OPCODE_ST_DEV_A },
659     { "STDEVP" , SC_OPCODE_ST_DEV_P },
660     { "STDEVPA" , SC_OPCODE_ST_DEV_P_A },
661     { "_xlfn.STDEV.P" , SC_OPCODE_ST_DEV_P_MS },
662     { "_xlfn.STDEV.S" , SC_OPCODE_ST_DEV_S },
663     { "B" , SC_OPCODE_B },
664     { "NORMDIST" , SC_OPCODE_NORM_DIST },
665     { "_xlfn.NORM.DIST" , SC_OPCODE_NORM_DIST_MS },
666     { "EXPONDIST" , SC_OPCODE_EXP_DIST },
667     { "_xlfn.EXPON.DIST" , SC_OPCODE_EXP_DIST_MS },
668     { "BINOMDIST" , SC_OPCODE_BINOM_DIST },
669     { "_xlfn.BINOM.DIST" , SC_OPCODE_BINOM_DIST_MS },
670     { "POISSON" , SC_OPCODE_POISSON_DIST },
671     { "_xlfn.POISSON.DIST" , SC_OPCODE_POISSON_DIST_MS },
672     { "COMBIN" , SC_OPCODE_COMBIN },
673     { "_xlfn.COMBINA" , SC_OPCODE_COMBIN_A },
674     { "PERMUT" , SC_OPCODE_PERMUT },
675     { "_xlfn.PERMUTATIONA" , SC_OPCODE_PERMUTATION_A },
676     { "PV" , SC_OPCODE_PV },
677     { "SYD" , SC_OPCODE_SYD },
678     { "DDB" , SC_OPCODE_DDB },
679     { "DB" , SC_OPCODE_DB },
680     { "VDB" , SC_OPCODE_VBD },
681     { "_xlfn.PDURATION" , SC_OPCODE_PDURATION },
682     { "SLN" , SC_OPCODE_SLN },
683     { "PMT" , SC_OPCODE_PMT },
684     { "COLUMNS" , SC_OPCODE_COLUMNS },
685     { "ROWS" , SC_OPCODE_ROWS },
686     { "_xlfn.SHEETS" , SC_OPCODE_SHEETS },
687     { "COLUMN" , SC_OPCODE_COLUMN },
688     { "ROW" , SC_OPCODE_ROW },
689     { "_xlfn.SHEET" , SC_OPCODE_SHEET },
690     { "_xlfn.RRI" , SC_OPCODE_RRI },
691     { "FV" , SC_OPCODE_FV },
692     { "NPER" , SC_OPCODE_NPER },
693     { "RATE" , SC_OPCODE_RATE },
694     { "IPMT" , SC_OPCODE_IPMT },
695     { "PPMT" , SC_OPCODE_PPMT },
696     { "CUMIPMT" , SC_OPCODE_CUM_IPMT },
697     { "CUMPRINC" , SC_OPCODE_CUM_PRINC },
698     { "EFFECT" , SC_OPCODE_EFFECT },
699     { "NOMINAL" , SC_OPCODE_NOMINAL },
700     { "SUBTOTAL" , SC_OPCODE_SUB_TOTAL },
701     { "DSUM" , SC_OPCODE_DB_SUM },
702     { "DCOUNT" , SC_OPCODE_DB_COUNT },
703     { "DCOUNTA" , SC_OPCODE_DB_COUNT_2 },
704     { "DAVERAGE" , SC_OPCODE_DB_AVERAGE },
705     { "DGET" , SC_OPCODE_DB_GET },
706     { "DMAX" , SC_OPCODE_DB_MAX },
707     { "DMIN" , SC_OPCODE_DB_MIN },
708     { "DPRODUCT" , SC_OPCODE_DB_PRODUCT },
709     { "DSTDEV" , SC_OPCODE_DB_STD_DEV },
710     { "DSTDEVP" , SC_OPCODE_DB_STD_DEV_P },
711     { "DVAR" , SC_OPCODE_DB_VAR },
712     { "DVARP" , SC_OPCODE_DB_VAR_P },
713     { "INDIRECT" , SC_OPCODE_INDIRECT },
714     { "ADDRESS" , SC_OPCODE_ADDRESS },
715     { "MATCH" , SC_OPCODE_MATCH },
716     { "COUNTBLANK" , SC_OPCODE_COUNT_EMPTY_CELLS },
717     { "COUNTIF" , SC_OPCODE_COUNT_IF },
718     { "SUMIF" , SC_OPCODE_SUM_IF },
719     { "AVERAGEIF" , SC_OPCODE_AVERAGE_IF },
720     { "SUMIFS" , SC_OPCODE_SUM_IFS },
721     { "AVERAGEIFS" , SC_OPCODE_AVERAGE_IFS },
722     { "COUNTIFS" , SC_OPCODE_COUNT_IFS },
723     { "LOOKUP" , SC_OPCODE_LOOKUP },
724     { "VLOOKUP" , SC_OPCODE_V_LOOKUP },
725     { "HLOOKUP" , SC_OPCODE_H_LOOKUP },
726     { "_xlfn.ORG.OPENOFFICE.MULTIRANGE" , SC_OPCODE_MULTI_AREA }, // legacy for range list (union)
727     { "OFFSET" , SC_OPCODE_OFFSET },
728     { "INDEX" , SC_OPCODE_INDEX },
729     { "AREAS" , SC_OPCODE_AREAS },
730     { "DOLLAR" , SC_OPCODE_CURRENCY },
731     { "REPLACE" , SC_OPCODE_REPLACE },
732     { "FIXED" , SC_OPCODE_FIXED },
733     { "FIND" , SC_OPCODE_FIND },
734     { "EXACT" , SC_OPCODE_EXACT },
735     { "LEFT" , SC_OPCODE_LEFT },
736     { "RIGHT" , SC_OPCODE_RIGHT },
737     { "SEARCH" , SC_OPCODE_SEARCH },
738     { "MID" , SC_OPCODE_MID },
739     { "LENB" , SC_OPCODE_LENB },
740     { "RIGHTB" , SC_OPCODE_RIGHTB },
741     { "LEFTB" , SC_OPCODE_LEFTB },
742     { "REPLACEB" , SC_OPCODE_REPLACEB },
743     { "FINDB" , SC_OPCODE_FINDB },
744     { "SEARCHB" , SC_OPCODE_SEARCHB },
745     { "MIDB" , SC_OPCODE_MIDB },
746     { "TEXT" , SC_OPCODE_TEXT },
747     { "SUBSTITUTE" , SC_OPCODE_SUBSTITUTE },
748     { "REPT" , SC_OPCODE_REPT },
749     { "CONCATENATE" , SC_OPCODE_CONCAT },
750     { "_xlfn.CONCAT" , SC_OPCODE_CONCAT_MS },
751     { "_xlfn.TEXTJOIN" , SC_OPCODE_TEXTJOIN_MS },
752     { "_xlfn.IFS" , SC_OPCODE_IFS_MS },
753     { "_xlfn.SWITCH" , SC_OPCODE_SWITCH_MS },
754     { "_xlfn.MINIFS" , SC_OPCODE_MINIFS_MS },
755     { "_xlfn.MAXIFS" , SC_OPCODE_MAXIFS_MS },
756     { "MVALUE" , SC_OPCODE_MAT_VALUE },
757     { "MDETERM" , SC_OPCODE_MAT_DET },
758     { "MINVERSE" , SC_OPCODE_MAT_INV },
759     { "MMULT" , SC_OPCODE_MAT_MULT },
760     { "TRANSPOSE" , SC_OPCODE_MAT_TRANS },
761     { "_xlfn.MUNIT" , SC_OPCODE_MATRIX_UNIT },
762     { "_xlfn.ORG.OPENOFFICE.GOALSEEK" , SC_OPCODE_BACK_SOLVER },
763     { "HYPGEOMDIST" , SC_OPCODE_HYP_GEOM_DIST },
764     { "_xlfn.HYPGEOM.DIST" , SC_OPCODE_HYP_GEOM_DIST_MS },
765     { "LOGNORMDIST" , SC_OPCODE_LOG_NORM_DIST },
766     { "_xlfn.LOGNORM.DIST" , SC_OPCODE_LOG_NORM_DIST_MS },
767     { "TDIST" , SC_OPCODE_T_DIST },
768     { "_xlfn.T.DIST.2T" , SC_OPCODE_T_DIST_2T },
769     { "_xlfn.T.DIST" , SC_OPCODE_T_DIST_MS },
770     { "_xlfn.T.DIST.RT" , SC_OPCODE_T_DIST_RT },
771     { "FDIST" , SC_OPCODE_F_DIST },
772     { "_xlfn.F.DIST" , SC_OPCODE_F_DIST_LT },
773     { "_xlfn.F.DIST.RT" , SC_OPCODE_F_DIST_RT },
774     { "CHIDIST" , SC_OPCODE_CHI_DIST },
775     { "_xlfn.CHISQ.DIST.RT" , SC_OPCODE_CHI_DIST_MS },
776     { "WEIBULL" , SC_OPCODE_WEIBULL },
777     { "_xlfn.WEIBULL.DIST" , SC_OPCODE_WEIBULL_MS },
778     { "NEGBINOMDIST" , SC_OPCODE_NEG_BINOM_VERT },
779     { "_xlfn.NEGBINOM.DIST" , SC_OPCODE_NEG_BINOM_DIST_MS },
780     { "CRITBINOM" , SC_OPCODE_CRIT_BINOM },
781     { "_xlfn.BINOM.INV" , SC_OPCODE_BINOM_INV },
782     { "KURT" , SC_OPCODE_KURT },
783     { "HARMEAN" , SC_OPCODE_HAR_MEAN },
784     { "GEOMEAN" , SC_OPCODE_GEO_MEAN },
785     { "STANDARDIZE" , SC_OPCODE_STANDARD },
786     { "AVEDEV" , SC_OPCODE_AVE_DEV },
787     { "SKEW" , SC_OPCODE_SKEW },
788     { "_xlfn.SKEW.P" , SC_OPCODE_SKEWP },
789     { "DEVSQ" , SC_OPCODE_DEV_SQ },
790     { "MEDIAN" , SC_OPCODE_MEDIAN },
791     { "MODE" , SC_OPCODE_MODAL_VALUE },
792     { "_xlfn.MODE.SNGL" , SC_OPCODE_MODAL_VALUE_MS },
793     { "_xlfn.MODE.MULT" , SC_OPCODE_MODAL_VALUE_MULTI },
794     { "ZTEST" , SC_OPCODE_Z_TEST },
795     { "_xlfn.Z.TEST" , SC_OPCODE_Z_TEST_MS },
796     { "_xlfn.AGGREGATE" , SC_OPCODE_AGGREGATE },
797     { "TTEST" , SC_OPCODE_T_TEST },
798     { "_xlfn.T.TEST" , SC_OPCODE_T_TEST_MS },
799     { "RANK" , SC_OPCODE_RANK },
800     { "PERCENTILE" , SC_OPCODE_PERCENTILE },
801     { "PERCENTRANK" , SC_OPCODE_PERCENT_RANK },
802     { "_xlfn.PERCENTILE.INC" , SC_OPCODE_PERCENTILE_INC },
803     { "_xlfn.PERCENTRANK.INC" , SC_OPCODE_PERCENT_RANK_INC },
804     { "_xlfn.QUARTILE.INC" , SC_OPCODE_QUARTILE_INC },
805     { "_xlfn.RANK.EQ" , SC_OPCODE_RANK_EQ },
806     { "_xlfn.PERCENTILE.EXC" , SC_OPCODE_PERCENTILE_EXC },
807     { "_xlfn.PERCENTRANK.EXC" , SC_OPCODE_PERCENT_RANK_EXC },
808     { "_xlfn.QUARTILE.EXC" , SC_OPCODE_QUARTILE_EXC },
809     { "_xlfn.RANK.AVG" , SC_OPCODE_RANK_AVG },
810     { "LARGE" , SC_OPCODE_LARGE },
811     { "SMALL" , SC_OPCODE_SMALL },
812     { "FREQUENCY" , SC_OPCODE_FREQUENCY },
813     { "QUARTILE" , SC_OPCODE_QUARTILE },
814     { "NORMINV" , SC_OPCODE_NORM_INV },
815     { "_xlfn.NORM.INV" , SC_OPCODE_NORM_INV_MS },
816     { "CONFIDENCE" , SC_OPCODE_CONFIDENCE },
817     { "_xlfn.CONFIDENCE.NORM" , SC_OPCODE_CONFIDENCE_N },
818     { "_xlfn.CONFIDENCE.T" , SC_OPCODE_CONFIDENCE_T },
819     { "FTEST" , SC_OPCODE_F_TEST },
820     { "_xlfn.F.TEST" , SC_OPCODE_F_TEST_MS },
821     { "TRIMMEAN" , SC_OPCODE_TRIM_MEAN },
822     { "PROB" , SC_OPCODE_PROB },
823     { "CORREL" , SC_OPCODE_CORREL },
824     { "COVAR" , SC_OPCODE_COVAR },
825     { "_xlfn.COVARIANCE.P" , SC_OPCODE_COVARIANCE_P },
826     { "_xlfn.COVARIANCE.S" , SC_OPCODE_COVARIANCE_S },
827     { "PEARSON" , SC_OPCODE_PEARSON },
828     { "RSQ" , SC_OPCODE_RSQ },
829     { "STEYX" , SC_OPCODE_STEYX },
830     { "SLOPE" , SC_OPCODE_SLOPE },
831     { "INTERCEPT" , SC_OPCODE_INTERCEPT },
832     { "TREND" , SC_OPCODE_TREND },
833     { "GROWTH" , SC_OPCODE_GROWTH },
834     { "LINEST" , SC_OPCODE_LINEST },
835     { "LOGEST" , SC_OPCODE_LOGEST },
836     { "FORECAST" , SC_OPCODE_FORECAST },
837     { "_xlfn.FORECAST.ETS" , SC_OPCODE_FORECAST_ETS_ADD },
838     { "_xlfn.FORECAST.ETS.SEASONALITY" , SC_OPCODE_FORECAST_ETS_SEA },
839     { "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.MULT" , SC_OPCODE_FORECAST_ETS_MUL },
840     { "_xlfn.FORECAST.ETS.CONFINT" , SC_OPCODE_FORECAST_ETS_PIA },
841     { "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.PI.MULT" , SC_OPCODE_FORECAST_ETS_PIM },
842     { "_xlfn.FORECAST.ETS.STAT" , SC_OPCODE_FORECAST_ETS_STA },
843     { "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.STAT.MULT" , SC_OPCODE_FORECAST_ETS_STM },
844     { "_xlfn.FORECAST.LINEAR" , SC_OPCODE_FORECAST_LIN },
845     { "CHIINV" , SC_OPCODE_CHI_INV },
846     { "_xlfn.CHISQ.INV.RT" , SC_OPCODE_CHI_INV_MS },
847     { "GAMMADIST" , SC_OPCODE_GAMMA_DIST },
848     { "_xlfn.GAMMA.DIST" , SC_OPCODE_GAMMA_DIST_MS },
849     { "GAMMAINV" , SC_OPCODE_GAMMA_INV },
850     { "_xlfn.GAMMA.INV" , SC_OPCODE_GAMMA_INV_MS },
851     { "TINV" , SC_OPCODE_T_INV },
852     { "_xlfn.T.INV.2T" , SC_OPCODE_T_INV_2T },
853     { "_xlfn.T.INV" , SC_OPCODE_T_INV_MS },
854     { "FINV" , SC_OPCODE_F_INV },
855     { "_xlfn.F.INV" , SC_OPCODE_F_INV_LT },
856     { "_xlfn.F.INV.RT" , SC_OPCODE_F_INV_RT },
857     { "CHITEST" , SC_OPCODE_CHI_TEST },
858     { "_xlfn.CHISQ.TEST" , SC_OPCODE_CHI_TEST_MS },
859     { "LOGINV" , SC_OPCODE_LOG_INV },
860     { "_xlfn.LOGNORM.INV" , SC_OPCODE_LOG_INV_MS },
861     { "TABLE" , SC_OPCODE_TABLE_OP },
862     { "BETADIST" , SC_OPCODE_BETA_DIST },
863     { "BETAINV" , SC_OPCODE_BETA_INV },
864     { "_xlfn.BETA.DIST" , SC_OPCODE_BETA_DIST_MS },
865     { "_xlfn.BETA.INV" , SC_OPCODE_BETA_INV_MS },
866     { "WEEKNUM" , SC_OPCODE_WEEK },
867     { "_xlfn.ISOWEEKNUM" , SC_OPCODE_ISOWEEKNUM },
868     { "_xlfn.ORG.LIBREOFFICE.WEEKNUM_OOO" , SC_OPCODE_WEEKNUM_OOO },
869     { "_xlfn.ORG.OPENOFFICE.EASTERSUNDAY" , SC_OPCODE_EASTERSUNDAY },
870     { "WEEKDAY" , SC_OPCODE_GET_DAY_OF_WEEK },
871     { "NETWORKDAYS" , SC_OPCODE_NETWORKDAYS },
872     { "NETWORKDAYS.INTL" , SC_OPCODE_NETWORKDAYS_MS },
873     { "WORKDAY.INTL" , SC_OPCODE_WORKDAY_MS },
874     { "#NAME!" , SC_OPCODE_NO_NAME },
875     { "_xlfn.ORG.OPENOFFICE.STYLE" , SC_OPCODE_STYLE },
876     { "DDE" , SC_OPCODE_DDE },
877     { "_xlfn.BASE" , SC_OPCODE_BASE },
878     { "_xlfn.DECIMAL" , SC_OPCODE_DECIMAL },
879     { "_xlfn.ORG.OPENOFFICE.CONVERT" , SC_OPCODE_CONVERT_OOO },
880     { "ROMAN" , SC_OPCODE_ROMAN },
881     { "_xlfn.ARABIC" , SC_OPCODE_ARABIC },
882     { "HYPERLINK" , SC_OPCODE_HYPERLINK },
883     { "INFO" , SC_OPCODE_INFO },
884     { "_xlfn.BAHTTEXT" , SC_OPCODE_BAHTTEXT },
885     { "GETPIVOTDATA" , SC_OPCODE_GET_PIVOT_DATA },
886     { "EUROCONVERT" , SC_OPCODE_EUROCONVERT },
887     { "_xlfn.NUMBERVALUE" , SC_OPCODE_NUMBERVALUE },
888     { "_xlfn.GAMMA" , SC_OPCODE_GAMMA },
889     { "CHISQDIST" , SC_OPCODE_CHISQ_DIST },
890     { "_xlfn.CHISQ.DIST" , SC_OPCODE_CHISQ_DIST_MS },
891     { "CHISQINV" , SC_OPCODE_CHISQ_INV },
892     { "_xlfn.CHISQ.INV" , SC_OPCODE_CHISQ_INV_MS },
893     { "_xlfn.BITAND" , SC_OPCODE_BITAND },
894     { "_xlfn.BITOR" , SC_OPCODE_BITOR },
895     { "_xlfn.BITXOR" , SC_OPCODE_BITXOR },
896     { "_xlfn.BITRSHIFT" , SC_OPCODE_BITRSHIFT },
897     { "_xlfn.BITLSHIFT" , SC_OPCODE_BITLSHIFT },
898     { "#NULL!" , SC_OPCODE_ERROR_NULL },
899     { "#DIV/0!" , SC_OPCODE_ERROR_DIVZERO },
900     { "#VALUE!" , SC_OPCODE_ERROR_VALUE },
901     { "#REF!" , SC_OPCODE_ERROR_REF },
902     { "#NAME?" , SC_OPCODE_ERROR_NAME },
903     { "#NUM!" , SC_OPCODE_ERROR_NUM },
904     { "#N/A" , SC_OPCODE_ERROR_NA },
905     /* END defined ERROR.TYPE() values. */
906     { "_xlfn.FILTERXML" , SC_OPCODE_FILTERXML },
907     { "_xlfn.WEBSERVICE" , SC_OPCODE_WEBSERVICE },
908     { "_xlfn.ORG.LIBREOFFICE.COLOR" , SC_OPCODE_COLOR },
909     { "_xlfn.ERF.PRECISE" , SC_OPCODE_ERF_MS },
910     { "_xlfn.ERFC.PRECISE" , SC_OPCODE_ERFC_MS },
911     { "_xlfn.ENCODEURL" , SC_OPCODE_ENCODEURL },
912     { "_xlfn.ORG.LIBREOFFICE.RAWSUBTRACT" , SC_OPCODE_RAWSUBTRACT },
913     { "_xlfn.ORG.LIBREOFFICE.ROUNDSIG" , SC_OPCODE_ROUNDSIG },
914     { "_xlfn.ORG.LIBREOFFICE.REGEX" , SC_OPCODE_REGEX },
915     { "_xlfn.ORG.LIBREOFFICE.FOURIER", SC_OPCODE_FOURIER },
916     { "_xlfn.ORG.LIBREOFFICE.RAND.NV" , SC_OPCODE_RANDOM_NV },
917     { "_xlfn.ORG.LIBREOFFICE.RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV },
918     { nullptr,  -1 }
921 /** These English names are used to store/load ODF v1.0/v1.1. */
922 // DO NOT CHANGE NAMES! Only add functions.
923 // If there is a reason for another name for some function then add an
924 // *additional* name to be recognized to sc/source/core/tool/compiler.cxx
925 // ScCompiler::IsOpCode() in the else if (mxSymbols->isPODF()) block.
926 const std::pair<const char*, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_PODF[] =
928     { "IF" , SC_OPCODE_IF },
929     { "IFERROR" , SC_OPCODE_IF_ERROR },
930     { "IFNA" , SC_OPCODE_IF_NA },
931     { "CHOOSE" , SC_OPCODE_CHOOSE },
932     { "(" , SC_OPCODE_OPEN },
933     { ")" , SC_OPCODE_CLOSE },
934     { "[" , SC_OPCODE_TABLE_REF_OPEN },
935     { "]" , SC_OPCODE_TABLE_REF_CLOSE },
936     { "#All" , SC_OPCODE_TABLE_REF_ITEM_ALL },
937     { "#Headers" , SC_OPCODE_TABLE_REF_ITEM_HEADERS },
938     { "#Data" , SC_OPCODE_TABLE_REF_ITEM_DATA },
939     { "#Totals" , SC_OPCODE_TABLE_REF_ITEM_TOTALS },
940     { "#This Row" , SC_OPCODE_TABLE_REF_ITEM_THIS_ROW },
941     { "{" , SC_OPCODE_ARRAY_OPEN },
942     { "}" , SC_OPCODE_ARRAY_CLOSE },
943     { "|" , SC_OPCODE_ARRAY_ROW_SEP },
944     { ";" , SC_OPCODE_ARRAY_COL_SEP },
945     { ";" , SC_OPCODE_SEP },
946     { "%" , SC_OPCODE_PERCENT_SIGN },
947     { "+" , SC_OPCODE_ADD },
948     { "-" , SC_OPCODE_SUB },
949     { "*" , SC_OPCODE_MUL },
950     { "/" , SC_OPCODE_DIV },
951     { "&" , SC_OPCODE_AMPERSAND },
952     { "^" , SC_OPCODE_POW },
953     { "=" , SC_OPCODE_EQUAL },
954     { "<>" , SC_OPCODE_NOT_EQUAL },
955     { "<" , SC_OPCODE_LESS },
956     { ">" , SC_OPCODE_GREATER },
957     { "<=" , SC_OPCODE_LESS_EQUAL },
958     { ">=" , SC_OPCODE_GREATER_EQUAL },
959     { "AND" , SC_OPCODE_AND },
960     { "OR" , SC_OPCODE_OR },
961     { "XOR" , SC_OPCODE_XOR },
962     { "!" , SC_OPCODE_INTERSECT },
963     { "~" , SC_OPCODE_UNION },
964     { ":" , SC_OPCODE_RANGE },
965     { "NOT" , SC_OPCODE_NOT },
966     { "NEG" , SC_OPCODE_NEG },
967     { "-" , SC_OPCODE_NEG_SUB },
968     { "PI" , SC_OPCODE_PI },
969     { "RAND" , SC_OPCODE_RANDOM },
970     { "TRUE" , SC_OPCODE_TRUE },
971     { "FALSE" , SC_OPCODE_FALSE },
972     { "TODAY" , SC_OPCODE_GET_ACT_DATE },
973     { "NOW" , SC_OPCODE_GET_ACT_TIME },
974     { "NA" , SC_OPCODE_NO_VALUE },
975     { "CURRENT" , SC_OPCODE_CURRENT },
976     { "DEGREES" , SC_OPCODE_DEG },
977     { "RADIANS" , SC_OPCODE_RAD },
978     { "SIN" , SC_OPCODE_SIN },
979     { "COS" , SC_OPCODE_COS },
980     { "TAN" , SC_OPCODE_TAN },
981     { "COT" , SC_OPCODE_COT },
982     { "ASIN" , SC_OPCODE_ARC_SIN },
983     { "ACOS" , SC_OPCODE_ARC_COS },
984     { "ATAN" , SC_OPCODE_ARC_TAN },
985     { "ACOT" , SC_OPCODE_ARC_COT },
986     { "SINH" , SC_OPCODE_SIN_HYP },
987     { "COSH" , SC_OPCODE_COS_HYP },
988     { "TANH" , SC_OPCODE_TAN_HYP },
989     { "COTH" , SC_OPCODE_COT_HYP },
990     { "ASINH" , SC_OPCODE_ARC_SIN_HYP },
991     { "ACOSH" , SC_OPCODE_ARC_COS_HYP },
992     { "ATANH" , SC_OPCODE_ARC_TAN_HYP },
993     { "ACOTH" , SC_OPCODE_ARC_COT_HYP },
994     { "CSC" , SC_OPCODE_COSECANT },
995     { "SEC" , SC_OPCODE_SECANT },
996     { "CSCH" , SC_OPCODE_COSECANT_HYP },
997     { "SECH" , SC_OPCODE_SECANT_HYP },
998     { "EXP" , SC_OPCODE_EXP },
999     { "LN" , SC_OPCODE_LN },
1000     { "SQRT" , SC_OPCODE_SQRT },
1001     { "FACT" , SC_OPCODE_FACT },
1002     { "YEAR" , SC_OPCODE_GET_YEAR },
1003     { "MONTH" , SC_OPCODE_GET_MONTH },
1004     { "DAY" , SC_OPCODE_GET_DAY },
1005     { "HOUR" , SC_OPCODE_GET_HOUR },
1006     { "MINUTE" , SC_OPCODE_GET_MIN },
1007     { "SECOND" , SC_OPCODE_GET_SEC },
1008     { "SIGN" , SC_OPCODE_PLUS_MINUS },
1009     { "ABS" , SC_OPCODE_ABS },
1010     { "INT" , SC_OPCODE_INT },
1011     { "PHI" , SC_OPCODE_PHI },
1012     { "GAUSS" , SC_OPCODE_GAUSS },
1013     { "ISBLANK" , SC_OPCODE_IS_EMPTY },
1014     { "ISTEXT" , SC_OPCODE_IS_STRING },
1015     { "ISNONTEXT" , SC_OPCODE_IS_NON_STRING },
1016     { "ISLOGICAL" , SC_OPCODE_IS_LOGICAL },
1017     { "TYPE" , SC_OPCODE_TYPE },
1018     { "CELL" , SC_OPCODE_CELL },
1019     { "ISREF" , SC_OPCODE_IS_REF },
1020     { "ISNUMBER" , SC_OPCODE_IS_VALUE },
1021     { "ISFORMULA" , SC_OPCODE_IS_FORMULA },
1022     { "ISNA" , SC_OPCODE_IS_NV },
1023     { "ISERR" , SC_OPCODE_IS_ERR },
1024     { "ISERROR" , SC_OPCODE_IS_ERROR },
1025     { "ISEVEN" , SC_OPCODE_IS_EVEN },
1026     { "ISODD" , SC_OPCODE_IS_ODD },
1027     { "N" , SC_OPCODE_N },
1028     { "DATEVALUE" , SC_OPCODE_GET_DATE_VALUE },
1029     { "TIMEVALUE" , SC_OPCODE_GET_TIME_VALUE },
1030     { "CODE" , SC_OPCODE_CODE },
1031     { "TRIM" , SC_OPCODE_TRIM },
1032     { "UPPER" , SC_OPCODE_UPPER },
1033     { "PROPER" , SC_OPCODE_PROPER },
1034     { "LOWER" , SC_OPCODE_LOWER },
1035     { "LEN" , SC_OPCODE_LEN },
1036     { "T" , SC_OPCODE_T },
1037     { "VALUE" , SC_OPCODE_VALUE },
1038     { "CLEAN" , SC_OPCODE_CLEAN },
1039     { "CHAR" , SC_OPCODE_CHAR },
1040     { "JIS" , SC_OPCODE_JIS },
1041     { "ASC" , SC_OPCODE_ASC },
1042     { "UNICODE" , SC_OPCODE_UNICODE },
1043     { "UNICHAR" , SC_OPCODE_UNICHAR },
1044     { "LOG10" , SC_OPCODE_LOG10 },
1045     { "EVEN" , SC_OPCODE_EVEN },
1046     { "ODD" , SC_OPCODE_ODD },
1047     { "NORMSDIST" , SC_OPCODE_STD_NORM_DIST },
1048     { "NORM.S.DIST" , SC_OPCODE_STD_NORM_DIST_MS },
1049     { "FISHER" , SC_OPCODE_FISHER },
1050     { "FISHERINV" , SC_OPCODE_FISHER_INV },
1051     { "NORMSINV" , SC_OPCODE_S_NORM_INV },
1052     { "NORM.S.INV" , SC_OPCODE_S_NORM_INV_MS },
1053     { "GAMMALN" , SC_OPCODE_GAMMA_LN },
1054     { "GAMMALN.PRECISE" , SC_OPCODE_GAMMA_LN_MS },
1055     { "ERRORTYPE" , SC_OPCODE_ERROR_TYPE },
1056     { "ERROR.TYPE" , SC_OPCODE_ERROR_TYPE_ODF },
1057     { "FORMULA" , SC_OPCODE_FORMULA },
1058     { "ATAN2" , SC_OPCODE_ARC_TAN_2 },
1059     { "CEILING.MATH" , SC_OPCODE_CEIL_MATH },
1060     { "CEILING" , SC_OPCODE_CEIL },
1061     { "CEILING.XCL" , SC_OPCODE_CEIL_MS },
1062     { "CEILING.PRECISE" , SC_OPCODE_CEIL_PRECISE },
1063     { "ISO.CEILING" , SC_OPCODE_CEIL_ISO },
1064     { "FLOOR" , SC_OPCODE_FLOOR },
1065     { "FLOOR.XCL" , SC_OPCODE_FLOOR_MS },
1066     { "FLOOR.MATH" , SC_OPCODE_FLOOR_MATH },
1067     { "FLOOR.PRECISE" , SC_OPCODE_FLOOR_PRECISE },
1068     { "ROUND" , SC_OPCODE_ROUND },
1069     { "ROUNDUP" , SC_OPCODE_ROUND_UP },
1070     { "ROUNDDOWN" , SC_OPCODE_ROUND_DOWN },
1071     { "TRUNC" , SC_OPCODE_TRUNC },
1072     { "LOG" , SC_OPCODE_LOG },
1073     { "POWER" , SC_OPCODE_POWER },
1074     { "GCD" , SC_OPCODE_GCD },
1075     { "LCM" , SC_OPCODE_LCM },
1076     { "MOD" , SC_OPCODE_MOD },
1077     { "SUMPRODUCT" , SC_OPCODE_SUM_PRODUCT },
1078     { "SUMSQ" , SC_OPCODE_SUM_SQ },
1079     { "SUMX2MY2" , SC_OPCODE_SUM_X2MY2 },
1080     { "SUMX2PY2" , SC_OPCODE_SUM_X2DY2 },
1081     { "SUMXMY2" , SC_OPCODE_SUM_XMY2 },
1082     { "DATE" , SC_OPCODE_GET_DATE },
1083     { "TIME" , SC_OPCODE_GET_TIME },
1084     { "DAYS" , SC_OPCODE_GET_DIFF_DATE },
1085     { "DAYS360" , SC_OPCODE_GET_DIFF_DATE_360 },
1086     { "DATEDIF" , SC_OPCODE_GET_DATEDIF },
1087     { "MIN" , SC_OPCODE_MIN },
1088     { "MINA" , SC_OPCODE_MIN_A },
1089     { "MAX" , SC_OPCODE_MAX },
1090     { "MAXA" , SC_OPCODE_MAX_A },
1091     { "SUM" , SC_OPCODE_SUM },
1092     { "PRODUCT" , SC_OPCODE_PRODUCT },
1093     { "AVERAGE" , SC_OPCODE_AVERAGE },
1094     { "AVERAGEA" , SC_OPCODE_AVERAGE_A },
1095     { "COUNT" , SC_OPCODE_COUNT },
1096     { "COUNTA" , SC_OPCODE_COUNT_2 },
1097     { "NPV" , SC_OPCODE_NPV },
1098     { "IRR" , SC_OPCODE_IRR },
1099     { "MIRR" , SC_OPCODE_MIRR },
1100     { "ISPMT" , SC_OPCODE_ISPMT },
1101     { "VAR" , SC_OPCODE_VAR },
1102     { "VARA" , SC_OPCODE_VAR_A },
1103     { "VARP" , SC_OPCODE_VAR_P },
1104     { "VARPA" , SC_OPCODE_VAR_P_A },
1105     { "VAR.P" , SC_OPCODE_VAR_P_MS },
1106     { "VAR.S" , SC_OPCODE_VAR_S },
1107     { "STDEV" , SC_OPCODE_ST_DEV },
1108     { "STDEVA" , SC_OPCODE_ST_DEV_A },
1109     { "STDEVP" , SC_OPCODE_ST_DEV_P },
1110     { "STDEVPA" , SC_OPCODE_ST_DEV_P_A },
1111     { "STDEV.P" , SC_OPCODE_ST_DEV_P_MS },
1112     { "STDEV.S" , SC_OPCODE_ST_DEV_S },
1113     { "B" , SC_OPCODE_B },
1114     { "NORMDIST" , SC_OPCODE_NORM_DIST },
1115     { "NORM.DIST" , SC_OPCODE_NORM_DIST_MS },
1116     { "EXPONDIST" , SC_OPCODE_EXP_DIST },
1117     { "EXPON.DIST" , SC_OPCODE_EXP_DIST_MS },
1118     { "BINOMDIST" , SC_OPCODE_BINOM_DIST },
1119     { "BINOM.DIST" , SC_OPCODE_BINOM_DIST_MS },
1120     { "POISSON" , SC_OPCODE_POISSON_DIST },
1121     { "POISSON.DIST" , SC_OPCODE_POISSON_DIST_MS },
1122     { "COMBIN" , SC_OPCODE_COMBIN },
1123     { "COMBINA" , SC_OPCODE_COMBIN_A },
1124     { "PERMUT" , SC_OPCODE_PERMUT },
1125     { "PERMUTATIONA" , SC_OPCODE_PERMUTATION_A },
1126     { "PV" , SC_OPCODE_PV },
1127     { "SYD" , SC_OPCODE_SYD },
1128     { "DDB" , SC_OPCODE_DDB },
1129     { "DB" , SC_OPCODE_DB },
1130     { "VDB" , SC_OPCODE_VBD },
1131     { "DURATION" , SC_OPCODE_PDURATION }, // wrong but ODF1.1, keep it.
1132     { "SLN" , SC_OPCODE_SLN },
1133     { "PMT" , SC_OPCODE_PMT },
1134     { "COLUMNS" , SC_OPCODE_COLUMNS },
1135     { "ROWS" , SC_OPCODE_ROWS },
1136     { "SHEETS" , SC_OPCODE_SHEETS },
1137     { "COLUMN" , SC_OPCODE_COLUMN },
1138     { "ROW" , SC_OPCODE_ROW },
1139     { "SHEET" , SC_OPCODE_SHEET },
1140     { "ZGZ" , SC_OPCODE_RRI },
1141     { "FV" , SC_OPCODE_FV },
1142     { "NPER" , SC_OPCODE_NPER },
1143     { "RATE" , SC_OPCODE_RATE },
1144     { "IPMT" , SC_OPCODE_IPMT },
1145     { "PPMT" , SC_OPCODE_PPMT },
1146     { "CUMIPMT" , SC_OPCODE_CUM_IPMT },
1147     { "CUMPRINC" , SC_OPCODE_CUM_PRINC },
1148     { "EFFECTIVE" , SC_OPCODE_EFFECT },
1149     { "NOMINAL" , SC_OPCODE_NOMINAL },
1150     { "SUBTOTAL" , SC_OPCODE_SUB_TOTAL },
1151     { "DSUM" , SC_OPCODE_DB_SUM },
1152     { "DCOUNT" , SC_OPCODE_DB_COUNT },
1153     { "DCOUNTA" , SC_OPCODE_DB_COUNT_2 },
1154     { "DAVERAGE" , SC_OPCODE_DB_AVERAGE },
1155     { "DGET" , SC_OPCODE_DB_GET },
1156     { "DMAX" , SC_OPCODE_DB_MAX },
1157     { "DMIN" , SC_OPCODE_DB_MIN },
1158     { "DPRODUCT" , SC_OPCODE_DB_PRODUCT },
1159     { "DSTDEV" , SC_OPCODE_DB_STD_DEV },
1160     { "DSTDEVP" , SC_OPCODE_DB_STD_DEV_P },
1161     { "DVAR" , SC_OPCODE_DB_VAR },
1162     { "DVARP" , SC_OPCODE_DB_VAR_P },
1163     { "INDIRECT" , SC_OPCODE_INDIRECT },
1164     { "ADDRESS" , SC_OPCODE_ADDRESS },
1165     { "MATCH" , SC_OPCODE_MATCH },
1166     { "COUNTBLANK" , SC_OPCODE_COUNT_EMPTY_CELLS },
1167     { "COUNTIF" , SC_OPCODE_COUNT_IF },
1168     { "SUMIF" , SC_OPCODE_SUM_IF },
1169     { "AVERAGEIF" , SC_OPCODE_AVERAGE_IF },
1170     { "SUMIFS" , SC_OPCODE_SUM_IFS },
1171     { "AVERAGEIFS" , SC_OPCODE_AVERAGE_IFS },
1172     { "COUNTIFS" , SC_OPCODE_COUNT_IFS },
1173     { "LOOKUP" , SC_OPCODE_LOOKUP },
1174     { "VLOOKUP" , SC_OPCODE_V_LOOKUP },
1175     { "HLOOKUP" , SC_OPCODE_H_LOOKUP },
1176     { "MULTIRANGE" , SC_OPCODE_MULTI_AREA },    // legacy for range list (union)
1177     { "OFFSET" , SC_OPCODE_OFFSET },
1178     { "INDEX" , SC_OPCODE_INDEX },
1179     { "AREAS" , SC_OPCODE_AREAS },
1180     { "DOLLAR" , SC_OPCODE_CURRENCY },
1181     { "REPLACE" , SC_OPCODE_REPLACE },
1182     { "FIXED" , SC_OPCODE_FIXED },
1183     { "FIND" , SC_OPCODE_FIND },
1184     { "EXACT" , SC_OPCODE_EXACT },
1185     { "LEFT" , SC_OPCODE_LEFT },
1186     { "RIGHT" , SC_OPCODE_RIGHT },
1187     { "SEARCH" , SC_OPCODE_SEARCH },
1188     { "MID" , SC_OPCODE_MID },
1189     { "LENB" , SC_OPCODE_LENB },
1190     { "RIGHTB" , SC_OPCODE_RIGHTB },
1191     { "LEFTB" , SC_OPCODE_LEFTB },
1192     { "REPLACEB" , SC_OPCODE_REPLACEB },
1193     { "FINDB" , SC_OPCODE_FINDB },
1194     { "SEARCHB" , SC_OPCODE_SEARCHB },
1195     { "MIDB" , SC_OPCODE_MIDB },
1196     { "TEXT" , SC_OPCODE_TEXT },
1197     { "SUBSTITUTE" , SC_OPCODE_SUBSTITUTE },
1198     { "REPT" , SC_OPCODE_REPT },
1199     { "CONCATENATE" , SC_OPCODE_CONCAT },
1200     { "CONCAT" , SC_OPCODE_CONCAT_MS },
1201     { "TEXTJOIN" , SC_OPCODE_TEXTJOIN_MS },
1202     { "IFS" , SC_OPCODE_IFS_MS },
1203     { "SWITCH" , SC_OPCODE_SWITCH_MS },
1204     { "MINIFS" , SC_OPCODE_MINIFS_MS },
1205     { "MAXIFS" , SC_OPCODE_MAXIFS_MS },
1206     { "MVALUE" , SC_OPCODE_MAT_VALUE },
1207     { "MDETERM" , SC_OPCODE_MAT_DET },
1208     { "MINVERSE" , SC_OPCODE_MAT_INV },
1209     { "MMULT" , SC_OPCODE_MAT_MULT },
1210     { "TRANSPOSE" , SC_OPCODE_MAT_TRANS },
1211     { "MUNIT" , SC_OPCODE_MATRIX_UNIT },
1212     { "GOALSEEK" , SC_OPCODE_BACK_SOLVER },
1213     { "HYPGEOMDIST" , SC_OPCODE_HYP_GEOM_DIST },
1214     { "HYPGEOM.DIST" , SC_OPCODE_HYP_GEOM_DIST_MS },
1215     { "LOGNORMDIST" , SC_OPCODE_LOG_NORM_DIST },
1216     { "LOGNORM.DIST" , SC_OPCODE_LOG_NORM_DIST_MS },
1217     { "TDIST" , SC_OPCODE_T_DIST },
1218     { "T.DIST.2T" , SC_OPCODE_T_DIST_2T },
1219     { "T.DIST" , SC_OPCODE_T_DIST_MS },
1220     { "T.DIST.RT" , SC_OPCODE_T_DIST_RT },
1221     { "FDIST" , SC_OPCODE_F_DIST },
1222     { "F.DIST" , SC_OPCODE_F_DIST_LT },
1223     { "F.DIST.RT" , SC_OPCODE_F_DIST_RT },
1224     { "CHIDIST" , SC_OPCODE_CHI_DIST },
1225     { "CHISQ.DIST.RT" , SC_OPCODE_CHI_DIST_MS },
1226     { "WEIBULL" , SC_OPCODE_WEIBULL },
1227     { "WEIBULL.DIST" , SC_OPCODE_WEIBULL_MS },
1228     { "NEGBINOMDIST" , SC_OPCODE_NEG_BINOM_VERT },
1229     { "NEGBINOM.DIST" , SC_OPCODE_NEG_BINOM_DIST_MS },
1230     { "CRITBINOM" , SC_OPCODE_CRIT_BINOM },
1231     { "BINOM.INV" , SC_OPCODE_BINOM_INV },
1232     { "KURT" , SC_OPCODE_KURT },
1233     { "HARMEAN" , SC_OPCODE_HAR_MEAN },
1234     { "GEOMEAN" , SC_OPCODE_GEO_MEAN },
1235     { "STANDARDIZE" , SC_OPCODE_STANDARD },
1236     { "AVEDEV" , SC_OPCODE_AVE_DEV },
1237     { "SKEW" , SC_OPCODE_SKEW },
1238     { "SKEWP" , SC_OPCODE_SKEWP },
1239     { "DEVSQ" , SC_OPCODE_DEV_SQ },
1240     { "MEDIAN" , SC_OPCODE_MEDIAN },
1241     { "MODE" , SC_OPCODE_MODAL_VALUE },
1242     { "MODE.SNGL" , SC_OPCODE_MODAL_VALUE_MS },
1243     { "MODE.MULT" , SC_OPCODE_MODAL_VALUE_MULTI },
1244     { "ZTEST" , SC_OPCODE_Z_TEST },
1245     { "Z.TEST" , SC_OPCODE_Z_TEST_MS },
1246     { "AGGREGATE" , SC_OPCODE_AGGREGATE },
1247     { "TTEST" , SC_OPCODE_T_TEST },
1248     { "T.TEST" , SC_OPCODE_T_TEST_MS },
1249     { "RANK" , SC_OPCODE_RANK },
1250     { "PERCENTILE" , SC_OPCODE_PERCENTILE },
1251     { "PERCENTRANK" , SC_OPCODE_PERCENT_RANK },
1252     { "PERCENTILE.INC" , SC_OPCODE_PERCENTILE_INC },
1253     { "PERCENTRANK.INC" , SC_OPCODE_PERCENT_RANK_INC },
1254     { "QUARTILE.INC" , SC_OPCODE_QUARTILE_INC },
1255     { "RANK.EQ" , SC_OPCODE_RANK_EQ },
1256     { "PERCENTILE.EXC" , SC_OPCODE_PERCENTILE_EXC },
1257     { "PERCENTRANK.EXC" , SC_OPCODE_PERCENT_RANK_EXC },
1258     { "QUARTILE.EXC" , SC_OPCODE_QUARTILE_EXC },
1259     { "RANK.AVG" , SC_OPCODE_RANK_AVG },
1260     { "LARGE" , SC_OPCODE_LARGE },
1261     { "SMALL" , SC_OPCODE_SMALL },
1262     { "FREQUENCY" , SC_OPCODE_FREQUENCY },
1263     { "QUARTILE" , SC_OPCODE_QUARTILE },
1264     { "NORMINV" , SC_OPCODE_NORM_INV },
1265     { "NORM.INV" , SC_OPCODE_NORM_INV_MS },
1266     { "CONFIDENCE" , SC_OPCODE_CONFIDENCE },
1267     { "CONFIDENCE.NORM" , SC_OPCODE_CONFIDENCE_N },
1268     { "CONFIDENCE.T" , SC_OPCODE_CONFIDENCE_T },
1269     { "FTEST" , SC_OPCODE_F_TEST },
1270     { "F.TEST" , SC_OPCODE_F_TEST_MS },
1271     { "TRIMMEAN" , SC_OPCODE_TRIM_MEAN },
1272     { "PROB" , SC_OPCODE_PROB },
1273     { "CORREL" , SC_OPCODE_CORREL },
1274     { "COVAR" , SC_OPCODE_COVAR },
1275     { "COVARIANCE.P" , SC_OPCODE_COVARIANCE_P },
1276     { "COVARIANCE.S" , SC_OPCODE_COVARIANCE_S },
1277     { "PEARSON" , SC_OPCODE_PEARSON },
1278     { "RSQ" , SC_OPCODE_RSQ },
1279     { "STEYX" , SC_OPCODE_STEYX },
1280     { "SLOPE" , SC_OPCODE_SLOPE },
1281     { "INTERCEPT" , SC_OPCODE_INTERCEPT },
1282     { "TREND" , SC_OPCODE_TREND },
1283     { "GROWTH" , SC_OPCODE_GROWTH },
1284     { "LINEST" , SC_OPCODE_LINEST },
1285     { "LOGEST" , SC_OPCODE_LOGEST },
1286     { "FORECAST" , SC_OPCODE_FORECAST },
1287     { "FORECAST.ETS.ADD" , SC_OPCODE_FORECAST_ETS_ADD },
1288     { "FORECAST.ETS.SEASONALITY" , SC_OPCODE_FORECAST_ETS_SEA },
1289     { "FORECAST.ETS.MULT" , SC_OPCODE_FORECAST_ETS_MUL },
1290     { "FORECAST.ETS.PI.ADD" , SC_OPCODE_FORECAST_ETS_PIA },
1291     { "FORECAST.ETS.PI.MULT" , SC_OPCODE_FORECAST_ETS_PIM },
1292     { "FORECAST.ETS.STAT.ADD" , SC_OPCODE_FORECAST_ETS_STA },
1293     { "FORECAST.ETS.STAT.MULT" , SC_OPCODE_FORECAST_ETS_STM },
1294     { "FORECAST.LINEAR" , SC_OPCODE_FORECAST_LIN },
1295     { "CHIINV" , SC_OPCODE_CHI_INV },
1296     { "CHISQ.INV.RT" , SC_OPCODE_CHI_INV_MS },
1297     { "GAMMADIST" , SC_OPCODE_GAMMA_DIST },
1298     { "GAMMA.DIST" , SC_OPCODE_GAMMA_DIST_MS },
1299     { "GAMMAINV" , SC_OPCODE_GAMMA_INV },
1300     { "GAMMA.INV" , SC_OPCODE_GAMMA_INV_MS },
1301     { "TINV" , SC_OPCODE_T_INV },
1302     { "T.INV.2T" , SC_OPCODE_T_INV_2T },
1303     { "T.INV" , SC_OPCODE_T_INV_MS },
1304     { "FINV" , SC_OPCODE_F_INV },
1305     { "F.INV" , SC_OPCODE_F_INV_LT },
1306     { "F.INV.RT" , SC_OPCODE_F_INV_RT },
1307     { "CHITEST" , SC_OPCODE_CHI_TEST },
1308     { "CHISQ.TEST" , SC_OPCODE_CHI_TEST_MS },
1309     { "LOGINV" , SC_OPCODE_LOG_INV },
1310     { "LOGNORM.INV" , SC_OPCODE_LOG_INV_MS },
1311     { "TABLE" , SC_OPCODE_TABLE_OP },
1312     { "BETADIST" , SC_OPCODE_BETA_DIST },
1313     { "BETAINV" , SC_OPCODE_BETA_INV },
1314     { "BETA.DIST" , SC_OPCODE_BETA_DIST_MS },
1315     { "BETA.INV" , SC_OPCODE_BETA_INV_MS },
1316     { "WEEKNUM" , SC_OPCODE_WEEK },
1317     { "ISOWEEKNUM" , SC_OPCODE_ISOWEEKNUM },
1318     { "WEEKNUM_OOO" , SC_OPCODE_WEEKNUM_OOO },
1319     { "EASTERSUNDAY" , SC_OPCODE_EASTERSUNDAY },
1320     { "WEEKDAY" , SC_OPCODE_GET_DAY_OF_WEEK },
1321     { "NETWORKDAYS" , SC_OPCODE_NETWORKDAYS },
1322     { "NETWORKDAYS.INTL" , SC_OPCODE_NETWORKDAYS_MS },
1323     { "WORKDAY.INTL" , SC_OPCODE_WORKDAY_MS },
1324     { "#NAME!" , SC_OPCODE_NO_NAME },
1325     { "STYLE" , SC_OPCODE_STYLE },
1326     { "DDE" , SC_OPCODE_DDE },
1327     { "BASE" , SC_OPCODE_BASE },
1328     { "DECIMAL" , SC_OPCODE_DECIMAL },
1329     { "CONVERT" , SC_OPCODE_CONVERT_OOO },  // wrong but ODF1.1, keep it
1330     { "ROMAN" , SC_OPCODE_ROMAN },
1331     { "ARABIC" , SC_OPCODE_ARABIC },
1332     { "HYPERLINK" , SC_OPCODE_HYPERLINK },
1333     { "INFO" , SC_OPCODE_INFO },
1334     { "BAHTTEXT" , SC_OPCODE_BAHTTEXT },
1335     { "GETPIVOTDATA" , SC_OPCODE_GET_PIVOT_DATA },
1336     { "EUROCONVERT" , SC_OPCODE_EUROCONVERT },
1337     { "NUMBERVALUE" , SC_OPCODE_NUMBERVALUE },
1338     { "GAMMA" , SC_OPCODE_GAMMA },
1339     { "CHISQDIST" , SC_OPCODE_CHISQ_DIST },
1340     { "CHISQ.DIST" , SC_OPCODE_CHISQ_DIST_MS },
1341     { "CHISQ.INV" , SC_OPCODE_CHISQ_INV_MS },
1342     { "CHISQINV" , SC_OPCODE_CHISQ_INV },
1343     { "BITAND" , SC_OPCODE_BITAND },
1344     { "BITOR" , SC_OPCODE_BITOR },
1345     { "BITXOR" , SC_OPCODE_BITXOR },
1346     { "BITRSHIFT" , SC_OPCODE_BITRSHIFT },
1347     { "BITLSHIFT" , SC_OPCODE_BITLSHIFT },
1348     /* BEGIN defined ERROR.TYPE() values. */
1349     { "#NULL!" , SC_OPCODE_ERROR_NULL },
1350     { "#DIV/0!" , SC_OPCODE_ERROR_DIVZERO },
1351     { "#VALUE!" , SC_OPCODE_ERROR_VALUE },
1352     { "#REF!" , SC_OPCODE_ERROR_REF },
1353     { "#NAME?" , SC_OPCODE_ERROR_NAME },
1354     { "#NUM!" , SC_OPCODE_ERROR_NUM },
1355     { "#N/A" , SC_OPCODE_ERROR_NA },
1356     /* END defined ERROR.TYPE() values. */
1357     { "FILTERXML" , SC_OPCODE_FILTERXML },
1358     { "WEBSERVICE" , SC_OPCODE_WEBSERVICE },
1359     { "COLOR" , SC_OPCODE_COLOR },
1360     { "ERF.PRECISE" , SC_OPCODE_ERF_MS },
1361     { "ERFC.PRECISE" , SC_OPCODE_ERFC_MS },
1362     { "ENCODEURL" , SC_OPCODE_ENCODEURL },
1363     { "RAWSUBTRACT" , SC_OPCODE_RAWSUBTRACT },
1364     { "ROUNDSIG" , SC_OPCODE_ROUNDSIG },
1365     { "REGEX" , SC_OPCODE_REGEX },
1366     { "FOURIER", SC_OPCODE_FOURIER },
1367     { "RAND.NV" , SC_OPCODE_RANDOM_NV },
1368     { "RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV },
1369     { nullptr, -1 }
1372 /** These English names are used for XFunctionAccess API. */
1373 // DO NOT CHANGE NAMES! Only add functions.
1374 // If there is a reason for another name for some function then add an
1375 // *additional* name to be recognized to sc/source/core/tool/compiler.cxx
1376 // ScCompiler::IsOpCode().
1377 const std::pair<const char*, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_API[] =
1379     { "IF" , SC_OPCODE_IF },
1380     { "IFERROR" , SC_OPCODE_IF_ERROR },
1381     { "IFNA" , SC_OPCODE_IF_NA },
1382     { "CHOOSE" , SC_OPCODE_CHOOSE },
1383     { "(" , SC_OPCODE_OPEN },
1384     { ")" , SC_OPCODE_CLOSE },
1385     { "[" , SC_OPCODE_TABLE_REF_OPEN },
1386     { "]" , SC_OPCODE_TABLE_REF_CLOSE },
1387     { "#All" , SC_OPCODE_TABLE_REF_ITEM_ALL },
1388     { "#Headers" , SC_OPCODE_TABLE_REF_ITEM_HEADERS },
1389     { "#Data" , SC_OPCODE_TABLE_REF_ITEM_DATA },
1390     { "#Totals" , SC_OPCODE_TABLE_REF_ITEM_TOTALS },
1391     { "#This Row" , SC_OPCODE_TABLE_REF_ITEM_THIS_ROW },
1392     { "{" , SC_OPCODE_ARRAY_OPEN },
1393     { "}" , SC_OPCODE_ARRAY_CLOSE },
1394     { "|" , SC_OPCODE_ARRAY_ROW_SEP },
1395     { ";" , SC_OPCODE_ARRAY_COL_SEP },
1396     { ";" , SC_OPCODE_SEP },
1397     { "%" , SC_OPCODE_PERCENT_SIGN },
1398     { "+" , SC_OPCODE_ADD },
1399     { "-" , SC_OPCODE_SUB },
1400     { "*" , SC_OPCODE_MUL },
1401     { "/" , SC_OPCODE_DIV },
1402     { "&" , SC_OPCODE_AMPERSAND },
1403     { "^" , SC_OPCODE_POW },
1404     { "=" , SC_OPCODE_EQUAL },
1405     { "<>" , SC_OPCODE_NOT_EQUAL },
1406     { "<" , SC_OPCODE_LESS },
1407     { ">" , SC_OPCODE_GREATER },
1408     { "<=" , SC_OPCODE_LESS_EQUAL },
1409     { ">=" , SC_OPCODE_GREATER_EQUAL },
1410     { "AND" , SC_OPCODE_AND },
1411     { "OR" , SC_OPCODE_OR },
1412     { "XOR" , SC_OPCODE_XOR },
1413     { "!" , SC_OPCODE_INTERSECT },
1414     { "~" , SC_OPCODE_UNION },
1415     { ":" , SC_OPCODE_RANGE },
1416     { "NOT" , SC_OPCODE_NOT },
1417     { "NEG" , SC_OPCODE_NEG },
1418     { "-" , SC_OPCODE_NEG_SUB },
1419     { "PI" , SC_OPCODE_PI },
1420     { "RAND" , SC_OPCODE_RANDOM },
1421     { "TRUE" , SC_OPCODE_TRUE },
1422     { "FALSE" , SC_OPCODE_FALSE },
1423     { "TODAY" , SC_OPCODE_GET_ACT_DATE },
1424     { "NOW" , SC_OPCODE_GET_ACT_TIME },
1425     { "NA" , SC_OPCODE_NO_VALUE },
1426     { "CURRENT" , SC_OPCODE_CURRENT },
1427     { "DEGREES" , SC_OPCODE_DEG },
1428     { "RADIANS" , SC_OPCODE_RAD },
1429     { "SIN" , SC_OPCODE_SIN },
1430     { "COS" , SC_OPCODE_COS },
1431     { "TAN" , SC_OPCODE_TAN },
1432     { "COT" , SC_OPCODE_COT },
1433     { "ASIN" , SC_OPCODE_ARC_SIN },
1434     { "ACOS" , SC_OPCODE_ARC_COS },
1435     { "ATAN" , SC_OPCODE_ARC_TAN },
1436     { "ACOT" , SC_OPCODE_ARC_COT },
1437     { "SINH" , SC_OPCODE_SIN_HYP },
1438     { "COSH" , SC_OPCODE_COS_HYP },
1439     { "TANH" , SC_OPCODE_TAN_HYP },
1440     { "COTH" , SC_OPCODE_COT_HYP },
1441     { "ASINH" , SC_OPCODE_ARC_SIN_HYP },
1442     { "ACOSH" , SC_OPCODE_ARC_COS_HYP },
1443     { "ATANH" , SC_OPCODE_ARC_TAN_HYP },
1444     { "ACOTH" , SC_OPCODE_ARC_COT_HYP },
1445     { "CSC" , SC_OPCODE_COSECANT },
1446     { "SEC" , SC_OPCODE_SECANT },
1447     { "CSCH" , SC_OPCODE_COSECANT_HYP },
1448     { "SECH" , SC_OPCODE_SECANT_HYP },
1449     { "EXP" , SC_OPCODE_EXP },
1450     { "LN" , SC_OPCODE_LN },
1451     { "SQRT" , SC_OPCODE_SQRT },
1452     { "FACT" , SC_OPCODE_FACT },
1453     { "YEAR" , SC_OPCODE_GET_YEAR },
1454     { "MONTH" , SC_OPCODE_GET_MONTH },
1455     { "DAY" , SC_OPCODE_GET_DAY },
1456     { "HOUR" , SC_OPCODE_GET_HOUR },
1457     { "MINUTE" , SC_OPCODE_GET_MIN },
1458     { "SECOND" , SC_OPCODE_GET_SEC },
1459     { "SIGN" , SC_OPCODE_PLUS_MINUS },
1460     { "ABS" , SC_OPCODE_ABS },
1461     { "INT" , SC_OPCODE_INT },
1462     { "PHI" , SC_OPCODE_PHI },
1463     { "GAUSS" , SC_OPCODE_GAUSS },
1464     { "ISBLANK" , SC_OPCODE_IS_EMPTY },
1465     { "ISTEXT" , SC_OPCODE_IS_STRING },
1466     { "ISNONTEXT" , SC_OPCODE_IS_NON_STRING },
1467     { "ISLOGICAL" , SC_OPCODE_IS_LOGICAL },
1468     { "TYPE" , SC_OPCODE_TYPE },
1469     { "CELL" , SC_OPCODE_CELL },
1470     { "ISREF" , SC_OPCODE_IS_REF },
1471     { "ISNUMBER" , SC_OPCODE_IS_VALUE },
1472     { "ISFORMULA" , SC_OPCODE_IS_FORMULA },
1473     { "ISNA" , SC_OPCODE_IS_NV },
1474     { "ISERR" , SC_OPCODE_IS_ERR },
1475     { "ISERROR" , SC_OPCODE_IS_ERROR },
1476     { "ISEVEN" , SC_OPCODE_IS_EVEN },
1477     { "ISODD" , SC_OPCODE_IS_ODD },
1478     { "N" , SC_OPCODE_N },
1479     { "DATEVALUE" , SC_OPCODE_GET_DATE_VALUE },
1480     { "TIMEVALUE" , SC_OPCODE_GET_TIME_VALUE },
1481     { "CODE" , SC_OPCODE_CODE },
1482     { "TRIM" , SC_OPCODE_TRIM },
1483     { "UPPER" , SC_OPCODE_UPPER },
1484     { "PROPER" , SC_OPCODE_PROPER },
1485     { "LOWER" , SC_OPCODE_LOWER },
1486     { "LEN" , SC_OPCODE_LEN },
1487     { "T" , SC_OPCODE_T },
1488     { "VALUE" , SC_OPCODE_VALUE },
1489     { "CLEAN" , SC_OPCODE_CLEAN },
1490     { "CHAR" , SC_OPCODE_CHAR },
1491     { "JIS" , SC_OPCODE_JIS },
1492     { "ASC" , SC_OPCODE_ASC },
1493     { "UNICODE" , SC_OPCODE_UNICODE },
1494     { "UNICHAR" , SC_OPCODE_UNICHAR },
1495     { "LOG10" , SC_OPCODE_LOG10 },
1496     { "EVEN" , SC_OPCODE_EVEN },
1497     { "ODD" , SC_OPCODE_ODD },
1498     { "NORMSDIST" , SC_OPCODE_STD_NORM_DIST },
1499     { "NORM.S.DIST" , SC_OPCODE_STD_NORM_DIST_MS },
1500     { "FISHER" , SC_OPCODE_FISHER },
1501     { "FISHERINV" , SC_OPCODE_FISHER_INV },
1502     { "NORMSINV" , SC_OPCODE_S_NORM_INV },
1503     { "NORM.S.INV" , SC_OPCODE_S_NORM_INV_MS },
1504     { "GAMMALN" , SC_OPCODE_GAMMA_LN },
1505     { "GAMMALN.PRECISE" , SC_OPCODE_GAMMA_LN_MS },
1506     { "ERRORTYPE" , SC_OPCODE_ERROR_TYPE },
1507     { "ERROR.TYPE" , SC_OPCODE_ERROR_TYPE_ODF },
1508     { "FORMULA" , SC_OPCODE_FORMULA },
1509     { "ATAN2" , SC_OPCODE_ARC_TAN_2 },
1510     { "CEILING.MATH" , SC_OPCODE_CEIL_MATH },
1511     { "CEILING" , SC_OPCODE_CEIL },
1512     { "CEILING.XCL" , SC_OPCODE_CEIL_MS },
1513     { "CEILING.PRECISE" , SC_OPCODE_CEIL_PRECISE },
1514     { "ISO.CEILING" , SC_OPCODE_CEIL_ISO },
1515     { "FLOOR" , SC_OPCODE_FLOOR },
1516     { "FLOOR.XCL" , SC_OPCODE_FLOOR_MS },
1517     { "FLOOR.MATH" , SC_OPCODE_FLOOR_MATH },
1518     { "FLOOR.PRECISE" , SC_OPCODE_FLOOR_PRECISE },
1519     { "ROUND" , SC_OPCODE_ROUND },
1520     { "ROUNDUP" , SC_OPCODE_ROUND_UP },
1521     { "ROUNDDOWN" , SC_OPCODE_ROUND_DOWN },
1522     { "TRUNC" , SC_OPCODE_TRUNC },
1523     { "LOG" , SC_OPCODE_LOG },
1524     { "POWER" , SC_OPCODE_POWER },
1525     { "GCD" , SC_OPCODE_GCD },
1526     { "LCM" , SC_OPCODE_LCM },
1527     { "MOD" , SC_OPCODE_MOD },
1528     { "SUMPRODUCT" , SC_OPCODE_SUM_PRODUCT },
1529     { "SUMSQ" , SC_OPCODE_SUM_SQ },
1530     { "SUMX2MY2" , SC_OPCODE_SUM_X2MY2 },
1531     { "SUMX2PY2" , SC_OPCODE_SUM_X2DY2 },
1532     { "SUMXMY2" , SC_OPCODE_SUM_XMY2 },
1533     { "DATE" , SC_OPCODE_GET_DATE },
1534     { "TIME" , SC_OPCODE_GET_TIME },
1535     { "DAYS" , SC_OPCODE_GET_DIFF_DATE },
1536     { "DAYS360" , SC_OPCODE_GET_DIFF_DATE_360 },
1537     { "DATEDIF" , SC_OPCODE_GET_DATEDIF },
1538     { "MIN" , SC_OPCODE_MIN },
1539     { "MINA" , SC_OPCODE_MIN_A },
1540     { "MAX" , SC_OPCODE_MAX },
1541     { "MAXA" , SC_OPCODE_MAX_A },
1542     { "SUM" , SC_OPCODE_SUM },
1543     { "PRODUCT" , SC_OPCODE_PRODUCT },
1544     { "AVERAGE" , SC_OPCODE_AVERAGE },
1545     { "AVERAGEA" , SC_OPCODE_AVERAGE_A },
1546     { "COUNT" , SC_OPCODE_COUNT },
1547     { "COUNTA" , SC_OPCODE_COUNT_2 },
1548     { "NPV" , SC_OPCODE_NPV },
1549     { "IRR" , SC_OPCODE_IRR },
1550     { "MIRR" , SC_OPCODE_MIRR },
1551     { "ISPMT" , SC_OPCODE_ISPMT },
1552     { "VAR" , SC_OPCODE_VAR },
1553     { "VARA" , SC_OPCODE_VAR_A },
1554     { "VARP" , SC_OPCODE_VAR_P },
1555     { "VARPA" , SC_OPCODE_VAR_P_A },
1556     { "VAR.P" , SC_OPCODE_VAR_P_MS },
1557     { "VAR.S" , SC_OPCODE_VAR_S },
1558     { "STDEV" , SC_OPCODE_ST_DEV },
1559     { "STDEVA" , SC_OPCODE_ST_DEV_A },
1560     { "STDEVP" , SC_OPCODE_ST_DEV_P },
1561     { "STDEVPA" , SC_OPCODE_ST_DEV_P_A },
1562     { "STDEV.P" , SC_OPCODE_ST_DEV_P_MS },
1563     { "STDEV.S" , SC_OPCODE_ST_DEV_S },
1564     { "B" , SC_OPCODE_B },
1565     { "NORMDIST" , SC_OPCODE_NORM_DIST },
1566     { "NORM.DIST" , SC_OPCODE_NORM_DIST_MS },
1567     { "EXPONDIST" , SC_OPCODE_EXP_DIST },
1568     { "EXPON.DIST" , SC_OPCODE_EXP_DIST_MS },
1569     { "BINOMDIST" , SC_OPCODE_BINOM_DIST },
1570     { "BINOM.DIST" , SC_OPCODE_BINOM_DIST_MS },
1571     { "POISSON" , SC_OPCODE_POISSON_DIST },
1572     { "POISSON.DIST" , SC_OPCODE_POISSON_DIST_MS },
1573     { "COMBIN" , SC_OPCODE_COMBIN },
1574     { "COMBINA" , SC_OPCODE_COMBIN_A },
1575     { "PERMUT" , SC_OPCODE_PERMUT },
1576     { "PERMUTATIONA" , SC_OPCODE_PERMUTATION_A },
1577     { "PV" , SC_OPCODE_PV },
1578     { "SYD" , SC_OPCODE_SYD },
1579     { "DDB" , SC_OPCODE_DDB },
1580     { "DB" , SC_OPCODE_DB },
1581     { "VDB" , SC_OPCODE_VBD },
1582     { "DURATION" , SC_OPCODE_PDURATION },
1583     { "SLN" , SC_OPCODE_SLN },
1584     { "PMT" , SC_OPCODE_PMT },
1585     { "COLUMNS" , SC_OPCODE_COLUMNS },
1586     { "ROWS" , SC_OPCODE_ROWS },
1587     { "SHEETS" , SC_OPCODE_SHEETS },
1588     { "COLUMN" , SC_OPCODE_COLUMN },
1589     { "ROW" , SC_OPCODE_ROW },
1590     { "SHEET" , SC_OPCODE_SHEET },
1591     { "ZGZ" , SC_OPCODE_RRI },
1592     { "FV" , SC_OPCODE_FV },
1593     { "NPER" , SC_OPCODE_NPER },
1594     { "RATE" , SC_OPCODE_RATE },
1595     { "IPMT" , SC_OPCODE_IPMT },
1596     { "PPMT" , SC_OPCODE_PPMT },
1597     { "CUMIPMT" , SC_OPCODE_CUM_IPMT },
1598     { "CUMPRINC" , SC_OPCODE_CUM_PRINC },
1599     { "EFFECTIVE" , SC_OPCODE_EFFECT },
1600     { "NOMINAL" , SC_OPCODE_NOMINAL },
1601     { "SUBTOTAL" , SC_OPCODE_SUB_TOTAL },
1602     { "DSUM" , SC_OPCODE_DB_SUM },
1603     { "DCOUNT" , SC_OPCODE_DB_COUNT },
1604     { "DCOUNTA" , SC_OPCODE_DB_COUNT_2 },
1605     { "DAVERAGE" , SC_OPCODE_DB_AVERAGE },
1606     { "DGET" , SC_OPCODE_DB_GET },
1607     { "DMAX" , SC_OPCODE_DB_MAX },
1608     { "DMIN" , SC_OPCODE_DB_MIN },
1609     { "DPRODUCT" , SC_OPCODE_DB_PRODUCT },
1610     { "DSTDEV" , SC_OPCODE_DB_STD_DEV },
1611     { "DSTDEVP" , SC_OPCODE_DB_STD_DEV_P },
1612     { "DVAR" , SC_OPCODE_DB_VAR },
1613     { "DVARP" , SC_OPCODE_DB_VAR_P },
1614     { "INDIRECT" , SC_OPCODE_INDIRECT },
1615     { "ADDRESS" , SC_OPCODE_ADDRESS },
1616     { "MATCH" , SC_OPCODE_MATCH },
1617     { "COUNTBLANK" , SC_OPCODE_COUNT_EMPTY_CELLS },
1618     { "COUNTIF" , SC_OPCODE_COUNT_IF },
1619     { "SUMIF" , SC_OPCODE_SUM_IF },
1620     { "AVERAGEIF" , SC_OPCODE_AVERAGE_IF },
1621     { "SUMIFS" , SC_OPCODE_SUM_IFS },
1622     { "AVERAGEIFS" , SC_OPCODE_AVERAGE_IFS },
1623     { "COUNTIFS" , SC_OPCODE_COUNT_IFS },
1624     { "LOOKUP" , SC_OPCODE_LOOKUP },
1625     { "VLOOKUP" , SC_OPCODE_V_LOOKUP },
1626     { "HLOOKUP" , SC_OPCODE_H_LOOKUP },
1627     { "MULTIRANGE" , SC_OPCODE_MULTI_AREA },    // legacy for range list (union)
1628     { "OFFSET" , SC_OPCODE_OFFSET },
1629     { "INDEX" , SC_OPCODE_INDEX },  // ?? first character = I ??
1630     { "AREAS" , SC_OPCODE_AREAS },
1631     { "DOLLAR" , SC_OPCODE_CURRENCY },
1632     { "REPLACE" , SC_OPCODE_REPLACE },
1633     { "FIXED" , SC_OPCODE_FIXED },
1634     { "FIND" , SC_OPCODE_FIND },
1635     { "EXACT" , SC_OPCODE_EXACT },
1636     { "LEFT" , SC_OPCODE_LEFT },
1637     { "RIGHT" , SC_OPCODE_RIGHT },
1638     { "SEARCH" , SC_OPCODE_SEARCH },
1639     { "MID" , SC_OPCODE_MID },
1640     { "LENB" , SC_OPCODE_LENB },
1641     { "RIGHTB" , SC_OPCODE_RIGHTB },
1642     { "LEFTB" , SC_OPCODE_LEFTB },
1643     { "REPLACEB" , SC_OPCODE_REPLACEB },
1644     { "FINDB" , SC_OPCODE_FINDB },
1645     { "SEARCHB" , SC_OPCODE_SEARCHB },
1646     { "MIDB" , SC_OPCODE_MIDB },
1647     { "TEXT" , SC_OPCODE_TEXT },
1648     { "SUBSTITUTE" , SC_OPCODE_SUBSTITUTE },
1649     { "REPT" , SC_OPCODE_REPT },
1650     { "CONCATENATE" , SC_OPCODE_CONCAT },
1651     { "CONCAT" , SC_OPCODE_CONCAT_MS },
1652     { "TEXTJOIN" , SC_OPCODE_TEXTJOIN_MS },
1653     { "IFS" , SC_OPCODE_IFS_MS },
1654     { "SWITCH" , SC_OPCODE_SWITCH_MS },
1655     { "MINIFS" , SC_OPCODE_MINIFS_MS },
1656     { "MAXIFS" , SC_OPCODE_MAXIFS_MS },
1657     { "MVALUE" , SC_OPCODE_MAT_VALUE },
1658     { "MDETERM" , SC_OPCODE_MAT_DET },
1659     { "MINVERSE" , SC_OPCODE_MAT_INV },
1660     { "MMULT" , SC_OPCODE_MAT_MULT },
1661     { "TRANSPOSE" , SC_OPCODE_MAT_TRANS },
1662     { "MUNIT" , SC_OPCODE_MATRIX_UNIT },
1663     { "GOALSEEK" , SC_OPCODE_BACK_SOLVER },
1664     { "HYPGEOMDIST" , SC_OPCODE_HYP_GEOM_DIST },
1665     { "HYPGEOM.DIST" , SC_OPCODE_HYP_GEOM_DIST_MS },
1666     { "LOGNORMDIST" , SC_OPCODE_LOG_NORM_DIST },
1667     { "LOGNORM.DIST" , SC_OPCODE_LOG_NORM_DIST_MS },
1668     { "TDIST" , SC_OPCODE_T_DIST },
1669     { "T.DIST.2T" , SC_OPCODE_T_DIST_2T },
1670     { "T.DIST" , SC_OPCODE_T_DIST_MS },
1671     { "T.DIST.RT" , SC_OPCODE_T_DIST_RT },
1672     { "FDIST" , SC_OPCODE_F_DIST },
1673     { "F.DIST" , SC_OPCODE_F_DIST_LT },
1674     { "F.DIST.RT" , SC_OPCODE_F_DIST_RT },
1675     { "CHIDIST" , SC_OPCODE_CHI_DIST },
1676     { "CHISQ.DIST.RT" , SC_OPCODE_CHI_DIST_MS },
1677     { "WEIBULL" , SC_OPCODE_WEIBULL },
1678     { "WEIBULL.DIST" , SC_OPCODE_WEIBULL_MS },
1679     { "NEGBINOMDIST" , SC_OPCODE_NEG_BINOM_VERT },
1680     { "NEGBINOM.DIST" , SC_OPCODE_NEG_BINOM_DIST_MS },
1681     { "CRITBINOM" , SC_OPCODE_CRIT_BINOM },
1682     { "BINOM.INV" , SC_OPCODE_BINOM_INV },
1683     { "KURT" , SC_OPCODE_KURT },
1684     { "HARMEAN" , SC_OPCODE_HAR_MEAN },
1685     { "GEOMEAN" , SC_OPCODE_GEO_MEAN },
1686     { "STANDARDIZE" , SC_OPCODE_STANDARD },
1687     { "AVEDEV" , SC_OPCODE_AVE_DEV },
1688     { "SKEW" , SC_OPCODE_SKEW },
1689     { "SKEWP" , SC_OPCODE_SKEWP },
1690     { "DEVSQ" , SC_OPCODE_DEV_SQ },
1691     { "MEDIAN" , SC_OPCODE_MEDIAN },
1692     { "MODE" , SC_OPCODE_MODAL_VALUE },
1693     { "MODE.SNGL" , SC_OPCODE_MODAL_VALUE_MS },
1694     { "MODE.MULT" , SC_OPCODE_MODAL_VALUE_MULTI },
1695     { "ZTEST" , SC_OPCODE_Z_TEST },
1696     { "Z.TEST" , SC_OPCODE_Z_TEST_MS },
1697     { "AGGREGATE" , SC_OPCODE_AGGREGATE },
1698     { "TTEST" , SC_OPCODE_T_TEST },
1699     { "T.TEST" , SC_OPCODE_T_TEST_MS },
1700     { "RANK" , SC_OPCODE_RANK },
1701     { "PERCENTILE" , SC_OPCODE_PERCENTILE },
1702     { "PERCENTRANK" , SC_OPCODE_PERCENT_RANK },
1703     { "PERCENTILE.INC" , SC_OPCODE_PERCENTILE_INC },
1704     { "PERCENTRANK.INC" , SC_OPCODE_PERCENT_RANK_INC },
1705     { "QUARTILE.INC" , SC_OPCODE_QUARTILE_INC },
1706     { "RANK.EQ" , SC_OPCODE_RANK_EQ },
1707     { "PERCENTILE.EXC" , SC_OPCODE_PERCENTILE_EXC },
1708     { "PERCENTRANK.EXC" , SC_OPCODE_PERCENT_RANK_EXC },
1709     { "QUARTILE.EXC" , SC_OPCODE_QUARTILE_EXC },
1710     { "RANK.AVG" , SC_OPCODE_RANK_AVG },
1711     { "LARGE" , SC_OPCODE_LARGE },
1712     { "SMALL" , SC_OPCODE_SMALL },
1713     { "FREQUENCY" , SC_OPCODE_FREQUENCY },
1714     { "QUARTILE" , SC_OPCODE_QUARTILE },
1715     { "NORMINV" , SC_OPCODE_NORM_INV },
1716     { "NORM.INV" , SC_OPCODE_NORM_INV_MS },
1717     { "CONFIDENCE" , SC_OPCODE_CONFIDENCE },
1718     { "CONFIDENCE.NORM" , SC_OPCODE_CONFIDENCE_N },
1719     { "CONFIDENCE.T" , SC_OPCODE_CONFIDENCE_T },
1720     { "FTEST" , SC_OPCODE_F_TEST },
1721     { "F.TEST" , SC_OPCODE_F_TEST_MS },
1722     { "TRIMMEAN" , SC_OPCODE_TRIM_MEAN },
1723     { "PROB" , SC_OPCODE_PROB },
1724     { "CORREL" , SC_OPCODE_CORREL },
1725     { "COVAR" , SC_OPCODE_COVAR },
1726     { "COVARIANCE.P" , SC_OPCODE_COVARIANCE_P },
1727     { "COVARIANCE.S" , SC_OPCODE_COVARIANCE_S },
1728     { "PEARSON" , SC_OPCODE_PEARSON },
1729     { "RSQ" , SC_OPCODE_RSQ },
1730     { "STEYX" , SC_OPCODE_STEYX },
1731     { "SLOPE" , SC_OPCODE_SLOPE },
1732     { "INTERCEPT" , SC_OPCODE_INTERCEPT },
1733     { "TREND" , SC_OPCODE_TREND },
1734     { "GROWTH" , SC_OPCODE_GROWTH },
1735     { "LINEST" , SC_OPCODE_LINEST },
1736     { "LOGEST" , SC_OPCODE_LOGEST },
1737     { "FORECAST" , SC_OPCODE_FORECAST },
1738     { "FORECAST.ETS.ADD" , SC_OPCODE_FORECAST_ETS_ADD },
1739     { "FORECAST.ETS.SEASONALITY" , SC_OPCODE_FORECAST_ETS_SEA },
1740     { "FORECAST.ETS.MULT" , SC_OPCODE_FORECAST_ETS_MUL },
1741     { "FORECAST.ETS.PI.ADD" , SC_OPCODE_FORECAST_ETS_PIA },
1742     { "FORECAST.ETS.PI.MULT" , SC_OPCODE_FORECAST_ETS_PIM },
1743     { "FORECAST.ETS.STAT.ADD" , SC_OPCODE_FORECAST_ETS_STA },
1744     { "FORECAST.ETS.STAT.MULT" , SC_OPCODE_FORECAST_ETS_STM },
1745     { "FORECAST.LINEAR" , SC_OPCODE_FORECAST_LIN },
1746     { "CHIINV" , SC_OPCODE_CHI_INV },
1747     { "CHISQ.INV.RT" , SC_OPCODE_CHI_INV_MS },
1748     { "GAMMADIST" , SC_OPCODE_GAMMA_DIST },
1749     { "GAMMA.DIST" , SC_OPCODE_GAMMA_DIST_MS },
1750     { "GAMMAINV" , SC_OPCODE_GAMMA_INV },
1751     { "GAMMA.INV" , SC_OPCODE_GAMMA_INV_MS },
1752     { "TINV" , SC_OPCODE_T_INV },
1753     { "T.INV.2T" , SC_OPCODE_T_INV_2T },
1754     { "T.INV" , SC_OPCODE_T_INV_MS },
1755     { "FINV" , SC_OPCODE_F_INV },
1756     { "F.INV" , SC_OPCODE_F_INV_LT },
1757     { "F.INV.RT" , SC_OPCODE_F_INV_RT },
1758     { "CHITEST" , SC_OPCODE_CHI_TEST },
1759     { "CHISQ.TEST" , SC_OPCODE_CHI_TEST_MS },
1760     { "LOGINV" , SC_OPCODE_LOG_INV },
1761     { "LOGNORM.INV" , SC_OPCODE_LOG_INV_MS },
1762     { "TABLE" , SC_OPCODE_TABLE_OP },
1763     { "BETADIST" , SC_OPCODE_BETA_DIST },
1764     { "BETAINV" , SC_OPCODE_BETA_INV },
1765     { "BETA.DIST" , SC_OPCODE_BETA_DIST_MS },
1766     { "BETA.INV" , SC_OPCODE_BETA_INV_MS },
1767     { "WEEKNUM" , SC_OPCODE_WEEK },
1768     { "ISOWEEKNUM" , SC_OPCODE_ISOWEEKNUM },
1769     { "WEEKNUM_OOO" , SC_OPCODE_WEEKNUM_OOO },
1770     { "EASTERSUNDAY" , SC_OPCODE_EASTERSUNDAY },
1771     { "WEEKDAY" , SC_OPCODE_GET_DAY_OF_WEEK },
1772     { "NETWORKDAYS" , SC_OPCODE_NETWORKDAYS },
1773     { "NETWORKDAYS.INTL" , SC_OPCODE_NETWORKDAYS_MS },
1774     { "WORKDAY.INTL" , SC_OPCODE_WORKDAY_MS },
1775     { "#NAME!" , SC_OPCODE_NO_NAME },
1776     { "STYLE" , SC_OPCODE_STYLE },
1777     { "DDE" , SC_OPCODE_DDE },
1778     { "BASE" , SC_OPCODE_BASE },
1779     { "DECIMAL" , SC_OPCODE_DECIMAL },
1780     { "CONVERT" , SC_OPCODE_CONVERT_OOO },
1781     { "ROMAN" , SC_OPCODE_ROMAN },
1782     { "ARABIC" , SC_OPCODE_ARABIC },
1783     { "HYPERLINK" , SC_OPCODE_HYPERLINK },
1784     { "INFO" , SC_OPCODE_INFO },
1785     { "BAHTTEXT" , SC_OPCODE_BAHTTEXT },
1786     { "GETPIVOTDATA" , SC_OPCODE_GET_PIVOT_DATA },
1787     { "EUROCONVERT" , SC_OPCODE_EUROCONVERT },
1788     { "NUMBERVALUE" , SC_OPCODE_NUMBERVALUE },
1789     { "GAMMA" , SC_OPCODE_GAMMA },
1790     { "CHISQDIST" , SC_OPCODE_CHISQ_DIST },
1791     { "CHISQ.DIST" , SC_OPCODE_CHISQ_DIST_MS },
1792     { "CHISQ.INV" , SC_OPCODE_CHISQ_INV_MS },
1793     { "CHISQINV" , SC_OPCODE_CHISQ_INV },
1794     { "BITAND" , SC_OPCODE_BITAND },
1795     { "BITOR" , SC_OPCODE_BITOR },
1796     { "BITXOR" , SC_OPCODE_BITXOR },
1797     { "BITRSHIFT" , SC_OPCODE_BITRSHIFT },
1798     { "BITLSHIFT" , SC_OPCODE_BITLSHIFT },
1799     { "#NULL!" , SC_OPCODE_ERROR_NULL },
1800     { "#DIV/0!" , SC_OPCODE_ERROR_DIVZERO },
1801     { "#VALUE!" , SC_OPCODE_ERROR_VALUE },
1802     { "#REF!" , SC_OPCODE_ERROR_REF },
1803     { "#NAME?" , SC_OPCODE_ERROR_NAME },
1804     { "#NUM!" , SC_OPCODE_ERROR_NUM },
1805     { "#N/A" , SC_OPCODE_ERROR_NA },
1806     /* END defined ERROR.TYPE() values. */
1807     { "FILTERXML" , SC_OPCODE_FILTERXML },
1808     { "WEBSERVICE" , SC_OPCODE_WEBSERVICE },
1809     { "COLOR" , SC_OPCODE_COLOR },
1810     { "ERF.PRECISE" , SC_OPCODE_ERF_MS },
1811     { "ERFC.PRECISE" , SC_OPCODE_ERFC_MS },
1812     { "ENCODEURL" , SC_OPCODE_ENCODEURL },
1813     { "RAWSUBTRACT" , SC_OPCODE_RAWSUBTRACT },
1814     { "ROUNDSIG" , SC_OPCODE_ROUNDSIG },
1815     { "REGEX" , SC_OPCODE_REGEX },
1816     { "FOURIER", SC_OPCODE_FOURIER },
1817     { "RAND.NV" , SC_OPCODE_RANDOM_NV },
1818     { "RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV },
1819     { nullptr, -1 }
1822 /** These English names can be chosen in the UI and can be changed. They
1823     should match the [en-US] names of RID_STRLIST_FUNCTION_NAMES below. */
1824 // As such they are a duplicate, but we can not have two string localizations
1825 // at the same time.
1826 const std::pair<const char*, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH[] =
1828     { "IF" , SC_OPCODE_IF },
1829     { "IFERROR" , SC_OPCODE_IF_ERROR },
1830     { "IFNA" , SC_OPCODE_IF_NA },
1831     { "CHOOSE" , SC_OPCODE_CHOOSE },
1832     { "(" , SC_OPCODE_OPEN },
1833     { ")" , SC_OPCODE_CLOSE },
1834     { "[" , SC_OPCODE_TABLE_REF_OPEN },
1835     { "]" , SC_OPCODE_TABLE_REF_CLOSE },
1836     { "#All" , SC_OPCODE_TABLE_REF_ITEM_ALL },
1837     { "#Headers" , SC_OPCODE_TABLE_REF_ITEM_HEADERS },
1838     { "#Data" , SC_OPCODE_TABLE_REF_ITEM_DATA },
1839     { "#Totals" , SC_OPCODE_TABLE_REF_ITEM_TOTALS },
1840     { "#This Row" , SC_OPCODE_TABLE_REF_ITEM_THIS_ROW },
1841     { "{" , SC_OPCODE_ARRAY_OPEN },
1842     { "}" , SC_OPCODE_ARRAY_CLOSE },
1843     { "|" , SC_OPCODE_ARRAY_ROW_SEP },
1844     { ";" , SC_OPCODE_ARRAY_COL_SEP },
1845     { ";" , SC_OPCODE_SEP },
1846     { "%" , SC_OPCODE_PERCENT_SIGN },
1847     { "+" , SC_OPCODE_ADD },
1848     { "-" , SC_OPCODE_SUB },
1849     { "*" , SC_OPCODE_MUL },
1850     { "/" , SC_OPCODE_DIV },
1851     { "&" , SC_OPCODE_AMPERSAND },
1852     { "^" , SC_OPCODE_POW },
1853     { "=" , SC_OPCODE_EQUAL },
1854     { "<>" , SC_OPCODE_NOT_EQUAL },
1855     { "<" , SC_OPCODE_LESS },
1856     { ">" , SC_OPCODE_GREATER },
1857     { "<=" , SC_OPCODE_LESS_EQUAL },
1858     { ">=" , SC_OPCODE_GREATER_EQUAL },
1859     { "AND" , SC_OPCODE_AND },
1860     { "OR" , SC_OPCODE_OR },
1861     { "XOR" , SC_OPCODE_XOR },
1862     { "!" , SC_OPCODE_INTERSECT },
1863     { "~" , SC_OPCODE_UNION },
1864     { ":" , SC_OPCODE_RANGE },
1865     { "NOT" , SC_OPCODE_NOT },
1866     { "NEG" , SC_OPCODE_NEG },
1867     { "-" , SC_OPCODE_NEG_SUB },
1868     { "PI" , SC_OPCODE_PI },
1869     { "RAND" , SC_OPCODE_RANDOM },
1870     { "TRUE" , SC_OPCODE_TRUE },
1871     { "FALSE" , SC_OPCODE_FALSE },
1872     { "TODAY" , SC_OPCODE_GET_ACT_DATE },
1873     { "NOW" , SC_OPCODE_GET_ACT_TIME },
1874     { "NA" , SC_OPCODE_NO_VALUE },
1875     { "CURRENT" , SC_OPCODE_CURRENT },
1876     { "DEGREES" , SC_OPCODE_DEG },
1877     { "RADIANS" , SC_OPCODE_RAD },
1878     { "SIN" , SC_OPCODE_SIN },
1879     { "COS" , SC_OPCODE_COS },
1880     { "TAN" , SC_OPCODE_TAN },
1881     { "COT" , SC_OPCODE_COT },
1882     { "ASIN" , SC_OPCODE_ARC_SIN },
1883     { "ACOS" , SC_OPCODE_ARC_COS },
1884     { "ATAN" , SC_OPCODE_ARC_TAN },
1885     { "ACOT" , SC_OPCODE_ARC_COT },
1886     { "SINH" , SC_OPCODE_SIN_HYP },
1887     { "COSH" , SC_OPCODE_COS_HYP },
1888     { "TANH" , SC_OPCODE_TAN_HYP },
1889     { "COTH" , SC_OPCODE_COT_HYP },
1890     { "ASINH" , SC_OPCODE_ARC_SIN_HYP },
1891     { "ACOSH" , SC_OPCODE_ARC_COS_HYP },
1892     { "ATANH" , SC_OPCODE_ARC_TAN_HYP },
1893     { "ACOTH" , SC_OPCODE_ARC_COT_HYP },
1894     { "CSC" , SC_OPCODE_COSECANT },
1895     { "SEC" , SC_OPCODE_SECANT },
1896     { "CSCH" , SC_OPCODE_COSECANT_HYP },
1897     { "SECH" , SC_OPCODE_SECANT_HYP },
1898     { "EXP" , SC_OPCODE_EXP },
1899     { "LN" , SC_OPCODE_LN },
1900     { "SQRT" , SC_OPCODE_SQRT },
1901     { "FACT" , SC_OPCODE_FACT },
1902     { "YEAR" , SC_OPCODE_GET_YEAR },
1903     { "MONTH" , SC_OPCODE_GET_MONTH },
1904     { "DAY" , SC_OPCODE_GET_DAY },
1905     { "HOUR" , SC_OPCODE_GET_HOUR },
1906     { "MINUTE" , SC_OPCODE_GET_MIN },
1907     { "SECOND" , SC_OPCODE_GET_SEC },
1908     { "SIGN" , SC_OPCODE_PLUS_MINUS },
1909     { "ABS" , SC_OPCODE_ABS },
1910     { "INT" , SC_OPCODE_INT },
1911     { "PHI" , SC_OPCODE_PHI },
1912     { "GAUSS" , SC_OPCODE_GAUSS },
1913     { "ISBLANK" , SC_OPCODE_IS_EMPTY },
1914     { "ISTEXT" , SC_OPCODE_IS_STRING },
1915     { "ISNONTEXT" , SC_OPCODE_IS_NON_STRING },
1916     { "ISLOGICAL" , SC_OPCODE_IS_LOGICAL },
1917     { "TYPE" , SC_OPCODE_TYPE },
1918     { "CELL" , SC_OPCODE_CELL },
1919     { "ISREF" , SC_OPCODE_IS_REF },
1920     { "ISNUMBER" , SC_OPCODE_IS_VALUE },
1921     { "ISFORMULA" , SC_OPCODE_IS_FORMULA },
1922     { "ISNA" , SC_OPCODE_IS_NV },
1923     { "ISERR" , SC_OPCODE_IS_ERR },
1924     { "ISERROR" , SC_OPCODE_IS_ERROR },
1925     { "ISEVEN" , SC_OPCODE_IS_EVEN },
1926     { "ISODD" , SC_OPCODE_IS_ODD },
1927     { "N" , SC_OPCODE_N },
1928     { "DATEVALUE" , SC_OPCODE_GET_DATE_VALUE },
1929     { "TIMEVALUE" , SC_OPCODE_GET_TIME_VALUE },
1930     { "CODE" , SC_OPCODE_CODE },
1931     { "TRIM" , SC_OPCODE_TRIM },
1932     { "UPPER" , SC_OPCODE_UPPER },
1933     { "PROPER" , SC_OPCODE_PROPER },
1934     { "LOWER" , SC_OPCODE_LOWER },
1935     { "LEN" , SC_OPCODE_LEN },
1936     { "T" , SC_OPCODE_T },
1937     { "VALUE" , SC_OPCODE_VALUE },
1938     { "CLEAN" , SC_OPCODE_CLEAN },
1939     { "CHAR" , SC_OPCODE_CHAR },
1940     { "JIS" , SC_OPCODE_JIS },
1941     { "ASC" , SC_OPCODE_ASC },
1942     { "UNICODE" , SC_OPCODE_UNICODE },
1943     { "UNICHAR" , SC_OPCODE_UNICHAR },
1944     { "LOG10" , SC_OPCODE_LOG10 },
1945     { "EVEN" , SC_OPCODE_EVEN },
1946     { "ODD" , SC_OPCODE_ODD },
1947     { "NORMSDIST" , SC_OPCODE_STD_NORM_DIST },
1948     { "NORM.S.DIST" , SC_OPCODE_STD_NORM_DIST_MS },
1949     { "FISHER" , SC_OPCODE_FISHER },
1950     { "FISHERINV" , SC_OPCODE_FISHER_INV },
1951     { "NORMSINV" , SC_OPCODE_S_NORM_INV },
1952     { "NORM.S.INV" , SC_OPCODE_S_NORM_INV_MS },
1953     { "GAMMALN" , SC_OPCODE_GAMMA_LN },
1954     { "GAMMALN.PRECISE" , SC_OPCODE_GAMMA_LN_MS },
1955     { "ERRORTYPE" , SC_OPCODE_ERROR_TYPE },
1956     { "ERROR.TYPE" , SC_OPCODE_ERROR_TYPE_ODF },
1957     { "FORMULA" , SC_OPCODE_FORMULA },
1958     { "ATAN2" , SC_OPCODE_ARC_TAN_2 },
1959     { "CEILING.MATH" , SC_OPCODE_CEIL_MATH },
1960     { "CEILING" , SC_OPCODE_CEIL },
1961     { "CEILING.XCL" , SC_OPCODE_CEIL_MS },
1962     { "CEILING.PRECISE" , SC_OPCODE_CEIL_PRECISE },
1963     { "ISO.CEILING" , SC_OPCODE_CEIL_ISO },
1964     { "FLOOR" , SC_OPCODE_FLOOR },
1965     { "FLOOR.XCL" , SC_OPCODE_FLOOR_MS },
1966     { "FLOOR.MATH" , SC_OPCODE_FLOOR_MATH },
1967     { "FLOOR.PRECISE" , SC_OPCODE_FLOOR_PRECISE },
1968     { "ROUND" , SC_OPCODE_ROUND },
1969     { "ROUNDUP" , SC_OPCODE_ROUND_UP },
1970     { "ROUNDDOWN" , SC_OPCODE_ROUND_DOWN },
1971     { "TRUNC" , SC_OPCODE_TRUNC },
1972     { "LOG" , SC_OPCODE_LOG },
1973     { "POWER" , SC_OPCODE_POWER },
1974     { "GCD" , SC_OPCODE_GCD },
1975     { "LCM" , SC_OPCODE_LCM },
1976     { "MOD" , SC_OPCODE_MOD },
1977     { "SUMPRODUCT" , SC_OPCODE_SUM_PRODUCT },
1978     { "SUMSQ" , SC_OPCODE_SUM_SQ },
1979     { "SUMX2MY2" , SC_OPCODE_SUM_X2MY2 },
1980     { "SUMX2PY2" , SC_OPCODE_SUM_X2DY2 },
1981     { "SUMXMY2" , SC_OPCODE_SUM_XMY2 },
1982     { "DATE" , SC_OPCODE_GET_DATE },
1983     { "TIME" , SC_OPCODE_GET_TIME },
1984     { "DAYS" , SC_OPCODE_GET_DIFF_DATE },
1985     { "DAYS360" , SC_OPCODE_GET_DIFF_DATE_360 },
1986     { "DATEDIF" , SC_OPCODE_GET_DATEDIF },
1987     { "MIN" , SC_OPCODE_MIN },
1988     { "MINA" , SC_OPCODE_MIN_A },
1989     { "MAX" , SC_OPCODE_MAX },
1990     { "MAXA" , SC_OPCODE_MAX_A },
1991     { "SUM" , SC_OPCODE_SUM },
1992     { "PRODUCT" , SC_OPCODE_PRODUCT },
1993     { "AVERAGE" , SC_OPCODE_AVERAGE },
1994     { "AVERAGEA" , SC_OPCODE_AVERAGE_A },
1995     { "COUNT" , SC_OPCODE_COUNT },
1996     { "COUNTA" , SC_OPCODE_COUNT_2 },
1997     { "NPV" , SC_OPCODE_NPV },
1998     { "IRR" , SC_OPCODE_IRR },
1999     { "MIRR" , SC_OPCODE_MIRR },
2000     { "ISPMT" , SC_OPCODE_ISPMT },
2001     { "VAR" , SC_OPCODE_VAR },
2002     { "VARA" , SC_OPCODE_VAR_A },
2003     { "VARP" , SC_OPCODE_VAR_P },
2004     { "VARPA" , SC_OPCODE_VAR_P_A },
2005     { "VAR.P" , SC_OPCODE_VAR_P_MS },
2006     { "VAR.S" , SC_OPCODE_VAR_S },
2007     { "STDEV" , SC_OPCODE_ST_DEV },
2008     { "STDEVA" , SC_OPCODE_ST_DEV_A },
2009     { "STDEVP" , SC_OPCODE_ST_DEV_P },
2010     { "STDEVPA" , SC_OPCODE_ST_DEV_P_A },
2011     { "STDEV.P" , SC_OPCODE_ST_DEV_P_MS },
2012     { "STDEV.S" , SC_OPCODE_ST_DEV_S },
2013     { "B" , SC_OPCODE_B },
2014     { "NORMDIST" , SC_OPCODE_NORM_DIST },
2015     { "NORM.DIST" , SC_OPCODE_NORM_DIST_MS },
2016     { "EXPONDIST" , SC_OPCODE_EXP_DIST },
2017     { "EXPON.DIST" , SC_OPCODE_EXP_DIST_MS },
2018     { "BINOMDIST" , SC_OPCODE_BINOM_DIST },
2019     { "BINOM.DIST" , SC_OPCODE_BINOM_DIST_MS },
2020     { "POISSON" , SC_OPCODE_POISSON_DIST },
2021     { "POISSON.DIST" , SC_OPCODE_POISSON_DIST_MS },
2022     { "COMBIN" , SC_OPCODE_COMBIN },
2023     { "COMBINA" , SC_OPCODE_COMBIN_A },
2024     { "PERMUT" , SC_OPCODE_PERMUT },
2025     { "PERMUTATIONA" , SC_OPCODE_PERMUTATION_A },
2026     { "PV" , SC_OPCODE_PV },
2027     { "SYD" , SC_OPCODE_SYD },
2028     { "DDB" , SC_OPCODE_DDB },
2029     { "DB" , SC_OPCODE_DB },
2030     { "VDB" , SC_OPCODE_VBD },
2031     { "PDURATION" , SC_OPCODE_PDURATION },
2032     { "SLN" , SC_OPCODE_SLN },
2033     { "PMT" , SC_OPCODE_PMT },
2034     { "COLUMNS" , SC_OPCODE_COLUMNS },
2035     { "ROWS" , SC_OPCODE_ROWS },
2036     { "SHEETS" , SC_OPCODE_SHEETS },
2037     { "COLUMN" , SC_OPCODE_COLUMN },
2038     { "ROW" , SC_OPCODE_ROW },
2039     { "SHEET" , SC_OPCODE_SHEET },
2040     { "ZGZ" , SC_OPCODE_RRI },
2041     { "FV" , SC_OPCODE_FV },
2042     { "NPER" , SC_OPCODE_NPER },
2043     { "RATE" , SC_OPCODE_RATE },
2044     { "IPMT" , SC_OPCODE_IPMT },
2045     { "PPMT" , SC_OPCODE_PPMT },
2046     { "CUMIPMT" , SC_OPCODE_CUM_IPMT },
2047     { "CUMPRINC" , SC_OPCODE_CUM_PRINC },
2048     { "EFFECTIVE" , SC_OPCODE_EFFECT },
2049     { "NOMINAL" , SC_OPCODE_NOMINAL },
2050     { "SUBTOTAL" , SC_OPCODE_SUB_TOTAL },
2051     { "DSUM" , SC_OPCODE_DB_SUM },
2052     { "DCOUNT" , SC_OPCODE_DB_COUNT },
2053     { "DCOUNTA" , SC_OPCODE_DB_COUNT_2 },
2054     { "DAVERAGE" , SC_OPCODE_DB_AVERAGE },
2055     { "DGET" , SC_OPCODE_DB_GET },
2056     { "DMAX" , SC_OPCODE_DB_MAX },
2057     { "DMIN" , SC_OPCODE_DB_MIN },
2058     { "DPRODUCT" , SC_OPCODE_DB_PRODUCT },
2059     { "DSTDEV" , SC_OPCODE_DB_STD_DEV },
2060     { "DSTDEVP" , SC_OPCODE_DB_STD_DEV_P },
2061     { "DVAR" , SC_OPCODE_DB_VAR },
2062     { "DVARP" , SC_OPCODE_DB_VAR_P },
2063     { "INDIRECT" , SC_OPCODE_INDIRECT },
2064     { "ADDRESS" , SC_OPCODE_ADDRESS },
2065     { "MATCH" , SC_OPCODE_MATCH },
2066     { "COUNTBLANK" , SC_OPCODE_COUNT_EMPTY_CELLS },
2067     { "COUNTIF" , SC_OPCODE_COUNT_IF },
2068     { "SUMIF" , SC_OPCODE_SUM_IF },
2069     { "AVERAGEIF" , SC_OPCODE_AVERAGE_IF },
2070     { "SUMIFS" , SC_OPCODE_SUM_IFS },
2071     { "AVERAGEIFS" , SC_OPCODE_AVERAGE_IFS },
2072     { "COUNTIFS" , SC_OPCODE_COUNT_IFS },
2073     { "LOOKUP" , SC_OPCODE_LOOKUP },
2074     { "VLOOKUP" , SC_OPCODE_V_LOOKUP },
2075     { "HLOOKUP" , SC_OPCODE_H_LOOKUP },
2076     { "MULTIRANGE" , SC_OPCODE_MULTI_AREA },
2077     { "OFFSET" , SC_OPCODE_OFFSET },
2078     { "INDEX" , SC_OPCODE_INDEX },
2079     { "AREAS" , SC_OPCODE_AREAS },
2080     { "DOLLAR" , SC_OPCODE_CURRENCY },
2081     { "REPLACE" , SC_OPCODE_REPLACE },
2082     { "FIXED" , SC_OPCODE_FIXED },
2083     { "FIND" , SC_OPCODE_FIND },
2084     { "EXACT" , SC_OPCODE_EXACT },
2085     { "LEFT" , SC_OPCODE_LEFT },
2086     { "RIGHT" , SC_OPCODE_RIGHT },
2087     { "SEARCH" , SC_OPCODE_SEARCH },
2088     { "MID" , SC_OPCODE_MID },
2089     { "LENB" , SC_OPCODE_LENB },
2090     { "RIGHTB" , SC_OPCODE_RIGHTB },
2091     { "LEFTB" , SC_OPCODE_LEFTB },
2092     { "REPLACEB" , SC_OPCODE_REPLACEB },
2093     { "FINDB" , SC_OPCODE_FINDB },
2094     { "SEARCHB" , SC_OPCODE_SEARCHB },
2095     { "MIDB" , SC_OPCODE_MIDB },
2096     { "TEXT" , SC_OPCODE_TEXT },
2097     { "SUBSTITUTE" , SC_OPCODE_SUBSTITUTE },
2098     { "REPT" , SC_OPCODE_REPT },
2099     { "CONCATENATE" , SC_OPCODE_CONCAT },
2100     { "CONCAT" , SC_OPCODE_CONCAT_MS },
2101     { "TEXTJOIN" , SC_OPCODE_TEXTJOIN_MS },
2102     { "IFS" , SC_OPCODE_IFS_MS },
2103     { "SWITCH" , SC_OPCODE_SWITCH_MS },
2104     { "MINIFS" , SC_OPCODE_MINIFS_MS },
2105     { "MAXIFS" , SC_OPCODE_MAXIFS_MS },
2106     { "MVALUE" , SC_OPCODE_MAT_VALUE },
2107     { "MDETERM" , SC_OPCODE_MAT_DET },
2108     { "MINVERSE" , SC_OPCODE_MAT_INV },
2109     { "MMULT" , SC_OPCODE_MAT_MULT },
2110     { "TRANSPOSE" , SC_OPCODE_MAT_TRANS },
2111     { "MUNIT" , SC_OPCODE_MATRIX_UNIT },
2112     { "GOALSEEK" , SC_OPCODE_BACK_SOLVER },
2113     { "HYPGEOMDIST" , SC_OPCODE_HYP_GEOM_DIST },
2114     { "HYPGEOM.DIST" , SC_OPCODE_HYP_GEOM_DIST_MS },
2115     { "LOGNORMDIST" , SC_OPCODE_LOG_NORM_DIST },
2116     { "LOGNORM.DIST" , SC_OPCODE_LOG_NORM_DIST_MS },
2117     { "TDIST" , SC_OPCODE_T_DIST },
2118     { "T.DIST.2T" , SC_OPCODE_T_DIST_2T },
2119     { "T.DIST" , SC_OPCODE_T_DIST_MS },
2120     { "T.DIST.RT" , SC_OPCODE_T_DIST_RT },
2121     { "FDIST" , SC_OPCODE_F_DIST },
2122     { "F.DIST" , SC_OPCODE_F_DIST_LT },
2123     { "F.DIST.RT" , SC_OPCODE_F_DIST_RT },
2124     { "CHIDIST" , SC_OPCODE_CHI_DIST },
2125     { "CHISQ.DIST.RT" , SC_OPCODE_CHI_DIST_MS },
2126     { "WEIBULL" , SC_OPCODE_WEIBULL },
2127     { "WEIBULL.DIST" , SC_OPCODE_WEIBULL_MS },
2128     { "NEGBINOMDIST" , SC_OPCODE_NEG_BINOM_VERT },
2129     { "NEGBINOM.DIST" , SC_OPCODE_NEG_BINOM_DIST_MS },
2130     { "CRITBINOM" , SC_OPCODE_CRIT_BINOM },
2131     { "BINOM.INV" , SC_OPCODE_BINOM_INV },
2132     { "KURT" , SC_OPCODE_KURT },
2133     { "HARMEAN" , SC_OPCODE_HAR_MEAN },
2134     { "GEOMEAN" , SC_OPCODE_GEO_MEAN },
2135     { "STANDARDIZE" , SC_OPCODE_STANDARD },
2136     { "AVEDEV" , SC_OPCODE_AVE_DEV },
2137     { "SKEW" , SC_OPCODE_SKEW },
2138     { "SKEWP" , SC_OPCODE_SKEWP },
2139     { "DEVSQ" , SC_OPCODE_DEV_SQ },
2140     { "MEDIAN" , SC_OPCODE_MEDIAN },
2141     { "MODE" , SC_OPCODE_MODAL_VALUE },
2142     { "MODE.SNGL" , SC_OPCODE_MODAL_VALUE_MS },
2143     { "MODE.MULT" , SC_OPCODE_MODAL_VALUE_MULTI },
2144     { "ZTEST" , SC_OPCODE_Z_TEST },
2145     { "Z.TEST" , SC_OPCODE_Z_TEST_MS },
2146     { "AGGREGATE" , SC_OPCODE_AGGREGATE },
2147     { "TTEST" , SC_OPCODE_T_TEST },
2148     { "T.TEST" , SC_OPCODE_T_TEST_MS },
2149     { "RANK" , SC_OPCODE_RANK },
2150     { "PERCENTILE" , SC_OPCODE_PERCENTILE },
2151     { "PERCENTRANK" , SC_OPCODE_PERCENT_RANK },
2152     { "PERCENTILE.INC" , SC_OPCODE_PERCENTILE_INC },
2153     { "PERCENTRANK.INC" , SC_OPCODE_PERCENT_RANK_INC },
2154     { "QUARTILE.INC" , SC_OPCODE_QUARTILE_INC },
2155     { "RANK.EQ" , SC_OPCODE_RANK_EQ },
2156     { "PERCENTILE.EXC" , SC_OPCODE_PERCENTILE_EXC },
2157     { "PERCENTRANK.EXC" , SC_OPCODE_PERCENT_RANK_EXC },
2158     { "QUARTILE.EXC" , SC_OPCODE_QUARTILE_EXC },
2159     { "RANK.AVG" , SC_OPCODE_RANK_AVG },
2160     { "LARGE" , SC_OPCODE_LARGE },
2161     { "SMALL" , SC_OPCODE_SMALL },
2162     { "FREQUENCY" , SC_OPCODE_FREQUENCY },
2163     { "QUARTILE" , SC_OPCODE_QUARTILE },
2164     { "NORMINV" , SC_OPCODE_NORM_INV },
2165     { "NORM.INV" , SC_OPCODE_NORM_INV_MS },
2166     { "CONFIDENCE" , SC_OPCODE_CONFIDENCE },
2167     { "CONFIDENCE.NORM" , SC_OPCODE_CONFIDENCE_N },
2168     { "CONFIDENCE.T" , SC_OPCODE_CONFIDENCE_T },
2169     { "FTEST" , SC_OPCODE_F_TEST },
2170     { "F.TEST" , SC_OPCODE_F_TEST_MS },
2171     { "TRIMMEAN" , SC_OPCODE_TRIM_MEAN },
2172     { "PROB" , SC_OPCODE_PROB },
2173     { "CORREL" , SC_OPCODE_CORREL },
2174     { "COVAR" , SC_OPCODE_COVAR },
2175     { "COVARIANCE.P" , SC_OPCODE_COVARIANCE_P },
2176     { "COVARIANCE.S" , SC_OPCODE_COVARIANCE_S },
2177     { "PEARSON" , SC_OPCODE_PEARSON },
2178     { "RSQ" , SC_OPCODE_RSQ },
2179     { "STEYX" , SC_OPCODE_STEYX },
2180     { "SLOPE" , SC_OPCODE_SLOPE },
2181     { "INTERCEPT" , SC_OPCODE_INTERCEPT },
2182     { "TREND" , SC_OPCODE_TREND },
2183     { "GROWTH" , SC_OPCODE_GROWTH },
2184     { "LINEST" , SC_OPCODE_LINEST },
2185     { "LOGEST" , SC_OPCODE_LOGEST },
2186     { "FORECAST" , SC_OPCODE_FORECAST },
2187     { "FORECAST.ETS.ADD" , SC_OPCODE_FORECAST_ETS_ADD },
2188     { "FORECAST.ETS.SEASONALITY" , SC_OPCODE_FORECAST_ETS_SEA },
2189     { "FORECAST.ETS.MULT" , SC_OPCODE_FORECAST_ETS_MUL },
2190     { "FORECAST.ETS.PI.ADD" , SC_OPCODE_FORECAST_ETS_PIA },
2191     { "FORECAST.ETS.PI.MULT" , SC_OPCODE_FORECAST_ETS_PIM },
2192     { "FORECAST.ETS.STAT.ADD" , SC_OPCODE_FORECAST_ETS_STA },
2193     { "FORECAST.ETS.STAT.MULT" , SC_OPCODE_FORECAST_ETS_STM },
2194     { "FORECAST.LINEAR" , SC_OPCODE_FORECAST_LIN },
2195     { "CHIINV" , SC_OPCODE_CHI_INV },
2196     { "CHISQ.INV.RT" , SC_OPCODE_CHI_INV_MS },
2197     { "GAMMADIST" , SC_OPCODE_GAMMA_DIST },
2198     { "GAMMA.DIST" , SC_OPCODE_GAMMA_DIST_MS },
2199     { "GAMMAINV" , SC_OPCODE_GAMMA_INV },
2200     { "GAMMA.INV" , SC_OPCODE_GAMMA_INV_MS },
2201     { "TINV" , SC_OPCODE_T_INV },
2202     { "T.INV.2T" , SC_OPCODE_T_INV_2T },
2203     { "T.INV" , SC_OPCODE_T_INV_MS },
2204     { "FINV" , SC_OPCODE_F_INV },
2205     { "F.INV" , SC_OPCODE_F_INV_LT },
2206     { "F.INV.RT" , SC_OPCODE_F_INV_RT },
2207     { "CHITEST" , SC_OPCODE_CHI_TEST },
2208     { "CHISQ.TEST" , SC_OPCODE_CHI_TEST_MS },
2209     { "LOGINV" , SC_OPCODE_LOG_INV },
2210     { "LOGNORM.INV" , SC_OPCODE_LOG_INV_MS },
2211     { "TABLE" , SC_OPCODE_TABLE_OP },
2212     { "BETADIST" , SC_OPCODE_BETA_DIST },
2213     { "BETAINV" , SC_OPCODE_BETA_INV },
2214     { "BETA.DIST" , SC_OPCODE_BETA_DIST_MS },
2215     { "BETA.INV" , SC_OPCODE_BETA_INV_MS },
2216     { "WEEKNUM" , SC_OPCODE_WEEK },
2217     { "ISOWEEKNUM" , SC_OPCODE_ISOWEEKNUM },
2218     { "WEEKNUM_OOO" , SC_OPCODE_WEEKNUM_OOO },
2219     { "EASTERSUNDAY" , SC_OPCODE_EASTERSUNDAY },
2220     { "WEEKDAY" , SC_OPCODE_GET_DAY_OF_WEEK },
2221     { "NETWORKDAYS" , SC_OPCODE_NETWORKDAYS },
2222     { "NETWORKDAYS.INTL" , SC_OPCODE_NETWORKDAYS_MS },
2223     { "WORKDAY.INTL" , SC_OPCODE_WORKDAY_MS },
2224     { "#NAME!" , SC_OPCODE_NO_NAME },
2225     { "STYLE" , SC_OPCODE_STYLE },
2226     { "DDE" , SC_OPCODE_DDE },
2227     { "BASE" , SC_OPCODE_BASE },
2228     { "DECIMAL" , SC_OPCODE_DECIMAL },
2229     { "CONVERT_OOO" , SC_OPCODE_CONVERT_OOO },
2230     { "ROMAN" , SC_OPCODE_ROMAN },
2231     { "ARABIC" , SC_OPCODE_ARABIC },
2232     { "HYPERLINK" , SC_OPCODE_HYPERLINK },
2233     { "INFO" , SC_OPCODE_INFO },
2234     { "BAHTTEXT" , SC_OPCODE_BAHTTEXT },
2235     { "GETPIVOTDATA" , SC_OPCODE_GET_PIVOT_DATA },
2236     { "EUROCONVERT" , SC_OPCODE_EUROCONVERT },
2237     { "NUMBERVALUE" , SC_OPCODE_NUMBERVALUE },
2238     { "GAMMA" , SC_OPCODE_GAMMA },
2239     { "CHISQDIST" , SC_OPCODE_CHISQ_DIST },
2240     { "CHISQ.DIST" , SC_OPCODE_CHISQ_DIST_MS },
2241     { "CHISQ.INV" , SC_OPCODE_CHISQ_INV_MS },
2242     { "CHISQINV" , SC_OPCODE_CHISQ_INV },
2243     { "BITAND" , SC_OPCODE_BITAND },
2244     { "BITOR" , SC_OPCODE_BITOR },
2245     { "BITXOR" , SC_OPCODE_BITXOR },
2246     { "BITRSHIFT" , SC_OPCODE_BITRSHIFT },
2247     { "BITLSHIFT" , SC_OPCODE_BITLSHIFT },
2248     { "#NULL!" , SC_OPCODE_ERROR_NULL },
2249     { "#DIV/0!" , SC_OPCODE_ERROR_DIVZERO },
2250     { "#VALUE!" , SC_OPCODE_ERROR_VALUE },
2251     { "#REF!" , SC_OPCODE_ERROR_REF },
2252     { "#NAME?" , SC_OPCODE_ERROR_NAME },
2253     { "#NUM!" , SC_OPCODE_ERROR_NUM },
2254     { "#N/A" , SC_OPCODE_ERROR_NA },
2255     /* END defined ERROR.TYPE() values. */
2256     { "FILTERXML" , SC_OPCODE_FILTERXML },
2257     { "WEBSERVICE" , SC_OPCODE_WEBSERVICE },
2258     { "COLOR" , SC_OPCODE_COLOR },
2259     { "ERF.PRECISE" , SC_OPCODE_ERF_MS },
2260     { "ERFC.PRECISE" , SC_OPCODE_ERFC_MS },
2261     { "ENCODEURL" , SC_OPCODE_ENCODEURL },
2262     { "RAWSUBTRACT" , SC_OPCODE_RAWSUBTRACT },
2263     { "ROUNDSIG" , SC_OPCODE_ROUNDSIG },
2264     { "REGEX" , SC_OPCODE_REGEX },
2265     { "FOURIER", SC_OPCODE_FOURIER },
2266     { "RAND.NV" , SC_OPCODE_RANDOM_NV },
2267     { "RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV },
2268     { nullptr, -1 }
2271 /** Function names that can be localized if [en-US]. Same names should be used
2272     in RID_STRLIST_FUNCTION_NAMES_ENGLISH above. Names can be changed, the
2273     change has to be mentioned in the release notes, i.e.
2274     https://wiki.documentfoundation.org/ReleaseNotes/...
2275  */
2276 const std::pair<const char*, int> RID_STRLIST_FUNCTION_NAMES[] =
2278     { NC_("RID_STRLIST_FUNCTION_NAMES", "IF") , SC_OPCODE_IF },
2279     { NC_("RID_STRLIST_FUNCTION_NAMES", "IFERROR") , SC_OPCODE_IF_ERROR },
2280     { NC_("RID_STRLIST_FUNCTION_NAMES", "IFNA") , SC_OPCODE_IF_NA },
2281     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHOOSE") , SC_OPCODE_CHOOSE },
2282     /* L10n: preserve the leading '#' hash character in translations. */
2283     { NC_("RID_STRLIST_FUNCTION_NAMES", "#All") , SC_OPCODE_TABLE_REF_ITEM_ALL },
2284     /* L10n: preserve the leading '#' hash character in translations. */
2285     { NC_("RID_STRLIST_FUNCTION_NAMES", "#Headers") , SC_OPCODE_TABLE_REF_ITEM_HEADERS },
2286     /* L10n: preserve the leading '#' hash character in translations. */
2287     { NC_("RID_STRLIST_FUNCTION_NAMES", "#Data") , SC_OPCODE_TABLE_REF_ITEM_DATA },
2288     /* L10n: preserve the leading '#' hash character in translations. */
2289     { NC_("RID_STRLIST_FUNCTION_NAMES", "#Totals") , SC_OPCODE_TABLE_REF_ITEM_TOTALS },
2290     /* L10n: preserve the leading '#' hash character in translations. */
2291     { NC_("RID_STRLIST_FUNCTION_NAMES", "#This Row") , SC_OPCODE_TABLE_REF_ITEM_THIS_ROW },
2292     { NC_("RID_STRLIST_FUNCTION_NAMES", "AND") , SC_OPCODE_AND },
2293     { NC_("RID_STRLIST_FUNCTION_NAMES", "OR") , SC_OPCODE_OR },
2294     { NC_("RID_STRLIST_FUNCTION_NAMES", "XOR") , SC_OPCODE_XOR },
2295     { NC_("RID_STRLIST_FUNCTION_NAMES", "NOT") , SC_OPCODE_NOT },
2296     { NC_("RID_STRLIST_FUNCTION_NAMES", "NEG") , SC_OPCODE_NEG },
2297     { NC_("RID_STRLIST_FUNCTION_NAMES", "PI") , SC_OPCODE_PI }, // ???
2298     { NC_("RID_STRLIST_FUNCTION_NAMES", "RAND") , SC_OPCODE_RANDOM },
2299     { NC_("RID_STRLIST_FUNCTION_NAMES", "TRUE") , SC_OPCODE_TRUE },
2300     { NC_("RID_STRLIST_FUNCTION_NAMES", "FALSE") , SC_OPCODE_FALSE },
2301     { NC_("RID_STRLIST_FUNCTION_NAMES", "TODAY") , SC_OPCODE_GET_ACT_DATE },
2302     { NC_("RID_STRLIST_FUNCTION_NAMES", "NOW") , SC_OPCODE_GET_ACT_TIME },
2303     { NC_("RID_STRLIST_FUNCTION_NAMES", "NA") , SC_OPCODE_NO_VALUE },
2304     { NC_("RID_STRLIST_FUNCTION_NAMES", "CURRENT") , SC_OPCODE_CURRENT },
2305     { NC_("RID_STRLIST_FUNCTION_NAMES", "DEGREES") , SC_OPCODE_DEG },
2306     { NC_("RID_STRLIST_FUNCTION_NAMES", "RADIANS") , SC_OPCODE_RAD },
2307     { NC_("RID_STRLIST_FUNCTION_NAMES", "SIN") , SC_OPCODE_SIN },
2308     { NC_("RID_STRLIST_FUNCTION_NAMES", "COS") , SC_OPCODE_COS },
2309     { NC_("RID_STRLIST_FUNCTION_NAMES", "TAN") , SC_OPCODE_TAN },
2310     { NC_("RID_STRLIST_FUNCTION_NAMES", "COT") , SC_OPCODE_COT },
2311     { NC_("RID_STRLIST_FUNCTION_NAMES", "ASIN") , SC_OPCODE_ARC_SIN },
2312     { NC_("RID_STRLIST_FUNCTION_NAMES", "ACOS") , SC_OPCODE_ARC_COS },
2313     { NC_("RID_STRLIST_FUNCTION_NAMES", "ATAN") , SC_OPCODE_ARC_TAN },
2314     { NC_("RID_STRLIST_FUNCTION_NAMES", "ACOT") , SC_OPCODE_ARC_COT },
2315     { NC_("RID_STRLIST_FUNCTION_NAMES", "SINH") , SC_OPCODE_SIN_HYP },
2316     { NC_("RID_STRLIST_FUNCTION_NAMES", "COSH") , SC_OPCODE_COS_HYP },
2317     { NC_("RID_STRLIST_FUNCTION_NAMES", "TANH") , SC_OPCODE_TAN_HYP },
2318     { NC_("RID_STRLIST_FUNCTION_NAMES", "COTH") , SC_OPCODE_COT_HYP },
2319     { NC_("RID_STRLIST_FUNCTION_NAMES", "ASINH") , SC_OPCODE_ARC_SIN_HYP },
2320     { NC_("RID_STRLIST_FUNCTION_NAMES", "ACOSH") , SC_OPCODE_ARC_COS_HYP },
2321     { NC_("RID_STRLIST_FUNCTION_NAMES", "ATANH") , SC_OPCODE_ARC_TAN_HYP },
2322     { NC_("RID_STRLIST_FUNCTION_NAMES", "ACOTH") , SC_OPCODE_ARC_COT_HYP },
2323     { NC_("RID_STRLIST_FUNCTION_NAMES", "CSC") , SC_OPCODE_COSECANT },
2324     { NC_("RID_STRLIST_FUNCTION_NAMES", "SEC") , SC_OPCODE_SECANT },
2325     { NC_("RID_STRLIST_FUNCTION_NAMES", "CSCH") , SC_OPCODE_COSECANT_HYP },
2326     { NC_("RID_STRLIST_FUNCTION_NAMES", "SECH") , SC_OPCODE_SECANT_HYP },
2327     { NC_("RID_STRLIST_FUNCTION_NAMES", "EXP") , SC_OPCODE_EXP },
2328     { NC_("RID_STRLIST_FUNCTION_NAMES", "LN") , SC_OPCODE_LN },
2329     { NC_("RID_STRLIST_FUNCTION_NAMES", "SQRT") , SC_OPCODE_SQRT },
2330     { NC_("RID_STRLIST_FUNCTION_NAMES", "FACT") , SC_OPCODE_FACT },
2331     { NC_("RID_STRLIST_FUNCTION_NAMES", "YEAR") , SC_OPCODE_GET_YEAR },
2332     { NC_("RID_STRLIST_FUNCTION_NAMES", "MONTH") , SC_OPCODE_GET_MONTH },
2333     { NC_("RID_STRLIST_FUNCTION_NAMES", "DAY") , SC_OPCODE_GET_DAY },
2334     { NC_("RID_STRLIST_FUNCTION_NAMES", "HOUR") , SC_OPCODE_GET_HOUR },
2335     { NC_("RID_STRLIST_FUNCTION_NAMES", "MINUTE") , SC_OPCODE_GET_MIN },
2336     { NC_("RID_STRLIST_FUNCTION_NAMES", "SECOND") , SC_OPCODE_GET_SEC },
2337     { NC_("RID_STRLIST_FUNCTION_NAMES", "SIGN") , SC_OPCODE_PLUS_MINUS },
2338     { NC_("RID_STRLIST_FUNCTION_NAMES", "ABS") , SC_OPCODE_ABS },
2339     { NC_("RID_STRLIST_FUNCTION_NAMES", "INT") , SC_OPCODE_INT },
2340     { NC_("RID_STRLIST_FUNCTION_NAMES", "PHI") , SC_OPCODE_PHI },
2341     { NC_("RID_STRLIST_FUNCTION_NAMES", "GAUSS") , SC_OPCODE_GAUSS },
2342     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISBLANK") , SC_OPCODE_IS_EMPTY },
2343     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISTEXT") , SC_OPCODE_IS_STRING },
2344     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISNONTEXT") , SC_OPCODE_IS_NON_STRING },
2345     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISLOGICAL") , SC_OPCODE_IS_LOGICAL },
2346     { NC_("RID_STRLIST_FUNCTION_NAMES", "TYPE") , SC_OPCODE_TYPE },
2347     { NC_("RID_STRLIST_FUNCTION_NAMES", "CELL") , SC_OPCODE_CELL },
2348     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISREF") , SC_OPCODE_IS_REF },
2349     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISNUMBER") , SC_OPCODE_IS_VALUE },
2350     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISFORMULA") , SC_OPCODE_IS_FORMULA },
2351     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISNA") , SC_OPCODE_IS_NV },
2352     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISERR") , SC_OPCODE_IS_ERR },
2353     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISERROR") , SC_OPCODE_IS_ERROR },
2354     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISEVEN") , SC_OPCODE_IS_EVEN },
2355     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISODD") , SC_OPCODE_IS_ODD },
2356     { NC_("RID_STRLIST_FUNCTION_NAMES", "N") , SC_OPCODE_N },
2357     { NC_("RID_STRLIST_FUNCTION_NAMES", "DATEVALUE") , SC_OPCODE_GET_DATE_VALUE },
2358     { NC_("RID_STRLIST_FUNCTION_NAMES", "TIMEVALUE") , SC_OPCODE_GET_TIME_VALUE },
2359     { NC_("RID_STRLIST_FUNCTION_NAMES", "CODE") , SC_OPCODE_CODE },
2360     { NC_("RID_STRLIST_FUNCTION_NAMES", "TRIM") , SC_OPCODE_TRIM },
2361     { NC_("RID_STRLIST_FUNCTION_NAMES", "UPPER") , SC_OPCODE_UPPER },
2362     { NC_("RID_STRLIST_FUNCTION_NAMES", "PROPER") , SC_OPCODE_PROPER },
2363     { NC_("RID_STRLIST_FUNCTION_NAMES", "LOWER") , SC_OPCODE_LOWER },
2364     { NC_("RID_STRLIST_FUNCTION_NAMES", "LEN") , SC_OPCODE_LEN },
2365     { NC_("RID_STRLIST_FUNCTION_NAMES", "T") , SC_OPCODE_T },
2366     { NC_("RID_STRLIST_FUNCTION_NAMES", "VALUE") , SC_OPCODE_VALUE },
2367     { NC_("RID_STRLIST_FUNCTION_NAMES", "CLEAN") , SC_OPCODE_CLEAN },
2368     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHAR") , SC_OPCODE_CHAR },
2369     { NC_("RID_STRLIST_FUNCTION_NAMES", "JIS") , SC_OPCODE_JIS },
2370     { NC_("RID_STRLIST_FUNCTION_NAMES", "ASC") , SC_OPCODE_ASC },
2371     { NC_("RID_STRLIST_FUNCTION_NAMES", "UNICODE") , SC_OPCODE_UNICODE },
2372     { NC_("RID_STRLIST_FUNCTION_NAMES", "UNICHAR") , SC_OPCODE_UNICHAR },
2373     { NC_("RID_STRLIST_FUNCTION_NAMES", "LOG10") , SC_OPCODE_LOG10 },
2374     { NC_("RID_STRLIST_FUNCTION_NAMES", "EVEN") , SC_OPCODE_EVEN },
2375     { NC_("RID_STRLIST_FUNCTION_NAMES", "ODD") , SC_OPCODE_ODD },
2376     { NC_("RID_STRLIST_FUNCTION_NAMES", "NORMSDIST") , SC_OPCODE_STD_NORM_DIST },
2377     { NC_("RID_STRLIST_FUNCTION_NAMES", "NORM.S.DIST") , SC_OPCODE_STD_NORM_DIST_MS },
2378     { NC_("RID_STRLIST_FUNCTION_NAMES", "FISHER") , SC_OPCODE_FISHER },
2379     { NC_("RID_STRLIST_FUNCTION_NAMES", "FISHERINV") , SC_OPCODE_FISHER_INV },
2380     { NC_("RID_STRLIST_FUNCTION_NAMES", "NORMSINV") , SC_OPCODE_S_NORM_INV },
2381     { NC_("RID_STRLIST_FUNCTION_NAMES", "NORM.S.INV") , SC_OPCODE_S_NORM_INV_MS },
2382     { NC_("RID_STRLIST_FUNCTION_NAMES", "GAMMALN") , SC_OPCODE_GAMMA_LN },
2383     { NC_("RID_STRLIST_FUNCTION_NAMES", "GAMMALN.PRECISE") , SC_OPCODE_GAMMA_LN_MS },
2384     { NC_("RID_STRLIST_FUNCTION_NAMES", "ERRORTYPE") , SC_OPCODE_ERROR_TYPE },
2385     { NC_("RID_STRLIST_FUNCTION_NAMES", "ERROR.TYPE") , SC_OPCODE_ERROR_TYPE_ODF },
2386     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORMULA") , SC_OPCODE_FORMULA },
2387     { NC_("RID_STRLIST_FUNCTION_NAMES", "ARABIC") , SC_OPCODE_ARABIC },
2388     { NC_("RID_STRLIST_FUNCTION_NAMES", "ATAN2") , SC_OPCODE_ARC_TAN_2 },
2389     { NC_("RID_STRLIST_FUNCTION_NAMES", "CEILING.MATH") , SC_OPCODE_CEIL_MATH },
2390     { NC_("RID_STRLIST_FUNCTION_NAMES", "CEILING") , SC_OPCODE_CEIL },
2391     { NC_("RID_STRLIST_FUNCTION_NAMES", "CEILING.XCL") , SC_OPCODE_CEIL_MS },
2392     { NC_("RID_STRLIST_FUNCTION_NAMES", "CEILING.PRECISE") , SC_OPCODE_CEIL_PRECISE },
2393     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISO.CEILING") , SC_OPCODE_CEIL_ISO },
2394     { NC_("RID_STRLIST_FUNCTION_NAMES", "FLOOR") , SC_OPCODE_FLOOR },
2395     { NC_("RID_STRLIST_FUNCTION_NAMES", "FLOOR.XCL") , SC_OPCODE_FLOOR_MS },
2396     { NC_("RID_STRLIST_FUNCTION_NAMES", "FLOOR.MATH") , SC_OPCODE_FLOOR_MATH },
2397     { NC_("RID_STRLIST_FUNCTION_NAMES", "FLOOR.PRECISE") , SC_OPCODE_FLOOR_PRECISE },
2398     { NC_("RID_STRLIST_FUNCTION_NAMES", "ROUND") , SC_OPCODE_ROUND },
2399     { NC_("RID_STRLIST_FUNCTION_NAMES", "ROUNDUP") , SC_OPCODE_ROUND_UP },
2400     { NC_("RID_STRLIST_FUNCTION_NAMES", "ROUNDDOWN") , SC_OPCODE_ROUND_DOWN },
2401     { NC_("RID_STRLIST_FUNCTION_NAMES", "TRUNC") , SC_OPCODE_TRUNC },
2402     { NC_("RID_STRLIST_FUNCTION_NAMES", "LOG") , SC_OPCODE_LOG },
2403     { NC_("RID_STRLIST_FUNCTION_NAMES", "POWER") , SC_OPCODE_POWER },
2404     { NC_("RID_STRLIST_FUNCTION_NAMES", "GCD") , SC_OPCODE_GCD },
2405     { NC_("RID_STRLIST_FUNCTION_NAMES", "LCM") , SC_OPCODE_LCM },
2406     { NC_("RID_STRLIST_FUNCTION_NAMES", "MOD") , SC_OPCODE_MOD },
2407     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUMPRODUCT") , SC_OPCODE_SUM_PRODUCT },
2408     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUMSQ") , SC_OPCODE_SUM_SQ },
2409     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUMX2MY2") , SC_OPCODE_SUM_X2MY2 },
2410     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUMX2PY2") , SC_OPCODE_SUM_X2DY2 },
2411     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUMXMY2") , SC_OPCODE_SUM_XMY2 },
2412     { NC_("RID_STRLIST_FUNCTION_NAMES", "DATE") , SC_OPCODE_GET_DATE },
2413     { NC_("RID_STRLIST_FUNCTION_NAMES", "TIME") , SC_OPCODE_GET_TIME },
2414     { NC_("RID_STRLIST_FUNCTION_NAMES", "DAYS") , SC_OPCODE_GET_DIFF_DATE },
2415     { NC_("RID_STRLIST_FUNCTION_NAMES", "DAYS360") , SC_OPCODE_GET_DIFF_DATE_360 },
2416     { NC_("RID_STRLIST_FUNCTION_NAMES", "DATEDIF") , SC_OPCODE_GET_DATEDIF },
2417     { NC_("RID_STRLIST_FUNCTION_NAMES", "MIN") , SC_OPCODE_MIN },
2418     { NC_("RID_STRLIST_FUNCTION_NAMES", "MINA") , SC_OPCODE_MIN_A },
2419     { NC_("RID_STRLIST_FUNCTION_NAMES", "MAX") , SC_OPCODE_MAX },
2420     { NC_("RID_STRLIST_FUNCTION_NAMES", "MAXA") , SC_OPCODE_MAX_A },
2421     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUM") , SC_OPCODE_SUM },
2422     { NC_("RID_STRLIST_FUNCTION_NAMES", "PRODUCT") , SC_OPCODE_PRODUCT },
2423     { NC_("RID_STRLIST_FUNCTION_NAMES", "AVERAGE") , SC_OPCODE_AVERAGE },
2424     { NC_("RID_STRLIST_FUNCTION_NAMES", "AVERAGEA") , SC_OPCODE_AVERAGE_A },
2425     { NC_("RID_STRLIST_FUNCTION_NAMES", "COUNT") , SC_OPCODE_COUNT },
2426     { NC_("RID_STRLIST_FUNCTION_NAMES", "COUNTA") , SC_OPCODE_COUNT_2 },
2427     { NC_("RID_STRLIST_FUNCTION_NAMES", "NPV") , SC_OPCODE_NPV },
2428     { NC_("RID_STRLIST_FUNCTION_NAMES", "IRR") , SC_OPCODE_IRR },
2429     { NC_("RID_STRLIST_FUNCTION_NAMES", "MIRR") , SC_OPCODE_MIRR },
2430     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISPMT") , SC_OPCODE_ISPMT },
2431     { NC_("RID_STRLIST_FUNCTION_NAMES", "VAR") , SC_OPCODE_VAR },
2432     { NC_("RID_STRLIST_FUNCTION_NAMES", "VARA") , SC_OPCODE_VAR_A },
2433     { NC_("RID_STRLIST_FUNCTION_NAMES", "VARP") , SC_OPCODE_VAR_P },
2434     { NC_("RID_STRLIST_FUNCTION_NAMES", "VARPA") , SC_OPCODE_VAR_P_A },
2435     { NC_("RID_STRLIST_FUNCTION_NAMES", "VAR.P") , SC_OPCODE_VAR_P_MS },
2436     { NC_("RID_STRLIST_FUNCTION_NAMES", "VAR.S") , SC_OPCODE_VAR_S },
2437     { NC_("RID_STRLIST_FUNCTION_NAMES", "STDEV") , SC_OPCODE_ST_DEV },
2438     { NC_("RID_STRLIST_FUNCTION_NAMES", "STDEVA") , SC_OPCODE_ST_DEV_A },
2439     { NC_("RID_STRLIST_FUNCTION_NAMES", "STDEVP") , SC_OPCODE_ST_DEV_P },
2440     { NC_("RID_STRLIST_FUNCTION_NAMES", "STDEVPA") , SC_OPCODE_ST_DEV_P_A },
2441     { NC_("RID_STRLIST_FUNCTION_NAMES", "STDEV.P") , SC_OPCODE_ST_DEV_P_MS },
2442     { NC_("RID_STRLIST_FUNCTION_NAMES", "STDEV.S") , SC_OPCODE_ST_DEV_S },
2443     { NC_("RID_STRLIST_FUNCTION_NAMES", "B") , SC_OPCODE_B },
2444     { NC_("RID_STRLIST_FUNCTION_NAMES", "NORMDIST") , SC_OPCODE_NORM_DIST },
2445     { NC_("RID_STRLIST_FUNCTION_NAMES", "NORM.DIST") , SC_OPCODE_NORM_DIST_MS },
2446     { NC_("RID_STRLIST_FUNCTION_NAMES", "EXPONDIST") , SC_OPCODE_EXP_DIST },
2447     { NC_("RID_STRLIST_FUNCTION_NAMES", "EXPON.DIST") , SC_OPCODE_EXP_DIST_MS },
2448     { NC_("RID_STRLIST_FUNCTION_NAMES", "BINOMDIST") , SC_OPCODE_BINOM_DIST },
2449     { NC_("RID_STRLIST_FUNCTION_NAMES", "BINOM.DIST") , SC_OPCODE_BINOM_DIST_MS },
2450     { NC_("RID_STRLIST_FUNCTION_NAMES", "POISSON") , SC_OPCODE_POISSON_DIST },
2451     { NC_("RID_STRLIST_FUNCTION_NAMES", "POISSON.DIST") , SC_OPCODE_POISSON_DIST_MS },
2452     { NC_("RID_STRLIST_FUNCTION_NAMES", "COMBIN") , SC_OPCODE_COMBIN },
2453     { NC_("RID_STRLIST_FUNCTION_NAMES", "COMBINA") , SC_OPCODE_COMBIN_A },
2454     { NC_("RID_STRLIST_FUNCTION_NAMES", "PERMUT") , SC_OPCODE_PERMUT },
2455     { NC_("RID_STRLIST_FUNCTION_NAMES", "PERMUTATIONA") , SC_OPCODE_PERMUTATION_A },
2456     { NC_("RID_STRLIST_FUNCTION_NAMES", "PV") , SC_OPCODE_PV },
2457     { NC_("RID_STRLIST_FUNCTION_NAMES", "SYD") , SC_OPCODE_SYD },
2458     { NC_("RID_STRLIST_FUNCTION_NAMES", "DDB") , SC_OPCODE_DDB },
2459     { NC_("RID_STRLIST_FUNCTION_NAMES", "DB") , SC_OPCODE_DB },
2460     { NC_("RID_STRLIST_FUNCTION_NAMES", "VDB") , SC_OPCODE_VBD },
2461     { NC_("RID_STRLIST_FUNCTION_NAMES", "PDURATION") , SC_OPCODE_PDURATION },
2462     { NC_("RID_STRLIST_FUNCTION_NAMES", "SLN") , SC_OPCODE_SLN },
2463     { NC_("RID_STRLIST_FUNCTION_NAMES", "PMT") , SC_OPCODE_PMT },
2464     { NC_("RID_STRLIST_FUNCTION_NAMES", "COLUMNS") , SC_OPCODE_COLUMNS },
2465     { NC_("RID_STRLIST_FUNCTION_NAMES", "ROWS") , SC_OPCODE_ROWS },
2466     { NC_("RID_STRLIST_FUNCTION_NAMES", "SHEETS") , SC_OPCODE_SHEETS },
2467     { NC_("RID_STRLIST_FUNCTION_NAMES", "COLUMN") , SC_OPCODE_COLUMN },
2468     { NC_("RID_STRLIST_FUNCTION_NAMES", "ROW") , SC_OPCODE_ROW },
2469     { NC_("RID_STRLIST_FUNCTION_NAMES", "SHEET") , SC_OPCODE_SHEET },
2470     { NC_("RID_STRLIST_FUNCTION_NAMES", "RRI") , SC_OPCODE_RRI },
2471     { NC_("RID_STRLIST_FUNCTION_NAMES", "FV") , SC_OPCODE_FV },
2472     { NC_("RID_STRLIST_FUNCTION_NAMES", "NPER") , SC_OPCODE_NPER },
2473     { NC_("RID_STRLIST_FUNCTION_NAMES", "RATE") , SC_OPCODE_RATE },
2474     { NC_("RID_STRLIST_FUNCTION_NAMES", "IPMT") , SC_OPCODE_IPMT },
2475     { NC_("RID_STRLIST_FUNCTION_NAMES", "PPMT") , SC_OPCODE_PPMT },
2476     { NC_("RID_STRLIST_FUNCTION_NAMES", "CUMIPMT") , SC_OPCODE_CUM_IPMT },
2477     { NC_("RID_STRLIST_FUNCTION_NAMES", "CUMPRINC") , SC_OPCODE_CUM_PRINC },
2478     { NC_("RID_STRLIST_FUNCTION_NAMES", "EFFECT") , SC_OPCODE_EFFECT },
2479     { NC_("RID_STRLIST_FUNCTION_NAMES", "NOMINAL") , SC_OPCODE_NOMINAL },
2480     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUBTOTAL") , SC_OPCODE_SUB_TOTAL },
2481     { NC_("RID_STRLIST_FUNCTION_NAMES", "DSUM") , SC_OPCODE_DB_SUM },
2482     { NC_("RID_STRLIST_FUNCTION_NAMES", "DCOUNT") , SC_OPCODE_DB_COUNT },
2483     { NC_("RID_STRLIST_FUNCTION_NAMES", "DCOUNTA") , SC_OPCODE_DB_COUNT_2 },
2484     { NC_("RID_STRLIST_FUNCTION_NAMES", "DAVERAGE") , SC_OPCODE_DB_AVERAGE },
2485     { NC_("RID_STRLIST_FUNCTION_NAMES", "DGET") , SC_OPCODE_DB_GET },
2486     { NC_("RID_STRLIST_FUNCTION_NAMES", "DMAX") , SC_OPCODE_DB_MAX },
2487     { NC_("RID_STRLIST_FUNCTION_NAMES", "DMIN") , SC_OPCODE_DB_MIN },
2488     { NC_("RID_STRLIST_FUNCTION_NAMES", "DPRODUCT") , SC_OPCODE_DB_PRODUCT },
2489     { NC_("RID_STRLIST_FUNCTION_NAMES", "DSTDEV") , SC_OPCODE_DB_STD_DEV },
2490     { NC_("RID_STRLIST_FUNCTION_NAMES", "DSTDEVP") , SC_OPCODE_DB_STD_DEV_P },
2491     { NC_("RID_STRLIST_FUNCTION_NAMES", "DVAR") , SC_OPCODE_DB_VAR },
2492     { NC_("RID_STRLIST_FUNCTION_NAMES", "DVARP") , SC_OPCODE_DB_VAR_P },
2493     { NC_("RID_STRLIST_FUNCTION_NAMES", "INDIRECT") , SC_OPCODE_INDIRECT },
2494     { NC_("RID_STRLIST_FUNCTION_NAMES", "ADDRESS") , SC_OPCODE_ADDRESS },
2495     { NC_("RID_STRLIST_FUNCTION_NAMES", "MATCH") , SC_OPCODE_MATCH },
2496     { NC_("RID_STRLIST_FUNCTION_NAMES", "COUNTBLANK") , SC_OPCODE_COUNT_EMPTY_CELLS },
2497     { NC_("RID_STRLIST_FUNCTION_NAMES", "COUNTIF") , SC_OPCODE_COUNT_IF },
2498     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUMIF") , SC_OPCODE_SUM_IF },
2499     { NC_("RID_STRLIST_FUNCTION_NAMES", "AVERAGEIF") , SC_OPCODE_AVERAGE_IF },
2500     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUMIFS") , SC_OPCODE_SUM_IFS },
2501     { NC_("RID_STRLIST_FUNCTION_NAMES", "AVERAGEIFS") , SC_OPCODE_AVERAGE_IFS },
2502     { NC_("RID_STRLIST_FUNCTION_NAMES", "COUNTIFS") , SC_OPCODE_COUNT_IFS },
2503     { NC_("RID_STRLIST_FUNCTION_NAMES", "LOOKUP") , SC_OPCODE_LOOKUP },
2504     { NC_("RID_STRLIST_FUNCTION_NAMES", "VLOOKUP") , SC_OPCODE_V_LOOKUP },
2505     { NC_("RID_STRLIST_FUNCTION_NAMES", "HLOOKUP") , SC_OPCODE_H_LOOKUP },
2506     { NC_("RID_STRLIST_FUNCTION_NAMES", "MULTIRANGE") , SC_OPCODE_MULTI_AREA }, // legacy for range list (union)
2507     { NC_("RID_STRLIST_FUNCTION_NAMES", "OFFSET") , SC_OPCODE_OFFSET },
2508     { NC_("RID_STRLIST_FUNCTION_NAMES", "INDEX") , SC_OPCODE_INDEX }, // ?? first character = I ??
2509     { NC_("RID_STRLIST_FUNCTION_NAMES", "AREAS") , SC_OPCODE_AREAS },
2510     { NC_("RID_STRLIST_FUNCTION_NAMES", "DOLLAR") , SC_OPCODE_CURRENCY },
2511     { NC_("RID_STRLIST_FUNCTION_NAMES", "REPLACE") , SC_OPCODE_REPLACE },
2512     { NC_("RID_STRLIST_FUNCTION_NAMES", "FIXED") , SC_OPCODE_FIXED },
2513     { NC_("RID_STRLIST_FUNCTION_NAMES", "FIND") , SC_OPCODE_FIND },
2514     { NC_("RID_STRLIST_FUNCTION_NAMES", "EXACT") , SC_OPCODE_EXACT },
2515     { NC_("RID_STRLIST_FUNCTION_NAMES", "LEFT") , SC_OPCODE_LEFT },
2516     { NC_("RID_STRLIST_FUNCTION_NAMES", "RIGHT") , SC_OPCODE_RIGHT },
2517     { NC_("RID_STRLIST_FUNCTION_NAMES", "SEARCH") , SC_OPCODE_SEARCH },
2518     { NC_("RID_STRLIST_FUNCTION_NAMES", "MID") , SC_OPCODE_MID },
2519     { NC_("RID_STRLIST_FUNCTION_NAMES", "LENB") , SC_OPCODE_LENB },
2520     { NC_("RID_STRLIST_FUNCTION_NAMES", "RIGHTB") , SC_OPCODE_RIGHTB },
2521     { NC_("RID_STRLIST_FUNCTION_NAMES", "LEFTB") , SC_OPCODE_LEFTB },
2522     { NC_("RID_STRLIST_FUNCTION_NAMES", "REPLACEB") , SC_OPCODE_REPLACEB },
2523     { NC_("RID_STRLIST_FUNCTION_NAMES", "MIDB") , SC_OPCODE_MIDB },
2524     { NC_("RID_STRLIST_FUNCTION_NAMES", "TEXT") , SC_OPCODE_TEXT },
2525     { NC_("RID_STRLIST_FUNCTION_NAMES", "SUBSTITUTE") , SC_OPCODE_SUBSTITUTE },
2526     { NC_("RID_STRLIST_FUNCTION_NAMES", "REPT") , SC_OPCODE_REPT },
2527     { NC_("RID_STRLIST_FUNCTION_NAMES", "CONCATENATE") , SC_OPCODE_CONCAT },
2528     { NC_("RID_STRLIST_FUNCTION_NAMES", "CONCAT") , SC_OPCODE_CONCAT_MS },
2529     { NC_("RID_STRLIST_FUNCTION_NAMES", "TEXTJOIN") , SC_OPCODE_TEXTJOIN_MS },
2530     { NC_("RID_STRLIST_FUNCTION_NAMES", "IFS") , SC_OPCODE_IFS_MS },
2531     { NC_("RID_STRLIST_FUNCTION_NAMES", "SWITCH") , SC_OPCODE_SWITCH_MS },
2532     { NC_("RID_STRLIST_FUNCTION_NAMES", "MINIFS") , SC_OPCODE_MINIFS_MS },
2533     { NC_("RID_STRLIST_FUNCTION_NAMES", "MAXIFS") , SC_OPCODE_MAXIFS_MS },
2534     { NC_("RID_STRLIST_FUNCTION_NAMES", "MVALUE") , SC_OPCODE_MAT_VALUE },
2535     { NC_("RID_STRLIST_FUNCTION_NAMES", "MDETERM") , SC_OPCODE_MAT_DET },
2536     { NC_("RID_STRLIST_FUNCTION_NAMES", "MINVERSE") , SC_OPCODE_MAT_INV },
2537     { NC_("RID_STRLIST_FUNCTION_NAMES", "MMULT") , SC_OPCODE_MAT_MULT },
2538     { NC_("RID_STRLIST_FUNCTION_NAMES", "TRANSPOSE") , SC_OPCODE_MAT_TRANS },
2539     { NC_("RID_STRLIST_FUNCTION_NAMES", "MUNIT") , SC_OPCODE_MATRIX_UNIT },
2540     { NC_("RID_STRLIST_FUNCTION_NAMES", "GOALSEEK") , SC_OPCODE_BACK_SOLVER },
2541     { NC_("RID_STRLIST_FUNCTION_NAMES", "HYPGEOMDIST") , SC_OPCODE_HYP_GEOM_DIST },
2542     { NC_("RID_STRLIST_FUNCTION_NAMES", "HYPGEOM.DIST") , SC_OPCODE_HYP_GEOM_DIST_MS },
2543     { NC_("RID_STRLIST_FUNCTION_NAMES", "LOGNORMDIST") , SC_OPCODE_LOG_NORM_DIST },
2544     { NC_("RID_STRLIST_FUNCTION_NAMES", "LOGNORM.DIST") , SC_OPCODE_LOG_NORM_DIST_MS },
2545     { NC_("RID_STRLIST_FUNCTION_NAMES", "TDIST") , SC_OPCODE_T_DIST },
2546     { NC_("RID_STRLIST_FUNCTION_NAMES", "T.DIST.2T") , SC_OPCODE_T_DIST_2T },
2547     { NC_("RID_STRLIST_FUNCTION_NAMES", "T.DIST") , SC_OPCODE_T_DIST_MS },
2548     { NC_("RID_STRLIST_FUNCTION_NAMES", "T.DIST.RT") , SC_OPCODE_T_DIST_RT },
2549     { NC_("RID_STRLIST_FUNCTION_NAMES", "FDIST") , SC_OPCODE_F_DIST },
2550     { NC_("RID_STRLIST_FUNCTION_NAMES", "F.DIST") , SC_OPCODE_F_DIST_LT },
2551     { NC_("RID_STRLIST_FUNCTION_NAMES", "F.DIST.RT") , SC_OPCODE_F_DIST_RT },
2552     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHIDIST") , SC_OPCODE_CHI_DIST },
2553     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHISQ.DIST.RT") , SC_OPCODE_CHI_DIST_MS },
2554     { NC_("RID_STRLIST_FUNCTION_NAMES", "WEIBULL") , SC_OPCODE_WEIBULL },
2555     { NC_("RID_STRLIST_FUNCTION_NAMES", "WEIBULL.DIST") , SC_OPCODE_WEIBULL_MS },
2556     { NC_("RID_STRLIST_FUNCTION_NAMES", "NEGBINOMDIST") , SC_OPCODE_NEG_BINOM_VERT },
2557     { NC_("RID_STRLIST_FUNCTION_NAMES", "NEGBINOM.DIST") , SC_OPCODE_NEG_BINOM_DIST_MS },
2558     { NC_("RID_STRLIST_FUNCTION_NAMES", "CRITBINOM") , SC_OPCODE_CRIT_BINOM },
2559     { NC_("RID_STRLIST_FUNCTION_NAMES", "BINOM.INV") , SC_OPCODE_BINOM_INV },
2560     { NC_("RID_STRLIST_FUNCTION_NAMES", "KURT") , SC_OPCODE_KURT },
2561     { NC_("RID_STRLIST_FUNCTION_NAMES", "HARMEAN") , SC_OPCODE_HAR_MEAN },
2562     { NC_("RID_STRLIST_FUNCTION_NAMES", "GEOMEAN") , SC_OPCODE_GEO_MEAN },
2563     { NC_("RID_STRLIST_FUNCTION_NAMES", "STANDARDIZE") , SC_OPCODE_STANDARD },
2564     { NC_("RID_STRLIST_FUNCTION_NAMES", "AVEDEV") , SC_OPCODE_AVE_DEV },
2565     { NC_("RID_STRLIST_FUNCTION_NAMES", "SKEW") , SC_OPCODE_SKEW },
2566     { NC_("RID_STRLIST_FUNCTION_NAMES", "SKEWP") , SC_OPCODE_SKEWP },
2567     { NC_("RID_STRLIST_FUNCTION_NAMES", "DEVSQ") , SC_OPCODE_DEV_SQ },
2568     { NC_("RID_STRLIST_FUNCTION_NAMES", "MEDIAN") , SC_OPCODE_MEDIAN },
2569     { NC_("RID_STRLIST_FUNCTION_NAMES", "MODE") , SC_OPCODE_MODAL_VALUE },
2570     { NC_("RID_STRLIST_FUNCTION_NAMES", "MODE.SNGL") , SC_OPCODE_MODAL_VALUE_MS },
2571     { NC_("RID_STRLIST_FUNCTION_NAMES", "MODE.MULT") , SC_OPCODE_MODAL_VALUE_MULTI },
2572     { NC_("RID_STRLIST_FUNCTION_NAMES", "ZTEST") , SC_OPCODE_Z_TEST },
2573     { NC_("RID_STRLIST_FUNCTION_NAMES", "Z.TEST") , SC_OPCODE_Z_TEST_MS },
2574     { NC_("RID_STRLIST_FUNCTION_NAMES", "AGGREGATE") , SC_OPCODE_AGGREGATE },
2575     { NC_("RID_STRLIST_FUNCTION_NAMES", "TTEST") , SC_OPCODE_T_TEST },
2576     { NC_("RID_STRLIST_FUNCTION_NAMES", "T.TEST") , SC_OPCODE_T_TEST_MS },
2577     { NC_("RID_STRLIST_FUNCTION_NAMES", "RANK") , SC_OPCODE_RANK },
2578     { NC_("RID_STRLIST_FUNCTION_NAMES", "PERCENTILE") , SC_OPCODE_PERCENTILE },
2579     { NC_("RID_STRLIST_FUNCTION_NAMES", "PERCENTRANK") , SC_OPCODE_PERCENT_RANK },
2580     { NC_("RID_STRLIST_FUNCTION_NAMES", "PERCENTILE.INC") , SC_OPCODE_PERCENTILE_INC },
2581     { NC_("RID_STRLIST_FUNCTION_NAMES", "PERCENTRANK.INC") , SC_OPCODE_PERCENT_RANK_INC },
2582     { NC_("RID_STRLIST_FUNCTION_NAMES", "QUARTILE.INC") , SC_OPCODE_QUARTILE_INC },
2583     { NC_("RID_STRLIST_FUNCTION_NAMES", "RANK.EQ") , SC_OPCODE_RANK_EQ },
2584     { NC_("RID_STRLIST_FUNCTION_NAMES", "PERCENTILE.EXC") , SC_OPCODE_PERCENTILE_EXC },
2585     { NC_("RID_STRLIST_FUNCTION_NAMES", "PERCENTRANK.EXC") , SC_OPCODE_PERCENT_RANK_EXC },
2586     { NC_("RID_STRLIST_FUNCTION_NAMES", "QUARTILE.EXC") , SC_OPCODE_QUARTILE_EXC },
2587     { NC_("RID_STRLIST_FUNCTION_NAMES", "RANK.AVG") , SC_OPCODE_RANK_AVG },
2588     { NC_("RID_STRLIST_FUNCTION_NAMES", "LARGE") , SC_OPCODE_LARGE },
2589     { NC_("RID_STRLIST_FUNCTION_NAMES", "SMALL") , SC_OPCODE_SMALL },
2590     { NC_("RID_STRLIST_FUNCTION_NAMES", "FREQUENCY") , SC_OPCODE_FREQUENCY },
2591     { NC_("RID_STRLIST_FUNCTION_NAMES", "QUARTILE") , SC_OPCODE_QUARTILE },
2592     { NC_("RID_STRLIST_FUNCTION_NAMES", "NORMINV") , SC_OPCODE_NORM_INV },
2593     { NC_("RID_STRLIST_FUNCTION_NAMES", "NORM.INV") , SC_OPCODE_NORM_INV_MS },
2594     { NC_("RID_STRLIST_FUNCTION_NAMES", "CONFIDENCE") , SC_OPCODE_CONFIDENCE },
2595     { NC_("RID_STRLIST_FUNCTION_NAMES", "CONFIDENCE.NORM") , SC_OPCODE_CONFIDENCE_N },
2596     { NC_("RID_STRLIST_FUNCTION_NAMES", "CONFIDENCE.T") , SC_OPCODE_CONFIDENCE_T },
2597     { NC_("RID_STRLIST_FUNCTION_NAMES", "FTEST") , SC_OPCODE_F_TEST },
2598     { NC_("RID_STRLIST_FUNCTION_NAMES", "F.TEST") , SC_OPCODE_F_TEST_MS },
2599     { NC_("RID_STRLIST_FUNCTION_NAMES", "TRIMMEAN") , SC_OPCODE_TRIM_MEAN },
2600     { NC_("RID_STRLIST_FUNCTION_NAMES", "PROB") , SC_OPCODE_PROB },
2601     { NC_("RID_STRLIST_FUNCTION_NAMES", "CORREL") , SC_OPCODE_CORREL },
2602     { NC_("RID_STRLIST_FUNCTION_NAMES", "COVAR") , SC_OPCODE_COVAR },
2603     { NC_("RID_STRLIST_FUNCTION_NAMES", "COVARIANCE.P") , SC_OPCODE_COVARIANCE_P },
2604     { NC_("RID_STRLIST_FUNCTION_NAMES", "COVARIANCE.S") , SC_OPCODE_COVARIANCE_S },
2605     { NC_("RID_STRLIST_FUNCTION_NAMES", "PEARSON") , SC_OPCODE_PEARSON },
2606     { NC_("RID_STRLIST_FUNCTION_NAMES", "RSQ") , SC_OPCODE_RSQ },
2607     { NC_("RID_STRLIST_FUNCTION_NAMES", "STEYX") , SC_OPCODE_STEYX },
2608     { NC_("RID_STRLIST_FUNCTION_NAMES", "SLOPE") , SC_OPCODE_SLOPE },
2609     { NC_("RID_STRLIST_FUNCTION_NAMES", "INTERCEPT") , SC_OPCODE_INTERCEPT },
2610     { NC_("RID_STRLIST_FUNCTION_NAMES", "TREND") , SC_OPCODE_TREND },
2611     { NC_("RID_STRLIST_FUNCTION_NAMES", "GROWTH") , SC_OPCODE_GROWTH },
2612     { NC_("RID_STRLIST_FUNCTION_NAMES", "LINEST") , SC_OPCODE_LINEST },
2613     { NC_("RID_STRLIST_FUNCTION_NAMES", "LOGEST") , SC_OPCODE_LOGEST },
2614     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORECAST") , SC_OPCODE_FORECAST },
2615     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORECAST.ETS.ADD") , SC_OPCODE_FORECAST_ETS_ADD },
2616     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORECAST.ETS.SEASONALITY") , SC_OPCODE_FORECAST_ETS_SEA },
2617     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORECAST.ETS.MULT") , SC_OPCODE_FORECAST_ETS_MUL },
2618     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORECAST.ETS.PI.ADD") , SC_OPCODE_FORECAST_ETS_PIA },
2619     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORECAST.ETS.PI.MULT") , SC_OPCODE_FORECAST_ETS_PIM },
2620     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORECAST.ETS.STAT.ADD") , SC_OPCODE_FORECAST_ETS_STA },
2621     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORECAST.ETS.STAT.MULT") , SC_OPCODE_FORECAST_ETS_STM },
2622     { NC_("RID_STRLIST_FUNCTION_NAMES", "FORECAST.LINEAR") , SC_OPCODE_FORECAST_LIN },
2623     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHIINV") , SC_OPCODE_CHI_INV },
2624     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHISQ.INV.RT") , SC_OPCODE_CHI_INV_MS },
2625     { NC_("RID_STRLIST_FUNCTION_NAMES", "GAMMADIST") , SC_OPCODE_GAMMA_DIST },
2626     { NC_("RID_STRLIST_FUNCTION_NAMES", "GAMMA.DIST") , SC_OPCODE_GAMMA_DIST_MS },
2627     { NC_("RID_STRLIST_FUNCTION_NAMES", "GAMMAINV") , SC_OPCODE_GAMMA_INV },
2628     { NC_("RID_STRLIST_FUNCTION_NAMES", "GAMMA.INV") , SC_OPCODE_GAMMA_INV_MS },
2629     { NC_("RID_STRLIST_FUNCTION_NAMES", "TINV") , SC_OPCODE_T_INV },
2630     { NC_("RID_STRLIST_FUNCTION_NAMES", "T.INV.2T") , SC_OPCODE_T_INV_2T },
2631     { NC_("RID_STRLIST_FUNCTION_NAMES", "T.INV") , SC_OPCODE_T_INV_MS },
2632     { NC_("RID_STRLIST_FUNCTION_NAMES", "FINV") , SC_OPCODE_F_INV },
2633     { NC_("RID_STRLIST_FUNCTION_NAMES", "F.INV") , SC_OPCODE_F_INV_LT },
2634     { NC_("RID_STRLIST_FUNCTION_NAMES", "F.INV.RT") , SC_OPCODE_F_INV_RT },
2635     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHITEST") , SC_OPCODE_CHI_TEST },
2636     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHISQ.TEST") , SC_OPCODE_CHI_TEST_MS },
2637     { NC_("RID_STRLIST_FUNCTION_NAMES", "LOGINV") , SC_OPCODE_LOG_INV },
2638     { NC_("RID_STRLIST_FUNCTION_NAMES", "LOGNORM.INV") , SC_OPCODE_LOG_INV_MS },
2639     { NC_("RID_STRLIST_FUNCTION_NAMES", "MULTIPLE.OPERATIONS") , SC_OPCODE_TABLE_OP },
2640     { NC_("RID_STRLIST_FUNCTION_NAMES", "BETADIST") , SC_OPCODE_BETA_DIST },
2641     { NC_("RID_STRLIST_FUNCTION_NAMES", "BETAINV") , SC_OPCODE_BETA_INV },
2642     { NC_("RID_STRLIST_FUNCTION_NAMES", "BETA.DIST") , SC_OPCODE_BETA_DIST_MS },
2643     { NC_("RID_STRLIST_FUNCTION_NAMES", "BETA.INV") , SC_OPCODE_BETA_INV_MS },
2644     { NC_("RID_STRLIST_FUNCTION_NAMES", "WEEKNUM") , SC_OPCODE_WEEK },
2645     { NC_("RID_STRLIST_FUNCTION_NAMES", "ISOWEEKNUM") , SC_OPCODE_ISOWEEKNUM },
2646     { NC_("RID_STRLIST_FUNCTION_NAMES", "WEEKNUM_OOO") , SC_OPCODE_WEEKNUM_OOO },
2647     { NC_("RID_STRLIST_FUNCTION_NAMES", "EASTERSUNDAY") , SC_OPCODE_EASTERSUNDAY },
2648     { NC_("RID_STRLIST_FUNCTION_NAMES", "WEEKDAY") , SC_OPCODE_GET_DAY_OF_WEEK },
2649     { NC_("RID_STRLIST_FUNCTION_NAMES", "NETWORKDAYS") , SC_OPCODE_NETWORKDAYS },
2650     { NC_("RID_STRLIST_FUNCTION_NAMES", "NETWORKDAYS.INTL") , SC_OPCODE_NETWORKDAYS_MS },
2651     { NC_("RID_STRLIST_FUNCTION_NAMES", "WORKDAY.INTL") , SC_OPCODE_WORKDAY_MS },
2652     /* L10n: preserve the leading '#' hash character in translations. */
2653     { NC_("RID_STRLIST_FUNCTION_NAMES", "#NAME!") , SC_OPCODE_NO_NAME },
2654     { NC_("RID_STRLIST_FUNCTION_NAMES", "STYLE") , SC_OPCODE_STYLE },
2655     { NC_("RID_STRLIST_FUNCTION_NAMES", "DDE") , SC_OPCODE_DDE },
2656     { NC_("RID_STRLIST_FUNCTION_NAMES", "BASE") , SC_OPCODE_BASE },
2657     { NC_("RID_STRLIST_FUNCTION_NAMES", "DECIMAL") , SC_OPCODE_DECIMAL },
2658     { NC_("RID_STRLIST_FUNCTION_NAMES", "CONVERT_OOO") , SC_OPCODE_CONVERT_OOO },
2659     { NC_("RID_STRLIST_FUNCTION_NAMES", "ROMAN") , SC_OPCODE_ROMAN },
2660     { NC_("RID_STRLIST_FUNCTION_NAMES", "HYPERLINK") , SC_OPCODE_HYPERLINK },
2661     { NC_("RID_STRLIST_FUNCTION_NAMES", "INFO") , SC_OPCODE_INFO },
2662     { NC_("RID_STRLIST_FUNCTION_NAMES", "BAHTTEXT") , SC_OPCODE_BAHTTEXT },
2663     { NC_("RID_STRLIST_FUNCTION_NAMES", "GETPIVOTDATA") , SC_OPCODE_GET_PIVOT_DATA },
2664     { NC_("RID_STRLIST_FUNCTION_NAMES", "EUROCONVERT") , SC_OPCODE_EUROCONVERT },
2665     { NC_("RID_STRLIST_FUNCTION_NAMES", "NUMBERVALUE") , SC_OPCODE_NUMBERVALUE },
2666     { NC_("RID_STRLIST_FUNCTION_NAMES", "GAMMA") , SC_OPCODE_GAMMA },
2667     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHISQDIST") , SC_OPCODE_CHISQ_DIST },
2668     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHISQ.DIST") , SC_OPCODE_CHISQ_DIST_MS },
2669     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHISQINV") , SC_OPCODE_CHISQ_INV },
2670     { NC_("RID_STRLIST_FUNCTION_NAMES", "CHISQ.INV") , SC_OPCODE_CHISQ_INV_MS },
2671     { NC_("RID_STRLIST_FUNCTION_NAMES", "BITAND") , SC_OPCODE_BITAND },
2672     { NC_("RID_STRLIST_FUNCTION_NAMES", "BITOR") , SC_OPCODE_BITOR },
2673     { NC_("RID_STRLIST_FUNCTION_NAMES", "BITXOR") , SC_OPCODE_BITXOR },
2674     { NC_("RID_STRLIST_FUNCTION_NAMES", "BITRSHIFT") , SC_OPCODE_BITRSHIFT },
2675     { NC_("RID_STRLIST_FUNCTION_NAMES", "BITLSHIFT") , SC_OPCODE_BITLSHIFT },
2676     /* BEGIN defined ERROR.TYPE() values. */
2677     /* ERROR.TYPE( #NULL! ) == 1 */
2678     /* L10n: preserve the leading '#' hash character in translations. */
2679     { NC_("RID_STRLIST_FUNCTION_NAMES", "#NULL!") , SC_OPCODE_ERROR_NULL },
2680     /* ERROR.TYPE( #DIV/0! ) == 2 */
2681     /* L10n: preserve the leading '#' hash character in translations. */
2682     { NC_("RID_STRLIST_FUNCTION_NAMES", "#DIV/0!") , SC_OPCODE_ERROR_DIVZERO },
2683     /* ERROR.TYPE( #VALUE! ) == 3 */
2684     /* L10n: preserve the leading '#' hash character in translations. */
2685     { NC_("RID_STRLIST_FUNCTION_NAMES", "#VALUE!") , SC_OPCODE_ERROR_VALUE },
2686     /* ERROR.TYPE( #REF! ) == 4 */
2687     /* L10n: preserve the leading '#' hash character in translations. */
2688     { NC_("RID_STRLIST_FUNCTION_NAMES", "#REF!") , SC_OPCODE_ERROR_REF },
2689     /* ERROR.TYPE( #NAME! ) == 5 */
2690     /* L10n: preserve the leading '#' hash character in translations. */
2691     { NC_("RID_STRLIST_FUNCTION_NAMES", "#NAME?") , SC_OPCODE_ERROR_NAME },
2692     /* ERROR.TYPE( #NUM! ) == 6 */
2693     /* L10n: preserve the leading '#' hash character in translations. */
2694     { NC_("RID_STRLIST_FUNCTION_NAMES", "#NUM!") , SC_OPCODE_ERROR_NUM },
2695     /* ERROR.TYPE( #N/A ) == 7 */
2696     /* L10n: preserve the leading '#' hash character in translations. */
2697     { NC_("RID_STRLIST_FUNCTION_NAMES", "#N/A") , SC_OPCODE_ERROR_NA },
2698     /* END defined ERROR.TYPE() values. */
2700     { NC_("RID_STRLIST_FUNCTION_NAMES", "FILTERXML") , SC_OPCODE_FILTERXML },
2701     { NC_("RID_STRLIST_FUNCTION_NAMES", "COLOR") , SC_OPCODE_COLOR },
2702     { NC_("RID_STRLIST_FUNCTION_NAMES", "WEBSERVICE") , SC_OPCODE_WEBSERVICE },
2703     { NC_("RID_STRLIST_FUNCTION_NAMES", "ERF.PRECISE") , SC_OPCODE_ERF_MS },
2704     { NC_("RID_STRLIST_FUNCTION_NAMES", "ERFC.PRECISE") , SC_OPCODE_ERFC_MS },
2705     { NC_("RID_STRLIST_FUNCTION_NAMES", "ENCODEURL") , SC_OPCODE_ENCODEURL },
2706     { NC_("RID_STRLIST_FUNCTION_NAMES", "RAWSUBTRACT") , SC_OPCODE_RAWSUBTRACT },
2707     { NC_("RID_STRLIST_FUNCTION_NAMES", "ROUNDSIG") , SC_OPCODE_ROUNDSIG },
2708     { NC_("RID_STRLIST_FUNCTION_NAMES", "FINDB") , SC_OPCODE_FINDB },
2709     { NC_("RID_STRLIST_FUNCTION_NAMES", "SEARCHB") , SC_OPCODE_SEARCHB },
2710     { NC_("RID_STRLIST_FUNCTION_NAMES", "REGEX") , SC_OPCODE_REGEX },
2711     { NC_("RID_STRLIST_FUNCTION_NAMES", "FOURIER"), SC_OPCODE_FOURIER },
2712     { NC_("RID_STRLIST_FUNCTION_NAMES", "RAND.NV"), SC_OPCODE_RANDOM_NV },
2713     { NC_("RID_STRLIST_FUNCTION_NAMES", "RANDBETWEEN.NV"), SC_OPCODE_RANDBETWEEN_NV },
2715     { nullptr, -1 }
2718 const std::pair<const char*, int> RID_STRLIST_FUNCTION_NAMES_SYMBOLS[] =
2720     { "(" , SC_OPCODE_OPEN  },
2721     { ")" , SC_OPCODE_CLOSE  },
2722     { "[" , SC_OPCODE_TABLE_REF_OPEN  },
2723     { "]" , SC_OPCODE_TABLE_REF_CLOSE  },
2724     { "{" , SC_OPCODE_ARRAY_OPEN  },
2725     { "}" , SC_OPCODE_ARRAY_CLOSE  },
2726     { "|" , SC_OPCODE_ARRAY_ROW_SEP  },
2727     { ";" , SC_OPCODE_ARRAY_COL_SEP  },
2728     { ";" , SC_OPCODE_SEP  },
2729     { "%" , SC_OPCODE_PERCENT_SIGN  },
2730     { "+" , SC_OPCODE_ADD  },
2731     { "-" , SC_OPCODE_SUB  },
2732     { "*" , SC_OPCODE_MUL  },
2733     { "/" , SC_OPCODE_DIV  },
2734     { "&" , SC_OPCODE_AMPERSAND  },
2735     { "^" , SC_OPCODE_POW  },
2736     { "=" , SC_OPCODE_EQUAL  },
2737     { "<>" , SC_OPCODE_NOT_EQUAL  },
2738     { "<" , SC_OPCODE_LESS  },
2739     { ">" , SC_OPCODE_GREATER  },
2740     { "<=" , SC_OPCODE_LESS_EQUAL  },
2741     { ">=" , SC_OPCODE_GREATER_EQUAL  },
2742     { "!" , SC_OPCODE_INTERSECT  },
2743     { "~" , SC_OPCODE_UNION  },
2744     { ":" , SC_OPCODE_RANGE  },
2745     { "-" , SC_OPCODE_NEG_SUB  },
2746     { nullptr, -1 }
2749 #endif
2751 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */