Excel does not store formula text. It stores the parsed formula as a sequence of
tokens called Ptgs (“parse things”) in reverse Polish order: operands are pushed and
operators and functions take their arguments from the stack. =A1+SUM(B1:B3)
becomes PtgRef A1, PtgArea B1:B3, PtgAttrSum (or PtgFuncVar SUM), PtgAdd. Sections refer
to [MS-XLS] 2.5.198.
Parsed formula
A cell formula (CellParsedFormula, 2.5.198.3) is cce (2 bytes, the
length of the tokens), rgce (the tokens) and rgcb, extra
data that some tokens need, in the same order as those tokens (RgbExtra,
2.5.198.103): PtgArray is followed in rgcb by the array’s values
(columns − 1 as 1 byte, rows − 1 as 2 bytes, then the values row by row, each a
SerAr: type byte 0 empty, 1 number (8-byte double), 2 string (XLUnicodeString),
4 Boolean or 0x10 error, the fixed kinds padded to 9 bytes),
PtgMemArea by its list of ranges, and the
natural-language PtgElf…S tokens by their extra data. Cell formulas must not contain
PtgRefN, PtgAreaN or PtgSxName, which are for shared formulas, names and
PivotTables. Defined names, data validation, conditional formats and charts use
the same tokens in slightly different containers.
Operand classes
Operand and function tokens exist in three forms, which differ only in bits 5–6 of
the first byte (PtgDataType, 2.5.198.44): 1 reference (base code + 0x00,
written 0x20–0x3D), 2 value (+ 0x20,
0x40–0x5D), 3 array (+ 0x40,
0x60–0x7D). For example PtgRef is 0x24 as a
reference, 0x44 as a value and 0x64 as an array. The class
says what the token yields, not how it is stored.
Tokens
| Code | Token | Data after the code | Meaning |
|---|---|---|---|
0x01 | PtgExp | row (2), column (2) | This cell uses the shared or array formula whose top-left cell is given. |
0x02 | PtgTbl | row (2), column (2) | This cell is part of the data table anchored there. |
0x03–0x0E | PtgAdd, PtgSub, PtgMul, PtgDiv, PtgPower, PtgConcat, PtgLt, PtgLe, PtgEq, PtgGe, PtgGt, PtgNe | — | + − * / ^ & < <= = >= > <>. |
0x0F | PtgIsect | — | Intersection (space operator). |
0x10 | PtgUnion | — | Union (comma operator). |
0x11 | PtgRange | — | Range operator (:). |
0x12 | PtgUplus | — | Unary plus. |
0x13 | PtgUminus | — | Unary minus. |
0x14 | PtgPercent | — | Percent (÷ 100). |
0x15 | PtgParen | — | Parentheses, kept for display only. |
0x16 | PtgMissArg | — | An omitted argument. |
0x17 | PtgStr | ShortXLUnicodeString | String constant. |
0x18 + second byte | PtgElfLel (1), PtgElfRw (2), PtgElfCol (3), PtgElfRwV (6), PtgElfColV (7), PtgElfRadical (0x0A), PtgElfRadicalS (0x0B), PtgElfColS (0x0D), PtgElfColSV (0x0F), PtgElfRadicalLel (0x10), PtgSxName (0x1D) | 4 bytes (Lel forms: 2-byte index and a quoted flag; PtgSxName: 4-byte PivotTable name index) | Natural-language formula labels (from Excel 97’s “accept labels in formulas”), and PivotTable calculated item names. |
0x19 + second byte | PtgAttrSemi (1), PtgAttrIf (2), PtgAttrChoose (4), PtgAttrGoto (8), PtgAttrSum (0x10), PtgAttrBaxcel (0x20, 0x21), PtgAttrSpace (0x40), PtgAttrSpaceSemi (0x41) | 2 bytes; PtgAttrChoose adds (count + 1) × 2-byte jump offsets | Control and layout tokens. |
0x1C | PtgErr | error code (1) | Error constant (codes). |
0x1D | PtgBool | 0 or 1 (1) | Boolean constant. |
0x1E | PtgInt | unsigned integer (2) | Integer constant 0 to 65,535. |
0x1F | PtgNum | double (8) | Number constant. |
0x20 | PtgArray | 7 unused bytes | Array constant; values in rgcb. |
0x21 | PtgFunc | function number (2) | Function with a fixed number of arguments (Ftab). |
0x22 | PtgFuncVar | argument count (1), function number (15 bits), fCeFunc (1 bit) | Function with a variable number of arguments; fCeFunc 1 means a macro command. Number 0x00FF calls a user or add-in function named by the first argument. |
0x23 | PtgName | name index (4) | A defined name (1-based index of the Lbl record). |
0x24 | PtgRef | RgceLoc (4) | A cell reference. |
0x25 | PtgArea | RgceArea (8) | A range reference. |
0x26 | PtgMemArea | 4 unused, cce (2) | A reference expression of cce bytes that follows, already evaluated to the areas listed in rgcb. |
0x27 | PtgMemErr | error (1), 3 unused, cce (2) | Such an expression that evaluated to an error. |
0x28 | PtgMemNoMem | 4 unused, cce (2) | Such an expression whose result was not cached. |
0x29 | PtgMemFunc | cce (2) | Such an expression containing a function, recalculated each time. |
0x2A | PtgRefErr | 4 unused | A cell reference that became #REF!. |
0x2B | PtgAreaErr | 8 unused | A range reference that became #REF!. |
0x2C | PtgRefN | RgceLocRel (4) | Cell reference relative to the formula’s cell (shared formulas, names). |
0x2D | PtgAreaN | RgceAreaRel (8) | Range reference relative to the formula’s cell. |
0x39 | PtgNameX | XTI index (2), name index (4) | A name in another workbook or an add-in function name. |
0x3A | PtgRef3d | XTI index (2), RgceLoc (4) | A cell on another sheet. |
0x3B | PtgArea3d | XTI index (2), RgceArea (8) | A range on another sheet. |
0x3C | PtgRefErr3d | XTI index (2), 4 unused | A deleted 3-D cell reference. |
0x3D | PtgAreaErr3d | XTI index (2), 8 unused | A deleted 3-D range reference. |
Codes 0x20 to 0x3D also appear as 0x40–0x5D
and 0x60–0x7D for the other classes.
The XTI index points into the ExternSheet record, whose entries name a
SupBook and a range of sheets.
Cell references
RgceLoc (2.5.198.109) is a 2-byte row and a 2-byte column field (ColRelU, 2.5.51):
bits 0–13 the column (0 to 255), bit 14 colRelative, bit 15
rowRelative. A relative flag set means the reference was written without
a $; the stored row and column are still absolute. RgceArea is first row,
last row, first column, last column (2 bytes each, the columns with the same flags).
In the relative forms (PtgRefN, PtgAreaN) the row and column are signed offsets from
the cell the formula is evaluated in when the matching flag is set.
PtgAttr tokens
| Token | Data | Purpose |
|---|---|---|
| PtgAttrSemi | 2 unused | Marks the formula as volatile (always recalculated). |
| PtgAttrIf | offset (2) | After the condition of IF: jump to the false branch if the condition is false. |
| PtgAttrChoose | count (2), count + 1 offsets (2 each) | Jump table for CHOOSE. |
| PtgAttrGoto | offset (2) | Jump past the rest of an IF or CHOOSE branch. The offset is the number of bytes to skip, minus one. |
| PtgAttrSum | 2 unused | SUM with one argument. |
| PtgAttrBaxcel | 2 unused | Assignment in a macro sheet formula (0x21 also volatile). |
| PtgAttrSpace | type (1), count (1) | Whitespace kept for display: 0 spaces before a token, 1 line breaks before a token, 2 spaces before an opening parenthesis, 3 line breaks before it, 4 spaces before a closing parenthesis, 5 line breaks before it, 6 spaces before the whole expression. |
| PtgAttrSpaceSemi | type (1), count (1) | The same, in a volatile formula. |
Worksheet functions (Ftab)
Function numbers used by PtgFunc and PtgFuncVar (2.5.198.17), in hexadecimal.
Numbers missing from the list are not defined. Functions without a number, such as
add-in functions and functions added to Excel after 2003, are called through
0x00FF (User) with the function’s name, normally a PtgNameX, as the first
argument.
0000 COUNT, 0001 IF, 0002 ISNA, 0003 ISERROR, 0004 SUM, 0005 AVERAGE, 0006 MIN, 0007 MAX, 0008 ROW, 0009 COLUMN, 000A NA, 000B NPV, 000C STDEV, 000D DOLLAR, 000E FIXED, 000F SIN, 0010 COS, 0011 TAN, 0012 ATAN, 0013 PI, 0014 SQRT, 0015 EXP, 0016 LN, 0017 LOG10, 0018 ABS, 0019 INT, 001A SIGN, 001B ROUND, 001C LOOKUP, 001D INDEX, 001E REPT, 001F MID, 0020 LEN, 0021 VALUE, 0022 TRUE, 0023 FALSE, 0024 AND, 0025 OR, 0026 NOT, 0027 MOD, 0028 DCOUNT, 0029 DSUM, 002A DAVERAGE, 002B DMIN, 002C DMAX, 002D DSTDEV, 002E VAR, 002F DVAR, 0030 TEXT, 0031 LINEST, 0032 TREND, 0033 LOGEST, 0034 GROWTH, 0035 GOTO, 0036 HALT, 0037 RETURN, 0038 PV, 0039 FV, 003A NPER, 003B PMT, 003C RATE, 003D MIRR, 003E IRR, 003F RAND, 0040 MATCH, 0041 DATE, 0042 TIME, 0043 DAY, 0044 MONTH, 0045 YEAR, 0046 WEEKDAY, 0047 HOUR, 0048 MINUTE, 0049 SECOND, 004A NOW, 004B AREAS, 004C ROWS, 004D COLUMNS, 004E OFFSET, 004F ABSREF, 0050 RELREF, 0051 ARGUMENT, 0052 SEARCH, 0053 TRANSPOSE, 0054 ERROR, 0055 STEP, 0056 TYPE, 0057 ECHO, 0058 SET.NAME, 0059 CALLER, 005A DEREF, 005B WINDOWS, 005C SERIES, 005D DOCUMENTS, 005E ACTIVE.CELL, 005F SELECTION, 0060 RESULT, 0061 ATAN2, 0062 ASIN, 0063 ACOS, 0064 CHOOSE, 0065 HLOOKUP, 0066 VLOOKUP, 0067 LINKS, 0068 INPUT, 0069 ISREF, 006A GET.FORMULA, 006B GET.NAME, 006C SET.VALUE, 006D LOG, 006E EXEC, 006F CHAR, 0070 LOWER, 0071 UPPER, 0072 PROPER, 0073 LEFT, 0074 RIGHT, 0075 EXACT, 0076 TRIM, 0077 REPLACE, 0078 SUBSTITUTE, 0079 CODE, 007A NAMES, 007B DIRECTORY, 007C FIND, 007D CELL, 007E ISERR, 007F ISTEXT, 0080 ISNUMBER, 0081 ISBLANK, 0082 T, 0083 N, 0084 FOPEN, 0085 FCLOSE, 0086 FSIZE, 0087 FREADLN, 0088 FREAD, 0089 FWRITELN, 008A FWRITE, 008B FPOS, 008C DATEVALUE, 008D TIMEVALUE, 008E SLN, 008F SYD, 0090 DDB, 0091 GET.DEF, 0092 REFTEXT, 0093 TEXTREF, 0094 INDIRECT, 0095 REGISTER, 0096 CALL, 0097 ADD.BAR, 0098 ADD.MENU, 0099 ADD.COMMAND, 009A ENABLE.COMMAND, 009B CHECK.COMMAND, 009C RENAME.COMMAND, 009D SHOW.BAR, 009E DELETE.MENU, 009F DELETE.COMMAND, 00A0 GET.CHART.ITEM, 00A1 DIALOG.BOX, 00A2 CLEAN, 00A3 MDETERM, 00A4 MINVERSE, 00A5 MMULT, 00A6 FILES, 00A7 IPMT, 00A8 PPMT, 00A9 COUNTA, 00AA CANCEL.KEY, 00AB FOR, 00AC WHILE, 00AD BREAK, 00AE NEXT, 00AF INITIATE, 00B0 REQUEST, 00B1 POKE, 00B2 EXECUTE, 00B3 TERMINATE, 00B4 RESTART, 00B5 HELP, 00B6 GET.BAR, 00B7 PRODUCT, 00B8 FACT, 00B9 GET.CELL, 00BA GET.WORKSPACE, 00BB GET.WINDOW, 00BC GET.DOCUMENT, 00BD DPRODUCT, 00BE ISNONTEXT, 00BF GET.NOTE, 00C0 NOTE, 00C1 STDEVP, 00C2 VARP, 00C3 DSTDEVP, 00C4 DVARP, 00C5 TRUNC, 00C6 ISLOGICAL, 00C7 DCOUNTA, 00C8 DELETE.BAR, 00C9 UNREGISTER, 00CC USDOLLAR, 00CD FINDB, 00CE SEARCHB, 00CF REPLACEB, 00D0 LEFTB, 00D1 RIGHTB, 00D2 MIDB, 00D3 LENB, 00D4 ROUNDUP, 00D5 ROUNDDOWN, 00D6 ASC, 00D7 DBCS, 00D8 RANK, 00DB ADDRESS, 00DC DAYS360, 00DD TODAY, 00DE VDB, 00DF ELSE, 00E0 ELSE.IF, 00E1 END.IF, 00E2 FOR.CELL, 00E3 MEDIAN, 00E4 SUMPRODUCT, 00E5 SINH, 00E6 COSH, 00E7 TANH, 00E8 ASINH, 00E9 ACOSH, 00EA ATANH, 00EB DGET, 00EC CREATE.OBJECT, 00ED VOLATILE, 00EE LAST.ERROR, 00EF CUSTOM.UNDO, 00F0 CUSTOM.REPEAT, 00F1 FORMULA.CONVERT, 00F2 GET.LINK.INFO, 00F3 TEXT.BOX, 00F4 INFO, 00F5 GROUP, 00F6 GET.OBJECT, 00F7 DB, 00F8 PAUSE, 00FB RESUME, 00FC FREQUENCY, 00FD ADD.TOOLBAR, 00FE DELETE.TOOLBAR, 00FF User (user-defined or add-in function), 0100 RESET.TOOLBAR, 0101 EVALUATE, 0102 GET.TOOLBAR, 0103 GET.TOOL, 0104 SPELLING.CHECK, 0105 ERROR.TYPE, 0106 APP.TITLE, 0107 WINDOW.TITLE, 0108 SAVE.TOOLBAR, 0109 ENABLE.TOOL, 010A PRESS.TOOL, 010B REGISTER.ID, 010C GET.WORKBOOK, 010D AVEDEV, 010E BETADIST, 010F GAMMALN, 0110 BETAINV, 0111 BINOMDIST, 0112 CHIDIST, 0113 CHIINV, 0114 COMBIN, 0115 CONFIDENCE, 0116 CRITBINOM, 0117 EVEN, 0118 EXPONDIST, 0119 FDIST, 011A FINV, 011B FISHER, 011C FISHERINV, 011D FLOOR, 011E GAMMADIST, 011F GAMMAINV, 0120 CEILING, 0121 HYPGEOMDIST, 0122 LOGNORMDIST, 0123 LOGINV, 0124 NEGBINOMDIST, 0125 NORMDIST, 0126 NORMSDIST, 0127 NORMINV, 0128 NORMSINV, 0129 STANDARDIZE, 012A ODD, 012B PERMUT, 012C POISSON, 012D TDIST, 012E WEIBULL, 012F SUMXMY2, 0130 SUMX2MY2, 0131 SUMX2PY2, 0132 CHITEST, 0133 CORREL, 0134 COVAR, 0135 FORECAST, 0136 FTEST, 0137 INTERCEPT, 0138 PEARSON, 0139 RSQ, 013A STEYX, 013B SLOPE, 013C TTEST, 013D PROB, 013E DEVSQ, 013F GEOMEAN, 0140 HARMEAN, 0141 SUMSQ, 0142 KURT, 0143 SKEW, 0144 ZTEST, 0145 LARGE, 0146 SMALL, 0147 QUARTILE, 0148 PERCENTILE, 0149 PERCENTRANK, 014A MODE, 014B TRIMMEAN, 014C TINV, 014E MOVIE.COMMAND, 014F GET.MOVIE, 0150 CONCATENATE, 0151 POWER, 0152 PIVOT.ADD.DATA, 0153 GET.PIVOT.TABLE, 0154 GET.PIVOT.FIELD, 0155 GET.PIVOT.ITEM, 0156 RADIANS, 0157 DEGREES, 0158 SUBTOTAL, 0159 SUMIF, 015A COUNTIF, 015B COUNTBLANK, 015C SCENARIO.GET, 015D OPTIONS.LISTS.GET, 015E ISPMT, 015F DATEDIF, 0160 DATESTRING, 0161 NUMBERSTRING, 0162 ROMAN, 0163 OPEN.DIALOG, 0164 SAVE.DIALOG, 0165 VIEW.GET, 0166 GETPIVOTDATA, 0167 HYPERLINK, 0168 PHONETIC, 0169 AVERAGEA, 016A MAXA, 016B MINA, 016C STDEVPA, 016D VARPA, 016E STDEVA, 016F VARA, 0170 BAHTTEXT, 0171 THAIDAYOFWEEK, 0172 THAIDIGIT, 0173 THAIMONTHOFYEAR, 0174 THAINUMSOUND, 0175 THAINUMSTRING, 0176 THAISTRINGLENGTH, 0177 ISTHAIDIGIT, 0178 ROUNDBAHTDOWN, 0179 ROUNDBAHTUP, 017A THAIYEAR, 017B RTD.
Macro commands (Cetab)
Command numbers used by PtgFuncVar with fCeFunc set, in macro sheets
(2.5.198.4).
0000 BEEP, 0001 OPEN, 0002 OPEN.LINKS, 0003 CLOSE.ALL, 0004 SAVE, 0005 SAVE.AS, 0006 FILE.DELETE, 0007 PAGE.SETUP, 0008 PRINT, 0009 PRINTER.SETUP, 000A QUIT, 000B NEW.WINDOW, 000C ARRANGE.ALL, 000D WINDOW.SIZE, 000E WINDOW.MOVE, 000F FULL, 0010 CLOSE, 0011 RUN, 0016 SET.PRINT.AREA, 0017 SET.PRINT.TITLES, 0018 SET.PAGE.BREAK, 0019 REMOVE.PAGE.BREAK, 001A FONT, 001B DISPLAY, 001C PROTECT.DOCUMENT, 001D PRECISION, 001E A1.R1C1, 001F CALCULATE.NOW, 0020 CALCULATION, 0022 DATA.FIND, 0023 EXTRACT, 0024 DATA.DELETE, 0025 SET.DATABASE, 0026 SET.CRITERIA, 0027 SORT, 0028 DATA.SERIES, 0029 TABLE, 002A FORMAT.NUMBER, 002B ALIGNMENT, 002C STYLE, 002D BORDER, 002E CELL.PROTECTION, 002F COLUMN.WIDTH, 0030 UNDO, 0031 CUT, 0032 COPY, 0033 PASTE, 0034 CLEAR, 0035 PASTE.SPECIAL, 0036 EDIT.DELETE, 0037 INSERT, 0038 FILL.RIGHT, 0039 FILL.DOWN, 003D DEFINE.NAME, 003E CREATE.NAMES, 003F FORMULA.GOTO, 0040 FORMULA.FIND, 0041 SELECT.LAST.CELL, 0042 SHOW.ACTIVE.CELL, 0043 GALLERY.AREA, 0044 GALLERY.BAR, 0045 GALLERY.COLUMN, 0046 GALLERY.LINE, 0047 GALLERY.PIE, 0048 GALLERY.SCATTER, 0049 COMBINATION, 004A PREFERRED, 004B ADD.OVERLAY, 004C GRIDLINES, 004D SET.PREFERRED, 004E AXES, 004F LEGEND, 0050 ATTACH.TEXT, 0051 ADD.ARROW, 0052 SELECT.CHART, 0053 SELECT.PLOT.AREA, 0054 PATTERNS, 0055 MAIN.CHART, 0056 OVERLAY, 0057 SCALE, 0058 FORMAT.LEGEND, 0059 FORMAT.TEXT, 005A EDIT.REPEAT, 005B PARSE, 005C JUSTIFY, 005D HIDE, 005E UNHIDE, 005F WORKSPACE, 0060 FORMULA, 0061 FORMULA.FILL, 0062 FORMULA.ARRAY, 0063 DATA.FIND.NEXT, 0064 DATA.FIND.PREV, 0065 FORMULA.FIND.NEXT, 0066 FORMULA.FIND.PREV, 0067 ACTIVATE, 0068 ACTIVATE.NEXT, 0069 ACTIVATE.PREV, 006A UNLOCKED.NEXT, 006B UNLOCKED.PREV, 006C COPY.PICTURE, 006D SELECT, 006E DELETE.NAME, 006F DELETE.FORMAT, 0070 VLINE, 0071 HLINE, 0072 VPAGE, 0073 HPAGE, 0074 VSCROLL, 0075 HSCROLL, 0076 ALERT, 0077 NEW, 0078 CANCEL.COPY, 0079 SHOW.CLIPBOARD, 007A MESSAGE, 007C PASTE.LINK, 007D APP.ACTIVATE, 007E DELETE.ARROW, 007F ROW.HEIGHT, 0080 FORMAT.MOVE, 0081 FORMAT.SIZE, 0082 FORMULA.REPLACE, 0083 SEND.KEYS, 0084 SELECT.SPECIAL, 0085 APPLY.NAMES, 0086 REPLACE.FONT, 0087 FREEZE.PANES, 0088 SHOW.INFO, 0089 SPLIT, 008A ON.WINDOW, 008B ON.DATA, 008C DISABLE.INPUT, 008E OUTLINE, 008F LIST.NAMES, 0090 FILE.CLOSE, 0091 SAVE.WORKBOOK, 0092 DATA.FORM, 0093 COPY.CHART, 0094 ON.TIME, 0095 WAIT, 0096 FORMAT.FONT, 0097 FILL.UP, 0098 FILL.LEFT, 0099 DELETE.OVERLAY, 009B SHORT.MENUS, 009F SET.UPDATE.STATUS, 00A1 COLOR.PALETTE, 00A2 DELETE.STYLE, 00A3 WINDOW.RESTORE, 00A4 WINDOW.MAXIMIZE, 00A6 CHANGE.LINK, 00A7 CALCULATE.DOCUMENT, 00A8 ON.KEY, 00A9 APP.RESTORE, 00AA APP.MOVE, 00AB APP.SIZE, 00AC APP.MINIMIZE, 00AD APP.MAXIMIZE, 00AE BRING.TO.FRONT, 00AF SEND.TO.BACK, 00B9 MAIN.CHART.TYPE, 00BA OVERLAY.CHART.TYPE, 00BB SELECT.END, 00BC OPEN.MAIL, 00BD SEND.MAIL, 00BE STANDARD.FONT, 00BF CONSOLIDATE, 00C0 SORT.SPECIAL, 00C1 GALLERY.3D.AREA, 00C2 GALLERY.3D.COLUMN, 00C3 GALLERY.3D.LINE, 00C4 GALLERY.3D.PIE, 00C5 VIEW.3D, 00C6 GOAL.SEEK, 00C7 WORKGROUP, 00C8 FILL.GROUP, 00C9 UPDATE.LINK, 00CA PROMOTE, 00CB DEMOTE, 00CC SHOW.DETAIL, 00CE UNGROUP, 00CF OBJECT.PROPERTIES, 00D0 SAVE.NEW.OBJECT, 00D1 SHARE, 00D2 SHARE.NAME, 00D3 DUPLICATE, 00D4 APPLY.STYLE, 00D5 ASSIGN.TO.OBJECT, 00D6 OBJECT.PROTECTION, 00D7 HIDE.OBJECT, 00D8 SET.EXTRACT, 00D9 CREATE.PUBLISHER, 00DA SUBSCRIBE.TO, 00DB ATTRIBUTES, 00DC SHOW.TOOLBAR, 00DE PRINT.PREVIEW, 00DF EDIT.COLOR, 00E0 SHOW.LEVELS, 00E1 FORMAT.MAIN, 00E2 FORMAT.OVERLAY, 00E3 ON.RECALC, 00E4 EDIT.SERIES, 00E5 DEFINE.STYLE, 00F0 LINE.PRINT, 00F3 ENTER.DATA, 00F9 GALLERY.RADAR, 00FA MERGE.STYLES, 00FB EDITION.OPTIONS, 00FC PASTE.PICTURE, 00FD PASTE.PICTURE.LINK, 00FE SPELLING, 0100 ZOOM, 0103 INSERT.OBJECT, 0104 WINDOW.MINIMIZE, 0109 SOUND.NOTE, 010A SOUND.PLAY, 010B FORMAT.SHAPE, 010C EXTEND.POLYGON, 010D FORMAT.AUTO, 0110 GALLERY.3D.BAR, 0111 GALLERY.3D.SURFACE, 0112 FILL.AUTO, 0114 CUSTOMIZE.TOOLBAR, 0115 ADD.TOOL, 0116 EDIT.OBJECT, 0117 ON.DOUBLECLICK, 0118 ON.ENTRY, 0119 WORKBOOK.ADD, 011A WORKBOOK.MOVE, 011B WORKBOOK.COPY, 011C WORKBOOK.OPTIONS, 011D SAVE.WORKSPACE, 0120 CHART.WIZARD, 0121 DELETE.TOOL, 0122 MOVE.TOOL, 0123 WORKBOOK.SELECT, 0124 WORKBOOK.ACTIVATE, 0125 ASSIGN.TO.TOOL, 0127 COPY.TOOL, 0128 RESET.TOOL, 0129 CONSTRAIN.NUMERIC, 012A PASTE.TOOL, 012E WORKBOOK.NEW, 0131 SCENARIO.CELLS, 0132 SCENARIO.DELETE, 0133 SCENARIO.ADD, 0134 SCENARIO.EDIT, 0135 SCENARIO.SHOW, 0136 SCENARIO.SHOW.NEXT, 0137 SCENARIO.SUMMARY, 0138 PIVOT.TABLE.WIZARD, 0139 PIVOT.FIELD.PROPERTIES, 013A PIVOT.FIELD, 013B PIVOT.ITEM, 013C PIVOT.ADD.FIELDS, 013E OPTIONS.CALCULATION, 013F OPTIONS.EDIT, 0140 OPTIONS.VIEW, 0141 ADDIN.MANAGER, 0142 MENU.EDITOR, 0143 ATTACH.TOOLBARS, 0144 VBAActivate, 0145 OPTIONS.CHART, 0148 VBA.INSERT.FILE, 014A VBA.PROCEDURE.DEFINITION, 0150 ROUTING.SLIP, 0152 ROUTE.DOCUMENT, 0153 MAIL.LOGON, 0156 INSERT.PICTURE, 0157 EDIT.TOOL, 0158 GALLERY.DOUGHNUT, 015E CHART.TREND, 0160 PIVOT.ITEM.PROPERTIES, 0162 WORKBOOK.INSERT, 0163 OPTIONS.TRANSITION, 0164 OPTIONS.GENERAL, 0172 FILTER.ADVANCED, 0175 MAIL.ADD.MAILER, 0176 MAIL.DELETE.MAILER, 0177 MAIL.REPLY, 0178 MAIL.REPLY.ALL, 0179 MAIL.FORWARD, 017A MAIL.NEXT.LETTER, 017B DATA.LABEL, 017C INSERT.TITLE, 017D FONT.PROPERTIES, 017E MACRO.OPTIONS, 017F WORKBOOK.HIDE, 0180 WORKBOOK.UNHIDE, 0181 WORKBOOK.DELETE, 0182 WORKBOOK.NAME, 0184 GALLERY.CUSTOM, 0186 ADD.CHART.AUTOFORMAT, 0187 DELETE.CHART.AUTOFORMAT, 0188 CHART.ADD.DATA, 0189 AUTO.OUTLINE, 018A TAB.ORDER, 018B SHOW.DIALOG, 018C SELECT.ALL, 018D UNGROUP.SHEETS, 018E SUBTOTAL.CREATE, 018F SUBTOTAL.REMOVE, 0190 RENAME.OBJECT, 019C WORKBOOK.SCROLL, 019D WORKBOOK.NEXT, 019E WORKBOOK.PREV, 019F WORKBOOK.TAB.SPLIT, 01A0 FULL.SCREEN, 01A1 WORKBOOK.PROTECT, 01A4 SCROLLBAR.PROPERTIES, 01A5 PIVOT.SHOW.PAGES, 01A6 TEXT.TO.COLUMNS, 01A7 FORMAT.CHARTTYPE, 01A8 LINK.FORMAT, 01A9 TRACER.DISPLAY, 01AE TRACER.NAVIGATE, 01AF TRACER.CLEAR, 01B0 TRACER.ERROR, 01B1 PIVOT.FIELD.GROUP, 01B2 PIVOT.FIELD.UNGROUP, 01B3 CHECKBOX.PROPERTIES, 01B4 LABEL.PROPERTIES, 01B5 LISTBOX.PROPERTIES, 01B6 EDITBOX.PROPERTIES, 01B7 PIVOT.REFRESH, 01B8 LINK.COMBO, 01B9 OPEN.TEXT, 01BA HIDE.DIALOG, 01BB SET.DIALOG.FOCUS, 01BC ENABLE.OBJECT, 01BD PUSHBUTTON.PROPERTIES, 01BE SET.DIALOG.DEFAULT, 01BF FILTER, 01C0 FILTER.SHOW.ALL, 01C1 CLEAR.OUTLINE, 01C2 FUNCTION.WIZARD, 01C3 ADD.LIST.ITEM, 01C4 SET.LIST.ITEM, 01C5 REMOVE.LIST.ITEM, 01C6 SELECT.LIST.ITEM, 01C7 SET.CONTROL.VALUE, 01C8 SAVE.COPY.AS, 01CA OPTIONS.LISTS.ADD, 01CB OPTIONS.LISTS.DELETE, 01CC SERIES.AXES, 01CD SERIES.X, 01CE SERIES.Y, 01CF ERRORBAR.X, 01D0 ERRORBAR.Y, 01D1 FORMAT.CHART, 01D2 SERIES.ORDER, 01D3 MAIL.LOGOFF, 01D4 CLEAR.ROUTING.SLIP, 01D5 APP.ACTIVATE.MICROSOFT, 01D6 MAIL.EDIT.MAILER, 01D7 ON.SHEET, 01D8 STANDARD.WIDTH, 01D9 SCENARIO.MERGE, 01DA SUMMARY.INFO, 01DB FIND.FILE, 01DC ACTIVE.CELL.FONT, 01DD ENABLE.TIPWIZARD, 01DE VBA.MAKE.ADDIN, 01E0 INSERTDATATABLE, 01E1 WORKGROUP.OPTIONS, 01E2 MAIL.SEND.MAILER, 01E5 AUTOCORRECT, 01E9 POST.DOCUMENT, 01EB PICKLIST, 01ED VIEW.SHOW, 01EE VIEW.DEFINE, 01EF VIEW.DELETE, 01FD SHEET.BACKGROUND, 01FE INSERT.MAP.OBJECT, 01FF OPTIONS.MENONO, 0205 MSOCHECKS, 0206 NORMAL, 0207 LAYOUT, 0208 RM.PRINT.AREA, 0209 CLEAR.PRINT.AREA, 020A ADD.PRINT.AREA, 020B MOVE.BRK, 0221 HIDECURR.NOTE, 0222 HIDEALL.NOTES, 0223 DELETE.NOTE, 0224 TRAVERSE.NOTES, 0225 ACTIVATE.NOTES, 026C PROTECT.REVISIONS, 026D UNPROTECT.REVISIONS, 0287 OPTIONS.ME, 028D WEB.PUBLISH, 029B NEWWEBQUERY, 02A1 PIVOT.TABLE.CHART, 02F1 OPTIONS.SAVE, 02F3 OPTIONS.SPELL, 0328 HIDEALL.INKANNOTS.
Example
The formula =A1*2 in cell B1:
09 00 cce: 9 bytes of tokens
44 00 00 00 C0 PtgRef (value class), row 0, column 0 with both relative flags (0xC000)
1E 02 00 PtgInt 2
05 PtgMul