Information functions
INFO
Matches all 21 recorded answers
Recorded: 21 workbook cells. How we measure this · See the Rust code
Local names in 40 languages
| Language | Name in Excel |
|---|---|
| Arabic | INFO |
| Bulgarian | INFO |
| Czech | INFO |
| Danish | INFO |
| German | INFO |
| Greek | INFO |
| English (Australia) | INFO |
| English (United Kingdom) | INFO |
| English (United States) | INFO |
| Spanish | INFORMACIÓN |
| Estonian | INFO |
| Finnish | KUVAUS |
| French | INFOS |
| Hebrew | INFO |
| Croatian | INFO |
| Hungarian | INFÓ |
| Indonesian | INFO |
| Italian | INFO |
| Japanese | INFO |
| Korean | INFO |
| Lithuanian | INFO |
| Latvian | INFO |
| Norwegian | INFO |
| Dutch | INFO |
| Polish | INFO |
| Portuguese (Brazil) | INFORMAÇÃO |
| Portuguese (Portugal) | INFORMAÇÕES |
| Romanian | INFO |
| Russian | ИНФОРМ |
| Slovak | INFO |
| Slovenian | INFO |
| Serbian (Latin) | INFO |
| Swedish | INFO |
| Thai | INFO |
| Turkish | BİLGİ |
| Ukrainian | INFO |
| Vietnamese | INFO |
| Chinese (Simplified) | INFO |
| Chinese (Hong Kong) | INFO |
| Chinese (Traditional) | INFO |
Names from Microsoft's support site.
What it does
INFO(type_text)
INFO(type_num) returns one fact about the running Excel environment, selected by name.
Its subject is not a value, not a cell and not a workbook — it is the application and the
machine it is running on. That makes it the most host-dependent function in the worksheet
surface, and it is declared accordingly: HostInteractionClass::WorkbookState,
FecDependencyProfile::Composite, VolatilityClass::VolatileContextual,
ThreadSafetyClass::HostSerialized.
Microsoft's published type_text table, verbatim:
Type_text | Returns |
|---|---|
"directory" | Path of the current directory or folder from Excel startup option |
"numfile" | Number of worksheets in the open workbooks |
"origin" | Absolute cell reference of top-left visible cell (Lotus 1-2-3 compatibility) |
"osversion" | Current operating system version as text |
"recalc" | Current recalculation mode: "Automatic" or "Manual" |
"release" | Version of Microsoft Excel as text |
"system" | Operating environment name: "mac" or "pcdos" |
Two further documented facts sit alongside that table and are as important as the table itself:
- Three names were removed.
"memavail","memused"and"totmem"are no longer supported and return#N/A. They reported memory figures in earlier Excel versions. A workbook written before the removal still parses and now silently returns errors — one of the cleanest examples in Excel of a function whose domain shrank across versions. INFOis unavailable in Excel Web App. The function is a platform-availability boundary, not merely a platform-varying answer.
Arguments
type_num — required, exactly one. The published signature is INFO(type_num), and the name is
a historical misnomer: the argument is text, not a number. Microsoft's own table column is
headed Type_text.
It is coerced to text and matched case-insensitively after trimming, so "RECALC" and
" recalc " are the same request. A name outside the recognised set is a failure, not a null
result.
There is no second argument. Unlike CELL, INFO has no reference position at all — there is
nothing to point it at.
Try it
Quirks
Result and edge cases
The return kind depends on the name: Text for "directory", "origin", "osversion",
"recalc", "release" and "system"; Number for "numfile".
"origin"is reference-style dependent. Its documented result differs between A1 and R1C1 reference styles, and it is scoped to the top-left visible cell — so scrolling the window changes it. This is the purest volatility on the page: no data changed, no formula changed, the answer moved because the user scrolled."numfile"counts worksheets across all open workbooks, not sheets in the current one. Opening an unrelated file changes it."recalc"reports application state that the user can toggle from the ribbon."system"returns"mac"or"pcdos"— the second string is a fossil, and any workbook branching on it is branching on 1980s vocabulary.- The three withdrawn names return
#N/A. - Cross-platform and cross-version divergence is the normal case, not the exception. Every
answer this function gives is a property of the environment, so two machines are expected to
disagree. A test suite for
INFOcannot have fixed expected values; it can only have invariants (e.g."recalc"is one of two strings) and per-environment recordings. - Security posture.
"directory","osversion"and"release"expose local environment detail into cell values, which then travel with the file. That is worth knowing before puttingINFOinto a shared workbook.
Errors
Microsoft's page documents #N/A for the three withdrawn names. The Handbook has read the
type_text table and the removal note and does not have a further documented error table to
reproduce.
- an unrecognised
type_numname —#VALUE! - an arity failure (zero arguments, or two) —
#VALUE! - no host available — the call is refused rather than answered
- a host that recognises the name but cannot answer it —
#VALUE!
How to implement
Notes for implementers
INFOmust be a declared host query with an explicit no-host failure. There is no correct local answer. Synthesising"release"or"osversion"from the runtime the engine happens to be running on produces a plausible lie.- Keep the withdrawn names in the parser, routed to the host. Short-circuiting them to
#N/Ain the function layer hard-codes a version fact into a version-independent layer, and it is the host that knows whether it still supports them. - The argument is text despite being called
type_num. Do not add a numeric path. - Any recorded result must carry platform, build and locale.
INFO's outputs are the very axes the Handbook's claim rules require claims to be scoped by (claim language and honesty), so an unscopedINFOexpectation is meaningless by construction. - Do not cache.
"recalc","numfile"and"origin"can all change without any workbook edit.
Rust code
Show the CalcFunc source of this function
Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.
INFO · 1 lines · calc-func/src/catalogue/host_facts.rs on GitHub2 info_fn "INFO" (1, 1) [V "type_text"] |s, a, sv| { info(s, a, sv) }
Kernels shared with other functions
first_cellcatalogue/host_factscell_valuecatalogue/host_factscolumn_letterscatalogue/host_factsfactscatalogue/host_factsqualified_sheetcatalogue/host_factscellcatalogue/host_factss_numbercatalogue/host_factsinfocatalogue/host_factssheetcatalogue/host_factssectionsformat/cell_infotokensformat/cell_infois_date_timeformat/cell_infodate_time_classformat/cell_infoplacesformat/cell_infonumber_classformat/cell_infoclassifyformat/cell_infosplit_prefixported/a1_refsparse_cell_tokenported/a1_refsparse_column_tokenported/a1_refsparse_row_tokenported/a1_refsparse_a1_referenceported/a1_refsaddress_name_characterported/addressaddress_name_is_referenceported/addressquote_sheet_text_if_neededported/address
Argument and result plumbing
failcatalogue/kitgridcatalogue/kittext_argcatalogue/kittext_valuecatalogue/kit
No implementation has been published with a Handbook test suite for this function.
Version differences
No comparison between specific Excel builds is recorded here yet. This does not establish that all builds behave alike.
Alternatives
Relationships
CELLis the sibling one level down: same category, same host dependence, same cannot-evaluate-without-Excel property, but its subject is a cell rather than the application. Between them they are the two functions in this assignment for which the Handbook can hold no computed answers at all.SHEETS()with no argument counts sheets in the current workbook;INFO("numfile")counts them across every open workbook. Confusing the two is easy and the difference only shows up when a second file is open.CELL("filename", …)is the usual route to the workbook path, and is generally preferred overINFO("directory")because it names the file rather than the startup folder.NOW()andTODAY()are the other functions whose answers come from the environment rather than from arguments, but they are cleanly volatile in a way the dependency graph understands;INFO's volatility is contextual and messier.ISFORMULA,SHEET,SHEETS,FORMULATEXTare the other host-backed members of the Information category, all of which at least take a reference.
Named variants
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents