analystUpdated 2026-05-31

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 live CUBE formulas, drill through to detail rows, and switch personas — all 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 — the same credentials you use for the web app.

Administrators download the manifest from Settings → Endpoints in the web app, where there are two buttons:

Prefer the deployed manifest unless you have a specific reason to retarget it.

The add-in supports Excel 2016 and later. On older builds it uses a simplified manifest and a local-storage fallback for session state.

Report Builder

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. Drag objects into the Rows, Columns, Values, and Filters zones, or start from a layout in the template picker.
  3. Click Run. 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.

Filtering inside Report Builder

An object you drag into the Filters zone starts as a plain "equals" match. Click the filter chip to open the small editor and choose an Operator that fits what you are trying to do:

The small label under the value box tells you what kind of value the column expects (a date, a number, or text), so you can pick a sensible operator. If you change your mind, press Cancel and the filter snaps back to exactly how it was when you opened the editor. If the model rejects a filter — for example an operator that does not fit the column — the add-in shows the reason in plain words instead of failing silently.

Using a named list in a zone

A saved named list (named set) can be used two ways, and the difference matters:

Prefer Insert as formulas whenever the list is large or changes over time:

For a fixed, short list that never changes, a plain drop is fine. See Named-list MDX composition for how the formulas are built.

KPIs tab

The KPIs tab is the middle tab in the task pane. It shows all KPIs defined in the active model, evaluated live with their current value, status (green/amber/red), and trend direction (up/flat/down).

What you see

Inserting KPIs to the worksheet

Every KPI card has two buttons:

The scorecard button in the header inserts all KPIs as a live formula-based scorecard table with traffic-light status icons and trend arrows.

When data refreshes

KPI values refresh each time you switch to the KPIs tab or press the refresh button. Behind the scenes, the add-in calls the model’s batch evaluation endpoint and caches the results for the session.

Ask Tessallite

The Ask Tessallite panel is the conversational agent inside Excel. Type a question in plain language; the answer streams back as it is generated, with the supporting query and a judge verdict on answer quality. Use the insert action to drop the answer text, the result table, or a chart onto the sheet.

The agent honours the model's glossary, row security, and the persona you have selected, so it will not surface data you are not permitted to see.

CUBE formula wizard

The CUBE formula wizard generates live-connection cube formulas (the CUBEVALUE / CUBEMEMBER family) for a measure sliced by chosen dimension members. Live formulas recalculate on refresh, so a workbook built this way stays current against the deployed model. Pick the measure and members in the wizard and it writes the formulas into the selected cells.

Drill-through

Select a result cell and open the Drill-through panel to see the contributing fact rows. The drill-path picker lets you choose which detail columns and joined dimensions to include, then writes the detail rows to the sheet. Drill-through respects row security and persona scope — you only ever see rows you are authorised to see.

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. Queries run through the persona-scoped execution path, so an excluded measure or dimension is hidden or returns a clear authorisation error rather than leaking data.

Trace, diagnostics, and glossary

Custom Excel Functions (TESS namespace)

The add-in registers four custom worksheet functions under the TESS namespace. These functions live in a separate runtime from the task pane and share authentication through OfficeRuntime.storage, so the task pane must be signed in and a model selected before custom functions will work.

TESS.LISTBYID

=TESS.LISTBYID("named_set_id")

Returns the members of a named set as a spilled array. On Excel 365 and later (builds that support dynamic arrays) the result spills into adjacent cells automatically — each member fills its own row below the formula cell. On older Excel versions (Excel 2016, Excel 2019, or Office 365 builds before the dynamic-array update), spilling is not supported; the formula cell shows only the first member of the set. If you need all members on an older version, use the Insert as CUBESET action from the Named Sets panel instead, which writes individual CUBERANKEDMEMBER formulas into separate cells.

The function streams — Excel shows a spinner while the list loads, and the result appears once complete.

TESS.KPIVALUE

=TESS.KPIVALUE("kpi_id")

Returns the current evaluated value of a KPI. The value is the live result from the KPI's underlying measure expression.

TESS.KPIGOAL

=TESS.KPIGOAL("kpi_id")

Returns the goal (target) value of a KPI. If no goal is defined, the cell shows #N/A.

TESS.KPISTATUS

=TESS.KPISTATUS("kpi_id")

Returns the status code of a KPI: 1 = Good, 0 = Warning, -1 = Poor. Use conditional formatting with the traffic-light icon set to visualise the result.

Older Excel versions

Custom functions require Excel 2016 or later with the custom functions runtime. The three KPI functions (TESS.KPIVALUE, TESS.KPIGOAL, TESS.KPISTATUS) return scalar values and work identically on all supported versions. TESS.LISTBYID returns a matrix — on Excel versions without dynamic array support, only the first member appears in the formula cell. To see all members on older Excel, use the Insert as CUBESET action from the Named Sets panel, which writes CUBERANKEDMEMBER formulas into individual cells.

Caching and refresh

All custom functions cache results for 60 seconds. To force a fresh evaluation, wait for the cache to expire or re-enter the formula. TESS.LISTBYID is a streaming function and can be cancelled by Excel when the cell is cleared.

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: Session expired…Your JWT has expired. Re-open the task pane and sign in again.
#N/AThe KPI property (goal, status) is not defined.

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:// (port 3443 locally) 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 changeRe-run the report; the add-in always queries the currently deployed model

Related