Overview
Use the BC.QUERYTABLE function to return data directly from queryable Business Central tables.
You can use the Query Builder functionality to construct formulas visually.
Syntax
=BC.QUERYTABLE(
ConnectionName,
Table,
Filter,
Select,
IncludeHeader,
Settings,
TableOutputCell
)
Arguments
|
Argument |
Required / Optional |
Description |
|---|---|---|
|
|
Optional |
Provide one of the following values:
OR Omit the argument to return results for all compatible connections with default aggregation settings. |
|
|
Required |
Table name. Use the BC.EXPANDTABLERANGE function to retrieve a list of tables available for querying. |
|
|
Optional |
Filter expression. Use the BC.QUERYTABLEFILTER function to create ready-to-use filters. Filtering on fields from related tables (see Filtering based on the |
|
|
Optional |
Comma-separated list of table columns to be included in the resulting dataset. If omitted, all table columns will be returned. To include a field from a related table, use the
Multiple joined fields can be included in the same When more than one field uniquely identifies each record in the related tables, provide additional field names using the When the related table contains multiple matching records (a one-to-many relationship), all matching values are returned in a single cell. The number of rows in the result always matches the main table - rows are not duplicated. Only one level of join is supported. You can join from a main table to a related table, but you cannot chain joins further (e.g., The join functionality requires Velixo Extension for Business Central 2026.5 or later. Formulas that do not use joins continue to work with older extension versions. See the dedicated article for update instructions. |
|
|
Optional |
Indicates whether column headers are included in the dataset. Accepted values: |
|
|
Optional |
Two-column array, containing one or more of the following keys:
You can use the VX.SETTINGS function to construct the array for the argument. Using the |
|
|
Optional |
Specify the target cell address to return results in an Excel table. See the Table Mirroring article for details. |
Examples
Select fields from a table, output in Excel table
=BC.QUERYTABLE(,"Contact",,"First Name, Surname, Job Title, Company Name, Address, City",,,I6)
Description: Returns the contents of the table Contact found in the default connection. Columns First Name, Surname, Job Title, Company Name, Address, and City are selected. The results are output in an Excel table in cell I6.
Select fields, including related fields
=BC.QUERYTABLE("bc","Sales Line",,"Document No.,Bill-to Customer No.,Bill-to Customer No.->Name,Gen. Bus. Posting Group,Gen. Bus. Posting Group->Description")
Description: Returns Sales Line records with customer names and posting group descriptions looked up from their respective related tables.
Use the ExtraJoinKeys argument to define key fields for a related table
=BC.QUERYTABLE("bc","Sales Line",,"Document Type,Document No.,Document No.->Amount",,{"ExtraJoinKeys","Document No.->Document Type= Document Type"})
Description: Joins Sales Line to Sales Header using both Document No. and Document Type, ensuring records of different types with the same document number are not mixed up.