
Eine Funktions-zu-Funktions-Übersicht von Jet Reports NL-, NF- und GL-Formeln zu einem Exsion-Abfragegitter in Business Central, plus was nicht übersetzt wird.
You have four hundred Jet workbooks, a renewal date, and one question nobody will answer directly: what happens to the formulas. Not the licence conversation, not the architecture conversation. The formulas. An NL("Rows") here, a column of NF there, a trial balance built out of GL functions one cell at a time. This post is the lookup table for that question.
The short version
Most Jet functions do not become another function. They become part of a query definition. An NL("Rows") that lists unique values over a table becomes a grid where you name the table, tick the companies, pick the fields and type the filters; the rows arrive because the query returned them, not because a formula spilled them. An NF lookup on a cached record key becomes a joined column. A GL balance in a presentation cell stays a formula, because Exsion has 16 live financial functions for exactly that job. The volume work collapses from hundreds of formulas into one query per logical block, and only the cells that really wanted to be formulas stay formulas.
The two mental models, side by side
Jet describes a report as instructions attached to cells. The NL function is documented as =NL(What, Table, Field, FilterField1, Filter1, ..., FilterField10, Filter10), and the What parameter alone has more than twenty documented values, among them "Rows", "Columns", "Table", "First", "Sum", "Filter", "Link" and "FlowField". That range is a genuine strength. It is also why a Jet report is hard to read and expensive to run: the logic is distributed across the sheet, one parameter list at a time.
Exsion describes a report as a query definition written into the workbook in plain text: the table, the companies, the fields, the filter on each field, the joins with their keys, and how each FlowField is calculated. One definition, readable by whoever opens the file, a point we made on its own terms in your Business Central Excel report should explain itself.
So you are not translating four hundred formulas. You are working out which logical blocks they were describing, and there are far fewer of those than you expect. A monthly pack with three thousand Jet functions in it is commonly three to six: actuals, budget, prior year, perhaps a dimension analysis and a cash set.
The translation table
The left column uses parameter names exactly as insightsoftware documents them. The right column uses Exsion features as they behave today.
[[TABLE_START]]
Common Jet pattern | What it does | What it becomes in Exsion
NL("Rows") over a table with filters | Returns the current row and all of its contents for each unique value. Used to spill accounts, customers or entries down a sheet | A query on that table: name the table, tick the companies, double-click the fields, put the filter on the field it belongs to. The rows arrive as a result set rather than a spilled formula, so adding a field is a click and not a re-layout
NL("First") lookup | Returns the first record or field that matches the filters. Jet's performance guidance notes that an NF() function does not have to make a request to the database, while an NL(First) function does | Usually a join. Add the second table, accept the key Exsion proposes from the table relations, take the field. Where you really do want one matching row, that is the inner top 1 join type, or outer top 1 if base rows with no match should survive
NL("Table") from the Table Builder | The Table Builder helps you insert an NL("Table") function in your workbook, creating an Excel table from one or more database tables which can be used as the basis for pivot tables and charts | The closest like-for-like: a download with output type set to table. Same intent, same destination, with the join and filter definition in the grid rather than inside a parameter list
NF field lookup on a cached key | =NF(Key, Field, FlowFilterField1, FlowFilter1, ...), returning a field from a record key generated by an earlier NL | A joined column, or a method on a joined field (sum, average, count) where the NF stood in for an aggregate. No cached key to manage, because the join returns the field with the row
GL balance with account, dates and dimensions | Documented parameters for NAV and Business Central include What (Balance, Budget, Credits, Debits), Account, StartDate, EndDate, View, Dim1 to Dim4, Business Unit, Budget, Company and Exclude Closed | For a presentation cell, Exsion's account balance function, one of 16 live financial functions under Formulas, ExsionBC standard. It takes company, G/L account and a date filter in Business Central syntax (01-01-26..31-03-26), accepts ranges (12100..12199) and totaling accounts, and has dimensions 1 and 2 built in; budget is a budget code argument rather than a separate What value. For volume, a query on G/L Entry (table 17) summed in a pivot
Dim3 and Dim4 filters | Third and fourth dimension filters, documented as filters of the analysis view | Build your own function on table 17: sum field 17 (Amount) where field 483 (Shortcut Dimension 3 Code) matches. No analysis view needed
Multi-company, one function per company | For NAV and Business Central you must specify the Company= filter field and company name as a filter in NL functions, or use the Company filter parameter in the GL function, with several functions added together to cover a group | Tick several companies in one grid. The result carries a company column, so a five-company trial balance is one query rather than five plus a sum. The account balance function also takes several companies at once, provided the accounts are numbered the same way in each
LINK= to a second table | Links a second table inside an NL function. NL("Link") exists to specify linked tables when more than 10 parameters are needed, and LINK= does not support the use of CalcFilters | A join line in the grid, shown in blue, with the key proposed from the table relations, including those a partner or customer extension added. Inner, outer, inner top 1, outer top 1 and not exists are all available, and there is no ten-parameter ceiling to work around
[[TABLE_END]]
A note on filters, which is the good news
Filter strings port almost unchanged, which is worth knowing before you budget the conversion. Both products inherit the same NAV-derived syntax. Jet's own filter syntax reference documents ranges as 1100..2100, open-ended ranges as ..2500, OR as two values separated by a vertical bar, not-equal as <>0, and combined conditions as >50&<100. Those are the strings Exsion passes through, and the ones Microsoft documents for Business Central filter fields. Date formats follow your regional settings, so check one date filter early rather than assuming.
The real difference is where the filter lives: in Jet a FilterField and Filter pair inside a parameter list, in Exsion the row for that field in the grid, where a reader can see it.
Worked example: a trial balance by dimension
Accounts down the rows, periods across the columns, split by a dimension. Almost every Jet library contains this report, so it is the fairest test of the mapping. Described in documented terms only, without inventing syntax.
The Jet pattern, in three steps
You list the accounts with an NL function over G/L Account (table 15), taking the account number as the Field, filtered to the range you report on, with "Rows" spilling them down the sheet. Jet's own performance guidance warns against exactly this on a large table: avoid using the NL() function for Rows or Columns to create a summary list against a large table, because every record has to be examined to find the unique values.
Each cell at the intersection of an account and a period is then a GL function with What set to Balance, an Account filter, and a StartDate and EndDate. Three hundred and sixty accounts across twelve periods is 4,320 of them. Each also carries a Dim1 filter, and the documentation describes those as filters of the analysis view named in the View parameter, so an analysis view generally has to exist and be current first. A split on the third dimension means Dim3 and a wider view.
What the Exsion version is instead
One query. Table 17 (G/L Entry), the fields Posting Date, G/L Account No., Amount and Global Dimension 1 Code, a posting date filter of 01-01-26..31-12-26, an account filter, and a join to G/L Account (table 15) on G/L Account No. to No. for the account name and classification. Output type set to pivot table, or a download with a pivot named after it so it refreshes with it. Accounts become rows, periods become columns, the dimension becomes a column field or a filter, and Excel does the arithmetic.
The differences are not about elegance. The query needs no analysis view, because it reads the ledger. The dimension is a column you can move rather than a parameter you have to refile. Adding a second company is ticking a box. And a 4,320-cell wait becomes one request; in a recent demo a report that ran about 20 minutes in Jet ran in about 20 seconds this way, and a plain pull of 700,000 rows from table 17 completed in under five seconds, without heavy FlowFields in the query. Why that gap exists is in why Jet Reports feels slow and how to fix it, and the join mechanics in how to join Business Central tables in Excel.
Two practical notes. To tie the figures to the chart of accounts exactly as Business Central shows them, a download on table 15 with the Balance, Balance at Date and Net Change FlowFields plus a date filter returns the same numbers, which is a useful check during a parallel close; keep extension FlowFields out of the large queries, because they can slow a download sharply. And you will need table and field numbers constantly: Ctrl+Alt+F1 in Business Central opens page inspection, which shows both, though some tables have no page.
What does not translate one to one
Four things, stated plainly, because a migration guide that only lists wins is not useful.
Per-cell formulas at scale do not survive, and should not. If your instinct is to rebuild the 4,320-cell trial balance as 4,320 Exsion account balance formulas, you can, and it will work, and it will stop working well. Performance falls off at around 40,000 to 50,000 individual Exsion formulas in one workbook, and a ten-company pack built cell by cell goes past that. Sets for volume, formulas for presentation. Where a block is large, move the balance into an expression column inside a download, which holds an Excel formula that extends and shrinks with the row count on refresh.
Scheduling is a different conversation, and this is the one place where a Jet user gives something up. Jet Hub schedules from the browser. ExsionTime refreshes Exsion reports on a schedule: you upload a report to Business Central and set up its tasks and schedule there, and a Windows service on your own server or PC then refreshes it and saves the result as Excel, PDF or CSV, or emails it. One report can have several tasks, each with its own filters and recipients, so each name on a Jet distribution list becomes a task. Output can go by email or to a folder, OneDrive or FTP, the report library lives in Business Central under its permission sets, and every run is logged.
What you lose is worth stating plainly. There is no hosted option, so somebody has to keep an always-on machine running with Excel and the add-in installed, and a server is a better home for that than a workstation. There is no separate browser portal: the library is reachable by Business Central users, and everyone else receives results rather than opening them. And the Business Central connection has to be renewed periodically, at an interval your own security policy sets, which is a thing to plan around if your close depends on these runs. Moving a Jet Hub distribution list across means rebuilding it as ExsionTime tasks and converting the reports themselves. It works, but it is a migration project rather than a switch you flip, so put it in week one of a trial rather than week four.
Design Mode workbooks have no counterpart, and that is the point. Jet separates Design Mode from Report Mode, and the design version carries the logic. There is no equivalent split in Exsion, because the definition is in the workbook that circulates. That is a gain for the colleague who wants to change a date range, and a real change of habit for a team that has treated the design file as a controlled master. Decide deliberately who gets a licence, and therefore who can change a query.
Some designs will not come across whole. Exsion uses AI to work out how a Jet report is rebuilt as a query grid, reading the tables and fields the workbook touches, which gives you the data side. Layout, conditional formatting and inventive uses of NP and NL("Filter") are a rebuild rather than a conversion. Assume the numbers port and the presentation gets redone, and use the moment to retire the reports nobody has opened in a year.
How to sequence the conversion
Take the reports in the order they hurt, not the order they sit in the folder. The slowest first, because it proves or disproves the exercise within an hour. Then the report only one person can change. Then the multi-company pack, because the Company= per-function pattern is where the largest simplification usually is.
Run one report in parallel for a close, tied to the chart of accounts using the table 15 route above, so you have an independent check rather than two versions of the same assumption. Work through the rest during the trial; most teams do not convert everything at once, and there is no reason to. If group reporting is also on the table, that is a different product and a different discussion, starting with how to consolidate multiple companies in Business Central.
One piece of housekeeping: if the name on your Business Central extension changed this year, that is the 2026 rebrand rather than anything to do with your reports, and the dates and version numbers are in Jet Reports renamed: what changes for Business Central. The wider comparison, including where staying on Jet is the right call, is in our Jet Reports alternative for Business Central guide.
Start with one report
Pick one Jet workbook, the slowest or the most argued-over, and have it rebuilt. Exsion Reporting installs from AppSource through Extension Management, then the Excel add-in, a connection and a sign-in, about five minutes; the 30-day trial licence arrives by email within about a minute and you can request it from inside Excel without talking to us first. We rebuild one of your Jet reports for you, free of charge, so you can see how it maps. The rest usually goes quicker than teams expect, and many convert them themselves.
Then look at the grid next to the old formula bar and decide whether the translation is worth making. That is a better basis for the decision than anything on this page.
Frequently asked questions
[[FAQ_START]]
What is the NL function in Jet Reports? | NL is Jet Reports' main data function, documented as =NL(What, Table, Field, FilterField1, Filter1, ..., FilterField10, Filter10). The What parameter decides the behaviour and has more than twenty documented values, including "Rows" and "Columns" (the current row or column repeated for each unique value), "Table" (an Excel table object), "First" and "Last" (a single matching record or field), "Sum", "Count" and "CountUnique".
What is the Exsion equivalent of NL("Rows")? | A query definition rather than another formula. In Exsion you name the Business Central table, tick the companies, pick the fields and set a filter on each field, and the rows come back as a result set. The definition is written into the workbook in readable text, so anyone who opens the file can see which table, fields and filters produced the rows, and a licensed colleague can change them.
How does Exsion handle the Jet GL function? | Two ways, depending on the job. For a single balance in a presentation cell, Exsion has 16 live financial functions including account balance, which takes company, G/L account and a date filter in Business Central syntax, accepts account ranges and totaling accounts, and has dimensions 1 and 2 built in. For a full statement, one query on G/L Entry (table 17) replaces the cell-by-cell GL functions and a pivot does the arithmetic.
Do my Jet filter strings still work? | Largely yes, and this is the easiest part of a conversion. Jet documents ranges as 1100..2100, open-ended ranges as ..2500, OR as two values separated by a vertical bar, not-equal as a less-than and greater-than pair before a zero, and combined conditions with an ampersand. Both products inherit the same NAV-derived syntax, so those strings mean the same thing in an Exsion filter. Check one date filter early, because date formats follow your regional settings.
How do multi-company Jet reports convert? | This is usually the biggest simplification. Jet's documentation states that for NAV and Business Central you must specify the Company= filter field in NL functions or the Company parameter in GL, with one function per company and several functions added together to cover a group. In Exsion you tick several companies in one query and the result carries a company column, so a five-company trial balance is one query.
What does not convert from a Jet Reports workbook? | The data side converts; the presentation side is usually rebuilt. Layout, conditional formatting and inventive uses of Jet's helper functions are a rebuild rather than a translation. Scheduling and distribution need their own comparison. And a report built as thousands of individual formulas should be redesigned as a query, because live formula performance falls off at around 40,000 to 50,000 formulas in one workbook.
[[FAQ_END]]
By Thomas Werkhoven, CEO of Exsion365, registered accountant, previously group controller and CFO.
Leseempfehlungen

Erstellung von Excel-nativen Berichten für Microsoft Dynamics 365 Business Central: Ein Leitfaden für CFOs und Controller

Hauptbuchprüfungen in Excel ganz ohne Aufwand

Datenfehler direkt an der Quelle in Business Central verhindern

Wie Sie in Excel für BC in 6 Schritten einen Drilldown auf Transaktionen durchführen (2026)

Wie Sie in 7 Schritten BC-Management-Berichte in Excel erstellen (2026)