1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
22 #include <formula/compiler.hxx>
24 #include <unotools/resmgr.hxx>
26 #define NC_(Context, String) TranslateId(Context, reinterpret_cast<char const *>(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 },
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 },
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 },
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 },
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 },
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/...
2276 const std::pair<TranslateId, 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 },
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 },
2749 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */