Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  core_resource.hrc   Sprache: unbekannt

 
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#pragma once

#include <formula/compiler.hxx>
#include <utility>
#include <unotools/resmgr.hxx>

#define NC_(Context, String) TranslateId(Context, u8##String)

/** These English names are used to store/load ODFF as of ODF v1.2. */
// NAMES CAN ONLY BE CHANGED WHEN PROVIDING BACKWARD AND FORWARD COMPATIBILITY
// such that at least two releases can already read the new name to be
// introduced by a later release.
// If there is a reason for another name for some function then add an
// *additional* name to be recognized to sc/source/core/tool/compiler.cxx
// ScCompiler::IsOpCode() in the if (mxSymbols->isODFF()) block.
const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF[] =
{
    { "IF" , SC_OPCODE_IF },
    { "IFERROR" , SC_OPCODE_IF_ERROR },
    { "IFNA" , SC_OPCODE_IF_NA },
    { "CHOOSE" , SC_OPCODE_CHOOSE },
    { "(" , SC_OPCODE_OPEN },
    { ")" , SC_OPCODE_CLOSE },
    // SC_OPCODE_TABLE_REF_... not supported in ODFF
    { "{" , SC_OPCODE_ARRAY_OPEN },
    { "}" , SC_OPCODE_ARRAY_CLOSE },
    { "|" , SC_OPCODE_ARRAY_ROW_SEP },
    { ";" , SC_OPCODE_ARRAY_COL_SEP },
    { ";" , SC_OPCODE_SEP },
    { "%" , SC_OPCODE_PERCENT_SIGN },
    { "+" , SC_OPCODE_ADD },
    { "-" , SC_OPCODE_SUB },
    { "*" , SC_OPCODE_MUL },
    { "/" , SC_OPCODE_DIV },
    { "&" , SC_OPCODE_AMPERSAND },
    { "^" , SC_OPCODE_POW },
    { "=" , SC_OPCODE_EQUAL },
    { "<>" , SC_OPCODE_NOT_EQUAL },
    { "<" , SC_OPCODE_LESS },
    { ">" , SC_OPCODE_GREATER },
    { "<=" , SC_OPCODE_LESS_EQUAL },
    { ">=" , SC_OPCODE_GREATER_EQUAL },
    { "AND" , SC_OPCODE_AND },
    { "OR" , SC_OPCODE_OR },
    { "XOR" , SC_OPCODE_XOR },
    { "!" , SC_OPCODE_INTERSECT },
    { "~" , SC_OPCODE_UNION },
    { ":" , SC_OPCODE_RANGE },
    { "NOT" , SC_OPCODE_NOT },
    { "NEG" , SC_OPCODE_NEG },
    { "-" , SC_OPCODE_NEG_SUB },
    { "PI" , SC_OPCODE_PI },
    { "RAND" , SC_OPCODE_RANDOM },
    { "TRUE" , SC_OPCODE_TRUE },
    { "FALSE" , SC_OPCODE_FALSE },
    { "TODAY" , SC_OPCODE_GET_ACT_DATE },
    { "NOW" , SC_OPCODE_GET_ACT_TIME },
    { "NA" , SC_OPCODE_NO_VALUE },
    { "ORG.OPENOFFICE.CURRENT" , SC_OPCODE_CURRENT },
    { "DEGREES" , SC_OPCODE_DEG },
    { "RADIANS" , SC_OPCODE_RAD },
    { "SIN" , SC_OPCODE_SIN },
    { "COS" , SC_OPCODE_COS },
    { "TAN" , SC_OPCODE_TAN },
    { "COT" , SC_OPCODE_COT },
    { "ASIN" , SC_OPCODE_ARC_SIN },
    { "ACOS" , SC_OPCODE_ARC_COS },
    { "ATAN" , SC_OPCODE_ARC_TAN },
    { "ACOT" , SC_OPCODE_ARC_COT },
    { "SINH" , SC_OPCODE_SIN_HYP },
    { "COSH" , SC_OPCODE_COS_HYP },
    { "TANH" , SC_OPCODE_TAN_HYP },
    { "COTH" , SC_OPCODE_COT_HYP },
    { "ASINH" , SC_OPCODE_ARC_SIN_HYP },
    { "ACOSH" , SC_OPCODE_ARC_COS_HYP },
    { "ATANH" , SC_OPCODE_ARC_TAN_HYP },
    { "ACOTH" , SC_OPCODE_ARC_COT_HYP },
    { "CSC" , SC_OPCODE_COSECANT },
    { "SEC" , SC_OPCODE_SECANT },
    { "CSCH" , SC_OPCODE_COSECANT_HYP },
    { "SECH" , SC_OPCODE_SECANT_HYP },
    { "EXP" , SC_OPCODE_EXP },
    { "LN" , SC_OPCODE_LN },
    { "SQRT" , SC_OPCODE_SQRT },
    { "FACT" , SC_OPCODE_FACT },
    { "YEAR" , SC_OPCODE_GET_YEAR },
    { "MONTH" , SC_OPCODE_GET_MONTH },
    { "DAY" , SC_OPCODE_GET_DAY },
    { "HOUR" , SC_OPCODE_GET_HOUR },
    { "MINUTE" , SC_OPCODE_GET_MIN },
    { "SECOND" , SC_OPCODE_GET_SEC },
    { "SIGN" , SC_OPCODE_PLUS_MINUS },
    { "ABS" , SC_OPCODE_ABS },
    { "INT" , SC_OPCODE_INT },
    { "PHI" , SC_OPCODE_PHI },
    { "GAUSS" , SC_OPCODE_GAUSS },
    { "ISBLANK" , SC_OPCODE_IS_EMPTY },
    { "ISTEXT" , SC_OPCODE_IS_STRING },
    { "ISNONTEXT" , SC_OPCODE_IS_NON_STRING },
    { "ISLOGICAL" , SC_OPCODE_IS_LOGICAL },
    { "TYPE" , SC_OPCODE_TYPE },
    { "CELL" , SC_OPCODE_CELL },
    { "ISREF" , SC_OPCODE_IS_REF },
    { "ISNUMBER" , SC_OPCODE_IS_VALUE },
    { "ISFORMULA" , SC_OPCODE_IS_FORMULA },
    { "ISNA" , SC_OPCODE_IS_NV },
    { "ISERR" , SC_OPCODE_IS_ERR },
    { "ISERROR" , SC_OPCODE_IS_ERROR },
    { "ISEVEN" , SC_OPCODE_IS_EVEN },
    { "ISODD" , SC_OPCODE_IS_ODD },
    { "N" , SC_OPCODE_N },
    { "DATEVALUE" , SC_OPCODE_GET_DATE_VALUE },
    { "TIMEVALUE" , SC_OPCODE_GET_TIME_VALUE },
    { "CODE" , SC_OPCODE_CODE },
    { "TRIM" , SC_OPCODE_TRIM },
    { "UPPER" , SC_OPCODE_UPPER },
    { "PROPER" , SC_OPCODE_PROPER },
    { "LOWER" , SC_OPCODE_LOWER },
    { "LEN" , SC_OPCODE_LEN },
    { "T" , SC_OPCODE_T },
    { "VALUE" , SC_OPCODE_VALUE },
    { "CLEAN" , SC_OPCODE_CLEAN },
    { "CHAR" , SC_OPCODE_CHAR },
    { "JIS" , SC_OPCODE_JIS },
    { "ASC" , SC_OPCODE_ASC },
    { "UNICODE" , SC_OPCODE_UNICODE },
    { "UNICHAR" , SC_OPCODE_UNICHAR },
    { "LOG10" , SC_OPCODE_LOG10 },
    { "EVEN" , SC_OPCODE_EVEN },
    { "ODD" , SC_OPCODE_ODD },
    { "LEGACY.NORMSDIST" , SC_OPCODE_STD_NORM_DIST },
    { "COM.MICROSOFT.NORM.S.DIST" , SC_OPCODE_STD_NORM_DIST_MS },
    { "FISHER" , SC_OPCODE_FISHER },
    { "FISHERINV" , SC_OPCODE_FISHER_INV },
    { "LEGACY.NORMSINV" , SC_OPCODE_S_NORM_INV },
    { "COM.MICROSOFT.NORM.S.INV" , SC_OPCODE_S_NORM_INV_MS },
    { "GAMMALN" , SC_OPCODE_GAMMA_LN },
    { "COM.MICROSOFT.GAMMALN.PRECISE" , SC_OPCODE_GAMMA_LN_MS },
    { "ORG.OPENOFFICE.ERRORTYPE" , SC_OPCODE_ERROR_TYPE },
    { "ERROR.TYPE" , SC_OPCODE_ERROR_TYPE_ODF },
    { "FORMULA" , SC_OPCODE_FORMULA },
    { "ATAN2" , SC_OPCODE_ARC_TAN_2 },
    { "COM.MICROSOFT.CEILING.MATH" , SC_OPCODE_CEIL_MATH },
    { "CEILING" , SC_OPCODE_CEIL },
    { "COM.MICROSOFT.CEILING" , SC_OPCODE_CEIL_MS },
    { "COM.MICROSOFT.CEILING.PRECISE" , SC_OPCODE_CEIL_PRECISE },
    { "COM.MICROSOFT.ISO.CEILING" , SC_OPCODE_CEIL_ISO },
    { "FLOOR" , SC_OPCODE_FLOOR },
    { "COM.MICROSOFT.FLOOR" , SC_OPCODE_FLOOR_MS },
    { "COM.MICROSOFT.FLOOR.MATH" , SC_OPCODE_FLOOR_MATH },
    { "COM.MICROSOFT.FLOOR.PRECISE" , SC_OPCODE_FLOOR_PRECISE },
    { "ROUND" , SC_OPCODE_ROUND },
    { "ROUNDUP" , SC_OPCODE_ROUND_UP },
    { "ROUNDDOWN" , SC_OPCODE_ROUND_DOWN },
    { "TRUNC" , SC_OPCODE_TRUNC },
    { "LOG" , SC_OPCODE_LOG },
    { "POWER" , SC_OPCODE_POWER },
    { "GCD" , SC_OPCODE_GCD },
    { "LCM" , SC_OPCODE_LCM },
    { "MOD" , SC_OPCODE_MOD },
    { "SUMPRODUCT" , SC_OPCODE_SUM_PRODUCT },
    { "SUMSQ" , SC_OPCODE_SUM_SQ },
    { "SUMX2MY2" , SC_OPCODE_SUM_X2MY2 },
    { "SUMX2PY2" , SC_OPCODE_SUM_X2DY2 },
    { "SUMXMY2" , SC_OPCODE_SUM_XMY2 },
    { "DATE" , SC_OPCODE_GET_DATE },
    { "TIME" , SC_OPCODE_GET_TIME },
    { "DAYS" , SC_OPCODE_GET_DIFF_DATE },
    { "DAYS360" , SC_OPCODE_GET_DIFF_DATE_360 },
    { "DATEDIF" , SC_OPCODE_GET_DATEDIF },
    { "MIN" , SC_OPCODE_MIN },
    { "MINA" , SC_OPCODE_MIN_A },
    { "MAX" , SC_OPCODE_MAX },
    { "MAXA" , SC_OPCODE_MAX_A },
    { "SUM" , SC_OPCODE_SUM },
    { "PRODUCT" , SC_OPCODE_PRODUCT },
    { "AVERAGE" , SC_OPCODE_AVERAGE },
    { "AVERAGEA" , SC_OPCODE_AVERAGE_A },
    { "COUNT" , SC_OPCODE_COUNT },
    { "COUNTA" , SC_OPCODE_COUNT_2 },
    { "NPV" , SC_OPCODE_NPV },
    { "IRR" , SC_OPCODE_IRR },
    { "MIRR" , SC_OPCODE_MIRR },
    { "ISPMT" , SC_OPCODE_ISPMT },
    { "VAR" , SC_OPCODE_VAR },
    { "VARA" , SC_OPCODE_VAR_A },
    { "VARP" , SC_OPCODE_VAR_P },
    { "VARPA" , SC_OPCODE_VAR_P_A },
    { "COM.MICROSOFT.VAR.P" , SC_OPCODE_VAR_P_MS },
    { "COM.MICROSOFT.VAR.S" , SC_OPCODE_VAR_S },
    { "STDEV" , SC_OPCODE_ST_DEV },
    { "STDEVA" , SC_OPCODE_ST_DEV_A },
    { "STDEVP" , SC_OPCODE_ST_DEV_P },
    { "STDEVPA" , SC_OPCODE_ST_DEV_P_A },
    { "COM.MICROSOFT.STDEV.P" , SC_OPCODE_ST_DEV_P_MS },
    { "COM.MICROSOFT.STDEV.S" , SC_OPCODE_ST_DEV_S },
    { "BINOM.DIST.RANGE" , SC_OPCODE_B },
    { "NORMDIST" , SC_OPCODE_NORM_DIST },
    { "COM.MICROSOFT.NORM.DIST" , SC_OPCODE_NORM_DIST_MS },
    { "EXPONDIST" , SC_OPCODE_EXP_DIST },
    { "COM.MICROSOFT.EXPON.DIST" , SC_OPCODE_EXP_DIST_MS },
    { "BINOMDIST" , SC_OPCODE_BINOM_DIST },
    { "COM.MICROSOFT.BINOM.DIST" , SC_OPCODE_BINOM_DIST_MS },
    { "POISSON" , SC_OPCODE_POISSON_DIST },
    { "COM.MICROSOFT.POISSON.DIST" , SC_OPCODE_POISSON_DIST_MS },
    { "COMBIN" , SC_OPCODE_COMBIN },
    { "COMBINA" , SC_OPCODE_COMBIN_A },
    { "PERMUT" , SC_OPCODE_PERMUT },
    { "PERMUTATIONA" , SC_OPCODE_PERMUTATION_A },
    { "PV" , SC_OPCODE_PV },
    { "SYD" , SC_OPCODE_SYD },
    { "DDB" , SC_OPCODE_DDB },
    { "DB" , SC_OPCODE_DB },
    { "VDB" , SC_OPCODE_VBD },
    { "PDURATION" , SC_OPCODE_PDURATION },
    { "SLN" , SC_OPCODE_SLN },
    { "PMT" , SC_OPCODE_PMT },
    { "COLUMNS" , SC_OPCODE_COLUMNS },
    { "ROWS" , SC_OPCODE_ROWS },
    { "SHEETS" , SC_OPCODE_SHEETS },
    { "COLUMN" , SC_OPCODE_COLUMN },
    { "ROW" , SC_OPCODE_ROW },
    { "SHEET" , SC_OPCODE_SHEET },
    { "RRI" , SC_OPCODE_RRI },
    { "FV" , SC_OPCODE_FV },
    { "NPER" , SC_OPCODE_NPER },
    { "RATE" , SC_OPCODE_RATE },
    { "IPMT" , SC_OPCODE_IPMT },
    { "PPMT" , SC_OPCODE_PPMT },
    { "CUMIPMT" , SC_OPCODE_CUM_IPMT },
    { "CUMPRINC" , SC_OPCODE_CUM_PRINC },
    { "EFFECT" , SC_OPCODE_EFFECT },
    { "NOMINAL" , SC_OPCODE_NOMINAL },
    { "SUBTOTAL" , SC_OPCODE_SUB_TOTAL },
    { "DSUM" , SC_OPCODE_DB_SUM },
    { "DCOUNT" , SC_OPCODE_DB_COUNT },
    { "DCOUNTA" , SC_OPCODE_DB_COUNT_2 },
    { "DAVERAGE" , SC_OPCODE_DB_AVERAGE },
    { "DGET" , SC_OPCODE_DB_GET },
    { "DMAX" , SC_OPCODE_DB_MAX },
    { "DMIN" , SC_OPCODE_DB_MIN },
    { "DPRODUCT" , SC_OPCODE_DB_PRODUCT },
    { "DSTDEV" , SC_OPCODE_DB_STD_DEV },
    { "DSTDEVP" , SC_OPCODE_DB_STD_DEV_P },
    { "DVAR" , SC_OPCODE_DB_VAR },
    { "DVARP" , SC_OPCODE_DB_VAR_P },
    { "INDIRECT" , SC_OPCODE_INDIRECT },
    { "ADDRESS" , SC_OPCODE_ADDRESS },
    { "MATCH" , SC_OPCODE_MATCH },
    { "COM.MICROSOFT.XMATCH" , SC_OPCODE_X_MATCH },
    { "COUNTBLANK" , SC_OPCODE_COUNT_EMPTY_CELLS },
    { "COUNTIF" , SC_OPCODE_COUNT_IF },
    { "SUMIF" , SC_OPCODE_SUM_IF },
    { "AVERAGEIF" , SC_OPCODE_AVERAGE_IF },
    { "SUMIFS" , SC_OPCODE_SUM_IFS },
    { "AVERAGEIFS" , SC_OPCODE_AVERAGE_IFS },
    { "COUNTIFS" , SC_OPCODE_COUNT_IFS },
    { "LOOKUP" , SC_OPCODE_LOOKUP },
    { "VLOOKUP" , SC_OPCODE_V_LOOKUP },
    { "COM.MICROSOFT.XLOOKUP" , SC_OPCODE_X_LOOKUP },
    { "HLOOKUP" , SC_OPCODE_H_LOOKUP },
    { "COM.MICROSOFT.FILTER" , SC_OPCODE_FILTER },
    { "COM.MICROSOFT.SORT" , SC_OPCODE_SORT },
    { "COM.MICROSOFT.SORTBY" , SC_OPCODE_SORTBY },
    { "COM.MICROSOFT.CHOOSECOLS" , SC_OPCODE_CHOOSECOLS },
    { "COM.MICROSOFT.CHOOSEROWS" , SC_OPCODE_CHOOSEROWS },
    { "COM.MICROSOFT.DROP" , SC_OPCODE_DROP },
    { "COM.MICROSOFT.EXPAND" , SC_OPCODE_EXPAND },
    { "COM.MICROSOFT.HSTACK" , SC_OPCODE_HSTACK },
    { "COM.MICROSOFT.VSTACK" , SC_OPCODE_VSTACK },
    { "COM.MICROSOFT.TAKE" , SC_OPCODE_TAKE },
    { "COM.MICROSOFT.TEXTAFTER" , SC_OPCODE_TEXTAFTER },
    { "COM.MICROSOFT.TEXTBEFORE" , SC_OPCODE_TEXTBEFORE },
    { "COM.MICROSOFT.TEXTSPLIT" , SC_OPCODE_TEXTSPLIT },
    { "COM.MICROSOFT.TOCOL" , SC_OPCODE_TOCOL },
    { "COM.MICROSOFT.TOROW" , SC_OPCODE_TOROW },
    { "COM.MICROSOFT.UNIQUE" , SC_OPCODE_UNIQUE },
    { "COM.MICROSOFT.LET" , SC_OPCODE_LET },
    { "COM.MICROSOFT.WRAPCOLS" , SC_OPCODE_WRAPCOLS },
    { "COM.MICROSOFT.WRAPROWS" , SC_OPCODE_WRAPROWS },
    { "_xlpm." , SC_OPCODE_STRINGNAME },
    { "ORG.OPENOFFICE.MULTIRANGE" , SC_OPCODE_MULTI_AREA }, // legacy for range list (union)
    { "OFFSET" , SC_OPCODE_OFFSET },
    { "INDEX" , SC_OPCODE_INDEX },
    { "AREAS" , SC_OPCODE_AREAS },
    { "DOLLAR" , SC_OPCODE_CURRENCY },
    { "REPLACE" , SC_OPCODE_REPLACE },
    { "FIXED" , SC_OPCODE_FIXED },
    { "FIND" , SC_OPCODE_FIND },
    { "EXACT" , SC_OPCODE_EXACT },
    { "LEFT" , SC_OPCODE_LEFT },
    { "RIGHT" , SC_OPCODE_RIGHT },
    { "SEARCH" , SC_OPCODE_SEARCH },
    { "MID" , SC_OPCODE_MID },
    { "LENB" , SC_OPCODE_LENB },
    { "RIGHTB" , SC_OPCODE_RIGHTB },
    { "LEFTB" , SC_OPCODE_LEFTB },
    { "REPLACEB" , SC_OPCODE_REPLACEB },
    { "FINDB" , SC_OPCODE_FINDB },
    { "SEARCHB" , SC_OPCODE_SEARCHB },
    { "MIDB" , SC_OPCODE_MIDB },
    { "TEXT" , SC_OPCODE_TEXT },
    { "SUBSTITUTE" , SC_OPCODE_SUBSTITUTE },
    { "REPT" , SC_OPCODE_REPT },
    { "CONCATENATE" , SC_OPCODE_CONCAT },
    { "COM.MICROSOFT.CONCAT" , SC_OPCODE_CONCAT_MS },
    { "COM.MICROSOFT.TEXTJOIN" , SC_OPCODE_TEXTJOIN_MS },
    { "COM.MICROSOFT.IFS" , SC_OPCODE_IFS_MS },
    { "COM.MICROSOFT.SWITCH" , SC_OPCODE_SWITCH_MS },
    { "COM.MICROSOFT.MINIFS" , SC_OPCODE_MINIFS_MS },
    { "COM.MICROSOFT.MAXIFS" , SC_OPCODE_MAXIFS_MS },
    { "MVALUE" , SC_OPCODE_MAT_VALUE },
    { "MDETERM" , SC_OPCODE_MAT_DET },
    { "MINVERSE" , SC_OPCODE_MAT_INV },
    { "MMULT" , SC_OPCODE_MAT_MULT },
    { "COM.MICROSOFT.SEQUENCE" , SC_OPCODE_MAT_SEQUENCE },
    { "TRANSPOSE" , SC_OPCODE_MAT_TRANS },
    { "MUNIT" , SC_OPCODE_MATRIX_UNIT },
    { "ORG.OPENOFFICE.GOALSEEK" , SC_OPCODE_BACK_SOLVER },
    { "HYPGEOMDIST" , SC_OPCODE_HYP_GEOM_DIST },
    { "COM.MICROSOFT.HYPGEOM.DIST" , SC_OPCODE_HYP_GEOM_DIST_MS },
    { "LOGNORMDIST" , SC_OPCODE_LOG_NORM_DIST },
    { "COM.MICROSOFT.LOGNORM.DIST" , SC_OPCODE_LOG_NORM_DIST_MS },
    { "LEGACY.TDIST" , SC_OPCODE_T_DIST },
    { "COM.MICROSOFT.T.DIST.2T" , SC_OPCODE_T_DIST_2T },
    { "COM.MICROSOFT.T.DIST" , SC_OPCODE_T_DIST_MS },
    { "COM.MICROSOFT.T.DIST.RT" , SC_OPCODE_T_DIST_RT },
    { "LEGACY.FDIST" , SC_OPCODE_F_DIST },
    { "FDIST" , SC_OPCODE_F_DIST_LT },
    { "COM.MICROSOFT.F.DIST.RT" , SC_OPCODE_F_DIST_RT },
    { "LEGACY.CHIDIST" , SC_OPCODE_CHI_DIST },
    { "COM.MICROSOFT.CHISQ.DIST.RT" , SC_OPCODE_CHI_DIST_MS },
    { "WEIBULL" , SC_OPCODE_WEIBULL },
    { "COM.MICROSOFT.WEIBULL.DIST" , SC_OPCODE_WEIBULL_MS },
    { "NEGBINOMDIST" , SC_OPCODE_NEG_BINOM_VERT },
    { "COM.MICROSOFT.NEGBINOM.DIST" , SC_OPCODE_NEG_BINOM_DIST_MS },
    { "CRITBINOM" , SC_OPCODE_CRIT_BINOM },
    { "COM.MICROSOFT.BINOM.INV" , SC_OPCODE_BINOM_INV },
    { "KURT" , SC_OPCODE_KURT },
    { "HARMEAN" , SC_OPCODE_HAR_MEAN },
    { "GEOMEAN" , SC_OPCODE_GEO_MEAN },
    { "STANDARDIZE" , SC_OPCODE_STANDARD },
    { "AVEDEV" , SC_OPCODE_AVE_DEV },
    { "SKEW" , SC_OPCODE_SKEW },
    { "SKEWP" , SC_OPCODE_SKEWP },
    { "DEVSQ" , SC_OPCODE_DEV_SQ },
    { "MEDIAN" , SC_OPCODE_MEDIAN },
    { "MODE" , SC_OPCODE_MODAL_VALUE },
    { "COM.MICROSOFT.MODE.SNGL" , SC_OPCODE_MODAL_VALUE_MS },
    { "COM.MICROSOFT.MODE.MULT" , SC_OPCODE_MODAL_VALUE_MULTI },
    { "ZTEST" , SC_OPCODE_Z_TEST },
    { "COM.MICROSOFT.Z.TEST" , SC_OPCODE_Z_TEST_MS },
    { "COM.MICROSOFT.AGGREGATE" , SC_OPCODE_AGGREGATE },
    { "TTEST" , SC_OPCODE_T_TEST },
    { "COM.MICROSOFT.T.TEST" , SC_OPCODE_T_TEST_MS },
    { "RANK" , SC_OPCODE_RANK },
    { "PERCENTILE" , SC_OPCODE_PERCENTILE },
    { "PERCENTRANK" , SC_OPCODE_PERCENT_RANK },
    { "COM.MICROSOFT.PERCENTILE.INC" , SC_OPCODE_PERCENTILE_INC },
    { "COM.MICROSOFT.PERCENTRANK.INC" , SC_OPCODE_PERCENT_RANK_INC },
    { "COM.MICROSOFT.QUARTILE.INC" , SC_OPCODE_QUARTILE_INC },
    { "COM.MICROSOFT.RANK.EQ" , SC_OPCODE_RANK_EQ },
    { "COM.MICROSOFT.PERCENTILE.EXC" , SC_OPCODE_PERCENTILE_EXC },
    { "COM.MICROSOFT.PERCENTRANK.EXC" , SC_OPCODE_PERCENT_RANK_EXC },
    { "COM.MICROSOFT.QUARTILE.EXC" , SC_OPCODE_QUARTILE_EXC },
    { "COM.MICROSOFT.RANK.AVG" , SC_OPCODE_RANK_AVG },
    { "LARGE" , SC_OPCODE_LARGE },
    { "SMALL" , SC_OPCODE_SMALL },
    { "FREQUENCY" , SC_OPCODE_FREQUENCY },
    { "QUARTILE" , SC_OPCODE_QUARTILE },
    { "NORMINV" , SC_OPCODE_NORM_INV },
    { "COM.MICROSOFT.NORM.INV" , SC_OPCODE_NORM_INV_MS },
    { "CONFIDENCE" , SC_OPCODE_CONFIDENCE },
    { "COM.MICROSOFT.CONFIDENCE.NORM" , SC_OPCODE_CONFIDENCE_N },
    { "COM.MICROSOFT.CONFIDENCE.T" , SC_OPCODE_CONFIDENCE_T },
    { "FTEST" , SC_OPCODE_F_TEST },
    { "COM.MICROSOFT.F.TEST" , SC_OPCODE_F_TEST_MS },
    { "TRIMMEAN" , SC_OPCODE_TRIM_MEAN },
    { "PROB" , SC_OPCODE_PROB },
    { "CORREL" , SC_OPCODE_CORREL },
    { "COVAR" , SC_OPCODE_COVAR },
    { "COM.MICROSOFT.COVARIANCE.P" , SC_OPCODE_COVARIANCE_P },
    { "COM.MICROSOFT.COVARIANCE.S" , SC_OPCODE_COVARIANCE_S },
    { "PEARSON" , SC_OPCODE_PEARSON },
    { "RSQ" , SC_OPCODE_RSQ },
    { "STEYX" , SC_OPCODE_STEYX },
    { "SLOPE" , SC_OPCODE_SLOPE },
    { "INTERCEPT" , SC_OPCODE_INTERCEPT },
    { "TREND" , SC_OPCODE_TREND },
    { "GROWTH" , SC_OPCODE_GROWTH },
    { "LINEST" , SC_OPCODE_LINEST },
    { "LOGEST" , SC_OPCODE_LOGEST },
    { "FORECAST" , SC_OPCODE_FORECAST },
    { "COM.MICROSOFT.FORECAST.ETS" , SC_OPCODE_FORECAST_ETS_ADD },
    { "COM.MICROSOFT.FORECAST.ETS.SEASONALITY" , SC_OPCODE_FORECAST_ETS_SEA },
    { "ORG.LIBREOFFICE.FORECAST.ETS.MULT" , SC_OPCODE_FORECAST_ETS_MUL },
    { "COM.MICROSOFT.FORECAST.ETS.CONFINT" , SC_OPCODE_FORECAST_ETS_PIA },
    { "ORG.LIBREOFFICE.FORECAST.ETS.PI.MULT" , SC_OPCODE_FORECAST_ETS_PIM },
    { "COM.MICROSOFT.FORECAST.ETS.STAT" , SC_OPCODE_FORECAST_ETS_STA },
    { "ORG.LIBREOFFICE.FORECAST.ETS.STAT.MULT" , SC_OPCODE_FORECAST_ETS_STM },
    { "COM.MICROSOFT.FORECAST.LINEAR" , SC_OPCODE_FORECAST_LIN },
    { "LEGACY.CHIINV" , SC_OPCODE_CHI_INV },
    { "COM.MICROSOFT.CHISQ.INV.RT" , SC_OPCODE_CHI_INV_MS },
    { "GAMMADIST" , SC_OPCODE_GAMMA_DIST },
    { "COM.MICROSOFT.GAMMA.DIST" , SC_OPCODE_GAMMA_DIST_MS },
    { "GAMMAINV" , SC_OPCODE_GAMMA_INV },
    { "COM.MICROSOFT.GAMMA.INV" , SC_OPCODE_GAMMA_INV_MS },
    { "TINV" , SC_OPCODE_T_INV },
    { "COM.MICROSOFT.T.INV.2T" , SC_OPCODE_T_INV_2T },
    { "COM.MICROSOFT.T.INV" , SC_OPCODE_T_INV_MS },
    { "LEGACY.FINV" , SC_OPCODE_F_INV },
    { "FINV" , SC_OPCODE_F_INV_LT },
    { "COM.MICROSOFT.F.INV.RT" , SC_OPCODE_F_INV_RT },
    { "LEGACY.CHITEST" , SC_OPCODE_CHI_TEST },
    { "COM.MICROSOFT.CHISQ.TEST" , SC_OPCODE_CHI_TEST_MS },
    { "LOGINV" , SC_OPCODE_LOG_INV },
    { "COM.MICROSOFT.LOGNORM.INV" , SC_OPCODE_LOG_INV_MS },
    { "MULTIPLE.OPERATIONS" , SC_OPCODE_TABLE_OP },
    { "BETADIST" , SC_OPCODE_BETA_DIST },
    { "BETAINV" , SC_OPCODE_BETA_INV },
    { "COM.MICROSOFT.BETA.DIST" , SC_OPCODE_BETA_DIST_MS },
    { "COM.MICROSOFT.BETA.INV" , SC_OPCODE_BETA_INV_MS },
    { "WEEKNUM" , SC_OPCODE_WEEK },
    { "ISOWEEKNUM" , SC_OPCODE_ISOWEEKNUM },
    { "ORG.LIBREOFFICE.WEEKNUM_OOO" , SC_OPCODE_WEEKNUM_OOO },
    { "EASTERSUNDAY" , SC_OPCODE_EASTERSUNDAY },
    { "WEEKDAY" , SC_OPCODE_GET_DAY_OF_WEEK },
    { "NETWORKDAYS" , SC_OPCODE_NETWORKDAYS },
    { "COM.MICROSOFT.NETWORKDAYS.INTL" , SC_OPCODE_NETWORKDAYS_MS },
    { "COM.MICROSOFT.WORKDAY.INTL" , SC_OPCODE_WORKDAY_MS },
    { "#NAME!" , SC_OPCODE_NO_NAME },
    { "ORG.OPENOFFICE.STYLE" , SC_OPCODE_STYLE },
    { "DDE" , SC_OPCODE_DDE },
    { "BASE" , SC_OPCODE_BASE },
    { "DECIMAL" , SC_OPCODE_DECIMAL },
    { "ORG.OPENOFFICE.CONVERT" , SC_OPCODE_CONVERT_OOO },
    { "ROMAN" , SC_OPCODE_ROMAN },
    { "ARABIC" , SC_OPCODE_ARABIC },
    { "HYPERLINK" , SC_OPCODE_HYPERLINK },
    { "INFO" , SC_OPCODE_INFO },
    { "COM.MICROSOFT.BAHTTEXT" , SC_OPCODE_BAHTTEXT },
    { "GETPIVOTDATA" , SC_OPCODE_GET_PIVOT_DATA },
    { "EUROCONVERT" , SC_OPCODE_EUROCONVERT },
    { "NUMBERVALUE" , SC_OPCODE_NUMBERVALUE },
    { "GAMMA" , SC_OPCODE_GAMMA },
    { "CHISQDIST" , SC_OPCODE_CHISQ_DIST },
    { "COM.MICROSOFT.CHISQ.DIST" , SC_OPCODE_CHISQ_DIST_MS },
    { "CHISQINV" , SC_OPCODE_CHISQ_INV },
    { "COM.MICROSOFT.CHISQ.INV" , SC_OPCODE_CHISQ_INV_MS },
    { "BITAND" , SC_OPCODE_BITAND },
    { "BITOR" , SC_OPCODE_BITOR },
    { "BITXOR" , SC_OPCODE_BITXOR },
    { "BITRSHIFT" , SC_OPCODE_BITRSHIFT },
    { "BITLSHIFT" , SC_OPCODE_BITLSHIFT },
    /* BEGIN defined ERROR.TYPE() values. */
    { "#NULL!" , SC_OPCODE_ERROR_NULL },
    { "#DIV/0!" , SC_OPCODE_ERROR_DIVZERO },
    { "#VALUE!" , SC_OPCODE_ERROR_VALUE },
    { "#REF!" , SC_OPCODE_ERROR_REF },
    { "#NAME?" , SC_OPCODE_ERROR_NAME },
    { "#NUM!" , SC_OPCODE_ERROR_NUM },
    { "#N/A" , SC_OPCODE_ERROR_NA },
    /* END defined ERROR.TYPE() values. */
    { "COM.MICROSOFT.FILTERXML" , SC_OPCODE_FILTERXML },
    { "COM.MICROSOFT.WEBSERVICE" , SC_OPCODE_WEBSERVICE },
    { "ORG.LIBREOFFICE.COLOR" , SC_OPCODE_COLOR },
    { "COM.MICROSOFT.ERF.PRECISE" , SC_OPCODE_ERF_MS },
    { "COM.MICROSOFT.ERFC.PRECISE" , SC_OPCODE_ERFC_MS },
    { "COM.MICROSOFT.ENCODEURL" , SC_OPCODE_ENCODEURL },
    { "ORG.LIBREOFFICE.RAWSUBTRACT" , SC_OPCODE_RAWSUBTRACT },
    { "ORG.LIBREOFFICE.ROUNDSIG" , SC_OPCODE_ROUNDSIG },
    { "ORG.LIBREOFFICE.REGEX" , SC_OPCODE_REGEX },
    { "ORG.LIBREOFFICE.FOURIER", SC_OPCODE_FOURIER },
    { "ORG.LIBREOFFICE.RAND.NV" , SC_OPCODE_RANDOM_NV },
    { "ORG.LIBREOFFICE.RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV },
    { "COM.MICROSOFT.RANDARRAY" , SC_OPCODE_RANDARRAY },
    { nullptr,  -1 }
};

/** These function names are used in the OOXML XLSX import/export. */
const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML[] =
{
    { "IF" , SC_OPCODE_IF },
    { "IFERROR" , SC_OPCODE_IF_ERROR },
    { "_xlfn.IFNA" , SC_OPCODE_IF_NA },
    { "CHOOSE" , SC_OPCODE_CHOOSE },
    { "(" , SC_OPCODE_OPEN },
    { ")" , SC_OPCODE_CLOSE },
    { "[" , SC_OPCODE_TABLE_REF_OPEN },
    { "]" , SC_OPCODE_TABLE_REF_CLOSE },
    { "#All" , SC_OPCODE_TABLE_REF_ITEM_ALL },
    { "#Headers" , SC_OPCODE_TABLE_REF_ITEM_HEADERS },
    { "#Data" , SC_OPCODE_TABLE_REF_ITEM_DATA },
    { "#Totals" , SC_OPCODE_TABLE_REF_ITEM_TOTALS },
    { "#This Row" , SC_OPCODE_TABLE_REF_ITEM_THIS_ROW },
    { "{" , SC_OPCODE_ARRAY_OPEN },
    { "}" , SC_OPCODE_ARRAY_CLOSE },
    { ";" , SC_OPCODE_ARRAY_ROW_SEP },
    { "," , SC_OPCODE_ARRAY_COL_SEP },
    { "," , SC_OPCODE_SEP },
    { "%" , SC_OPCODE_PERCENT_SIGN },
    { "+" , SC_OPCODE_ADD },
    { "-" , SC_OPCODE_SUB },
    { "*" , SC_OPCODE_MUL },
    { "/" , SC_OPCODE_DIV },
    { "&" , SC_OPCODE_AMPERSAND },
    { "^" , SC_OPCODE_POW },
    { "=" , SC_OPCODE_EQUAL },
    { "<>" , SC_OPCODE_NOT_EQUAL },
    { "<" , SC_OPCODE_LESS },
    { ">" , SC_OPCODE_GREATER },
    { "<=" , SC_OPCODE_LESS_EQUAL },
    { ">=" , SC_OPCODE_GREATER_EQUAL },
    { "AND" , SC_OPCODE_AND },
    { "OR" , SC_OPCODE_OR },
    { "_xlfn.XOR" , SC_OPCODE_XOR },
    { " " , SC_OPCODE_INTERSECT },
    { "~" , SC_OPCODE_UNION },
    { ":" , SC_OPCODE_RANGE },
    { "NOT" , SC_OPCODE_NOT },
    { "NEG" , SC_OPCODE_NEG },
    { "-" , SC_OPCODE_NEG_SUB },
    { "PI" , SC_OPCODE_PI },
    { "RAND" , SC_OPCODE_RANDOM },
    { "TRUE" , SC_OPCODE_TRUE },
    { "FALSE" , SC_OPCODE_FALSE },
    { "TODAY" , SC_OPCODE_GET_ACT_DATE },
    { "NOW" , SC_OPCODE_GET_ACT_TIME },
    { "NA" , SC_OPCODE_NO_VALUE },
    { "_xlfn.ORG.OPENOFFICE.CURRENT" , SC_OPCODE_CURRENT },
    { "DEGREES" , SC_OPCODE_DEG },
    { "RADIANS" , SC_OPCODE_RAD },
    { "SIN" , SC_OPCODE_SIN },
    { "COS" , SC_OPCODE_COS },
    { "TAN" , SC_OPCODE_TAN },
    { "_xlfn.COT" , SC_OPCODE_COT },
    { "ASIN" , SC_OPCODE_ARC_SIN },
    { "ACOS" , SC_OPCODE_ARC_COS },
    { "ATAN" , SC_OPCODE_ARC_TAN },
    { "_xlfn.ACOT" , SC_OPCODE_ARC_COT },
    { "SINH" , SC_OPCODE_SIN_HYP },
    { "COSH" , SC_OPCODE_COS_HYP },
    { "TANH" , SC_OPCODE_TAN_HYP },
    { "_xlfn.COTH" , SC_OPCODE_COT_HYP },
    { "ASINH" , SC_OPCODE_ARC_SIN_HYP },
    { "ACOSH" , SC_OPCODE_ARC_COS_HYP },
    { "ATANH" , SC_OPCODE_ARC_TAN_HYP },
    { "_xlfn.ACOTH" , SC_OPCODE_ARC_COT_HYP },
    { "_xlfn.CSC" , SC_OPCODE_COSECANT },
    { "_xlfn.SEC" , SC_OPCODE_SECANT },
    { "_xlfn.CSCH" , SC_OPCODE_COSECANT_HYP },
    { "_xlfn.SECH" , SC_OPCODE_SECANT_HYP },
    { "EXP" , SC_OPCODE_EXP },
    { "LN" , SC_OPCODE_LN },
    { "SQRT" , SC_OPCODE_SQRT },
    { "FACT" , SC_OPCODE_FACT },
    { "YEAR" , SC_OPCODE_GET_YEAR },
    { "MONTH" , SC_OPCODE_GET_MONTH },
    { "DAY" , SC_OPCODE_GET_DAY },
    { "HOUR" , SC_OPCODE_GET_HOUR },
    { "MINUTE" , SC_OPCODE_GET_MIN },
    { "SECOND" , SC_OPCODE_GET_SEC },
    { "SIGN" , SC_OPCODE_PLUS_MINUS },
    { "ABS" , SC_OPCODE_ABS },
    { "INT" , SC_OPCODE_INT },
    { "_xlfn.PHI" , SC_OPCODE_PHI },
    { "_xlfn.GAUSS" , SC_OPCODE_GAUSS },
    { "ISBLANK" , SC_OPCODE_IS_EMPTY },
    { "ISTEXT" , SC_OPCODE_IS_STRING },
    { "ISNONTEXT" , SC_OPCODE_IS_NON_STRING },
    { "ISLOGICAL" , SC_OPCODE_IS_LOGICAL },
    { "TYPE" , SC_OPCODE_TYPE },
    { "CELL" , SC_OPCODE_CELL },
    { "ISREF" , SC_OPCODE_IS_REF },
    { "ISNUMBER" , SC_OPCODE_IS_VALUE },
    { "_xlfn.ISFORMULA" , SC_OPCODE_IS_FORMULA },
    { "ISNA" , SC_OPCODE_IS_NV },
    { "ISERR" , SC_OPCODE_IS_ERR },
    { "ISERROR" , SC_OPCODE_IS_ERROR },
    { "ISEVEN" , SC_OPCODE_IS_EVEN },
    { "ISODD" , SC_OPCODE_IS_ODD },
    { "N" , SC_OPCODE_N },
    { "DATEVALUE" , SC_OPCODE_GET_DATE_VALUE },
    { "TIMEVALUE" , SC_OPCODE_GET_TIME_VALUE },
    { "CODE" , SC_OPCODE_CODE },
    { "TRIM" , SC_OPCODE_TRIM },
    { "UPPER" , SC_OPCODE_UPPER },
    { "PROPER" , SC_OPCODE_PROPER },
    { "LOWER" , SC_OPCODE_LOWER },
    { "LEN" , SC_OPCODE_LEN },
    { "T" , SC_OPCODE_T },
    { "VALUE" , SC_OPCODE_VALUE },
    { "CLEAN" , SC_OPCODE_CLEAN },
    { "CHAR" , SC_OPCODE_CHAR },
    { "JIS" , SC_OPCODE_JIS },
    { "ASC" , SC_OPCODE_ASC },
    { "_xlfn.UNICODE" , SC_OPCODE_UNICODE },
    { "_xlfn.UNICHAR" , SC_OPCODE_UNICHAR },
    { "LOG10" , SC_OPCODE_LOG10 },
    { "EVEN" , SC_OPCODE_EVEN },
    { "ODD" , SC_OPCODE_ODD },
    { "NORMSDIST" , SC_OPCODE_STD_NORM_DIST },
    { "_xlfn.NORM.S.DIST" , SC_OPCODE_STD_NORM_DIST_MS },
    { "FISHER" , SC_OPCODE_FISHER },
    { "FISHERINV" , SC_OPCODE_FISHER_INV },
    { "NORMSINV" , SC_OPCODE_S_NORM_INV },
    { "_xlfn.NORM.S.INV" , SC_OPCODE_S_NORM_INV_MS },
    { "GAMMALN" , SC_OPCODE_GAMMA_LN },
    { "_xlfn.GAMMALN.PRECISE" , SC_OPCODE_GAMMA_LN_MS },
    { "_xlfn.ORG.OPENOFFICE.ERRORTYPE" , SC_OPCODE_ERROR_TYPE },
    { "ERROR.TYPE" , SC_OPCODE_ERROR_TYPE_ODF },
    { "_xlfn.FORMULATEXT" , SC_OPCODE_FORMULA },
    { "ATAN2" , SC_OPCODE_ARC_TAN_2 },
    { "_xlfn.CEILING.MATH" , SC_OPCODE_CEIL_MATH },
    { "_xlfn.CEILING.MATH" , SC_OPCODE_CEIL },
    { "CEILING" , SC_OPCODE_CEIL_MS },
    { "_xlfn.CEILING.PRECISE" , SC_OPCODE_CEIL_PRECISE },
    { "ISO.CEILING" , SC_OPCODE_CEIL_ISO },
    { "FLOOR" , SC_OPCODE_FLOOR_MS },
    { "_xlfn.FLOOR.MATH" , SC_OPCODE_FLOOR_MATH },
    { "_xlfn.FLOOR.MATH" , SC_OPCODE_FLOOR },
    { "_xlfn.FLOOR.PRECISE" , SC_OPCODE_FLOOR_PRECISE },
    { "ROUND" , SC_OPCODE_ROUND },
    { "ROUNDUP" , SC_OPCODE_ROUND_UP },
    { "ROUNDDOWN" , SC_OPCODE_ROUND_DOWN },
    { "TRUNC" , SC_OPCODE_TRUNC },
    { "LOG" , SC_OPCODE_LOG },
    { "POWER" , SC_OPCODE_POWER },
    { "GCD" , SC_OPCODE_GCD },
    { "LCM" , SC_OPCODE_LCM },
    { "MOD" , SC_OPCODE_MOD },
    { "SUMPRODUCT" , SC_OPCODE_SUM_PRODUCT },
    { "SUMSQ" , SC_OPCODE_SUM_SQ },
    { "SUMX2MY2" , SC_OPCODE_SUM_X2MY2 },
    { "SUMX2PY2" , SC_OPCODE_SUM_X2DY2 },
    { "SUMXMY2" , SC_OPCODE_SUM_XMY2 },
    { "DATE" , SC_OPCODE_GET_DATE },
    { "TIME" , SC_OPCODE_GET_TIME },
    { "_xlfn.DAYS" , SC_OPCODE_GET_DIFF_DATE },
    { "DAYS360" , SC_OPCODE_GET_DIFF_DATE_360 },
    { "DATEDIF" , SC_OPCODE_GET_DATEDIF },
    { "MIN" , SC_OPCODE_MIN },
    { "MINA" , SC_OPCODE_MIN_A },
    { "MAX" , SC_OPCODE_MAX },
    { "MAXA" , SC_OPCODE_MAX_A },
    { "SUM" , SC_OPCODE_SUM },
    { "PRODUCT" , SC_OPCODE_PRODUCT },
    { "AVERAGE" , SC_OPCODE_AVERAGE },
    { "AVERAGEA" , SC_OPCODE_AVERAGE_A },
    { "COUNT" , SC_OPCODE_COUNT },
    { "COUNTA" , SC_OPCODE_COUNT_2 },
    { "NPV" , SC_OPCODE_NPV },
    { "IRR" , SC_OPCODE_IRR },
    { "MIRR" , SC_OPCODE_MIRR },
    { "ISPMT" , SC_OPCODE_ISPMT },
    { "VAR" , SC_OPCODE_VAR },
    { "VARA" , SC_OPCODE_VAR_A },
    { "VARP" , SC_OPCODE_VAR_P },
    { "VARPA" , SC_OPCODE_VAR_P_A },
    { "_xlfn.VAR.P" , SC_OPCODE_VAR_P_MS },
    { "_xlfn.VAR.S" , SC_OPCODE_VAR_S },
    { "STDEV" , SC_OPCODE_ST_DEV },
    { "STDEVA" , SC_OPCODE_ST_DEV_A },
    { "STDEVP" , SC_OPCODE_ST_DEV_P },
    { "STDEVPA" , SC_OPCODE_ST_DEV_P_A },
    { "_xlfn.STDEV.P" , SC_OPCODE_ST_DEV_P_MS },
    { "_xlfn.STDEV.S" , SC_OPCODE_ST_DEV_S },
    { "B" , SC_OPCODE_B },
    { "NORMDIST" , SC_OPCODE_NORM_DIST },
    { "_xlfn.NORM.DIST" , SC_OPCODE_NORM_DIST_MS },
    { "EXPONDIST" , SC_OPCODE_EXP_DIST },
    { "_xlfn.EXPON.DIST" , SC_OPCODE_EXP_DIST_MS },
    { "BINOMDIST" , SC_OPCODE_BINOM_DIST },
    { "_xlfn.BINOM.DIST" , SC_OPCODE_BINOM_DIST_MS },
    { "POISSON" , SC_OPCODE_POISSON_DIST },
    { "_xlfn.POISSON.DIST" , SC_OPCODE_POISSON_DIST_MS },
    { "COMBIN" , SC_OPCODE_COMBIN },
    { "_xlfn.COMBINA" , SC_OPCODE_COMBIN_A },
    { "PERMUT" , SC_OPCODE_PERMUT },
    { "_xlfn.PERMUTATIONA" , SC_OPCODE_PERMUTATION_A },
    { "PV" , SC_OPCODE_PV },
    { "SYD" , SC_OPCODE_SYD },
    { "DDB" , SC_OPCODE_DDB },
    { "DB" , SC_OPCODE_DB },
    { "VDB" , SC_OPCODE_VBD },
    { "_xlfn.PDURATION" , SC_OPCODE_PDURATION },
    { "SLN" , SC_OPCODE_SLN },
    { "PMT" , SC_OPCODE_PMT },
    { "COLUMNS" , SC_OPCODE_COLUMNS },
    { "ROWS" , SC_OPCODE_ROWS },
    { "_xlfn.SHEETS" , SC_OPCODE_SHEETS },
    { "COLUMN" , SC_OPCODE_COLUMN },
    { "ROW" , SC_OPCODE_ROW },
    { "_xlfn.SHEET" , SC_OPCODE_SHEET },
    { "_xlfn.RRI" , SC_OPCODE_RRI },
    { "FV" , SC_OPCODE_FV },
    { "NPER" , SC_OPCODE_NPER },
    { "RATE" , SC_OPCODE_RATE },
    { "IPMT" , SC_OPCODE_IPMT },
    { "PPMT" , SC_OPCODE_PPMT },
    { "CUMIPMT" , SC_OPCODE_CUM_IPMT },
    { "CUMPRINC" , SC_OPCODE_CUM_PRINC },
    { "EFFECT" , SC_OPCODE_EFFECT },
    { "NOMINAL" , SC_OPCODE_NOMINAL },
    { "SUBTOTAL" , SC_OPCODE_SUB_TOTAL },
    { "DSUM" , SC_OPCODE_DB_SUM },
    { "DCOUNT" , SC_OPCODE_DB_COUNT },
    { "DCOUNTA" , SC_OPCODE_DB_COUNT_2 },
    { "DAVERAGE" , SC_OPCODE_DB_AVERAGE },
    { "DGET" , SC_OPCODE_DB_GET },
    { "DMAX" , SC_OPCODE_DB_MAX },
    { "DMIN" , SC_OPCODE_DB_MIN },
    { "DPRODUCT" , SC_OPCODE_DB_PRODUCT },
    { "DSTDEV" , SC_OPCODE_DB_STD_DEV },
    { "DSTDEVP" , SC_OPCODE_DB_STD_DEV_P },
    { "DVAR" , SC_OPCODE_DB_VAR },
    { "DVARP" , SC_OPCODE_DB_VAR_P },
    { "INDIRECT" , SC_OPCODE_INDIRECT },
    { "ADDRESS" , SC_OPCODE_ADDRESS },
    { "MATCH" , SC_OPCODE_MATCH },
    { "_xlfn.XMATCH" , SC_OPCODE_X_MATCH },
    { "COUNTBLANK" , SC_OPCODE_COUNT_EMPTY_CELLS },
    { "COUNTIF" , SC_OPCODE_COUNT_IF },
    { "SUMIF" , SC_OPCODE_SUM_IF },
    { "AVERAGEIF" , SC_OPCODE_AVERAGE_IF },
    { "SUMIFS" , SC_OPCODE_SUM_IFS },
    { "AVERAGEIFS" , SC_OPCODE_AVERAGE_IFS },
    { "COUNTIFS" , SC_OPCODE_COUNT_IFS },
    { "LOOKUP" , SC_OPCODE_LOOKUP },
    { "VLOOKUP" , SC_OPCODE_V_LOOKUP },
    { "_xlfn.XLOOKUP" , SC_OPCODE_X_LOOKUP },
    { "HLOOKUP" , SC_OPCODE_H_LOOKUP },
    { "_xlfn._xlws.FILTER" , SC_OPCODE_FILTER },
    { "_xlfn._xlws.SORT" , SC_OPCODE_SORT },
    { "_xlfn.SORTBY" , SC_OPCODE_SORTBY },
    { "_xlfn.CHOOSECOLS" , SC_OPCODE_CHOOSECOLS },
    { "_xlfn.CHOOSEROWS" , SC_OPCODE_CHOOSEROWS },
    { "_xlfn.DROP" , SC_OPCODE_DROP },
    { "_xlfn.EXPAND" , SC_OPCODE_EXPAND },
    { "_xlfn.HSTACK" , SC_OPCODE_HSTACK },
    { "_xlfn.VSTACK" , SC_OPCODE_VSTACK },
    { "_xlfn.TAKE" , SC_OPCODE_TAKE },
    { "_xlfn.TEXTAFTER" , SC_OPCODE_TEXTAFTER },
    { "_xlfn.TEXTBEFORE" , SC_OPCODE_TEXTBEFORE },
    { "_xlfn.TEXTSPLIT" , SC_OPCODE_TEXTSPLIT },
    { "_xlfn.TOCOL" , SC_OPCODE_TOCOL },
    { "_xlfn.TOROW" , SC_OPCODE_TOROW },
    { "_xlfn.UNIQUE" , SC_OPCODE_UNIQUE },
    { "_xlfn.LET" , SC_OPCODE_LET },
    { "_xlfn.WRAPCOLS" , SC_OPCODE_WRAPCOLS },
    { "_xlfn.WRAPROWS" , SC_OPCODE_WRAPROWS },
    { "_xlpm." , SC_OPCODE_STRINGNAME },
    { "_xlfn.ORG.OPENOFFICE.MULTIRANGE" , SC_OPCODE_MULTI_AREA }, // legacy for range list (union)
    { "OFFSET" , SC_OPCODE_OFFSET },
    { "INDEX" , SC_OPCODE_INDEX },
    { "AREAS" , SC_OPCODE_AREAS },
    { "DOLLAR" , SC_OPCODE_CURRENCY },
    { "REPLACE" , SC_OPCODE_REPLACE },
    { "FIXED" , SC_OPCODE_FIXED },
    { "FIND" , SC_OPCODE_FIND },
    { "EXACT" , SC_OPCODE_EXACT },
    { "LEFT" , SC_OPCODE_LEFT },
    { "RIGHT" , SC_OPCODE_RIGHT },
    { "SEARCH" , SC_OPCODE_SEARCH },
    { "MID" , SC_OPCODE_MID },
    { "LENB" , SC_OPCODE_LENB },
    { "RIGHTB" , SC_OPCODE_RIGHTB },
    { "LEFTB" , SC_OPCODE_LEFTB },
    { "REPLACEB" , SC_OPCODE_REPLACEB },
    { "FINDB" , SC_OPCODE_FINDB },
    { "SEARCHB" , SC_OPCODE_SEARCHB },
    { "MIDB" , SC_OPCODE_MIDB },
    { "TEXT" , SC_OPCODE_TEXT },
    { "SUBSTITUTE" , SC_OPCODE_SUBSTITUTE },
    { "REPT" , SC_OPCODE_REPT },
    { "CONCATENATE" , SC_OPCODE_CONCAT },
    { "_xlfn.CONCAT" , SC_OPCODE_CONCAT_MS },
    { "_xlfn.TEXTJOIN" , SC_OPCODE_TEXTJOIN_MS },
    { "_xlfn.IFS" , SC_OPCODE_IFS_MS },
    { "_xlfn.SWITCH" , SC_OPCODE_SWITCH_MS },
    { "_xlfn.MINIFS" , SC_OPCODE_MINIFS_MS },
    { "_xlfn.MAXIFS" , SC_OPCODE_MAXIFS_MS },
    { "MVALUE" , SC_OPCODE_MAT_VALUE },
    { "MDETERM" , SC_OPCODE_MAT_DET },
    { "MINVERSE" , SC_OPCODE_MAT_INV },
    { "MMULT" , SC_OPCODE_MAT_MULT },
    { "_xlfn.SEQUENCE" , SC_OPCODE_MAT_SEQUENCE },
    { "TRANSPOSE" , SC_OPCODE_MAT_TRANS },
    { "_xlfn.MUNIT" , SC_OPCODE_MATRIX_UNIT },
    { "_xlfn.ORG.OPENOFFICE.GOALSEEK" , SC_OPCODE_BACK_SOLVER },
    { "HYPGEOMDIST" , SC_OPCODE_HYP_GEOM_DIST },
    { "_xlfn.HYPGEOM.DIST" , SC_OPCODE_HYP_GEOM_DIST_MS },
    { "LOGNORMDIST" , SC_OPCODE_LOG_NORM_DIST },
    { "_xlfn.LOGNORM.DIST" , SC_OPCODE_LOG_NORM_DIST_MS },
    { "TDIST" , SC_OPCODE_T_DIST },
    { "_xlfn.T.DIST.2T" , SC_OPCODE_T_DIST_2T },
    { "_xlfn.T.DIST" , SC_OPCODE_T_DIST_MS },
    { "_xlfn.T.DIST.RT" , SC_OPCODE_T_DIST_RT },
    { "FDIST" , SC_OPCODE_F_DIST },
    { "_xlfn.F.DIST" , SC_OPCODE_F_DIST_LT },
    { "_xlfn.F.DIST.RT" , SC_OPCODE_F_DIST_RT },
    { "CHIDIST" , SC_OPCODE_CHI_DIST },
    { "_xlfn.CHISQ.DIST.RT" , SC_OPCODE_CHI_DIST_MS },
    { "WEIBULL" , SC_OPCODE_WEIBULL },
    { "_xlfn.WEIBULL.DIST" , SC_OPCODE_WEIBULL_MS },
    { "NEGBINOMDIST" , SC_OPCODE_NEG_BINOM_VERT },
    { "_xlfn.NEGBINOM.DIST" , SC_OPCODE_NEG_BINOM_DIST_MS },
    { "CRITBINOM" , SC_OPCODE_CRIT_BINOM },
    { "_xlfn.BINOM.INV" , SC_OPCODE_BINOM_INV },
    { "KURT" , SC_OPCODE_KURT },
    { "HARMEAN" , SC_OPCODE_HAR_MEAN },
    { "GEOMEAN" , SC_OPCODE_GEO_MEAN },
    { "STANDARDIZE" , SC_OPCODE_STANDARD },
    { "AVEDEV" , SC_OPCODE_AVE_DEV },
    { "SKEW" , SC_OPCODE_SKEW },
    { "_xlfn.SKEW.P" , SC_OPCODE_SKEWP },
    { "DEVSQ" , SC_OPCODE_DEV_SQ },
    { "MEDIAN" , SC_OPCODE_MEDIAN },
    { "MODE" , SC_OPCODE_MODAL_VALUE },
    { "_xlfn.MODE.SNGL" , SC_OPCODE_MODAL_VALUE_MS },
    { "_xlfn.MODE.MULT" , SC_OPCODE_MODAL_VALUE_MULTI },
    { "ZTEST" , SC_OPCODE_Z_TEST },
    { "_xlfn.Z.TEST" , SC_OPCODE_Z_TEST_MS },
    { "_xlfn.AGGREGATE" , SC_OPCODE_AGGREGATE },
    { "TTEST" , SC_OPCODE_T_TEST },
    { "_xlfn.T.TEST" , SC_OPCODE_T_TEST_MS },
    { "RANK" , SC_OPCODE_RANK },
    { "PERCENTILE" , SC_OPCODE_PERCENTILE },
    { "PERCENTRANK" , SC_OPCODE_PERCENT_RANK },
    { "_xlfn.PERCENTILE.INC" , SC_OPCODE_PERCENTILE_INC },
    { "_xlfn.PERCENTRANK.INC" , SC_OPCODE_PERCENT_RANK_INC },
    { "_xlfn.QUARTILE.INC" , SC_OPCODE_QUARTILE_INC },
    { "_xlfn.RANK.EQ" , SC_OPCODE_RANK_EQ },
    { "_xlfn.PERCENTILE.EXC" , SC_OPCODE_PERCENTILE_EXC },
    { "_xlfn.PERCENTRANK.EXC" , SC_OPCODE_PERCENT_RANK_EXC },
    { "_xlfn.QUARTILE.EXC" , SC_OPCODE_QUARTILE_EXC },
    { "_xlfn.RANK.AVG" , SC_OPCODE_RANK_AVG },
    { "LARGE" , SC_OPCODE_LARGE },
    { "SMALL" , SC_OPCODE_SMALL },
    { "FREQUENCY" , SC_OPCODE_FREQUENCY },
    { "QUARTILE" , SC_OPCODE_QUARTILE },
    { "NORMINV" , SC_OPCODE_NORM_INV },
    { "_xlfn.NORM.INV" , SC_OPCODE_NORM_INV_MS },
    { "CONFIDENCE" , SC_OPCODE_CONFIDENCE },
    { "_xlfn.CONFIDENCE.NORM" , SC_OPCODE_CONFIDENCE_N },
    { "_xlfn.CONFIDENCE.T" , SC_OPCODE_CONFIDENCE_T },
    { "FTEST" , SC_OPCODE_F_TEST },
    { "_xlfn.F.TEST" , SC_OPCODE_F_TEST_MS },
    { "TRIMMEAN" , SC_OPCODE_TRIM_MEAN },
    { "PROB" , SC_OPCODE_PROB },
    { "CORREL" , SC_OPCODE_CORREL },
    { "COVAR" , SC_OPCODE_COVAR },
    { "_xlfn.COVARIANCE.P" , SC_OPCODE_COVARIANCE_P },
    { "_xlfn.COVARIANCE.S" , SC_OPCODE_COVARIANCE_S },
    { "PEARSON" , SC_OPCODE_PEARSON },
    { "RSQ" , SC_OPCODE_RSQ },
    { "STEYX" , SC_OPCODE_STEYX },
    { "SLOPE" , SC_OPCODE_SLOPE },
    { "INTERCEPT" , SC_OPCODE_INTERCEPT },
    { "TREND" , SC_OPCODE_TREND },
    { "GROWTH" , SC_OPCODE_GROWTH },
    { "LINEST" , SC_OPCODE_LINEST },
    { "LOGEST" , SC_OPCODE_LOGEST },
    { "FORECAST" , SC_OPCODE_FORECAST },
    { "_xlfn.FORECAST.ETS" , SC_OPCODE_FORECAST_ETS_ADD },
    { "_xlfn.FORECAST.ETS.SEASONALITY" , SC_OPCODE_FORECAST_ETS_SEA },
    { "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.MULT" , SC_OPCODE_FORECAST_ETS_MUL },
    { "_xlfn.FORECAST.ETS.CONFINT" , SC_OPCODE_FORECAST_ETS_PIA },
    { "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.PI.MULT" , SC_OPCODE_FORECAST_ETS_PIM },
    { "_xlfn.FORECAST.ETS.STAT" , SC_OPCODE_FORECAST_ETS_STA },
    { "_xlfn.ORG.LIBREOFFICE.FORECAST.ETS.STAT.MULT" , SC_OPCODE_FORECAST_ETS_STM },
    { "_xlfn.FORECAST.LINEAR" , SC_OPCODE_FORECAST_LIN },
    { "CHIINV" , SC_OPCODE_CHI_INV },
    { "_xlfn.CHISQ.INV.RT" , SC_OPCODE_CHI_INV_MS },
    { "GAMMADIST" , SC_OPCODE_GAMMA_DIST },
    { "_xlfn.GAMMA.DIST" , SC_OPCODE_GAMMA_DIST_MS },
    { "GAMMAINV" , SC_OPCODE_GAMMA_INV },
    { "_xlfn.GAMMA.INV" , SC_OPCODE_GAMMA_INV_MS },
    { "TINV" , SC_OPCODE_T_INV },
    { "_xlfn.T.INV.2T" , SC_OPCODE_T_INV_2T },
    { "_xlfn.T.INV" , SC_OPCODE_T_INV_MS },
    { "FINV" , SC_OPCODE_F_INV },
    { "_xlfn.F.INV" , SC_OPCODE_F_INV_LT },
    { "_xlfn.F.INV.RT" , SC_OPCODE_F_INV_RT },
    { "CHITEST" , SC_OPCODE_CHI_TEST },
    { "_xlfn.CHISQ.TEST" , SC_OPCODE_CHI_TEST_MS },
    { "LOGINV" , SC_OPCODE_LOG_INV },
    { "_xlfn.LOGNORM.INV" , SC_OPCODE_LOG_INV_MS },
    { "TABLE" , SC_OPCODE_TABLE_OP },
    { "BETADIST" , SC_OPCODE_BETA_DIST },
    { "BETAINV" , SC_OPCODE_BETA_INV },
    { "_xlfn.BETA.DIST" , SC_OPCODE_BETA_DIST_MS },
    { "_xlfn.BETA.INV" , SC_OPCODE_BETA_INV_MS },
    { "WEEKNUM" , SC_OPCODE_WEEK },
    { "_xlfn.ISOWEEKNUM" , SC_OPCODE_ISOWEEKNUM },
    { "_xlfn.ORG.LIBREOFFICE.WEEKNUM_OOO" , SC_OPCODE_WEEKNUM_OOO },
    { "_xlfn.ORG.OPENOFFICE.EASTERSUNDAY" , SC_OPCODE_EASTERSUNDAY },
    { "WEEKDAY" , SC_OPCODE_GET_DAY_OF_WEEK },
    { "NETWORKDAYS" , SC_OPCODE_NETWORKDAYS },
    { "NETWORKDAYS.INTL" , SC_OPCODE_NETWORKDAYS_MS },
    { "WORKDAY.INTL" , SC_OPCODE_WORKDAY_MS },
    { "#NAME!" , SC_OPCODE_NO_NAME },
    { "_xlfn.ORG.OPENOFFICE.STYLE" , SC_OPCODE_STYLE },
    { "DDE" , SC_OPCODE_DDE },
    { "_xlfn.BASE" , SC_OPCODE_BASE },
    { "_xlfn.DECIMAL" , SC_OPCODE_DECIMAL },
    { "_xlfn.ORG.OPENOFFICE.CONVERT" , SC_OPCODE_CONVERT_OOO },
    { "ROMAN" , SC_OPCODE_ROMAN },
    { "_xlfn.ARABIC" , SC_OPCODE_ARABIC },
    { "HYPERLINK" , SC_OPCODE_HYPERLINK },
    { "INFO" , SC_OPCODE_INFO },
    { "_xlfn.BAHTTEXT" , SC_OPCODE_BAHTTEXT },
    { "GETPIVOTDATA" , SC_OPCODE_GET_PIVOT_DATA },
    { "EUROCONVERT" , SC_OPCODE_EUROCONVERT },
    { "_xlfn.NUMBERVALUE" , SC_OPCODE_NUMBERVALUE },
    { "_xlfn.GAMMA" , SC_OPCODE_GAMMA },
    { "CHISQDIST" , SC_OPCODE_CHISQ_DIST },
    { "_xlfn.CHISQ.DIST" , SC_OPCODE_CHISQ_DIST_MS },
    { "CHISQINV" , SC_OPCODE_CHISQ_INV },
    { "_xlfn.CHISQ.INV" , SC_OPCODE_CHISQ_INV_MS },
    { "_xlfn.BITAND" , SC_OPCODE_BITAND },
    { "_xlfn.BITOR" , SC_OPCODE_BITOR },
    { "_xlfn.BITXOR" , SC_OPCODE_BITXOR },
    { "_xlfn.BITRSHIFT" , SC_OPCODE_BITRSHIFT },
    { "_xlfn.BITLSHIFT" , SC_OPCODE_BITLSHIFT },
    { "#NULL!" , SC_OPCODE_ERROR_NULL },
    { "#DIV/0!" , SC_OPCODE_ERROR_DIVZERO },
    { "#VALUE!" , SC_OPCODE_ERROR_VALUE },
    { "#REF!" , SC_OPCODE_ERROR_REF },
    { "#NAME?" , SC_OPCODE_ERROR_NAME },
    { "#NUM!" , SC_OPCODE_ERROR_NUM },
    { "#N/A" , SC_OPCODE_ERROR_NA },
    /* END defined ERROR.TYPE() values. */
    { "_xlfn.FILTERXML" , SC_OPCODE_FILTERXML },
    { "_xlfn.WEBSERVICE" , SC_OPCODE_WEBSERVICE },
    { "_xlfn.ORG.LIBREOFFICE.COLOR" , SC_OPCODE_COLOR },
    { "_xlfn.ERF.PRECISE" , SC_OPCODE_ERF_MS },
    { "_xlfn.ERFC.PRECISE" , SC_OPCODE_ERFC_MS },
    { "_xlfn.ENCODEURL" , SC_OPCODE_ENCODEURL },
    { "_xlfn.ORG.LIBREOFFICE.RAWSUBTRACT" , SC_OPCODE_RAWSUBTRACT },
    { "_xlfn.ORG.LIBREOFFICE.ROUNDSIG" , SC_OPCODE_ROUNDSIG },
    { "_xlfn.ORG.LIBREOFFICE.REGEX" , SC_OPCODE_REGEX },
    { "_xlfn.ORG.LIBREOFFICE.FOURIER", SC_OPCODE_FOURIER },
    { "_xlfn.ORG.LIBREOFFICE.RAND.NV" , SC_OPCODE_RANDOM_NV },
    { "_xlfn.ORG.LIBREOFFICE.RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV },
    { "_xlfn.RANDARRAY" , SC_OPCODE_RANDARRAY },
    { nullptr,  -1 }
};

/** These English names are used to store/load ODF v1.0/v1.1. */
// DO NOT CHANGE NAMES! Only add functions.
// If there is a reason for another name for some function then add an
// *additional* name to be recognized to sc/source/core/tool/compiler.cxx
// ScCompiler::IsOpCode() in the else if (mxSymbols->isPODF()) block.
const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_PODF[] =
{
    { "IF" , SC_OPCODE_IF },
    { "IFERROR" , SC_OPCODE_IF_ERROR },
    { "IFNA" , SC_OPCODE_IF_NA },
    { "CHOOSE" , SC_OPCODE_CHOOSE },
    { "(" , SC_OPCODE_OPEN },
    { ")" , SC_OPCODE_CLOSE },
    { "[" , SC_OPCODE_TABLE_REF_OPEN },
    { "]" , SC_OPCODE_TABLE_REF_CLOSE },
    { "#All" , SC_OPCODE_TABLE_REF_ITEM_ALL },
    { "#Headers" , SC_OPCODE_TABLE_REF_ITEM_HEADERS },
    { "#Data" , SC_OPCODE_TABLE_REF_ITEM_DATA },
    { "#Totals" , SC_OPCODE_TABLE_REF_ITEM_TOTALS },
    { "#This Row" , SC_OPCODE_TABLE_REF_ITEM_THIS_ROW },
    { "{" , SC_OPCODE_ARRAY_OPEN },
    { "}" , SC_OPCODE_ARRAY_CLOSE },
    { "|" , SC_OPCODE_ARRAY_ROW_SEP },
    { ";" , SC_OPCODE_ARRAY_COL_SEP },
    { ";" , SC_OPCODE_SEP },
    { "%" , SC_OPCODE_PERCENT_SIGN },
    { "+" , SC_OPCODE_ADD },
    { "-" , SC_OPCODE_SUB },
    { "*" , SC_OPCODE_MUL },
    { "/" , SC_OPCODE_DIV },
    { "&" , SC_OPCODE_AMPERSAND },
    { "^" , SC_OPCODE_POW },
    { "=" , SC_OPCODE_EQUAL },
    { "<>" , SC_OPCODE_NOT_EQUAL },
    { "<" , SC_OPCODE_LESS },
    { ">" , SC_OPCODE_GREATER },
    { "<=" , SC_OPCODE_LESS_EQUAL },
    { ">=" , SC_OPCODE_GREATER_EQUAL },
    { "AND" , SC_OPCODE_AND },
    { "OR" , SC_OPCODE_OR },
    { "XOR" , SC_OPCODE_XOR },
    { "!" , SC_OPCODE_INTERSECT },
    { "~" , SC_OPCODE_UNION },
    { ":" , SC_OPCODE_RANGE },
    { "NOT" , SC_OPCODE_NOT },
    { "NEG" , SC_OPCODE_NEG },
    { "-" , SC_OPCODE_NEG_SUB },
    { "PI" , SC_OPCODE_PI },
    { "RAND" , SC_OPCODE_RANDOM },
    { "TRUE" , SC_OPCODE_TRUE },
    { "FALSE" , SC_OPCODE_FALSE },
    { "TODAY" , SC_OPCODE_GET_ACT_DATE },
    { "NOW" , SC_OPCODE_GET_ACT_TIME },
    { "NA" , SC_OPCODE_NO_VALUE },
    { "CURRENT" , SC_OPCODE_CURRENT },
    { "DEGREES" , SC_OPCODE_DEG },
    { "RADIANS" , SC_OPCODE_RAD },
    { "SIN" , SC_OPCODE_SIN },
    { "COS" , SC_OPCODE_COS },
    { "TAN" , SC_OPCODE_TAN },
    { "COT" , SC_OPCODE_COT },
    { "ASIN" , SC_OPCODE_ARC_SIN },
    { "ACOS" , SC_OPCODE_ARC_COS },
    { "ATAN" , SC_OPCODE_ARC_TAN },
    { "ACOT" , SC_OPCODE_ARC_COT },
    { "SINH" , SC_OPCODE_SIN_HYP },
    { "COSH" , SC_OPCODE_COS_HYP },
    { "TANH" , SC_OPCODE_TAN_HYP },
    { "COTH" , SC_OPCODE_COT_HYP },
    { "ASINH" , SC_OPCODE_ARC_SIN_HYP },
    { "ACOSH" , SC_OPCODE_ARC_COS_HYP },
    { "ATANH" , SC_OPCODE_ARC_TAN_HYP },
    { "ACOTH" , SC_OPCODE_ARC_COT_HYP },
    { "CSC" , SC_OPCODE_COSECANT },
    { "SEC" , SC_OPCODE_SECANT },
    { "CSCH" , SC_OPCODE_COSECANT_HYP },
    { "SECH" , SC_OPCODE_SECANT_HYP },
    { "EXP" , SC_OPCODE_EXP },
    { "LN" , SC_OPCODE_LN },
    { "SQRT" , SC_OPCODE_SQRT },
    { "FACT" , SC_OPCODE_FACT },
    { "YEAR" , SC_OPCODE_GET_YEAR },
    { "MONTH" , SC_OPCODE_GET_MONTH },
    { "DAY" , SC_OPCODE_GET_DAY },
    { "HOUR" , SC_OPCODE_GET_HOUR },
    { "MINUTE" , SC_OPCODE_GET_MIN },
    { "SECOND" , SC_OPCODE_GET_SEC },
    { "SIGN" , SC_OPCODE_PLUS_MINUS },
    { "ABS" , SC_OPCODE_ABS },
    { "INT" , SC_OPCODE_INT },
    { "PHI" , SC_OPCODE_PHI },
    { "GAUSS" , SC_OPCODE_GAUSS },
    { "ISBLANK" , SC_OPCODE_IS_EMPTY },
    { "ISTEXT" , SC_OPCODE_IS_STRING },
    { "ISNONTEXT" , SC_OPCODE_IS_NON_STRING },
    { "ISLOGICAL" , SC_OPCODE_IS_LOGICAL },
    { "TYPE" , SC_OPCODE_TYPE },
    { "CELL" , SC_OPCODE_CELL },
    { "ISREF" , SC_OPCODE_IS_REF },
    { "ISNUMBER" , SC_OPCODE_IS_VALUE },
    { "ISFORMULA" , SC_OPCODE_IS_FORMULA },
    { "ISNA" , SC_OPCODE_IS_NV },
    { "ISERR" , SC_OPCODE_IS_ERR },
    { "ISERROR" , SC_OPCODE_IS_ERROR },
    { "ISEVEN" , SC_OPCODE_IS_EVEN },
    { "ISODD" , SC_OPCODE_IS_ODD },
    { "N" , SC_OPCODE_N },
    { "DATEVALUE" , SC_OPCODE_GET_DATE_VALUE },
    { "TIMEVALUE" , SC_OPCODE_GET_TIME_VALUE },
    { "CODE" , SC_OPCODE_CODE },
    { "TRIM" , SC_OPCODE_TRIM },
    { "UPPER" , SC_OPCODE_UPPER },
    { "PROPER" , SC_OPCODE_PROPER },
    { "LOWER" , SC_OPCODE_LOWER },
    { "LEN" , SC_OPCODE_LEN },
    { "T" , SC_OPCODE_T },
    { "VALUE" , SC_OPCODE_VALUE },
    { "CLEAN" , SC_OPCODE_CLEAN },
    { "CHAR" , SC_OPCODE_CHAR },
    { "JIS" , SC_OPCODE_JIS },
    { "ASC" , SC_OPCODE_ASC },
    { "UNICODE" , SC_OPCODE_UNICODE },
    { "UNICHAR" , SC_OPCODE_UNICHAR },
    { "LOG10" , SC_OPCODE_LOG10 },
    { "EVEN" , SC_OPCODE_EVEN },
    { "ODD" , SC_OPCODE_ODD },
    { "NORMSDIST" , SC_OPCODE_STD_NORM_DIST },
    { "NORM.S.DIST" , SC_OPCODE_STD_NORM_DIST_MS },
    { "FISHER" , SC_OPCODE_FISHER },
    { "FISHERINV" , SC_OPCODE_FISHER_INV },
    { "NORMSINV" , SC_OPCODE_S_NORM_INV },
    { "NORM.S.INV" , SC_OPCODE_S_NORM_INV_MS },
    { "GAMMALN" , SC_OPCODE_GAMMA_LN },
    { "GAMMALN.PRECISE" , SC_OPCODE_GAMMA_LN_MS },
    { "ERRORTYPE" , SC_OPCODE_ERROR_TYPE },
    { "ERROR.TYPE" , SC_OPCODE_ERROR_TYPE_ODF },
    { "FORMULA" , SC_OPCODE_FORMULA },
    { "ATAN2" , SC_OPCODE_ARC_TAN_2 },
    { "CEILING.MATH" , SC_OPCODE_CEIL_MATH },
    { "CEILING" , SC_OPCODE_CEIL },
    { "CEILING.XCL" , SC_OPCODE_CEIL_MS },
    { "CEILING.PRECISE" , SC_OPCODE_CEIL_PRECISE },
    { "ISO.CEILING" , SC_OPCODE_CEIL_ISO },
    { "FLOOR" , SC_OPCODE_FLOOR },
    { "FLOOR.XCL" , SC_OPCODE_FLOOR_MS },
    { "FLOOR.MATH" , SC_OPCODE_FLOOR_MATH },
    { "FLOOR.PRECISE" , SC_OPCODE_FLOOR_PRECISE },
    { "ROUND" , SC_OPCODE_ROUND },
    { "ROUNDUP" , SC_OPCODE_ROUND_UP },
    { "ROUNDDOWN" , SC_OPCODE_ROUND_DOWN },
    { "TRUNC" , SC_OPCODE_TRUNC },
    { "LOG" , SC_OPCODE_LOG },
    { "POWER" , SC_OPCODE_POWER },
    { "GCD" , SC_OPCODE_GCD },
    { "LCM" , SC_OPCODE_LCM },
    { "MOD" , SC_OPCODE_MOD },
    { "SUMPRODUCT" , SC_OPCODE_SUM_PRODUCT },
    { "SUMSQ" , SC_OPCODE_SUM_SQ },
    { "SUMX2MY2" , SC_OPCODE_SUM_X2MY2 },
    { "SUMX2PY2" , SC_OPCODE_SUM_X2DY2 },
    { "SUMXMY2" , SC_OPCODE_SUM_XMY2 },
    { "DATE" , SC_OPCODE_GET_DATE },
    { "TIME" , SC_OPCODE_GET_TIME },
    { "DAYS" , SC_OPCODE_GET_DIFF_DATE },
    { "DAYS360" , SC_OPCODE_GET_DIFF_DATE_360 },
    { "DATEDIF" , SC_OPCODE_GET_DATEDIF },
    { "MIN" , SC_OPCODE_MIN },
    { "MINA" , SC_OPCODE_MIN_A },
    { "MAX" , SC_OPCODE_MAX },
    { "MAXA" , SC_OPCODE_MAX_A },
    { "SUM" , SC_OPCODE_SUM },
    { "PRODUCT" , SC_OPCODE_PRODUCT },
    { "AVERAGE" , SC_OPCODE_AVERAGE },
    { "AVERAGEA" , SC_OPCODE_AVERAGE_A },
    { "COUNT" , SC_OPCODE_COUNT },
    { "COUNTA" , SC_OPCODE_COUNT_2 },
    { "NPV" , SC_OPCODE_NPV },
    { "IRR" , SC_OPCODE_IRR },
    { "MIRR" , SC_OPCODE_MIRR },
    { "ISPMT" , SC_OPCODE_ISPMT },
    { "VAR" , SC_OPCODE_VAR },
    { "VARA" , SC_OPCODE_VAR_A },
    { "VARP" , SC_OPCODE_VAR_P },
    { "VARPA" , SC_OPCODE_VAR_P_A },
    { "VAR.P" , SC_OPCODE_VAR_P_MS },
    { "VAR.S" , SC_OPCODE_VAR_S },
    { "STDEV" , SC_OPCODE_ST_DEV },
    { "STDEVA" , SC_OPCODE_ST_DEV_A },
    { "STDEVP" , SC_OPCODE_ST_DEV_P },
    { "STDEVPA" , SC_OPCODE_ST_DEV_P_A },
    { "STDEV.P" , SC_OPCODE_ST_DEV_P_MS },
    { "STDEV.S" , SC_OPCODE_ST_DEV_S },
    { "B" , SC_OPCODE_B },
    { "NORMDIST" , SC_OPCODE_NORM_DIST },
    { "NORM.DIST" , SC_OPCODE_NORM_DIST_MS },
    { "EXPONDIST" , SC_OPCODE_EXP_DIST },
    { "EXPON.DIST" , SC_OPCODE_EXP_DIST_MS },
    { "BINOMDIST" , SC_OPCODE_BINOM_DIST },
    { "BINOM.DIST" , SC_OPCODE_BINOM_DIST_MS },
    { "POISSON" , SC_OPCODE_POISSON_DIST },
    { "POISSON.DIST" , SC_OPCODE_POISSON_DIST_MS },
    { "COMBIN" , SC_OPCODE_COMBIN },
    { "COMBINA" , SC_OPCODE_COMBIN_A },
    { "PERMUT" , SC_OPCODE_PERMUT },
    { "PERMUTATIONA" , SC_OPCODE_PERMUTATION_A },
    { "PV" , SC_OPCODE_PV },
    { "SYD" , SC_OPCODE_SYD },
    { "DDB" , SC_OPCODE_DDB },
    { "DB" , SC_OPCODE_DB },
    { "VDB" , SC_OPCODE_VBD },
    { "DURATION" , SC_OPCODE_PDURATION }, // wrong but ODF1.1, keep it.
    { "SLN" , SC_OPCODE_SLN },
    { "PMT" , SC_OPCODE_PMT },
    { "COLUMNS" , SC_OPCODE_COLUMNS },
    { "ROWS" , SC_OPCODE_ROWS },
    { "SHEETS" , SC_OPCODE_SHEETS },
    { "COLUMN" , SC_OPCODE_COLUMN },
    { "ROW" , SC_OPCODE_ROW },
    { "SHEET" , SC_OPCODE_SHEET },
    { "ZGZ" , SC_OPCODE_RRI },
    { "FV" , SC_OPCODE_FV },
    { "NPER" , SC_OPCODE_NPER },
    { "RATE" , SC_OPCODE_RATE },
    { "IPMT" , SC_OPCODE_IPMT },
    { "PPMT" , SC_OPCODE_PPMT },
    { "CUMIPMT" , SC_OPCODE_CUM_IPMT },
    { "CUMPRINC" , SC_OPCODE_CUM_PRINC },
    { "EFFECTIVE" , SC_OPCODE_EFFECT },
    { "NOMINAL" , SC_OPCODE_NOMINAL },
    { "SUBTOTAL" , SC_OPCODE_SUB_TOTAL },
    { "DSUM" , SC_OPCODE_DB_SUM },
    { "DCOUNT" , SC_OPCODE_DB_COUNT },
    { "DCOUNTA" , SC_OPCODE_DB_COUNT_2 },
    { "DAVERAGE" , SC_OPCODE_DB_AVERAGE },
    { "DGET" , SC_OPCODE_DB_GET },
    { "DMAX" , SC_OPCODE_DB_MAX },
    { "DMIN" , SC_OPCODE_DB_MIN },
    { "DPRODUCT" , SC_OPCODE_DB_PRODUCT },
    { "DSTDEV" , SC_OPCODE_DB_STD_DEV },
    { "DSTDEVP" , SC_OPCODE_DB_STD_DEV_P },
    { "DVAR" , SC_OPCODE_DB_VAR },
    { "DVARP" , SC_OPCODE_DB_VAR_P },
    { "INDIRECT" , SC_OPCODE_INDIRECT },
    { "ADDRESS" , SC_OPCODE_ADDRESS },
    { "MATCH" , SC_OPCODE_MATCH },
    { "XMATCH" , SC_OPCODE_X_MATCH },
    { "COUNTBLANK" , SC_OPCODE_COUNT_EMPTY_CELLS },
    { "COUNTIF" , SC_OPCODE_COUNT_IF },
    { "SUMIF" , SC_OPCODE_SUM_IF },
    { "AVERAGEIF" , SC_OPCODE_AVERAGE_IF },
    { "SUMIFS" , SC_OPCODE_SUM_IFS },
    { "AVERAGEIFS" , SC_OPCODE_AVERAGE_IFS },
    { "COUNTIFS" , SC_OPCODE_COUNT_IFS },
    { "LOOKUP" , SC_OPCODE_LOOKUP },
    { "VLOOKUP" , SC_OPCODE_V_LOOKUP },
    { "XLOOKUP" , SC_OPCODE_X_LOOKUP },
    { "HLOOKUP" , SC_OPCODE_H_LOOKUP },
    { "FILTER" , SC_OPCODE_FILTER },
    { "SORT" , SC_OPCODE_SORT },
    { "SORTBY" , SC_OPCODE_SORTBY },
    { "CHOOSECOLS" , SC_OPCODE_CHOOSECOLS },
    { "CHOOSEROWS" , SC_OPCODE_CHOOSEROWS },
    { "DROP" , SC_OPCODE_DROP },
    { "EXPAND" , SC_OPCODE_EXPAND },
    { "HSTACK" , SC_OPCODE_HSTACK },
    { "VSTACK" , SC_OPCODE_VSTACK },
    { "TAKE" , SC_OPCODE_TAKE },
    { "TEXTAFTER" , SC_OPCODE_TEXTAFTER },
    { "TEXTBEFORE" , SC_OPCODE_TEXTBEFORE },
    { "TEXTSPLIT" , SC_OPCODE_TEXTSPLIT },
    { "TOCOL" , SC_OPCODE_TOCOL },
    { "TOROW" , SC_OPCODE_TOROW },
    { "UNIQUE" , SC_OPCODE_UNIQUE },
    { "LET" , SC_OPCODE_LET },
    { "WRAPCOLS" , SC_OPCODE_WRAPCOLS },
    { "WRAPROWS" , SC_OPCODE_WRAPROWS },
    { "MULTIRANGE" , SC_OPCODE_MULTI_AREA },    // legacy for range list (union)
    { "OFFSET" , SC_OPCODE_OFFSET },
    { "INDEX" , SC_OPCODE_INDEX },
    { "AREAS" , SC_OPCODE_AREAS },
    { "DOLLAR" , SC_OPCODE_CURRENCY },
    { "REPLACE" , SC_OPCODE_REPLACE },
    { "FIXED" , SC_OPCODE_FIXED },
    { "FIND" , SC_OPCODE_FIND },
    { "EXACT" , SC_OPCODE_EXACT },
    { "LEFT" , SC_OPCODE_LEFT },
    { "RIGHT" , SC_OPCODE_RIGHT },
    { "SEARCH" , SC_OPCODE_SEARCH },
    { "MID" , SC_OPCODE_MID },
    { "LENB" , SC_OPCODE_LENB },
    { "RIGHTB" , SC_OPCODE_RIGHTB },
    { "LEFTB" , SC_OPCODE_LEFTB },
    { "REPLACEB" , SC_OPCODE_REPLACEB },
    { "FINDB" , SC_OPCODE_FINDB },
    { "SEARCHB" , SC_OPCODE_SEARCHB },
    { "MIDB" , SC_OPCODE_MIDB },
    { "TEXT" , SC_OPCODE_TEXT },
    { "SUBSTITUTE" , SC_OPCODE_SUBSTITUTE },
    { "REPT" , SC_OPCODE_REPT },
    { "CONCATENATE" , SC_OPCODE_CONCAT },
    { "CONCAT" , SC_OPCODE_CONCAT_MS },
    { "TEXTJOIN" , SC_OPCODE_TEXTJOIN_MS },
    { "IFS" , SC_OPCODE_IFS_MS },
    { "SWITCH" , SC_OPCODE_SWITCH_MS },
    { "MINIFS" , SC_OPCODE_MINIFS_MS },
    { "MAXIFS" , SC_OPCODE_MAXIFS_MS },
    { "MVALUE" , SC_OPCODE_MAT_VALUE },
    { "MDETERM" , SC_OPCODE_MAT_DET },
    { "MINVERSE" , SC_OPCODE_MAT_INV },
    { "MMULT" , SC_OPCODE_MAT_MULT },
    { "SEQUENCE" , SC_OPCODE_MAT_SEQUENCE },
    { "TRANSPOSE" , SC_OPCODE_MAT_TRANS },
    { "MUNIT" , SC_OPCODE_MATRIX_UNIT },
    { "GOALSEEK" , SC_OPCODE_BACK_SOLVER },
    { "HYPGEOMDIST" , SC_OPCODE_HYP_GEOM_DIST },
    { "HYPGEOM.DIST" , SC_OPCODE_HYP_GEOM_DIST_MS },
    { "LOGNORMDIST" , SC_OPCODE_LOG_NORM_DIST },
    { "LOGNORM.DIST" , SC_OPCODE_LOG_NORM_DIST_MS },
    { "TDIST" , SC_OPCODE_T_DIST },
    { "T.DIST.2T" , SC_OPCODE_T_DIST_2T },
    { "T.DIST" , SC_OPCODE_T_DIST_MS },
    { "T.DIST.RT" , SC_OPCODE_T_DIST_RT },
    { "FDIST" , SC_OPCODE_F_DIST },
    { "F.DIST" , SC_OPCODE_F_DIST_LT },
    { "F.DIST.RT" , SC_OPCODE_F_DIST_RT },
    { "CHIDIST" , SC_OPCODE_CHI_DIST },
    { "CHISQ.DIST.RT" , SC_OPCODE_CHI_DIST_MS },
    { "WEIBULL" , SC_OPCODE_WEIBULL },
    { "WEIBULL.DIST" , SC_OPCODE_WEIBULL_MS },
    { "NEGBINOMDIST" , SC_OPCODE_NEG_BINOM_VERT },
    { "NEGBINOM.DIST" , SC_OPCODE_NEG_BINOM_DIST_MS },
    { "CRITBINOM" , SC_OPCODE_CRIT_BINOM },
    { "BINOM.INV" , SC_OPCODE_BINOM_INV },
    { "KURT" , SC_OPCODE_KURT },
    { "HARMEAN" , SC_OPCODE_HAR_MEAN },
    { "GEOMEAN" , SC_OPCODE_GEO_MEAN },
    { "STANDARDIZE" , SC_OPCODE_STANDARD },
    { "AVEDEV" , SC_OPCODE_AVE_DEV },
    { "SKEW" , SC_OPCODE_SKEW },
    { "SKEWP" , SC_OPCODE_SKEWP },
    { "DEVSQ" , SC_OPCODE_DEV_SQ },
    { "MEDIAN" , SC_OPCODE_MEDIAN },
    { "MODE" , SC_OPCODE_MODAL_VALUE },
    { "MODE.SNGL" , SC_OPCODE_MODAL_VALUE_MS },
    { "MODE.MULT" , SC_OPCODE_MODAL_VALUE_MULTI },
    { "ZTEST" , SC_OPCODE_Z_TEST },
    { "Z.TEST" , SC_OPCODE_Z_TEST_MS },
    { "AGGREGATE" , SC_OPCODE_AGGREGATE },
    { "TTEST" , SC_OPCODE_T_TEST },
    { "T.TEST" , SC_OPCODE_T_TEST_MS },
    { "RANK" , SC_OPCODE_RANK },
    { "PERCENTILE" , SC_OPCODE_PERCENTILE },
    { "PERCENTRANK" , SC_OPCODE_PERCENT_RANK },
    { "PERCENTILE.INC" , SC_OPCODE_PERCENTILE_INC },
    { "PERCENTRANK.INC" , SC_OPCODE_PERCENT_RANK_INC },
    { "QUARTILE.INC" , SC_OPCODE_QUARTILE_INC },
    { "RANK.EQ" , SC_OPCODE_RANK_EQ },
    { "PERCENTILE.EXC" , SC_OPCODE_PERCENTILE_EXC },
    { "PERCENTRANK.EXC" , SC_OPCODE_PERCENT_RANK_EXC },
    { "QUARTILE.EXC" , SC_OPCODE_QUARTILE_EXC },
    { "RANK.AVG" , SC_OPCODE_RANK_AVG },
    { "LARGE" , SC_OPCODE_LARGE },
    { "SMALL" , SC_OPCODE_SMALL },
    { "FREQUENCY" , SC_OPCODE_FREQUENCY },
    { "QUARTILE" , SC_OPCODE_QUARTILE },
    { "NORMINV" , SC_OPCODE_NORM_INV },
    { "NORM.INV" , SC_OPCODE_NORM_INV_MS },
    { "CONFIDENCE" , SC_OPCODE_CONFIDENCE },
    { "CONFIDENCE.NORM" , SC_OPCODE_CONFIDENCE_N },
    { "CONFIDENCE.T" , SC_OPCODE_CONFIDENCE_T },
    { "FTEST" , SC_OPCODE_F_TEST },
    { "F.TEST" , SC_OPCODE_F_TEST_MS },
    { "TRIMMEAN" , SC_OPCODE_TRIM_MEAN },
    { "PROB" , SC_OPCODE_PROB },
    { "CORREL" , SC_OPCODE_CORREL },
    { "COVAR" , SC_OPCODE_COVAR },
    { "COVARIANCE.P" , SC_OPCODE_COVARIANCE_P },
    { "COVARIANCE.S" , SC_OPCODE_COVARIANCE_S },
    { "PEARSON" , SC_OPCODE_PEARSON },
    { "RSQ" , SC_OPCODE_RSQ },
    { "STEYX" , SC_OPCODE_STEYX },
    { "SLOPE" , SC_OPCODE_SLOPE },
    { "INTERCEPT" , SC_OPCODE_INTERCEPT },
    { "TREND" , SC_OPCODE_TREND },
    { "GROWTH" , SC_OPCODE_GROWTH },
    { "LINEST" , SC_OPCODE_LINEST },
    { "LOGEST" , SC_OPCODE_LOGEST },
    { "FORECAST" , SC_OPCODE_FORECAST },
    { "FORECAST.ETS.ADD" , SC_OPCODE_FORECAST_ETS_ADD },
    { "FORECAST.ETS.SEASONALITY" , SC_OPCODE_FORECAST_ETS_SEA },
    { "FORECAST.ETS.MULT" , SC_OPCODE_FORECAST_ETS_MUL },
    { "FORECAST.ETS.PI.ADD" , SC_OPCODE_FORECAST_ETS_PIA },
    { "FORECAST.ETS.PI.MULT" , SC_OPCODE_FORECAST_ETS_PIM },
    { "FORECAST.ETS.STAT.ADD" , SC_OPCODE_FORECAST_ETS_STA },
    { "FORECAST.ETS.STAT.MULT" , SC_OPCODE_FORECAST_ETS_STM },
    { "FORECAST.LINEAR" , SC_OPCODE_FORECAST_LIN },
    { "CHIINV" , SC_OPCODE_CHI_INV },
    { "CHISQ.INV.RT" , SC_OPCODE_CHI_INV_MS },
    { "GAMMADIST" , SC_OPCODE_GAMMA_DIST },
    { "GAMMA.DIST" , SC_OPCODE_GAMMA_DIST_MS },
    { "GAMMAINV" , SC_OPCODE_GAMMA_INV },
    { "GAMMA.INV" , SC_OPCODE_GAMMA_INV_MS },
    { "TINV" , SC_OPCODE_T_INV },
    { "T.INV.2T" , SC_OPCODE_T_INV_2T },
    { "T.INV" , SC_OPCODE_T_INV_MS },
    { "FINV" , SC_OPCODE_F_INV },
    { "F.INV" , SC_OPCODE_F_INV_LT },
    { "F.INV.RT" , SC_OPCODE_F_INV_RT },
    { "CHITEST" , SC_OPCODE_CHI_TEST },
    { "CHISQ.TEST" , SC_OPCODE_CHI_TEST_MS },
    { "LOGINV" , SC_OPCODE_LOG_INV },
    { "LOGNORM.INV" , SC_OPCODE_LOG_INV_MS },
    { "TABLE" , SC_OPCODE_TABLE_OP },
    { "BETADIST" , SC_OPCODE_BETA_DIST },
    { "BETAINV" , SC_OPCODE_BETA_INV },
    { "BETA.DIST" , SC_OPCODE_BETA_DIST_MS },
    { "BETA.INV" , SC_OPCODE_BETA_INV_MS },
    { "WEEKNUM" , SC_OPCODE_WEEK },
    { "ISOWEEKNUM" , SC_OPCODE_ISOWEEKNUM },
    { "WEEKNUM_OOO" , SC_OPCODE_WEEKNUM_OOO },
    { "EASTERSUNDAY" , SC_OPCODE_EASTERSUNDAY },
    { "WEEKDAY" , SC_OPCODE_GET_DAY_OF_WEEK },
    { "NETWORKDAYS" , SC_OPCODE_NETWORKDAYS },
    { "NETWORKDAYS.INTL" , SC_OPCODE_NETWORKDAYS_MS },
    { "WORKDAY.INTL" , SC_OPCODE_WORKDAY_MS },
    { "#NAME!" , SC_OPCODE_NO_NAME },
    { "STYLE" , SC_OPCODE_STYLE },
    { "DDE" , SC_OPCODE_DDE },
    { "BASE" , SC_OPCODE_BASE },
    { "DECIMAL" , SC_OPCODE_DECIMAL },
    { "CONVERT" , SC_OPCODE_CONVERT_OOO },  // wrong but ODF1.1, keep it
    { "ROMAN" , SC_OPCODE_ROMAN },
    { "ARABIC" , SC_OPCODE_ARABIC },
    { "HYPERLINK" , SC_OPCODE_HYPERLINK },
    { "INFO" , SC_OPCODE_INFO },
    { "BAHTTEXT" , SC_OPCODE_BAHTTEXT },
    { "GETPIVOTDATA" , SC_OPCODE_GET_PIVOT_DATA },
    { "EUROCONVERT" , SC_OPCODE_EUROCONVERT },
    { "NUMBERVALUE" , SC_OPCODE_NUMBERVALUE },
    { "GAMMA" , SC_OPCODE_GAMMA },
    { "CHISQDIST" , SC_OPCODE_CHISQ_DIST },
    { "CHISQ.DIST" , SC_OPCODE_CHISQ_DIST_MS },
    { "CHISQ.INV" , SC_OPCODE_CHISQ_INV_MS },
    { "CHISQINV" , SC_OPCODE_CHISQ_INV },
    { "BITAND" , SC_OPCODE_BITAND },
    { "BITOR" , SC_OPCODE_BITOR },
    { "BITXOR" , SC_OPCODE_BITXOR },
    { "BITRSHIFT" , SC_OPCODE_BITRSHIFT },
    { "BITLSHIFT" , SC_OPCODE_BITLSHIFT },
    /* BEGIN defined ERROR.TYPE() values. */
    { "#NULL!" , SC_OPCODE_ERROR_NULL },
    { "#DIV/0!" , SC_OPCODE_ERROR_DIVZERO },
    { "#VALUE!" , SC_OPCODE_ERROR_VALUE },
    { "#REF!" , SC_OPCODE_ERROR_REF },
    { "#NAME?" , SC_OPCODE_ERROR_NAME },
    { "#NUM!" , SC_OPCODE_ERROR_NUM },
    { "#N/A" , SC_OPCODE_ERROR_NA },
    /* END defined ERROR.TYPE() values. */
    { "FILTERXML" , SC_OPCODE_FILTERXML },
    { "WEBSERVICE" , SC_OPCODE_WEBSERVICE },
    { "COLOR" , SC_OPCODE_COLOR },
    { "ERF.PRECISE" , SC_OPCODE_ERF_MS },
    { "ERFC.PRECISE" , SC_OPCODE_ERFC_MS },
    { "ENCODEURL" , SC_OPCODE_ENCODEURL },
    { "RAWSUBTRACT" , SC_OPCODE_RAWSUBTRACT },
    { "ROUNDSIG" , SC_OPCODE_ROUNDSIG },
    { "REGEX" , SC_OPCODE_REGEX },
    { "FOURIER", SC_OPCODE_FOURIER },
    { "RAND.NV" , SC_OPCODE_RANDOM_NV },
    { "RANDBETWEEN.NV" , SC_OPCODE_RANDBETWEEN_NV },
    { "RANDARRAY" , SC_OPCODE_RANDARRAY },
    { nullptr, -1 }
};

/** These English names are used for XFunctionAccess API. */
// DO NOT CHANGE NAMES! Only add functions.
// If there is a reason for another name for some function then add an
// *additional* name to be recognized to sc/source/core/tool/compiler.cxx
// ScCompiler::IsOpCode().
const std::pair<const char *, int> RID_STRLIST_FUNCTION_NAMES_ENGLISH_API[] =
{
    { "IF" , SC_OPCODE_IF },
    { "IFERROR" , SC_OPCODE_IF_ERROR },
    { "IFNA" , SC_OPCODE_IF_NA },
    { "CHOOSE" , SC_OPCODE_CHOOSE },
    { "(" , SC_OPCODE_OPEN },
    { ")" , SC_OPCODE_CLOSE },
    { "[" , SC_OPCODE_TABLE_REF_OPEN },
    { "]" , SC_OPCODE_TABLE_REF_CLOSE },
    { "#All" , SC_OPCODE_TABLE_REF_ITEM_ALL },
    { "#Headers" , SC_OPCODE_TABLE_REF_ITEM_HEADERS },
    { "#Data" , SC_OPCODE_TABLE_REF_ITEM_DATA },
    { "#Totals" , SC_OPCODE_TABLE_REF_ITEM_TOTALS },
    { "#This Row" , SC_OPCODE_TABLE_REF_ITEM_THIS_ROW },
    { "{" , SC_OPCODE_ARRAY_OPEN },
    { "}" , SC_OPCODE_ARRAY_CLOSE },
    { "|" , SC_OPCODE_ARRAY_ROW_SEP },
    { ";" , SC_OPCODE_ARRAY_COL_SEP },
    { ";" , SC_OPCODE_SEP },
    { "%" , SC_OPCODE_PERCENT_SIGN },
    { "+" , SC_OPCODE_ADD },
    { "-" , SC_OPCODE_SUB },
    { "*" , SC_OPCODE_MUL },
    { "/" , SC_OPCODE_DIV },
    { "&" , SC_OPCODE_AMPERSAND },
    { "^" , SC_OPCODE_POW },
    { "=" , SC_OPCODE_EQUAL },
    { "<>" , SC_OPCODE_NOT_EQUAL },
    { "<" , SC_OPCODE_LESS },
    { ">" , SC_OPCODE_GREATER },
    { "<=" , SC_OPCODE_LESS_EQUAL },
    { ">=" , SC_OPCODE_GREATER_EQUAL },
    { "AND" , SC_OPCODE_AND },
    { "OR" , SC_OPCODE_OR },
    { "XOR" , SC_OPCODE_XOR },
    { "!" , SC_OPCODE_INTERSECT },
    { "~" , SC_OPCODE_UNION },
    { ":" , SC_OPCODE_RANGE },
    { "NOT" , SC_OPCODE_NOT },
    { "NEG" , SC_OPCODE_NEG },
    { "-" , SC_OPCODE_NEG_SUB },
    { "PI" , SC_OPCODE_PI },
    { "RAND" , SC_OPCODE_RANDOM },
    { "TRUE" , SC_OPCODE_TRUE },
    { "FALSE" , SC_OPCODE_FALSE },
    { "TODAY" , SC_OPCODE_GET_ACT_DATE },
    { "NOW" , SC_OPCODE_GET_ACT_TIME },
    { "NA" , SC_OPCODE_NO_VALUE },
    { "CURRENT" , SC_OPCODE_CURRENT },
    { "DEGREES" , SC_OPCODE_DEG },
    { "RADIANS" , SC_OPCODE_RAD },
    { "SIN" , SC_OPCODE_SIN },
    { "COS" , SC_OPCODE_COS },
    { "TAN" , SC_OPCODE_TAN },
    { "COT" , SC_OPCODE_COT },
    { "ASIN" , SC_OPCODE_ARC_SIN },
    { "ACOS" , SC_OPCODE_ARC_COS },
    { "ATAN" , SC_OPCODE_ARC_TAN },
    { "ACOT" , SC_OPCODE_ARC_COT },
    { "SINH" , SC_OPCODE_SIN_HYP },
    { "COSH" , SC_OPCODE_COS_HYP },
    { "TANH" , SC_OPCODE_TAN_HYP },
    { "COTH" , SC_OPCODE_COT_HYP },
    { "ASINH" , SC_OPCODE_ARC_SIN_HYP },
    { "ACOSH" , SC_OPCODE_ARC_COS_HYP },
    { "ATANH" , SC_OPCODE_ARC_TAN_HYP },
    { "ACOTH" , SC_OPCODE_ARC_COT_HYP },
    { "CSC" , SC_OPCODE_COSECANT },
    { "SEC" , SC_OPCODE_SECANT },
    { "CSCH" , SC_OPCODE_COSECANT_HYP },
    { "SECH" , SC_OPCODE_SECANT_HYP },
    { "EXP" , SC_OPCODE_EXP },
    { "LN" , SC_OPCODE_LN },
    { "SQRT" , SC_OPCODE_SQRT },
    { "FACT" , SC_OPCODE_FACT },
    { "YEAR" , SC_OPCODE_GET_YEAR },
    { "MONTH" , SC_OPCODE_GET_MONTH },
    { "DAY" , SC_OPCODE_GET_DAY },
    { "HOUR" , SC_OPCODE_GET_HOUR },
    { "MINUTE" , SC_OPCODE_GET_MIN },
    { "SECOND" , SC_OPCODE_GET_SEC },
    { "SIGN" , SC_OPCODE_PLUS_MINUS },
    { "ABS" , SC_OPCODE_ABS },
    { "INT" , SC_OPCODE_INT },
    { "PHI" , SC_OPCODE_PHI },
    { "GAUSS" , SC_OPCODE_GAUSS },
    { "ISBLANK" , SC_OPCODE_IS_EMPTY },
    { "ISTEXT" , SC_OPCODE_IS_STRING },
    { "ISNONTEXT" , SC_OPCODE_IS_NON_STRING },
    { "ISLOGICAL" , SC_OPCODE_IS_LOGICAL },
    { "TYPE" , SC_OPCODE_TYPE },
    { "CELL" , SC_OPCODE_CELL },
    { "ISREF" , SC_OPCODE_IS_REF },
    { "ISNUMBER" , SC_OPCODE_IS_VALUE },
    { "ISFORMULA" , SC_OPCODE_IS_FORMULA },
    { "ISNA" , SC_OPCODE_IS_NV },
    { "ISERR" , SC_OPCODE_IS_ERR },
    { "ISERROR" , SC_OPCODE_IS_ERROR },
    { "ISEVEN" , SC_OPCODE_IS_EVEN },
    { "ISODD" , SC_OPCODE_IS_ODD },
    { "N" , SC_OPCODE_N },
    { "DATEVALUE" , SC_OPCODE_GET_DATE_VALUE },
    { "TIMEVALUE" , SC_OPCODE_GET_TIME_VALUE },
    { "CODE" , SC_OPCODE_CODE },
    { "TRIM" , SC_OPCODE_TRIM },
    { "UPPER" , SC_OPCODE_UPPER },
    { "PROPER" , SC_OPCODE_PROPER },
    { "LOWER" , SC_OPCODE_LOWER },
    { "LEN" , SC_OPCODE_LEN },
    { "T" , SC_OPCODE_T },
    { "VALUE" , SC_OPCODE_VALUE },
    { "CLEAN" , SC_OPCODE_CLEAN },
    { "CHAR" , SC_OPCODE_CHAR },
    { "JIS" , SC_OPCODE_JIS },
    { "ASC" , SC_OPCODE_ASC },
    { "UNICODE" , SC_OPCODE_UNICODE },
    { "UNICHAR" , SC_OPCODE_UNICHAR },
    { "LOG10" , SC_OPCODE_LOG10 },
    { "EVEN" , SC_OPCODE_EVEN },
    { "ODD" , SC_OPCODE_ODD },
    { "NORMSDIST" , SC_OPCODE_STD_NORM_DIST },
    { "NORM.S.DIST" , SC_OPCODE_STD_NORM_DIST_MS },
    { "FISHER" , SC_OPCODE_FISHER },
    { "FISHERINV" , SC_OPCODE_FISHER_INV },
    { "NORMSINV" , SC_OPCODE_S_NORM_INV },
    { "NORM.S.INV" , SC_OPCODE_S_NORM_INV_MS },
    { "GAMMALN" , SC_OPCODE_GAMMA_LN },
    { "GAMMALN.PRECISE" , SC_OPCODE_GAMMA_LN_MS },
    { "ERRORTYPE" , SC_OPCODE_ERROR_TYPE },
    { "ERROR.TYPE" , SC_OPCODE_ERROR_TYPE_ODF },
    { "FORMULA" , SC_OPCODE_FORMULA },
    { "ATAN2" , SC_OPCODE_ARC_TAN_2 },
    { "CEILING.MATH" , SC_OPCODE_CEIL_MATH },
    { "CEILING" , SC_OPCODE_CEIL },
    { "CEILING.XCL" , SC_OPCODE_CEIL_MS },
    { "CEILING.PRECISE" , SC_OPCODE_CEIL_PRECISE },
    { "ISO.CEILING" , SC_OPCODE_CEIL_ISO },
    { "FLOOR" , SC_OPCODE_FLOOR },
    { "FLOOR.XCL" , SC_OPCODE_FLOOR_MS },
    { "FLOOR.MATH" , SC_OPCODE_FLOOR_MATH },
    { "FLOOR.PRECISE" , SC_OPCODE_FLOOR_PRECISE },
    { "ROUND" , SC_OPCODE_ROUND },
    { "ROUNDUP" , SC_OPCODE_ROUND_UP },
    { "ROUNDDOWN" , SC_OPCODE_ROUND_DOWN },
--> --------------------

--> maximum size reached

--> --------------------

[ Konzepte0.14unsichere Verbindung  Übersetzung europäischer Sprachen durch Browser  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge