analystUpdated 2026-09-11

Tessallite Excel Add-in

What This Covers

The Tessallite Excel add-in brings the semantic layer directly into Excel as a task pane. You build reports by dragging governed measures and dimensions, ask the conversational agent questions, insert values, charts, and PivotTables, drill through to detail rows, and switch personas without leaving the workbook. Every number comes from the same deployed model that powers the web app, so the figures match exactly.

When To Use The Add-in

Excel can also connect to Tessallite as a native PivotTable over XMLA (see Excel PivotTable Features). Use whichever fits the task:

Both read the same governed models and honour the same row security and persona rules.

Install The Add-in

The add-in is an Office.js task pane served over HTTPS. Office refuses to load task panes over plain HTTP, so the add-in must be reached over https:// with a certificate Excel trusts.

  1. Obtain the add-in manifest (manifest.xml) from your administrator. It points at your Tessallite deployment's add-in host (port 3443 in local installs).
  2. In Excel, go to Insert > Get Add-ins > My Add-ins > Upload My Add-in, and select the manifest.xml file. On Excel for the web, use Insert > Office Add-ins > Upload My Add-in.
  3. Open the add-in from the Home tab. The Tessallite task pane appears on the right.
  4. Sign in with your tenant slug, email, and password. These are the same credentials you use for the web app.

Install From A Trusted Shared-folder Catalogue

For local development or an internal pilot, your administrator may give you a shared-folder catalogue URL instead of asking you to upload a manifest file manually. The catalogue folder contains the add-in manifest. Excel must trust that folder before it can show the add-in.

  1. Copy the shared-folder URL from your administrator.
  2. In Excel, open File > Options > Trust Center.
  3. Click Trust Center Settings.
  4. Open Trusted Add-in Catalogs.
  5. Paste the shared-folder URL into Catalog URL.
  6. Click Add catalog.
  7. Tick Show in Menu for the catalogue.
  8. Click OK, then close and restart Excel.
  9. Open the blue Add-ins button, open Shared Folder, refresh, and add the Tessallite add-in.

Report Builder

Open Analyse. Click the project/model title in the header to choose the project, model and persona. The gear menu holds saved profiles, Diagnostics and sign-out; the footer shows connection status and persona. Click the brand mark for plugin information.

The four compact field zones sit above an icon toolbar. Hover or focus an icon for its action label. Search, Certified and sort controls sit above the collapsible field sections.

Report Builder assembles a query from governed objects and writes the result to the sheet.

  1. Pick a model. The measure, dimension, and hierarchy libraries populate with the objects you are allowed to see.
  2. Use the field-row action icons to add objects to Rows, Columns, Values, and Filters, or start from a layout in the template picker.
  3. Click the Table toolbar icon. The result range is written to the active sheet with friendly display names as headers.

Because the add-in queries the deployed model, aggregate routing, calculated measures, and time variants all apply automatically. Member-list requests use that same deployed definition and never fall back to draft metadata. If discovery fails because the deployed definition is unavailable, the failure is retained in query history as snapshot_unavailable so an operator can distinguish deployment repair from an invalid dimension request.

Connectionless Values And Local PivotTables

The normal add-in insert path does not require a workbook-level OLAP connection named Tessallite.

If a workbook is opened while a different model is selected in the task pane, the TESSALLITE.* functions fail with a clear model-mismatch message instead of returning a number from the wrong model. Select the model named in the formula and refresh values.

When you change projects or models quickly, the latest selection wins. An older request that finishes later cannot replace the visible model, formula context, cache, or workbook recalculation target.

Hidden PivotTable backing sheets are still workbook data. Anyone with workbook edit access can unhide them, so do not share a workbook with people who should not see the data behind the pivot.

Filtering Inside Report Builder

An object in the Filters zone starts as a plain equals match. Click the filter chip to choose an operator such as Equals, Contains, Greater Than, Less Than, or Date Range. If the model rejects a filter, the add-in shows the reason in plain words.

Dimension filters select individual source rows before the result is grouped. Measure filters, such as Total Fees > 10000, test the grouped measure total after aggregation. Report Builder uses the aggregation in the deployed model and rejects measure types that cannot be filtered safely; it does not turn them into row filters.

Using A Named List In A Zone

A saved named list can be dragged into a zone as a snapshot, or inserted as formulas when you need a live CUBESET. Prefer formulas for large or dynamic lists. See Named-list MDX composition for how the formulas are built.

KPIs Tab

The KPIs tab shows all KPIs defined in the active model, evaluated live with their current value, status, and trend direction. Single-cell KPI value and status inserts in Report Builder use TESSALLITE.KPI by default. Multi-cell KPI layouts and named-list formula inserts may still use the advanced CUBE path when they deliberately need workbook OLAP formulas.

You Always See The Published Model

The add-in shows you the published version of the model — the version someone deployed on purpose. It never shows work that is still in progress.

This matters most when a modeller is halfway through changing something. Imagine a colleague is rewriting the "Top 10 Customers" list and has it down to three names while they experiment. Nothing in your workbook changes. You keep seeing the ten names from the published version, because a half-finished edit is not a decision anyone has made yet. When they finish and deploy, your next refresh picks up the new list.

The same rule covers KPI names, descriptions, and definitions, and it applies everywhere the add-in reads: the KPIs tab, the named lists in the Report Builder, and the TESSALLITE.* formulas in your cells. It is the same rule Power BI, Tableau, and any SQL tool already follow, which is why the same number matches across all of them.

If you are the modeller, your own drafts will not appear in Excel either. That is deliberate — the add-in is where people consume the model, not where you build it. To check work in progress, use the model builder in the Tessallite web app, which shows live drafts. When the change is ready for everyone, Save and then Deploy the model; it appears in Excel on the next refresh.

There is a practical reason beyond tidiness. A formula for something unpublished cannot return a number anyway: the gateway that resolves it also serves the published version only, so a draft KPI offered in the pane would insert a formula that shows #N/A forever.

If you see "the published version of this model is unavailable"

This message means the add-in could not read the model's published version — not that your connection is down. The add-in stops rather than showing you unpublished figures, because a number nobody approved is worse than no number. Ask a modeller to deploy the model again in the web app, then refresh the pane.

Ask Tessallite

The Ask panel is the conversational agent inside Excel. The agent honours the model's glossary, row security, and the persona you have selected.

If an answer contains measures but no dimension, chart insertion adds one category called Result and keeps every measure as a numeric series. A single-value chart therefore keeps its value, and a two-measure chart keeps both measures.

Click Stop at any point to cancel the current stream, including after text has started arriving. Late events from that stopped request cannot replace the partial response or alter a newer request. A saved conversation that contains a visual keeps its table, chart, PivotTable, and pop-out actions after the conversation is reopened.

The answer window

The task pane is a narrow strip down the side of the workbook, and Excel gives add-ins no way to widen it. A wide table or a dense chart is therefore always cramped in the pane, no matter how the pane itself is arranged. The pop-out control on an answer, and the maximise control on its Visual panel, both open the answer in a separate resizable window that can fill the screen.

The window shows whichever the answer is: a chart if the answer drew one, the result table otherwise. It carries three controls in its top-right corner.

Save offers the formats that suit what is on screen. A table can be saved as Excel, CSV, or TSV; a chart as SVG or PNG. Every table export carries its column headers, so a saved file is readable on its own rather than a rectangle of anonymous numbers.

Saving a table as Excel does not download a file. It opens the result as a new workbook in Excel, where you keep it with Excel's own Save and put it wherever your own filing conventions require. That is usually what you want: the result arrives as a live workbook you can immediately extend with formulas or a PivotTable, and nothing lands in a downloads folder to be tidied up later. On an Excel version too old to open a workbook this way, the same content is downloaded as an .xlsx file instead.

Copy puts the answer on the clipboard in the form the destination expects. A table is copied both as a grid and as plain text, so pasting into a sheet gives you real cells with a header row, while pasting into an email or a chat message gives readable text. A chart is copied as an image, ready to paste into a document or a slide.

Close returns you to the task pane. The conversation is untouched; the window is only a larger view of an answer that is still there.

A practical note on why the export controls live in this window rather than in the task pane: browsers restrict file downloads and image clipboard writes inside an embedded pane, and Office task panes are embedded. The separate window is a full browser window, where both work reliably.

CUBE Formula Wizard

The CUBE formula wizard is the advanced OLAP path. It generates live-connection cube formulas, such as CUBEVALUE and CUBEMEMBER, for a measure sliced by chosen dimension members. These formulas require the workbook to have an Analysis Services connection named Tessallite. Use this mode when you deliberately want Excel's native XMLA engine. For normal add-in inserts, use the connectionless value and local PivotTable paths.

Drill-through

Select a result cell and open the Drill-through panel to see the contributing fact rows. Drill-through respects row security and persona scope.

Persona Switcher

The persona switcher sets the active persona for everything the add-in does. Selecting a persona applies that audience's allowed measures and dimensions, default filters, and row-level security.

Custom Excel Functions

The add-in registers connectionless worksheet functions under the single TESSALLITE namespace. These functions use the add-in sign-in session, so the task pane must be signed in and a model selected before custom functions will work. Existing workbooks that use the retired short namespace must be updated to TESSALLITE.*; the add-in does not publish a second namespace.

TESSALLITE.VALUE

=TESSALLITE.VALUE("model_slug", "measure_name")
=TESSALLITE.VALUE("model_slug", "measure_name", "region_code", "EU")

Returns a governed measure value, optionally filtered by dimension member values. Calls are batched for recalculation, so a sheet with many value cells does not send one request per cell.

TESSALLITE.KPI

=TESSALLITE.KPI("model_slug", "kpi_name", "value")
=TESSALLITE.KPI("model_slug", "kpi_name", "goal")
=TESSALLITE.KPI("model_slug", "kpi_name", "status")

Returns one KPI property. Status returns 1, 0, or -1, so Excel icon-set formatting can use it.

TESSALLITE.MEMBERVALUE

=TESSALLITE.MEMBERVALUE("model_slug", "measure_name", "dimension_name", "member_value")

Returns one measure for one dimension member.

TESSALLITE.LISTBYID and KPI ID functions

The published ID-based functions use the same namespace: TESSALLITE.LISTBYID, TESSALLITE.KPIVALUE, TESSALLITE.KPIGOAL, and TESSALLITE.KPISTATUS. LISTBYID returns a named set's members as a spilled array where the Excel version supports dynamic arrays.

Retired namespace

The historical short namespace is not a shipped namespace. Replace those formulas with the equivalent TESSALLITE.* function before opening the workbook in a supported Excel host.

Caching And Refresh

Custom functions cache results for 60 seconds. To force a fresh evaluation, open the Report Builder toolbar's Refresh menu and choose Refresh. This clears all caches and triggers a full workbook recalculation so every TESSALLITE.* formula fetches a fresh value immediately. Switching personas, switching connection profiles, and signing out also clear the caches automatically.

Refresh Sheet Data

The Refresh sheet data item in the Report Builder's Refresh menu re-runs every Tessallite-inserted table on the active worksheet. It reads each table's stored query and re-executes it against the current session and persona. Tables that belong to a different project or model than the one currently selected are skipped with a reason. Tables whose column structure has changed since insertion are also skipped to prevent data corruption.

When a table grows or shrinks, its attribution line (the small grey "Source: Tessallite ..." row underneath it) moves with it and picks up the new refresh time.

If a table needs to grow but the cells directly beneath it are not empty — your own note, a subtotal, or a second block of data — Tessallite does not refresh that table. It leaves everything exactly as it was and tells you which table was affected, so nothing of yours is overwritten. Clear or move those cells and refresh again.

Show details. If any table was skipped, or refreshed with a warning, a Show details link appears under the buttons. Open it to see exactly which table was affected and why. Some reasons are temporary — for example, if something else in Excel was still working on the same cells, or if Excel would not hand back a table's saved query details that time, the table is left untouched and simply clicking Refresh sheet data again will usually pick it up. A temporary problem is always named in the list; a table is never dropped from the count without a reason. A table listed under Skipped was not changed. A table listed under Refreshed with warnings needs a look: it may have its new numbers with something else left incomplete, or — rarely, if Excel reported an error part-way through — a mix of old and new rows. The reason next to each table says which.

Insert Mode (Live vs Static)

The Live checkbox (checked for live formulas, unchecked for static values) in the Report Builder toolbar controls how single-value inserts behave:

This setting applies only to the default single-value insert actions (the sigma icon on measures, and the value/status KPI inserts). Table inserts, chart inserts, CUBE formula inserts, and scorecard inserts are not affected by the toggle.

Error Messages

Cell textMeaning
#ERROR: Not signed in...Open the Tessallite task pane and sign in first.
#ERROR: No model selected...Select a project and model in the task pane.
#ERROR: Formula model does not match...The formula names one model while the task pane has another model selected. Select the formula's model and refresh.
#ERROR: Session expired...Your JWT has expired. Re-open the task pane and sign in again.
#N/AThe measure or KPI property is not available for that cell.

Troubleshooting

SymptomCauseFix
Add-in icons appear black or the pane is blankLoaded over plain HTTP, or the certificate is not trustedReach the add-in over https:// and trust the development certificate, then reload.
"Sign in failed"Wrong tenant slug, or the deployment URL in the manifest is unreachableConfirm the tenant slug and that the add-in host URL in the manifest resolves from your machine.
A measure is missing from the libraryYour persona or role excludes itSwitch to a persona that includes the measure, or ask your modeller to grant access.
Numbers differ from the web appAn older sheet result predates a model change, or a formula was calculated while another model was selectedRe-run the report, or select the model named in the formula and click Refresh values.
#NAME? for every TESSALLITE formulaThe custom functions runtime did not register this Excel session (common on Office 2019/2021 perpetual)Re-insert the add-in from Insert > My Add-ins > Shared Folder. A plain Excel restart is not always enough.
The pane works but every formula shows #VALUE! after a few seconds, and the server is on localhostThe custom functions sandbox is blocked from local network access, or it does not trust the server certificateAsk your administrator to apply the one-time machine setup described in the plugin README (loopback exemption plus installing the certificate authority into the machine store).
A cell sits at #GETTING_DATA for 30 seconds and then shows "Request timed out"The request never reached the server. On a localhost deployment this is the custom functions sandbox blocking local network accessApply the one-time machine setup described in the plugin README (loopback exemption plus the certificate authority in the machine store), or point the connection profile at the server's real host name instead of localhost. Type =TESSALLITE.DIAG() to confirm: FETCH=FAIL means the server was never reached.
The add-in half-works: formulas respond but the ribbon button is gone, or the reverseThe Office add-in cache has become inconsistent after repeated add and remove cyclesClose Excel, delete the contents of %LOCALAPPDATA%\Microsoft\Office\16.0\Wef, reopen Excel, and re-insert the add-in. Sign in again afterwards — clearing the cache also clears the saved session.
A KPI or named list you just created is not in the paneIt has not been deployed yet. The add-in shows the published model onlySave and Deploy the model in the web app, then refresh the pane. To check the draft itself, use the model builder.
A cell shows "Published model unavailable"The model's published version could not be readAsk a modeller to deploy the model again, then refresh. The add-in stops here on purpose rather than showing unpublished figures.
A cell shows "Row-level security: your permissions grant you access to no rows for this query"Row security applies to you and grants you no rows for this slice. This is a governed answer, not a faultAsk your administrator for the access you need. The add-in refuses to write the 0 a count-shaped measure returns under a denial, because a zero in a spreadsheet reads as a fact about the business.
A cell shows "Unknown column: '<name>' in model '<model>'"The model does not publish a measure by that name — most often a spelling difference, or a measure that exists in the draft but has not been deployedCheck the name in the pane's measure library, or ask a modeller to deploy the measure. Measure names are the technical names shown in the library, not the display names.
A cell shows "Period-aware time variant requires a time dimension in the query grain"The formula asks for a year-to-date, prior-year or growth measure with no date context to compute againstAdd a date filter to the formula, or use the report builder, which places the measure on a time axis.

Tip: type =TESSALLITE.DIAG() in any cell to see the add-in's own health report — whether storage works, which model is selected, which server it talks to, and whether the server answers. Include this text when you contact support.

Related