From 903f064e91dee267b769c2bcf59310c7c02fea7d Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 13 Jul 2022 12:31:34 -0700 Subject: [PATCH 001/934] Adding contribute page at root. --- CONTRIBUTING.md | 26 ++++++++++++++++++++++++++ README.md | 12 ++++++------ 2 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..d916b9625 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# Contributing to Microsoft DAX and Power Query M Reference documentation + +## Providing feedback + +Whether you have a GitHub account or not, you can use the thumb up, thumb down icons at the top-right of most articles to rate and provide feedback. Your rating and feedback is anonymous. Feedback is reviewed and changes may be made based on your feedback, but no response is provided directly to you. + +## Editing in GitHub + +Refer to the [Microsoft Docs contributors guide](https://docs.microsoft.com/contribute) to learn more about using GitHub Editor and Git and markdown tools to submit a pull request (PR) for documentation changes. + +### DAX Reference + +The DAX Reference allows Quick edits by using the in-browser GitHub editor and more detailed edits by using Git and markdown tools. + +### Power Query M Reference + +The Power Query M function reference is mostly created through an automated process from in-product help. At this time, the Power Query M function reference does not allow Quick edits by using the in-browser GitHub editor. + +### Recognition + +If your changes are accepted, your GitHub account ID is shown as a contributor at the top of the article. + +## Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/), or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. \ No newline at end of file diff --git a/README.md b/README.md index 0fc9c9709..2c20176f9 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,10 @@ -# Microsoft Data Analysis Expressions (DAX) Power Query M language references +# Microsoft Data Analysis Expressions (DAX) Power Query M language references README Welcome to the [DAX](/dax) and [Power Query M](powerquery-m) language references. Please review this README to learn more how you can contribute to documentation on the open-source Microsoft Docs platform. -## Contributing to DAX and Power Query M reference documentation +## Contribute -Thanks for your interest in contributing to the DAX or Power Query M reference. Before getting started, be sure to review the [Microsoft Docs contributor guide](/contribute). - -All pull requests are reviewed for technical accuracy and applicability. +To learn about how you can help improve documentation, see [Contributing to Microsoft DAX and Power Query M Reference documentation](/contributing.md). ## Code of Conduct @@ -15,4 +13,6 @@ For more information, see the [Code of Conduct FAQ](https://opensource.microsoft ## License -Refer to [LICENSE](LICENSE), [LICENSE-CODE](LICENSE-CODE) and [ThirdPartyNotices](ThirdPartyNotices.md) for all Licensing information. \ No newline at end of file +Refer to [LICENSE](LICENSE), [LICENSE-CODE](LICENSE-CODE) and [ThirdPartyNotices](ThirdPartyNotices.md) for all Licensing information. + + From 17f2349967eae54d371d5a7168a8f27697bdb0d1 Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Wed, 13 Jul 2022 12:52:57 -0700 Subject: [PATCH 002/934] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2c20176f9..d0dc21046 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Microsoft Data Analysis Expressions (DAX) Power Query M language references README -Welcome to the [DAX](/dax) and [Power Query M](powerquery-m) language references. Please review this README to learn more how you can contribute to documentation on the open-source Microsoft Docs platform. +Welcome to the DAX and Power Query M language references. Please review this README to learn more about how you can contribute to documentation on the open-source Microsoft Docs platform. ## Contribute -To learn about how you can help improve documentation, see [Contributing to Microsoft DAX and Power Query M Reference documentation](/contributing.md). +To learn about how you can help improve documentation, see [Contributing to Microsoft DAX and Power Query M Reference documentation](https://github.com/MicrosoftDocs/query-docs-pr/blob/main/CONTRIBUTING.md). ## Code of Conduct From d0c6b0bb414e8a5ed9a2e43585ca965b2b59d704 Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Thu, 14 Jul 2022 12:23:24 -0700 Subject: [PATCH 003/934] Add files via upload --- CONTRIBUTING.md | 26 ++++++++++++++++++++++++++ README.md | 36 ++++++++++++++++++------------------ 2 files changed, 44 insertions(+), 18 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..7bb09e0f8 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# Contributing to Microsoft DAX and Power Query M Reference documentation + +## Providing feedback + +Whether you have a GitHub account or not, you can use the thumb up, thumb down icons at the top-right of most articles to rate and provide feedback. Your rating and feedback is anonymous. Feedback is reviewed and changes may be made based on your feedback, but no response is provided directly to you. + +## Editing in GitHub + +Refer to the [Microsoft Docs contributors guide](https://docs.microsoft.com/contribute) to learn more about using GitHub Editor and Git and markdown tools to submit a pull request (PR) for documentation changes. + +### DAX Reference + +The DAX Reference allows Quick edits by using the in-browser GitHub editor and more detailed edits by using Git and markdown tools. + +### Power Query M Reference + +The Power Query M function reference is mostly created through an automated process from in-product help. At this time, the Power Query M function reference does not allow Quick edits by using the in-browser GitHub editor. + +### Recognition + +If your changes are accepted, your GitHub account ID is shown as a contributor at the top of the article. + +## Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/), or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. \ No newline at end of file diff --git a/README.md b/README.md index 0fc9c9709..2ec2f6f04 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,18 @@ -# Microsoft Data Analysis Expressions (DAX) Power Query M language references - -Welcome to the [DAX](/dax) and [Power Query M](powerquery-m) language references. Please review this README to learn more how you can contribute to documentation on the open-source Microsoft Docs platform. - -## Contributing to DAX and Power Query M reference documentation - -Thanks for your interest in contributing to the DAX or Power Query M reference. Before getting started, be sure to review the [Microsoft Docs contributor guide](/contribute). - -All pull requests are reviewed for technical accuracy and applicability. - -## Code of Conduct - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -## License - -Refer to [LICENSE](LICENSE), [LICENSE-CODE](LICENSE-CODE) and [ThirdPartyNotices](ThirdPartyNotices.md) for all Licensing information. \ No newline at end of file +# Microsoft Data Analysis Expressions (DAX) Power Query M language references README + +Welcome to the [DAX](/dax) and [Power Query M](powerquery-m) language references. Please review this README to learn more how you can contribute to documentation on the open-source Microsoft Docs platform. + +## Contribute + +To learn about how you can help improve documentation, see [Contributing to Microsoft DAX and Power Query M Reference documentation](/contributing.md). + +## Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +## License + +Refer to [LICENSE](LICENSE), [LICENSE-CODE](LICENSE-CODE) and [ThirdPartyNotices](ThirdPartyNotices.md) for all Licensing information. + + From 777ab6724adbcab4f45f964c1b0daac637e7b3ae Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Thu, 14 Jul 2022 12:27:09 -0700 Subject: [PATCH 004/934] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2ec2f6f04..2f27b6e14 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Microsoft Data Analysis Expressions (DAX) Power Query M language references README -Welcome to the [DAX](/dax) and [Power Query M](powerquery-m) language references. Please review this README to learn more how you can contribute to documentation on the open-source Microsoft Docs platform. +Welcome to the DAX and Power Query M language references. Please review this README to learn more about how you can contribute to documentation on the open-source Microsoft Docs platform. ## Contribute -To learn about how you can help improve documentation, see [Contributing to Microsoft DAX and Power Query M Reference documentation](/contributing.md). +To learn about how you can help improve documentation, see [Contributing to Microsoft DAX and Power Query M Reference documentation](https://github.com/MicrosoftDocs/query-docs-pr/blob/main/CONTRIBUTING.md). ## Code of Conduct From 40d1d6c72a809af99d7d2a7c05f6d1eebea7174b Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Thu, 14 Jul 2022 12:29:53 -0700 Subject: [PATCH 005/934] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f27b6e14..34172ddd2 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Welcome to the DAX and Power Query M language references. Please review this REA ## Contribute -To learn about how you can help improve documentation, see [Contributing to Microsoft DAX and Power Query M Reference documentation](https://github.com/MicrosoftDocs/query-docs-pr/blob/main/CONTRIBUTING.md). +To learn about how you can help improve documentation, see [Contributing to Microsoft DAX and Power Query M Reference documentation](https://github.com/MicrosoftDocs/query-docs/blob/main/CONTRIBUTING.md). ## Code of Conduct From 480bba7ad4549017bc449f9c1d3ccdc148b0af59 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 15 Jul 2022 11:23:10 -0700 Subject: [PATCH 006/934] Fixed about description in List.Modes --- query-languages/m/list-mode.md | 4 ++-- query-languages/m/list-modes.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/list-mode.md b/query-languages/m/list-mode.md index 33db533a7..9cce563c2 100644 --- a/query-languages/m/list-mode.md +++ b/query-languages/m/list-mode.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Mode" title: "List.Mode | Microsoft Docs" -ms.date: 3/11/2022 +ms.date: 7/15/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,7 +20,7 @@ List.Mode(list as list, optional equationCriteria as any) as any ## About -Returns the item that appears most frequently in the list, `list`. If the list is empty an exception is thrown. If multiple items appear with the same maximum frequency, the last one is chosen. An optional `comparisonCriteria` value, `equationCriteria`, can be specified to control equality testing. +Returns the item that appears most frequently in the list, `list`. If the list is empty an exception is thrown. If multiple items appear with the same maximum frequency, the last one is chosen. An optional comparison criteria value, `equationCriteria`, can be specified to control equality testing. ## Example 1 diff --git a/query-languages/m/list-modes.md b/query-languages/m/list-modes.md index d0f6f87a6..6a467f98a 100644 --- a/query-languages/m/list-modes.md +++ b/query-languages/m/list-modes.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Modes" title: "List.Modes | Microsoft Docs" -ms.date: 3/8/2022 +ms.date: 7/15/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,7 +20,7 @@ List.Modes(list as list, optional equationCriteria as any) as list ## About -Returns the item that appears most frequently in the list, `list`. If the list is empty an exception is thrown. If multiple items appear with the same maximum frequency, the last one is chosen. An optional `comparisonCriteria` value, `equationCriteria`, can be specified to control equality testing. +Returns the items that appear most frequently in `list`. If the list is empty an exception is thrown. If multiple items appear with the same maximum frequency, all of them are returned. An optional comparison criteria value, `equationCriteria`, can be specified to control equality testing. ## Example 1 From a4e9e82b03aa3b470302b5b98766e1c07045a84f Mon Sep 17 00:00:00 2001 From: Dr Greg Low Date: Mon, 18 Jul 2022 08:01:29 +1000 Subject: [PATCH 007/934] Made it clear which value of the optional basis parameter is the default basis is shown as optional, but none of the values in the list of allowed values is flagged as the default. You currently need to read to the 2nd example to find a mention of that. I've added a clear default message against the default value. --- query-languages/dax/yearfrac-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/yearfrac-function-dax.md b/query-languages/dax/yearfrac-function-dax.md index 8147b45bd..e6fa43b9b 100644 --- a/query-languages/dax/yearfrac-function-dax.md +++ b/query-languages/dax/yearfrac-function-dax.md @@ -27,7 +27,7 @@ YEARFRAC(, , ) |--------|--------------| |start_date|The start date in **datetime** format.| |end_date|The end date in **datetime** format.| -|basis|(Optional) The type of day count basis to use. All arguments are truncated to integers.

Basis - Description

0 - US (NASD) 30/360

1 - Actual/actual

2 - Actual/360

3 - Actual/365

4 - European 30/360| +|basis|(Optional) The type of day count basis to use. All arguments are truncated to integers.

Basis - Description

0 - US (NASD) 30/360 (Default value)

1 - Actual/actual

2 - Actual/360

3 - Actual/365

4 - European 30/360| ## Return value From cd4f7245139fa650a1a708bfabe6f7104808e7bc Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 18 Jul 2022 11:47:24 -0700 Subject: [PATCH 008/934] Update contributing article at root. --- CONTRIBUTING.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d916b9625..7ff5c03c5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,11 @@ The DAX Reference allows Quick edits by using the in-browser GitHub editor and m ### Power Query M Reference -The Power Query M function reference is mostly created through an automated process from in-product help. At this time, the Power Query M function reference does not allow Quick edits by using the in-browser GitHub editor. +The Power Query M function reference is primarily created through an automated process from in-product help. At this time, the Power Query M function reference does not have the edit (Pencil) Quick edits button at the top-right of the main frame of each page enabled. External contributions must be made by using the GitHub editor from the or by Git and markdown tools from the root of the query-docs repo. + +### Merge and publish process + +All contributions are thoroughly vetted and must meet strict technical accuracy and grammar requirements before being merged into the public repo. Once merged, it can still take several days for changes to be shown in live documentation. ### Recognition From 48ad16b25ff808e60b242a686c2d69287478f0d0 Mon Sep 17 00:00:00 2001 From: Marco Russo Date: Tue, 19 Jul 2022 15:29:01 +0200 Subject: [PATCH 009/934] Fix data type compatibility remarks --- query-languages/dax/median-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/median-function-dax.md b/query-languages/dax/median-function-dax.md index d045ebc1e..c5dbdc77a 100644 --- a/query-languages/dax/median-function-dax.md +++ b/query-languages/dax/median-function-dax.md @@ -34,7 +34,7 @@ A decimal number. ## Remarks -- Only the numbers in the column are counted. Blanks, logical values, and text are ignored. +- Only the numbers in the column are counted. Blanks are ignored. Logical values are converted to numbers. Text columns are not supported. - MEDIAN( Table[Column] ) is equivalent to MEDIANX( Table, Table[Column] ). From 10a3faf8a3ff7d75cb21d8718e20c68efef548bb Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 19 Jul 2022 15:21:24 -0700 Subject: [PATCH 010/934] Added August updates to the Power Query M reference --- query-languages/m/binary-functions.md | 7 +- query-languages/m/binary-view.md | 53 +++++++++++++ query-languages/m/binary-viewerror.md | 21 +++++ query-languages/m/binary-viewfunction.md | 27 +++++++ query-languages/m/date-totext.md | 4 +- query-languages/m/duration-days.md | 6 +- query-languages/m/duration-functions.md | 10 +-- query-languages/m/duration-hours.md | 8 +- query-languages/m/duration-minutes.md | 6 +- query-languages/m/duration-seconds.md | 6 +- query-languages/m/duration-totaldays.md | 6 +- query-languages/m/duration-totalhours.md | 6 +- query-languages/m/duration-totalminutes.md | 6 +- query-languages/m/duration-totalseconds.md | 6 +- query-languages/m/list-functions.md | 4 +- query-languages/m/list-generate.md | 6 +- query-languages/m/sharptable.md | 89 ++++++++++++++++++++-- query-languages/m/toc.yml | 6 ++ 18 files changed, 233 insertions(+), 44 deletions(-) create mode 100644 query-languages/m/binary-view.md create mode 100644 query-languages/m/binary-viewerror.md create mode 100644 query-languages/m/binary-viewfunction.md diff --git a/query-languages/m/binary-functions.md b/query-languages/m/binary-functions.md index de7161513..4eaff1ea1 100644 --- a/query-languages/m/binary-functions.md +++ b/query-languages/m/binary-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary functions" title: "Binary functions | Microsoft Docs" -ms.date: 5/19/2022 +ms.date: 7/19/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -65,5 +65,8 @@ These functions create and manipulate binary data. |[Binary.Length](binary-length.md)|Returns the length of binary values.| |[Binary.Range](binary-range.md)|Returns a subset of the binary value beginning at an offset.| |[Binary.ToList](binary-tolist.md)|Converts a binary value into a list of numbers| -|[Binary.ToText](binary-totext.md)|Encodes binary data into a text form.| +|[Binary.ToText](binary-totext.md)|Encodes binary data into a text form.| +|[Binary.View](binary-view.md) | Creates or extends a binary with user-defined handlers for query and action operations.| +|[Binary.ViewError](binary-viewerror.md) | Creates a modified error record which won't trigger a fallback when thrown by a handler defined on a view (via [Binary.View](binary-view.md)).| +|[Binary.ViewFunction](binary-viewfunction.md) | Creates a function that can be intercepted by a handler defined on a view (via `Binary.View`).| |[#binary](sharpbinary.md) | Creates a binary value from numbers or text.| diff --git a/query-languages/m/binary-view.md b/query-languages/m/binary-view.md new file mode 100644 index 000000000..5e702911f --- /dev/null +++ b/query-languages/m/binary-view.md @@ -0,0 +1,53 @@ +--- +description: "Learn more about: Binary.View" +title: "Binary.View | Microsoft Docs" +ms.date: 7/19/2022 +ms.service: powerquery +ms.reviewer: ehvonleh +ms.topic: reference +author: dougklopfenstein +ms.author: dougklo +--- +# Binary.View + +## Syntax + +
+Binary.View(binary as nullable binary, handlers as record) as binary
+
+ +## About + +Returns a view of `binary` where the functions specified in `handlers` are used in lieu of the default behavior of an operation when the operation is applied to the view. + +If `binary` is provided, all handler functions are optional. If `binary` isn't provided, the `GetStream` handler function is required. If a handler function isn't specified for an operation, the default behavior of the operation is applied to `binary` instead (except in the case of `GetExpression`). + +Handler functions must return a value that is semantically equivalent to the result of applying the operation against `binary` (or the resulting view in the case of `GetExpression`). + +If a handler function raises an error, the default behavior of the operation is applied to the view. + +`Binary.View` can be used to implement folding to a data source–the translation of M queries into source-specific operations (for example, to download a section of a file). + +Refer to the published Power Query custom connector documentation for a more complete description of `Binary.View`. + +## Example 1 + +Create a basic view that doesn't require accessing the data in order to determine the length. + +**Usage** + +```powerquery-m +Binary.View( + null, + [ + GetLength = () => 12, + GetStream = () => Text.ToBinary("hello world!") + ] +) +``` + +**Output** + +```powerquery-m +Text.ToBinary("hello world!") +``` diff --git a/query-languages/m/binary-viewerror.md b/query-languages/m/binary-viewerror.md new file mode 100644 index 000000000..a03fb2609 --- /dev/null +++ b/query-languages/m/binary-viewerror.md @@ -0,0 +1,21 @@ +--- +description: "Learn more about: Binary.ViewError" +title: "Binary.ViewError | Microsoft Docs" +ms.date: 7/19/2022 +ms.service: powerquery +ms.reviewer: ehvonleh +ms.topic: reference +author: dougklopfenstein +ms.author: dougklo +--- +# Binary.ViewError + +## Syntax + +
+Binary.ViewError(errorRecord as record) as record
+
+ +## About + +Creates a modified error record from `errorRecord` which won't trigger a fallback when thrown by a handler defined on a view (via [Binary.View](binary-view.md)). diff --git a/query-languages/m/binary-viewfunction.md b/query-languages/m/binary-viewfunction.md new file mode 100644 index 000000000..36bb9765d --- /dev/null +++ b/query-languages/m/binary-viewfunction.md @@ -0,0 +1,27 @@ +--- +description: "Learn more about: Binary.ViewFunction" +title: "Binary.ViewFunction | Microsoft Docs" +ms.date: 7/19/2022 +ms.service: powerquery +ms.reviewer: ehvonleh +ms.topic: reference +author: dougklopfenstein +ms.author: dougklo +--- +# Binary.ViewFunction + +## Syntax + +
+Binary.ViewFunction(function as function) as function
+
+ +## About + +Creates a view function based on `function` that can be handled in a view created by [Binary.View](binary-view.md). + +The `OnInvoke` handler of `Binary.View` can be used to defined a handler for the view function. + +As with the handlers for built-in operations, if no `OnInvoke` handler is specified, or if it does not handle the view function, or if an error is raised by the handler, `function` is applied on top of the view. + +Refer to the published Power Query custom connector documentation for a more complete description of `Binary.View` and custom view functions. diff --git a/query-languages/m/date-totext.md b/query-languages/m/date-totext.md index a159d0552..3e81b2f86 100644 --- a/query-languages/m/date-totext.md +++ b/query-languages/m/date-totext.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.ToText" title: "Date.ToText | Microsoft Docs" -ms.date: 6/24/2022 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -22,7 +22,7 @@ Date.ToText(date as nullable date, optional options as any, option Returns a textual representation of `date`. An optional `record` parameter, `options`, may be provided to specify additional properties. `culture` is only used for legacy workflows. The `record` can contain the following fields: -* `Format`:A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. +* `Format`: A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. * `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"MMM"` is `"Jan", "Feb", "Mar", ...`, while in `"ru-RU"` `"MMM"` is `"янв", "фев", "мар", ...`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. diff --git a/query-languages/m/duration-days.md b/query-languages/m/duration-days.md index 52a74f39e..d57fdef7d 100644 --- a/query-languages/m/duration-days.md +++ b/query-languages/m/duration-days.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.Days" title: "Duration.Days | Microsoft Docs" -ms.date: 3/11/2022 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,11 +20,11 @@ Duration.Days(duration as nullable duration) as nullable number ## About -Returns the day component of the provided `duration` value, `duration`. +Returns the days portion of `duration`. ## Example 1 -Find the day in #duration(5, 4, 3, 2). +Extract the days from a duration value. **Usage** diff --git a/query-languages/m/duration-functions.md b/query-languages/m/duration-functions.md index 061d9e58b..2de720ac2 100644 --- a/query-languages/m/duration-functions.md +++ b/query-languages/m/duration-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration functions" title: "Duration functions | Microsoft Docs" -ms.date: 5/16/2022 +ms.date: 7/19/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -16,12 +16,12 @@ These functions create and manipulate duration values. |Name|Description| |------------|---------------| -|[Duration.Days](duration-days.md)|Returns the day component of a Duration value.| +|[Duration.Days](duration-days.md)|Returns the days portion of a duration.| |[Duration.From](duration-from.md)|Returns a duration value from a value.| |[Duration.FromText](duration-fromtext.md)|Returns a Duration value from a text value.| -|[Duration.Hours](duration-hours.md)|Returns an hour component of a Duration value.| -|[Duration.Minutes](duration-minutes.md)|Returns a minute component of a Duration value.| -|[Duration.Seconds](duration-seconds.md)|Returns a second component of a Duration value.| +|[Duration.Hours](duration-hours.md)|Returns the hours portion of a duration.| +|[Duration.Minutes](duration-minutes.md)|Returns the minutes portion of a duration.| +|[Duration.Seconds](duration-seconds.md)|Returns the seconds portion of a duration.| |[Duration.ToRecord](duration-torecord.md)|Returns a record with parts of a Duration value.| |[Duration.TotalDays](duration-totaldays.md)|Returns the total magnitude of days from a Duration value.| |[Duration.TotalHours](duration-totalhours.md)|Returns the total magnitude of hours from a Duration value.| diff --git a/query-languages/m/duration-hours.md b/query-languages/m/duration-hours.md index f5ce2bd7b..512bcb7cc 100644 --- a/query-languages/m/duration-hours.md +++ b/query-languages/m/duration-hours.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.Hours" title: "Duration.Hours | Microsoft Docs" -ms.date: 3/11/2022 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -15,16 +15,16 @@ ms.author: dougklo ## Syntax
-Duration.Hours(duration as nullable duration) as nullable number 
+Duration.Hours(duration as nullable duration) as nullable number
 
## About -Returns the hour component of the provided `duration` value, `duration`. +Returns the hours portion of `duration`. ## Example 1 -Find the hours in #duration(5, 4, 3, 2). +Extract the hours from a duration value. **Usage** diff --git a/query-languages/m/duration-minutes.md b/query-languages/m/duration-minutes.md index dedbb8cef..7ca04752f 100644 --- a/query-languages/m/duration-minutes.md +++ b/query-languages/m/duration-minutes.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.Minutes" title: "Duration.Minutes | Microsoft Docs" -ms.date: 3/11/2022 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,11 +20,11 @@ Duration.Minutes(duration as nullable duration) as nullable number ## About -Returns the minutes component of the provided `duration` value, `duration`. +Returns the minutes portion of `duration`. ## Example 1 -Find the minutes in #duration(5, 4, 3, 2). +Extract the minutes from a duration value. **Usage** diff --git a/query-languages/m/duration-seconds.md b/query-languages/m/duration-seconds.md index 1759a7f23..707956de7 100644 --- a/query-languages/m/duration-seconds.md +++ b/query-languages/m/duration-seconds.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.Seconds" title: "Duration.Seconds | Microsoft Docs" -ms.date: 3/11/2022 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,11 +20,11 @@ Duration.Seconds(duration as nullable duration) as nullable number ## About -Returns the seconds component of the provided `duration` value, `duration`. +Returns the seconds portion of `duration`. ## Example 1 -Find the seconds in #duration(5, 4, 3, 2). +Extract the seconds from a duration value. **Usage** diff --git a/query-languages/m/duration-totaldays.md b/query-languages/m/duration-totaldays.md index a1e6b63dc..a2372cf38 100644 --- a/query-languages/m/duration-totaldays.md +++ b/query-languages/m/duration-totaldays.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.TotalDays" title: "Duration.TotalDays | Microsoft Docs" -ms.date: 3/11/2022 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,11 +20,11 @@ Duration.TotalDays(duration as nullable duration) as nullable number ## About -Returns the total days spanned by the provided `duration` value, `duration`. +Returns the total days spanned by `duration`. ## Example 1 -Find the total days spanned in #duration(5, 4, 3, 2). +Find the total days spanned by a duration value. **Usage** diff --git a/query-languages/m/duration-totalhours.md b/query-languages/m/duration-totalhours.md index 54a880b8d..305e84bf8 100644 --- a/query-languages/m/duration-totalhours.md +++ b/query-languages/m/duration-totalhours.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.TotalHours" title: "Duration.TotalHours | Microsoft Docs" -ms.date: 3/11/2022 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,11 +20,11 @@ Duration.TotalHours(duration as nullable duration) as nullable number ## About -Returns the total hours spanned by the provided `duration` value, `duration`. +Returns the total hours spanned by `duration`. ## Example 1 -Find the total hours spanned in #duration(5, 4, 3, 2). +Find the total hours spanned by a duration value. **Usage** diff --git a/query-languages/m/duration-totalminutes.md b/query-languages/m/duration-totalminutes.md index ff327cd13..5a275c4ec 100644 --- a/query-languages/m/duration-totalminutes.md +++ b/query-languages/m/duration-totalminutes.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.TotalMinutes" title: "Duration.TotalMinutes | Microsoft Docs" -ms.date: 3/11/2022 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,11 +20,11 @@ Duration.TotalMinutes(duration as nullable duration) as nullable number ## About -Returns the total minutes spanned by the provided `duration` value, `duration`. +Returns the total minutes spanned by `duration`. ## Example 1 -Find the total minutes spanned in #duration(5, 4, 3, 2). +Find the total minutes spanned by a duration value. **Usage** diff --git a/query-languages/m/duration-totalseconds.md b/query-languages/m/duration-totalseconds.md index dd310831e..b4ee0d1c7 100644 --- a/query-languages/m/duration-totalseconds.md +++ b/query-languages/m/duration-totalseconds.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.TotalSeconds" title: "Duration.TotalSeconds | Microsoft Docs" -ms.date: 3/11/2022 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,11 +20,11 @@ Duration.TotalSeconds(duration as nullable duration) as nullable number ## About -Returns the total seconds spanned by the provided `duration` value, `duration`. +Returns the total seconds spanned by `duration`. ## Example 1 -Find the total seconds spanned in #duration(5, 4, 3, 2). +Find the total seconds spanned by a duration value. **Usage** diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index 02791ce75..feb6e409d 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List functions" title: "List functions | Microsoft Docs" -ms.date: 5/12/2022 +ms.date: 7/19/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -151,7 +151,7 @@ These functions generate list of values. |[List.DateTimes](list-datetimes.md)|Returns a list of datetime values from size count, starting at start and adds an increment to every value.| |[List.DateTimeZones](list-datetimezones.md)|Returns a list of of datetimezone values from size count, starting at start and adds an increment to every value.| |[List.Durations](list-durations.md)|Returns a list of durations values from size count, starting at start and adds an increment to every value.| -|[List.Generate](list-generate.md)|Generates a list from a value function, a condition function, a next function, and an optional transformation function on the values.| +|[List.Generate](list-generate.md)|Generates a list of values.| |[List.Numbers](list-numbers.md)|Returns a list of numbers from size count starting at initial, and adds an increment. The increment defaults to 1.| |[List.Random](list-random.md)|Returns a list of count random numbers, with an optional seed parameter.| |[List.Times](list-times.md)|Returns a list of time values of size count, starting at start.| diff --git a/query-languages/m/list-generate.md b/query-languages/m/list-generate.md index 4cf24b891..c61333bc1 100644 --- a/query-languages/m/list-generate.md +++ b/query-languages/m/list-generate.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Generate" title: "List.Generate | Microsoft Docs" -ms.date: 3/8/2022 +ms.date: 7/19/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,11 +20,11 @@ List.Generate(initial as function, condition as function, next< ## About -Generates a list of values given four functions that generate the initial value `initial`, test against a condition `condition`, and if successful select the result and generate the next value `next`. An optional parameter, `selector`, may also be specified. +Generates a list of values using the provided functions. The `initial` function generates a starting candidate value, which is then tested against `condition`. If the candidate value is approved, then it's returned as part of the resulting list, and the next candidate value is generated by passing the newly approved value to `next`. Once a candidate value fails to match `condition`, the list generation process stops. An optional parameter, `selector`, may also be provided to transform the items in the resulting list. ## Example 1 -Create a list that starts at 10, remains greater than 0 and decrements by 1. +Create a list by starting at ten, repeatedly decrementing by one, and ensuring each item is greater than zero. **Usage** diff --git a/query-languages/m/sharptable.md b/query-languages/m/sharptable.md index 13320ae51..97dd62e2a 100644 --- a/query-languages/m/sharptable.md +++ b/query-languages/m/sharptable.md @@ -1,7 +1,7 @@ --- -description: "Learn more about: #table" +description: "Learn more about: #table" title: "#table | Microsoft Docs" -ms.date: 10/17/2019 +ms.date: 7/18/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -10,7 +10,7 @@ author: dougklopfenstein ms.author: dougklo --- -# #table +# #table ## Syntax @@ -19,6 +19,85 @@ ms.author: dougklo ## About -Creates a table value from columns `columns` and the list `rows` where each element of the list is an inner list that contains the column values for a single row. `columns` may be a list of column names, a table type, a number of columns, or null. - +Creates a table value from `columns` and `rows`. The `columns` value can be a list of column names, a table type, a number of columns, or null. The `rows` value is a list of lists, where each element contains the column values for a single row. + +## Example 1 + +Create an empty table. + +**Usage** + +```powerquery-m +#table({}, {}) +``` + +**Output** + +```powerquery-m +#table({}, {}) +``` + +## Example 2 + +Create a table by inferring the number of columns from the first row. + +**Usage** + +```powerquery-m +#table(null, {{"Betty", 90.3}, {"Carl", 89.5}}) +``` + +**Output** + +```powerquery-m +#table({"Column1", "Column2"}, {{"Betty", 90.3}, {"Carl", 89.5}}) +``` + +## Example 3 + +Create a table by specifying the number of columns. + +**Usage** + +```powerquery-m +#table(2, {{"Betty", 90.3}, {"Carl", 89.5}}) +``` + +**Output** + +```powerquery-m +#table({"Column1", "Column2"}, {{"Betty", 90.3}, {"Carl", 89.5}}) +``` + +## Example 4 + +Create a table by providing a list of column names. + +**Usage** + +```powerquery-m +#table({"Name", "Score"}, {{"Betty", 90.3}, {"Carl", 89.5}}) +``` + +**Output** + +```powerquery-m +#table({"Name", "Score"}, {{"Betty", 90.3}, {"Carl", 89.5}}) +``` + +## Example 5 + +Create a table with an explicit type. + +**Usage** + +```powerquery-m +#table(type table [Name = text, Score = number], {{"Betty", 90.3}, {"Carl", 89.5}}) +``` + +**Output** + +```powerquery-m +#table(type table [Name = text, Score = number], {{"Betty", 90.3}, {"Carl", 89.5}}) +``` diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 70117f79a..5911c0437 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -252,6 +252,12 @@ items: href: binary-tolist.md - name: Binary.ToText href: binary-totext.md + - name: Binary.View + href: binary-view.md + - name: Binary.ViewError + href: binary-viewerror.md + - name: Binary.ViewFunction + href: binary-viewfunction.md - name: BinaryFormat.7BitEncodedSignedInteger href: binaryformat-7bitencodedsignedinteger.md - name: BinaryFormat.7BitEncodedUnsignedInteger From 49303823651677170da2f9e52c74a6bc7e4cc4dc Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 20 Jul 2022 09:48:44 -0700 Subject: [PATCH 011/934] Update query-languages/m/list-mode.md Co-authored-by: Ehren --- query-languages/m/list-mode.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/list-mode.md b/query-languages/m/list-mode.md index 9cce563c2..2d7c52c94 100644 --- a/query-languages/m/list-mode.md +++ b/query-languages/m/list-mode.md @@ -20,7 +20,7 @@ List.Mode(list as list, optional equationCriteria as any) as any ## About -Returns the item that appears most frequently in the list, `list`. If the list is empty an exception is thrown. If multiple items appear with the same maximum frequency, the last one is chosen. An optional comparison criteria value, `equationCriteria`, can be specified to control equality testing. +Returns the item that appears most frequently in `list`. If the list is empty an exception is thrown. If multiple items appear with the same maximum frequency, the last one is chosen. An optional comparison criteria value, `equationCriteria`, can be specified to control equality testing. ## Example 1 From a79a772d642bea55886e6626ab476f66beb32b84 Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Thu, 21 Jul 2022 09:19:05 -0700 Subject: [PATCH 012/934] Update median-function-dax.md --- query-languages/dax/median-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/median-function-dax.md b/query-languages/dax/median-function-dax.md index c5dbdc77a..2567f7e13 100644 --- a/query-languages/dax/median-function-dax.md +++ b/query-languages/dax/median-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: MEDIAN" title: "MEDIAN function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 07/08/2020 +ms.date: 07/21/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -34,7 +34,7 @@ A decimal number. ## Remarks -- Only the numbers in the column are counted. Blanks are ignored. Logical values are converted to numbers. Text columns are not supported. +- Only the numbers in the column are counted. Blanks are ignored. Logical values, dates, and text are not supported. - MEDIAN( Table[Column] ) is equivalent to MEDIANX( Table, Table[Column] ). From b2275c63d698b4bf80e3a8dba75688ec7b8a9724 Mon Sep 17 00:00:00 2001 From: AKomonen <109805647+AKomonen@users.noreply.github.com> Date: Fri, 22 Jul 2022 16:33:38 +0300 Subject: [PATCH 013/934] Update restrictions of boolean filter arguments Boolean filter arguments in CALCULATE function support references to different columns in a single table since March 2021 version of Power BI --- ...x-avoid-avoid-filter-as-filter-argument.md | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md index e81fb9ca8..932fa3283 100644 --- a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md +++ b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md @@ -46,29 +46,14 @@ It's recommended you pass filter arguments as Boolean expressions, whenever poss There are, however, restrictions that apply to Boolean expressions when they're used as filter arguments. They: -- Cannot compare columns to other columns +- Cannot reference columns from multiple tables - Cannot reference a measure - Cannot use nested CALCULATE functions - Cannot use functions that scan or return a table It means that you'll need to use table expressions for more complex filter requirements. -Consider now a different measure definition. - -```dax -High Margin Product Sales = -CALCULATE( - [Sales], - FILTER( - 'Product', - 'Product'[ListPrice] > 'Product'[StandardCost] * 2 - ) -) -``` - -The definition of a _high margin product_ is one that has a list price exceeding double its standard cost. In this example, the FILTER function must be used. It's because the filter expression is too complex for a Boolean expression. - -Here's one more example. The requirement this time is to calculate sales, but only for months that have achieved a profit. +Consider now a different measure definition. The requirement is to calculate sales, but only for months that have achieved a profit. ```dax Sales for Profitable Months = @@ -81,7 +66,7 @@ CALCULATE( ) ``` -In this example, the FILTER function must also be used. It's because it requires evaluating the **Profit** measure to eliminate those months that didn't achieve a profit. It's not possible to use a measure in a Boolean expression when it's used as a filter argument. +In this example, the FILTER function must be used. It's because it requires evaluating the **Profit** measure to eliminate those months that didn't achieve a profit. It's not possible to use a measure in a Boolean expression when it's used as a filter argument. ## Recommendations @@ -98,4 +83,4 @@ Therefore, the FILTER function should only be used when necessary. You can use i - [Filter functions (DAX)](../filter-function-dax.md) - Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) -- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) \ No newline at end of file +- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) From d73300f8e9ed524faae2b0f1d2a74b1ed3076c61 Mon Sep 17 00:00:00 2001 From: c0deb00k <103694055+c0deb00k@users.noreply.github.com> Date: Thu, 28 Jul 2022 15:33:13 +0200 Subject: [PATCH 014/934] Update math-and-trig-functions-dax.md MOD function is missing in the table --- query-languages/dax/math-and-trig-functions-dax.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/dax/math-and-trig-functions-dax.md b/query-languages/dax/math-and-trig-functions-dax.md index d8f4a0dea..a9ca491fc 100644 --- a/query-languages/dax/math-and-trig-functions-dax.md +++ b/query-languages/dax/math-and-trig-functions-dax.md @@ -47,6 +47,7 @@ The mathematical functions in Data Analysis Expressions (DAX) are very similar t |[LN](ln-function-dax.md) | Returns the natural logarithm of a number. | |[LOG](log-function-dax.md) | Returns the logarithm of a number to the base you specify. | |[LOG10](log10-function-dax.md) | Returns the base-10 logarithm of a number. | +|[MOD](mod-function-dax.md) | Returns the remainder after a number is divided by a divisor. The result always has the same sign as the divisor. | |[MROUND](mround-function-dax.md) | Returns a number rounded to the desired multiple. | |[ODD](odd-function-dax.md) | Returns number rounded up to the nearest odd integer. | |[PI](pi-function-dax.md) | Returns the value of Pi, 3.14159265358979, accurate to 15 digits. | From d399b13cb9ea364be6e7c2649261accf5d1b8678 Mon Sep 17 00:00:00 2001 From: MattAlington <34114455+MattAlington@users.noreply.github.com> Date: Fri, 29 Jul 2022 14:12:46 +1000 Subject: [PATCH 015/934] Update new-dax-functions.md The release date was wrong. It should be July 2022, not 2021 --- query-languages/dax/new-dax-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 12479edcf..9479ea20c 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -23,7 +23,7 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| -|[NETWORKDAYS](networkdays-dax.md)| July, 2021 | Returns the number of whole workdays between two dates. | +|[NETWORKDAYS](networkdays-dax.md)| July, 2022 | Returns the number of whole workdays between two dates. | |[BITAND](bitand-function-dax.md) | November, 2021 | Returns a bitwise 'AND' of two numbers. | |[BITLSHIFT](bitlshift-function-dax.md) | November, 2021 | Returns a number shifted left by the specified number of bits. | |[BITOR](bitor-function-dax.md) | November, 2021 | Returns a bitwise 'OR' of two numbers. | From ed0c517c9d5c3165daf5cb6b8dd1cb1437fd3dd4 Mon Sep 17 00:00:00 2001 From: AKomonen <109805647+AKomonen@users.noreply.github.com> Date: Fri, 29 Jul 2022 15:26:56 +0300 Subject: [PATCH 016/934] Update to include COLUMN and TABLE with DEFINE Update documentation to include the possibility to define COLUMN and TABLE entities in a DEFINE statement. --- query-languages/dax/dax-queries.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index c416584b0..5ea26e1e4 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -19,8 +19,7 @@ Before learning about queries, it's important you have a solid understanding of ## Syntax ```dax -[DEFINE { MEASURE [] = } - { VAR = }] +[DEFINE { = }] EVALUATE [ORDER BY { [{ASC | DESC}]}[, …] [START AT {|} [, …]]] @@ -134,8 +133,7 @@ The optional **DEFINE** keyword defines entities that exist only for the duratio #### Syntax ```dax -[DEFINE { MEASURE [] = } - { VAR = }] +[DEFINE { = }] EVALUATE
``` @@ -143,10 +141,9 @@ EVALUATE
|Term |Definition | |---------|---------| -| tableName | The name of an existing table using standard DAX syntax. It cannot be an expression. | -| name | The name of a new measure. It cannot be an expression. | -| expression | Any DAX expression that returns a single scalar value. The expression can use any of the defined measures. The expression must return a table. If a scalar value is required, wrap the scalar inside a ROW() function to produce a table. | -| VAR | An optional expression as a named variable. A [VAR](var-dax.md) can be passed as an argument to other expressions. | +| entity | MEASURE, VAR, TABLE, or COLUMN. | +| name | The name of an entity. It cannot be an expression. | +| expression | Any DAX expression that returns a scalar value (when entity is MEASURE, VAR, or COLUMN) or a table value (when entity is VAR or TABLE). The expression can use any of the defined entities. | #### Example From 2ca84d16cc47978a91d0dc47167e2cd456321f3e Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 29 Jul 2022 17:37:11 -0700 Subject: [PATCH 017/934] Update index.yml Fixing bad ms.service value --- query-languages/m/index.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index ff9ebaffe..6a8d1437f 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -6,13 +6,11 @@ summary: Microsoft Power Query provides a powerful data import experience that e metadata: title: Power Query M formula language reference description: Power Query M is used to filter, combine, and mash-up data from one or more supported data sources. - ms.service: power-query + ms.service: powerquery ms.topic: landing-page - ms.collection: author: dougklopfenstein ms.author: dougklo - manager: mtillman - ms.date: 10/17/2019 + ms.date: 07/29/2022 # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new @@ -57,4 +55,4 @@ landingContent: - text: Power Query M language specification url: power-query-m-language-specification.md - text: Power Query M type system - url: power-query-m-type-system.md \ No newline at end of file + url: power-query-m-type-system.md From 7b5b69c10413e0e706448356a56272f68ff8dc12 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 29 Jul 2022 20:02:50 -0700 Subject: [PATCH 018/934] Fix metadata --- query-languages/m/docfx.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index dc6eaa6fb..a4e0753dc 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -37,9 +37,11 @@ "globalMetadata": { "breadcrumb_path": "/powerquery-m/breadcrumb/toc.json", "extendBreadcrumb": true, - "titleSuffix": "PowerQuery M" + "titleSuffix": "PowerQuery M", + "ms.service": "power-query", + "ms.topic": "reference" }, - "fileMetadata": {}, + "fileMetadata": { }, "template": [], "dest": "m-language" } From bf7b3a15dcf4ab729acc5b4337486934f9f036bf Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 29 Jul 2022 20:05:06 -0700 Subject: [PATCH 019/934] Update ms.reviewer to make it global --- query-languages/m/access-database.md | 3 +-- query-languages/m/accesscontrolentry-conditiontoidentities.md | 1 - query-languages/m/accesscontrolkind-type.md | 1 - query-languages/m/accessing-data-functions.md | 1 - query-languages/m/activedirectory-domains.md | 1 - query-languages/m/adobeanalytics-cubes.md | 1 - query-languages/m/adodotnet-datasource.md | 1 - query-languages/m/adodotnet-query.md | 1 - query-languages/m/analysisservices-database.md | 1 - query-languages/m/analysisservices-databases.md | 1 - query-languages/m/azurestorage-blobcontents.md | 1 - query-languages/m/azurestorage-blobs.md | 1 - query-languages/m/azurestorage-datalake.md | 1 - query-languages/m/azurestorage-datalakecontents.md | 1 - query-languages/m/azurestorage-tables.md | 1 - query-languages/m/binary-approximatelength.md | 1 - query-languages/m/binary-buffer.md | 1 - query-languages/m/binary-combine.md | 1 - query-languages/m/binary-compress.md | 1 - query-languages/m/binary-decompress.md | 1 - query-languages/m/binary-from.md | 1 - query-languages/m/binary-fromlist.md | 1 - query-languages/m/binary-fromtext.md | 1 - query-languages/m/binary-functions.md | 1 - query-languages/m/binary-infercontenttype.md | 1 - query-languages/m/binary-length.md | 1 - query-languages/m/binary-range.md | 1 - query-languages/m/binary-tolist.md | 1 - query-languages/m/binary-totext.md | 1 - query-languages/m/binary-view.md | 1 - query-languages/m/binary-viewerror.md | 1 - query-languages/m/binary-viewfunction.md | 1 - query-languages/m/binaryencoding-type.md | 1 - query-languages/m/binaryformat-7bitencodedsignedinteger.md | 1 - query-languages/m/binaryformat-7bitencodedunsignedinteger.md | 1 - query-languages/m/binaryformat-binary.md | 1 - query-languages/m/binaryformat-byte.md | 1 - query-languages/m/binaryformat-byteorder.md | 1 - query-languages/m/binaryformat-choice.md | 1 - query-languages/m/binaryformat-decimal.md | 1 - query-languages/m/binaryformat-double.md | 1 - query-languages/m/binaryformat-group.md | 1 - query-languages/m/binaryformat-length.md | 1 - query-languages/m/binaryformat-list.md | 1 - query-languages/m/binaryformat-null.md | 1 - query-languages/m/binaryformat-record.md | 1 - query-languages/m/binaryformat-signedinteger16.md | 1 - query-languages/m/binaryformat-signedinteger32.md | 1 - query-languages/m/binaryformat-signedinteger64.md | 1 - query-languages/m/binaryformat-single.md | 1 - query-languages/m/binaryformat-text.md | 1 - query-languages/m/binaryformat-transform.md | 1 - query-languages/m/binaryformat-unsignedinteger16.md | 1 - query-languages/m/binaryformat-unsignedinteger32.md | 1 - query-languages/m/binaryformat-unsignedinteger64.md | 1 - query-languages/m/binaryoccurrence-type.md | 1 - query-languages/m/buffermode-type.md | 1 - query-languages/m/byte-from.md | 1 - query-languages/m/byteorder-type.md | 1 - query-languages/m/cdm-contents.md | 1 - query-languages/m/character-fromnumber.md | 1 - query-languages/m/character-tonumber.md | 1 - query-languages/m/combiner-combinetextbydelimiter.md | 1 - query-languages/m/combiner-combinetextbyeachdelimiter.md | 1 - query-languages/m/combiner-combinetextbylengths.md | 1 - query-languages/m/combiner-combinetextbypositions.md | 1 - query-languages/m/combiner-combinetextbyranges.md | 1 - query-languages/m/combiner-functions.md | 1 - query-languages/m/comments.md | 1 - query-languages/m/comparer-equals.md | 1 - query-languages/m/comparer-fromculture.md | 1 - query-languages/m/comparer-functions.md | 1 - query-languages/m/comparer-ordinal.md | 1 - query-languages/m/comparer-ordinalignorecase.md | 1 - query-languages/m/compression-type.md | 1 - query-languages/m/constants.md | 1 - query-languages/m/csv-document.md | 1 - query-languages/m/csvstyle-type.md | 1 - query-languages/m/cube-addandexpanddimensioncolumn.md | 1 - query-languages/m/cube-addmeasurecolumn.md | 1 - query-languages/m/cube-applyparameter.md | 1 - query-languages/m/cube-attributememberid.md | 1 - query-languages/m/cube-attributememberproperty.md | 1 - query-languages/m/cube-collapseandremovecolumns.md | 1 - query-languages/m/cube-dimensions.md | 1 - query-languages/m/cube-displayfolders.md | 1 - query-languages/m/cube-measureproperties.md | 1 - query-languages/m/cube-measureproperty.md | 1 - query-languages/m/cube-measures.md | 1 - query-languages/m/cube-parameters.md | 1 - query-languages/m/cube-properties.md | 1 - query-languages/m/cube-propertykey.md | 1 - query-languages/m/cube-replacedimensions.md | 1 - query-languages/m/cube-transform.md | 1 - query-languages/m/culture-current.md | 1 - query-languages/m/currency-from.md | 1 - query-languages/m/date-adddays.md | 1 - query-languages/m/date-addmonths.md | 1 - query-languages/m/date-addquarters.md | 1 - query-languages/m/date-addweeks.md | 1 - query-languages/m/date-addyears.md | 1 - query-languages/m/date-day.md | 1 - query-languages/m/date-dayofweek.md | 1 - query-languages/m/date-dayofweekname.md | 1 - query-languages/m/date-dayofyear.md | 1 - query-languages/m/date-daysinmonth.md | 1 - query-languages/m/date-endofday.md | 1 - query-languages/m/date-endofmonth.md | 1 - query-languages/m/date-endofquarter.md | 1 - query-languages/m/date-endofweek.md | 1 - query-languages/m/date-endofyear.md | 1 - query-languages/m/date-from.md | 1 - query-languages/m/date-fromtext.md | 1 - query-languages/m/date-functions.md | 1 - query-languages/m/date-isincurrentday.md | 1 - query-languages/m/date-isincurrentmonth.md | 1 - query-languages/m/date-isincurrentquarter.md | 1 - query-languages/m/date-isincurrentweek.md | 1 - query-languages/m/date-isincurrentyear.md | 1 - query-languages/m/date-isinnextday.md | 1 - query-languages/m/date-isinnextmonth.md | 1 - query-languages/m/date-isinnextndays.md | 1 - query-languages/m/date-isinnextnmonths.md | 1 - query-languages/m/date-isinnextnquarters.md | 1 - query-languages/m/date-isinnextnweeks.md | 1 - query-languages/m/date-isinnextnyears.md | 1 - query-languages/m/date-isinnextquarter.md | 1 - query-languages/m/date-isinnextweek.md | 1 - query-languages/m/date-isinnextyear.md | 1 - query-languages/m/date-isinpreviousday.md | 1 - query-languages/m/date-isinpreviousmonth.md | 1 - query-languages/m/date-isinpreviousndays.md | 1 - query-languages/m/date-isinpreviousnmonths.md | 1 - query-languages/m/date-isinpreviousnquarters.md | 1 - query-languages/m/date-isinpreviousnweeks.md | 1 - query-languages/m/date-isinpreviousnyears.md | 1 - query-languages/m/date-isinpreviousquarter.md | 1 - query-languages/m/date-isinpreviousweek.md | 1 - query-languages/m/date-isinpreviousyear.md | 1 - query-languages/m/date-isinyeartodate.md | 1 - query-languages/m/date-isleapyear.md | 1 - query-languages/m/date-month.md | 1 - query-languages/m/date-monthname.md | 1 - query-languages/m/date-quarterofyear.md | 1 - query-languages/m/date-startofday.md | 1 - query-languages/m/date-startofmonth.md | 1 - query-languages/m/date-startofquarter.md | 1 - query-languages/m/date-startofweek.md | 1 - query-languages/m/date-startofyear.md | 1 - query-languages/m/date-torecord.md | 1 - query-languages/m/date-totext.md | 1 - query-languages/m/date-weekofmonth.md | 1 - query-languages/m/date-weekofyear.md | 1 - query-languages/m/date-year.md | 1 - query-languages/m/datetime-addzone.md | 1 - query-languages/m/datetime-date.md | 1 - query-languages/m/datetime-fixedlocalnow.md | 1 - query-languages/m/datetime-from.md | 1 - query-languages/m/datetime-fromfiletime.md | 1 - query-languages/m/datetime-fromtext.md | 1 - query-languages/m/datetime-functions.md | 1 - query-languages/m/datetime-isincurrenthour.md | 1 - query-languages/m/datetime-isincurrentminute.md | 1 - query-languages/m/datetime-isincurrentsecond.md | 1 - query-languages/m/datetime-isinnexthour.md | 1 - query-languages/m/datetime-isinnextminute.md | 1 - query-languages/m/datetime-isinnextnhours.md | 1 - query-languages/m/datetime-isinnextnminutes.md | 1 - query-languages/m/datetime-isinnextnseconds.md | 1 - query-languages/m/datetime-isinnextsecond.md | 1 - query-languages/m/datetime-isinprevioushour.md | 1 - query-languages/m/datetime-isinpreviousminute.md | 1 - query-languages/m/datetime-isinpreviousnhours.md | 1 - query-languages/m/datetime-isinpreviousnminutes.md | 1 - query-languages/m/datetime-isinpreviousnseconds.md | 1 - query-languages/m/datetime-isinprevioussecond.md | 1 - query-languages/m/datetime-localnow.md | 1 - query-languages/m/datetime-time.md | 1 - query-languages/m/datetime-torecord.md | 1 - query-languages/m/datetime-totext.md | 1 - query-languages/m/datetimezone-fixedlocalnow.md | 1 - query-languages/m/datetimezone-fixedutcnow.md | 1 - query-languages/m/datetimezone-from.md | 1 - query-languages/m/datetimezone-fromfiletime.md | 1 - query-languages/m/datetimezone-fromtext.md | 1 - query-languages/m/datetimezone-functions.md | 1 - query-languages/m/datetimezone-localnow.md | 1 - query-languages/m/datetimezone-removezone.md | 1 - query-languages/m/datetimezone-switchzone.md | 1 - query-languages/m/datetimezone-tolocal.md | 1 - query-languages/m/datetimezone-torecord.md | 1 - query-languages/m/datetimezone-totext.md | 1 - query-languages/m/datetimezone-toutc.md | 1 - query-languages/m/datetimezone-utcnow.md | 1 - query-languages/m/datetimezone-zonehours.md | 1 - query-languages/m/datetimezone-zoneminutes.md | 1 - query-languages/m/day-type.md | 1 - query-languages/m/db2-database.md | 1 - query-languages/m/decimal-from.md | 1 - query-languages/m/diagnostics-activityid.md | 1 - query-languages/m/diagnostics-trace.md | 1 - query-languages/m/directquerycapabilities-from.md | 1 - query-languages/m/double-from.md | 2 -- query-languages/m/duration-days.md | 1 - query-languages/m/duration-from.md | 1 - query-languages/m/duration-fromtext.md | 1 - query-languages/m/duration-functions.md | 1 - query-languages/m/duration-hours.md | 1 - query-languages/m/duration-minutes.md | 1 - query-languages/m/duration-seconds.md | 1 - query-languages/m/duration-torecord.md | 1 - query-languages/m/duration-totaldays.md | 1 - query-languages/m/duration-totalhours.md | 1 - query-languages/m/duration-totalminutes.md | 1 - query-languages/m/duration-totalseconds.md | 1 - query-languages/m/duration-totext.md | 1 - query-languages/m/dynamic-values.md | 1 - query-languages/m/embedded-value.md | 1 - query-languages/m/enumerations.md | 1 - query-languages/m/error-handling.md | 1 - query-languages/m/error-record.md | 1 - query-languages/m/errors.md | 1 - query-languages/m/essbase-cubes.md | 1 - query-languages/m/evaluation-model.md | 1 - query-languages/m/excel-currentworkbook.md | 1 - query-languages/m/excel-shapetable.md | 1 - query-languages/m/excel-workbook.md | 1 - query-languages/m/exchange-contents.md | 1 - query-languages/m/expression-constant.md | 1 - query-languages/m/expression-evaluate.md | 1 - query-languages/m/expression-functions.md | 1 - query-languages/m/expression-identifier.md | 1 - query-languages/m/expressions-values-and-let-expression.md | 1 - query-languages/m/extravalues-type.md | 1 - query-languages/m/file-contents.md | 1 - query-languages/m/folder-contents.md | 1 - query-languages/m/folder-files.md | 1 - query-languages/m/function-from.md | 1 - query-languages/m/function-invoke.md | 1 - query-languages/m/function-invokeafter.md | 1 - query-languages/m/function-isdatasource.md | 1 - query-languages/m/function-scalarvector.md | 1 - query-languages/m/function-values.md | 1 - query-languages/m/geography-fromwellknowntext.md | 1 - query-languages/m/geography-towellknowntext.md | 1 - query-languages/m/geographypoint-from.md | 1 - query-languages/m/geometry-fromwellknowntext.md | 1 - query-languages/m/geometry-towellknowntext.md | 1 - query-languages/m/geometrypoint-from.md | 1 - query-languages/m/googleanalytics-accounts.md | 1 - query-languages/m/graph-nodes.md | 1 - query-languages/m/groupkind-type.md | 1 - query-languages/m/guid-from.md | 1 - query-languages/m/hdfs-contents.md | 1 - query-languages/m/hdfs-files.md | 1 - query-languages/m/hdinsight-containers.md | 1 - query-languages/m/hdinsight-contents.md | 1 - query-languages/m/hdinsight-files.md | 1 - query-languages/m/html-table.md | 1 - query-languages/m/identity-from.md | 1 - query-languages/m/identity-ismemberof.md | 1 - query-languages/m/identityprovider-default.md | 1 - query-languages/m/informix-database.md | 1 - query-languages/m/int16-from.md | 1 - query-languages/m/int32-from.md | 1 - query-languages/m/int64-from.md | 1 - query-languages/m/int8-from.md | 1 - query-languages/m/itemexpression-from.md | 1 - query-languages/m/itemexpression-item.md | 1 - query-languages/m/joinalgorithm-type.md | 1 - query-languages/m/joinkind-type.md | 1 - query-languages/m/joinside-type.md | 1 - query-languages/m/json-document.md | 1 - query-languages/m/json-fromvalue.md | 1 - query-languages/m/limitclausekind-type.md | 1 - query-languages/m/lines-frombinary.md | 1 - query-languages/m/lines-fromtext.md | 1 - query-languages/m/lines-functions.md | 1 - query-languages/m/lines-tobinary.md | 1 - query-languages/m/lines-totext.md | 1 - query-languages/m/list-accumulate.md | 1 - query-languages/m/list-alltrue.md | 1 - query-languages/m/list-alternate.md | 1 - query-languages/m/list-anytrue.md | 1 - query-languages/m/list-average.md | 1 - query-languages/m/list-buffer.md | 1 - query-languages/m/list-combine.md | 1 - query-languages/m/list-conformtopagereader.md | 1 - query-languages/m/list-contains.md | 1 - query-languages/m/list-containsall.md | 1 - query-languages/m/list-containsany.md | 1 - query-languages/m/list-count.md | 1 - query-languages/m/list-covariance.md | 1 - query-languages/m/list-dates.md | 1 - query-languages/m/list-datetimes.md | 1 - query-languages/m/list-datetimezones.md | 1 - query-languages/m/list-difference.md | 1 - query-languages/m/list-distinct.md | 1 - query-languages/m/list-durations.md | 1 - query-languages/m/list-findtext.md | 1 - query-languages/m/list-first.md | 1 - query-languages/m/list-firstn.md | 1 - query-languages/m/list-functions.md | 1 - query-languages/m/list-generate.md | 1 - query-languages/m/list-insertrange.md | 1 - query-languages/m/list-intersect.md | 1 - query-languages/m/list-isdistinct.md | 1 - query-languages/m/list-isempty.md | 1 - query-languages/m/list-last.md | 1 - query-languages/m/list-lastn.md | 1 - query-languages/m/list-matchesall.md | 1 - query-languages/m/list-matchesany.md | 1 - query-languages/m/list-max.md | 1 - query-languages/m/list-maxn.md | 1 - query-languages/m/list-median.md | 1 - query-languages/m/list-min.md | 1 - query-languages/m/list-minn.md | 1 - query-languages/m/list-mode.md | 1 - query-languages/m/list-modes.md | 1 - query-languages/m/list-nonnullcount.md | 1 - query-languages/m/list-numbers.md | 1 - query-languages/m/list-percentile.md | 1 - query-languages/m/list-positionof.md | 1 - query-languages/m/list-positionofany.md | 1 - query-languages/m/list-positions.md | 1 - query-languages/m/list-product.md | 1 - query-languages/m/list-random.md | 1 - query-languages/m/list-range.md | 1 - query-languages/m/list-removefirstn.md | 1 - query-languages/m/list-removeitems.md | 1 - query-languages/m/list-removelastn.md | 1 - query-languages/m/list-removematchingitems.md | 1 - query-languages/m/list-removenulls.md | 1 - query-languages/m/list-removerange.md | 1 - query-languages/m/list-repeat.md | 1 - query-languages/m/list-replacematchingitems.md | 1 - query-languages/m/list-replacerange.md | 1 - query-languages/m/list-replacevalue.md | 1 - query-languages/m/list-reverse.md | 1 - query-languages/m/list-select.md | 1 - query-languages/m/list-single.md | 1 - query-languages/m/list-singleordefault.md | 1 - query-languages/m/list-skip.md | 1 - query-languages/m/list-sort.md | 1 - query-languages/m/list-split.md | 1 - query-languages/m/list-standarddeviation.md | 1 - query-languages/m/list-sum.md | 1 - query-languages/m/list-times.md | 1 - query-languages/m/list-transform.md | 1 - query-languages/m/list-transformmany.md | 1 - query-languages/m/list-union.md | 1 - query-languages/m/list-zip.md | 1 - query-languages/m/logical-from.md | 1 - query-languages/m/logical-fromtext.md | 1 - query-languages/m/logical-functions.md | 1 - query-languages/m/logical-totext.md | 1 - query-languages/m/metadata.md | 1 - query-languages/m/missingfield-type.md | 1 - query-languages/m/mysql-database.md | 1 - query-languages/m/number-abs.md | 1 - query-languages/m/number-acos.md | 1 - query-languages/m/number-asin.md | 1 - query-languages/m/number-atan.md | 1 - query-languages/m/number-atan2.md | 1 - query-languages/m/number-bitwiseand.md | 1 - query-languages/m/number-bitwisenot.md | 1 - query-languages/m/number-bitwiseor.md | 1 - query-languages/m/number-bitwiseshiftleft.md | 1 - query-languages/m/number-bitwiseshiftright.md | 1 - query-languages/m/number-bitwisexor.md | 1 - query-languages/m/number-combinations.md | 1 - query-languages/m/number-cos.md | 1 - query-languages/m/number-cosh.md | 1 - query-languages/m/number-e.md | 1 - query-languages/m/number-epsilon.md | 1 - query-languages/m/number-exp.md | 1 - query-languages/m/number-factorial.md | 1 - query-languages/m/number-from.md | 1 - query-languages/m/number-fromtext.md | 1 - query-languages/m/number-functions.md | 1 - query-languages/m/number-integerdivide.md | 1 - query-languages/m/number-iseven.md | 1 - query-languages/m/number-isnan.md | 1 - query-languages/m/number-isodd.md | 1 - query-languages/m/number-ln.md | 1 - query-languages/m/number-log.md | 1 - query-languages/m/number-log10.md | 1 - query-languages/m/number-mod.md | 1 - query-languages/m/number-nan.md | 1 - query-languages/m/number-negativeinfinity.md | 1 - query-languages/m/number-permutations.md | 1 - query-languages/m/number-pi.md | 1 - query-languages/m/number-positiveinfinity.md | 1 - query-languages/m/number-power.md | 1 - query-languages/m/number-random.md | 1 - query-languages/m/number-randombetween.md | 1 - query-languages/m/number-round.md | 1 - query-languages/m/number-roundawayfromzero.md | 1 - query-languages/m/number-rounddown.md | 1 - query-languages/m/number-roundtowardzero.md | 1 - query-languages/m/number-roundup.md | 1 - query-languages/m/number-sign.md | 1 - query-languages/m/number-sin.md | 1 - query-languages/m/number-sinh.md | 1 - query-languages/m/number-sqrt.md | 1 - query-languages/m/number-tan.md | 1 - query-languages/m/number-tanh.md | 1 - query-languages/m/number-totext.md | 1 - query-languages/m/occurrence-type.md | 1 - query-languages/m/odata-feed.md | 1 - query-languages/m/odataomitvalues-type.md | 1 - query-languages/m/odbc-datasource.md | 1 - query-languages/m/odbc-inferoptions.md | 1 - query-languages/m/odbc-query.md | 1 - query-languages/m/oledb-datasource.md | 1 - query-languages/m/oledb-query.md | 1 - query-languages/m/operators.md | 1 - query-languages/m/oracle-database.md | 1 - query-languages/m/order-type.md | 1 - query-languages/m/pdf-tables.md | 1 - query-languages/m/percentage-from.md | 1 - query-languages/m/percentilemode-type.md | 1 - query-languages/m/postgresql-database.md | 1 - query-languages/m/power-query-m-function-reference.md | 1 - query-languages/m/power-query-m-language-specification.md | 1 - query-languages/m/power-query-m-type-system.md | 1 - query-languages/m/precision-type.md | 1 - .../m/quick-tour-of-the-power-query-m-formula-language.md | 1 - query-languages/m/quotestyle-type.md | 1 - query-languages/m/rankkind-type.md | 1 - query-languages/m/rdata-frombinary.md | 1 - query-languages/m/record-addfield.md | 1 - query-languages/m/record-combine.md | 1 - query-languages/m/record-field.md | 1 - query-languages/m/record-fieldcount.md | 1 - query-languages/m/record-fieldnames.md | 1 - query-languages/m/record-fieldordefault.md | 1 - query-languages/m/record-fieldvalues.md | 1 - query-languages/m/record-fromlist.md | 1 - query-languages/m/record-fromtable.md | 1 - query-languages/m/record-functions.md | 1 - query-languages/m/record-hasfields.md | 1 - query-languages/m/record-removefields.md | 1 - query-languages/m/record-renamefields.md | 1 - query-languages/m/record-reorderfields.md | 1 - query-languages/m/record-selectfields.md | 1 - query-languages/m/record-tolist.md | 1 - query-languages/m/record-totable.md | 1 - query-languages/m/record-transformfields.md | 1 - query-languages/m/relativeposition-type.md | 1 - query-languages/m/replacer-functions.md | 1 - query-languages/m/replacer-replacetext.md | 1 - query-languages/m/replacer-replacevalue.md | 1 - query-languages/m/roundingmode-type.md | 1 - query-languages/m/rowexpression-column.md | 1 - query-languages/m/rowexpression-from.md | 1 - query-languages/m/rowexpression-row.md | 1 - query-languages/m/salesforce-data.md | 1 - query-languages/m/salesforce-reports.md | 1 - query-languages/m/sapbusinesswarehouse-cubes.md | 1 - query-languages/m/sapbusinesswarehouseexecutionmode-type.md | 1 - query-languages/m/saphana-database.md | 1 - query-languages/m/saphanadistribution-type.md | 1 - query-languages/m/saphanarangeoperator-type.md | 1 - query-languages/m/sharepoint-contents.md | 1 - query-languages/m/sharepoint-files.md | 1 - query-languages/m/sharepoint-tables.md | 1 - query-languages/m/sharpbinary.md | 1 - query-languages/m/sharpdate.md | 1 - query-languages/m/sharpdatetime.md | 1 - query-languages/m/sharpdatetimezone.md | 1 - query-languages/m/sharpduration.md | 1 - query-languages/m/sharptable.md | 1 - query-languages/m/sharptime.md | 1 - query-languages/m/single-from.md | 1 - query-languages/m/soda-feed.md | 1 - query-languages/m/splitter-functions.md | 1 - query-languages/m/splitter-splitbynothing.md | 1 - query-languages/m/splitter-splittextbyanydelimiter.md | 1 - query-languages/m/splitter-splittextbycharactertransition.md | 1 - query-languages/m/splitter-splittextbydelimiter.md | 1 - query-languages/m/splitter-splittextbyeachdelimiter.md | 1 - query-languages/m/splitter-splittextbylengths.md | 1 - query-languages/m/splitter-splittextbypositions.md | 1 - query-languages/m/splitter-splittextbyranges.md | 1 - query-languages/m/splitter-splittextbyrepeatedlengths.md | 1 - query-languages/m/splitter-splittextbywhitespace.md | 1 - query-languages/m/sql-database.md | 1 - query-languages/m/sql-databases.md | 1 - query-languages/m/sqlexpression-schemafrom.md | 1 - query-languages/m/sqlexpression-toexpression.md | 1 - query-languages/m/sybase-database.md | 1 - query-languages/m/table-addcolumn.md | 1 - query-languages/m/table-addfuzzyclustercolumn.md | 1 - query-languages/m/table-addindexcolumn.md | 1 - query-languages/m/table-addjoincolumn.md | 1 - query-languages/m/table-addkey.md | 1 - query-languages/m/table-addrankcolumn.md | 1 - query-languages/m/table-aggregatetablecolumn.md | 1 - query-languages/m/table-alternaterows.md | 1 - query-languages/m/table-approximaterowcount.md | 1 - query-languages/m/table-buffer.md | 1 - query-languages/m/table-column.md | 1 - query-languages/m/table-columncount.md | 1 - query-languages/m/table-columnnames.md | 1 - query-languages/m/table-columnsoftype.md | 1 - query-languages/m/table-combine.md | 1 - query-languages/m/table-combinecolumns.md | 1 - query-languages/m/table-combinecolumnstorecord.md | 1 - query-languages/m/table-conformtopagereader.md | 1 - query-languages/m/table-contains.md | 1 - query-languages/m/table-containsall.md | 1 - query-languages/m/table-containsany.md | 1 - query-languages/m/table-demoteheaders.md | 1 - query-languages/m/table-distinct.md | 1 - query-languages/m/table-duplicatecolumn.md | 1 - query-languages/m/table-expandlistcolumn.md | 1 - query-languages/m/table-expandrecordcolumn.md | 1 - query-languages/m/table-expandtablecolumn.md | 1 - query-languages/m/table-filldown.md | 1 - query-languages/m/table-fillup.md | 1 - query-languages/m/table-filterwithdatatable.md | 1 - query-languages/m/table-findtext.md | 1 - query-languages/m/table-first.md | 1 - query-languages/m/table-firstn.md | 1 - query-languages/m/table-firstvalue.md | 1 - query-languages/m/table-fromcolumns.md | 1 - query-languages/m/table-fromlist.md | 1 - query-languages/m/table-frompartitions.md | 1 - query-languages/m/table-fromrecords.md | 1 - query-languages/m/table-fromrows.md | 1 - query-languages/m/table-fromvalue.md | 1 - query-languages/m/table-functions.md | 1 - query-languages/m/table-fuzzygroup.md | 1 - query-languages/m/table-fuzzyjoin.md | 1 - query-languages/m/table-fuzzynestedjoin.md | 1 - query-languages/m/table-group.md | 1 - query-languages/m/table-hascolumns.md | 1 - query-languages/m/table-insertrows.md | 1 - query-languages/m/table-isdistinct.md | 1 - query-languages/m/table-isempty.md | 1 - query-languages/m/table-join.md | 1 - query-languages/m/table-keys.md | 1 - query-languages/m/table-last.md | 1 - query-languages/m/table-lastn.md | 1 - query-languages/m/table-matchesallrows.md | 1 - query-languages/m/table-matchesanyrows.md | 1 - query-languages/m/table-max.md | 1 - query-languages/m/table-maxn.md | 1 - query-languages/m/table-min.md | 1 - query-languages/m/table-minn.md | 1 - query-languages/m/table-nestedjoin.md | 1 - query-languages/m/table-partition.md | 1 - query-languages/m/table-partitionvalues.md | 1 - query-languages/m/table-pivot.md | 1 - query-languages/m/table-positionof.md | 1 - query-languages/m/table-positionofany.md | 1 - query-languages/m/table-prefixcolumns.md | 1 - query-languages/m/table-profile.md | 1 - query-languages/m/table-promoteheaders.md | 1 - query-languages/m/table-range.md | 1 - query-languages/m/table-removecolumns.md | 1 - query-languages/m/table-removefirstn.md | 1 - query-languages/m/table-removelastn.md | 1 - query-languages/m/table-removematchingrows.md | 1 - query-languages/m/table-removerows.md | 1 - query-languages/m/table-removerowswitherrors.md | 1 - query-languages/m/table-renamecolumns.md | 1 - query-languages/m/table-reordercolumns.md | 1 - query-languages/m/table-repeat.md | 1 - query-languages/m/table-replaceerrorvalues.md | 1 - query-languages/m/table-replacekeys.md | 1 - query-languages/m/table-replacematchingrows.md | 1 - query-languages/m/table-replacerelationshipidentity.md | 1 - query-languages/m/table-replacerows.md | 1 - query-languages/m/table-replacevalue.md | 1 - query-languages/m/table-reverserows.md | 1 - query-languages/m/table-rowcount.md | 1 - query-languages/m/table-schema.md | 1 - query-languages/m/table-selectcolumns.md | 1 - query-languages/m/table-selectrows.md | 1 - query-languages/m/table-selectrowswitherrors.md | 1 - query-languages/m/table-singlerow.md | 1 - query-languages/m/table-skip.md | 1 - query-languages/m/table-sort.md | 1 - query-languages/m/table-split.md | 1 - query-languages/m/table-splitat.md | 1 - query-languages/m/table-splitcolumn.md | 1 - query-languages/m/table-stopfolding.md | 1 - query-languages/m/table-tocolumns.md | 1 - query-languages/m/table-tolist.md | 1 - query-languages/m/table-torecords.md | 1 - query-languages/m/table-torows.md | 1 - query-languages/m/table-transformcolumnnames.md | 1 - query-languages/m/table-transformcolumns.md | 1 - query-languages/m/table-transformcolumntypes.md | 1 - query-languages/m/table-transformrows.md | 1 - query-languages/m/table-transpose.md | 1 - query-languages/m/table-unpivot.md | 1 - query-languages/m/table-unpivotothercolumns.md | 1 - query-languages/m/table-view.md | 1 - query-languages/m/table-viewerror.md | 1 - query-languages/m/table-viewfunction.md | 1 - query-languages/m/tables-getrelationships.md | 1 - query-languages/m/teradata-database.md | 1 - query-languages/m/text-afterdelimiter.md | 1 - query-languages/m/text-at.md | 1 - query-languages/m/text-beforedelimiter.md | 1 - query-languages/m/text-betweendelimiters.md | 1 - query-languages/m/text-clean.md | 1 - query-languages/m/text-combine.md | 1 - query-languages/m/text-contains.md | 1 - query-languages/m/text-end.md | 1 - query-languages/m/text-endswith.md | 1 - query-languages/m/text-format.md | 1 - query-languages/m/text-from.md | 1 - query-languages/m/text-frombinary.md | 1 - query-languages/m/text-functions.md | 1 - query-languages/m/text-infernumbertype.md | 1 - query-languages/m/text-insert.md | 1 - query-languages/m/text-length.md | 1 - query-languages/m/text-lower.md | 1 - query-languages/m/text-middle.md | 1 - query-languages/m/text-newguid.md | 1 - query-languages/m/text-padend.md | 1 - query-languages/m/text-padstart.md | 1 - query-languages/m/text-positionof.md | 1 - query-languages/m/text-positionofany.md | 1 - query-languages/m/text-proper.md | 1 - query-languages/m/text-range.md | 1 - query-languages/m/text-remove.md | 1 - query-languages/m/text-removerange.md | 1 - query-languages/m/text-repeat.md | 1 - query-languages/m/text-replace.md | 1 - query-languages/m/text-replacerange.md | 1 - query-languages/m/text-reverse.md | 1 - query-languages/m/text-select.md | 1 - query-languages/m/text-split.md | 1 - query-languages/m/text-splitany.md | 1 - query-languages/m/text-start.md | 1 - query-languages/m/text-startswith.md | 1 - query-languages/m/text-tobinary.md | 1 - query-languages/m/text-tolist.md | 1 - query-languages/m/text-trim.md | 1 - query-languages/m/text-trimend.md | 1 - query-languages/m/text-trimstart.md | 1 - query-languages/m/text-upper.md | 1 - query-languages/m/textencoding-type.md | 1 - query-languages/m/time-endofhour.md | 1 - query-languages/m/time-from.md | 1 - query-languages/m/time-fromtext.md | 1 - query-languages/m/time-functions.md | 1 - query-languages/m/time-hour.md | 1 - query-languages/m/time-minute.md | 1 - query-languages/m/time-second.md | 1 - query-languages/m/time-startofhour.md | 1 - query-languages/m/time-torecord.md | 1 - query-languages/m/time-totext.md | 1 - query-languages/m/timezone-current.md | 1 - query-languages/m/tracelevel-type.md | 1 - query-languages/m/type-addtablekey.md | 1 - query-languages/m/type-closedrecord.md | 1 - query-languages/m/type-conversion.md | 1 - query-languages/m/type-facets.md | 1 - query-languages/m/type-forfunction.md | 1 - query-languages/m/type-forrecord.md | 1 - query-languages/m/type-functionparameters.md | 1 - query-languages/m/type-functionrequiredparameters.md | 1 - query-languages/m/type-functionreturn.md | 1 - query-languages/m/type-functions.md | 1 - query-languages/m/type-is.md | 1 - query-languages/m/type-isnullable.md | 1 - query-languages/m/type-isopenrecord.md | 1 - query-languages/m/type-listitem.md | 1 - query-languages/m/type-nonnullable.md | 1 - query-languages/m/type-openrecord.md | 1 - query-languages/m/type-recordfields.md | 1 - query-languages/m/type-replacefacets.md | 1 - query-languages/m/type-replacetablekeys.md | 1 - query-languages/m/type-tablecolumn.md | 1 - query-languages/m/type-tablekeys.md | 1 - query-languages/m/type-tablerow.md | 1 - query-languages/m/type-tableschema.md | 1 - query-languages/m/type-union.md | 1 - query-languages/m/understanding-power-query-m-functions.md | 1 - query-languages/m/uri-buildquerystring.md | 1 - query-languages/m/uri-combine.md | 1 - query-languages/m/uri-escapedatastring.md | 1 - query-languages/m/uri-functions.md | 1 - query-languages/m/uri-parts.md | 1 - query-languages/m/value-add.md | 1 - query-languages/m/value-alternates.md | 1 - query-languages/m/value-as.md | 1 - query-languages/m/value-compare.md | 1 - query-languages/m/value-divide.md | 1 - query-languages/m/value-equals.md | 1 - query-languages/m/value-expression.md | 1 - query-languages/m/value-firewall.md | 1 - query-languages/m/value-fromtext.md | 1 - query-languages/m/value-functions.md | 1 - query-languages/m/value-is.md | 1 - query-languages/m/value-lineage.md | 1 - query-languages/m/value-metadata.md | 1 - query-languages/m/value-multiply.md | 1 - query-languages/m/value-nativequery.md | 1 - query-languages/m/value-nullableequals.md | 1 - query-languages/m/value-optimize.md | 1 - query-languages/m/value-removemetadata.md | 1 - query-languages/m/value-replacemetadata.md | 1 - query-languages/m/value-replacetype.md | 1 - query-languages/m/value-subtract.md | 1 - query-languages/m/value-traits.md | 1 - query-languages/m/value-type.md | 1 - query-languages/m/value-versionidentity.md | 1 - query-languages/m/value-versions.md | 1 - query-languages/m/variable-value.md | 1 - query-languages/m/web-browsercontents.md | 1 - query-languages/m/web-contents.md | 1 - query-languages/m/web-headers.md | 1 - query-languages/m/web-page.md | 1 - query-languages/m/webaction-request.md | 1 - query-languages/m/webmethod-type.md | 1 - query-languages/m/xml-document.md | 1 - query-languages/m/xml-tables.md | 1 - 724 files changed, 1 insertion(+), 726 deletions(-) diff --git a/query-languages/m/access-database.md b/query-languages/m/access-database.md index feb528e16..101827ca1 100644 --- a/query-languages/m/access-database.md +++ b/query-languages/m/access-database.md @@ -1,9 +1,8 @@ --- description: "Learn more about: Access.Database" -title: "Access.Database | Microsoft Docs" +title: "Access.Database" ms.date: 12/12/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/accesscontrolentry-conditiontoidentities.md b/query-languages/m/accesscontrolentry-conditiontoidentities.md index f687347e5..045a36ded 100644 --- a/query-languages/m/accesscontrolentry-conditiontoidentities.md +++ b/query-languages/m/accesscontrolentry-conditiontoidentities.md @@ -3,7 +3,6 @@ description: "Learn more about: AccessControlEntry.ConditionToIdentities" title: "AccessControlEntry.ConditionToIdentities | Microsoft Docs" ms.date: 3/28/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/accesscontrolkind-type.md b/query-languages/m/accesscontrolkind-type.md index 49973dda1..ae4739b17 100644 --- a/query-languages/m/accesscontrolkind-type.md +++ b/query-languages/m/accesscontrolkind-type.md @@ -4,7 +4,6 @@ title: "AccessControlKind.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index fe9dc5439..fa75d9207 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Accessing data functions" title: "Accessing data functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/activedirectory-domains.md b/query-languages/m/activedirectory-domains.md index b9b623c01..3c47b404d 100644 --- a/query-languages/m/activedirectory-domains.md +++ b/query-languages/m/activedirectory-domains.md @@ -3,7 +3,6 @@ description: "Learn more about: ActiveDirectory.Domains" title: "ActiveDirectory.Domains | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/adobeanalytics-cubes.md b/query-languages/m/adobeanalytics-cubes.md index b19c1fd29..9e1dda718 100644 --- a/query-languages/m/adobeanalytics-cubes.md +++ b/query-languages/m/adobeanalytics-cubes.md @@ -3,7 +3,6 @@ description: "Learn more about: AdobeAnalytics.Cubes" title: "AdobeAnalytics.Cubes | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/adodotnet-datasource.md b/query-languages/m/adodotnet-datasource.md index fba1faf7d..9443766f7 100644 --- a/query-languages/m/adodotnet-datasource.md +++ b/query-languages/m/adodotnet-datasource.md @@ -3,7 +3,6 @@ description: "Learn more about: AdoDotNet.DataSource" title: "AdoDotNet.DataSource | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/adodotnet-query.md b/query-languages/m/adodotnet-query.md index a3734b83e..65b42e38c 100644 --- a/query-languages/m/adodotnet-query.md +++ b/query-languages/m/adodotnet-query.md @@ -3,7 +3,6 @@ description: "Learn more about: AdoDotNet.Query" title: "AdoDotNet.Query | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/analysisservices-database.md b/query-languages/m/analysisservices-database.md index 0ff6d6f26..35ee631c7 100644 --- a/query-languages/m/analysisservices-database.md +++ b/query-languages/m/analysisservices-database.md @@ -3,7 +3,6 @@ description: "Learn more about: AnalysisServices.Database" title: "AnalysisServices.Database | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/analysisservices-databases.md b/query-languages/m/analysisservices-databases.md index 496afe2e2..b4aaf7e08 100644 --- a/query-languages/m/analysisservices-databases.md +++ b/query-languages/m/analysisservices-databases.md @@ -3,7 +3,6 @@ description: "Learn more about: AnalysisServices.Databases" title: "AnalysisServices.Databases | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/azurestorage-blobcontents.md b/query-languages/m/azurestorage-blobcontents.md index d5d112416..d484c0e1f 100644 --- a/query-languages/m/azurestorage-blobcontents.md +++ b/query-languages/m/azurestorage-blobcontents.md @@ -3,7 +3,6 @@ description: "Learn more about: AzureStorage.BlobContents" title: "AzureStorage.BlobContents | Microsoft Docs" ms.date: 10/10/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/azurestorage-blobs.md b/query-languages/m/azurestorage-blobs.md index 06a990605..21c0837d4 100644 --- a/query-languages/m/azurestorage-blobs.md +++ b/query-languages/m/azurestorage-blobs.md @@ -3,7 +3,6 @@ description: "Learn more about: AzureStorage.Blobs" title: "AzureStorage.Blobs | Microsoft Docs" ms.date: 10/10/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/azurestorage-datalake.md b/query-languages/m/azurestorage-datalake.md index 68ef4a44b..f50363ba9 100644 --- a/query-languages/m/azurestorage-datalake.md +++ b/query-languages/m/azurestorage-datalake.md @@ -3,7 +3,6 @@ description: "Learn more about: AzureStorage.DataLake" title: "AzureStorage.DataLake | Microsoft Docs" ms.date: 10/10/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/azurestorage-datalakecontents.md b/query-languages/m/azurestorage-datalakecontents.md index 6aad0a7a7..bf6cca18d 100644 --- a/query-languages/m/azurestorage-datalakecontents.md +++ b/query-languages/m/azurestorage-datalakecontents.md @@ -3,7 +3,6 @@ description: "Learn more about: AzureStorage.DataLakeContents" title: "AzureStorage.DataLakeContents | Microsoft Docs" ms.date: 10/10/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/azurestorage-tables.md b/query-languages/m/azurestorage-tables.md index 9c01efff1..112fcfe50 100644 --- a/query-languages/m/azurestorage-tables.md +++ b/query-languages/m/azurestorage-tables.md @@ -3,7 +3,6 @@ description: "Learn more about: AzureStorage.Tables" title: "AzureStorage.Tables | Microsoft Docs" ms.date: 5/25/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-approximatelength.md b/query-languages/m/binary-approximatelength.md index 035f4a943..f94f55e51 100644 --- a/query-languages/m/binary-approximatelength.md +++ b/query-languages/m/binary-approximatelength.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.ApproximateLength" title: "Binary.ApproximateLength | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-buffer.md b/query-languages/m/binary-buffer.md index 359e56429..7c6775b1b 100644 --- a/query-languages/m/binary-buffer.md +++ b/query-languages/m/binary-buffer.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.Buffer" title: "Binary.Buffer | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-combine.md b/query-languages/m/binary-combine.md index 64fe79600..5a1e66c53 100644 --- a/query-languages/m/binary-combine.md +++ b/query-languages/m/binary-combine.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.Combine" title: "Binary.Combine | Microsoft Docs" ms.date: 12/12/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-compress.md b/query-languages/m/binary-compress.md index 90c1ad3a4..5caeb237b 100644 --- a/query-languages/m/binary-compress.md +++ b/query-languages/m/binary-compress.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.Compress" title: "Binary.Compress | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-decompress.md b/query-languages/m/binary-decompress.md index 41aae69bb..3940d83f1 100644 --- a/query-languages/m/binary-decompress.md +++ b/query-languages/m/binary-decompress.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.Decompress" title: "Binary.Decompress | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-from.md b/query-languages/m/binary-from.md index ecdce95ff..be5db7cd2 100644 --- a/query-languages/m/binary-from.md +++ b/query-languages/m/binary-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.From" title: "Binary.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-fromlist.md b/query-languages/m/binary-fromlist.md index 98bb110ec..853bff19f 100644 --- a/query-languages/m/binary-fromlist.md +++ b/query-languages/m/binary-fromlist.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.FromList" title: "Binary.FromList | Microsoft Docs" ms.date: 12/12/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-fromtext.md b/query-languages/m/binary-fromtext.md index 22214393a..d7b8c2745 100644 --- a/query-languages/m/binary-fromtext.md +++ b/query-languages/m/binary-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.FromText" title: "Binary.FromText | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-functions.md b/query-languages/m/binary-functions.md index 4eaff1ea1..b99183ccc 100644 --- a/query-languages/m/binary-functions.md +++ b/query-languages/m/binary-functions.md @@ -4,7 +4,6 @@ title: "Binary functions | Microsoft Docs" ms.date: 7/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-infercontenttype.md b/query-languages/m/binary-infercontenttype.md index 1fe832e39..bbd40f923 100644 --- a/query-languages/m/binary-infercontenttype.md +++ b/query-languages/m/binary-infercontenttype.md @@ -4,7 +4,6 @@ title: "Binary.InferContentType | Microsoft Docs" ms.date: 4/17/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-length.md b/query-languages/m/binary-length.md index 27e5c8430..edca55c72 100644 --- a/query-languages/m/binary-length.md +++ b/query-languages/m/binary-length.md @@ -4,7 +4,6 @@ title: "Binary.Length | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-range.md b/query-languages/m/binary-range.md index 7f15b1545..d66cdc9a2 100644 --- a/query-languages/m/binary-range.md +++ b/query-languages/m/binary-range.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.Range" title: "Binary.Range | Microsoft Docs" ms.date: 3/7/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-tolist.md b/query-languages/m/binary-tolist.md index 5e152d908..29169ed3e 100644 --- a/query-languages/m/binary-tolist.md +++ b/query-languages/m/binary-tolist.md @@ -4,7 +4,6 @@ title: "Binary.ToList | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-totext.md b/query-languages/m/binary-totext.md index 83ba065b1..ba5e8a09a 100644 --- a/query-languages/m/binary-totext.md +++ b/query-languages/m/binary-totext.md @@ -4,7 +4,6 @@ title: "Binary.ToText | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-view.md b/query-languages/m/binary-view.md index 5e702911f..c5bcb7fe0 100644 --- a/query-languages/m/binary-view.md +++ b/query-languages/m/binary-view.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.View" title: "Binary.View | Microsoft Docs" ms.date: 7/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-viewerror.md b/query-languages/m/binary-viewerror.md index a03fb2609..5f8db0ae6 100644 --- a/query-languages/m/binary-viewerror.md +++ b/query-languages/m/binary-viewerror.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.ViewError" title: "Binary.ViewError | Microsoft Docs" ms.date: 7/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-viewfunction.md b/query-languages/m/binary-viewfunction.md index 36bb9765d..84a003405 100644 --- a/query-languages/m/binary-viewfunction.md +++ b/query-languages/m/binary-viewfunction.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.ViewFunction" title: "Binary.ViewFunction | Microsoft Docs" ms.date: 7/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryencoding-type.md b/query-languages/m/binaryencoding-type.md index ba2eb0beb..100fadf03 100644 --- a/query-languages/m/binaryencoding-type.md +++ b/query-languages/m/binaryencoding-type.md @@ -4,7 +4,6 @@ title: "BinaryEncoding.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-7bitencodedsignedinteger.md b/query-languages/m/binaryformat-7bitencodedsignedinteger.md index ad81ce3bd..706957254 100644 --- a/query-languages/m/binaryformat-7bitencodedsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedsignedinteger.md @@ -4,7 +4,6 @@ title: "BinaryFormat.7BitEncodedSignedInteger | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md index a4b0333fc..c0249bcad 100644 --- a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md @@ -4,7 +4,6 @@ title: "BinaryFormat.7BitEncodedUnsignedInteger | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-binary.md b/query-languages/m/binaryformat-binary.md index 5dd57e60f..f342d4a46 100644 --- a/query-languages/m/binaryformat-binary.md +++ b/query-languages/m/binaryformat-binary.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Binary | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-byte.md b/query-languages/m/binaryformat-byte.md index 024d3122d..9a45a9de6 100644 --- a/query-languages/m/binaryformat-byte.md +++ b/query-languages/m/binaryformat-byte.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Byte | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-byteorder.md b/query-languages/m/binaryformat-byteorder.md index 369287a3a..12c494a20 100644 --- a/query-languages/m/binaryformat-byteorder.md +++ b/query-languages/m/binaryformat-byteorder.md @@ -4,7 +4,6 @@ title: "BinaryFormat.ByteOrder | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-choice.md b/query-languages/m/binaryformat-choice.md index eb824ea1c..672fd3a1e 100644 --- a/query-languages/m/binaryformat-choice.md +++ b/query-languages/m/binaryformat-choice.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Choice | Microsoft Docs" ms.date: 3/7/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-decimal.md b/query-languages/m/binaryformat-decimal.md index 8880b2ff9..04255d489 100644 --- a/query-languages/m/binaryformat-decimal.md +++ b/query-languages/m/binaryformat-decimal.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Decimal | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-double.md b/query-languages/m/binaryformat-double.md index ec483aac6..fe69240f6 100644 --- a/query-languages/m/binaryformat-double.md +++ b/query-languages/m/binaryformat-double.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Double | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-group.md b/query-languages/m/binaryformat-group.md index 135001b81..4a2f23cce 100644 --- a/query-languages/m/binaryformat-group.md +++ b/query-languages/m/binaryformat-group.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Group | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-length.md b/query-languages/m/binaryformat-length.md index 748b1a9bf..18a6e544f 100644 --- a/query-languages/m/binaryformat-length.md +++ b/query-languages/m/binaryformat-length.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Length | Microsoft Docs" ms.date: 3/7/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-list.md b/query-languages/m/binaryformat-list.md index 82f8f178d..fd0f367d5 100644 --- a/query-languages/m/binaryformat-list.md +++ b/query-languages/m/binaryformat-list.md @@ -4,7 +4,6 @@ title: "BinaryFormat.List | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-null.md b/query-languages/m/binaryformat-null.md index 693cbe705..faf9491d2 100644 --- a/query-languages/m/binaryformat-null.md +++ b/query-languages/m/binaryformat-null.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Null | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-record.md b/query-languages/m/binaryformat-record.md index 2c24bdeea..c873b858a 100644 --- a/query-languages/m/binaryformat-record.md +++ b/query-languages/m/binaryformat-record.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Record | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-signedinteger16.md b/query-languages/m/binaryformat-signedinteger16.md index 50c05698e..7ce85c784 100644 --- a/query-languages/m/binaryformat-signedinteger16.md +++ b/query-languages/m/binaryformat-signedinteger16.md @@ -4,7 +4,6 @@ title: "BinaryFormat.SignedInteger16 | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-signedinteger32.md b/query-languages/m/binaryformat-signedinteger32.md index ec384d434..476189ddc 100644 --- a/query-languages/m/binaryformat-signedinteger32.md +++ b/query-languages/m/binaryformat-signedinteger32.md @@ -4,7 +4,6 @@ title: "BinaryFormat.SignedInteger32 | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-signedinteger64.md b/query-languages/m/binaryformat-signedinteger64.md index 8edff0d2b..7ca4a80ad 100644 --- a/query-languages/m/binaryformat-signedinteger64.md +++ b/query-languages/m/binaryformat-signedinteger64.md @@ -4,7 +4,6 @@ title: "BinaryFormat.SignedInteger64 | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-single.md b/query-languages/m/binaryformat-single.md index 9d1f7e4ae..d9b9f248b 100644 --- a/query-languages/m/binaryformat-single.md +++ b/query-languages/m/binaryformat-single.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Single | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-text.md b/query-languages/m/binaryformat-text.md index a05d48d9f..dc46fa577 100644 --- a/query-languages/m/binaryformat-text.md +++ b/query-languages/m/binaryformat-text.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Text | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-transform.md b/query-languages/m/binaryformat-transform.md index c1d195e02..07f1a9743 100644 --- a/query-languages/m/binaryformat-transform.md +++ b/query-languages/m/binaryformat-transform.md @@ -4,7 +4,6 @@ title: "BinaryFormat.Transform | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-unsignedinteger16.md b/query-languages/m/binaryformat-unsignedinteger16.md index 68b8cba71..4e133288e 100644 --- a/query-languages/m/binaryformat-unsignedinteger16.md +++ b/query-languages/m/binaryformat-unsignedinteger16.md @@ -4,7 +4,6 @@ title: "BinaryFormat.UnsignedInteger16 | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-unsignedinteger32.md b/query-languages/m/binaryformat-unsignedinteger32.md index 06e22853e..1dfc7d228 100644 --- a/query-languages/m/binaryformat-unsignedinteger32.md +++ b/query-languages/m/binaryformat-unsignedinteger32.md @@ -4,7 +4,6 @@ title: "BinaryFormat.UnsignedInteger32 | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-unsignedinteger64.md b/query-languages/m/binaryformat-unsignedinteger64.md index fcddb1f19..8d9ec4658 100644 --- a/query-languages/m/binaryformat-unsignedinteger64.md +++ b/query-languages/m/binaryformat-unsignedinteger64.md @@ -4,7 +4,6 @@ title: "BinaryFormat.UnsignedInteger64 | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryoccurrence-type.md b/query-languages/m/binaryoccurrence-type.md index 1b8c6a1af..b1ed2d825 100644 --- a/query-languages/m/binaryoccurrence-type.md +++ b/query-languages/m/binaryoccurrence-type.md @@ -4,7 +4,6 @@ title: "BinaryOccurrence.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/buffermode-type.md b/query-languages/m/buffermode-type.md index fb75f4603..63d0ab716 100644 --- a/query-languages/m/buffermode-type.md +++ b/query-languages/m/buffermode-type.md @@ -4,7 +4,6 @@ title: "BufferMode.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index d54974083..0acfbf4eb 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -4,7 +4,6 @@ title: "Byte.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/byteorder-type.md b/query-languages/m/byteorder-type.md index d90bff544..e8b3d2364 100644 --- a/query-languages/m/byteorder-type.md +++ b/query-languages/m/byteorder-type.md @@ -4,7 +4,6 @@ title: "ByteOrder.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index 3cefeecc8..ea130d252 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -4,7 +4,6 @@ title: "Cdm.Contents | Microsoft Docs" ms.date: 03/18/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/character-fromnumber.md b/query-languages/m/character-fromnumber.md index 949b5331c..0dda7eaf5 100644 --- a/query-languages/m/character-fromnumber.md +++ b/query-languages/m/character-fromnumber.md @@ -4,7 +4,6 @@ title: "Character.FromNumber | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/character-tonumber.md b/query-languages/m/character-tonumber.md index 2016572a6..97f5875de 100644 --- a/query-languages/m/character-tonumber.md +++ b/query-languages/m/character-tonumber.md @@ -4,7 +4,6 @@ title: "Character.ToNumber | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbydelimiter.md b/query-languages/m/combiner-combinetextbydelimiter.md index b1fef07b1..b4374d768 100644 --- a/query-languages/m/combiner-combinetextbydelimiter.md +++ b/query-languages/m/combiner-combinetextbydelimiter.md @@ -4,7 +4,6 @@ title: "Combiner.CombineTextByDelimiter | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbyeachdelimiter.md b/query-languages/m/combiner-combinetextbyeachdelimiter.md index a3cb9f246..b221ac7a1 100644 --- a/query-languages/m/combiner-combinetextbyeachdelimiter.md +++ b/query-languages/m/combiner-combinetextbyeachdelimiter.md @@ -4,7 +4,6 @@ title: "Combiner.CombineTextByEachDelimiter | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbylengths.md b/query-languages/m/combiner-combinetextbylengths.md index 05c5e74ac..4a2bdbf96 100644 --- a/query-languages/m/combiner-combinetextbylengths.md +++ b/query-languages/m/combiner-combinetextbylengths.md @@ -4,7 +4,6 @@ title: "Combiner.CombineTextByLengths | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbypositions.md b/query-languages/m/combiner-combinetextbypositions.md index 285bc4bdc..0c25cdb23 100644 --- a/query-languages/m/combiner-combinetextbypositions.md +++ b/query-languages/m/combiner-combinetextbypositions.md @@ -4,7 +4,6 @@ title: "Combiner.CombineTextByPositions | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbyranges.md b/query-languages/m/combiner-combinetextbyranges.md index 71815173c..deca20828 100644 --- a/query-languages/m/combiner-combinetextbyranges.md +++ b/query-languages/m/combiner-combinetextbyranges.md @@ -4,7 +4,6 @@ title: "Combiner.CombineTextByRanges | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index eef5b0cec..34eaec745 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -4,7 +4,6 @@ title: "Combiner functions | Microsoft Docs" ms.date: 5/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comments.md b/query-languages/m/comments.md index 9d89f29c8..83e5b211f 100644 --- a/query-languages/m/comments.md +++ b/query-languages/m/comments.md @@ -3,7 +3,6 @@ description: "Learn more about: Comments" title: "Comments | Microsoft Docs" ms.date: 12/12/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index 1b91a08c4..a125a5479 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -4,7 +4,6 @@ title: "Comparer.Equals | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index 18701c24e..a02273552 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -4,7 +4,6 @@ title: "Comparer.FromCulture | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-functions.md b/query-languages/m/comparer-functions.md index 0e2825317..1417801e1 100644 --- a/query-languages/m/comparer-functions.md +++ b/query-languages/m/comparer-functions.md @@ -4,7 +4,6 @@ title: "Comparer functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-ordinal.md b/query-languages/m/comparer-ordinal.md index a2fcc645c..34e0f0011 100644 --- a/query-languages/m/comparer-ordinal.md +++ b/query-languages/m/comparer-ordinal.md @@ -4,7 +4,6 @@ title: "Comparer.Ordinal | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-ordinalignorecase.md b/query-languages/m/comparer-ordinalignorecase.md index 4a6b79b70..6790db841 100644 --- a/query-languages/m/comparer-ordinalignorecase.md +++ b/query-languages/m/comparer-ordinalignorecase.md @@ -4,7 +4,6 @@ title: "Comparer.OrdinalIgnoreCase | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/compression-type.md b/query-languages/m/compression-type.md index a6aeffc83..f8d2f4aba 100644 --- a/query-languages/m/compression-type.md +++ b/query-languages/m/compression-type.md @@ -4,7 +4,6 @@ title: "Compression.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/constants.md b/query-languages/m/constants.md index 7d533ac60..bad7f306e 100644 --- a/query-languages/m/constants.md +++ b/query-languages/m/constants.md @@ -4,7 +4,6 @@ title: "Constants | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 32054bd30..d7505e2b8 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -4,7 +4,6 @@ title: "Csv.Document | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/csvstyle-type.md b/query-languages/m/csvstyle-type.md index b29f78fca..e332cd621 100644 --- a/query-languages/m/csvstyle-type.md +++ b/query-languages/m/csvstyle-type.md @@ -4,7 +4,6 @@ title: "CsvStyle.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-addandexpanddimensioncolumn.md b/query-languages/m/cube-addandexpanddimensioncolumn.md index 1b1636e85..b958ebc4e 100644 --- a/query-languages/m/cube-addandexpanddimensioncolumn.md +++ b/query-languages/m/cube-addandexpanddimensioncolumn.md @@ -4,7 +4,6 @@ title: "Cube.AddAndExpandDimensionColumn | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-addmeasurecolumn.md b/query-languages/m/cube-addmeasurecolumn.md index 8dfe3ee3b..a487e6b7c 100644 --- a/query-languages/m/cube-addmeasurecolumn.md +++ b/query-languages/m/cube-addmeasurecolumn.md @@ -4,7 +4,6 @@ title: "Cube.AddMeasureColumn | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-applyparameter.md b/query-languages/m/cube-applyparameter.md index 5dd5366c1..48cb9688d 100644 --- a/query-languages/m/cube-applyparameter.md +++ b/query-languages/m/cube-applyparameter.md @@ -4,7 +4,6 @@ title: "Cube.ApplyParameter | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-attributememberid.md b/query-languages/m/cube-attributememberid.md index 881c7c842..206d2d59b 100644 --- a/query-languages/m/cube-attributememberid.md +++ b/query-languages/m/cube-attributememberid.md @@ -4,7 +4,6 @@ title: "Cube.AttributeMemberId | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-attributememberproperty.md b/query-languages/m/cube-attributememberproperty.md index f5470be93..7734ffb13 100644 --- a/query-languages/m/cube-attributememberproperty.md +++ b/query-languages/m/cube-attributememberproperty.md @@ -4,7 +4,6 @@ title: "Cube.AttributeMemberProperty | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-collapseandremovecolumns.md b/query-languages/m/cube-collapseandremovecolumns.md index 828f2ce10..873b0c13c 100644 --- a/query-languages/m/cube-collapseandremovecolumns.md +++ b/query-languages/m/cube-collapseandremovecolumns.md @@ -4,7 +4,6 @@ title: "Cube.CollapseAndRemoveColumns | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-dimensions.md b/query-languages/m/cube-dimensions.md index 9c8cb6163..b771e63fa 100644 --- a/query-languages/m/cube-dimensions.md +++ b/query-languages/m/cube-dimensions.md @@ -4,7 +4,6 @@ title: "Cube.Dimensions | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-displayfolders.md b/query-languages/m/cube-displayfolders.md index 90aeba642..d1fc4f8c5 100644 --- a/query-languages/m/cube-displayfolders.md +++ b/query-languages/m/cube-displayfolders.md @@ -4,7 +4,6 @@ title: "Cube.DisplayFolders | Microsoft Docs" ms.date: 11/17/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-measureproperties.md b/query-languages/m/cube-measureproperties.md index d22c5677b..3056f06a5 100644 --- a/query-languages/m/cube-measureproperties.md +++ b/query-languages/m/cube-measureproperties.md @@ -4,7 +4,6 @@ title: "Cube.MeasureProperties | Microsoft Docs" ms.date: 8/17/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-measureproperty.md b/query-languages/m/cube-measureproperty.md index e209b75b3..4c38ca4cc 100644 --- a/query-languages/m/cube-measureproperty.md +++ b/query-languages/m/cube-measureproperty.md @@ -4,7 +4,6 @@ title: "Cube.MeasureProperty| Microsoft Docs" ms.date: 8/17/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-measures.md b/query-languages/m/cube-measures.md index 810f80785..469ca25cb 100644 --- a/query-languages/m/cube-measures.md +++ b/query-languages/m/cube-measures.md @@ -4,7 +4,6 @@ title: "Cube.Measures | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-parameters.md b/query-languages/m/cube-parameters.md index afcbc855a..b2e9504c5 100644 --- a/query-languages/m/cube-parameters.md +++ b/query-languages/m/cube-parameters.md @@ -4,7 +4,6 @@ title: "Cube.Parameters | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-properties.md b/query-languages/m/cube-properties.md index 518435d94..921b5be4f 100644 --- a/query-languages/m/cube-properties.md +++ b/query-languages/m/cube-properties.md @@ -4,7 +4,6 @@ title: "Cube.Properties | Microsoft Docs" ms.date: 4/17/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-propertykey.md b/query-languages/m/cube-propertykey.md index 1c29c0c80..bb50e15cc 100644 --- a/query-languages/m/cube-propertykey.md +++ b/query-languages/m/cube-propertykey.md @@ -4,7 +4,6 @@ title: "Cube.PropertyKey | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-replacedimensions.md b/query-languages/m/cube-replacedimensions.md index b52bb21ec..e16e2ad1b 100644 --- a/query-languages/m/cube-replacedimensions.md +++ b/query-languages/m/cube-replacedimensions.md @@ -4,7 +4,6 @@ title: "Cube.ReplaceDimensions | Microsoft Docs" ms.date: 1/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-transform.md b/query-languages/m/cube-transform.md index fd7efd836..76aea0604 100644 --- a/query-languages/m/cube-transform.md +++ b/query-languages/m/cube-transform.md @@ -4,7 +4,6 @@ title: "Cube.Transform | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/culture-current.md b/query-languages/m/culture-current.md index e3bcb5c0d..d8e9ea435 100644 --- a/query-languages/m/culture-current.md +++ b/query-languages/m/culture-current.md @@ -4,7 +4,6 @@ title: "Culture.Current | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/currency-from.md b/query-languages/m/currency-from.md index 3119a3454..5e70c22a4 100644 --- a/query-languages/m/currency-from.md +++ b/query-languages/m/currency-from.md @@ -4,7 +4,6 @@ title: "Currency.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-adddays.md b/query-languages/m/date-adddays.md index c6b803dc5..dad147c42 100644 --- a/query-languages/m/date-adddays.md +++ b/query-languages/m/date-adddays.md @@ -4,7 +4,6 @@ title: "Date.AddDays | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-addmonths.md b/query-languages/m/date-addmonths.md index 6e6e735df..1bafbde47 100644 --- a/query-languages/m/date-addmonths.md +++ b/query-languages/m/date-addmonths.md @@ -4,7 +4,6 @@ title: "Date.AddMonths | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-addquarters.md b/query-languages/m/date-addquarters.md index 4676189f0..a1cd070b0 100644 --- a/query-languages/m/date-addquarters.md +++ b/query-languages/m/date-addquarters.md @@ -4,7 +4,6 @@ title: "Date.AddQuarters | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-addweeks.md b/query-languages/m/date-addweeks.md index 781e38466..f6067bf44 100644 --- a/query-languages/m/date-addweeks.md +++ b/query-languages/m/date-addweeks.md @@ -4,7 +4,6 @@ title: "Date.AddWeeks | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-addyears.md b/query-languages/m/date-addyears.md index 49bbe6369..f02bf6f86 100644 --- a/query-languages/m/date-addyears.md +++ b/query-languages/m/date-addyears.md @@ -4,7 +4,6 @@ title: "Date.AddYears | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-day.md b/query-languages/m/date-day.md index 6018ef41d..82a942884 100644 --- a/query-languages/m/date-day.md +++ b/query-languages/m/date-day.md @@ -4,7 +4,6 @@ title: "Date.Day | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-dayofweek.md b/query-languages/m/date-dayofweek.md index e4acde934..52f161643 100644 --- a/query-languages/m/date-dayofweek.md +++ b/query-languages/m/date-dayofweek.md @@ -4,7 +4,6 @@ title: "Date.DayOfWeek | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-dayofweekname.md b/query-languages/m/date-dayofweekname.md index bb9f6d8df..96736e460 100644 --- a/query-languages/m/date-dayofweekname.md +++ b/query-languages/m/date-dayofweekname.md @@ -4,7 +4,6 @@ title: "Date.DayOfWeekName | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-dayofyear.md b/query-languages/m/date-dayofyear.md index 72115eb59..d64d456ac 100644 --- a/query-languages/m/date-dayofyear.md +++ b/query-languages/m/date-dayofyear.md @@ -4,7 +4,6 @@ title: "Date.DayOfYear | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-daysinmonth.md b/query-languages/m/date-daysinmonth.md index a36b28411..b2c7814ac 100644 --- a/query-languages/m/date-daysinmonth.md +++ b/query-languages/m/date-daysinmonth.md @@ -4,7 +4,6 @@ title: "Date.DaysInMonth | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofday.md b/query-languages/m/date-endofday.md index 6cd7cfe46..94f2653e1 100644 --- a/query-languages/m/date-endofday.md +++ b/query-languages/m/date-endofday.md @@ -4,7 +4,6 @@ title: "Date.EndOfDay | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofmonth.md b/query-languages/m/date-endofmonth.md index 60d850558..244774eae 100644 --- a/query-languages/m/date-endofmonth.md +++ b/query-languages/m/date-endofmonth.md @@ -4,7 +4,6 @@ title: "Date.EndOfMonth | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofquarter.md b/query-languages/m/date-endofquarter.md index 302a95c6e..3101e562a 100644 --- a/query-languages/m/date-endofquarter.md +++ b/query-languages/m/date-endofquarter.md @@ -4,7 +4,6 @@ title: "Date.EndOfQuarter | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofweek.md b/query-languages/m/date-endofweek.md index 634c20668..fdf9838c8 100644 --- a/query-languages/m/date-endofweek.md +++ b/query-languages/m/date-endofweek.md @@ -4,7 +4,6 @@ title: "Date.EndOfWeek | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofyear.md b/query-languages/m/date-endofyear.md index 70d43d652..4c2623ebb 100644 --- a/query-languages/m/date-endofyear.md +++ b/query-languages/m/date-endofyear.md @@ -4,7 +4,6 @@ title: "Date.EndOfYear | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-from.md b/query-languages/m/date-from.md index 52e62b362..bfee70b3a 100644 --- a/query-languages/m/date-from.md +++ b/query-languages/m/date-from.md @@ -4,7 +4,6 @@ title: "Date.From | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-fromtext.md b/query-languages/m/date-fromtext.md index e6a13a818..5ebfbdddb 100644 --- a/query-languages/m/date-fromtext.md +++ b/query-languages/m/date-fromtext.md @@ -4,7 +4,6 @@ title: "Date.FromText | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index e45671b28..d64d880fc 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -4,7 +4,6 @@ title: "Date functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentday.md b/query-languages/m/date-isincurrentday.md index 13a2c9b19..0743a0e3c 100644 --- a/query-languages/m/date-isincurrentday.md +++ b/query-languages/m/date-isincurrentday.md @@ -4,7 +4,6 @@ title: "Date.IsInCurrentDay | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentmonth.md b/query-languages/m/date-isincurrentmonth.md index cd36d0922..47a567963 100644 --- a/query-languages/m/date-isincurrentmonth.md +++ b/query-languages/m/date-isincurrentmonth.md @@ -4,7 +4,6 @@ title: "Date.IsInCurrentMonth | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentquarter.md b/query-languages/m/date-isincurrentquarter.md index 3e00bb603..271a3359a 100644 --- a/query-languages/m/date-isincurrentquarter.md +++ b/query-languages/m/date-isincurrentquarter.md @@ -4,7 +4,6 @@ title: "Date.IsInCurrentQuarter | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentweek.md b/query-languages/m/date-isincurrentweek.md index cc6a199b3..134eb215b 100644 --- a/query-languages/m/date-isincurrentweek.md +++ b/query-languages/m/date-isincurrentweek.md @@ -4,7 +4,6 @@ title: "Date.IsInCurrentWeek | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentyear.md b/query-languages/m/date-isincurrentyear.md index 2616523c8..ab3acd04c 100644 --- a/query-languages/m/date-isincurrentyear.md +++ b/query-languages/m/date-isincurrentyear.md @@ -4,7 +4,6 @@ title: "Date.IsInCurrentYear | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextday.md b/query-languages/m/date-isinnextday.md index 92aacfc81..59eef9f3b 100644 --- a/query-languages/m/date-isinnextday.md +++ b/query-languages/m/date-isinnextday.md @@ -4,7 +4,6 @@ title: "Date.IsInNextDay | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextmonth.md b/query-languages/m/date-isinnextmonth.md index d1673ef42..5154c4e05 100644 --- a/query-languages/m/date-isinnextmonth.md +++ b/query-languages/m/date-isinnextmonth.md @@ -4,7 +4,6 @@ title: "Date.IsInNextMonth | Microsoft Docs" ms.date: 3/22/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextndays.md b/query-languages/m/date-isinnextndays.md index 91ff98ee8..1333e8b70 100644 --- a/query-languages/m/date-isinnextndays.md +++ b/query-languages/m/date-isinnextndays.md @@ -4,7 +4,6 @@ title: "Date.IsInNextNDays | Microsoft Docs" ms.date: 3/22/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextnmonths.md b/query-languages/m/date-isinnextnmonths.md index b265185fb..698cce729 100644 --- a/query-languages/m/date-isinnextnmonths.md +++ b/query-languages/m/date-isinnextnmonths.md @@ -4,7 +4,6 @@ title: "Date.IsInNextNMonths | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextnquarters.md b/query-languages/m/date-isinnextnquarters.md index 81bab5669..1358447e2 100644 --- a/query-languages/m/date-isinnextnquarters.md +++ b/query-languages/m/date-isinnextnquarters.md @@ -4,7 +4,6 @@ title: "Date.IsInNextNQuarters | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextnweeks.md b/query-languages/m/date-isinnextnweeks.md index 3a6e34909..9a7ce33b7 100644 --- a/query-languages/m/date-isinnextnweeks.md +++ b/query-languages/m/date-isinnextnweeks.md @@ -4,7 +4,6 @@ title: "Date.IsInNextNWeeks | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextnyears.md b/query-languages/m/date-isinnextnyears.md index ca823c264..479fb7f65 100644 --- a/query-languages/m/date-isinnextnyears.md +++ b/query-languages/m/date-isinnextnyears.md @@ -4,7 +4,6 @@ title: "Date.IsInNextNYears | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextquarter.md b/query-languages/m/date-isinnextquarter.md index 7f88eca69..0bf3673b2 100644 --- a/query-languages/m/date-isinnextquarter.md +++ b/query-languages/m/date-isinnextquarter.md @@ -4,7 +4,6 @@ title: "Date.IsInNextQuarter | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextweek.md b/query-languages/m/date-isinnextweek.md index 061844d30..938bc916a 100644 --- a/query-languages/m/date-isinnextweek.md +++ b/query-languages/m/date-isinnextweek.md @@ -4,7 +4,6 @@ title: "Date.IsInNextWeek | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextyear.md b/query-languages/m/date-isinnextyear.md index 2422c3455..3a28d3891 100644 --- a/query-languages/m/date-isinnextyear.md +++ b/query-languages/m/date-isinnextyear.md @@ -4,7 +4,6 @@ title: "Date.IsInNextYear | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousday.md b/query-languages/m/date-isinpreviousday.md index 64c1d6a13..69d67ce1a 100644 --- a/query-languages/m/date-isinpreviousday.md +++ b/query-languages/m/date-isinpreviousday.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousDay | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousmonth.md b/query-languages/m/date-isinpreviousmonth.md index b1407f58a..ee1fa7cc0 100644 --- a/query-languages/m/date-isinpreviousmonth.md +++ b/query-languages/m/date-isinpreviousmonth.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousMonth | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousndays.md b/query-languages/m/date-isinpreviousndays.md index ffee3e93c..553455800 100644 --- a/query-languages/m/date-isinpreviousndays.md +++ b/query-languages/m/date-isinpreviousndays.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousNDays | Microsoft Docs" ms.date: 3/22/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousnmonths.md b/query-languages/m/date-isinpreviousnmonths.md index 27d3228cf..924b8ed1b 100644 --- a/query-languages/m/date-isinpreviousnmonths.md +++ b/query-languages/m/date-isinpreviousnmonths.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousNMonths | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousnquarters.md b/query-languages/m/date-isinpreviousnquarters.md index 8697b8396..bc53dff63 100644 --- a/query-languages/m/date-isinpreviousnquarters.md +++ b/query-languages/m/date-isinpreviousnquarters.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousNQuarters | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousnweeks.md b/query-languages/m/date-isinpreviousnweeks.md index ae6837a4c..1b39312cc 100644 --- a/query-languages/m/date-isinpreviousnweeks.md +++ b/query-languages/m/date-isinpreviousnweeks.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousNWeeks | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousnyears.md b/query-languages/m/date-isinpreviousnyears.md index ca103d33e..9b5334ce6 100644 --- a/query-languages/m/date-isinpreviousnyears.md +++ b/query-languages/m/date-isinpreviousnyears.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousNYears | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousquarter.md b/query-languages/m/date-isinpreviousquarter.md index c0d533632..10f9b3481 100644 --- a/query-languages/m/date-isinpreviousquarter.md +++ b/query-languages/m/date-isinpreviousquarter.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousQuarter | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousweek.md b/query-languages/m/date-isinpreviousweek.md index 852ad0266..2eb82d329 100644 --- a/query-languages/m/date-isinpreviousweek.md +++ b/query-languages/m/date-isinpreviousweek.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousWeek | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousyear.md b/query-languages/m/date-isinpreviousyear.md index b766e7c06..6df210d47 100644 --- a/query-languages/m/date-isinpreviousyear.md +++ b/query-languages/m/date-isinpreviousyear.md @@ -4,7 +4,6 @@ title: "Date.IsInPreviousYear | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinyeartodate.md b/query-languages/m/date-isinyeartodate.md index 860f772b1..376d8feca 100644 --- a/query-languages/m/date-isinyeartodate.md +++ b/query-languages/m/date-isinyeartodate.md @@ -4,7 +4,6 @@ title: "Date.IsInYearToDate | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isleapyear.md b/query-languages/m/date-isleapyear.md index 843db6cfb..cf048ae88 100644 --- a/query-languages/m/date-isleapyear.md +++ b/query-languages/m/date-isleapyear.md @@ -4,7 +4,6 @@ title: "Date.IsLeapYear | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-month.md b/query-languages/m/date-month.md index d081db74a..9e2498b47 100644 --- a/query-languages/m/date-month.md +++ b/query-languages/m/date-month.md @@ -4,7 +4,6 @@ title: "Date.Month | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-monthname.md b/query-languages/m/date-monthname.md index 468ff7959..50281a8d0 100644 --- a/query-languages/m/date-monthname.md +++ b/query-languages/m/date-monthname.md @@ -4,7 +4,6 @@ title: "Date.MonthName | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-quarterofyear.md b/query-languages/m/date-quarterofyear.md index f2615aabc..ceeb519b3 100644 --- a/query-languages/m/date-quarterofyear.md +++ b/query-languages/m/date-quarterofyear.md @@ -4,7 +4,6 @@ title: "Date.QuarterOfYear | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofday.md b/query-languages/m/date-startofday.md index 911a21eed..6636b130c 100644 --- a/query-languages/m/date-startofday.md +++ b/query-languages/m/date-startofday.md @@ -4,7 +4,6 @@ title: "Date.StartOfDay | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofmonth.md b/query-languages/m/date-startofmonth.md index d2986f940..b5bf68bf4 100644 --- a/query-languages/m/date-startofmonth.md +++ b/query-languages/m/date-startofmonth.md @@ -4,7 +4,6 @@ title: "Date.StartOfMonth | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofquarter.md b/query-languages/m/date-startofquarter.md index e290a6f65..87070635f 100644 --- a/query-languages/m/date-startofquarter.md +++ b/query-languages/m/date-startofquarter.md @@ -4,7 +4,6 @@ title: "Date.StartOfQuarter | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofweek.md b/query-languages/m/date-startofweek.md index 522a924e3..684e8f92c 100644 --- a/query-languages/m/date-startofweek.md +++ b/query-languages/m/date-startofweek.md @@ -4,7 +4,6 @@ title: "Date.StartOfWeek | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofyear.md b/query-languages/m/date-startofyear.md index b950c2604..6becae831 100644 --- a/query-languages/m/date-startofyear.md +++ b/query-languages/m/date-startofyear.md @@ -4,7 +4,6 @@ title: "Date.StartOfYear | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-torecord.md b/query-languages/m/date-torecord.md index 61b65be53..0b961a5ef 100644 --- a/query-languages/m/date-torecord.md +++ b/query-languages/m/date-torecord.md @@ -4,7 +4,6 @@ title: "Date.ToRecord | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-totext.md b/query-languages/m/date-totext.md index 3e81b2f86..ff900eeb8 100644 --- a/query-languages/m/date-totext.md +++ b/query-languages/m/date-totext.md @@ -4,7 +4,6 @@ title: "Date.ToText | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-weekofmonth.md b/query-languages/m/date-weekofmonth.md index 0381f59e0..10e967775 100644 --- a/query-languages/m/date-weekofmonth.md +++ b/query-languages/m/date-weekofmonth.md @@ -4,7 +4,6 @@ title: "Date.WeekOfMonth | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-weekofyear.md b/query-languages/m/date-weekofyear.md index 416a39867..62898388b 100644 --- a/query-languages/m/date-weekofyear.md +++ b/query-languages/m/date-weekofyear.md @@ -4,7 +4,6 @@ title: "Date.WeekOfYear | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-year.md b/query-languages/m/date-year.md index 90286b798..056512917 100644 --- a/query-languages/m/date-year.md +++ b/query-languages/m/date-year.md @@ -4,7 +4,6 @@ title: "Date.Year | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-addzone.md b/query-languages/m/datetime-addzone.md index 90fb1a90e..4a4325fe3 100644 --- a/query-languages/m/datetime-addzone.md +++ b/query-languages/m/datetime-addzone.md @@ -4,7 +4,6 @@ title: "DateTime.AddZone | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-date.md b/query-languages/m/datetime-date.md index c03ed6de2..7d4ee2071 100644 --- a/query-languages/m/datetime-date.md +++ b/query-languages/m/datetime-date.md @@ -4,7 +4,6 @@ title: "DateTime.Date | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-fixedlocalnow.md b/query-languages/m/datetime-fixedlocalnow.md index 268c76489..f7b5db0c0 100644 --- a/query-languages/m/datetime-fixedlocalnow.md +++ b/query-languages/m/datetime-fixedlocalnow.md @@ -4,7 +4,6 @@ title: "DateTime.FixedLocalNow | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-from.md b/query-languages/m/datetime-from.md index fd82f1c10..dfd59ebff 100644 --- a/query-languages/m/datetime-from.md +++ b/query-languages/m/datetime-from.md @@ -4,7 +4,6 @@ title: "DateTime.From | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-fromfiletime.md b/query-languages/m/datetime-fromfiletime.md index d6b36171f..3fce5f88c 100644 --- a/query-languages/m/datetime-fromfiletime.md +++ b/query-languages/m/datetime-fromfiletime.md @@ -4,7 +4,6 @@ title: "DateTime.FromFileTime | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-fromtext.md b/query-languages/m/datetime-fromtext.md index 1d94e6c60..c77b77a6f 100644 --- a/query-languages/m/datetime-fromtext.md +++ b/query-languages/m/datetime-fromtext.md @@ -4,7 +4,6 @@ title: "DateTime.FromText | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-functions.md b/query-languages/m/datetime-functions.md index e96c540c8..3c7711db5 100644 --- a/query-languages/m/datetime-functions.md +++ b/query-languages/m/datetime-functions.md @@ -4,7 +4,6 @@ title: "DateTime functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isincurrenthour.md b/query-languages/m/datetime-isincurrenthour.md index 902bca12c..b2bf291e9 100644 --- a/query-languages/m/datetime-isincurrenthour.md +++ b/query-languages/m/datetime-isincurrenthour.md @@ -4,7 +4,6 @@ title: "DateTime.IsInCurrentHour | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isincurrentminute.md b/query-languages/m/datetime-isincurrentminute.md index d804712cf..b2ea81987 100644 --- a/query-languages/m/datetime-isincurrentminute.md +++ b/query-languages/m/datetime-isincurrentminute.md @@ -4,7 +4,6 @@ title: "DateTime.IsInCurrentMinute | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isincurrentsecond.md b/query-languages/m/datetime-isincurrentsecond.md index 6b204a0ae..40e228536 100644 --- a/query-languages/m/datetime-isincurrentsecond.md +++ b/query-languages/m/datetime-isincurrentsecond.md @@ -4,7 +4,6 @@ title: "DateTime.IsInCurrentSecond | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnexthour.md b/query-languages/m/datetime-isinnexthour.md index 05936c7af..b05d8f2a2 100644 --- a/query-languages/m/datetime-isinnexthour.md +++ b/query-languages/m/datetime-isinnexthour.md @@ -4,7 +4,6 @@ title: "DateTime.IsInNextHour | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextminute.md b/query-languages/m/datetime-isinnextminute.md index 8b64b6d72..1e7deaf38 100644 --- a/query-languages/m/datetime-isinnextminute.md +++ b/query-languages/m/datetime-isinnextminute.md @@ -4,7 +4,6 @@ title: "DateTime.IsInNextMinute | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextnhours.md b/query-languages/m/datetime-isinnextnhours.md index 36437ab03..c63009dc3 100644 --- a/query-languages/m/datetime-isinnextnhours.md +++ b/query-languages/m/datetime-isinnextnhours.md @@ -4,7 +4,6 @@ title: "DateTime.IsInNextNHours | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextnminutes.md b/query-languages/m/datetime-isinnextnminutes.md index 2eae66476..604bcf404 100644 --- a/query-languages/m/datetime-isinnextnminutes.md +++ b/query-languages/m/datetime-isinnextnminutes.md @@ -4,7 +4,6 @@ title: "DateTime.IsInNextNMinutes | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextnseconds.md b/query-languages/m/datetime-isinnextnseconds.md index 4fe6acf41..5fc602bc1 100644 --- a/query-languages/m/datetime-isinnextnseconds.md +++ b/query-languages/m/datetime-isinnextnseconds.md @@ -4,7 +4,6 @@ title: "DateTime.IsInNextNSeconds | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextsecond.md b/query-languages/m/datetime-isinnextsecond.md index 89aed7dc6..38de41288 100644 --- a/query-languages/m/datetime-isinnextsecond.md +++ b/query-languages/m/datetime-isinnextsecond.md @@ -4,7 +4,6 @@ title: "DateTime.IsInNextSecond | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinprevioushour.md b/query-languages/m/datetime-isinprevioushour.md index 46c157455..5c8a40c13 100644 --- a/query-languages/m/datetime-isinprevioushour.md +++ b/query-languages/m/datetime-isinprevioushour.md @@ -4,7 +4,6 @@ title: "DateTime.IsInPreviousHour | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinpreviousminute.md b/query-languages/m/datetime-isinpreviousminute.md index b905ac923..abb46b07c 100644 --- a/query-languages/m/datetime-isinpreviousminute.md +++ b/query-languages/m/datetime-isinpreviousminute.md @@ -4,7 +4,6 @@ title: "DateTime.IsInPreviousMinute | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinpreviousnhours.md b/query-languages/m/datetime-isinpreviousnhours.md index d65724bc9..082f73bba 100644 --- a/query-languages/m/datetime-isinpreviousnhours.md +++ b/query-languages/m/datetime-isinpreviousnhours.md @@ -4,7 +4,6 @@ title: "DateTime.IsInPreviousNHours | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinpreviousnminutes.md b/query-languages/m/datetime-isinpreviousnminutes.md index 34df94ef9..5ea6b29ec 100644 --- a/query-languages/m/datetime-isinpreviousnminutes.md +++ b/query-languages/m/datetime-isinpreviousnminutes.md @@ -4,7 +4,6 @@ title: "DateTime.IsInPreviousNMinutes | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinpreviousnseconds.md b/query-languages/m/datetime-isinpreviousnseconds.md index bd48e67aa..71f11ddb4 100644 --- a/query-languages/m/datetime-isinpreviousnseconds.md +++ b/query-languages/m/datetime-isinpreviousnseconds.md @@ -4,7 +4,6 @@ title: "DateTime.IsInPreviousNSeconds | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinprevioussecond.md b/query-languages/m/datetime-isinprevioussecond.md index 9604993ec..5cc3979ae 100644 --- a/query-languages/m/datetime-isinprevioussecond.md +++ b/query-languages/m/datetime-isinprevioussecond.md @@ -4,7 +4,6 @@ title: "DateTime.IsInPreviousSecond | Microsoft Docs" ms.date: 3/11/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-localnow.md b/query-languages/m/datetime-localnow.md index daf0bd537..cf65173cc 100644 --- a/query-languages/m/datetime-localnow.md +++ b/query-languages/m/datetime-localnow.md @@ -4,7 +4,6 @@ title: "DateTime.LocalNow | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-time.md b/query-languages/m/datetime-time.md index 2bdc8eec5..809631ba2 100644 --- a/query-languages/m/datetime-time.md +++ b/query-languages/m/datetime-time.md @@ -4,7 +4,6 @@ title: "DateTime.Time | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-torecord.md b/query-languages/m/datetime-torecord.md index 514c7ab39..78199262f 100644 --- a/query-languages/m/datetime-torecord.md +++ b/query-languages/m/datetime-torecord.md @@ -4,7 +4,6 @@ title: "DateTime.ToRecord | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-totext.md b/query-languages/m/datetime-totext.md index 935025cfd..1aa2e4202 100644 --- a/query-languages/m/datetime-totext.md +++ b/query-languages/m/datetime-totext.md @@ -4,7 +4,6 @@ title: "DateTime.ToText | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-fixedlocalnow.md b/query-languages/m/datetimezone-fixedlocalnow.md index e71c6ad50..35d509c08 100644 --- a/query-languages/m/datetimezone-fixedlocalnow.md +++ b/query-languages/m/datetimezone-fixedlocalnow.md @@ -4,7 +4,6 @@ title: "DateTimeZone.FixedLocalNow | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-fixedutcnow.md b/query-languages/m/datetimezone-fixedutcnow.md index 4a1587a62..8228180d3 100644 --- a/query-languages/m/datetimezone-fixedutcnow.md +++ b/query-languages/m/datetimezone-fixedutcnow.md @@ -4,7 +4,6 @@ title: "DateTimeZone.FixedUtcNow | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index 77bf16672..5d10ee3cc 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -4,7 +4,6 @@ title: "DateTimeZone.From | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-fromfiletime.md b/query-languages/m/datetimezone-fromfiletime.md index bc12ced75..6d0376587 100644 --- a/query-languages/m/datetimezone-fromfiletime.md +++ b/query-languages/m/datetimezone-fromfiletime.md @@ -4,7 +4,6 @@ title: "DateTimeZone.FromFileTime | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-fromtext.md b/query-languages/m/datetimezone-fromtext.md index 0696f92d0..1d1852137 100644 --- a/query-languages/m/datetimezone-fromtext.md +++ b/query-languages/m/datetimezone-fromtext.md @@ -4,7 +4,6 @@ title: "DateTimeZone.FromText | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-functions.md b/query-languages/m/datetimezone-functions.md index ea45a5b34..12f6980d2 100644 --- a/query-languages/m/datetimezone-functions.md +++ b/query-languages/m/datetimezone-functions.md @@ -4,7 +4,6 @@ title: "DateTimeZone functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-localnow.md b/query-languages/m/datetimezone-localnow.md index 868f485ea..5cc8681c0 100644 --- a/query-languages/m/datetimezone-localnow.md +++ b/query-languages/m/datetimezone-localnow.md @@ -4,7 +4,6 @@ title: "DateTimeZone.LocalNow | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-removezone.md b/query-languages/m/datetimezone-removezone.md index df637afd2..430e40a8f 100644 --- a/query-languages/m/datetimezone-removezone.md +++ b/query-languages/m/datetimezone-removezone.md @@ -4,7 +4,6 @@ title: "DateTimeZone.RemoveZone | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-switchzone.md b/query-languages/m/datetimezone-switchzone.md index cdbef9229..03feb7616 100644 --- a/query-languages/m/datetimezone-switchzone.md +++ b/query-languages/m/datetimezone-switchzone.md @@ -4,7 +4,6 @@ title: "DateTimeZone.SwitchZone | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-tolocal.md b/query-languages/m/datetimezone-tolocal.md index c6ba7d7e8..fee244229 100644 --- a/query-languages/m/datetimezone-tolocal.md +++ b/query-languages/m/datetimezone-tolocal.md @@ -4,7 +4,6 @@ title: "DateTimeZone.ToLocal | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-torecord.md b/query-languages/m/datetimezone-torecord.md index 7d66521e0..c9dae77c3 100644 --- a/query-languages/m/datetimezone-torecord.md +++ b/query-languages/m/datetimezone-torecord.md @@ -4,7 +4,6 @@ title: "DateTimeZone.ToRecord | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-totext.md b/query-languages/m/datetimezone-totext.md index 6be1c868c..b4412c95b 100644 --- a/query-languages/m/datetimezone-totext.md +++ b/query-languages/m/datetimezone-totext.md @@ -4,7 +4,6 @@ title: "DateTimeZone.ToText | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-toutc.md b/query-languages/m/datetimezone-toutc.md index 1b13d85e1..48b7e7936 100644 --- a/query-languages/m/datetimezone-toutc.md +++ b/query-languages/m/datetimezone-toutc.md @@ -4,7 +4,6 @@ title: "DateTimeZone.ToUtc | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-utcnow.md b/query-languages/m/datetimezone-utcnow.md index e7485107e..99a036b4a 100644 --- a/query-languages/m/datetimezone-utcnow.md +++ b/query-languages/m/datetimezone-utcnow.md @@ -4,7 +4,6 @@ title: "DateTimeZone.UtcNow | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-zonehours.md b/query-languages/m/datetimezone-zonehours.md index a00c60fcb..ef0544bac 100644 --- a/query-languages/m/datetimezone-zonehours.md +++ b/query-languages/m/datetimezone-zonehours.md @@ -4,7 +4,6 @@ title: "DateTimeZone.ZoneHours | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-zoneminutes.md b/query-languages/m/datetimezone-zoneminutes.md index e61fbbb44..79d2dca7c 100644 --- a/query-languages/m/datetimezone-zoneminutes.md +++ b/query-languages/m/datetimezone-zoneminutes.md @@ -4,7 +4,6 @@ title: "DateTimeZone.ZoneMinutes | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/day-type.md b/query-languages/m/day-type.md index df6ffb4a9..d0c2657a6 100644 --- a/query-languages/m/day-type.md +++ b/query-languages/m/day-type.md @@ -4,7 +4,6 @@ title: "Day.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/db2-database.md b/query-languages/m/db2-database.md index 764ef98fc..0950f4a7f 100644 --- a/query-languages/m/db2-database.md +++ b/query-languages/m/db2-database.md @@ -3,7 +3,6 @@ description: "Learn more about: DB2.Database" title: "DB2.Database | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/decimal-from.md b/query-languages/m/decimal-from.md index 8a143e542..802fe3a67 100644 --- a/query-languages/m/decimal-from.md +++ b/query-languages/m/decimal-from.md @@ -4,7 +4,6 @@ title: "Decimal.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/diagnostics-activityid.md b/query-languages/m/diagnostics-activityid.md index 3919fd979..dcad64fa0 100644 --- a/query-languages/m/diagnostics-activityid.md +++ b/query-languages/m/diagnostics-activityid.md @@ -4,7 +4,6 @@ title: "Diagnostics.ActivityId | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/diagnostics-trace.md b/query-languages/m/diagnostics-trace.md index a37e5e999..350730ff3 100644 --- a/query-languages/m/diagnostics-trace.md +++ b/query-languages/m/diagnostics-trace.md @@ -4,7 +4,6 @@ title: "Diagnostics.Trace | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/directquerycapabilities-from.md b/query-languages/m/directquerycapabilities-from.md index d9057611f..42ad65b63 100644 --- a/query-languages/m/directquerycapabilities-from.md +++ b/query-languages/m/directquerycapabilities-from.md @@ -4,7 +4,6 @@ title: "DirectQueryCapabilities.From | Microsoft Docs" ms.date: 10/18/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/double-from.md b/query-languages/m/double-from.md index 63132b31f..bd99d3015 100644 --- a/query-languages/m/double-from.md +++ b/query-languages/m/double-from.md @@ -3,8 +3,6 @@ description: "Learn more about: Double.From" title: "Double.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery - -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-days.md b/query-languages/m/duration-days.md index d57fdef7d..76845289f 100644 --- a/query-languages/m/duration-days.md +++ b/query-languages/m/duration-days.md @@ -4,7 +4,6 @@ title: "Duration.Days | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-from.md b/query-languages/m/duration-from.md index 7aca5a526..c555cd4e3 100644 --- a/query-languages/m/duration-from.md +++ b/query-languages/m/duration-from.md @@ -4,7 +4,6 @@ title: "Duration.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-fromtext.md b/query-languages/m/duration-fromtext.md index 32e09e63d..c9cf1845a 100644 --- a/query-languages/m/duration-fromtext.md +++ b/query-languages/m/duration-fromtext.md @@ -4,7 +4,6 @@ title: "Duration.FromText | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-functions.md b/query-languages/m/duration-functions.md index 2de720ac2..19fa46ca8 100644 --- a/query-languages/m/duration-functions.md +++ b/query-languages/m/duration-functions.md @@ -4,7 +4,6 @@ title: "Duration functions | Microsoft Docs" ms.date: 7/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-hours.md b/query-languages/m/duration-hours.md index 512bcb7cc..e24bc5d0e 100644 --- a/query-languages/m/duration-hours.md +++ b/query-languages/m/duration-hours.md @@ -4,7 +4,6 @@ title: "Duration.Hours | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-minutes.md b/query-languages/m/duration-minutes.md index 7ca04752f..c512f210a 100644 --- a/query-languages/m/duration-minutes.md +++ b/query-languages/m/duration-minutes.md @@ -4,7 +4,6 @@ title: "Duration.Minutes | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-seconds.md b/query-languages/m/duration-seconds.md index 707956de7..2cee280d5 100644 --- a/query-languages/m/duration-seconds.md +++ b/query-languages/m/duration-seconds.md @@ -4,7 +4,6 @@ title: "Duration.Seconds | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-torecord.md b/query-languages/m/duration-torecord.md index 676274d3b..6f0aaca49 100644 --- a/query-languages/m/duration-torecord.md +++ b/query-languages/m/duration-torecord.md @@ -4,7 +4,6 @@ title: "Duration.ToRecord | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totaldays.md b/query-languages/m/duration-totaldays.md index a2372cf38..a46f2c586 100644 --- a/query-languages/m/duration-totaldays.md +++ b/query-languages/m/duration-totaldays.md @@ -4,7 +4,6 @@ title: "Duration.TotalDays | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totalhours.md b/query-languages/m/duration-totalhours.md index 305e84bf8..07cb98a8f 100644 --- a/query-languages/m/duration-totalhours.md +++ b/query-languages/m/duration-totalhours.md @@ -4,7 +4,6 @@ title: "Duration.TotalHours | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totalminutes.md b/query-languages/m/duration-totalminutes.md index 5a275c4ec..258b507e8 100644 --- a/query-languages/m/duration-totalminutes.md +++ b/query-languages/m/duration-totalminutes.md @@ -4,7 +4,6 @@ title: "Duration.TotalMinutes | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totalseconds.md b/query-languages/m/duration-totalseconds.md index b4ee0d1c7..b97098027 100644 --- a/query-languages/m/duration-totalseconds.md +++ b/query-languages/m/duration-totalseconds.md @@ -4,7 +4,6 @@ title: "Duration.TotalSeconds | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totext.md b/query-languages/m/duration-totext.md index f9caf3e8a..4eb91a24f 100644 --- a/query-languages/m/duration-totext.md +++ b/query-languages/m/duration-totext.md @@ -4,7 +4,6 @@ title: "Duration.ToText | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/dynamic-values.md b/query-languages/m/dynamic-values.md index 51743b45c..0abf74c14 100644 --- a/query-languages/m/dynamic-values.md +++ b/query-languages/m/dynamic-values.md @@ -4,7 +4,6 @@ title: "Dynamic values | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/embedded-value.md b/query-languages/m/embedded-value.md index d8a1df407..fcc40ec49 100644 --- a/query-languages/m/embedded-value.md +++ b/query-languages/m/embedded-value.md @@ -4,7 +4,6 @@ title: "Embedded.Value | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/enumerations.md b/query-languages/m/enumerations.md index 8860e180c..81a8fc76d 100644 --- a/query-languages/m/enumerations.md +++ b/query-languages/m/enumerations.md @@ -3,7 +3,6 @@ description: "Learn more about: Enumerations" title: "Accessing data enumerations | Microsoft Docs" ms.date: 6/27/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/error-handling.md b/query-languages/m/error-handling.md index 188e9d497..f76b74842 100644 --- a/query-languages/m/error-handling.md +++ b/query-languages/m/error-handling.md @@ -4,7 +4,6 @@ title: "Error handling functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/error-record.md b/query-languages/m/error-record.md index 736ba5219..32dff2302 100644 --- a/query-languages/m/error-record.md +++ b/query-languages/m/error-record.md @@ -4,7 +4,6 @@ title: "Error.Record | Microsoft Docs" ms.date: 1/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/errors.md b/query-languages/m/errors.md index f28c82c04..930e5342e 100644 --- a/query-languages/m/errors.md +++ b/query-languages/m/errors.md @@ -4,7 +4,6 @@ title: "Errors | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/essbase-cubes.md b/query-languages/m/essbase-cubes.md index d87a04fc8..90ddfc9df 100644 --- a/query-languages/m/essbase-cubes.md +++ b/query-languages/m/essbase-cubes.md @@ -3,7 +3,6 @@ description: "Learn more about: Essbase.Cubes" title: "Essbase.Cubes | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/evaluation-model.md b/query-languages/m/evaluation-model.md index e90a9e815..29bd9184b 100644 --- a/query-languages/m/evaluation-model.md +++ b/query-languages/m/evaluation-model.md @@ -4,7 +4,6 @@ title: "Evaluation model | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/excel-currentworkbook.md b/query-languages/m/excel-currentworkbook.md index 2e5535077..a92a4c5b1 100644 --- a/query-languages/m/excel-currentworkbook.md +++ b/query-languages/m/excel-currentworkbook.md @@ -4,7 +4,6 @@ title: "Excel.CurrentWorkbook | Microsoft Docs" ms.date: 7/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/excel-shapetable.md b/query-languages/m/excel-shapetable.md index 5ba8eed8a..ef219d7b1 100644 --- a/query-languages/m/excel-shapetable.md +++ b/query-languages/m/excel-shapetable.md @@ -4,7 +4,6 @@ title: "Excel.ShapeTable | Microsoft Docs" ms.date: 1/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md index b8172b301..c9e1b9a1b 100644 --- a/query-languages/m/excel-workbook.md +++ b/query-languages/m/excel-workbook.md @@ -4,7 +4,6 @@ title: "Excel.Workbook | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/exchange-contents.md b/query-languages/m/exchange-contents.md index 13911d1d1..2ed873733 100644 --- a/query-languages/m/exchange-contents.md +++ b/query-languages/m/exchange-contents.md @@ -4,7 +4,6 @@ title: "Exchange.Contents | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/expression-constant.md b/query-languages/m/expression-constant.md index 3fed95907..868afe1b3 100644 --- a/query-languages/m/expression-constant.md +++ b/query-languages/m/expression-constant.md @@ -3,7 +3,6 @@ description: "Learn more about: Expression.Constant" title: "Expression.Constant | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/expression-evaluate.md b/query-languages/m/expression-evaluate.md index 075af386b..d0898eecf 100644 --- a/query-languages/m/expression-evaluate.md +++ b/query-languages/m/expression-evaluate.md @@ -3,7 +3,6 @@ description: "Learn more about: Expression.Evaluate" title: "Expression.Evaluate | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/expression-functions.md b/query-languages/m/expression-functions.md index c7cf3ea0c..799943a51 100644 --- a/query-languages/m/expression-functions.md +++ b/query-languages/m/expression-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Expression functions" title: "Expression functions | Microsoft Docs" ms.date: 5/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/expression-identifier.md b/query-languages/m/expression-identifier.md index 999d904a1..f3e96150f 100644 --- a/query-languages/m/expression-identifier.md +++ b/query-languages/m/expression-identifier.md @@ -3,7 +3,6 @@ description: "Learn more about: Expression.Identifier" title: "Expression.Identifier | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index adf82193d..fc6b34172 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -4,7 +4,6 @@ title: "Expressions, values, and let expression | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/extravalues-type.md b/query-languages/m/extravalues-type.md index e3e2cae24..c7f2ea292 100644 --- a/query-languages/m/extravalues-type.md +++ b/query-languages/m/extravalues-type.md @@ -3,7 +3,6 @@ description: "Learn more about: ExtraValues.Type" title: "ExtraValues.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/file-contents.md b/query-languages/m/file-contents.md index 24852fe12..438ee7b0c 100644 --- a/query-languages/m/file-contents.md +++ b/query-languages/m/file-contents.md @@ -3,7 +3,6 @@ description: "Learn more about: File.Contents" title: "File.Contents | Microsoft Docs" ms.date: 9/13/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/folder-contents.md b/query-languages/m/folder-contents.md index d5f080570..561098810 100644 --- a/query-languages/m/folder-contents.md +++ b/query-languages/m/folder-contents.md @@ -3,7 +3,6 @@ description: "Learn more about: Folder.Contents" title: "Folder.Contents | Microsoft Docs" ms.date: 9/13/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/folder-files.md b/query-languages/m/folder-files.md index 30b26270f..754959083 100644 --- a/query-languages/m/folder-files.md +++ b/query-languages/m/folder-files.md @@ -3,7 +3,6 @@ description: "Learn more about: Folder.Files" title: "Folder.Files | Microsoft Docs" ms.date: 9/13/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-from.md b/query-languages/m/function-from.md index cdf0fa688..440c079a8 100644 --- a/query-languages/m/function-from.md +++ b/query-languages/m/function-from.md @@ -4,7 +4,6 @@ title: "Function.From | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-invoke.md b/query-languages/m/function-invoke.md index e18111267..9e1a82a88 100644 --- a/query-languages/m/function-invoke.md +++ b/query-languages/m/function-invoke.md @@ -4,7 +4,6 @@ title: "Function.Invoke | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-invokeafter.md b/query-languages/m/function-invokeafter.md index d0e697aee..717164c29 100644 --- a/query-languages/m/function-invokeafter.md +++ b/query-languages/m/function-invokeafter.md @@ -4,7 +4,6 @@ title: "Function.InvokeAfter | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-isdatasource.md b/query-languages/m/function-isdatasource.md index be8414946..a8f021ea5 100644 --- a/query-languages/m/function-isdatasource.md +++ b/query-languages/m/function-isdatasource.md @@ -4,7 +4,6 @@ title: "Function.IsDataSource | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-scalarvector.md b/query-languages/m/function-scalarvector.md index 00a7ed677..0314d9434 100644 --- a/query-languages/m/function-scalarvector.md +++ b/query-languages/m/function-scalarvector.md @@ -4,7 +4,6 @@ title: "Function.ScalarVector | Microsoft Docs" ms.date: 09/13/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-values.md b/query-languages/m/function-values.md index d44ff6222..9d621095f 100644 --- a/query-languages/m/function-values.md +++ b/query-languages/m/function-values.md @@ -4,7 +4,6 @@ title: "Function values | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geography-fromwellknowntext.md b/query-languages/m/geography-fromwellknowntext.md index 10e7424a8..5f93862c4 100644 --- a/query-languages/m/geography-fromwellknowntext.md +++ b/query-languages/m/geography-fromwellknowntext.md @@ -4,7 +4,6 @@ title: "Geography.FromWellKnownText | Microsoft Docs" ms.date: 7/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geography-towellknowntext.md b/query-languages/m/geography-towellknowntext.md index f79d3bb04..b8188bcd5 100644 --- a/query-languages/m/geography-towellknowntext.md +++ b/query-languages/m/geography-towellknowntext.md @@ -4,7 +4,6 @@ title: "Geography.ToWellKnownText | Microsoft Docs" ms.date: 7/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geographypoint-from.md b/query-languages/m/geographypoint-from.md index ae41e214f..3452b3a6f 100644 --- a/query-languages/m/geographypoint-from.md +++ b/query-languages/m/geographypoint-from.md @@ -4,7 +4,6 @@ title: "GeographyPoint.From | Microsoft Docs" ms.date: 7/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geometry-fromwellknowntext.md b/query-languages/m/geometry-fromwellknowntext.md index 2e5a9b6ec..a41f1dd33 100644 --- a/query-languages/m/geometry-fromwellknowntext.md +++ b/query-languages/m/geometry-fromwellknowntext.md @@ -4,7 +4,6 @@ title: "Geometry.FromWellKnownText | Microsoft Docs" ms.date: 7/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geometry-towellknowntext.md b/query-languages/m/geometry-towellknowntext.md index 8c0b822c8..c0e965a7f 100644 --- a/query-languages/m/geometry-towellknowntext.md +++ b/query-languages/m/geometry-towellknowntext.md @@ -4,7 +4,6 @@ title: "Geometry.ToWellKnownText | Microsoft Docs" ms.date: 7/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geometrypoint-from.md b/query-languages/m/geometrypoint-from.md index a4c6c8dc9..de0e99c74 100644 --- a/query-languages/m/geometrypoint-from.md +++ b/query-languages/m/geometrypoint-from.md @@ -4,7 +4,6 @@ title: "GeometryPoint.From | Microsoft Docs" ms.date: 7/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/googleanalytics-accounts.md b/query-languages/m/googleanalytics-accounts.md index 0a8a1dbb7..71650c2d8 100644 --- a/query-languages/m/googleanalytics-accounts.md +++ b/query-languages/m/googleanalytics-accounts.md @@ -4,7 +4,6 @@ title: "GoogleAnalytics.Accounts | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/graph-nodes.md b/query-languages/m/graph-nodes.md index 91a0827e0..db6e5cff3 100644 --- a/query-languages/m/graph-nodes.md +++ b/query-languages/m/graph-nodes.md @@ -4,7 +4,6 @@ title: "Graph.Nodes | Microsoft Docs" ms.date: 9/22/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/groupkind-type.md b/query-languages/m/groupkind-type.md index 875a344a7..9e4117742 100644 --- a/query-languages/m/groupkind-type.md +++ b/query-languages/m/groupkind-type.md @@ -3,7 +3,6 @@ description: "Learn more about: GroupKind.Type" title: "GroupKind.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/guid-from.md b/query-languages/m/guid-from.md index 69cf64f8e..096d80dd0 100644 --- a/query-languages/m/guid-from.md +++ b/query-languages/m/guid-from.md @@ -4,7 +4,6 @@ title: "Guid.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdfs-contents.md b/query-languages/m/hdfs-contents.md index 181b98262..9d811f6c8 100644 --- a/query-languages/m/hdfs-contents.md +++ b/query-languages/m/hdfs-contents.md @@ -4,7 +4,6 @@ title: "Hdfs.Contents | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdfs-files.md b/query-languages/m/hdfs-files.md index 6ab9bb009..ef4ce89d8 100644 --- a/query-languages/m/hdfs-files.md +++ b/query-languages/m/hdfs-files.md @@ -4,7 +4,6 @@ title: "Hdfs.Files | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdinsight-containers.md b/query-languages/m/hdinsight-containers.md index 0b89de797..bad0f5629 100644 --- a/query-languages/m/hdinsight-containers.md +++ b/query-languages/m/hdinsight-containers.md @@ -4,7 +4,6 @@ title: "HdInsight.Containers | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdinsight-contents.md b/query-languages/m/hdinsight-contents.md index d25444594..18260146d 100644 --- a/query-languages/m/hdinsight-contents.md +++ b/query-languages/m/hdinsight-contents.md @@ -4,7 +4,6 @@ title: "HdInsight.Contents | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdinsight-files.md b/query-languages/m/hdinsight-files.md index 729fac9e7..0cf9464ad 100644 --- a/query-languages/m/hdinsight-files.md +++ b/query-languages/m/hdinsight-files.md @@ -4,7 +4,6 @@ title: "HdInsight.Files | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/html-table.md b/query-languages/m/html-table.md index 7f3c1ff69..edfe63480 100644 --- a/query-languages/m/html-table.md +++ b/query-languages/m/html-table.md @@ -3,7 +3,6 @@ description: "Learn more about: Html.Table" title: "Html.Table | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/identity-from.md b/query-languages/m/identity-from.md index 786131cbc..fd0639127 100644 --- a/query-languages/m/identity-from.md +++ b/query-languages/m/identity-from.md @@ -4,7 +4,6 @@ title: "Identity.From | Microsoft Docs" ms.date: 3/28/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/identity-ismemberof.md b/query-languages/m/identity-ismemberof.md index 48f9d0577..95f5ac948 100644 --- a/query-languages/m/identity-ismemberof.md +++ b/query-languages/m/identity-ismemberof.md @@ -4,7 +4,6 @@ title: "Identity.IsMemberOf | Microsoft Docs" ms.date: 3/28/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/identityprovider-default.md b/query-languages/m/identityprovider-default.md index fb90fe0c6..3c2eb2040 100644 --- a/query-languages/m/identityprovider-default.md +++ b/query-languages/m/identityprovider-default.md @@ -4,7 +4,6 @@ title: "IdentityProvider.Default | Microsoft Docs" ms.date: 3/28/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/informix-database.md b/query-languages/m/informix-database.md index 534a487a9..53fe31f25 100644 --- a/query-languages/m/informix-database.md +++ b/query-languages/m/informix-database.md @@ -3,7 +3,6 @@ description: "Learn more about: Informix.Database" title: "Informix.Database | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/int16-from.md b/query-languages/m/int16-from.md index 5f0b70588..aa8b70083 100644 --- a/query-languages/m/int16-from.md +++ b/query-languages/m/int16-from.md @@ -4,7 +4,6 @@ title: "Int16.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/int32-from.md b/query-languages/m/int32-from.md index edb102590..3a724dbae 100644 --- a/query-languages/m/int32-from.md +++ b/query-languages/m/int32-from.md @@ -4,7 +4,6 @@ title: "Int32.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/int64-from.md b/query-languages/m/int64-from.md index eb97243af..75774e8ab 100644 --- a/query-languages/m/int64-from.md +++ b/query-languages/m/int64-from.md @@ -4,7 +4,6 @@ title: "Int64.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index 035c62517..5afa32fa9 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -4,7 +4,6 @@ title: "Int8.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index 2c29b5b45..a526dda7a 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -4,7 +4,6 @@ title: "ItemExpression.From | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/itemexpression-item.md b/query-languages/m/itemexpression-item.md index 5d79b5811..d2f58e162 100644 --- a/query-languages/m/itemexpression-item.md +++ b/query-languages/m/itemexpression-item.md @@ -4,7 +4,6 @@ title: "ItemExpression.Item | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/joinalgorithm-type.md b/query-languages/m/joinalgorithm-type.md index c80de9921..ee08dadc0 100644 --- a/query-languages/m/joinalgorithm-type.md +++ b/query-languages/m/joinalgorithm-type.md @@ -3,7 +3,6 @@ description: "Learn more about: JoinAlgorithm.Type" title: "JoinAlgorithm.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/joinkind-type.md b/query-languages/m/joinkind-type.md index 39e179bd1..37b4ef96b 100644 --- a/query-languages/m/joinkind-type.md +++ b/query-languages/m/joinkind-type.md @@ -3,7 +3,6 @@ description: "Learn more about: JoinKind.Type" title: "JoinKind.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/joinside-type.md b/query-languages/m/joinside-type.md index 31945f4eb..e9404699a 100644 --- a/query-languages/m/joinside-type.md +++ b/query-languages/m/joinside-type.md @@ -3,7 +3,6 @@ description: "Learn more about: JoinSide.Type" title: "JoinSide.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/json-document.md b/query-languages/m/json-document.md index 4802e65ae..71a976a5b 100644 --- a/query-languages/m/json-document.md +++ b/query-languages/m/json-document.md @@ -4,7 +4,6 @@ title: "Json.Document | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/json-fromvalue.md b/query-languages/m/json-fromvalue.md index bd3f1c705..8eda6037b 100644 --- a/query-languages/m/json-fromvalue.md +++ b/query-languages/m/json-fromvalue.md @@ -4,7 +4,6 @@ title: "Json.FromValue | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/limitclausekind-type.md b/query-languages/m/limitclausekind-type.md index ca165c5dd..604de89b0 100644 --- a/query-languages/m/limitclausekind-type.md +++ b/query-languages/m/limitclausekind-type.md @@ -4,7 +4,6 @@ title: "LimitClauseKind.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index 881cf784d..b9f65543d 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -4,7 +4,6 @@ title: "Lines.FromBinary | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index c1f15a709..9083551ed 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -4,7 +4,6 @@ title: "Lines.FromText | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-functions.md b/query-languages/m/lines-functions.md index 4bfae5f2c..6508c88e1 100644 --- a/query-languages/m/lines-functions.md +++ b/query-languages/m/lines-functions.md @@ -4,7 +4,6 @@ title: "Lines functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-tobinary.md b/query-languages/m/lines-tobinary.md index f3a4ac08f..e205cd89b 100644 --- a/query-languages/m/lines-tobinary.md +++ b/query-languages/m/lines-tobinary.md @@ -4,7 +4,6 @@ title: "Lines.ToBinary | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-totext.md b/query-languages/m/lines-totext.md index be71b609d..25feb7fb6 100644 --- a/query-languages/m/lines-totext.md +++ b/query-languages/m/lines-totext.md @@ -4,7 +4,6 @@ title: "Lines.ToText | Microsoft Docs" ms.date: 7/30/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-accumulate.md b/query-languages/m/list-accumulate.md index 9721bfdf6..36588db22 100644 --- a/query-languages/m/list-accumulate.md +++ b/query-languages/m/list-accumulate.md @@ -4,7 +4,6 @@ title: "List.Accumulate | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-alltrue.md b/query-languages/m/list-alltrue.md index 1ed020fd0..e7a3dfe9a 100644 --- a/query-languages/m/list-alltrue.md +++ b/query-languages/m/list-alltrue.md @@ -4,7 +4,6 @@ title: "List.AllTrue | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-alternate.md b/query-languages/m/list-alternate.md index a2c932e65..608b3ab68 100644 --- a/query-languages/m/list-alternate.md +++ b/query-languages/m/list-alternate.md @@ -4,7 +4,6 @@ title: "List.Alternate | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-anytrue.md b/query-languages/m/list-anytrue.md index 1c604cc83..5210c64e2 100644 --- a/query-languages/m/list-anytrue.md +++ b/query-languages/m/list-anytrue.md @@ -4,7 +4,6 @@ title: "List.AnyTrue | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-average.md b/query-languages/m/list-average.md index 939bec636..c6b615c6b 100644 --- a/query-languages/m/list-average.md +++ b/query-languages/m/list-average.md @@ -4,7 +4,6 @@ title: "List.Average | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-buffer.md b/query-languages/m/list-buffer.md index a0f1b976c..b4a26f056 100644 --- a/query-languages/m/list-buffer.md +++ b/query-languages/m/list-buffer.md @@ -4,7 +4,6 @@ title: "List.Buffer | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-combine.md b/query-languages/m/list-combine.md index 1fbc365c1..2b65ddb3a 100644 --- a/query-languages/m/list-combine.md +++ b/query-languages/m/list-combine.md @@ -4,7 +4,6 @@ title: "List.Combine | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-conformtopagereader.md b/query-languages/m/list-conformtopagereader.md index c9e6abb54..01c5fdb35 100644 --- a/query-languages/m/list-conformtopagereader.md +++ b/query-languages/m/list-conformtopagereader.md @@ -4,7 +4,6 @@ title: "List.ConformToPageReader | Microsoft Docs" ms.date: 8/21/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index fe04eb718..613d39872 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -4,7 +4,6 @@ title: "List.Contains | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index ec18a0b5c..d804c4f41 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -4,7 +4,6 @@ title: "List.ContainsAll | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index 452b41177..eabf70ec3 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -4,7 +4,6 @@ title: "List.ContainsAny | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-count.md b/query-languages/m/list-count.md index 0ff007160..37b1519a8 100644 --- a/query-languages/m/list-count.md +++ b/query-languages/m/list-count.md @@ -4,7 +4,6 @@ title: "List.Count | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-covariance.md b/query-languages/m/list-covariance.md index b173720e4..13da9b2fd 100644 --- a/query-languages/m/list-covariance.md +++ b/query-languages/m/list-covariance.md @@ -4,7 +4,6 @@ title: "List.Covariance | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-dates.md b/query-languages/m/list-dates.md index 9aa29fe55..acca43fb5 100644 --- a/query-languages/m/list-dates.md +++ b/query-languages/m/list-dates.md @@ -4,7 +4,6 @@ title: "List.Dates | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-datetimes.md b/query-languages/m/list-datetimes.md index 3bb809cd1..dbf3448d8 100644 --- a/query-languages/m/list-datetimes.md +++ b/query-languages/m/list-datetimes.md @@ -4,7 +4,6 @@ title: "List.DateTimes | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-datetimezones.md b/query-languages/m/list-datetimezones.md index 85fb8f858..9c2c3258c 100644 --- a/query-languages/m/list-datetimezones.md +++ b/query-languages/m/list-datetimezones.md @@ -4,7 +4,6 @@ title: "List.DateTimeZones | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-difference.md b/query-languages/m/list-difference.md index d771370be..63e58e2d7 100644 --- a/query-languages/m/list-difference.md +++ b/query-languages/m/list-difference.md @@ -4,7 +4,6 @@ title: "List.Difference | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index ceb9cf624..cfe0cd660 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -4,7 +4,6 @@ title: "List.Distinct | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-durations.md b/query-languages/m/list-durations.md index 5a23174d3..1e89a4bb7 100644 --- a/query-languages/m/list-durations.md +++ b/query-languages/m/list-durations.md @@ -4,7 +4,6 @@ title: "List.Durations | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-findtext.md b/query-languages/m/list-findtext.md index 5805a8f34..b3fcf00f9 100644 --- a/query-languages/m/list-findtext.md +++ b/query-languages/m/list-findtext.md @@ -4,7 +4,6 @@ title: "List.FindText | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-first.md b/query-languages/m/list-first.md index 34d776e1f..76d373f1e 100644 --- a/query-languages/m/list-first.md +++ b/query-languages/m/list-first.md @@ -4,7 +4,6 @@ title: "List.First | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-firstn.md b/query-languages/m/list-firstn.md index 0ef4c4051..7c8768c24 100644 --- a/query-languages/m/list-firstn.md +++ b/query-languages/m/list-firstn.md @@ -4,7 +4,6 @@ title: "List.FirstN | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index feb6e409d..d5d7e1c2b 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -4,7 +4,6 @@ title: "List functions | Microsoft Docs" ms.date: 7/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-generate.md b/query-languages/m/list-generate.md index c61333bc1..5c96a71c1 100644 --- a/query-languages/m/list-generate.md +++ b/query-languages/m/list-generate.md @@ -4,7 +4,6 @@ title: "List.Generate | Microsoft Docs" ms.date: 7/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-insertrange.md b/query-languages/m/list-insertrange.md index b17b6c8cf..50f6aaf2f 100644 --- a/query-languages/m/list-insertrange.md +++ b/query-languages/m/list-insertrange.md @@ -4,7 +4,6 @@ title: "List.InsertRange | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-intersect.md b/query-languages/m/list-intersect.md index 7f5d76895..4d991b460 100644 --- a/query-languages/m/list-intersect.md +++ b/query-languages/m/list-intersect.md @@ -4,7 +4,6 @@ title: "List.Intersect | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-isdistinct.md b/query-languages/m/list-isdistinct.md index 4cdc6e304..c6a95e0ca 100644 --- a/query-languages/m/list-isdistinct.md +++ b/query-languages/m/list-isdistinct.md @@ -4,7 +4,6 @@ title: "List.IsDistinct | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-isempty.md b/query-languages/m/list-isempty.md index 9b5c9029e..d6ebe67e0 100644 --- a/query-languages/m/list-isempty.md +++ b/query-languages/m/list-isempty.md @@ -4,7 +4,6 @@ title: "List.IsEmpty | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-last.md b/query-languages/m/list-last.md index 333e23b45..389a44a9e 100644 --- a/query-languages/m/list-last.md +++ b/query-languages/m/list-last.md @@ -4,7 +4,6 @@ title: "List.Last | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-lastn.md b/query-languages/m/list-lastn.md index 4b84c5bf5..8c2c3f446 100644 --- a/query-languages/m/list-lastn.md +++ b/query-languages/m/list-lastn.md @@ -4,7 +4,6 @@ title: "List.LastN | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-matchesall.md b/query-languages/m/list-matchesall.md index 476a27710..9928f3f47 100644 --- a/query-languages/m/list-matchesall.md +++ b/query-languages/m/list-matchesall.md @@ -4,7 +4,6 @@ title: "List.MatchesAll | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-matchesany.md b/query-languages/m/list-matchesany.md index 4c8f41138..e8f4cc68a 100644 --- a/query-languages/m/list-matchesany.md +++ b/query-languages/m/list-matchesany.md @@ -4,7 +4,6 @@ title: "List.MatchesAny | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-max.md b/query-languages/m/list-max.md index 90c083339..6b484444e 100644 --- a/query-languages/m/list-max.md +++ b/query-languages/m/list-max.md @@ -4,7 +4,6 @@ title: "List.Max | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-maxn.md b/query-languages/m/list-maxn.md index 6680bea07..1fb961e4f 100644 --- a/query-languages/m/list-maxn.md +++ b/query-languages/m/list-maxn.md @@ -4,7 +4,6 @@ title: "List.MaxN | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-median.md b/query-languages/m/list-median.md index 10a1b250e..881b1323e 100644 --- a/query-languages/m/list-median.md +++ b/query-languages/m/list-median.md @@ -4,7 +4,6 @@ title: "List.Median | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-min.md b/query-languages/m/list-min.md index 130e60a3c..b4032e911 100644 --- a/query-languages/m/list-min.md +++ b/query-languages/m/list-min.md @@ -4,7 +4,6 @@ title: "List.Min | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-minn.md b/query-languages/m/list-minn.md index 4a2807af4..a6aba471f 100644 --- a/query-languages/m/list-minn.md +++ b/query-languages/m/list-minn.md @@ -4,7 +4,6 @@ title: "List.MinN | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-mode.md b/query-languages/m/list-mode.md index 2d7c52c94..585b5564e 100644 --- a/query-languages/m/list-mode.md +++ b/query-languages/m/list-mode.md @@ -4,7 +4,6 @@ title: "List.Mode | Microsoft Docs" ms.date: 7/15/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-modes.md b/query-languages/m/list-modes.md index 6a467f98a..cbbee7616 100644 --- a/query-languages/m/list-modes.md +++ b/query-languages/m/list-modes.md @@ -4,7 +4,6 @@ title: "List.Modes | Microsoft Docs" ms.date: 7/15/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-nonnullcount.md b/query-languages/m/list-nonnullcount.md index 054b39222..a0ce2919b 100644 --- a/query-languages/m/list-nonnullcount.md +++ b/query-languages/m/list-nonnullcount.md @@ -4,7 +4,6 @@ title: "List.NonNullCount | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-numbers.md b/query-languages/m/list-numbers.md index 59af0c92d..e56ffb2b2 100644 --- a/query-languages/m/list-numbers.md +++ b/query-languages/m/list-numbers.md @@ -4,7 +4,6 @@ title: "List.Numbers | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-percentile.md b/query-languages/m/list-percentile.md index cf60edb8c..81ad19347 100644 --- a/query-languages/m/list-percentile.md +++ b/query-languages/m/list-percentile.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Percentile" title: "List.Percentile | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index 784e52bf6..d36311be4 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -4,7 +4,6 @@ title: "List.PositionOf | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index 7b773ff1a..3250e8505 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -4,7 +4,6 @@ title: "List.PositionOfAny | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-positions.md b/query-languages/m/list-positions.md index 33f12fa25..8222ffca1 100644 --- a/query-languages/m/list-positions.md +++ b/query-languages/m/list-positions.md @@ -4,7 +4,6 @@ title: "List.Positions | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-product.md b/query-languages/m/list-product.md index 2ee254c35..a08a7ed30 100644 --- a/query-languages/m/list-product.md +++ b/query-languages/m/list-product.md @@ -4,7 +4,6 @@ title: "List.Product | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-random.md b/query-languages/m/list-random.md index 0db3d9f03..3feb33979 100644 --- a/query-languages/m/list-random.md +++ b/query-languages/m/list-random.md @@ -4,7 +4,6 @@ title: "List.Random | Microsoft Docs" ms.date: 3/8/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-range.md b/query-languages/m/list-range.md index 5e9a0580f..f3d14e617 100644 --- a/query-languages/m/list-range.md +++ b/query-languages/m/list-range.md @@ -4,7 +4,6 @@ title: "List.Range | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removefirstn.md b/query-languages/m/list-removefirstn.md index 110aef108..8b921d8a8 100644 --- a/query-languages/m/list-removefirstn.md +++ b/query-languages/m/list-removefirstn.md @@ -4,7 +4,6 @@ title: "List.RemoveFirstN | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removeitems.md b/query-languages/m/list-removeitems.md index 8434af25a..7af8e1811 100644 --- a/query-languages/m/list-removeitems.md +++ b/query-languages/m/list-removeitems.md @@ -4,7 +4,6 @@ title: "List.RemoveItems | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removelastn.md b/query-languages/m/list-removelastn.md index 98f5104fd..75edb4d57 100644 --- a/query-languages/m/list-removelastn.md +++ b/query-languages/m/list-removelastn.md @@ -4,7 +4,6 @@ title: "List.RemoveLastN | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removematchingitems.md b/query-languages/m/list-removematchingitems.md index ad8b21670..5df3696a9 100644 --- a/query-languages/m/list-removematchingitems.md +++ b/query-languages/m/list-removematchingitems.md @@ -4,7 +4,6 @@ title: "List.RemoveMatchingItems | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removenulls.md b/query-languages/m/list-removenulls.md index 996291694..d06e95e2f 100644 --- a/query-languages/m/list-removenulls.md +++ b/query-languages/m/list-removenulls.md @@ -4,7 +4,6 @@ title: "List.RemoveNulls | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removerange.md b/query-languages/m/list-removerange.md index c1dcd49b9..9a2cee57d 100644 --- a/query-languages/m/list-removerange.md +++ b/query-languages/m/list-removerange.md @@ -4,7 +4,6 @@ title: "List.RemoveRange | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-repeat.md b/query-languages/m/list-repeat.md index 63a4efcfe..31d4b1455 100644 --- a/query-languages/m/list-repeat.md +++ b/query-languages/m/list-repeat.md @@ -4,7 +4,6 @@ title: "List.Repeat | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-replacematchingitems.md b/query-languages/m/list-replacematchingitems.md index 742a6dad9..77e84a90d 100644 --- a/query-languages/m/list-replacematchingitems.md +++ b/query-languages/m/list-replacematchingitems.md @@ -4,7 +4,6 @@ title: "List.ReplaceMatchingItems | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-replacerange.md b/query-languages/m/list-replacerange.md index b4482e5fa..e04fd8bd2 100644 --- a/query-languages/m/list-replacerange.md +++ b/query-languages/m/list-replacerange.md @@ -4,7 +4,6 @@ title: "List.ReplaceRange | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-replacevalue.md b/query-languages/m/list-replacevalue.md index 3d5e55747..02f9486a0 100644 --- a/query-languages/m/list-replacevalue.md +++ b/query-languages/m/list-replacevalue.md @@ -4,7 +4,6 @@ title: "List.ReplaceValue | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-reverse.md b/query-languages/m/list-reverse.md index d3dce0d2c..baefca5b4 100644 --- a/query-languages/m/list-reverse.md +++ b/query-languages/m/list-reverse.md @@ -4,7 +4,6 @@ title: "List.Reverse | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-select.md b/query-languages/m/list-select.md index c754228f8..5e8d3111e 100644 --- a/query-languages/m/list-select.md +++ b/query-languages/m/list-select.md @@ -4,7 +4,6 @@ title: "List.Select | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-single.md b/query-languages/m/list-single.md index ca28fcc9b..98172a7f3 100644 --- a/query-languages/m/list-single.md +++ b/query-languages/m/list-single.md @@ -4,7 +4,6 @@ title: "List.Single | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-singleordefault.md b/query-languages/m/list-singleordefault.md index 24b7a0826..cf821ee8c 100644 --- a/query-languages/m/list-singleordefault.md +++ b/query-languages/m/list-singleordefault.md @@ -4,7 +4,6 @@ title: "List.SingleOrDefault | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-skip.md b/query-languages/m/list-skip.md index 0d3cab12b..e58fe0279 100644 --- a/query-languages/m/list-skip.md +++ b/query-languages/m/list-skip.md @@ -4,7 +4,6 @@ title: "List.Skip | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-sort.md b/query-languages/m/list-sort.md index e0dd92de5..24e73707a 100644 --- a/query-languages/m/list-sort.md +++ b/query-languages/m/list-sort.md @@ -4,7 +4,6 @@ title: "List.Sort | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-split.md b/query-languages/m/list-split.md index cf3cd156e..9936b696a 100644 --- a/query-languages/m/list-split.md +++ b/query-languages/m/list-split.md @@ -4,7 +4,6 @@ title: "List.Split | Microsoft Docs" ms.date: 11/17/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-standarddeviation.md b/query-languages/m/list-standarddeviation.md index 48a160dea..477c86c04 100644 --- a/query-languages/m/list-standarddeviation.md +++ b/query-languages/m/list-standarddeviation.md @@ -4,7 +4,6 @@ title: "List.StandardDeviation | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-sum.md b/query-languages/m/list-sum.md index 07ac8a7bd..4348fb515 100644 --- a/query-languages/m/list-sum.md +++ b/query-languages/m/list-sum.md @@ -4,7 +4,6 @@ title: "List.Sum | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-times.md b/query-languages/m/list-times.md index 15c40d4d6..96c299648 100644 --- a/query-languages/m/list-times.md +++ b/query-languages/m/list-times.md @@ -4,7 +4,6 @@ title: "List.Times | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-transform.md b/query-languages/m/list-transform.md index bc4cb9058..f1ad6ed6b 100644 --- a/query-languages/m/list-transform.md +++ b/query-languages/m/list-transform.md @@ -4,7 +4,6 @@ title: "List.Transform | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-transformmany.md b/query-languages/m/list-transformmany.md index ab2933fc5..817d06206 100644 --- a/query-languages/m/list-transformmany.md +++ b/query-languages/m/list-transformmany.md @@ -4,7 +4,6 @@ title: "List.TransformMany | Microsoft Docs" ms.date: 10/18/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-union.md b/query-languages/m/list-union.md index 24d67c216..e07e41753 100644 --- a/query-languages/m/list-union.md +++ b/query-languages/m/list-union.md @@ -4,7 +4,6 @@ title: "List.Union | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-zip.md b/query-languages/m/list-zip.md index 92622bc5f..330dfc766 100644 --- a/query-languages/m/list-zip.md +++ b/query-languages/m/list-zip.md @@ -4,7 +4,6 @@ title: "List.Zip | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/logical-from.md b/query-languages/m/logical-from.md index baf209086..051632a81 100644 --- a/query-languages/m/logical-from.md +++ b/query-languages/m/logical-from.md @@ -4,7 +4,6 @@ title: "Logical.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/logical-fromtext.md b/query-languages/m/logical-fromtext.md index 9819af849..30aa707e1 100644 --- a/query-languages/m/logical-fromtext.md +++ b/query-languages/m/logical-fromtext.md @@ -4,7 +4,6 @@ title: "Logical.FromText | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/logical-functions.md b/query-languages/m/logical-functions.md index 6e131f18d..a962bf4d3 100644 --- a/query-languages/m/logical-functions.md +++ b/query-languages/m/logical-functions.md @@ -4,7 +4,6 @@ title: "Logical functions | Microsoft Docs" ms.date: 5/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/logical-totext.md b/query-languages/m/logical-totext.md index 9f5179f29..aa61c673f 100644 --- a/query-languages/m/logical-totext.md +++ b/query-languages/m/logical-totext.md @@ -4,7 +4,6 @@ title: "Logical.ToText | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/metadata.md b/query-languages/m/metadata.md index a882b4440..cebc5759e 100644 --- a/query-languages/m/metadata.md +++ b/query-languages/m/metadata.md @@ -4,7 +4,6 @@ title: "Metadata | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/missingfield-type.md b/query-languages/m/missingfield-type.md index d62a21b5c..a264692e7 100644 --- a/query-languages/m/missingfield-type.md +++ b/query-languages/m/missingfield-type.md @@ -4,7 +4,6 @@ title: "MissingField.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/mysql-database.md b/query-languages/m/mysql-database.md index c6ffb486d..e7ac96807 100644 --- a/query-languages/m/mysql-database.md +++ b/query-languages/m/mysql-database.md @@ -3,7 +3,6 @@ description: "Learn more about: MySQL.Database" title: "MySQL.Database | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-abs.md b/query-languages/m/number-abs.md index 81f330683..74c5d79ef 100644 --- a/query-languages/m/number-abs.md +++ b/query-languages/m/number-abs.md @@ -4,7 +4,6 @@ title: "Number.Abs | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-acos.md b/query-languages/m/number-acos.md index 1c2e35974..25cb1d336 100644 --- a/query-languages/m/number-acos.md +++ b/query-languages/m/number-acos.md @@ -4,7 +4,6 @@ title: "Number.Acos | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-asin.md b/query-languages/m/number-asin.md index ba0e89cb4..4a962734a 100644 --- a/query-languages/m/number-asin.md +++ b/query-languages/m/number-asin.md @@ -4,7 +4,6 @@ title: "Number.Asin | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-atan.md b/query-languages/m/number-atan.md index 6f1d871b4..8c44b2516 100644 --- a/query-languages/m/number-atan.md +++ b/query-languages/m/number-atan.md @@ -4,7 +4,6 @@ title: "Number.Atan | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-atan2.md b/query-languages/m/number-atan2.md index 98ea3159a..74c38fc26 100644 --- a/query-languages/m/number-atan2.md +++ b/query-languages/m/number-atan2.md @@ -4,7 +4,6 @@ title: "Number.Atan2 | Microsoft Docs" ms.date: 1/20/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwiseand.md b/query-languages/m/number-bitwiseand.md index f6846b58a..d0ff920c6 100644 --- a/query-languages/m/number-bitwiseand.md +++ b/query-languages/m/number-bitwiseand.md @@ -4,7 +4,6 @@ title: "Number.BitwiseAnd | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwisenot.md b/query-languages/m/number-bitwisenot.md index 6ffa96d80..755756682 100644 --- a/query-languages/m/number-bitwisenot.md +++ b/query-languages/m/number-bitwisenot.md @@ -4,7 +4,6 @@ title: "Number.BitwiseNot | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwiseor.md b/query-languages/m/number-bitwiseor.md index 6f900a47e..d4607d149 100644 --- a/query-languages/m/number-bitwiseor.md +++ b/query-languages/m/number-bitwiseor.md @@ -4,7 +4,6 @@ title: "Number.BitwiseOr | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwiseshiftleft.md b/query-languages/m/number-bitwiseshiftleft.md index eae049a94..a20080416 100644 --- a/query-languages/m/number-bitwiseshiftleft.md +++ b/query-languages/m/number-bitwiseshiftleft.md @@ -4,7 +4,6 @@ title: "Number.BitwiseShiftLeft | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwiseshiftright.md b/query-languages/m/number-bitwiseshiftright.md index 26a1dcb00..11cdfa2e6 100644 --- a/query-languages/m/number-bitwiseshiftright.md +++ b/query-languages/m/number-bitwiseshiftright.md @@ -4,7 +4,6 @@ title: "Number.BitwiseShiftRight | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwisexor.md b/query-languages/m/number-bitwisexor.md index 3491a890d..d066b1daa 100644 --- a/query-languages/m/number-bitwisexor.md +++ b/query-languages/m/number-bitwisexor.md @@ -4,7 +4,6 @@ title: "Number.BitwiseXor | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-combinations.md b/query-languages/m/number-combinations.md index 6c21f1323..4ac14a7f2 100644 --- a/query-languages/m/number-combinations.md +++ b/query-languages/m/number-combinations.md @@ -4,7 +4,6 @@ title: "Number.Combinations | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-cos.md b/query-languages/m/number-cos.md index d9526a5a2..7f0c98851 100644 --- a/query-languages/m/number-cos.md +++ b/query-languages/m/number-cos.md @@ -4,7 +4,6 @@ title: "Number.Cos | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-cosh.md b/query-languages/m/number-cosh.md index 0cec81c04..b28f9f02b 100644 --- a/query-languages/m/number-cosh.md +++ b/query-languages/m/number-cosh.md @@ -4,7 +4,6 @@ title: "Number.Cosh | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-e.md b/query-languages/m/number-e.md index d073a36e2..5cb08724f 100644 --- a/query-languages/m/number-e.md +++ b/query-languages/m/number-e.md @@ -4,7 +4,6 @@ title: "Number.E | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-epsilon.md b/query-languages/m/number-epsilon.md index f59459cab..679c1b94d 100644 --- a/query-languages/m/number-epsilon.md +++ b/query-languages/m/number-epsilon.md @@ -4,7 +4,6 @@ title: "Number.Epsilon | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-exp.md b/query-languages/m/number-exp.md index 432469501..ec8d07416 100644 --- a/query-languages/m/number-exp.md +++ b/query-languages/m/number-exp.md @@ -4,7 +4,6 @@ title: "Number.Exp | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-factorial.md b/query-languages/m/number-factorial.md index 45e82cade..27a26dced 100644 --- a/query-languages/m/number-factorial.md +++ b/query-languages/m/number-factorial.md @@ -4,7 +4,6 @@ title: "Number.Factorial | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-from.md b/query-languages/m/number-from.md index 1178f7721..caaf8bedf 100644 --- a/query-languages/m/number-from.md +++ b/query-languages/m/number-from.md @@ -4,7 +4,6 @@ title: "Number.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-fromtext.md b/query-languages/m/number-fromtext.md index 1298a3dbd..61efdc735 100644 --- a/query-languages/m/number-fromtext.md +++ b/query-languages/m/number-fromtext.md @@ -4,7 +4,6 @@ title: "Number.FromText | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-functions.md b/query-languages/m/number-functions.md index 2f5a4c514..6dba39b2f 100644 --- a/query-languages/m/number-functions.md +++ b/query-languages/m/number-functions.md @@ -4,7 +4,6 @@ title: "Number functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-integerdivide.md b/query-languages/m/number-integerdivide.md index 3cc0a24d4..bd099970c 100644 --- a/query-languages/m/number-integerdivide.md +++ b/query-languages/m/number-integerdivide.md @@ -4,7 +4,6 @@ title: "Number.IntegerDivide | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-iseven.md b/query-languages/m/number-iseven.md index 1aba6f6e3..4edfcdb38 100644 --- a/query-languages/m/number-iseven.md +++ b/query-languages/m/number-iseven.md @@ -4,7 +4,6 @@ title: "Number.IsEven | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-isnan.md b/query-languages/m/number-isnan.md index 39ea66ebe..467a461e8 100644 --- a/query-languages/m/number-isnan.md +++ b/query-languages/m/number-isnan.md @@ -4,7 +4,6 @@ title: "Number.IsNaN | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-isodd.md b/query-languages/m/number-isodd.md index 1a2d1588d..0e71a20dc 100644 --- a/query-languages/m/number-isodd.md +++ b/query-languages/m/number-isodd.md @@ -4,7 +4,6 @@ title: "Number.IsOdd | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-ln.md b/query-languages/m/number-ln.md index 7e0e6f4e8..7783b61d8 100644 --- a/query-languages/m/number-ln.md +++ b/query-languages/m/number-ln.md @@ -4,7 +4,6 @@ title: "Number.Ln | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-log.md b/query-languages/m/number-log.md index b565e158d..f4cc9d493 100644 --- a/query-languages/m/number-log.md +++ b/query-languages/m/number-log.md @@ -4,7 +4,6 @@ title: "Number.Log | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-log10.md b/query-languages/m/number-log10.md index f8742dbd3..18252d129 100644 --- a/query-languages/m/number-log10.md +++ b/query-languages/m/number-log10.md @@ -4,7 +4,6 @@ title: "Number.Log10 | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-mod.md b/query-languages/m/number-mod.md index 807400dc4..62b540d18 100644 --- a/query-languages/m/number-mod.md +++ b/query-languages/m/number-mod.md @@ -4,7 +4,6 @@ title: "Number.Mod | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-nan.md b/query-languages/m/number-nan.md index 48488acb5..9d8879911 100644 --- a/query-languages/m/number-nan.md +++ b/query-languages/m/number-nan.md @@ -4,7 +4,6 @@ title: "Number.NaN | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-negativeinfinity.md b/query-languages/m/number-negativeinfinity.md index 2053ad8c4..123665c61 100644 --- a/query-languages/m/number-negativeinfinity.md +++ b/query-languages/m/number-negativeinfinity.md @@ -4,7 +4,6 @@ title: "Number.NegativeInfinity | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-permutations.md b/query-languages/m/number-permutations.md index 3b2eab368..74388c47f 100644 --- a/query-languages/m/number-permutations.md +++ b/query-languages/m/number-permutations.md @@ -4,7 +4,6 @@ title: "Number.Permutations | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-pi.md b/query-languages/m/number-pi.md index 17d4a7731..a31ef9a27 100644 --- a/query-languages/m/number-pi.md +++ b/query-languages/m/number-pi.md @@ -4,7 +4,6 @@ title: "Number.PI | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-positiveinfinity.md b/query-languages/m/number-positiveinfinity.md index 363ea0488..4c9c5a622 100644 --- a/query-languages/m/number-positiveinfinity.md +++ b/query-languages/m/number-positiveinfinity.md @@ -4,7 +4,6 @@ title: "Number.PositiveInfinity | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-power.md b/query-languages/m/number-power.md index aa054f937..18a95d568 100644 --- a/query-languages/m/number-power.md +++ b/query-languages/m/number-power.md @@ -4,7 +4,6 @@ title: "Number.Power | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-random.md b/query-languages/m/number-random.md index e445594dd..ce433f65b 100644 --- a/query-languages/m/number-random.md +++ b/query-languages/m/number-random.md @@ -4,7 +4,6 @@ title: "Number.Random | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-randombetween.md b/query-languages/m/number-randombetween.md index a2004cf8a..e6afcbe3a 100644 --- a/query-languages/m/number-randombetween.md +++ b/query-languages/m/number-randombetween.md @@ -4,7 +4,6 @@ title: "Number.RandomBetween | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-round.md b/query-languages/m/number-round.md index 7fc8b786b..d208cc9a5 100644 --- a/query-languages/m/number-round.md +++ b/query-languages/m/number-round.md @@ -4,7 +4,6 @@ title: "Number.Round | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-roundawayfromzero.md b/query-languages/m/number-roundawayfromzero.md index ad49dd546..8fa051adc 100644 --- a/query-languages/m/number-roundawayfromzero.md +++ b/query-languages/m/number-roundawayfromzero.md @@ -4,7 +4,6 @@ title: "Number.RoundAwayFromZero | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-rounddown.md b/query-languages/m/number-rounddown.md index b48865130..87a98ead0 100644 --- a/query-languages/m/number-rounddown.md +++ b/query-languages/m/number-rounddown.md @@ -4,7 +4,6 @@ title: "Number.RoundDown | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-roundtowardzero.md b/query-languages/m/number-roundtowardzero.md index 2083faa6f..44dd4e9f3 100644 --- a/query-languages/m/number-roundtowardzero.md +++ b/query-languages/m/number-roundtowardzero.md @@ -4,7 +4,6 @@ title: "Number.RoundTowardZero | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-roundup.md b/query-languages/m/number-roundup.md index 50cae1ccc..061db08a8 100644 --- a/query-languages/m/number-roundup.md +++ b/query-languages/m/number-roundup.md @@ -4,7 +4,6 @@ title: "Number.RoundUp | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-sign.md b/query-languages/m/number-sign.md index fc67475d0..758668093 100644 --- a/query-languages/m/number-sign.md +++ b/query-languages/m/number-sign.md @@ -4,7 +4,6 @@ title: "Number.Sign | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-sin.md b/query-languages/m/number-sin.md index 16c2bd278..d284104ae 100644 --- a/query-languages/m/number-sin.md +++ b/query-languages/m/number-sin.md @@ -4,7 +4,6 @@ title: "Number.Sin | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-sinh.md b/query-languages/m/number-sinh.md index defbdb7d0..f385fd6fb 100644 --- a/query-languages/m/number-sinh.md +++ b/query-languages/m/number-sinh.md @@ -4,7 +4,6 @@ title: "Number.Sinh | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-sqrt.md b/query-languages/m/number-sqrt.md index 2d5a40cf2..6d8148776 100644 --- a/query-languages/m/number-sqrt.md +++ b/query-languages/m/number-sqrt.md @@ -4,7 +4,6 @@ title: "Number.Sqrt | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-tan.md b/query-languages/m/number-tan.md index 807387815..37c7c98f8 100644 --- a/query-languages/m/number-tan.md +++ b/query-languages/m/number-tan.md @@ -4,7 +4,6 @@ title: "Number.Tan | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-tanh.md b/query-languages/m/number-tanh.md index bc8712783..18552a4c9 100644 --- a/query-languages/m/number-tanh.md +++ b/query-languages/m/number-tanh.md @@ -4,7 +4,6 @@ title: "Number.Tanh | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-totext.md b/query-languages/m/number-totext.md index 510f8e13b..9102fac14 100644 --- a/query-languages/m/number-totext.md +++ b/query-languages/m/number-totext.md @@ -4,7 +4,6 @@ title: "Number.ToText | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/occurrence-type.md b/query-languages/m/occurrence-type.md index e7982028d..bd8d0c013 100644 --- a/query-languages/m/occurrence-type.md +++ b/query-languages/m/occurrence-type.md @@ -4,7 +4,6 @@ title: "Occurrence.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/odata-feed.md b/query-languages/m/odata-feed.md index b1ef03b5e..b96332a2d 100644 --- a/query-languages/m/odata-feed.md +++ b/query-languages/m/odata-feed.md @@ -4,7 +4,6 @@ title: "OData.Feed | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/odataomitvalues-type.md b/query-languages/m/odataomitvalues-type.md index 4e8830367..88e9afaae 100644 --- a/query-languages/m/odataomitvalues-type.md +++ b/query-languages/m/odataomitvalues-type.md @@ -4,7 +4,6 @@ title: "ODataOmitValues.Type | Microsoft Docs" ms.date: 6/27/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/odbc-datasource.md b/query-languages/m/odbc-datasource.md index 78715f560..757d0bdb5 100644 --- a/query-languages/m/odbc-datasource.md +++ b/query-languages/m/odbc-datasource.md @@ -3,7 +3,6 @@ description: "Learn more about: Odbc.DataSource" title: "Odbc.DataSource | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/odbc-inferoptions.md b/query-languages/m/odbc-inferoptions.md index 1c1cbbb22..2bafbf66d 100644 --- a/query-languages/m/odbc-inferoptions.md +++ b/query-languages/m/odbc-inferoptions.md @@ -4,7 +4,6 @@ title: "Odbc.InferOptions | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/odbc-query.md b/query-languages/m/odbc-query.md index 9ed3d6405..3a0b55357 100644 --- a/query-languages/m/odbc-query.md +++ b/query-languages/m/odbc-query.md @@ -3,7 +3,6 @@ description: "Learn more about: Odbc.Query" title: "Odbc.Query | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/oledb-datasource.md b/query-languages/m/oledb-datasource.md index b9a4fc31b..339724549 100644 --- a/query-languages/m/oledb-datasource.md +++ b/query-languages/m/oledb-datasource.md @@ -3,7 +3,6 @@ description: "Learn more about: OleDb.DataSource" title: "OleDb.DataSource | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/oledb-query.md b/query-languages/m/oledb-query.md index 5c7afa0dc..27ab9c527 100644 --- a/query-languages/m/oledb-query.md +++ b/query-languages/m/oledb-query.md @@ -3,7 +3,6 @@ description: "Learn more about: OleDb.Query" title: "OleDb.Query | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index 99aca5385..c6fc0b3ac 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -4,7 +4,6 @@ title: "Operators | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/oracle-database.md b/query-languages/m/oracle-database.md index 160638f06..7e23b27a5 100644 --- a/query-languages/m/oracle-database.md +++ b/query-languages/m/oracle-database.md @@ -3,7 +3,6 @@ description: "Learn more about: Oracle.Database" title: "Oracle.Database | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/order-type.md b/query-languages/m/order-type.md index 3bd01dfef..66250ac7d 100644 --- a/query-languages/m/order-type.md +++ b/query-languages/m/order-type.md @@ -4,7 +4,6 @@ title: "Order.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/pdf-tables.md b/query-languages/m/pdf-tables.md index f4de3ad1c..66165b214 100644 --- a/query-languages/m/pdf-tables.md +++ b/query-languages/m/pdf-tables.md @@ -3,7 +3,6 @@ description: "Learn more about: Pdf.Tables" title: "Pdf.Tables | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/percentage-from.md b/query-languages/m/percentage-from.md index cccd3182a..77dd1a2f8 100644 --- a/query-languages/m/percentage-from.md +++ b/query-languages/m/percentage-from.md @@ -4,7 +4,6 @@ title: "Percentage.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/percentilemode-type.md b/query-languages/m/percentilemode-type.md index 10c3cbada..fe6b0cb7f 100644 --- a/query-languages/m/percentilemode-type.md +++ b/query-languages/m/percentilemode-type.md @@ -4,7 +4,6 @@ title: "PercentileMode.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/postgresql-database.md b/query-languages/m/postgresql-database.md index 266a61017..619f828c1 100644 --- a/query-languages/m/postgresql-database.md +++ b/query-languages/m/postgresql-database.md @@ -3,7 +3,6 @@ description: "Learn more about: PostgreSQL.Database" title: "PostgreSQL.Database | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/power-query-m-function-reference.md b/query-languages/m/power-query-m-function-reference.md index fea43be15..583dfb510 100644 --- a/query-languages/m/power-query-m-function-reference.md +++ b/query-languages/m/power-query-m-function-reference.md @@ -3,7 +3,6 @@ description: "Learn more about: Power Query M function reference" title: "Power Query M function reference | Microsoft Docs" ms.date: 7/31/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index dd4472428..84a2f33f2 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -3,7 +3,6 @@ description: "Learn more about: Power Query M language specification" title: "Power Query M language specification | Microsoft Docs" ms.date: 4/7/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index 0cff589e5..3e712b10c 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -4,7 +4,6 @@ title: "Power Query M type system | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/precision-type.md b/query-languages/m/precision-type.md index a94aff04c..ab29b8a93 100644 --- a/query-languages/m/precision-type.md +++ b/query-languages/m/precision-type.md @@ -4,7 +4,6 @@ title: "Precision.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index 08ffeef2d..f22481d2a 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -3,7 +3,6 @@ description: "Learn more about: Quick tour of the Power Query M formula language title: "Quick tour | Microsoft Docs" ms.date: 12/12/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: conceptual author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/quotestyle-type.md b/query-languages/m/quotestyle-type.md index b06765ea5..a5f41856e 100644 --- a/query-languages/m/quotestyle-type.md +++ b/query-languages/m/quotestyle-type.md @@ -4,7 +4,6 @@ title: "QuoteStyle.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rankkind-type.md b/query-languages/m/rankkind-type.md index 9c33df335..e8c120c2a 100644 --- a/query-languages/m/rankkind-type.md +++ b/query-languages/m/rankkind-type.md @@ -4,7 +4,6 @@ title: "RankKind.Type | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rdata-frombinary.md b/query-languages/m/rdata-frombinary.md index 863921174..a6ab68a9a 100644 --- a/query-languages/m/rdata-frombinary.md +++ b/query-languages/m/rdata-frombinary.md @@ -4,7 +4,6 @@ title: "RData.FromBinary | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-addfield.md b/query-languages/m/record-addfield.md index 8170f365d..d036f22d8 100644 --- a/query-languages/m/record-addfield.md +++ b/query-languages/m/record-addfield.md @@ -4,7 +4,6 @@ title: "Record.AddField | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-combine.md b/query-languages/m/record-combine.md index ff4275a7a..fdf20531b 100644 --- a/query-languages/m/record-combine.md +++ b/query-languages/m/record-combine.md @@ -4,7 +4,6 @@ title: "Record.Combine | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-field.md b/query-languages/m/record-field.md index 1997b24a7..a75fdc22e 100644 --- a/query-languages/m/record-field.md +++ b/query-languages/m/record-field.md @@ -4,7 +4,6 @@ title: "Record.Field | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fieldcount.md b/query-languages/m/record-fieldcount.md index ba2fe3f14..7f8e58366 100644 --- a/query-languages/m/record-fieldcount.md +++ b/query-languages/m/record-fieldcount.md @@ -4,7 +4,6 @@ title: "Record.FieldCount | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fieldnames.md b/query-languages/m/record-fieldnames.md index 8f217c725..c64c9dfac 100644 --- a/query-languages/m/record-fieldnames.md +++ b/query-languages/m/record-fieldnames.md @@ -4,7 +4,6 @@ title: "Record.FieldNames | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fieldordefault.md b/query-languages/m/record-fieldordefault.md index cd45fb9b2..09d5ee5da 100644 --- a/query-languages/m/record-fieldordefault.md +++ b/query-languages/m/record-fieldordefault.md @@ -4,7 +4,6 @@ title: "Record.FieldOrDefault | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fieldvalues.md b/query-languages/m/record-fieldvalues.md index 5f5b652d9..22ae62474 100644 --- a/query-languages/m/record-fieldvalues.md +++ b/query-languages/m/record-fieldvalues.md @@ -4,7 +4,6 @@ title: "Record.FieldValues | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fromlist.md b/query-languages/m/record-fromlist.md index bb2c7b769..995e92ded 100644 --- a/query-languages/m/record-fromlist.md +++ b/query-languages/m/record-fromlist.md @@ -4,7 +4,6 @@ title: "Record.FromList | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fromtable.md b/query-languages/m/record-fromtable.md index cec02eb21..1a0e3ed7b 100644 --- a/query-languages/m/record-fromtable.md +++ b/query-languages/m/record-fromtable.md @@ -4,7 +4,6 @@ title: "Record.FromTable | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-functions.md b/query-languages/m/record-functions.md index e0d6b6b9a..a5531efaa 100644 --- a/query-languages/m/record-functions.md +++ b/query-languages/m/record-functions.md @@ -4,7 +4,6 @@ title: "Record functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-hasfields.md b/query-languages/m/record-hasfields.md index 7f2c64c13..0a6ad425e 100644 --- a/query-languages/m/record-hasfields.md +++ b/query-languages/m/record-hasfields.md @@ -4,7 +4,6 @@ title: "Record.HasFields | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-removefields.md b/query-languages/m/record-removefields.md index 2404a7ddd..4fc3df763 100644 --- a/query-languages/m/record-removefields.md +++ b/query-languages/m/record-removefields.md @@ -4,7 +4,6 @@ title: "Record.RemoveFields | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-renamefields.md b/query-languages/m/record-renamefields.md index 02d1be618..15250ce71 100644 --- a/query-languages/m/record-renamefields.md +++ b/query-languages/m/record-renamefields.md @@ -4,7 +4,6 @@ title: "Record.RenameFields | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-reorderfields.md b/query-languages/m/record-reorderfields.md index 56a82443d..662c8d94f 100644 --- a/query-languages/m/record-reorderfields.md +++ b/query-languages/m/record-reorderfields.md @@ -4,7 +4,6 @@ title: "Record.ReorderFields | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-selectfields.md b/query-languages/m/record-selectfields.md index 73da6b9ef..23f9f2bb6 100644 --- a/query-languages/m/record-selectfields.md +++ b/query-languages/m/record-selectfields.md @@ -4,7 +4,6 @@ title: "Record.SelectFields | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-tolist.md b/query-languages/m/record-tolist.md index 0d1f6b870..9965fa12c 100644 --- a/query-languages/m/record-tolist.md +++ b/query-languages/m/record-tolist.md @@ -4,7 +4,6 @@ title: "Record.ToList | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-totable.md b/query-languages/m/record-totable.md index 7b29059a5..836462233 100644 --- a/query-languages/m/record-totable.md +++ b/query-languages/m/record-totable.md @@ -4,7 +4,6 @@ title: "Record.ToTable | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-transformfields.md b/query-languages/m/record-transformfields.md index 22d52e6ff..4ee399313 100644 --- a/query-languages/m/record-transformfields.md +++ b/query-languages/m/record-transformfields.md @@ -4,7 +4,6 @@ title: "Record.TransformFields | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/relativeposition-type.md b/query-languages/m/relativeposition-type.md index ad3a01578..248ff4716 100644 --- a/query-languages/m/relativeposition-type.md +++ b/query-languages/m/relativeposition-type.md @@ -4,7 +4,6 @@ title: "RelativePosition.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/replacer-functions.md b/query-languages/m/replacer-functions.md index 5a8441ded..862a3d0f8 100644 --- a/query-languages/m/replacer-functions.md +++ b/query-languages/m/replacer-functions.md @@ -4,7 +4,6 @@ title: "Replacer functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/replacer-replacetext.md b/query-languages/m/replacer-replacetext.md index a598f0363..ef644c5ff 100644 --- a/query-languages/m/replacer-replacetext.md +++ b/query-languages/m/replacer-replacetext.md @@ -4,7 +4,6 @@ title: "Replacer.ReplaceText | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/replacer-replacevalue.md b/query-languages/m/replacer-replacevalue.md index 9b9daf6e5..e21a92001 100644 --- a/query-languages/m/replacer-replacevalue.md +++ b/query-languages/m/replacer-replacevalue.md @@ -4,7 +4,6 @@ title: "Replacer.ReplaceValue | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/roundingmode-type.md b/query-languages/m/roundingmode-type.md index d82213352..d56bfa971 100644 --- a/query-languages/m/roundingmode-type.md +++ b/query-languages/m/roundingmode-type.md @@ -4,7 +4,6 @@ title: "RoundingMode.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rowexpression-column.md b/query-languages/m/rowexpression-column.md index 60eac020d..08a16da8e 100644 --- a/query-languages/m/rowexpression-column.md +++ b/query-languages/m/rowexpression-column.md @@ -4,7 +4,6 @@ title: "RowExpression.Column | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index a4e1ebba1..9dc82a201 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -4,7 +4,6 @@ title: "RowExpression.From | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rowexpression-row.md b/query-languages/m/rowexpression-row.md index 5764148c8..8d4741ea0 100644 --- a/query-languages/m/rowexpression-row.md +++ b/query-languages/m/rowexpression-row.md @@ -4,7 +4,6 @@ title: "RowExpression.Row | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/salesforce-data.md b/query-languages/m/salesforce-data.md index 3e8332c80..8733f7a1d 100644 --- a/query-languages/m/salesforce-data.md +++ b/query-languages/m/salesforce-data.md @@ -3,7 +3,6 @@ description: "Learn more about: Salesforce.Data" title: "Salesforce.Data | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/salesforce-reports.md b/query-languages/m/salesforce-reports.md index 463e3fa77..6779c8cff 100644 --- a/query-languages/m/salesforce-reports.md +++ b/query-languages/m/salesforce-reports.md @@ -3,7 +3,6 @@ description: "Learn more about: Salesforce.Reports" title: "Salesforce.Reports | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sapbusinesswarehouse-cubes.md b/query-languages/m/sapbusinesswarehouse-cubes.md index 4c4625a0e..d2385da02 100644 --- a/query-languages/m/sapbusinesswarehouse-cubes.md +++ b/query-languages/m/sapbusinesswarehouse-cubes.md @@ -4,7 +4,6 @@ title: "SapBusinessWarehouse.Cubes | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md index 01e78a479..91038e69c 100644 --- a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md +++ b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md @@ -4,7 +4,6 @@ title: "SapBusinessWarehouseExecutionMode.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index 44a41dddf..7525455a7 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -4,7 +4,6 @@ title: "SapHana.Database | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/saphanadistribution-type.md b/query-languages/m/saphanadistribution-type.md index c88a54183..6c5aab822 100644 --- a/query-languages/m/saphanadistribution-type.md +++ b/query-languages/m/saphanadistribution-type.md @@ -4,7 +4,6 @@ title: "SapHanaDistribution.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/saphanarangeoperator-type.md b/query-languages/m/saphanarangeoperator-type.md index c245d5cdb..549e16b13 100644 --- a/query-languages/m/saphanarangeoperator-type.md +++ b/query-languages/m/saphanarangeoperator-type.md @@ -4,7 +4,6 @@ title: "SapHanaRangeOperator.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharepoint-contents.md b/query-languages/m/sharepoint-contents.md index 739082577..899b24b16 100644 --- a/query-languages/m/sharepoint-contents.md +++ b/query-languages/m/sharepoint-contents.md @@ -4,7 +4,6 @@ title: "SharePoint.Contents | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharepoint-files.md b/query-languages/m/sharepoint-files.md index 07e325239..816d081fa 100644 --- a/query-languages/m/sharepoint-files.md +++ b/query-languages/m/sharepoint-files.md @@ -4,7 +4,6 @@ title: "SharePoint.Files | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index 40a925a05..1db59e9e7 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -4,7 +4,6 @@ title: "SharePoint.Tables | Microsoft Docs" ms.date: 9/14/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpbinary.md b/query-languages/m/sharpbinary.md index 7ed89ff30..0fcbc0b32 100644 --- a/query-languages/m/sharpbinary.md +++ b/query-languages/m/sharpbinary.md @@ -4,7 +4,6 @@ title: "#binary | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index 61e4f562d..2ad0beb14 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -4,7 +4,6 @@ title: "#date | Microsoft Docs" ms.date: 6/21/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpdatetime.md b/query-languages/m/sharpdatetime.md index 93d20dad1..417431dd8 100644 --- a/query-languages/m/sharpdatetime.md +++ b/query-languages/m/sharpdatetime.md @@ -4,7 +4,6 @@ title: "#datetime | Microsoft Docs" ms.date: 11/17/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpdatetimezone.md b/query-languages/m/sharpdatetimezone.md index 6cb72e1b3..701ef3fce 100644 --- a/query-languages/m/sharpdatetimezone.md +++ b/query-languages/m/sharpdatetimezone.md @@ -4,7 +4,6 @@ title: "#datetimezone | Microsoft Docs" ms.date: 11/17/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpduration.md b/query-languages/m/sharpduration.md index 742c1154b..6a2ca0fbf 100644 --- a/query-languages/m/sharpduration.md +++ b/query-languages/m/sharpduration.md @@ -4,7 +4,6 @@ title: "#duration | Microsoft Docs" ms.date: 6/21/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharptable.md b/query-languages/m/sharptable.md index 97dd62e2a..1778bdeef 100644 --- a/query-languages/m/sharptable.md +++ b/query-languages/m/sharptable.md @@ -4,7 +4,6 @@ title: "#table | Microsoft Docs" ms.date: 7/18/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharptime.md b/query-languages/m/sharptime.md index c2cdc796e..c24f08d88 100644 --- a/query-languages/m/sharptime.md +++ b/query-languages/m/sharptime.md @@ -4,7 +4,6 @@ title: "#time | Microsoft Docs" ms.date: 6/21/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/single-from.md b/query-languages/m/single-from.md index 38a7f4725..35849155a 100644 --- a/query-languages/m/single-from.md +++ b/query-languages/m/single-from.md @@ -4,7 +4,6 @@ title: "Single.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/soda-feed.md b/query-languages/m/soda-feed.md index af8fbc087..798eba8ac 100644 --- a/query-languages/m/soda-feed.md +++ b/query-languages/m/soda-feed.md @@ -4,7 +4,6 @@ title: "Soda.Feed | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-functions.md b/query-languages/m/splitter-functions.md index c4cd462d0..eda77e6d6 100644 --- a/query-languages/m/splitter-functions.md +++ b/query-languages/m/splitter-functions.md @@ -4,7 +4,6 @@ title: "Splitter functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splitbynothing.md b/query-languages/m/splitter-splitbynothing.md index 1407069c7..889fdbefc 100644 --- a/query-languages/m/splitter-splitbynothing.md +++ b/query-languages/m/splitter-splitbynothing.md @@ -4,7 +4,6 @@ title: "Splitter.SplitByNothing | Microsoft Docs" ms.date: 8/1/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbyanydelimiter.md b/query-languages/m/splitter-splittextbyanydelimiter.md index ecde57598..82b1e81fd 100644 --- a/query-languages/m/splitter-splittextbyanydelimiter.md +++ b/query-languages/m/splitter-splittextbyanydelimiter.md @@ -4,7 +4,6 @@ title: "Splitter.SplitTextByAnyDelimiter | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbycharactertransition.md b/query-languages/m/splitter-splittextbycharactertransition.md index b82a50648..06e139c37 100644 --- a/query-languages/m/splitter-splittextbycharactertransition.md +++ b/query-languages/m/splitter-splittextbycharactertransition.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitTextByCharacterTransition" title: "Splitter.SplitTextByCharacterTransition | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbydelimiter.md b/query-languages/m/splitter-splittextbydelimiter.md index 6fe2ba818..4930e5b54 100644 --- a/query-languages/m/splitter-splittextbydelimiter.md +++ b/query-languages/m/splitter-splittextbydelimiter.md @@ -4,7 +4,6 @@ title: "Splitter.SplitTextByDelimiter | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbyeachdelimiter.md b/query-languages/m/splitter-splittextbyeachdelimiter.md index 2798a7e6b..c4dff5baa 100644 --- a/query-languages/m/splitter-splittextbyeachdelimiter.md +++ b/query-languages/m/splitter-splittextbyeachdelimiter.md @@ -4,7 +4,6 @@ title: "Splitter.SplitTextByEachDelimiter | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbylengths.md b/query-languages/m/splitter-splittextbylengths.md index 13c719ff8..c06f4f620 100644 --- a/query-languages/m/splitter-splittextbylengths.md +++ b/query-languages/m/splitter-splittextbylengths.md @@ -4,7 +4,6 @@ title: "Splitter.SplitTextByLengths | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbypositions.md b/query-languages/m/splitter-splittextbypositions.md index 9b6991b27..de8df1b74 100644 --- a/query-languages/m/splitter-splittextbypositions.md +++ b/query-languages/m/splitter-splittextbypositions.md @@ -4,7 +4,6 @@ title: "Splitter.SplitTextByPositions | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbyranges.md b/query-languages/m/splitter-splittextbyranges.md index 71270ef78..184a87118 100644 --- a/query-languages/m/splitter-splittextbyranges.md +++ b/query-languages/m/splitter-splittextbyranges.md @@ -4,7 +4,6 @@ title: "Splitter.SplitTextByRanges | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbyrepeatedlengths.md b/query-languages/m/splitter-splittextbyrepeatedlengths.md index 4d2b9823a..fea749280 100644 --- a/query-languages/m/splitter-splittextbyrepeatedlengths.md +++ b/query-languages/m/splitter-splittextbyrepeatedlengths.md @@ -4,7 +4,6 @@ title: "Splitter.SplitTextByRepeatedLengths | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbywhitespace.md b/query-languages/m/splitter-splittextbywhitespace.md index 9e6d4833e..7bf390595 100644 --- a/query-languages/m/splitter-splittextbywhitespace.md +++ b/query-languages/m/splitter-splittextbywhitespace.md @@ -4,7 +4,6 @@ title: "Splitter.SplitTextByWhitespace | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sql-database.md b/query-languages/m/sql-database.md index 1c7c46449..5c36052af 100644 --- a/query-languages/m/sql-database.md +++ b/query-languages/m/sql-database.md @@ -3,7 +3,6 @@ description: "Learn more about: Sql.Database" title: "Sql.Database | Microsoft Docs" ms.date: 11/23/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sql-databases.md b/query-languages/m/sql-databases.md index 6f94943bc..d11f6246a 100644 --- a/query-languages/m/sql-databases.md +++ b/query-languages/m/sql-databases.md @@ -3,7 +3,6 @@ description: "Learn more about: Sql.Databases" title: "Sql.Databases | Microsoft Docs" ms.date: 11/23/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sqlexpression-schemafrom.md b/query-languages/m/sqlexpression-schemafrom.md index d2d350ee5..bb9c73902 100644 --- a/query-languages/m/sqlexpression-schemafrom.md +++ b/query-languages/m/sqlexpression-schemafrom.md @@ -4,7 +4,6 @@ title: "SqlExpression.SchemaFrom | Microsoft Docs" ms.date: 10/18/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sqlexpression-toexpression.md b/query-languages/m/sqlexpression-toexpression.md index c6f3fc25d..083afc324 100644 --- a/query-languages/m/sqlexpression-toexpression.md +++ b/query-languages/m/sqlexpression-toexpression.md @@ -4,7 +4,6 @@ title: "SqlExpression.ToExpression | Microsoft Docs" ms.date: 10/18/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sybase-database.md b/query-languages/m/sybase-database.md index 9f4d071f0..a79e04c72 100644 --- a/query-languages/m/sybase-database.md +++ b/query-languages/m/sybase-database.md @@ -3,7 +3,6 @@ description: "Learn more about: Sybase.Database" title: "Sybase.Database | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addcolumn.md b/query-languages/m/table-addcolumn.md index 80a6b2e21..6e3b0f0e0 100644 --- a/query-languages/m/table-addcolumn.md +++ b/query-languages/m/table-addcolumn.md @@ -4,7 +4,6 @@ title: "Table.AddColumn | Microsoft Docs" ms.date: 3/9/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index 12f544565..d8253b974 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -4,7 +4,6 @@ title: "Table.AddFuzzyClusterColumn | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addindexcolumn.md b/query-languages/m/table-addindexcolumn.md index fdb95e7db..2525e7321 100644 --- a/query-languages/m/table-addindexcolumn.md +++ b/query-languages/m/table-addindexcolumn.md @@ -4,7 +4,6 @@ title: "Table.AddIndexColumn | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addjoincolumn.md b/query-languages/m/table-addjoincolumn.md index 2cdd871c2..9b185bc32 100644 --- a/query-languages/m/table-addjoincolumn.md +++ b/query-languages/m/table-addjoincolumn.md @@ -4,7 +4,6 @@ title: "Table.AddJoinColumn | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addkey.md b/query-languages/m/table-addkey.md index a7bc164c0..02eab3366 100644 --- a/query-languages/m/table-addkey.md +++ b/query-languages/m/table-addkey.md @@ -4,7 +4,6 @@ title: "Table.AddKey | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addrankcolumn.md b/query-languages/m/table-addrankcolumn.md index 88ecb2f6a..144ac8739 100644 --- a/query-languages/m/table-addrankcolumn.md +++ b/query-languages/m/table-addrankcolumn.md @@ -4,7 +4,6 @@ title: "Table.AddRankColumn | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-aggregatetablecolumn.md b/query-languages/m/table-aggregatetablecolumn.md index 4dc0156d7..6490c3e4c 100644 --- a/query-languages/m/table-aggregatetablecolumn.md +++ b/query-languages/m/table-aggregatetablecolumn.md @@ -4,7 +4,6 @@ title: "Table.AggregateTableColumn | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-alternaterows.md b/query-languages/m/table-alternaterows.md index 0beabe7e5..450f58636 100644 --- a/query-languages/m/table-alternaterows.md +++ b/query-languages/m/table-alternaterows.md @@ -4,7 +4,6 @@ title: "Table.AlternateRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-approximaterowcount.md b/query-languages/m/table-approximaterowcount.md index a9ccae258..bceb3511b 100644 --- a/query-languages/m/table-approximaterowcount.md +++ b/query-languages/m/table-approximaterowcount.md @@ -4,7 +4,6 @@ title: "Table.ApproximateRowCount | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-buffer.md b/query-languages/m/table-buffer.md index 23fd2e2ce..268e89d72 100644 --- a/query-languages/m/table-buffer.md +++ b/query-languages/m/table-buffer.md @@ -4,7 +4,6 @@ title: "Table.Buffer | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-column.md b/query-languages/m/table-column.md index 5d8b22de7..7810fd7d0 100644 --- a/query-languages/m/table-column.md +++ b/query-languages/m/table-column.md @@ -4,7 +4,6 @@ title: "Table.Column | Microsoft Docs" ms.date: 3/10/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-columncount.md b/query-languages/m/table-columncount.md index a67f3598c..47359ca4c 100644 --- a/query-languages/m/table-columncount.md +++ b/query-languages/m/table-columncount.md @@ -4,7 +4,6 @@ title: "Table.ColumnCount | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-columnnames.md b/query-languages/m/table-columnnames.md index c2aee7f2c..2e904fe9e 100644 --- a/query-languages/m/table-columnnames.md +++ b/query-languages/m/table-columnnames.md @@ -4,7 +4,6 @@ title: "Table.ColumnNames | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-columnsoftype.md b/query-languages/m/table-columnsoftype.md index 002628532..c17ff5c9f 100644 --- a/query-languages/m/table-columnsoftype.md +++ b/query-languages/m/table-columnsoftype.md @@ -4,7 +4,6 @@ title: "Table.ColumnsOfType | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-combine.md b/query-languages/m/table-combine.md index 386304647..bf15dd205 100644 --- a/query-languages/m/table-combine.md +++ b/query-languages/m/table-combine.md @@ -4,7 +4,6 @@ title: "Table.Combine | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-combinecolumns.md b/query-languages/m/table-combinecolumns.md index bbfa26477..79b7cb8bb 100644 --- a/query-languages/m/table-combinecolumns.md +++ b/query-languages/m/table-combinecolumns.md @@ -4,7 +4,6 @@ title: "Table.CombineColumns | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-combinecolumnstorecord.md b/query-languages/m/table-combinecolumnstorecord.md index 7a7e714ae..4befec877 100644 --- a/query-languages/m/table-combinecolumnstorecord.md +++ b/query-languages/m/table-combinecolumnstorecord.md @@ -4,7 +4,6 @@ title: "Table.CombineColumnsToRecord | Microsoft Docs" ms.date: 09/14/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-conformtopagereader.md b/query-languages/m/table-conformtopagereader.md index df002c573..727779c37 100644 --- a/query-languages/m/table-conformtopagereader.md +++ b/query-languages/m/table-conformtopagereader.md @@ -4,7 +4,6 @@ title: "Table.ConformToPageReader | Microsoft Docs" ms.date: 8/21/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-contains.md b/query-languages/m/table-contains.md index 2d1f94151..6beac0b4b 100644 --- a/query-languages/m/table-contains.md +++ b/query-languages/m/table-contains.md @@ -4,7 +4,6 @@ title: "Table.Contains | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-containsall.md b/query-languages/m/table-containsall.md index ddfdfb3a8..b5c4511d2 100644 --- a/query-languages/m/table-containsall.md +++ b/query-languages/m/table-containsall.md @@ -4,7 +4,6 @@ title: "Table.ContainsAll | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-containsany.md b/query-languages/m/table-containsany.md index 5bad42dfb..2a6f9b366 100644 --- a/query-languages/m/table-containsany.md +++ b/query-languages/m/table-containsany.md @@ -4,7 +4,6 @@ title: "Table.ContainsAny | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-demoteheaders.md b/query-languages/m/table-demoteheaders.md index 0735b0240..f43fa3db4 100644 --- a/query-languages/m/table-demoteheaders.md +++ b/query-languages/m/table-demoteheaders.md @@ -4,7 +4,6 @@ title: "Table.DemoteHeaders | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-distinct.md b/query-languages/m/table-distinct.md index 8f2adbf9f..c810a2be9 100644 --- a/query-languages/m/table-distinct.md +++ b/query-languages/m/table-distinct.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Distinct" title: "Table.Distinct | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-duplicatecolumn.md b/query-languages/m/table-duplicatecolumn.md index 4de82ec66..d34edfd7a 100644 --- a/query-languages/m/table-duplicatecolumn.md +++ b/query-languages/m/table-duplicatecolumn.md @@ -4,7 +4,6 @@ title: "Table.DuplicateColumn | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index c7cda4f30..a2978e4b9 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -4,7 +4,6 @@ title: "Table.ExpandListColumn | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-expandrecordcolumn.md b/query-languages/m/table-expandrecordcolumn.md index 89fa06e44..cc34a9d81 100644 --- a/query-languages/m/table-expandrecordcolumn.md +++ b/query-languages/m/table-expandrecordcolumn.md @@ -4,7 +4,6 @@ title: "Table.ExpandRecordColumn | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-expandtablecolumn.md b/query-languages/m/table-expandtablecolumn.md index f51195e6f..67d9c8249 100644 --- a/query-languages/m/table-expandtablecolumn.md +++ b/query-languages/m/table-expandtablecolumn.md @@ -4,7 +4,6 @@ title: "Table.ExpandTableColumn | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-filldown.md b/query-languages/m/table-filldown.md index d9f08bfb5..5019c3b51 100644 --- a/query-languages/m/table-filldown.md +++ b/query-languages/m/table-filldown.md @@ -4,7 +4,6 @@ title: "Table.FillDown | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fillup.md b/query-languages/m/table-fillup.md index 40b56a284..eff2e07af 100644 --- a/query-languages/m/table-fillup.md +++ b/query-languages/m/table-fillup.md @@ -4,7 +4,6 @@ title: "Table.FillUp | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-filterwithdatatable.md b/query-languages/m/table-filterwithdatatable.md index 9133afe63..5ff03aaa9 100644 --- a/query-languages/m/table-filterwithdatatable.md +++ b/query-languages/m/table-filterwithdatatable.md @@ -4,7 +4,6 @@ title: "Table.FilterWithDataTable | Microsoft Docs" ms.date: 5/3/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-findtext.md b/query-languages/m/table-findtext.md index a4f95719a..b743bd021 100644 --- a/query-languages/m/table-findtext.md +++ b/query-languages/m/table-findtext.md @@ -4,7 +4,6 @@ title: "Table.FindText | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-first.md b/query-languages/m/table-first.md index e128a22bc..0eaa9a054 100644 --- a/query-languages/m/table-first.md +++ b/query-languages/m/table-first.md @@ -4,7 +4,6 @@ title: "Table.First | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-firstn.md b/query-languages/m/table-firstn.md index c30dadc51..9647ef2ef 100644 --- a/query-languages/m/table-firstn.md +++ b/query-languages/m/table-firstn.md @@ -4,7 +4,6 @@ title: "Table.FirstN | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-firstvalue.md b/query-languages/m/table-firstvalue.md index 0c2402f0c..201452875 100644 --- a/query-languages/m/table-firstvalue.md +++ b/query-languages/m/table-firstvalue.md @@ -4,7 +4,6 @@ title: "Table.FirstValue | Microsoft Docs" ms.date: 8/1/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromcolumns.md b/query-languages/m/table-fromcolumns.md index a8f065bd2..c8e960945 100644 --- a/query-languages/m/table-fromcolumns.md +++ b/query-languages/m/table-fromcolumns.md @@ -4,7 +4,6 @@ title: "Table.FromColumns | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index 307c49adc..a891c5d93 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -4,7 +4,6 @@ title: "Table.FromList | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-frompartitions.md b/query-languages/m/table-frompartitions.md index 7ecc52720..4de2594fe 100644 --- a/query-languages/m/table-frompartitions.md +++ b/query-languages/m/table-frompartitions.md @@ -4,7 +4,6 @@ title: "Table.FromPartitions | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromrecords.md b/query-languages/m/table-fromrecords.md index 7cbb91492..36f9143d4 100644 --- a/query-languages/m/table-fromrecords.md +++ b/query-languages/m/table-fromrecords.md @@ -4,7 +4,6 @@ title: "Table.FromRecords | Microsoft Docs" ms.date: 3/10/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromrows.md b/query-languages/m/table-fromrows.md index e91500608..aeccffcf5 100644 --- a/query-languages/m/table-fromrows.md +++ b/query-languages/m/table-fromrows.md @@ -4,7 +4,6 @@ title: "Table.FromRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromvalue.md b/query-languages/m/table-fromvalue.md index e3ba9e16d..40b43bc54 100644 --- a/query-languages/m/table-fromvalue.md +++ b/query-languages/m/table-fromvalue.md @@ -4,7 +4,6 @@ title: "Table.FromValue | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index d1a246e11..f48d0259a 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Table functions" title: "Table functions | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fuzzygroup.md b/query-languages/m/table-fuzzygroup.md index ae796d35f..521c76def 100644 --- a/query-languages/m/table-fuzzygroup.md +++ b/query-languages/m/table-fuzzygroup.md @@ -4,7 +4,6 @@ title: "Table.FuzzyGroup | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index 4edb73770..e229a8ffa 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -4,7 +4,6 @@ title: "Table.FuzzyJoin | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index 9607cd878..0239c9447 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -4,7 +4,6 @@ title: "Table.FuzzyNestedJoin | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-group.md b/query-languages/m/table-group.md index 879ffc121..3ceb2de92 100644 --- a/query-languages/m/table-group.md +++ b/query-languages/m/table-group.md @@ -4,7 +4,6 @@ title: "Table.Group | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-hascolumns.md b/query-languages/m/table-hascolumns.md index f13b10b52..031a28e06 100644 --- a/query-languages/m/table-hascolumns.md +++ b/query-languages/m/table-hascolumns.md @@ -4,7 +4,6 @@ title: "Table.HasColumns | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-insertrows.md b/query-languages/m/table-insertrows.md index 550696a17..255d6939d 100644 --- a/query-languages/m/table-insertrows.md +++ b/query-languages/m/table-insertrows.md @@ -4,7 +4,6 @@ title: "Table.InsertRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-isdistinct.md b/query-languages/m/table-isdistinct.md index 1bce7fcd3..c63965471 100644 --- a/query-languages/m/table-isdistinct.md +++ b/query-languages/m/table-isdistinct.md @@ -4,7 +4,6 @@ title: "Table.IsDistinct | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-isempty.md b/query-languages/m/table-isempty.md index 74790265f..a846ad646 100644 --- a/query-languages/m/table-isempty.md +++ b/query-languages/m/table-isempty.md @@ -4,7 +4,6 @@ title: "Table.IsEmpty | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index dd303cf39..a5adf6f6e 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -4,7 +4,6 @@ title: "Table.Join | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-keys.md b/query-languages/m/table-keys.md index cee9fb0fd..70fd81794 100644 --- a/query-languages/m/table-keys.md +++ b/query-languages/m/table-keys.md @@ -4,7 +4,6 @@ title: "Table.Keys | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-last.md b/query-languages/m/table-last.md index fc7d59ae6..24e006b76 100644 --- a/query-languages/m/table-last.md +++ b/query-languages/m/table-last.md @@ -4,7 +4,6 @@ title: "Table.Last | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-lastn.md b/query-languages/m/table-lastn.md index 55d66df5f..30d078aa9 100644 --- a/query-languages/m/table-lastn.md +++ b/query-languages/m/table-lastn.md @@ -4,7 +4,6 @@ title: "Table.LastN | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-matchesallrows.md b/query-languages/m/table-matchesallrows.md index 6ebb329d4..1d7858e51 100644 --- a/query-languages/m/table-matchesallrows.md +++ b/query-languages/m/table-matchesallrows.md @@ -4,7 +4,6 @@ title: "Table.MatchesAllRows | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-matchesanyrows.md b/query-languages/m/table-matchesanyrows.md index b8f91abf3..af6b84641 100644 --- a/query-languages/m/table-matchesanyrows.md +++ b/query-languages/m/table-matchesanyrows.md @@ -4,7 +4,6 @@ title: "Table.MatchesAnyRows | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-max.md b/query-languages/m/table-max.md index 1ffd38a6b..7525abfae 100644 --- a/query-languages/m/table-max.md +++ b/query-languages/m/table-max.md @@ -4,7 +4,6 @@ title: "Table.Max | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-maxn.md b/query-languages/m/table-maxn.md index 3bdfec2de..3eaf7d6a6 100644 --- a/query-languages/m/table-maxn.md +++ b/query-languages/m/table-maxn.md @@ -4,7 +4,6 @@ title: "Table.MaxN | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-min.md b/query-languages/m/table-min.md index 89d41c1c6..46eed0399 100644 --- a/query-languages/m/table-min.md +++ b/query-languages/m/table-min.md @@ -4,7 +4,6 @@ title: "Table.Min | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-minn.md b/query-languages/m/table-minn.md index 145435dd3..e6c21b31c 100644 --- a/query-languages/m/table-minn.md +++ b/query-languages/m/table-minn.md @@ -4,7 +4,6 @@ title: "Table.MinN | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-nestedjoin.md b/query-languages/m/table-nestedjoin.md index 55c4c6a25..b0cc9f111 100644 --- a/query-languages/m/table-nestedjoin.md +++ b/query-languages/m/table-nestedjoin.md @@ -4,7 +4,6 @@ title: "Table.NestedJoin | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-partition.md b/query-languages/m/table-partition.md index 5b2b1b6c6..be1ce17c5 100644 --- a/query-languages/m/table-partition.md +++ b/query-languages/m/table-partition.md @@ -4,7 +4,6 @@ title: "Table.Partition | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-partitionvalues.md b/query-languages/m/table-partitionvalues.md index 3ece5b406..7832a8ad6 100644 --- a/query-languages/m/table-partitionvalues.md +++ b/query-languages/m/table-partitionvalues.md @@ -4,7 +4,6 @@ title: "Table.PartitionValues | Microsoft Docs" ms.date: 9/13/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-pivot.md b/query-languages/m/table-pivot.md index cd0198139..08994600f 100644 --- a/query-languages/m/table-pivot.md +++ b/query-languages/m/table-pivot.md @@ -4,7 +4,6 @@ title: "Table.Pivot | Microsoft Docs" ms.date: 3/10/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-positionof.md b/query-languages/m/table-positionof.md index 00f08d663..9f50b00cc 100644 --- a/query-languages/m/table-positionof.md +++ b/query-languages/m/table-positionof.md @@ -4,7 +4,6 @@ title: "Table.PositionOf | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-positionofany.md b/query-languages/m/table-positionofany.md index e1eb2b5ff..8de0cba14 100644 --- a/query-languages/m/table-positionofany.md +++ b/query-languages/m/table-positionofany.md @@ -4,7 +4,6 @@ title: "Table.PositionOfAny | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-prefixcolumns.md b/query-languages/m/table-prefixcolumns.md index f101f9242..6f7fc4ee6 100644 --- a/query-languages/m/table-prefixcolumns.md +++ b/query-languages/m/table-prefixcolumns.md @@ -4,7 +4,6 @@ title: "Table.PrefixColumns | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-profile.md b/query-languages/m/table-profile.md index a99f56d1b..702e1f645 100644 --- a/query-languages/m/table-profile.md +++ b/query-languages/m/table-profile.md @@ -4,7 +4,6 @@ title: "Table.Profile | Microsoft Docs" ms.date: 8/1/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-promoteheaders.md b/query-languages/m/table-promoteheaders.md index 68937daf3..817f638ad 100644 --- a/query-languages/m/table-promoteheaders.md +++ b/query-languages/m/table-promoteheaders.md @@ -4,7 +4,6 @@ title: "Table.PromoteHeaders | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-range.md b/query-languages/m/table-range.md index 081de1bf8..087843720 100644 --- a/query-languages/m/table-range.md +++ b/query-languages/m/table-range.md @@ -4,7 +4,6 @@ title: "Table.Range | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index 0f42d10ab..0d3f7545a 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -4,7 +4,6 @@ title: "Table.RemoveColumns | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removefirstn.md b/query-languages/m/table-removefirstn.md index 99ba60d0e..e649d78cd 100644 --- a/query-languages/m/table-removefirstn.md +++ b/query-languages/m/table-removefirstn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.RemoveFirstN" title: "Table.RemoveFirstN | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removelastn.md b/query-languages/m/table-removelastn.md index 7f107a78e..3ebf41754 100644 --- a/query-languages/m/table-removelastn.md +++ b/query-languages/m/table-removelastn.md @@ -4,7 +4,6 @@ title: "Table.RemoveLastN | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removematchingrows.md b/query-languages/m/table-removematchingrows.md index 8a8cee464..576520610 100644 --- a/query-languages/m/table-removematchingrows.md +++ b/query-languages/m/table-removematchingrows.md @@ -4,7 +4,6 @@ title: "Table.RemoveMatchingRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removerows.md b/query-languages/m/table-removerows.md index c6883f47a..761a97711 100644 --- a/query-languages/m/table-removerows.md +++ b/query-languages/m/table-removerows.md @@ -4,7 +4,6 @@ title: "Table.RemoveRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removerowswitherrors.md b/query-languages/m/table-removerowswitherrors.md index 790dae9dd..2e67778f9 100644 --- a/query-languages/m/table-removerowswitherrors.md +++ b/query-languages/m/table-removerowswitherrors.md @@ -4,7 +4,6 @@ title: "Table.RemoveRowsWithErrors | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-renamecolumns.md b/query-languages/m/table-renamecolumns.md index d737dcd38..d0959f3d6 100644 --- a/query-languages/m/table-renamecolumns.md +++ b/query-languages/m/table-renamecolumns.md @@ -4,7 +4,6 @@ title: "Table.RenameColumns | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-reordercolumns.md b/query-languages/m/table-reordercolumns.md index e10a92c3a..eafc8dafc 100644 --- a/query-languages/m/table-reordercolumns.md +++ b/query-languages/m/table-reordercolumns.md @@ -4,7 +4,6 @@ title: "Table.ReorderColumns | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-repeat.md b/query-languages/m/table-repeat.md index 06d0c1fb9..e2c8e011c 100644 --- a/query-languages/m/table-repeat.md +++ b/query-languages/m/table-repeat.md @@ -4,7 +4,6 @@ title: "Table.Repeat | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replaceerrorvalues.md b/query-languages/m/table-replaceerrorvalues.md index 44da38df5..622d362b4 100644 --- a/query-languages/m/table-replaceerrorvalues.md +++ b/query-languages/m/table-replaceerrorvalues.md @@ -4,7 +4,6 @@ title: "Table.ReplaceErrorValues | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacekeys.md b/query-languages/m/table-replacekeys.md index d6143290b..66134f478 100644 --- a/query-languages/m/table-replacekeys.md +++ b/query-languages/m/table-replacekeys.md @@ -4,7 +4,6 @@ title: "Table.ReplaceKeys | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacematchingrows.md b/query-languages/m/table-replacematchingrows.md index e87132763..ba706263a 100644 --- a/query-languages/m/table-replacematchingrows.md +++ b/query-languages/m/table-replacematchingrows.md @@ -4,7 +4,6 @@ title: "Table.ReplaceMatchingRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacerelationshipidentity.md b/query-languages/m/table-replacerelationshipidentity.md index 4038dbb62..af4b14ad5 100644 --- a/query-languages/m/table-replacerelationshipidentity.md +++ b/query-languages/m/table-replacerelationshipidentity.md @@ -4,7 +4,6 @@ title: "Table.ReplaceRelationshipIdentity | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacerows.md b/query-languages/m/table-replacerows.md index 8aa55e284..01426197f 100644 --- a/query-languages/m/table-replacerows.md +++ b/query-languages/m/table-replacerows.md @@ -4,7 +4,6 @@ title: "Table.ReplaceRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacevalue.md b/query-languages/m/table-replacevalue.md index c15eda38a..1157783eb 100644 --- a/query-languages/m/table-replacevalue.md +++ b/query-languages/m/table-replacevalue.md @@ -4,7 +4,6 @@ title: "Table.ReplaceValue | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-reverserows.md b/query-languages/m/table-reverserows.md index fe1e4d122..70dc7f519 100644 --- a/query-languages/m/table-reverserows.md +++ b/query-languages/m/table-reverserows.md @@ -4,7 +4,6 @@ title: "Table.ReverseRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-rowcount.md b/query-languages/m/table-rowcount.md index 6222223d2..b77609fa9 100644 --- a/query-languages/m/table-rowcount.md +++ b/query-languages/m/table-rowcount.md @@ -4,7 +4,6 @@ title: "Table.RowCount | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-schema.md b/query-languages/m/table-schema.md index 9769dfa97..380b8ec9a 100644 --- a/query-languages/m/table-schema.md +++ b/query-languages/m/table-schema.md @@ -4,7 +4,6 @@ title: "Table.Schema | Microsoft Docs" ms.date: 11/17/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-selectcolumns.md b/query-languages/m/table-selectcolumns.md index af0274e99..c8efc2da8 100644 --- a/query-languages/m/table-selectcolumns.md +++ b/query-languages/m/table-selectcolumns.md @@ -4,7 +4,6 @@ title: "Table.SelectColumns | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-selectrows.md b/query-languages/m/table-selectrows.md index b2322ab50..9be2ad680 100644 --- a/query-languages/m/table-selectrows.md +++ b/query-languages/m/table-selectrows.md @@ -4,7 +4,6 @@ title: "Table.SelectRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-selectrowswitherrors.md b/query-languages/m/table-selectrowswitherrors.md index 7fba1e4d8..b01c494fa 100644 --- a/query-languages/m/table-selectrowswitherrors.md +++ b/query-languages/m/table-selectrowswitherrors.md @@ -4,7 +4,6 @@ title: "Table.SelectRowsWithErrors | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-singlerow.md b/query-languages/m/table-singlerow.md index 6dc17a08d..0a00c911f 100644 --- a/query-languages/m/table-singlerow.md +++ b/query-languages/m/table-singlerow.md @@ -4,7 +4,6 @@ title: "Table.SingleRow | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-skip.md b/query-languages/m/table-skip.md index d26cbba70..a1a77b731 100644 --- a/query-languages/m/table-skip.md +++ b/query-languages/m/table-skip.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Skip" title: "Table.Skip | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-sort.md b/query-languages/m/table-sort.md index 13047142a..7c15d7a29 100644 --- a/query-languages/m/table-sort.md +++ b/query-languages/m/table-sort.md @@ -4,7 +4,6 @@ title: "Table.Sort | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-split.md b/query-languages/m/table-split.md index d0d05216d..538e586e7 100644 --- a/query-languages/m/table-split.md +++ b/query-languages/m/table-split.md @@ -4,7 +4,6 @@ title: "Table.Split | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-splitat.md b/query-languages/m/table-splitat.md index ecc7ea0cc..7c2fc06c0 100644 --- a/query-languages/m/table-splitat.md +++ b/query-languages/m/table-splitat.md @@ -4,7 +4,6 @@ title: "Table.SplitAt | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index 5c895cbed..e3fa76bc3 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -4,7 +4,6 @@ title: "Table.SplitColumn | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-stopfolding.md b/query-languages/m/table-stopfolding.md index 4057c60fe..9fa95a60b 100644 --- a/query-languages/m/table-stopfolding.md +++ b/query-languages/m/table-stopfolding.md @@ -4,7 +4,6 @@ title: "Table.StopFolding | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-tocolumns.md b/query-languages/m/table-tocolumns.md index fe98c4399..b7d44e10e 100644 --- a/query-languages/m/table-tocolumns.md +++ b/query-languages/m/table-tocolumns.md @@ -4,7 +4,6 @@ title: "Table.ToColumns | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-tolist.md b/query-languages/m/table-tolist.md index 1a02c7dd9..e7f0b9a1e 100644 --- a/query-languages/m/table-tolist.md +++ b/query-languages/m/table-tolist.md @@ -4,7 +4,6 @@ title: "Table.ToList | Microsoft Docs" ms.date: 5/3/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-torecords.md b/query-languages/m/table-torecords.md index 816c5f88e..345a4edbc 100644 --- a/query-languages/m/table-torecords.md +++ b/query-languages/m/table-torecords.md @@ -4,7 +4,6 @@ title: "Table.ToRecords | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-torows.md b/query-languages/m/table-torows.md index 7305e0da5..67fc5e3af 100644 --- a/query-languages/m/table-torows.md +++ b/query-languages/m/table-torows.md @@ -4,7 +4,6 @@ title: "Table.ToRows | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transformcolumnnames.md b/query-languages/m/table-transformcolumnnames.md index 15c55c0fa..2b5a8d863 100644 --- a/query-languages/m/table-transformcolumnnames.md +++ b/query-languages/m/table-transformcolumnnames.md @@ -4,7 +4,6 @@ title: "Table.TransformColumnNames | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transformcolumns.md b/query-languages/m/table-transformcolumns.md index 03ab4a1e8..217e9f0eb 100644 --- a/query-languages/m/table-transformcolumns.md +++ b/query-languages/m/table-transformcolumns.md @@ -4,7 +4,6 @@ title: "Table.TransformColumns | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 6a83e2e96..db77e2696 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -4,7 +4,6 @@ title: "Table.TransformColumnTypes | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transformrows.md b/query-languages/m/table-transformrows.md index 854162ebf..d1a6d2f1f 100644 --- a/query-languages/m/table-transformrows.md +++ b/query-languages/m/table-transformrows.md @@ -4,7 +4,6 @@ title: "Table.TransformRows | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transpose.md b/query-languages/m/table-transpose.md index ae6ddcfa5..4f1db0cba 100644 --- a/query-languages/m/table-transpose.md +++ b/query-languages/m/table-transpose.md @@ -4,7 +4,6 @@ title: "Table.Transpose | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-unpivot.md b/query-languages/m/table-unpivot.md index b1bad678c..1c34f562b 100644 --- a/query-languages/m/table-unpivot.md +++ b/query-languages/m/table-unpivot.md @@ -4,7 +4,6 @@ title: "Table.Unpivot | Microsoft Docs" ms.date: 3/10/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-unpivotothercolumns.md b/query-languages/m/table-unpivotothercolumns.md index 1e20fbaa8..291d5f4e2 100644 --- a/query-languages/m/table-unpivotothercolumns.md +++ b/query-languages/m/table-unpivotothercolumns.md @@ -4,7 +4,6 @@ title: "Table.UnpivotOtherColumns | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-view.md b/query-languages/m/table-view.md index 1e2256701..c1f9af93d 100644 --- a/query-languages/m/table-view.md +++ b/query-languages/m/table-view.md @@ -4,7 +4,6 @@ title: "Table.View | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-viewerror.md b/query-languages/m/table-viewerror.md index 5a8150825..c38e7a184 100644 --- a/query-languages/m/table-viewerror.md +++ b/query-languages/m/table-viewerror.md @@ -4,7 +4,6 @@ title: "Table.ViewError | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-viewfunction.md b/query-languages/m/table-viewfunction.md index b86543d8d..c65ac2185 100644 --- a/query-languages/m/table-viewfunction.md +++ b/query-languages/m/table-viewfunction.md @@ -4,7 +4,6 @@ title: "Table.ViewFunction | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/tables-getrelationships.md b/query-languages/m/tables-getrelationships.md index f073027b9..f8b5e8b8d 100644 --- a/query-languages/m/tables-getrelationships.md +++ b/query-languages/m/tables-getrelationships.md @@ -4,7 +4,6 @@ title: "Tables.GetRelationships | Microsoft Docs" ms.date: 8/1/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/teradata-database.md b/query-languages/m/teradata-database.md index 414b87900..8c06191e5 100644 --- a/query-languages/m/teradata-database.md +++ b/query-languages/m/teradata-database.md @@ -3,7 +3,6 @@ description: "Learn more about: Teradata.Database" title: "Teradata.Database | Microsoft Docs" ms.date: 02/03/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-afterdelimiter.md b/query-languages/m/text-afterdelimiter.md index 546277b06..03d9e0bb7 100644 --- a/query-languages/m/text-afterdelimiter.md +++ b/query-languages/m/text-afterdelimiter.md @@ -4,7 +4,6 @@ title: "Text.AfterDelimiter | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-at.md b/query-languages/m/text-at.md index 513c07703..68b47a952 100644 --- a/query-languages/m/text-at.md +++ b/query-languages/m/text-at.md @@ -4,7 +4,6 @@ title: "Text.At | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-beforedelimiter.md b/query-languages/m/text-beforedelimiter.md index 866747f63..55fa1a7ce 100644 --- a/query-languages/m/text-beforedelimiter.md +++ b/query-languages/m/text-beforedelimiter.md @@ -4,7 +4,6 @@ title: "Text.BeforeDelimiter | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-betweendelimiters.md b/query-languages/m/text-betweendelimiters.md index eab65d4bd..b43454fb9 100644 --- a/query-languages/m/text-betweendelimiters.md +++ b/query-languages/m/text-betweendelimiters.md @@ -4,7 +4,6 @@ title: "Text.BetweenDelimiters | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-clean.md b/query-languages/m/text-clean.md index 374e42e1a..6a28505a1 100644 --- a/query-languages/m/text-clean.md +++ b/query-languages/m/text-clean.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Clean" title: "Text.Clean | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 076de3c66..629b67b6f 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -4,7 +4,6 @@ title: "Text.Combine | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index 04c6935a0..83a30bd5d 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -4,7 +4,6 @@ title: "Text.Contains | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-end.md b/query-languages/m/text-end.md index 67080b5d0..b50df2ee2 100644 --- a/query-languages/m/text-end.md +++ b/query-languages/m/text-end.md @@ -4,7 +4,6 @@ title: "Text.End | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-endswith.md b/query-languages/m/text-endswith.md index 01ed97f2d..05c7236f6 100644 --- a/query-languages/m/text-endswith.md +++ b/query-languages/m/text-endswith.md @@ -4,7 +4,6 @@ title: "Text.EndsWith | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-format.md b/query-languages/m/text-format.md index 05527a9f9..dbfba67c0 100644 --- a/query-languages/m/text-format.md +++ b/query-languages/m/text-format.md @@ -4,7 +4,6 @@ title: "Text.Format | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-from.md b/query-languages/m/text-from.md index ed98d8691..22d55726f 100644 --- a/query-languages/m/text-from.md +++ b/query-languages/m/text-from.md @@ -4,7 +4,6 @@ title: "Text.From | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-frombinary.md b/query-languages/m/text-frombinary.md index 008f6b5b9..1bdbeca09 100644 --- a/query-languages/m/text-frombinary.md +++ b/query-languages/m/text-frombinary.md @@ -4,7 +4,6 @@ title: "Text.FromBinary | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-functions.md b/query-languages/m/text-functions.md index 38d403e56..1dd7c05d0 100644 --- a/query-languages/m/text-functions.md +++ b/query-languages/m/text-functions.md @@ -4,7 +4,6 @@ title: "Text functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-infernumbertype.md b/query-languages/m/text-infernumbertype.md index 1123a45f8..225fe417b 100644 --- a/query-languages/m/text-infernumbertype.md +++ b/query-languages/m/text-infernumbertype.md @@ -4,7 +4,6 @@ title: "Text.InferNumberType | Microsoft Docs" ms.date: 11/17/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-insert.md b/query-languages/m/text-insert.md index cd5670bdb..401c6958a 100644 --- a/query-languages/m/text-insert.md +++ b/query-languages/m/text-insert.md @@ -4,7 +4,6 @@ title: "Text.Insert | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-length.md b/query-languages/m/text-length.md index 1cf072e62..7c5a900c5 100644 --- a/query-languages/m/text-length.md +++ b/query-languages/m/text-length.md @@ -4,7 +4,6 @@ title: "Text.Length | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-lower.md b/query-languages/m/text-lower.md index 63da99f0b..ec4611973 100644 --- a/query-languages/m/text-lower.md +++ b/query-languages/m/text-lower.md @@ -4,7 +4,6 @@ title: "Text.Lower | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index bd148e379..7b4cf4ab2 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -4,7 +4,6 @@ title: "Text.Middle | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-newguid.md b/query-languages/m/text-newguid.md index 6ea313f56..730c6836a 100644 --- a/query-languages/m/text-newguid.md +++ b/query-languages/m/text-newguid.md @@ -4,7 +4,6 @@ title: "Text.NewGuid | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-padend.md b/query-languages/m/text-padend.md index 2fe8f097c..dfdf00777 100644 --- a/query-languages/m/text-padend.md +++ b/query-languages/m/text-padend.md @@ -4,7 +4,6 @@ title: "Text.PadEnd | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-padstart.md b/query-languages/m/text-padstart.md index 1cf6e0d3a..9f22d3dfe 100644 --- a/query-languages/m/text-padstart.md +++ b/query-languages/m/text-padstart.md @@ -4,7 +4,6 @@ title: "Text.PadStart | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-positionof.md b/query-languages/m/text-positionof.md index 2310e7543..6231a7f5c 100644 --- a/query-languages/m/text-positionof.md +++ b/query-languages/m/text-positionof.md @@ -4,7 +4,6 @@ title: "Text.PositionOf | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-positionofany.md b/query-languages/m/text-positionofany.md index 3672461ae..e46ac4fa4 100644 --- a/query-languages/m/text-positionofany.md +++ b/query-languages/m/text-positionofany.md @@ -4,7 +4,6 @@ title: "Text.PositionOfAny | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-proper.md b/query-languages/m/text-proper.md index 1afe20a3b..60ae7e403 100644 --- a/query-languages/m/text-proper.md +++ b/query-languages/m/text-proper.md @@ -4,7 +4,6 @@ title: "Text.Proper | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-range.md b/query-languages/m/text-range.md index 915c392c2..144a4e9f9 100644 --- a/query-languages/m/text-range.md +++ b/query-languages/m/text-range.md @@ -4,7 +4,6 @@ title: "Text.Range | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-remove.md b/query-languages/m/text-remove.md index 4699b651f..6c6fd5865 100644 --- a/query-languages/m/text-remove.md +++ b/query-languages/m/text-remove.md @@ -4,7 +4,6 @@ title: "Text.Remove | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-removerange.md b/query-languages/m/text-removerange.md index a333eb536..f258d57bf 100644 --- a/query-languages/m/text-removerange.md +++ b/query-languages/m/text-removerange.md @@ -4,7 +4,6 @@ title: "Text.RemoveRange | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-repeat.md b/query-languages/m/text-repeat.md index 979dfa278..c15d5285a 100644 --- a/query-languages/m/text-repeat.md +++ b/query-languages/m/text-repeat.md @@ -4,7 +4,6 @@ title: "Text.Repeat | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-replace.md b/query-languages/m/text-replace.md index c9d00dd76..4b34fecde 100644 --- a/query-languages/m/text-replace.md +++ b/query-languages/m/text-replace.md @@ -4,7 +4,6 @@ title: "Text.Replace | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-replacerange.md b/query-languages/m/text-replacerange.md index 1d1c0aba8..d857ce11e 100644 --- a/query-languages/m/text-replacerange.md +++ b/query-languages/m/text-replacerange.md @@ -4,7 +4,6 @@ title: "Text.ReplaceRange | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-reverse.md b/query-languages/m/text-reverse.md index 187bb5399..799c01064 100644 --- a/query-languages/m/text-reverse.md +++ b/query-languages/m/text-reverse.md @@ -4,7 +4,6 @@ title: "Text.Reverse| Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-select.md b/query-languages/m/text-select.md index f59bb7f0b..a0f105ee2 100644 --- a/query-languages/m/text-select.md +++ b/query-languages/m/text-select.md @@ -4,7 +4,6 @@ title: "Text.Select | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-split.md b/query-languages/m/text-split.md index f64a640c0..364c19642 100644 --- a/query-languages/m/text-split.md +++ b/query-languages/m/text-split.md @@ -4,7 +4,6 @@ title: "Text.Split | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-splitany.md b/query-languages/m/text-splitany.md index ee1b23764..a575cd7d4 100644 --- a/query-languages/m/text-splitany.md +++ b/query-languages/m/text-splitany.md @@ -4,7 +4,6 @@ title: "Text.SplitAny | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-start.md b/query-languages/m/text-start.md index 46d52a30c..295f1e7f9 100644 --- a/query-languages/m/text-start.md +++ b/query-languages/m/text-start.md @@ -4,7 +4,6 @@ title: "Text.Start | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index 1b76e8b01..8d3d2c837 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -4,7 +4,6 @@ title: "Text.StartsWith | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-tobinary.md b/query-languages/m/text-tobinary.md index 3459313e9..341a7c827 100644 --- a/query-languages/m/text-tobinary.md +++ b/query-languages/m/text-tobinary.md @@ -4,7 +4,6 @@ title: "Text.ToBinary | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-tolist.md b/query-languages/m/text-tolist.md index 0fc83e4f6..0ae0ec51e 100644 --- a/query-languages/m/text-tolist.md +++ b/query-languages/m/text-tolist.md @@ -4,7 +4,6 @@ title: "Text.ToList | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-trim.md b/query-languages/m/text-trim.md index e875168b3..7c193edd3 100644 --- a/query-languages/m/text-trim.md +++ b/query-languages/m/text-trim.md @@ -4,7 +4,6 @@ title: "Text.Trim | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-trimend.md b/query-languages/m/text-trimend.md index 63ac311ac..fe2b1acf6 100644 --- a/query-languages/m/text-trimend.md +++ b/query-languages/m/text-trimend.md @@ -4,7 +4,6 @@ title: "Text.TrimEnd | Microsoft Docs" ms.date: 4/22/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-trimstart.md b/query-languages/m/text-trimstart.md index 46e4dbead..0ae4fe8a2 100644 --- a/query-languages/m/text-trimstart.md +++ b/query-languages/m/text-trimstart.md @@ -4,7 +4,6 @@ title: "Text.TrimStart | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-upper.md b/query-languages/m/text-upper.md index 0193d5281..10a33b0dd 100644 --- a/query-languages/m/text-upper.md +++ b/query-languages/m/text-upper.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Upper" title: "Text.Upper | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/textencoding-type.md b/query-languages/m/textencoding-type.md index 10e11befb..5e156b74e 100644 --- a/query-languages/m/textencoding-type.md +++ b/query-languages/m/textencoding-type.md @@ -4,7 +4,6 @@ title: "TextEncoding.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-endofhour.md b/query-languages/m/time-endofhour.md index 381898041..432405752 100644 --- a/query-languages/m/time-endofhour.md +++ b/query-languages/m/time-endofhour.md @@ -4,7 +4,6 @@ title: "Time.EndOfHour | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-from.md b/query-languages/m/time-from.md index 8797bb56e..2c39879a5 100644 --- a/query-languages/m/time-from.md +++ b/query-languages/m/time-from.md @@ -4,7 +4,6 @@ title: "Time.From | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-fromtext.md b/query-languages/m/time-fromtext.md index 6b806dbe7..5ea52b62a 100644 --- a/query-languages/m/time-fromtext.md +++ b/query-languages/m/time-fromtext.md @@ -4,7 +4,6 @@ title: "Time.FromText | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-functions.md b/query-languages/m/time-functions.md index b1e81da00..a847a4898 100644 --- a/query-languages/m/time-functions.md +++ b/query-languages/m/time-functions.md @@ -4,7 +4,6 @@ title: "Time functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-hour.md b/query-languages/m/time-hour.md index 0156f3579..dbb9234d5 100644 --- a/query-languages/m/time-hour.md +++ b/query-languages/m/time-hour.md @@ -4,7 +4,6 @@ title: "Time.Hour | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-minute.md b/query-languages/m/time-minute.md index 3561931ca..498775c87 100644 --- a/query-languages/m/time-minute.md +++ b/query-languages/m/time-minute.md @@ -4,7 +4,6 @@ title: "Time.Minute | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-second.md b/query-languages/m/time-second.md index 4659f1092..861c8dfb3 100644 --- a/query-languages/m/time-second.md +++ b/query-languages/m/time-second.md @@ -4,7 +4,6 @@ title: "Time.Second | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-startofhour.md b/query-languages/m/time-startofhour.md index d7f7b0190..f2b2a8228 100644 --- a/query-languages/m/time-startofhour.md +++ b/query-languages/m/time-startofhour.md @@ -4,7 +4,6 @@ title: "Time.StartOfHour | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-torecord.md b/query-languages/m/time-torecord.md index 74ed30532..a3e506ab6 100644 --- a/query-languages/m/time-torecord.md +++ b/query-languages/m/time-torecord.md @@ -4,7 +4,6 @@ title: "Time.ToRecord | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-totext.md b/query-languages/m/time-totext.md index 91d5c9604..2b9339c77 100644 --- a/query-languages/m/time-totext.md +++ b/query-languages/m/time-totext.md @@ -4,7 +4,6 @@ title: "Time.ToText | Microsoft Docs" ms.date: 6/24/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/timezone-current.md b/query-languages/m/timezone-current.md index d502fe018..7f0cdefd9 100644 --- a/query-languages/m/timezone-current.md +++ b/query-languages/m/timezone-current.md @@ -4,7 +4,6 @@ title: "TimeZone.Current | Microsoft Docs" ms.date: 9/13/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/tracelevel-type.md b/query-languages/m/tracelevel-type.md index e0a96cfd0..a7074a285 100644 --- a/query-languages/m/tracelevel-type.md +++ b/query-languages/m/tracelevel-type.md @@ -4,7 +4,6 @@ title: "TraceLevel.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-addtablekey.md b/query-languages/m/type-addtablekey.md index d86003172..83b34c61e 100644 --- a/query-languages/m/type-addtablekey.md +++ b/query-languages/m/type-addtablekey.md @@ -4,7 +4,6 @@ title: "Type.AddTableKey | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-closedrecord.md b/query-languages/m/type-closedrecord.md index 52e880a33..cb83a7d39 100644 --- a/query-languages/m/type-closedrecord.md +++ b/query-languages/m/type-closedrecord.md @@ -4,7 +4,6 @@ title: "Type.ClosedRecord | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 00599c655..6a8bb2b50 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -4,7 +4,6 @@ title: "Type conversion | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-facets.md b/query-languages/m/type-facets.md index 93a9b8919..efd814cca 100644 --- a/query-languages/m/type-facets.md +++ b/query-languages/m/type-facets.md @@ -4,7 +4,6 @@ title: "Type.Facets | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-forfunction.md b/query-languages/m/type-forfunction.md index c288c07ce..fcb10d3cb 100644 --- a/query-languages/m/type-forfunction.md +++ b/query-languages/m/type-forfunction.md @@ -4,7 +4,6 @@ title: "Type.ForFunction | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-forrecord.md b/query-languages/m/type-forrecord.md index d0a7b7606..ab02aaeeb 100644 --- a/query-languages/m/type-forrecord.md +++ b/query-languages/m/type-forrecord.md @@ -4,7 +4,6 @@ title: "Type.ForRecord | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-functionparameters.md b/query-languages/m/type-functionparameters.md index be7e5b1d2..84cd10a8e 100644 --- a/query-languages/m/type-functionparameters.md +++ b/query-languages/m/type-functionparameters.md @@ -4,7 +4,6 @@ title: "Type.FunctionParameters | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-functionrequiredparameters.md b/query-languages/m/type-functionrequiredparameters.md index 3cac7a3be..bba532f38 100644 --- a/query-languages/m/type-functionrequiredparameters.md +++ b/query-languages/m/type-functionrequiredparameters.md @@ -4,7 +4,6 @@ title: "Type.FunctionRequiredParameters | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-functionreturn.md b/query-languages/m/type-functionreturn.md index e26b66367..a48bc632e 100644 --- a/query-languages/m/type-functionreturn.md +++ b/query-languages/m/type-functionreturn.md @@ -4,7 +4,6 @@ title: "Type.FunctionReturn | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-functions.md b/query-languages/m/type-functions.md index 95176f42c..91fd23bba 100644 --- a/query-languages/m/type-functions.md +++ b/query-languages/m/type-functions.md @@ -4,7 +4,6 @@ title: "Type functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index 347a11151..646f0cad1 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -4,7 +4,6 @@ title: "Type.Is | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-isnullable.md b/query-languages/m/type-isnullable.md index 896af3940..ef1704515 100644 --- a/query-languages/m/type-isnullable.md +++ b/query-languages/m/type-isnullable.md @@ -4,7 +4,6 @@ title: "Type.IsNullable | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-isopenrecord.md b/query-languages/m/type-isopenrecord.md index a19692ea2..ad6bee811 100644 --- a/query-languages/m/type-isopenrecord.md +++ b/query-languages/m/type-isopenrecord.md @@ -4,7 +4,6 @@ title: "Type.IsOpenRecord | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-listitem.md b/query-languages/m/type-listitem.md index 6d1494b52..0bd4d776f 100644 --- a/query-languages/m/type-listitem.md +++ b/query-languages/m/type-listitem.md @@ -4,7 +4,6 @@ title: "Type.ListItem | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-nonnullable.md b/query-languages/m/type-nonnullable.md index c9f73dbb8..b39d5c057 100644 --- a/query-languages/m/type-nonnullable.md +++ b/query-languages/m/type-nonnullable.md @@ -4,7 +4,6 @@ title: "Type.NonNullable | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-openrecord.md b/query-languages/m/type-openrecord.md index 1d9c4b575..ea7b6828c 100644 --- a/query-languages/m/type-openrecord.md +++ b/query-languages/m/type-openrecord.md @@ -4,7 +4,6 @@ title: "Type.OpenRecord | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-recordfields.md b/query-languages/m/type-recordfields.md index 514c5d60c..1cadfb32b 100644 --- a/query-languages/m/type-recordfields.md +++ b/query-languages/m/type-recordfields.md @@ -4,7 +4,6 @@ title: "Type.RecordFields | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-replacefacets.md b/query-languages/m/type-replacefacets.md index 786568e6c..c31ca53d9 100644 --- a/query-languages/m/type-replacefacets.md +++ b/query-languages/m/type-replacefacets.md @@ -4,7 +4,6 @@ title: "Type.ReplaceFacets | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 93c53cd70..1faba54dd 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -4,7 +4,6 @@ title: "Type.ReplaceTableKeys | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-tablecolumn.md b/query-languages/m/type-tablecolumn.md index 1c6e6deec..ccc22b3aa 100644 --- a/query-languages/m/type-tablecolumn.md +++ b/query-languages/m/type-tablecolumn.md @@ -4,7 +4,6 @@ title: "Type.TableColumn | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index 461bec113..e4139a46e 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -4,7 +4,6 @@ title: "Type.TableKeys | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-tablerow.md b/query-languages/m/type-tablerow.md index f5a7838b2..56e09fecb 100644 --- a/query-languages/m/type-tablerow.md +++ b/query-languages/m/type-tablerow.md @@ -4,7 +4,6 @@ title: "Type.TableRow | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-tableschema.md b/query-languages/m/type-tableschema.md index b81a673dc..4e29be9af 100644 --- a/query-languages/m/type-tableschema.md +++ b/query-languages/m/type-tableschema.md @@ -4,7 +4,6 @@ title: "Type.TableSchema | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-union.md b/query-languages/m/type-union.md index 331963c50..e079e8a22 100644 --- a/query-languages/m/type-union.md +++ b/query-languages/m/type-union.md @@ -4,7 +4,6 @@ title: "Type.Union | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index c1d58e3b2..b664af41b 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -4,7 +4,6 @@ title: "Understanding Power Query M functions | Microsoft Docs" ms.date: 4/16/2018 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-buildquerystring.md b/query-languages/m/uri-buildquerystring.md index 0d50ab453..4bef066cd 100644 --- a/query-languages/m/uri-buildquerystring.md +++ b/query-languages/m/uri-buildquerystring.md @@ -4,7 +4,6 @@ title: "Uri.BuildQueryString | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-combine.md b/query-languages/m/uri-combine.md index 0ea377d76..218fc35d7 100644 --- a/query-languages/m/uri-combine.md +++ b/query-languages/m/uri-combine.md @@ -4,7 +4,6 @@ title: "Uri.Combine | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-escapedatastring.md b/query-languages/m/uri-escapedatastring.md index 60fecc7da..554ffc27e 100644 --- a/query-languages/m/uri-escapedatastring.md +++ b/query-languages/m/uri-escapedatastring.md @@ -4,7 +4,6 @@ title: "Uri.EscapeDataString | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-functions.md b/query-languages/m/uri-functions.md index 627583029..352290d4b 100644 --- a/query-languages/m/uri-functions.md +++ b/query-languages/m/uri-functions.md @@ -4,7 +4,6 @@ title: "Uri functions | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-parts.md b/query-languages/m/uri-parts.md index 1076c7320..6bb427a51 100644 --- a/query-languages/m/uri-parts.md +++ b/query-languages/m/uri-parts.md @@ -4,7 +4,6 @@ title: "Uri.Parts | Microsoft Docs" ms.date: 3/11/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-add.md b/query-languages/m/value-add.md index 1b63d924d..e1f0e467d 100644 --- a/query-languages/m/value-add.md +++ b/query-languages/m/value-add.md @@ -4,7 +4,6 @@ title: "Value.Add | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-alternates.md b/query-languages/m/value-alternates.md index b68e6a73b..dd9f58170 100644 --- a/query-languages/m/value-alternates.md +++ b/query-languages/m/value-alternates.md @@ -4,7 +4,6 @@ title: "Value.Alternates | Microsoft Docs" ms.date: 5/12/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-as.md b/query-languages/m/value-as.md index 047a53823..cc6eade90 100644 --- a/query-languages/m/value-as.md +++ b/query-languages/m/value-as.md @@ -4,7 +4,6 @@ title: "Value.As | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-compare.md b/query-languages/m/value-compare.md index bb1b9bc67..2a72f72fa 100644 --- a/query-languages/m/value-compare.md +++ b/query-languages/m/value-compare.md @@ -4,7 +4,6 @@ title: "Value.Compare | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-divide.md b/query-languages/m/value-divide.md index bed83070f..45faf9362 100644 --- a/query-languages/m/value-divide.md +++ b/query-languages/m/value-divide.md @@ -4,7 +4,6 @@ title: "Value.Divide | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-equals.md b/query-languages/m/value-equals.md index 5d945c874..024c5cfc6 100644 --- a/query-languages/m/value-equals.md +++ b/query-languages/m/value-equals.md @@ -4,7 +4,6 @@ title: "Value.Equals | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-expression.md b/query-languages/m/value-expression.md index 4b057eec3..811df67f1 100644 --- a/query-languages/m/value-expression.md +++ b/query-languages/m/value-expression.md @@ -4,7 +4,6 @@ title: "Value.Expression | Microsoft Docs" ms.date: 3/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-firewall.md b/query-languages/m/value-firewall.md index 3bfe3c9c6..bf1efaebd 100644 --- a/query-languages/m/value-firewall.md +++ b/query-languages/m/value-firewall.md @@ -4,7 +4,6 @@ title: "Value.Firewall | Microsoft Docs" ms.date: 10/18/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-fromtext.md b/query-languages/m/value-fromtext.md index 8788efc97..3cf4e431e 100644 --- a/query-languages/m/value-fromtext.md +++ b/query-languages/m/value-fromtext.md @@ -4,7 +4,6 @@ title: "Value.FromText | Microsoft Docs" ms.date: 4/1/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 73732d550..2bbf07b95 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -4,7 +4,6 @@ title: "Value functions | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-is.md b/query-languages/m/value-is.md index 9713f7edf..fbf8fcd0a 100644 --- a/query-languages/m/value-is.md +++ b/query-languages/m/value-is.md @@ -4,7 +4,6 @@ title: "Value.Is | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-lineage.md b/query-languages/m/value-lineage.md index 9d8b78caf..7f5622cb8 100644 --- a/query-languages/m/value-lineage.md +++ b/query-languages/m/value-lineage.md @@ -4,7 +4,6 @@ title: "Value.Lineage | Microsoft Docs" ms.date: 9/22/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-metadata.md b/query-languages/m/value-metadata.md index 6f8363173..4d21c45a1 100644 --- a/query-languages/m/value-metadata.md +++ b/query-languages/m/value-metadata.md @@ -4,7 +4,6 @@ title: "Value.Metadata | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-multiply.md b/query-languages/m/value-multiply.md index 6ad49d14f..b281e053a 100644 --- a/query-languages/m/value-multiply.md +++ b/query-languages/m/value-multiply.md @@ -4,7 +4,6 @@ title: "Value.Multiply | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-nativequery.md b/query-languages/m/value-nativequery.md index 9daaf108a..179e43df2 100644 --- a/query-languages/m/value-nativequery.md +++ b/query-languages/m/value-nativequery.md @@ -4,7 +4,6 @@ title: "Value.NativeQuery | Microsoft Docs" ms.date: 11/17/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-nullableequals.md b/query-languages/m/value-nullableequals.md index d0a134357..8bf674d82 100644 --- a/query-languages/m/value-nullableequals.md +++ b/query-languages/m/value-nullableequals.md @@ -4,7 +4,6 @@ title: "Value.NullableEquals | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-optimize.md b/query-languages/m/value-optimize.md index 8e6b3ac6c..722e44b40 100644 --- a/query-languages/m/value-optimize.md +++ b/query-languages/m/value-optimize.md @@ -4,7 +4,6 @@ title: "Value.Optimize | Microsoft Docs" ms.date: 06/16/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-removemetadata.md b/query-languages/m/value-removemetadata.md index 83868489c..34188caa9 100644 --- a/query-languages/m/value-removemetadata.md +++ b/query-languages/m/value-removemetadata.md @@ -4,7 +4,6 @@ title: "Value.RemoveMetadata | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-replacemetadata.md b/query-languages/m/value-replacemetadata.md index e99e3ba7a..c42f5f5e9 100644 --- a/query-languages/m/value-replacemetadata.md +++ b/query-languages/m/value-replacemetadata.md @@ -4,7 +4,6 @@ title: "Value.ReplaceMetadata | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-replacetype.md b/query-languages/m/value-replacetype.md index c49eb3c8b..fb8cf2654 100644 --- a/query-languages/m/value-replacetype.md +++ b/query-languages/m/value-replacetype.md @@ -4,7 +4,6 @@ title: "Value.ReplaceType | Microsoft Docs" ms.date: 4/13/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-subtract.md b/query-languages/m/value-subtract.md index 64ececc09..03aabefd9 100644 --- a/query-languages/m/value-subtract.md +++ b/query-languages/m/value-subtract.md @@ -4,7 +4,6 @@ title: "Value.Subtract | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-traits.md b/query-languages/m/value-traits.md index 1f86acb21..2e803bab9 100644 --- a/query-languages/m/value-traits.md +++ b/query-languages/m/value-traits.md @@ -4,7 +4,6 @@ title: "Value.Traits | Microsoft Docs" ms.date: 9/22/2020 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-type.md b/query-languages/m/value-type.md index f15cb2d0a..ead1a34c8 100644 --- a/query-languages/m/value-type.md +++ b/query-languages/m/value-type.md @@ -4,7 +4,6 @@ title: "Value.Type | Microsoft Docs" ms.date: 8/2/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-versionidentity.md b/query-languages/m/value-versionidentity.md index acfd5dd8c..b70e6a527 100644 --- a/query-languages/m/value-versionidentity.md +++ b/query-languages/m/value-versionidentity.md @@ -4,7 +4,6 @@ title: "Value.VersionIdentity | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-versions.md b/query-languages/m/value-versions.md index f13842d42..cd6da8473 100644 --- a/query-languages/m/value-versions.md +++ b/query-languages/m/value-versions.md @@ -4,7 +4,6 @@ title: "Value.Versions | Microsoft Docs" ms.date: 5/19/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/variable-value.md b/query-languages/m/variable-value.md index 49136ea63..8d2729236 100644 --- a/query-languages/m/variable-value.md +++ b/query-languages/m/variable-value.md @@ -4,7 +4,6 @@ title: "Variable.Value | Microsoft Docs" ms.date: 10/18/2021 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/web-browsercontents.md b/query-languages/m/web-browsercontents.md index 25d651261..01b577c25 100644 --- a/query-languages/m/web-browsercontents.md +++ b/query-languages/m/web-browsercontents.md @@ -3,7 +3,6 @@ description: "Learn more about: Web.BrowserContents" title: "Web.BrowserContents | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/web-contents.md b/query-languages/m/web-contents.md index e7b734d6f..de721a6b7 100644 --- a/query-languages/m/web-contents.md +++ b/query-languages/m/web-contents.md @@ -4,7 +4,6 @@ title: "Web.Contents | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/web-headers.md b/query-languages/m/web-headers.md index dec0b58e1..99484f9c0 100644 --- a/query-languages/m/web-headers.md +++ b/query-languages/m/web-headers.md @@ -4,7 +4,6 @@ title: "Web.Headers | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/web-page.md b/query-languages/m/web-page.md index f540d6b9a..e6a1afb23 100644 --- a/query-languages/m/web-page.md +++ b/query-languages/m/web-page.md @@ -3,7 +3,6 @@ description: "Learn more about: Web.Page" title: "Web.Page | Microsoft Docs" ms.date: 10/17/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/webaction-request.md b/query-languages/m/webaction-request.md index d87ad8373..0f9fc32b7 100644 --- a/query-languages/m/webaction-request.md +++ b/query-languages/m/webaction-request.md @@ -4,7 +4,6 @@ title: "WebAction.Request | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/webmethod-type.md b/query-languages/m/webmethod-type.md index c86cadad6..ba8e2adbe 100644 --- a/query-languages/m/webmethod-type.md +++ b/query-languages/m/webmethod-type.md @@ -4,7 +4,6 @@ title: "WebMethod.Type | Microsoft Docs" ms.date: 5/16/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/xml-document.md b/query-languages/m/xml-document.md index 2888ec27a..309ad3dee 100644 --- a/query-languages/m/xml-document.md +++ b/query-languages/m/xml-document.md @@ -4,7 +4,6 @@ title: "Xml.Document | Microsoft Docs" ms.date: 7/29/2019 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/xml-tables.md b/query-languages/m/xml-tables.md index c8a7a1209..b26804a26 100644 --- a/query-languages/m/xml-tables.md +++ b/query-languages/m/xml-tables.md @@ -4,7 +4,6 @@ title: "Xml.Tables | Microsoft Docs" ms.date: 3/14/2022 ms.service: powerquery -ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo From 45b2f5b620164b81648e51312a491ab330c1070e Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 29 Jul 2022 20:05:15 -0700 Subject: [PATCH 020/934] Add globals --- query-languages/m/docfx.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index a4e0753dc..42a72df88 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -39,7 +39,8 @@ "extendBreadcrumb": true, "titleSuffix": "PowerQuery M", "ms.service": "power-query", - "ms.topic": "reference" + "ms.topic": "reference", + "ms.reviewer": "ehvonleh" }, "fileMetadata": { }, "template": [], From 648f5d37a9cd81ddd6d195716eb829151e6b24a8 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 29 Jul 2022 20:08:02 -0700 Subject: [PATCH 021/934] Fix titles --- query-languages/m/accesscontrolentry-conditiontoidentities.md | 2 +- query-languages/m/accesscontrolkind-type.md | 2 +- query-languages/m/accessing-data-functions.md | 2 +- query-languages/m/activedirectory-domains.md | 2 +- query-languages/m/adobeanalytics-cubes.md | 2 +- query-languages/m/adodotnet-datasource.md | 2 +- query-languages/m/adodotnet-query.md | 2 +- query-languages/m/analysisservices-database.md | 2 +- query-languages/m/analysisservices-databases.md | 2 +- query-languages/m/azurestorage-blobcontents.md | 2 +- query-languages/m/azurestorage-blobs.md | 2 +- query-languages/m/azurestorage-datalake.md | 2 +- query-languages/m/azurestorage-datalakecontents.md | 2 +- query-languages/m/azurestorage-tables.md | 2 +- query-languages/m/binary-approximatelength.md | 2 +- query-languages/m/binary-buffer.md | 2 +- query-languages/m/binary-combine.md | 2 +- query-languages/m/binary-compress.md | 2 +- query-languages/m/binary-decompress.md | 2 +- query-languages/m/binary-from.md | 2 +- query-languages/m/binary-fromlist.md | 2 +- query-languages/m/binary-fromtext.md | 2 +- query-languages/m/binary-functions.md | 2 +- query-languages/m/binary-infercontenttype.md | 2 +- query-languages/m/binary-length.md | 2 +- query-languages/m/binary-range.md | 2 +- query-languages/m/binary-tolist.md | 2 +- query-languages/m/binary-totext.md | 2 +- query-languages/m/binary-view.md | 2 +- query-languages/m/binary-viewerror.md | 2 +- query-languages/m/binary-viewfunction.md | 2 +- query-languages/m/binaryencoding-type.md | 2 +- query-languages/m/binaryformat-7bitencodedsignedinteger.md | 2 +- query-languages/m/binaryformat-7bitencodedunsignedinteger.md | 2 +- query-languages/m/binaryformat-binary.md | 2 +- query-languages/m/binaryformat-byte.md | 2 +- query-languages/m/binaryformat-byteorder.md | 2 +- query-languages/m/binaryformat-choice.md | 2 +- query-languages/m/binaryformat-decimal.md | 2 +- query-languages/m/binaryformat-double.md | 2 +- query-languages/m/binaryformat-group.md | 2 +- query-languages/m/binaryformat-length.md | 2 +- query-languages/m/binaryformat-list.md | 2 +- query-languages/m/binaryformat-null.md | 2 +- query-languages/m/binaryformat-record.md | 2 +- query-languages/m/binaryformat-signedinteger16.md | 2 +- query-languages/m/binaryformat-signedinteger32.md | 2 +- query-languages/m/binaryformat-signedinteger64.md | 2 +- query-languages/m/binaryformat-single.md | 2 +- query-languages/m/binaryformat-text.md | 2 +- query-languages/m/binaryformat-transform.md | 2 +- query-languages/m/binaryformat-unsignedinteger16.md | 2 +- query-languages/m/binaryformat-unsignedinteger32.md | 2 +- query-languages/m/binaryformat-unsignedinteger64.md | 2 +- query-languages/m/binaryoccurrence-type.md | 2 +- query-languages/m/buffermode-type.md | 2 +- query-languages/m/byte-from.md | 2 +- query-languages/m/byteorder-type.md | 2 +- query-languages/m/cdm-contents.md | 2 +- query-languages/m/character-fromnumber.md | 2 +- query-languages/m/character-tonumber.md | 2 +- query-languages/m/combiner-combinetextbydelimiter.md | 2 +- query-languages/m/combiner-combinetextbyeachdelimiter.md | 2 +- query-languages/m/combiner-combinetextbylengths.md | 2 +- query-languages/m/combiner-combinetextbypositions.md | 2 +- query-languages/m/combiner-combinetextbyranges.md | 2 +- query-languages/m/combiner-functions.md | 2 +- query-languages/m/comments.md | 2 +- query-languages/m/comparer-equals.md | 2 +- query-languages/m/comparer-fromculture.md | 2 +- query-languages/m/comparer-functions.md | 2 +- query-languages/m/comparer-ordinal.md | 2 +- query-languages/m/comparer-ordinalignorecase.md | 2 +- query-languages/m/compression-type.md | 2 +- query-languages/m/constants.md | 2 +- query-languages/m/csv-document.md | 2 +- query-languages/m/csvstyle-type.md | 2 +- query-languages/m/cube-addandexpanddimensioncolumn.md | 2 +- query-languages/m/cube-addmeasurecolumn.md | 2 +- query-languages/m/cube-applyparameter.md | 2 +- query-languages/m/cube-attributememberid.md | 2 +- query-languages/m/cube-attributememberproperty.md | 2 +- query-languages/m/cube-collapseandremovecolumns.md | 2 +- query-languages/m/cube-dimensions.md | 2 +- query-languages/m/cube-displayfolders.md | 2 +- query-languages/m/cube-measureproperties.md | 2 +- query-languages/m/cube-measures.md | 2 +- query-languages/m/cube-parameters.md | 2 +- query-languages/m/cube-properties.md | 2 +- query-languages/m/cube-propertykey.md | 2 +- query-languages/m/cube-replacedimensions.md | 2 +- query-languages/m/cube-transform.md | 2 +- query-languages/m/culture-current.md | 2 +- query-languages/m/currency-from.md | 2 +- query-languages/m/date-adddays.md | 2 +- query-languages/m/date-addmonths.md | 2 +- query-languages/m/date-addquarters.md | 2 +- query-languages/m/date-addweeks.md | 2 +- query-languages/m/date-addyears.md | 2 +- query-languages/m/date-day.md | 2 +- query-languages/m/date-dayofweek.md | 2 +- query-languages/m/date-dayofweekname.md | 2 +- query-languages/m/date-dayofyear.md | 2 +- query-languages/m/date-daysinmonth.md | 2 +- query-languages/m/date-endofday.md | 2 +- query-languages/m/date-endofmonth.md | 2 +- query-languages/m/date-endofquarter.md | 2 +- query-languages/m/date-endofweek.md | 2 +- query-languages/m/date-endofyear.md | 2 +- query-languages/m/date-from.md | 2 +- query-languages/m/date-fromtext.md | 2 +- query-languages/m/date-functions.md | 2 +- query-languages/m/date-isincurrentday.md | 2 +- query-languages/m/date-isincurrentmonth.md | 2 +- query-languages/m/date-isincurrentquarter.md | 2 +- query-languages/m/date-isincurrentweek.md | 2 +- query-languages/m/date-isincurrentyear.md | 2 +- query-languages/m/date-isinnextday.md | 2 +- query-languages/m/date-isinnextmonth.md | 2 +- query-languages/m/date-isinnextndays.md | 2 +- query-languages/m/date-isinnextnmonths.md | 2 +- query-languages/m/date-isinnextnquarters.md | 2 +- query-languages/m/date-isinnextnweeks.md | 2 +- query-languages/m/date-isinnextnyears.md | 2 +- query-languages/m/date-isinnextquarter.md | 2 +- query-languages/m/date-isinnextweek.md | 2 +- query-languages/m/date-isinnextyear.md | 2 +- query-languages/m/date-isinpreviousday.md | 2 +- query-languages/m/date-isinpreviousmonth.md | 2 +- query-languages/m/date-isinpreviousndays.md | 2 +- query-languages/m/date-isinpreviousnmonths.md | 2 +- query-languages/m/date-isinpreviousnquarters.md | 2 +- query-languages/m/date-isinpreviousnweeks.md | 2 +- query-languages/m/date-isinpreviousnyears.md | 2 +- query-languages/m/date-isinpreviousquarter.md | 2 +- query-languages/m/date-isinpreviousweek.md | 2 +- query-languages/m/date-isinpreviousyear.md | 2 +- query-languages/m/date-isinyeartodate.md | 2 +- query-languages/m/date-isleapyear.md | 2 +- query-languages/m/date-month.md | 2 +- query-languages/m/date-monthname.md | 2 +- query-languages/m/date-quarterofyear.md | 2 +- query-languages/m/date-startofday.md | 2 +- query-languages/m/date-startofmonth.md | 2 +- query-languages/m/date-startofquarter.md | 2 +- query-languages/m/date-startofweek.md | 2 +- query-languages/m/date-startofyear.md | 2 +- query-languages/m/date-torecord.md | 2 +- query-languages/m/date-totext.md | 2 +- query-languages/m/date-weekofmonth.md | 2 +- query-languages/m/date-weekofyear.md | 2 +- query-languages/m/date-year.md | 2 +- query-languages/m/datetime-addzone.md | 2 +- query-languages/m/datetime-date.md | 2 +- query-languages/m/datetime-fixedlocalnow.md | 2 +- query-languages/m/datetime-from.md | 2 +- query-languages/m/datetime-fromfiletime.md | 2 +- query-languages/m/datetime-fromtext.md | 2 +- query-languages/m/datetime-functions.md | 2 +- query-languages/m/datetime-isincurrenthour.md | 2 +- query-languages/m/datetime-isincurrentminute.md | 2 +- query-languages/m/datetime-isincurrentsecond.md | 2 +- query-languages/m/datetime-isinnexthour.md | 2 +- query-languages/m/datetime-isinnextminute.md | 2 +- query-languages/m/datetime-isinnextnhours.md | 2 +- query-languages/m/datetime-isinnextnminutes.md | 2 +- query-languages/m/datetime-isinnextnseconds.md | 2 +- query-languages/m/datetime-isinnextsecond.md | 2 +- query-languages/m/datetime-isinprevioushour.md | 2 +- query-languages/m/datetime-isinpreviousminute.md | 2 +- query-languages/m/datetime-isinpreviousnhours.md | 2 +- query-languages/m/datetime-isinpreviousnminutes.md | 2 +- query-languages/m/datetime-isinpreviousnseconds.md | 2 +- query-languages/m/datetime-isinprevioussecond.md | 2 +- query-languages/m/datetime-localnow.md | 2 +- query-languages/m/datetime-time.md | 2 +- query-languages/m/datetime-torecord.md | 2 +- query-languages/m/datetime-totext.md | 2 +- query-languages/m/datetimezone-fixedlocalnow.md | 2 +- query-languages/m/datetimezone-fixedutcnow.md | 2 +- query-languages/m/datetimezone-from.md | 2 +- query-languages/m/datetimezone-fromfiletime.md | 2 +- query-languages/m/datetimezone-fromtext.md | 2 +- query-languages/m/datetimezone-functions.md | 2 +- query-languages/m/datetimezone-localnow.md | 2 +- query-languages/m/datetimezone-removezone.md | 2 +- query-languages/m/datetimezone-switchzone.md | 2 +- query-languages/m/datetimezone-tolocal.md | 2 +- query-languages/m/datetimezone-torecord.md | 2 +- query-languages/m/datetimezone-totext.md | 2 +- query-languages/m/datetimezone-toutc.md | 2 +- query-languages/m/datetimezone-utcnow.md | 2 +- query-languages/m/datetimezone-zonehours.md | 2 +- query-languages/m/datetimezone-zoneminutes.md | 2 +- query-languages/m/day-type.md | 2 +- query-languages/m/db2-database.md | 2 +- query-languages/m/decimal-from.md | 2 +- query-languages/m/diagnostics-activityid.md | 2 +- query-languages/m/diagnostics-trace.md | 2 +- query-languages/m/directquerycapabilities-from.md | 2 +- query-languages/m/double-from.md | 2 +- query-languages/m/duration-days.md | 2 +- query-languages/m/duration-from.md | 2 +- query-languages/m/duration-fromtext.md | 2 +- query-languages/m/duration-functions.md | 2 +- query-languages/m/duration-hours.md | 2 +- query-languages/m/duration-minutes.md | 2 +- query-languages/m/duration-seconds.md | 2 +- query-languages/m/duration-torecord.md | 2 +- query-languages/m/duration-totaldays.md | 2 +- query-languages/m/duration-totalhours.md | 2 +- query-languages/m/duration-totalminutes.md | 2 +- query-languages/m/duration-totalseconds.md | 2 +- query-languages/m/duration-totext.md | 2 +- query-languages/m/dynamic-values.md | 2 +- query-languages/m/embedded-value.md | 2 +- query-languages/m/enumerations.md | 2 +- query-languages/m/error-handling.md | 2 +- query-languages/m/error-record.md | 2 +- query-languages/m/errors.md | 2 +- query-languages/m/essbase-cubes.md | 2 +- query-languages/m/evaluation-model.md | 2 +- query-languages/m/excel-currentworkbook.md | 2 +- query-languages/m/excel-shapetable.md | 2 +- query-languages/m/excel-workbook.md | 2 +- query-languages/m/exchange-contents.md | 2 +- query-languages/m/expression-constant.md | 2 +- query-languages/m/expression-evaluate.md | 2 +- query-languages/m/expression-functions.md | 2 +- query-languages/m/expression-identifier.md | 2 +- query-languages/m/expressions-values-and-let-expression.md | 2 +- query-languages/m/extravalues-type.md | 2 +- query-languages/m/file-contents.md | 2 +- query-languages/m/folder-contents.md | 2 +- query-languages/m/folder-files.md | 2 +- query-languages/m/function-from.md | 2 +- query-languages/m/function-invoke.md | 2 +- query-languages/m/function-invokeafter.md | 2 +- query-languages/m/function-isdatasource.md | 2 +- query-languages/m/function-scalarvector.md | 2 +- query-languages/m/function-values.md | 2 +- query-languages/m/geography-fromwellknowntext.md | 2 +- query-languages/m/geography-towellknowntext.md | 2 +- query-languages/m/geographypoint-from.md | 2 +- query-languages/m/geometry-fromwellknowntext.md | 2 +- query-languages/m/geometry-towellknowntext.md | 2 +- query-languages/m/geometrypoint-from.md | 2 +- query-languages/m/googleanalytics-accounts.md | 2 +- query-languages/m/graph-nodes.md | 2 +- query-languages/m/groupkind-type.md | 2 +- query-languages/m/guid-from.md | 2 +- query-languages/m/hdfs-contents.md | 2 +- query-languages/m/hdfs-files.md | 2 +- query-languages/m/hdinsight-containers.md | 2 +- query-languages/m/hdinsight-contents.md | 2 +- query-languages/m/hdinsight-files.md | 2 +- query-languages/m/html-table.md | 2 +- query-languages/m/identity-from.md | 2 +- query-languages/m/identity-ismemberof.md | 2 +- query-languages/m/identityprovider-default.md | 2 +- query-languages/m/informix-database.md | 2 +- query-languages/m/int16-from.md | 2 +- query-languages/m/int32-from.md | 2 +- query-languages/m/int64-from.md | 2 +- query-languages/m/int8-from.md | 2 +- query-languages/m/itemexpression-from.md | 2 +- query-languages/m/itemexpression-item.md | 2 +- query-languages/m/joinalgorithm-type.md | 2 +- query-languages/m/joinkind-type.md | 2 +- query-languages/m/joinside-type.md | 2 +- query-languages/m/json-document.md | 2 +- query-languages/m/json-fromvalue.md | 2 +- query-languages/m/limitclausekind-type.md | 2 +- query-languages/m/lines-frombinary.md | 2 +- query-languages/m/lines-fromtext.md | 2 +- query-languages/m/lines-functions.md | 2 +- query-languages/m/lines-tobinary.md | 2 +- query-languages/m/lines-totext.md | 2 +- query-languages/m/list-accumulate.md | 2 +- query-languages/m/list-alltrue.md | 2 +- query-languages/m/list-alternate.md | 2 +- query-languages/m/list-anytrue.md | 2 +- query-languages/m/list-average.md | 2 +- query-languages/m/list-buffer.md | 2 +- query-languages/m/list-combine.md | 2 +- query-languages/m/list-conformtopagereader.md | 2 +- query-languages/m/list-contains.md | 2 +- query-languages/m/list-containsall.md | 2 +- query-languages/m/list-containsany.md | 2 +- query-languages/m/list-count.md | 2 +- query-languages/m/list-covariance.md | 2 +- query-languages/m/list-dates.md | 2 +- query-languages/m/list-datetimes.md | 2 +- query-languages/m/list-datetimezones.md | 2 +- query-languages/m/list-difference.md | 2 +- query-languages/m/list-distinct.md | 2 +- query-languages/m/list-durations.md | 2 +- query-languages/m/list-findtext.md | 2 +- query-languages/m/list-first.md | 2 +- query-languages/m/list-firstn.md | 2 +- query-languages/m/list-functions.md | 2 +- query-languages/m/list-generate.md | 2 +- query-languages/m/list-insertrange.md | 2 +- query-languages/m/list-intersect.md | 2 +- query-languages/m/list-isdistinct.md | 2 +- query-languages/m/list-isempty.md | 2 +- query-languages/m/list-last.md | 2 +- query-languages/m/list-lastn.md | 2 +- query-languages/m/list-matchesall.md | 2 +- query-languages/m/list-matchesany.md | 2 +- query-languages/m/list-max.md | 2 +- query-languages/m/list-maxn.md | 2 +- query-languages/m/list-median.md | 2 +- query-languages/m/list-min.md | 2 +- query-languages/m/list-minn.md | 2 +- query-languages/m/list-mode.md | 2 +- query-languages/m/list-modes.md | 2 +- query-languages/m/list-nonnullcount.md | 2 +- query-languages/m/list-numbers.md | 2 +- query-languages/m/list-percentile.md | 2 +- query-languages/m/list-positionof.md | 2 +- query-languages/m/list-positionofany.md | 2 +- query-languages/m/list-positions.md | 2 +- query-languages/m/list-product.md | 2 +- query-languages/m/list-random.md | 2 +- query-languages/m/list-range.md | 2 +- query-languages/m/list-removefirstn.md | 2 +- query-languages/m/list-removeitems.md | 2 +- query-languages/m/list-removelastn.md | 2 +- query-languages/m/list-removematchingitems.md | 2 +- query-languages/m/list-removenulls.md | 2 +- query-languages/m/list-removerange.md | 2 +- query-languages/m/list-repeat.md | 2 +- query-languages/m/list-replacematchingitems.md | 2 +- query-languages/m/list-replacerange.md | 2 +- query-languages/m/list-replacevalue.md | 2 +- query-languages/m/list-reverse.md | 2 +- query-languages/m/list-select.md | 2 +- query-languages/m/list-single.md | 2 +- query-languages/m/list-singleordefault.md | 2 +- query-languages/m/list-skip.md | 2 +- query-languages/m/list-sort.md | 2 +- query-languages/m/list-split.md | 2 +- query-languages/m/list-standarddeviation.md | 2 +- query-languages/m/list-sum.md | 2 +- query-languages/m/list-times.md | 2 +- query-languages/m/list-transform.md | 2 +- query-languages/m/list-transformmany.md | 2 +- query-languages/m/list-union.md | 2 +- query-languages/m/list-zip.md | 2 +- query-languages/m/logical-from.md | 2 +- query-languages/m/logical-fromtext.md | 2 +- query-languages/m/logical-functions.md | 2 +- query-languages/m/logical-totext.md | 2 +- query-languages/m/metadata.md | 2 +- query-languages/m/missingfield-type.md | 2 +- query-languages/m/mysql-database.md | 2 +- query-languages/m/number-abs.md | 2 +- query-languages/m/number-acos.md | 2 +- query-languages/m/number-asin.md | 2 +- query-languages/m/number-atan.md | 2 +- query-languages/m/number-atan2.md | 2 +- query-languages/m/number-bitwiseand.md | 2 +- query-languages/m/number-bitwisenot.md | 2 +- query-languages/m/number-bitwiseor.md | 2 +- query-languages/m/number-bitwiseshiftleft.md | 2 +- query-languages/m/number-bitwiseshiftright.md | 2 +- query-languages/m/number-bitwisexor.md | 2 +- query-languages/m/number-combinations.md | 2 +- query-languages/m/number-cos.md | 2 +- query-languages/m/number-cosh.md | 2 +- query-languages/m/number-e.md | 2 +- query-languages/m/number-epsilon.md | 2 +- query-languages/m/number-exp.md | 2 +- query-languages/m/number-factorial.md | 2 +- query-languages/m/number-from.md | 2 +- query-languages/m/number-fromtext.md | 2 +- query-languages/m/number-functions.md | 2 +- query-languages/m/number-integerdivide.md | 2 +- query-languages/m/number-iseven.md | 2 +- query-languages/m/number-isnan.md | 2 +- query-languages/m/number-isodd.md | 2 +- query-languages/m/number-ln.md | 2 +- query-languages/m/number-log.md | 2 +- query-languages/m/number-log10.md | 2 +- query-languages/m/number-mod.md | 2 +- query-languages/m/number-nan.md | 2 +- query-languages/m/number-negativeinfinity.md | 2 +- query-languages/m/number-permutations.md | 2 +- query-languages/m/number-pi.md | 2 +- query-languages/m/number-positiveinfinity.md | 2 +- query-languages/m/number-power.md | 2 +- query-languages/m/number-random.md | 2 +- query-languages/m/number-randombetween.md | 2 +- query-languages/m/number-round.md | 2 +- query-languages/m/number-roundawayfromzero.md | 2 +- query-languages/m/number-rounddown.md | 2 +- query-languages/m/number-roundtowardzero.md | 2 +- query-languages/m/number-roundup.md | 2 +- query-languages/m/number-sign.md | 2 +- query-languages/m/number-sin.md | 2 +- query-languages/m/number-sinh.md | 2 +- query-languages/m/number-sqrt.md | 2 +- query-languages/m/number-tan.md | 2 +- query-languages/m/number-tanh.md | 2 +- query-languages/m/number-totext.md | 2 +- query-languages/m/occurrence-type.md | 2 +- query-languages/m/odata-feed.md | 2 +- query-languages/m/odataomitvalues-type.md | 2 +- query-languages/m/odbc-datasource.md | 2 +- query-languages/m/odbc-inferoptions.md | 2 +- query-languages/m/odbc-query.md | 2 +- query-languages/m/oledb-datasource.md | 2 +- query-languages/m/oledb-query.md | 2 +- query-languages/m/operators.md | 2 +- query-languages/m/oracle-database.md | 2 +- query-languages/m/order-type.md | 2 +- query-languages/m/pdf-tables.md | 2 +- query-languages/m/percentage-from.md | 2 +- query-languages/m/percentilemode-type.md | 2 +- query-languages/m/postgresql-database.md | 2 +- query-languages/m/power-query-m-function-reference.md | 2 +- query-languages/m/power-query-m-language-specification.md | 2 +- query-languages/m/power-query-m-type-system.md | 2 +- query-languages/m/precision-type.md | 2 +- .../m/quick-tour-of-the-power-query-m-formula-language.md | 2 +- query-languages/m/quotestyle-type.md | 2 +- query-languages/m/rankkind-type.md | 2 +- query-languages/m/rdata-frombinary.md | 2 +- query-languages/m/record-addfield.md | 2 +- query-languages/m/record-combine.md | 2 +- query-languages/m/record-field.md | 2 +- query-languages/m/record-fieldcount.md | 2 +- query-languages/m/record-fieldnames.md | 2 +- query-languages/m/record-fieldordefault.md | 2 +- query-languages/m/record-fieldvalues.md | 2 +- query-languages/m/record-fromlist.md | 2 +- query-languages/m/record-fromtable.md | 2 +- query-languages/m/record-functions.md | 2 +- query-languages/m/record-hasfields.md | 2 +- query-languages/m/record-removefields.md | 2 +- query-languages/m/record-renamefields.md | 2 +- query-languages/m/record-reorderfields.md | 2 +- query-languages/m/record-selectfields.md | 2 +- query-languages/m/record-tolist.md | 2 +- query-languages/m/record-totable.md | 2 +- query-languages/m/record-transformfields.md | 2 +- query-languages/m/relativeposition-type.md | 2 +- query-languages/m/replacer-functions.md | 2 +- query-languages/m/replacer-replacetext.md | 2 +- query-languages/m/replacer-replacevalue.md | 2 +- query-languages/m/roundingmode-type.md | 2 +- query-languages/m/rowexpression-column.md | 2 +- query-languages/m/rowexpression-from.md | 2 +- query-languages/m/rowexpression-row.md | 2 +- query-languages/m/salesforce-data.md | 2 +- query-languages/m/salesforce-reports.md | 2 +- query-languages/m/sapbusinesswarehouse-cubes.md | 2 +- query-languages/m/sapbusinesswarehouseexecutionmode-type.md | 2 +- query-languages/m/saphana-database.md | 2 +- query-languages/m/saphanadistribution-type.md | 2 +- query-languages/m/saphanarangeoperator-type.md | 2 +- query-languages/m/sharepoint-contents.md | 2 +- query-languages/m/sharepoint-files.md | 2 +- query-languages/m/sharepoint-tables.md | 2 +- query-languages/m/sharpbinary.md | 2 +- query-languages/m/sharpdate.md | 2 +- query-languages/m/sharpdatetime.md | 2 +- query-languages/m/sharpdatetimezone.md | 2 +- query-languages/m/sharpduration.md | 2 +- query-languages/m/sharptable.md | 2 +- query-languages/m/sharptime.md | 2 +- query-languages/m/single-from.md | 2 +- query-languages/m/soda-feed.md | 2 +- query-languages/m/splitter-functions.md | 2 +- query-languages/m/splitter-splitbynothing.md | 2 +- query-languages/m/splitter-splittextbyanydelimiter.md | 2 +- query-languages/m/splitter-splittextbycharactertransition.md | 2 +- query-languages/m/splitter-splittextbydelimiter.md | 2 +- query-languages/m/splitter-splittextbyeachdelimiter.md | 2 +- query-languages/m/splitter-splittextbylengths.md | 2 +- query-languages/m/splitter-splittextbypositions.md | 2 +- query-languages/m/splitter-splittextbyranges.md | 2 +- query-languages/m/splitter-splittextbyrepeatedlengths.md | 2 +- query-languages/m/splitter-splittextbywhitespace.md | 2 +- query-languages/m/sql-database.md | 2 +- query-languages/m/sql-databases.md | 2 +- query-languages/m/sqlexpression-schemafrom.md | 2 +- query-languages/m/sqlexpression-toexpression.md | 2 +- query-languages/m/sybase-database.md | 2 +- query-languages/m/table-addcolumn.md | 2 +- query-languages/m/table-addfuzzyclustercolumn.md | 2 +- query-languages/m/table-addindexcolumn.md | 2 +- query-languages/m/table-addjoincolumn.md | 2 +- query-languages/m/table-addkey.md | 2 +- query-languages/m/table-addrankcolumn.md | 2 +- query-languages/m/table-aggregatetablecolumn.md | 2 +- query-languages/m/table-alternaterows.md | 2 +- query-languages/m/table-approximaterowcount.md | 2 +- query-languages/m/table-buffer.md | 2 +- query-languages/m/table-column.md | 2 +- query-languages/m/table-columncount.md | 2 +- query-languages/m/table-columnnames.md | 2 +- query-languages/m/table-columnsoftype.md | 2 +- query-languages/m/table-combine.md | 2 +- query-languages/m/table-combinecolumns.md | 2 +- query-languages/m/table-combinecolumnstorecord.md | 2 +- query-languages/m/table-conformtopagereader.md | 2 +- query-languages/m/table-contains.md | 2 +- query-languages/m/table-containsall.md | 2 +- query-languages/m/table-containsany.md | 2 +- query-languages/m/table-demoteheaders.md | 2 +- query-languages/m/table-distinct.md | 2 +- query-languages/m/table-duplicatecolumn.md | 2 +- query-languages/m/table-expandlistcolumn.md | 2 +- query-languages/m/table-expandrecordcolumn.md | 2 +- query-languages/m/table-expandtablecolumn.md | 2 +- query-languages/m/table-filldown.md | 2 +- query-languages/m/table-fillup.md | 2 +- query-languages/m/table-filterwithdatatable.md | 2 +- query-languages/m/table-findtext.md | 2 +- query-languages/m/table-first.md | 2 +- query-languages/m/table-firstn.md | 2 +- query-languages/m/table-firstvalue.md | 2 +- query-languages/m/table-fromcolumns.md | 2 +- query-languages/m/table-fromlist.md | 2 +- query-languages/m/table-frompartitions.md | 2 +- query-languages/m/table-fromrecords.md | 2 +- query-languages/m/table-fromrows.md | 2 +- query-languages/m/table-fromvalue.md | 2 +- query-languages/m/table-functions.md | 2 +- query-languages/m/table-fuzzygroup.md | 2 +- query-languages/m/table-fuzzyjoin.md | 2 +- query-languages/m/table-fuzzynestedjoin.md | 2 +- query-languages/m/table-group.md | 2 +- query-languages/m/table-hascolumns.md | 2 +- query-languages/m/table-insertrows.md | 2 +- query-languages/m/table-isdistinct.md | 2 +- query-languages/m/table-isempty.md | 2 +- query-languages/m/table-join.md | 2 +- query-languages/m/table-keys.md | 2 +- query-languages/m/table-last.md | 2 +- query-languages/m/table-lastn.md | 2 +- query-languages/m/table-matchesallrows.md | 2 +- query-languages/m/table-matchesanyrows.md | 2 +- query-languages/m/table-max.md | 2 +- query-languages/m/table-maxn.md | 2 +- query-languages/m/table-min.md | 2 +- query-languages/m/table-minn.md | 2 +- query-languages/m/table-nestedjoin.md | 2 +- query-languages/m/table-partition.md | 2 +- query-languages/m/table-partitionvalues.md | 2 +- query-languages/m/table-pivot.md | 2 +- query-languages/m/table-positionof.md | 2 +- query-languages/m/table-positionofany.md | 2 +- query-languages/m/table-prefixcolumns.md | 2 +- query-languages/m/table-profile.md | 2 +- query-languages/m/table-promoteheaders.md | 2 +- query-languages/m/table-range.md | 2 +- query-languages/m/table-removecolumns.md | 2 +- query-languages/m/table-removefirstn.md | 2 +- query-languages/m/table-removelastn.md | 2 +- query-languages/m/table-removematchingrows.md | 2 +- query-languages/m/table-removerows.md | 2 +- query-languages/m/table-removerowswitherrors.md | 2 +- query-languages/m/table-renamecolumns.md | 2 +- query-languages/m/table-reordercolumns.md | 2 +- query-languages/m/table-repeat.md | 2 +- query-languages/m/table-replaceerrorvalues.md | 2 +- query-languages/m/table-replacekeys.md | 2 +- query-languages/m/table-replacematchingrows.md | 2 +- query-languages/m/table-replacerelationshipidentity.md | 2 +- query-languages/m/table-replacerows.md | 2 +- query-languages/m/table-replacevalue.md | 2 +- query-languages/m/table-reverserows.md | 2 +- query-languages/m/table-rowcount.md | 2 +- query-languages/m/table-schema.md | 2 +- query-languages/m/table-selectcolumns.md | 2 +- query-languages/m/table-selectrows.md | 2 +- query-languages/m/table-selectrowswitherrors.md | 2 +- query-languages/m/table-singlerow.md | 2 +- query-languages/m/table-skip.md | 2 +- query-languages/m/table-sort.md | 2 +- query-languages/m/table-split.md | 2 +- query-languages/m/table-splitat.md | 2 +- query-languages/m/table-splitcolumn.md | 2 +- query-languages/m/table-stopfolding.md | 2 +- query-languages/m/table-tocolumns.md | 2 +- query-languages/m/table-tolist.md | 2 +- query-languages/m/table-torecords.md | 2 +- query-languages/m/table-torows.md | 2 +- query-languages/m/table-transformcolumnnames.md | 2 +- query-languages/m/table-transformcolumns.md | 2 +- query-languages/m/table-transformcolumntypes.md | 2 +- query-languages/m/table-transformrows.md | 2 +- query-languages/m/table-transpose.md | 2 +- query-languages/m/table-unpivot.md | 2 +- query-languages/m/table-unpivotothercolumns.md | 2 +- query-languages/m/table-view.md | 2 +- query-languages/m/table-viewerror.md | 2 +- query-languages/m/table-viewfunction.md | 2 +- query-languages/m/tables-getrelationships.md | 2 +- query-languages/m/teradata-database.md | 2 +- query-languages/m/text-afterdelimiter.md | 2 +- query-languages/m/text-at.md | 2 +- query-languages/m/text-beforedelimiter.md | 2 +- query-languages/m/text-betweendelimiters.md | 2 +- query-languages/m/text-clean.md | 2 +- query-languages/m/text-combine.md | 2 +- query-languages/m/text-contains.md | 2 +- query-languages/m/text-end.md | 2 +- query-languages/m/text-endswith.md | 2 +- query-languages/m/text-format.md | 2 +- query-languages/m/text-from.md | 2 +- query-languages/m/text-frombinary.md | 2 +- query-languages/m/text-functions.md | 2 +- query-languages/m/text-infernumbertype.md | 2 +- query-languages/m/text-insert.md | 2 +- query-languages/m/text-length.md | 2 +- query-languages/m/text-lower.md | 2 +- query-languages/m/text-middle.md | 2 +- query-languages/m/text-newguid.md | 2 +- query-languages/m/text-padend.md | 2 +- query-languages/m/text-padstart.md | 2 +- query-languages/m/text-positionof.md | 2 +- query-languages/m/text-positionofany.md | 2 +- query-languages/m/text-proper.md | 2 +- query-languages/m/text-range.md | 2 +- query-languages/m/text-remove.md | 2 +- query-languages/m/text-removerange.md | 2 +- query-languages/m/text-repeat.md | 2 +- query-languages/m/text-replace.md | 2 +- query-languages/m/text-replacerange.md | 2 +- query-languages/m/text-select.md | 2 +- query-languages/m/text-split.md | 2 +- query-languages/m/text-splitany.md | 2 +- query-languages/m/text-start.md | 2 +- query-languages/m/text-startswith.md | 2 +- query-languages/m/text-tobinary.md | 2 +- query-languages/m/text-tolist.md | 2 +- query-languages/m/text-trim.md | 2 +- query-languages/m/text-trimend.md | 2 +- query-languages/m/text-trimstart.md | 2 +- query-languages/m/text-upper.md | 2 +- query-languages/m/textencoding-type.md | 2 +- query-languages/m/time-endofhour.md | 2 +- query-languages/m/time-from.md | 2 +- query-languages/m/time-fromtext.md | 2 +- query-languages/m/time-functions.md | 2 +- query-languages/m/time-hour.md | 2 +- query-languages/m/time-minute.md | 2 +- query-languages/m/time-second.md | 2 +- query-languages/m/time-startofhour.md | 2 +- query-languages/m/time-torecord.md | 2 +- query-languages/m/time-totext.md | 2 +- query-languages/m/timezone-current.md | 2 +- query-languages/m/tracelevel-type.md | 2 +- query-languages/m/type-addtablekey.md | 2 +- query-languages/m/type-closedrecord.md | 2 +- query-languages/m/type-conversion.md | 2 +- query-languages/m/type-facets.md | 2 +- query-languages/m/type-forfunction.md | 2 +- query-languages/m/type-forrecord.md | 2 +- query-languages/m/type-functionparameters.md | 2 +- query-languages/m/type-functionrequiredparameters.md | 2 +- query-languages/m/type-functionreturn.md | 2 +- query-languages/m/type-functions.md | 2 +- query-languages/m/type-is.md | 2 +- query-languages/m/type-isnullable.md | 2 +- query-languages/m/type-isopenrecord.md | 2 +- query-languages/m/type-listitem.md | 2 +- query-languages/m/type-nonnullable.md | 2 +- query-languages/m/type-openrecord.md | 2 +- query-languages/m/type-recordfields.md | 2 +- query-languages/m/type-replacefacets.md | 2 +- query-languages/m/type-replacetablekeys.md | 2 +- query-languages/m/type-tablecolumn.md | 2 +- query-languages/m/type-tablekeys.md | 2 +- query-languages/m/type-tablerow.md | 2 +- query-languages/m/type-tableschema.md | 2 +- query-languages/m/type-union.md | 2 +- query-languages/m/understanding-power-query-m-functions.md | 2 +- query-languages/m/uri-buildquerystring.md | 2 +- query-languages/m/uri-combine.md | 2 +- query-languages/m/uri-escapedatastring.md | 2 +- query-languages/m/uri-functions.md | 2 +- query-languages/m/uri-parts.md | 2 +- query-languages/m/value-add.md | 2 +- query-languages/m/value-alternates.md | 2 +- query-languages/m/value-as.md | 2 +- query-languages/m/value-compare.md | 2 +- query-languages/m/value-divide.md | 2 +- query-languages/m/value-equals.md | 2 +- query-languages/m/value-expression.md | 2 +- query-languages/m/value-firewall.md | 2 +- query-languages/m/value-fromtext.md | 2 +- query-languages/m/value-functions.md | 2 +- query-languages/m/value-is.md | 2 +- query-languages/m/value-lineage.md | 2 +- query-languages/m/value-metadata.md | 2 +- query-languages/m/value-multiply.md | 2 +- query-languages/m/value-nativequery.md | 2 +- query-languages/m/value-nullableequals.md | 2 +- query-languages/m/value-optimize.md | 2 +- query-languages/m/value-removemetadata.md | 2 +- query-languages/m/value-replacemetadata.md | 2 +- query-languages/m/value-replacetype.md | 2 +- query-languages/m/value-subtract.md | 2 +- query-languages/m/value-traits.md | 2 +- query-languages/m/value-type.md | 2 +- query-languages/m/value-versionidentity.md | 2 +- query-languages/m/value-versions.md | 2 +- query-languages/m/variable-value.md | 2 +- query-languages/m/web-browsercontents.md | 2 +- query-languages/m/web-contents.md | 2 +- query-languages/m/web-headers.md | 2 +- query-languages/m/web-page.md | 2 +- query-languages/m/webaction-request.md | 2 +- query-languages/m/webmethod-type.md | 2 +- query-languages/m/xml-document.md | 2 +- query-languages/m/xml-tables.md | 2 +- 721 files changed, 721 insertions(+), 721 deletions(-) diff --git a/query-languages/m/accesscontrolentry-conditiontoidentities.md b/query-languages/m/accesscontrolentry-conditiontoidentities.md index 045a36ded..b56841623 100644 --- a/query-languages/m/accesscontrolentry-conditiontoidentities.md +++ b/query-languages/m/accesscontrolentry-conditiontoidentities.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AccessControlEntry.ConditionToIdentities" -title: "AccessControlEntry.ConditionToIdentities | Microsoft Docs" +title: "AccessControlEntry.ConditionToIdentities" ms.date: 3/28/2019 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/accesscontrolkind-type.md b/query-languages/m/accesscontrolkind-type.md index ae4739b17..c1ac7274d 100644 --- a/query-languages/m/accesscontrolkind-type.md +++ b/query-languages/m/accesscontrolkind-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AccessControlKind.Type" -title: "AccessControlKind.Type | Microsoft Docs" +title: "AccessControlKind.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index fa75d9207..a136de6cd 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Accessing data functions" -title: "Accessing data functions | Microsoft Docs" +title: "Accessing data functions" ms.date: 5/16/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/activedirectory-domains.md b/query-languages/m/activedirectory-domains.md index 3c47b404d..12b7d7a9a 100644 --- a/query-languages/m/activedirectory-domains.md +++ b/query-languages/m/activedirectory-domains.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ActiveDirectory.Domains" -title: "ActiveDirectory.Domains | Microsoft Docs" +title: "ActiveDirectory.Domains" ms.date: 4/16/2018 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/adobeanalytics-cubes.md b/query-languages/m/adobeanalytics-cubes.md index 9e1dda718..ec92cd27e 100644 --- a/query-languages/m/adobeanalytics-cubes.md +++ b/query-languages/m/adobeanalytics-cubes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AdobeAnalytics.Cubes" -title: "AdobeAnalytics.Cubes | Microsoft Docs" +title: "AdobeAnalytics.Cubes" ms.date: 6/24/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/adodotnet-datasource.md b/query-languages/m/adodotnet-datasource.md index 9443766f7..abdc3aa04 100644 --- a/query-languages/m/adodotnet-datasource.md +++ b/query-languages/m/adodotnet-datasource.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AdoDotNet.DataSource" -title: "AdoDotNet.DataSource | Microsoft Docs" +title: "AdoDotNet.DataSource" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/adodotnet-query.md b/query-languages/m/adodotnet-query.md index 65b42e38c..1c61101ef 100644 --- a/query-languages/m/adodotnet-query.md +++ b/query-languages/m/adodotnet-query.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AdoDotNet.Query" -title: "AdoDotNet.Query | Microsoft Docs" +title: "AdoDotNet.Query" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/analysisservices-database.md b/query-languages/m/analysisservices-database.md index 35ee631c7..30bafc46c 100644 --- a/query-languages/m/analysisservices-database.md +++ b/query-languages/m/analysisservices-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AnalysisServices.Database" -title: "AnalysisServices.Database | Microsoft Docs" +title: "AnalysisServices.Database" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/analysisservices-databases.md b/query-languages/m/analysisservices-databases.md index b4aaf7e08..78842397a 100644 --- a/query-languages/m/analysisservices-databases.md +++ b/query-languages/m/analysisservices-databases.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AnalysisServices.Databases" -title: "AnalysisServices.Databases | Microsoft Docs" +title: "AnalysisServices.Databases" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/azurestorage-blobcontents.md b/query-languages/m/azurestorage-blobcontents.md index d484c0e1f..184c5c25c 100644 --- a/query-languages/m/azurestorage-blobcontents.md +++ b/query-languages/m/azurestorage-blobcontents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AzureStorage.BlobContents" -title: "AzureStorage.BlobContents | Microsoft Docs" +title: "AzureStorage.BlobContents" ms.date: 10/10/2019 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/azurestorage-blobs.md b/query-languages/m/azurestorage-blobs.md index 21c0837d4..f7b6e95bb 100644 --- a/query-languages/m/azurestorage-blobs.md +++ b/query-languages/m/azurestorage-blobs.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AzureStorage.Blobs" -title: "AzureStorage.Blobs | Microsoft Docs" +title: "AzureStorage.Blobs" ms.date: 10/10/2019 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/azurestorage-datalake.md b/query-languages/m/azurestorage-datalake.md index f50363ba9..9b153d54c 100644 --- a/query-languages/m/azurestorage-datalake.md +++ b/query-languages/m/azurestorage-datalake.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AzureStorage.DataLake" -title: "AzureStorage.DataLake | Microsoft Docs" +title: "AzureStorage.DataLake" ms.date: 10/10/2019 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/azurestorage-datalakecontents.md b/query-languages/m/azurestorage-datalakecontents.md index bf6cca18d..cced2be59 100644 --- a/query-languages/m/azurestorage-datalakecontents.md +++ b/query-languages/m/azurestorage-datalakecontents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AzureStorage.DataLakeContents" -title: "AzureStorage.DataLakeContents | Microsoft Docs" +title: "AzureStorage.DataLakeContents" ms.date: 10/10/2019 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/azurestorage-tables.md b/query-languages/m/azurestorage-tables.md index 112fcfe50..6d0080511 100644 --- a/query-languages/m/azurestorage-tables.md +++ b/query-languages/m/azurestorage-tables.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AzureStorage.Tables" -title: "AzureStorage.Tables | Microsoft Docs" +title: "AzureStorage.Tables" ms.date: 5/25/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-approximatelength.md b/query-languages/m/binary-approximatelength.md index f94f55e51..d671c8e7f 100644 --- a/query-languages/m/binary-approximatelength.md +++ b/query-languages/m/binary-approximatelength.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.ApproximateLength" -title: "Binary.ApproximateLength | Microsoft Docs" +title: "Binary.ApproximateLength" ms.date: 5/19/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-buffer.md b/query-languages/m/binary-buffer.md index 7c6775b1b..c056fe599 100644 --- a/query-languages/m/binary-buffer.md +++ b/query-languages/m/binary-buffer.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.Buffer" -title: "Binary.Buffer | Microsoft Docs" +title: "Binary.Buffer" ms.date: 3/11/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-combine.md b/query-languages/m/binary-combine.md index 5a1e66c53..23219a841 100644 --- a/query-languages/m/binary-combine.md +++ b/query-languages/m/binary-combine.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.Combine" -title: "Binary.Combine | Microsoft Docs" +title: "Binary.Combine" ms.date: 12/12/2018 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-compress.md b/query-languages/m/binary-compress.md index 5caeb237b..8947cc31e 100644 --- a/query-languages/m/binary-compress.md +++ b/query-languages/m/binary-compress.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.Compress" -title: "Binary.Compress | Microsoft Docs" +title: "Binary.Compress" ms.date: 3/11/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-decompress.md b/query-languages/m/binary-decompress.md index 3940d83f1..da59d2d17 100644 --- a/query-languages/m/binary-decompress.md +++ b/query-languages/m/binary-decompress.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.Decompress" -title: "Binary.Decompress | Microsoft Docs" +title: "Binary.Decompress" ms.date: 3/11/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-from.md b/query-languages/m/binary-from.md index be5db7cd2..b4f30ff3a 100644 --- a/query-languages/m/binary-from.md +++ b/query-languages/m/binary-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.From" -title: "Binary.From | Microsoft Docs" +title: "Binary.From" ms.date: 4/13/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-fromlist.md b/query-languages/m/binary-fromlist.md index 853bff19f..50a0e17ce 100644 --- a/query-languages/m/binary-fromlist.md +++ b/query-languages/m/binary-fromlist.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.FromList" -title: "Binary.FromList | Microsoft Docs" +title: "Binary.FromList" ms.date: 12/12/2018 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-fromtext.md b/query-languages/m/binary-fromtext.md index d7b8c2745..e31c9122f 100644 --- a/query-languages/m/binary-fromtext.md +++ b/query-languages/m/binary-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.FromText" -title: "Binary.FromText | Microsoft Docs" +title: "Binary.FromText" ms.date: 3/11/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-functions.md b/query-languages/m/binary-functions.md index b99183ccc..ec8d71bd5 100644 --- a/query-languages/m/binary-functions.md +++ b/query-languages/m/binary-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary functions" -title: "Binary functions | Microsoft Docs" +title: "Binary functions" ms.date: 7/19/2022 ms.service: powerquery diff --git a/query-languages/m/binary-infercontenttype.md b/query-languages/m/binary-infercontenttype.md index bbd40f923..d3c3ee1c3 100644 --- a/query-languages/m/binary-infercontenttype.md +++ b/query-languages/m/binary-infercontenttype.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.InferContentType" -title: "Binary.InferContentType | Microsoft Docs" +title: "Binary.InferContentType" ms.date: 4/17/2018 ms.service: powerquery diff --git a/query-languages/m/binary-length.md b/query-languages/m/binary-length.md index edca55c72..5098608e3 100644 --- a/query-languages/m/binary-length.md +++ b/query-languages/m/binary-length.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.Length" -title: "Binary.Length | Microsoft Docs" +title: "Binary.Length" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binary-range.md b/query-languages/m/binary-range.md index d66cdc9a2..179029d9e 100644 --- a/query-languages/m/binary-range.md +++ b/query-languages/m/binary-range.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.Range" -title: "Binary.Range | Microsoft Docs" +title: "Binary.Range" ms.date: 3/7/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-tolist.md b/query-languages/m/binary-tolist.md index 29169ed3e..fb0080481 100644 --- a/query-languages/m/binary-tolist.md +++ b/query-languages/m/binary-tolist.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.ToList" -title: "Binary.ToList | Microsoft Docs" +title: "Binary.ToList" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binary-totext.md b/query-languages/m/binary-totext.md index ba5e8a09a..1a1e5b68b 100644 --- a/query-languages/m/binary-totext.md +++ b/query-languages/m/binary-totext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.ToText" -title: "Binary.ToText | Microsoft Docs" +title: "Binary.ToText" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binary-view.md b/query-languages/m/binary-view.md index c5bcb7fe0..192479c55 100644 --- a/query-languages/m/binary-view.md +++ b/query-languages/m/binary-view.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.View" -title: "Binary.View | Microsoft Docs" +title: "Binary.View" ms.date: 7/19/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-viewerror.md b/query-languages/m/binary-viewerror.md index 5f8db0ae6..47d9ac2af 100644 --- a/query-languages/m/binary-viewerror.md +++ b/query-languages/m/binary-viewerror.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.ViewError" -title: "Binary.ViewError | Microsoft Docs" +title: "Binary.ViewError" ms.date: 7/19/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binary-viewfunction.md b/query-languages/m/binary-viewfunction.md index 84a003405..5a70273f8 100644 --- a/query-languages/m/binary-viewfunction.md +++ b/query-languages/m/binary-viewfunction.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Binary.ViewFunction" -title: "Binary.ViewFunction | Microsoft Docs" +title: "Binary.ViewFunction" ms.date: 7/19/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/binaryencoding-type.md b/query-languages/m/binaryencoding-type.md index 100fadf03..674ca145e 100644 --- a/query-languages/m/binaryencoding-type.md +++ b/query-languages/m/binaryencoding-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryEncoding.Type" -title: "BinaryEncoding.Type | Microsoft Docs" +title: "BinaryEncoding.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/binaryformat-7bitencodedsignedinteger.md b/query-languages/m/binaryformat-7bitencodedsignedinteger.md index 706957254..fb06b141e 100644 --- a/query-languages/m/binaryformat-7bitencodedsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedsignedinteger.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.7BitEncodedSignedInteger" -title: "BinaryFormat.7BitEncodedSignedInteger | Microsoft Docs" +title: "BinaryFormat.7BitEncodedSignedInteger" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md index c0249bcad..c79bcbc33 100644 --- a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.7BitEncodedUnsignedInteger" -title: "BinaryFormat.7BitEncodedUnsignedInteger | Microsoft Docs" +title: "BinaryFormat.7BitEncodedUnsignedInteger" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-binary.md b/query-languages/m/binaryformat-binary.md index f342d4a46..76155396a 100644 --- a/query-languages/m/binaryformat-binary.md +++ b/query-languages/m/binaryformat-binary.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Binary" -title: "BinaryFormat.Binary | Microsoft Docs" +title: "BinaryFormat.Binary" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-byte.md b/query-languages/m/binaryformat-byte.md index 9a45a9de6..e08f1210d 100644 --- a/query-languages/m/binaryformat-byte.md +++ b/query-languages/m/binaryformat-byte.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Byte" -title: "BinaryFormat.Byte | Microsoft Docs" +title: "BinaryFormat.Byte" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-byteorder.md b/query-languages/m/binaryformat-byteorder.md index 12c494a20..dd7e188a7 100644 --- a/query-languages/m/binaryformat-byteorder.md +++ b/query-languages/m/binaryformat-byteorder.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.ByteOrder" -title: "BinaryFormat.ByteOrder | Microsoft Docs" +title: "BinaryFormat.ByteOrder" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-choice.md b/query-languages/m/binaryformat-choice.md index 672fd3a1e..4150d1da4 100644 --- a/query-languages/m/binaryformat-choice.md +++ b/query-languages/m/binaryformat-choice.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Choice" -title: "BinaryFormat.Choice | Microsoft Docs" +title: "BinaryFormat.Choice" ms.date: 3/7/2022 ms.service: powerquery diff --git a/query-languages/m/binaryformat-decimal.md b/query-languages/m/binaryformat-decimal.md index 04255d489..b4dd893e7 100644 --- a/query-languages/m/binaryformat-decimal.md +++ b/query-languages/m/binaryformat-decimal.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Decimal" -title: "BinaryFormat.Decimal | Microsoft Docs" +title: "BinaryFormat.Decimal" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-double.md b/query-languages/m/binaryformat-double.md index fe69240f6..1933706e1 100644 --- a/query-languages/m/binaryformat-double.md +++ b/query-languages/m/binaryformat-double.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Double" -title: "BinaryFormat.Double | Microsoft Docs" +title: "BinaryFormat.Double" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-group.md b/query-languages/m/binaryformat-group.md index 4a2f23cce..67cc8c28d 100644 --- a/query-languages/m/binaryformat-group.md +++ b/query-languages/m/binaryformat-group.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Group" -title: "BinaryFormat.Group | Microsoft Docs" +title: "BinaryFormat.Group" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/binaryformat-length.md b/query-languages/m/binaryformat-length.md index 18a6e544f..58b776364 100644 --- a/query-languages/m/binaryformat-length.md +++ b/query-languages/m/binaryformat-length.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Length" -title: "BinaryFormat.Length | Microsoft Docs" +title: "BinaryFormat.Length" ms.date: 3/7/2022 ms.service: powerquery diff --git a/query-languages/m/binaryformat-list.md b/query-languages/m/binaryformat-list.md index fd0f367d5..379e9f0f1 100644 --- a/query-languages/m/binaryformat-list.md +++ b/query-languages/m/binaryformat-list.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.List" -title: "BinaryFormat.List | Microsoft Docs" +title: "BinaryFormat.List" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/binaryformat-null.md b/query-languages/m/binaryformat-null.md index faf9491d2..b82ec9085 100644 --- a/query-languages/m/binaryformat-null.md +++ b/query-languages/m/binaryformat-null.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Null" -title: "BinaryFormat.Null | Microsoft Docs" +title: "BinaryFormat.Null" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-record.md b/query-languages/m/binaryformat-record.md index c873b858a..b9cb194ef 100644 --- a/query-languages/m/binaryformat-record.md +++ b/query-languages/m/binaryformat-record.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Record" -title: "BinaryFormat.Record | Microsoft Docs" +title: "BinaryFormat.Record" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/binaryformat-signedinteger16.md b/query-languages/m/binaryformat-signedinteger16.md index 7ce85c784..f410c1330 100644 --- a/query-languages/m/binaryformat-signedinteger16.md +++ b/query-languages/m/binaryformat-signedinteger16.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.SignedInteger16" -title: "BinaryFormat.SignedInteger16 | Microsoft Docs" +title: "BinaryFormat.SignedInteger16" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-signedinteger32.md b/query-languages/m/binaryformat-signedinteger32.md index 476189ddc..8d2320af1 100644 --- a/query-languages/m/binaryformat-signedinteger32.md +++ b/query-languages/m/binaryformat-signedinteger32.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.SignedInteger32" -title: "BinaryFormat.SignedInteger32 | Microsoft Docs" +title: "BinaryFormat.SignedInteger32" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-signedinteger64.md b/query-languages/m/binaryformat-signedinteger64.md index 7ca4a80ad..a74db9c45 100644 --- a/query-languages/m/binaryformat-signedinteger64.md +++ b/query-languages/m/binaryformat-signedinteger64.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.SignedInteger64" -title: "BinaryFormat.SignedInteger64 | Microsoft Docs" +title: "BinaryFormat.SignedInteger64" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-single.md b/query-languages/m/binaryformat-single.md index d9b9f248b..2ee606a3a 100644 --- a/query-languages/m/binaryformat-single.md +++ b/query-languages/m/binaryformat-single.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Single" -title: "BinaryFormat.Single | Microsoft Docs" +title: "BinaryFormat.Single" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-text.md b/query-languages/m/binaryformat-text.md index dc46fa577..05fe857d0 100644 --- a/query-languages/m/binaryformat-text.md +++ b/query-languages/m/binaryformat-text.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Text" -title: "BinaryFormat.Text | Microsoft Docs" +title: "BinaryFormat.Text" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/binaryformat-transform.md b/query-languages/m/binaryformat-transform.md index 07f1a9743..02a548d98 100644 --- a/query-languages/m/binaryformat-transform.md +++ b/query-languages/m/binaryformat-transform.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.Transform" -title: "BinaryFormat.Transform | Microsoft Docs" +title: "BinaryFormat.Transform" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/binaryformat-unsignedinteger16.md b/query-languages/m/binaryformat-unsignedinteger16.md index 4e133288e..bd7e899cf 100644 --- a/query-languages/m/binaryformat-unsignedinteger16.md +++ b/query-languages/m/binaryformat-unsignedinteger16.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger16" -title: "BinaryFormat.UnsignedInteger16 | Microsoft Docs" +title: "BinaryFormat.UnsignedInteger16" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-unsignedinteger32.md b/query-languages/m/binaryformat-unsignedinteger32.md index 1dfc7d228..b122c1caa 100644 --- a/query-languages/m/binaryformat-unsignedinteger32.md +++ b/query-languages/m/binaryformat-unsignedinteger32.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger32" -title: "BinaryFormat.UnsignedInteger32 | Microsoft Docs" +title: "BinaryFormat.UnsignedInteger32" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryformat-unsignedinteger64.md b/query-languages/m/binaryformat-unsignedinteger64.md index 8d9ec4658..245ab162e 100644 --- a/query-languages/m/binaryformat-unsignedinteger64.md +++ b/query-languages/m/binaryformat-unsignedinteger64.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger64" -title: "BinaryFormat.UnsignedInteger64 | Microsoft Docs" +title: "BinaryFormat.UnsignedInteger64" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/binaryoccurrence-type.md b/query-languages/m/binaryoccurrence-type.md index b1ed2d825..e8587d5a5 100644 --- a/query-languages/m/binaryoccurrence-type.md +++ b/query-languages/m/binaryoccurrence-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BinaryOccurrence.Type" -title: "BinaryOccurrence.Type | Microsoft Docs" +title: "BinaryOccurrence.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/buffermode-type.md b/query-languages/m/buffermode-type.md index 63d0ab716..f34e0f3fb 100644 --- a/query-languages/m/buffermode-type.md +++ b/query-languages/m/buffermode-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BufferMode.Type" -title: "BufferMode.Type | Microsoft Docs" +title: "BufferMode.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index 0acfbf4eb..b458d5748 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Byte.From" -title: "Byte.From | Microsoft Docs" +title: "Byte.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/byteorder-type.md b/query-languages/m/byteorder-type.md index e8b3d2364..585af6a8c 100644 --- a/query-languages/m/byteorder-type.md +++ b/query-languages/m/byteorder-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ByteOrder.Type" -title: "ByteOrder.Type | Microsoft Docs" +title: "ByteOrder.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index ea130d252..f853453bd 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cdm.Contents" -title: "Cdm.Contents | Microsoft Docs" +title: "Cdm.Contents" ms.date: 03/18/2020 ms.service: powerquery diff --git a/query-languages/m/character-fromnumber.md b/query-languages/m/character-fromnumber.md index 0dda7eaf5..ef0a8cacd 100644 --- a/query-languages/m/character-fromnumber.md +++ b/query-languages/m/character-fromnumber.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Character.FromNumber" -title: "Character.FromNumber | Microsoft Docs" +title: "Character.FromNumber" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/character-tonumber.md b/query-languages/m/character-tonumber.md index 97f5875de..481f5d5a3 100644 --- a/query-languages/m/character-tonumber.md +++ b/query-languages/m/character-tonumber.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Character.ToNumber" -title: "Character.ToNumber | Microsoft Docs" +title: "Character.ToNumber" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/combiner-combinetextbydelimiter.md b/query-languages/m/combiner-combinetextbydelimiter.md index b4374d768..be63e7343 100644 --- a/query-languages/m/combiner-combinetextbydelimiter.md +++ b/query-languages/m/combiner-combinetextbydelimiter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByDelimiter" -title: "Combiner.CombineTextByDelimiter | Microsoft Docs" +title: "Combiner.CombineTextByDelimiter" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/combiner-combinetextbyeachdelimiter.md b/query-languages/m/combiner-combinetextbyeachdelimiter.md index b221ac7a1..f62478939 100644 --- a/query-languages/m/combiner-combinetextbyeachdelimiter.md +++ b/query-languages/m/combiner-combinetextbyeachdelimiter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByEachDelimiter" -title: "Combiner.CombineTextByEachDelimiter | Microsoft Docs" +title: "Combiner.CombineTextByEachDelimiter" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/combiner-combinetextbylengths.md b/query-languages/m/combiner-combinetextbylengths.md index 4a2bdbf96..dcb13c216 100644 --- a/query-languages/m/combiner-combinetextbylengths.md +++ b/query-languages/m/combiner-combinetextbylengths.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByLengths" -title: "Combiner.CombineTextByLengths | Microsoft Docs" +title: "Combiner.CombineTextByLengths" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/combiner-combinetextbypositions.md b/query-languages/m/combiner-combinetextbypositions.md index 0c25cdb23..a2f055a56 100644 --- a/query-languages/m/combiner-combinetextbypositions.md +++ b/query-languages/m/combiner-combinetextbypositions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByPositions" -title: "Combiner.CombineTextByPositions | Microsoft Docs" +title: "Combiner.CombineTextByPositions" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/combiner-combinetextbyranges.md b/query-languages/m/combiner-combinetextbyranges.md index deca20828..9942a1c3b 100644 --- a/query-languages/m/combiner-combinetextbyranges.md +++ b/query-languages/m/combiner-combinetextbyranges.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByRanges" -title: "Combiner.CombineTextByRanges | Microsoft Docs" +title: "Combiner.CombineTextByRanges" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index 34eaec745..773814376 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Combiner functions" -title: "Combiner functions | Microsoft Docs" +title: "Combiner functions" ms.date: 5/16/2020 ms.service: powerquery diff --git a/query-languages/m/comments.md b/query-languages/m/comments.md index 83e5b211f..22b15d112 100644 --- a/query-languages/m/comments.md +++ b/query-languages/m/comments.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Comments" -title: "Comments | Microsoft Docs" +title: "Comments" ms.date: 12/12/2018 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index a125a5479..b0df56ba2 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Comparer.Equals" -title: "Comparer.Equals | Microsoft Docs" +title: "Comparer.Equals" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index a02273552..399338c85 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Comparer.FromCulture" -title: "Comparer.FromCulture | Microsoft Docs" +title: "Comparer.FromCulture" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/comparer-functions.md b/query-languages/m/comparer-functions.md index 1417801e1..9fbd7873e 100644 --- a/query-languages/m/comparer-functions.md +++ b/query-languages/m/comparer-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Comparer functions" -title: "Comparer functions | Microsoft Docs" +title: "Comparer functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/comparer-ordinal.md b/query-languages/m/comparer-ordinal.md index 34e0f0011..d701abeca 100644 --- a/query-languages/m/comparer-ordinal.md +++ b/query-languages/m/comparer-ordinal.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Comparer.Ordinal" -title: "Comparer.Ordinal | Microsoft Docs" +title: "Comparer.Ordinal" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/comparer-ordinalignorecase.md b/query-languages/m/comparer-ordinalignorecase.md index 6790db841..894587ed5 100644 --- a/query-languages/m/comparer-ordinalignorecase.md +++ b/query-languages/m/comparer-ordinalignorecase.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Comparer.OrdinalIgnoreCase" -title: "Comparer.OrdinalIgnoreCase | Microsoft Docs" +title: "Comparer.OrdinalIgnoreCase" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/compression-type.md b/query-languages/m/compression-type.md index f8d2f4aba..ccad84e6d 100644 --- a/query-languages/m/compression-type.md +++ b/query-languages/m/compression-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Compression.Type" -title: "Compression.Type | Microsoft Docs" +title: "Compression.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/constants.md b/query-languages/m/constants.md index bad7f306e..108cef155 100644 --- a/query-languages/m/constants.md +++ b/query-languages/m/constants.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Constants" -title: "Constants | Microsoft Docs" +title: "Constants" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index d7505e2b8..69f07576e 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Csv.Document" -title: "Csv.Document | Microsoft Docs" +title: "Csv.Document" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/csvstyle-type.md b/query-languages/m/csvstyle-type.md index e332cd621..b2f3e106a 100644 --- a/query-languages/m/csvstyle-type.md +++ b/query-languages/m/csvstyle-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CsvStyle.Type" -title: "CsvStyle.Type | Microsoft Docs" +title: "CsvStyle.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/cube-addandexpanddimensioncolumn.md b/query-languages/m/cube-addandexpanddimensioncolumn.md index b958ebc4e..a1db39322 100644 --- a/query-languages/m/cube-addandexpanddimensioncolumn.md +++ b/query-languages/m/cube-addandexpanddimensioncolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.AddAndExpandDimensionColumn" -title: "Cube.AddAndExpandDimensionColumn | Microsoft Docs" +title: "Cube.AddAndExpandDimensionColumn" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/cube-addmeasurecolumn.md b/query-languages/m/cube-addmeasurecolumn.md index a487e6b7c..8a0282cb9 100644 --- a/query-languages/m/cube-addmeasurecolumn.md +++ b/query-languages/m/cube-addmeasurecolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.AddMeasureColumn" -title: "Cube.AddMeasureColumn | Microsoft Docs" +title: "Cube.AddMeasureColumn" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/cube-applyparameter.md b/query-languages/m/cube-applyparameter.md index 48cb9688d..4c2ce68bf 100644 --- a/query-languages/m/cube-applyparameter.md +++ b/query-languages/m/cube-applyparameter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.ApplyParameter" -title: "Cube.ApplyParameter | Microsoft Docs" +title: "Cube.ApplyParameter" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/cube-attributememberid.md b/query-languages/m/cube-attributememberid.md index 206d2d59b..96b52629a 100644 --- a/query-languages/m/cube-attributememberid.md +++ b/query-languages/m/cube-attributememberid.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.AttributeMemberId" -title: "Cube.AttributeMemberId | Microsoft Docs" +title: "Cube.AttributeMemberId" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/cube-attributememberproperty.md b/query-languages/m/cube-attributememberproperty.md index 7734ffb13..77993ed64 100644 --- a/query-languages/m/cube-attributememberproperty.md +++ b/query-languages/m/cube-attributememberproperty.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.AttributeMemberProperty" -title: "Cube.AttributeMemberProperty | Microsoft Docs" +title: "Cube.AttributeMemberProperty" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/cube-collapseandremovecolumns.md b/query-languages/m/cube-collapseandremovecolumns.md index 873b0c13c..a777fa318 100644 --- a/query-languages/m/cube-collapseandremovecolumns.md +++ b/query-languages/m/cube-collapseandremovecolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.CollapseAndRemoveColumns" -title: "Cube.CollapseAndRemoveColumns | Microsoft Docs" +title: "Cube.CollapseAndRemoveColumns" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/cube-dimensions.md b/query-languages/m/cube-dimensions.md index b771e63fa..2f119f354 100644 --- a/query-languages/m/cube-dimensions.md +++ b/query-languages/m/cube-dimensions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.Dimensions" -title: "Cube.Dimensions | Microsoft Docs" +title: "Cube.Dimensions" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/cube-displayfolders.md b/query-languages/m/cube-displayfolders.md index d1fc4f8c5..8de0fb45b 100644 --- a/query-languages/m/cube-displayfolders.md +++ b/query-languages/m/cube-displayfolders.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.DisplayFolders" -title: "Cube.DisplayFolders | Microsoft Docs" +title: "Cube.DisplayFolders" ms.date: 11/17/2021 ms.service: powerquery diff --git a/query-languages/m/cube-measureproperties.md b/query-languages/m/cube-measureproperties.md index 3056f06a5..e53e214fa 100644 --- a/query-languages/m/cube-measureproperties.md +++ b/query-languages/m/cube-measureproperties.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.MeasureProperties" -title: "Cube.MeasureProperties | Microsoft Docs" +title: "Cube.MeasureProperties" ms.date: 8/17/2018 ms.service: powerquery diff --git a/query-languages/m/cube-measures.md b/query-languages/m/cube-measures.md index 469ca25cb..d77d65f0f 100644 --- a/query-languages/m/cube-measures.md +++ b/query-languages/m/cube-measures.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.Measures" -title: "Cube.Measures | Microsoft Docs" +title: "Cube.Measures" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/cube-parameters.md b/query-languages/m/cube-parameters.md index b2e9504c5..5163fbf5f 100644 --- a/query-languages/m/cube-parameters.md +++ b/query-languages/m/cube-parameters.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.Parameters" -title: "Cube.Parameters | Microsoft Docs" +title: "Cube.Parameters" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/cube-properties.md b/query-languages/m/cube-properties.md index 921b5be4f..253ec2962 100644 --- a/query-languages/m/cube-properties.md +++ b/query-languages/m/cube-properties.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.Properties" -title: "Cube.Properties | Microsoft Docs" +title: "Cube.Properties" ms.date: 4/17/2018 ms.service: powerquery diff --git a/query-languages/m/cube-propertykey.md b/query-languages/m/cube-propertykey.md index bb50e15cc..1df57c8e8 100644 --- a/query-languages/m/cube-propertykey.md +++ b/query-languages/m/cube-propertykey.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.PropertyKey" -title: "Cube.PropertyKey | Microsoft Docs" +title: "Cube.PropertyKey" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/cube-replacedimensions.md b/query-languages/m/cube-replacedimensions.md index e16e2ad1b..5b24f9557 100644 --- a/query-languages/m/cube-replacedimensions.md +++ b/query-languages/m/cube-replacedimensions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.ReplaceDimensions" -title: "Cube.ReplaceDimensions | Microsoft Docs" +title: "Cube.ReplaceDimensions" ms.date: 1/24/2022 ms.service: powerquery diff --git a/query-languages/m/cube-transform.md b/query-languages/m/cube-transform.md index 76aea0604..fdec58178 100644 --- a/query-languages/m/cube-transform.md +++ b/query-languages/m/cube-transform.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Cube.Transform" -title: "Cube.Transform | Microsoft Docs" +title: "Cube.Transform" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/culture-current.md b/query-languages/m/culture-current.md index d8e9ea435..04d3bd183 100644 --- a/query-languages/m/culture-current.md +++ b/query-languages/m/culture-current.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Culture.Current" -title: "Culture.Current | Microsoft Docs" +title: "Culture.Current" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/currency-from.md b/query-languages/m/currency-from.md index 5e70c22a4..cdb40bc41 100644 --- a/query-languages/m/currency-from.md +++ b/query-languages/m/currency-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Currency.From" -title: "Currency.From | Microsoft Docs" +title: "Currency.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/date-adddays.md b/query-languages/m/date-adddays.md index dad147c42..b4d8e3dcf 100644 --- a/query-languages/m/date-adddays.md +++ b/query-languages/m/date-adddays.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.AddDays" -title: "Date.AddDays | Microsoft Docs" +title: "Date.AddDays" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-addmonths.md b/query-languages/m/date-addmonths.md index 1bafbde47..bebe5e318 100644 --- a/query-languages/m/date-addmonths.md +++ b/query-languages/m/date-addmonths.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.AddMonths" -title: "Date.AddMonths | Microsoft Docs" +title: "Date.AddMonths" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-addquarters.md b/query-languages/m/date-addquarters.md index a1cd070b0..88add115a 100644 --- a/query-languages/m/date-addquarters.md +++ b/query-languages/m/date-addquarters.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.AddQuarters" -title: "Date.AddQuarters | Microsoft Docs" +title: "Date.AddQuarters" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-addweeks.md b/query-languages/m/date-addweeks.md index f6067bf44..72293e54d 100644 --- a/query-languages/m/date-addweeks.md +++ b/query-languages/m/date-addweeks.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.AddWeeks" -title: "Date.AddWeeks | Microsoft Docs" +title: "Date.AddWeeks" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-addyears.md b/query-languages/m/date-addyears.md index f02bf6f86..adbb738fa 100644 --- a/query-languages/m/date-addyears.md +++ b/query-languages/m/date-addyears.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.AddYears" -title: "Date.AddYears | Microsoft Docs" +title: "Date.AddYears" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-day.md b/query-languages/m/date-day.md index 82a942884..6e8be3972 100644 --- a/query-languages/m/date-day.md +++ b/query-languages/m/date-day.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.Day" -title: "Date.Day | Microsoft Docs" +title: "Date.Day" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-dayofweek.md b/query-languages/m/date-dayofweek.md index 52f161643..18afe0127 100644 --- a/query-languages/m/date-dayofweek.md +++ b/query-languages/m/date-dayofweek.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.DayOfWeek" -title: "Date.DayOfWeek | Microsoft Docs" +title: "Date.DayOfWeek" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-dayofweekname.md b/query-languages/m/date-dayofweekname.md index 96736e460..d92cf43ff 100644 --- a/query-languages/m/date-dayofweekname.md +++ b/query-languages/m/date-dayofweekname.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.DayOfWeekName" -title: "Date.DayOfWeekName | Microsoft Docs" +title: "Date.DayOfWeekName" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-dayofyear.md b/query-languages/m/date-dayofyear.md index d64d456ac..3094a5dfc 100644 --- a/query-languages/m/date-dayofyear.md +++ b/query-languages/m/date-dayofyear.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.DayOfYear" -title: "Date.DayOfYear | Microsoft Docs" +title: "Date.DayOfYear" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-daysinmonth.md b/query-languages/m/date-daysinmonth.md index b2c7814ac..5abb51fc0 100644 --- a/query-languages/m/date-daysinmonth.md +++ b/query-languages/m/date-daysinmonth.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.DaysInMonth" -title: "Date.DaysInMonth | Microsoft Docs" +title: "Date.DaysInMonth" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-endofday.md b/query-languages/m/date-endofday.md index 94f2653e1..605f57cb0 100644 --- a/query-languages/m/date-endofday.md +++ b/query-languages/m/date-endofday.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.EndOfDay" -title: "Date.EndOfDay | Microsoft Docs" +title: "Date.EndOfDay" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-endofmonth.md b/query-languages/m/date-endofmonth.md index 244774eae..8dd8a879e 100644 --- a/query-languages/m/date-endofmonth.md +++ b/query-languages/m/date-endofmonth.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.EndOfMonth" -title: "Date.EndOfMonth | Microsoft Docs" +title: "Date.EndOfMonth" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-endofquarter.md b/query-languages/m/date-endofquarter.md index 3101e562a..32b3c2311 100644 --- a/query-languages/m/date-endofquarter.md +++ b/query-languages/m/date-endofquarter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.EndOfQuarter" -title: "Date.EndOfQuarter | Microsoft Docs" +title: "Date.EndOfQuarter" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-endofweek.md b/query-languages/m/date-endofweek.md index fdf9838c8..1751d4068 100644 --- a/query-languages/m/date-endofweek.md +++ b/query-languages/m/date-endofweek.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.EndOfWeek" -title: "Date.EndOfWeek | Microsoft Docs" +title: "Date.EndOfWeek" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-endofyear.md b/query-languages/m/date-endofyear.md index 4c2623ebb..3e22033b2 100644 --- a/query-languages/m/date-endofyear.md +++ b/query-languages/m/date-endofyear.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.EndOfYear" -title: "Date.EndOfYear | Microsoft Docs" +title: "Date.EndOfYear" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-from.md b/query-languages/m/date-from.md index bfee70b3a..6f6aa1185 100644 --- a/query-languages/m/date-from.md +++ b/query-languages/m/date-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.From" -title: "Date.From | Microsoft Docs" +title: "Date.From" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/date-fromtext.md b/query-languages/m/date-fromtext.md index 5ebfbdddb..6ee62350f 100644 --- a/query-languages/m/date-fromtext.md +++ b/query-languages/m/date-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.FromText" -title: "Date.FromText | Microsoft Docs" +title: "Date.FromText" ms.date: 6/24/2022 ms.service: powerquery diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index d64d880fc..0c5366fb7 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date functions" -title: "Date functions | Microsoft Docs" +title: "Date functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/date-isincurrentday.md b/query-languages/m/date-isincurrentday.md index 0743a0e3c..372d7e0ff 100644 --- a/query-languages/m/date-isincurrentday.md +++ b/query-languages/m/date-isincurrentday.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentDay" -title: "Date.IsInCurrentDay | Microsoft Docs" +title: "Date.IsInCurrentDay" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isincurrentmonth.md b/query-languages/m/date-isincurrentmonth.md index 47a567963..ea6372950 100644 --- a/query-languages/m/date-isincurrentmonth.md +++ b/query-languages/m/date-isincurrentmonth.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentMonth" -title: "Date.IsInCurrentMonth | Microsoft Docs" +title: "Date.IsInCurrentMonth" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isincurrentquarter.md b/query-languages/m/date-isincurrentquarter.md index 271a3359a..0ac0d1b59 100644 --- a/query-languages/m/date-isincurrentquarter.md +++ b/query-languages/m/date-isincurrentquarter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentQuarter" -title: "Date.IsInCurrentQuarter | Microsoft Docs" +title: "Date.IsInCurrentQuarter" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isincurrentweek.md b/query-languages/m/date-isincurrentweek.md index 134eb215b..d3992a943 100644 --- a/query-languages/m/date-isincurrentweek.md +++ b/query-languages/m/date-isincurrentweek.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentWeek" -title: "Date.IsInCurrentWeek | Microsoft Docs" +title: "Date.IsInCurrentWeek" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isincurrentyear.md b/query-languages/m/date-isincurrentyear.md index ab3acd04c..aef623ff3 100644 --- a/query-languages/m/date-isincurrentyear.md +++ b/query-languages/m/date-isincurrentyear.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentYear" -title: "Date.IsInCurrentYear | Microsoft Docs" +title: "Date.IsInCurrentYear" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextday.md b/query-languages/m/date-isinnextday.md index 59eef9f3b..ed10155f7 100644 --- a/query-languages/m/date-isinnextday.md +++ b/query-languages/m/date-isinnextday.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextDay" -title: "Date.IsInNextDay | Microsoft Docs" +title: "Date.IsInNextDay" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextmonth.md b/query-languages/m/date-isinnextmonth.md index 5154c4e05..16656a461 100644 --- a/query-languages/m/date-isinnextmonth.md +++ b/query-languages/m/date-isinnextmonth.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextMonth" -title: "Date.IsInNextMonth | Microsoft Docs" +title: "Date.IsInNextMonth" ms.date: 3/22/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextndays.md b/query-languages/m/date-isinnextndays.md index 1333e8b70..e8219f0e5 100644 --- a/query-languages/m/date-isinnextndays.md +++ b/query-languages/m/date-isinnextndays.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextNDays" -title: "Date.IsInNextNDays | Microsoft Docs" +title: "Date.IsInNextNDays" ms.date: 3/22/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextnmonths.md b/query-languages/m/date-isinnextnmonths.md index 698cce729..1ff4b442a 100644 --- a/query-languages/m/date-isinnextnmonths.md +++ b/query-languages/m/date-isinnextnmonths.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextNMonths" -title: "Date.IsInNextNMonths | Microsoft Docs" +title: "Date.IsInNextNMonths" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextnquarters.md b/query-languages/m/date-isinnextnquarters.md index 1358447e2..c1ae6da81 100644 --- a/query-languages/m/date-isinnextnquarters.md +++ b/query-languages/m/date-isinnextnquarters.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextNQuarters" -title: "Date.IsInNextNQuarters | Microsoft Docs" +title: "Date.IsInNextNQuarters" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextnweeks.md b/query-languages/m/date-isinnextnweeks.md index 9a7ce33b7..ec792adef 100644 --- a/query-languages/m/date-isinnextnweeks.md +++ b/query-languages/m/date-isinnextnweeks.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextNWeeks" -title: "Date.IsInNextNWeeks | Microsoft Docs" +title: "Date.IsInNextNWeeks" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextnyears.md b/query-languages/m/date-isinnextnyears.md index 479fb7f65..e3f137730 100644 --- a/query-languages/m/date-isinnextnyears.md +++ b/query-languages/m/date-isinnextnyears.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextNYears" -title: "Date.IsInNextNYears | Microsoft Docs" +title: "Date.IsInNextNYears" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextquarter.md b/query-languages/m/date-isinnextquarter.md index 0bf3673b2..58eb5a3fd 100644 --- a/query-languages/m/date-isinnextquarter.md +++ b/query-languages/m/date-isinnextquarter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextQuarter" -title: "Date.IsInNextQuarter | Microsoft Docs" +title: "Date.IsInNextQuarter" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextweek.md b/query-languages/m/date-isinnextweek.md index 938bc916a..3a32b6e52 100644 --- a/query-languages/m/date-isinnextweek.md +++ b/query-languages/m/date-isinnextweek.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextWeek" -title: "Date.IsInNextWeek | Microsoft Docs" +title: "Date.IsInNextWeek" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinnextyear.md b/query-languages/m/date-isinnextyear.md index 3a28d3891..bfabb8d11 100644 --- a/query-languages/m/date-isinnextyear.md +++ b/query-languages/m/date-isinnextyear.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInNextYear" -title: "Date.IsInNextYear | Microsoft Docs" +title: "Date.IsInNextYear" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousday.md b/query-languages/m/date-isinpreviousday.md index 69d67ce1a..393fbfc8f 100644 --- a/query-languages/m/date-isinpreviousday.md +++ b/query-languages/m/date-isinpreviousday.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousDay" -title: "Date.IsInPreviousDay | Microsoft Docs" +title: "Date.IsInPreviousDay" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousmonth.md b/query-languages/m/date-isinpreviousmonth.md index ee1fa7cc0..5eff4a6d9 100644 --- a/query-languages/m/date-isinpreviousmonth.md +++ b/query-languages/m/date-isinpreviousmonth.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousMonth" -title: "Date.IsInPreviousMonth | Microsoft Docs" +title: "Date.IsInPreviousMonth" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousndays.md b/query-languages/m/date-isinpreviousndays.md index 553455800..35ffa1bc5 100644 --- a/query-languages/m/date-isinpreviousndays.md +++ b/query-languages/m/date-isinpreviousndays.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNDays" -title: "Date.IsInPreviousNDays | Microsoft Docs" +title: "Date.IsInPreviousNDays" ms.date: 3/22/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousnmonths.md b/query-languages/m/date-isinpreviousnmonths.md index 924b8ed1b..d48567289 100644 --- a/query-languages/m/date-isinpreviousnmonths.md +++ b/query-languages/m/date-isinpreviousnmonths.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNMonths" -title: "Date.IsInPreviousNMonths | Microsoft Docs" +title: "Date.IsInPreviousNMonths" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousnquarters.md b/query-languages/m/date-isinpreviousnquarters.md index bc53dff63..c01250db3 100644 --- a/query-languages/m/date-isinpreviousnquarters.md +++ b/query-languages/m/date-isinpreviousnquarters.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNQuarters" -title: "Date.IsInPreviousNQuarters | Microsoft Docs" +title: "Date.IsInPreviousNQuarters" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousnweeks.md b/query-languages/m/date-isinpreviousnweeks.md index 1b39312cc..ea7e3e2fd 100644 --- a/query-languages/m/date-isinpreviousnweeks.md +++ b/query-languages/m/date-isinpreviousnweeks.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNWeeks" -title: "Date.IsInPreviousNWeeks | Microsoft Docs" +title: "Date.IsInPreviousNWeeks" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousnyears.md b/query-languages/m/date-isinpreviousnyears.md index 9b5334ce6..9a9adaf5e 100644 --- a/query-languages/m/date-isinpreviousnyears.md +++ b/query-languages/m/date-isinpreviousnyears.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNYears" -title: "Date.IsInPreviousNYears | Microsoft Docs" +title: "Date.IsInPreviousNYears" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousquarter.md b/query-languages/m/date-isinpreviousquarter.md index 10f9b3481..be703a1b8 100644 --- a/query-languages/m/date-isinpreviousquarter.md +++ b/query-languages/m/date-isinpreviousquarter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousQuarter" -title: "Date.IsInPreviousQuarter | Microsoft Docs" +title: "Date.IsInPreviousQuarter" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousweek.md b/query-languages/m/date-isinpreviousweek.md index 2eb82d329..7e8705bb5 100644 --- a/query-languages/m/date-isinpreviousweek.md +++ b/query-languages/m/date-isinpreviousweek.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousWeek" -title: "Date.IsInPreviousWeek | Microsoft Docs" +title: "Date.IsInPreviousWeek" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinpreviousyear.md b/query-languages/m/date-isinpreviousyear.md index 6df210d47..281ba6e78 100644 --- a/query-languages/m/date-isinpreviousyear.md +++ b/query-languages/m/date-isinpreviousyear.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousYear" -title: "Date.IsInPreviousYear | Microsoft Docs" +title: "Date.IsInPreviousYear" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isinyeartodate.md b/query-languages/m/date-isinyeartodate.md index 376d8feca..20a1afe7c 100644 --- a/query-languages/m/date-isinyeartodate.md +++ b/query-languages/m/date-isinyeartodate.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsInYearToDate" -title: "Date.IsInYearToDate | Microsoft Docs" +title: "Date.IsInYearToDate" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-isleapyear.md b/query-languages/m/date-isleapyear.md index cf048ae88..a05ce6135 100644 --- a/query-languages/m/date-isleapyear.md +++ b/query-languages/m/date-isleapyear.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.IsLeapYear" -title: "Date.IsLeapYear | Microsoft Docs" +title: "Date.IsLeapYear" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-month.md b/query-languages/m/date-month.md index 9e2498b47..324af6d74 100644 --- a/query-languages/m/date-month.md +++ b/query-languages/m/date-month.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.Month" -title: "Date.Month | Microsoft Docs" +title: "Date.Month" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-monthname.md b/query-languages/m/date-monthname.md index 50281a8d0..474abd716 100644 --- a/query-languages/m/date-monthname.md +++ b/query-languages/m/date-monthname.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.MonthName" -title: "Date.MonthName | Microsoft Docs" +title: "Date.MonthName" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-quarterofyear.md b/query-languages/m/date-quarterofyear.md index ceeb519b3..c5488c15c 100644 --- a/query-languages/m/date-quarterofyear.md +++ b/query-languages/m/date-quarterofyear.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.QuarterOfYear" -title: "Date.QuarterOfYear | Microsoft Docs" +title: "Date.QuarterOfYear" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-startofday.md b/query-languages/m/date-startofday.md index 6636b130c..9ef4315b5 100644 --- a/query-languages/m/date-startofday.md +++ b/query-languages/m/date-startofday.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.StartOfDay" -title: "Date.StartOfDay | Microsoft Docs" +title: "Date.StartOfDay" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-startofmonth.md b/query-languages/m/date-startofmonth.md index b5bf68bf4..fca63ee6a 100644 --- a/query-languages/m/date-startofmonth.md +++ b/query-languages/m/date-startofmonth.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.StartOfMonth" -title: "Date.StartOfMonth | Microsoft Docs" +title: "Date.StartOfMonth" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-startofquarter.md b/query-languages/m/date-startofquarter.md index 87070635f..d8c227796 100644 --- a/query-languages/m/date-startofquarter.md +++ b/query-languages/m/date-startofquarter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.StartOfQuarter" -title: "Date.StartOfQuarter | Microsoft Docs" +title: "Date.StartOfQuarter" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-startofweek.md b/query-languages/m/date-startofweek.md index 684e8f92c..f8fce834e 100644 --- a/query-languages/m/date-startofweek.md +++ b/query-languages/m/date-startofweek.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.StartOfWeek" -title: "Date.StartOfWeek | Microsoft Docs" +title: "Date.StartOfWeek" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-startofyear.md b/query-languages/m/date-startofyear.md index 6becae831..c9b0054e4 100644 --- a/query-languages/m/date-startofyear.md +++ b/query-languages/m/date-startofyear.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.StartOfYear" -title: "Date.StartOfYear | Microsoft Docs" +title: "Date.StartOfYear" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-torecord.md b/query-languages/m/date-torecord.md index 0b961a5ef..a7f062704 100644 --- a/query-languages/m/date-torecord.md +++ b/query-languages/m/date-torecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.ToRecord" -title: "Date.ToRecord | Microsoft Docs" +title: "Date.ToRecord" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/date-totext.md b/query-languages/m/date-totext.md index ff900eeb8..ab9cd29b5 100644 --- a/query-languages/m/date-totext.md +++ b/query-languages/m/date-totext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.ToText" -title: "Date.ToText | Microsoft Docs" +title: "Date.ToText" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/date-weekofmonth.md b/query-languages/m/date-weekofmonth.md index 10e967775..d2c3bebe8 100644 --- a/query-languages/m/date-weekofmonth.md +++ b/query-languages/m/date-weekofmonth.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.WeekOfMonth" -title: "Date.WeekOfMonth | Microsoft Docs" +title: "Date.WeekOfMonth" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/date-weekofyear.md b/query-languages/m/date-weekofyear.md index 62898388b..0e5beb7b7 100644 --- a/query-languages/m/date-weekofyear.md +++ b/query-languages/m/date-weekofyear.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.WeekOfYear" -title: "Date.WeekOfYear | Microsoft Docs" +title: "Date.WeekOfYear" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/date-year.md b/query-languages/m/date-year.md index 056512917..91607b3c5 100644 --- a/query-languages/m/date-year.md +++ b/query-languages/m/date-year.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date.Year" -title: "Date.Year | Microsoft Docs" +title: "Date.Year" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-addzone.md b/query-languages/m/datetime-addzone.md index 4a4325fe3..3a4858ec1 100644 --- a/query-languages/m/datetime-addzone.md +++ b/query-languages/m/datetime-addzone.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.AddZone" -title: "DateTime.AddZone | Microsoft Docs" +title: "DateTime.AddZone" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-date.md b/query-languages/m/datetime-date.md index 7d4ee2071..91913b652 100644 --- a/query-languages/m/datetime-date.md +++ b/query-languages/m/datetime-date.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.Date" -title: "DateTime.Date | Microsoft Docs" +title: "DateTime.Date" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-fixedlocalnow.md b/query-languages/m/datetime-fixedlocalnow.md index f7b5db0c0..8cce16467 100644 --- a/query-languages/m/datetime-fixedlocalnow.md +++ b/query-languages/m/datetime-fixedlocalnow.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.FixedLocalNow" -title: "DateTime.FixedLocalNow | Microsoft Docs" +title: "DateTime.FixedLocalNow" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/datetime-from.md b/query-languages/m/datetime-from.md index dfd59ebff..cab5b17d3 100644 --- a/query-languages/m/datetime-from.md +++ b/query-languages/m/datetime-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.From" -title: "DateTime.From | Microsoft Docs" +title: "DateTime.From" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-fromfiletime.md b/query-languages/m/datetime-fromfiletime.md index 3fce5f88c..6cef15ab1 100644 --- a/query-languages/m/datetime-fromfiletime.md +++ b/query-languages/m/datetime-fromfiletime.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.FromFileTime" -title: "DateTime.FromFileTime | Microsoft Docs" +title: "DateTime.FromFileTime" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-fromtext.md b/query-languages/m/datetime-fromtext.md index c77b77a6f..a04abcc6c 100644 --- a/query-languages/m/datetime-fromtext.md +++ b/query-languages/m/datetime-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.FromText" -title: "DateTime.FromText | Microsoft Docs" +title: "DateTime.FromText" ms.date: 6/24/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-functions.md b/query-languages/m/datetime-functions.md index 3c7711db5..906c351ef 100644 --- a/query-languages/m/datetime-functions.md +++ b/query-languages/m/datetime-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime functions" -title: "DateTime functions | Microsoft Docs" +title: "DateTime functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isincurrenthour.md b/query-languages/m/datetime-isincurrenthour.md index b2bf291e9..53f40f96b 100644 --- a/query-languages/m/datetime-isincurrenthour.md +++ b/query-languages/m/datetime-isincurrenthour.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInCurrentHour" -title: "DateTime.IsInCurrentHour | Microsoft Docs" +title: "DateTime.IsInCurrentHour" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isincurrentminute.md b/query-languages/m/datetime-isincurrentminute.md index b2ea81987..c4ca46960 100644 --- a/query-languages/m/datetime-isincurrentminute.md +++ b/query-languages/m/datetime-isincurrentminute.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInCurrentMinute" -title: "DateTime.IsInCurrentMinute | Microsoft Docs" +title: "DateTime.IsInCurrentMinute" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isincurrentsecond.md b/query-languages/m/datetime-isincurrentsecond.md index 40e228536..98d7067e0 100644 --- a/query-languages/m/datetime-isincurrentsecond.md +++ b/query-languages/m/datetime-isincurrentsecond.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInCurrentSecond" -title: "DateTime.IsInCurrentSecond | Microsoft Docs" +title: "DateTime.IsInCurrentSecond" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinnexthour.md b/query-languages/m/datetime-isinnexthour.md index b05d8f2a2..3e287dc38 100644 --- a/query-languages/m/datetime-isinnexthour.md +++ b/query-languages/m/datetime-isinnexthour.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextHour" -title: "DateTime.IsInNextHour | Microsoft Docs" +title: "DateTime.IsInNextHour" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinnextminute.md b/query-languages/m/datetime-isinnextminute.md index 1e7deaf38..9a9645472 100644 --- a/query-languages/m/datetime-isinnextminute.md +++ b/query-languages/m/datetime-isinnextminute.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextMinute" -title: "DateTime.IsInNextMinute | Microsoft Docs" +title: "DateTime.IsInNextMinute" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinnextnhours.md b/query-languages/m/datetime-isinnextnhours.md index c63009dc3..d636aa987 100644 --- a/query-languages/m/datetime-isinnextnhours.md +++ b/query-languages/m/datetime-isinnextnhours.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextNHours" -title: "DateTime.IsInNextNHours | Microsoft Docs" +title: "DateTime.IsInNextNHours" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinnextnminutes.md b/query-languages/m/datetime-isinnextnminutes.md index 604bcf404..bf7cf1510 100644 --- a/query-languages/m/datetime-isinnextnminutes.md +++ b/query-languages/m/datetime-isinnextnminutes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextNMinutes" -title: "DateTime.IsInNextNMinutes | Microsoft Docs" +title: "DateTime.IsInNextNMinutes" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinnextnseconds.md b/query-languages/m/datetime-isinnextnseconds.md index 5fc602bc1..b1833c76d 100644 --- a/query-languages/m/datetime-isinnextnseconds.md +++ b/query-languages/m/datetime-isinnextnseconds.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextNSeconds" -title: "DateTime.IsInNextNSeconds | Microsoft Docs" +title: "DateTime.IsInNextNSeconds" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinnextsecond.md b/query-languages/m/datetime-isinnextsecond.md index 38de41288..d9d6d9862 100644 --- a/query-languages/m/datetime-isinnextsecond.md +++ b/query-languages/m/datetime-isinnextsecond.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextSecond" -title: "DateTime.IsInNextSecond | Microsoft Docs" +title: "DateTime.IsInNextSecond" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinprevioushour.md b/query-languages/m/datetime-isinprevioushour.md index 5c8a40c13..718e94868 100644 --- a/query-languages/m/datetime-isinprevioushour.md +++ b/query-languages/m/datetime-isinprevioushour.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousHour" -title: "DateTime.IsInPreviousHour | Microsoft Docs" +title: "DateTime.IsInPreviousHour" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinpreviousminute.md b/query-languages/m/datetime-isinpreviousminute.md index abb46b07c..3ef7d7bb5 100644 --- a/query-languages/m/datetime-isinpreviousminute.md +++ b/query-languages/m/datetime-isinpreviousminute.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousMinute" -title: "DateTime.IsInPreviousMinute | Microsoft Docs" +title: "DateTime.IsInPreviousMinute" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinpreviousnhours.md b/query-languages/m/datetime-isinpreviousnhours.md index 082f73bba..1c721d5d2 100644 --- a/query-languages/m/datetime-isinpreviousnhours.md +++ b/query-languages/m/datetime-isinpreviousnhours.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousNHours" -title: "DateTime.IsInPreviousNHours | Microsoft Docs" +title: "DateTime.IsInPreviousNHours" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinpreviousnminutes.md b/query-languages/m/datetime-isinpreviousnminutes.md index 5ea6b29ec..72d1496a2 100644 --- a/query-languages/m/datetime-isinpreviousnminutes.md +++ b/query-languages/m/datetime-isinpreviousnminutes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousNMinutes" -title: "DateTime.IsInPreviousNMinutes | Microsoft Docs" +title: "DateTime.IsInPreviousNMinutes" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinpreviousnseconds.md b/query-languages/m/datetime-isinpreviousnseconds.md index 71f11ddb4..08afd84b3 100644 --- a/query-languages/m/datetime-isinpreviousnseconds.md +++ b/query-languages/m/datetime-isinpreviousnseconds.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousNSeconds" -title: "DateTime.IsInPreviousNSeconds | Microsoft Docs" +title: "DateTime.IsInPreviousNSeconds" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-isinprevioussecond.md b/query-languages/m/datetime-isinprevioussecond.md index 5cc3979ae..b9cbedb61 100644 --- a/query-languages/m/datetime-isinprevioussecond.md +++ b/query-languages/m/datetime-isinprevioussecond.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousSecond" -title: "DateTime.IsInPreviousSecond | Microsoft Docs" +title: "DateTime.IsInPreviousSecond" ms.date: 3/11/2021 ms.service: powerquery diff --git a/query-languages/m/datetime-localnow.md b/query-languages/m/datetime-localnow.md index cf65173cc..89531d1af 100644 --- a/query-languages/m/datetime-localnow.md +++ b/query-languages/m/datetime-localnow.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.LocalNow" -title: "DateTime.LocalNow | Microsoft Docs" +title: "DateTime.LocalNow" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/datetime-time.md b/query-languages/m/datetime-time.md index 809631ba2..d322cf4d6 100644 --- a/query-languages/m/datetime-time.md +++ b/query-languages/m/datetime-time.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.Time" -title: "DateTime.Time | Microsoft Docs" +title: "DateTime.Time" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-torecord.md b/query-languages/m/datetime-torecord.md index 78199262f..bc2db2dbb 100644 --- a/query-languages/m/datetime-torecord.md +++ b/query-languages/m/datetime-torecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.ToRecord" -title: "DateTime.ToRecord | Microsoft Docs" +title: "DateTime.ToRecord" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/datetime-totext.md b/query-languages/m/datetime-totext.md index 1aa2e4202..bfa612a14 100644 --- a/query-languages/m/datetime-totext.md +++ b/query-languages/m/datetime-totext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTime.ToText" -title: "DateTime.ToText | Microsoft Docs" +title: "DateTime.ToText" ms.date: 6/24/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-fixedlocalnow.md b/query-languages/m/datetimezone-fixedlocalnow.md index 35d509c08..87f9ba6fa 100644 --- a/query-languages/m/datetimezone-fixedlocalnow.md +++ b/query-languages/m/datetimezone-fixedlocalnow.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.FixedLocalNow" -title: "DateTimeZone.FixedLocalNow | Microsoft Docs" +title: "DateTimeZone.FixedLocalNow" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/datetimezone-fixedutcnow.md b/query-languages/m/datetimezone-fixedutcnow.md index 8228180d3..4e8ff8a7b 100644 --- a/query-languages/m/datetimezone-fixedutcnow.md +++ b/query-languages/m/datetimezone-fixedutcnow.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.FixedUtcNow" -title: "DateTimeZone.FixedUtcNow | Microsoft Docs" +title: "DateTimeZone.FixedUtcNow" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index 5d10ee3cc..1853b12a4 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.From" -title: "DateTimeZone.From | Microsoft Docs" +title: "DateTimeZone.From" ms.date: 6/24/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-fromfiletime.md b/query-languages/m/datetimezone-fromfiletime.md index 6d0376587..7619e9cf3 100644 --- a/query-languages/m/datetimezone-fromfiletime.md +++ b/query-languages/m/datetimezone-fromfiletime.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.FromFileTime" -title: "DateTimeZone.FromFileTime | Microsoft Docs" +title: "DateTimeZone.FromFileTime" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-fromtext.md b/query-languages/m/datetimezone-fromtext.md index 1d1852137..5ff69096d 100644 --- a/query-languages/m/datetimezone-fromtext.md +++ b/query-languages/m/datetimezone-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.FromText" -title: "DateTimeZone.FromText | Microsoft Docs" +title: "DateTimeZone.FromText" ms.date: 6/24/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-functions.md b/query-languages/m/datetimezone-functions.md index 12f6980d2..f1d7cdcb2 100644 --- a/query-languages/m/datetimezone-functions.md +++ b/query-languages/m/datetimezone-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone functions" -title: "DateTimeZone functions | Microsoft Docs" +title: "DateTimeZone functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-localnow.md b/query-languages/m/datetimezone-localnow.md index 5cc8681c0..98fa7806f 100644 --- a/query-languages/m/datetimezone-localnow.md +++ b/query-languages/m/datetimezone-localnow.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.LocalNow" -title: "DateTimeZone.LocalNow | Microsoft Docs" +title: "DateTimeZone.LocalNow" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/datetimezone-removezone.md b/query-languages/m/datetimezone-removezone.md index 430e40a8f..aa89a0272 100644 --- a/query-languages/m/datetimezone-removezone.md +++ b/query-languages/m/datetimezone-removezone.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.RemoveZone" -title: "DateTimeZone.RemoveZone | Microsoft Docs" +title: "DateTimeZone.RemoveZone" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-switchzone.md b/query-languages/m/datetimezone-switchzone.md index 03feb7616..2d0763338 100644 --- a/query-languages/m/datetimezone-switchzone.md +++ b/query-languages/m/datetimezone-switchzone.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.SwitchZone" -title: "DateTimeZone.SwitchZone | Microsoft Docs" +title: "DateTimeZone.SwitchZone" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-tolocal.md b/query-languages/m/datetimezone-tolocal.md index fee244229..9263b165d 100644 --- a/query-languages/m/datetimezone-tolocal.md +++ b/query-languages/m/datetimezone-tolocal.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.ToLocal" -title: "DateTimeZone.ToLocal | Microsoft Docs" +title: "DateTimeZone.ToLocal" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-torecord.md b/query-languages/m/datetimezone-torecord.md index c9dae77c3..868bc0a9f 100644 --- a/query-languages/m/datetimezone-torecord.md +++ b/query-languages/m/datetimezone-torecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.ToRecord" -title: "DateTimeZone.ToRecord | Microsoft Docs" +title: "DateTimeZone.ToRecord" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-totext.md b/query-languages/m/datetimezone-totext.md index b4412c95b..c424c4b83 100644 --- a/query-languages/m/datetimezone-totext.md +++ b/query-languages/m/datetimezone-totext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.ToText" -title: "DateTimeZone.ToText | Microsoft Docs" +title: "DateTimeZone.ToText" ms.date: 6/24/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-toutc.md b/query-languages/m/datetimezone-toutc.md index 48b7e7936..e8b9c5167 100644 --- a/query-languages/m/datetimezone-toutc.md +++ b/query-languages/m/datetimezone-toutc.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.ToUtc" -title: "DateTimeZone.ToUtc | Microsoft Docs" +title: "DateTimeZone.ToUtc" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-utcnow.md b/query-languages/m/datetimezone-utcnow.md index 99a036b4a..e596639a4 100644 --- a/query-languages/m/datetimezone-utcnow.md +++ b/query-languages/m/datetimezone-utcnow.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.UtcNow" -title: "DateTimeZone.UtcNow | Microsoft Docs" +title: "DateTimeZone.UtcNow" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/datetimezone-zonehours.md b/query-languages/m/datetimezone-zonehours.md index ef0544bac..10ab4766c 100644 --- a/query-languages/m/datetimezone-zonehours.md +++ b/query-languages/m/datetimezone-zonehours.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.ZoneHours" -title: "DateTimeZone.ZoneHours | Microsoft Docs" +title: "DateTimeZone.ZoneHours" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/datetimezone-zoneminutes.md b/query-languages/m/datetimezone-zoneminutes.md index 79d2dca7c..074789c15 100644 --- a/query-languages/m/datetimezone-zoneminutes.md +++ b/query-languages/m/datetimezone-zoneminutes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DateTimeZone.ZoneMinutes" -title: "DateTimeZone.ZoneMinutes | Microsoft Docs" +title: "DateTimeZone.ZoneMinutes" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/day-type.md b/query-languages/m/day-type.md index d0c2657a6..a8fbc5113 100644 --- a/query-languages/m/day-type.md +++ b/query-languages/m/day-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Day.Type" -title: "Day.Type | Microsoft Docs" +title: "Day.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/db2-database.md b/query-languages/m/db2-database.md index 0950f4a7f..3d6f66d0b 100644 --- a/query-languages/m/db2-database.md +++ b/query-languages/m/db2-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DB2.Database" -title: "DB2.Database | Microsoft Docs" +title: "DB2.Database" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/decimal-from.md b/query-languages/m/decimal-from.md index 802fe3a67..f1f2f2422 100644 --- a/query-languages/m/decimal-from.md +++ b/query-languages/m/decimal-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Decimal.From" -title: "Decimal.From | Microsoft Docs" +title: "Decimal.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/diagnostics-activityid.md b/query-languages/m/diagnostics-activityid.md index dcad64fa0..c82ac1bc8 100644 --- a/query-languages/m/diagnostics-activityid.md +++ b/query-languages/m/diagnostics-activityid.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Diagnostics.ActivityId" -title: "Diagnostics.ActivityId | Microsoft Docs" +title: "Diagnostics.ActivityId" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/diagnostics-trace.md b/query-languages/m/diagnostics-trace.md index 350730ff3..b7074ca76 100644 --- a/query-languages/m/diagnostics-trace.md +++ b/query-languages/m/diagnostics-trace.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Diagnostics.Trace" -title: "Diagnostics.Trace | Microsoft Docs" +title: "Diagnostics.Trace" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/directquerycapabilities-from.md b/query-languages/m/directquerycapabilities-from.md index 42ad65b63..dc82726bb 100644 --- a/query-languages/m/directquerycapabilities-from.md +++ b/query-languages/m/directquerycapabilities-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DirectQueryCapabilities.From" -title: "DirectQueryCapabilities.From | Microsoft Docs" +title: "DirectQueryCapabilities.From" ms.date: 10/18/2021 ms.service: powerquery diff --git a/query-languages/m/double-from.md b/query-languages/m/double-from.md index bd99d3015..6dffff166 100644 --- a/query-languages/m/double-from.md +++ b/query-languages/m/double-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Double.From" -title: "Double.From | Microsoft Docs" +title: "Double.From" ms.date: 4/13/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/duration-days.md b/query-languages/m/duration-days.md index 76845289f..32e4eb36d 100644 --- a/query-languages/m/duration-days.md +++ b/query-languages/m/duration-days.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.Days" -title: "Duration.Days | Microsoft Docs" +title: "Duration.Days" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/duration-from.md b/query-languages/m/duration-from.md index c555cd4e3..6eeb6ddb9 100644 --- a/query-languages/m/duration-from.md +++ b/query-languages/m/duration-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.From" -title: "Duration.From | Microsoft Docs" +title: "Duration.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/duration-fromtext.md b/query-languages/m/duration-fromtext.md index c9cf1845a..0a0f0e8a2 100644 --- a/query-languages/m/duration-fromtext.md +++ b/query-languages/m/duration-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.FromText" -title: "Duration.FromText | Microsoft Docs" +title: "Duration.FromText" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/duration-functions.md b/query-languages/m/duration-functions.md index 19fa46ca8..0281121d8 100644 --- a/query-languages/m/duration-functions.md +++ b/query-languages/m/duration-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration functions" -title: "Duration functions | Microsoft Docs" +title: "Duration functions" ms.date: 7/19/2022 ms.service: powerquery diff --git a/query-languages/m/duration-hours.md b/query-languages/m/duration-hours.md index e24bc5d0e..6d34e7531 100644 --- a/query-languages/m/duration-hours.md +++ b/query-languages/m/duration-hours.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.Hours" -title: "Duration.Hours | Microsoft Docs" +title: "Duration.Hours" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/duration-minutes.md b/query-languages/m/duration-minutes.md index c512f210a..2a4a61973 100644 --- a/query-languages/m/duration-minutes.md +++ b/query-languages/m/duration-minutes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.Minutes" -title: "Duration.Minutes | Microsoft Docs" +title: "Duration.Minutes" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/duration-seconds.md b/query-languages/m/duration-seconds.md index 2cee280d5..8c854d014 100644 --- a/query-languages/m/duration-seconds.md +++ b/query-languages/m/duration-seconds.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.Seconds" -title: "Duration.Seconds | Microsoft Docs" +title: "Duration.Seconds" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/duration-torecord.md b/query-languages/m/duration-torecord.md index 6f0aaca49..a048ace28 100644 --- a/query-languages/m/duration-torecord.md +++ b/query-languages/m/duration-torecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.ToRecord" -title: "Duration.ToRecord | Microsoft Docs" +title: "Duration.ToRecord" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/duration-totaldays.md b/query-languages/m/duration-totaldays.md index a46f2c586..618a2e3f3 100644 --- a/query-languages/m/duration-totaldays.md +++ b/query-languages/m/duration-totaldays.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.TotalDays" -title: "Duration.TotalDays | Microsoft Docs" +title: "Duration.TotalDays" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/duration-totalhours.md b/query-languages/m/duration-totalhours.md index 07cb98a8f..c37827421 100644 --- a/query-languages/m/duration-totalhours.md +++ b/query-languages/m/duration-totalhours.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.TotalHours" -title: "Duration.TotalHours | Microsoft Docs" +title: "Duration.TotalHours" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/duration-totalminutes.md b/query-languages/m/duration-totalminutes.md index 258b507e8..2e12fe647 100644 --- a/query-languages/m/duration-totalminutes.md +++ b/query-languages/m/duration-totalminutes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.TotalMinutes" -title: "Duration.TotalMinutes | Microsoft Docs" +title: "Duration.TotalMinutes" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/duration-totalseconds.md b/query-languages/m/duration-totalseconds.md index b97098027..f17495442 100644 --- a/query-languages/m/duration-totalseconds.md +++ b/query-languages/m/duration-totalseconds.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.TotalSeconds" -title: "Duration.TotalSeconds | Microsoft Docs" +title: "Duration.TotalSeconds" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/duration-totext.md b/query-languages/m/duration-totext.md index 4eb91a24f..35e0c6ab7 100644 --- a/query-languages/m/duration-totext.md +++ b/query-languages/m/duration-totext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Duration.ToText" -title: "Duration.ToText | Microsoft Docs" +title: "Duration.ToText" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/dynamic-values.md b/query-languages/m/dynamic-values.md index 0abf74c14..326eef03f 100644 --- a/query-languages/m/dynamic-values.md +++ b/query-languages/m/dynamic-values.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Dynamic values" -title: "Dynamic values | Microsoft Docs" +title: "Dynamic values" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/embedded-value.md b/query-languages/m/embedded-value.md index fcc40ec49..3c4f28985 100644 --- a/query-languages/m/embedded-value.md +++ b/query-languages/m/embedded-value.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Embedded.Value" -title: "Embedded.Value | Microsoft Docs" +title: "Embedded.Value" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/enumerations.md b/query-languages/m/enumerations.md index 81a8fc76d..833908ad0 100644 --- a/query-languages/m/enumerations.md +++ b/query-languages/m/enumerations.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Enumerations" -title: "Accessing data enumerations | Microsoft Docs" +title: "Accessing data enumerations" ms.date: 6/27/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/error-handling.md b/query-languages/m/error-handling.md index f76b74842..23342210c 100644 --- a/query-languages/m/error-handling.md +++ b/query-languages/m/error-handling.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Error handling functions" -title: "Error handling functions | Microsoft Docs" +title: "Error handling functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/error-record.md b/query-languages/m/error-record.md index 32dff2302..8897da84b 100644 --- a/query-languages/m/error-record.md +++ b/query-languages/m/error-record.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Error.Record" -title: "Error.Record | Microsoft Docs" +title: "Error.Record" ms.date: 1/24/2022 ms.service: powerquery diff --git a/query-languages/m/errors.md b/query-languages/m/errors.md index 930e5342e..7b5e93a2d 100644 --- a/query-languages/m/errors.md +++ b/query-languages/m/errors.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Errors" -title: "Errors | Microsoft Docs" +title: "Errors" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/essbase-cubes.md b/query-languages/m/essbase-cubes.md index 90ddfc9df..bd1dbb69b 100644 --- a/query-languages/m/essbase-cubes.md +++ b/query-languages/m/essbase-cubes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Essbase.Cubes" -title: "Essbase.Cubes | Microsoft Docs" +title: "Essbase.Cubes" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/evaluation-model.md b/query-languages/m/evaluation-model.md index 29bd9184b..e09a6f6d8 100644 --- a/query-languages/m/evaluation-model.md +++ b/query-languages/m/evaluation-model.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Evaluation model" -title: "Evaluation model | Microsoft Docs" +title: "Evaluation model" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/excel-currentworkbook.md b/query-languages/m/excel-currentworkbook.md index a92a4c5b1..a7154dd43 100644 --- a/query-languages/m/excel-currentworkbook.md +++ b/query-languages/m/excel-currentworkbook.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Excel.CurrentWorkbook" -title: "Excel.CurrentWorkbook | Microsoft Docs" +title: "Excel.CurrentWorkbook" ms.date: 7/16/2020 ms.service: powerquery diff --git a/query-languages/m/excel-shapetable.md b/query-languages/m/excel-shapetable.md index ef219d7b1..5af6bc2fc 100644 --- a/query-languages/m/excel-shapetable.md +++ b/query-languages/m/excel-shapetable.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Excel.ShapeTable" -title: "Excel.ShapeTable | Microsoft Docs" +title: "Excel.ShapeTable" ms.date: 1/24/2022 ms.service: powerquery diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md index c9e1b9a1b..adcfe267a 100644 --- a/query-languages/m/excel-workbook.md +++ b/query-languages/m/excel-workbook.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Excel.Workbook" -title: "Excel.Workbook | Microsoft Docs" +title: "Excel.Workbook" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/exchange-contents.md b/query-languages/m/exchange-contents.md index 2ed873733..768298a2d 100644 --- a/query-languages/m/exchange-contents.md +++ b/query-languages/m/exchange-contents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Exchange.Contents" -title: "Exchange.Contents | Microsoft Docs" +title: "Exchange.Contents" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/expression-constant.md b/query-languages/m/expression-constant.md index 868afe1b3..16950c116 100644 --- a/query-languages/m/expression-constant.md +++ b/query-languages/m/expression-constant.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Expression.Constant" -title: "Expression.Constant | Microsoft Docs" +title: "Expression.Constant" ms.date: 3/11/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/expression-evaluate.md b/query-languages/m/expression-evaluate.md index d0898eecf..f58891324 100644 --- a/query-languages/m/expression-evaluate.md +++ b/query-languages/m/expression-evaluate.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Expression.Evaluate" -title: "Expression.Evaluate | Microsoft Docs" +title: "Expression.Evaluate" ms.date: 3/11/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/expression-functions.md b/query-languages/m/expression-functions.md index 799943a51..54e7bd95c 100644 --- a/query-languages/m/expression-functions.md +++ b/query-languages/m/expression-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Expression functions" -title: "Expression functions | Microsoft Docs" +title: "Expression functions" ms.date: 5/16/2020 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/expression-identifier.md b/query-languages/m/expression-identifier.md index f3e96150f..a50d53966 100644 --- a/query-languages/m/expression-identifier.md +++ b/query-languages/m/expression-identifier.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Expression.Identifier" -title: "Expression.Identifier | Microsoft Docs" +title: "Expression.Identifier" ms.date: 3/11/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index fc6b34172..8775c3b3d 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Expressions, values, and let expression" -title: "Expressions, values, and let expression | Microsoft Docs" +title: "Expressions, values, and let expression" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/extravalues-type.md b/query-languages/m/extravalues-type.md index c7f2ea292..e0b836c5f 100644 --- a/query-languages/m/extravalues-type.md +++ b/query-languages/m/extravalues-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ExtraValues.Type" -title: "ExtraValues.Type | Microsoft Docs" +title: "ExtraValues.Type" ms.date: 5/16/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/file-contents.md b/query-languages/m/file-contents.md index 438ee7b0c..c65255e84 100644 --- a/query-languages/m/file-contents.md +++ b/query-languages/m/file-contents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: File.Contents" -title: "File.Contents | Microsoft Docs" +title: "File.Contents" ms.date: 9/13/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/folder-contents.md b/query-languages/m/folder-contents.md index 561098810..a20ee605d 100644 --- a/query-languages/m/folder-contents.md +++ b/query-languages/m/folder-contents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Folder.Contents" -title: "Folder.Contents | Microsoft Docs" +title: "Folder.Contents" ms.date: 9/13/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/folder-files.md b/query-languages/m/folder-files.md index 754959083..c28adff5b 100644 --- a/query-languages/m/folder-files.md +++ b/query-languages/m/folder-files.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Folder.Files" -title: "Folder.Files | Microsoft Docs" +title: "Folder.Files" ms.date: 9/13/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/function-from.md b/query-languages/m/function-from.md index 440c079a8..a059939ac 100644 --- a/query-languages/m/function-from.md +++ b/query-languages/m/function-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Function.From" -title: "Function.From | Microsoft Docs" +title: "Function.From" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/function-invoke.md b/query-languages/m/function-invoke.md index 9e1a82a88..f251a25a6 100644 --- a/query-languages/m/function-invoke.md +++ b/query-languages/m/function-invoke.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Function.Invoke" -title: "Function.Invoke | Microsoft Docs" +title: "Function.Invoke" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/function-invokeafter.md b/query-languages/m/function-invokeafter.md index 717164c29..fdc026351 100644 --- a/query-languages/m/function-invokeafter.md +++ b/query-languages/m/function-invokeafter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Function.InvokeAfter" -title: "Function.InvokeAfter | Microsoft Docs" +title: "Function.InvokeAfter" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/function-isdatasource.md b/query-languages/m/function-isdatasource.md index a8f021ea5..6ce51e013 100644 --- a/query-languages/m/function-isdatasource.md +++ b/query-languages/m/function-isdatasource.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Function.IsDataSource" -title: "Function.IsDataSource | Microsoft Docs" +title: "Function.IsDataSource" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/function-scalarvector.md b/query-languages/m/function-scalarvector.md index 0314d9434..f3f5ff1e4 100644 --- a/query-languages/m/function-scalarvector.md +++ b/query-languages/m/function-scalarvector.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Function.ScalarVector" -title: "Function.ScalarVector | Microsoft Docs" +title: "Function.ScalarVector" ms.date: 09/13/2018 ms.service: powerquery diff --git a/query-languages/m/function-values.md b/query-languages/m/function-values.md index 9d621095f..d9b4db8e6 100644 --- a/query-languages/m/function-values.md +++ b/query-languages/m/function-values.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Function values" -title: "Function values | Microsoft Docs" +title: "Function values" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/geography-fromwellknowntext.md b/query-languages/m/geography-fromwellknowntext.md index 5f93862c4..8711c4034 100644 --- a/query-languages/m/geography-fromwellknowntext.md +++ b/query-languages/m/geography-fromwellknowntext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Geography.FromWellKnownText" -title: "Geography.FromWellKnownText | Microsoft Docs" +title: "Geography.FromWellKnownText" ms.date: 7/16/2020 ms.service: powerquery diff --git a/query-languages/m/geography-towellknowntext.md b/query-languages/m/geography-towellknowntext.md index b8188bcd5..23fc06d74 100644 --- a/query-languages/m/geography-towellknowntext.md +++ b/query-languages/m/geography-towellknowntext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Geography.ToWellKnownText" -title: "Geography.ToWellKnownText | Microsoft Docs" +title: "Geography.ToWellKnownText" ms.date: 7/16/2020 ms.service: powerquery diff --git a/query-languages/m/geographypoint-from.md b/query-languages/m/geographypoint-from.md index 3452b3a6f..066954dac 100644 --- a/query-languages/m/geographypoint-from.md +++ b/query-languages/m/geographypoint-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GeographyPoint.From" -title: "GeographyPoint.From | Microsoft Docs" +title: "GeographyPoint.From" ms.date: 7/16/2020 ms.service: powerquery diff --git a/query-languages/m/geometry-fromwellknowntext.md b/query-languages/m/geometry-fromwellknowntext.md index a41f1dd33..fca422c78 100644 --- a/query-languages/m/geometry-fromwellknowntext.md +++ b/query-languages/m/geometry-fromwellknowntext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Geometry.FromWellKnownText" -title: "Geometry.FromWellKnownText | Microsoft Docs" +title: "Geometry.FromWellKnownText" ms.date: 7/16/2020 ms.service: powerquery diff --git a/query-languages/m/geometry-towellknowntext.md b/query-languages/m/geometry-towellknowntext.md index c0e965a7f..2ab6db976 100644 --- a/query-languages/m/geometry-towellknowntext.md +++ b/query-languages/m/geometry-towellknowntext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Geometry.ToWellKnownText" -title: "Geometry.ToWellKnownText | Microsoft Docs" +title: "Geometry.ToWellKnownText" ms.date: 7/16/2020 ms.service: powerquery diff --git a/query-languages/m/geometrypoint-from.md b/query-languages/m/geometrypoint-from.md index de0e99c74..29853667c 100644 --- a/query-languages/m/geometrypoint-from.md +++ b/query-languages/m/geometrypoint-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GeometryPoint.From" -title: "GeometryPoint.From | Microsoft Docs" +title: "GeometryPoint.From" ms.date: 7/16/2020 ms.service: powerquery diff --git a/query-languages/m/googleanalytics-accounts.md b/query-languages/m/googleanalytics-accounts.md index 71650c2d8..5920403ac 100644 --- a/query-languages/m/googleanalytics-accounts.md +++ b/query-languages/m/googleanalytics-accounts.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GoogleAnalytics.Accounts" -title: "GoogleAnalytics.Accounts | Microsoft Docs" +title: "GoogleAnalytics.Accounts" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/graph-nodes.md b/query-languages/m/graph-nodes.md index db6e5cff3..88fa7817b 100644 --- a/query-languages/m/graph-nodes.md +++ b/query-languages/m/graph-nodes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Graph.Nodes" -title: "Graph.Nodes | Microsoft Docs" +title: "Graph.Nodes" ms.date: 9/22/2020 ms.service: powerquery diff --git a/query-languages/m/groupkind-type.md b/query-languages/m/groupkind-type.md index 9e4117742..f0e5695df 100644 --- a/query-languages/m/groupkind-type.md +++ b/query-languages/m/groupkind-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GroupKind.Type" -title: "GroupKind.Type | Microsoft Docs" +title: "GroupKind.Type" ms.date: 5/16/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/guid-from.md b/query-languages/m/guid-from.md index 096d80dd0..fe49ec2ba 100644 --- a/query-languages/m/guid-from.md +++ b/query-languages/m/guid-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Guid.From" -title: "Guid.From | Microsoft Docs" +title: "Guid.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/hdfs-contents.md b/query-languages/m/hdfs-contents.md index 9d811f6c8..be0f67b44 100644 --- a/query-languages/m/hdfs-contents.md +++ b/query-languages/m/hdfs-contents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Hdfs.Contents" -title: "Hdfs.Contents | Microsoft Docs" +title: "Hdfs.Contents" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/hdfs-files.md b/query-languages/m/hdfs-files.md index ef4ce89d8..b1eb2b2db 100644 --- a/query-languages/m/hdfs-files.md +++ b/query-languages/m/hdfs-files.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Hdfs.Files" -title: "Hdfs.Files | Microsoft Docs" +title: "Hdfs.Files" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/hdinsight-containers.md b/query-languages/m/hdinsight-containers.md index bad0f5629..f5c842276 100644 --- a/query-languages/m/hdinsight-containers.md +++ b/query-languages/m/hdinsight-containers.md @@ -1,6 +1,6 @@ --- description: "Learn more about: HdInsight.Containers" -title: "HdInsight.Containers | Microsoft Docs" +title: "HdInsight.Containers" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/hdinsight-contents.md b/query-languages/m/hdinsight-contents.md index 18260146d..79ce07e32 100644 --- a/query-languages/m/hdinsight-contents.md +++ b/query-languages/m/hdinsight-contents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: HdInsight.Contents" -title: "HdInsight.Contents | Microsoft Docs" +title: "HdInsight.Contents" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/hdinsight-files.md b/query-languages/m/hdinsight-files.md index 0cf9464ad..4828ee4f4 100644 --- a/query-languages/m/hdinsight-files.md +++ b/query-languages/m/hdinsight-files.md @@ -1,6 +1,6 @@ --- description: "Learn more about: HdInsight.Files" -title: "HdInsight.Files | Microsoft Docs" +title: "HdInsight.Files" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/html-table.md b/query-languages/m/html-table.md index edfe63480..c103d4bc6 100644 --- a/query-languages/m/html-table.md +++ b/query-languages/m/html-table.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Html.Table" -title: "Html.Table | Microsoft Docs" +title: "Html.Table" ms.date: 3/8/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/identity-from.md b/query-languages/m/identity-from.md index fd0639127..5e644e143 100644 --- a/query-languages/m/identity-from.md +++ b/query-languages/m/identity-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Identity.From" -title: "Identity.From | Microsoft Docs" +title: "Identity.From" ms.date: 3/28/2019 ms.service: powerquery diff --git a/query-languages/m/identity-ismemberof.md b/query-languages/m/identity-ismemberof.md index 95f5ac948..70947f867 100644 --- a/query-languages/m/identity-ismemberof.md +++ b/query-languages/m/identity-ismemberof.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Identity.IsMemberOf" -title: "Identity.IsMemberOf | Microsoft Docs" +title: "Identity.IsMemberOf" ms.date: 3/28/2019 ms.service: powerquery diff --git a/query-languages/m/identityprovider-default.md b/query-languages/m/identityprovider-default.md index 3c2eb2040..ba54e655e 100644 --- a/query-languages/m/identityprovider-default.md +++ b/query-languages/m/identityprovider-default.md @@ -1,6 +1,6 @@ --- description: "Learn more about: IdentityProvider.Default" -title: "IdentityProvider.Default | Microsoft Docs" +title: "IdentityProvider.Default" ms.date: 3/28/2019 ms.service: powerquery diff --git a/query-languages/m/informix-database.md b/query-languages/m/informix-database.md index 53fe31f25..8fad40a52 100644 --- a/query-languages/m/informix-database.md +++ b/query-languages/m/informix-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Informix.Database" -title: "Informix.Database | Microsoft Docs" +title: "Informix.Database" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/int16-from.md b/query-languages/m/int16-from.md index aa8b70083..415279b27 100644 --- a/query-languages/m/int16-from.md +++ b/query-languages/m/int16-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Int16.From" -title: "Int16.From | Microsoft Docs" +title: "Int16.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/int32-from.md b/query-languages/m/int32-from.md index 3a724dbae..b7120952d 100644 --- a/query-languages/m/int32-from.md +++ b/query-languages/m/int32-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Int32.From" -title: "Int32.From | Microsoft Docs" +title: "Int32.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/int64-from.md b/query-languages/m/int64-from.md index 75774e8ab..127099e49 100644 --- a/query-languages/m/int64-from.md +++ b/query-languages/m/int64-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Int64.From" -title: "Int64.From | Microsoft Docs" +title: "Int64.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index 5afa32fa9..859304593 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Int8.From" -title: "Int8.From | Microsoft Docs" +title: "Int8.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index a526dda7a..b034e3bd1 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ItemExpression.From" -title: "ItemExpression.From | Microsoft Docs" +title: "ItemExpression.From" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/itemexpression-item.md b/query-languages/m/itemexpression-item.md index d2f58e162..cd0cf009b 100644 --- a/query-languages/m/itemexpression-item.md +++ b/query-languages/m/itemexpression-item.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ItemExpression.Item" -title: "ItemExpression.Item | Microsoft Docs" +title: "ItemExpression.Item" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/joinalgorithm-type.md b/query-languages/m/joinalgorithm-type.md index ee08dadc0..eaecf8abe 100644 --- a/query-languages/m/joinalgorithm-type.md +++ b/query-languages/m/joinalgorithm-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: JoinAlgorithm.Type" -title: "JoinAlgorithm.Type | Microsoft Docs" +title: "JoinAlgorithm.Type" ms.date: 5/16/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/joinkind-type.md b/query-languages/m/joinkind-type.md index 37b4ef96b..75421cae4 100644 --- a/query-languages/m/joinkind-type.md +++ b/query-languages/m/joinkind-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: JoinKind.Type" -title: "JoinKind.Type | Microsoft Docs" +title: "JoinKind.Type" ms.date: 5/16/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/joinside-type.md b/query-languages/m/joinside-type.md index e9404699a..83403d9b1 100644 --- a/query-languages/m/joinside-type.md +++ b/query-languages/m/joinside-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: JoinSide.Type" -title: "JoinSide.Type | Microsoft Docs" +title: "JoinSide.Type" ms.date: 5/16/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/json-document.md b/query-languages/m/json-document.md index 71a976a5b..9c48bda59 100644 --- a/query-languages/m/json-document.md +++ b/query-languages/m/json-document.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Json.Document" -title: "Json.Document | Microsoft Docs" +title: "Json.Document" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/json-fromvalue.md b/query-languages/m/json-fromvalue.md index 8eda6037b..eebfbd2b7 100644 --- a/query-languages/m/json-fromvalue.md +++ b/query-languages/m/json-fromvalue.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Json.FromValue" -title: "Json.FromValue | Microsoft Docs" +title: "Json.FromValue" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/limitclausekind-type.md b/query-languages/m/limitclausekind-type.md index 604de89b0..a186c7629 100644 --- a/query-languages/m/limitclausekind-type.md +++ b/query-languages/m/limitclausekind-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LimitClauseKind.Type" -title: "LimitClauseKind.Type | Microsoft Docs" +title: "LimitClauseKind.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index b9f65543d..4611496f0 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Lines.FromBinary" -title: "Lines.FromBinary | Microsoft Docs" +title: "Lines.FromBinary" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index 9083551ed..21b29183c 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Lines.FromText" -title: "Lines.FromText | Microsoft Docs" +title: "Lines.FromText" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/lines-functions.md b/query-languages/m/lines-functions.md index 6508c88e1..e23732d6f 100644 --- a/query-languages/m/lines-functions.md +++ b/query-languages/m/lines-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Lines functions" -title: "Lines functions | Microsoft Docs" +title: "Lines functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/lines-tobinary.md b/query-languages/m/lines-tobinary.md index e205cd89b..7cbe7717f 100644 --- a/query-languages/m/lines-tobinary.md +++ b/query-languages/m/lines-tobinary.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Lines.ToBinary" -title: "Lines.ToBinary | Microsoft Docs" +title: "Lines.ToBinary" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/lines-totext.md b/query-languages/m/lines-totext.md index 25feb7fb6..80692ae93 100644 --- a/query-languages/m/lines-totext.md +++ b/query-languages/m/lines-totext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Lines.ToText" -title: "Lines.ToText | Microsoft Docs" +title: "Lines.ToText" ms.date: 7/30/2019 ms.service: powerquery diff --git a/query-languages/m/list-accumulate.md b/query-languages/m/list-accumulate.md index 36588db22..a065cf1b8 100644 --- a/query-languages/m/list-accumulate.md +++ b/query-languages/m/list-accumulate.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Accumulate" -title: "List.Accumulate | Microsoft Docs" +title: "List.Accumulate" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-alltrue.md b/query-languages/m/list-alltrue.md index e7a3dfe9a..40bcc3f60 100644 --- a/query-languages/m/list-alltrue.md +++ b/query-languages/m/list-alltrue.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.AllTrue" -title: "List.AllTrue | Microsoft Docs" +title: "List.AllTrue" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-alternate.md b/query-languages/m/list-alternate.md index 608b3ab68..221a5fb1a 100644 --- a/query-languages/m/list-alternate.md +++ b/query-languages/m/list-alternate.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Alternate" -title: "List.Alternate | Microsoft Docs" +title: "List.Alternate" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/list-anytrue.md b/query-languages/m/list-anytrue.md index 5210c64e2..b149771e1 100644 --- a/query-languages/m/list-anytrue.md +++ b/query-languages/m/list-anytrue.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.AnyTrue" -title: "List.AnyTrue | Microsoft Docs" +title: "List.AnyTrue" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-average.md b/query-languages/m/list-average.md index c6b615c6b..7dc3b10c0 100644 --- a/query-languages/m/list-average.md +++ b/query-languages/m/list-average.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Average" -title: "List.Average | Microsoft Docs" +title: "List.Average" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-buffer.md b/query-languages/m/list-buffer.md index b4a26f056..c4ecb8069 100644 --- a/query-languages/m/list-buffer.md +++ b/query-languages/m/list-buffer.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Buffer" -title: "List.Buffer | Microsoft Docs" +title: "List.Buffer" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-combine.md b/query-languages/m/list-combine.md index 2b65ddb3a..e79f62181 100644 --- a/query-languages/m/list-combine.md +++ b/query-languages/m/list-combine.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Combine" -title: "List.Combine | Microsoft Docs" +title: "List.Combine" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-conformtopagereader.md b/query-languages/m/list-conformtopagereader.md index 01c5fdb35..b2679c37e 100644 --- a/query-languages/m/list-conformtopagereader.md +++ b/query-languages/m/list-conformtopagereader.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.ConformToPageReader" -title: "List.ConformToPageReader | Microsoft Docs" +title: "List.ConformToPageReader" ms.date: 8/21/2020 ms.service: powerquery diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index 613d39872..5f2eefe80 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Contains" -title: "List.Contains | Microsoft Docs" +title: "List.Contains" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index d804c4f41..c90591fa8 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.ContainsAll" -title: "List.ContainsAll | Microsoft Docs" +title: "List.ContainsAll" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index eabf70ec3..15c2998de 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.ContainsAny" -title: "List.ContainsAny | Microsoft Docs" +title: "List.ContainsAny" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-count.md b/query-languages/m/list-count.md index 37b1519a8..d8ad3bb06 100644 --- a/query-languages/m/list-count.md +++ b/query-languages/m/list-count.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Count" -title: "List.Count | Microsoft Docs" +title: "List.Count" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-covariance.md b/query-languages/m/list-covariance.md index 13da9b2fd..308de93fa 100644 --- a/query-languages/m/list-covariance.md +++ b/query-languages/m/list-covariance.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Covariance" -title: "List.Covariance | Microsoft Docs" +title: "List.Covariance" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-dates.md b/query-languages/m/list-dates.md index acca43fb5..c9946a94f 100644 --- a/query-languages/m/list-dates.md +++ b/query-languages/m/list-dates.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Dates" -title: "List.Dates | Microsoft Docs" +title: "List.Dates" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-datetimes.md b/query-languages/m/list-datetimes.md index dbf3448d8..eb06b80b3 100644 --- a/query-languages/m/list-datetimes.md +++ b/query-languages/m/list-datetimes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.DateTimes" -title: "List.DateTimes | Microsoft Docs" +title: "List.DateTimes" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-datetimezones.md b/query-languages/m/list-datetimezones.md index 9c2c3258c..e4e488c0c 100644 --- a/query-languages/m/list-datetimezones.md +++ b/query-languages/m/list-datetimezones.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.DateTimeZones" -title: "List.DateTimeZones | Microsoft Docs" +title: "List.DateTimeZones" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-difference.md b/query-languages/m/list-difference.md index 63e58e2d7..2dc52c6cf 100644 --- a/query-languages/m/list-difference.md +++ b/query-languages/m/list-difference.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Difference" -title: "List.Difference | Microsoft Docs" +title: "List.Difference" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index cfe0cd660..a9df78beb 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Distinct" -title: "List.Distinct | Microsoft Docs" +title: "List.Distinct" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-durations.md b/query-languages/m/list-durations.md index 1e89a4bb7..ce567bf0d 100644 --- a/query-languages/m/list-durations.md +++ b/query-languages/m/list-durations.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Durations" -title: "List.Durations | Microsoft Docs" +title: "List.Durations" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-findtext.md b/query-languages/m/list-findtext.md index b3fcf00f9..9b963a479 100644 --- a/query-languages/m/list-findtext.md +++ b/query-languages/m/list-findtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.FindText" -title: "List.FindText | Microsoft Docs" +title: "List.FindText" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-first.md b/query-languages/m/list-first.md index 76d373f1e..22e3c4536 100644 --- a/query-languages/m/list-first.md +++ b/query-languages/m/list-first.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.First" -title: "List.First | Microsoft Docs" +title: "List.First" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-firstn.md b/query-languages/m/list-firstn.md index 7c8768c24..32da35fbc 100644 --- a/query-languages/m/list-firstn.md +++ b/query-languages/m/list-firstn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.FirstN" -title: "List.FirstN | Microsoft Docs" +title: "List.FirstN" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index d5d7e1c2b..bc3dd0da4 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List functions" -title: "List functions | Microsoft Docs" +title: "List functions" ms.date: 7/19/2022 ms.service: powerquery diff --git a/query-languages/m/list-generate.md b/query-languages/m/list-generate.md index 5c96a71c1..34fa039e0 100644 --- a/query-languages/m/list-generate.md +++ b/query-languages/m/list-generate.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Generate" -title: "List.Generate | Microsoft Docs" +title: "List.Generate" ms.date: 7/19/2022 ms.service: powerquery diff --git a/query-languages/m/list-insertrange.md b/query-languages/m/list-insertrange.md index 50f6aaf2f..28b932093 100644 --- a/query-languages/m/list-insertrange.md +++ b/query-languages/m/list-insertrange.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.InsertRange" -title: "List.InsertRange | Microsoft Docs" +title: "List.InsertRange" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-intersect.md b/query-languages/m/list-intersect.md index 4d991b460..02cd143b1 100644 --- a/query-languages/m/list-intersect.md +++ b/query-languages/m/list-intersect.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Intersect" -title: "List.Intersect | Microsoft Docs" +title: "List.Intersect" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-isdistinct.md b/query-languages/m/list-isdistinct.md index c6a95e0ca..aa1019d69 100644 --- a/query-languages/m/list-isdistinct.md +++ b/query-languages/m/list-isdistinct.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.IsDistinct" -title: "List.IsDistinct | Microsoft Docs" +title: "List.IsDistinct" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-isempty.md b/query-languages/m/list-isempty.md index d6ebe67e0..e6a4c553e 100644 --- a/query-languages/m/list-isempty.md +++ b/query-languages/m/list-isempty.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.IsEmpty" -title: "List.IsEmpty | Microsoft Docs" +title: "List.IsEmpty" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-last.md b/query-languages/m/list-last.md index 389a44a9e..6705c81e3 100644 --- a/query-languages/m/list-last.md +++ b/query-languages/m/list-last.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Last" -title: "List.Last | Microsoft Docs" +title: "List.Last" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-lastn.md b/query-languages/m/list-lastn.md index 8c2c3f446..971b87ccb 100644 --- a/query-languages/m/list-lastn.md +++ b/query-languages/m/list-lastn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.LastN" -title: "List.LastN | Microsoft Docs" +title: "List.LastN" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-matchesall.md b/query-languages/m/list-matchesall.md index 9928f3f47..3cbae4076 100644 --- a/query-languages/m/list-matchesall.md +++ b/query-languages/m/list-matchesall.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.MatchesAll" -title: "List.MatchesAll | Microsoft Docs" +title: "List.MatchesAll" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-matchesany.md b/query-languages/m/list-matchesany.md index e8f4cc68a..12f3de5fc 100644 --- a/query-languages/m/list-matchesany.md +++ b/query-languages/m/list-matchesany.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.MatchesAny" -title: "List.MatchesAny | Microsoft Docs" +title: "List.MatchesAny" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-max.md b/query-languages/m/list-max.md index 6b484444e..3dcb2072c 100644 --- a/query-languages/m/list-max.md +++ b/query-languages/m/list-max.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Max" -title: "List.Max | Microsoft Docs" +title: "List.Max" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-maxn.md b/query-languages/m/list-maxn.md index 1fb961e4f..ec6692bd9 100644 --- a/query-languages/m/list-maxn.md +++ b/query-languages/m/list-maxn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.MaxN" -title: "List.MaxN | Microsoft Docs" +title: "List.MaxN" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/list-median.md b/query-languages/m/list-median.md index 881b1323e..1be1286af 100644 --- a/query-languages/m/list-median.md +++ b/query-languages/m/list-median.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Median" -title: "List.Median | Microsoft Docs" +title: "List.Median" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-min.md b/query-languages/m/list-min.md index b4032e911..258d9c5fd 100644 --- a/query-languages/m/list-min.md +++ b/query-languages/m/list-min.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Min" -title: "List.Min | Microsoft Docs" +title: "List.Min" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-minn.md b/query-languages/m/list-minn.md index a6aba471f..d5e2af1cf 100644 --- a/query-languages/m/list-minn.md +++ b/query-languages/m/list-minn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.MinN" -title: "List.MinN | Microsoft Docs" +title: "List.MinN" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/list-mode.md b/query-languages/m/list-mode.md index 585b5564e..779770845 100644 --- a/query-languages/m/list-mode.md +++ b/query-languages/m/list-mode.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Mode" -title: "List.Mode | Microsoft Docs" +title: "List.Mode" ms.date: 7/15/2022 ms.service: powerquery diff --git a/query-languages/m/list-modes.md b/query-languages/m/list-modes.md index cbbee7616..48ab4e52b 100644 --- a/query-languages/m/list-modes.md +++ b/query-languages/m/list-modes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Modes" -title: "List.Modes | Microsoft Docs" +title: "List.Modes" ms.date: 7/15/2022 ms.service: powerquery diff --git a/query-languages/m/list-nonnullcount.md b/query-languages/m/list-nonnullcount.md index a0ce2919b..915a2d260 100644 --- a/query-languages/m/list-nonnullcount.md +++ b/query-languages/m/list-nonnullcount.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.NonNullCount" -title: "List.NonNullCount | Microsoft Docs" +title: "List.NonNullCount" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/list-numbers.md b/query-languages/m/list-numbers.md index e56ffb2b2..e03ea4c51 100644 --- a/query-languages/m/list-numbers.md +++ b/query-languages/m/list-numbers.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Numbers" -title: "List.Numbers | Microsoft Docs" +title: "List.Numbers" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-percentile.md b/query-languages/m/list-percentile.md index 81ad19347..d2a0f60c2 100644 --- a/query-languages/m/list-percentile.md +++ b/query-languages/m/list-percentile.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Percentile" -title: "List.Percentile | Microsoft Docs" +title: "List.Percentile" ms.date: 3/11/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index d36311be4..efc4f5d41 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.PositionOf" -title: "List.PositionOf | Microsoft Docs" +title: "List.PositionOf" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index 3250e8505..5af85eb3b 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.PositionOfAny" -title: "List.PositionOfAny | Microsoft Docs" +title: "List.PositionOfAny" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-positions.md b/query-languages/m/list-positions.md index 8222ffca1..de01c439e 100644 --- a/query-languages/m/list-positions.md +++ b/query-languages/m/list-positions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Positions" -title: "List.Positions | Microsoft Docs" +title: "List.Positions" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-product.md b/query-languages/m/list-product.md index a08a7ed30..808eb03aa 100644 --- a/query-languages/m/list-product.md +++ b/query-languages/m/list-product.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Product" -title: "List.Product | Microsoft Docs" +title: "List.Product" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-random.md b/query-languages/m/list-random.md index 3feb33979..6f0e64ce0 100644 --- a/query-languages/m/list-random.md +++ b/query-languages/m/list-random.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Random" -title: "List.Random | Microsoft Docs" +title: "List.Random" ms.date: 3/8/2022 ms.service: powerquery diff --git a/query-languages/m/list-range.md b/query-languages/m/list-range.md index f3d14e617..d7c06e89d 100644 --- a/query-languages/m/list-range.md +++ b/query-languages/m/list-range.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Range" -title: "List.Range | Microsoft Docs" +title: "List.Range" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-removefirstn.md b/query-languages/m/list-removefirstn.md index 8b921d8a8..5c9e4894e 100644 --- a/query-languages/m/list-removefirstn.md +++ b/query-languages/m/list-removefirstn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.RemoveFirstN" -title: "List.RemoveFirstN | Microsoft Docs" +title: "List.RemoveFirstN" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-removeitems.md b/query-languages/m/list-removeitems.md index 7af8e1811..05873759b 100644 --- a/query-languages/m/list-removeitems.md +++ b/query-languages/m/list-removeitems.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.RemoveItems" -title: "List.RemoveItems | Microsoft Docs" +title: "List.RemoveItems" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-removelastn.md b/query-languages/m/list-removelastn.md index 75edb4d57..779576dde 100644 --- a/query-languages/m/list-removelastn.md +++ b/query-languages/m/list-removelastn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.RemoveLastN" -title: "List.RemoveLastN | Microsoft Docs" +title: "List.RemoveLastN" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-removematchingitems.md b/query-languages/m/list-removematchingitems.md index 5df3696a9..2d8199220 100644 --- a/query-languages/m/list-removematchingitems.md +++ b/query-languages/m/list-removematchingitems.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.RemoveMatchingItems" -title: "List.RemoveMatchingItems | Microsoft Docs" +title: "List.RemoveMatchingItems" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-removenulls.md b/query-languages/m/list-removenulls.md index d06e95e2f..6f8280452 100644 --- a/query-languages/m/list-removenulls.md +++ b/query-languages/m/list-removenulls.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.RemoveNulls" -title: "List.RemoveNulls | Microsoft Docs" +title: "List.RemoveNulls" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-removerange.md b/query-languages/m/list-removerange.md index 9a2cee57d..83d37803b 100644 --- a/query-languages/m/list-removerange.md +++ b/query-languages/m/list-removerange.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.RemoveRange" -title: "List.RemoveRange | Microsoft Docs" +title: "List.RemoveRange" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-repeat.md b/query-languages/m/list-repeat.md index 31d4b1455..e4d49cb86 100644 --- a/query-languages/m/list-repeat.md +++ b/query-languages/m/list-repeat.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Repeat" -title: "List.Repeat | Microsoft Docs" +title: "List.Repeat" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-replacematchingitems.md b/query-languages/m/list-replacematchingitems.md index 77e84a90d..db784f800 100644 --- a/query-languages/m/list-replacematchingitems.md +++ b/query-languages/m/list-replacematchingitems.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.ReplaceMatchingItems" -title: "List.ReplaceMatchingItems | Microsoft Docs" +title: "List.ReplaceMatchingItems" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-replacerange.md b/query-languages/m/list-replacerange.md index e04fd8bd2..f44ed437c 100644 --- a/query-languages/m/list-replacerange.md +++ b/query-languages/m/list-replacerange.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.ReplaceRange" -title: "List.ReplaceRange | Microsoft Docs" +title: "List.ReplaceRange" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-replacevalue.md b/query-languages/m/list-replacevalue.md index 02f9486a0..6286e6c1f 100644 --- a/query-languages/m/list-replacevalue.md +++ b/query-languages/m/list-replacevalue.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.ReplaceValue" -title: "List.ReplaceValue | Microsoft Docs" +title: "List.ReplaceValue" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-reverse.md b/query-languages/m/list-reverse.md index baefca5b4..8c6be4159 100644 --- a/query-languages/m/list-reverse.md +++ b/query-languages/m/list-reverse.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Reverse" -title: "List.Reverse | Microsoft Docs" +title: "List.Reverse" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-select.md b/query-languages/m/list-select.md index 5e8d3111e..e8f95ab2c 100644 --- a/query-languages/m/list-select.md +++ b/query-languages/m/list-select.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Select" -title: "List.Select | Microsoft Docs" +title: "List.Select" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-single.md b/query-languages/m/list-single.md index 98172a7f3..18be279a4 100644 --- a/query-languages/m/list-single.md +++ b/query-languages/m/list-single.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Single" -title: "List.Single | Microsoft Docs" +title: "List.Single" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-singleordefault.md b/query-languages/m/list-singleordefault.md index cf821ee8c..c09db7243 100644 --- a/query-languages/m/list-singleordefault.md +++ b/query-languages/m/list-singleordefault.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.SingleOrDefault" -title: "List.SingleOrDefault | Microsoft Docs" +title: "List.SingleOrDefault" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-skip.md b/query-languages/m/list-skip.md index e58fe0279..25e902dfc 100644 --- a/query-languages/m/list-skip.md +++ b/query-languages/m/list-skip.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Skip" -title: "List.Skip | Microsoft Docs" +title: "List.Skip" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-sort.md b/query-languages/m/list-sort.md index 24e73707a..23540cc27 100644 --- a/query-languages/m/list-sort.md +++ b/query-languages/m/list-sort.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Sort" -title: "List.Sort | Microsoft Docs" +title: "List.Sort" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-split.md b/query-languages/m/list-split.md index 9936b696a..4fbf93e7c 100644 --- a/query-languages/m/list-split.md +++ b/query-languages/m/list-split.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Split" -title: "List.Split | Microsoft Docs" +title: "List.Split" ms.date: 11/17/2021 ms.service: powerquery diff --git a/query-languages/m/list-standarddeviation.md b/query-languages/m/list-standarddeviation.md index 477c86c04..cb7c72a50 100644 --- a/query-languages/m/list-standarddeviation.md +++ b/query-languages/m/list-standarddeviation.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.StandardDeviation" -title: "List.StandardDeviation | Microsoft Docs" +title: "List.StandardDeviation" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-sum.md b/query-languages/m/list-sum.md index 4348fb515..c7e352348 100644 --- a/query-languages/m/list-sum.md +++ b/query-languages/m/list-sum.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Sum" -title: "List.Sum | Microsoft Docs" +title: "List.Sum" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/list-times.md b/query-languages/m/list-times.md index 96c299648..df8e7800e 100644 --- a/query-languages/m/list-times.md +++ b/query-languages/m/list-times.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Times" -title: "List.Times | Microsoft Docs" +title: "List.Times" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-transform.md b/query-languages/m/list-transform.md index f1ad6ed6b..89ae169a6 100644 --- a/query-languages/m/list-transform.md +++ b/query-languages/m/list-transform.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Transform" -title: "List.Transform | Microsoft Docs" +title: "List.Transform" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-transformmany.md b/query-languages/m/list-transformmany.md index 817d06206..b7d9198ab 100644 --- a/query-languages/m/list-transformmany.md +++ b/query-languages/m/list-transformmany.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.TransformMany" -title: "List.TransformMany | Microsoft Docs" +title: "List.TransformMany" ms.date: 10/18/2021 ms.service: powerquery diff --git a/query-languages/m/list-union.md b/query-languages/m/list-union.md index e07e41753..46954e56c 100644 --- a/query-languages/m/list-union.md +++ b/query-languages/m/list-union.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Union" -title: "List.Union | Microsoft Docs" +title: "List.Union" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/list-zip.md b/query-languages/m/list-zip.md index 330dfc766..41687eb11 100644 --- a/query-languages/m/list-zip.md +++ b/query-languages/m/list-zip.md @@ -1,6 +1,6 @@ --- description: "Learn more about: List.Zip" -title: "List.Zip | Microsoft Docs" +title: "List.Zip" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/logical-from.md b/query-languages/m/logical-from.md index 051632a81..30ab0fa7d 100644 --- a/query-languages/m/logical-from.md +++ b/query-languages/m/logical-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Logical.From" -title: "Logical.From | Microsoft Docs" +title: "Logical.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/logical-fromtext.md b/query-languages/m/logical-fromtext.md index 30aa707e1..f90759515 100644 --- a/query-languages/m/logical-fromtext.md +++ b/query-languages/m/logical-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Logical.FromText" -title: "Logical.FromText | Microsoft Docs" +title: "Logical.FromText" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/logical-functions.md b/query-languages/m/logical-functions.md index a962bf4d3..5f6f887b7 100644 --- a/query-languages/m/logical-functions.md +++ b/query-languages/m/logical-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Logical functions" -title: "Logical functions | Microsoft Docs" +title: "Logical functions" ms.date: 5/16/2020 ms.service: powerquery diff --git a/query-languages/m/logical-totext.md b/query-languages/m/logical-totext.md index aa61c673f..e6cbfc97e 100644 --- a/query-languages/m/logical-totext.md +++ b/query-languages/m/logical-totext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Logical.ToText" -title: "Logical.ToText | Microsoft Docs" +title: "Logical.ToText" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/metadata.md b/query-languages/m/metadata.md index cebc5759e..6e5f3fe7d 100644 --- a/query-languages/m/metadata.md +++ b/query-languages/m/metadata.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Metadata" -title: "Metadata | Microsoft Docs" +title: "Metadata" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/missingfield-type.md b/query-languages/m/missingfield-type.md index a264692e7..129cabec0 100644 --- a/query-languages/m/missingfield-type.md +++ b/query-languages/m/missingfield-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MissingField.Type" -title: "MissingField.Type | Microsoft Docs" +title: "MissingField.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/mysql-database.md b/query-languages/m/mysql-database.md index e7ac96807..c4ea434e1 100644 --- a/query-languages/m/mysql-database.md +++ b/query-languages/m/mysql-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MySQL.Database" -title: "MySQL.Database | Microsoft Docs" +title: "MySQL.Database" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/number-abs.md b/query-languages/m/number-abs.md index 74c5d79ef..075498ff3 100644 --- a/query-languages/m/number-abs.md +++ b/query-languages/m/number-abs.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Abs" -title: "Number.Abs | Microsoft Docs" +title: "Number.Abs" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-acos.md b/query-languages/m/number-acos.md index 25cb1d336..0b9ad86d0 100644 --- a/query-languages/m/number-acos.md +++ b/query-languages/m/number-acos.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Acos" -title: "Number.Acos | Microsoft Docs" +title: "Number.Acos" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-asin.md b/query-languages/m/number-asin.md index 4a962734a..bd3a006d8 100644 --- a/query-languages/m/number-asin.md +++ b/query-languages/m/number-asin.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Asin" -title: "Number.Asin | Microsoft Docs" +title: "Number.Asin" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-atan.md b/query-languages/m/number-atan.md index 8c44b2516..2dada8ffa 100644 --- a/query-languages/m/number-atan.md +++ b/query-languages/m/number-atan.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Atan" -title: "Number.Atan | Microsoft Docs" +title: "Number.Atan" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-atan2.md b/query-languages/m/number-atan2.md index 74c38fc26..a4712bf0b 100644 --- a/query-languages/m/number-atan2.md +++ b/query-languages/m/number-atan2.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Atan2" -title: "Number.Atan2 | Microsoft Docs" +title: "Number.Atan2" ms.date: 1/20/2022 ms.service: powerquery diff --git a/query-languages/m/number-bitwiseand.md b/query-languages/m/number-bitwiseand.md index d0ff920c6..b2304432c 100644 --- a/query-languages/m/number-bitwiseand.md +++ b/query-languages/m/number-bitwiseand.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.BitwiseAnd" -title: "Number.BitwiseAnd | Microsoft Docs" +title: "Number.BitwiseAnd" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-bitwisenot.md b/query-languages/m/number-bitwisenot.md index 755756682..2aa71879e 100644 --- a/query-languages/m/number-bitwisenot.md +++ b/query-languages/m/number-bitwisenot.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.BitwiseNot" -title: "Number.BitwiseNot | Microsoft Docs" +title: "Number.BitwiseNot" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-bitwiseor.md b/query-languages/m/number-bitwiseor.md index d4607d149..1ece6702e 100644 --- a/query-languages/m/number-bitwiseor.md +++ b/query-languages/m/number-bitwiseor.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.BitwiseOr" -title: "Number.BitwiseOr | Microsoft Docs" +title: "Number.BitwiseOr" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-bitwiseshiftleft.md b/query-languages/m/number-bitwiseshiftleft.md index a20080416..7da1547df 100644 --- a/query-languages/m/number-bitwiseshiftleft.md +++ b/query-languages/m/number-bitwiseshiftleft.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.BitwiseShiftLeft" -title: "Number.BitwiseShiftLeft | Microsoft Docs" +title: "Number.BitwiseShiftLeft" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-bitwiseshiftright.md b/query-languages/m/number-bitwiseshiftright.md index 11cdfa2e6..3e51fe546 100644 --- a/query-languages/m/number-bitwiseshiftright.md +++ b/query-languages/m/number-bitwiseshiftright.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.BitwiseShiftRight" -title: "Number.BitwiseShiftRight | Microsoft Docs" +title: "Number.BitwiseShiftRight" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-bitwisexor.md b/query-languages/m/number-bitwisexor.md index d066b1daa..3b5fb25ba 100644 --- a/query-languages/m/number-bitwisexor.md +++ b/query-languages/m/number-bitwisexor.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.BitwiseXor" -title: "Number.BitwiseXor | Microsoft Docs" +title: "Number.BitwiseXor" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-combinations.md b/query-languages/m/number-combinations.md index 4ac14a7f2..73939ea53 100644 --- a/query-languages/m/number-combinations.md +++ b/query-languages/m/number-combinations.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Combinations" -title: "Number.Combinations | Microsoft Docs" +title: "Number.Combinations" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-cos.md b/query-languages/m/number-cos.md index 7f0c98851..2f59b667b 100644 --- a/query-languages/m/number-cos.md +++ b/query-languages/m/number-cos.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Cos" -title: "Number.Cos | Microsoft Docs" +title: "Number.Cos" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-cosh.md b/query-languages/m/number-cosh.md index b28f9f02b..961ed7805 100644 --- a/query-languages/m/number-cosh.md +++ b/query-languages/m/number-cosh.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Cosh" -title: "Number.Cosh | Microsoft Docs" +title: "Number.Cosh" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-e.md b/query-languages/m/number-e.md index 5cb08724f..0deeb3bc2 100644 --- a/query-languages/m/number-e.md +++ b/query-languages/m/number-e.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.E" -title: "Number.E | Microsoft Docs" +title: "Number.E" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-epsilon.md b/query-languages/m/number-epsilon.md index 679c1b94d..e8788b305 100644 --- a/query-languages/m/number-epsilon.md +++ b/query-languages/m/number-epsilon.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Epsilon" -title: "Number.Epsilon | Microsoft Docs" +title: "Number.Epsilon" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-exp.md b/query-languages/m/number-exp.md index ec8d07416..b351449ef 100644 --- a/query-languages/m/number-exp.md +++ b/query-languages/m/number-exp.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Exp" -title: "Number.Exp | Microsoft Docs" +title: "Number.Exp" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-factorial.md b/query-languages/m/number-factorial.md index 27a26dced..537989865 100644 --- a/query-languages/m/number-factorial.md +++ b/query-languages/m/number-factorial.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Factorial" -title: "Number.Factorial | Microsoft Docs" +title: "Number.Factorial" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-from.md b/query-languages/m/number-from.md index caaf8bedf..3c5c2bfc9 100644 --- a/query-languages/m/number-from.md +++ b/query-languages/m/number-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.From" -title: "Number.From | Microsoft Docs" +title: "Number.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/number-fromtext.md b/query-languages/m/number-fromtext.md index 61efdc735..8701987db 100644 --- a/query-languages/m/number-fromtext.md +++ b/query-languages/m/number-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.FromText" -title: "Number.FromText | Microsoft Docs" +title: "Number.FromText" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-functions.md b/query-languages/m/number-functions.md index 6dba39b2f..7360c0bca 100644 --- a/query-languages/m/number-functions.md +++ b/query-languages/m/number-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number functions" -title: "Number functions | Microsoft Docs" +title: "Number functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/number-integerdivide.md b/query-languages/m/number-integerdivide.md index bd099970c..6f4d32803 100644 --- a/query-languages/m/number-integerdivide.md +++ b/query-languages/m/number-integerdivide.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.IntegerDivide" -title: "Number.IntegerDivide | Microsoft Docs" +title: "Number.IntegerDivide" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-iseven.md b/query-languages/m/number-iseven.md index 4edfcdb38..e24dc7b6d 100644 --- a/query-languages/m/number-iseven.md +++ b/query-languages/m/number-iseven.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.IsEven" -title: "Number.IsEven | Microsoft Docs" +title: "Number.IsEven" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-isnan.md b/query-languages/m/number-isnan.md index 467a461e8..e9034bace 100644 --- a/query-languages/m/number-isnan.md +++ b/query-languages/m/number-isnan.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.IsNaN" -title: "Number.IsNaN | Microsoft Docs" +title: "Number.IsNaN" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-isodd.md b/query-languages/m/number-isodd.md index 0e71a20dc..85eee5646 100644 --- a/query-languages/m/number-isodd.md +++ b/query-languages/m/number-isodd.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.IsOdd" -title: "Number.IsOdd | Microsoft Docs" +title: "Number.IsOdd" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-ln.md b/query-languages/m/number-ln.md index 7783b61d8..9461603ca 100644 --- a/query-languages/m/number-ln.md +++ b/query-languages/m/number-ln.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Ln" -title: "Number.Ln | Microsoft Docs" +title: "Number.Ln" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/number-log.md b/query-languages/m/number-log.md index f4cc9d493..9e4c18c7f 100644 --- a/query-languages/m/number-log.md +++ b/query-languages/m/number-log.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Log" -title: "Number.Log | Microsoft Docs" +title: "Number.Log" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-log10.md b/query-languages/m/number-log10.md index 18252d129..097e6fef2 100644 --- a/query-languages/m/number-log10.md +++ b/query-languages/m/number-log10.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Log10" -title: "Number.Log10 | Microsoft Docs" +title: "Number.Log10" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-mod.md b/query-languages/m/number-mod.md index 62b540d18..c890ed301 100644 --- a/query-languages/m/number-mod.md +++ b/query-languages/m/number-mod.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Mod" -title: "Number.Mod | Microsoft Docs" +title: "Number.Mod" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-nan.md b/query-languages/m/number-nan.md index 9d8879911..0edd1a348 100644 --- a/query-languages/m/number-nan.md +++ b/query-languages/m/number-nan.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.NaN" -title: "Number.NaN | Microsoft Docs" +title: "Number.NaN" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-negativeinfinity.md b/query-languages/m/number-negativeinfinity.md index 123665c61..1981cf93f 100644 --- a/query-languages/m/number-negativeinfinity.md +++ b/query-languages/m/number-negativeinfinity.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.NegativeInfinity" -title: "Number.NegativeInfinity | Microsoft Docs" +title: "Number.NegativeInfinity" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-permutations.md b/query-languages/m/number-permutations.md index 74388c47f..ec44fb5de 100644 --- a/query-languages/m/number-permutations.md +++ b/query-languages/m/number-permutations.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Permutations" -title: "Number.Permutations | Microsoft Docs" +title: "Number.Permutations" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-pi.md b/query-languages/m/number-pi.md index a31ef9a27..01784eb45 100644 --- a/query-languages/m/number-pi.md +++ b/query-languages/m/number-pi.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.PI" -title: "Number.PI | Microsoft Docs" +title: "Number.PI" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-positiveinfinity.md b/query-languages/m/number-positiveinfinity.md index 4c9c5a622..32038990b 100644 --- a/query-languages/m/number-positiveinfinity.md +++ b/query-languages/m/number-positiveinfinity.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.PositiveInfinity" -title: "Number.PositiveInfinity | Microsoft Docs" +title: "Number.PositiveInfinity" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-power.md b/query-languages/m/number-power.md index 18a95d568..13a5c974d 100644 --- a/query-languages/m/number-power.md +++ b/query-languages/m/number-power.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Power" -title: "Number.Power | Microsoft Docs" +title: "Number.Power" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-random.md b/query-languages/m/number-random.md index ce433f65b..1cabd10d0 100644 --- a/query-languages/m/number-random.md +++ b/query-languages/m/number-random.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Random" -title: "Number.Random | Microsoft Docs" +title: "Number.Random" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-randombetween.md b/query-languages/m/number-randombetween.md index e6afcbe3a..44dfede07 100644 --- a/query-languages/m/number-randombetween.md +++ b/query-languages/m/number-randombetween.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.RandomBetween" -title: "Number.RandomBetween | Microsoft Docs" +title: "Number.RandomBetween" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-round.md b/query-languages/m/number-round.md index d208cc9a5..153b96d92 100644 --- a/query-languages/m/number-round.md +++ b/query-languages/m/number-round.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Round" -title: "Number.Round | Microsoft Docs" +title: "Number.Round" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/number-roundawayfromzero.md b/query-languages/m/number-roundawayfromzero.md index 8fa051adc..9dfb0f999 100644 --- a/query-languages/m/number-roundawayfromzero.md +++ b/query-languages/m/number-roundawayfromzero.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.RoundAwayFromZero" -title: "Number.RoundAwayFromZero | Microsoft Docs" +title: "Number.RoundAwayFromZero" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-rounddown.md b/query-languages/m/number-rounddown.md index 87a98ead0..d52cbecba 100644 --- a/query-languages/m/number-rounddown.md +++ b/query-languages/m/number-rounddown.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.RoundDown" -title: "Number.RoundDown | Microsoft Docs" +title: "Number.RoundDown" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/number-roundtowardzero.md b/query-languages/m/number-roundtowardzero.md index 44dd4e9f3..8b728a4d0 100644 --- a/query-languages/m/number-roundtowardzero.md +++ b/query-languages/m/number-roundtowardzero.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.RoundTowardZero" -title: "Number.RoundTowardZero | Microsoft Docs" +title: "Number.RoundTowardZero" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-roundup.md b/query-languages/m/number-roundup.md index 061db08a8..1fe6ea415 100644 --- a/query-languages/m/number-roundup.md +++ b/query-languages/m/number-roundup.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.RoundUp" -title: "Number.RoundUp | Microsoft Docs" +title: "Number.RoundUp" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/number-sign.md b/query-languages/m/number-sign.md index 758668093..4902c16a1 100644 --- a/query-languages/m/number-sign.md +++ b/query-languages/m/number-sign.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Sign" -title: "Number.Sign | Microsoft Docs" +title: "Number.Sign" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-sin.md b/query-languages/m/number-sin.md index d284104ae..7b4dac7dd 100644 --- a/query-languages/m/number-sin.md +++ b/query-languages/m/number-sin.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Sin" -title: "Number.Sin | Microsoft Docs" +title: "Number.Sin" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-sinh.md b/query-languages/m/number-sinh.md index f385fd6fb..a05f268ee 100644 --- a/query-languages/m/number-sinh.md +++ b/query-languages/m/number-sinh.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Sinh" -title: "Number.Sinh | Microsoft Docs" +title: "Number.Sinh" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-sqrt.md b/query-languages/m/number-sqrt.md index 6d8148776..704fe96b0 100644 --- a/query-languages/m/number-sqrt.md +++ b/query-languages/m/number-sqrt.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Sqrt" -title: "Number.Sqrt | Microsoft Docs" +title: "Number.Sqrt" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-tan.md b/query-languages/m/number-tan.md index 37c7c98f8..e1a731bac 100644 --- a/query-languages/m/number-tan.md +++ b/query-languages/m/number-tan.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Tan" -title: "Number.Tan | Microsoft Docs" +title: "Number.Tan" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/number-tanh.md b/query-languages/m/number-tanh.md index 18552a4c9..f50edb431 100644 --- a/query-languages/m/number-tanh.md +++ b/query-languages/m/number-tanh.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.Tanh" -title: "Number.Tanh | Microsoft Docs" +title: "Number.Tanh" ms.date: 7/31/2019 ms.service: powerquery diff --git a/query-languages/m/number-totext.md b/query-languages/m/number-totext.md index 9102fac14..2e9c852b6 100644 --- a/query-languages/m/number-totext.md +++ b/query-languages/m/number-totext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Number.ToText" -title: "Number.ToText | Microsoft Docs" +title: "Number.ToText" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/occurrence-type.md b/query-languages/m/occurrence-type.md index bd8d0c013..755fb384d 100644 --- a/query-languages/m/occurrence-type.md +++ b/query-languages/m/occurrence-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Occurrence.Type" -title: "Occurrence.Type | Microsoft Docs" +title: "Occurrence.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/odata-feed.md b/query-languages/m/odata-feed.md index b96332a2d..d78667391 100644 --- a/query-languages/m/odata-feed.md +++ b/query-languages/m/odata-feed.md @@ -1,6 +1,6 @@ --- description: "Learn more about: OData.Feed" -title: "OData.Feed | Microsoft Docs" +title: "OData.Feed" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/odataomitvalues-type.md b/query-languages/m/odataomitvalues-type.md index 88e9afaae..42d9dd8a7 100644 --- a/query-languages/m/odataomitvalues-type.md +++ b/query-languages/m/odataomitvalues-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ODataOmitValues.Type" -title: "ODataOmitValues.Type | Microsoft Docs" +title: "ODataOmitValues.Type" ms.date: 6/27/2022 ms.service: powerquery diff --git a/query-languages/m/odbc-datasource.md b/query-languages/m/odbc-datasource.md index 757d0bdb5..7135e7a5f 100644 --- a/query-languages/m/odbc-datasource.md +++ b/query-languages/m/odbc-datasource.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Odbc.DataSource" -title: "Odbc.DataSource | Microsoft Docs" +title: "Odbc.DataSource" ms.date: 3/14/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/odbc-inferoptions.md b/query-languages/m/odbc-inferoptions.md index 2bafbf66d..9e34504f9 100644 --- a/query-languages/m/odbc-inferoptions.md +++ b/query-languages/m/odbc-inferoptions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Odbc.InferOptions" -title: "Odbc.InferOptions | Microsoft Docs" +title: "Odbc.InferOptions" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/odbc-query.md b/query-languages/m/odbc-query.md index 3a0b55357..6ef541d2b 100644 --- a/query-languages/m/odbc-query.md +++ b/query-languages/m/odbc-query.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Odbc.Query" -title: "Odbc.Query | Microsoft Docs" +title: "Odbc.Query" ms.date: 3/14/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/oledb-datasource.md b/query-languages/m/oledb-datasource.md index 339724549..1d33b368e 100644 --- a/query-languages/m/oledb-datasource.md +++ b/query-languages/m/oledb-datasource.md @@ -1,6 +1,6 @@ --- description: "Learn more about: OleDb.DataSource" -title: "OleDb.DataSource | Microsoft Docs" +title: "OleDb.DataSource" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/oledb-query.md b/query-languages/m/oledb-query.md index 27ab9c527..8508436b5 100644 --- a/query-languages/m/oledb-query.md +++ b/query-languages/m/oledb-query.md @@ -1,6 +1,6 @@ --- description: "Learn more about: OleDb.Query" -title: "OleDb.Query | Microsoft Docs" +title: "OleDb.Query" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index c6fc0b3ac..52f3480dd 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Operators" -title: "Operators | Microsoft Docs" +title: "Operators" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/oracle-database.md b/query-languages/m/oracle-database.md index 7e23b27a5..e8b6b1aaf 100644 --- a/query-languages/m/oracle-database.md +++ b/query-languages/m/oracle-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Oracle.Database" -title: "Oracle.Database | Microsoft Docs" +title: "Oracle.Database" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/order-type.md b/query-languages/m/order-type.md index 66250ac7d..5fe4e1a18 100644 --- a/query-languages/m/order-type.md +++ b/query-languages/m/order-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Order.Type" -title: "Order.Type | Microsoft Docs" +title: "Order.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/pdf-tables.md b/query-languages/m/pdf-tables.md index 66165b214..a009784d3 100644 --- a/query-languages/m/pdf-tables.md +++ b/query-languages/m/pdf-tables.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Pdf.Tables" -title: "Pdf.Tables | Microsoft Docs" +title: "Pdf.Tables" ms.date: 3/14/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/percentage-from.md b/query-languages/m/percentage-from.md index 77dd1a2f8..85c7a073f 100644 --- a/query-languages/m/percentage-from.md +++ b/query-languages/m/percentage-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Percentage.From" -title: "Percentage.From | Microsoft Docs" +title: "Percentage.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/percentilemode-type.md b/query-languages/m/percentilemode-type.md index fe6b0cb7f..d478f0b40 100644 --- a/query-languages/m/percentilemode-type.md +++ b/query-languages/m/percentilemode-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PercentileMode.Type" -title: "PercentileMode.Type | Microsoft Docs" +title: "PercentileMode.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/postgresql-database.md b/query-languages/m/postgresql-database.md index 619f828c1..244386584 100644 --- a/query-languages/m/postgresql-database.md +++ b/query-languages/m/postgresql-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PostgreSQL.Database" -title: "PostgreSQL.Database | Microsoft Docs" +title: "PostgreSQL.Database" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/power-query-m-function-reference.md b/query-languages/m/power-query-m-function-reference.md index 583dfb510..7cf3447f0 100644 --- a/query-languages/m/power-query-m-function-reference.md +++ b/query-languages/m/power-query-m-function-reference.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Power Query M function reference" -title: "Power Query M function reference | Microsoft Docs" +title: "Power Query M function reference" ms.date: 7/31/2019 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index 84a2f33f2..e4389b1e0 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Power Query M language specification" -title: "Power Query M language specification | Microsoft Docs" +title: "Power Query M language specification" ms.date: 4/7/2020 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index 3e712b10c..061a9ede9 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Types in the Power Query M formula language" -title: "Power Query M type system | Microsoft Docs" +title: "Power Query M type system" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/precision-type.md b/query-languages/m/precision-type.md index ab29b8a93..f7ea5d04c 100644 --- a/query-languages/m/precision-type.md +++ b/query-languages/m/precision-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Precision.Type" -title: "Precision.Type | Microsoft Docs" +title: "Precision.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index f22481d2a..fe4dec48e 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Quick tour of the Power Query M formula language" -title: "Quick tour | Microsoft Docs" +title: "Quick tour" ms.date: 12/12/2018 ms.service: powerquery ms.topic: conceptual diff --git a/query-languages/m/quotestyle-type.md b/query-languages/m/quotestyle-type.md index a5f41856e..a568a534f 100644 --- a/query-languages/m/quotestyle-type.md +++ b/query-languages/m/quotestyle-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: QuoteStyle.Type" -title: "QuoteStyle.Type | Microsoft Docs" +title: "QuoteStyle.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/rankkind-type.md b/query-languages/m/rankkind-type.md index e8c120c2a..1c076a3a9 100644 --- a/query-languages/m/rankkind-type.md +++ b/query-languages/m/rankkind-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RankKind.Type" -title: "RankKind.Type | Microsoft Docs" +title: "RankKind.Type" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/rdata-frombinary.md b/query-languages/m/rdata-frombinary.md index a6ab68a9a..5d9fe421c 100644 --- a/query-languages/m/rdata-frombinary.md +++ b/query-languages/m/rdata-frombinary.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RData.FromBinary" -title: "RData.FromBinary | Microsoft Docs" +title: "RData.FromBinary" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/record-addfield.md b/query-languages/m/record-addfield.md index d036f22d8..746f65986 100644 --- a/query-languages/m/record-addfield.md +++ b/query-languages/m/record-addfield.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.AddField" -title: "Record.AddField | Microsoft Docs" +title: "Record.AddField" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-combine.md b/query-languages/m/record-combine.md index fdf20531b..823d75284 100644 --- a/query-languages/m/record-combine.md +++ b/query-languages/m/record-combine.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.Combine" -title: "Record.Combine | Microsoft Docs" +title: "Record.Combine" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-field.md b/query-languages/m/record-field.md index a75fdc22e..7023e5dd8 100644 --- a/query-languages/m/record-field.md +++ b/query-languages/m/record-field.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.Field" -title: "Record.Field | Microsoft Docs" +title: "Record.Field" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/record-fieldcount.md b/query-languages/m/record-fieldcount.md index 7f8e58366..0148142b5 100644 --- a/query-languages/m/record-fieldcount.md +++ b/query-languages/m/record-fieldcount.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.FieldCount" -title: "Record.FieldCount | Microsoft Docs" +title: "Record.FieldCount" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/record-fieldnames.md b/query-languages/m/record-fieldnames.md index c64c9dfac..ef95f471c 100644 --- a/query-languages/m/record-fieldnames.md +++ b/query-languages/m/record-fieldnames.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.FieldNames" -title: "Record.FieldNames | Microsoft Docs" +title: "Record.FieldNames" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-fieldordefault.md b/query-languages/m/record-fieldordefault.md index 09d5ee5da..e8fcb3f14 100644 --- a/query-languages/m/record-fieldordefault.md +++ b/query-languages/m/record-fieldordefault.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.FieldOrDefault" -title: "Record.FieldOrDefault | Microsoft Docs" +title: "Record.FieldOrDefault" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/record-fieldvalues.md b/query-languages/m/record-fieldvalues.md index 22ae62474..0a22a67a1 100644 --- a/query-languages/m/record-fieldvalues.md +++ b/query-languages/m/record-fieldvalues.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.FieldValues" -title: "Record.FieldValues | Microsoft Docs" +title: "Record.FieldValues" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-fromlist.md b/query-languages/m/record-fromlist.md index 995e92ded..0b4dde65a 100644 --- a/query-languages/m/record-fromlist.md +++ b/query-languages/m/record-fromlist.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.FromList" -title: "Record.FromList | Microsoft Docs" +title: "Record.FromList" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-fromtable.md b/query-languages/m/record-fromtable.md index 1a0e3ed7b..ad0dedd17 100644 --- a/query-languages/m/record-fromtable.md +++ b/query-languages/m/record-fromtable.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.FromTable" -title: "Record.FromTable | Microsoft Docs" +title: "Record.FromTable" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-functions.md b/query-languages/m/record-functions.md index a5531efaa..c659b1fa7 100644 --- a/query-languages/m/record-functions.md +++ b/query-languages/m/record-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record functions" -title: "Record functions | Microsoft Docs" +title: "Record functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/record-hasfields.md b/query-languages/m/record-hasfields.md index 0a6ad425e..7db12373a 100644 --- a/query-languages/m/record-hasfields.md +++ b/query-languages/m/record-hasfields.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.HasFields" -title: "Record.HasFields | Microsoft Docs" +title: "Record.HasFields" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/record-removefields.md b/query-languages/m/record-removefields.md index 4fc3df763..9619d9b72 100644 --- a/query-languages/m/record-removefields.md +++ b/query-languages/m/record-removefields.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.RemoveFields" -title: "Record.RemoveFields | Microsoft Docs" +title: "Record.RemoveFields" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-renamefields.md b/query-languages/m/record-renamefields.md index 15250ce71..e953df5eb 100644 --- a/query-languages/m/record-renamefields.md +++ b/query-languages/m/record-renamefields.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.RenameFields" -title: "Record.RenameFields | Microsoft Docs" +title: "Record.RenameFields" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-reorderfields.md b/query-languages/m/record-reorderfields.md index 662c8d94f..332d48077 100644 --- a/query-languages/m/record-reorderfields.md +++ b/query-languages/m/record-reorderfields.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.ReorderFields" -title: "Record.ReorderFields | Microsoft Docs" +title: "Record.ReorderFields" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-selectfields.md b/query-languages/m/record-selectfields.md index 23f9f2bb6..7e779af6a 100644 --- a/query-languages/m/record-selectfields.md +++ b/query-languages/m/record-selectfields.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.SelectFields" -title: "Record.SelectFields | Microsoft Docs" +title: "Record.SelectFields" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-tolist.md b/query-languages/m/record-tolist.md index 9965fa12c..6abf1dbf7 100644 --- a/query-languages/m/record-tolist.md +++ b/query-languages/m/record-tolist.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.ToList" -title: "Record.ToList | Microsoft Docs" +title: "Record.ToList" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-totable.md b/query-languages/m/record-totable.md index 836462233..9824239bc 100644 --- a/query-languages/m/record-totable.md +++ b/query-languages/m/record-totable.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.ToTable" -title: "Record.ToTable | Microsoft Docs" +title: "Record.ToTable" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/record-transformfields.md b/query-languages/m/record-transformfields.md index 4ee399313..ecb365179 100644 --- a/query-languages/m/record-transformfields.md +++ b/query-languages/m/record-transformfields.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Record.TransformFields" -title: "Record.TransformFields | Microsoft Docs" +title: "Record.TransformFields" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/relativeposition-type.md b/query-languages/m/relativeposition-type.md index 248ff4716..a53ffed89 100644 --- a/query-languages/m/relativeposition-type.md +++ b/query-languages/m/relativeposition-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RelativePosition.Type" -title: "RelativePosition.Type | Microsoft Docs" +title: "RelativePosition.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/replacer-functions.md b/query-languages/m/replacer-functions.md index 862a3d0f8..020d0fb04 100644 --- a/query-languages/m/replacer-functions.md +++ b/query-languages/m/replacer-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Replacer functions" -title: "Replacer functions | Microsoft Docs" +title: "Replacer functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/replacer-replacetext.md b/query-languages/m/replacer-replacetext.md index ef644c5ff..a9f1f5a77 100644 --- a/query-languages/m/replacer-replacetext.md +++ b/query-languages/m/replacer-replacetext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Replacer.ReplaceText" -title: "Replacer.ReplaceText | Microsoft Docs" +title: "Replacer.ReplaceText" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/replacer-replacevalue.md b/query-languages/m/replacer-replacevalue.md index e21a92001..58fd0d976 100644 --- a/query-languages/m/replacer-replacevalue.md +++ b/query-languages/m/replacer-replacevalue.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Replacer.ReplaceValue" -title: "Replacer.ReplaceValue | Microsoft Docs" +title: "Replacer.ReplaceValue" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/roundingmode-type.md b/query-languages/m/roundingmode-type.md index d56bfa971..e7c50c554 100644 --- a/query-languages/m/roundingmode-type.md +++ b/query-languages/m/roundingmode-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RoundingMode.Type" -title: "RoundingMode.Type | Microsoft Docs" +title: "RoundingMode.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/rowexpression-column.md b/query-languages/m/rowexpression-column.md index 08a16da8e..54f6c7566 100644 --- a/query-languages/m/rowexpression-column.md +++ b/query-languages/m/rowexpression-column.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RowExpression.Column" -title: "RowExpression.Column | Microsoft Docs" +title: "RowExpression.Column" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 9dc82a201..491079168 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RowExpression.From" -title: "RowExpression.From | Microsoft Docs" +title: "RowExpression.From" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/rowexpression-row.md b/query-languages/m/rowexpression-row.md index 8d4741ea0..d48ee68ce 100644 --- a/query-languages/m/rowexpression-row.md +++ b/query-languages/m/rowexpression-row.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RowExpression.Row" -title: "RowExpression.Row | Microsoft Docs" +title: "RowExpression.Row" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/salesforce-data.md b/query-languages/m/salesforce-data.md index 8733f7a1d..50552f313 100644 --- a/query-languages/m/salesforce-data.md +++ b/query-languages/m/salesforce-data.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Salesforce.Data" -title: "Salesforce.Data | Microsoft Docs" +title: "Salesforce.Data" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/salesforce-reports.md b/query-languages/m/salesforce-reports.md index 6779c8cff..224bedd5c 100644 --- a/query-languages/m/salesforce-reports.md +++ b/query-languages/m/salesforce-reports.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Salesforce.Reports" -title: "Salesforce.Reports | Microsoft Docs" +title: "Salesforce.Reports" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/sapbusinesswarehouse-cubes.md b/query-languages/m/sapbusinesswarehouse-cubes.md index d2385da02..eb4807a6f 100644 --- a/query-languages/m/sapbusinesswarehouse-cubes.md +++ b/query-languages/m/sapbusinesswarehouse-cubes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SapBusinessWarehouse.Cubes" -title: "SapBusinessWarehouse.Cubes | Microsoft Docs" +title: "SapBusinessWarehouse.Cubes" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md index 91038e69c..4bbf2e392 100644 --- a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md +++ b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SapBusinessWarehouseExecutionMode.Type" -title: "SapBusinessWarehouseExecutionMode.Type | Microsoft Docs" +title: "SapBusinessWarehouseExecutionMode.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index 7525455a7..fbd514923 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SapHana.Database" -title: "SapHana.Database | Microsoft Docs" +title: "SapHana.Database" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/saphanadistribution-type.md b/query-languages/m/saphanadistribution-type.md index 6c5aab822..307e49680 100644 --- a/query-languages/m/saphanadistribution-type.md +++ b/query-languages/m/saphanadistribution-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SapHanaDistribution.Type" -title: "SapHanaDistribution.Type | Microsoft Docs" +title: "SapHanaDistribution.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/saphanarangeoperator-type.md b/query-languages/m/saphanarangeoperator-type.md index 549e16b13..81353bee1 100644 --- a/query-languages/m/saphanarangeoperator-type.md +++ b/query-languages/m/saphanarangeoperator-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SapHanaRangeOperator.Type" -title: "SapHanaRangeOperator.Type | Microsoft Docs" +title: "SapHanaRangeOperator.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/sharepoint-contents.md b/query-languages/m/sharepoint-contents.md index 899b24b16..73caadfeb 100644 --- a/query-languages/m/sharepoint-contents.md +++ b/query-languages/m/sharepoint-contents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SharePoint.Contents" -title: "SharePoint.Contents | Microsoft Docs" +title: "SharePoint.Contents" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/sharepoint-files.md b/query-languages/m/sharepoint-files.md index 816d081fa..3e0ec1029 100644 --- a/query-languages/m/sharepoint-files.md +++ b/query-languages/m/sharepoint-files.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SharePoint.Files" -title: "SharePoint.Files | Microsoft Docs" +title: "SharePoint.Files" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index 1db59e9e7..36d474763 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SharePoint.Tables" -title: "SharePoint.Tables | Microsoft Docs" +title: "SharePoint.Tables" ms.date: 9/14/2020 ms.service: powerquery diff --git a/query-languages/m/sharpbinary.md b/query-languages/m/sharpbinary.md index 0fcbc0b32..be378c733 100644 --- a/query-languages/m/sharpbinary.md +++ b/query-languages/m/sharpbinary.md @@ -1,6 +1,6 @@ --- description: "Learn more about: #binary" -title: "#binary | Microsoft Docs" +title: "#binary" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index 2ad0beb14..f57e4bf4e 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -1,6 +1,6 @@ --- description: "Learn more about: #date" -title: "#date | Microsoft Docs" +title: "#date" ms.date: 6/21/2021 ms.service: powerquery diff --git a/query-languages/m/sharpdatetime.md b/query-languages/m/sharpdatetime.md index 417431dd8..879afd3d9 100644 --- a/query-languages/m/sharpdatetime.md +++ b/query-languages/m/sharpdatetime.md @@ -1,6 +1,6 @@ --- description: "Learn more about: #datetime" -title: "#datetime | Microsoft Docs" +title: "#datetime" ms.date: 11/17/2021 ms.service: powerquery diff --git a/query-languages/m/sharpdatetimezone.md b/query-languages/m/sharpdatetimezone.md index 701ef3fce..0c19de76c 100644 --- a/query-languages/m/sharpdatetimezone.md +++ b/query-languages/m/sharpdatetimezone.md @@ -1,6 +1,6 @@ --- description: "Learn more about: #datetimezone" -title: "#datetimezone | Microsoft Docs" +title: "#datetimezone" ms.date: 11/17/2021 ms.service: powerquery diff --git a/query-languages/m/sharpduration.md b/query-languages/m/sharpduration.md index 6a2ca0fbf..0f10ad2c4 100644 --- a/query-languages/m/sharpduration.md +++ b/query-languages/m/sharpduration.md @@ -1,6 +1,6 @@ --- description: "Learn more about: #duration" -title: "#duration | Microsoft Docs" +title: "#duration" ms.date: 6/21/2021 ms.service: powerquery diff --git a/query-languages/m/sharptable.md b/query-languages/m/sharptable.md index 1778bdeef..e22c4d5fb 100644 --- a/query-languages/m/sharptable.md +++ b/query-languages/m/sharptable.md @@ -1,6 +1,6 @@ --- description: "Learn more about: #table" -title: "#table | Microsoft Docs" +title: "#table" ms.date: 7/18/2022 ms.service: powerquery diff --git a/query-languages/m/sharptime.md b/query-languages/m/sharptime.md index c24f08d88..54878eff4 100644 --- a/query-languages/m/sharptime.md +++ b/query-languages/m/sharptime.md @@ -1,6 +1,6 @@ --- description: "Learn more about: #time" -title: "#time | Microsoft Docs" +title: "#time" ms.date: 6/21/2021 ms.service: powerquery diff --git a/query-languages/m/single-from.md b/query-languages/m/single-from.md index 35849155a..4e3fe20db 100644 --- a/query-languages/m/single-from.md +++ b/query-languages/m/single-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Single.From" -title: "Single.From | Microsoft Docs" +title: "Single.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/soda-feed.md b/query-languages/m/soda-feed.md index 798eba8ac..48076bbd3 100644 --- a/query-languages/m/soda-feed.md +++ b/query-languages/m/soda-feed.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Soda.Feed" -title: "Soda.Feed | Microsoft Docs" +title: "Soda.Feed" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/splitter-functions.md b/query-languages/m/splitter-functions.md index eda77e6d6..5d3741aa9 100644 --- a/query-languages/m/splitter-functions.md +++ b/query-languages/m/splitter-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter functions" -title: "Splitter functions | Microsoft Docs" +title: "Splitter functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/splitter-splitbynothing.md b/query-languages/m/splitter-splitbynothing.md index 889fdbefc..f42d6e4f0 100644 --- a/query-languages/m/splitter-splitbynothing.md +++ b/query-languages/m/splitter-splitbynothing.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitByNothing" -title: "Splitter.SplitByNothing | Microsoft Docs" +title: "Splitter.SplitByNothing" ms.date: 8/1/2019 ms.service: powerquery diff --git a/query-languages/m/splitter-splittextbyanydelimiter.md b/query-languages/m/splitter-splittextbyanydelimiter.md index 82b1e81fd..e0f624f90 100644 --- a/query-languages/m/splitter-splittextbyanydelimiter.md +++ b/query-languages/m/splitter-splittextbyanydelimiter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByAnyDelimiter" -title: "Splitter.SplitTextByAnyDelimiter | Microsoft Docs" +title: "Splitter.SplitTextByAnyDelimiter" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/splitter-splittextbycharactertransition.md b/query-languages/m/splitter-splittextbycharactertransition.md index 06e139c37..df27930fe 100644 --- a/query-languages/m/splitter-splittextbycharactertransition.md +++ b/query-languages/m/splitter-splittextbycharactertransition.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByCharacterTransition" -title: "Splitter.SplitTextByCharacterTransition | Microsoft Docs" +title: "Splitter.SplitTextByCharacterTransition" ms.date: 3/16/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/splitter-splittextbydelimiter.md b/query-languages/m/splitter-splittextbydelimiter.md index 4930e5b54..10dda0cab 100644 --- a/query-languages/m/splitter-splittextbydelimiter.md +++ b/query-languages/m/splitter-splittextbydelimiter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByDelimiter" -title: "Splitter.SplitTextByDelimiter | Microsoft Docs" +title: "Splitter.SplitTextByDelimiter" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/splitter-splittextbyeachdelimiter.md b/query-languages/m/splitter-splittextbyeachdelimiter.md index c4dff5baa..e7e0a411f 100644 --- a/query-languages/m/splitter-splittextbyeachdelimiter.md +++ b/query-languages/m/splitter-splittextbyeachdelimiter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByEachDelimiter" -title: "Splitter.SplitTextByEachDelimiter | Microsoft Docs" +title: "Splitter.SplitTextByEachDelimiter" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/splitter-splittextbylengths.md b/query-languages/m/splitter-splittextbylengths.md index c06f4f620..fd55414da 100644 --- a/query-languages/m/splitter-splittextbylengths.md +++ b/query-languages/m/splitter-splittextbylengths.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByLengths" -title: "Splitter.SplitTextByLengths | Microsoft Docs" +title: "Splitter.SplitTextByLengths" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/splitter-splittextbypositions.md b/query-languages/m/splitter-splittextbypositions.md index de8df1b74..a983b514d 100644 --- a/query-languages/m/splitter-splittextbypositions.md +++ b/query-languages/m/splitter-splittextbypositions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByPositions" -title: "Splitter.SplitTextByPositions | Microsoft Docs" +title: "Splitter.SplitTextByPositions" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/splitter-splittextbyranges.md b/query-languages/m/splitter-splittextbyranges.md index 184a87118..2b7fdc64c 100644 --- a/query-languages/m/splitter-splittextbyranges.md +++ b/query-languages/m/splitter-splittextbyranges.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByRanges" -title: "Splitter.SplitTextByRanges | Microsoft Docs" +title: "Splitter.SplitTextByRanges" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/splitter-splittextbyrepeatedlengths.md b/query-languages/m/splitter-splittextbyrepeatedlengths.md index fea749280..fc1dbda09 100644 --- a/query-languages/m/splitter-splittextbyrepeatedlengths.md +++ b/query-languages/m/splitter-splittextbyrepeatedlengths.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByRepeatedLengths" -title: "Splitter.SplitTextByRepeatedLengths | Microsoft Docs" +title: "Splitter.SplitTextByRepeatedLengths" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/splitter-splittextbywhitespace.md b/query-languages/m/splitter-splittextbywhitespace.md index 7bf390595..8bc7409b5 100644 --- a/query-languages/m/splitter-splittextbywhitespace.md +++ b/query-languages/m/splitter-splittextbywhitespace.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByWhitespace" -title: "Splitter.SplitTextByWhitespace | Microsoft Docs" +title: "Splitter.SplitTextByWhitespace" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/sql-database.md b/query-languages/m/sql-database.md index 5c36052af..a0a0c8407 100644 --- a/query-languages/m/sql-database.md +++ b/query-languages/m/sql-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Sql.Database" -title: "Sql.Database | Microsoft Docs" +title: "Sql.Database" ms.date: 11/23/2020 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/sql-databases.md b/query-languages/m/sql-databases.md index d11f6246a..618b677fb 100644 --- a/query-languages/m/sql-databases.md +++ b/query-languages/m/sql-databases.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Sql.Databases" -title: "Sql.Databases | Microsoft Docs" +title: "Sql.Databases" ms.date: 11/23/2020 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/sqlexpression-schemafrom.md b/query-languages/m/sqlexpression-schemafrom.md index bb9c73902..b8789a840 100644 --- a/query-languages/m/sqlexpression-schemafrom.md +++ b/query-languages/m/sqlexpression-schemafrom.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SqlExpression.SchemaFrom" -title: "SqlExpression.SchemaFrom | Microsoft Docs" +title: "SqlExpression.SchemaFrom" ms.date: 10/18/2021 ms.service: powerquery diff --git a/query-languages/m/sqlexpression-toexpression.md b/query-languages/m/sqlexpression-toexpression.md index 083afc324..712270cf6 100644 --- a/query-languages/m/sqlexpression-toexpression.md +++ b/query-languages/m/sqlexpression-toexpression.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SqlExpression.ToExpression" -title: "SqlExpression.ToExpression | Microsoft Docs" +title: "SqlExpression.ToExpression" ms.date: 10/18/2021 ms.service: powerquery diff --git a/query-languages/m/sybase-database.md b/query-languages/m/sybase-database.md index a79e04c72..80ad77c98 100644 --- a/query-languages/m/sybase-database.md +++ b/query-languages/m/sybase-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Sybase.Database" -title: "Sybase.Database | Microsoft Docs" +title: "Sybase.Database" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/table-addcolumn.md b/query-languages/m/table-addcolumn.md index 6e3b0f0e0..f7de2ca42 100644 --- a/query-languages/m/table-addcolumn.md +++ b/query-languages/m/table-addcolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.AddColumn" -title: "Table.AddColumn | Microsoft Docs" +title: "Table.AddColumn" ms.date: 3/9/2022 ms.service: powerquery diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index d8253b974..ffc22fbad 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.AddFuzzyClusterColumn" -title: "Table.AddFuzzyClusterColumn | Microsoft Docs" +title: "Table.AddFuzzyClusterColumn" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-addindexcolumn.md b/query-languages/m/table-addindexcolumn.md index 2525e7321..97bc8e28f 100644 --- a/query-languages/m/table-addindexcolumn.md +++ b/query-languages/m/table-addindexcolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.AddIndexColumn" -title: "Table.AddIndexColumn | Microsoft Docs" +title: "Table.AddIndexColumn" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-addjoincolumn.md b/query-languages/m/table-addjoincolumn.md index 9b185bc32..681c9b8eb 100644 --- a/query-languages/m/table-addjoincolumn.md +++ b/query-languages/m/table-addjoincolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.AddJoinColumn" -title: "Table.AddJoinColumn | Microsoft Docs" +title: "Table.AddJoinColumn" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-addkey.md b/query-languages/m/table-addkey.md index 02eab3366..e59b72e53 100644 --- a/query-languages/m/table-addkey.md +++ b/query-languages/m/table-addkey.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.AddKey" -title: "Table.AddKey | Microsoft Docs" +title: "Table.AddKey" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-addrankcolumn.md b/query-languages/m/table-addrankcolumn.md index 144ac8739..e5d11653c 100644 --- a/query-languages/m/table-addrankcolumn.md +++ b/query-languages/m/table-addrankcolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.AddRankColumn" -title: "Table.AddRankColumn | Microsoft Docs" +title: "Table.AddRankColumn" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/table-aggregatetablecolumn.md b/query-languages/m/table-aggregatetablecolumn.md index 6490c3e4c..cc9bf18a1 100644 --- a/query-languages/m/table-aggregatetablecolumn.md +++ b/query-languages/m/table-aggregatetablecolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.AggregateTableColumn" -title: "Table.AggregateTableColumn | Microsoft Docs" +title: "Table.AggregateTableColumn" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-alternaterows.md b/query-languages/m/table-alternaterows.md index 450f58636..fe42affdd 100644 --- a/query-languages/m/table-alternaterows.md +++ b/query-languages/m/table-alternaterows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.AlternateRows" -title: "Table.AlternateRows | Microsoft Docs" +title: "Table.AlternateRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-approximaterowcount.md b/query-languages/m/table-approximaterowcount.md index bceb3511b..edc340a19 100644 --- a/query-languages/m/table-approximaterowcount.md +++ b/query-languages/m/table-approximaterowcount.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ApproximateRowCount" -title: "Table.ApproximateRowCount | Microsoft Docs" +title: "Table.ApproximateRowCount" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/table-buffer.md b/query-languages/m/table-buffer.md index 268e89d72..602d8d25d 100644 --- a/query-languages/m/table-buffer.md +++ b/query-languages/m/table-buffer.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Buffer" -title: "Table.Buffer | Microsoft Docs" +title: "Table.Buffer" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-column.md b/query-languages/m/table-column.md index 7810fd7d0..e913bcd74 100644 --- a/query-languages/m/table-column.md +++ b/query-languages/m/table-column.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Column" -title: "Table.Column | Microsoft Docs" +title: "Table.Column" ms.date: 3/10/2020 ms.service: powerquery diff --git a/query-languages/m/table-columncount.md b/query-languages/m/table-columncount.md index 47359ca4c..fa170aa2c 100644 --- a/query-languages/m/table-columncount.md +++ b/query-languages/m/table-columncount.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ColumnCount" -title: "Table.ColumnCount | Microsoft Docs" +title: "Table.ColumnCount" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-columnnames.md b/query-languages/m/table-columnnames.md index 2e904fe9e..790cd1c42 100644 --- a/query-languages/m/table-columnnames.md +++ b/query-languages/m/table-columnnames.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ColumnNames" -title: "Table.ColumnNames | Microsoft Docs" +title: "Table.ColumnNames" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-columnsoftype.md b/query-languages/m/table-columnsoftype.md index c17ff5c9f..81168d9e9 100644 --- a/query-languages/m/table-columnsoftype.md +++ b/query-languages/m/table-columnsoftype.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ColumnsOfType" -title: "Table.ColumnsOfType | Microsoft Docs" +title: "Table.ColumnsOfType" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-combine.md b/query-languages/m/table-combine.md index bf15dd205..7486384ea 100644 --- a/query-languages/m/table-combine.md +++ b/query-languages/m/table-combine.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Combine" -title: "Table.Combine | Microsoft Docs" +title: "Table.Combine" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-combinecolumns.md b/query-languages/m/table-combinecolumns.md index 79b7cb8bb..7a24c9996 100644 --- a/query-languages/m/table-combinecolumns.md +++ b/query-languages/m/table-combinecolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.CombineColumns" -title: "Table.CombineColumns | Microsoft Docs" +title: "Table.CombineColumns" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-combinecolumnstorecord.md b/query-languages/m/table-combinecolumnstorecord.md index 4befec877..3eea5bbb0 100644 --- a/query-languages/m/table-combinecolumnstorecord.md +++ b/query-languages/m/table-combinecolumnstorecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.CombineColumnsToRecord" -title: "Table.CombineColumnsToRecord | Microsoft Docs" +title: "Table.CombineColumnsToRecord" ms.date: 09/14/2020 ms.service: powerquery diff --git a/query-languages/m/table-conformtopagereader.md b/query-languages/m/table-conformtopagereader.md index 727779c37..b23a6e2ed 100644 --- a/query-languages/m/table-conformtopagereader.md +++ b/query-languages/m/table-conformtopagereader.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ConformToPageReader" -title: "Table.ConformToPageReader | Microsoft Docs" +title: "Table.ConformToPageReader" ms.date: 8/21/2020 ms.service: powerquery diff --git a/query-languages/m/table-contains.md b/query-languages/m/table-contains.md index 6beac0b4b..f1cf8c4ab 100644 --- a/query-languages/m/table-contains.md +++ b/query-languages/m/table-contains.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Contains" -title: "Table.Contains | Microsoft Docs" +title: "Table.Contains" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-containsall.md b/query-languages/m/table-containsall.md index b5c4511d2..d05a000eb 100644 --- a/query-languages/m/table-containsall.md +++ b/query-languages/m/table-containsall.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ContainsAll" -title: "Table.ContainsAll | Microsoft Docs" +title: "Table.ContainsAll" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-containsany.md b/query-languages/m/table-containsany.md index 2a6f9b366..dccad1048 100644 --- a/query-languages/m/table-containsany.md +++ b/query-languages/m/table-containsany.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ContainsAny" -title: "Table.ContainsAny | Microsoft Docs" +title: "Table.ContainsAny" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-demoteheaders.md b/query-languages/m/table-demoteheaders.md index f43fa3db4..659f9a4f5 100644 --- a/query-languages/m/table-demoteheaders.md +++ b/query-languages/m/table-demoteheaders.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.DemoteHeaders" -title: "Table.DemoteHeaders | Microsoft Docs" +title: "Table.DemoteHeaders" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-distinct.md b/query-languages/m/table-distinct.md index c810a2be9..1cc7ac8ce 100644 --- a/query-languages/m/table-distinct.md +++ b/query-languages/m/table-distinct.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Distinct" -title: "Table.Distinct | Microsoft Docs" +title: "Table.Distinct" ms.date: 3/10/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/table-duplicatecolumn.md b/query-languages/m/table-duplicatecolumn.md index d34edfd7a..eaf74885a 100644 --- a/query-languages/m/table-duplicatecolumn.md +++ b/query-languages/m/table-duplicatecolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.DuplicateColumn" -title: "Table.DuplicateColumn | Microsoft Docs" +title: "Table.DuplicateColumn" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index a2978e4b9..e6ac1f87d 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ExpandListColumn" -title: "Table.ExpandListColumn | Microsoft Docs" +title: "Table.ExpandListColumn" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-expandrecordcolumn.md b/query-languages/m/table-expandrecordcolumn.md index cc34a9d81..7d9d2d6f3 100644 --- a/query-languages/m/table-expandrecordcolumn.md +++ b/query-languages/m/table-expandrecordcolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ExpandRecordColumn" -title: "Table.ExpandRecordColumn | Microsoft Docs" +title: "Table.ExpandRecordColumn" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-expandtablecolumn.md b/query-languages/m/table-expandtablecolumn.md index 67d9c8249..d38d6f40d 100644 --- a/query-languages/m/table-expandtablecolumn.md +++ b/query-languages/m/table-expandtablecolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ExpandTableColumn" -title: "Table.ExpandTableColumn | Microsoft Docs" +title: "Table.ExpandTableColumn" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-filldown.md b/query-languages/m/table-filldown.md index 5019c3b51..c93ff91ce 100644 --- a/query-languages/m/table-filldown.md +++ b/query-languages/m/table-filldown.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FillDown" -title: "Table.FillDown | Microsoft Docs" +title: "Table.FillDown" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-fillup.md b/query-languages/m/table-fillup.md index eff2e07af..dd987499c 100644 --- a/query-languages/m/table-fillup.md +++ b/query-languages/m/table-fillup.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FillUp" -title: "Table.FillUp | Microsoft Docs" +title: "Table.FillUp" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-filterwithdatatable.md b/query-languages/m/table-filterwithdatatable.md index 5ff03aaa9..f4440b3fa 100644 --- a/query-languages/m/table-filterwithdatatable.md +++ b/query-languages/m/table-filterwithdatatable.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FilterWithDataTable" -title: "Table.FilterWithDataTable | Microsoft Docs" +title: "Table.FilterWithDataTable" ms.date: 5/3/2022 ms.service: powerquery diff --git a/query-languages/m/table-findtext.md b/query-languages/m/table-findtext.md index b743bd021..7400e087f 100644 --- a/query-languages/m/table-findtext.md +++ b/query-languages/m/table-findtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FindText" -title: "Table.FindText | Microsoft Docs" +title: "Table.FindText" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-first.md b/query-languages/m/table-first.md index 0eaa9a054..e3608487f 100644 --- a/query-languages/m/table-first.md +++ b/query-languages/m/table-first.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.First" -title: "Table.First | Microsoft Docs" +title: "Table.First" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-firstn.md b/query-languages/m/table-firstn.md index 9647ef2ef..6c0c6e4e8 100644 --- a/query-languages/m/table-firstn.md +++ b/query-languages/m/table-firstn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FirstN" -title: "Table.FirstN | Microsoft Docs" +title: "Table.FirstN" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/table-firstvalue.md b/query-languages/m/table-firstvalue.md index 201452875..448642bca 100644 --- a/query-languages/m/table-firstvalue.md +++ b/query-languages/m/table-firstvalue.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FirstValue" -title: "Table.FirstValue | Microsoft Docs" +title: "Table.FirstValue" ms.date: 8/1/2019 ms.service: powerquery diff --git a/query-languages/m/table-fromcolumns.md b/query-languages/m/table-fromcolumns.md index c8e960945..07b7c01ce 100644 --- a/query-languages/m/table-fromcolumns.md +++ b/query-languages/m/table-fromcolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FromColumns" -title: "Table.FromColumns | Microsoft Docs" +title: "Table.FromColumns" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index a891c5d93..87bfa97a0 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FromList" -title: "Table.FromList | Microsoft Docs" +title: "Table.FromList" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-frompartitions.md b/query-languages/m/table-frompartitions.md index 4de2594fe..37f6dfc2b 100644 --- a/query-languages/m/table-frompartitions.md +++ b/query-languages/m/table-frompartitions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FromPartitions" -title: "Table.FromPartitions | Microsoft Docs" +title: "Table.FromPartitions" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-fromrecords.md b/query-languages/m/table-fromrecords.md index 36f9143d4..e704821f0 100644 --- a/query-languages/m/table-fromrecords.md +++ b/query-languages/m/table-fromrecords.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FromRecords" -title: "Table.FromRecords | Microsoft Docs" +title: "Table.FromRecords" ms.date: 3/10/2021 ms.service: powerquery diff --git a/query-languages/m/table-fromrows.md b/query-languages/m/table-fromrows.md index aeccffcf5..b08c156fb 100644 --- a/query-languages/m/table-fromrows.md +++ b/query-languages/m/table-fromrows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FromRows" -title: "Table.FromRows | Microsoft Docs" +title: "Table.FromRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-fromvalue.md b/query-languages/m/table-fromvalue.md index 40b43bc54..7b9bb05a4 100644 --- a/query-languages/m/table-fromvalue.md +++ b/query-languages/m/table-fromvalue.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FromValue" -title: "Table.FromValue | Microsoft Docs" +title: "Table.FromValue" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index f48d0259a..fd216a467 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table functions" -title: "Table functions | Microsoft Docs" +title: "Table functions" ms.date: 6/24/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/table-fuzzygroup.md b/query-languages/m/table-fuzzygroup.md index 521c76def..945858bd0 100644 --- a/query-languages/m/table-fuzzygroup.md +++ b/query-languages/m/table-fuzzygroup.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FuzzyGroup" -title: "Table.FuzzyGroup | Microsoft Docs" +title: "Table.FuzzyGroup" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index e229a8ffa..bbd6dea69 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FuzzyJoin" -title: "Table.FuzzyJoin | Microsoft Docs" +title: "Table.FuzzyJoin" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index 0239c9447..bdb6abb0b 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.FuzzyNestedJoin" -title: "Table.FuzzyNestedJoin | Microsoft Docs" +title: "Table.FuzzyNestedJoin" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/table-group.md b/query-languages/m/table-group.md index 3ceb2de92..c1f63cfcb 100644 --- a/query-languages/m/table-group.md +++ b/query-languages/m/table-group.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Group" -title: "Table.Group | Microsoft Docs" +title: "Table.Group" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-hascolumns.md b/query-languages/m/table-hascolumns.md index 031a28e06..79a897432 100644 --- a/query-languages/m/table-hascolumns.md +++ b/query-languages/m/table-hascolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.HasColumns" -title: "Table.HasColumns | Microsoft Docs" +title: "Table.HasColumns" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-insertrows.md b/query-languages/m/table-insertrows.md index 255d6939d..6ffeb8889 100644 --- a/query-languages/m/table-insertrows.md +++ b/query-languages/m/table-insertrows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.InsertRows" -title: "Table.InsertRows | Microsoft Docs" +title: "Table.InsertRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-isdistinct.md b/query-languages/m/table-isdistinct.md index c63965471..88169da81 100644 --- a/query-languages/m/table-isdistinct.md +++ b/query-languages/m/table-isdistinct.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.IsDistinct" -title: "Table.IsDistinct | Microsoft Docs" +title: "Table.IsDistinct" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-isempty.md b/query-languages/m/table-isempty.md index a846ad646..c02535dd9 100644 --- a/query-languages/m/table-isempty.md +++ b/query-languages/m/table-isempty.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.IsEmpty" -title: "Table.IsEmpty | Microsoft Docs" +title: "Table.IsEmpty" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index a5adf6f6e..d4f17d698 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Join" -title: "Table.Join | Microsoft Docs" +title: "Table.Join" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-keys.md b/query-languages/m/table-keys.md index 70fd81794..06f6042e1 100644 --- a/query-languages/m/table-keys.md +++ b/query-languages/m/table-keys.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Keys" -title: "Table.Keys | Microsoft Docs" +title: "Table.Keys" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-last.md b/query-languages/m/table-last.md index 24e006b76..6ce2c8852 100644 --- a/query-languages/m/table-last.md +++ b/query-languages/m/table-last.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Last" -title: "Table.Last | Microsoft Docs" +title: "Table.Last" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-lastn.md b/query-languages/m/table-lastn.md index 30d078aa9..6d6ccc452 100644 --- a/query-languages/m/table-lastn.md +++ b/query-languages/m/table-lastn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.LastN" -title: "Table.LastN | Microsoft Docs" +title: "Table.LastN" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-matchesallrows.md b/query-languages/m/table-matchesallrows.md index 1d7858e51..852b94925 100644 --- a/query-languages/m/table-matchesallrows.md +++ b/query-languages/m/table-matchesallrows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.MatchesAllRows" -title: "Table.MatchesAllRows | Microsoft Docs" +title: "Table.MatchesAllRows" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-matchesanyrows.md b/query-languages/m/table-matchesanyrows.md index af6b84641..761161fe4 100644 --- a/query-languages/m/table-matchesanyrows.md +++ b/query-languages/m/table-matchesanyrows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.MatchesAnyRows" -title: "Table.MatchesAnyRows | Microsoft Docs" +title: "Table.MatchesAnyRows" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-max.md b/query-languages/m/table-max.md index 7525abfae..38f51053d 100644 --- a/query-languages/m/table-max.md +++ b/query-languages/m/table-max.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Max" -title: "Table.Max | Microsoft Docs" +title: "Table.Max" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-maxn.md b/query-languages/m/table-maxn.md index 3eaf7d6a6..101014169 100644 --- a/query-languages/m/table-maxn.md +++ b/query-languages/m/table-maxn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.MaxN" -title: "Table.MaxN | Microsoft Docs" +title: "Table.MaxN" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-min.md b/query-languages/m/table-min.md index 46eed0399..539ba6390 100644 --- a/query-languages/m/table-min.md +++ b/query-languages/m/table-min.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Min" -title: "Table.Min | Microsoft Docs" +title: "Table.Min" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-minn.md b/query-languages/m/table-minn.md index e6c21b31c..41da8b370 100644 --- a/query-languages/m/table-minn.md +++ b/query-languages/m/table-minn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.MinN" -title: "Table.MinN | Microsoft Docs" +title: "Table.MinN" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-nestedjoin.md b/query-languages/m/table-nestedjoin.md index b0cc9f111..e9a4a10b3 100644 --- a/query-languages/m/table-nestedjoin.md +++ b/query-languages/m/table-nestedjoin.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.NestedJoin" -title: "Table.NestedJoin | Microsoft Docs" +title: "Table.NestedJoin" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-partition.md b/query-languages/m/table-partition.md index be1ce17c5..d21b87519 100644 --- a/query-languages/m/table-partition.md +++ b/query-languages/m/table-partition.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Partition" -title: "Table.Partition | Microsoft Docs" +title: "Table.Partition" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-partitionvalues.md b/query-languages/m/table-partitionvalues.md index 7832a8ad6..f16fb411a 100644 --- a/query-languages/m/table-partitionvalues.md +++ b/query-languages/m/table-partitionvalues.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.PartitionValues" -title: "Table.PartitionValues | Microsoft Docs" +title: "Table.PartitionValues" ms.date: 9/13/2021 ms.service: powerquery diff --git a/query-languages/m/table-pivot.md b/query-languages/m/table-pivot.md index 08994600f..fc7899d52 100644 --- a/query-languages/m/table-pivot.md +++ b/query-languages/m/table-pivot.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Pivot" -title: "Table.Pivot | Microsoft Docs" +title: "Table.Pivot" ms.date: 3/10/2021 ms.service: powerquery diff --git a/query-languages/m/table-positionof.md b/query-languages/m/table-positionof.md index 9f50b00cc..7a6b37ce6 100644 --- a/query-languages/m/table-positionof.md +++ b/query-languages/m/table-positionof.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.PositionOf" -title: "Table.PositionOf | Microsoft Docs" +title: "Table.PositionOf" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-positionofany.md b/query-languages/m/table-positionofany.md index 8de0cba14..cf12e4022 100644 --- a/query-languages/m/table-positionofany.md +++ b/query-languages/m/table-positionofany.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.PositionOfAny" -title: "Table.PositionOfAny | Microsoft Docs" +title: "Table.PositionOfAny" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-prefixcolumns.md b/query-languages/m/table-prefixcolumns.md index 6f7fc4ee6..a5d0ae0fe 100644 --- a/query-languages/m/table-prefixcolumns.md +++ b/query-languages/m/table-prefixcolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.PrefixColumns" -title: "Table.PrefixColumns | Microsoft Docs" +title: "Table.PrefixColumns" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-profile.md b/query-languages/m/table-profile.md index 702e1f645..dc9930064 100644 --- a/query-languages/m/table-profile.md +++ b/query-languages/m/table-profile.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Profile" -title: "Table.Profile | Microsoft Docs" +title: "Table.Profile" ms.date: 8/1/2019 ms.service: powerquery diff --git a/query-languages/m/table-promoteheaders.md b/query-languages/m/table-promoteheaders.md index 817f638ad..840ca1134 100644 --- a/query-languages/m/table-promoteheaders.md +++ b/query-languages/m/table-promoteheaders.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.PromoteHeaders" -title: "Table.PromoteHeaders | Microsoft Docs" +title: "Table.PromoteHeaders" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-range.md b/query-languages/m/table-range.md index 087843720..811a576a4 100644 --- a/query-languages/m/table-range.md +++ b/query-languages/m/table-range.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Range" -title: "Table.Range | Microsoft Docs" +title: "Table.Range" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index 0d3f7545a..84b157a48 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.RemoveColumns" -title: "Table.RemoveColumns | Microsoft Docs" +title: "Table.RemoveColumns" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-removefirstn.md b/query-languages/m/table-removefirstn.md index e649d78cd..62a5f9567 100644 --- a/query-languages/m/table-removefirstn.md +++ b/query-languages/m/table-removefirstn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.RemoveFirstN" -title: "Table.RemoveFirstN | Microsoft Docs" +title: "Table.RemoveFirstN" ms.date: 3/10/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/table-removelastn.md b/query-languages/m/table-removelastn.md index 3ebf41754..b383e22e2 100644 --- a/query-languages/m/table-removelastn.md +++ b/query-languages/m/table-removelastn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.RemoveLastN" -title: "Table.RemoveLastN | Microsoft Docs" +title: "Table.RemoveLastN" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-removematchingrows.md b/query-languages/m/table-removematchingrows.md index 576520610..7a6202514 100644 --- a/query-languages/m/table-removematchingrows.md +++ b/query-languages/m/table-removematchingrows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.RemoveMatchingRows" -title: "Table.RemoveMatchingRows | Microsoft Docs" +title: "Table.RemoveMatchingRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-removerows.md b/query-languages/m/table-removerows.md index 761a97711..8b3ecc991 100644 --- a/query-languages/m/table-removerows.md +++ b/query-languages/m/table-removerows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.RemoveRows" -title: "Table.RemoveRows | Microsoft Docs" +title: "Table.RemoveRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-removerowswitherrors.md b/query-languages/m/table-removerowswitherrors.md index 2e67778f9..a50cef3b3 100644 --- a/query-languages/m/table-removerowswitherrors.md +++ b/query-languages/m/table-removerowswitherrors.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.RemoveRowsWithErrors" -title: "Table.RemoveRowsWithErrors | Microsoft Docs" +title: "Table.RemoveRowsWithErrors" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-renamecolumns.md b/query-languages/m/table-renamecolumns.md index d0959f3d6..3138bffbc 100644 --- a/query-languages/m/table-renamecolumns.md +++ b/query-languages/m/table-renamecolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.RenameColumns" -title: "Table.RenameColumns | Microsoft Docs" +title: "Table.RenameColumns" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-reordercolumns.md b/query-languages/m/table-reordercolumns.md index eafc8dafc..23a63f69f 100644 --- a/query-languages/m/table-reordercolumns.md +++ b/query-languages/m/table-reordercolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ReorderColumns" -title: "Table.ReorderColumns | Microsoft Docs" +title: "Table.ReorderColumns" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-repeat.md b/query-languages/m/table-repeat.md index e2c8e011c..eaf42b1f2 100644 --- a/query-languages/m/table-repeat.md +++ b/query-languages/m/table-repeat.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Repeat" -title: "Table.Repeat | Microsoft Docs" +title: "Table.Repeat" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-replaceerrorvalues.md b/query-languages/m/table-replaceerrorvalues.md index 622d362b4..cc5e41c1a 100644 --- a/query-languages/m/table-replaceerrorvalues.md +++ b/query-languages/m/table-replaceerrorvalues.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ReplaceErrorValues" -title: "Table.ReplaceErrorValues | Microsoft Docs" +title: "Table.ReplaceErrorValues" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-replacekeys.md b/query-languages/m/table-replacekeys.md index 66134f478..44342a405 100644 --- a/query-languages/m/table-replacekeys.md +++ b/query-languages/m/table-replacekeys.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ReplaceKeys" -title: "Table.ReplaceKeys | Microsoft Docs" +title: "Table.ReplaceKeys" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-replacematchingrows.md b/query-languages/m/table-replacematchingrows.md index ba706263a..baa3f8bd1 100644 --- a/query-languages/m/table-replacematchingrows.md +++ b/query-languages/m/table-replacematchingrows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ReplaceMatchingRows" -title: "Table.ReplaceMatchingRows | Microsoft Docs" +title: "Table.ReplaceMatchingRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-replacerelationshipidentity.md b/query-languages/m/table-replacerelationshipidentity.md index af4b14ad5..c4a57e496 100644 --- a/query-languages/m/table-replacerelationshipidentity.md +++ b/query-languages/m/table-replacerelationshipidentity.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ReplaceRelationshipIdentity" -title: "Table.ReplaceRelationshipIdentity | Microsoft Docs" +title: "Table.ReplaceRelationshipIdentity" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-replacerows.md b/query-languages/m/table-replacerows.md index 01426197f..9e4fb11df 100644 --- a/query-languages/m/table-replacerows.md +++ b/query-languages/m/table-replacerows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ReplaceRows" -title: "Table.ReplaceRows | Microsoft Docs" +title: "Table.ReplaceRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-replacevalue.md b/query-languages/m/table-replacevalue.md index 1157783eb..0ffaeefe0 100644 --- a/query-languages/m/table-replacevalue.md +++ b/query-languages/m/table-replacevalue.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ReplaceValue" -title: "Table.ReplaceValue | Microsoft Docs" +title: "Table.ReplaceValue" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/table-reverserows.md b/query-languages/m/table-reverserows.md index 70dc7f519..cb48ca904 100644 --- a/query-languages/m/table-reverserows.md +++ b/query-languages/m/table-reverserows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ReverseRows" -title: "Table.ReverseRows | Microsoft Docs" +title: "Table.ReverseRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-rowcount.md b/query-languages/m/table-rowcount.md index b77609fa9..eef11660d 100644 --- a/query-languages/m/table-rowcount.md +++ b/query-languages/m/table-rowcount.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.RowCount" -title: "Table.RowCount | Microsoft Docs" +title: "Table.RowCount" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-schema.md b/query-languages/m/table-schema.md index 380b8ec9a..676c6f8ad 100644 --- a/query-languages/m/table-schema.md +++ b/query-languages/m/table-schema.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Schema" -title: "Table.Schema | Microsoft Docs" +title: "Table.Schema" ms.date: 11/17/2021 ms.service: powerquery diff --git a/query-languages/m/table-selectcolumns.md b/query-languages/m/table-selectcolumns.md index c8efc2da8..c9d06f358 100644 --- a/query-languages/m/table-selectcolumns.md +++ b/query-languages/m/table-selectcolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.SelectColumns" -title: "Table.SelectColumns | Microsoft Docs" +title: "Table.SelectColumns" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-selectrows.md b/query-languages/m/table-selectrows.md index 9be2ad680..54ee54fb1 100644 --- a/query-languages/m/table-selectrows.md +++ b/query-languages/m/table-selectrows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.SelectRows" -title: "Table.SelectRows | Microsoft Docs" +title: "Table.SelectRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-selectrowswitherrors.md b/query-languages/m/table-selectrowswitherrors.md index b01c494fa..1cffcd6f8 100644 --- a/query-languages/m/table-selectrowswitherrors.md +++ b/query-languages/m/table-selectrowswitherrors.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.SelectRowsWithErrors" -title: "Table.SelectRowsWithErrors | Microsoft Docs" +title: "Table.SelectRowsWithErrors" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-singlerow.md b/query-languages/m/table-singlerow.md index 0a00c911f..51bb34139 100644 --- a/query-languages/m/table-singlerow.md +++ b/query-languages/m/table-singlerow.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.SingleRow" -title: "Table.SingleRow | Microsoft Docs" +title: "Table.SingleRow" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-skip.md b/query-languages/m/table-skip.md index a1a77b731..0e1b05f25 100644 --- a/query-languages/m/table-skip.md +++ b/query-languages/m/table-skip.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Skip" -title: "Table.Skip | Microsoft Docs" +title: "Table.Skip" ms.date: 3/10/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/table-sort.md b/query-languages/m/table-sort.md index 7c15d7a29..b41088e05 100644 --- a/query-languages/m/table-sort.md +++ b/query-languages/m/table-sort.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Sort" -title: "Table.Sort | Microsoft Docs" +title: "Table.Sort" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-split.md b/query-languages/m/table-split.md index 538e586e7..06124becc 100644 --- a/query-languages/m/table-split.md +++ b/query-languages/m/table-split.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Split" -title: "Table.Split | Microsoft Docs" +title: "Table.Split" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/table-splitat.md b/query-languages/m/table-splitat.md index 7c2fc06c0..6e3a5fc1d 100644 --- a/query-languages/m/table-splitat.md +++ b/query-languages/m/table-splitat.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.SplitAt" -title: "Table.SplitAt | Microsoft Docs" +title: "Table.SplitAt" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index e3fa76bc3..48aa80430 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.SplitColumn" -title: "Table.SplitColumn | Microsoft Docs" +title: "Table.SplitColumn" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/table-stopfolding.md b/query-languages/m/table-stopfolding.md index 9fa95a60b..df8289ad2 100644 --- a/query-languages/m/table-stopfolding.md +++ b/query-languages/m/table-stopfolding.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.StopFolding" -title: "Table.StopFolding | Microsoft Docs" +title: "Table.StopFolding" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-tocolumns.md b/query-languages/m/table-tocolumns.md index b7d44e10e..65fd82832 100644 --- a/query-languages/m/table-tocolumns.md +++ b/query-languages/m/table-tocolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ToColumns" -title: "Table.ToColumns | Microsoft Docs" +title: "Table.ToColumns" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-tolist.md b/query-languages/m/table-tolist.md index e7f0b9a1e..2e3716ff0 100644 --- a/query-languages/m/table-tolist.md +++ b/query-languages/m/table-tolist.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ToList" -title: "Table.ToList | Microsoft Docs" +title: "Table.ToList" ms.date: 5/3/2022 ms.service: powerquery diff --git a/query-languages/m/table-torecords.md b/query-languages/m/table-torecords.md index 345a4edbc..112bc3bb7 100644 --- a/query-languages/m/table-torecords.md +++ b/query-languages/m/table-torecords.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ToRecords" -title: "Table.ToRecords | Microsoft Docs" +title: "Table.ToRecords" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-torows.md b/query-languages/m/table-torows.md index 67fc5e3af..99b6c4246 100644 --- a/query-languages/m/table-torows.md +++ b/query-languages/m/table-torows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ToRows" -title: "Table.ToRows | Microsoft Docs" +title: "Table.ToRows" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-transformcolumnnames.md b/query-languages/m/table-transformcolumnnames.md index 2b5a8d863..da7a41720 100644 --- a/query-languages/m/table-transformcolumnnames.md +++ b/query-languages/m/table-transformcolumnnames.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.TransformColumnNames" -title: "Table.TransformColumnNames | Microsoft Docs" +title: "Table.TransformColumnNames" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-transformcolumns.md b/query-languages/m/table-transformcolumns.md index 217e9f0eb..2a0985096 100644 --- a/query-languages/m/table-transformcolumns.md +++ b/query-languages/m/table-transformcolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.TransformColumns" -title: "Table.TransformColumns | Microsoft Docs" +title: "Table.TransformColumns" ms.date: 6/24/2022 ms.service: powerquery diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index db77e2696..fb07d7f8e 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.TransformColumnTypes" -title: "Table.TransformColumnTypes | Microsoft Docs" +title: "Table.TransformColumnTypes" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-transformrows.md b/query-languages/m/table-transformrows.md index d1a6d2f1f..d2f947c60 100644 --- a/query-languages/m/table-transformrows.md +++ b/query-languages/m/table-transformrows.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.TransformRows" -title: "Table.TransformRows | Microsoft Docs" +title: "Table.TransformRows" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-transpose.md b/query-languages/m/table-transpose.md index 4f1db0cba..2c3377722 100644 --- a/query-languages/m/table-transpose.md +++ b/query-languages/m/table-transpose.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Transpose" -title: "Table.Transpose | Microsoft Docs" +title: "Table.Transpose" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-unpivot.md b/query-languages/m/table-unpivot.md index 1c34f562b..7f79332b2 100644 --- a/query-languages/m/table-unpivot.md +++ b/query-languages/m/table-unpivot.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.Unpivot" -title: "Table.Unpivot | Microsoft Docs" +title: "Table.Unpivot" ms.date: 3/10/2022 ms.service: powerquery diff --git a/query-languages/m/table-unpivotothercolumns.md b/query-languages/m/table-unpivotothercolumns.md index 291d5f4e2..d84d5fc23 100644 --- a/query-languages/m/table-unpivotothercolumns.md +++ b/query-languages/m/table-unpivotothercolumns.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.UnpivotOtherColumns" -title: "Table.UnpivotOtherColumns | Microsoft Docs" +title: "Table.UnpivotOtherColumns" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/table-view.md b/query-languages/m/table-view.md index c1f9af93d..3e42c24f3 100644 --- a/query-languages/m/table-view.md +++ b/query-languages/m/table-view.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.View" -title: "Table.View | Microsoft Docs" +title: "Table.View" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-viewerror.md b/query-languages/m/table-viewerror.md index c38e7a184..a48ad383d 100644 --- a/query-languages/m/table-viewerror.md +++ b/query-languages/m/table-viewerror.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ViewError" -title: "Table.ViewError | Microsoft Docs" +title: "Table.ViewError" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/table-viewfunction.md b/query-languages/m/table-viewfunction.md index c65ac2185..9daa01703 100644 --- a/query-languages/m/table-viewfunction.md +++ b/query-languages/m/table-viewfunction.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table.ViewFunction" -title: "Table.ViewFunction | Microsoft Docs" +title: "Table.ViewFunction" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/tables-getrelationships.md b/query-languages/m/tables-getrelationships.md index f8b5e8b8d..1df076838 100644 --- a/query-languages/m/tables-getrelationships.md +++ b/query-languages/m/tables-getrelationships.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Tables.GetRelationships" -title: "Tables.GetRelationships | Microsoft Docs" +title: "Tables.GetRelationships" ms.date: 8/1/2019 ms.service: powerquery diff --git a/query-languages/m/teradata-database.md b/query-languages/m/teradata-database.md index 8c06191e5..a1cf43809 100644 --- a/query-languages/m/teradata-database.md +++ b/query-languages/m/teradata-database.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Teradata.Database" -title: "Teradata.Database | Microsoft Docs" +title: "Teradata.Database" ms.date: 02/03/2021 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/text-afterdelimiter.md b/query-languages/m/text-afterdelimiter.md index 03d9e0bb7..216a4a9f2 100644 --- a/query-languages/m/text-afterdelimiter.md +++ b/query-languages/m/text-afterdelimiter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.AfterDelimiter" -title: "Text.AfterDelimiter | Microsoft Docs" +title: "Text.AfterDelimiter" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-at.md b/query-languages/m/text-at.md index 68b47a952..c9a1814a1 100644 --- a/query-languages/m/text-at.md +++ b/query-languages/m/text-at.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.At" -title: "Text.At | Microsoft Docs" +title: "Text.At" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-beforedelimiter.md b/query-languages/m/text-beforedelimiter.md index 55fa1a7ce..dcfbbe5c4 100644 --- a/query-languages/m/text-beforedelimiter.md +++ b/query-languages/m/text-beforedelimiter.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.BeforeDelimiter" -title: "Text.BeforeDelimiter | Microsoft Docs" +title: "Text.BeforeDelimiter" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-betweendelimiters.md b/query-languages/m/text-betweendelimiters.md index b43454fb9..ceac4eec4 100644 --- a/query-languages/m/text-betweendelimiters.md +++ b/query-languages/m/text-betweendelimiters.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.BetweenDelimiters" -title: "Text.BetweenDelimiters | Microsoft Docs" +title: "Text.BetweenDelimiters" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-clean.md b/query-languages/m/text-clean.md index 6a28505a1..851e77c9f 100644 --- a/query-languages/m/text-clean.md +++ b/query-languages/m/text-clean.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Clean" -title: "Text.Clean | Microsoft Docs" +title: "Text.Clean" ms.date: 3/14/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 629b67b6f..31323e60a 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Combine" -title: "Text.Combine | Microsoft Docs" +title: "Text.Combine" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index 83a30bd5d..c343dc78f 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Contains" -title: "Text.Contains | Microsoft Docs" +title: "Text.Contains" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-end.md b/query-languages/m/text-end.md index b50df2ee2..626da56ba 100644 --- a/query-languages/m/text-end.md +++ b/query-languages/m/text-end.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.End" -title: "Text.End | Microsoft Docs" +title: "Text.End" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-endswith.md b/query-languages/m/text-endswith.md index 05c7236f6..37f6571db 100644 --- a/query-languages/m/text-endswith.md +++ b/query-languages/m/text-endswith.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.EndsWith" -title: "Text.EndsWith | Microsoft Docs" +title: "Text.EndsWith" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-format.md b/query-languages/m/text-format.md index dbfba67c0..0e990e0a7 100644 --- a/query-languages/m/text-format.md +++ b/query-languages/m/text-format.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Format" -title: "Text.Format | Microsoft Docs" +title: "Text.Format" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-from.md b/query-languages/m/text-from.md index 22d55726f..294b5949d 100644 --- a/query-languages/m/text-from.md +++ b/query-languages/m/text-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.From" -title: "Text.From | Microsoft Docs" +title: "Text.From" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-frombinary.md b/query-languages/m/text-frombinary.md index 1bdbeca09..771226422 100644 --- a/query-languages/m/text-frombinary.md +++ b/query-languages/m/text-frombinary.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.FromBinary" -title: "Text.FromBinary | Microsoft Docs" +title: "Text.FromBinary" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/text-functions.md b/query-languages/m/text-functions.md index 1dd7c05d0..6821af775 100644 --- a/query-languages/m/text-functions.md +++ b/query-languages/m/text-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text functions" -title: "Text functions | Microsoft Docs" +title: "Text functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/text-infernumbertype.md b/query-languages/m/text-infernumbertype.md index 225fe417b..e961e5ca8 100644 --- a/query-languages/m/text-infernumbertype.md +++ b/query-languages/m/text-infernumbertype.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.InferNumberType" -title: "Text.InferNumberType | Microsoft Docs" +title: "Text.InferNumberType" ms.date: 11/17/2021 ms.service: powerquery diff --git a/query-languages/m/text-insert.md b/query-languages/m/text-insert.md index 401c6958a..0f437e71e 100644 --- a/query-languages/m/text-insert.md +++ b/query-languages/m/text-insert.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Insert" -title: "Text.Insert | Microsoft Docs" +title: "Text.Insert" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-length.md b/query-languages/m/text-length.md index 7c5a900c5..7affa27ca 100644 --- a/query-languages/m/text-length.md +++ b/query-languages/m/text-length.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Length" -title: "Text.Length | Microsoft Docs" +title: "Text.Length" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-lower.md b/query-languages/m/text-lower.md index ec4611973..e195d2be4 100644 --- a/query-languages/m/text-lower.md +++ b/query-languages/m/text-lower.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Lower" -title: "Text.Lower | Microsoft Docs" +title: "Text.Lower" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index 7b4cf4ab2..c71b8fc60 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Middle" -title: "Text.Middle | Microsoft Docs" +title: "Text.Middle" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-newguid.md b/query-languages/m/text-newguid.md index 730c6836a..e69ae426f 100644 --- a/query-languages/m/text-newguid.md +++ b/query-languages/m/text-newguid.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.NewGuid" -title: "Text.NewGuid | Microsoft Docs" +title: "Text.NewGuid" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/text-padend.md b/query-languages/m/text-padend.md index dfdf00777..bcf965bf2 100644 --- a/query-languages/m/text-padend.md +++ b/query-languages/m/text-padend.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.PadEnd" -title: "Text.PadEnd | Microsoft Docs" +title: "Text.PadEnd" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-padstart.md b/query-languages/m/text-padstart.md index 9f22d3dfe..f04f67c9f 100644 --- a/query-languages/m/text-padstart.md +++ b/query-languages/m/text-padstart.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.PadStart" -title: "Text.PadStart | Microsoft Docs" +title: "Text.PadStart" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-positionof.md b/query-languages/m/text-positionof.md index 6231a7f5c..795314f1a 100644 --- a/query-languages/m/text-positionof.md +++ b/query-languages/m/text-positionof.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.PositionOf" -title: "Text.PositionOf | Microsoft Docs" +title: "Text.PositionOf" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-positionofany.md b/query-languages/m/text-positionofany.md index e46ac4fa4..8601491b4 100644 --- a/query-languages/m/text-positionofany.md +++ b/query-languages/m/text-positionofany.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.PositionOfAny" -title: "Text.PositionOfAny | Microsoft Docs" +title: "Text.PositionOfAny" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-proper.md b/query-languages/m/text-proper.md index 60ae7e403..611e9d717 100644 --- a/query-languages/m/text-proper.md +++ b/query-languages/m/text-proper.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Proper" -title: "Text.Proper | Microsoft Docs" +title: "Text.Proper" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-range.md b/query-languages/m/text-range.md index 144a4e9f9..af865efcd 100644 --- a/query-languages/m/text-range.md +++ b/query-languages/m/text-range.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Range" -title: "Text.Range | Microsoft Docs" +title: "Text.Range" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-remove.md b/query-languages/m/text-remove.md index 6c6fd5865..511b6d280 100644 --- a/query-languages/m/text-remove.md +++ b/query-languages/m/text-remove.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Remove" -title: "Text.Remove | Microsoft Docs" +title: "Text.Remove" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-removerange.md b/query-languages/m/text-removerange.md index f258d57bf..9a6828b6c 100644 --- a/query-languages/m/text-removerange.md +++ b/query-languages/m/text-removerange.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.RemoveRange" -title: "Text.RemoveRange | Microsoft Docs" +title: "Text.RemoveRange" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-repeat.md b/query-languages/m/text-repeat.md index c15d5285a..3dab480d3 100644 --- a/query-languages/m/text-repeat.md +++ b/query-languages/m/text-repeat.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Repeat" -title: "Text.Repeat | Microsoft Docs" +title: "Text.Repeat" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-replace.md b/query-languages/m/text-replace.md index 4b34fecde..c81dd708b 100644 --- a/query-languages/m/text-replace.md +++ b/query-languages/m/text-replace.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Replace" -title: "Text.Replace | Microsoft Docs" +title: "Text.Replace" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-replacerange.md b/query-languages/m/text-replacerange.md index d857ce11e..0206d61dd 100644 --- a/query-languages/m/text-replacerange.md +++ b/query-languages/m/text-replacerange.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.ReplaceRange" -title: "Text.ReplaceRange | Microsoft Docs" +title: "Text.ReplaceRange" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-select.md b/query-languages/m/text-select.md index a0f105ee2..1545fb215 100644 --- a/query-languages/m/text-select.md +++ b/query-languages/m/text-select.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Select" -title: "Text.Select | Microsoft Docs" +title: "Text.Select" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-split.md b/query-languages/m/text-split.md index 364c19642..79cca535b 100644 --- a/query-languages/m/text-split.md +++ b/query-languages/m/text-split.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Split" -title: "Text.Split | Microsoft Docs" +title: "Text.Split" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/text-splitany.md b/query-languages/m/text-splitany.md index a575cd7d4..d3f13f544 100644 --- a/query-languages/m/text-splitany.md +++ b/query-languages/m/text-splitany.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.SplitAny" -title: "Text.SplitAny | Microsoft Docs" +title: "Text.SplitAny" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/text-start.md b/query-languages/m/text-start.md index 295f1e7f9..4a5722483 100644 --- a/query-languages/m/text-start.md +++ b/query-languages/m/text-start.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Start" -title: "Text.Start | Microsoft Docs" +title: "Text.Start" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index 8d3d2c837..5f905f3dd 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.StartsWith" -title: "Text.StartsWith | Microsoft Docs" +title: "Text.StartsWith" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-tobinary.md b/query-languages/m/text-tobinary.md index 341a7c827..4d5ed836f 100644 --- a/query-languages/m/text-tobinary.md +++ b/query-languages/m/text-tobinary.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.ToBinary" -title: "Text.ToBinary | Microsoft Docs" +title: "Text.ToBinary" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/text-tolist.md b/query-languages/m/text-tolist.md index 0ae0ec51e..dabf9321d 100644 --- a/query-languages/m/text-tolist.md +++ b/query-languages/m/text-tolist.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.ToList" -title: "Text.ToList | Microsoft Docs" +title: "Text.ToList" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/text-trim.md b/query-languages/m/text-trim.md index 7c193edd3..1b72ded95 100644 --- a/query-languages/m/text-trim.md +++ b/query-languages/m/text-trim.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Trim" -title: "Text.Trim | Microsoft Docs" +title: "Text.Trim" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-trimend.md b/query-languages/m/text-trimend.md index fe2b1acf6..9b9c58316 100644 --- a/query-languages/m/text-trimend.md +++ b/query-languages/m/text-trimend.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.TrimEnd" -title: "Text.TrimEnd | Microsoft Docs" +title: "Text.TrimEnd" ms.date: 4/22/2020 ms.service: powerquery diff --git a/query-languages/m/text-trimstart.md b/query-languages/m/text-trimstart.md index 0ae4fe8a2..c80016937 100644 --- a/query-languages/m/text-trimstart.md +++ b/query-languages/m/text-trimstart.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.TrimStart" -title: "Text.TrimStart | Microsoft Docs" +title: "Text.TrimStart" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/text-upper.md b/query-languages/m/text-upper.md index 10a33b0dd..54f04cb4f 100644 --- a/query-languages/m/text-upper.md +++ b/query-languages/m/text-upper.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text.Upper" -title: "Text.Upper | Microsoft Docs" +title: "Text.Upper" ms.date: 3/14/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/textencoding-type.md b/query-languages/m/textencoding-type.md index 5e156b74e..6d53b5e2e 100644 --- a/query-languages/m/textencoding-type.md +++ b/query-languages/m/textencoding-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TextEncoding.Type" -title: "TextEncoding.Type | Microsoft Docs" +title: "TextEncoding.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/time-endofhour.md b/query-languages/m/time-endofhour.md index 432405752..e0fd3f7d0 100644 --- a/query-languages/m/time-endofhour.md +++ b/query-languages/m/time-endofhour.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time.EndOfHour" -title: "Time.EndOfHour | Microsoft Docs" +title: "Time.EndOfHour" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/time-from.md b/query-languages/m/time-from.md index 2c39879a5..b5c82eb72 100644 --- a/query-languages/m/time-from.md +++ b/query-languages/m/time-from.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time.From" -title: "Time.From | Microsoft Docs" +title: "Time.From" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/time-fromtext.md b/query-languages/m/time-fromtext.md index 5ea52b62a..36a14d22f 100644 --- a/query-languages/m/time-fromtext.md +++ b/query-languages/m/time-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time.FromText" -title: "Time.FromText | Microsoft Docs" +title: "Time.FromText" ms.date: 6/24/2022 ms.service: powerquery diff --git a/query-languages/m/time-functions.md b/query-languages/m/time-functions.md index a847a4898..6c08d5464 100644 --- a/query-languages/m/time-functions.md +++ b/query-languages/m/time-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time functions" -title: "Time functions | Microsoft Docs" +title: "Time functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/time-hour.md b/query-languages/m/time-hour.md index dbb9234d5..30ad58559 100644 --- a/query-languages/m/time-hour.md +++ b/query-languages/m/time-hour.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time.Hour" -title: "Time.Hour | Microsoft Docs" +title: "Time.Hour" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/time-minute.md b/query-languages/m/time-minute.md index 498775c87..c1066c90d 100644 --- a/query-languages/m/time-minute.md +++ b/query-languages/m/time-minute.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time.Minute" -title: "Time.Minute | Microsoft Docs" +title: "Time.Minute" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/time-second.md b/query-languages/m/time-second.md index 861c8dfb3..d734c7b62 100644 --- a/query-languages/m/time-second.md +++ b/query-languages/m/time-second.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time.Second" -title: "Time.Second | Microsoft Docs" +title: "Time.Second" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/time-startofhour.md b/query-languages/m/time-startofhour.md index f2b2a8228..75e22a5ab 100644 --- a/query-languages/m/time-startofhour.md +++ b/query-languages/m/time-startofhour.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time.StartOfHour" -title: "Time.StartOfHour | Microsoft Docs" +title: "Time.StartOfHour" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/time-torecord.md b/query-languages/m/time-torecord.md index a3e506ab6..32fc5363a 100644 --- a/query-languages/m/time-torecord.md +++ b/query-languages/m/time-torecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time.ToRecord" -title: "Time.ToRecord | Microsoft Docs" +title: "Time.ToRecord" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/time-totext.md b/query-languages/m/time-totext.md index 2b9339c77..294446559 100644 --- a/query-languages/m/time-totext.md +++ b/query-languages/m/time-totext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time.ToText" -title: "Time.ToText | Microsoft Docs" +title: "Time.ToText" ms.date: 6/24/2022 ms.service: powerquery diff --git a/query-languages/m/timezone-current.md b/query-languages/m/timezone-current.md index 7f0cdefd9..1051bba9e 100644 --- a/query-languages/m/timezone-current.md +++ b/query-languages/m/timezone-current.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TimeZone.Current" -title: "TimeZone.Current | Microsoft Docs" +title: "TimeZone.Current" ms.date: 9/13/2021 ms.service: powerquery diff --git a/query-languages/m/tracelevel-type.md b/query-languages/m/tracelevel-type.md index a7074a285..33680023e 100644 --- a/query-languages/m/tracelevel-type.md +++ b/query-languages/m/tracelevel-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TraceLevel.Type" -title: "TraceLevel.Type | Microsoft Docs" +title: "TraceLevel.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/type-addtablekey.md b/query-languages/m/type-addtablekey.md index 83b34c61e..49fa8de69 100644 --- a/query-languages/m/type-addtablekey.md +++ b/query-languages/m/type-addtablekey.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.AddTableKey" -title: "Type.AddTableKey | Microsoft Docs" +title: "Type.AddTableKey" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/type-closedrecord.md b/query-languages/m/type-closedrecord.md index cb83a7d39..40b80eeb5 100644 --- a/query-languages/m/type-closedrecord.md +++ b/query-languages/m/type-closedrecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.ClosedRecord" -title: "Type.ClosedRecord | Microsoft Docs" +title: "Type.ClosedRecord" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 6a8bb2b50..adfa229b5 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type conversion" -title: "Type conversion | Microsoft Docs" +title: "Type conversion" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/type-facets.md b/query-languages/m/type-facets.md index efd814cca..20c4184b6 100644 --- a/query-languages/m/type-facets.md +++ b/query-languages/m/type-facets.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.Facets" -title: "Type.Facets | Microsoft Docs" +title: "Type.Facets" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/type-forfunction.md b/query-languages/m/type-forfunction.md index fcb10d3cb..69412b0fd 100644 --- a/query-languages/m/type-forfunction.md +++ b/query-languages/m/type-forfunction.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.ForFunction" -title: "Type.ForFunction | Microsoft Docs" +title: "Type.ForFunction" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-forrecord.md b/query-languages/m/type-forrecord.md index ab02aaeeb..06d38fc18 100644 --- a/query-languages/m/type-forrecord.md +++ b/query-languages/m/type-forrecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.ForRecord" -title: "Type.ForRecord | Microsoft Docs" +title: "Type.ForRecord" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/type-functionparameters.md b/query-languages/m/type-functionparameters.md index 84cd10a8e..a1af88583 100644 --- a/query-languages/m/type-functionparameters.md +++ b/query-languages/m/type-functionparameters.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.FunctionParameters" -title: "Type.FunctionParameters | Microsoft Docs" +title: "Type.FunctionParameters" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/type-functionrequiredparameters.md b/query-languages/m/type-functionrequiredparameters.md index bba532f38..2454256d9 100644 --- a/query-languages/m/type-functionrequiredparameters.md +++ b/query-languages/m/type-functionrequiredparameters.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.FunctionRequiredParameters" -title: "Type.FunctionRequiredParameters | Microsoft Docs" +title: "Type.FunctionRequiredParameters" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-functionreturn.md b/query-languages/m/type-functionreturn.md index a48bc632e..dd4c9ecc8 100644 --- a/query-languages/m/type-functionreturn.md +++ b/query-languages/m/type-functionreturn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.FunctionReturn" -title: "Type.FunctionReturn | Microsoft Docs" +title: "Type.FunctionReturn" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-functions.md b/query-languages/m/type-functions.md index 91fd23bba..01b3a43c8 100644 --- a/query-languages/m/type-functions.md +++ b/query-languages/m/type-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type functions" -title: "Type functions | Microsoft Docs" +title: "Type functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index 646f0cad1..5731020d1 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.Is" -title: "Type.Is | Microsoft Docs" +title: "Type.Is" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-isnullable.md b/query-languages/m/type-isnullable.md index ef1704515..487f8f6c5 100644 --- a/query-languages/m/type-isnullable.md +++ b/query-languages/m/type-isnullable.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.IsNullable" -title: "Type.IsNullable | Microsoft Docs" +title: "Type.IsNullable" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-isopenrecord.md b/query-languages/m/type-isopenrecord.md index ad6bee811..92ad9ef4e 100644 --- a/query-languages/m/type-isopenrecord.md +++ b/query-languages/m/type-isopenrecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.IsOpenRecord" -title: "Type.IsOpenRecord | Microsoft Docs" +title: "Type.IsOpenRecord" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-listitem.md b/query-languages/m/type-listitem.md index 0bd4d776f..85908ebc5 100644 --- a/query-languages/m/type-listitem.md +++ b/query-languages/m/type-listitem.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.ListItem" -title: "Type.ListItem | Microsoft Docs" +title: "Type.ListItem" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-nonnullable.md b/query-languages/m/type-nonnullable.md index b39d5c057..29df8768a 100644 --- a/query-languages/m/type-nonnullable.md +++ b/query-languages/m/type-nonnullable.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.NonNullable" -title: "Type.NonNullable | Microsoft Docs" +title: "Type.NonNullable" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-openrecord.md b/query-languages/m/type-openrecord.md index ea7b6828c..b859d4d12 100644 --- a/query-languages/m/type-openrecord.md +++ b/query-languages/m/type-openrecord.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.OpenRecord" -title: "Type.OpenRecord | Microsoft Docs" +title: "Type.OpenRecord" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-recordfields.md b/query-languages/m/type-recordfields.md index 1cadfb32b..423569ced 100644 --- a/query-languages/m/type-recordfields.md +++ b/query-languages/m/type-recordfields.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.RecordFields" -title: "Type.RecordFields | Microsoft Docs" +title: "Type.RecordFields" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/type-replacefacets.md b/query-languages/m/type-replacefacets.md index c31ca53d9..ad9c94caf 100644 --- a/query-languages/m/type-replacefacets.md +++ b/query-languages/m/type-replacefacets.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.ReplaceFacets" -title: "Type.ReplaceFacets | Microsoft Docs" +title: "Type.ReplaceFacets" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 1faba54dd..61ad2c70c 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.ReplaceTableKeys" -title: "Type.ReplaceTableKeys | Microsoft Docs" +title: "Type.ReplaceTableKeys" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/type-tablecolumn.md b/query-languages/m/type-tablecolumn.md index ccc22b3aa..234937367 100644 --- a/query-languages/m/type-tablecolumn.md +++ b/query-languages/m/type-tablecolumn.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.TableColumn" -title: "Type.TableColumn | Microsoft Docs" +title: "Type.TableColumn" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index e4139a46e..a89e68142 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.TableKeys" -title: "Type.TableKeys | Microsoft Docs" +title: "Type.TableKeys" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/type-tablerow.md b/query-languages/m/type-tablerow.md index 56e09fecb..f52b43138 100644 --- a/query-languages/m/type-tablerow.md +++ b/query-languages/m/type-tablerow.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.TableRow" -title: "Type.TableRow | Microsoft Docs" +title: "Type.TableRow" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/type-tableschema.md b/query-languages/m/type-tableschema.md index 4e29be9af..d0f864769 100644 --- a/query-languages/m/type-tableschema.md +++ b/query-languages/m/type-tableschema.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.TableSchema" -title: "Type.TableSchema | Microsoft Docs" +title: "Type.TableSchema" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/type-union.md b/query-languages/m/type-union.md index e079e8a22..45822ce38 100644 --- a/query-languages/m/type-union.md +++ b/query-languages/m/type-union.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Type.Union" -title: "Type.Union | Microsoft Docs" +title: "Type.Union" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index b664af41b..10c7e90dd 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Understanding Power Query M functions" -title: "Understanding Power Query M functions | Microsoft Docs" +title: "Understanding Power Query M functions" ms.date: 4/16/2018 ms.service: powerquery diff --git a/query-languages/m/uri-buildquerystring.md b/query-languages/m/uri-buildquerystring.md index 4bef066cd..bc49fe4a9 100644 --- a/query-languages/m/uri-buildquerystring.md +++ b/query-languages/m/uri-buildquerystring.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Uri.BuildQueryString" -title: "Uri.BuildQueryString | Microsoft Docs" +title: "Uri.BuildQueryString" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/uri-combine.md b/query-languages/m/uri-combine.md index 218fc35d7..403c55d2a 100644 --- a/query-languages/m/uri-combine.md +++ b/query-languages/m/uri-combine.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Uri.Combine" -title: "Uri.Combine | Microsoft Docs" +title: "Uri.Combine" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/uri-escapedatastring.md b/query-languages/m/uri-escapedatastring.md index 554ffc27e..78ffac947 100644 --- a/query-languages/m/uri-escapedatastring.md +++ b/query-languages/m/uri-escapedatastring.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Uri.EscapeDataString" -title: "Uri.EscapeDataString | Microsoft Docs" +title: "Uri.EscapeDataString" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/uri-functions.md b/query-languages/m/uri-functions.md index 352290d4b..f015a2c51 100644 --- a/query-languages/m/uri-functions.md +++ b/query-languages/m/uri-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Uri functions" -title: "Uri functions | Microsoft Docs" +title: "Uri functions" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/uri-parts.md b/query-languages/m/uri-parts.md index 6bb427a51..5b2f760c0 100644 --- a/query-languages/m/uri-parts.md +++ b/query-languages/m/uri-parts.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Uri.Parts" -title: "Uri.Parts | Microsoft Docs" +title: "Uri.Parts" ms.date: 3/11/2022 ms.service: powerquery diff --git a/query-languages/m/value-add.md b/query-languages/m/value-add.md index e1f0e467d..8967dc343 100644 --- a/query-languages/m/value-add.md +++ b/query-languages/m/value-add.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Add" -title: "Value.Add | Microsoft Docs" +title: "Value.Add" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-alternates.md b/query-languages/m/value-alternates.md index dd9f58170..4b9505632 100644 --- a/query-languages/m/value-alternates.md +++ b/query-languages/m/value-alternates.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Alternates" -title: "Value.Alternates | Microsoft Docs" +title: "Value.Alternates" ms.date: 5/12/2022 ms.service: powerquery diff --git a/query-languages/m/value-as.md b/query-languages/m/value-as.md index cc6eade90..d8ad5a63c 100644 --- a/query-languages/m/value-as.md +++ b/query-languages/m/value-as.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.As" -title: "Value.As | Microsoft Docs" +title: "Value.As" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/value-compare.md b/query-languages/m/value-compare.md index 2a72f72fa..9cde2ea24 100644 --- a/query-languages/m/value-compare.md +++ b/query-languages/m/value-compare.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Compare" -title: "Value.Compare | Microsoft Docs" +title: "Value.Compare" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-divide.md b/query-languages/m/value-divide.md index 45faf9362..49f55b143 100644 --- a/query-languages/m/value-divide.md +++ b/query-languages/m/value-divide.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Divide" -title: "Value.Divide | Microsoft Docs" +title: "Value.Divide" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-equals.md b/query-languages/m/value-equals.md index 024c5cfc6..57b5fc945 100644 --- a/query-languages/m/value-equals.md +++ b/query-languages/m/value-equals.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Equals" -title: "Value.Equals | Microsoft Docs" +title: "Value.Equals" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-expression.md b/query-languages/m/value-expression.md index 811df67f1..160923234 100644 --- a/query-languages/m/value-expression.md +++ b/query-languages/m/value-expression.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Expression" -title: "Value.Expression | Microsoft Docs" +title: "Value.Expression" ms.date: 3/16/2022 ms.service: powerquery diff --git a/query-languages/m/value-firewall.md b/query-languages/m/value-firewall.md index bf1efaebd..dc5c8b7b0 100644 --- a/query-languages/m/value-firewall.md +++ b/query-languages/m/value-firewall.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Firewall" -title: "Value.Firewall | Microsoft Docs" +title: "Value.Firewall" ms.date: 10/18/2021 ms.service: powerquery diff --git a/query-languages/m/value-fromtext.md b/query-languages/m/value-fromtext.md index 3cf4e431e..3cb6d9877 100644 --- a/query-languages/m/value-fromtext.md +++ b/query-languages/m/value-fromtext.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.FromText" -title: "Value.FromText | Microsoft Docs" +title: "Value.FromText" ms.date: 4/1/2020 ms.service: powerquery diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 2bbf07b95..aeb825592 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value functions" -title: "Value functions | Microsoft Docs" +title: "Value functions" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/value-is.md b/query-languages/m/value-is.md index fbf8fcd0a..f21f39ea5 100644 --- a/query-languages/m/value-is.md +++ b/query-languages/m/value-is.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Is" -title: "Value.Is | Microsoft Docs" +title: "Value.Is" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/value-lineage.md b/query-languages/m/value-lineage.md index 7f5622cb8..2abcb0706 100644 --- a/query-languages/m/value-lineage.md +++ b/query-languages/m/value-lineage.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Lineage" -title: "Value.Lineage | Microsoft Docs" +title: "Value.Lineage" ms.date: 9/22/2020 ms.service: powerquery diff --git a/query-languages/m/value-metadata.md b/query-languages/m/value-metadata.md index 4d21c45a1..1286a1dec 100644 --- a/query-languages/m/value-metadata.md +++ b/query-languages/m/value-metadata.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Metadata" -title: "Value.Metadata | Microsoft Docs" +title: "Value.Metadata" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-multiply.md b/query-languages/m/value-multiply.md index b281e053a..42823e874 100644 --- a/query-languages/m/value-multiply.md +++ b/query-languages/m/value-multiply.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Multiply" -title: "Value.Multiply | Microsoft Docs" +title: "Value.Multiply" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-nativequery.md b/query-languages/m/value-nativequery.md index 179e43df2..2f95aa197 100644 --- a/query-languages/m/value-nativequery.md +++ b/query-languages/m/value-nativequery.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.NativeQuery" -title: "Value.NativeQuery | Microsoft Docs" +title: "Value.NativeQuery" ms.date: 11/17/2021 ms.service: powerquery diff --git a/query-languages/m/value-nullableequals.md b/query-languages/m/value-nullableequals.md index 8bf674d82..b72df6612 100644 --- a/query-languages/m/value-nullableequals.md +++ b/query-languages/m/value-nullableequals.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.NullableEquals" -title: "Value.NullableEquals | Microsoft Docs" +title: "Value.NullableEquals" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-optimize.md b/query-languages/m/value-optimize.md index 722e44b40..1ec346cbf 100644 --- a/query-languages/m/value-optimize.md +++ b/query-languages/m/value-optimize.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Optimize" -title: "Value.Optimize | Microsoft Docs" +title: "Value.Optimize" ms.date: 06/16/2020 ms.service: powerquery diff --git a/query-languages/m/value-removemetadata.md b/query-languages/m/value-removemetadata.md index 34188caa9..3ccb9c8b3 100644 --- a/query-languages/m/value-removemetadata.md +++ b/query-languages/m/value-removemetadata.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.RemoveMetadata" -title: "Value.RemoveMetadata | Microsoft Docs" +title: "Value.RemoveMetadata" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-replacemetadata.md b/query-languages/m/value-replacemetadata.md index c42f5f5e9..44a13e567 100644 --- a/query-languages/m/value-replacemetadata.md +++ b/query-languages/m/value-replacemetadata.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.ReplaceMetadata" -title: "Value.ReplaceMetadata | Microsoft Docs" +title: "Value.ReplaceMetadata" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-replacetype.md b/query-languages/m/value-replacetype.md index fb8cf2654..b1008c4ca 100644 --- a/query-languages/m/value-replacetype.md +++ b/query-languages/m/value-replacetype.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.ReplaceType" -title: "Value.ReplaceType | Microsoft Docs" +title: "Value.ReplaceType" ms.date: 4/13/2022 ms.service: powerquery diff --git a/query-languages/m/value-subtract.md b/query-languages/m/value-subtract.md index 03aabefd9..05856b6ae 100644 --- a/query-languages/m/value-subtract.md +++ b/query-languages/m/value-subtract.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Subtract" -title: "Value.Subtract | Microsoft Docs" +title: "Value.Subtract" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-traits.md b/query-languages/m/value-traits.md index 2e803bab9..64f086774 100644 --- a/query-languages/m/value-traits.md +++ b/query-languages/m/value-traits.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Traits" -title: "Value.Traits | Microsoft Docs" +title: "Value.Traits" ms.date: 9/22/2020 ms.service: powerquery diff --git a/query-languages/m/value-type.md b/query-languages/m/value-type.md index ead1a34c8..d47b6a7ef 100644 --- a/query-languages/m/value-type.md +++ b/query-languages/m/value-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Type" -title: "Value.Type | Microsoft Docs" +title: "Value.Type" ms.date: 8/2/2019 ms.service: powerquery diff --git a/query-languages/m/value-versionidentity.md b/query-languages/m/value-versionidentity.md index b70e6a527..03f638af1 100644 --- a/query-languages/m/value-versionidentity.md +++ b/query-languages/m/value-versionidentity.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.VersionIdentity" -title: "Value.VersionIdentity | Microsoft Docs" +title: "Value.VersionIdentity" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/value-versions.md b/query-languages/m/value-versions.md index cd6da8473..3caf8bcc0 100644 --- a/query-languages/m/value-versions.md +++ b/query-languages/m/value-versions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Value.Versions" -title: "Value.Versions | Microsoft Docs" +title: "Value.Versions" ms.date: 5/19/2022 ms.service: powerquery diff --git a/query-languages/m/variable-value.md b/query-languages/m/variable-value.md index 8d2729236..fceb7c6be 100644 --- a/query-languages/m/variable-value.md +++ b/query-languages/m/variable-value.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Variable.Value" -title: "Variable.Value | Microsoft Docs" +title: "Variable.Value" ms.date: 10/18/2021 ms.service: powerquery diff --git a/query-languages/m/web-browsercontents.md b/query-languages/m/web-browsercontents.md index 01b577c25..1b4da29e2 100644 --- a/query-languages/m/web-browsercontents.md +++ b/query-languages/m/web-browsercontents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Web.BrowserContents" -title: "Web.BrowserContents | Microsoft Docs" +title: "Web.BrowserContents" ms.date: 3/14/2022 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/web-contents.md b/query-languages/m/web-contents.md index de721a6b7..3c43c75e3 100644 --- a/query-languages/m/web-contents.md +++ b/query-languages/m/web-contents.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Web.Contents" -title: "Web.Contents | Microsoft Docs" +title: "Web.Contents" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/web-headers.md b/query-languages/m/web-headers.md index 99484f9c0..c4fcad3f4 100644 --- a/query-languages/m/web-headers.md +++ b/query-languages/m/web-headers.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Web.Headers" -title: "Web.Headers | Microsoft Docs" +title: "Web.Headers" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/web-page.md b/query-languages/m/web-page.md index e6a1afb23..20f4a4eb7 100644 --- a/query-languages/m/web-page.md +++ b/query-languages/m/web-page.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Web.Page" -title: "Web.Page | Microsoft Docs" +title: "Web.Page" ms.date: 10/17/2019 ms.service: powerquery ms.topic: reference diff --git a/query-languages/m/webaction-request.md b/query-languages/m/webaction-request.md index 0f9fc32b7..2b0b0fb63 100644 --- a/query-languages/m/webaction-request.md +++ b/query-languages/m/webaction-request.md @@ -1,6 +1,6 @@ --- description: "Learn more about: WebAction.Request" -title: "WebAction.Request | Microsoft Docs" +title: "WebAction.Request" ms.date: 3/14/2022 ms.service: powerquery diff --git a/query-languages/m/webmethod-type.md b/query-languages/m/webmethod-type.md index ba8e2adbe..0068b5597 100644 --- a/query-languages/m/webmethod-type.md +++ b/query-languages/m/webmethod-type.md @@ -1,6 +1,6 @@ --- description: "Learn more about: WebMethod.Type" -title: "WebMethod.Type | Microsoft Docs" +title: "WebMethod.Type" ms.date: 5/16/2022 ms.service: powerquery diff --git a/query-languages/m/xml-document.md b/query-languages/m/xml-document.md index 309ad3dee..72f3c327e 100644 --- a/query-languages/m/xml-document.md +++ b/query-languages/m/xml-document.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Xml.Document" -title: "Xml.Document | Microsoft Docs" +title: "Xml.Document" ms.date: 7/29/2019 ms.service: powerquery diff --git a/query-languages/m/xml-tables.md b/query-languages/m/xml-tables.md index b26804a26..f92977a18 100644 --- a/query-languages/m/xml-tables.md +++ b/query-languages/m/xml-tables.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Xml.Tables" -title: "Xml.Tables | Microsoft Docs" +title: "Xml.Tables" ms.date: 3/14/2022 ms.service: powerquery From a071849c8ebaa906a0f24e12967a24269e6c5da5 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 29 Jul 2022 20:11:12 -0700 Subject: [PATCH 022/934] Remove Microsoft Docs and spaces --- query-languages/m/accesscontrolkind-type.md | 1 - query-languages/m/binary-functions.md | 1 - query-languages/m/binary-infercontenttype.md | 1 - query-languages/m/binary-length.md | 1 - query-languages/m/binary-tolist.md | 1 - query-languages/m/binary-totext.md | 1 - query-languages/m/binaryencoding-type.md | 1 - query-languages/m/binaryformat-7bitencodedsignedinteger.md | 1 - query-languages/m/binaryformat-7bitencodedunsignedinteger.md | 1 - query-languages/m/binaryformat-binary.md | 1 - query-languages/m/binaryformat-byte.md | 1 - query-languages/m/binaryformat-byteorder.md | 1 - query-languages/m/binaryformat-choice.md | 1 - query-languages/m/binaryformat-decimal.md | 1 - query-languages/m/binaryformat-double.md | 1 - query-languages/m/binaryformat-group.md | 1 - query-languages/m/binaryformat-length.md | 1 - query-languages/m/binaryformat-list.md | 1 - query-languages/m/binaryformat-null.md | 1 - query-languages/m/binaryformat-record.md | 1 - query-languages/m/binaryformat-signedinteger16.md | 1 - query-languages/m/binaryformat-signedinteger32.md | 1 - query-languages/m/binaryformat-signedinteger64.md | 1 - query-languages/m/binaryformat-single.md | 1 - query-languages/m/binaryformat-text.md | 1 - query-languages/m/binaryformat-transform.md | 1 - query-languages/m/binaryformat-unsignedinteger16.md | 1 - query-languages/m/binaryformat-unsignedinteger32.md | 1 - query-languages/m/binaryformat-unsignedinteger64.md | 1 - query-languages/m/binaryoccurrence-type.md | 1 - query-languages/m/buffermode-type.md | 1 - query-languages/m/byte-from.md | 1 - query-languages/m/byteorder-type.md | 1 - query-languages/m/cdm-contents.md | 1 - query-languages/m/character-fromnumber.md | 1 - query-languages/m/character-tonumber.md | 1 - query-languages/m/combiner-combinetextbydelimiter.md | 1 - query-languages/m/combiner-combinetextbyeachdelimiter.md | 1 - query-languages/m/combiner-combinetextbylengths.md | 1 - query-languages/m/combiner-combinetextbypositions.md | 1 - query-languages/m/combiner-combinetextbyranges.md | 1 - query-languages/m/combiner-functions.md | 1 - query-languages/m/comparer-equals.md | 1 - query-languages/m/comparer-fromculture.md | 1 - query-languages/m/comparer-functions.md | 1 - query-languages/m/comparer-ordinal.md | 1 - query-languages/m/comparer-ordinalignorecase.md | 1 - query-languages/m/compression-type.md | 1 - query-languages/m/constants.md | 1 - query-languages/m/csv-document.md | 1 - query-languages/m/csvstyle-type.md | 1 - query-languages/m/cube-addandexpanddimensioncolumn.md | 1 - query-languages/m/cube-addmeasurecolumn.md | 1 - query-languages/m/cube-applyparameter.md | 1 - query-languages/m/cube-attributememberid.md | 1 - query-languages/m/cube-attributememberproperty.md | 1 - query-languages/m/cube-collapseandremovecolumns.md | 1 - query-languages/m/cube-dimensions.md | 1 - query-languages/m/cube-displayfolders.md | 1 - query-languages/m/cube-measureproperties.md | 1 - query-languages/m/cube-measureproperty.md | 3 +-- query-languages/m/cube-measures.md | 1 - query-languages/m/cube-parameters.md | 1 - query-languages/m/cube-properties.md | 1 - query-languages/m/cube-propertykey.md | 1 - query-languages/m/cube-replacedimensions.md | 1 - query-languages/m/cube-transform.md | 1 - query-languages/m/culture-current.md | 1 - query-languages/m/currency-from.md | 1 - query-languages/m/date-adddays.md | 1 - query-languages/m/date-addmonths.md | 1 - query-languages/m/date-addquarters.md | 1 - query-languages/m/date-addweeks.md | 1 - query-languages/m/date-addyears.md | 1 - query-languages/m/date-day.md | 1 - query-languages/m/date-dayofweek.md | 1 - query-languages/m/date-dayofweekname.md | 1 - query-languages/m/date-dayofyear.md | 1 - query-languages/m/date-daysinmonth.md | 1 - query-languages/m/date-endofday.md | 1 - query-languages/m/date-endofmonth.md | 1 - query-languages/m/date-endofquarter.md | 1 - query-languages/m/date-endofweek.md | 1 - query-languages/m/date-endofyear.md | 1 - query-languages/m/date-from.md | 1 - query-languages/m/date-fromtext.md | 1 - query-languages/m/date-functions.md | 1 - query-languages/m/date-isincurrentday.md | 1 - query-languages/m/date-isincurrentmonth.md | 1 - query-languages/m/date-isincurrentquarter.md | 1 - query-languages/m/date-isincurrentweek.md | 1 - query-languages/m/date-isincurrentyear.md | 1 - query-languages/m/date-isinnextday.md | 1 - query-languages/m/date-isinnextmonth.md | 1 - query-languages/m/date-isinnextndays.md | 1 - query-languages/m/date-isinnextnmonths.md | 1 - query-languages/m/date-isinnextnquarters.md | 1 - query-languages/m/date-isinnextnweeks.md | 1 - query-languages/m/date-isinnextnyears.md | 1 - query-languages/m/date-isinnextquarter.md | 1 - query-languages/m/date-isinnextweek.md | 1 - query-languages/m/date-isinnextyear.md | 1 - query-languages/m/date-isinpreviousday.md | 1 - query-languages/m/date-isinpreviousmonth.md | 1 - query-languages/m/date-isinpreviousndays.md | 1 - query-languages/m/date-isinpreviousnmonths.md | 1 - query-languages/m/date-isinpreviousnquarters.md | 1 - query-languages/m/date-isinpreviousnweeks.md | 1 - query-languages/m/date-isinpreviousnyears.md | 1 - query-languages/m/date-isinpreviousquarter.md | 1 - query-languages/m/date-isinpreviousweek.md | 1 - query-languages/m/date-isinpreviousyear.md | 1 - query-languages/m/date-isinyeartodate.md | 1 - query-languages/m/date-isleapyear.md | 1 - query-languages/m/date-month.md | 1 - query-languages/m/date-monthname.md | 1 - query-languages/m/date-quarterofyear.md | 1 - query-languages/m/date-startofday.md | 1 - query-languages/m/date-startofmonth.md | 1 - query-languages/m/date-startofquarter.md | 1 - query-languages/m/date-startofweek.md | 1 - query-languages/m/date-startofyear.md | 1 - query-languages/m/date-torecord.md | 1 - query-languages/m/date-totext.md | 1 - query-languages/m/date-weekofmonth.md | 1 - query-languages/m/date-weekofyear.md | 1 - query-languages/m/date-year.md | 1 - query-languages/m/datetime-addzone.md | 1 - query-languages/m/datetime-date.md | 1 - query-languages/m/datetime-fixedlocalnow.md | 1 - query-languages/m/datetime-from.md | 1 - query-languages/m/datetime-fromfiletime.md | 1 - query-languages/m/datetime-fromtext.md | 1 - query-languages/m/datetime-functions.md | 1 - query-languages/m/datetime-isincurrenthour.md | 1 - query-languages/m/datetime-isincurrentminute.md | 1 - query-languages/m/datetime-isincurrentsecond.md | 1 - query-languages/m/datetime-isinnexthour.md | 1 - query-languages/m/datetime-isinnextminute.md | 1 - query-languages/m/datetime-isinnextnhours.md | 1 - query-languages/m/datetime-isinnextnminutes.md | 1 - query-languages/m/datetime-isinnextnseconds.md | 1 - query-languages/m/datetime-isinnextsecond.md | 1 - query-languages/m/datetime-isinprevioushour.md | 1 - query-languages/m/datetime-isinpreviousminute.md | 1 - query-languages/m/datetime-isinpreviousnhours.md | 1 - query-languages/m/datetime-isinpreviousnminutes.md | 1 - query-languages/m/datetime-isinpreviousnseconds.md | 1 - query-languages/m/datetime-isinprevioussecond.md | 1 - query-languages/m/datetime-localnow.md | 1 - query-languages/m/datetime-time.md | 1 - query-languages/m/datetime-torecord.md | 1 - query-languages/m/datetime-totext.md | 1 - query-languages/m/datetimezone-fixedlocalnow.md | 1 - query-languages/m/datetimezone-fixedutcnow.md | 1 - query-languages/m/datetimezone-from.md | 1 - query-languages/m/datetimezone-fromfiletime.md | 1 - query-languages/m/datetimezone-fromtext.md | 1 - query-languages/m/datetimezone-functions.md | 1 - query-languages/m/datetimezone-localnow.md | 1 - query-languages/m/datetimezone-removezone.md | 1 - query-languages/m/datetimezone-switchzone.md | 1 - query-languages/m/datetimezone-tolocal.md | 1 - query-languages/m/datetimezone-torecord.md | 1 - query-languages/m/datetimezone-totext.md | 1 - query-languages/m/datetimezone-toutc.md | 1 - query-languages/m/datetimezone-utcnow.md | 1 - query-languages/m/datetimezone-zonehours.md | 1 - query-languages/m/datetimezone-zoneminutes.md | 1 - query-languages/m/day-type.md | 1 - query-languages/m/decimal-from.md | 1 - query-languages/m/diagnostics-activityid.md | 1 - query-languages/m/diagnostics-trace.md | 1 - query-languages/m/directquerycapabilities-from.md | 1 - query-languages/m/duration-days.md | 1 - query-languages/m/duration-from.md | 1 - query-languages/m/duration-fromtext.md | 1 - query-languages/m/duration-functions.md | 1 - query-languages/m/duration-hours.md | 1 - query-languages/m/duration-minutes.md | 1 - query-languages/m/duration-seconds.md | 1 - query-languages/m/duration-torecord.md | 1 - query-languages/m/duration-totaldays.md | 1 - query-languages/m/duration-totalhours.md | 1 - query-languages/m/duration-totalminutes.md | 1 - query-languages/m/duration-totalseconds.md | 1 - query-languages/m/duration-totext.md | 1 - query-languages/m/dynamic-values.md | 1 - query-languages/m/embedded-value.md | 1 - query-languages/m/error-handling.md | 1 - query-languages/m/error-record.md | 1 - query-languages/m/errors.md | 1 - query-languages/m/evaluation-model.md | 1 - query-languages/m/excel-currentworkbook.md | 1 - query-languages/m/excel-shapetable.md | 1 - query-languages/m/excel-workbook.md | 1 - query-languages/m/exchange-contents.md | 1 - query-languages/m/expressions-values-and-let-expression.md | 1 - query-languages/m/function-from.md | 1 - query-languages/m/function-invoke.md | 1 - query-languages/m/function-invokeafter.md | 1 - query-languages/m/function-isdatasource.md | 1 - query-languages/m/function-scalarvector.md | 1 - query-languages/m/function-values.md | 1 - query-languages/m/geography-fromwellknowntext.md | 1 - query-languages/m/geography-towellknowntext.md | 1 - query-languages/m/geographypoint-from.md | 1 - query-languages/m/geometry-fromwellknowntext.md | 1 - query-languages/m/geometry-towellknowntext.md | 1 - query-languages/m/geometrypoint-from.md | 1 - query-languages/m/googleanalytics-accounts.md | 1 - query-languages/m/graph-nodes.md | 1 - query-languages/m/guid-from.md | 1 - query-languages/m/hdfs-contents.md | 1 - query-languages/m/hdfs-files.md | 1 - query-languages/m/hdinsight-containers.md | 1 - query-languages/m/hdinsight-contents.md | 1 - query-languages/m/hdinsight-files.md | 1 - query-languages/m/identity-from.md | 1 - query-languages/m/identity-ismemberof.md | 1 - query-languages/m/identityprovider-default.md | 1 - query-languages/m/int16-from.md | 1 - query-languages/m/int32-from.md | 1 - query-languages/m/int64-from.md | 1 - query-languages/m/int8-from.md | 1 - query-languages/m/itemexpression-from.md | 1 - query-languages/m/itemexpression-item.md | 1 - query-languages/m/json-document.md | 1 - query-languages/m/json-fromvalue.md | 1 - query-languages/m/limitclausekind-type.md | 1 - query-languages/m/lines-frombinary.md | 1 - query-languages/m/lines-fromtext.md | 1 - query-languages/m/lines-functions.md | 1 - query-languages/m/lines-tobinary.md | 1 - query-languages/m/lines-totext.md | 1 - query-languages/m/list-accumulate.md | 1 - query-languages/m/list-alltrue.md | 1 - query-languages/m/list-alternate.md | 1 - query-languages/m/list-anytrue.md | 1 - query-languages/m/list-average.md | 1 - query-languages/m/list-buffer.md | 1 - query-languages/m/list-combine.md | 1 - query-languages/m/list-conformtopagereader.md | 1 - query-languages/m/list-contains.md | 1 - query-languages/m/list-containsall.md | 1 - query-languages/m/list-containsany.md | 1 - query-languages/m/list-count.md | 1 - query-languages/m/list-covariance.md | 1 - query-languages/m/list-dates.md | 1 - query-languages/m/list-datetimes.md | 1 - query-languages/m/list-datetimezones.md | 1 - query-languages/m/list-difference.md | 1 - query-languages/m/list-distinct.md | 1 - query-languages/m/list-durations.md | 1 - query-languages/m/list-findtext.md | 1 - query-languages/m/list-first.md | 1 - query-languages/m/list-firstn.md | 1 - query-languages/m/list-functions.md | 1 - query-languages/m/list-generate.md | 1 - query-languages/m/list-insertrange.md | 1 - query-languages/m/list-intersect.md | 1 - query-languages/m/list-isdistinct.md | 1 - query-languages/m/list-isempty.md | 1 - query-languages/m/list-last.md | 1 - query-languages/m/list-lastn.md | 1 - query-languages/m/list-matchesall.md | 1 - query-languages/m/list-matchesany.md | 1 - query-languages/m/list-max.md | 1 - query-languages/m/list-maxn.md | 1 - query-languages/m/list-median.md | 1 - query-languages/m/list-min.md | 1 - query-languages/m/list-minn.md | 1 - query-languages/m/list-mode.md | 1 - query-languages/m/list-modes.md | 1 - query-languages/m/list-nonnullcount.md | 1 - query-languages/m/list-numbers.md | 1 - query-languages/m/list-positionof.md | 1 - query-languages/m/list-positionofany.md | 1 - query-languages/m/list-positions.md | 1 - query-languages/m/list-product.md | 1 - query-languages/m/list-random.md | 1 - query-languages/m/list-range.md | 1 - query-languages/m/list-removefirstn.md | 1 - query-languages/m/list-removeitems.md | 1 - query-languages/m/list-removelastn.md | 1 - query-languages/m/list-removematchingitems.md | 1 - query-languages/m/list-removenulls.md | 1 - query-languages/m/list-removerange.md | 1 - query-languages/m/list-repeat.md | 1 - query-languages/m/list-replacematchingitems.md | 1 - query-languages/m/list-replacerange.md | 1 - query-languages/m/list-replacevalue.md | 1 - query-languages/m/list-reverse.md | 1 - query-languages/m/list-select.md | 1 - query-languages/m/list-single.md | 1 - query-languages/m/list-singleordefault.md | 1 - query-languages/m/list-skip.md | 1 - query-languages/m/list-sort.md | 1 - query-languages/m/list-split.md | 1 - query-languages/m/list-standarddeviation.md | 1 - query-languages/m/list-sum.md | 1 - query-languages/m/list-times.md | 1 - query-languages/m/list-transform.md | 1 - query-languages/m/list-transformmany.md | 1 - query-languages/m/list-union.md | 1 - query-languages/m/list-zip.md | 1 - query-languages/m/logical-from.md | 1 - query-languages/m/logical-fromtext.md | 1 - query-languages/m/logical-functions.md | 1 - query-languages/m/logical-totext.md | 1 - query-languages/m/m-spec-basic-concepts.md | 4 +--- query-languages/m/m-spec-conditionals.md | 4 +--- query-languages/m/m-spec-consolidated-grammar.md | 4 +--- query-languages/m/m-spec-error-handling.md | 4 +--- query-languages/m/m-spec-functions.md | 4 +--- query-languages/m/m-spec-introduction.md | 4 +--- query-languages/m/m-spec-let.md | 4 +--- query-languages/m/m-spec-lexical-structure.md | 4 +--- query-languages/m/m-spec-operators.md | 4 +--- query-languages/m/m-spec-sections.md | 4 +--- query-languages/m/m-spec-types.md | 4 +--- query-languages/m/m-spec-values.md | 4 +--- query-languages/m/metadata.md | 1 - query-languages/m/missingfield-type.md | 1 - query-languages/m/number-abs.md | 1 - query-languages/m/number-acos.md | 1 - query-languages/m/number-asin.md | 1 - query-languages/m/number-atan.md | 1 - query-languages/m/number-atan2.md | 1 - query-languages/m/number-bitwiseand.md | 1 - query-languages/m/number-bitwisenot.md | 1 - query-languages/m/number-bitwiseor.md | 1 - query-languages/m/number-bitwiseshiftleft.md | 1 - query-languages/m/number-bitwiseshiftright.md | 1 - query-languages/m/number-bitwisexor.md | 1 - query-languages/m/number-combinations.md | 1 - query-languages/m/number-cos.md | 1 - query-languages/m/number-cosh.md | 1 - query-languages/m/number-e.md | 1 - query-languages/m/number-epsilon.md | 1 - query-languages/m/number-exp.md | 1 - query-languages/m/number-factorial.md | 1 - query-languages/m/number-from.md | 1 - query-languages/m/number-fromtext.md | 1 - query-languages/m/number-functions.md | 1 - query-languages/m/number-integerdivide.md | 1 - query-languages/m/number-iseven.md | 1 - query-languages/m/number-isnan.md | 1 - query-languages/m/number-isodd.md | 1 - query-languages/m/number-ln.md | 1 - query-languages/m/number-log.md | 1 - query-languages/m/number-log10.md | 1 - query-languages/m/number-mod.md | 1 - query-languages/m/number-nan.md | 1 - query-languages/m/number-negativeinfinity.md | 1 - query-languages/m/number-permutations.md | 1 - query-languages/m/number-pi.md | 1 - query-languages/m/number-positiveinfinity.md | 1 - query-languages/m/number-power.md | 1 - query-languages/m/number-random.md | 1 - query-languages/m/number-randombetween.md | 1 - query-languages/m/number-round.md | 1 - query-languages/m/number-roundawayfromzero.md | 1 - query-languages/m/number-rounddown.md | 1 - query-languages/m/number-roundtowardzero.md | 1 - query-languages/m/number-roundup.md | 1 - query-languages/m/number-sign.md | 1 - query-languages/m/number-sin.md | 1 - query-languages/m/number-sinh.md | 1 - query-languages/m/number-sqrt.md | 1 - query-languages/m/number-tan.md | 1 - query-languages/m/number-tanh.md | 1 - query-languages/m/number-totext.md | 1 - query-languages/m/occurrence-type.md | 1 - query-languages/m/odata-feed.md | 1 - query-languages/m/odataomitvalues-type.md | 1 - query-languages/m/odbc-inferoptions.md | 1 - query-languages/m/operators.md | 1 - query-languages/m/order-type.md | 1 - query-languages/m/percentage-from.md | 1 - query-languages/m/percentilemode-type.md | 1 - query-languages/m/power-query-m-type-system.md | 1 - query-languages/m/precision-type.md | 1 - query-languages/m/quotestyle-type.md | 1 - query-languages/m/rankkind-type.md | 1 - query-languages/m/rdata-frombinary.md | 1 - query-languages/m/record-addfield.md | 1 - query-languages/m/record-combine.md | 1 - query-languages/m/record-field.md | 1 - query-languages/m/record-fieldcount.md | 1 - query-languages/m/record-fieldnames.md | 1 - query-languages/m/record-fieldordefault.md | 1 - query-languages/m/record-fieldvalues.md | 1 - query-languages/m/record-fromlist.md | 1 - query-languages/m/record-fromtable.md | 1 - query-languages/m/record-functions.md | 1 - query-languages/m/record-hasfields.md | 1 - query-languages/m/record-removefields.md | 1 - query-languages/m/record-renamefields.md | 1 - query-languages/m/record-reorderfields.md | 1 - query-languages/m/record-selectfields.md | 1 - query-languages/m/record-tolist.md | 1 - query-languages/m/record-totable.md | 1 - query-languages/m/record-transformfields.md | 1 - query-languages/m/relativeposition-type.md | 1 - query-languages/m/replacer-functions.md | 1 - query-languages/m/replacer-replacetext.md | 1 - query-languages/m/replacer-replacevalue.md | 1 - query-languages/m/roundingmode-type.md | 1 - query-languages/m/rowexpression-column.md | 1 - query-languages/m/rowexpression-from.md | 1 - query-languages/m/rowexpression-row.md | 1 - query-languages/m/sapbusinesswarehouse-cubes.md | 1 - query-languages/m/sapbusinesswarehouseexecutionmode-type.md | 1 - query-languages/m/saphana-database.md | 1 - query-languages/m/saphanadistribution-type.md | 1 - query-languages/m/saphanarangeoperator-type.md | 1 - query-languages/m/sharepoint-contents.md | 1 - query-languages/m/sharepoint-files.md | 1 - query-languages/m/sharepoint-tables.md | 1 - query-languages/m/sharpbinary.md | 1 - query-languages/m/sharpdate.md | 1 - query-languages/m/sharpdatetime.md | 1 - query-languages/m/sharpdatetimezone.md | 1 - query-languages/m/sharpduration.md | 1 - query-languages/m/sharptable.md | 1 - query-languages/m/sharptime.md | 1 - query-languages/m/single-from.md | 1 - query-languages/m/soda-feed.md | 1 - query-languages/m/splitter-functions.md | 1 - query-languages/m/splitter-splitbynothing.md | 1 - query-languages/m/splitter-splittextbyanydelimiter.md | 1 - query-languages/m/splitter-splittextbydelimiter.md | 1 - query-languages/m/splitter-splittextbyeachdelimiter.md | 1 - query-languages/m/splitter-splittextbylengths.md | 1 - query-languages/m/splitter-splittextbypositions.md | 1 - query-languages/m/splitter-splittextbyranges.md | 1 - query-languages/m/splitter-splittextbyrepeatedlengths.md | 1 - query-languages/m/splitter-splittextbywhitespace.md | 1 - query-languages/m/sqlexpression-schemafrom.md | 1 - query-languages/m/sqlexpression-toexpression.md | 1 - query-languages/m/table-addcolumn.md | 1 - query-languages/m/table-addfuzzyclustercolumn.md | 1 - query-languages/m/table-addindexcolumn.md | 1 - query-languages/m/table-addjoincolumn.md | 1 - query-languages/m/table-addkey.md | 1 - query-languages/m/table-addrankcolumn.md | 1 - query-languages/m/table-aggregatetablecolumn.md | 1 - query-languages/m/table-alternaterows.md | 1 - query-languages/m/table-approximaterowcount.md | 1 - query-languages/m/table-buffer.md | 1 - query-languages/m/table-column.md | 1 - query-languages/m/table-columncount.md | 1 - query-languages/m/table-columnnames.md | 1 - query-languages/m/table-columnsoftype.md | 1 - query-languages/m/table-combine.md | 1 - query-languages/m/table-combinecolumns.md | 1 - query-languages/m/table-combinecolumnstorecord.md | 1 - query-languages/m/table-conformtopagereader.md | 1 - query-languages/m/table-contains.md | 1 - query-languages/m/table-containsall.md | 1 - query-languages/m/table-containsany.md | 1 - query-languages/m/table-demoteheaders.md | 1 - query-languages/m/table-duplicatecolumn.md | 1 - query-languages/m/table-expandlistcolumn.md | 1 - query-languages/m/table-expandrecordcolumn.md | 1 - query-languages/m/table-expandtablecolumn.md | 1 - query-languages/m/table-filldown.md | 1 - query-languages/m/table-fillup.md | 1 - query-languages/m/table-filterwithdatatable.md | 1 - query-languages/m/table-findtext.md | 1 - query-languages/m/table-first.md | 1 - query-languages/m/table-firstn.md | 1 - query-languages/m/table-firstvalue.md | 1 - query-languages/m/table-fromcolumns.md | 1 - query-languages/m/table-fromlist.md | 1 - query-languages/m/table-frompartitions.md | 1 - query-languages/m/table-fromrecords.md | 1 - query-languages/m/table-fromrows.md | 1 - query-languages/m/table-fromvalue.md | 1 - query-languages/m/table-fuzzygroup.md | 1 - query-languages/m/table-fuzzyjoin.md | 1 - query-languages/m/table-fuzzynestedjoin.md | 1 - query-languages/m/table-group.md | 1 - query-languages/m/table-hascolumns.md | 1 - query-languages/m/table-insertrows.md | 1 - query-languages/m/table-isdistinct.md | 1 - query-languages/m/table-isempty.md | 1 - query-languages/m/table-join.md | 1 - query-languages/m/table-keys.md | 1 - query-languages/m/table-last.md | 1 - query-languages/m/table-lastn.md | 1 - query-languages/m/table-matchesallrows.md | 1 - query-languages/m/table-matchesanyrows.md | 1 - query-languages/m/table-max.md | 1 - query-languages/m/table-maxn.md | 1 - query-languages/m/table-min.md | 1 - query-languages/m/table-minn.md | 1 - query-languages/m/table-nestedjoin.md | 1 - query-languages/m/table-partition.md | 1 - query-languages/m/table-partitionvalues.md | 1 - query-languages/m/table-pivot.md | 1 - query-languages/m/table-positionof.md | 1 - query-languages/m/table-positionofany.md | 1 - query-languages/m/table-prefixcolumns.md | 1 - query-languages/m/table-profile.md | 1 - query-languages/m/table-promoteheaders.md | 1 - query-languages/m/table-range.md | 1 - query-languages/m/table-removecolumns.md | 1 - query-languages/m/table-removelastn.md | 1 - query-languages/m/table-removematchingrows.md | 1 - query-languages/m/table-removerows.md | 1 - query-languages/m/table-removerowswitherrors.md | 1 - query-languages/m/table-renamecolumns.md | 1 - query-languages/m/table-reordercolumns.md | 1 - query-languages/m/table-repeat.md | 1 - query-languages/m/table-replaceerrorvalues.md | 1 - query-languages/m/table-replacekeys.md | 1 - query-languages/m/table-replacematchingrows.md | 1 - query-languages/m/table-replacerelationshipidentity.md | 1 - query-languages/m/table-replacerows.md | 1 - query-languages/m/table-replacevalue.md | 1 - query-languages/m/table-reverserows.md | 1 - query-languages/m/table-rowcount.md | 1 - query-languages/m/table-schema.md | 1 - query-languages/m/table-selectcolumns.md | 1 - query-languages/m/table-selectrows.md | 1 - query-languages/m/table-selectrowswitherrors.md | 1 - query-languages/m/table-singlerow.md | 1 - query-languages/m/table-sort.md | 1 - query-languages/m/table-split.md | 1 - query-languages/m/table-splitat.md | 1 - query-languages/m/table-splitcolumn.md | 1 - query-languages/m/table-stopfolding.md | 1 - query-languages/m/table-tocolumns.md | 1 - query-languages/m/table-tolist.md | 1 - query-languages/m/table-torecords.md | 1 - query-languages/m/table-torows.md | 1 - query-languages/m/table-transformcolumnnames.md | 1 - query-languages/m/table-transformcolumns.md | 1 - query-languages/m/table-transformcolumntypes.md | 1 - query-languages/m/table-transformrows.md | 1 - query-languages/m/table-transpose.md | 1 - query-languages/m/table-unpivot.md | 1 - query-languages/m/table-unpivotothercolumns.md | 1 - query-languages/m/table-view.md | 1 - query-languages/m/table-viewerror.md | 1 - query-languages/m/table-viewfunction.md | 1 - query-languages/m/tables-getrelationships.md | 1 - query-languages/m/text-afterdelimiter.md | 1 - query-languages/m/text-at.md | 1 - query-languages/m/text-beforedelimiter.md | 1 - query-languages/m/text-betweendelimiters.md | 1 - query-languages/m/text-combine.md | 1 - query-languages/m/text-contains.md | 1 - query-languages/m/text-end.md | 1 - query-languages/m/text-endswith.md | 1 - query-languages/m/text-format.md | 1 - query-languages/m/text-from.md | 1 - query-languages/m/text-frombinary.md | 1 - query-languages/m/text-functions.md | 1 - query-languages/m/text-infernumbertype.md | 1 - query-languages/m/text-insert.md | 1 - query-languages/m/text-length.md | 1 - query-languages/m/text-lower.md | 1 - query-languages/m/text-middle.md | 1 - query-languages/m/text-newguid.md | 1 - query-languages/m/text-padend.md | 1 - query-languages/m/text-padstart.md | 1 - query-languages/m/text-positionof.md | 1 - query-languages/m/text-positionofany.md | 1 - query-languages/m/text-proper.md | 1 - query-languages/m/text-range.md | 1 - query-languages/m/text-remove.md | 1 - query-languages/m/text-removerange.md | 1 - query-languages/m/text-repeat.md | 1 - query-languages/m/text-replace.md | 1 - query-languages/m/text-replacerange.md | 1 - query-languages/m/text-reverse.md | 3 +-- query-languages/m/text-select.md | 1 - query-languages/m/text-split.md | 1 - query-languages/m/text-splitany.md | 1 - query-languages/m/text-start.md | 1 - query-languages/m/text-startswith.md | 1 - query-languages/m/text-tobinary.md | 1 - query-languages/m/text-tolist.md | 1 - query-languages/m/text-trim.md | 1 - query-languages/m/text-trimend.md | 1 - query-languages/m/text-trimstart.md | 1 - query-languages/m/textencoding-type.md | 1 - query-languages/m/time-endofhour.md | 1 - query-languages/m/time-from.md | 1 - query-languages/m/time-fromtext.md | 1 - query-languages/m/time-functions.md | 1 - query-languages/m/time-hour.md | 1 - query-languages/m/time-minute.md | 1 - query-languages/m/time-second.md | 1 - query-languages/m/time-startofhour.md | 1 - query-languages/m/time-torecord.md | 1 - query-languages/m/time-totext.md | 1 - query-languages/m/timezone-current.md | 1 - query-languages/m/tracelevel-type.md | 1 - query-languages/m/type-addtablekey.md | 1 - query-languages/m/type-closedrecord.md | 1 - query-languages/m/type-conversion.md | 1 - query-languages/m/type-facets.md | 1 - query-languages/m/type-forfunction.md | 1 - query-languages/m/type-forrecord.md | 1 - query-languages/m/type-functionparameters.md | 1 - query-languages/m/type-functionrequiredparameters.md | 1 - query-languages/m/type-functionreturn.md | 1 - query-languages/m/type-functions.md | 1 - query-languages/m/type-is.md | 1 - query-languages/m/type-isnullable.md | 1 - query-languages/m/type-isopenrecord.md | 1 - query-languages/m/type-listitem.md | 1 - query-languages/m/type-nonnullable.md | 1 - query-languages/m/type-openrecord.md | 1 - query-languages/m/type-recordfields.md | 1 - query-languages/m/type-replacefacets.md | 1 - query-languages/m/type-replacetablekeys.md | 1 - query-languages/m/type-tablecolumn.md | 1 - query-languages/m/type-tablekeys.md | 1 - query-languages/m/type-tablerow.md | 1 - query-languages/m/type-tableschema.md | 1 - query-languages/m/type-union.md | 1 - query-languages/m/understanding-power-query-m-functions.md | 1 - query-languages/m/uri-buildquerystring.md | 1 - query-languages/m/uri-combine.md | 1 - query-languages/m/uri-escapedatastring.md | 1 - query-languages/m/uri-functions.md | 1 - query-languages/m/uri-parts.md | 1 - query-languages/m/value-add.md | 1 - query-languages/m/value-alternates.md | 1 - query-languages/m/value-as.md | 1 - query-languages/m/value-compare.md | 1 - query-languages/m/value-divide.md | 1 - query-languages/m/value-equals.md | 1 - query-languages/m/value-expression.md | 1 - query-languages/m/value-firewall.md | 1 - query-languages/m/value-fromtext.md | 1 - query-languages/m/value-functions.md | 1 - query-languages/m/value-is.md | 1 - query-languages/m/value-lineage.md | 1 - query-languages/m/value-metadata.md | 1 - query-languages/m/value-multiply.md | 1 - query-languages/m/value-nativequery.md | 1 - query-languages/m/value-nullableequals.md | 1 - query-languages/m/value-optimize.md | 1 - query-languages/m/value-removemetadata.md | 1 - query-languages/m/value-replacemetadata.md | 1 - query-languages/m/value-replacetype.md | 1 - query-languages/m/value-subtract.md | 1 - query-languages/m/value-traits.md | 1 - query-languages/m/value-type.md | 1 - query-languages/m/value-versionidentity.md | 1 - query-languages/m/value-versions.md | 1 - query-languages/m/variable-value.md | 1 - query-languages/m/web-contents.md | 1 - query-languages/m/web-headers.md | 1 - query-languages/m/webaction-request.md | 1 - query-languages/m/webmethod-type.md | 1 - query-languages/m/xml-document.md | 1 - query-languages/m/xml-tables.md | 1 - 664 files changed, 14 insertions(+), 690 deletions(-) diff --git a/query-languages/m/accesscontrolkind-type.md b/query-languages/m/accesscontrolkind-type.md index c1ac7274d..89c87b58a 100644 --- a/query-languages/m/accesscontrolkind-type.md +++ b/query-languages/m/accesscontrolkind-type.md @@ -3,7 +3,6 @@ description: "Learn more about: AccessControlKind.Type" title: "AccessControlKind.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-functions.md b/query-languages/m/binary-functions.md index ec8d71bd5..5b53a0da4 100644 --- a/query-languages/m/binary-functions.md +++ b/query-languages/m/binary-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary functions" title: "Binary functions" ms.date: 7/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-infercontenttype.md b/query-languages/m/binary-infercontenttype.md index d3c3ee1c3..87e8dfc1f 100644 --- a/query-languages/m/binary-infercontenttype.md +++ b/query-languages/m/binary-infercontenttype.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.InferContentType" title: "Binary.InferContentType" ms.date: 4/17/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-length.md b/query-languages/m/binary-length.md index 5098608e3..0cfe8ad28 100644 --- a/query-languages/m/binary-length.md +++ b/query-languages/m/binary-length.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.Length" title: "Binary.Length" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-tolist.md b/query-languages/m/binary-tolist.md index fb0080481..01d593945 100644 --- a/query-languages/m/binary-tolist.md +++ b/query-languages/m/binary-tolist.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.ToList" title: "Binary.ToList" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binary-totext.md b/query-languages/m/binary-totext.md index 1a1e5b68b..1e3bf27df 100644 --- a/query-languages/m/binary-totext.md +++ b/query-languages/m/binary-totext.md @@ -3,7 +3,6 @@ description: "Learn more about: Binary.ToText" title: "Binary.ToText" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryencoding-type.md b/query-languages/m/binaryencoding-type.md index 674ca145e..54c00ec48 100644 --- a/query-languages/m/binaryencoding-type.md +++ b/query-languages/m/binaryencoding-type.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryEncoding.Type" title: "BinaryEncoding.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-7bitencodedsignedinteger.md b/query-languages/m/binaryformat-7bitencodedsignedinteger.md index fb06b141e..a5a5d280e 100644 --- a/query-languages/m/binaryformat-7bitencodedsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedsignedinteger.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.7BitEncodedSignedInteger" title: "BinaryFormat.7BitEncodedSignedInteger" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md index c79bcbc33..34f1ecb0a 100644 --- a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.7BitEncodedUnsignedInteger" title: "BinaryFormat.7BitEncodedUnsignedInteger" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-binary.md b/query-languages/m/binaryformat-binary.md index 76155396a..127306fe0 100644 --- a/query-languages/m/binaryformat-binary.md +++ b/query-languages/m/binaryformat-binary.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Binary" title: "BinaryFormat.Binary" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-byte.md b/query-languages/m/binaryformat-byte.md index e08f1210d..66c5ce4d2 100644 --- a/query-languages/m/binaryformat-byte.md +++ b/query-languages/m/binaryformat-byte.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Byte" title: "BinaryFormat.Byte" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-byteorder.md b/query-languages/m/binaryformat-byteorder.md index dd7e188a7..4872e9d22 100644 --- a/query-languages/m/binaryformat-byteorder.md +++ b/query-languages/m/binaryformat-byteorder.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.ByteOrder" title: "BinaryFormat.ByteOrder" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-choice.md b/query-languages/m/binaryformat-choice.md index 4150d1da4..feee3e318 100644 --- a/query-languages/m/binaryformat-choice.md +++ b/query-languages/m/binaryformat-choice.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Choice" title: "BinaryFormat.Choice" ms.date: 3/7/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-decimal.md b/query-languages/m/binaryformat-decimal.md index b4dd893e7..85150169c 100644 --- a/query-languages/m/binaryformat-decimal.md +++ b/query-languages/m/binaryformat-decimal.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Decimal" title: "BinaryFormat.Decimal" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-double.md b/query-languages/m/binaryformat-double.md index 1933706e1..435629e88 100644 --- a/query-languages/m/binaryformat-double.md +++ b/query-languages/m/binaryformat-double.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Double" title: "BinaryFormat.Double" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-group.md b/query-languages/m/binaryformat-group.md index 67cc8c28d..983a42952 100644 --- a/query-languages/m/binaryformat-group.md +++ b/query-languages/m/binaryformat-group.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Group" title: "BinaryFormat.Group" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-length.md b/query-languages/m/binaryformat-length.md index 58b776364..eb5890bd6 100644 --- a/query-languages/m/binaryformat-length.md +++ b/query-languages/m/binaryformat-length.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Length" title: "BinaryFormat.Length" ms.date: 3/7/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-list.md b/query-languages/m/binaryformat-list.md index 379e9f0f1..904cfe665 100644 --- a/query-languages/m/binaryformat-list.md +++ b/query-languages/m/binaryformat-list.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.List" title: "BinaryFormat.List" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-null.md b/query-languages/m/binaryformat-null.md index b82ec9085..d67be57bd 100644 --- a/query-languages/m/binaryformat-null.md +++ b/query-languages/m/binaryformat-null.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Null" title: "BinaryFormat.Null" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-record.md b/query-languages/m/binaryformat-record.md index b9cb194ef..31ec7d435 100644 --- a/query-languages/m/binaryformat-record.md +++ b/query-languages/m/binaryformat-record.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Record" title: "BinaryFormat.Record" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-signedinteger16.md b/query-languages/m/binaryformat-signedinteger16.md index f410c1330..422532d4a 100644 --- a/query-languages/m/binaryformat-signedinteger16.md +++ b/query-languages/m/binaryformat-signedinteger16.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.SignedInteger16" title: "BinaryFormat.SignedInteger16" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-signedinteger32.md b/query-languages/m/binaryformat-signedinteger32.md index 8d2320af1..d70efeee0 100644 --- a/query-languages/m/binaryformat-signedinteger32.md +++ b/query-languages/m/binaryformat-signedinteger32.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.SignedInteger32" title: "BinaryFormat.SignedInteger32" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-signedinteger64.md b/query-languages/m/binaryformat-signedinteger64.md index a74db9c45..1d14ace40 100644 --- a/query-languages/m/binaryformat-signedinteger64.md +++ b/query-languages/m/binaryformat-signedinteger64.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.SignedInteger64" title: "BinaryFormat.SignedInteger64" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-single.md b/query-languages/m/binaryformat-single.md index 2ee606a3a..3edd06cab 100644 --- a/query-languages/m/binaryformat-single.md +++ b/query-languages/m/binaryformat-single.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Single" title: "BinaryFormat.Single" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-text.md b/query-languages/m/binaryformat-text.md index 05fe857d0..dd7d63f85 100644 --- a/query-languages/m/binaryformat-text.md +++ b/query-languages/m/binaryformat-text.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Text" title: "BinaryFormat.Text" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-transform.md b/query-languages/m/binaryformat-transform.md index 02a548d98..076e40f8c 100644 --- a/query-languages/m/binaryformat-transform.md +++ b/query-languages/m/binaryformat-transform.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.Transform" title: "BinaryFormat.Transform" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-unsignedinteger16.md b/query-languages/m/binaryformat-unsignedinteger16.md index bd7e899cf..dbae8b651 100644 --- a/query-languages/m/binaryformat-unsignedinteger16.md +++ b/query-languages/m/binaryformat-unsignedinteger16.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.UnsignedInteger16" title: "BinaryFormat.UnsignedInteger16" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-unsignedinteger32.md b/query-languages/m/binaryformat-unsignedinteger32.md index b122c1caa..3af381e66 100644 --- a/query-languages/m/binaryformat-unsignedinteger32.md +++ b/query-languages/m/binaryformat-unsignedinteger32.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.UnsignedInteger32" title: "BinaryFormat.UnsignedInteger32" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryformat-unsignedinteger64.md b/query-languages/m/binaryformat-unsignedinteger64.md index 245ab162e..8dc08bbfc 100644 --- a/query-languages/m/binaryformat-unsignedinteger64.md +++ b/query-languages/m/binaryformat-unsignedinteger64.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryFormat.UnsignedInteger64" title: "BinaryFormat.UnsignedInteger64" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/binaryoccurrence-type.md b/query-languages/m/binaryoccurrence-type.md index e8587d5a5..74d0511de 100644 --- a/query-languages/m/binaryoccurrence-type.md +++ b/query-languages/m/binaryoccurrence-type.md @@ -3,7 +3,6 @@ description: "Learn more about: BinaryOccurrence.Type" title: "BinaryOccurrence.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/buffermode-type.md b/query-languages/m/buffermode-type.md index f34e0f3fb..c6437642a 100644 --- a/query-languages/m/buffermode-type.md +++ b/query-languages/m/buffermode-type.md @@ -3,7 +3,6 @@ description: "Learn more about: BufferMode.Type" title: "BufferMode.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index b458d5748..d5957fd31 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Byte.From" title: "Byte.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/byteorder-type.md b/query-languages/m/byteorder-type.md index 585af6a8c..ca60069e2 100644 --- a/query-languages/m/byteorder-type.md +++ b/query-languages/m/byteorder-type.md @@ -3,7 +3,6 @@ description: "Learn more about: ByteOrder.Type" title: "ByteOrder.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index f853453bd..eac5fe465 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -3,7 +3,6 @@ description: "Learn more about: Cdm.Contents" title: "Cdm.Contents" ms.date: 03/18/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/character-fromnumber.md b/query-languages/m/character-fromnumber.md index ef0a8cacd..39725b206 100644 --- a/query-languages/m/character-fromnumber.md +++ b/query-languages/m/character-fromnumber.md @@ -3,7 +3,6 @@ description: "Learn more about: Character.FromNumber" title: "Character.FromNumber" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/character-tonumber.md b/query-languages/m/character-tonumber.md index 481f5d5a3..90d8b3967 100644 --- a/query-languages/m/character-tonumber.md +++ b/query-languages/m/character-tonumber.md @@ -3,7 +3,6 @@ description: "Learn more about: Character.ToNumber" title: "Character.ToNumber" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbydelimiter.md b/query-languages/m/combiner-combinetextbydelimiter.md index be63e7343..2208e5aea 100644 --- a/query-languages/m/combiner-combinetextbydelimiter.md +++ b/query-languages/m/combiner-combinetextbydelimiter.md @@ -3,7 +3,6 @@ description: "Learn more about: Combiner.CombineTextByDelimiter" title: "Combiner.CombineTextByDelimiter" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbyeachdelimiter.md b/query-languages/m/combiner-combinetextbyeachdelimiter.md index f62478939..d63104914 100644 --- a/query-languages/m/combiner-combinetextbyeachdelimiter.md +++ b/query-languages/m/combiner-combinetextbyeachdelimiter.md @@ -3,7 +3,6 @@ description: "Learn more about: Combiner.CombineTextByEachDelimiter" title: "Combiner.CombineTextByEachDelimiter" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbylengths.md b/query-languages/m/combiner-combinetextbylengths.md index dcb13c216..c637c255f 100644 --- a/query-languages/m/combiner-combinetextbylengths.md +++ b/query-languages/m/combiner-combinetextbylengths.md @@ -3,7 +3,6 @@ description: "Learn more about: Combiner.CombineTextByLengths" title: "Combiner.CombineTextByLengths" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbypositions.md b/query-languages/m/combiner-combinetextbypositions.md index a2f055a56..705524dcd 100644 --- a/query-languages/m/combiner-combinetextbypositions.md +++ b/query-languages/m/combiner-combinetextbypositions.md @@ -3,7 +3,6 @@ description: "Learn more about: Combiner.CombineTextByPositions" title: "Combiner.CombineTextByPositions" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-combinetextbyranges.md b/query-languages/m/combiner-combinetextbyranges.md index 9942a1c3b..104c3a460 100644 --- a/query-languages/m/combiner-combinetextbyranges.md +++ b/query-languages/m/combiner-combinetextbyranges.md @@ -3,7 +3,6 @@ description: "Learn more about: Combiner.CombineTextByRanges" title: "Combiner.CombineTextByRanges" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index 773814376..e28d00092 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Combiner functions" title: "Combiner functions" ms.date: 5/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index b0df56ba2..232e8eeaa 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -3,7 +3,6 @@ description: "Learn more about: Comparer.Equals" title: "Comparer.Equals" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index 399338c85..e818c07b3 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -3,7 +3,6 @@ description: "Learn more about: Comparer.FromCulture" title: "Comparer.FromCulture" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-functions.md b/query-languages/m/comparer-functions.md index 9fbd7873e..1bb89e7a6 100644 --- a/query-languages/m/comparer-functions.md +++ b/query-languages/m/comparer-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Comparer functions" title: "Comparer functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-ordinal.md b/query-languages/m/comparer-ordinal.md index d701abeca..ee23ef57c 100644 --- a/query-languages/m/comparer-ordinal.md +++ b/query-languages/m/comparer-ordinal.md @@ -3,7 +3,6 @@ description: "Learn more about: Comparer.Ordinal" title: "Comparer.Ordinal" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/comparer-ordinalignorecase.md b/query-languages/m/comparer-ordinalignorecase.md index 894587ed5..84230febb 100644 --- a/query-languages/m/comparer-ordinalignorecase.md +++ b/query-languages/m/comparer-ordinalignorecase.md @@ -3,7 +3,6 @@ description: "Learn more about: Comparer.OrdinalIgnoreCase" title: "Comparer.OrdinalIgnoreCase" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/compression-type.md b/query-languages/m/compression-type.md index ccad84e6d..4328ca0e8 100644 --- a/query-languages/m/compression-type.md +++ b/query-languages/m/compression-type.md @@ -3,7 +3,6 @@ description: "Learn more about: Compression.Type" title: "Compression.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/constants.md b/query-languages/m/constants.md index 108cef155..081f13815 100644 --- a/query-languages/m/constants.md +++ b/query-languages/m/constants.md @@ -3,7 +3,6 @@ description: "Learn more about: Constants" title: "Constants" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 69f07576e..fc1349097 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -3,7 +3,6 @@ description: "Learn more about: Csv.Document" title: "Csv.Document" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/csvstyle-type.md b/query-languages/m/csvstyle-type.md index b2f3e106a..c4f5e5a8c 100644 --- a/query-languages/m/csvstyle-type.md +++ b/query-languages/m/csvstyle-type.md @@ -3,7 +3,6 @@ description: "Learn more about: CsvStyle.Type" title: "CsvStyle.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-addandexpanddimensioncolumn.md b/query-languages/m/cube-addandexpanddimensioncolumn.md index a1db39322..3ecefbd36 100644 --- a/query-languages/m/cube-addandexpanddimensioncolumn.md +++ b/query-languages/m/cube-addandexpanddimensioncolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.AddAndExpandDimensionColumn" title: "Cube.AddAndExpandDimensionColumn" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-addmeasurecolumn.md b/query-languages/m/cube-addmeasurecolumn.md index 8a0282cb9..e1321cc96 100644 --- a/query-languages/m/cube-addmeasurecolumn.md +++ b/query-languages/m/cube-addmeasurecolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.AddMeasureColumn" title: "Cube.AddMeasureColumn" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-applyparameter.md b/query-languages/m/cube-applyparameter.md index 4c2ce68bf..7aacc2ae0 100644 --- a/query-languages/m/cube-applyparameter.md +++ b/query-languages/m/cube-applyparameter.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.ApplyParameter" title: "Cube.ApplyParameter" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-attributememberid.md b/query-languages/m/cube-attributememberid.md index 96b52629a..782896d01 100644 --- a/query-languages/m/cube-attributememberid.md +++ b/query-languages/m/cube-attributememberid.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.AttributeMemberId" title: "Cube.AttributeMemberId" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-attributememberproperty.md b/query-languages/m/cube-attributememberproperty.md index 77993ed64..fba0a53b0 100644 --- a/query-languages/m/cube-attributememberproperty.md +++ b/query-languages/m/cube-attributememberproperty.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.AttributeMemberProperty" title: "Cube.AttributeMemberProperty" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-collapseandremovecolumns.md b/query-languages/m/cube-collapseandremovecolumns.md index a777fa318..722b61506 100644 --- a/query-languages/m/cube-collapseandremovecolumns.md +++ b/query-languages/m/cube-collapseandremovecolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.CollapseAndRemoveColumns" title: "Cube.CollapseAndRemoveColumns" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-dimensions.md b/query-languages/m/cube-dimensions.md index 2f119f354..0d96e71a7 100644 --- a/query-languages/m/cube-dimensions.md +++ b/query-languages/m/cube-dimensions.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.Dimensions" title: "Cube.Dimensions" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-displayfolders.md b/query-languages/m/cube-displayfolders.md index 8de0fb45b..996a94f9c 100644 --- a/query-languages/m/cube-displayfolders.md +++ b/query-languages/m/cube-displayfolders.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.DisplayFolders" title: "Cube.DisplayFolders" ms.date: 11/17/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-measureproperties.md b/query-languages/m/cube-measureproperties.md index e53e214fa..310fc4306 100644 --- a/query-languages/m/cube-measureproperties.md +++ b/query-languages/m/cube-measureproperties.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.MeasureProperties" title: "Cube.MeasureProperties" ms.date: 8/17/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-measureproperty.md b/query-languages/m/cube-measureproperty.md index 4c38ca4cc..c842e7374 100644 --- a/query-languages/m/cube-measureproperty.md +++ b/query-languages/m/cube-measureproperty.md @@ -1,9 +1,8 @@ --- description: "Learn more about: Cube.MeasureProperty" -title: "Cube.MeasureProperty| Microsoft Docs" +title: "Cube.MeasureProperty" ms.date: 8/17/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-measures.md b/query-languages/m/cube-measures.md index d77d65f0f..a29b4e062 100644 --- a/query-languages/m/cube-measures.md +++ b/query-languages/m/cube-measures.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.Measures" title: "Cube.Measures" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-parameters.md b/query-languages/m/cube-parameters.md index 5163fbf5f..28ee45f55 100644 --- a/query-languages/m/cube-parameters.md +++ b/query-languages/m/cube-parameters.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.Parameters" title: "Cube.Parameters" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-properties.md b/query-languages/m/cube-properties.md index 253ec2962..e0fe806ce 100644 --- a/query-languages/m/cube-properties.md +++ b/query-languages/m/cube-properties.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.Properties" title: "Cube.Properties" ms.date: 4/17/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-propertykey.md b/query-languages/m/cube-propertykey.md index 1df57c8e8..8d1e21693 100644 --- a/query-languages/m/cube-propertykey.md +++ b/query-languages/m/cube-propertykey.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.PropertyKey" title: "Cube.PropertyKey" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-replacedimensions.md b/query-languages/m/cube-replacedimensions.md index 5b24f9557..e87a8cd3e 100644 --- a/query-languages/m/cube-replacedimensions.md +++ b/query-languages/m/cube-replacedimensions.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.ReplaceDimensions" title: "Cube.ReplaceDimensions" ms.date: 1/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/cube-transform.md b/query-languages/m/cube-transform.md index fdec58178..e14a8bed4 100644 --- a/query-languages/m/cube-transform.md +++ b/query-languages/m/cube-transform.md @@ -3,7 +3,6 @@ description: "Learn more about: Cube.Transform" title: "Cube.Transform" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/culture-current.md b/query-languages/m/culture-current.md index 04d3bd183..3dd9f44da 100644 --- a/query-languages/m/culture-current.md +++ b/query-languages/m/culture-current.md @@ -3,7 +3,6 @@ description: "Learn more about: Culture.Current" title: "Culture.Current" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/currency-from.md b/query-languages/m/currency-from.md index cdb40bc41..8f2fea094 100644 --- a/query-languages/m/currency-from.md +++ b/query-languages/m/currency-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Currency.From" title: "Currency.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-adddays.md b/query-languages/m/date-adddays.md index b4d8e3dcf..5753a4880 100644 --- a/query-languages/m/date-adddays.md +++ b/query-languages/m/date-adddays.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.AddDays" title: "Date.AddDays" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-addmonths.md b/query-languages/m/date-addmonths.md index bebe5e318..aefbe570f 100644 --- a/query-languages/m/date-addmonths.md +++ b/query-languages/m/date-addmonths.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.AddMonths" title: "Date.AddMonths" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-addquarters.md b/query-languages/m/date-addquarters.md index 88add115a..3b7818a61 100644 --- a/query-languages/m/date-addquarters.md +++ b/query-languages/m/date-addquarters.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.AddQuarters" title: "Date.AddQuarters" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-addweeks.md b/query-languages/m/date-addweeks.md index 72293e54d..dc5a7dc0e 100644 --- a/query-languages/m/date-addweeks.md +++ b/query-languages/m/date-addweeks.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.AddWeeks" title: "Date.AddWeeks" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-addyears.md b/query-languages/m/date-addyears.md index adbb738fa..1d419c079 100644 --- a/query-languages/m/date-addyears.md +++ b/query-languages/m/date-addyears.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.AddYears" title: "Date.AddYears" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-day.md b/query-languages/m/date-day.md index 6e8be3972..5f8b72043 100644 --- a/query-languages/m/date-day.md +++ b/query-languages/m/date-day.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.Day" title: "Date.Day" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-dayofweek.md b/query-languages/m/date-dayofweek.md index 18afe0127..9070bd345 100644 --- a/query-languages/m/date-dayofweek.md +++ b/query-languages/m/date-dayofweek.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.DayOfWeek" title: "Date.DayOfWeek" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-dayofweekname.md b/query-languages/m/date-dayofweekname.md index d92cf43ff..ef8028191 100644 --- a/query-languages/m/date-dayofweekname.md +++ b/query-languages/m/date-dayofweekname.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.DayOfWeekName" title: "Date.DayOfWeekName" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-dayofyear.md b/query-languages/m/date-dayofyear.md index 3094a5dfc..86ef6d3c9 100644 --- a/query-languages/m/date-dayofyear.md +++ b/query-languages/m/date-dayofyear.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.DayOfYear" title: "Date.DayOfYear" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-daysinmonth.md b/query-languages/m/date-daysinmonth.md index 5abb51fc0..81ff104c0 100644 --- a/query-languages/m/date-daysinmonth.md +++ b/query-languages/m/date-daysinmonth.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.DaysInMonth" title: "Date.DaysInMonth" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofday.md b/query-languages/m/date-endofday.md index 605f57cb0..329c7c04d 100644 --- a/query-languages/m/date-endofday.md +++ b/query-languages/m/date-endofday.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.EndOfDay" title: "Date.EndOfDay" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofmonth.md b/query-languages/m/date-endofmonth.md index 8dd8a879e..36909e4a2 100644 --- a/query-languages/m/date-endofmonth.md +++ b/query-languages/m/date-endofmonth.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.EndOfMonth" title: "Date.EndOfMonth" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofquarter.md b/query-languages/m/date-endofquarter.md index 32b3c2311..8e27a973a 100644 --- a/query-languages/m/date-endofquarter.md +++ b/query-languages/m/date-endofquarter.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.EndOfQuarter" title: "Date.EndOfQuarter" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofweek.md b/query-languages/m/date-endofweek.md index 1751d4068..ca10c92d1 100644 --- a/query-languages/m/date-endofweek.md +++ b/query-languages/m/date-endofweek.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.EndOfWeek" title: "Date.EndOfWeek" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-endofyear.md b/query-languages/m/date-endofyear.md index 3e22033b2..464029452 100644 --- a/query-languages/m/date-endofyear.md +++ b/query-languages/m/date-endofyear.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.EndOfYear" title: "Date.EndOfYear" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-from.md b/query-languages/m/date-from.md index 6f6aa1185..632e7a5b7 100644 --- a/query-languages/m/date-from.md +++ b/query-languages/m/date-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.From" title: "Date.From" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-fromtext.md b/query-languages/m/date-fromtext.md index 6ee62350f..813470a8c 100644 --- a/query-languages/m/date-fromtext.md +++ b/query-languages/m/date-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.FromText" title: "Date.FromText" ms.date: 6/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index 0c5366fb7..91f9c4252 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Date functions" title: "Date functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentday.md b/query-languages/m/date-isincurrentday.md index 372d7e0ff..f7c6e9f60 100644 --- a/query-languages/m/date-isincurrentday.md +++ b/query-languages/m/date-isincurrentday.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInCurrentDay" title: "Date.IsInCurrentDay" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentmonth.md b/query-languages/m/date-isincurrentmonth.md index ea6372950..e1e9d09e6 100644 --- a/query-languages/m/date-isincurrentmonth.md +++ b/query-languages/m/date-isincurrentmonth.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInCurrentMonth" title: "Date.IsInCurrentMonth" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentquarter.md b/query-languages/m/date-isincurrentquarter.md index 0ac0d1b59..3d2ba309b 100644 --- a/query-languages/m/date-isincurrentquarter.md +++ b/query-languages/m/date-isincurrentquarter.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInCurrentQuarter" title: "Date.IsInCurrentQuarter" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentweek.md b/query-languages/m/date-isincurrentweek.md index d3992a943..4574af732 100644 --- a/query-languages/m/date-isincurrentweek.md +++ b/query-languages/m/date-isincurrentweek.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInCurrentWeek" title: "Date.IsInCurrentWeek" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isincurrentyear.md b/query-languages/m/date-isincurrentyear.md index aef623ff3..6842a37d3 100644 --- a/query-languages/m/date-isincurrentyear.md +++ b/query-languages/m/date-isincurrentyear.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInCurrentYear" title: "Date.IsInCurrentYear" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextday.md b/query-languages/m/date-isinnextday.md index ed10155f7..500557d09 100644 --- a/query-languages/m/date-isinnextday.md +++ b/query-languages/m/date-isinnextday.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextDay" title: "Date.IsInNextDay" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextmonth.md b/query-languages/m/date-isinnextmonth.md index 16656a461..fffe38b59 100644 --- a/query-languages/m/date-isinnextmonth.md +++ b/query-languages/m/date-isinnextmonth.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextMonth" title: "Date.IsInNextMonth" ms.date: 3/22/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextndays.md b/query-languages/m/date-isinnextndays.md index e8219f0e5..b54e138cd 100644 --- a/query-languages/m/date-isinnextndays.md +++ b/query-languages/m/date-isinnextndays.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextNDays" title: "Date.IsInNextNDays" ms.date: 3/22/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextnmonths.md b/query-languages/m/date-isinnextnmonths.md index 1ff4b442a..0ee022fdd 100644 --- a/query-languages/m/date-isinnextnmonths.md +++ b/query-languages/m/date-isinnextnmonths.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextNMonths" title: "Date.IsInNextNMonths" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextnquarters.md b/query-languages/m/date-isinnextnquarters.md index c1ae6da81..b2191eeb5 100644 --- a/query-languages/m/date-isinnextnquarters.md +++ b/query-languages/m/date-isinnextnquarters.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextNQuarters" title: "Date.IsInNextNQuarters" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextnweeks.md b/query-languages/m/date-isinnextnweeks.md index ec792adef..954e4b357 100644 --- a/query-languages/m/date-isinnextnweeks.md +++ b/query-languages/m/date-isinnextnweeks.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextNWeeks" title: "Date.IsInNextNWeeks" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextnyears.md b/query-languages/m/date-isinnextnyears.md index e3f137730..30d0ef0aa 100644 --- a/query-languages/m/date-isinnextnyears.md +++ b/query-languages/m/date-isinnextnyears.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextNYears" title: "Date.IsInNextNYears" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextquarter.md b/query-languages/m/date-isinnextquarter.md index 58eb5a3fd..410d31520 100644 --- a/query-languages/m/date-isinnextquarter.md +++ b/query-languages/m/date-isinnextquarter.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextQuarter" title: "Date.IsInNextQuarter" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextweek.md b/query-languages/m/date-isinnextweek.md index 3a32b6e52..149a7e57b 100644 --- a/query-languages/m/date-isinnextweek.md +++ b/query-languages/m/date-isinnextweek.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextWeek" title: "Date.IsInNextWeek" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinnextyear.md b/query-languages/m/date-isinnextyear.md index bfabb8d11..598f9dd75 100644 --- a/query-languages/m/date-isinnextyear.md +++ b/query-languages/m/date-isinnextyear.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInNextYear" title: "Date.IsInNextYear" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousday.md b/query-languages/m/date-isinpreviousday.md index 393fbfc8f..5a3f2e39d 100644 --- a/query-languages/m/date-isinpreviousday.md +++ b/query-languages/m/date-isinpreviousday.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousDay" title: "Date.IsInPreviousDay" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousmonth.md b/query-languages/m/date-isinpreviousmonth.md index 5eff4a6d9..80f81fd5d 100644 --- a/query-languages/m/date-isinpreviousmonth.md +++ b/query-languages/m/date-isinpreviousmonth.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousMonth" title: "Date.IsInPreviousMonth" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousndays.md b/query-languages/m/date-isinpreviousndays.md index 35ffa1bc5..5950d4c5c 100644 --- a/query-languages/m/date-isinpreviousndays.md +++ b/query-languages/m/date-isinpreviousndays.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousNDays" title: "Date.IsInPreviousNDays" ms.date: 3/22/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousnmonths.md b/query-languages/m/date-isinpreviousnmonths.md index d48567289..92579517d 100644 --- a/query-languages/m/date-isinpreviousnmonths.md +++ b/query-languages/m/date-isinpreviousnmonths.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousNMonths" title: "Date.IsInPreviousNMonths" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousnquarters.md b/query-languages/m/date-isinpreviousnquarters.md index c01250db3..6a3a25162 100644 --- a/query-languages/m/date-isinpreviousnquarters.md +++ b/query-languages/m/date-isinpreviousnquarters.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousNQuarters" title: "Date.IsInPreviousNQuarters" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousnweeks.md b/query-languages/m/date-isinpreviousnweeks.md index ea7e3e2fd..9ff41d290 100644 --- a/query-languages/m/date-isinpreviousnweeks.md +++ b/query-languages/m/date-isinpreviousnweeks.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousNWeeks" title: "Date.IsInPreviousNWeeks" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousnyears.md b/query-languages/m/date-isinpreviousnyears.md index 9a9adaf5e..04ea22e92 100644 --- a/query-languages/m/date-isinpreviousnyears.md +++ b/query-languages/m/date-isinpreviousnyears.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousNYears" title: "Date.IsInPreviousNYears" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousquarter.md b/query-languages/m/date-isinpreviousquarter.md index be703a1b8..88dedac84 100644 --- a/query-languages/m/date-isinpreviousquarter.md +++ b/query-languages/m/date-isinpreviousquarter.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousQuarter" title: "Date.IsInPreviousQuarter" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousweek.md b/query-languages/m/date-isinpreviousweek.md index 7e8705bb5..077d309ac 100644 --- a/query-languages/m/date-isinpreviousweek.md +++ b/query-languages/m/date-isinpreviousweek.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousWeek" title: "Date.IsInPreviousWeek" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinpreviousyear.md b/query-languages/m/date-isinpreviousyear.md index 281ba6e78..7ba91ad80 100644 --- a/query-languages/m/date-isinpreviousyear.md +++ b/query-languages/m/date-isinpreviousyear.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInPreviousYear" title: "Date.IsInPreviousYear" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isinyeartodate.md b/query-languages/m/date-isinyeartodate.md index 20a1afe7c..f8bf07d15 100644 --- a/query-languages/m/date-isinyeartodate.md +++ b/query-languages/m/date-isinyeartodate.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsInYearToDate" title: "Date.IsInYearToDate" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-isleapyear.md b/query-languages/m/date-isleapyear.md index a05ce6135..85b3b3803 100644 --- a/query-languages/m/date-isleapyear.md +++ b/query-languages/m/date-isleapyear.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.IsLeapYear" title: "Date.IsLeapYear" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-month.md b/query-languages/m/date-month.md index 324af6d74..10c1d19bc 100644 --- a/query-languages/m/date-month.md +++ b/query-languages/m/date-month.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.Month" title: "Date.Month" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-monthname.md b/query-languages/m/date-monthname.md index 474abd716..4f39b5ebd 100644 --- a/query-languages/m/date-monthname.md +++ b/query-languages/m/date-monthname.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.MonthName" title: "Date.MonthName" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-quarterofyear.md b/query-languages/m/date-quarterofyear.md index c5488c15c..3983aff03 100644 --- a/query-languages/m/date-quarterofyear.md +++ b/query-languages/m/date-quarterofyear.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.QuarterOfYear" title: "Date.QuarterOfYear" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofday.md b/query-languages/m/date-startofday.md index 9ef4315b5..47e323c75 100644 --- a/query-languages/m/date-startofday.md +++ b/query-languages/m/date-startofday.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.StartOfDay" title: "Date.StartOfDay" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofmonth.md b/query-languages/m/date-startofmonth.md index fca63ee6a..77d5712a3 100644 --- a/query-languages/m/date-startofmonth.md +++ b/query-languages/m/date-startofmonth.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.StartOfMonth" title: "Date.StartOfMonth" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofquarter.md b/query-languages/m/date-startofquarter.md index d8c227796..fa20a04d5 100644 --- a/query-languages/m/date-startofquarter.md +++ b/query-languages/m/date-startofquarter.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.StartOfQuarter" title: "Date.StartOfQuarter" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofweek.md b/query-languages/m/date-startofweek.md index f8fce834e..ee44be8f2 100644 --- a/query-languages/m/date-startofweek.md +++ b/query-languages/m/date-startofweek.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.StartOfWeek" title: "Date.StartOfWeek" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-startofyear.md b/query-languages/m/date-startofyear.md index c9b0054e4..02530753d 100644 --- a/query-languages/m/date-startofyear.md +++ b/query-languages/m/date-startofyear.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.StartOfYear" title: "Date.StartOfYear" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-torecord.md b/query-languages/m/date-torecord.md index a7f062704..b7d6e67c3 100644 --- a/query-languages/m/date-torecord.md +++ b/query-languages/m/date-torecord.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.ToRecord" title: "Date.ToRecord" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-totext.md b/query-languages/m/date-totext.md index ab9cd29b5..0d8b5f1fe 100644 --- a/query-languages/m/date-totext.md +++ b/query-languages/m/date-totext.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.ToText" title: "Date.ToText" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-weekofmonth.md b/query-languages/m/date-weekofmonth.md index d2c3bebe8..cab2a1523 100644 --- a/query-languages/m/date-weekofmonth.md +++ b/query-languages/m/date-weekofmonth.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.WeekOfMonth" title: "Date.WeekOfMonth" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-weekofyear.md b/query-languages/m/date-weekofyear.md index 0e5beb7b7..31d4c0e18 100644 --- a/query-languages/m/date-weekofyear.md +++ b/query-languages/m/date-weekofyear.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.WeekOfYear" title: "Date.WeekOfYear" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/date-year.md b/query-languages/m/date-year.md index 91607b3c5..abe877c49 100644 --- a/query-languages/m/date-year.md +++ b/query-languages/m/date-year.md @@ -3,7 +3,6 @@ description: "Learn more about: Date.Year" title: "Date.Year" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-addzone.md b/query-languages/m/datetime-addzone.md index 3a4858ec1..b130bbe0a 100644 --- a/query-languages/m/datetime-addzone.md +++ b/query-languages/m/datetime-addzone.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.AddZone" title: "DateTime.AddZone" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-date.md b/query-languages/m/datetime-date.md index 91913b652..7170133d6 100644 --- a/query-languages/m/datetime-date.md +++ b/query-languages/m/datetime-date.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.Date" title: "DateTime.Date" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-fixedlocalnow.md b/query-languages/m/datetime-fixedlocalnow.md index 8cce16467..1aa3f890b 100644 --- a/query-languages/m/datetime-fixedlocalnow.md +++ b/query-languages/m/datetime-fixedlocalnow.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.FixedLocalNow" title: "DateTime.FixedLocalNow" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-from.md b/query-languages/m/datetime-from.md index cab5b17d3..9f0b8872d 100644 --- a/query-languages/m/datetime-from.md +++ b/query-languages/m/datetime-from.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.From" title: "DateTime.From" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-fromfiletime.md b/query-languages/m/datetime-fromfiletime.md index 6cef15ab1..469255ae8 100644 --- a/query-languages/m/datetime-fromfiletime.md +++ b/query-languages/m/datetime-fromfiletime.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.FromFileTime" title: "DateTime.FromFileTime" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-fromtext.md b/query-languages/m/datetime-fromtext.md index a04abcc6c..4ee8fed2b 100644 --- a/query-languages/m/datetime-fromtext.md +++ b/query-languages/m/datetime-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.FromText" title: "DateTime.FromText" ms.date: 6/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-functions.md b/query-languages/m/datetime-functions.md index 906c351ef..bc1a4adc5 100644 --- a/query-languages/m/datetime-functions.md +++ b/query-languages/m/datetime-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime functions" title: "DateTime functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isincurrenthour.md b/query-languages/m/datetime-isincurrenthour.md index 53f40f96b..41774192a 100644 --- a/query-languages/m/datetime-isincurrenthour.md +++ b/query-languages/m/datetime-isincurrenthour.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInCurrentHour" title: "DateTime.IsInCurrentHour" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isincurrentminute.md b/query-languages/m/datetime-isincurrentminute.md index c4ca46960..52d7fba9f 100644 --- a/query-languages/m/datetime-isincurrentminute.md +++ b/query-languages/m/datetime-isincurrentminute.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInCurrentMinute" title: "DateTime.IsInCurrentMinute" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isincurrentsecond.md b/query-languages/m/datetime-isincurrentsecond.md index 98d7067e0..7be8e2c2b 100644 --- a/query-languages/m/datetime-isincurrentsecond.md +++ b/query-languages/m/datetime-isincurrentsecond.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInCurrentSecond" title: "DateTime.IsInCurrentSecond" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnexthour.md b/query-languages/m/datetime-isinnexthour.md index 3e287dc38..91d8e588c 100644 --- a/query-languages/m/datetime-isinnexthour.md +++ b/query-languages/m/datetime-isinnexthour.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInNextHour" title: "DateTime.IsInNextHour" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextminute.md b/query-languages/m/datetime-isinnextminute.md index 9a9645472..864b96072 100644 --- a/query-languages/m/datetime-isinnextminute.md +++ b/query-languages/m/datetime-isinnextminute.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInNextMinute" title: "DateTime.IsInNextMinute" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextnhours.md b/query-languages/m/datetime-isinnextnhours.md index d636aa987..00ab4e109 100644 --- a/query-languages/m/datetime-isinnextnhours.md +++ b/query-languages/m/datetime-isinnextnhours.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInNextNHours" title: "DateTime.IsInNextNHours" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextnminutes.md b/query-languages/m/datetime-isinnextnminutes.md index bf7cf1510..2e12b233f 100644 --- a/query-languages/m/datetime-isinnextnminutes.md +++ b/query-languages/m/datetime-isinnextnminutes.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInNextNMinutes" title: "DateTime.IsInNextNMinutes" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextnseconds.md b/query-languages/m/datetime-isinnextnseconds.md index b1833c76d..d8145013f 100644 --- a/query-languages/m/datetime-isinnextnseconds.md +++ b/query-languages/m/datetime-isinnextnseconds.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInNextNSeconds" title: "DateTime.IsInNextNSeconds" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinnextsecond.md b/query-languages/m/datetime-isinnextsecond.md index d9d6d9862..7ced7e0f7 100644 --- a/query-languages/m/datetime-isinnextsecond.md +++ b/query-languages/m/datetime-isinnextsecond.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInNextSecond" title: "DateTime.IsInNextSecond" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinprevioushour.md b/query-languages/m/datetime-isinprevioushour.md index 718e94868..28a58c85b 100644 --- a/query-languages/m/datetime-isinprevioushour.md +++ b/query-languages/m/datetime-isinprevioushour.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInPreviousHour" title: "DateTime.IsInPreviousHour" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinpreviousminute.md b/query-languages/m/datetime-isinpreviousminute.md index 3ef7d7bb5..54bfffc27 100644 --- a/query-languages/m/datetime-isinpreviousminute.md +++ b/query-languages/m/datetime-isinpreviousminute.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInPreviousMinute" title: "DateTime.IsInPreviousMinute" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinpreviousnhours.md b/query-languages/m/datetime-isinpreviousnhours.md index 1c721d5d2..d743c2bec 100644 --- a/query-languages/m/datetime-isinpreviousnhours.md +++ b/query-languages/m/datetime-isinpreviousnhours.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInPreviousNHours" title: "DateTime.IsInPreviousNHours" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinpreviousnminutes.md b/query-languages/m/datetime-isinpreviousnminutes.md index 72d1496a2..f6195bc9f 100644 --- a/query-languages/m/datetime-isinpreviousnminutes.md +++ b/query-languages/m/datetime-isinpreviousnminutes.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInPreviousNMinutes" title: "DateTime.IsInPreviousNMinutes" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinpreviousnseconds.md b/query-languages/m/datetime-isinpreviousnseconds.md index 08afd84b3..d7820e7c0 100644 --- a/query-languages/m/datetime-isinpreviousnseconds.md +++ b/query-languages/m/datetime-isinpreviousnseconds.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInPreviousNSeconds" title: "DateTime.IsInPreviousNSeconds" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-isinprevioussecond.md b/query-languages/m/datetime-isinprevioussecond.md index b9cbedb61..233f7cee3 100644 --- a/query-languages/m/datetime-isinprevioussecond.md +++ b/query-languages/m/datetime-isinprevioussecond.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.IsInPreviousSecond" title: "DateTime.IsInPreviousSecond" ms.date: 3/11/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-localnow.md b/query-languages/m/datetime-localnow.md index 89531d1af..ff85879c2 100644 --- a/query-languages/m/datetime-localnow.md +++ b/query-languages/m/datetime-localnow.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.LocalNow" title: "DateTime.LocalNow" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-time.md b/query-languages/m/datetime-time.md index d322cf4d6..98daeff24 100644 --- a/query-languages/m/datetime-time.md +++ b/query-languages/m/datetime-time.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.Time" title: "DateTime.Time" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-torecord.md b/query-languages/m/datetime-torecord.md index bc2db2dbb..37f5c7c1f 100644 --- a/query-languages/m/datetime-torecord.md +++ b/query-languages/m/datetime-torecord.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.ToRecord" title: "DateTime.ToRecord" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetime-totext.md b/query-languages/m/datetime-totext.md index bfa612a14..cb21ec932 100644 --- a/query-languages/m/datetime-totext.md +++ b/query-languages/m/datetime-totext.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTime.ToText" title: "DateTime.ToText" ms.date: 6/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-fixedlocalnow.md b/query-languages/m/datetimezone-fixedlocalnow.md index 87f9ba6fa..56509355d 100644 --- a/query-languages/m/datetimezone-fixedlocalnow.md +++ b/query-languages/m/datetimezone-fixedlocalnow.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.FixedLocalNow" title: "DateTimeZone.FixedLocalNow" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-fixedutcnow.md b/query-languages/m/datetimezone-fixedutcnow.md index 4e8ff8a7b..fd382e1b4 100644 --- a/query-languages/m/datetimezone-fixedutcnow.md +++ b/query-languages/m/datetimezone-fixedutcnow.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.FixedUtcNow" title: "DateTimeZone.FixedUtcNow" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index 1853b12a4..84f5b8610 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.From" title: "DateTimeZone.From" ms.date: 6/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-fromfiletime.md b/query-languages/m/datetimezone-fromfiletime.md index 7619e9cf3..deb21f6c0 100644 --- a/query-languages/m/datetimezone-fromfiletime.md +++ b/query-languages/m/datetimezone-fromfiletime.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.FromFileTime" title: "DateTimeZone.FromFileTime" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-fromtext.md b/query-languages/m/datetimezone-fromtext.md index 5ff69096d..78d9227a5 100644 --- a/query-languages/m/datetimezone-fromtext.md +++ b/query-languages/m/datetimezone-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.FromText" title: "DateTimeZone.FromText" ms.date: 6/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-functions.md b/query-languages/m/datetimezone-functions.md index f1d7cdcb2..0e4e8a374 100644 --- a/query-languages/m/datetimezone-functions.md +++ b/query-languages/m/datetimezone-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone functions" title: "DateTimeZone functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-localnow.md b/query-languages/m/datetimezone-localnow.md index 98fa7806f..30c42a4e5 100644 --- a/query-languages/m/datetimezone-localnow.md +++ b/query-languages/m/datetimezone-localnow.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.LocalNow" title: "DateTimeZone.LocalNow" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-removezone.md b/query-languages/m/datetimezone-removezone.md index aa89a0272..b671c0c7b 100644 --- a/query-languages/m/datetimezone-removezone.md +++ b/query-languages/m/datetimezone-removezone.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.RemoveZone" title: "DateTimeZone.RemoveZone" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-switchzone.md b/query-languages/m/datetimezone-switchzone.md index 2d0763338..4f0408fe8 100644 --- a/query-languages/m/datetimezone-switchzone.md +++ b/query-languages/m/datetimezone-switchzone.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.SwitchZone" title: "DateTimeZone.SwitchZone" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-tolocal.md b/query-languages/m/datetimezone-tolocal.md index 9263b165d..2cd5266c6 100644 --- a/query-languages/m/datetimezone-tolocal.md +++ b/query-languages/m/datetimezone-tolocal.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.ToLocal" title: "DateTimeZone.ToLocal" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-torecord.md b/query-languages/m/datetimezone-torecord.md index 868bc0a9f..747d7aa37 100644 --- a/query-languages/m/datetimezone-torecord.md +++ b/query-languages/m/datetimezone-torecord.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.ToRecord" title: "DateTimeZone.ToRecord" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-totext.md b/query-languages/m/datetimezone-totext.md index c424c4b83..d1f15aa60 100644 --- a/query-languages/m/datetimezone-totext.md +++ b/query-languages/m/datetimezone-totext.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.ToText" title: "DateTimeZone.ToText" ms.date: 6/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-toutc.md b/query-languages/m/datetimezone-toutc.md index e8b9c5167..53880cad5 100644 --- a/query-languages/m/datetimezone-toutc.md +++ b/query-languages/m/datetimezone-toutc.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.ToUtc" title: "DateTimeZone.ToUtc" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-utcnow.md b/query-languages/m/datetimezone-utcnow.md index e596639a4..90e2d9fa9 100644 --- a/query-languages/m/datetimezone-utcnow.md +++ b/query-languages/m/datetimezone-utcnow.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.UtcNow" title: "DateTimeZone.UtcNow" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-zonehours.md b/query-languages/m/datetimezone-zonehours.md index 10ab4766c..01e9cf8f4 100644 --- a/query-languages/m/datetimezone-zonehours.md +++ b/query-languages/m/datetimezone-zonehours.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.ZoneHours" title: "DateTimeZone.ZoneHours" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/datetimezone-zoneminutes.md b/query-languages/m/datetimezone-zoneminutes.md index 074789c15..a88ce168a 100644 --- a/query-languages/m/datetimezone-zoneminutes.md +++ b/query-languages/m/datetimezone-zoneminutes.md @@ -3,7 +3,6 @@ description: "Learn more about: DateTimeZone.ZoneMinutes" title: "DateTimeZone.ZoneMinutes" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/day-type.md b/query-languages/m/day-type.md index a8fbc5113..b581c0b8e 100644 --- a/query-languages/m/day-type.md +++ b/query-languages/m/day-type.md @@ -3,7 +3,6 @@ description: "Learn more about: Day.Type" title: "Day.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/decimal-from.md b/query-languages/m/decimal-from.md index f1f2f2422..616e870e4 100644 --- a/query-languages/m/decimal-from.md +++ b/query-languages/m/decimal-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Decimal.From" title: "Decimal.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/diagnostics-activityid.md b/query-languages/m/diagnostics-activityid.md index c82ac1bc8..87e5c32bf 100644 --- a/query-languages/m/diagnostics-activityid.md +++ b/query-languages/m/diagnostics-activityid.md @@ -3,7 +3,6 @@ description: "Learn more about: Diagnostics.ActivityId" title: "Diagnostics.ActivityId" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/diagnostics-trace.md b/query-languages/m/diagnostics-trace.md index b7074ca76..219f2fe2e 100644 --- a/query-languages/m/diagnostics-trace.md +++ b/query-languages/m/diagnostics-trace.md @@ -3,7 +3,6 @@ description: "Learn more about: Diagnostics.Trace" title: "Diagnostics.Trace" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/directquerycapabilities-from.md b/query-languages/m/directquerycapabilities-from.md index dc82726bb..130eb8f99 100644 --- a/query-languages/m/directquerycapabilities-from.md +++ b/query-languages/m/directquerycapabilities-from.md @@ -3,7 +3,6 @@ description: "Learn more about: DirectQueryCapabilities.From" title: "DirectQueryCapabilities.From" ms.date: 10/18/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-days.md b/query-languages/m/duration-days.md index 32e4eb36d..e2d3787dd 100644 --- a/query-languages/m/duration-days.md +++ b/query-languages/m/duration-days.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.Days" title: "Duration.Days" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-from.md b/query-languages/m/duration-from.md index 6eeb6ddb9..416b1f6ee 100644 --- a/query-languages/m/duration-from.md +++ b/query-languages/m/duration-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.From" title: "Duration.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-fromtext.md b/query-languages/m/duration-fromtext.md index 0a0f0e8a2..3e909f913 100644 --- a/query-languages/m/duration-fromtext.md +++ b/query-languages/m/duration-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.FromText" title: "Duration.FromText" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-functions.md b/query-languages/m/duration-functions.md index 0281121d8..3164db20e 100644 --- a/query-languages/m/duration-functions.md +++ b/query-languages/m/duration-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration functions" title: "Duration functions" ms.date: 7/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-hours.md b/query-languages/m/duration-hours.md index 6d34e7531..4ad89515d 100644 --- a/query-languages/m/duration-hours.md +++ b/query-languages/m/duration-hours.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.Hours" title: "Duration.Hours" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-minutes.md b/query-languages/m/duration-minutes.md index 2a4a61973..4a35c4f16 100644 --- a/query-languages/m/duration-minutes.md +++ b/query-languages/m/duration-minutes.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.Minutes" title: "Duration.Minutes" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-seconds.md b/query-languages/m/duration-seconds.md index 8c854d014..abebd62ba 100644 --- a/query-languages/m/duration-seconds.md +++ b/query-languages/m/duration-seconds.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.Seconds" title: "Duration.Seconds" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-torecord.md b/query-languages/m/duration-torecord.md index a048ace28..88598844b 100644 --- a/query-languages/m/duration-torecord.md +++ b/query-languages/m/duration-torecord.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.ToRecord" title: "Duration.ToRecord" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totaldays.md b/query-languages/m/duration-totaldays.md index 618a2e3f3..199afc89b 100644 --- a/query-languages/m/duration-totaldays.md +++ b/query-languages/m/duration-totaldays.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.TotalDays" title: "Duration.TotalDays" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totalhours.md b/query-languages/m/duration-totalhours.md index c37827421..09ab8cfda 100644 --- a/query-languages/m/duration-totalhours.md +++ b/query-languages/m/duration-totalhours.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.TotalHours" title: "Duration.TotalHours" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totalminutes.md b/query-languages/m/duration-totalminutes.md index 2e12fe647..238b90eff 100644 --- a/query-languages/m/duration-totalminutes.md +++ b/query-languages/m/duration-totalminutes.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.TotalMinutes" title: "Duration.TotalMinutes" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totalseconds.md b/query-languages/m/duration-totalseconds.md index f17495442..f02f2bf2a 100644 --- a/query-languages/m/duration-totalseconds.md +++ b/query-languages/m/duration-totalseconds.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.TotalSeconds" title: "Duration.TotalSeconds" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/duration-totext.md b/query-languages/m/duration-totext.md index 35e0c6ab7..41cc4a0c6 100644 --- a/query-languages/m/duration-totext.md +++ b/query-languages/m/duration-totext.md @@ -3,7 +3,6 @@ description: "Learn more about: Duration.ToText" title: "Duration.ToText" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/dynamic-values.md b/query-languages/m/dynamic-values.md index 326eef03f..8dbc3f49e 100644 --- a/query-languages/m/dynamic-values.md +++ b/query-languages/m/dynamic-values.md @@ -3,7 +3,6 @@ description: "Learn more about: Dynamic values" title: "Dynamic values" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/embedded-value.md b/query-languages/m/embedded-value.md index 3c4f28985..64111ab78 100644 --- a/query-languages/m/embedded-value.md +++ b/query-languages/m/embedded-value.md @@ -3,7 +3,6 @@ description: "Learn more about: Embedded.Value" title: "Embedded.Value" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/error-handling.md b/query-languages/m/error-handling.md index 23342210c..87220fb19 100644 --- a/query-languages/m/error-handling.md +++ b/query-languages/m/error-handling.md @@ -3,7 +3,6 @@ description: "Learn more about: Error handling functions" title: "Error handling functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/error-record.md b/query-languages/m/error-record.md index 8897da84b..a848188df 100644 --- a/query-languages/m/error-record.md +++ b/query-languages/m/error-record.md @@ -3,7 +3,6 @@ description: "Learn more about: Error.Record" title: "Error.Record" ms.date: 1/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/errors.md b/query-languages/m/errors.md index 7b5e93a2d..794f11982 100644 --- a/query-languages/m/errors.md +++ b/query-languages/m/errors.md @@ -3,7 +3,6 @@ description: "Learn more about: Errors" title: "Errors" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/evaluation-model.md b/query-languages/m/evaluation-model.md index e09a6f6d8..fad0ee694 100644 --- a/query-languages/m/evaluation-model.md +++ b/query-languages/m/evaluation-model.md @@ -3,7 +3,6 @@ description: "Learn more about: Evaluation model" title: "Evaluation model" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/excel-currentworkbook.md b/query-languages/m/excel-currentworkbook.md index a7154dd43..a344d1514 100644 --- a/query-languages/m/excel-currentworkbook.md +++ b/query-languages/m/excel-currentworkbook.md @@ -3,7 +3,6 @@ description: "Learn more about: Excel.CurrentWorkbook" title: "Excel.CurrentWorkbook" ms.date: 7/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/excel-shapetable.md b/query-languages/m/excel-shapetable.md index 5af6bc2fc..c498df47f 100644 --- a/query-languages/m/excel-shapetable.md +++ b/query-languages/m/excel-shapetable.md @@ -3,7 +3,6 @@ description: "Learn more about: Excel.ShapeTable" title: "Excel.ShapeTable" ms.date: 1/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md index adcfe267a..b75dc9cb0 100644 --- a/query-languages/m/excel-workbook.md +++ b/query-languages/m/excel-workbook.md @@ -3,7 +3,6 @@ description: "Learn more about: Excel.Workbook" title: "Excel.Workbook" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/exchange-contents.md b/query-languages/m/exchange-contents.md index 768298a2d..9ae4048e6 100644 --- a/query-languages/m/exchange-contents.md +++ b/query-languages/m/exchange-contents.md @@ -3,7 +3,6 @@ description: "Learn more about: Exchange.Contents" title: "Exchange.Contents" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index 8775c3b3d..32e759355 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -3,7 +3,6 @@ description: "Learn more about: Expressions, values, and let expression" title: "Expressions, values, and let expression" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-from.md b/query-languages/m/function-from.md index a059939ac..de3e76f12 100644 --- a/query-languages/m/function-from.md +++ b/query-languages/m/function-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Function.From" title: "Function.From" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-invoke.md b/query-languages/m/function-invoke.md index f251a25a6..c9df7d76f 100644 --- a/query-languages/m/function-invoke.md +++ b/query-languages/m/function-invoke.md @@ -3,7 +3,6 @@ description: "Learn more about: Function.Invoke" title: "Function.Invoke" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-invokeafter.md b/query-languages/m/function-invokeafter.md index fdc026351..e4f5c8775 100644 --- a/query-languages/m/function-invokeafter.md +++ b/query-languages/m/function-invokeafter.md @@ -3,7 +3,6 @@ description: "Learn more about: Function.InvokeAfter" title: "Function.InvokeAfter" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-isdatasource.md b/query-languages/m/function-isdatasource.md index 6ce51e013..a294dca93 100644 --- a/query-languages/m/function-isdatasource.md +++ b/query-languages/m/function-isdatasource.md @@ -3,7 +3,6 @@ description: "Learn more about: Function.IsDataSource" title: "Function.IsDataSource" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-scalarvector.md b/query-languages/m/function-scalarvector.md index f3f5ff1e4..2f759ca9f 100644 --- a/query-languages/m/function-scalarvector.md +++ b/query-languages/m/function-scalarvector.md @@ -3,7 +3,6 @@ description: "Learn more about: Function.ScalarVector" title: "Function.ScalarVector" ms.date: 09/13/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/function-values.md b/query-languages/m/function-values.md index d9b4db8e6..4bd18cc65 100644 --- a/query-languages/m/function-values.md +++ b/query-languages/m/function-values.md @@ -3,7 +3,6 @@ description: "Learn more about: Function values" title: "Function values" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geography-fromwellknowntext.md b/query-languages/m/geography-fromwellknowntext.md index 8711c4034..527ab3952 100644 --- a/query-languages/m/geography-fromwellknowntext.md +++ b/query-languages/m/geography-fromwellknowntext.md @@ -3,7 +3,6 @@ description: "Learn more about: Geography.FromWellKnownText" title: "Geography.FromWellKnownText" ms.date: 7/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geography-towellknowntext.md b/query-languages/m/geography-towellknowntext.md index 23fc06d74..a7a564bae 100644 --- a/query-languages/m/geography-towellknowntext.md +++ b/query-languages/m/geography-towellknowntext.md @@ -3,7 +3,6 @@ description: "Learn more about: Geography.ToWellKnownText" title: "Geography.ToWellKnownText" ms.date: 7/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geographypoint-from.md b/query-languages/m/geographypoint-from.md index 066954dac..dff8fc96d 100644 --- a/query-languages/m/geographypoint-from.md +++ b/query-languages/m/geographypoint-from.md @@ -3,7 +3,6 @@ description: "Learn more about: GeographyPoint.From" title: "GeographyPoint.From" ms.date: 7/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geometry-fromwellknowntext.md b/query-languages/m/geometry-fromwellknowntext.md index fca422c78..1c6a9b0d0 100644 --- a/query-languages/m/geometry-fromwellknowntext.md +++ b/query-languages/m/geometry-fromwellknowntext.md @@ -3,7 +3,6 @@ description: "Learn more about: Geometry.FromWellKnownText" title: "Geometry.FromWellKnownText" ms.date: 7/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geometry-towellknowntext.md b/query-languages/m/geometry-towellknowntext.md index 2ab6db976..c8dfcb023 100644 --- a/query-languages/m/geometry-towellknowntext.md +++ b/query-languages/m/geometry-towellknowntext.md @@ -3,7 +3,6 @@ description: "Learn more about: Geometry.ToWellKnownText" title: "Geometry.ToWellKnownText" ms.date: 7/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/geometrypoint-from.md b/query-languages/m/geometrypoint-from.md index 29853667c..eea59cf83 100644 --- a/query-languages/m/geometrypoint-from.md +++ b/query-languages/m/geometrypoint-from.md @@ -3,7 +3,6 @@ description: "Learn more about: GeometryPoint.From" title: "GeometryPoint.From" ms.date: 7/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/googleanalytics-accounts.md b/query-languages/m/googleanalytics-accounts.md index 5920403ac..9cf586cf2 100644 --- a/query-languages/m/googleanalytics-accounts.md +++ b/query-languages/m/googleanalytics-accounts.md @@ -3,7 +3,6 @@ description: "Learn more about: GoogleAnalytics.Accounts" title: "GoogleAnalytics.Accounts" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/graph-nodes.md b/query-languages/m/graph-nodes.md index 88fa7817b..59e5bc86a 100644 --- a/query-languages/m/graph-nodes.md +++ b/query-languages/m/graph-nodes.md @@ -3,7 +3,6 @@ description: "Learn more about: Graph.Nodes" title: "Graph.Nodes" ms.date: 9/22/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/guid-from.md b/query-languages/m/guid-from.md index fe49ec2ba..058d9f464 100644 --- a/query-languages/m/guid-from.md +++ b/query-languages/m/guid-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Guid.From" title: "Guid.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdfs-contents.md b/query-languages/m/hdfs-contents.md index be0f67b44..2f8b55cee 100644 --- a/query-languages/m/hdfs-contents.md +++ b/query-languages/m/hdfs-contents.md @@ -3,7 +3,6 @@ description: "Learn more about: Hdfs.Contents" title: "Hdfs.Contents" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdfs-files.md b/query-languages/m/hdfs-files.md index b1eb2b2db..72bb6090c 100644 --- a/query-languages/m/hdfs-files.md +++ b/query-languages/m/hdfs-files.md @@ -3,7 +3,6 @@ description: "Learn more about: Hdfs.Files" title: "Hdfs.Files" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdinsight-containers.md b/query-languages/m/hdinsight-containers.md index f5c842276..4803397a1 100644 --- a/query-languages/m/hdinsight-containers.md +++ b/query-languages/m/hdinsight-containers.md @@ -3,7 +3,6 @@ description: "Learn more about: HdInsight.Containers" title: "HdInsight.Containers" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdinsight-contents.md b/query-languages/m/hdinsight-contents.md index 79ce07e32..36076ac35 100644 --- a/query-languages/m/hdinsight-contents.md +++ b/query-languages/m/hdinsight-contents.md @@ -3,7 +3,6 @@ description: "Learn more about: HdInsight.Contents" title: "HdInsight.Contents" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/hdinsight-files.md b/query-languages/m/hdinsight-files.md index 4828ee4f4..4693d78bd 100644 --- a/query-languages/m/hdinsight-files.md +++ b/query-languages/m/hdinsight-files.md @@ -3,7 +3,6 @@ description: "Learn more about: HdInsight.Files" title: "HdInsight.Files" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/identity-from.md b/query-languages/m/identity-from.md index 5e644e143..53f2f63ee 100644 --- a/query-languages/m/identity-from.md +++ b/query-languages/m/identity-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Identity.From" title: "Identity.From" ms.date: 3/28/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/identity-ismemberof.md b/query-languages/m/identity-ismemberof.md index 70947f867..3bc91f11c 100644 --- a/query-languages/m/identity-ismemberof.md +++ b/query-languages/m/identity-ismemberof.md @@ -3,7 +3,6 @@ description: "Learn more about: Identity.IsMemberOf" title: "Identity.IsMemberOf" ms.date: 3/28/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/identityprovider-default.md b/query-languages/m/identityprovider-default.md index ba54e655e..bdb065212 100644 --- a/query-languages/m/identityprovider-default.md +++ b/query-languages/m/identityprovider-default.md @@ -3,7 +3,6 @@ description: "Learn more about: IdentityProvider.Default" title: "IdentityProvider.Default" ms.date: 3/28/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/int16-from.md b/query-languages/m/int16-from.md index 415279b27..3f25c74d9 100644 --- a/query-languages/m/int16-from.md +++ b/query-languages/m/int16-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Int16.From" title: "Int16.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/int32-from.md b/query-languages/m/int32-from.md index b7120952d..46b5efb44 100644 --- a/query-languages/m/int32-from.md +++ b/query-languages/m/int32-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Int32.From" title: "Int32.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/int64-from.md b/query-languages/m/int64-from.md index 127099e49..b6580f139 100644 --- a/query-languages/m/int64-from.md +++ b/query-languages/m/int64-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Int64.From" title: "Int64.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index 859304593..dd69591c3 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Int8.From" title: "Int8.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index b034e3bd1..06ff43803 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -3,7 +3,6 @@ description: "Learn more about: ItemExpression.From" title: "ItemExpression.From" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/itemexpression-item.md b/query-languages/m/itemexpression-item.md index cd0cf009b..11972b40f 100644 --- a/query-languages/m/itemexpression-item.md +++ b/query-languages/m/itemexpression-item.md @@ -3,7 +3,6 @@ description: "Learn more about: ItemExpression.Item" title: "ItemExpression.Item" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/json-document.md b/query-languages/m/json-document.md index 9c48bda59..664e490bc 100644 --- a/query-languages/m/json-document.md +++ b/query-languages/m/json-document.md @@ -3,7 +3,6 @@ description: "Learn more about: Json.Document" title: "Json.Document" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/json-fromvalue.md b/query-languages/m/json-fromvalue.md index eebfbd2b7..bab472d20 100644 --- a/query-languages/m/json-fromvalue.md +++ b/query-languages/m/json-fromvalue.md @@ -3,7 +3,6 @@ description: "Learn more about: Json.FromValue" title: "Json.FromValue" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/limitclausekind-type.md b/query-languages/m/limitclausekind-type.md index a186c7629..1a49c71fa 100644 --- a/query-languages/m/limitclausekind-type.md +++ b/query-languages/m/limitclausekind-type.md @@ -3,7 +3,6 @@ description: "Learn more about: LimitClauseKind.Type" title: "LimitClauseKind.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index 4611496f0..b022fd06c 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -3,7 +3,6 @@ description: "Learn more about: Lines.FromBinary" title: "Lines.FromBinary" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index 21b29183c..94bb13ae5 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: Lines.FromText" title: "Lines.FromText" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-functions.md b/query-languages/m/lines-functions.md index e23732d6f..66f3609f9 100644 --- a/query-languages/m/lines-functions.md +++ b/query-languages/m/lines-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Lines functions" title: "Lines functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-tobinary.md b/query-languages/m/lines-tobinary.md index 7cbe7717f..44ca7a491 100644 --- a/query-languages/m/lines-tobinary.md +++ b/query-languages/m/lines-tobinary.md @@ -3,7 +3,6 @@ description: "Learn more about: Lines.ToBinary" title: "Lines.ToBinary" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/lines-totext.md b/query-languages/m/lines-totext.md index 80692ae93..4e4940f72 100644 --- a/query-languages/m/lines-totext.md +++ b/query-languages/m/lines-totext.md @@ -3,7 +3,6 @@ description: "Learn more about: Lines.ToText" title: "Lines.ToText" ms.date: 7/30/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-accumulate.md b/query-languages/m/list-accumulate.md index a065cf1b8..a7b4b4b77 100644 --- a/query-languages/m/list-accumulate.md +++ b/query-languages/m/list-accumulate.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Accumulate" title: "List.Accumulate" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-alltrue.md b/query-languages/m/list-alltrue.md index 40bcc3f60..0e1ab7c59 100644 --- a/query-languages/m/list-alltrue.md +++ b/query-languages/m/list-alltrue.md @@ -3,7 +3,6 @@ description: "Learn more about: List.AllTrue" title: "List.AllTrue" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-alternate.md b/query-languages/m/list-alternate.md index 221a5fb1a..42fec1a48 100644 --- a/query-languages/m/list-alternate.md +++ b/query-languages/m/list-alternate.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Alternate" title: "List.Alternate" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-anytrue.md b/query-languages/m/list-anytrue.md index b149771e1..24fae639b 100644 --- a/query-languages/m/list-anytrue.md +++ b/query-languages/m/list-anytrue.md @@ -3,7 +3,6 @@ description: "Learn more about: List.AnyTrue" title: "List.AnyTrue" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-average.md b/query-languages/m/list-average.md index 7dc3b10c0..4458ffb03 100644 --- a/query-languages/m/list-average.md +++ b/query-languages/m/list-average.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Average" title: "List.Average" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-buffer.md b/query-languages/m/list-buffer.md index c4ecb8069..e42cf98a2 100644 --- a/query-languages/m/list-buffer.md +++ b/query-languages/m/list-buffer.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Buffer" title: "List.Buffer" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-combine.md b/query-languages/m/list-combine.md index e79f62181..d902adb05 100644 --- a/query-languages/m/list-combine.md +++ b/query-languages/m/list-combine.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Combine" title: "List.Combine" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-conformtopagereader.md b/query-languages/m/list-conformtopagereader.md index b2679c37e..4491b322f 100644 --- a/query-languages/m/list-conformtopagereader.md +++ b/query-languages/m/list-conformtopagereader.md @@ -3,7 +3,6 @@ description: "Learn more about: List.ConformToPageReader" title: "List.ConformToPageReader" ms.date: 8/21/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index 5f2eefe80..2d41a6d7d 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Contains" title: "List.Contains" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index c90591fa8..b80d044d0 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -3,7 +3,6 @@ description: "Learn more about: List.ContainsAll" title: "List.ContainsAll" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index 15c2998de..b56801550 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -3,7 +3,6 @@ description: "Learn more about: List.ContainsAny" title: "List.ContainsAny" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-count.md b/query-languages/m/list-count.md index d8ad3bb06..53550c313 100644 --- a/query-languages/m/list-count.md +++ b/query-languages/m/list-count.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Count" title: "List.Count" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-covariance.md b/query-languages/m/list-covariance.md index 308de93fa..e50bad92f 100644 --- a/query-languages/m/list-covariance.md +++ b/query-languages/m/list-covariance.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Covariance" title: "List.Covariance" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-dates.md b/query-languages/m/list-dates.md index c9946a94f..2882ab524 100644 --- a/query-languages/m/list-dates.md +++ b/query-languages/m/list-dates.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Dates" title: "List.Dates" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-datetimes.md b/query-languages/m/list-datetimes.md index eb06b80b3..cbc53916e 100644 --- a/query-languages/m/list-datetimes.md +++ b/query-languages/m/list-datetimes.md @@ -3,7 +3,6 @@ description: "Learn more about: List.DateTimes" title: "List.DateTimes" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-datetimezones.md b/query-languages/m/list-datetimezones.md index e4e488c0c..41726caf1 100644 --- a/query-languages/m/list-datetimezones.md +++ b/query-languages/m/list-datetimezones.md @@ -3,7 +3,6 @@ description: "Learn more about: List.DateTimeZones" title: "List.DateTimeZones" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-difference.md b/query-languages/m/list-difference.md index 2dc52c6cf..2ff205409 100644 --- a/query-languages/m/list-difference.md +++ b/query-languages/m/list-difference.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Difference" title: "List.Difference" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index a9df78beb..620faa0e2 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Distinct" title: "List.Distinct" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-durations.md b/query-languages/m/list-durations.md index ce567bf0d..1f0005222 100644 --- a/query-languages/m/list-durations.md +++ b/query-languages/m/list-durations.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Durations" title: "List.Durations" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-findtext.md b/query-languages/m/list-findtext.md index 9b963a479..8c4c685e6 100644 --- a/query-languages/m/list-findtext.md +++ b/query-languages/m/list-findtext.md @@ -3,7 +3,6 @@ description: "Learn more about: List.FindText" title: "List.FindText" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-first.md b/query-languages/m/list-first.md index 22e3c4536..a7cd4b43b 100644 --- a/query-languages/m/list-first.md +++ b/query-languages/m/list-first.md @@ -3,7 +3,6 @@ description: "Learn more about: List.First" title: "List.First" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-firstn.md b/query-languages/m/list-firstn.md index 32da35fbc..e0c735349 100644 --- a/query-languages/m/list-firstn.md +++ b/query-languages/m/list-firstn.md @@ -3,7 +3,6 @@ description: "Learn more about: List.FirstN" title: "List.FirstN" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index bc3dd0da4..2fbf2ceca 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: List functions" title: "List functions" ms.date: 7/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-generate.md b/query-languages/m/list-generate.md index 34fa039e0..00047bf19 100644 --- a/query-languages/m/list-generate.md +++ b/query-languages/m/list-generate.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Generate" title: "List.Generate" ms.date: 7/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-insertrange.md b/query-languages/m/list-insertrange.md index 28b932093..7ddad9757 100644 --- a/query-languages/m/list-insertrange.md +++ b/query-languages/m/list-insertrange.md @@ -3,7 +3,6 @@ description: "Learn more about: List.InsertRange" title: "List.InsertRange" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-intersect.md b/query-languages/m/list-intersect.md index 02cd143b1..11e1d7eca 100644 --- a/query-languages/m/list-intersect.md +++ b/query-languages/m/list-intersect.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Intersect" title: "List.Intersect" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-isdistinct.md b/query-languages/m/list-isdistinct.md index aa1019d69..bdd32097b 100644 --- a/query-languages/m/list-isdistinct.md +++ b/query-languages/m/list-isdistinct.md @@ -3,7 +3,6 @@ description: "Learn more about: List.IsDistinct" title: "List.IsDistinct" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-isempty.md b/query-languages/m/list-isempty.md index e6a4c553e..548d836e3 100644 --- a/query-languages/m/list-isempty.md +++ b/query-languages/m/list-isempty.md @@ -3,7 +3,6 @@ description: "Learn more about: List.IsEmpty" title: "List.IsEmpty" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-last.md b/query-languages/m/list-last.md index 6705c81e3..14d89a280 100644 --- a/query-languages/m/list-last.md +++ b/query-languages/m/list-last.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Last" title: "List.Last" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-lastn.md b/query-languages/m/list-lastn.md index 971b87ccb..455825126 100644 --- a/query-languages/m/list-lastn.md +++ b/query-languages/m/list-lastn.md @@ -3,7 +3,6 @@ description: "Learn more about: List.LastN" title: "List.LastN" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-matchesall.md b/query-languages/m/list-matchesall.md index 3cbae4076..d3b18bc08 100644 --- a/query-languages/m/list-matchesall.md +++ b/query-languages/m/list-matchesall.md @@ -3,7 +3,6 @@ description: "Learn more about: List.MatchesAll" title: "List.MatchesAll" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-matchesany.md b/query-languages/m/list-matchesany.md index 12f3de5fc..0fc0910dc 100644 --- a/query-languages/m/list-matchesany.md +++ b/query-languages/m/list-matchesany.md @@ -3,7 +3,6 @@ description: "Learn more about: List.MatchesAny" title: "List.MatchesAny" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-max.md b/query-languages/m/list-max.md index 3dcb2072c..b38582995 100644 --- a/query-languages/m/list-max.md +++ b/query-languages/m/list-max.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Max" title: "List.Max" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-maxn.md b/query-languages/m/list-maxn.md index ec6692bd9..a068cbd9b 100644 --- a/query-languages/m/list-maxn.md +++ b/query-languages/m/list-maxn.md @@ -3,7 +3,6 @@ description: "Learn more about: List.MaxN" title: "List.MaxN" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-median.md b/query-languages/m/list-median.md index 1be1286af..54eff20b0 100644 --- a/query-languages/m/list-median.md +++ b/query-languages/m/list-median.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Median" title: "List.Median" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-min.md b/query-languages/m/list-min.md index 258d9c5fd..3040c902f 100644 --- a/query-languages/m/list-min.md +++ b/query-languages/m/list-min.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Min" title: "List.Min" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-minn.md b/query-languages/m/list-minn.md index d5e2af1cf..6680e1c7e 100644 --- a/query-languages/m/list-minn.md +++ b/query-languages/m/list-minn.md @@ -3,7 +3,6 @@ description: "Learn more about: List.MinN" title: "List.MinN" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-mode.md b/query-languages/m/list-mode.md index 779770845..b4ffee78f 100644 --- a/query-languages/m/list-mode.md +++ b/query-languages/m/list-mode.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Mode" title: "List.Mode" ms.date: 7/15/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-modes.md b/query-languages/m/list-modes.md index 48ab4e52b..f740df436 100644 --- a/query-languages/m/list-modes.md +++ b/query-languages/m/list-modes.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Modes" title: "List.Modes" ms.date: 7/15/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-nonnullcount.md b/query-languages/m/list-nonnullcount.md index 915a2d260..39fd218e4 100644 --- a/query-languages/m/list-nonnullcount.md +++ b/query-languages/m/list-nonnullcount.md @@ -3,7 +3,6 @@ description: "Learn more about: List.NonNullCount" title: "List.NonNullCount" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-numbers.md b/query-languages/m/list-numbers.md index e03ea4c51..45e9c5d67 100644 --- a/query-languages/m/list-numbers.md +++ b/query-languages/m/list-numbers.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Numbers" title: "List.Numbers" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index efc4f5d41..8acdbe121 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -3,7 +3,6 @@ description: "Learn more about: List.PositionOf" title: "List.PositionOf" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index 5af85eb3b..a46ba65dc 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -3,7 +3,6 @@ description: "Learn more about: List.PositionOfAny" title: "List.PositionOfAny" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-positions.md b/query-languages/m/list-positions.md index de01c439e..370eec34e 100644 --- a/query-languages/m/list-positions.md +++ b/query-languages/m/list-positions.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Positions" title: "List.Positions" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-product.md b/query-languages/m/list-product.md index 808eb03aa..6d4666f26 100644 --- a/query-languages/m/list-product.md +++ b/query-languages/m/list-product.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Product" title: "List.Product" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-random.md b/query-languages/m/list-random.md index 6f0e64ce0..ae04320cc 100644 --- a/query-languages/m/list-random.md +++ b/query-languages/m/list-random.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Random" title: "List.Random" ms.date: 3/8/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-range.md b/query-languages/m/list-range.md index d7c06e89d..1569a378c 100644 --- a/query-languages/m/list-range.md +++ b/query-languages/m/list-range.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Range" title: "List.Range" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removefirstn.md b/query-languages/m/list-removefirstn.md index 5c9e4894e..5cda33352 100644 --- a/query-languages/m/list-removefirstn.md +++ b/query-languages/m/list-removefirstn.md @@ -3,7 +3,6 @@ description: "Learn more about: List.RemoveFirstN" title: "List.RemoveFirstN" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removeitems.md b/query-languages/m/list-removeitems.md index 05873759b..b2c12355b 100644 --- a/query-languages/m/list-removeitems.md +++ b/query-languages/m/list-removeitems.md @@ -3,7 +3,6 @@ description: "Learn more about: List.RemoveItems" title: "List.RemoveItems" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removelastn.md b/query-languages/m/list-removelastn.md index 779576dde..e307cc5d1 100644 --- a/query-languages/m/list-removelastn.md +++ b/query-languages/m/list-removelastn.md @@ -3,7 +3,6 @@ description: "Learn more about: List.RemoveLastN" title: "List.RemoveLastN" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removematchingitems.md b/query-languages/m/list-removematchingitems.md index 2d8199220..5c80d5d79 100644 --- a/query-languages/m/list-removematchingitems.md +++ b/query-languages/m/list-removematchingitems.md @@ -3,7 +3,6 @@ description: "Learn more about: List.RemoveMatchingItems" title: "List.RemoveMatchingItems" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removenulls.md b/query-languages/m/list-removenulls.md index 6f8280452..fcedac4e8 100644 --- a/query-languages/m/list-removenulls.md +++ b/query-languages/m/list-removenulls.md @@ -3,7 +3,6 @@ description: "Learn more about: List.RemoveNulls" title: "List.RemoveNulls" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-removerange.md b/query-languages/m/list-removerange.md index 83d37803b..6ce5cb1a7 100644 --- a/query-languages/m/list-removerange.md +++ b/query-languages/m/list-removerange.md @@ -3,7 +3,6 @@ description: "Learn more about: List.RemoveRange" title: "List.RemoveRange" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-repeat.md b/query-languages/m/list-repeat.md index e4d49cb86..2ff69df0a 100644 --- a/query-languages/m/list-repeat.md +++ b/query-languages/m/list-repeat.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Repeat" title: "List.Repeat" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-replacematchingitems.md b/query-languages/m/list-replacematchingitems.md index db784f800..18e17f383 100644 --- a/query-languages/m/list-replacematchingitems.md +++ b/query-languages/m/list-replacematchingitems.md @@ -3,7 +3,6 @@ description: "Learn more about: List.ReplaceMatchingItems" title: "List.ReplaceMatchingItems" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-replacerange.md b/query-languages/m/list-replacerange.md index f44ed437c..3717f7d03 100644 --- a/query-languages/m/list-replacerange.md +++ b/query-languages/m/list-replacerange.md @@ -3,7 +3,6 @@ description: "Learn more about: List.ReplaceRange" title: "List.ReplaceRange" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-replacevalue.md b/query-languages/m/list-replacevalue.md index 6286e6c1f..20a16a5bf 100644 --- a/query-languages/m/list-replacevalue.md +++ b/query-languages/m/list-replacevalue.md @@ -3,7 +3,6 @@ description: "Learn more about: List.ReplaceValue" title: "List.ReplaceValue" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-reverse.md b/query-languages/m/list-reverse.md index 8c6be4159..ee9ae635e 100644 --- a/query-languages/m/list-reverse.md +++ b/query-languages/m/list-reverse.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Reverse" title: "List.Reverse" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-select.md b/query-languages/m/list-select.md index e8f95ab2c..f0505aac9 100644 --- a/query-languages/m/list-select.md +++ b/query-languages/m/list-select.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Select" title: "List.Select" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-single.md b/query-languages/m/list-single.md index 18be279a4..d04c096d3 100644 --- a/query-languages/m/list-single.md +++ b/query-languages/m/list-single.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Single" title: "List.Single" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-singleordefault.md b/query-languages/m/list-singleordefault.md index c09db7243..b8bd9cb8e 100644 --- a/query-languages/m/list-singleordefault.md +++ b/query-languages/m/list-singleordefault.md @@ -3,7 +3,6 @@ description: "Learn more about: List.SingleOrDefault" title: "List.SingleOrDefault" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-skip.md b/query-languages/m/list-skip.md index 25e902dfc..3904004e4 100644 --- a/query-languages/m/list-skip.md +++ b/query-languages/m/list-skip.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Skip" title: "List.Skip" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-sort.md b/query-languages/m/list-sort.md index 23540cc27..382da897c 100644 --- a/query-languages/m/list-sort.md +++ b/query-languages/m/list-sort.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Sort" title: "List.Sort" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-split.md b/query-languages/m/list-split.md index 4fbf93e7c..1d91b8bf3 100644 --- a/query-languages/m/list-split.md +++ b/query-languages/m/list-split.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Split" title: "List.Split" ms.date: 11/17/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-standarddeviation.md b/query-languages/m/list-standarddeviation.md index cb7c72a50..31b238b3a 100644 --- a/query-languages/m/list-standarddeviation.md +++ b/query-languages/m/list-standarddeviation.md @@ -3,7 +3,6 @@ description: "Learn more about: List.StandardDeviation" title: "List.StandardDeviation" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-sum.md b/query-languages/m/list-sum.md index c7e352348..4a84dbbdc 100644 --- a/query-languages/m/list-sum.md +++ b/query-languages/m/list-sum.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Sum" title: "List.Sum" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-times.md b/query-languages/m/list-times.md index df8e7800e..9d329245e 100644 --- a/query-languages/m/list-times.md +++ b/query-languages/m/list-times.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Times" title: "List.Times" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-transform.md b/query-languages/m/list-transform.md index 89ae169a6..c72a033f9 100644 --- a/query-languages/m/list-transform.md +++ b/query-languages/m/list-transform.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Transform" title: "List.Transform" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-transformmany.md b/query-languages/m/list-transformmany.md index b7d9198ab..2ba74a3b2 100644 --- a/query-languages/m/list-transformmany.md +++ b/query-languages/m/list-transformmany.md @@ -3,7 +3,6 @@ description: "Learn more about: List.TransformMany" title: "List.TransformMany" ms.date: 10/18/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-union.md b/query-languages/m/list-union.md index 46954e56c..637da9541 100644 --- a/query-languages/m/list-union.md +++ b/query-languages/m/list-union.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Union" title: "List.Union" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/list-zip.md b/query-languages/m/list-zip.md index 41687eb11..006e30d64 100644 --- a/query-languages/m/list-zip.md +++ b/query-languages/m/list-zip.md @@ -3,7 +3,6 @@ description: "Learn more about: List.Zip" title: "List.Zip" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/logical-from.md b/query-languages/m/logical-from.md index 30ab0fa7d..b568ef496 100644 --- a/query-languages/m/logical-from.md +++ b/query-languages/m/logical-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Logical.From" title: "Logical.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/logical-fromtext.md b/query-languages/m/logical-fromtext.md index f90759515..11e65ee8d 100644 --- a/query-languages/m/logical-fromtext.md +++ b/query-languages/m/logical-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: Logical.FromText" title: "Logical.FromText" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/logical-functions.md b/query-languages/m/logical-functions.md index 5f6f887b7..de967d97b 100644 --- a/query-languages/m/logical-functions.md +++ b/query-languages/m/logical-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Logical functions" title: "Logical functions" ms.date: 5/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/logical-totext.md b/query-languages/m/logical-totext.md index e6cbfc97e..d35fb123c 100644 --- a/query-languages/m/logical-totext.md +++ b/query-languages/m/logical-totext.md @@ -3,7 +3,6 @@ description: "Learn more about: Logical.ToText" title: "Logical.ToText" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index fa5346718..682731fb7 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -1,10 +1,8 @@ --- -title: M Language basic concepts | Microsoft Docs +title: M Language basic concepts description: Discusses basic concepts that appear throughout the subsequent sections author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 2/25/2020 ms.author: dougklo diff --git a/query-languages/m/m-spec-conditionals.md b/query-languages/m/m-spec-conditionals.md index d50b7c2e4..834c70652 100644 --- a/query-languages/m/m-spec-conditionals.md +++ b/query-languages/m/m-spec-conditionals.md @@ -1,10 +1,8 @@ --- -title: M Language Conditionals | Microsoft Docs +title: M Language Conditionals description: Describes using conditionals in the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 2/28/2020 ms.author: dougklo diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 4e658329c..f53f2ca60 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -1,10 +1,8 @@ --- -title: M Language Consolidated Grammar | Microsoft Docs +title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 11/29/2021 ms.author: dougklo diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index 4bdb8b9d2..6dbcfc9cf 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -1,10 +1,8 @@ --- -title: M Language Error Handling | Microsoft Docs +title: M Language Error Handling description: Describes error handling in the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 2/28/2020 ms.author: dougklo diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 514ace79d..701a382ca 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -1,10 +1,8 @@ --- -title: M Language Functions | Microsoft Docs +title: M Language Functions description: Describes using functions in the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 4/7/2020 ms.author: dougklo diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index d0f86bd53..8312a8abd 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -1,10 +1,8 @@ --- -title: Power Query M Formula Language Introduction | Microsoft Docs +title: Power Query M Formula Language Introduction description: Provides an overview of the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: overview ms.date: 2/25/2020 ms.author: dougklo diff --git a/query-languages/m/m-spec-let.md b/query-languages/m/m-spec-let.md index 22de2258f..590f94d13 100644 --- a/query-languages/m/m-spec-let.md +++ b/query-languages/m/m-spec-let.md @@ -1,10 +1,8 @@ --- -title: M Language Let | Microsoft Docs +title: M Language Let description: Describes using the let expression in the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 4/7/2020 ms.author: dougklo diff --git a/query-languages/m/m-spec-lexical-structure.md b/query-languages/m/m-spec-lexical-structure.md index 58b74129f..5a591b570 100644 --- a/query-languages/m/m-spec-lexical-structure.md +++ b/query-languages/m/m-spec-lexical-structure.md @@ -1,10 +1,8 @@ --- -title: M Language lexical structure | Microsoft Docs +title: M Language lexical structure description: Describes the lexical structure of the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 11/29/2021 ms.author: dougklo diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 48e7a66f5..d3c8eeae1 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -1,10 +1,8 @@ --- -title: M Language Operators | Microsoft Docs +title: M Language Operators description: Describes using operators in the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 11/29/2021 ms.author: dougklo diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index da2cce491..0507f0777 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -1,10 +1,8 @@ --- -title: M Language Sections | Microsoft Docs +title: M Language Sections description: Describes using sections in the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 8/23/2021 ms.author: dougklo diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 292d5053a..546dfe83e 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -1,10 +1,8 @@ --- -title: M Language types | Microsoft Docs +title: M Language types description: Describes using types in the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 11/29/2021 ms.author: dougklo diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index 9b18cc325..508d23045 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -1,10 +1,8 @@ --- -title: M Language values | Microsoft Docs +title: M Language values description: Describes using values in the Power Query M formula language author: dougklopfenstein - ms.service: powerquery - ms.topic: article ms.date: 11/29/2021 ms.author: dougklo diff --git a/query-languages/m/metadata.md b/query-languages/m/metadata.md index 6e5f3fe7d..d6c46f64c 100644 --- a/query-languages/m/metadata.md +++ b/query-languages/m/metadata.md @@ -3,7 +3,6 @@ description: "Learn more about: Metadata" title: "Metadata" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/missingfield-type.md b/query-languages/m/missingfield-type.md index 129cabec0..c187021e5 100644 --- a/query-languages/m/missingfield-type.md +++ b/query-languages/m/missingfield-type.md @@ -3,7 +3,6 @@ description: "Learn more about: MissingField.Type" title: "MissingField.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-abs.md b/query-languages/m/number-abs.md index 075498ff3..5408bbcf2 100644 --- a/query-languages/m/number-abs.md +++ b/query-languages/m/number-abs.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Abs" title: "Number.Abs" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-acos.md b/query-languages/m/number-acos.md index 0b9ad86d0..fa5ad8612 100644 --- a/query-languages/m/number-acos.md +++ b/query-languages/m/number-acos.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Acos" title: "Number.Acos" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-asin.md b/query-languages/m/number-asin.md index bd3a006d8..74eefc169 100644 --- a/query-languages/m/number-asin.md +++ b/query-languages/m/number-asin.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Asin" title: "Number.Asin" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-atan.md b/query-languages/m/number-atan.md index 2dada8ffa..4be0a59a8 100644 --- a/query-languages/m/number-atan.md +++ b/query-languages/m/number-atan.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Atan" title: "Number.Atan" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-atan2.md b/query-languages/m/number-atan2.md index a4712bf0b..9858d8a3a 100644 --- a/query-languages/m/number-atan2.md +++ b/query-languages/m/number-atan2.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Atan2" title: "Number.Atan2" ms.date: 1/20/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwiseand.md b/query-languages/m/number-bitwiseand.md index b2304432c..423a3eafd 100644 --- a/query-languages/m/number-bitwiseand.md +++ b/query-languages/m/number-bitwiseand.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.BitwiseAnd" title: "Number.BitwiseAnd" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwisenot.md b/query-languages/m/number-bitwisenot.md index 2aa71879e..d9b77f3d3 100644 --- a/query-languages/m/number-bitwisenot.md +++ b/query-languages/m/number-bitwisenot.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.BitwiseNot" title: "Number.BitwiseNot" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwiseor.md b/query-languages/m/number-bitwiseor.md index 1ece6702e..e79b26358 100644 --- a/query-languages/m/number-bitwiseor.md +++ b/query-languages/m/number-bitwiseor.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.BitwiseOr" title: "Number.BitwiseOr" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwiseshiftleft.md b/query-languages/m/number-bitwiseshiftleft.md index 7da1547df..317cb871e 100644 --- a/query-languages/m/number-bitwiseshiftleft.md +++ b/query-languages/m/number-bitwiseshiftleft.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.BitwiseShiftLeft" title: "Number.BitwiseShiftLeft" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwiseshiftright.md b/query-languages/m/number-bitwiseshiftright.md index 3e51fe546..12893065c 100644 --- a/query-languages/m/number-bitwiseshiftright.md +++ b/query-languages/m/number-bitwiseshiftright.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.BitwiseShiftRight" title: "Number.BitwiseShiftRight" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-bitwisexor.md b/query-languages/m/number-bitwisexor.md index 3b5fb25ba..35848bae0 100644 --- a/query-languages/m/number-bitwisexor.md +++ b/query-languages/m/number-bitwisexor.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.BitwiseXor" title: "Number.BitwiseXor" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-combinations.md b/query-languages/m/number-combinations.md index 73939ea53..fa478854c 100644 --- a/query-languages/m/number-combinations.md +++ b/query-languages/m/number-combinations.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Combinations" title: "Number.Combinations" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-cos.md b/query-languages/m/number-cos.md index 2f59b667b..57b7e17da 100644 --- a/query-languages/m/number-cos.md +++ b/query-languages/m/number-cos.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Cos" title: "Number.Cos" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-cosh.md b/query-languages/m/number-cosh.md index 961ed7805..a73091996 100644 --- a/query-languages/m/number-cosh.md +++ b/query-languages/m/number-cosh.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Cosh" title: "Number.Cosh" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-e.md b/query-languages/m/number-e.md index 0deeb3bc2..82a442e8f 100644 --- a/query-languages/m/number-e.md +++ b/query-languages/m/number-e.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.E" title: "Number.E" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-epsilon.md b/query-languages/m/number-epsilon.md index e8788b305..401b12332 100644 --- a/query-languages/m/number-epsilon.md +++ b/query-languages/m/number-epsilon.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Epsilon" title: "Number.Epsilon" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-exp.md b/query-languages/m/number-exp.md index b351449ef..dbead87b9 100644 --- a/query-languages/m/number-exp.md +++ b/query-languages/m/number-exp.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Exp" title: "Number.Exp" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-factorial.md b/query-languages/m/number-factorial.md index 537989865..89243d7e0 100644 --- a/query-languages/m/number-factorial.md +++ b/query-languages/m/number-factorial.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Factorial" title: "Number.Factorial" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-from.md b/query-languages/m/number-from.md index 3c5c2bfc9..e1c2a44dd 100644 --- a/query-languages/m/number-from.md +++ b/query-languages/m/number-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.From" title: "Number.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-fromtext.md b/query-languages/m/number-fromtext.md index 8701987db..ec30d86c1 100644 --- a/query-languages/m/number-fromtext.md +++ b/query-languages/m/number-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.FromText" title: "Number.FromText" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-functions.md b/query-languages/m/number-functions.md index 7360c0bca..15745d14f 100644 --- a/query-languages/m/number-functions.md +++ b/query-languages/m/number-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Number functions" title: "Number functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-integerdivide.md b/query-languages/m/number-integerdivide.md index 6f4d32803..59fae10d7 100644 --- a/query-languages/m/number-integerdivide.md +++ b/query-languages/m/number-integerdivide.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.IntegerDivide" title: "Number.IntegerDivide" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-iseven.md b/query-languages/m/number-iseven.md index e24dc7b6d..923b19942 100644 --- a/query-languages/m/number-iseven.md +++ b/query-languages/m/number-iseven.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.IsEven" title: "Number.IsEven" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-isnan.md b/query-languages/m/number-isnan.md index e9034bace..012675ab6 100644 --- a/query-languages/m/number-isnan.md +++ b/query-languages/m/number-isnan.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.IsNaN" title: "Number.IsNaN" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-isodd.md b/query-languages/m/number-isodd.md index 85eee5646..f48d3f39f 100644 --- a/query-languages/m/number-isodd.md +++ b/query-languages/m/number-isodd.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.IsOdd" title: "Number.IsOdd" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-ln.md b/query-languages/m/number-ln.md index 9461603ca..5e27c87ae 100644 --- a/query-languages/m/number-ln.md +++ b/query-languages/m/number-ln.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Ln" title: "Number.Ln" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-log.md b/query-languages/m/number-log.md index 9e4c18c7f..e299f76b4 100644 --- a/query-languages/m/number-log.md +++ b/query-languages/m/number-log.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Log" title: "Number.Log" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-log10.md b/query-languages/m/number-log10.md index 097e6fef2..e524957a2 100644 --- a/query-languages/m/number-log10.md +++ b/query-languages/m/number-log10.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Log10" title: "Number.Log10" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-mod.md b/query-languages/m/number-mod.md index c890ed301..59a922c2e 100644 --- a/query-languages/m/number-mod.md +++ b/query-languages/m/number-mod.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Mod" title: "Number.Mod" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-nan.md b/query-languages/m/number-nan.md index 0edd1a348..4aacde3a3 100644 --- a/query-languages/m/number-nan.md +++ b/query-languages/m/number-nan.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.NaN" title: "Number.NaN" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-negativeinfinity.md b/query-languages/m/number-negativeinfinity.md index 1981cf93f..ba2c7bb1b 100644 --- a/query-languages/m/number-negativeinfinity.md +++ b/query-languages/m/number-negativeinfinity.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.NegativeInfinity" title: "Number.NegativeInfinity" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-permutations.md b/query-languages/m/number-permutations.md index ec44fb5de..b2ae12b60 100644 --- a/query-languages/m/number-permutations.md +++ b/query-languages/m/number-permutations.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Permutations" title: "Number.Permutations" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-pi.md b/query-languages/m/number-pi.md index 01784eb45..79034b49c 100644 --- a/query-languages/m/number-pi.md +++ b/query-languages/m/number-pi.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.PI" title: "Number.PI" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-positiveinfinity.md b/query-languages/m/number-positiveinfinity.md index 32038990b..de107f524 100644 --- a/query-languages/m/number-positiveinfinity.md +++ b/query-languages/m/number-positiveinfinity.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.PositiveInfinity" title: "Number.PositiveInfinity" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-power.md b/query-languages/m/number-power.md index 13a5c974d..9884b27d8 100644 --- a/query-languages/m/number-power.md +++ b/query-languages/m/number-power.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Power" title: "Number.Power" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-random.md b/query-languages/m/number-random.md index 1cabd10d0..c636c0492 100644 --- a/query-languages/m/number-random.md +++ b/query-languages/m/number-random.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Random" title: "Number.Random" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-randombetween.md b/query-languages/m/number-randombetween.md index 44dfede07..91f731330 100644 --- a/query-languages/m/number-randombetween.md +++ b/query-languages/m/number-randombetween.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.RandomBetween" title: "Number.RandomBetween" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-round.md b/query-languages/m/number-round.md index 153b96d92..0156f2a08 100644 --- a/query-languages/m/number-round.md +++ b/query-languages/m/number-round.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Round" title: "Number.Round" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-roundawayfromzero.md b/query-languages/m/number-roundawayfromzero.md index 9dfb0f999..879b2fb7b 100644 --- a/query-languages/m/number-roundawayfromzero.md +++ b/query-languages/m/number-roundawayfromzero.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.RoundAwayFromZero" title: "Number.RoundAwayFromZero" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-rounddown.md b/query-languages/m/number-rounddown.md index d52cbecba..10865b3ed 100644 --- a/query-languages/m/number-rounddown.md +++ b/query-languages/m/number-rounddown.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.RoundDown" title: "Number.RoundDown" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-roundtowardzero.md b/query-languages/m/number-roundtowardzero.md index 8b728a4d0..774bab123 100644 --- a/query-languages/m/number-roundtowardzero.md +++ b/query-languages/m/number-roundtowardzero.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.RoundTowardZero" title: "Number.RoundTowardZero" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-roundup.md b/query-languages/m/number-roundup.md index 1fe6ea415..18a09a9e7 100644 --- a/query-languages/m/number-roundup.md +++ b/query-languages/m/number-roundup.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.RoundUp" title: "Number.RoundUp" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-sign.md b/query-languages/m/number-sign.md index 4902c16a1..efdff2257 100644 --- a/query-languages/m/number-sign.md +++ b/query-languages/m/number-sign.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Sign" title: "Number.Sign" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-sin.md b/query-languages/m/number-sin.md index 7b4dac7dd..6b51de8fb 100644 --- a/query-languages/m/number-sin.md +++ b/query-languages/m/number-sin.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Sin" title: "Number.Sin" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-sinh.md b/query-languages/m/number-sinh.md index a05f268ee..9244abe0d 100644 --- a/query-languages/m/number-sinh.md +++ b/query-languages/m/number-sinh.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Sinh" title: "Number.Sinh" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-sqrt.md b/query-languages/m/number-sqrt.md index 704fe96b0..f209a746e 100644 --- a/query-languages/m/number-sqrt.md +++ b/query-languages/m/number-sqrt.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Sqrt" title: "Number.Sqrt" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-tan.md b/query-languages/m/number-tan.md index e1a731bac..cbc18fb2b 100644 --- a/query-languages/m/number-tan.md +++ b/query-languages/m/number-tan.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Tan" title: "Number.Tan" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-tanh.md b/query-languages/m/number-tanh.md index f50edb431..88519d761 100644 --- a/query-languages/m/number-tanh.md +++ b/query-languages/m/number-tanh.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.Tanh" title: "Number.Tanh" ms.date: 7/31/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/number-totext.md b/query-languages/m/number-totext.md index 2e9c852b6..984395435 100644 --- a/query-languages/m/number-totext.md +++ b/query-languages/m/number-totext.md @@ -3,7 +3,6 @@ description: "Learn more about: Number.ToText" title: "Number.ToText" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/occurrence-type.md b/query-languages/m/occurrence-type.md index 755fb384d..66a294a45 100644 --- a/query-languages/m/occurrence-type.md +++ b/query-languages/m/occurrence-type.md @@ -3,7 +3,6 @@ description: "Learn more about: Occurrence.Type" title: "Occurrence.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/odata-feed.md b/query-languages/m/odata-feed.md index d78667391..ec9d651de 100644 --- a/query-languages/m/odata-feed.md +++ b/query-languages/m/odata-feed.md @@ -3,7 +3,6 @@ description: "Learn more about: OData.Feed" title: "OData.Feed" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/odataomitvalues-type.md b/query-languages/m/odataomitvalues-type.md index 42d9dd8a7..f5516a259 100644 --- a/query-languages/m/odataomitvalues-type.md +++ b/query-languages/m/odataomitvalues-type.md @@ -3,7 +3,6 @@ description: "Learn more about: ODataOmitValues.Type" title: "ODataOmitValues.Type" ms.date: 6/27/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/odbc-inferoptions.md b/query-languages/m/odbc-inferoptions.md index 9e34504f9..ec8b4287b 100644 --- a/query-languages/m/odbc-inferoptions.md +++ b/query-languages/m/odbc-inferoptions.md @@ -3,7 +3,6 @@ description: "Learn more about: Odbc.InferOptions" title: "Odbc.InferOptions" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index 52f3480dd..9cf8cb5bb 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -3,7 +3,6 @@ description: "Learn more about: Operators" title: "Operators" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/order-type.md b/query-languages/m/order-type.md index 5fe4e1a18..569ecb601 100644 --- a/query-languages/m/order-type.md +++ b/query-languages/m/order-type.md @@ -3,7 +3,6 @@ description: "Learn more about: Order.Type" title: "Order.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/percentage-from.md b/query-languages/m/percentage-from.md index 85c7a073f..7b2ec3f9e 100644 --- a/query-languages/m/percentage-from.md +++ b/query-languages/m/percentage-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Percentage.From" title: "Percentage.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/percentilemode-type.md b/query-languages/m/percentilemode-type.md index d478f0b40..51dc9ce1f 100644 --- a/query-languages/m/percentilemode-type.md +++ b/query-languages/m/percentilemode-type.md @@ -3,7 +3,6 @@ description: "Learn more about: PercentileMode.Type" title: "PercentileMode.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index 061a9ede9..b20fdfadb 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -3,7 +3,6 @@ description: "Learn more about: Types in the Power Query M formula language" title: "Power Query M type system" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/precision-type.md b/query-languages/m/precision-type.md index f7ea5d04c..763ea100f 100644 --- a/query-languages/m/precision-type.md +++ b/query-languages/m/precision-type.md @@ -3,7 +3,6 @@ description: "Learn more about: Precision.Type" title: "Precision.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/quotestyle-type.md b/query-languages/m/quotestyle-type.md index a568a534f..6ede9afb4 100644 --- a/query-languages/m/quotestyle-type.md +++ b/query-languages/m/quotestyle-type.md @@ -3,7 +3,6 @@ description: "Learn more about: QuoteStyle.Type" title: "QuoteStyle.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rankkind-type.md b/query-languages/m/rankkind-type.md index 1c076a3a9..d5c5c4e73 100644 --- a/query-languages/m/rankkind-type.md +++ b/query-languages/m/rankkind-type.md @@ -3,7 +3,6 @@ description: "Learn more about: RankKind.Type" title: "RankKind.Type" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rdata-frombinary.md b/query-languages/m/rdata-frombinary.md index 5d9fe421c..1590dbaac 100644 --- a/query-languages/m/rdata-frombinary.md +++ b/query-languages/m/rdata-frombinary.md @@ -3,7 +3,6 @@ description: "Learn more about: RData.FromBinary" title: "RData.FromBinary" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-addfield.md b/query-languages/m/record-addfield.md index 746f65986..f2888913d 100644 --- a/query-languages/m/record-addfield.md +++ b/query-languages/m/record-addfield.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.AddField" title: "Record.AddField" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-combine.md b/query-languages/m/record-combine.md index 823d75284..acd45883f 100644 --- a/query-languages/m/record-combine.md +++ b/query-languages/m/record-combine.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.Combine" title: "Record.Combine" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-field.md b/query-languages/m/record-field.md index 7023e5dd8..ac9529e1b 100644 --- a/query-languages/m/record-field.md +++ b/query-languages/m/record-field.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.Field" title: "Record.Field" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fieldcount.md b/query-languages/m/record-fieldcount.md index 0148142b5..f6a1c435e 100644 --- a/query-languages/m/record-fieldcount.md +++ b/query-languages/m/record-fieldcount.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.FieldCount" title: "Record.FieldCount" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fieldnames.md b/query-languages/m/record-fieldnames.md index ef95f471c..c4d7af6e0 100644 --- a/query-languages/m/record-fieldnames.md +++ b/query-languages/m/record-fieldnames.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.FieldNames" title: "Record.FieldNames" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fieldordefault.md b/query-languages/m/record-fieldordefault.md index e8fcb3f14..3b6b92534 100644 --- a/query-languages/m/record-fieldordefault.md +++ b/query-languages/m/record-fieldordefault.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.FieldOrDefault" title: "Record.FieldOrDefault" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fieldvalues.md b/query-languages/m/record-fieldvalues.md index 0a22a67a1..b3f3d147a 100644 --- a/query-languages/m/record-fieldvalues.md +++ b/query-languages/m/record-fieldvalues.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.FieldValues" title: "Record.FieldValues" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fromlist.md b/query-languages/m/record-fromlist.md index 0b4dde65a..1822320b0 100644 --- a/query-languages/m/record-fromlist.md +++ b/query-languages/m/record-fromlist.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.FromList" title: "Record.FromList" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-fromtable.md b/query-languages/m/record-fromtable.md index ad0dedd17..2725cce67 100644 --- a/query-languages/m/record-fromtable.md +++ b/query-languages/m/record-fromtable.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.FromTable" title: "Record.FromTable" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-functions.md b/query-languages/m/record-functions.md index c659b1fa7..92cac6b16 100644 --- a/query-languages/m/record-functions.md +++ b/query-languages/m/record-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Record functions" title: "Record functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-hasfields.md b/query-languages/m/record-hasfields.md index 7db12373a..9d4dbe485 100644 --- a/query-languages/m/record-hasfields.md +++ b/query-languages/m/record-hasfields.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.HasFields" title: "Record.HasFields" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-removefields.md b/query-languages/m/record-removefields.md index 9619d9b72..dbff9ea31 100644 --- a/query-languages/m/record-removefields.md +++ b/query-languages/m/record-removefields.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.RemoveFields" title: "Record.RemoveFields" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-renamefields.md b/query-languages/m/record-renamefields.md index e953df5eb..d7ea2fbbe 100644 --- a/query-languages/m/record-renamefields.md +++ b/query-languages/m/record-renamefields.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.RenameFields" title: "Record.RenameFields" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-reorderfields.md b/query-languages/m/record-reorderfields.md index 332d48077..55a9ebc83 100644 --- a/query-languages/m/record-reorderfields.md +++ b/query-languages/m/record-reorderfields.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.ReorderFields" title: "Record.ReorderFields" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-selectfields.md b/query-languages/m/record-selectfields.md index 7e779af6a..f41bf2609 100644 --- a/query-languages/m/record-selectfields.md +++ b/query-languages/m/record-selectfields.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.SelectFields" title: "Record.SelectFields" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-tolist.md b/query-languages/m/record-tolist.md index 6abf1dbf7..5d80d59af 100644 --- a/query-languages/m/record-tolist.md +++ b/query-languages/m/record-tolist.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.ToList" title: "Record.ToList" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-totable.md b/query-languages/m/record-totable.md index 9824239bc..f754eb9a4 100644 --- a/query-languages/m/record-totable.md +++ b/query-languages/m/record-totable.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.ToTable" title: "Record.ToTable" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/record-transformfields.md b/query-languages/m/record-transformfields.md index ecb365179..fedcacc2b 100644 --- a/query-languages/m/record-transformfields.md +++ b/query-languages/m/record-transformfields.md @@ -3,7 +3,6 @@ description: "Learn more about: Record.TransformFields" title: "Record.TransformFields" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/relativeposition-type.md b/query-languages/m/relativeposition-type.md index a53ffed89..51be748cb 100644 --- a/query-languages/m/relativeposition-type.md +++ b/query-languages/m/relativeposition-type.md @@ -3,7 +3,6 @@ description: "Learn more about: RelativePosition.Type" title: "RelativePosition.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/replacer-functions.md b/query-languages/m/replacer-functions.md index 020d0fb04..c99c10c4c 100644 --- a/query-languages/m/replacer-functions.md +++ b/query-languages/m/replacer-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Replacer functions" title: "Replacer functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/replacer-replacetext.md b/query-languages/m/replacer-replacetext.md index a9f1f5a77..e1ef43b81 100644 --- a/query-languages/m/replacer-replacetext.md +++ b/query-languages/m/replacer-replacetext.md @@ -3,7 +3,6 @@ description: "Learn more about: Replacer.ReplaceText" title: "Replacer.ReplaceText" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/replacer-replacevalue.md b/query-languages/m/replacer-replacevalue.md index 58fd0d976..73e2c3946 100644 --- a/query-languages/m/replacer-replacevalue.md +++ b/query-languages/m/replacer-replacevalue.md @@ -3,7 +3,6 @@ description: "Learn more about: Replacer.ReplaceValue" title: "Replacer.ReplaceValue" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/roundingmode-type.md b/query-languages/m/roundingmode-type.md index e7c50c554..6aed7f615 100644 --- a/query-languages/m/roundingmode-type.md +++ b/query-languages/m/roundingmode-type.md @@ -3,7 +3,6 @@ description: "Learn more about: RoundingMode.Type" title: "RoundingMode.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rowexpression-column.md b/query-languages/m/rowexpression-column.md index 54f6c7566..8f1134ab7 100644 --- a/query-languages/m/rowexpression-column.md +++ b/query-languages/m/rowexpression-column.md @@ -3,7 +3,6 @@ description: "Learn more about: RowExpression.Column" title: "RowExpression.Column" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 491079168..1a729ccbc 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -3,7 +3,6 @@ description: "Learn more about: RowExpression.From" title: "RowExpression.From" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/rowexpression-row.md b/query-languages/m/rowexpression-row.md index d48ee68ce..2bfc2dcce 100644 --- a/query-languages/m/rowexpression-row.md +++ b/query-languages/m/rowexpression-row.md @@ -3,7 +3,6 @@ description: "Learn more about: RowExpression.Row" title: "RowExpression.Row" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sapbusinesswarehouse-cubes.md b/query-languages/m/sapbusinesswarehouse-cubes.md index eb4807a6f..066b8b498 100644 --- a/query-languages/m/sapbusinesswarehouse-cubes.md +++ b/query-languages/m/sapbusinesswarehouse-cubes.md @@ -3,7 +3,6 @@ description: "Learn more about: SapBusinessWarehouse.Cubes" title: "SapBusinessWarehouse.Cubes" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md index 4bbf2e392..150d731ba 100644 --- a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md +++ b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md @@ -3,7 +3,6 @@ description: "Learn more about: SapBusinessWarehouseExecutionMode.Type" title: "SapBusinessWarehouseExecutionMode.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index fbd514923..136575468 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -3,7 +3,6 @@ description: "Learn more about: SapHana.Database" title: "SapHana.Database" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/saphanadistribution-type.md b/query-languages/m/saphanadistribution-type.md index 307e49680..61397e8a4 100644 --- a/query-languages/m/saphanadistribution-type.md +++ b/query-languages/m/saphanadistribution-type.md @@ -3,7 +3,6 @@ description: "Learn more about: SapHanaDistribution.Type" title: "SapHanaDistribution.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/saphanarangeoperator-type.md b/query-languages/m/saphanarangeoperator-type.md index 81353bee1..f0fe84c53 100644 --- a/query-languages/m/saphanarangeoperator-type.md +++ b/query-languages/m/saphanarangeoperator-type.md @@ -3,7 +3,6 @@ description: "Learn more about: SapHanaRangeOperator.Type" title: "SapHanaRangeOperator.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharepoint-contents.md b/query-languages/m/sharepoint-contents.md index 73caadfeb..d76e40f70 100644 --- a/query-languages/m/sharepoint-contents.md +++ b/query-languages/m/sharepoint-contents.md @@ -3,7 +3,6 @@ description: "Learn more about: SharePoint.Contents" title: "SharePoint.Contents" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharepoint-files.md b/query-languages/m/sharepoint-files.md index 3e0ec1029..5b9f2a0e1 100644 --- a/query-languages/m/sharepoint-files.md +++ b/query-languages/m/sharepoint-files.md @@ -3,7 +3,6 @@ description: "Learn more about: SharePoint.Files" title: "SharePoint.Files" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index 36d474763..1d94607c2 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -3,7 +3,6 @@ description: "Learn more about: SharePoint.Tables" title: "SharePoint.Tables" ms.date: 9/14/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpbinary.md b/query-languages/m/sharpbinary.md index be378c733..3b083a524 100644 --- a/query-languages/m/sharpbinary.md +++ b/query-languages/m/sharpbinary.md @@ -3,7 +3,6 @@ description: "Learn more about: #binary" title: "#binary" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index f57e4bf4e..56ed6a1b0 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -3,7 +3,6 @@ description: "Learn more about: #date" title: "#date" ms.date: 6/21/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpdatetime.md b/query-languages/m/sharpdatetime.md index 879afd3d9..2298c6913 100644 --- a/query-languages/m/sharpdatetime.md +++ b/query-languages/m/sharpdatetime.md @@ -3,7 +3,6 @@ description: "Learn more about: #datetime" title: "#datetime" ms.date: 11/17/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpdatetimezone.md b/query-languages/m/sharpdatetimezone.md index 0c19de76c..23e064fd4 100644 --- a/query-languages/m/sharpdatetimezone.md +++ b/query-languages/m/sharpdatetimezone.md @@ -3,7 +3,6 @@ description: "Learn more about: #datetimezone" title: "#datetimezone" ms.date: 11/17/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharpduration.md b/query-languages/m/sharpduration.md index 0f10ad2c4..e27cc9e9f 100644 --- a/query-languages/m/sharpduration.md +++ b/query-languages/m/sharpduration.md @@ -3,7 +3,6 @@ description: "Learn more about: #duration" title: "#duration" ms.date: 6/21/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharptable.md b/query-languages/m/sharptable.md index e22c4d5fb..aa1509333 100644 --- a/query-languages/m/sharptable.md +++ b/query-languages/m/sharptable.md @@ -3,7 +3,6 @@ description: "Learn more about: #table" title: "#table" ms.date: 7/18/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sharptime.md b/query-languages/m/sharptime.md index 54878eff4..44f72aa99 100644 --- a/query-languages/m/sharptime.md +++ b/query-languages/m/sharptime.md @@ -3,7 +3,6 @@ description: "Learn more about: #time" title: "#time" ms.date: 6/21/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/single-from.md b/query-languages/m/single-from.md index 4e3fe20db..a8ec5dd7b 100644 --- a/query-languages/m/single-from.md +++ b/query-languages/m/single-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Single.From" title: "Single.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/soda-feed.md b/query-languages/m/soda-feed.md index 48076bbd3..84bb71098 100644 --- a/query-languages/m/soda-feed.md +++ b/query-languages/m/soda-feed.md @@ -3,7 +3,6 @@ description: "Learn more about: Soda.Feed" title: "Soda.Feed" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-functions.md b/query-languages/m/splitter-functions.md index 5d3741aa9..ff5d15d23 100644 --- a/query-languages/m/splitter-functions.md +++ b/query-languages/m/splitter-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter functions" title: "Splitter functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splitbynothing.md b/query-languages/m/splitter-splitbynothing.md index f42d6e4f0..b5f5abd54 100644 --- a/query-languages/m/splitter-splitbynothing.md +++ b/query-languages/m/splitter-splitbynothing.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitByNothing" title: "Splitter.SplitByNothing" ms.date: 8/1/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbyanydelimiter.md b/query-languages/m/splitter-splittextbyanydelimiter.md index e0f624f90..dcb22adc9 100644 --- a/query-languages/m/splitter-splittextbyanydelimiter.md +++ b/query-languages/m/splitter-splittextbyanydelimiter.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitTextByAnyDelimiter" title: "Splitter.SplitTextByAnyDelimiter" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbydelimiter.md b/query-languages/m/splitter-splittextbydelimiter.md index 10dda0cab..b64efbd74 100644 --- a/query-languages/m/splitter-splittextbydelimiter.md +++ b/query-languages/m/splitter-splittextbydelimiter.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitTextByDelimiter" title: "Splitter.SplitTextByDelimiter" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbyeachdelimiter.md b/query-languages/m/splitter-splittextbyeachdelimiter.md index e7e0a411f..5718648a0 100644 --- a/query-languages/m/splitter-splittextbyeachdelimiter.md +++ b/query-languages/m/splitter-splittextbyeachdelimiter.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitTextByEachDelimiter" title: "Splitter.SplitTextByEachDelimiter" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbylengths.md b/query-languages/m/splitter-splittextbylengths.md index fd55414da..853f9f509 100644 --- a/query-languages/m/splitter-splittextbylengths.md +++ b/query-languages/m/splitter-splittextbylengths.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitTextByLengths" title: "Splitter.SplitTextByLengths" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbypositions.md b/query-languages/m/splitter-splittextbypositions.md index a983b514d..c38bc6ad5 100644 --- a/query-languages/m/splitter-splittextbypositions.md +++ b/query-languages/m/splitter-splittextbypositions.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitTextByPositions" title: "Splitter.SplitTextByPositions" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbyranges.md b/query-languages/m/splitter-splittextbyranges.md index 2b7fdc64c..5a0b61e68 100644 --- a/query-languages/m/splitter-splittextbyranges.md +++ b/query-languages/m/splitter-splittextbyranges.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitTextByRanges" title: "Splitter.SplitTextByRanges" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbyrepeatedlengths.md b/query-languages/m/splitter-splittextbyrepeatedlengths.md index fc1dbda09..9dc060f61 100644 --- a/query-languages/m/splitter-splittextbyrepeatedlengths.md +++ b/query-languages/m/splitter-splittextbyrepeatedlengths.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitTextByRepeatedLengths" title: "Splitter.SplitTextByRepeatedLengths" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/splitter-splittextbywhitespace.md b/query-languages/m/splitter-splittextbywhitespace.md index 8bc7409b5..069dd5cd3 100644 --- a/query-languages/m/splitter-splittextbywhitespace.md +++ b/query-languages/m/splitter-splittextbywhitespace.md @@ -3,7 +3,6 @@ description: "Learn more about: Splitter.SplitTextByWhitespace" title: "Splitter.SplitTextByWhitespace" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sqlexpression-schemafrom.md b/query-languages/m/sqlexpression-schemafrom.md index b8789a840..925038903 100644 --- a/query-languages/m/sqlexpression-schemafrom.md +++ b/query-languages/m/sqlexpression-schemafrom.md @@ -3,7 +3,6 @@ description: "Learn more about: SqlExpression.SchemaFrom" title: "SqlExpression.SchemaFrom" ms.date: 10/18/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/sqlexpression-toexpression.md b/query-languages/m/sqlexpression-toexpression.md index 712270cf6..054b2f208 100644 --- a/query-languages/m/sqlexpression-toexpression.md +++ b/query-languages/m/sqlexpression-toexpression.md @@ -3,7 +3,6 @@ description: "Learn more about: SqlExpression.ToExpression" title: "SqlExpression.ToExpression" ms.date: 10/18/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addcolumn.md b/query-languages/m/table-addcolumn.md index f7de2ca42..f40a5d60f 100644 --- a/query-languages/m/table-addcolumn.md +++ b/query-languages/m/table-addcolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.AddColumn" title: "Table.AddColumn" ms.date: 3/9/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index ffc22fbad..ff7e1c202 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.AddFuzzyClusterColumn" title: "Table.AddFuzzyClusterColumn" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addindexcolumn.md b/query-languages/m/table-addindexcolumn.md index 97bc8e28f..581203ff8 100644 --- a/query-languages/m/table-addindexcolumn.md +++ b/query-languages/m/table-addindexcolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.AddIndexColumn" title: "Table.AddIndexColumn" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addjoincolumn.md b/query-languages/m/table-addjoincolumn.md index 681c9b8eb..b4f2ee236 100644 --- a/query-languages/m/table-addjoincolumn.md +++ b/query-languages/m/table-addjoincolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.AddJoinColumn" title: "Table.AddJoinColumn" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addkey.md b/query-languages/m/table-addkey.md index e59b72e53..bfa4745b8 100644 --- a/query-languages/m/table-addkey.md +++ b/query-languages/m/table-addkey.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.AddKey" title: "Table.AddKey" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-addrankcolumn.md b/query-languages/m/table-addrankcolumn.md index e5d11653c..f903df09f 100644 --- a/query-languages/m/table-addrankcolumn.md +++ b/query-languages/m/table-addrankcolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.AddRankColumn" title: "Table.AddRankColumn" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-aggregatetablecolumn.md b/query-languages/m/table-aggregatetablecolumn.md index cc9bf18a1..bb6aa3322 100644 --- a/query-languages/m/table-aggregatetablecolumn.md +++ b/query-languages/m/table-aggregatetablecolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.AggregateTableColumn" title: "Table.AggregateTableColumn" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-alternaterows.md b/query-languages/m/table-alternaterows.md index fe42affdd..261be3050 100644 --- a/query-languages/m/table-alternaterows.md +++ b/query-languages/m/table-alternaterows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.AlternateRows" title: "Table.AlternateRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-approximaterowcount.md b/query-languages/m/table-approximaterowcount.md index edc340a19..4dd2ccb15 100644 --- a/query-languages/m/table-approximaterowcount.md +++ b/query-languages/m/table-approximaterowcount.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ApproximateRowCount" title: "Table.ApproximateRowCount" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-buffer.md b/query-languages/m/table-buffer.md index 602d8d25d..c5bdb9747 100644 --- a/query-languages/m/table-buffer.md +++ b/query-languages/m/table-buffer.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Buffer" title: "Table.Buffer" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-column.md b/query-languages/m/table-column.md index e913bcd74..ca1e99f16 100644 --- a/query-languages/m/table-column.md +++ b/query-languages/m/table-column.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Column" title: "Table.Column" ms.date: 3/10/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-columncount.md b/query-languages/m/table-columncount.md index fa170aa2c..e48a6cc6a 100644 --- a/query-languages/m/table-columncount.md +++ b/query-languages/m/table-columncount.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ColumnCount" title: "Table.ColumnCount" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-columnnames.md b/query-languages/m/table-columnnames.md index 790cd1c42..90bf4e9c5 100644 --- a/query-languages/m/table-columnnames.md +++ b/query-languages/m/table-columnnames.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ColumnNames" title: "Table.ColumnNames" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-columnsoftype.md b/query-languages/m/table-columnsoftype.md index 81168d9e9..66d8273b3 100644 --- a/query-languages/m/table-columnsoftype.md +++ b/query-languages/m/table-columnsoftype.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ColumnsOfType" title: "Table.ColumnsOfType" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-combine.md b/query-languages/m/table-combine.md index 7486384ea..334e00027 100644 --- a/query-languages/m/table-combine.md +++ b/query-languages/m/table-combine.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Combine" title: "Table.Combine" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-combinecolumns.md b/query-languages/m/table-combinecolumns.md index 7a24c9996..bae2f0090 100644 --- a/query-languages/m/table-combinecolumns.md +++ b/query-languages/m/table-combinecolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.CombineColumns" title: "Table.CombineColumns" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-combinecolumnstorecord.md b/query-languages/m/table-combinecolumnstorecord.md index 3eea5bbb0..d939f32f8 100644 --- a/query-languages/m/table-combinecolumnstorecord.md +++ b/query-languages/m/table-combinecolumnstorecord.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.CombineColumnsToRecord" title: "Table.CombineColumnsToRecord" ms.date: 09/14/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-conformtopagereader.md b/query-languages/m/table-conformtopagereader.md index b23a6e2ed..1284ab494 100644 --- a/query-languages/m/table-conformtopagereader.md +++ b/query-languages/m/table-conformtopagereader.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ConformToPageReader" title: "Table.ConformToPageReader" ms.date: 8/21/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-contains.md b/query-languages/m/table-contains.md index f1cf8c4ab..13e434878 100644 --- a/query-languages/m/table-contains.md +++ b/query-languages/m/table-contains.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Contains" title: "Table.Contains" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-containsall.md b/query-languages/m/table-containsall.md index d05a000eb..a44df1042 100644 --- a/query-languages/m/table-containsall.md +++ b/query-languages/m/table-containsall.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ContainsAll" title: "Table.ContainsAll" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-containsany.md b/query-languages/m/table-containsany.md index dccad1048..651ea3e05 100644 --- a/query-languages/m/table-containsany.md +++ b/query-languages/m/table-containsany.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ContainsAny" title: "Table.ContainsAny" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-demoteheaders.md b/query-languages/m/table-demoteheaders.md index 659f9a4f5..4feb65b12 100644 --- a/query-languages/m/table-demoteheaders.md +++ b/query-languages/m/table-demoteheaders.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.DemoteHeaders" title: "Table.DemoteHeaders" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-duplicatecolumn.md b/query-languages/m/table-duplicatecolumn.md index eaf74885a..726145ef4 100644 --- a/query-languages/m/table-duplicatecolumn.md +++ b/query-languages/m/table-duplicatecolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.DuplicateColumn" title: "Table.DuplicateColumn" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index e6ac1f87d..16e4c2304 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ExpandListColumn" title: "Table.ExpandListColumn" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-expandrecordcolumn.md b/query-languages/m/table-expandrecordcolumn.md index 7d9d2d6f3..df054e0af 100644 --- a/query-languages/m/table-expandrecordcolumn.md +++ b/query-languages/m/table-expandrecordcolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ExpandRecordColumn" title: "Table.ExpandRecordColumn" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-expandtablecolumn.md b/query-languages/m/table-expandtablecolumn.md index d38d6f40d..a6fa0b3f8 100644 --- a/query-languages/m/table-expandtablecolumn.md +++ b/query-languages/m/table-expandtablecolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ExpandTableColumn" title: "Table.ExpandTableColumn" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-filldown.md b/query-languages/m/table-filldown.md index c93ff91ce..04862a240 100644 --- a/query-languages/m/table-filldown.md +++ b/query-languages/m/table-filldown.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FillDown" title: "Table.FillDown" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fillup.md b/query-languages/m/table-fillup.md index dd987499c..68c51a23d 100644 --- a/query-languages/m/table-fillup.md +++ b/query-languages/m/table-fillup.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FillUp" title: "Table.FillUp" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-filterwithdatatable.md b/query-languages/m/table-filterwithdatatable.md index f4440b3fa..80dada326 100644 --- a/query-languages/m/table-filterwithdatatable.md +++ b/query-languages/m/table-filterwithdatatable.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FilterWithDataTable" title: "Table.FilterWithDataTable" ms.date: 5/3/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-findtext.md b/query-languages/m/table-findtext.md index 7400e087f..6f37a0069 100644 --- a/query-languages/m/table-findtext.md +++ b/query-languages/m/table-findtext.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FindText" title: "Table.FindText" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-first.md b/query-languages/m/table-first.md index e3608487f..82c91e527 100644 --- a/query-languages/m/table-first.md +++ b/query-languages/m/table-first.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.First" title: "Table.First" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-firstn.md b/query-languages/m/table-firstn.md index 6c0c6e4e8..21979efd5 100644 --- a/query-languages/m/table-firstn.md +++ b/query-languages/m/table-firstn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FirstN" title: "Table.FirstN" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-firstvalue.md b/query-languages/m/table-firstvalue.md index 448642bca..f7c3a669a 100644 --- a/query-languages/m/table-firstvalue.md +++ b/query-languages/m/table-firstvalue.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FirstValue" title: "Table.FirstValue" ms.date: 8/1/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromcolumns.md b/query-languages/m/table-fromcolumns.md index 07b7c01ce..fef802502 100644 --- a/query-languages/m/table-fromcolumns.md +++ b/query-languages/m/table-fromcolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FromColumns" title: "Table.FromColumns" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index 87bfa97a0..6ba0233a4 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FromList" title: "Table.FromList" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-frompartitions.md b/query-languages/m/table-frompartitions.md index 37f6dfc2b..20531bc7c 100644 --- a/query-languages/m/table-frompartitions.md +++ b/query-languages/m/table-frompartitions.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FromPartitions" title: "Table.FromPartitions" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromrecords.md b/query-languages/m/table-fromrecords.md index e704821f0..af7361e53 100644 --- a/query-languages/m/table-fromrecords.md +++ b/query-languages/m/table-fromrecords.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FromRecords" title: "Table.FromRecords" ms.date: 3/10/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromrows.md b/query-languages/m/table-fromrows.md index b08c156fb..67ce32db7 100644 --- a/query-languages/m/table-fromrows.md +++ b/query-languages/m/table-fromrows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FromRows" title: "Table.FromRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fromvalue.md b/query-languages/m/table-fromvalue.md index 7b9bb05a4..c5b63a764 100644 --- a/query-languages/m/table-fromvalue.md +++ b/query-languages/m/table-fromvalue.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FromValue" title: "Table.FromValue" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fuzzygroup.md b/query-languages/m/table-fuzzygroup.md index 945858bd0..334e725f0 100644 --- a/query-languages/m/table-fuzzygroup.md +++ b/query-languages/m/table-fuzzygroup.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FuzzyGroup" title: "Table.FuzzyGroup" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index bbd6dea69..382bb8253 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FuzzyJoin" title: "Table.FuzzyJoin" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index bdb6abb0b..c77a0ca8e 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.FuzzyNestedJoin" title: "Table.FuzzyNestedJoin" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-group.md b/query-languages/m/table-group.md index c1f63cfcb..758d912d7 100644 --- a/query-languages/m/table-group.md +++ b/query-languages/m/table-group.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Group" title: "Table.Group" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-hascolumns.md b/query-languages/m/table-hascolumns.md index 79a897432..f9d94277a 100644 --- a/query-languages/m/table-hascolumns.md +++ b/query-languages/m/table-hascolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.HasColumns" title: "Table.HasColumns" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-insertrows.md b/query-languages/m/table-insertrows.md index 6ffeb8889..f40c82261 100644 --- a/query-languages/m/table-insertrows.md +++ b/query-languages/m/table-insertrows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.InsertRows" title: "Table.InsertRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-isdistinct.md b/query-languages/m/table-isdistinct.md index 88169da81..01de97747 100644 --- a/query-languages/m/table-isdistinct.md +++ b/query-languages/m/table-isdistinct.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.IsDistinct" title: "Table.IsDistinct" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-isempty.md b/query-languages/m/table-isempty.md index c02535dd9..6c9a6e721 100644 --- a/query-languages/m/table-isempty.md +++ b/query-languages/m/table-isempty.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.IsEmpty" title: "Table.IsEmpty" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index d4f17d698..6e400f29e 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Join" title: "Table.Join" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-keys.md b/query-languages/m/table-keys.md index 06f6042e1..b87fece93 100644 --- a/query-languages/m/table-keys.md +++ b/query-languages/m/table-keys.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Keys" title: "Table.Keys" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-last.md b/query-languages/m/table-last.md index 6ce2c8852..affd77be8 100644 --- a/query-languages/m/table-last.md +++ b/query-languages/m/table-last.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Last" title: "Table.Last" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-lastn.md b/query-languages/m/table-lastn.md index 6d6ccc452..5e055f91d 100644 --- a/query-languages/m/table-lastn.md +++ b/query-languages/m/table-lastn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.LastN" title: "Table.LastN" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-matchesallrows.md b/query-languages/m/table-matchesallrows.md index 852b94925..082e92aae 100644 --- a/query-languages/m/table-matchesallrows.md +++ b/query-languages/m/table-matchesallrows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.MatchesAllRows" title: "Table.MatchesAllRows" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-matchesanyrows.md b/query-languages/m/table-matchesanyrows.md index 761161fe4..7d2a9cfdb 100644 --- a/query-languages/m/table-matchesanyrows.md +++ b/query-languages/m/table-matchesanyrows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.MatchesAnyRows" title: "Table.MatchesAnyRows" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-max.md b/query-languages/m/table-max.md index 38f51053d..db8fbd25d 100644 --- a/query-languages/m/table-max.md +++ b/query-languages/m/table-max.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Max" title: "Table.Max" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-maxn.md b/query-languages/m/table-maxn.md index 101014169..2c67e7426 100644 --- a/query-languages/m/table-maxn.md +++ b/query-languages/m/table-maxn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.MaxN" title: "Table.MaxN" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-min.md b/query-languages/m/table-min.md index 539ba6390..98864afd3 100644 --- a/query-languages/m/table-min.md +++ b/query-languages/m/table-min.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Min" title: "Table.Min" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-minn.md b/query-languages/m/table-minn.md index 41da8b370..232aa22de 100644 --- a/query-languages/m/table-minn.md +++ b/query-languages/m/table-minn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.MinN" title: "Table.MinN" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-nestedjoin.md b/query-languages/m/table-nestedjoin.md index e9a4a10b3..6b434b7f0 100644 --- a/query-languages/m/table-nestedjoin.md +++ b/query-languages/m/table-nestedjoin.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.NestedJoin" title: "Table.NestedJoin" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-partition.md b/query-languages/m/table-partition.md index d21b87519..419939511 100644 --- a/query-languages/m/table-partition.md +++ b/query-languages/m/table-partition.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Partition" title: "Table.Partition" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-partitionvalues.md b/query-languages/m/table-partitionvalues.md index f16fb411a..e1d96d167 100644 --- a/query-languages/m/table-partitionvalues.md +++ b/query-languages/m/table-partitionvalues.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.PartitionValues" title: "Table.PartitionValues" ms.date: 9/13/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-pivot.md b/query-languages/m/table-pivot.md index fc7899d52..cece8c061 100644 --- a/query-languages/m/table-pivot.md +++ b/query-languages/m/table-pivot.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Pivot" title: "Table.Pivot" ms.date: 3/10/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-positionof.md b/query-languages/m/table-positionof.md index 7a6b37ce6..8b62936ad 100644 --- a/query-languages/m/table-positionof.md +++ b/query-languages/m/table-positionof.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.PositionOf" title: "Table.PositionOf" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-positionofany.md b/query-languages/m/table-positionofany.md index cf12e4022..6aba2764f 100644 --- a/query-languages/m/table-positionofany.md +++ b/query-languages/m/table-positionofany.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.PositionOfAny" title: "Table.PositionOfAny" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-prefixcolumns.md b/query-languages/m/table-prefixcolumns.md index a5d0ae0fe..bf08a1ff4 100644 --- a/query-languages/m/table-prefixcolumns.md +++ b/query-languages/m/table-prefixcolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.PrefixColumns" title: "Table.PrefixColumns" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-profile.md b/query-languages/m/table-profile.md index dc9930064..d01933f9c 100644 --- a/query-languages/m/table-profile.md +++ b/query-languages/m/table-profile.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Profile" title: "Table.Profile" ms.date: 8/1/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-promoteheaders.md b/query-languages/m/table-promoteheaders.md index 840ca1134..a2a4dd7b7 100644 --- a/query-languages/m/table-promoteheaders.md +++ b/query-languages/m/table-promoteheaders.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.PromoteHeaders" title: "Table.PromoteHeaders" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-range.md b/query-languages/m/table-range.md index 811a576a4..6bcee0eb4 100644 --- a/query-languages/m/table-range.md +++ b/query-languages/m/table-range.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Range" title: "Table.Range" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index 84b157a48..5235d43e2 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.RemoveColumns" title: "Table.RemoveColumns" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removelastn.md b/query-languages/m/table-removelastn.md index b383e22e2..d1a30549e 100644 --- a/query-languages/m/table-removelastn.md +++ b/query-languages/m/table-removelastn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.RemoveLastN" title: "Table.RemoveLastN" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removematchingrows.md b/query-languages/m/table-removematchingrows.md index 7a6202514..0fbd235f3 100644 --- a/query-languages/m/table-removematchingrows.md +++ b/query-languages/m/table-removematchingrows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.RemoveMatchingRows" title: "Table.RemoveMatchingRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removerows.md b/query-languages/m/table-removerows.md index 8b3ecc991..0a83d7581 100644 --- a/query-languages/m/table-removerows.md +++ b/query-languages/m/table-removerows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.RemoveRows" title: "Table.RemoveRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-removerowswitherrors.md b/query-languages/m/table-removerowswitherrors.md index a50cef3b3..05f31ea61 100644 --- a/query-languages/m/table-removerowswitherrors.md +++ b/query-languages/m/table-removerowswitherrors.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.RemoveRowsWithErrors" title: "Table.RemoveRowsWithErrors" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-renamecolumns.md b/query-languages/m/table-renamecolumns.md index 3138bffbc..daacc2f4c 100644 --- a/query-languages/m/table-renamecolumns.md +++ b/query-languages/m/table-renamecolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.RenameColumns" title: "Table.RenameColumns" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-reordercolumns.md b/query-languages/m/table-reordercolumns.md index 23a63f69f..7fb145462 100644 --- a/query-languages/m/table-reordercolumns.md +++ b/query-languages/m/table-reordercolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ReorderColumns" title: "Table.ReorderColumns" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-repeat.md b/query-languages/m/table-repeat.md index eaf42b1f2..1b79156cb 100644 --- a/query-languages/m/table-repeat.md +++ b/query-languages/m/table-repeat.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Repeat" title: "Table.Repeat" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replaceerrorvalues.md b/query-languages/m/table-replaceerrorvalues.md index cc5e41c1a..19603e73b 100644 --- a/query-languages/m/table-replaceerrorvalues.md +++ b/query-languages/m/table-replaceerrorvalues.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ReplaceErrorValues" title: "Table.ReplaceErrorValues" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacekeys.md b/query-languages/m/table-replacekeys.md index 44342a405..e0b3e6e5c 100644 --- a/query-languages/m/table-replacekeys.md +++ b/query-languages/m/table-replacekeys.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ReplaceKeys" title: "Table.ReplaceKeys" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacematchingrows.md b/query-languages/m/table-replacematchingrows.md index baa3f8bd1..ece0c68a9 100644 --- a/query-languages/m/table-replacematchingrows.md +++ b/query-languages/m/table-replacematchingrows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ReplaceMatchingRows" title: "Table.ReplaceMatchingRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacerelationshipidentity.md b/query-languages/m/table-replacerelationshipidentity.md index c4a57e496..ba2de69e3 100644 --- a/query-languages/m/table-replacerelationshipidentity.md +++ b/query-languages/m/table-replacerelationshipidentity.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ReplaceRelationshipIdentity" title: "Table.ReplaceRelationshipIdentity" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacerows.md b/query-languages/m/table-replacerows.md index 9e4fb11df..9d7b9d27f 100644 --- a/query-languages/m/table-replacerows.md +++ b/query-languages/m/table-replacerows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ReplaceRows" title: "Table.ReplaceRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-replacevalue.md b/query-languages/m/table-replacevalue.md index 0ffaeefe0..f3d9a8bd0 100644 --- a/query-languages/m/table-replacevalue.md +++ b/query-languages/m/table-replacevalue.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ReplaceValue" title: "Table.ReplaceValue" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-reverserows.md b/query-languages/m/table-reverserows.md index cb48ca904..4535c6371 100644 --- a/query-languages/m/table-reverserows.md +++ b/query-languages/m/table-reverserows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ReverseRows" title: "Table.ReverseRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-rowcount.md b/query-languages/m/table-rowcount.md index eef11660d..8e2652656 100644 --- a/query-languages/m/table-rowcount.md +++ b/query-languages/m/table-rowcount.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.RowCount" title: "Table.RowCount" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-schema.md b/query-languages/m/table-schema.md index 676c6f8ad..68299301d 100644 --- a/query-languages/m/table-schema.md +++ b/query-languages/m/table-schema.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Schema" title: "Table.Schema" ms.date: 11/17/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-selectcolumns.md b/query-languages/m/table-selectcolumns.md index c9d06f358..534acd5d3 100644 --- a/query-languages/m/table-selectcolumns.md +++ b/query-languages/m/table-selectcolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.SelectColumns" title: "Table.SelectColumns" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-selectrows.md b/query-languages/m/table-selectrows.md index 54ee54fb1..8f62ce511 100644 --- a/query-languages/m/table-selectrows.md +++ b/query-languages/m/table-selectrows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.SelectRows" title: "Table.SelectRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-selectrowswitherrors.md b/query-languages/m/table-selectrowswitherrors.md index 1cffcd6f8..973c40cad 100644 --- a/query-languages/m/table-selectrowswitherrors.md +++ b/query-languages/m/table-selectrowswitherrors.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.SelectRowsWithErrors" title: "Table.SelectRowsWithErrors" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-singlerow.md b/query-languages/m/table-singlerow.md index 51bb34139..ee0556ac2 100644 --- a/query-languages/m/table-singlerow.md +++ b/query-languages/m/table-singlerow.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.SingleRow" title: "Table.SingleRow" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-sort.md b/query-languages/m/table-sort.md index b41088e05..f25c6e021 100644 --- a/query-languages/m/table-sort.md +++ b/query-languages/m/table-sort.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Sort" title: "Table.Sort" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-split.md b/query-languages/m/table-split.md index 06124becc..57135ea59 100644 --- a/query-languages/m/table-split.md +++ b/query-languages/m/table-split.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Split" title: "Table.Split" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-splitat.md b/query-languages/m/table-splitat.md index 6e3a5fc1d..1c0c65d08 100644 --- a/query-languages/m/table-splitat.md +++ b/query-languages/m/table-splitat.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.SplitAt" title: "Table.SplitAt" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index 48aa80430..5316f12f0 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.SplitColumn" title: "Table.SplitColumn" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-stopfolding.md b/query-languages/m/table-stopfolding.md index df8289ad2..a9b715a44 100644 --- a/query-languages/m/table-stopfolding.md +++ b/query-languages/m/table-stopfolding.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.StopFolding" title: "Table.StopFolding" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-tocolumns.md b/query-languages/m/table-tocolumns.md index 65fd82832..536818f8d 100644 --- a/query-languages/m/table-tocolumns.md +++ b/query-languages/m/table-tocolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ToColumns" title: "Table.ToColumns" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-tolist.md b/query-languages/m/table-tolist.md index 2e3716ff0..776b2fe10 100644 --- a/query-languages/m/table-tolist.md +++ b/query-languages/m/table-tolist.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ToList" title: "Table.ToList" ms.date: 5/3/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-torecords.md b/query-languages/m/table-torecords.md index 112bc3bb7..e01e2341c 100644 --- a/query-languages/m/table-torecords.md +++ b/query-languages/m/table-torecords.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ToRecords" title: "Table.ToRecords" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-torows.md b/query-languages/m/table-torows.md index 99b6c4246..74204d5aa 100644 --- a/query-languages/m/table-torows.md +++ b/query-languages/m/table-torows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ToRows" title: "Table.ToRows" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transformcolumnnames.md b/query-languages/m/table-transformcolumnnames.md index da7a41720..6bd034282 100644 --- a/query-languages/m/table-transformcolumnnames.md +++ b/query-languages/m/table-transformcolumnnames.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.TransformColumnNames" title: "Table.TransformColumnNames" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transformcolumns.md b/query-languages/m/table-transformcolumns.md index 2a0985096..9efb411fc 100644 --- a/query-languages/m/table-transformcolumns.md +++ b/query-languages/m/table-transformcolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.TransformColumns" title: "Table.TransformColumns" ms.date: 6/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index fb07d7f8e..1f0aa0bf9 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.TransformColumnTypes" title: "Table.TransformColumnTypes" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transformrows.md b/query-languages/m/table-transformrows.md index d2f947c60..5de675346 100644 --- a/query-languages/m/table-transformrows.md +++ b/query-languages/m/table-transformrows.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.TransformRows" title: "Table.TransformRows" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-transpose.md b/query-languages/m/table-transpose.md index 2c3377722..08e8a7f21 100644 --- a/query-languages/m/table-transpose.md +++ b/query-languages/m/table-transpose.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Transpose" title: "Table.Transpose" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-unpivot.md b/query-languages/m/table-unpivot.md index 7f79332b2..8ac2c05a4 100644 --- a/query-languages/m/table-unpivot.md +++ b/query-languages/m/table-unpivot.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.Unpivot" title: "Table.Unpivot" ms.date: 3/10/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-unpivotothercolumns.md b/query-languages/m/table-unpivotothercolumns.md index d84d5fc23..c6552d980 100644 --- a/query-languages/m/table-unpivotothercolumns.md +++ b/query-languages/m/table-unpivotothercolumns.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.UnpivotOtherColumns" title: "Table.UnpivotOtherColumns" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-view.md b/query-languages/m/table-view.md index 3e42c24f3..5b3f905a5 100644 --- a/query-languages/m/table-view.md +++ b/query-languages/m/table-view.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.View" title: "Table.View" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-viewerror.md b/query-languages/m/table-viewerror.md index a48ad383d..e8d42a450 100644 --- a/query-languages/m/table-viewerror.md +++ b/query-languages/m/table-viewerror.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ViewError" title: "Table.ViewError" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/table-viewfunction.md b/query-languages/m/table-viewfunction.md index 9daa01703..547f6e479 100644 --- a/query-languages/m/table-viewfunction.md +++ b/query-languages/m/table-viewfunction.md @@ -3,7 +3,6 @@ description: "Learn more about: Table.ViewFunction" title: "Table.ViewFunction" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/tables-getrelationships.md b/query-languages/m/tables-getrelationships.md index 1df076838..baf6c3245 100644 --- a/query-languages/m/tables-getrelationships.md +++ b/query-languages/m/tables-getrelationships.md @@ -3,7 +3,6 @@ description: "Learn more about: Tables.GetRelationships" title: "Tables.GetRelationships" ms.date: 8/1/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-afterdelimiter.md b/query-languages/m/text-afterdelimiter.md index 216a4a9f2..cfe4221a2 100644 --- a/query-languages/m/text-afterdelimiter.md +++ b/query-languages/m/text-afterdelimiter.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.AfterDelimiter" title: "Text.AfterDelimiter" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-at.md b/query-languages/m/text-at.md index c9a1814a1..56d296965 100644 --- a/query-languages/m/text-at.md +++ b/query-languages/m/text-at.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.At" title: "Text.At" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-beforedelimiter.md b/query-languages/m/text-beforedelimiter.md index dcfbbe5c4..a010d6842 100644 --- a/query-languages/m/text-beforedelimiter.md +++ b/query-languages/m/text-beforedelimiter.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.BeforeDelimiter" title: "Text.BeforeDelimiter" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-betweendelimiters.md b/query-languages/m/text-betweendelimiters.md index ceac4eec4..584424809 100644 --- a/query-languages/m/text-betweendelimiters.md +++ b/query-languages/m/text-betweendelimiters.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.BetweenDelimiters" title: "Text.BetweenDelimiters" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 31323e60a..830b44b58 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Combine" title: "Text.Combine" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index c343dc78f..d5a0c4f31 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Contains" title: "Text.Contains" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-end.md b/query-languages/m/text-end.md index 626da56ba..9faea2b03 100644 --- a/query-languages/m/text-end.md +++ b/query-languages/m/text-end.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.End" title: "Text.End" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-endswith.md b/query-languages/m/text-endswith.md index 37f6571db..5667c9b81 100644 --- a/query-languages/m/text-endswith.md +++ b/query-languages/m/text-endswith.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.EndsWith" title: "Text.EndsWith" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-format.md b/query-languages/m/text-format.md index 0e990e0a7..0feecccb5 100644 --- a/query-languages/m/text-format.md +++ b/query-languages/m/text-format.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Format" title: "Text.Format" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-from.md b/query-languages/m/text-from.md index 294b5949d..672cbb801 100644 --- a/query-languages/m/text-from.md +++ b/query-languages/m/text-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.From" title: "Text.From" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-frombinary.md b/query-languages/m/text-frombinary.md index 771226422..c3b81ae5e 100644 --- a/query-languages/m/text-frombinary.md +++ b/query-languages/m/text-frombinary.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.FromBinary" title: "Text.FromBinary" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-functions.md b/query-languages/m/text-functions.md index 6821af775..c4c7d48c5 100644 --- a/query-languages/m/text-functions.md +++ b/query-languages/m/text-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Text functions" title: "Text functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-infernumbertype.md b/query-languages/m/text-infernumbertype.md index e961e5ca8..6a0089ed1 100644 --- a/query-languages/m/text-infernumbertype.md +++ b/query-languages/m/text-infernumbertype.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.InferNumberType" title: "Text.InferNumberType" ms.date: 11/17/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-insert.md b/query-languages/m/text-insert.md index 0f437e71e..284dc38da 100644 --- a/query-languages/m/text-insert.md +++ b/query-languages/m/text-insert.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Insert" title: "Text.Insert" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-length.md b/query-languages/m/text-length.md index 7affa27ca..6d72fc023 100644 --- a/query-languages/m/text-length.md +++ b/query-languages/m/text-length.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Length" title: "Text.Length" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-lower.md b/query-languages/m/text-lower.md index e195d2be4..1d8d3664d 100644 --- a/query-languages/m/text-lower.md +++ b/query-languages/m/text-lower.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Lower" title: "Text.Lower" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index c71b8fc60..2722b6997 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Middle" title: "Text.Middle" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-newguid.md b/query-languages/m/text-newguid.md index e69ae426f..3d424833f 100644 --- a/query-languages/m/text-newguid.md +++ b/query-languages/m/text-newguid.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.NewGuid" title: "Text.NewGuid" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-padend.md b/query-languages/m/text-padend.md index bcf965bf2..752b8c9db 100644 --- a/query-languages/m/text-padend.md +++ b/query-languages/m/text-padend.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.PadEnd" title: "Text.PadEnd" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-padstart.md b/query-languages/m/text-padstart.md index f04f67c9f..24bc75fcc 100644 --- a/query-languages/m/text-padstart.md +++ b/query-languages/m/text-padstart.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.PadStart" title: "Text.PadStart" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-positionof.md b/query-languages/m/text-positionof.md index 795314f1a..b4ebf2d7f 100644 --- a/query-languages/m/text-positionof.md +++ b/query-languages/m/text-positionof.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.PositionOf" title: "Text.PositionOf" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-positionofany.md b/query-languages/m/text-positionofany.md index 8601491b4..3fd9d6c02 100644 --- a/query-languages/m/text-positionofany.md +++ b/query-languages/m/text-positionofany.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.PositionOfAny" title: "Text.PositionOfAny" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-proper.md b/query-languages/m/text-proper.md index 611e9d717..7ba60e0eb 100644 --- a/query-languages/m/text-proper.md +++ b/query-languages/m/text-proper.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Proper" title: "Text.Proper" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-range.md b/query-languages/m/text-range.md index af865efcd..b6483cd77 100644 --- a/query-languages/m/text-range.md +++ b/query-languages/m/text-range.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Range" title: "Text.Range" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-remove.md b/query-languages/m/text-remove.md index 511b6d280..ac5742f1c 100644 --- a/query-languages/m/text-remove.md +++ b/query-languages/m/text-remove.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Remove" title: "Text.Remove" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-removerange.md b/query-languages/m/text-removerange.md index 9a6828b6c..84abfb21b 100644 --- a/query-languages/m/text-removerange.md +++ b/query-languages/m/text-removerange.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.RemoveRange" title: "Text.RemoveRange" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-repeat.md b/query-languages/m/text-repeat.md index 3dab480d3..c0fe33508 100644 --- a/query-languages/m/text-repeat.md +++ b/query-languages/m/text-repeat.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Repeat" title: "Text.Repeat" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-replace.md b/query-languages/m/text-replace.md index c81dd708b..ab8b9083a 100644 --- a/query-languages/m/text-replace.md +++ b/query-languages/m/text-replace.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Replace" title: "Text.Replace" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-replacerange.md b/query-languages/m/text-replacerange.md index 0206d61dd..79eb2a52f 100644 --- a/query-languages/m/text-replacerange.md +++ b/query-languages/m/text-replacerange.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.ReplaceRange" title: "Text.ReplaceRange" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-reverse.md b/query-languages/m/text-reverse.md index 799c01064..cb2eb8187 100644 --- a/query-languages/m/text-reverse.md +++ b/query-languages/m/text-reverse.md @@ -1,9 +1,8 @@ --- description: "Learn more about: Text.Reverse" -title: "Text.Reverse| Microsoft Docs" +title: "Text.Reverse" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-select.md b/query-languages/m/text-select.md index 1545fb215..af2bde3ce 100644 --- a/query-languages/m/text-select.md +++ b/query-languages/m/text-select.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Select" title: "Text.Select" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-split.md b/query-languages/m/text-split.md index 79cca535b..9d5235c0d 100644 --- a/query-languages/m/text-split.md +++ b/query-languages/m/text-split.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Split" title: "Text.Split" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-splitany.md b/query-languages/m/text-splitany.md index d3f13f544..11380039f 100644 --- a/query-languages/m/text-splitany.md +++ b/query-languages/m/text-splitany.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.SplitAny" title: "Text.SplitAny" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-start.md b/query-languages/m/text-start.md index 4a5722483..ff20bb481 100644 --- a/query-languages/m/text-start.md +++ b/query-languages/m/text-start.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Start" title: "Text.Start" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index 5f905f3dd..c78cd5828 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.StartsWith" title: "Text.StartsWith" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-tobinary.md b/query-languages/m/text-tobinary.md index 4d5ed836f..8d072ab07 100644 --- a/query-languages/m/text-tobinary.md +++ b/query-languages/m/text-tobinary.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.ToBinary" title: "Text.ToBinary" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-tolist.md b/query-languages/m/text-tolist.md index dabf9321d..8d71812ab 100644 --- a/query-languages/m/text-tolist.md +++ b/query-languages/m/text-tolist.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.ToList" title: "Text.ToList" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-trim.md b/query-languages/m/text-trim.md index 1b72ded95..3abe6596b 100644 --- a/query-languages/m/text-trim.md +++ b/query-languages/m/text-trim.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.Trim" title: "Text.Trim" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-trimend.md b/query-languages/m/text-trimend.md index 9b9c58316..f927fa401 100644 --- a/query-languages/m/text-trimend.md +++ b/query-languages/m/text-trimend.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.TrimEnd" title: "Text.TrimEnd" ms.date: 4/22/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/text-trimstart.md b/query-languages/m/text-trimstart.md index c80016937..256fc69bb 100644 --- a/query-languages/m/text-trimstart.md +++ b/query-languages/m/text-trimstart.md @@ -3,7 +3,6 @@ description: "Learn more about: Text.TrimStart" title: "Text.TrimStart" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/textencoding-type.md b/query-languages/m/textencoding-type.md index 6d53b5e2e..4b41dfd1d 100644 --- a/query-languages/m/textencoding-type.md +++ b/query-languages/m/textencoding-type.md @@ -3,7 +3,6 @@ description: "Learn more about: TextEncoding.Type" title: "TextEncoding.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-endofhour.md b/query-languages/m/time-endofhour.md index e0fd3f7d0..34a140648 100644 --- a/query-languages/m/time-endofhour.md +++ b/query-languages/m/time-endofhour.md @@ -3,7 +3,6 @@ description: "Learn more about: Time.EndOfHour" title: "Time.EndOfHour" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-from.md b/query-languages/m/time-from.md index b5c82eb72..5219cd07e 100644 --- a/query-languages/m/time-from.md +++ b/query-languages/m/time-from.md @@ -3,7 +3,6 @@ description: "Learn more about: Time.From" title: "Time.From" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-fromtext.md b/query-languages/m/time-fromtext.md index 36a14d22f..0b8f69779 100644 --- a/query-languages/m/time-fromtext.md +++ b/query-languages/m/time-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: Time.FromText" title: "Time.FromText" ms.date: 6/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-functions.md b/query-languages/m/time-functions.md index 6c08d5464..922f463bb 100644 --- a/query-languages/m/time-functions.md +++ b/query-languages/m/time-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Time functions" title: "Time functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-hour.md b/query-languages/m/time-hour.md index 30ad58559..164fe7518 100644 --- a/query-languages/m/time-hour.md +++ b/query-languages/m/time-hour.md @@ -3,7 +3,6 @@ description: "Learn more about: Time.Hour" title: "Time.Hour" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-minute.md b/query-languages/m/time-minute.md index c1066c90d..af0b61a8f 100644 --- a/query-languages/m/time-minute.md +++ b/query-languages/m/time-minute.md @@ -3,7 +3,6 @@ description: "Learn more about: Time.Minute" title: "Time.Minute" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-second.md b/query-languages/m/time-second.md index d734c7b62..bbaebf3ee 100644 --- a/query-languages/m/time-second.md +++ b/query-languages/m/time-second.md @@ -3,7 +3,6 @@ description: "Learn more about: Time.Second" title: "Time.Second" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-startofhour.md b/query-languages/m/time-startofhour.md index 75e22a5ab..f91b1a647 100644 --- a/query-languages/m/time-startofhour.md +++ b/query-languages/m/time-startofhour.md @@ -3,7 +3,6 @@ description: "Learn more about: Time.StartOfHour" title: "Time.StartOfHour" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-torecord.md b/query-languages/m/time-torecord.md index 32fc5363a..8c2c9240a 100644 --- a/query-languages/m/time-torecord.md +++ b/query-languages/m/time-torecord.md @@ -3,7 +3,6 @@ description: "Learn more about: Time.ToRecord" title: "Time.ToRecord" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/time-totext.md b/query-languages/m/time-totext.md index 294446559..202fa8434 100644 --- a/query-languages/m/time-totext.md +++ b/query-languages/m/time-totext.md @@ -3,7 +3,6 @@ description: "Learn more about: Time.ToText" title: "Time.ToText" ms.date: 6/24/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/timezone-current.md b/query-languages/m/timezone-current.md index 1051bba9e..21e8c7b0e 100644 --- a/query-languages/m/timezone-current.md +++ b/query-languages/m/timezone-current.md @@ -3,7 +3,6 @@ description: "Learn more about: TimeZone.Current" title: "TimeZone.Current" ms.date: 9/13/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/tracelevel-type.md b/query-languages/m/tracelevel-type.md index 33680023e..cf73a6b45 100644 --- a/query-languages/m/tracelevel-type.md +++ b/query-languages/m/tracelevel-type.md @@ -3,7 +3,6 @@ description: "Learn more about: TraceLevel.Type" title: "TraceLevel.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-addtablekey.md b/query-languages/m/type-addtablekey.md index 49fa8de69..8c062a297 100644 --- a/query-languages/m/type-addtablekey.md +++ b/query-languages/m/type-addtablekey.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.AddTableKey" title: "Type.AddTableKey" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-closedrecord.md b/query-languages/m/type-closedrecord.md index 40b80eeb5..6fb3f65d4 100644 --- a/query-languages/m/type-closedrecord.md +++ b/query-languages/m/type-closedrecord.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.ClosedRecord" title: "Type.ClosedRecord" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index adfa229b5..3d6e43675 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -3,7 +3,6 @@ description: "Learn more about: Type conversion" title: "Type conversion" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-facets.md b/query-languages/m/type-facets.md index 20c4184b6..0fec4a03e 100644 --- a/query-languages/m/type-facets.md +++ b/query-languages/m/type-facets.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.Facets" title: "Type.Facets" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-forfunction.md b/query-languages/m/type-forfunction.md index 69412b0fd..868ea5761 100644 --- a/query-languages/m/type-forfunction.md +++ b/query-languages/m/type-forfunction.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.ForFunction" title: "Type.ForFunction" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-forrecord.md b/query-languages/m/type-forrecord.md index 06d38fc18..a2e650238 100644 --- a/query-languages/m/type-forrecord.md +++ b/query-languages/m/type-forrecord.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.ForRecord" title: "Type.ForRecord" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-functionparameters.md b/query-languages/m/type-functionparameters.md index a1af88583..f4a44f1b0 100644 --- a/query-languages/m/type-functionparameters.md +++ b/query-languages/m/type-functionparameters.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.FunctionParameters" title: "Type.FunctionParameters" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-functionrequiredparameters.md b/query-languages/m/type-functionrequiredparameters.md index 2454256d9..1afcb88b0 100644 --- a/query-languages/m/type-functionrequiredparameters.md +++ b/query-languages/m/type-functionrequiredparameters.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.FunctionRequiredParameters" title: "Type.FunctionRequiredParameters" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-functionreturn.md b/query-languages/m/type-functionreturn.md index dd4c9ecc8..fc5d2849f 100644 --- a/query-languages/m/type-functionreturn.md +++ b/query-languages/m/type-functionreturn.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.FunctionReturn" title: "Type.FunctionReturn" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-functions.md b/query-languages/m/type-functions.md index 01b3a43c8..95c6799da 100644 --- a/query-languages/m/type-functions.md +++ b/query-languages/m/type-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Type functions" title: "Type functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index 5731020d1..ff77a3fbf 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.Is" title: "Type.Is" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-isnullable.md b/query-languages/m/type-isnullable.md index 487f8f6c5..422f0db8b 100644 --- a/query-languages/m/type-isnullable.md +++ b/query-languages/m/type-isnullable.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.IsNullable" title: "Type.IsNullable" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-isopenrecord.md b/query-languages/m/type-isopenrecord.md index 92ad9ef4e..b80c79180 100644 --- a/query-languages/m/type-isopenrecord.md +++ b/query-languages/m/type-isopenrecord.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.IsOpenRecord" title: "Type.IsOpenRecord" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-listitem.md b/query-languages/m/type-listitem.md index 85908ebc5..39013c49b 100644 --- a/query-languages/m/type-listitem.md +++ b/query-languages/m/type-listitem.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.ListItem" title: "Type.ListItem" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-nonnullable.md b/query-languages/m/type-nonnullable.md index 29df8768a..5ad801747 100644 --- a/query-languages/m/type-nonnullable.md +++ b/query-languages/m/type-nonnullable.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.NonNullable" title: "Type.NonNullable" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-openrecord.md b/query-languages/m/type-openrecord.md index b859d4d12..e34a55def 100644 --- a/query-languages/m/type-openrecord.md +++ b/query-languages/m/type-openrecord.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.OpenRecord" title: "Type.OpenRecord" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-recordfields.md b/query-languages/m/type-recordfields.md index 423569ced..b388c114b 100644 --- a/query-languages/m/type-recordfields.md +++ b/query-languages/m/type-recordfields.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.RecordFields" title: "Type.RecordFields" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-replacefacets.md b/query-languages/m/type-replacefacets.md index ad9c94caf..1f6490914 100644 --- a/query-languages/m/type-replacefacets.md +++ b/query-languages/m/type-replacefacets.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.ReplaceFacets" title: "Type.ReplaceFacets" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 61ad2c70c..eaeb05cd5 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.ReplaceTableKeys" title: "Type.ReplaceTableKeys" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-tablecolumn.md b/query-languages/m/type-tablecolumn.md index 234937367..016a14486 100644 --- a/query-languages/m/type-tablecolumn.md +++ b/query-languages/m/type-tablecolumn.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.TableColumn" title: "Type.TableColumn" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index a89e68142..ab147b17f 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.TableKeys" title: "Type.TableKeys" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-tablerow.md b/query-languages/m/type-tablerow.md index f52b43138..fe1685172 100644 --- a/query-languages/m/type-tablerow.md +++ b/query-languages/m/type-tablerow.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.TableRow" title: "Type.TableRow" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-tableschema.md b/query-languages/m/type-tableschema.md index d0f864769..3c0a99c12 100644 --- a/query-languages/m/type-tableschema.md +++ b/query-languages/m/type-tableschema.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.TableSchema" title: "Type.TableSchema" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/type-union.md b/query-languages/m/type-union.md index 45822ce38..11ad32918 100644 --- a/query-languages/m/type-union.md +++ b/query-languages/m/type-union.md @@ -3,7 +3,6 @@ description: "Learn more about: Type.Union" title: "Type.Union" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index 10c7e90dd..909a2f111 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Understanding Power Query M functions" title: "Understanding Power Query M functions" ms.date: 4/16/2018 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-buildquerystring.md b/query-languages/m/uri-buildquerystring.md index bc49fe4a9..ae0bc27ad 100644 --- a/query-languages/m/uri-buildquerystring.md +++ b/query-languages/m/uri-buildquerystring.md @@ -3,7 +3,6 @@ description: "Learn more about: Uri.BuildQueryString" title: "Uri.BuildQueryString" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-combine.md b/query-languages/m/uri-combine.md index 403c55d2a..326603113 100644 --- a/query-languages/m/uri-combine.md +++ b/query-languages/m/uri-combine.md @@ -3,7 +3,6 @@ description: "Learn more about: Uri.Combine" title: "Uri.Combine" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-escapedatastring.md b/query-languages/m/uri-escapedatastring.md index 78ffac947..52eff0f9b 100644 --- a/query-languages/m/uri-escapedatastring.md +++ b/query-languages/m/uri-escapedatastring.md @@ -3,7 +3,6 @@ description: "Learn more about: Uri.EscapeDataString" title: "Uri.EscapeDataString" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-functions.md b/query-languages/m/uri-functions.md index f015a2c51..161e9090a 100644 --- a/query-languages/m/uri-functions.md +++ b/query-languages/m/uri-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Uri functions" title: "Uri functions" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/uri-parts.md b/query-languages/m/uri-parts.md index 5b2f760c0..28bfa9b58 100644 --- a/query-languages/m/uri-parts.md +++ b/query-languages/m/uri-parts.md @@ -3,7 +3,6 @@ description: "Learn more about: Uri.Parts" title: "Uri.Parts" ms.date: 3/11/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-add.md b/query-languages/m/value-add.md index 8967dc343..311b018f9 100644 --- a/query-languages/m/value-add.md +++ b/query-languages/m/value-add.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Add" title: "Value.Add" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-alternates.md b/query-languages/m/value-alternates.md index 4b9505632..dcc4cd481 100644 --- a/query-languages/m/value-alternates.md +++ b/query-languages/m/value-alternates.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Alternates" title: "Value.Alternates" ms.date: 5/12/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-as.md b/query-languages/m/value-as.md index d8ad5a63c..510f6754b 100644 --- a/query-languages/m/value-as.md +++ b/query-languages/m/value-as.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.As" title: "Value.As" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-compare.md b/query-languages/m/value-compare.md index 9cde2ea24..e76fb7a8e 100644 --- a/query-languages/m/value-compare.md +++ b/query-languages/m/value-compare.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Compare" title: "Value.Compare" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-divide.md b/query-languages/m/value-divide.md index 49f55b143..a411998e5 100644 --- a/query-languages/m/value-divide.md +++ b/query-languages/m/value-divide.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Divide" title: "Value.Divide" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-equals.md b/query-languages/m/value-equals.md index 57b5fc945..3c5e6d5e3 100644 --- a/query-languages/m/value-equals.md +++ b/query-languages/m/value-equals.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Equals" title: "Value.Equals" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-expression.md b/query-languages/m/value-expression.md index 160923234..48bff37a1 100644 --- a/query-languages/m/value-expression.md +++ b/query-languages/m/value-expression.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Expression" title: "Value.Expression" ms.date: 3/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-firewall.md b/query-languages/m/value-firewall.md index dc5c8b7b0..5b0716ce2 100644 --- a/query-languages/m/value-firewall.md +++ b/query-languages/m/value-firewall.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Firewall" title: "Value.Firewall" ms.date: 10/18/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-fromtext.md b/query-languages/m/value-fromtext.md index 3cb6d9877..6e7d92abc 100644 --- a/query-languages/m/value-fromtext.md +++ b/query-languages/m/value-fromtext.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.FromText" title: "Value.FromText" ms.date: 4/1/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index aeb825592..32ced2e33 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -3,7 +3,6 @@ description: "Learn more about: Value functions" title: "Value functions" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-is.md b/query-languages/m/value-is.md index f21f39ea5..2fcc333c1 100644 --- a/query-languages/m/value-is.md +++ b/query-languages/m/value-is.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Is" title: "Value.Is" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-lineage.md b/query-languages/m/value-lineage.md index 2abcb0706..66320fa2b 100644 --- a/query-languages/m/value-lineage.md +++ b/query-languages/m/value-lineage.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Lineage" title: "Value.Lineage" ms.date: 9/22/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-metadata.md b/query-languages/m/value-metadata.md index 1286a1dec..81cf9bae7 100644 --- a/query-languages/m/value-metadata.md +++ b/query-languages/m/value-metadata.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Metadata" title: "Value.Metadata" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-multiply.md b/query-languages/m/value-multiply.md index 42823e874..cc411abd0 100644 --- a/query-languages/m/value-multiply.md +++ b/query-languages/m/value-multiply.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Multiply" title: "Value.Multiply" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-nativequery.md b/query-languages/m/value-nativequery.md index 2f95aa197..9bc1ecc04 100644 --- a/query-languages/m/value-nativequery.md +++ b/query-languages/m/value-nativequery.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.NativeQuery" title: "Value.NativeQuery" ms.date: 11/17/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-nullableequals.md b/query-languages/m/value-nullableequals.md index b72df6612..081a4d058 100644 --- a/query-languages/m/value-nullableequals.md +++ b/query-languages/m/value-nullableequals.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.NullableEquals" title: "Value.NullableEquals" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-optimize.md b/query-languages/m/value-optimize.md index 1ec346cbf..51cf23670 100644 --- a/query-languages/m/value-optimize.md +++ b/query-languages/m/value-optimize.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Optimize" title: "Value.Optimize" ms.date: 06/16/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-removemetadata.md b/query-languages/m/value-removemetadata.md index 3ccb9c8b3..b6bc3b491 100644 --- a/query-languages/m/value-removemetadata.md +++ b/query-languages/m/value-removemetadata.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.RemoveMetadata" title: "Value.RemoveMetadata" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-replacemetadata.md b/query-languages/m/value-replacemetadata.md index 44a13e567..268704817 100644 --- a/query-languages/m/value-replacemetadata.md +++ b/query-languages/m/value-replacemetadata.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.ReplaceMetadata" title: "Value.ReplaceMetadata" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-replacetype.md b/query-languages/m/value-replacetype.md index b1008c4ca..ea0f77ad9 100644 --- a/query-languages/m/value-replacetype.md +++ b/query-languages/m/value-replacetype.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.ReplaceType" title: "Value.ReplaceType" ms.date: 4/13/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-subtract.md b/query-languages/m/value-subtract.md index 05856b6ae..253dfca6b 100644 --- a/query-languages/m/value-subtract.md +++ b/query-languages/m/value-subtract.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Subtract" title: "Value.Subtract" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-traits.md b/query-languages/m/value-traits.md index 64f086774..7d485618a 100644 --- a/query-languages/m/value-traits.md +++ b/query-languages/m/value-traits.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Traits" title: "Value.Traits" ms.date: 9/22/2020 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-type.md b/query-languages/m/value-type.md index d47b6a7ef..b49207a0b 100644 --- a/query-languages/m/value-type.md +++ b/query-languages/m/value-type.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Type" title: "Value.Type" ms.date: 8/2/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-versionidentity.md b/query-languages/m/value-versionidentity.md index 03f638af1..179134ade 100644 --- a/query-languages/m/value-versionidentity.md +++ b/query-languages/m/value-versionidentity.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.VersionIdentity" title: "Value.VersionIdentity" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/value-versions.md b/query-languages/m/value-versions.md index 3caf8bcc0..c1ce8f6a9 100644 --- a/query-languages/m/value-versions.md +++ b/query-languages/m/value-versions.md @@ -3,7 +3,6 @@ description: "Learn more about: Value.Versions" title: "Value.Versions" ms.date: 5/19/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/variable-value.md b/query-languages/m/variable-value.md index fceb7c6be..1ebed663b 100644 --- a/query-languages/m/variable-value.md +++ b/query-languages/m/variable-value.md @@ -3,7 +3,6 @@ description: "Learn more about: Variable.Value" title: "Variable.Value" ms.date: 10/18/2021 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/web-contents.md b/query-languages/m/web-contents.md index 3c43c75e3..52c3ddfcd 100644 --- a/query-languages/m/web-contents.md +++ b/query-languages/m/web-contents.md @@ -3,7 +3,6 @@ description: "Learn more about: Web.Contents" title: "Web.Contents" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/web-headers.md b/query-languages/m/web-headers.md index c4fcad3f4..00565b413 100644 --- a/query-languages/m/web-headers.md +++ b/query-languages/m/web-headers.md @@ -3,7 +3,6 @@ description: "Learn more about: Web.Headers" title: "Web.Headers" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/webaction-request.md b/query-languages/m/webaction-request.md index 2b0b0fb63..3496cd65f 100644 --- a/query-languages/m/webaction-request.md +++ b/query-languages/m/webaction-request.md @@ -3,7 +3,6 @@ description: "Learn more about: WebAction.Request" title: "WebAction.Request" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/webmethod-type.md b/query-languages/m/webmethod-type.md index 0068b5597..984c548d0 100644 --- a/query-languages/m/webmethod-type.md +++ b/query-languages/m/webmethod-type.md @@ -3,7 +3,6 @@ description: "Learn more about: WebMethod.Type" title: "WebMethod.Type" ms.date: 5/16/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/xml-document.md b/query-languages/m/xml-document.md index 72f3c327e..e08694437 100644 --- a/query-languages/m/xml-document.md +++ b/query-languages/m/xml-document.md @@ -3,7 +3,6 @@ description: "Learn more about: Xml.Document" title: "Xml.Document" ms.date: 7/29/2019 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo diff --git a/query-languages/m/xml-tables.md b/query-languages/m/xml-tables.md index f92977a18..9a2d4925d 100644 --- a/query-languages/m/xml-tables.md +++ b/query-languages/m/xml-tables.md @@ -3,7 +3,6 @@ description: "Learn more about: Xml.Tables" title: "Xml.Tables" ms.date: 3/14/2022 ms.service: powerquery - ms.topic: reference author: dougklopfenstein ms.author: dougklo From bf421c35f2d213c5a376bead198d89568cf15120 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 29 Jul 2022 20:13:34 -0700 Subject: [PATCH 023/934] Adding author to global --- query-languages/m/docfx.json | 4 +++- query-languages/m/xml-tables.md | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 42a72df88..62aeaab6d 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -40,7 +40,9 @@ "titleSuffix": "PowerQuery M", "ms.service": "power-query", "ms.topic": "reference", - "ms.reviewer": "ehvonleh" + "ms.reviewer": "ehvonleh", + "author": "dougklopfenstein", + "ms.author": "dougklo" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/xml-tables.md b/query-languages/m/xml-tables.md index 9a2d4925d..a7a4c9dce 100644 --- a/query-languages/m/xml-tables.md +++ b/query-languages/m/xml-tables.md @@ -6,7 +6,6 @@ ms.service: powerquery ms.topic: reference author: dougklopfenstein ms.author: dougklo - --- # Xml.Tables From 85ed0045652e5cc338486a8345de85b07012121f Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Sun, 31 Jul 2022 23:09:28 -0700 Subject: [PATCH 024/934] Putting values in globally --- query-languages/m/access-database.md | 4 ---- .../m/accesscontrolentry-conditiontoidentities.md | 4 ---- query-languages/m/accesscontrolkind-type.md | 5 ----- query-languages/m/accessing-data-functions.md | 6 +----- query-languages/m/activedirectory-domains.md | 4 ---- query-languages/m/adobeanalytics-cubes.md | 4 ---- query-languages/m/adodotnet-datasource.md | 4 ---- query-languages/m/adodotnet-query.md | 4 ---- query-languages/m/analysisservices-database.md | 4 ---- query-languages/m/analysisservices-databases.md | 4 ---- query-languages/m/azurestorage-blobcontents.md | 4 ---- query-languages/m/azurestorage-blobs.md | 4 ---- query-languages/m/azurestorage-datalake.md | 4 ---- query-languages/m/azurestorage-datalakecontents.md | 4 ---- query-languages/m/azurestorage-tables.md | 4 ---- query-languages/m/binary-approximatelength.md | 4 ---- query-languages/m/binary-buffer.md | 4 ---- query-languages/m/binary-combine.md | 4 ---- query-languages/m/binary-compress.md | 4 ---- query-languages/m/binary-decompress.md | 4 ---- query-languages/m/binary-from.md | 4 ---- query-languages/m/binary-fromlist.md | 5 ----- query-languages/m/binary-fromtext.md | 5 ----- query-languages/m/binary-functions.md | 5 ----- query-languages/m/binary-infercontenttype.md | 5 ----- query-languages/m/binary-length.md | 5 ----- query-languages/m/binary-range.md | 4 ---- query-languages/m/binary-tolist.md | 5 ----- query-languages/m/binary-totext.md | 5 ----- query-languages/m/binary-view.md | 4 ---- query-languages/m/binary-viewerror.md | 4 ---- query-languages/m/binary-viewfunction.md | 4 ---- query-languages/m/binaryencoding-type.md | 5 ----- query-languages/m/binaryformat-7bitencodedsignedinteger.md | 5 ----- .../m/binaryformat-7bitencodedunsignedinteger.md | 5 ----- query-languages/m/binaryformat-binary.md | 5 ----- query-languages/m/binaryformat-byte.md | 5 ----- query-languages/m/binaryformat-byteorder.md | 5 ----- query-languages/m/binaryformat-choice.md | 5 ----- query-languages/m/binaryformat-decimal.md | 5 ----- query-languages/m/binaryformat-double.md | 5 ----- query-languages/m/binaryformat-group.md | 5 ----- query-languages/m/binaryformat-length.md | 5 ----- query-languages/m/binaryformat-list.md | 5 ----- query-languages/m/binaryformat-null.md | 5 ----- query-languages/m/binaryformat-record.md | 5 ----- query-languages/m/binaryformat-signedinteger16.md | 5 ----- query-languages/m/binaryformat-signedinteger32.md | 5 ----- query-languages/m/binaryformat-signedinteger64.md | 5 ----- query-languages/m/binaryformat-single.md | 5 ----- query-languages/m/binaryformat-text.md | 5 ----- query-languages/m/binaryformat-transform.md | 5 ----- query-languages/m/binaryformat-unsignedinteger16.md | 5 ----- query-languages/m/binaryformat-unsignedinteger32.md | 5 ----- query-languages/m/binaryformat-unsignedinteger64.md | 5 ----- query-languages/m/binaryoccurrence-type.md | 5 ----- query-languages/m/buffermode-type.md | 5 ----- query-languages/m/byte-from.md | 5 ----- query-languages/m/byteorder-type.md | 5 ----- query-languages/m/cdm-contents.md | 5 ----- query-languages/m/character-fromnumber.md | 5 ----- query-languages/m/character-tonumber.md | 5 ----- query-languages/m/combiner-combinetextbydelimiter.md | 5 ----- query-languages/m/combiner-combinetextbyeachdelimiter.md | 5 ----- query-languages/m/combiner-combinetextbylengths.md | 5 ----- query-languages/m/combiner-combinetextbypositions.md | 5 ----- query-languages/m/combiner-combinetextbyranges.md | 5 ----- query-languages/m/combiner-functions.md | 5 ----- query-languages/m/comments.md | 5 ----- query-languages/m/comparer-equals.md | 5 ----- query-languages/m/comparer-fromculture.md | 5 ----- query-languages/m/comparer-functions.md | 5 ----- query-languages/m/comparer-ordinal.md | 5 ----- query-languages/m/comparer-ordinalignorecase.md | 5 ----- query-languages/m/compression-type.md | 5 ----- query-languages/m/constants.md | 5 ----- query-languages/m/csv-document.md | 5 ----- query-languages/m/csvstyle-type.md | 5 ----- query-languages/m/cube-addandexpanddimensioncolumn.md | 7 +------ query-languages/m/cube-addmeasurecolumn.md | 5 ----- query-languages/m/cube-applyparameter.md | 5 ----- query-languages/m/cube-attributememberid.md | 5 ----- query-languages/m/cube-attributememberproperty.md | 5 ----- query-languages/m/cube-collapseandremovecolumns.md | 5 ----- query-languages/m/cube-dimensions.md | 5 ----- query-languages/m/cube-displayfolders.md | 5 ----- query-languages/m/cube-measureproperties.md | 5 ----- query-languages/m/cube-measureproperty.md | 5 ----- query-languages/m/cube-measures.md | 5 ----- query-languages/m/cube-parameters.md | 5 ----- query-languages/m/cube-properties.md | 5 ----- query-languages/m/cube-propertykey.md | 5 ----- query-languages/m/cube-replacedimensions.md | 5 ----- query-languages/m/cube-transform.md | 5 ----- query-languages/m/culture-current.md | 5 ----- query-languages/m/currency-from.md | 5 ----- query-languages/m/date-adddays.md | 5 ----- query-languages/m/date-addmonths.md | 5 ----- query-languages/m/date-addquarters.md | 5 ----- query-languages/m/date-addweeks.md | 5 ----- query-languages/m/date-addyears.md | 5 ----- query-languages/m/date-day.md | 5 ----- query-languages/m/date-dayofweek.md | 5 ----- query-languages/m/date-dayofweekname.md | 5 ----- query-languages/m/date-dayofyear.md | 5 ----- query-languages/m/date-daysinmonth.md | 5 ----- query-languages/m/date-endofday.md | 5 ----- query-languages/m/date-endofmonth.md | 5 ----- query-languages/m/date-endofquarter.md | 5 ----- query-languages/m/date-endofweek.md | 5 ----- query-languages/m/date-endofyear.md | 5 ----- query-languages/m/date-from.md | 5 ----- query-languages/m/date-fromtext.md | 5 ----- query-languages/m/date-functions.md | 5 ----- query-languages/m/date-isincurrentday.md | 5 ----- query-languages/m/date-isincurrentmonth.md | 5 ----- query-languages/m/date-isincurrentquarter.md | 5 ----- query-languages/m/date-isincurrentweek.md | 5 ----- query-languages/m/date-isincurrentyear.md | 5 ----- query-languages/m/date-isinnextday.md | 5 ----- query-languages/m/date-isinnextmonth.md | 5 ----- query-languages/m/date-isinnextndays.md | 5 ----- query-languages/m/date-isinnextnmonths.md | 5 ----- query-languages/m/date-isinnextnquarters.md | 5 ----- query-languages/m/date-isinnextnweeks.md | 5 ----- query-languages/m/date-isinnextnyears.md | 5 ----- query-languages/m/date-isinnextquarter.md | 5 ----- query-languages/m/date-isinnextweek.md | 5 ----- query-languages/m/date-isinnextyear.md | 5 ----- query-languages/m/date-isinpreviousday.md | 5 ----- query-languages/m/date-isinpreviousmonth.md | 5 ----- query-languages/m/date-isinpreviousndays.md | 5 ----- query-languages/m/date-isinpreviousnmonths.md | 5 ----- query-languages/m/date-isinpreviousnquarters.md | 5 ----- query-languages/m/date-isinpreviousnweeks.md | 5 ----- query-languages/m/date-isinpreviousnyears.md | 5 ----- query-languages/m/date-isinpreviousquarter.md | 5 ----- query-languages/m/date-isinpreviousweek.md | 5 ----- query-languages/m/date-isinpreviousyear.md | 5 ----- query-languages/m/date-isinyeartodate.md | 5 ----- query-languages/m/date-isleapyear.md | 5 ----- query-languages/m/date-month.md | 5 ----- query-languages/m/date-monthname.md | 5 ----- query-languages/m/date-quarterofyear.md | 5 ----- query-languages/m/date-startofday.md | 5 ----- query-languages/m/date-startofmonth.md | 5 ----- query-languages/m/date-startofquarter.md | 5 ----- query-languages/m/date-startofweek.md | 5 ----- query-languages/m/date-startofyear.md | 5 ----- query-languages/m/date-torecord.md | 5 ----- query-languages/m/date-totext.md | 5 ----- query-languages/m/date-weekofmonth.md | 5 ----- query-languages/m/date-weekofyear.md | 5 ----- query-languages/m/date-year.md | 5 ----- query-languages/m/datetime-addzone.md | 5 ----- query-languages/m/datetime-date.md | 5 ----- query-languages/m/datetime-fixedlocalnow.md | 5 ----- query-languages/m/datetime-from.md | 5 ----- query-languages/m/datetime-fromfiletime.md | 5 ----- query-languages/m/datetime-fromtext.md | 5 ----- query-languages/m/datetime-functions.md | 5 ----- query-languages/m/datetime-isincurrenthour.md | 5 ----- query-languages/m/datetime-isincurrentminute.md | 5 ----- query-languages/m/datetime-isincurrentsecond.md | 5 ----- query-languages/m/datetime-isinnexthour.md | 5 ----- query-languages/m/datetime-isinnextminute.md | 5 ----- query-languages/m/datetime-isinnextnhours.md | 5 ----- query-languages/m/datetime-isinnextnminutes.md | 5 ----- query-languages/m/datetime-isinnextnseconds.md | 5 ----- query-languages/m/datetime-isinnextsecond.md | 5 ----- query-languages/m/datetime-isinprevioushour.md | 5 ----- query-languages/m/datetime-isinpreviousminute.md | 5 ----- query-languages/m/datetime-isinpreviousnhours.md | 5 ----- query-languages/m/datetime-isinpreviousnminutes.md | 5 ----- query-languages/m/datetime-isinpreviousnseconds.md | 5 ----- query-languages/m/datetime-isinprevioussecond.md | 5 ----- query-languages/m/datetime-localnow.md | 5 ----- query-languages/m/datetime-time.md | 5 ----- query-languages/m/datetime-torecord.md | 5 ----- query-languages/m/datetime-totext.md | 5 ----- query-languages/m/datetimezone-fixedlocalnow.md | 5 ----- query-languages/m/datetimezone-fixedutcnow.md | 5 ----- query-languages/m/datetimezone-from.md | 5 ----- query-languages/m/datetimezone-fromfiletime.md | 5 ----- query-languages/m/datetimezone-fromtext.md | 5 ----- query-languages/m/datetimezone-functions.md | 5 ----- query-languages/m/datetimezone-localnow.md | 5 ----- query-languages/m/datetimezone-removezone.md | 5 ----- query-languages/m/datetimezone-switchzone.md | 5 ----- query-languages/m/datetimezone-tolocal.md | 5 ----- query-languages/m/datetimezone-torecord.md | 5 ----- query-languages/m/datetimezone-totext.md | 5 ----- query-languages/m/datetimezone-toutc.md | 5 ----- query-languages/m/datetimezone-utcnow.md | 5 ----- query-languages/m/datetimezone-zonehours.md | 5 ----- query-languages/m/datetimezone-zoneminutes.md | 5 ----- query-languages/m/day-type.md | 5 ----- query-languages/m/db2-database.md | 5 ----- query-languages/m/decimal-from.md | 5 ----- query-languages/m/diagnostics-activityid.md | 5 ----- query-languages/m/diagnostics-trace.md | 5 ----- query-languages/m/directquerycapabilities-from.md | 5 ----- query-languages/m/double-from.md | 5 ----- query-languages/m/duration-days.md | 5 ----- query-languages/m/duration-from.md | 5 ----- query-languages/m/duration-fromtext.md | 5 ----- query-languages/m/duration-functions.md | 5 ----- query-languages/m/duration-hours.md | 5 ----- query-languages/m/duration-minutes.md | 5 ----- query-languages/m/duration-seconds.md | 5 ----- query-languages/m/duration-torecord.md | 5 ----- query-languages/m/duration-totaldays.md | 5 ----- query-languages/m/duration-totalhours.md | 5 ----- query-languages/m/duration-totalminutes.md | 5 ----- query-languages/m/duration-totalseconds.md | 5 ----- query-languages/m/duration-totext.md | 5 ----- query-languages/m/dynamic-values.md | 5 ----- query-languages/m/embedded-value.md | 5 ----- query-languages/m/enumerations.md | 4 ---- query-languages/m/error-handling.md | 5 ----- query-languages/m/error-record.md | 5 ----- query-languages/m/errors.md | 5 ----- query-languages/m/essbase-cubes.md | 5 ----- query-languages/m/evaluation-model.md | 5 ----- query-languages/m/excel-currentworkbook.md | 5 ----- query-languages/m/excel-shapetable.md | 5 ----- query-languages/m/excel-workbook.md | 5 ----- query-languages/m/exchange-contents.md | 5 ----- query-languages/m/expression-constant.md | 5 ----- query-languages/m/expression-evaluate.md | 5 ----- query-languages/m/expression-functions.md | 5 ----- query-languages/m/expression-identifier.md | 5 ----- query-languages/m/expressions-values-and-let-expression.md | 5 ----- query-languages/m/extravalues-type.md | 5 ----- query-languages/m/file-contents.md | 4 ---- query-languages/m/folder-contents.md | 4 ---- query-languages/m/folder-files.md | 4 ---- query-languages/m/function-from.md | 5 ----- query-languages/m/function-invoke.md | 5 ----- query-languages/m/function-invokeafter.md | 5 ----- query-languages/m/function-isdatasource.md | 5 ----- query-languages/m/function-scalarvector.md | 5 ----- query-languages/m/function-values.md | 5 ----- query-languages/m/geography-fromwellknowntext.md | 5 ----- query-languages/m/geography-towellknowntext.md | 5 ----- query-languages/m/geographypoint-from.md | 5 ----- query-languages/m/geometry-fromwellknowntext.md | 5 ----- query-languages/m/geometry-towellknowntext.md | 5 ----- query-languages/m/geometrypoint-from.md | 5 ----- query-languages/m/googleanalytics-accounts.md | 5 ----- query-languages/m/graph-nodes.md | 5 ----- query-languages/m/groupkind-type.md | 5 ----- query-languages/m/guid-from.md | 5 ----- query-languages/m/hdfs-contents.md | 5 ----- query-languages/m/hdfs-files.md | 5 ----- query-languages/m/hdinsight-containers.md | 5 ----- query-languages/m/hdinsight-contents.md | 5 ----- query-languages/m/hdinsight-files.md | 5 ----- query-languages/m/html-table.md | 5 ----- query-languages/m/identity-from.md | 5 ----- query-languages/m/identity-ismemberof.md | 5 ----- query-languages/m/identityprovider-default.md | 5 ----- query-languages/m/index.yml | 7 ++----- query-languages/m/informix-database.md | 5 ----- query-languages/m/int16-from.md | 5 ----- query-languages/m/int32-from.md | 5 ----- query-languages/m/int64-from.md | 5 ----- query-languages/m/int8-from.md | 5 ----- query-languages/m/itemexpression-from.md | 5 ----- query-languages/m/itemexpression-item.md | 5 ----- query-languages/m/joinalgorithm-type.md | 5 ----- query-languages/m/joinkind-type.md | 5 ----- query-languages/m/joinside-type.md | 5 ----- query-languages/m/json-document.md | 5 ----- query-languages/m/json-fromvalue.md | 5 ----- query-languages/m/limitclausekind-type.md | 5 ----- query-languages/m/lines-frombinary.md | 5 ----- query-languages/m/lines-fromtext.md | 5 ----- query-languages/m/lines-functions.md | 5 ----- query-languages/m/lines-tobinary.md | 5 ----- query-languages/m/lines-totext.md | 5 ----- query-languages/m/list-accumulate.md | 5 ----- query-languages/m/list-alltrue.md | 5 ----- query-languages/m/list-alternate.md | 5 ----- query-languages/m/list-anytrue.md | 5 ----- query-languages/m/list-average.md | 5 ----- query-languages/m/list-buffer.md | 5 ----- query-languages/m/list-combine.md | 5 ----- query-languages/m/list-conformtopagereader.md | 5 ----- query-languages/m/list-contains.md | 5 ----- query-languages/m/list-containsall.md | 5 ----- query-languages/m/list-containsany.md | 5 ----- query-languages/m/list-count.md | 5 ----- query-languages/m/list-covariance.md | 5 ----- query-languages/m/list-dates.md | 5 ----- query-languages/m/list-datetimes.md | 5 ----- query-languages/m/list-datetimezones.md | 5 ----- query-languages/m/list-difference.md | 5 ----- query-languages/m/list-distinct.md | 5 ----- query-languages/m/list-durations.md | 5 ----- query-languages/m/list-findtext.md | 5 ----- query-languages/m/list-first.md | 5 ----- query-languages/m/list-firstn.md | 5 ----- query-languages/m/list-functions.md | 5 ----- query-languages/m/list-generate.md | 5 ----- query-languages/m/list-insertrange.md | 5 ----- query-languages/m/list-intersect.md | 5 ----- query-languages/m/list-isdistinct.md | 5 ----- query-languages/m/list-isempty.md | 5 ----- query-languages/m/list-last.md | 5 ----- query-languages/m/list-lastn.md | 5 ----- query-languages/m/list-matchesall.md | 5 ----- query-languages/m/list-matchesany.md | 5 ----- query-languages/m/list-max.md | 5 ----- query-languages/m/list-maxn.md | 5 ----- query-languages/m/list-median.md | 5 ----- query-languages/m/list-min.md | 5 ----- query-languages/m/list-minn.md | 5 ----- query-languages/m/list-mode.md | 5 ----- query-languages/m/list-modes.md | 5 ----- query-languages/m/list-nonnullcount.md | 5 ----- query-languages/m/list-numbers.md | 5 ----- query-languages/m/list-percentile.md | 5 ----- query-languages/m/list-positionof.md | 5 ----- query-languages/m/list-positionofany.md | 5 ----- query-languages/m/list-positions.md | 5 ----- query-languages/m/list-product.md | 5 ----- query-languages/m/list-random.md | 5 ----- query-languages/m/list-range.md | 5 ----- query-languages/m/list-removefirstn.md | 5 ----- query-languages/m/list-removeitems.md | 5 ----- query-languages/m/list-removelastn.md | 5 ----- query-languages/m/list-removematchingitems.md | 5 ----- query-languages/m/list-removenulls.md | 5 ----- query-languages/m/list-removerange.md | 5 ----- query-languages/m/list-repeat.md | 5 ----- query-languages/m/list-replacematchingitems.md | 5 ----- query-languages/m/list-replacerange.md | 5 ----- query-languages/m/list-replacevalue.md | 5 ----- query-languages/m/list-reverse.md | 5 ----- query-languages/m/list-select.md | 5 ----- query-languages/m/list-single.md | 5 ----- query-languages/m/list-singleordefault.md | 5 ----- query-languages/m/list-skip.md | 5 ----- query-languages/m/list-sort.md | 5 ----- query-languages/m/list-split.md | 5 ----- query-languages/m/list-standarddeviation.md | 5 ----- query-languages/m/list-sum.md | 5 ----- query-languages/m/list-times.md | 5 ----- query-languages/m/list-transform.md | 5 ----- query-languages/m/list-transformmany.md | 5 ----- query-languages/m/list-union.md | 5 ----- query-languages/m/list-zip.md | 5 ----- query-languages/m/logical-from.md | 5 ----- query-languages/m/logical-fromtext.md | 5 ----- query-languages/m/logical-functions.md | 5 ----- query-languages/m/logical-totext.md | 5 ----- query-languages/m/m-spec-basic-concepts.md | 3 --- query-languages/m/m-spec-conditionals.md | 3 --- query-languages/m/m-spec-consolidated-grammar.md | 3 --- query-languages/m/m-spec-error-handling.md | 3 --- query-languages/m/m-spec-functions.md | 3 --- query-languages/m/m-spec-introduction.md | 4 ---- query-languages/m/m-spec-let.md | 3 --- query-languages/m/m-spec-lexical-structure.md | 3 --- query-languages/m/m-spec-operators.md | 3 --- query-languages/m/m-spec-sections.md | 3 --- query-languages/m/m-spec-types.md | 3 --- query-languages/m/m-spec-values.md | 3 --- query-languages/m/metadata.md | 5 ----- query-languages/m/missingfield-type.md | 5 ----- query-languages/m/mysql-database.md | 5 ----- query-languages/m/number-abs.md | 5 ----- query-languages/m/number-acos.md | 5 ----- query-languages/m/number-asin.md | 5 ----- query-languages/m/number-atan.md | 5 ----- query-languages/m/number-atan2.md | 5 ----- query-languages/m/number-bitwiseand.md | 5 ----- query-languages/m/number-bitwisenot.md | 5 ----- query-languages/m/number-bitwiseor.md | 5 ----- query-languages/m/number-bitwiseshiftleft.md | 5 ----- query-languages/m/number-bitwiseshiftright.md | 5 ----- query-languages/m/number-bitwisexor.md | 5 ----- query-languages/m/number-combinations.md | 5 ----- query-languages/m/number-cos.md | 5 ----- query-languages/m/number-cosh.md | 5 ----- query-languages/m/number-e.md | 5 ----- query-languages/m/number-epsilon.md | 5 ----- query-languages/m/number-exp.md | 5 ----- query-languages/m/number-factorial.md | 5 ----- query-languages/m/number-from.md | 5 ----- query-languages/m/number-fromtext.md | 5 ----- query-languages/m/number-functions.md | 5 ----- query-languages/m/number-integerdivide.md | 5 ----- query-languages/m/number-iseven.md | 5 ----- query-languages/m/number-isnan.md | 5 ----- query-languages/m/number-isodd.md | 5 ----- query-languages/m/number-ln.md | 5 ----- query-languages/m/number-log.md | 5 ----- query-languages/m/number-log10.md | 5 ----- query-languages/m/number-mod.md | 5 ----- query-languages/m/number-nan.md | 5 ----- query-languages/m/number-negativeinfinity.md | 5 ----- query-languages/m/number-permutations.md | 5 ----- query-languages/m/number-pi.md | 5 ----- query-languages/m/number-positiveinfinity.md | 5 ----- query-languages/m/number-power.md | 5 ----- query-languages/m/number-random.md | 5 ----- query-languages/m/number-randombetween.md | 5 ----- query-languages/m/number-round.md | 5 ----- query-languages/m/number-roundawayfromzero.md | 5 ----- query-languages/m/number-rounddown.md | 5 ----- query-languages/m/number-roundtowardzero.md | 5 ----- query-languages/m/number-roundup.md | 5 ----- query-languages/m/number-sign.md | 5 ----- query-languages/m/number-sin.md | 5 ----- query-languages/m/number-sinh.md | 5 ----- query-languages/m/number-sqrt.md | 5 ----- query-languages/m/number-tan.md | 5 ----- query-languages/m/number-tanh.md | 5 ----- query-languages/m/number-totext.md | 5 ----- query-languages/m/occurrence-type.md | 5 ----- query-languages/m/odata-feed.md | 5 ----- query-languages/m/odataomitvalues-type.md | 5 ----- query-languages/m/odbc-datasource.md | 5 ----- query-languages/m/odbc-inferoptions.md | 5 ----- query-languages/m/odbc-query.md | 5 ----- query-languages/m/oledb-datasource.md | 5 ----- query-languages/m/oledb-query.md | 5 ----- query-languages/m/operators.md | 5 ----- query-languages/m/oracle-database.md | 5 ----- query-languages/m/order-type.md | 5 ----- query-languages/m/pdf-tables.md | 5 ----- query-languages/m/percentage-from.md | 5 ----- query-languages/m/percentilemode-type.md | 5 ----- query-languages/m/postgresql-database.md | 5 ----- query-languages/m/power-query-m-function-reference.md | 5 ----- query-languages/m/power-query-m-language-specification.md | 5 ----- query-languages/m/power-query-m-type-system.md | 5 ----- query-languages/m/precision-type.md | 5 ----- .../m/quick-tour-of-the-power-query-m-formula-language.md | 4 ---- query-languages/m/quotestyle-type.md | 5 ----- query-languages/m/rankkind-type.md | 5 ----- query-languages/m/rdata-frombinary.md | 5 ----- query-languages/m/record-addfield.md | 5 ----- query-languages/m/record-combine.md | 5 ----- query-languages/m/record-field.md | 5 ----- query-languages/m/record-fieldcount.md | 5 ----- query-languages/m/record-fieldnames.md | 5 ----- query-languages/m/record-fieldordefault.md | 5 ----- query-languages/m/record-fieldvalues.md | 5 ----- query-languages/m/record-fromlist.md | 5 ----- query-languages/m/record-fromtable.md | 5 ----- query-languages/m/record-functions.md | 5 ----- query-languages/m/record-hasfields.md | 5 ----- query-languages/m/record-removefields.md | 5 ----- query-languages/m/record-renamefields.md | 5 ----- query-languages/m/record-reorderfields.md | 5 ----- query-languages/m/record-selectfields.md | 5 ----- query-languages/m/record-tolist.md | 5 ----- query-languages/m/record-totable.md | 5 ----- query-languages/m/record-transformfields.md | 5 ----- query-languages/m/relativeposition-type.md | 5 ----- query-languages/m/replacer-functions.md | 5 ----- query-languages/m/replacer-replacetext.md | 5 ----- query-languages/m/replacer-replacevalue.md | 5 ----- query-languages/m/roundingmode-type.md | 5 ----- query-languages/m/rowexpression-column.md | 5 ----- query-languages/m/rowexpression-from.md | 5 ----- query-languages/m/rowexpression-row.md | 5 ----- query-languages/m/salesforce-data.md | 5 ----- query-languages/m/salesforce-reports.md | 5 ----- query-languages/m/sapbusinesswarehouse-cubes.md | 5 ----- .../m/sapbusinesswarehouseexecutionmode-type.md | 5 ----- query-languages/m/saphana-database.md | 5 ----- query-languages/m/saphanadistribution-type.md | 5 ----- query-languages/m/saphanarangeoperator-type.md | 5 ----- query-languages/m/sharepoint-contents.md | 5 ----- query-languages/m/sharepoint-files.md | 5 ----- query-languages/m/sharepoint-tables.md | 5 ----- query-languages/m/sharpbinary.md | 5 ----- query-languages/m/sharpdate.md | 5 ----- query-languages/m/sharpdatetime.md | 5 ----- query-languages/m/sharpdatetimezone.md | 5 ----- query-languages/m/sharpduration.md | 5 ----- query-languages/m/sharptable.md | 5 ----- query-languages/m/sharptime.md | 5 ----- query-languages/m/single-from.md | 5 ----- query-languages/m/soda-feed.md | 5 ----- query-languages/m/splitter-functions.md | 5 ----- query-languages/m/splitter-splitbynothing.md | 5 ----- query-languages/m/splitter-splittextbyanydelimiter.md | 5 ----- .../m/splitter-splittextbycharactertransition.md | 5 ----- query-languages/m/splitter-splittextbydelimiter.md | 5 ----- query-languages/m/splitter-splittextbyeachdelimiter.md | 5 ----- query-languages/m/splitter-splittextbylengths.md | 5 ----- query-languages/m/splitter-splittextbypositions.md | 5 ----- query-languages/m/splitter-splittextbyranges.md | 5 ----- query-languages/m/splitter-splittextbyrepeatedlengths.md | 5 ----- query-languages/m/splitter-splittextbywhitespace.md | 5 ----- query-languages/m/sql-database.md | 4 ---- query-languages/m/sql-databases.md | 4 ---- query-languages/m/sqlexpression-schemafrom.md | 5 ----- query-languages/m/sqlexpression-toexpression.md | 5 ----- query-languages/m/sybase-database.md | 5 ----- query-languages/m/table-addcolumn.md | 5 ----- query-languages/m/table-addfuzzyclustercolumn.md | 5 ----- query-languages/m/table-addindexcolumn.md | 5 ----- query-languages/m/table-addjoincolumn.md | 5 ----- query-languages/m/table-addkey.md | 5 ----- query-languages/m/table-addrankcolumn.md | 5 ----- query-languages/m/table-aggregatetablecolumn.md | 5 ----- query-languages/m/table-alternaterows.md | 5 ----- query-languages/m/table-approximaterowcount.md | 5 ----- query-languages/m/table-buffer.md | 5 ----- query-languages/m/table-column.md | 5 ----- query-languages/m/table-columncount.md | 5 ----- query-languages/m/table-columnnames.md | 5 ----- query-languages/m/table-columnsoftype.md | 5 ----- query-languages/m/table-combine.md | 5 ----- query-languages/m/table-combinecolumns.md | 5 ----- query-languages/m/table-combinecolumnstorecord.md | 5 ----- query-languages/m/table-conformtopagereader.md | 5 ----- query-languages/m/table-contains.md | 5 ----- query-languages/m/table-containsall.md | 5 ----- query-languages/m/table-containsany.md | 5 ----- query-languages/m/table-demoteheaders.md | 5 ----- query-languages/m/table-distinct.md | 5 ----- query-languages/m/table-duplicatecolumn.md | 5 ----- query-languages/m/table-expandlistcolumn.md | 5 ----- query-languages/m/table-expandrecordcolumn.md | 5 ----- query-languages/m/table-expandtablecolumn.md | 5 ----- query-languages/m/table-filldown.md | 5 ----- query-languages/m/table-fillup.md | 5 ----- query-languages/m/table-filterwithdatatable.md | 5 ----- query-languages/m/table-findtext.md | 5 ----- query-languages/m/table-first.md | 5 ----- query-languages/m/table-firstn.md | 5 ----- query-languages/m/table-firstvalue.md | 5 ----- query-languages/m/table-fromcolumns.md | 5 ----- query-languages/m/table-fromlist.md | 5 ----- query-languages/m/table-frompartitions.md | 5 ----- query-languages/m/table-fromrecords.md | 5 ----- query-languages/m/table-fromrows.md | 5 ----- query-languages/m/table-fromvalue.md | 5 ----- query-languages/m/table-functions.md | 5 ----- query-languages/m/table-fuzzygroup.md | 5 ----- query-languages/m/table-fuzzyjoin.md | 5 ----- query-languages/m/table-fuzzynestedjoin.md | 5 ----- query-languages/m/table-group.md | 5 ----- query-languages/m/table-hascolumns.md | 5 ----- query-languages/m/table-insertrows.md | 5 ----- query-languages/m/table-isdistinct.md | 5 ----- query-languages/m/table-isempty.md | 5 ----- query-languages/m/table-join.md | 5 ----- query-languages/m/table-keys.md | 5 ----- query-languages/m/table-last.md | 5 ----- query-languages/m/table-lastn.md | 5 ----- query-languages/m/table-matchesallrows.md | 5 ----- query-languages/m/table-matchesanyrows.md | 5 ----- query-languages/m/table-max.md | 5 ----- query-languages/m/table-maxn.md | 5 ----- query-languages/m/table-min.md | 5 ----- query-languages/m/table-minn.md | 5 ----- query-languages/m/table-nestedjoin.md | 5 ----- query-languages/m/table-partition.md | 5 ----- query-languages/m/table-partitionvalues.md | 5 ----- query-languages/m/table-pivot.md | 5 ----- query-languages/m/table-positionof.md | 5 ----- query-languages/m/table-positionofany.md | 5 ----- query-languages/m/table-prefixcolumns.md | 5 ----- query-languages/m/table-profile.md | 5 ----- query-languages/m/table-promoteheaders.md | 5 ----- query-languages/m/table-range.md | 5 ----- query-languages/m/table-removecolumns.md | 5 ----- query-languages/m/table-removefirstn.md | 4 ---- query-languages/m/table-removelastn.md | 5 ----- query-languages/m/table-removematchingrows.md | 5 ----- query-languages/m/table-removerows.md | 5 ----- query-languages/m/table-removerowswitherrors.md | 5 ----- query-languages/m/table-renamecolumns.md | 5 ----- query-languages/m/table-reordercolumns.md | 5 ----- query-languages/m/table-repeat.md | 5 ----- query-languages/m/table-replaceerrorvalues.md | 5 ----- query-languages/m/table-replacekeys.md | 5 ----- query-languages/m/table-replacematchingrows.md | 5 ----- query-languages/m/table-replacerelationshipidentity.md | 5 ----- query-languages/m/table-replacerows.md | 5 ----- query-languages/m/table-replacevalue.md | 5 ----- query-languages/m/table-reverserows.md | 5 ----- query-languages/m/table-rowcount.md | 5 ----- query-languages/m/table-schema.md | 5 ----- query-languages/m/table-selectcolumns.md | 5 ----- query-languages/m/table-selectrows.md | 5 ----- query-languages/m/table-selectrowswitherrors.md | 5 ----- query-languages/m/table-singlerow.md | 5 ----- query-languages/m/table-skip.md | 4 ---- query-languages/m/table-sort.md | 5 ----- query-languages/m/table-split.md | 5 ----- query-languages/m/table-splitat.md | 5 ----- query-languages/m/table-splitcolumn.md | 5 ----- query-languages/m/table-stopfolding.md | 5 ----- query-languages/m/table-tocolumns.md | 5 ----- query-languages/m/table-tolist.md | 5 ----- query-languages/m/table-torecords.md | 5 ----- query-languages/m/table-torows.md | 5 ----- query-languages/m/table-transformcolumnnames.md | 5 ----- query-languages/m/table-transformcolumns.md | 5 ----- query-languages/m/table-transformcolumntypes.md | 5 ----- query-languages/m/table-transformrows.md | 5 ----- query-languages/m/table-transpose.md | 5 ----- query-languages/m/table-unpivot.md | 5 ----- query-languages/m/table-unpivotothercolumns.md | 5 ----- query-languages/m/table-view.md | 5 ----- query-languages/m/table-viewerror.md | 5 ----- query-languages/m/table-viewfunction.md | 5 ----- query-languages/m/tables-getrelationships.md | 5 ----- query-languages/m/teradata-database.md | 5 ----- query-languages/m/text-afterdelimiter.md | 5 ----- query-languages/m/text-at.md | 5 ----- query-languages/m/text-beforedelimiter.md | 5 ----- query-languages/m/text-betweendelimiters.md | 5 ----- query-languages/m/text-clean.md | 5 ----- query-languages/m/text-combine.md | 5 ----- query-languages/m/text-contains.md | 5 ----- query-languages/m/text-end.md | 5 ----- query-languages/m/text-endswith.md | 5 ----- query-languages/m/text-format.md | 5 ----- query-languages/m/text-from.md | 5 ----- query-languages/m/text-frombinary.md | 5 ----- query-languages/m/text-functions.md | 5 ----- query-languages/m/text-infernumbertype.md | 5 ----- query-languages/m/text-insert.md | 5 ----- query-languages/m/text-length.md | 5 ----- query-languages/m/text-lower.md | 5 ----- query-languages/m/text-middle.md | 5 ----- query-languages/m/text-newguid.md | 5 ----- query-languages/m/text-padend.md | 5 ----- query-languages/m/text-padstart.md | 5 ----- query-languages/m/text-positionof.md | 5 ----- query-languages/m/text-positionofany.md | 5 ----- query-languages/m/text-proper.md | 5 ----- query-languages/m/text-range.md | 5 ----- query-languages/m/text-remove.md | 5 ----- query-languages/m/text-removerange.md | 5 ----- query-languages/m/text-repeat.md | 5 ----- query-languages/m/text-replace.md | 5 ----- query-languages/m/text-replacerange.md | 5 ----- query-languages/m/text-reverse.md | 5 ----- query-languages/m/text-select.md | 5 ----- query-languages/m/text-split.md | 5 ----- query-languages/m/text-splitany.md | 5 ----- query-languages/m/text-start.md | 5 ----- query-languages/m/text-startswith.md | 5 ----- query-languages/m/text-tobinary.md | 5 ----- query-languages/m/text-tolist.md | 5 ----- query-languages/m/text-trim.md | 5 ----- query-languages/m/text-trimend.md | 5 ----- query-languages/m/text-trimstart.md | 5 ----- query-languages/m/text-upper.md | 5 ----- query-languages/m/textencoding-type.md | 5 ----- query-languages/m/time-endofhour.md | 5 ----- query-languages/m/time-from.md | 5 ----- query-languages/m/time-fromtext.md | 5 ----- query-languages/m/time-functions.md | 5 ----- query-languages/m/time-hour.md | 5 ----- query-languages/m/time-minute.md | 5 ----- query-languages/m/time-second.md | 5 ----- query-languages/m/time-startofhour.md | 5 ----- query-languages/m/time-torecord.md | 5 ----- query-languages/m/time-totext.md | 5 ----- query-languages/m/timezone-current.md | 5 ----- query-languages/m/tracelevel-type.md | 5 ----- query-languages/m/type-addtablekey.md | 5 ----- query-languages/m/type-closedrecord.md | 5 ----- query-languages/m/type-conversion.md | 5 ----- query-languages/m/type-facets.md | 5 ----- query-languages/m/type-forfunction.md | 5 ----- query-languages/m/type-forrecord.md | 5 ----- query-languages/m/type-functionparameters.md | 5 ----- query-languages/m/type-functionrequiredparameters.md | 5 ----- query-languages/m/type-functionreturn.md | 5 ----- query-languages/m/type-functions.md | 5 ----- query-languages/m/type-is.md | 5 ----- query-languages/m/type-isnullable.md | 5 ----- query-languages/m/type-isopenrecord.md | 5 ----- query-languages/m/type-listitem.md | 5 ----- query-languages/m/type-nonnullable.md | 5 ----- query-languages/m/type-openrecord.md | 5 ----- query-languages/m/type-recordfields.md | 5 ----- query-languages/m/type-replacefacets.md | 5 ----- query-languages/m/type-replacetablekeys.md | 5 ----- query-languages/m/type-tablecolumn.md | 5 ----- query-languages/m/type-tablekeys.md | 5 ----- query-languages/m/type-tablerow.md | 5 ----- query-languages/m/type-tableschema.md | 5 ----- query-languages/m/type-union.md | 5 ----- query-languages/m/understanding-power-query-m-functions.md | 5 ----- query-languages/m/uri-buildquerystring.md | 5 ----- query-languages/m/uri-combine.md | 5 ----- query-languages/m/uri-escapedatastring.md | 5 ----- query-languages/m/uri-functions.md | 5 ----- query-languages/m/uri-parts.md | 5 ----- query-languages/m/value-add.md | 5 ----- query-languages/m/value-alternates.md | 5 ----- query-languages/m/value-as.md | 5 ----- query-languages/m/value-compare.md | 5 ----- query-languages/m/value-divide.md | 5 ----- query-languages/m/value-equals.md | 5 ----- query-languages/m/value-expression.md | 5 ----- query-languages/m/value-firewall.md | 5 ----- query-languages/m/value-fromtext.md | 5 ----- query-languages/m/value-functions.md | 5 ----- query-languages/m/value-is.md | 5 ----- query-languages/m/value-lineage.md | 5 ----- query-languages/m/value-metadata.md | 5 ----- query-languages/m/value-multiply.md | 5 ----- query-languages/m/value-nativequery.md | 5 ----- query-languages/m/value-nullableequals.md | 5 ----- query-languages/m/value-optimize.md | 5 ----- query-languages/m/value-removemetadata.md | 5 ----- query-languages/m/value-replacemetadata.md | 5 ----- query-languages/m/value-replacetype.md | 5 ----- query-languages/m/value-subtract.md | 5 ----- query-languages/m/value-traits.md | 5 ----- query-languages/m/value-type.md | 5 ----- query-languages/m/value-versionidentity.md | 5 ----- query-languages/m/value-versions.md | 5 ----- query-languages/m/variable-value.md | 5 ----- query-languages/m/web-browsercontents.md | 5 ----- query-languages/m/web-contents.md | 5 ----- query-languages/m/web-headers.md | 5 ----- query-languages/m/web-page.md | 5 ----- query-languages/m/webaction-request.md | 5 ----- query-languages/m/webmethod-type.md | 5 ----- query-languages/m/xml-document.md | 5 ----- query-languages/m/xml-tables.md | 4 ---- 737 files changed, 4 insertions(+), 3630 deletions(-) diff --git a/query-languages/m/access-database.md b/query-languages/m/access-database.md index 101827ca1..dae608d9c 100644 --- a/query-languages/m/access-database.md +++ b/query-languages/m/access-database.md @@ -2,10 +2,6 @@ description: "Learn more about: Access.Database" title: "Access.Database" ms.date: 12/12/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Access.Database diff --git a/query-languages/m/accesscontrolentry-conditiontoidentities.md b/query-languages/m/accesscontrolentry-conditiontoidentities.md index b56841623..4f1c60dbe 100644 --- a/query-languages/m/accesscontrolentry-conditiontoidentities.md +++ b/query-languages/m/accesscontrolentry-conditiontoidentities.md @@ -2,10 +2,6 @@ description: "Learn more about: AccessControlEntry.ConditionToIdentities" title: "AccessControlEntry.ConditionToIdentities" ms.date: 3/28/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AccessControlEntry.ConditionToIdentities diff --git a/query-languages/m/accesscontrolkind-type.md b/query-languages/m/accesscontrolkind-type.md index 89c87b58a..972f7e9f9 100644 --- a/query-languages/m/accesscontrolkind-type.md +++ b/query-languages/m/accesscontrolkind-type.md @@ -2,11 +2,6 @@ description: "Learn more about: AccessControlKind.Type" title: "AccessControlKind.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # AccessControlKind.Type diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index a136de6cd..ed209dc2f 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -2,10 +2,6 @@ description: "Learn more about: Accessing data functions" title: "Accessing data functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Accessing data functions @@ -28,7 +24,7 @@ These functions access data and return table values. Most of these functions ret |[AzureStorage.Tables](azurestorage-tables.md)|Returns a navigational table containing a row for each table found at the account URL from an Azure storage vault. Each row contains a link to the azure table.| |[Cdm.Contents](cdm-contents.md)|This function is unavailable because it requires .NET 4.5.| |[Csv.Document](csv-document.md)|Returns the contents of a CSV document as a table using the specified encoding.| -|[Cube.AddAndExpandDimensionColumn](cube-addandexpanddimensioncolumn.md)|Merges the specified dimension table, dimensionSelector, into the cube’s, cube, filter context and changes the dimensional granularity by expanding the specified set, attributeNames, of dimension attributes. | +|[Cube.AddAndExpandDimensionColumn](cube-addandexpanddimensioncolumn.md)|Merges the specified dimension table, dimensionSelector, into the cube's, cube, filter context and changes the dimensional granularity by expanding the specified set, attributeNames, of dimension attributes. | |[Cube.AddMeasureColumn](cube-addmeasurecolumn.md)|Adds a column with the name column to the cube that contains the results of the measure measureSelector applied in the row context of each row. | |[Cube.ApplyParameter](cube-applyparameter.md)|Returns a cube after applying parameter with arguments to cube.| |[Cube.AttributeMemberId](cube-attributememberid.md)|Returns the unique member identifier from a member property value.| diff --git a/query-languages/m/activedirectory-domains.md b/query-languages/m/activedirectory-domains.md index 12b7d7a9a..18bfa4bfd 100644 --- a/query-languages/m/activedirectory-domains.md +++ b/query-languages/m/activedirectory-domains.md @@ -2,10 +2,6 @@ description: "Learn more about: ActiveDirectory.Domains" title: "ActiveDirectory.Domains" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # ActiveDirectory.Domains diff --git a/query-languages/m/adobeanalytics-cubes.md b/query-languages/m/adobeanalytics-cubes.md index ec92cd27e..15111d5c6 100644 --- a/query-languages/m/adobeanalytics-cubes.md +++ b/query-languages/m/adobeanalytics-cubes.md @@ -2,10 +2,6 @@ description: "Learn more about: AdobeAnalytics.Cubes" title: "AdobeAnalytics.Cubes" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AdobeAnalytics.Cubes diff --git a/query-languages/m/adodotnet-datasource.md b/query-languages/m/adodotnet-datasource.md index abdc3aa04..7ef97ce76 100644 --- a/query-languages/m/adodotnet-datasource.md +++ b/query-languages/m/adodotnet-datasource.md @@ -2,10 +2,6 @@ description: "Learn more about: AdoDotNet.DataSource" title: "AdoDotNet.DataSource" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AdoDotNet.DataSource diff --git a/query-languages/m/adodotnet-query.md b/query-languages/m/adodotnet-query.md index 1c61101ef..071cc313e 100644 --- a/query-languages/m/adodotnet-query.md +++ b/query-languages/m/adodotnet-query.md @@ -2,10 +2,6 @@ description: "Learn more about: AdoDotNet.Query" title: "AdoDotNet.Query" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AdoDotNet.Query diff --git a/query-languages/m/analysisservices-database.md b/query-languages/m/analysisservices-database.md index 30bafc46c..cc13064bb 100644 --- a/query-languages/m/analysisservices-database.md +++ b/query-languages/m/analysisservices-database.md @@ -2,10 +2,6 @@ description: "Learn more about: AnalysisServices.Database" title: "AnalysisServices.Database" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AnalysisServices.Database diff --git a/query-languages/m/analysisservices-databases.md b/query-languages/m/analysisservices-databases.md index 78842397a..3196fc73a 100644 --- a/query-languages/m/analysisservices-databases.md +++ b/query-languages/m/analysisservices-databases.md @@ -2,10 +2,6 @@ description: "Learn more about: AnalysisServices.Databases" title: "AnalysisServices.Databases" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AnalysisServices.Databases diff --git a/query-languages/m/azurestorage-blobcontents.md b/query-languages/m/azurestorage-blobcontents.md index 184c5c25c..d34854880 100644 --- a/query-languages/m/azurestorage-blobcontents.md +++ b/query-languages/m/azurestorage-blobcontents.md @@ -2,10 +2,6 @@ description: "Learn more about: AzureStorage.BlobContents" title: "AzureStorage.BlobContents" ms.date: 10/10/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AzureStorage.BlobContents diff --git a/query-languages/m/azurestorage-blobs.md b/query-languages/m/azurestorage-blobs.md index f7b6e95bb..9a9c50755 100644 --- a/query-languages/m/azurestorage-blobs.md +++ b/query-languages/m/azurestorage-blobs.md @@ -2,10 +2,6 @@ description: "Learn more about: AzureStorage.Blobs" title: "AzureStorage.Blobs" ms.date: 10/10/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AzureStorage.Blobs diff --git a/query-languages/m/azurestorage-datalake.md b/query-languages/m/azurestorage-datalake.md index 9b153d54c..d5c6fc575 100644 --- a/query-languages/m/azurestorage-datalake.md +++ b/query-languages/m/azurestorage-datalake.md @@ -2,10 +2,6 @@ description: "Learn more about: AzureStorage.DataLake" title: "AzureStorage.DataLake" ms.date: 10/10/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AzureStorage.DataLake diff --git a/query-languages/m/azurestorage-datalakecontents.md b/query-languages/m/azurestorage-datalakecontents.md index cced2be59..12560159d 100644 --- a/query-languages/m/azurestorage-datalakecontents.md +++ b/query-languages/m/azurestorage-datalakecontents.md @@ -2,10 +2,6 @@ description: "Learn more about: AzureStorage.DataLakeContents" title: "AzureStorage.DataLakeContents" ms.date: 10/10/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AzureStorage.DataLakeContents diff --git a/query-languages/m/azurestorage-tables.md b/query-languages/m/azurestorage-tables.md index 6d0080511..137d98d2c 100644 --- a/query-languages/m/azurestorage-tables.md +++ b/query-languages/m/azurestorage-tables.md @@ -2,10 +2,6 @@ description: "Learn more about: AzureStorage.Tables" title: "AzureStorage.Tables" ms.date: 5/25/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # AzureStorage.Tables diff --git a/query-languages/m/binary-approximatelength.md b/query-languages/m/binary-approximatelength.md index d671c8e7f..784ae682f 100644 --- a/query-languages/m/binary-approximatelength.md +++ b/query-languages/m/binary-approximatelength.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.ApproximateLength" title: "Binary.ApproximateLength" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.ApproximateLength diff --git a/query-languages/m/binary-buffer.md b/query-languages/m/binary-buffer.md index c056fe599..2123a2b07 100644 --- a/query-languages/m/binary-buffer.md +++ b/query-languages/m/binary-buffer.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.Buffer" title: "Binary.Buffer" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.Buffer diff --git a/query-languages/m/binary-combine.md b/query-languages/m/binary-combine.md index 23219a841..b573ecab9 100644 --- a/query-languages/m/binary-combine.md +++ b/query-languages/m/binary-combine.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.Combine" title: "Binary.Combine" ms.date: 12/12/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.Combine diff --git a/query-languages/m/binary-compress.md b/query-languages/m/binary-compress.md index 8947cc31e..736c0d638 100644 --- a/query-languages/m/binary-compress.md +++ b/query-languages/m/binary-compress.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.Compress" title: "Binary.Compress" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.Compress diff --git a/query-languages/m/binary-decompress.md b/query-languages/m/binary-decompress.md index da59d2d17..23102bef5 100644 --- a/query-languages/m/binary-decompress.md +++ b/query-languages/m/binary-decompress.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.Decompress" title: "Binary.Decompress" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.Decompress diff --git a/query-languages/m/binary-from.md b/query-languages/m/binary-from.md index b4f30ff3a..904673c71 100644 --- a/query-languages/m/binary-from.md +++ b/query-languages/m/binary-from.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.From" title: "Binary.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.From diff --git a/query-languages/m/binary-fromlist.md b/query-languages/m/binary-fromlist.md index 50a0e17ce..d99687f44 100644 --- a/query-languages/m/binary-fromlist.md +++ b/query-languages/m/binary-fromlist.md @@ -2,11 +2,6 @@ description: "Learn more about: Binary.FromList" title: "Binary.FromList" ms.date: 12/12/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Binary.FromList diff --git a/query-languages/m/binary-fromtext.md b/query-languages/m/binary-fromtext.md index e31c9122f..69e6398b1 100644 --- a/query-languages/m/binary-fromtext.md +++ b/query-languages/m/binary-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: Binary.FromText" title: "Binary.FromText" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Binary.FromText diff --git a/query-languages/m/binary-functions.md b/query-languages/m/binary-functions.md index 5b53a0da4..c6d99d083 100644 --- a/query-languages/m/binary-functions.md +++ b/query-languages/m/binary-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Binary functions" title: "Binary functions" ms.date: 7/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Binary functions diff --git a/query-languages/m/binary-infercontenttype.md b/query-languages/m/binary-infercontenttype.md index 87e8dfc1f..08f5aac7a 100644 --- a/query-languages/m/binary-infercontenttype.md +++ b/query-languages/m/binary-infercontenttype.md @@ -2,11 +2,6 @@ description: "Learn more about: Binary.InferContentType" title: "Binary.InferContentType" ms.date: 4/17/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Binary.InferContentType diff --git a/query-languages/m/binary-length.md b/query-languages/m/binary-length.md index 0cfe8ad28..031f2fa0f 100644 --- a/query-languages/m/binary-length.md +++ b/query-languages/m/binary-length.md @@ -2,11 +2,6 @@ description: "Learn more about: Binary.Length" title: "Binary.Length" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Binary.Length diff --git a/query-languages/m/binary-range.md b/query-languages/m/binary-range.md index 179029d9e..f3c5d69e2 100644 --- a/query-languages/m/binary-range.md +++ b/query-languages/m/binary-range.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.Range" title: "Binary.Range" ms.date: 3/7/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.Range diff --git a/query-languages/m/binary-tolist.md b/query-languages/m/binary-tolist.md index 01d593945..0b52f3b1d 100644 --- a/query-languages/m/binary-tolist.md +++ b/query-languages/m/binary-tolist.md @@ -2,11 +2,6 @@ description: "Learn more about: Binary.ToList" title: "Binary.ToList" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Binary.ToList diff --git a/query-languages/m/binary-totext.md b/query-languages/m/binary-totext.md index 1e3bf27df..1c6105fbc 100644 --- a/query-languages/m/binary-totext.md +++ b/query-languages/m/binary-totext.md @@ -2,11 +2,6 @@ description: "Learn more about: Binary.ToText" title: "Binary.ToText" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Binary.ToText diff --git a/query-languages/m/binary-view.md b/query-languages/m/binary-view.md index 192479c55..ed43bf77d 100644 --- a/query-languages/m/binary-view.md +++ b/query-languages/m/binary-view.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.View" title: "Binary.View" ms.date: 7/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.View diff --git a/query-languages/m/binary-viewerror.md b/query-languages/m/binary-viewerror.md index 47d9ac2af..21d66487a 100644 --- a/query-languages/m/binary-viewerror.md +++ b/query-languages/m/binary-viewerror.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.ViewError" title: "Binary.ViewError" ms.date: 7/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.ViewError diff --git a/query-languages/m/binary-viewfunction.md b/query-languages/m/binary-viewfunction.md index 5a70273f8..d14c2f639 100644 --- a/query-languages/m/binary-viewfunction.md +++ b/query-languages/m/binary-viewfunction.md @@ -2,10 +2,6 @@ description: "Learn more about: Binary.ViewFunction" title: "Binary.ViewFunction" ms.date: 7/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Binary.ViewFunction diff --git a/query-languages/m/binaryencoding-type.md b/query-languages/m/binaryencoding-type.md index 54c00ec48..773af5067 100644 --- a/query-languages/m/binaryencoding-type.md +++ b/query-languages/m/binaryencoding-type.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryEncoding.Type" title: "BinaryEncoding.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryEncoding.Type diff --git a/query-languages/m/binaryformat-7bitencodedsignedinteger.md b/query-languages/m/binaryformat-7bitencodedsignedinteger.md index a5a5d280e..f5a5cd8eb 100644 --- a/query-languages/m/binaryformat-7bitencodedsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedsignedinteger.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.7BitEncodedSignedInteger" title: "BinaryFormat.7BitEncodedSignedInteger" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.7BitEncodedSignedInteger diff --git a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md index 34f1ecb0a..3396daadc 100644 --- a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.7BitEncodedUnsignedInteger" title: "BinaryFormat.7BitEncodedUnsignedInteger" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.7BitEncodedUnsignedInteger diff --git a/query-languages/m/binaryformat-binary.md b/query-languages/m/binaryformat-binary.md index 127306fe0..dc19219f3 100644 --- a/query-languages/m/binaryformat-binary.md +++ b/query-languages/m/binaryformat-binary.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Binary" title: "BinaryFormat.Binary" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Binary diff --git a/query-languages/m/binaryformat-byte.md b/query-languages/m/binaryformat-byte.md index 66c5ce4d2..f6121dacf 100644 --- a/query-languages/m/binaryformat-byte.md +++ b/query-languages/m/binaryformat-byte.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Byte" title: "BinaryFormat.Byte" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Byte diff --git a/query-languages/m/binaryformat-byteorder.md b/query-languages/m/binaryformat-byteorder.md index 4872e9d22..3dec3c7c1 100644 --- a/query-languages/m/binaryformat-byteorder.md +++ b/query-languages/m/binaryformat-byteorder.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.ByteOrder" title: "BinaryFormat.ByteOrder" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.ByteOrder diff --git a/query-languages/m/binaryformat-choice.md b/query-languages/m/binaryformat-choice.md index feee3e318..4bdb4050b 100644 --- a/query-languages/m/binaryformat-choice.md +++ b/query-languages/m/binaryformat-choice.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Choice" title: "BinaryFormat.Choice" ms.date: 3/7/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Choice diff --git a/query-languages/m/binaryformat-decimal.md b/query-languages/m/binaryformat-decimal.md index 85150169c..f8c8b6b2d 100644 --- a/query-languages/m/binaryformat-decimal.md +++ b/query-languages/m/binaryformat-decimal.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Decimal" title: "BinaryFormat.Decimal" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Decimal diff --git a/query-languages/m/binaryformat-double.md b/query-languages/m/binaryformat-double.md index 435629e88..48a8bec86 100644 --- a/query-languages/m/binaryformat-double.md +++ b/query-languages/m/binaryformat-double.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Double" title: "BinaryFormat.Double" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Double diff --git a/query-languages/m/binaryformat-group.md b/query-languages/m/binaryformat-group.md index 983a42952..4a53ca126 100644 --- a/query-languages/m/binaryformat-group.md +++ b/query-languages/m/binaryformat-group.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Group" title: "BinaryFormat.Group" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Group diff --git a/query-languages/m/binaryformat-length.md b/query-languages/m/binaryformat-length.md index eb5890bd6..a69825b46 100644 --- a/query-languages/m/binaryformat-length.md +++ b/query-languages/m/binaryformat-length.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Length" title: "BinaryFormat.Length" ms.date: 3/7/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Length diff --git a/query-languages/m/binaryformat-list.md b/query-languages/m/binaryformat-list.md index 904cfe665..324d75edf 100644 --- a/query-languages/m/binaryformat-list.md +++ b/query-languages/m/binaryformat-list.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.List" title: "BinaryFormat.List" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.List diff --git a/query-languages/m/binaryformat-null.md b/query-languages/m/binaryformat-null.md index d67be57bd..5e4f87732 100644 --- a/query-languages/m/binaryformat-null.md +++ b/query-languages/m/binaryformat-null.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Null" title: "BinaryFormat.Null" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Null diff --git a/query-languages/m/binaryformat-record.md b/query-languages/m/binaryformat-record.md index 31ec7d435..89e1e0b34 100644 --- a/query-languages/m/binaryformat-record.md +++ b/query-languages/m/binaryformat-record.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Record" title: "BinaryFormat.Record" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Record diff --git a/query-languages/m/binaryformat-signedinteger16.md b/query-languages/m/binaryformat-signedinteger16.md index 422532d4a..ca8ebf9e0 100644 --- a/query-languages/m/binaryformat-signedinteger16.md +++ b/query-languages/m/binaryformat-signedinteger16.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.SignedInteger16" title: "BinaryFormat.SignedInteger16" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.SignedInteger16 diff --git a/query-languages/m/binaryformat-signedinteger32.md b/query-languages/m/binaryformat-signedinteger32.md index d70efeee0..60447bd51 100644 --- a/query-languages/m/binaryformat-signedinteger32.md +++ b/query-languages/m/binaryformat-signedinteger32.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.SignedInteger32" title: "BinaryFormat.SignedInteger32" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.SignedInteger32 diff --git a/query-languages/m/binaryformat-signedinteger64.md b/query-languages/m/binaryformat-signedinteger64.md index 1d14ace40..46ed0a75a 100644 --- a/query-languages/m/binaryformat-signedinteger64.md +++ b/query-languages/m/binaryformat-signedinteger64.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.SignedInteger64" title: "BinaryFormat.SignedInteger64" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.SignedInteger64 diff --git a/query-languages/m/binaryformat-single.md b/query-languages/m/binaryformat-single.md index 3edd06cab..d11b310c3 100644 --- a/query-languages/m/binaryformat-single.md +++ b/query-languages/m/binaryformat-single.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Single" title: "BinaryFormat.Single" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Single diff --git a/query-languages/m/binaryformat-text.md b/query-languages/m/binaryformat-text.md index dd7d63f85..c8f8126a2 100644 --- a/query-languages/m/binaryformat-text.md +++ b/query-languages/m/binaryformat-text.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Text" title: "BinaryFormat.Text" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Text diff --git a/query-languages/m/binaryformat-transform.md b/query-languages/m/binaryformat-transform.md index 076e40f8c..654757e63 100644 --- a/query-languages/m/binaryformat-transform.md +++ b/query-languages/m/binaryformat-transform.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.Transform" title: "BinaryFormat.Transform" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.Transform diff --git a/query-languages/m/binaryformat-unsignedinteger16.md b/query-languages/m/binaryformat-unsignedinteger16.md index dbae8b651..54023563f 100644 --- a/query-languages/m/binaryformat-unsignedinteger16.md +++ b/query-languages/m/binaryformat-unsignedinteger16.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.UnsignedInteger16" title: "BinaryFormat.UnsignedInteger16" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.UnsignedInteger16 diff --git a/query-languages/m/binaryformat-unsignedinteger32.md b/query-languages/m/binaryformat-unsignedinteger32.md index 3af381e66..d667c926e 100644 --- a/query-languages/m/binaryformat-unsignedinteger32.md +++ b/query-languages/m/binaryformat-unsignedinteger32.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.UnsignedInteger32" title: "BinaryFormat.UnsignedInteger32" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.UnsignedInteger32 diff --git a/query-languages/m/binaryformat-unsignedinteger64.md b/query-languages/m/binaryformat-unsignedinteger64.md index 8dc08bbfc..487541aa4 100644 --- a/query-languages/m/binaryformat-unsignedinteger64.md +++ b/query-languages/m/binaryformat-unsignedinteger64.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryFormat.UnsignedInteger64" title: "BinaryFormat.UnsignedInteger64" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryFormat.UnsignedInteger64 diff --git a/query-languages/m/binaryoccurrence-type.md b/query-languages/m/binaryoccurrence-type.md index 74d0511de..8c393462e 100644 --- a/query-languages/m/binaryoccurrence-type.md +++ b/query-languages/m/binaryoccurrence-type.md @@ -2,11 +2,6 @@ description: "Learn more about: BinaryOccurrence.Type" title: "BinaryOccurrence.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BinaryOccurrence.Type diff --git a/query-languages/m/buffermode-type.md b/query-languages/m/buffermode-type.md index c6437642a..d3c08dafb 100644 --- a/query-languages/m/buffermode-type.md +++ b/query-languages/m/buffermode-type.md @@ -2,11 +2,6 @@ description: "Learn more about: BufferMode.Type" title: "BufferMode.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # BufferMode.Type diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index d5957fd31..978cbb949 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Byte.From" title: "Byte.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Byte.From diff --git a/query-languages/m/byteorder-type.md b/query-languages/m/byteorder-type.md index ca60069e2..dd951bebe 100644 --- a/query-languages/m/byteorder-type.md +++ b/query-languages/m/byteorder-type.md @@ -2,11 +2,6 @@ description: "Learn more about: ByteOrder.Type" title: "ByteOrder.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # ByteOrder.Type diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index eac5fe465..27c412f9b 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -2,11 +2,6 @@ description: "Learn more about: Cdm.Contents" title: "Cdm.Contents" ms.date: 03/18/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cdm.Contents diff --git a/query-languages/m/character-fromnumber.md b/query-languages/m/character-fromnumber.md index 39725b206..d602ee5b5 100644 --- a/query-languages/m/character-fromnumber.md +++ b/query-languages/m/character-fromnumber.md @@ -2,11 +2,6 @@ description: "Learn more about: Character.FromNumber" title: "Character.FromNumber" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Character.FromNumber diff --git a/query-languages/m/character-tonumber.md b/query-languages/m/character-tonumber.md index 90d8b3967..daf3b9437 100644 --- a/query-languages/m/character-tonumber.md +++ b/query-languages/m/character-tonumber.md @@ -2,11 +2,6 @@ description: "Learn more about: Character.ToNumber" title: "Character.ToNumber" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Character.ToNumber diff --git a/query-languages/m/combiner-combinetextbydelimiter.md b/query-languages/m/combiner-combinetextbydelimiter.md index 2208e5aea..98f0c55cc 100644 --- a/query-languages/m/combiner-combinetextbydelimiter.md +++ b/query-languages/m/combiner-combinetextbydelimiter.md @@ -2,11 +2,6 @@ description: "Learn more about: Combiner.CombineTextByDelimiter" title: "Combiner.CombineTextByDelimiter" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Combiner.CombineTextByDelimiter diff --git a/query-languages/m/combiner-combinetextbyeachdelimiter.md b/query-languages/m/combiner-combinetextbyeachdelimiter.md index d63104914..bf560137e 100644 --- a/query-languages/m/combiner-combinetextbyeachdelimiter.md +++ b/query-languages/m/combiner-combinetextbyeachdelimiter.md @@ -2,11 +2,6 @@ description: "Learn more about: Combiner.CombineTextByEachDelimiter" title: "Combiner.CombineTextByEachDelimiter" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Combiner.CombineTextByEachDelimiter diff --git a/query-languages/m/combiner-combinetextbylengths.md b/query-languages/m/combiner-combinetextbylengths.md index c637c255f..c6d4d6a8c 100644 --- a/query-languages/m/combiner-combinetextbylengths.md +++ b/query-languages/m/combiner-combinetextbylengths.md @@ -2,11 +2,6 @@ description: "Learn more about: Combiner.CombineTextByLengths" title: "Combiner.CombineTextByLengths" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Combiner.CombineTextByLengths diff --git a/query-languages/m/combiner-combinetextbypositions.md b/query-languages/m/combiner-combinetextbypositions.md index 705524dcd..cb3ebe21e 100644 --- a/query-languages/m/combiner-combinetextbypositions.md +++ b/query-languages/m/combiner-combinetextbypositions.md @@ -2,11 +2,6 @@ description: "Learn more about: Combiner.CombineTextByPositions" title: "Combiner.CombineTextByPositions" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Combiner.CombineTextByPositions diff --git a/query-languages/m/combiner-combinetextbyranges.md b/query-languages/m/combiner-combinetextbyranges.md index 104c3a460..595f8f6ab 100644 --- a/query-languages/m/combiner-combinetextbyranges.md +++ b/query-languages/m/combiner-combinetextbyranges.md @@ -2,11 +2,6 @@ description: "Learn more about: Combiner.CombineTextByRanges" title: "Combiner.CombineTextByRanges" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Combiner.CombineTextByRanges diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index e28d00092..949e4d222 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Combiner functions" title: "Combiner functions" ms.date: 5/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Combiner functions diff --git a/query-languages/m/comments.md b/query-languages/m/comments.md index 22b15d112..a95a352ff 100644 --- a/query-languages/m/comments.md +++ b/query-languages/m/comments.md @@ -2,11 +2,6 @@ description: "Learn more about: Comments" title: "Comments" ms.date: 12/12/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Comments You can add comments to your code with single-line comments `//` or multi-line comments that begin with `/*` and end with `*/`. diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index 232e8eeaa..2b22331f5 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -2,11 +2,6 @@ description: "Learn more about: Comparer.Equals" title: "Comparer.Equals" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Comparer.Equals diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index e818c07b3..020ec4a1e 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -2,11 +2,6 @@ description: "Learn more about: Comparer.FromCulture" title: "Comparer.FromCulture" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Comparer.FromCulture diff --git a/query-languages/m/comparer-functions.md b/query-languages/m/comparer-functions.md index 1bb89e7a6..287cd6ad7 100644 --- a/query-languages/m/comparer-functions.md +++ b/query-languages/m/comparer-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Comparer functions" title: "Comparer functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Comparer functions diff --git a/query-languages/m/comparer-ordinal.md b/query-languages/m/comparer-ordinal.md index ee23ef57c..43c240b77 100644 --- a/query-languages/m/comparer-ordinal.md +++ b/query-languages/m/comparer-ordinal.md @@ -2,11 +2,6 @@ description: "Learn more about: Comparer.Ordinal" title: "Comparer.Ordinal" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Comparer.Ordinal diff --git a/query-languages/m/comparer-ordinalignorecase.md b/query-languages/m/comparer-ordinalignorecase.md index 84230febb..1a26c44fc 100644 --- a/query-languages/m/comparer-ordinalignorecase.md +++ b/query-languages/m/comparer-ordinalignorecase.md @@ -2,11 +2,6 @@ description: "Learn more about: Comparer.OrdinalIgnoreCase" title: "Comparer.OrdinalIgnoreCase" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Comparer.OrdinalIgnoreCase diff --git a/query-languages/m/compression-type.md b/query-languages/m/compression-type.md index 4328ca0e8..81ea25073 100644 --- a/query-languages/m/compression-type.md +++ b/query-languages/m/compression-type.md @@ -2,11 +2,6 @@ description: "Learn more about: Compression.Type" title: "Compression.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Compression.Type diff --git a/query-languages/m/constants.md b/query-languages/m/constants.md index 081f13815..b269344f1 100644 --- a/query-languages/m/constants.md +++ b/query-languages/m/constants.md @@ -2,11 +2,6 @@ description: "Learn more about: Constants" title: "Constants" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Constants diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index fc1349097..b3ff25c34 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -2,11 +2,6 @@ description: "Learn more about: Csv.Document" title: "Csv.Document" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Csv.Document diff --git a/query-languages/m/csvstyle-type.md b/query-languages/m/csvstyle-type.md index c4f5e5a8c..c62695f4a 100644 --- a/query-languages/m/csvstyle-type.md +++ b/query-languages/m/csvstyle-type.md @@ -2,11 +2,6 @@ description: "Learn more about: CsvStyle.Type" title: "CsvStyle.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # CsvStyle.Type diff --git a/query-languages/m/cube-addandexpanddimensioncolumn.md b/query-languages/m/cube-addandexpanddimensioncolumn.md index 3ecefbd36..b05555a32 100644 --- a/query-languages/m/cube-addandexpanddimensioncolumn.md +++ b/query-languages/m/cube-addandexpanddimensioncolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.AddAndExpandDimensionColumn" title: "Cube.AddAndExpandDimensionColumn" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.AddAndExpandDimensionColumn @@ -16,4 +11,4 @@ ms.author: dougklo ## About -Merges the specified dimension table, `dimensionSelector`, into the cube’s, `cube`, filter context and changes the dimensional granularity by expanding the specified set, `attributeNames`, of dimension attributes. The dimension attributes are added to the tabular view with columns named `newColumnNames`, or `attributeNames` if not specified. +Merges the specified dimension table, `dimensionSelector`, into the cube's, `cube`, filter context and changes the dimensional granularity by expanding the specified set, `attributeNames`, of dimension attributes. The dimension attributes are added to the tabular view with columns named `newColumnNames`, or `attributeNames` if not specified. diff --git a/query-languages/m/cube-addmeasurecolumn.md b/query-languages/m/cube-addmeasurecolumn.md index e1321cc96..d9a0efd7b 100644 --- a/query-languages/m/cube-addmeasurecolumn.md +++ b/query-languages/m/cube-addmeasurecolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.AddMeasureColumn" title: "Cube.AddMeasureColumn" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.AddMeasureColumn diff --git a/query-languages/m/cube-applyparameter.md b/query-languages/m/cube-applyparameter.md index 7aacc2ae0..49a7a2f57 100644 --- a/query-languages/m/cube-applyparameter.md +++ b/query-languages/m/cube-applyparameter.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.ApplyParameter" title: "Cube.ApplyParameter" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.ApplyParameter diff --git a/query-languages/m/cube-attributememberid.md b/query-languages/m/cube-attributememberid.md index 782896d01..69c64b13f 100644 --- a/query-languages/m/cube-attributememberid.md +++ b/query-languages/m/cube-attributememberid.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.AttributeMemberId" title: "Cube.AttributeMemberId" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.AttributeMemberId diff --git a/query-languages/m/cube-attributememberproperty.md b/query-languages/m/cube-attributememberproperty.md index fba0a53b0..af0a612d8 100644 --- a/query-languages/m/cube-attributememberproperty.md +++ b/query-languages/m/cube-attributememberproperty.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.AttributeMemberProperty" title: "Cube.AttributeMemberProperty" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.AttributeMemberProperty diff --git a/query-languages/m/cube-collapseandremovecolumns.md b/query-languages/m/cube-collapseandremovecolumns.md index 722b61506..0f5aa0dea 100644 --- a/query-languages/m/cube-collapseandremovecolumns.md +++ b/query-languages/m/cube-collapseandremovecolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.CollapseAndRemoveColumns" title: "Cube.CollapseAndRemoveColumns" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.CollapseAndRemoveColumns diff --git a/query-languages/m/cube-dimensions.md b/query-languages/m/cube-dimensions.md index 0d96e71a7..68e7347a6 100644 --- a/query-languages/m/cube-dimensions.md +++ b/query-languages/m/cube-dimensions.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.Dimensions" title: "Cube.Dimensions" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.Dimensions diff --git a/query-languages/m/cube-displayfolders.md b/query-languages/m/cube-displayfolders.md index 996a94f9c..0f425109b 100644 --- a/query-languages/m/cube-displayfolders.md +++ b/query-languages/m/cube-displayfolders.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.DisplayFolders" title: "Cube.DisplayFolders" ms.date: 11/17/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.DisplayFolders diff --git a/query-languages/m/cube-measureproperties.md b/query-languages/m/cube-measureproperties.md index 310fc4306..25caa8bd9 100644 --- a/query-languages/m/cube-measureproperties.md +++ b/query-languages/m/cube-measureproperties.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.MeasureProperties" title: "Cube.MeasureProperties" ms.date: 8/17/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.MeasureProperties diff --git a/query-languages/m/cube-measureproperty.md b/query-languages/m/cube-measureproperty.md index c842e7374..d59baf056 100644 --- a/query-languages/m/cube-measureproperty.md +++ b/query-languages/m/cube-measureproperty.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.MeasureProperty" title: "Cube.MeasureProperty" ms.date: 8/17/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.MeasureProperty diff --git a/query-languages/m/cube-measures.md b/query-languages/m/cube-measures.md index a29b4e062..a30cac8f1 100644 --- a/query-languages/m/cube-measures.md +++ b/query-languages/m/cube-measures.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.Measures" title: "Cube.Measures" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.Measures diff --git a/query-languages/m/cube-parameters.md b/query-languages/m/cube-parameters.md index 28ee45f55..19d34bb3d 100644 --- a/query-languages/m/cube-parameters.md +++ b/query-languages/m/cube-parameters.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.Parameters" title: "Cube.Parameters" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.Parameters diff --git a/query-languages/m/cube-properties.md b/query-languages/m/cube-properties.md index e0fe806ce..42d782659 100644 --- a/query-languages/m/cube-properties.md +++ b/query-languages/m/cube-properties.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.Properties" title: "Cube.Properties" ms.date: 4/17/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.Properties diff --git a/query-languages/m/cube-propertykey.md b/query-languages/m/cube-propertykey.md index 8d1e21693..7423a0506 100644 --- a/query-languages/m/cube-propertykey.md +++ b/query-languages/m/cube-propertykey.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.PropertyKey" title: "Cube.PropertyKey" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.PropertyKey diff --git a/query-languages/m/cube-replacedimensions.md b/query-languages/m/cube-replacedimensions.md index e87a8cd3e..37522ab73 100644 --- a/query-languages/m/cube-replacedimensions.md +++ b/query-languages/m/cube-replacedimensions.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.ReplaceDimensions" title: "Cube.ReplaceDimensions" ms.date: 1/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.ReplaceDimensions diff --git a/query-languages/m/cube-transform.md b/query-languages/m/cube-transform.md index e14a8bed4..a601781c0 100644 --- a/query-languages/m/cube-transform.md +++ b/query-languages/m/cube-transform.md @@ -2,11 +2,6 @@ description: "Learn more about: Cube.Transform" title: "Cube.Transform" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Cube.Transform diff --git a/query-languages/m/culture-current.md b/query-languages/m/culture-current.md index 3dd9f44da..23a0503e5 100644 --- a/query-languages/m/culture-current.md +++ b/query-languages/m/culture-current.md @@ -2,11 +2,6 @@ description: "Learn more about: Culture.Current" title: "Culture.Current" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Culture.Current diff --git a/query-languages/m/currency-from.md b/query-languages/m/currency-from.md index 8f2fea094..e2cd1a94e 100644 --- a/query-languages/m/currency-from.md +++ b/query-languages/m/currency-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Currency.From" title: "Currency.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Currency.From diff --git a/query-languages/m/date-adddays.md b/query-languages/m/date-adddays.md index 5753a4880..355936a8b 100644 --- a/query-languages/m/date-adddays.md +++ b/query-languages/m/date-adddays.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.AddDays" title: "Date.AddDays" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.AddDays diff --git a/query-languages/m/date-addmonths.md b/query-languages/m/date-addmonths.md index aefbe570f..69967b992 100644 --- a/query-languages/m/date-addmonths.md +++ b/query-languages/m/date-addmonths.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.AddMonths" title: "Date.AddMonths" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.AddMonths diff --git a/query-languages/m/date-addquarters.md b/query-languages/m/date-addquarters.md index 3b7818a61..19124126f 100644 --- a/query-languages/m/date-addquarters.md +++ b/query-languages/m/date-addquarters.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.AddQuarters" title: "Date.AddQuarters" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.AddQuarters diff --git a/query-languages/m/date-addweeks.md b/query-languages/m/date-addweeks.md index dc5a7dc0e..8fa9ff255 100644 --- a/query-languages/m/date-addweeks.md +++ b/query-languages/m/date-addweeks.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.AddWeeks" title: "Date.AddWeeks" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.AddWeeks diff --git a/query-languages/m/date-addyears.md b/query-languages/m/date-addyears.md index 1d419c079..73bd364dc 100644 --- a/query-languages/m/date-addyears.md +++ b/query-languages/m/date-addyears.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.AddYears" title: "Date.AddYears" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.AddYears diff --git a/query-languages/m/date-day.md b/query-languages/m/date-day.md index 5f8b72043..7eb9c36b1 100644 --- a/query-languages/m/date-day.md +++ b/query-languages/m/date-day.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.Day" title: "Date.Day" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.Day diff --git a/query-languages/m/date-dayofweek.md b/query-languages/m/date-dayofweek.md index 9070bd345..172d889e9 100644 --- a/query-languages/m/date-dayofweek.md +++ b/query-languages/m/date-dayofweek.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.DayOfWeek" title: "Date.DayOfWeek" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.DayOfWeek diff --git a/query-languages/m/date-dayofweekname.md b/query-languages/m/date-dayofweekname.md index ef8028191..c67da3691 100644 --- a/query-languages/m/date-dayofweekname.md +++ b/query-languages/m/date-dayofweekname.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.DayOfWeekName" title: "Date.DayOfWeekName" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.DayOfWeekName diff --git a/query-languages/m/date-dayofyear.md b/query-languages/m/date-dayofyear.md index 86ef6d3c9..3bad5570c 100644 --- a/query-languages/m/date-dayofyear.md +++ b/query-languages/m/date-dayofyear.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.DayOfYear" title: "Date.DayOfYear" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.DayOfYear diff --git a/query-languages/m/date-daysinmonth.md b/query-languages/m/date-daysinmonth.md index 81ff104c0..bdbc72329 100644 --- a/query-languages/m/date-daysinmonth.md +++ b/query-languages/m/date-daysinmonth.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.DaysInMonth" title: "Date.DaysInMonth" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.DaysInMonth diff --git a/query-languages/m/date-endofday.md b/query-languages/m/date-endofday.md index 329c7c04d..4b23f6c46 100644 --- a/query-languages/m/date-endofday.md +++ b/query-languages/m/date-endofday.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.EndOfDay" title: "Date.EndOfDay" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.EndOfDay diff --git a/query-languages/m/date-endofmonth.md b/query-languages/m/date-endofmonth.md index 36909e4a2..c6b24e76d 100644 --- a/query-languages/m/date-endofmonth.md +++ b/query-languages/m/date-endofmonth.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.EndOfMonth" title: "Date.EndOfMonth" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.EndOfMonth diff --git a/query-languages/m/date-endofquarter.md b/query-languages/m/date-endofquarter.md index 8e27a973a..c3c79dce8 100644 --- a/query-languages/m/date-endofquarter.md +++ b/query-languages/m/date-endofquarter.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.EndOfQuarter" title: "Date.EndOfQuarter" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.EndOfQuarter diff --git a/query-languages/m/date-endofweek.md b/query-languages/m/date-endofweek.md index ca10c92d1..0a3d539f6 100644 --- a/query-languages/m/date-endofweek.md +++ b/query-languages/m/date-endofweek.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.EndOfWeek" title: "Date.EndOfWeek" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.EndOfWeek diff --git a/query-languages/m/date-endofyear.md b/query-languages/m/date-endofyear.md index 464029452..d22cbeeb1 100644 --- a/query-languages/m/date-endofyear.md +++ b/query-languages/m/date-endofyear.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.EndOfYear" title: "Date.EndOfYear" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.EndOfYear diff --git a/query-languages/m/date-from.md b/query-languages/m/date-from.md index 632e7a5b7..4ae97c87d 100644 --- a/query-languages/m/date-from.md +++ b/query-languages/m/date-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.From" title: "Date.From" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.From diff --git a/query-languages/m/date-fromtext.md b/query-languages/m/date-fromtext.md index 813470a8c..bc4efeabe 100644 --- a/query-languages/m/date-fromtext.md +++ b/query-languages/m/date-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.FromText" title: "Date.FromText" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.FromText diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index 91f9c4252..bd33c4b7a 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Date functions" title: "Date functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date functions diff --git a/query-languages/m/date-isincurrentday.md b/query-languages/m/date-isincurrentday.md index f7c6e9f60..3fb3d7db2 100644 --- a/query-languages/m/date-isincurrentday.md +++ b/query-languages/m/date-isincurrentday.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInCurrentDay" title: "Date.IsInCurrentDay" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInCurrentDay diff --git a/query-languages/m/date-isincurrentmonth.md b/query-languages/m/date-isincurrentmonth.md index e1e9d09e6..6b262cc99 100644 --- a/query-languages/m/date-isincurrentmonth.md +++ b/query-languages/m/date-isincurrentmonth.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInCurrentMonth" title: "Date.IsInCurrentMonth" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInCurrentMonth diff --git a/query-languages/m/date-isincurrentquarter.md b/query-languages/m/date-isincurrentquarter.md index 3d2ba309b..b2676bfea 100644 --- a/query-languages/m/date-isincurrentquarter.md +++ b/query-languages/m/date-isincurrentquarter.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInCurrentQuarter" title: "Date.IsInCurrentQuarter" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInCurrentQuarter diff --git a/query-languages/m/date-isincurrentweek.md b/query-languages/m/date-isincurrentweek.md index 4574af732..8fea9a311 100644 --- a/query-languages/m/date-isincurrentweek.md +++ b/query-languages/m/date-isincurrentweek.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInCurrentWeek" title: "Date.IsInCurrentWeek" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInCurrentWeek diff --git a/query-languages/m/date-isincurrentyear.md b/query-languages/m/date-isincurrentyear.md index 6842a37d3..bab17cb12 100644 --- a/query-languages/m/date-isincurrentyear.md +++ b/query-languages/m/date-isincurrentyear.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInCurrentYear" title: "Date.IsInCurrentYear" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInCurrentYear diff --git a/query-languages/m/date-isinnextday.md b/query-languages/m/date-isinnextday.md index 500557d09..560ac92b8 100644 --- a/query-languages/m/date-isinnextday.md +++ b/query-languages/m/date-isinnextday.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextDay" title: "Date.IsInNextDay" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextDay diff --git a/query-languages/m/date-isinnextmonth.md b/query-languages/m/date-isinnextmonth.md index fffe38b59..e2c58b0d2 100644 --- a/query-languages/m/date-isinnextmonth.md +++ b/query-languages/m/date-isinnextmonth.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextMonth" title: "Date.IsInNextMonth" ms.date: 3/22/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextMonth diff --git a/query-languages/m/date-isinnextndays.md b/query-languages/m/date-isinnextndays.md index b54e138cd..a01edc599 100644 --- a/query-languages/m/date-isinnextndays.md +++ b/query-languages/m/date-isinnextndays.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextNDays" title: "Date.IsInNextNDays" ms.date: 3/22/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextNDays diff --git a/query-languages/m/date-isinnextnmonths.md b/query-languages/m/date-isinnextnmonths.md index 0ee022fdd..253446f2c 100644 --- a/query-languages/m/date-isinnextnmonths.md +++ b/query-languages/m/date-isinnextnmonths.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextNMonths" title: "Date.IsInNextNMonths" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextNMonths diff --git a/query-languages/m/date-isinnextnquarters.md b/query-languages/m/date-isinnextnquarters.md index b2191eeb5..b3422a469 100644 --- a/query-languages/m/date-isinnextnquarters.md +++ b/query-languages/m/date-isinnextnquarters.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextNQuarters" title: "Date.IsInNextNQuarters" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextNQuarters diff --git a/query-languages/m/date-isinnextnweeks.md b/query-languages/m/date-isinnextnweeks.md index 954e4b357..9bdebb507 100644 --- a/query-languages/m/date-isinnextnweeks.md +++ b/query-languages/m/date-isinnextnweeks.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextNWeeks" title: "Date.IsInNextNWeeks" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextNWeeks diff --git a/query-languages/m/date-isinnextnyears.md b/query-languages/m/date-isinnextnyears.md index 30d0ef0aa..1f8cee24e 100644 --- a/query-languages/m/date-isinnextnyears.md +++ b/query-languages/m/date-isinnextnyears.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextNYears" title: "Date.IsInNextNYears" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextNYears diff --git a/query-languages/m/date-isinnextquarter.md b/query-languages/m/date-isinnextquarter.md index 410d31520..fea025ed4 100644 --- a/query-languages/m/date-isinnextquarter.md +++ b/query-languages/m/date-isinnextquarter.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextQuarter" title: "Date.IsInNextQuarter" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextQuarter diff --git a/query-languages/m/date-isinnextweek.md b/query-languages/m/date-isinnextweek.md index 149a7e57b..f6fc83362 100644 --- a/query-languages/m/date-isinnextweek.md +++ b/query-languages/m/date-isinnextweek.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextWeek" title: "Date.IsInNextWeek" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextWeek diff --git a/query-languages/m/date-isinnextyear.md b/query-languages/m/date-isinnextyear.md index 598f9dd75..8dc52a8f2 100644 --- a/query-languages/m/date-isinnextyear.md +++ b/query-languages/m/date-isinnextyear.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInNextYear" title: "Date.IsInNextYear" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInNextYear diff --git a/query-languages/m/date-isinpreviousday.md b/query-languages/m/date-isinpreviousday.md index 5a3f2e39d..b63b0e75e 100644 --- a/query-languages/m/date-isinpreviousday.md +++ b/query-languages/m/date-isinpreviousday.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousDay" title: "Date.IsInPreviousDay" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousDay diff --git a/query-languages/m/date-isinpreviousmonth.md b/query-languages/m/date-isinpreviousmonth.md index 80f81fd5d..a916d7845 100644 --- a/query-languages/m/date-isinpreviousmonth.md +++ b/query-languages/m/date-isinpreviousmonth.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousMonth" title: "Date.IsInPreviousMonth" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousMonth diff --git a/query-languages/m/date-isinpreviousndays.md b/query-languages/m/date-isinpreviousndays.md index 5950d4c5c..9a0281af1 100644 --- a/query-languages/m/date-isinpreviousndays.md +++ b/query-languages/m/date-isinpreviousndays.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousNDays" title: "Date.IsInPreviousNDays" ms.date: 3/22/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousNDays diff --git a/query-languages/m/date-isinpreviousnmonths.md b/query-languages/m/date-isinpreviousnmonths.md index 92579517d..1a1eece8e 100644 --- a/query-languages/m/date-isinpreviousnmonths.md +++ b/query-languages/m/date-isinpreviousnmonths.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousNMonths" title: "Date.IsInPreviousNMonths" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousNMonths diff --git a/query-languages/m/date-isinpreviousnquarters.md b/query-languages/m/date-isinpreviousnquarters.md index 6a3a25162..1533786be 100644 --- a/query-languages/m/date-isinpreviousnquarters.md +++ b/query-languages/m/date-isinpreviousnquarters.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousNQuarters" title: "Date.IsInPreviousNQuarters" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousNQuarters diff --git a/query-languages/m/date-isinpreviousnweeks.md b/query-languages/m/date-isinpreviousnweeks.md index 9ff41d290..e71d812a6 100644 --- a/query-languages/m/date-isinpreviousnweeks.md +++ b/query-languages/m/date-isinpreviousnweeks.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousNWeeks" title: "Date.IsInPreviousNWeeks" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousNWeeks diff --git a/query-languages/m/date-isinpreviousnyears.md b/query-languages/m/date-isinpreviousnyears.md index 04ea22e92..59c6ad4fd 100644 --- a/query-languages/m/date-isinpreviousnyears.md +++ b/query-languages/m/date-isinpreviousnyears.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousNYears" title: "Date.IsInPreviousNYears" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousNYears diff --git a/query-languages/m/date-isinpreviousquarter.md b/query-languages/m/date-isinpreviousquarter.md index 88dedac84..e1239dea7 100644 --- a/query-languages/m/date-isinpreviousquarter.md +++ b/query-languages/m/date-isinpreviousquarter.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousQuarter" title: "Date.IsInPreviousQuarter" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousQuarter diff --git a/query-languages/m/date-isinpreviousweek.md b/query-languages/m/date-isinpreviousweek.md index 077d309ac..340cdf770 100644 --- a/query-languages/m/date-isinpreviousweek.md +++ b/query-languages/m/date-isinpreviousweek.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousWeek" title: "Date.IsInPreviousWeek" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousWeek diff --git a/query-languages/m/date-isinpreviousyear.md b/query-languages/m/date-isinpreviousyear.md index 7ba91ad80..b492fae31 100644 --- a/query-languages/m/date-isinpreviousyear.md +++ b/query-languages/m/date-isinpreviousyear.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInPreviousYear" title: "Date.IsInPreviousYear" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInPreviousYear diff --git a/query-languages/m/date-isinyeartodate.md b/query-languages/m/date-isinyeartodate.md index f8bf07d15..a79b6a957 100644 --- a/query-languages/m/date-isinyeartodate.md +++ b/query-languages/m/date-isinyeartodate.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsInYearToDate" title: "Date.IsInYearToDate" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsInYearToDate diff --git a/query-languages/m/date-isleapyear.md b/query-languages/m/date-isleapyear.md index 85b3b3803..31db6ffd2 100644 --- a/query-languages/m/date-isleapyear.md +++ b/query-languages/m/date-isleapyear.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.IsLeapYear" title: "Date.IsLeapYear" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.IsLeapYear diff --git a/query-languages/m/date-month.md b/query-languages/m/date-month.md index 10c1d19bc..40d4afb14 100644 --- a/query-languages/m/date-month.md +++ b/query-languages/m/date-month.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.Month" title: "Date.Month" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.Month diff --git a/query-languages/m/date-monthname.md b/query-languages/m/date-monthname.md index 4f39b5ebd..25224ea2a 100644 --- a/query-languages/m/date-monthname.md +++ b/query-languages/m/date-monthname.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.MonthName" title: "Date.MonthName" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.MonthName diff --git a/query-languages/m/date-quarterofyear.md b/query-languages/m/date-quarterofyear.md index 3983aff03..8026edfa5 100644 --- a/query-languages/m/date-quarterofyear.md +++ b/query-languages/m/date-quarterofyear.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.QuarterOfYear" title: "Date.QuarterOfYear" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.QuarterOfYear diff --git a/query-languages/m/date-startofday.md b/query-languages/m/date-startofday.md index 47e323c75..6c83e00e9 100644 --- a/query-languages/m/date-startofday.md +++ b/query-languages/m/date-startofday.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.StartOfDay" title: "Date.StartOfDay" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.StartOfDay diff --git a/query-languages/m/date-startofmonth.md b/query-languages/m/date-startofmonth.md index 77d5712a3..5540ca9c6 100644 --- a/query-languages/m/date-startofmonth.md +++ b/query-languages/m/date-startofmonth.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.StartOfMonth" title: "Date.StartOfMonth" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.StartOfMonth diff --git a/query-languages/m/date-startofquarter.md b/query-languages/m/date-startofquarter.md index fa20a04d5..1b8c4f46a 100644 --- a/query-languages/m/date-startofquarter.md +++ b/query-languages/m/date-startofquarter.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.StartOfQuarter" title: "Date.StartOfQuarter" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.StartOfQuarter diff --git a/query-languages/m/date-startofweek.md b/query-languages/m/date-startofweek.md index ee44be8f2..2584eea72 100644 --- a/query-languages/m/date-startofweek.md +++ b/query-languages/m/date-startofweek.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.StartOfWeek" title: "Date.StartOfWeek" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.StartOfWeek diff --git a/query-languages/m/date-startofyear.md b/query-languages/m/date-startofyear.md index 02530753d..ece1df42f 100644 --- a/query-languages/m/date-startofyear.md +++ b/query-languages/m/date-startofyear.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.StartOfYear" title: "Date.StartOfYear" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.StartOfYear diff --git a/query-languages/m/date-torecord.md b/query-languages/m/date-torecord.md index b7d6e67c3..bb43a7006 100644 --- a/query-languages/m/date-torecord.md +++ b/query-languages/m/date-torecord.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.ToRecord" title: "Date.ToRecord" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.ToRecord diff --git a/query-languages/m/date-totext.md b/query-languages/m/date-totext.md index 0d8b5f1fe..f7f869f94 100644 --- a/query-languages/m/date-totext.md +++ b/query-languages/m/date-totext.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.ToText" title: "Date.ToText" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.ToText diff --git a/query-languages/m/date-weekofmonth.md b/query-languages/m/date-weekofmonth.md index cab2a1523..ec4bd809c 100644 --- a/query-languages/m/date-weekofmonth.md +++ b/query-languages/m/date-weekofmonth.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.WeekOfMonth" title: "Date.WeekOfMonth" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.WeekOfMonth diff --git a/query-languages/m/date-weekofyear.md b/query-languages/m/date-weekofyear.md index 31d4c0e18..73b195e8d 100644 --- a/query-languages/m/date-weekofyear.md +++ b/query-languages/m/date-weekofyear.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.WeekOfYear" title: "Date.WeekOfYear" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.WeekOfYear diff --git a/query-languages/m/date-year.md b/query-languages/m/date-year.md index abe877c49..a912d1845 100644 --- a/query-languages/m/date-year.md +++ b/query-languages/m/date-year.md @@ -2,11 +2,6 @@ description: "Learn more about: Date.Year" title: "Date.Year" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Date.Year diff --git a/query-languages/m/datetime-addzone.md b/query-languages/m/datetime-addzone.md index b130bbe0a..2a12f9ec0 100644 --- a/query-languages/m/datetime-addzone.md +++ b/query-languages/m/datetime-addzone.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.AddZone" title: "DateTime.AddZone" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.AddZone diff --git a/query-languages/m/datetime-date.md b/query-languages/m/datetime-date.md index 7170133d6..f70d04d6e 100644 --- a/query-languages/m/datetime-date.md +++ b/query-languages/m/datetime-date.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.Date" title: "DateTime.Date" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.Date diff --git a/query-languages/m/datetime-fixedlocalnow.md b/query-languages/m/datetime-fixedlocalnow.md index 1aa3f890b..6777a07d4 100644 --- a/query-languages/m/datetime-fixedlocalnow.md +++ b/query-languages/m/datetime-fixedlocalnow.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.FixedLocalNow" title: "DateTime.FixedLocalNow" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.FixedLocalNow diff --git a/query-languages/m/datetime-from.md b/query-languages/m/datetime-from.md index 9f0b8872d..005415cc2 100644 --- a/query-languages/m/datetime-from.md +++ b/query-languages/m/datetime-from.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.From" title: "DateTime.From" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.From diff --git a/query-languages/m/datetime-fromfiletime.md b/query-languages/m/datetime-fromfiletime.md index 469255ae8..eeefc244b 100644 --- a/query-languages/m/datetime-fromfiletime.md +++ b/query-languages/m/datetime-fromfiletime.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.FromFileTime" title: "DateTime.FromFileTime" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.FromFileTime diff --git a/query-languages/m/datetime-fromtext.md b/query-languages/m/datetime-fromtext.md index 4ee8fed2b..7eeeef87b 100644 --- a/query-languages/m/datetime-fromtext.md +++ b/query-languages/m/datetime-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.FromText" title: "DateTime.FromText" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.FromText diff --git a/query-languages/m/datetime-functions.md b/query-languages/m/datetime-functions.md index bc1a4adc5..7faccb524 100644 --- a/query-languages/m/datetime-functions.md +++ b/query-languages/m/datetime-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime functions" title: "DateTime functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime functions diff --git a/query-languages/m/datetime-isincurrenthour.md b/query-languages/m/datetime-isincurrenthour.md index 41774192a..fd482b560 100644 --- a/query-languages/m/datetime-isincurrenthour.md +++ b/query-languages/m/datetime-isincurrenthour.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInCurrentHour" title: "DateTime.IsInCurrentHour" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInCurrentHour diff --git a/query-languages/m/datetime-isincurrentminute.md b/query-languages/m/datetime-isincurrentminute.md index 52d7fba9f..b39a2af5c 100644 --- a/query-languages/m/datetime-isincurrentminute.md +++ b/query-languages/m/datetime-isincurrentminute.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInCurrentMinute" title: "DateTime.IsInCurrentMinute" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInCurrentMinute diff --git a/query-languages/m/datetime-isincurrentsecond.md b/query-languages/m/datetime-isincurrentsecond.md index 7be8e2c2b..8d9c75952 100644 --- a/query-languages/m/datetime-isincurrentsecond.md +++ b/query-languages/m/datetime-isincurrentsecond.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInCurrentSecond" title: "DateTime.IsInCurrentSecond" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInCurrentSecond diff --git a/query-languages/m/datetime-isinnexthour.md b/query-languages/m/datetime-isinnexthour.md index 91d8e588c..726ad852d 100644 --- a/query-languages/m/datetime-isinnexthour.md +++ b/query-languages/m/datetime-isinnexthour.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInNextHour" title: "DateTime.IsInNextHour" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInNextHour diff --git a/query-languages/m/datetime-isinnextminute.md b/query-languages/m/datetime-isinnextminute.md index 864b96072..7c4019e55 100644 --- a/query-languages/m/datetime-isinnextminute.md +++ b/query-languages/m/datetime-isinnextminute.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInNextMinute" title: "DateTime.IsInNextMinute" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInNextMinute diff --git a/query-languages/m/datetime-isinnextnhours.md b/query-languages/m/datetime-isinnextnhours.md index 00ab4e109..5ff898cc0 100644 --- a/query-languages/m/datetime-isinnextnhours.md +++ b/query-languages/m/datetime-isinnextnhours.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInNextNHours" title: "DateTime.IsInNextNHours" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInNextNHours diff --git a/query-languages/m/datetime-isinnextnminutes.md b/query-languages/m/datetime-isinnextnminutes.md index 2e12b233f..8d3d94f56 100644 --- a/query-languages/m/datetime-isinnextnminutes.md +++ b/query-languages/m/datetime-isinnextnminutes.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInNextNMinutes" title: "DateTime.IsInNextNMinutes" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInNextNMinutes diff --git a/query-languages/m/datetime-isinnextnseconds.md b/query-languages/m/datetime-isinnextnseconds.md index d8145013f..18bb8abfe 100644 --- a/query-languages/m/datetime-isinnextnseconds.md +++ b/query-languages/m/datetime-isinnextnseconds.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInNextNSeconds" title: "DateTime.IsInNextNSeconds" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInNextNSeconds diff --git a/query-languages/m/datetime-isinnextsecond.md b/query-languages/m/datetime-isinnextsecond.md index 7ced7e0f7..1c6a11b4c 100644 --- a/query-languages/m/datetime-isinnextsecond.md +++ b/query-languages/m/datetime-isinnextsecond.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInNextSecond" title: "DateTime.IsInNextSecond" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInNextSecond diff --git a/query-languages/m/datetime-isinprevioushour.md b/query-languages/m/datetime-isinprevioushour.md index 28a58c85b..5dcb96b46 100644 --- a/query-languages/m/datetime-isinprevioushour.md +++ b/query-languages/m/datetime-isinprevioushour.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInPreviousHour" title: "DateTime.IsInPreviousHour" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInPreviousHour diff --git a/query-languages/m/datetime-isinpreviousminute.md b/query-languages/m/datetime-isinpreviousminute.md index 54bfffc27..de6031f89 100644 --- a/query-languages/m/datetime-isinpreviousminute.md +++ b/query-languages/m/datetime-isinpreviousminute.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInPreviousMinute" title: "DateTime.IsInPreviousMinute" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInPreviousMinute diff --git a/query-languages/m/datetime-isinpreviousnhours.md b/query-languages/m/datetime-isinpreviousnhours.md index d743c2bec..ec321c27b 100644 --- a/query-languages/m/datetime-isinpreviousnhours.md +++ b/query-languages/m/datetime-isinpreviousnhours.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInPreviousNHours" title: "DateTime.IsInPreviousNHours" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInPreviousNHours diff --git a/query-languages/m/datetime-isinpreviousnminutes.md b/query-languages/m/datetime-isinpreviousnminutes.md index f6195bc9f..e8aa2031d 100644 --- a/query-languages/m/datetime-isinpreviousnminutes.md +++ b/query-languages/m/datetime-isinpreviousnminutes.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInPreviousNMinutes" title: "DateTime.IsInPreviousNMinutes" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInPreviousNMinutes diff --git a/query-languages/m/datetime-isinpreviousnseconds.md b/query-languages/m/datetime-isinpreviousnseconds.md index d7820e7c0..b8560d73c 100644 --- a/query-languages/m/datetime-isinpreviousnseconds.md +++ b/query-languages/m/datetime-isinpreviousnseconds.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInPreviousNSeconds" title: "DateTime.IsInPreviousNSeconds" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInPreviousNSeconds diff --git a/query-languages/m/datetime-isinprevioussecond.md b/query-languages/m/datetime-isinprevioussecond.md index 233f7cee3..dec1c1543 100644 --- a/query-languages/m/datetime-isinprevioussecond.md +++ b/query-languages/m/datetime-isinprevioussecond.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.IsInPreviousSecond" title: "DateTime.IsInPreviousSecond" ms.date: 3/11/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.IsInPreviousSecond diff --git a/query-languages/m/datetime-localnow.md b/query-languages/m/datetime-localnow.md index ff85879c2..f242f85e3 100644 --- a/query-languages/m/datetime-localnow.md +++ b/query-languages/m/datetime-localnow.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.LocalNow" title: "DateTime.LocalNow" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.LocalNow diff --git a/query-languages/m/datetime-time.md b/query-languages/m/datetime-time.md index 98daeff24..141df4781 100644 --- a/query-languages/m/datetime-time.md +++ b/query-languages/m/datetime-time.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.Time" title: "DateTime.Time" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.Time diff --git a/query-languages/m/datetime-torecord.md b/query-languages/m/datetime-torecord.md index 37f5c7c1f..c1209db0e 100644 --- a/query-languages/m/datetime-torecord.md +++ b/query-languages/m/datetime-torecord.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.ToRecord" title: "DateTime.ToRecord" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.ToRecord diff --git a/query-languages/m/datetime-totext.md b/query-languages/m/datetime-totext.md index cb21ec932..0223ca4cc 100644 --- a/query-languages/m/datetime-totext.md +++ b/query-languages/m/datetime-totext.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTime.ToText" title: "DateTime.ToText" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTime.ToText diff --git a/query-languages/m/datetimezone-fixedlocalnow.md b/query-languages/m/datetimezone-fixedlocalnow.md index 56509355d..e62af8971 100644 --- a/query-languages/m/datetimezone-fixedlocalnow.md +++ b/query-languages/m/datetimezone-fixedlocalnow.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.FixedLocalNow" title: "DateTimeZone.FixedLocalNow" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.FixedLocalNow diff --git a/query-languages/m/datetimezone-fixedutcnow.md b/query-languages/m/datetimezone-fixedutcnow.md index fd382e1b4..7521e2b2d 100644 --- a/query-languages/m/datetimezone-fixedutcnow.md +++ b/query-languages/m/datetimezone-fixedutcnow.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.FixedUtcNow" title: "DateTimeZone.FixedUtcNow" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.FixedUtcNow diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index 84f5b8610..e616d82f2 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.From" title: "DateTimeZone.From" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.From diff --git a/query-languages/m/datetimezone-fromfiletime.md b/query-languages/m/datetimezone-fromfiletime.md index deb21f6c0..995ff8bbb 100644 --- a/query-languages/m/datetimezone-fromfiletime.md +++ b/query-languages/m/datetimezone-fromfiletime.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.FromFileTime" title: "DateTimeZone.FromFileTime" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.FromFileTime diff --git a/query-languages/m/datetimezone-fromtext.md b/query-languages/m/datetimezone-fromtext.md index 78d9227a5..80a9f61c8 100644 --- a/query-languages/m/datetimezone-fromtext.md +++ b/query-languages/m/datetimezone-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.FromText" title: "DateTimeZone.FromText" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.FromText diff --git a/query-languages/m/datetimezone-functions.md b/query-languages/m/datetimezone-functions.md index 0e4e8a374..3b5c68b48 100644 --- a/query-languages/m/datetimezone-functions.md +++ b/query-languages/m/datetimezone-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone functions" title: "DateTimeZone functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone functions diff --git a/query-languages/m/datetimezone-localnow.md b/query-languages/m/datetimezone-localnow.md index 30c42a4e5..e28f3f634 100644 --- a/query-languages/m/datetimezone-localnow.md +++ b/query-languages/m/datetimezone-localnow.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.LocalNow" title: "DateTimeZone.LocalNow" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.LocalNow diff --git a/query-languages/m/datetimezone-removezone.md b/query-languages/m/datetimezone-removezone.md index b671c0c7b..54bc474aa 100644 --- a/query-languages/m/datetimezone-removezone.md +++ b/query-languages/m/datetimezone-removezone.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.RemoveZone" title: "DateTimeZone.RemoveZone" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.RemoveZone diff --git a/query-languages/m/datetimezone-switchzone.md b/query-languages/m/datetimezone-switchzone.md index 4f0408fe8..292a0198e 100644 --- a/query-languages/m/datetimezone-switchzone.md +++ b/query-languages/m/datetimezone-switchzone.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.SwitchZone" title: "DateTimeZone.SwitchZone" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.SwitchZone diff --git a/query-languages/m/datetimezone-tolocal.md b/query-languages/m/datetimezone-tolocal.md index 2cd5266c6..1b4c62ce1 100644 --- a/query-languages/m/datetimezone-tolocal.md +++ b/query-languages/m/datetimezone-tolocal.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.ToLocal" title: "DateTimeZone.ToLocal" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.ToLocal diff --git a/query-languages/m/datetimezone-torecord.md b/query-languages/m/datetimezone-torecord.md index 747d7aa37..c85c950de 100644 --- a/query-languages/m/datetimezone-torecord.md +++ b/query-languages/m/datetimezone-torecord.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.ToRecord" title: "DateTimeZone.ToRecord" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.ToRecord diff --git a/query-languages/m/datetimezone-totext.md b/query-languages/m/datetimezone-totext.md index d1f15aa60..ad383c65c 100644 --- a/query-languages/m/datetimezone-totext.md +++ b/query-languages/m/datetimezone-totext.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.ToText" title: "DateTimeZone.ToText" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.ToText diff --git a/query-languages/m/datetimezone-toutc.md b/query-languages/m/datetimezone-toutc.md index 53880cad5..66f635717 100644 --- a/query-languages/m/datetimezone-toutc.md +++ b/query-languages/m/datetimezone-toutc.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.ToUtc" title: "DateTimeZone.ToUtc" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.ToUtc diff --git a/query-languages/m/datetimezone-utcnow.md b/query-languages/m/datetimezone-utcnow.md index 90e2d9fa9..e4c5870e4 100644 --- a/query-languages/m/datetimezone-utcnow.md +++ b/query-languages/m/datetimezone-utcnow.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.UtcNow" title: "DateTimeZone.UtcNow" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.UtcNow diff --git a/query-languages/m/datetimezone-zonehours.md b/query-languages/m/datetimezone-zonehours.md index 01e9cf8f4..201848295 100644 --- a/query-languages/m/datetimezone-zonehours.md +++ b/query-languages/m/datetimezone-zonehours.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.ZoneHours" title: "DateTimeZone.ZoneHours" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.ZoneHours diff --git a/query-languages/m/datetimezone-zoneminutes.md b/query-languages/m/datetimezone-zoneminutes.md index a88ce168a..512dc67f7 100644 --- a/query-languages/m/datetimezone-zoneminutes.md +++ b/query-languages/m/datetimezone-zoneminutes.md @@ -2,11 +2,6 @@ description: "Learn more about: DateTimeZone.ZoneMinutes" title: "DateTimeZone.ZoneMinutes" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DateTimeZone.ZoneMinutes diff --git a/query-languages/m/day-type.md b/query-languages/m/day-type.md index b581c0b8e..c96738491 100644 --- a/query-languages/m/day-type.md +++ b/query-languages/m/day-type.md @@ -2,11 +2,6 @@ description: "Learn more about: Day.Type" title: "Day.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Day.Type diff --git a/query-languages/m/db2-database.md b/query-languages/m/db2-database.md index 3d6f66d0b..da28140de 100644 --- a/query-languages/m/db2-database.md +++ b/query-languages/m/db2-database.md @@ -2,11 +2,6 @@ description: "Learn more about: DB2.Database" title: "DB2.Database" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DB2.Database diff --git a/query-languages/m/decimal-from.md b/query-languages/m/decimal-from.md index 616e870e4..5d5b6d513 100644 --- a/query-languages/m/decimal-from.md +++ b/query-languages/m/decimal-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Decimal.From" title: "Decimal.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Decimal.From diff --git a/query-languages/m/diagnostics-activityid.md b/query-languages/m/diagnostics-activityid.md index 87e5c32bf..d95c3e876 100644 --- a/query-languages/m/diagnostics-activityid.md +++ b/query-languages/m/diagnostics-activityid.md @@ -2,11 +2,6 @@ description: "Learn more about: Diagnostics.ActivityId" title: "Diagnostics.ActivityId" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Diagnostics.ActivityId diff --git a/query-languages/m/diagnostics-trace.md b/query-languages/m/diagnostics-trace.md index 219f2fe2e..65d494716 100644 --- a/query-languages/m/diagnostics-trace.md +++ b/query-languages/m/diagnostics-trace.md @@ -2,11 +2,6 @@ description: "Learn more about: Diagnostics.Trace" title: "Diagnostics.Trace" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Diagnostics.Trace ## Syntax diff --git a/query-languages/m/directquerycapabilities-from.md b/query-languages/m/directquerycapabilities-from.md index 130eb8f99..dd1cc066a 100644 --- a/query-languages/m/directquerycapabilities-from.md +++ b/query-languages/m/directquerycapabilities-from.md @@ -2,11 +2,6 @@ description: "Learn more about: DirectQueryCapabilities.From" title: "DirectQueryCapabilities.From" ms.date: 10/18/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # DirectQueryCapabilities.From diff --git a/query-languages/m/double-from.md b/query-languages/m/double-from.md index 6dffff166..4e3cfe04e 100644 --- a/query-languages/m/double-from.md +++ b/query-languages/m/double-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Double.From" title: "Double.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Double.From diff --git a/query-languages/m/duration-days.md b/query-languages/m/duration-days.md index e2d3787dd..813907994 100644 --- a/query-languages/m/duration-days.md +++ b/query-languages/m/duration-days.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.Days" title: "Duration.Days" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.Days diff --git a/query-languages/m/duration-from.md b/query-languages/m/duration-from.md index 416b1f6ee..9f00af82e 100644 --- a/query-languages/m/duration-from.md +++ b/query-languages/m/duration-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.From" title: "Duration.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.From diff --git a/query-languages/m/duration-fromtext.md b/query-languages/m/duration-fromtext.md index 3e909f913..c0572398a 100644 --- a/query-languages/m/duration-fromtext.md +++ b/query-languages/m/duration-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.FromText" title: "Duration.FromText" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.FromText diff --git a/query-languages/m/duration-functions.md b/query-languages/m/duration-functions.md index 3164db20e..ceeb2213f 100644 --- a/query-languages/m/duration-functions.md +++ b/query-languages/m/duration-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration functions" title: "Duration functions" ms.date: 7/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration functions diff --git a/query-languages/m/duration-hours.md b/query-languages/m/duration-hours.md index 4ad89515d..f490858f4 100644 --- a/query-languages/m/duration-hours.md +++ b/query-languages/m/duration-hours.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.Hours" title: "Duration.Hours" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.Hours diff --git a/query-languages/m/duration-minutes.md b/query-languages/m/duration-minutes.md index 4a35c4f16..ec397a5bb 100644 --- a/query-languages/m/duration-minutes.md +++ b/query-languages/m/duration-minutes.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.Minutes" title: "Duration.Minutes" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.Minutes diff --git a/query-languages/m/duration-seconds.md b/query-languages/m/duration-seconds.md index abebd62ba..c7db29e52 100644 --- a/query-languages/m/duration-seconds.md +++ b/query-languages/m/duration-seconds.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.Seconds" title: "Duration.Seconds" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.Seconds diff --git a/query-languages/m/duration-torecord.md b/query-languages/m/duration-torecord.md index 88598844b..ff1d25f21 100644 --- a/query-languages/m/duration-torecord.md +++ b/query-languages/m/duration-torecord.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.ToRecord" title: "Duration.ToRecord" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.ToRecord diff --git a/query-languages/m/duration-totaldays.md b/query-languages/m/duration-totaldays.md index 199afc89b..3ede07eb3 100644 --- a/query-languages/m/duration-totaldays.md +++ b/query-languages/m/duration-totaldays.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.TotalDays" title: "Duration.TotalDays" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.TotalDays diff --git a/query-languages/m/duration-totalhours.md b/query-languages/m/duration-totalhours.md index 09ab8cfda..9b829de21 100644 --- a/query-languages/m/duration-totalhours.md +++ b/query-languages/m/duration-totalhours.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.TotalHours" title: "Duration.TotalHours" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.TotalHours diff --git a/query-languages/m/duration-totalminutes.md b/query-languages/m/duration-totalminutes.md index 238b90eff..55248bd7e 100644 --- a/query-languages/m/duration-totalminutes.md +++ b/query-languages/m/duration-totalminutes.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.TotalMinutes" title: "Duration.TotalMinutes" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.TotalMinutes diff --git a/query-languages/m/duration-totalseconds.md b/query-languages/m/duration-totalseconds.md index f02f2bf2a..ef530f67e 100644 --- a/query-languages/m/duration-totalseconds.md +++ b/query-languages/m/duration-totalseconds.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.TotalSeconds" title: "Duration.TotalSeconds" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.TotalSeconds diff --git a/query-languages/m/duration-totext.md b/query-languages/m/duration-totext.md index 41cc4a0c6..c56b8b258 100644 --- a/query-languages/m/duration-totext.md +++ b/query-languages/m/duration-totext.md @@ -2,11 +2,6 @@ description: "Learn more about: Duration.ToText" title: "Duration.ToText" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Duration.ToText diff --git a/query-languages/m/dynamic-values.md b/query-languages/m/dynamic-values.md index 8dbc3f49e..afbc24c1c 100644 --- a/query-languages/m/dynamic-values.md +++ b/query-languages/m/dynamic-values.md @@ -2,11 +2,6 @@ description: "Learn more about: Dynamic values" title: "Dynamic values" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Dynamic values diff --git a/query-languages/m/embedded-value.md b/query-languages/m/embedded-value.md index 64111ab78..302191936 100644 --- a/query-languages/m/embedded-value.md +++ b/query-languages/m/embedded-value.md @@ -2,11 +2,6 @@ description: "Learn more about: Embedded.Value" title: "Embedded.Value" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Embedded.Value diff --git a/query-languages/m/enumerations.md b/query-languages/m/enumerations.md index 833908ad0..cc27b38e6 100644 --- a/query-languages/m/enumerations.md +++ b/query-languages/m/enumerations.md @@ -2,10 +2,6 @@ description: "Learn more about: Enumerations" title: "Accessing data enumerations" ms.date: 6/27/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Enumerations diff --git a/query-languages/m/error-handling.md b/query-languages/m/error-handling.md index 87220fb19..3df90d5d0 100644 --- a/query-languages/m/error-handling.md +++ b/query-languages/m/error-handling.md @@ -2,11 +2,6 @@ description: "Learn more about: Error handling functions" title: "Error handling functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Error handling functions diff --git a/query-languages/m/error-record.md b/query-languages/m/error-record.md index a848188df..c85245bb4 100644 --- a/query-languages/m/error-record.md +++ b/query-languages/m/error-record.md @@ -2,11 +2,6 @@ description: "Learn more about: Error.Record" title: "Error.Record" ms.date: 1/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Error.Record diff --git a/query-languages/m/errors.md b/query-languages/m/errors.md index 794f11982..2c07781bb 100644 --- a/query-languages/m/errors.md +++ b/query-languages/m/errors.md @@ -2,11 +2,6 @@ description: "Learn more about: Errors" title: "Errors" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Errors An **error** in Power Query M formula language is an indication that the process of evaluating an expression could not produce a value. Errors are raised by operators and functions encountering **error** conditions or by using the **error** expression. Errors are handled using the **try** expression. When an error is raised, a value is specified that can be used to indicate why the error occurred. diff --git a/query-languages/m/essbase-cubes.md b/query-languages/m/essbase-cubes.md index bd1dbb69b..16146069d 100644 --- a/query-languages/m/essbase-cubes.md +++ b/query-languages/m/essbase-cubes.md @@ -2,11 +2,6 @@ description: "Learn more about: Essbase.Cubes" title: "Essbase.Cubes" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Essbase.Cubes diff --git a/query-languages/m/evaluation-model.md b/query-languages/m/evaluation-model.md index fad0ee694..8ff9ef35b 100644 --- a/query-languages/m/evaluation-model.md +++ b/query-languages/m/evaluation-model.md @@ -2,11 +2,6 @@ description: "Learn more about: Evaluation model" title: "Evaluation model" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Evaluation model The evaluation model of the Power Query M formula language is modeled after the evaluation model commonly found in spreadsheets, where the order of calculations can be determined based on dependencies between the formulas in the cells. diff --git a/query-languages/m/excel-currentworkbook.md b/query-languages/m/excel-currentworkbook.md index a344d1514..119b6402d 100644 --- a/query-languages/m/excel-currentworkbook.md +++ b/query-languages/m/excel-currentworkbook.md @@ -2,11 +2,6 @@ description: "Learn more about: Excel.CurrentWorkbook" title: "Excel.CurrentWorkbook" ms.date: 7/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Excel.CurrentWorkbook diff --git a/query-languages/m/excel-shapetable.md b/query-languages/m/excel-shapetable.md index c498df47f..0ff5aac0d 100644 --- a/query-languages/m/excel-shapetable.md +++ b/query-languages/m/excel-shapetable.md @@ -2,11 +2,6 @@ description: "Learn more about: Excel.ShapeTable" title: "Excel.ShapeTable" ms.date: 1/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Excel.ShapeTable diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md index b75dc9cb0..9b1d60651 100644 --- a/query-languages/m/excel-workbook.md +++ b/query-languages/m/excel-workbook.md @@ -2,11 +2,6 @@ description: "Learn more about: Excel.Workbook" title: "Excel.Workbook" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Excel.Workbook diff --git a/query-languages/m/exchange-contents.md b/query-languages/m/exchange-contents.md index 9ae4048e6..ea149a099 100644 --- a/query-languages/m/exchange-contents.md +++ b/query-languages/m/exchange-contents.md @@ -2,11 +2,6 @@ description: "Learn more about: Exchange.Contents" title: "Exchange.Contents" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Exchange.Contents diff --git a/query-languages/m/expression-constant.md b/query-languages/m/expression-constant.md index 16950c116..bd774b1bf 100644 --- a/query-languages/m/expression-constant.md +++ b/query-languages/m/expression-constant.md @@ -2,11 +2,6 @@ description: "Learn more about: Expression.Constant" title: "Expression.Constant" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Expression.Constant diff --git a/query-languages/m/expression-evaluate.md b/query-languages/m/expression-evaluate.md index f58891324..232beb1f9 100644 --- a/query-languages/m/expression-evaluate.md +++ b/query-languages/m/expression-evaluate.md @@ -2,11 +2,6 @@ description: "Learn more about: Expression.Evaluate" title: "Expression.Evaluate" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Expression.Evaluate diff --git a/query-languages/m/expression-functions.md b/query-languages/m/expression-functions.md index 54e7bd95c..0ac56e249 100644 --- a/query-languages/m/expression-functions.md +++ b/query-languages/m/expression-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Expression functions" title: "Expression functions" ms.date: 5/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Expression functions diff --git a/query-languages/m/expression-identifier.md b/query-languages/m/expression-identifier.md index a50d53966..77eadd0de 100644 --- a/query-languages/m/expression-identifier.md +++ b/query-languages/m/expression-identifier.md @@ -2,11 +2,6 @@ description: "Learn more about: Expression.Identifier" title: "Expression.Identifier" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Expression.Identifier diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index 32e759355..4743eac56 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -2,11 +2,6 @@ description: "Learn more about: Expressions, values, and let expression" title: "Expressions, values, and let expression" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Expressions, values, and let expression A Power Query M formula language query is composed of formula **expression** steps that create a mashup query. A formula expression can be evaluated (computed), yielding a value. The **let** expression encapsulates a set of values to be computed, assigned names, and then used in a subsequent expression that follows the **in** statement. For example, a let expression could contain a **Source** variable that equals the value of **Text.Proper()** and yields a text value in proper case. diff --git a/query-languages/m/extravalues-type.md b/query-languages/m/extravalues-type.md index e0b836c5f..2a9fdf240 100644 --- a/query-languages/m/extravalues-type.md +++ b/query-languages/m/extravalues-type.md @@ -2,11 +2,6 @@ description: "Learn more about: ExtraValues.Type" title: "ExtraValues.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # ExtraValues.Type diff --git a/query-languages/m/file-contents.md b/query-languages/m/file-contents.md index c65255e84..d24d05ff9 100644 --- a/query-languages/m/file-contents.md +++ b/query-languages/m/file-contents.md @@ -2,10 +2,6 @@ description: "Learn more about: File.Contents" title: "File.Contents" ms.date: 9/13/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # File.Contents diff --git a/query-languages/m/folder-contents.md b/query-languages/m/folder-contents.md index a20ee605d..648ea3f5a 100644 --- a/query-languages/m/folder-contents.md +++ b/query-languages/m/folder-contents.md @@ -2,10 +2,6 @@ description: "Learn more about: Folder.Contents" title: "Folder.Contents" ms.date: 9/13/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Folder.Contents diff --git a/query-languages/m/folder-files.md b/query-languages/m/folder-files.md index c28adff5b..e4791c118 100644 --- a/query-languages/m/folder-files.md +++ b/query-languages/m/folder-files.md @@ -2,10 +2,6 @@ description: "Learn more about: Folder.Files" title: "Folder.Files" ms.date: 9/13/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Folder.Files diff --git a/query-languages/m/function-from.md b/query-languages/m/function-from.md index de3e76f12..be5585e0d 100644 --- a/query-languages/m/function-from.md +++ b/query-languages/m/function-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Function.From" title: "Function.From" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Function.From diff --git a/query-languages/m/function-invoke.md b/query-languages/m/function-invoke.md index c9df7d76f..cd7a83aeb 100644 --- a/query-languages/m/function-invoke.md +++ b/query-languages/m/function-invoke.md @@ -2,11 +2,6 @@ description: "Learn more about: Function.Invoke" title: "Function.Invoke" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Function.Invoke diff --git a/query-languages/m/function-invokeafter.md b/query-languages/m/function-invokeafter.md index e4f5c8775..68593f8fb 100644 --- a/query-languages/m/function-invokeafter.md +++ b/query-languages/m/function-invokeafter.md @@ -2,11 +2,6 @@ description: "Learn more about: Function.InvokeAfter" title: "Function.InvokeAfter" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Function.InvokeAfter diff --git a/query-languages/m/function-isdatasource.md b/query-languages/m/function-isdatasource.md index a294dca93..f8d81cf98 100644 --- a/query-languages/m/function-isdatasource.md +++ b/query-languages/m/function-isdatasource.md @@ -2,11 +2,6 @@ description: "Learn more about: Function.IsDataSource" title: "Function.IsDataSource" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Function.IsDataSource diff --git a/query-languages/m/function-scalarvector.md b/query-languages/m/function-scalarvector.md index 2f759ca9f..aa10d9baf 100644 --- a/query-languages/m/function-scalarvector.md +++ b/query-languages/m/function-scalarvector.md @@ -2,11 +2,6 @@ description: "Learn more about: Function.ScalarVector" title: "Function.ScalarVector" ms.date: 09/13/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Function.ScalarVector diff --git a/query-languages/m/function-values.md b/query-languages/m/function-values.md index 4bd18cc65..41e4598b3 100644 --- a/query-languages/m/function-values.md +++ b/query-languages/m/function-values.md @@ -2,11 +2,6 @@ description: "Learn more about: Function values" title: "Function values" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Function values diff --git a/query-languages/m/geography-fromwellknowntext.md b/query-languages/m/geography-fromwellknowntext.md index 527ab3952..a992c26e5 100644 --- a/query-languages/m/geography-fromwellknowntext.md +++ b/query-languages/m/geography-fromwellknowntext.md @@ -2,11 +2,6 @@ description: "Learn more about: Geography.FromWellKnownText" title: "Geography.FromWellKnownText" ms.date: 7/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Geography.FromWellKnownText ## Syntax diff --git a/query-languages/m/geography-towellknowntext.md b/query-languages/m/geography-towellknowntext.md index a7a564bae..1f819aeb1 100644 --- a/query-languages/m/geography-towellknowntext.md +++ b/query-languages/m/geography-towellknowntext.md @@ -2,11 +2,6 @@ description: "Learn more about: Geography.ToWellKnownText" title: "Geography.ToWellKnownText" ms.date: 7/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Geography.ToWellKnownText ## Syntax diff --git a/query-languages/m/geographypoint-from.md b/query-languages/m/geographypoint-from.md index dff8fc96d..7186f1a2b 100644 --- a/query-languages/m/geographypoint-from.md +++ b/query-languages/m/geographypoint-from.md @@ -2,11 +2,6 @@ description: "Learn more about: GeographyPoint.From" title: "GeographyPoint.From" ms.date: 7/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # GeographyPoint.From ## Syntax diff --git a/query-languages/m/geometry-fromwellknowntext.md b/query-languages/m/geometry-fromwellknowntext.md index 1c6a9b0d0..79e849c2e 100644 --- a/query-languages/m/geometry-fromwellknowntext.md +++ b/query-languages/m/geometry-fromwellknowntext.md @@ -2,11 +2,6 @@ description: "Learn more about: Geometry.FromWellKnownText" title: "Geometry.FromWellKnownText" ms.date: 7/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Geometry.FromWellKnownText ## Syntax diff --git a/query-languages/m/geometry-towellknowntext.md b/query-languages/m/geometry-towellknowntext.md index c8dfcb023..338852e94 100644 --- a/query-languages/m/geometry-towellknowntext.md +++ b/query-languages/m/geometry-towellknowntext.md @@ -2,11 +2,6 @@ description: "Learn more about: Geometry.ToWellKnownText" title: "Geometry.ToWellKnownText" ms.date: 7/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Geometry.ToWellKnownText ## Syntax diff --git a/query-languages/m/geometrypoint-from.md b/query-languages/m/geometrypoint-from.md index eea59cf83..af4a9e236 100644 --- a/query-languages/m/geometrypoint-from.md +++ b/query-languages/m/geometrypoint-from.md @@ -2,11 +2,6 @@ description: "Learn more about: GeometryPoint.From" title: "GeometryPoint.From" ms.date: 7/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # GeometryPoint.From ## Syntax diff --git a/query-languages/m/googleanalytics-accounts.md b/query-languages/m/googleanalytics-accounts.md index 9cf586cf2..fcc027a19 100644 --- a/query-languages/m/googleanalytics-accounts.md +++ b/query-languages/m/googleanalytics-accounts.md @@ -2,11 +2,6 @@ description: "Learn more about: GoogleAnalytics.Accounts" title: "GoogleAnalytics.Accounts" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # GoogleAnalytics.Accounts diff --git a/query-languages/m/graph-nodes.md b/query-languages/m/graph-nodes.md index 59e5bc86a..3425981ec 100644 --- a/query-languages/m/graph-nodes.md +++ b/query-languages/m/graph-nodes.md @@ -2,11 +2,6 @@ description: "Learn more about: Graph.Nodes" title: "Graph.Nodes" ms.date: 9/22/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Graph.Nodes diff --git a/query-languages/m/groupkind-type.md b/query-languages/m/groupkind-type.md index f0e5695df..1c26a3418 100644 --- a/query-languages/m/groupkind-type.md +++ b/query-languages/m/groupkind-type.md @@ -2,11 +2,6 @@ description: "Learn more about: GroupKind.Type" title: "GroupKind.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # GroupKind.Type diff --git a/query-languages/m/guid-from.md b/query-languages/m/guid-from.md index 058d9f464..9d2b20426 100644 --- a/query-languages/m/guid-from.md +++ b/query-languages/m/guid-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Guid.From" title: "Guid.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Guid.From diff --git a/query-languages/m/hdfs-contents.md b/query-languages/m/hdfs-contents.md index 2f8b55cee..c5852a97d 100644 --- a/query-languages/m/hdfs-contents.md +++ b/query-languages/m/hdfs-contents.md @@ -2,11 +2,6 @@ description: "Learn more about: Hdfs.Contents" title: "Hdfs.Contents" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Hdfs.Contents diff --git a/query-languages/m/hdfs-files.md b/query-languages/m/hdfs-files.md index 72bb6090c..e5596d851 100644 --- a/query-languages/m/hdfs-files.md +++ b/query-languages/m/hdfs-files.md @@ -2,11 +2,6 @@ description: "Learn more about: Hdfs.Files" title: "Hdfs.Files" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Hdfs.Files diff --git a/query-languages/m/hdinsight-containers.md b/query-languages/m/hdinsight-containers.md index 4803397a1..8a7922ed8 100644 --- a/query-languages/m/hdinsight-containers.md +++ b/query-languages/m/hdinsight-containers.md @@ -2,11 +2,6 @@ description: "Learn more about: HdInsight.Containers" title: "HdInsight.Containers" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # HdInsight.Containers diff --git a/query-languages/m/hdinsight-contents.md b/query-languages/m/hdinsight-contents.md index 36076ac35..9ec2680a3 100644 --- a/query-languages/m/hdinsight-contents.md +++ b/query-languages/m/hdinsight-contents.md @@ -2,11 +2,6 @@ description: "Learn more about: HdInsight.Contents" title: "HdInsight.Contents" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # HdInsight.Contents diff --git a/query-languages/m/hdinsight-files.md b/query-languages/m/hdinsight-files.md index 4693d78bd..a7d5dd51a 100644 --- a/query-languages/m/hdinsight-files.md +++ b/query-languages/m/hdinsight-files.md @@ -2,11 +2,6 @@ description: "Learn more about: HdInsight.Files" title: "HdInsight.Files" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # HdInsight.Files diff --git a/query-languages/m/html-table.md b/query-languages/m/html-table.md index c103d4bc6..c0d2954c1 100644 --- a/query-languages/m/html-table.md +++ b/query-languages/m/html-table.md @@ -2,11 +2,6 @@ description: "Learn more about: Html.Table" title: "Html.Table" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Html.Table diff --git a/query-languages/m/identity-from.md b/query-languages/m/identity-from.md index 53f2f63ee..bc042a801 100644 --- a/query-languages/m/identity-from.md +++ b/query-languages/m/identity-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Identity.From" title: "Identity.From" ms.date: 3/28/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Identity.From diff --git a/query-languages/m/identity-ismemberof.md b/query-languages/m/identity-ismemberof.md index 3bc91f11c..22504c8a4 100644 --- a/query-languages/m/identity-ismemberof.md +++ b/query-languages/m/identity-ismemberof.md @@ -2,11 +2,6 @@ description: "Learn more about: Identity.IsMemberOf" title: "Identity.IsMemberOf" ms.date: 3/28/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Identity.IsMemberOf diff --git a/query-languages/m/identityprovider-default.md b/query-languages/m/identityprovider-default.md index bdb065212..725fda781 100644 --- a/query-languages/m/identityprovider-default.md +++ b/query-languages/m/identityprovider-default.md @@ -2,11 +2,6 @@ description: "Learn more about: IdentityProvider.Default" title: "IdentityProvider.Default" ms.date: 3/28/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # IdentityProvider.Default diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index 6a8d1437f..d3f9d6ed1 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -6,11 +6,8 @@ summary: Microsoft Power Query provides a powerful data import experience that e metadata: title: Power Query M formula language reference description: Power Query M is used to filter, combine, and mash-up data from one or more supported data sources. - ms.service: powerquery - ms.topic: landing-page - author: dougklopfenstein - ms.author: dougklo - ms.date: 07/29/2022 + ms.topic: landing-page + ms.date: 07/29/2022 # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new diff --git a/query-languages/m/informix-database.md b/query-languages/m/informix-database.md index 8fad40a52..f9d9efad9 100644 --- a/query-languages/m/informix-database.md +++ b/query-languages/m/informix-database.md @@ -2,11 +2,6 @@ description: "Learn more about: Informix.Database" title: "Informix.Database" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Informix.Database diff --git a/query-languages/m/int16-from.md b/query-languages/m/int16-from.md index 3f25c74d9..a0c3faef8 100644 --- a/query-languages/m/int16-from.md +++ b/query-languages/m/int16-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Int16.From" title: "Int16.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Int16.From diff --git a/query-languages/m/int32-from.md b/query-languages/m/int32-from.md index 46b5efb44..f29da89ca 100644 --- a/query-languages/m/int32-from.md +++ b/query-languages/m/int32-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Int32.From" title: "Int32.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Int32.From diff --git a/query-languages/m/int64-from.md b/query-languages/m/int64-from.md index b6580f139..3470c6dee 100644 --- a/query-languages/m/int64-from.md +++ b/query-languages/m/int64-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Int64.From" title: "Int64.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Int64.From diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index dd69591c3..975dd57b0 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Int8.From" title: "Int8.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Int8.From diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index 06ff43803..cf3c27efe 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -2,11 +2,6 @@ description: "Learn more about: ItemExpression.From" title: "ItemExpression.From" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # ItemExpression.From diff --git a/query-languages/m/itemexpression-item.md b/query-languages/m/itemexpression-item.md index 11972b40f..97e77dc3e 100644 --- a/query-languages/m/itemexpression-item.md +++ b/query-languages/m/itemexpression-item.md @@ -2,11 +2,6 @@ description: "Learn more about: ItemExpression.Item" title: "ItemExpression.Item" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # ItemExpression.Item diff --git a/query-languages/m/joinalgorithm-type.md b/query-languages/m/joinalgorithm-type.md index eaecf8abe..1d463b314 100644 --- a/query-languages/m/joinalgorithm-type.md +++ b/query-languages/m/joinalgorithm-type.md @@ -2,11 +2,6 @@ description: "Learn more about: JoinAlgorithm.Type" title: "JoinAlgorithm.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # JoinAlgorithm.Type diff --git a/query-languages/m/joinkind-type.md b/query-languages/m/joinkind-type.md index 75421cae4..531ab4f7d 100644 --- a/query-languages/m/joinkind-type.md +++ b/query-languages/m/joinkind-type.md @@ -2,11 +2,6 @@ description: "Learn more about: JoinKind.Type" title: "JoinKind.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # JoinKind.Type diff --git a/query-languages/m/joinside-type.md b/query-languages/m/joinside-type.md index 83403d9b1..51b1afd18 100644 --- a/query-languages/m/joinside-type.md +++ b/query-languages/m/joinside-type.md @@ -2,11 +2,6 @@ description: "Learn more about: JoinSide.Type" title: "JoinSide.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # JoinSide.Type diff --git a/query-languages/m/json-document.md b/query-languages/m/json-document.md index 664e490bc..6f61bbff7 100644 --- a/query-languages/m/json-document.md +++ b/query-languages/m/json-document.md @@ -2,11 +2,6 @@ description: "Learn more about: Json.Document" title: "Json.Document" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Json.Document diff --git a/query-languages/m/json-fromvalue.md b/query-languages/m/json-fromvalue.md index bab472d20..df721c587 100644 --- a/query-languages/m/json-fromvalue.md +++ b/query-languages/m/json-fromvalue.md @@ -2,11 +2,6 @@ description: "Learn more about: Json.FromValue" title: "Json.FromValue" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Json.FromValue diff --git a/query-languages/m/limitclausekind-type.md b/query-languages/m/limitclausekind-type.md index 1a49c71fa..c1870d801 100644 --- a/query-languages/m/limitclausekind-type.md +++ b/query-languages/m/limitclausekind-type.md @@ -2,11 +2,6 @@ description: "Learn more about: LimitClauseKind.Type" title: "LimitClauseKind.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # LimitClauseKind.Type diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index b022fd06c..24c1b8700 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -2,11 +2,6 @@ description: "Learn more about: Lines.FromBinary" title: "Lines.FromBinary" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Lines.FromBinary diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index 94bb13ae5..d196f4893 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: Lines.FromText" title: "Lines.FromText" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Lines.FromText diff --git a/query-languages/m/lines-functions.md b/query-languages/m/lines-functions.md index 66f3609f9..8f5454a2c 100644 --- a/query-languages/m/lines-functions.md +++ b/query-languages/m/lines-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Lines functions" title: "Lines functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Lines functions diff --git a/query-languages/m/lines-tobinary.md b/query-languages/m/lines-tobinary.md index 44ca7a491..e41ca5fd1 100644 --- a/query-languages/m/lines-tobinary.md +++ b/query-languages/m/lines-tobinary.md @@ -2,11 +2,6 @@ description: "Learn more about: Lines.ToBinary" title: "Lines.ToBinary" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Lines.ToBinary diff --git a/query-languages/m/lines-totext.md b/query-languages/m/lines-totext.md index 4e4940f72..fd202a157 100644 --- a/query-languages/m/lines-totext.md +++ b/query-languages/m/lines-totext.md @@ -2,11 +2,6 @@ description: "Learn more about: Lines.ToText" title: "Lines.ToText" ms.date: 7/30/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Lines.ToText diff --git a/query-languages/m/list-accumulate.md b/query-languages/m/list-accumulate.md index a7b4b4b77..a4f5c49db 100644 --- a/query-languages/m/list-accumulate.md +++ b/query-languages/m/list-accumulate.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Accumulate" title: "List.Accumulate" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Accumulate diff --git a/query-languages/m/list-alltrue.md b/query-languages/m/list-alltrue.md index 0e1ab7c59..3d67135cd 100644 --- a/query-languages/m/list-alltrue.md +++ b/query-languages/m/list-alltrue.md @@ -2,11 +2,6 @@ description: "Learn more about: List.AllTrue" title: "List.AllTrue" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.AllTrue diff --git a/query-languages/m/list-alternate.md b/query-languages/m/list-alternate.md index 42fec1a48..13e1f1191 100644 --- a/query-languages/m/list-alternate.md +++ b/query-languages/m/list-alternate.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Alternate" title: "List.Alternate" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Alternate diff --git a/query-languages/m/list-anytrue.md b/query-languages/m/list-anytrue.md index 24fae639b..7a3b1abf7 100644 --- a/query-languages/m/list-anytrue.md +++ b/query-languages/m/list-anytrue.md @@ -2,11 +2,6 @@ description: "Learn more about: List.AnyTrue" title: "List.AnyTrue" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.AnyTrue diff --git a/query-languages/m/list-average.md b/query-languages/m/list-average.md index 4458ffb03..632918767 100644 --- a/query-languages/m/list-average.md +++ b/query-languages/m/list-average.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Average" title: "List.Average" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Average diff --git a/query-languages/m/list-buffer.md b/query-languages/m/list-buffer.md index e42cf98a2..f68631ce0 100644 --- a/query-languages/m/list-buffer.md +++ b/query-languages/m/list-buffer.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Buffer" title: "List.Buffer" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Buffer diff --git a/query-languages/m/list-combine.md b/query-languages/m/list-combine.md index d902adb05..4370c3139 100644 --- a/query-languages/m/list-combine.md +++ b/query-languages/m/list-combine.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Combine" title: "List.Combine" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Combine diff --git a/query-languages/m/list-conformtopagereader.md b/query-languages/m/list-conformtopagereader.md index 4491b322f..7de593122 100644 --- a/query-languages/m/list-conformtopagereader.md +++ b/query-languages/m/list-conformtopagereader.md @@ -2,11 +2,6 @@ description: "Learn more about: List.ConformToPageReader" title: "List.ConformToPageReader" ms.date: 8/21/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.ConformToPageReader diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index 2d41a6d7d..bf5044a34 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Contains" title: "List.Contains" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Contains diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index b80d044d0..db74eea38 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -2,11 +2,6 @@ description: "Learn more about: List.ContainsAll" title: "List.ContainsAll" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.ContainsAll diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index b56801550..9f2bb55fa 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -2,11 +2,6 @@ description: "Learn more about: List.ContainsAny" title: "List.ContainsAny" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.ContainsAny diff --git a/query-languages/m/list-count.md b/query-languages/m/list-count.md index 53550c313..ac64fdd6f 100644 --- a/query-languages/m/list-count.md +++ b/query-languages/m/list-count.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Count" title: "List.Count" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Count diff --git a/query-languages/m/list-covariance.md b/query-languages/m/list-covariance.md index e50bad92f..de9baff70 100644 --- a/query-languages/m/list-covariance.md +++ b/query-languages/m/list-covariance.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Covariance" title: "List.Covariance" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Covariance diff --git a/query-languages/m/list-dates.md b/query-languages/m/list-dates.md index 2882ab524..1652ded51 100644 --- a/query-languages/m/list-dates.md +++ b/query-languages/m/list-dates.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Dates" title: "List.Dates" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Dates diff --git a/query-languages/m/list-datetimes.md b/query-languages/m/list-datetimes.md index cbc53916e..c02e0da89 100644 --- a/query-languages/m/list-datetimes.md +++ b/query-languages/m/list-datetimes.md @@ -2,11 +2,6 @@ description: "Learn more about: List.DateTimes" title: "List.DateTimes" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.DateTimes diff --git a/query-languages/m/list-datetimezones.md b/query-languages/m/list-datetimezones.md index 41726caf1..e9d60cac5 100644 --- a/query-languages/m/list-datetimezones.md +++ b/query-languages/m/list-datetimezones.md @@ -2,11 +2,6 @@ description: "Learn more about: List.DateTimeZones" title: "List.DateTimeZones" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.DateTimeZones diff --git a/query-languages/m/list-difference.md b/query-languages/m/list-difference.md index 2ff205409..a2a554d3e 100644 --- a/query-languages/m/list-difference.md +++ b/query-languages/m/list-difference.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Difference" title: "List.Difference" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Difference diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index 620faa0e2..14a0421a6 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Distinct" title: "List.Distinct" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Distinct diff --git a/query-languages/m/list-durations.md b/query-languages/m/list-durations.md index 1f0005222..336bf427d 100644 --- a/query-languages/m/list-durations.md +++ b/query-languages/m/list-durations.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Durations" title: "List.Durations" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Durations diff --git a/query-languages/m/list-findtext.md b/query-languages/m/list-findtext.md index 8c4c685e6..0acc3d18d 100644 --- a/query-languages/m/list-findtext.md +++ b/query-languages/m/list-findtext.md @@ -2,11 +2,6 @@ description: "Learn more about: List.FindText" title: "List.FindText" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.FindText diff --git a/query-languages/m/list-first.md b/query-languages/m/list-first.md index a7cd4b43b..4bf5011bc 100644 --- a/query-languages/m/list-first.md +++ b/query-languages/m/list-first.md @@ -2,11 +2,6 @@ description: "Learn more about: List.First" title: "List.First" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.First diff --git a/query-languages/m/list-firstn.md b/query-languages/m/list-firstn.md index e0c735349..f99d5ae19 100644 --- a/query-languages/m/list-firstn.md +++ b/query-languages/m/list-firstn.md @@ -2,11 +2,6 @@ description: "Learn more about: List.FirstN" title: "List.FirstN" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.FirstN diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index 2fbf2ceca..d95888f76 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: List functions" title: "List functions" ms.date: 7/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List functions diff --git a/query-languages/m/list-generate.md b/query-languages/m/list-generate.md index 00047bf19..4dbb1626c 100644 --- a/query-languages/m/list-generate.md +++ b/query-languages/m/list-generate.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Generate" title: "List.Generate" ms.date: 7/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Generate diff --git a/query-languages/m/list-insertrange.md b/query-languages/m/list-insertrange.md index 7ddad9757..fa9e57869 100644 --- a/query-languages/m/list-insertrange.md +++ b/query-languages/m/list-insertrange.md @@ -2,11 +2,6 @@ description: "Learn more about: List.InsertRange" title: "List.InsertRange" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.InsertRange diff --git a/query-languages/m/list-intersect.md b/query-languages/m/list-intersect.md index 11e1d7eca..3fb601e2c 100644 --- a/query-languages/m/list-intersect.md +++ b/query-languages/m/list-intersect.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Intersect" title: "List.Intersect" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Intersect diff --git a/query-languages/m/list-isdistinct.md b/query-languages/m/list-isdistinct.md index bdd32097b..125b8ac1f 100644 --- a/query-languages/m/list-isdistinct.md +++ b/query-languages/m/list-isdistinct.md @@ -2,11 +2,6 @@ description: "Learn more about: List.IsDistinct" title: "List.IsDistinct" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.IsDistinct diff --git a/query-languages/m/list-isempty.md b/query-languages/m/list-isempty.md index 548d836e3..af9ca5442 100644 --- a/query-languages/m/list-isempty.md +++ b/query-languages/m/list-isempty.md @@ -2,11 +2,6 @@ description: "Learn more about: List.IsEmpty" title: "List.IsEmpty" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.IsEmpty diff --git a/query-languages/m/list-last.md b/query-languages/m/list-last.md index 14d89a280..070712d95 100644 --- a/query-languages/m/list-last.md +++ b/query-languages/m/list-last.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Last" title: "List.Last" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Last diff --git a/query-languages/m/list-lastn.md b/query-languages/m/list-lastn.md index 455825126..f633966a8 100644 --- a/query-languages/m/list-lastn.md +++ b/query-languages/m/list-lastn.md @@ -2,11 +2,6 @@ description: "Learn more about: List.LastN" title: "List.LastN" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.LastN diff --git a/query-languages/m/list-matchesall.md b/query-languages/m/list-matchesall.md index d3b18bc08..eac35108e 100644 --- a/query-languages/m/list-matchesall.md +++ b/query-languages/m/list-matchesall.md @@ -2,11 +2,6 @@ description: "Learn more about: List.MatchesAll" title: "List.MatchesAll" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.MatchesAll diff --git a/query-languages/m/list-matchesany.md b/query-languages/m/list-matchesany.md index 0fc0910dc..e38c23d27 100644 --- a/query-languages/m/list-matchesany.md +++ b/query-languages/m/list-matchesany.md @@ -2,11 +2,6 @@ description: "Learn more about: List.MatchesAny" title: "List.MatchesAny" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.MatchesAny diff --git a/query-languages/m/list-max.md b/query-languages/m/list-max.md index b38582995..f2e1ac08d 100644 --- a/query-languages/m/list-max.md +++ b/query-languages/m/list-max.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Max" title: "List.Max" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Max diff --git a/query-languages/m/list-maxn.md b/query-languages/m/list-maxn.md index a068cbd9b..99261dfc9 100644 --- a/query-languages/m/list-maxn.md +++ b/query-languages/m/list-maxn.md @@ -2,11 +2,6 @@ description: "Learn more about: List.MaxN" title: "List.MaxN" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.MaxN diff --git a/query-languages/m/list-median.md b/query-languages/m/list-median.md index 54eff20b0..ec7ba85c4 100644 --- a/query-languages/m/list-median.md +++ b/query-languages/m/list-median.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Median" title: "List.Median" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Median diff --git a/query-languages/m/list-min.md b/query-languages/m/list-min.md index 3040c902f..f3c32445c 100644 --- a/query-languages/m/list-min.md +++ b/query-languages/m/list-min.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Min" title: "List.Min" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Min diff --git a/query-languages/m/list-minn.md b/query-languages/m/list-minn.md index 6680e1c7e..55e4f0aed 100644 --- a/query-languages/m/list-minn.md +++ b/query-languages/m/list-minn.md @@ -2,11 +2,6 @@ description: "Learn more about: List.MinN" title: "List.MinN" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.MinN diff --git a/query-languages/m/list-mode.md b/query-languages/m/list-mode.md index b4ffee78f..f33feac41 100644 --- a/query-languages/m/list-mode.md +++ b/query-languages/m/list-mode.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Mode" title: "List.Mode" ms.date: 7/15/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Mode diff --git a/query-languages/m/list-modes.md b/query-languages/m/list-modes.md index f740df436..a01139cca 100644 --- a/query-languages/m/list-modes.md +++ b/query-languages/m/list-modes.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Modes" title: "List.Modes" ms.date: 7/15/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Modes diff --git a/query-languages/m/list-nonnullcount.md b/query-languages/m/list-nonnullcount.md index 39fd218e4..b59e04631 100644 --- a/query-languages/m/list-nonnullcount.md +++ b/query-languages/m/list-nonnullcount.md @@ -2,11 +2,6 @@ description: "Learn more about: List.NonNullCount" title: "List.NonNullCount" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.NonNullCount diff --git a/query-languages/m/list-numbers.md b/query-languages/m/list-numbers.md index 45e9c5d67..2f3527819 100644 --- a/query-languages/m/list-numbers.md +++ b/query-languages/m/list-numbers.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Numbers" title: "List.Numbers" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Numbers diff --git a/query-languages/m/list-percentile.md b/query-languages/m/list-percentile.md index d2a0f60c2..5f69ec14a 100644 --- a/query-languages/m/list-percentile.md +++ b/query-languages/m/list-percentile.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Percentile" title: "List.Percentile" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Percentile diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index 8acdbe121..ef0798020 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -2,11 +2,6 @@ description: "Learn more about: List.PositionOf" title: "List.PositionOf" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.PositionOf diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index a46ba65dc..b0d8c428f 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -2,11 +2,6 @@ description: "Learn more about: List.PositionOfAny" title: "List.PositionOfAny" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.PositionOfAny diff --git a/query-languages/m/list-positions.md b/query-languages/m/list-positions.md index 370eec34e..980d227d9 100644 --- a/query-languages/m/list-positions.md +++ b/query-languages/m/list-positions.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Positions" title: "List.Positions" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Positions diff --git a/query-languages/m/list-product.md b/query-languages/m/list-product.md index 6d4666f26..6d6d005fa 100644 --- a/query-languages/m/list-product.md +++ b/query-languages/m/list-product.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Product" title: "List.Product" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Product diff --git a/query-languages/m/list-random.md b/query-languages/m/list-random.md index ae04320cc..697a06ad6 100644 --- a/query-languages/m/list-random.md +++ b/query-languages/m/list-random.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Random" title: "List.Random" ms.date: 3/8/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Random diff --git a/query-languages/m/list-range.md b/query-languages/m/list-range.md index 1569a378c..c23b0e428 100644 --- a/query-languages/m/list-range.md +++ b/query-languages/m/list-range.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Range" title: "List.Range" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Range diff --git a/query-languages/m/list-removefirstn.md b/query-languages/m/list-removefirstn.md index 5cda33352..0495b0647 100644 --- a/query-languages/m/list-removefirstn.md +++ b/query-languages/m/list-removefirstn.md @@ -2,11 +2,6 @@ description: "Learn more about: List.RemoveFirstN" title: "List.RemoveFirstN" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.RemoveFirstN diff --git a/query-languages/m/list-removeitems.md b/query-languages/m/list-removeitems.md index b2c12355b..e324c0a61 100644 --- a/query-languages/m/list-removeitems.md +++ b/query-languages/m/list-removeitems.md @@ -2,11 +2,6 @@ description: "Learn more about: List.RemoveItems" title: "List.RemoveItems" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.RemoveItems diff --git a/query-languages/m/list-removelastn.md b/query-languages/m/list-removelastn.md index e307cc5d1..8bf81df9c 100644 --- a/query-languages/m/list-removelastn.md +++ b/query-languages/m/list-removelastn.md @@ -2,11 +2,6 @@ description: "Learn more about: List.RemoveLastN" title: "List.RemoveLastN" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.RemoveLastN diff --git a/query-languages/m/list-removematchingitems.md b/query-languages/m/list-removematchingitems.md index 5c80d5d79..bccb514d2 100644 --- a/query-languages/m/list-removematchingitems.md +++ b/query-languages/m/list-removematchingitems.md @@ -2,11 +2,6 @@ description: "Learn more about: List.RemoveMatchingItems" title: "List.RemoveMatchingItems" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.RemoveMatchingItems diff --git a/query-languages/m/list-removenulls.md b/query-languages/m/list-removenulls.md index fcedac4e8..cdd94f9eb 100644 --- a/query-languages/m/list-removenulls.md +++ b/query-languages/m/list-removenulls.md @@ -2,11 +2,6 @@ description: "Learn more about: List.RemoveNulls" title: "List.RemoveNulls" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.RemoveNulls diff --git a/query-languages/m/list-removerange.md b/query-languages/m/list-removerange.md index 6ce5cb1a7..1d1f65375 100644 --- a/query-languages/m/list-removerange.md +++ b/query-languages/m/list-removerange.md @@ -2,11 +2,6 @@ description: "Learn more about: List.RemoveRange" title: "List.RemoveRange" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.RemoveRange diff --git a/query-languages/m/list-repeat.md b/query-languages/m/list-repeat.md index 2ff69df0a..af3dbe10e 100644 --- a/query-languages/m/list-repeat.md +++ b/query-languages/m/list-repeat.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Repeat" title: "List.Repeat" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Repeat diff --git a/query-languages/m/list-replacematchingitems.md b/query-languages/m/list-replacematchingitems.md index 18e17f383..5279ff335 100644 --- a/query-languages/m/list-replacematchingitems.md +++ b/query-languages/m/list-replacematchingitems.md @@ -2,11 +2,6 @@ description: "Learn more about: List.ReplaceMatchingItems" title: "List.ReplaceMatchingItems" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.ReplaceMatchingItems diff --git a/query-languages/m/list-replacerange.md b/query-languages/m/list-replacerange.md index 3717f7d03..1ba5279db 100644 --- a/query-languages/m/list-replacerange.md +++ b/query-languages/m/list-replacerange.md @@ -2,11 +2,6 @@ description: "Learn more about: List.ReplaceRange" title: "List.ReplaceRange" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.ReplaceRange diff --git a/query-languages/m/list-replacevalue.md b/query-languages/m/list-replacevalue.md index 20a16a5bf..851e33337 100644 --- a/query-languages/m/list-replacevalue.md +++ b/query-languages/m/list-replacevalue.md @@ -2,11 +2,6 @@ description: "Learn more about: List.ReplaceValue" title: "List.ReplaceValue" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.ReplaceValue diff --git a/query-languages/m/list-reverse.md b/query-languages/m/list-reverse.md index ee9ae635e..4cdb4f982 100644 --- a/query-languages/m/list-reverse.md +++ b/query-languages/m/list-reverse.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Reverse" title: "List.Reverse" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Reverse diff --git a/query-languages/m/list-select.md b/query-languages/m/list-select.md index f0505aac9..9eb3c38bd 100644 --- a/query-languages/m/list-select.md +++ b/query-languages/m/list-select.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Select" title: "List.Select" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Select diff --git a/query-languages/m/list-single.md b/query-languages/m/list-single.md index d04c096d3..7de9567cf 100644 --- a/query-languages/m/list-single.md +++ b/query-languages/m/list-single.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Single" title: "List.Single" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Single diff --git a/query-languages/m/list-singleordefault.md b/query-languages/m/list-singleordefault.md index b8bd9cb8e..42c1396fd 100644 --- a/query-languages/m/list-singleordefault.md +++ b/query-languages/m/list-singleordefault.md @@ -2,11 +2,6 @@ description: "Learn more about: List.SingleOrDefault" title: "List.SingleOrDefault" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.SingleOrDefault diff --git a/query-languages/m/list-skip.md b/query-languages/m/list-skip.md index 3904004e4..a2472c979 100644 --- a/query-languages/m/list-skip.md +++ b/query-languages/m/list-skip.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Skip" title: "List.Skip" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Skip diff --git a/query-languages/m/list-sort.md b/query-languages/m/list-sort.md index 382da897c..822ba19e7 100644 --- a/query-languages/m/list-sort.md +++ b/query-languages/m/list-sort.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Sort" title: "List.Sort" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Sort diff --git a/query-languages/m/list-split.md b/query-languages/m/list-split.md index 1d91b8bf3..adb68412c 100644 --- a/query-languages/m/list-split.md +++ b/query-languages/m/list-split.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Split" title: "List.Split" ms.date: 11/17/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Split diff --git a/query-languages/m/list-standarddeviation.md b/query-languages/m/list-standarddeviation.md index 31b238b3a..397a2be69 100644 --- a/query-languages/m/list-standarddeviation.md +++ b/query-languages/m/list-standarddeviation.md @@ -2,11 +2,6 @@ description: "Learn more about: List.StandardDeviation" title: "List.StandardDeviation" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.StandardDeviation diff --git a/query-languages/m/list-sum.md b/query-languages/m/list-sum.md index 4a84dbbdc..152416329 100644 --- a/query-languages/m/list-sum.md +++ b/query-languages/m/list-sum.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Sum" title: "List.Sum" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Sum diff --git a/query-languages/m/list-times.md b/query-languages/m/list-times.md index 9d329245e..97e20bce2 100644 --- a/query-languages/m/list-times.md +++ b/query-languages/m/list-times.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Times" title: "List.Times" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Times diff --git a/query-languages/m/list-transform.md b/query-languages/m/list-transform.md index c72a033f9..256100489 100644 --- a/query-languages/m/list-transform.md +++ b/query-languages/m/list-transform.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Transform" title: "List.Transform" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Transform diff --git a/query-languages/m/list-transformmany.md b/query-languages/m/list-transformmany.md index 2ba74a3b2..957beba04 100644 --- a/query-languages/m/list-transformmany.md +++ b/query-languages/m/list-transformmany.md @@ -2,11 +2,6 @@ description: "Learn more about: List.TransformMany" title: "List.TransformMany" ms.date: 10/18/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.TransformMany diff --git a/query-languages/m/list-union.md b/query-languages/m/list-union.md index 637da9541..d306e16d4 100644 --- a/query-languages/m/list-union.md +++ b/query-languages/m/list-union.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Union" title: "List.Union" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Union diff --git a/query-languages/m/list-zip.md b/query-languages/m/list-zip.md index 006e30d64..656f74733 100644 --- a/query-languages/m/list-zip.md +++ b/query-languages/m/list-zip.md @@ -2,11 +2,6 @@ description: "Learn more about: List.Zip" title: "List.Zip" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # List.Zip diff --git a/query-languages/m/logical-from.md b/query-languages/m/logical-from.md index b568ef496..f51755239 100644 --- a/query-languages/m/logical-from.md +++ b/query-languages/m/logical-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Logical.From" title: "Logical.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Logical.From diff --git a/query-languages/m/logical-fromtext.md b/query-languages/m/logical-fromtext.md index 11e65ee8d..3133fe386 100644 --- a/query-languages/m/logical-fromtext.md +++ b/query-languages/m/logical-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: Logical.FromText" title: "Logical.FromText" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Logical.FromText diff --git a/query-languages/m/logical-functions.md b/query-languages/m/logical-functions.md index de967d97b..15b12180a 100644 --- a/query-languages/m/logical-functions.md +++ b/query-languages/m/logical-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Logical functions" title: "Logical functions" ms.date: 5/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Logical functions diff --git a/query-languages/m/logical-totext.md b/query-languages/m/logical-totext.md index d35fb123c..0cb53412b 100644 --- a/query-languages/m/logical-totext.md +++ b/query-languages/m/logical-totext.md @@ -2,11 +2,6 @@ description: "Learn more about: Logical.ToText" title: "Logical.ToText" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Logical.ToText diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 682731fb7..54395cd7e 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -1,11 +1,8 @@ --- title: M Language basic concepts description: Discusses basic concepts that appear throughout the subsequent sections -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 2/25/2020 -ms.author: dougklo ms.custom: intro-internal --- diff --git a/query-languages/m/m-spec-conditionals.md b/query-languages/m/m-spec-conditionals.md index 834c70652..a7f37119e 100644 --- a/query-languages/m/m-spec-conditionals.md +++ b/query-languages/m/m-spec-conditionals.md @@ -1,11 +1,8 @@ --- title: M Language Conditionals description: Describes using conditionals in the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 2/28/2020 -ms.author: dougklo --- diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index f53f2ca60..a66666acd 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -1,11 +1,8 @@ --- title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 11/29/2021 -ms.author: dougklo --- # Consolidated Grammar diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index 6dbcfc9cf..d2d3ad69f 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -1,11 +1,8 @@ --- title: M Language Error Handling description: Describes error handling in the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 2/28/2020 -ms.author: dougklo --- # Error Handling diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 701a382ca..6137371c6 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -1,11 +1,8 @@ --- title: M Language Functions description: Describes using functions in the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 4/7/2020 -ms.author: dougklo --- diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index 8312a8abd..a83203375 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -1,12 +1,8 @@ --- title: Power Query M Formula Language Introduction description: Provides an overview of the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: overview ms.date: 2/25/2020 -ms.author: dougklo - --- # Introduction diff --git a/query-languages/m/m-spec-let.md b/query-languages/m/m-spec-let.md index 590f94d13..8d40cf398 100644 --- a/query-languages/m/m-spec-let.md +++ b/query-languages/m/m-spec-let.md @@ -1,11 +1,8 @@ --- title: M Language Let description: Describes using the let expression in the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 4/7/2020 -ms.author: dougklo --- diff --git a/query-languages/m/m-spec-lexical-structure.md b/query-languages/m/m-spec-lexical-structure.md index 5a591b570..e3114f256 100644 --- a/query-languages/m/m-spec-lexical-structure.md +++ b/query-languages/m/m-spec-lexical-structure.md @@ -1,11 +1,8 @@ --- title: M Language lexical structure description: Describes the lexical structure of the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 11/29/2021 -ms.author: dougklo --- diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index d3c8eeae1..c4f6c6654 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -1,11 +1,8 @@ --- title: M Language Operators description: Describes using operators in the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 11/29/2021 -ms.author: dougklo --- # Operator behavior diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index 0507f0777..94510d9f5 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -1,11 +1,8 @@ --- title: M Language Sections description: Describes using sections in the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 8/23/2021 -ms.author: dougklo --- # Sections diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 546dfe83e..70db20f52 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -1,11 +1,8 @@ --- title: M Language types description: Describes using types in the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 11/29/2021 -ms.author: dougklo --- # Types diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index 508d23045..451a49abe 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -1,11 +1,8 @@ --- title: M Language values description: Describes using values in the Power Query M formula language -author: dougklopfenstein -ms.service: powerquery ms.topic: article ms.date: 11/29/2021 -ms.author: dougklo --- # Values diff --git a/query-languages/m/metadata.md b/query-languages/m/metadata.md index d6c46f64c..c6dde216b 100644 --- a/query-languages/m/metadata.md +++ b/query-languages/m/metadata.md @@ -2,11 +2,6 @@ description: "Learn more about: Metadata" title: "Metadata" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Metadata **Metadata** is information about a value that is associated with a value. **Metadata** is represented as a record value, called a metadata record. The fields of a **metadata record** can be used to store the metadata for a value. Every value has a metadata record. If the value of the metadata record has not been specified, then the metadata record is empty (has no fields). Associating a metadata record with a value does not change the value’s behavior in evaluations except for those that explicitly inspect metadata records. diff --git a/query-languages/m/missingfield-type.md b/query-languages/m/missingfield-type.md index c187021e5..b1d98004a 100644 --- a/query-languages/m/missingfield-type.md +++ b/query-languages/m/missingfield-type.md @@ -2,11 +2,6 @@ description: "Learn more about: MissingField.Type" title: "MissingField.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # MissingField.Type diff --git a/query-languages/m/mysql-database.md b/query-languages/m/mysql-database.md index c4ea434e1..1ef0758e8 100644 --- a/query-languages/m/mysql-database.md +++ b/query-languages/m/mysql-database.md @@ -2,11 +2,6 @@ description: "Learn more about: MySQL.Database" title: "MySQL.Database" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # MySQL.Database diff --git a/query-languages/m/number-abs.md b/query-languages/m/number-abs.md index 5408bbcf2..5e4059dcf 100644 --- a/query-languages/m/number-abs.md +++ b/query-languages/m/number-abs.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Abs" title: "Number.Abs" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Abs diff --git a/query-languages/m/number-acos.md b/query-languages/m/number-acos.md index fa5ad8612..cff2de02c 100644 --- a/query-languages/m/number-acos.md +++ b/query-languages/m/number-acos.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Acos" title: "Number.Acos" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Acos diff --git a/query-languages/m/number-asin.md b/query-languages/m/number-asin.md index 74eefc169..d068ad15b 100644 --- a/query-languages/m/number-asin.md +++ b/query-languages/m/number-asin.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Asin" title: "Number.Asin" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Asin diff --git a/query-languages/m/number-atan.md b/query-languages/m/number-atan.md index 4be0a59a8..e20db57fe 100644 --- a/query-languages/m/number-atan.md +++ b/query-languages/m/number-atan.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Atan" title: "Number.Atan" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Atan diff --git a/query-languages/m/number-atan2.md b/query-languages/m/number-atan2.md index 9858d8a3a..23d07502e 100644 --- a/query-languages/m/number-atan2.md +++ b/query-languages/m/number-atan2.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Atan2" title: "Number.Atan2" ms.date: 1/20/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Atan2 diff --git a/query-languages/m/number-bitwiseand.md b/query-languages/m/number-bitwiseand.md index 423a3eafd..058862fff 100644 --- a/query-languages/m/number-bitwiseand.md +++ b/query-languages/m/number-bitwiseand.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.BitwiseAnd" title: "Number.BitwiseAnd" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.BitwiseAnd diff --git a/query-languages/m/number-bitwisenot.md b/query-languages/m/number-bitwisenot.md index d9b77f3d3..90f9f7512 100644 --- a/query-languages/m/number-bitwisenot.md +++ b/query-languages/m/number-bitwisenot.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.BitwiseNot" title: "Number.BitwiseNot" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.BitwiseNot diff --git a/query-languages/m/number-bitwiseor.md b/query-languages/m/number-bitwiseor.md index e79b26358..43fee9714 100644 --- a/query-languages/m/number-bitwiseor.md +++ b/query-languages/m/number-bitwiseor.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.BitwiseOr" title: "Number.BitwiseOr" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.BitwiseOr diff --git a/query-languages/m/number-bitwiseshiftleft.md b/query-languages/m/number-bitwiseshiftleft.md index 317cb871e..9a860f009 100644 --- a/query-languages/m/number-bitwiseshiftleft.md +++ b/query-languages/m/number-bitwiseshiftleft.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.BitwiseShiftLeft" title: "Number.BitwiseShiftLeft" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.BitwiseShiftLeft diff --git a/query-languages/m/number-bitwiseshiftright.md b/query-languages/m/number-bitwiseshiftright.md index 12893065c..c8cc5911f 100644 --- a/query-languages/m/number-bitwiseshiftright.md +++ b/query-languages/m/number-bitwiseshiftright.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.BitwiseShiftRight" title: "Number.BitwiseShiftRight" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.BitwiseShiftRight diff --git a/query-languages/m/number-bitwisexor.md b/query-languages/m/number-bitwisexor.md index 35848bae0..f6e12c3b0 100644 --- a/query-languages/m/number-bitwisexor.md +++ b/query-languages/m/number-bitwisexor.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.BitwiseXor" title: "Number.BitwiseXor" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.BitwiseXor diff --git a/query-languages/m/number-combinations.md b/query-languages/m/number-combinations.md index fa478854c..f84a37459 100644 --- a/query-languages/m/number-combinations.md +++ b/query-languages/m/number-combinations.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Combinations" title: "Number.Combinations" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Combinations diff --git a/query-languages/m/number-cos.md b/query-languages/m/number-cos.md index 57b7e17da..0cd0de013 100644 --- a/query-languages/m/number-cos.md +++ b/query-languages/m/number-cos.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Cos" title: "Number.Cos" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Cos diff --git a/query-languages/m/number-cosh.md b/query-languages/m/number-cosh.md index a73091996..62a1bbc37 100644 --- a/query-languages/m/number-cosh.md +++ b/query-languages/m/number-cosh.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Cosh" title: "Number.Cosh" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Cosh diff --git a/query-languages/m/number-e.md b/query-languages/m/number-e.md index 82a442e8f..04528334a 100644 --- a/query-languages/m/number-e.md +++ b/query-languages/m/number-e.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.E" title: "Number.E" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.E diff --git a/query-languages/m/number-epsilon.md b/query-languages/m/number-epsilon.md index 401b12332..c0614fd22 100644 --- a/query-languages/m/number-epsilon.md +++ b/query-languages/m/number-epsilon.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Epsilon" title: "Number.Epsilon" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Epsilon diff --git a/query-languages/m/number-exp.md b/query-languages/m/number-exp.md index dbead87b9..c60ff7afe 100644 --- a/query-languages/m/number-exp.md +++ b/query-languages/m/number-exp.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Exp" title: "Number.Exp" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Exp diff --git a/query-languages/m/number-factorial.md b/query-languages/m/number-factorial.md index 89243d7e0..63ce05051 100644 --- a/query-languages/m/number-factorial.md +++ b/query-languages/m/number-factorial.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Factorial" title: "Number.Factorial" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Factorial diff --git a/query-languages/m/number-from.md b/query-languages/m/number-from.md index e1c2a44dd..a132f8386 100644 --- a/query-languages/m/number-from.md +++ b/query-languages/m/number-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.From" title: "Number.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.From diff --git a/query-languages/m/number-fromtext.md b/query-languages/m/number-fromtext.md index ec30d86c1..78ed9773c 100644 --- a/query-languages/m/number-fromtext.md +++ b/query-languages/m/number-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.FromText" title: "Number.FromText" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.FromText diff --git a/query-languages/m/number-functions.md b/query-languages/m/number-functions.md index 15745d14f..b45558a89 100644 --- a/query-languages/m/number-functions.md +++ b/query-languages/m/number-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Number functions" title: "Number functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number functions diff --git a/query-languages/m/number-integerdivide.md b/query-languages/m/number-integerdivide.md index 59fae10d7..e6786b7d0 100644 --- a/query-languages/m/number-integerdivide.md +++ b/query-languages/m/number-integerdivide.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.IntegerDivide" title: "Number.IntegerDivide" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.IntegerDivide diff --git a/query-languages/m/number-iseven.md b/query-languages/m/number-iseven.md index 923b19942..35f3578dc 100644 --- a/query-languages/m/number-iseven.md +++ b/query-languages/m/number-iseven.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.IsEven" title: "Number.IsEven" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.IsEven diff --git a/query-languages/m/number-isnan.md b/query-languages/m/number-isnan.md index 012675ab6..8183593e7 100644 --- a/query-languages/m/number-isnan.md +++ b/query-languages/m/number-isnan.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.IsNaN" title: "Number.IsNaN" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.IsNaN diff --git a/query-languages/m/number-isodd.md b/query-languages/m/number-isodd.md index f48d3f39f..2fc69f9df 100644 --- a/query-languages/m/number-isodd.md +++ b/query-languages/m/number-isodd.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.IsOdd" title: "Number.IsOdd" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.IsOdd diff --git a/query-languages/m/number-ln.md b/query-languages/m/number-ln.md index 5e27c87ae..83d3674f7 100644 --- a/query-languages/m/number-ln.md +++ b/query-languages/m/number-ln.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Ln" title: "Number.Ln" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Ln diff --git a/query-languages/m/number-log.md b/query-languages/m/number-log.md index e299f76b4..4f9d030db 100644 --- a/query-languages/m/number-log.md +++ b/query-languages/m/number-log.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Log" title: "Number.Log" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Log diff --git a/query-languages/m/number-log10.md b/query-languages/m/number-log10.md index e524957a2..6beb47485 100644 --- a/query-languages/m/number-log10.md +++ b/query-languages/m/number-log10.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Log10" title: "Number.Log10" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Log10 diff --git a/query-languages/m/number-mod.md b/query-languages/m/number-mod.md index 59a922c2e..ceacef7af 100644 --- a/query-languages/m/number-mod.md +++ b/query-languages/m/number-mod.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Mod" title: "Number.Mod" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Mod diff --git a/query-languages/m/number-nan.md b/query-languages/m/number-nan.md index 4aacde3a3..7b2541551 100644 --- a/query-languages/m/number-nan.md +++ b/query-languages/m/number-nan.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.NaN" title: "Number.NaN" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.NaN diff --git a/query-languages/m/number-negativeinfinity.md b/query-languages/m/number-negativeinfinity.md index ba2c7bb1b..d8d3e1dfe 100644 --- a/query-languages/m/number-negativeinfinity.md +++ b/query-languages/m/number-negativeinfinity.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.NegativeInfinity" title: "Number.NegativeInfinity" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.NegativeInfinity diff --git a/query-languages/m/number-permutations.md b/query-languages/m/number-permutations.md index b2ae12b60..ede197bf2 100644 --- a/query-languages/m/number-permutations.md +++ b/query-languages/m/number-permutations.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Permutations" title: "Number.Permutations" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Permutations diff --git a/query-languages/m/number-pi.md b/query-languages/m/number-pi.md index 79034b49c..094d3636a 100644 --- a/query-languages/m/number-pi.md +++ b/query-languages/m/number-pi.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.PI" title: "Number.PI" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.PI diff --git a/query-languages/m/number-positiveinfinity.md b/query-languages/m/number-positiveinfinity.md index de107f524..ea9854be3 100644 --- a/query-languages/m/number-positiveinfinity.md +++ b/query-languages/m/number-positiveinfinity.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.PositiveInfinity" title: "Number.PositiveInfinity" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.PositiveInfinity diff --git a/query-languages/m/number-power.md b/query-languages/m/number-power.md index 9884b27d8..505032c12 100644 --- a/query-languages/m/number-power.md +++ b/query-languages/m/number-power.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Power" title: "Number.Power" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Power diff --git a/query-languages/m/number-random.md b/query-languages/m/number-random.md index c636c0492..bab799054 100644 --- a/query-languages/m/number-random.md +++ b/query-languages/m/number-random.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Random" title: "Number.Random" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Random diff --git a/query-languages/m/number-randombetween.md b/query-languages/m/number-randombetween.md index 91f731330..60137633d 100644 --- a/query-languages/m/number-randombetween.md +++ b/query-languages/m/number-randombetween.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.RandomBetween" title: "Number.RandomBetween" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.RandomBetween diff --git a/query-languages/m/number-round.md b/query-languages/m/number-round.md index 0156f2a08..380bb10a8 100644 --- a/query-languages/m/number-round.md +++ b/query-languages/m/number-round.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Round" title: "Number.Round" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Round diff --git a/query-languages/m/number-roundawayfromzero.md b/query-languages/m/number-roundawayfromzero.md index 879b2fb7b..674e9ac42 100644 --- a/query-languages/m/number-roundawayfromzero.md +++ b/query-languages/m/number-roundawayfromzero.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.RoundAwayFromZero" title: "Number.RoundAwayFromZero" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.RoundAwayFromZero diff --git a/query-languages/m/number-rounddown.md b/query-languages/m/number-rounddown.md index 10865b3ed..2202e502b 100644 --- a/query-languages/m/number-rounddown.md +++ b/query-languages/m/number-rounddown.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.RoundDown" title: "Number.RoundDown" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.RoundDown diff --git a/query-languages/m/number-roundtowardzero.md b/query-languages/m/number-roundtowardzero.md index 774bab123..f04f84b48 100644 --- a/query-languages/m/number-roundtowardzero.md +++ b/query-languages/m/number-roundtowardzero.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.RoundTowardZero" title: "Number.RoundTowardZero" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.RoundTowardZero diff --git a/query-languages/m/number-roundup.md b/query-languages/m/number-roundup.md index 18a09a9e7..5701195c2 100644 --- a/query-languages/m/number-roundup.md +++ b/query-languages/m/number-roundup.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.RoundUp" title: "Number.RoundUp" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.RoundUp diff --git a/query-languages/m/number-sign.md b/query-languages/m/number-sign.md index efdff2257..2515f88c6 100644 --- a/query-languages/m/number-sign.md +++ b/query-languages/m/number-sign.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Sign" title: "Number.Sign" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Sign diff --git a/query-languages/m/number-sin.md b/query-languages/m/number-sin.md index 6b51de8fb..b0f5bc543 100644 --- a/query-languages/m/number-sin.md +++ b/query-languages/m/number-sin.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Sin" title: "Number.Sin" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Sin diff --git a/query-languages/m/number-sinh.md b/query-languages/m/number-sinh.md index 9244abe0d..58ae21175 100644 --- a/query-languages/m/number-sinh.md +++ b/query-languages/m/number-sinh.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Sinh" title: "Number.Sinh" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Sinh diff --git a/query-languages/m/number-sqrt.md b/query-languages/m/number-sqrt.md index f209a746e..5d3a32f91 100644 --- a/query-languages/m/number-sqrt.md +++ b/query-languages/m/number-sqrt.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Sqrt" title: "Number.Sqrt" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Sqrt diff --git a/query-languages/m/number-tan.md b/query-languages/m/number-tan.md index cbc18fb2b..6cbce802e 100644 --- a/query-languages/m/number-tan.md +++ b/query-languages/m/number-tan.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Tan" title: "Number.Tan" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Tan diff --git a/query-languages/m/number-tanh.md b/query-languages/m/number-tanh.md index 88519d761..3a43745af 100644 --- a/query-languages/m/number-tanh.md +++ b/query-languages/m/number-tanh.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.Tanh" title: "Number.Tanh" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.Tanh diff --git a/query-languages/m/number-totext.md b/query-languages/m/number-totext.md index 984395435..2cb89cd95 100644 --- a/query-languages/m/number-totext.md +++ b/query-languages/m/number-totext.md @@ -2,11 +2,6 @@ description: "Learn more about: Number.ToText" title: "Number.ToText" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Number.ToText diff --git a/query-languages/m/occurrence-type.md b/query-languages/m/occurrence-type.md index 66a294a45..c4a045599 100644 --- a/query-languages/m/occurrence-type.md +++ b/query-languages/m/occurrence-type.md @@ -2,11 +2,6 @@ description: "Learn more about: Occurrence.Type" title: "Occurrence.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Occurrence.Type diff --git a/query-languages/m/odata-feed.md b/query-languages/m/odata-feed.md index ec9d651de..808656736 100644 --- a/query-languages/m/odata-feed.md +++ b/query-languages/m/odata-feed.md @@ -2,11 +2,6 @@ description: "Learn more about: OData.Feed" title: "OData.Feed" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # OData.Feed diff --git a/query-languages/m/odataomitvalues-type.md b/query-languages/m/odataomitvalues-type.md index f5516a259..617ca4781 100644 --- a/query-languages/m/odataomitvalues-type.md +++ b/query-languages/m/odataomitvalues-type.md @@ -2,11 +2,6 @@ description: "Learn more about: ODataOmitValues.Type" title: "ODataOmitValues.Type" ms.date: 6/27/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # ODataOmitValues.Type diff --git a/query-languages/m/odbc-datasource.md b/query-languages/m/odbc-datasource.md index 7135e7a5f..8b51b3356 100644 --- a/query-languages/m/odbc-datasource.md +++ b/query-languages/m/odbc-datasource.md @@ -2,11 +2,6 @@ description: "Learn more about: Odbc.DataSource" title: "Odbc.DataSource" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Odbc.DataSource diff --git a/query-languages/m/odbc-inferoptions.md b/query-languages/m/odbc-inferoptions.md index ec8b4287b..83cedc1bb 100644 --- a/query-languages/m/odbc-inferoptions.md +++ b/query-languages/m/odbc-inferoptions.md @@ -2,11 +2,6 @@ description: "Learn more about: Odbc.InferOptions" title: "Odbc.InferOptions" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Odbc.InferOptions diff --git a/query-languages/m/odbc-query.md b/query-languages/m/odbc-query.md index 6ef541d2b..1d1562bd3 100644 --- a/query-languages/m/odbc-query.md +++ b/query-languages/m/odbc-query.md @@ -2,11 +2,6 @@ description: "Learn more about: Odbc.Query" title: "Odbc.Query" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Odbc.Query diff --git a/query-languages/m/oledb-datasource.md b/query-languages/m/oledb-datasource.md index 1d33b368e..251b0a54c 100644 --- a/query-languages/m/oledb-datasource.md +++ b/query-languages/m/oledb-datasource.md @@ -2,11 +2,6 @@ description: "Learn more about: OleDb.DataSource" title: "OleDb.DataSource" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # OleDb.DataSource diff --git a/query-languages/m/oledb-query.md b/query-languages/m/oledb-query.md index 8508436b5..793a2c5d7 100644 --- a/query-languages/m/oledb-query.md +++ b/query-languages/m/oledb-query.md @@ -2,11 +2,6 @@ description: "Learn more about: OleDb.Query" title: "OleDb.Query" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # OleDb.Query diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index 9cf8cb5bb..52eb56ca6 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -2,11 +2,6 @@ description: "Learn more about: Operators" title: "Operators" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Operators The Power Query M formula language includes a set of operators that can be used in an expression. **Operators** are applied to **operands** to form symbolic expressions. For example, in the expression 1 + 2 the numbers 1 and 2 are operands and the operator is the addition operator (+). diff --git a/query-languages/m/oracle-database.md b/query-languages/m/oracle-database.md index e8b6b1aaf..b76771f6f 100644 --- a/query-languages/m/oracle-database.md +++ b/query-languages/m/oracle-database.md @@ -2,11 +2,6 @@ description: "Learn more about: Oracle.Database" title: "Oracle.Database" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Oracle.Database diff --git a/query-languages/m/order-type.md b/query-languages/m/order-type.md index 569ecb601..1c6a101de 100644 --- a/query-languages/m/order-type.md +++ b/query-languages/m/order-type.md @@ -2,11 +2,6 @@ description: "Learn more about: Order.Type" title: "Order.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Order.Type diff --git a/query-languages/m/pdf-tables.md b/query-languages/m/pdf-tables.md index a009784d3..5d374c540 100644 --- a/query-languages/m/pdf-tables.md +++ b/query-languages/m/pdf-tables.md @@ -2,11 +2,6 @@ description: "Learn more about: Pdf.Tables" title: "Pdf.Tables" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Pdf.Tables diff --git a/query-languages/m/percentage-from.md b/query-languages/m/percentage-from.md index 7b2ec3f9e..eea22d858 100644 --- a/query-languages/m/percentage-from.md +++ b/query-languages/m/percentage-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Percentage.From" title: "Percentage.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Percentage.From diff --git a/query-languages/m/percentilemode-type.md b/query-languages/m/percentilemode-type.md index 51dc9ce1f..896290d7c 100644 --- a/query-languages/m/percentilemode-type.md +++ b/query-languages/m/percentilemode-type.md @@ -2,11 +2,6 @@ description: "Learn more about: PercentileMode.Type" title: "PercentileMode.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # PercentileMode.Type diff --git a/query-languages/m/postgresql-database.md b/query-languages/m/postgresql-database.md index 244386584..3743d4fbd 100644 --- a/query-languages/m/postgresql-database.md +++ b/query-languages/m/postgresql-database.md @@ -2,11 +2,6 @@ description: "Learn more about: PostgreSQL.Database" title: "PostgreSQL.Database" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # PostgreSQL.Database diff --git a/query-languages/m/power-query-m-function-reference.md b/query-languages/m/power-query-m-function-reference.md index 7cf3447f0..7d680f477 100644 --- a/query-languages/m/power-query-m-function-reference.md +++ b/query-languages/m/power-query-m-function-reference.md @@ -2,11 +2,6 @@ description: "Learn more about: Power Query M function reference" title: "Power Query M function reference" ms.date: 7/31/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Power Query M function reference diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index e4389b1e0..0c6506fe5 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -2,11 +2,6 @@ description: "Learn more about: Power Query M language specification" title: "Power Query M language specification" ms.date: 4/7/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Power Query M language specification diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index b20fdfadb..f21b2cd96 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -2,11 +2,6 @@ description: "Learn more about: Types in the Power Query M formula language" title: "Power Query M type system" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Types in the Power Query M formula language diff --git a/query-languages/m/precision-type.md b/query-languages/m/precision-type.md index 763ea100f..5a0742098 100644 --- a/query-languages/m/precision-type.md +++ b/query-languages/m/precision-type.md @@ -2,11 +2,6 @@ description: "Learn more about: Precision.Type" title: "Precision.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Precision.Type diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index fe4dec48e..020e36db8 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -2,12 +2,8 @@ description: "Learn more about: Quick tour of the Power Query M formula language" title: "Quick tour" ms.date: 12/12/2018 -ms.service: powerquery ms.topic: conceptual -author: dougklopfenstein -ms.author: dougklo ms.custom: intro-internal - --- # Quick tour of the Power Query M formula language diff --git a/query-languages/m/quotestyle-type.md b/query-languages/m/quotestyle-type.md index 6ede9afb4..dc67f1699 100644 --- a/query-languages/m/quotestyle-type.md +++ b/query-languages/m/quotestyle-type.md @@ -2,11 +2,6 @@ description: "Learn more about: QuoteStyle.Type" title: "QuoteStyle.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # QuoteStyle.Type diff --git a/query-languages/m/rankkind-type.md b/query-languages/m/rankkind-type.md index d5c5c4e73..bdd9f0799 100644 --- a/query-languages/m/rankkind-type.md +++ b/query-languages/m/rankkind-type.md @@ -2,11 +2,6 @@ description: "Learn more about: RankKind.Type" title: "RankKind.Type" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # RankKind.Type diff --git a/query-languages/m/rdata-frombinary.md b/query-languages/m/rdata-frombinary.md index 1590dbaac..0c5392e2a 100644 --- a/query-languages/m/rdata-frombinary.md +++ b/query-languages/m/rdata-frombinary.md @@ -2,11 +2,6 @@ description: "Learn more about: RData.FromBinary" title: "RData.FromBinary" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # RData.FromBinary diff --git a/query-languages/m/record-addfield.md b/query-languages/m/record-addfield.md index f2888913d..731b5e472 100644 --- a/query-languages/m/record-addfield.md +++ b/query-languages/m/record-addfield.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.AddField" title: "Record.AddField" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.AddField diff --git a/query-languages/m/record-combine.md b/query-languages/m/record-combine.md index acd45883f..2f33ff8be 100644 --- a/query-languages/m/record-combine.md +++ b/query-languages/m/record-combine.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.Combine" title: "Record.Combine" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.Combine diff --git a/query-languages/m/record-field.md b/query-languages/m/record-field.md index ac9529e1b..4e340d489 100644 --- a/query-languages/m/record-field.md +++ b/query-languages/m/record-field.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.Field" title: "Record.Field" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.Field diff --git a/query-languages/m/record-fieldcount.md b/query-languages/m/record-fieldcount.md index f6a1c435e..510774aa5 100644 --- a/query-languages/m/record-fieldcount.md +++ b/query-languages/m/record-fieldcount.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.FieldCount" title: "Record.FieldCount" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.FieldCount diff --git a/query-languages/m/record-fieldnames.md b/query-languages/m/record-fieldnames.md index c4d7af6e0..131638fd5 100644 --- a/query-languages/m/record-fieldnames.md +++ b/query-languages/m/record-fieldnames.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.FieldNames" title: "Record.FieldNames" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.FieldNames diff --git a/query-languages/m/record-fieldordefault.md b/query-languages/m/record-fieldordefault.md index 3b6b92534..cf16ef837 100644 --- a/query-languages/m/record-fieldordefault.md +++ b/query-languages/m/record-fieldordefault.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.FieldOrDefault" title: "Record.FieldOrDefault" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.FieldOrDefault diff --git a/query-languages/m/record-fieldvalues.md b/query-languages/m/record-fieldvalues.md index b3f3d147a..0eb0bf612 100644 --- a/query-languages/m/record-fieldvalues.md +++ b/query-languages/m/record-fieldvalues.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.FieldValues" title: "Record.FieldValues" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.FieldValues diff --git a/query-languages/m/record-fromlist.md b/query-languages/m/record-fromlist.md index 1822320b0..81ccc32bd 100644 --- a/query-languages/m/record-fromlist.md +++ b/query-languages/m/record-fromlist.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.FromList" title: "Record.FromList" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.FromList diff --git a/query-languages/m/record-fromtable.md b/query-languages/m/record-fromtable.md index 2725cce67..5a2b78c92 100644 --- a/query-languages/m/record-fromtable.md +++ b/query-languages/m/record-fromtable.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.FromTable" title: "Record.FromTable" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.FromTable diff --git a/query-languages/m/record-functions.md b/query-languages/m/record-functions.md index 92cac6b16..9d5305059 100644 --- a/query-languages/m/record-functions.md +++ b/query-languages/m/record-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Record functions" title: "Record functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record functions diff --git a/query-languages/m/record-hasfields.md b/query-languages/m/record-hasfields.md index 9d4dbe485..2634b56c1 100644 --- a/query-languages/m/record-hasfields.md +++ b/query-languages/m/record-hasfields.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.HasFields" title: "Record.HasFields" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.HasFields diff --git a/query-languages/m/record-removefields.md b/query-languages/m/record-removefields.md index dbff9ea31..fee0da597 100644 --- a/query-languages/m/record-removefields.md +++ b/query-languages/m/record-removefields.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.RemoveFields" title: "Record.RemoveFields" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.RemoveFields diff --git a/query-languages/m/record-renamefields.md b/query-languages/m/record-renamefields.md index d7ea2fbbe..d01759b8d 100644 --- a/query-languages/m/record-renamefields.md +++ b/query-languages/m/record-renamefields.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.RenameFields" title: "Record.RenameFields" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.RenameFields diff --git a/query-languages/m/record-reorderfields.md b/query-languages/m/record-reorderfields.md index 55a9ebc83..dfa9e9284 100644 --- a/query-languages/m/record-reorderfields.md +++ b/query-languages/m/record-reorderfields.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.ReorderFields" title: "Record.ReorderFields" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.ReorderFields diff --git a/query-languages/m/record-selectfields.md b/query-languages/m/record-selectfields.md index f41bf2609..38a4a79e0 100644 --- a/query-languages/m/record-selectfields.md +++ b/query-languages/m/record-selectfields.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.SelectFields" title: "Record.SelectFields" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.SelectFields diff --git a/query-languages/m/record-tolist.md b/query-languages/m/record-tolist.md index 5d80d59af..796a1ec89 100644 --- a/query-languages/m/record-tolist.md +++ b/query-languages/m/record-tolist.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.ToList" title: "Record.ToList" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.ToList diff --git a/query-languages/m/record-totable.md b/query-languages/m/record-totable.md index f754eb9a4..f20f40076 100644 --- a/query-languages/m/record-totable.md +++ b/query-languages/m/record-totable.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.ToTable" title: "Record.ToTable" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.ToTable diff --git a/query-languages/m/record-transformfields.md b/query-languages/m/record-transformfields.md index fedcacc2b..dafd6eba0 100644 --- a/query-languages/m/record-transformfields.md +++ b/query-languages/m/record-transformfields.md @@ -2,11 +2,6 @@ description: "Learn more about: Record.TransformFields" title: "Record.TransformFields" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Record.TransformFields diff --git a/query-languages/m/relativeposition-type.md b/query-languages/m/relativeposition-type.md index 51be748cb..bde9ea803 100644 --- a/query-languages/m/relativeposition-type.md +++ b/query-languages/m/relativeposition-type.md @@ -2,11 +2,6 @@ description: "Learn more about: RelativePosition.Type" title: "RelativePosition.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # RelativePosition.Type diff --git a/query-languages/m/replacer-functions.md b/query-languages/m/replacer-functions.md index c99c10c4c..94bd7efb9 100644 --- a/query-languages/m/replacer-functions.md +++ b/query-languages/m/replacer-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Replacer functions" title: "Replacer functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Replacer functions diff --git a/query-languages/m/replacer-replacetext.md b/query-languages/m/replacer-replacetext.md index e1ef43b81..3a4fbc90d 100644 --- a/query-languages/m/replacer-replacetext.md +++ b/query-languages/m/replacer-replacetext.md @@ -2,11 +2,6 @@ description: "Learn more about: Replacer.ReplaceText" title: "Replacer.ReplaceText" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Replacer.ReplaceText diff --git a/query-languages/m/replacer-replacevalue.md b/query-languages/m/replacer-replacevalue.md index 73e2c3946..25d98568f 100644 --- a/query-languages/m/replacer-replacevalue.md +++ b/query-languages/m/replacer-replacevalue.md @@ -2,11 +2,6 @@ description: "Learn more about: Replacer.ReplaceValue" title: "Replacer.ReplaceValue" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Replacer.ReplaceValue diff --git a/query-languages/m/roundingmode-type.md b/query-languages/m/roundingmode-type.md index 6aed7f615..424fefb0d 100644 --- a/query-languages/m/roundingmode-type.md +++ b/query-languages/m/roundingmode-type.md @@ -2,11 +2,6 @@ description: "Learn more about: RoundingMode.Type" title: "RoundingMode.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # RoundingMode.Type diff --git a/query-languages/m/rowexpression-column.md b/query-languages/m/rowexpression-column.md index 8f1134ab7..f12ae9303 100644 --- a/query-languages/m/rowexpression-column.md +++ b/query-languages/m/rowexpression-column.md @@ -2,11 +2,6 @@ description: "Learn more about: RowExpression.Column" title: "RowExpression.Column" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # RowExpression.Column diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 1a729ccbc..517acf59b 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -2,11 +2,6 @@ description: "Learn more about: RowExpression.From" title: "RowExpression.From" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # RowExpression.From diff --git a/query-languages/m/rowexpression-row.md b/query-languages/m/rowexpression-row.md index 2bfc2dcce..ddeaeed35 100644 --- a/query-languages/m/rowexpression-row.md +++ b/query-languages/m/rowexpression-row.md @@ -2,11 +2,6 @@ description: "Learn more about: RowExpression.Row" title: "RowExpression.Row" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # RowExpression.Row diff --git a/query-languages/m/salesforce-data.md b/query-languages/m/salesforce-data.md index 50552f313..8b11e196f 100644 --- a/query-languages/m/salesforce-data.md +++ b/query-languages/m/salesforce-data.md @@ -2,11 +2,6 @@ description: "Learn more about: Salesforce.Data" title: "Salesforce.Data" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Salesforce.Data diff --git a/query-languages/m/salesforce-reports.md b/query-languages/m/salesforce-reports.md index 224bedd5c..a95b141eb 100644 --- a/query-languages/m/salesforce-reports.md +++ b/query-languages/m/salesforce-reports.md @@ -2,11 +2,6 @@ description: "Learn more about: Salesforce.Reports" title: "Salesforce.Reports" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Salesforce.Reports diff --git a/query-languages/m/sapbusinesswarehouse-cubes.md b/query-languages/m/sapbusinesswarehouse-cubes.md index 066b8b498..7a791f28b 100644 --- a/query-languages/m/sapbusinesswarehouse-cubes.md +++ b/query-languages/m/sapbusinesswarehouse-cubes.md @@ -2,11 +2,6 @@ description: "Learn more about: SapBusinessWarehouse.Cubes" title: "SapBusinessWarehouse.Cubes" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SapBusinessWarehouse.Cubes diff --git a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md index 150d731ba..5f9190266 100644 --- a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md +++ b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md @@ -2,11 +2,6 @@ description: "Learn more about: SapBusinessWarehouseExecutionMode.Type" title: "SapBusinessWarehouseExecutionMode.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SapBusinessWarehouseExecutionMode.Type diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index 136575468..29f4427fd 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -2,11 +2,6 @@ description: "Learn more about: SapHana.Database" title: "SapHana.Database" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SapHana.Database diff --git a/query-languages/m/saphanadistribution-type.md b/query-languages/m/saphanadistribution-type.md index 61397e8a4..5a9abd512 100644 --- a/query-languages/m/saphanadistribution-type.md +++ b/query-languages/m/saphanadistribution-type.md @@ -2,11 +2,6 @@ description: "Learn more about: SapHanaDistribution.Type" title: "SapHanaDistribution.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SapHanaDistribution.Type diff --git a/query-languages/m/saphanarangeoperator-type.md b/query-languages/m/saphanarangeoperator-type.md index f0fe84c53..d37f613a4 100644 --- a/query-languages/m/saphanarangeoperator-type.md +++ b/query-languages/m/saphanarangeoperator-type.md @@ -2,11 +2,6 @@ description: "Learn more about: SapHanaRangeOperator.Type" title: "SapHanaRangeOperator.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SapHanaRangeOperator.Type diff --git a/query-languages/m/sharepoint-contents.md b/query-languages/m/sharepoint-contents.md index d76e40f70..2b56f49a3 100644 --- a/query-languages/m/sharepoint-contents.md +++ b/query-languages/m/sharepoint-contents.md @@ -2,11 +2,6 @@ description: "Learn more about: SharePoint.Contents" title: "SharePoint.Contents" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SharePoint.Contents diff --git a/query-languages/m/sharepoint-files.md b/query-languages/m/sharepoint-files.md index 5b9f2a0e1..bc8033ff5 100644 --- a/query-languages/m/sharepoint-files.md +++ b/query-languages/m/sharepoint-files.md @@ -2,11 +2,6 @@ description: "Learn more about: SharePoint.Files" title: "SharePoint.Files" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SharePoint.Files diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index 1d94607c2..b46b46108 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -2,11 +2,6 @@ description: "Learn more about: SharePoint.Tables" title: "SharePoint.Tables" ms.date: 9/14/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SharePoint.Tables diff --git a/query-languages/m/sharpbinary.md b/query-languages/m/sharpbinary.md index 3b083a524..fdb9dfd16 100644 --- a/query-languages/m/sharpbinary.md +++ b/query-languages/m/sharpbinary.md @@ -2,11 +2,6 @@ description: "Learn more about: #binary" title: "#binary" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # #binary ## Syntax diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index 56ed6a1b0..656db0b83 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -2,11 +2,6 @@ description: "Learn more about: #date" title: "#date" ms.date: 6/21/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # #date diff --git a/query-languages/m/sharpdatetime.md b/query-languages/m/sharpdatetime.md index 2298c6913..e3c55fa48 100644 --- a/query-languages/m/sharpdatetime.md +++ b/query-languages/m/sharpdatetime.md @@ -2,11 +2,6 @@ description: "Learn more about: #datetime" title: "#datetime" ms.date: 11/17/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # #datetime diff --git a/query-languages/m/sharpdatetimezone.md b/query-languages/m/sharpdatetimezone.md index 23e064fd4..1f71981c8 100644 --- a/query-languages/m/sharpdatetimezone.md +++ b/query-languages/m/sharpdatetimezone.md @@ -2,11 +2,6 @@ description: "Learn more about: #datetimezone" title: "#datetimezone" ms.date: 11/17/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # #datetimezone diff --git a/query-languages/m/sharpduration.md b/query-languages/m/sharpduration.md index e27cc9e9f..50982afc8 100644 --- a/query-languages/m/sharpduration.md +++ b/query-languages/m/sharpduration.md @@ -2,11 +2,6 @@ description: "Learn more about: #duration" title: "#duration" ms.date: 6/21/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # #duration diff --git a/query-languages/m/sharptable.md b/query-languages/m/sharptable.md index aa1509333..86d8c8d92 100644 --- a/query-languages/m/sharptable.md +++ b/query-languages/m/sharptable.md @@ -2,11 +2,6 @@ description: "Learn more about: #table" title: "#table" ms.date: 7/18/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # #table diff --git a/query-languages/m/sharptime.md b/query-languages/m/sharptime.md index 44f72aa99..c72bc98e7 100644 --- a/query-languages/m/sharptime.md +++ b/query-languages/m/sharptime.md @@ -2,11 +2,6 @@ description: "Learn more about: #time" title: "#time" ms.date: 6/21/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # #time diff --git a/query-languages/m/single-from.md b/query-languages/m/single-from.md index a8ec5dd7b..26d53e37b 100644 --- a/query-languages/m/single-from.md +++ b/query-languages/m/single-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Single.From" title: "Single.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Single.From diff --git a/query-languages/m/soda-feed.md b/query-languages/m/soda-feed.md index 84bb71098..45501f4cd 100644 --- a/query-languages/m/soda-feed.md +++ b/query-languages/m/soda-feed.md @@ -2,11 +2,6 @@ description: "Learn more about: Soda.Feed" title: "Soda.Feed" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Soda.Feed diff --git a/query-languages/m/splitter-functions.md b/query-languages/m/splitter-functions.md index ff5d15d23..f4fdee98f 100644 --- a/query-languages/m/splitter-functions.md +++ b/query-languages/m/splitter-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter functions" title: "Splitter functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter functions diff --git a/query-languages/m/splitter-splitbynothing.md b/query-languages/m/splitter-splitbynothing.md index b5f5abd54..a0d608532 100644 --- a/query-languages/m/splitter-splitbynothing.md +++ b/query-languages/m/splitter-splitbynothing.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitByNothing" title: "Splitter.SplitByNothing" ms.date: 8/1/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitByNothing diff --git a/query-languages/m/splitter-splittextbyanydelimiter.md b/query-languages/m/splitter-splittextbyanydelimiter.md index dcb22adc9..42e7a3dbc 100644 --- a/query-languages/m/splitter-splittextbyanydelimiter.md +++ b/query-languages/m/splitter-splittextbyanydelimiter.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitTextByAnyDelimiter" title: "Splitter.SplitTextByAnyDelimiter" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitTextByAnyDelimiter diff --git a/query-languages/m/splitter-splittextbycharactertransition.md b/query-languages/m/splitter-splittextbycharactertransition.md index df27930fe..36882f8b6 100644 --- a/query-languages/m/splitter-splittextbycharactertransition.md +++ b/query-languages/m/splitter-splittextbycharactertransition.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitTextByCharacterTransition" title: "Splitter.SplitTextByCharacterTransition" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitTextByCharacterTransition diff --git a/query-languages/m/splitter-splittextbydelimiter.md b/query-languages/m/splitter-splittextbydelimiter.md index b64efbd74..dae313509 100644 --- a/query-languages/m/splitter-splittextbydelimiter.md +++ b/query-languages/m/splitter-splittextbydelimiter.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitTextByDelimiter" title: "Splitter.SplitTextByDelimiter" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitTextByDelimiter diff --git a/query-languages/m/splitter-splittextbyeachdelimiter.md b/query-languages/m/splitter-splittextbyeachdelimiter.md index 5718648a0..8217818b4 100644 --- a/query-languages/m/splitter-splittextbyeachdelimiter.md +++ b/query-languages/m/splitter-splittextbyeachdelimiter.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitTextByEachDelimiter" title: "Splitter.SplitTextByEachDelimiter" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitTextByEachDelimiter diff --git a/query-languages/m/splitter-splittextbylengths.md b/query-languages/m/splitter-splittextbylengths.md index 853f9f509..efb582e60 100644 --- a/query-languages/m/splitter-splittextbylengths.md +++ b/query-languages/m/splitter-splittextbylengths.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitTextByLengths" title: "Splitter.SplitTextByLengths" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitTextByLengths diff --git a/query-languages/m/splitter-splittextbypositions.md b/query-languages/m/splitter-splittextbypositions.md index c38bc6ad5..b9103af72 100644 --- a/query-languages/m/splitter-splittextbypositions.md +++ b/query-languages/m/splitter-splittextbypositions.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitTextByPositions" title: "Splitter.SplitTextByPositions" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitTextByPositions diff --git a/query-languages/m/splitter-splittextbyranges.md b/query-languages/m/splitter-splittextbyranges.md index 5a0b61e68..553920ff5 100644 --- a/query-languages/m/splitter-splittextbyranges.md +++ b/query-languages/m/splitter-splittextbyranges.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitTextByRanges" title: "Splitter.SplitTextByRanges" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitTextByRanges diff --git a/query-languages/m/splitter-splittextbyrepeatedlengths.md b/query-languages/m/splitter-splittextbyrepeatedlengths.md index 9dc060f61..c89a4bffe 100644 --- a/query-languages/m/splitter-splittextbyrepeatedlengths.md +++ b/query-languages/m/splitter-splittextbyrepeatedlengths.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitTextByRepeatedLengths" title: "Splitter.SplitTextByRepeatedLengths" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitTextByRepeatedLengths diff --git a/query-languages/m/splitter-splittextbywhitespace.md b/query-languages/m/splitter-splittextbywhitespace.md index 069dd5cd3..0feb7d24a 100644 --- a/query-languages/m/splitter-splittextbywhitespace.md +++ b/query-languages/m/splitter-splittextbywhitespace.md @@ -2,11 +2,6 @@ description: "Learn more about: Splitter.SplitTextByWhitespace" title: "Splitter.SplitTextByWhitespace" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Splitter.SplitTextByWhitespace diff --git a/query-languages/m/sql-database.md b/query-languages/m/sql-database.md index a0a0c8407..e20820ff3 100644 --- a/query-languages/m/sql-database.md +++ b/query-languages/m/sql-database.md @@ -2,10 +2,6 @@ description: "Learn more about: Sql.Database" title: "Sql.Database" ms.date: 11/23/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Sql.Database diff --git a/query-languages/m/sql-databases.md b/query-languages/m/sql-databases.md index 618b677fb..07aeafdc3 100644 --- a/query-languages/m/sql-databases.md +++ b/query-languages/m/sql-databases.md @@ -2,10 +2,6 @@ description: "Learn more about: Sql.Databases" title: "Sql.Databases" ms.date: 11/23/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Sql.Databases diff --git a/query-languages/m/sqlexpression-schemafrom.md b/query-languages/m/sqlexpression-schemafrom.md index 925038903..9d3cf664a 100644 --- a/query-languages/m/sqlexpression-schemafrom.md +++ b/query-languages/m/sqlexpression-schemafrom.md @@ -2,11 +2,6 @@ description: "Learn more about: SqlExpression.SchemaFrom" title: "SqlExpression.SchemaFrom" ms.date: 10/18/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SqlExpression.SchemaFrom diff --git a/query-languages/m/sqlexpression-toexpression.md b/query-languages/m/sqlexpression-toexpression.md index 054b2f208..17c4def28 100644 --- a/query-languages/m/sqlexpression-toexpression.md +++ b/query-languages/m/sqlexpression-toexpression.md @@ -2,11 +2,6 @@ description: "Learn more about: SqlExpression.ToExpression" title: "SqlExpression.ToExpression" ms.date: 10/18/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # SqlExpression.ToExpression diff --git a/query-languages/m/sybase-database.md b/query-languages/m/sybase-database.md index 80ad77c98..a313cb68f 100644 --- a/query-languages/m/sybase-database.md +++ b/query-languages/m/sybase-database.md @@ -2,11 +2,6 @@ description: "Learn more about: Sybase.Database" title: "Sybase.Database" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Sybase.Database diff --git a/query-languages/m/table-addcolumn.md b/query-languages/m/table-addcolumn.md index f40a5d60f..762fafac5 100644 --- a/query-languages/m/table-addcolumn.md +++ b/query-languages/m/table-addcolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.AddColumn" title: "Table.AddColumn" ms.date: 3/9/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.AddColumn diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index ff7e1c202..d9583e1a7 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.AddFuzzyClusterColumn" title: "Table.AddFuzzyClusterColumn" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.AddFuzzyClusterColumn diff --git a/query-languages/m/table-addindexcolumn.md b/query-languages/m/table-addindexcolumn.md index 581203ff8..89232bf79 100644 --- a/query-languages/m/table-addindexcolumn.md +++ b/query-languages/m/table-addindexcolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.AddIndexColumn" title: "Table.AddIndexColumn" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.AddIndexColumn diff --git a/query-languages/m/table-addjoincolumn.md b/query-languages/m/table-addjoincolumn.md index b4f2ee236..fc3ebc82d 100644 --- a/query-languages/m/table-addjoincolumn.md +++ b/query-languages/m/table-addjoincolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.AddJoinColumn" title: "Table.AddJoinColumn" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.AddJoinColumn diff --git a/query-languages/m/table-addkey.md b/query-languages/m/table-addkey.md index bfa4745b8..8e95d0409 100644 --- a/query-languages/m/table-addkey.md +++ b/query-languages/m/table-addkey.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.AddKey" title: "Table.AddKey" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.AddKey diff --git a/query-languages/m/table-addrankcolumn.md b/query-languages/m/table-addrankcolumn.md index f903df09f..59aee943a 100644 --- a/query-languages/m/table-addrankcolumn.md +++ b/query-languages/m/table-addrankcolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.AddRankColumn" title: "Table.AddRankColumn" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.AddRankColumn diff --git a/query-languages/m/table-aggregatetablecolumn.md b/query-languages/m/table-aggregatetablecolumn.md index bb6aa3322..a02c998d6 100644 --- a/query-languages/m/table-aggregatetablecolumn.md +++ b/query-languages/m/table-aggregatetablecolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.AggregateTableColumn" title: "Table.AggregateTableColumn" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.AggregateTableColumn diff --git a/query-languages/m/table-alternaterows.md b/query-languages/m/table-alternaterows.md index 261be3050..6bd9d3016 100644 --- a/query-languages/m/table-alternaterows.md +++ b/query-languages/m/table-alternaterows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.AlternateRows" title: "Table.AlternateRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.AlternateRows diff --git a/query-languages/m/table-approximaterowcount.md b/query-languages/m/table-approximaterowcount.md index 4dd2ccb15..72737c354 100644 --- a/query-languages/m/table-approximaterowcount.md +++ b/query-languages/m/table-approximaterowcount.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ApproximateRowCount" title: "Table.ApproximateRowCount" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ApproximateRowCount diff --git a/query-languages/m/table-buffer.md b/query-languages/m/table-buffer.md index c5bdb9747..0c6dc2058 100644 --- a/query-languages/m/table-buffer.md +++ b/query-languages/m/table-buffer.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Buffer" title: "Table.Buffer" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Buffer diff --git a/query-languages/m/table-column.md b/query-languages/m/table-column.md index ca1e99f16..edc0e1eac 100644 --- a/query-languages/m/table-column.md +++ b/query-languages/m/table-column.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Column" title: "Table.Column" ms.date: 3/10/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Column diff --git a/query-languages/m/table-columncount.md b/query-languages/m/table-columncount.md index e48a6cc6a..f4480318d 100644 --- a/query-languages/m/table-columncount.md +++ b/query-languages/m/table-columncount.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ColumnCount" title: "Table.ColumnCount" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ColumnCount diff --git a/query-languages/m/table-columnnames.md b/query-languages/m/table-columnnames.md index 90bf4e9c5..804881397 100644 --- a/query-languages/m/table-columnnames.md +++ b/query-languages/m/table-columnnames.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ColumnNames" title: "Table.ColumnNames" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ColumnNames diff --git a/query-languages/m/table-columnsoftype.md b/query-languages/m/table-columnsoftype.md index 66d8273b3..2b313eae6 100644 --- a/query-languages/m/table-columnsoftype.md +++ b/query-languages/m/table-columnsoftype.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ColumnsOfType" title: "Table.ColumnsOfType" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ColumnsOfType diff --git a/query-languages/m/table-combine.md b/query-languages/m/table-combine.md index 334e00027..08565815e 100644 --- a/query-languages/m/table-combine.md +++ b/query-languages/m/table-combine.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Combine" title: "Table.Combine" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Combine diff --git a/query-languages/m/table-combinecolumns.md b/query-languages/m/table-combinecolumns.md index bae2f0090..8e27e2334 100644 --- a/query-languages/m/table-combinecolumns.md +++ b/query-languages/m/table-combinecolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.CombineColumns" title: "Table.CombineColumns" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.CombineColumns diff --git a/query-languages/m/table-combinecolumnstorecord.md b/query-languages/m/table-combinecolumnstorecord.md index d939f32f8..33873505a 100644 --- a/query-languages/m/table-combinecolumnstorecord.md +++ b/query-languages/m/table-combinecolumnstorecord.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.CombineColumnsToRecord" title: "Table.CombineColumnsToRecord" ms.date: 09/14/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.CombineColumnsToRecord diff --git a/query-languages/m/table-conformtopagereader.md b/query-languages/m/table-conformtopagereader.md index 1284ab494..7e52da974 100644 --- a/query-languages/m/table-conformtopagereader.md +++ b/query-languages/m/table-conformtopagereader.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ConformToPageReader" title: "Table.ConformToPageReader" ms.date: 8/21/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ConformToPageReader diff --git a/query-languages/m/table-contains.md b/query-languages/m/table-contains.md index 13e434878..08385862e 100644 --- a/query-languages/m/table-contains.md +++ b/query-languages/m/table-contains.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Contains" title: "Table.Contains" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Contains diff --git a/query-languages/m/table-containsall.md b/query-languages/m/table-containsall.md index a44df1042..0e12cfdb5 100644 --- a/query-languages/m/table-containsall.md +++ b/query-languages/m/table-containsall.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ContainsAll" title: "Table.ContainsAll" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ContainsAll diff --git a/query-languages/m/table-containsany.md b/query-languages/m/table-containsany.md index 651ea3e05..9dfb0a4ab 100644 --- a/query-languages/m/table-containsany.md +++ b/query-languages/m/table-containsany.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ContainsAny" title: "Table.ContainsAny" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ContainsAny diff --git a/query-languages/m/table-demoteheaders.md b/query-languages/m/table-demoteheaders.md index 4feb65b12..5d63d4aca 100644 --- a/query-languages/m/table-demoteheaders.md +++ b/query-languages/m/table-demoteheaders.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.DemoteHeaders" title: "Table.DemoteHeaders" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.DemoteHeaders diff --git a/query-languages/m/table-distinct.md b/query-languages/m/table-distinct.md index 1cc7ac8ce..6f85d0931 100644 --- a/query-languages/m/table-distinct.md +++ b/query-languages/m/table-distinct.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Distinct" title: "Table.Distinct" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Distinct diff --git a/query-languages/m/table-duplicatecolumn.md b/query-languages/m/table-duplicatecolumn.md index 726145ef4..06ac1035b 100644 --- a/query-languages/m/table-duplicatecolumn.md +++ b/query-languages/m/table-duplicatecolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.DuplicateColumn" title: "Table.DuplicateColumn" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.DuplicateColumn diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index 16e4c2304..1133dde60 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ExpandListColumn" title: "Table.ExpandListColumn" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ExpandListColumn diff --git a/query-languages/m/table-expandrecordcolumn.md b/query-languages/m/table-expandrecordcolumn.md index df054e0af..2fbe24231 100644 --- a/query-languages/m/table-expandrecordcolumn.md +++ b/query-languages/m/table-expandrecordcolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ExpandRecordColumn" title: "Table.ExpandRecordColumn" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ExpandRecordColumn diff --git a/query-languages/m/table-expandtablecolumn.md b/query-languages/m/table-expandtablecolumn.md index a6fa0b3f8..579cebd43 100644 --- a/query-languages/m/table-expandtablecolumn.md +++ b/query-languages/m/table-expandtablecolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ExpandTableColumn" title: "Table.ExpandTableColumn" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ExpandTableColumn diff --git a/query-languages/m/table-filldown.md b/query-languages/m/table-filldown.md index 04862a240..2205caf1f 100644 --- a/query-languages/m/table-filldown.md +++ b/query-languages/m/table-filldown.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FillDown" title: "Table.FillDown" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FillDown diff --git a/query-languages/m/table-fillup.md b/query-languages/m/table-fillup.md index 68c51a23d..fb368947e 100644 --- a/query-languages/m/table-fillup.md +++ b/query-languages/m/table-fillup.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FillUp" title: "Table.FillUp" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FillUp diff --git a/query-languages/m/table-filterwithdatatable.md b/query-languages/m/table-filterwithdatatable.md index 80dada326..53481b6ca 100644 --- a/query-languages/m/table-filterwithdatatable.md +++ b/query-languages/m/table-filterwithdatatable.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FilterWithDataTable" title: "Table.FilterWithDataTable" ms.date: 5/3/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FilterWithDataTable diff --git a/query-languages/m/table-findtext.md b/query-languages/m/table-findtext.md index 6f37a0069..88d2c66c0 100644 --- a/query-languages/m/table-findtext.md +++ b/query-languages/m/table-findtext.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FindText" title: "Table.FindText" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FindText diff --git a/query-languages/m/table-first.md b/query-languages/m/table-first.md index 82c91e527..63378a280 100644 --- a/query-languages/m/table-first.md +++ b/query-languages/m/table-first.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.First" title: "Table.First" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.First diff --git a/query-languages/m/table-firstn.md b/query-languages/m/table-firstn.md index 21979efd5..d18e6b85e 100644 --- a/query-languages/m/table-firstn.md +++ b/query-languages/m/table-firstn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FirstN" title: "Table.FirstN" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FirstN diff --git a/query-languages/m/table-firstvalue.md b/query-languages/m/table-firstvalue.md index f7c3a669a..8472077d6 100644 --- a/query-languages/m/table-firstvalue.md +++ b/query-languages/m/table-firstvalue.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FirstValue" title: "Table.FirstValue" ms.date: 8/1/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FirstValue diff --git a/query-languages/m/table-fromcolumns.md b/query-languages/m/table-fromcolumns.md index fef802502..a2a696454 100644 --- a/query-languages/m/table-fromcolumns.md +++ b/query-languages/m/table-fromcolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FromColumns" title: "Table.FromColumns" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FromColumns diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index 6ba0233a4..8499f3701 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FromList" title: "Table.FromList" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FromList diff --git a/query-languages/m/table-frompartitions.md b/query-languages/m/table-frompartitions.md index 20531bc7c..3c6ea06d4 100644 --- a/query-languages/m/table-frompartitions.md +++ b/query-languages/m/table-frompartitions.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FromPartitions" title: "Table.FromPartitions" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FromPartitions diff --git a/query-languages/m/table-fromrecords.md b/query-languages/m/table-fromrecords.md index af7361e53..ebac055e2 100644 --- a/query-languages/m/table-fromrecords.md +++ b/query-languages/m/table-fromrecords.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FromRecords" title: "Table.FromRecords" ms.date: 3/10/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FromRecords diff --git a/query-languages/m/table-fromrows.md b/query-languages/m/table-fromrows.md index 67ce32db7..27ddbed90 100644 --- a/query-languages/m/table-fromrows.md +++ b/query-languages/m/table-fromrows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FromRows" title: "Table.FromRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FromRows diff --git a/query-languages/m/table-fromvalue.md b/query-languages/m/table-fromvalue.md index c5b63a764..729168446 100644 --- a/query-languages/m/table-fromvalue.md +++ b/query-languages/m/table-fromvalue.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FromValue" title: "Table.FromValue" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FromValue diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index fd216a467..206025225 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Table functions" title: "Table functions" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table functions diff --git a/query-languages/m/table-fuzzygroup.md b/query-languages/m/table-fuzzygroup.md index 334e725f0..e8e822f4a 100644 --- a/query-languages/m/table-fuzzygroup.md +++ b/query-languages/m/table-fuzzygroup.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FuzzyGroup" title: "Table.FuzzyGroup" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FuzzyGroup diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index 382bb8253..3a264dae1 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FuzzyJoin" title: "Table.FuzzyJoin" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FuzzyJoin diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index c77a0ca8e..76634ea04 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.FuzzyNestedJoin" title: "Table.FuzzyNestedJoin" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.FuzzyNestedJoin diff --git a/query-languages/m/table-group.md b/query-languages/m/table-group.md index 758d912d7..e2a3f06a0 100644 --- a/query-languages/m/table-group.md +++ b/query-languages/m/table-group.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Group" title: "Table.Group" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Group diff --git a/query-languages/m/table-hascolumns.md b/query-languages/m/table-hascolumns.md index f9d94277a..fc3347e12 100644 --- a/query-languages/m/table-hascolumns.md +++ b/query-languages/m/table-hascolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.HasColumns" title: "Table.HasColumns" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.HasColumns diff --git a/query-languages/m/table-insertrows.md b/query-languages/m/table-insertrows.md index f40c82261..8400679a6 100644 --- a/query-languages/m/table-insertrows.md +++ b/query-languages/m/table-insertrows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.InsertRows" title: "Table.InsertRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.InsertRows diff --git a/query-languages/m/table-isdistinct.md b/query-languages/m/table-isdistinct.md index 01de97747..d866627a9 100644 --- a/query-languages/m/table-isdistinct.md +++ b/query-languages/m/table-isdistinct.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.IsDistinct" title: "Table.IsDistinct" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.IsDistinct diff --git a/query-languages/m/table-isempty.md b/query-languages/m/table-isempty.md index 6c9a6e721..1658d9c93 100644 --- a/query-languages/m/table-isempty.md +++ b/query-languages/m/table-isempty.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.IsEmpty" title: "Table.IsEmpty" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.IsEmpty diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index 6e400f29e..7d5b1b6dd 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Join" title: "Table.Join" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Join diff --git a/query-languages/m/table-keys.md b/query-languages/m/table-keys.md index b87fece93..01b6e9006 100644 --- a/query-languages/m/table-keys.md +++ b/query-languages/m/table-keys.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Keys" title: "Table.Keys" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Keys diff --git a/query-languages/m/table-last.md b/query-languages/m/table-last.md index affd77be8..760ce36a9 100644 --- a/query-languages/m/table-last.md +++ b/query-languages/m/table-last.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Last" title: "Table.Last" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Last diff --git a/query-languages/m/table-lastn.md b/query-languages/m/table-lastn.md index 5e055f91d..24c0a3fb4 100644 --- a/query-languages/m/table-lastn.md +++ b/query-languages/m/table-lastn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.LastN" title: "Table.LastN" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.LastN diff --git a/query-languages/m/table-matchesallrows.md b/query-languages/m/table-matchesallrows.md index 082e92aae..f55e1eee7 100644 --- a/query-languages/m/table-matchesallrows.md +++ b/query-languages/m/table-matchesallrows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.MatchesAllRows" title: "Table.MatchesAllRows" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.MatchesAllRows diff --git a/query-languages/m/table-matchesanyrows.md b/query-languages/m/table-matchesanyrows.md index 7d2a9cfdb..90a3cdbf2 100644 --- a/query-languages/m/table-matchesanyrows.md +++ b/query-languages/m/table-matchesanyrows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.MatchesAnyRows" title: "Table.MatchesAnyRows" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.MatchesAnyRows diff --git a/query-languages/m/table-max.md b/query-languages/m/table-max.md index db8fbd25d..ac8016bc6 100644 --- a/query-languages/m/table-max.md +++ b/query-languages/m/table-max.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Max" title: "Table.Max" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Max diff --git a/query-languages/m/table-maxn.md b/query-languages/m/table-maxn.md index 2c67e7426..1d4d35f59 100644 --- a/query-languages/m/table-maxn.md +++ b/query-languages/m/table-maxn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.MaxN" title: "Table.MaxN" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.MaxN diff --git a/query-languages/m/table-min.md b/query-languages/m/table-min.md index 98864afd3..cd77c60e8 100644 --- a/query-languages/m/table-min.md +++ b/query-languages/m/table-min.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Min" title: "Table.Min" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Min diff --git a/query-languages/m/table-minn.md b/query-languages/m/table-minn.md index 232aa22de..4a11bcee8 100644 --- a/query-languages/m/table-minn.md +++ b/query-languages/m/table-minn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.MinN" title: "Table.MinN" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.MinN diff --git a/query-languages/m/table-nestedjoin.md b/query-languages/m/table-nestedjoin.md index 6b434b7f0..758ac2fd6 100644 --- a/query-languages/m/table-nestedjoin.md +++ b/query-languages/m/table-nestedjoin.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.NestedJoin" title: "Table.NestedJoin" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.NestedJoin diff --git a/query-languages/m/table-partition.md b/query-languages/m/table-partition.md index 419939511..de9a951b4 100644 --- a/query-languages/m/table-partition.md +++ b/query-languages/m/table-partition.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Partition" title: "Table.Partition" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Partition diff --git a/query-languages/m/table-partitionvalues.md b/query-languages/m/table-partitionvalues.md index e1d96d167..ffe977733 100644 --- a/query-languages/m/table-partitionvalues.md +++ b/query-languages/m/table-partitionvalues.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.PartitionValues" title: "Table.PartitionValues" ms.date: 9/13/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.PartitionValues diff --git a/query-languages/m/table-pivot.md b/query-languages/m/table-pivot.md index cece8c061..e706819b9 100644 --- a/query-languages/m/table-pivot.md +++ b/query-languages/m/table-pivot.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Pivot" title: "Table.Pivot" ms.date: 3/10/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Pivot diff --git a/query-languages/m/table-positionof.md b/query-languages/m/table-positionof.md index 8b62936ad..2cb2bde19 100644 --- a/query-languages/m/table-positionof.md +++ b/query-languages/m/table-positionof.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.PositionOf" title: "Table.PositionOf" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.PositionOf diff --git a/query-languages/m/table-positionofany.md b/query-languages/m/table-positionofany.md index 6aba2764f..b985951e5 100644 --- a/query-languages/m/table-positionofany.md +++ b/query-languages/m/table-positionofany.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.PositionOfAny" title: "Table.PositionOfAny" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.PositionOfAny diff --git a/query-languages/m/table-prefixcolumns.md b/query-languages/m/table-prefixcolumns.md index bf08a1ff4..a52598290 100644 --- a/query-languages/m/table-prefixcolumns.md +++ b/query-languages/m/table-prefixcolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.PrefixColumns" title: "Table.PrefixColumns" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.PrefixColumns diff --git a/query-languages/m/table-profile.md b/query-languages/m/table-profile.md index d01933f9c..494b5422a 100644 --- a/query-languages/m/table-profile.md +++ b/query-languages/m/table-profile.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Profile" title: "Table.Profile" ms.date: 8/1/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Profile diff --git a/query-languages/m/table-promoteheaders.md b/query-languages/m/table-promoteheaders.md index a2a4dd7b7..ec0805859 100644 --- a/query-languages/m/table-promoteheaders.md +++ b/query-languages/m/table-promoteheaders.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.PromoteHeaders" title: "Table.PromoteHeaders" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.PromoteHeaders diff --git a/query-languages/m/table-range.md b/query-languages/m/table-range.md index 6bcee0eb4..cda95ef6f 100644 --- a/query-languages/m/table-range.md +++ b/query-languages/m/table-range.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Range" title: "Table.Range" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Range diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index 5235d43e2..1d22bd122 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.RemoveColumns" title: "Table.RemoveColumns" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.RemoveColumns diff --git a/query-languages/m/table-removefirstn.md b/query-languages/m/table-removefirstn.md index 62a5f9567..0d7ef5756 100644 --- a/query-languages/m/table-removefirstn.md +++ b/query-languages/m/table-removefirstn.md @@ -2,10 +2,6 @@ description: "Learn more about: Table.RemoveFirstN" title: "Table.RemoveFirstN" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Table.RemoveFirstN diff --git a/query-languages/m/table-removelastn.md b/query-languages/m/table-removelastn.md index d1a30549e..6afa7e128 100644 --- a/query-languages/m/table-removelastn.md +++ b/query-languages/m/table-removelastn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.RemoveLastN" title: "Table.RemoveLastN" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.RemoveLastN diff --git a/query-languages/m/table-removematchingrows.md b/query-languages/m/table-removematchingrows.md index 0fbd235f3..b04d3e120 100644 --- a/query-languages/m/table-removematchingrows.md +++ b/query-languages/m/table-removematchingrows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.RemoveMatchingRows" title: "Table.RemoveMatchingRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.RemoveMatchingRows diff --git a/query-languages/m/table-removerows.md b/query-languages/m/table-removerows.md index 0a83d7581..657dce866 100644 --- a/query-languages/m/table-removerows.md +++ b/query-languages/m/table-removerows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.RemoveRows" title: "Table.RemoveRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.RemoveRows diff --git a/query-languages/m/table-removerowswitherrors.md b/query-languages/m/table-removerowswitherrors.md index 05f31ea61..6ce0de71d 100644 --- a/query-languages/m/table-removerowswitherrors.md +++ b/query-languages/m/table-removerowswitherrors.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.RemoveRowsWithErrors" title: "Table.RemoveRowsWithErrors" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.RemoveRowsWithErrors diff --git a/query-languages/m/table-renamecolumns.md b/query-languages/m/table-renamecolumns.md index daacc2f4c..afda86ae0 100644 --- a/query-languages/m/table-renamecolumns.md +++ b/query-languages/m/table-renamecolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.RenameColumns" title: "Table.RenameColumns" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.RenameColumns diff --git a/query-languages/m/table-reordercolumns.md b/query-languages/m/table-reordercolumns.md index 7fb145462..96ba02710 100644 --- a/query-languages/m/table-reordercolumns.md +++ b/query-languages/m/table-reordercolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ReorderColumns" title: "Table.ReorderColumns" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ReorderColumns diff --git a/query-languages/m/table-repeat.md b/query-languages/m/table-repeat.md index 1b79156cb..05b7c8131 100644 --- a/query-languages/m/table-repeat.md +++ b/query-languages/m/table-repeat.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Repeat" title: "Table.Repeat" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Repeat diff --git a/query-languages/m/table-replaceerrorvalues.md b/query-languages/m/table-replaceerrorvalues.md index 19603e73b..edeffd73f 100644 --- a/query-languages/m/table-replaceerrorvalues.md +++ b/query-languages/m/table-replaceerrorvalues.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ReplaceErrorValues" title: "Table.ReplaceErrorValues" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ReplaceErrorValues diff --git a/query-languages/m/table-replacekeys.md b/query-languages/m/table-replacekeys.md index e0b3e6e5c..b0d35218a 100644 --- a/query-languages/m/table-replacekeys.md +++ b/query-languages/m/table-replacekeys.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ReplaceKeys" title: "Table.ReplaceKeys" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ReplaceKeys diff --git a/query-languages/m/table-replacematchingrows.md b/query-languages/m/table-replacematchingrows.md index ece0c68a9..6ab0f20da 100644 --- a/query-languages/m/table-replacematchingrows.md +++ b/query-languages/m/table-replacematchingrows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ReplaceMatchingRows" title: "Table.ReplaceMatchingRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ReplaceMatchingRows diff --git a/query-languages/m/table-replacerelationshipidentity.md b/query-languages/m/table-replacerelationshipidentity.md index ba2de69e3..03fe5c8ff 100644 --- a/query-languages/m/table-replacerelationshipidentity.md +++ b/query-languages/m/table-replacerelationshipidentity.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ReplaceRelationshipIdentity" title: "Table.ReplaceRelationshipIdentity" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ReplaceRelationshipIdentity diff --git a/query-languages/m/table-replacerows.md b/query-languages/m/table-replacerows.md index 9d7b9d27f..463402948 100644 --- a/query-languages/m/table-replacerows.md +++ b/query-languages/m/table-replacerows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ReplaceRows" title: "Table.ReplaceRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ReplaceRows diff --git a/query-languages/m/table-replacevalue.md b/query-languages/m/table-replacevalue.md index f3d9a8bd0..7def6f285 100644 --- a/query-languages/m/table-replacevalue.md +++ b/query-languages/m/table-replacevalue.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ReplaceValue" title: "Table.ReplaceValue" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ReplaceValue diff --git a/query-languages/m/table-reverserows.md b/query-languages/m/table-reverserows.md index 4535c6371..1830aeb09 100644 --- a/query-languages/m/table-reverserows.md +++ b/query-languages/m/table-reverserows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ReverseRows" title: "Table.ReverseRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ReverseRows diff --git a/query-languages/m/table-rowcount.md b/query-languages/m/table-rowcount.md index 8e2652656..e2226807d 100644 --- a/query-languages/m/table-rowcount.md +++ b/query-languages/m/table-rowcount.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.RowCount" title: "Table.RowCount" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.RowCount diff --git a/query-languages/m/table-schema.md b/query-languages/m/table-schema.md index 68299301d..4a980e408 100644 --- a/query-languages/m/table-schema.md +++ b/query-languages/m/table-schema.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Schema" title: "Table.Schema" ms.date: 11/17/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Schema diff --git a/query-languages/m/table-selectcolumns.md b/query-languages/m/table-selectcolumns.md index 534acd5d3..ed0c404e8 100644 --- a/query-languages/m/table-selectcolumns.md +++ b/query-languages/m/table-selectcolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.SelectColumns" title: "Table.SelectColumns" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.SelectColumns diff --git a/query-languages/m/table-selectrows.md b/query-languages/m/table-selectrows.md index 8f62ce511..3a284395c 100644 --- a/query-languages/m/table-selectrows.md +++ b/query-languages/m/table-selectrows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.SelectRows" title: "Table.SelectRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.SelectRows diff --git a/query-languages/m/table-selectrowswitherrors.md b/query-languages/m/table-selectrowswitherrors.md index 973c40cad..548c47a16 100644 --- a/query-languages/m/table-selectrowswitherrors.md +++ b/query-languages/m/table-selectrowswitherrors.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.SelectRowsWithErrors" title: "Table.SelectRowsWithErrors" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.SelectRowsWithErrors diff --git a/query-languages/m/table-singlerow.md b/query-languages/m/table-singlerow.md index ee0556ac2..c70270452 100644 --- a/query-languages/m/table-singlerow.md +++ b/query-languages/m/table-singlerow.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.SingleRow" title: "Table.SingleRow" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.SingleRow diff --git a/query-languages/m/table-skip.md b/query-languages/m/table-skip.md index 0e1b05f25..b7f8d0738 100644 --- a/query-languages/m/table-skip.md +++ b/query-languages/m/table-skip.md @@ -2,10 +2,6 @@ description: "Learn more about: Table.Skip" title: "Table.Skip" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Table.Skip diff --git a/query-languages/m/table-sort.md b/query-languages/m/table-sort.md index f25c6e021..f71d84992 100644 --- a/query-languages/m/table-sort.md +++ b/query-languages/m/table-sort.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Sort" title: "Table.Sort" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Sort diff --git a/query-languages/m/table-split.md b/query-languages/m/table-split.md index 57135ea59..298330c20 100644 --- a/query-languages/m/table-split.md +++ b/query-languages/m/table-split.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Split" title: "Table.Split" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Split diff --git a/query-languages/m/table-splitat.md b/query-languages/m/table-splitat.md index 1c0c65d08..ee15e4105 100644 --- a/query-languages/m/table-splitat.md +++ b/query-languages/m/table-splitat.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.SplitAt" title: "Table.SplitAt" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.SplitAt diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index 5316f12f0..95d7cf0ed 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.SplitColumn" title: "Table.SplitColumn" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.SplitColumn diff --git a/query-languages/m/table-stopfolding.md b/query-languages/m/table-stopfolding.md index a9b715a44..297dc8124 100644 --- a/query-languages/m/table-stopfolding.md +++ b/query-languages/m/table-stopfolding.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.StopFolding" title: "Table.StopFolding" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.StopFolding diff --git a/query-languages/m/table-tocolumns.md b/query-languages/m/table-tocolumns.md index 536818f8d..597ee1245 100644 --- a/query-languages/m/table-tocolumns.md +++ b/query-languages/m/table-tocolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ToColumns" title: "Table.ToColumns" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ToColumns diff --git a/query-languages/m/table-tolist.md b/query-languages/m/table-tolist.md index 776b2fe10..489eef762 100644 --- a/query-languages/m/table-tolist.md +++ b/query-languages/m/table-tolist.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ToList" title: "Table.ToList" ms.date: 5/3/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ToList diff --git a/query-languages/m/table-torecords.md b/query-languages/m/table-torecords.md index e01e2341c..00f19eff8 100644 --- a/query-languages/m/table-torecords.md +++ b/query-languages/m/table-torecords.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ToRecords" title: "Table.ToRecords" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ToRecords diff --git a/query-languages/m/table-torows.md b/query-languages/m/table-torows.md index 74204d5aa..0cabf6116 100644 --- a/query-languages/m/table-torows.md +++ b/query-languages/m/table-torows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ToRows" title: "Table.ToRows" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ToRows diff --git a/query-languages/m/table-transformcolumnnames.md b/query-languages/m/table-transformcolumnnames.md index 6bd034282..9c3e1c16e 100644 --- a/query-languages/m/table-transformcolumnnames.md +++ b/query-languages/m/table-transformcolumnnames.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.TransformColumnNames" title: "Table.TransformColumnNames" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.TransformColumnNames diff --git a/query-languages/m/table-transformcolumns.md b/query-languages/m/table-transformcolumns.md index 9efb411fc..a368b4afa 100644 --- a/query-languages/m/table-transformcolumns.md +++ b/query-languages/m/table-transformcolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.TransformColumns" title: "Table.TransformColumns" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.TransformColumns diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 1f0aa0bf9..cc9d10848 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.TransformColumnTypes" title: "Table.TransformColumnTypes" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.TransformColumnTypes diff --git a/query-languages/m/table-transformrows.md b/query-languages/m/table-transformrows.md index 5de675346..1f123835f 100644 --- a/query-languages/m/table-transformrows.md +++ b/query-languages/m/table-transformrows.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.TransformRows" title: "Table.TransformRows" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.TransformRows diff --git a/query-languages/m/table-transpose.md b/query-languages/m/table-transpose.md index 08e8a7f21..c37dc35b2 100644 --- a/query-languages/m/table-transpose.md +++ b/query-languages/m/table-transpose.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Transpose" title: "Table.Transpose" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Transpose diff --git a/query-languages/m/table-unpivot.md b/query-languages/m/table-unpivot.md index 8ac2c05a4..616f484b0 100644 --- a/query-languages/m/table-unpivot.md +++ b/query-languages/m/table-unpivot.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.Unpivot" title: "Table.Unpivot" ms.date: 3/10/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.Unpivot diff --git a/query-languages/m/table-unpivotothercolumns.md b/query-languages/m/table-unpivotothercolumns.md index c6552d980..4f96154e9 100644 --- a/query-languages/m/table-unpivotothercolumns.md +++ b/query-languages/m/table-unpivotothercolumns.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.UnpivotOtherColumns" title: "Table.UnpivotOtherColumns" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.UnpivotOtherColumns diff --git a/query-languages/m/table-view.md b/query-languages/m/table-view.md index 5b3f905a5..39f116f19 100644 --- a/query-languages/m/table-view.md +++ b/query-languages/m/table-view.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.View" title: "Table.View" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.View diff --git a/query-languages/m/table-viewerror.md b/query-languages/m/table-viewerror.md index e8d42a450..d5a4b28be 100644 --- a/query-languages/m/table-viewerror.md +++ b/query-languages/m/table-viewerror.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ViewError" title: "Table.ViewError" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ViewError diff --git a/query-languages/m/table-viewfunction.md b/query-languages/m/table-viewfunction.md index 547f6e479..f3ca792bb 100644 --- a/query-languages/m/table-viewfunction.md +++ b/query-languages/m/table-viewfunction.md @@ -2,11 +2,6 @@ description: "Learn more about: Table.ViewFunction" title: "Table.ViewFunction" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Table.ViewFunction diff --git a/query-languages/m/tables-getrelationships.md b/query-languages/m/tables-getrelationships.md index baf6c3245..26101ec1d 100644 --- a/query-languages/m/tables-getrelationships.md +++ b/query-languages/m/tables-getrelationships.md @@ -2,11 +2,6 @@ description: "Learn more about: Tables.GetRelationships" title: "Tables.GetRelationships" ms.date: 8/1/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Tables.GetRelationships diff --git a/query-languages/m/teradata-database.md b/query-languages/m/teradata-database.md index a1cf43809..82f27a71f 100644 --- a/query-languages/m/teradata-database.md +++ b/query-languages/m/teradata-database.md @@ -2,11 +2,6 @@ description: "Learn more about: Teradata.Database" title: "Teradata.Database" ms.date: 02/03/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Teradata.Database diff --git a/query-languages/m/text-afterdelimiter.md b/query-languages/m/text-afterdelimiter.md index cfe4221a2..bdd0effb0 100644 --- a/query-languages/m/text-afterdelimiter.md +++ b/query-languages/m/text-afterdelimiter.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.AfterDelimiter" title: "Text.AfterDelimiter" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.AfterDelimiter diff --git a/query-languages/m/text-at.md b/query-languages/m/text-at.md index 56d296965..17831322f 100644 --- a/query-languages/m/text-at.md +++ b/query-languages/m/text-at.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.At" title: "Text.At" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.At diff --git a/query-languages/m/text-beforedelimiter.md b/query-languages/m/text-beforedelimiter.md index a010d6842..918acdd48 100644 --- a/query-languages/m/text-beforedelimiter.md +++ b/query-languages/m/text-beforedelimiter.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.BeforeDelimiter" title: "Text.BeforeDelimiter" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.BeforeDelimiter diff --git a/query-languages/m/text-betweendelimiters.md b/query-languages/m/text-betweendelimiters.md index 584424809..b83df8327 100644 --- a/query-languages/m/text-betweendelimiters.md +++ b/query-languages/m/text-betweendelimiters.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.BetweenDelimiters" title: "Text.BetweenDelimiters" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.BetweenDelimiters diff --git a/query-languages/m/text-clean.md b/query-languages/m/text-clean.md index 851e77c9f..3c1127a29 100644 --- a/query-languages/m/text-clean.md +++ b/query-languages/m/text-clean.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Clean" title: "Text.Clean" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Clean diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 830b44b58..54198d612 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Combine" title: "Text.Combine" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Combine diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index d5a0c4f31..2a561d0bd 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Contains" title: "Text.Contains" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Contains diff --git a/query-languages/m/text-end.md b/query-languages/m/text-end.md index 9faea2b03..089fc48e3 100644 --- a/query-languages/m/text-end.md +++ b/query-languages/m/text-end.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.End" title: "Text.End" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.End diff --git a/query-languages/m/text-endswith.md b/query-languages/m/text-endswith.md index 5667c9b81..a0b1caacb 100644 --- a/query-languages/m/text-endswith.md +++ b/query-languages/m/text-endswith.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.EndsWith" title: "Text.EndsWith" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.EndsWith diff --git a/query-languages/m/text-format.md b/query-languages/m/text-format.md index 0feecccb5..6f7141d62 100644 --- a/query-languages/m/text-format.md +++ b/query-languages/m/text-format.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Format" title: "Text.Format" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Format diff --git a/query-languages/m/text-from.md b/query-languages/m/text-from.md index 672cbb801..3b3ab1f31 100644 --- a/query-languages/m/text-from.md +++ b/query-languages/m/text-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.From" title: "Text.From" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.From diff --git a/query-languages/m/text-frombinary.md b/query-languages/m/text-frombinary.md index c3b81ae5e..2ca6877ba 100644 --- a/query-languages/m/text-frombinary.md +++ b/query-languages/m/text-frombinary.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.FromBinary" title: "Text.FromBinary" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.FromBinary diff --git a/query-languages/m/text-functions.md b/query-languages/m/text-functions.md index c4c7d48c5..d78d7ba90 100644 --- a/query-languages/m/text-functions.md +++ b/query-languages/m/text-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Text functions" title: "Text functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text functions diff --git a/query-languages/m/text-infernumbertype.md b/query-languages/m/text-infernumbertype.md index 6a0089ed1..5b73e5eb4 100644 --- a/query-languages/m/text-infernumbertype.md +++ b/query-languages/m/text-infernumbertype.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.InferNumberType" title: "Text.InferNumberType" ms.date: 11/17/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.InferNumberType diff --git a/query-languages/m/text-insert.md b/query-languages/m/text-insert.md index 284dc38da..a2eb7d7a3 100644 --- a/query-languages/m/text-insert.md +++ b/query-languages/m/text-insert.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Insert" title: "Text.Insert" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Insert diff --git a/query-languages/m/text-length.md b/query-languages/m/text-length.md index 6d72fc023..58d4aee95 100644 --- a/query-languages/m/text-length.md +++ b/query-languages/m/text-length.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Length" title: "Text.Length" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Length diff --git a/query-languages/m/text-lower.md b/query-languages/m/text-lower.md index 1d8d3664d..c2000de1b 100644 --- a/query-languages/m/text-lower.md +++ b/query-languages/m/text-lower.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Lower" title: "Text.Lower" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Lower diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index 2722b6997..71d2b7cf3 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Middle" title: "Text.Middle" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Middle diff --git a/query-languages/m/text-newguid.md b/query-languages/m/text-newguid.md index 3d424833f..ca2bb5668 100644 --- a/query-languages/m/text-newguid.md +++ b/query-languages/m/text-newguid.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.NewGuid" title: "Text.NewGuid" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.NewGuid diff --git a/query-languages/m/text-padend.md b/query-languages/m/text-padend.md index 752b8c9db..de2cd4f11 100644 --- a/query-languages/m/text-padend.md +++ b/query-languages/m/text-padend.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.PadEnd" title: "Text.PadEnd" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.PadEnd diff --git a/query-languages/m/text-padstart.md b/query-languages/m/text-padstart.md index 24bc75fcc..db680c02b 100644 --- a/query-languages/m/text-padstart.md +++ b/query-languages/m/text-padstart.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.PadStart" title: "Text.PadStart" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.PadStart diff --git a/query-languages/m/text-positionof.md b/query-languages/m/text-positionof.md index b4ebf2d7f..e19094558 100644 --- a/query-languages/m/text-positionof.md +++ b/query-languages/m/text-positionof.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.PositionOf" title: "Text.PositionOf" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.PositionOf diff --git a/query-languages/m/text-positionofany.md b/query-languages/m/text-positionofany.md index 3fd9d6c02..3b3bbbf32 100644 --- a/query-languages/m/text-positionofany.md +++ b/query-languages/m/text-positionofany.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.PositionOfAny" title: "Text.PositionOfAny" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.PositionOfAny diff --git a/query-languages/m/text-proper.md b/query-languages/m/text-proper.md index 7ba60e0eb..0416efaaa 100644 --- a/query-languages/m/text-proper.md +++ b/query-languages/m/text-proper.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Proper" title: "Text.Proper" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Proper diff --git a/query-languages/m/text-range.md b/query-languages/m/text-range.md index b6483cd77..b9f6d1158 100644 --- a/query-languages/m/text-range.md +++ b/query-languages/m/text-range.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Range" title: "Text.Range" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Range diff --git a/query-languages/m/text-remove.md b/query-languages/m/text-remove.md index ac5742f1c..84d0e8516 100644 --- a/query-languages/m/text-remove.md +++ b/query-languages/m/text-remove.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Remove" title: "Text.Remove" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Remove diff --git a/query-languages/m/text-removerange.md b/query-languages/m/text-removerange.md index 84abfb21b..6a6f8bc2c 100644 --- a/query-languages/m/text-removerange.md +++ b/query-languages/m/text-removerange.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.RemoveRange" title: "Text.RemoveRange" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.RemoveRange diff --git a/query-languages/m/text-repeat.md b/query-languages/m/text-repeat.md index c0fe33508..190502209 100644 --- a/query-languages/m/text-repeat.md +++ b/query-languages/m/text-repeat.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Repeat" title: "Text.Repeat" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Repeat diff --git a/query-languages/m/text-replace.md b/query-languages/m/text-replace.md index ab8b9083a..2cbc362ca 100644 --- a/query-languages/m/text-replace.md +++ b/query-languages/m/text-replace.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Replace" title: "Text.Replace" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Replace diff --git a/query-languages/m/text-replacerange.md b/query-languages/m/text-replacerange.md index 79eb2a52f..fb3e2bed1 100644 --- a/query-languages/m/text-replacerange.md +++ b/query-languages/m/text-replacerange.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.ReplaceRange" title: "Text.ReplaceRange" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.ReplaceRange diff --git a/query-languages/m/text-reverse.md b/query-languages/m/text-reverse.md index cb2eb8187..b33cfb775 100644 --- a/query-languages/m/text-reverse.md +++ b/query-languages/m/text-reverse.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Reverse" title: "Text.Reverse" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Reverse diff --git a/query-languages/m/text-select.md b/query-languages/m/text-select.md index af2bde3ce..f689746ff 100644 --- a/query-languages/m/text-select.md +++ b/query-languages/m/text-select.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Select" title: "Text.Select" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Select diff --git a/query-languages/m/text-split.md b/query-languages/m/text-split.md index 9d5235c0d..c34e0887a 100644 --- a/query-languages/m/text-split.md +++ b/query-languages/m/text-split.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Split" title: "Text.Split" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Split diff --git a/query-languages/m/text-splitany.md b/query-languages/m/text-splitany.md index 11380039f..8468eea85 100644 --- a/query-languages/m/text-splitany.md +++ b/query-languages/m/text-splitany.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.SplitAny" title: "Text.SplitAny" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.SplitAny diff --git a/query-languages/m/text-start.md b/query-languages/m/text-start.md index ff20bb481..03d48437e 100644 --- a/query-languages/m/text-start.md +++ b/query-languages/m/text-start.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Start" title: "Text.Start" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Start diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index c78cd5828..3710b66b3 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.StartsWith" title: "Text.StartsWith" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.StartsWith diff --git a/query-languages/m/text-tobinary.md b/query-languages/m/text-tobinary.md index 8d072ab07..92f6b99d7 100644 --- a/query-languages/m/text-tobinary.md +++ b/query-languages/m/text-tobinary.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.ToBinary" title: "Text.ToBinary" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.ToBinary diff --git a/query-languages/m/text-tolist.md b/query-languages/m/text-tolist.md index 8d71812ab..5e0edee4e 100644 --- a/query-languages/m/text-tolist.md +++ b/query-languages/m/text-tolist.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.ToList" title: "Text.ToList" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.ToList diff --git a/query-languages/m/text-trim.md b/query-languages/m/text-trim.md index 3abe6596b..e8afdc3e2 100644 --- a/query-languages/m/text-trim.md +++ b/query-languages/m/text-trim.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Trim" title: "Text.Trim" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Trim diff --git a/query-languages/m/text-trimend.md b/query-languages/m/text-trimend.md index f927fa401..acfe47e33 100644 --- a/query-languages/m/text-trimend.md +++ b/query-languages/m/text-trimend.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.TrimEnd" title: "Text.TrimEnd" ms.date: 4/22/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.TrimEnd diff --git a/query-languages/m/text-trimstart.md b/query-languages/m/text-trimstart.md index 256fc69bb..f9861bf85 100644 --- a/query-languages/m/text-trimstart.md +++ b/query-languages/m/text-trimstart.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.TrimStart" title: "Text.TrimStart" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.TrimStart diff --git a/query-languages/m/text-upper.md b/query-languages/m/text-upper.md index 54f04cb4f..53744baf2 100644 --- a/query-languages/m/text-upper.md +++ b/query-languages/m/text-upper.md @@ -2,11 +2,6 @@ description: "Learn more about: Text.Upper" title: "Text.Upper" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Text.Upper diff --git a/query-languages/m/textencoding-type.md b/query-languages/m/textencoding-type.md index 4b41dfd1d..bb8faf8ff 100644 --- a/query-languages/m/textencoding-type.md +++ b/query-languages/m/textencoding-type.md @@ -2,11 +2,6 @@ description: "Learn more about: TextEncoding.Type" title: "TextEncoding.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # TextEncoding.Type diff --git a/query-languages/m/time-endofhour.md b/query-languages/m/time-endofhour.md index 34a140648..5dde3c958 100644 --- a/query-languages/m/time-endofhour.md +++ b/query-languages/m/time-endofhour.md @@ -2,11 +2,6 @@ description: "Learn more about: Time.EndOfHour" title: "Time.EndOfHour" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time.EndOfHour diff --git a/query-languages/m/time-from.md b/query-languages/m/time-from.md index 5219cd07e..2eded01a5 100644 --- a/query-languages/m/time-from.md +++ b/query-languages/m/time-from.md @@ -2,11 +2,6 @@ description: "Learn more about: Time.From" title: "Time.From" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time.From diff --git a/query-languages/m/time-fromtext.md b/query-languages/m/time-fromtext.md index 0b8f69779..62ee6947c 100644 --- a/query-languages/m/time-fromtext.md +++ b/query-languages/m/time-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: Time.FromText" title: "Time.FromText" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time.FromText diff --git a/query-languages/m/time-functions.md b/query-languages/m/time-functions.md index 922f463bb..d4c17615a 100644 --- a/query-languages/m/time-functions.md +++ b/query-languages/m/time-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Time functions" title: "Time functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time functions diff --git a/query-languages/m/time-hour.md b/query-languages/m/time-hour.md index 164fe7518..21dbbfac7 100644 --- a/query-languages/m/time-hour.md +++ b/query-languages/m/time-hour.md @@ -2,11 +2,6 @@ description: "Learn more about: Time.Hour" title: "Time.Hour" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time.Hour diff --git a/query-languages/m/time-minute.md b/query-languages/m/time-minute.md index af0b61a8f..6ec2aed66 100644 --- a/query-languages/m/time-minute.md +++ b/query-languages/m/time-minute.md @@ -2,11 +2,6 @@ description: "Learn more about: Time.Minute" title: "Time.Minute" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time.Minute diff --git a/query-languages/m/time-second.md b/query-languages/m/time-second.md index bbaebf3ee..e352e7419 100644 --- a/query-languages/m/time-second.md +++ b/query-languages/m/time-second.md @@ -2,11 +2,6 @@ description: "Learn more about: Time.Second" title: "Time.Second" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time.Second diff --git a/query-languages/m/time-startofhour.md b/query-languages/m/time-startofhour.md index f91b1a647..e39582d43 100644 --- a/query-languages/m/time-startofhour.md +++ b/query-languages/m/time-startofhour.md @@ -2,11 +2,6 @@ description: "Learn more about: Time.StartOfHour" title: "Time.StartOfHour" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time.StartOfHour diff --git a/query-languages/m/time-torecord.md b/query-languages/m/time-torecord.md index 8c2c9240a..e2f5debde 100644 --- a/query-languages/m/time-torecord.md +++ b/query-languages/m/time-torecord.md @@ -2,11 +2,6 @@ description: "Learn more about: Time.ToRecord" title: "Time.ToRecord" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time.ToRecord diff --git a/query-languages/m/time-totext.md b/query-languages/m/time-totext.md index 202fa8434..9ff6a22b3 100644 --- a/query-languages/m/time-totext.md +++ b/query-languages/m/time-totext.md @@ -2,11 +2,6 @@ description: "Learn more about: Time.ToText" title: "Time.ToText" ms.date: 6/24/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Time.ToText diff --git a/query-languages/m/timezone-current.md b/query-languages/m/timezone-current.md index 21e8c7b0e..c50629c2d 100644 --- a/query-languages/m/timezone-current.md +++ b/query-languages/m/timezone-current.md @@ -2,11 +2,6 @@ description: "Learn more about: TimeZone.Current" title: "TimeZone.Current" ms.date: 9/13/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # TimeZone.Current diff --git a/query-languages/m/tracelevel-type.md b/query-languages/m/tracelevel-type.md index cf73a6b45..c5aedcda9 100644 --- a/query-languages/m/tracelevel-type.md +++ b/query-languages/m/tracelevel-type.md @@ -2,11 +2,6 @@ description: "Learn more about: TraceLevel.Type" title: "TraceLevel.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # TraceLevel.Type diff --git a/query-languages/m/type-addtablekey.md b/query-languages/m/type-addtablekey.md index 8c062a297..53fec054c 100644 --- a/query-languages/m/type-addtablekey.md +++ b/query-languages/m/type-addtablekey.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.AddTableKey" title: "Type.AddTableKey" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.AddTableKey diff --git a/query-languages/m/type-closedrecord.md b/query-languages/m/type-closedrecord.md index 6fb3f65d4..c7ba881c8 100644 --- a/query-languages/m/type-closedrecord.md +++ b/query-languages/m/type-closedrecord.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.ClosedRecord" title: "Type.ClosedRecord" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.ClosedRecord diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 3d6e43675..2ccd48779 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -2,11 +2,6 @@ description: "Learn more about: Type conversion" title: "Type conversion" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type conversion The Power Query M formula language has formulas to convert between types. The following is a summary of conversion formulas in M. diff --git a/query-languages/m/type-facets.md b/query-languages/m/type-facets.md index 0fec4a03e..f62597734 100644 --- a/query-languages/m/type-facets.md +++ b/query-languages/m/type-facets.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.Facets" title: "Type.Facets" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.Facets diff --git a/query-languages/m/type-forfunction.md b/query-languages/m/type-forfunction.md index 868ea5761..7fd2d7be2 100644 --- a/query-languages/m/type-forfunction.md +++ b/query-languages/m/type-forfunction.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.ForFunction" title: "Type.ForFunction" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.ForFunction diff --git a/query-languages/m/type-forrecord.md b/query-languages/m/type-forrecord.md index a2e650238..2ed9a888f 100644 --- a/query-languages/m/type-forrecord.md +++ b/query-languages/m/type-forrecord.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.ForRecord" title: "Type.ForRecord" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.ForRecord diff --git a/query-languages/m/type-functionparameters.md b/query-languages/m/type-functionparameters.md index f4a44f1b0..2cc18ddc2 100644 --- a/query-languages/m/type-functionparameters.md +++ b/query-languages/m/type-functionparameters.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.FunctionParameters" title: "Type.FunctionParameters" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.FunctionParameters diff --git a/query-languages/m/type-functionrequiredparameters.md b/query-languages/m/type-functionrequiredparameters.md index 1afcb88b0..bf6d29499 100644 --- a/query-languages/m/type-functionrequiredparameters.md +++ b/query-languages/m/type-functionrequiredparameters.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.FunctionRequiredParameters" title: "Type.FunctionRequiredParameters" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.FunctionRequiredParameters diff --git a/query-languages/m/type-functionreturn.md b/query-languages/m/type-functionreturn.md index fc5d2849f..191e158a1 100644 --- a/query-languages/m/type-functionreturn.md +++ b/query-languages/m/type-functionreturn.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.FunctionReturn" title: "Type.FunctionReturn" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.FunctionReturn diff --git a/query-languages/m/type-functions.md b/query-languages/m/type-functions.md index 95c6799da..072e9dc43 100644 --- a/query-languages/m/type-functions.md +++ b/query-languages/m/type-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Type functions" title: "Type functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type functions diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index ff77a3fbf..5e242ccbd 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.Is" title: "Type.Is" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.Is diff --git a/query-languages/m/type-isnullable.md b/query-languages/m/type-isnullable.md index 422f0db8b..487432e6a 100644 --- a/query-languages/m/type-isnullable.md +++ b/query-languages/m/type-isnullable.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.IsNullable" title: "Type.IsNullable" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.IsNullable diff --git a/query-languages/m/type-isopenrecord.md b/query-languages/m/type-isopenrecord.md index b80c79180..e1aaa1a1f 100644 --- a/query-languages/m/type-isopenrecord.md +++ b/query-languages/m/type-isopenrecord.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.IsOpenRecord" title: "Type.IsOpenRecord" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.IsOpenRecord diff --git a/query-languages/m/type-listitem.md b/query-languages/m/type-listitem.md index 39013c49b..9539b32a5 100644 --- a/query-languages/m/type-listitem.md +++ b/query-languages/m/type-listitem.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.ListItem" title: "Type.ListItem" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.ListItem diff --git a/query-languages/m/type-nonnullable.md b/query-languages/m/type-nonnullable.md index 5ad801747..742dc72e7 100644 --- a/query-languages/m/type-nonnullable.md +++ b/query-languages/m/type-nonnullable.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.NonNullable" title: "Type.NonNullable" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.NonNullable diff --git a/query-languages/m/type-openrecord.md b/query-languages/m/type-openrecord.md index e34a55def..e2f94564d 100644 --- a/query-languages/m/type-openrecord.md +++ b/query-languages/m/type-openrecord.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.OpenRecord" title: "Type.OpenRecord" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.OpenRecord diff --git a/query-languages/m/type-recordfields.md b/query-languages/m/type-recordfields.md index b388c114b..c49ce6e91 100644 --- a/query-languages/m/type-recordfields.md +++ b/query-languages/m/type-recordfields.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.RecordFields" title: "Type.RecordFields" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.RecordFields diff --git a/query-languages/m/type-replacefacets.md b/query-languages/m/type-replacefacets.md index 1f6490914..a143d0d04 100644 --- a/query-languages/m/type-replacefacets.md +++ b/query-languages/m/type-replacefacets.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.ReplaceFacets" title: "Type.ReplaceFacets" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.ReplaceFacets diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index eaeb05cd5..b3a37357f 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.ReplaceTableKeys" title: "Type.ReplaceTableKeys" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.ReplaceTableKeys diff --git a/query-languages/m/type-tablecolumn.md b/query-languages/m/type-tablecolumn.md index 016a14486..fa6220cdf 100644 --- a/query-languages/m/type-tablecolumn.md +++ b/query-languages/m/type-tablecolumn.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.TableColumn" title: "Type.TableColumn" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.TableColumn diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index ab147b17f..929f0054d 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.TableKeys" title: "Type.TableKeys" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.TableKeys diff --git a/query-languages/m/type-tablerow.md b/query-languages/m/type-tablerow.md index fe1685172..502de33ed 100644 --- a/query-languages/m/type-tablerow.md +++ b/query-languages/m/type-tablerow.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.TableRow" title: "Type.TableRow" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.TableRow diff --git a/query-languages/m/type-tableschema.md b/query-languages/m/type-tableschema.md index 3c0a99c12..8f1191c6f 100644 --- a/query-languages/m/type-tableschema.md +++ b/query-languages/m/type-tableschema.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.TableSchema" title: "Type.TableSchema" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.TableSchema diff --git a/query-languages/m/type-union.md b/query-languages/m/type-union.md index 11ad32918..e55107562 100644 --- a/query-languages/m/type-union.md +++ b/query-languages/m/type-union.md @@ -2,11 +2,6 @@ description: "Learn more about: Type.Union" title: "Type.Union" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Type.Union diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index 909a2f111..061f253eb 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Understanding Power Query M functions" title: "Understanding Power Query M functions" ms.date: 4/16/2018 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Understanding Power Query M functions In the Power Query M formula language, a **function** is a mapping from a set of input values to a single output value. A function is written by first naming the function parameters, and then providing an expression to compute the result of the function. The body of the function follows the goes-to (=>) symbol. Optionally, type information can be included on parameters and the function return value. A function is defined and invoked in the body of a **let** statement. Parameters and/or return value can be implicit or explicit. Implicit parameters and/or return value are of type **any**. Type **any** is similar to an object type in other languages. All types in M derive from type **any**. diff --git a/query-languages/m/uri-buildquerystring.md b/query-languages/m/uri-buildquerystring.md index ae0bc27ad..e94220646 100644 --- a/query-languages/m/uri-buildquerystring.md +++ b/query-languages/m/uri-buildquerystring.md @@ -2,11 +2,6 @@ description: "Learn more about: Uri.BuildQueryString" title: "Uri.BuildQueryString" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Uri.BuildQueryString diff --git a/query-languages/m/uri-combine.md b/query-languages/m/uri-combine.md index 326603113..1e13a358c 100644 --- a/query-languages/m/uri-combine.md +++ b/query-languages/m/uri-combine.md @@ -2,11 +2,6 @@ description: "Learn more about: Uri.Combine" title: "Uri.Combine" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Uri.Combine diff --git a/query-languages/m/uri-escapedatastring.md b/query-languages/m/uri-escapedatastring.md index 52eff0f9b..523ceac19 100644 --- a/query-languages/m/uri-escapedatastring.md +++ b/query-languages/m/uri-escapedatastring.md @@ -2,11 +2,6 @@ description: "Learn more about: Uri.EscapeDataString" title: "Uri.EscapeDataString" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Uri.EscapeDataString diff --git a/query-languages/m/uri-functions.md b/query-languages/m/uri-functions.md index 161e9090a..0a2bb72ac 100644 --- a/query-languages/m/uri-functions.md +++ b/query-languages/m/uri-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Uri functions" title: "Uri functions" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Uri functions diff --git a/query-languages/m/uri-parts.md b/query-languages/m/uri-parts.md index 28bfa9b58..511d8be26 100644 --- a/query-languages/m/uri-parts.md +++ b/query-languages/m/uri-parts.md @@ -2,11 +2,6 @@ description: "Learn more about: Uri.Parts" title: "Uri.Parts" ms.date: 3/11/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Uri.Parts diff --git a/query-languages/m/value-add.md b/query-languages/m/value-add.md index 311b018f9..0fda9c364 100644 --- a/query-languages/m/value-add.md +++ b/query-languages/m/value-add.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Add" title: "Value.Add" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Add diff --git a/query-languages/m/value-alternates.md b/query-languages/m/value-alternates.md index dcc4cd481..33e5f585f 100644 --- a/query-languages/m/value-alternates.md +++ b/query-languages/m/value-alternates.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Alternates" title: "Value.Alternates" ms.date: 5/12/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Alternates diff --git a/query-languages/m/value-as.md b/query-languages/m/value-as.md index 510f6754b..f1273924e 100644 --- a/query-languages/m/value-as.md +++ b/query-languages/m/value-as.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.As" title: "Value.As" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.As diff --git a/query-languages/m/value-compare.md b/query-languages/m/value-compare.md index e76fb7a8e..db77e6055 100644 --- a/query-languages/m/value-compare.md +++ b/query-languages/m/value-compare.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Compare" title: "Value.Compare" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Compare diff --git a/query-languages/m/value-divide.md b/query-languages/m/value-divide.md index a411998e5..f4faeaa97 100644 --- a/query-languages/m/value-divide.md +++ b/query-languages/m/value-divide.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Divide" title: "Value.Divide" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Divide diff --git a/query-languages/m/value-equals.md b/query-languages/m/value-equals.md index 3c5e6d5e3..eecae0ace 100644 --- a/query-languages/m/value-equals.md +++ b/query-languages/m/value-equals.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Equals" title: "Value.Equals" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Equals diff --git a/query-languages/m/value-expression.md b/query-languages/m/value-expression.md index 48bff37a1..da5fcc50b 100644 --- a/query-languages/m/value-expression.md +++ b/query-languages/m/value-expression.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Expression" title: "Value.Expression" ms.date: 3/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Expression diff --git a/query-languages/m/value-firewall.md b/query-languages/m/value-firewall.md index 5b0716ce2..b5a6120ca 100644 --- a/query-languages/m/value-firewall.md +++ b/query-languages/m/value-firewall.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Firewall" title: "Value.Firewall" ms.date: 10/18/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Firewall diff --git a/query-languages/m/value-fromtext.md b/query-languages/m/value-fromtext.md index 6e7d92abc..267d67378 100644 --- a/query-languages/m/value-fromtext.md +++ b/query-languages/m/value-fromtext.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.FromText" title: "Value.FromText" ms.date: 4/1/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.FromText diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 32ced2e33..7816becad 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -2,11 +2,6 @@ description: "Learn more about: Value functions" title: "Value functions" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value functions diff --git a/query-languages/m/value-is.md b/query-languages/m/value-is.md index 2fcc333c1..793b75342 100644 --- a/query-languages/m/value-is.md +++ b/query-languages/m/value-is.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Is" title: "Value.Is" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Is diff --git a/query-languages/m/value-lineage.md b/query-languages/m/value-lineage.md index 66320fa2b..cc29f902d 100644 --- a/query-languages/m/value-lineage.md +++ b/query-languages/m/value-lineage.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Lineage" title: "Value.Lineage" ms.date: 9/22/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Lineage diff --git a/query-languages/m/value-metadata.md b/query-languages/m/value-metadata.md index 81cf9bae7..5bc961fc7 100644 --- a/query-languages/m/value-metadata.md +++ b/query-languages/m/value-metadata.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Metadata" title: "Value.Metadata" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Metadata diff --git a/query-languages/m/value-multiply.md b/query-languages/m/value-multiply.md index cc411abd0..02b145e67 100644 --- a/query-languages/m/value-multiply.md +++ b/query-languages/m/value-multiply.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Multiply" title: "Value.Multiply" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Multiply diff --git a/query-languages/m/value-nativequery.md b/query-languages/m/value-nativequery.md index 9bc1ecc04..2ad9b5fa2 100644 --- a/query-languages/m/value-nativequery.md +++ b/query-languages/m/value-nativequery.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.NativeQuery" title: "Value.NativeQuery" ms.date: 11/17/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.NativeQuery diff --git a/query-languages/m/value-nullableequals.md b/query-languages/m/value-nullableequals.md index 081a4d058..3ac3d9952 100644 --- a/query-languages/m/value-nullableequals.md +++ b/query-languages/m/value-nullableequals.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.NullableEquals" title: "Value.NullableEquals" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.NullableEquals diff --git a/query-languages/m/value-optimize.md b/query-languages/m/value-optimize.md index 51cf23670..3602c30dc 100644 --- a/query-languages/m/value-optimize.md +++ b/query-languages/m/value-optimize.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Optimize" title: "Value.Optimize" ms.date: 06/16/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Optimize diff --git a/query-languages/m/value-removemetadata.md b/query-languages/m/value-removemetadata.md index b6bc3b491..edaf0d2dd 100644 --- a/query-languages/m/value-removemetadata.md +++ b/query-languages/m/value-removemetadata.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.RemoveMetadata" title: "Value.RemoveMetadata" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.RemoveMetadata diff --git a/query-languages/m/value-replacemetadata.md b/query-languages/m/value-replacemetadata.md index 268704817..b89172812 100644 --- a/query-languages/m/value-replacemetadata.md +++ b/query-languages/m/value-replacemetadata.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.ReplaceMetadata" title: "Value.ReplaceMetadata" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.ReplaceMetadata diff --git a/query-languages/m/value-replacetype.md b/query-languages/m/value-replacetype.md index ea0f77ad9..5be126d4c 100644 --- a/query-languages/m/value-replacetype.md +++ b/query-languages/m/value-replacetype.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.ReplaceType" title: "Value.ReplaceType" ms.date: 4/13/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.ReplaceType diff --git a/query-languages/m/value-subtract.md b/query-languages/m/value-subtract.md index 253dfca6b..413918ff3 100644 --- a/query-languages/m/value-subtract.md +++ b/query-languages/m/value-subtract.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Subtract" title: "Value.Subtract" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Subtract diff --git a/query-languages/m/value-traits.md b/query-languages/m/value-traits.md index 7d485618a..1447c98a9 100644 --- a/query-languages/m/value-traits.md +++ b/query-languages/m/value-traits.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Traits" title: "Value.Traits" ms.date: 9/22/2020 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Traits diff --git a/query-languages/m/value-type.md b/query-languages/m/value-type.md index b49207a0b..9d7ae3146 100644 --- a/query-languages/m/value-type.md +++ b/query-languages/m/value-type.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Type" title: "Value.Type" ms.date: 8/2/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Type diff --git a/query-languages/m/value-versionidentity.md b/query-languages/m/value-versionidentity.md index 179134ade..7969c93b9 100644 --- a/query-languages/m/value-versionidentity.md +++ b/query-languages/m/value-versionidentity.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.VersionIdentity" title: "Value.VersionIdentity" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.VersionIdentity diff --git a/query-languages/m/value-versions.md b/query-languages/m/value-versions.md index c1ce8f6a9..3328acfcc 100644 --- a/query-languages/m/value-versions.md +++ b/query-languages/m/value-versions.md @@ -2,11 +2,6 @@ description: "Learn more about: Value.Versions" title: "Value.Versions" ms.date: 5/19/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Value.Versions diff --git a/query-languages/m/variable-value.md b/query-languages/m/variable-value.md index 1ebed663b..bd56497db 100644 --- a/query-languages/m/variable-value.md +++ b/query-languages/m/variable-value.md @@ -2,11 +2,6 @@ description: "Learn more about: Variable.Value" title: "Variable.Value" ms.date: 10/18/2021 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Variable.Value diff --git a/query-languages/m/web-browsercontents.md b/query-languages/m/web-browsercontents.md index 1b4da29e2..504c6d403 100644 --- a/query-languages/m/web-browsercontents.md +++ b/query-languages/m/web-browsercontents.md @@ -2,11 +2,6 @@ description: "Learn more about: Web.BrowserContents" title: "Web.BrowserContents" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Web.BrowserContents diff --git a/query-languages/m/web-contents.md b/query-languages/m/web-contents.md index 52c3ddfcd..19ff9b9a9 100644 --- a/query-languages/m/web-contents.md +++ b/query-languages/m/web-contents.md @@ -2,11 +2,6 @@ description: "Learn more about: Web.Contents" title: "Web.Contents" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Web.Contents diff --git a/query-languages/m/web-headers.md b/query-languages/m/web-headers.md index 00565b413..097bebda4 100644 --- a/query-languages/m/web-headers.md +++ b/query-languages/m/web-headers.md @@ -2,11 +2,6 @@ description: "Learn more about: Web.Headers" title: "Web.Headers" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Web.Headers diff --git a/query-languages/m/web-page.md b/query-languages/m/web-page.md index 20f4a4eb7..6851de697 100644 --- a/query-languages/m/web-page.md +++ b/query-languages/m/web-page.md @@ -2,11 +2,6 @@ description: "Learn more about: Web.Page" title: "Web.Page" ms.date: 10/17/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Web.Page diff --git a/query-languages/m/webaction-request.md b/query-languages/m/webaction-request.md index 3496cd65f..2683795f3 100644 --- a/query-languages/m/webaction-request.md +++ b/query-languages/m/webaction-request.md @@ -2,11 +2,6 @@ description: "Learn more about: WebAction.Request" title: "WebAction.Request" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # WebAction.Request diff --git a/query-languages/m/webmethod-type.md b/query-languages/m/webmethod-type.md index 984c548d0..436dbcda7 100644 --- a/query-languages/m/webmethod-type.md +++ b/query-languages/m/webmethod-type.md @@ -2,11 +2,6 @@ description: "Learn more about: WebMethod.Type" title: "WebMethod.Type" ms.date: 5/16/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # WebMethod.Type diff --git a/query-languages/m/xml-document.md b/query-languages/m/xml-document.md index e08694437..c991beeff 100644 --- a/query-languages/m/xml-document.md +++ b/query-languages/m/xml-document.md @@ -2,11 +2,6 @@ description: "Learn more about: Xml.Document" title: "Xml.Document" ms.date: 7/29/2019 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo - --- # Xml.Document diff --git a/query-languages/m/xml-tables.md b/query-languages/m/xml-tables.md index a7a4c9dce..23fb2525c 100644 --- a/query-languages/m/xml-tables.md +++ b/query-languages/m/xml-tables.md @@ -2,10 +2,6 @@ description: "Learn more about: Xml.Tables" title: "Xml.Tables" ms.date: 3/14/2022 -ms.service: powerquery -ms.topic: reference -author: dougklopfenstein -ms.author: dougklo --- # Xml.Tables From 3423909f861cd6b145fbe3e15a793e776d1f7150 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Sun, 31 Jul 2022 23:13:54 -0700 Subject: [PATCH 025/934] Adding search scope --- query-languages/m/docfx.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 62aeaab6d..cb8509cec 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -42,7 +42,8 @@ "ms.topic": "reference", "ms.reviewer": "ehvonleh", "author": "dougklopfenstein", - "ms.author": "dougklo" + "ms.author": "dougklo", + "searchScope": ["Power Query","M formula language"] }, "fileMetadata": { }, "template": [], From d12bf8f83fbad892a6f417985740d9f3a00e2fa9 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Sun, 31 Jul 2022 23:18:28 -0700 Subject: [PATCH 026/934] Update power-query-m-type-system.md --- query-languages/m/power-query-m-type-system.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index f21b2cd96..d1027c181 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -1,4 +1,4 @@ ---- +--- description: "Learn more about: Types in the Power Query M formula language" title: "Power Query M type system" ms.date: 4/16/2018 From b0b8ab41fe07a4489b5d705c47dd15794284c347 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Sun, 31 Jul 2022 23:19:11 -0700 Subject: [PATCH 027/934] Update index.yml --- query-languages/m/index.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index d3f9d6ed1..8894d4214 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -6,8 +6,8 @@ summary: Microsoft Power Query provides a powerful data import experience that e metadata: title: Power Query M formula language reference description: Power Query M is used to filter, combine, and mash-up data from one or more supported data sources. - ms.topic: landing-page - ms.date: 07/29/2022 + ms.topic: landing-page + ms.date: 07/29/2022 # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new From 4c9852a453211d967eb0690233b6be871af1078f Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Sun, 31 Jul 2022 23:20:27 -0700 Subject: [PATCH 028/934] Update docfx.json --- query-languages/m/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index cb8509cec..5bb539ecc 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -38,7 +38,7 @@ "breadcrumb_path": "/powerquery-m/breadcrumb/toc.json", "extendBreadcrumb": true, "titleSuffix": "PowerQuery M", - "ms.service": "power-query", + "ms.service": "powerquery", "ms.topic": "reference", "ms.reviewer": "ehvonleh", "author": "dougklopfenstein", From 995522292e94eac0a026cc3f8e92f0afd76597f7 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 2 Aug 2022 10:42:24 -0700 Subject: [PATCH 029/934] Updated obsolete formatting --- query-languages/m/comments.md | 10 +- query-languages/m/errors.md | 22 +- query-languages/m/evaluation-model.md | 24 +- .../expressions-values-and-let-expression.md | 72 +++--- query-languages/m/m-spec-basic-concepts.md | 33 ++- query-languages/m/m-spec-conditionals.md | 7 +- .../m/m-spec-consolidated-grammar.md | 8 +- query-languages/m/m-spec-error-handling.md | 33 ++- query-languages/m/m-spec-functions.md | 34 ++- query-languages/m/m-spec-introduction.md | 71 +++--- query-languages/m/m-spec-let.md | 9 +- query-languages/m/m-spec-lexical-structure.md | 29 +-- query-languages/m/m-spec-operators.md | 226 ++++++++---------- query-languages/m/m-spec-sections.md | 16 +- query-languages/m/m-spec-types.md | 65 +++-- query-languages/m/m-spec-values.md | 103 ++++---- query-languages/m/metadata.md | 12 +- query-languages/m/operators.md | 32 +-- .../m/power-query-m-language-specification.md | 5 +- .../m/power-query-m-type-system.md | 22 +- ...r-of-the-power-query-m-formula-language.md | 32 ++- query-languages/m/type-conversion.md | 8 +- 22 files changed, 428 insertions(+), 445 deletions(-) diff --git a/query-languages/m/comments.md b/query-languages/m/comments.md index 9d89f29c8..2dd9f0b0d 100644 --- a/query-languages/m/comments.md +++ b/query-languages/m/comments.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Comments" title: "Comments | Microsoft Docs" -ms.date: 12/12/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh ms.topic: reference @@ -10,9 +10,10 @@ ms.author: dougklo --- # Comments + You can add comments to your code with single-line comments `//` or multi-line comments that begin with `/*` and end with `*/`. -**Example - Single-line comment** +**Example - Single-line comment** ```powerquery-m let @@ -20,8 +21,9 @@ let Source = Text.Proper("hello world") in Source -``` -**Example - Multi-line comment** +``` + +**Example - Multi-line comment** ```powerquery-m /* Capitalize each word in the Item column in the Orders table. Text.Proper diff --git a/query-languages/m/errors.md b/query-languages/m/errors.md index f28c82c04..59e4b3729 100644 --- a/query-languages/m/errors.md +++ b/query-languages/m/errors.md @@ -1,24 +1,27 @@ --- description: "Learn more about: Errors" title: "Errors | Microsoft Docs" -ms.date: 4/16/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo - --- + # Errors + An **error** in Power Query M formula language is an indication that the process of evaluating an expression could not produce a value. Errors are raised by operators and functions encountering **error** conditions or by using the **error** expression. Errors are handled using the **try** expression. When an error is raised, a value is specified that can be used to indicate why the error occurred. -## Try expression +## Try expression + A try expression converts values and errors into a record value that indicates whether the try expression handled an error, or not, and either the proper value or the error record it extracted when handling the error. For example, consider the following expression that raises an error and then handles it right away: -```powerquery-m +```powerquery-m try error "negative unit count" -``` +``` + This expression evaluates to the following nested record value, explaining the `[HasError], [Error]`, and `[Message]` field lookups in the unit-price example before. ## Error record @@ -33,7 +36,8 @@ This expression evaluates to the following nested record value, explaining the ` Detail = null ] ] -``` +``` + A common case is to replace errors with default values. The try expression can be used with an optional otherwise clause to achieve just that in a compact form: ```powerquery-m @@ -61,12 +65,14 @@ let Sales = else textUnitPrice[Value]) in Label -``` +``` + The above example accesses the `Sales[UnitPrice]` field and formats the value producing the result: ```powerquery-m "Unit Price: 2" -``` +``` + If the Units field had been zero, then the `UnitPrice` field would have raised an error which would have been handled by the try. The resulting value would then have been: ```powerquery-m diff --git a/query-languages/m/evaluation-model.md b/query-languages/m/evaluation-model.md index e90a9e815..ce1f6f157 100644 --- a/query-languages/m/evaluation-model.md +++ b/query-languages/m/evaluation-model.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Evaluation model" title: "Evaluation model | Microsoft Docs" -ms.date: 4/16/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -11,7 +11,9 @@ ms.author: dougklo --- # Evaluation model -The evaluation model of the Power Query M formula language is modeled after the evaluation model commonly found in spreadsheets, where the order of calculations can be determined based on dependencies between the formulas in the cells. + +The evaluation model of the Power Query M formula language is modeled after the evaluation model commonly found in spreadsheets, where the order of calculations can be determined based on dependencies between the formulas in the cells. + If you have written formulas in a spreadsheet such as Excel, you may recognize the formulas on the left will result in the values on the right when calculated: ![Evaluation Model 1](media/evaluation-model-1.png "Evaluation Model 1") @@ -28,7 +30,8 @@ Let’s use a record to produce an expression which is equivalent to the above s A2 = A3 + 1, A3 = 1 ] -``` +``` + The above expression evaluates to the following record: ```powerquery-m @@ -37,7 +40,8 @@ The above expression evaluates to the following record: A2 = 2, A3 = 1 ] -``` +``` + Records can be contained within, or **nested**, within other records. You can use the **lookup operator** ([ ]) to access the fields of a record by name. For example, the following record has a field named Sales containing a record, and a field named Total that accesses the FirstHalf and SecondHalf fields of the Sales record: ```powerquery-m @@ -45,7 +49,8 @@ Records can be contained within, or **nested**, within other records. You can us Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], Total = Sales[FirstHalf] + Sales[SecondHalf] ] -``` +``` + The above expression evaluates to the following record: ```powerquery-m @@ -53,7 +58,8 @@ The above expression evaluates to the following record: Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], Total = 2100 ] -``` +``` + You use the **positional index operator** ({ }) to access an item in a list by its numeric index. The values within a list are referred to using a zero-based index from the beginning of the list. For example, the indexes 0 and 1 are used to reference the first and second items in the list below: ```powerquery-m @@ -77,6 +83,6 @@ You use the **positional index operator** ({ }) to access an item in a list by i ] ``` -## Lazy and eager evaluation -**List**, **Record**, and **Table** member expressions, as well as **let** expressions (See [Expressions, values, and let expression](expressions-values-and-let-expression.md)), are evaluated using **lazy evaluation**: they are evaluated when needed. All other expressions are evaluated using **eager evaluation**: they are evaluated immediately, when encountered during the evaluation process. A good way to think about this is to remember that evaluating a list or record expression will return a list or record value that knows how its list items or record fields need to computed, when requested (by lookup or index operators). - +## Lazy and eager evaluation + +**List**, **Record**, and **Table** member expressions, as well as **let** expressions (Go to [Expressions, values, and let expression](expressions-values-and-let-expression.md)), are evaluated using **lazy evaluation**. That is, they are evaluated when needed. All other expressions are evaluated using **eager evaluation**. That is, they are evaluated immediately when encountered during the evaluation process. A good way to think about this is to remember that evaluating a list or record expression will return a list or record value that knows how its list items or record fields need to computed, when requested (by lookup or index operators). diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index adf82193d..6bd942485 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Expressions, values, and let expression" title: "Expressions, values, and let expression | Microsoft Docs" -ms.date: 4/16/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -11,21 +11,24 @@ ms.author: dougklo --- # Expressions, values, and let expression + A Power Query M formula language query is composed of formula **expression** steps that create a mashup query. A formula expression can be evaluated (computed), yielding a value. The **let** expression encapsulates a set of values to be computed, assigned names, and then used in a subsequent expression that follows the **in** statement. For example, a let expression could contain a **Source** variable that equals the value of **Text.Proper()** and yields a text value in proper case. - -## Let expression + +## Let expression ```powerquery-m let Source = Text.Proper("hello world") in Source -``` +``` + In the example above, Text.Proper("hello world") is evaluated to "Hello World". The next sections describe value types in the language. -## Primitive value +## Primitive value + A **primitive** value is single-part value, such as a number, logical, text, or null. A null value can be used to indicate the absence of any data. |Type|Example value| @@ -41,7 +44,8 @@ A **primitive** value is single-part value, such as a number, logical, text, or |Text|"abc"| |Time|12:34:12 PM| -## Function value +## Function value + A **Function** is a value which, when invoked with arguments, produces a new value. Functions are written by listing the function’s **parameters** in parentheses, followed by the goes-to symbol =>, followed by the expression defining the function. For example, to create a function called “MyFunction” that has two parameters and performs a calculation on parameter1 and parameter2: ```powerquery-m @@ -56,24 +60,27 @@ let Source = MyFunction(2, 4) in Source -``` +``` + This code produces the value of 3. -## Structured data values +## Structured data values + The M language supports the following structured data values: -- [List](#list) +- [List](#list) -- [Record](#record) +- [Record](#record) -- [Table](#table) +- [Table](#table) -- [Additional structured data examples](#additional) +- [Additional structured data examples](#additional) > [!NOTE] > Structured data can contain any M value. To see a couple of examples, see [Additional structured data examples](#additional). -### List +### List + A List is a zero-based ordered sequence of values enclosed in curly brace characters { }. The curly brace characters { } are also used to retrieve an item from a List by index position. See \[List value](#_List_value). > [!NOTE] @@ -90,12 +97,13 @@ The following are some **List** examples. |{123, true, "A"}{0}|Get the value of the first item in a List. This expression returns the value 123.| |{
{1, 2, 3},
{4, 5, 6}
}{0}{1}|Get the value of the second item from the first List element. This expression returns the value 2.| -### Record +### Record + A **Record** is a set of fields. A **field** is a name/value pair where the name is a text value that is unique within the field’s record. The syntax for record values allows the names to be written without quotes, a form also referred to as **identifiers**. An identifier can take the following two forms: -- identifier_name such as OrderID. +- identifier_name such as OrderID. -- \#"identifier name" such as #"Today's data is: ". +- \#"identifier name" such as #"Today's data is: ". The following is a record containing fields named "OrderID", "CustomerID", "Item", and "Price" with values 1, 1, "Fishing rod", and 100.00. Square brace characters [ ] denote the beginning and end of a record expression, and are used to get a field value from a record. The follow examples show a record and how to get the Item field value. @@ -110,7 +118,8 @@ let Source = Price = 100.00 ] in Source -``` +``` + To get the value of an Item, you use square brackets as Source[Item]: ```powerquery-m @@ -124,8 +133,9 @@ let Source = in Source[Item] //equals "Fishing rod" ``` -### Table -A **Table** is a set of values organized into named columns and rows. The column type can be implicit or explicit. You can use #table to create a list of column names and list of rows. A **Table** of values is a List in a **List**. The curly brace characters { } are also used to retrieve a row from a **Table** by index position (see [Example 3 – Get a row from a table by index position](#tableIndex)). +### Table + +A **Table** is a set of values organized into named columns and rows. The column type can be implicit or explicit. You can use #table to create a list of column names and list of rows. A **Table** of values is a List in a **List**. The curly brace characters { } are also used to retrieve a row from a **Table** by index position (see [Example 3 – Get a row from a table by index position](#tableIndex)). #### Example 1 - Create a table with implicit column types @@ -154,7 +164,8 @@ let ) in Source -``` +``` + Both of the examples above creates a table with the following shape: |OrderID|CustomerID|Item|Price| @@ -175,7 +186,8 @@ let ) in Source{1} -``` +``` + This expression returns the follow record: |Field|Value| @@ -185,7 +197,8 @@ This expression returns the follow record: |**Item**|1 lb. worms| |**Price**|5| -### Additional structured data examples +### Additional structured data examples + Structured data can contain any M value. Here are some examples: #### Example 1 - List with \[Primitive](#_Primitive_value_1) values, \[Function](#_Function_value), and \[Record](#_Record_value) @@ -201,7 +214,8 @@ let } in Source -``` +``` + Evaluating this expression can be visualized as: ![List Example 1](media/list-example-1.png "List Example 1") @@ -217,15 +231,17 @@ let }] in Source -``` +``` + Evaluating this expression can be visualized as: ![List Example 2](media/list-example-2.png "List Example 2") -> [!NOTE] +> [!NOTE] > Although many values can be written literally as an expression, a value is not an expression. For example, the expression 1 evaluates to the value 1; the expression 1+1 evaluates to the value 2. This distinction is subtle, but important. Expressions are recipes for evaluation; values are the results of evaluation. -### If expression +### If expression + The **if** expression selects between two expressions based on a logical condition. For example: ```powerquery-m @@ -233,6 +249,6 @@ if 2 > 1 then 2 + 2 else 1 + 1 -``` +``` + The first expression (2 + 2) is selected if the logical expression (2 > 1) is true, and the second expression (1 + 1) is selected if it is false. The selected expression (in this case 2 + 2) is evaluated and becomes the result of the **if** expression (4). - diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index fa5346718..2ad0a0974 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 2/25/2020 +ms.date: 8/2/2022 ms.author: dougklo ms.custom: intro-internal --- @@ -19,7 +19,7 @@ This section discusses basic concepts that appear throughout the subsequent sect A single piece of data is called a _value_. Broadly speaking, there are two general categories of values: _primitive values_, which are atomic, and _structured values_, which are constructed out of primitive values and other structured values. For example, the values -``` +```powerquery-m 1 true 3.14159 @@ -28,7 +28,7 @@ true are primitive in that they are not made up of other values. On the other hand, the values -``` +```powerquery-m {1, 2, 3} [ A = {1}, B = {2}, C = {3} ] ``` @@ -39,7 +39,7 @@ are constructed using primitive values and, in the case of the record, other str An _expression_ is a formula used to construct values. An expression can be formed using a variety of syntactic constructs. The following are some examples of expressions. Each line is a separate expression. -``` +```powerquery-m "Hello World" // a text value 123 // a number 1 + 2 // sum of two numbers @@ -56,7 +56,7 @@ The simplest form of expression, as seen above, is a literal representing a valu More complex expressions are built from other expressions, called _sub-expressions_. For example: -``` +```powerquery-m 1 + 2 ``` @@ -74,7 +74,7 @@ The environment used to evaluate a sub-expression is determined by the parent ex For example, the _record-initializer-expression_ evaluates the sub-expression for each field with a modified environment. The modified environment includes a variable for each of the fields of the record, except the one being initialized. Including the other fields of the record allows the fields to depend upon the values of the fields. For example: -``` +```powerquery-m [ x = 1, // environment: y, z y = 2, // environment: x, z @@ -84,7 +84,7 @@ For example, the _record-initializer-expression_ evaluates the sub-expression fo Similarly, the _let-expression_ evaluates the sub-expression for each variable with an environment containing each of the variables of the let except the one being initialized. The _let-expression_ evaluates the expression following the in with an environment containing all the variables: -``` +```powerquery-m let x = 1, // environment: y, z @@ -98,7 +98,7 @@ in To form the environments for the sub-expressions, the new variables are "merged" with the variables in the parent environment. The following example shows the environments for nested records: -``` +```powerquery-m [ a = [ @@ -113,7 +113,7 @@ To form the environments for the sub-expressions, the new variables are "merged" The following example shows the environments for a record nested within a let: -``` +```powerquery-m Let a = [ @@ -128,7 +128,7 @@ in Merging variables with an environment may introduce a conflict between variables (since each variable in an environment must have a unique name). The conflict is resolved as follows: if the name of a new variable being merged is the same as an existing variable in the parent environment, then the new variable will take precedence in the new environment. In the following example, the inner (more deeply nested) variable `x` will take precedence over the outer variable `x`. -``` +```powerquery-m [ a = [ @@ -166,7 +166,7 @@ _inclusive-identifier-reference:_
This is useful when defining recursive functions since the name of the function would normally not be in scope. -``` +```powerquery-m [ Factorial = (n) => if n <= 1 then @@ -184,7 +184,7 @@ As with a _record-initializer-expression_, an _inclusive-identifier-reference_ c Consider the following expression which initializes a record: -``` +```powerquery-m [ C = A + B, A = 1 + 1, @@ -194,7 +194,7 @@ Consider the following expression which initializes a record: When evaluated, this expression produces the following record value: -``` +```powerquery-m [ C = 6, A = 2, @@ -204,7 +204,7 @@ When evaluated, this expression produces the following record value: The expression states that in order to perform the `A + B` calculation for field `C`, the values of both field `A` and field `B` must be known. This is an example of a _dependency ordering_ of calculations that is provided by an expression. The M evaluator abides by the dependency ordering provided by expressions, but is free to perform the remaining calculations in any order it chooses. For example, the computation order could be: -``` +```powerquery-m A = 1 + 1 B = 2 + 2 C = A + B @@ -212,7 +212,7 @@ C = A + B Or it could be: -``` +```powerquery-m B = 2 + 2 A = 1 + 1 C = A + B @@ -237,5 +237,4 @@ An important exception to the immutable-once-calculated rule applies to list and Also, note that function application is _not_ the same as value construction. Library functions may expose external state (such as the current time or the results of a query against a database that evolves over time), rendering them _non-deterministic_. While functions defined in M will not, as such, expose any such non-deterministic behavior, they can if they are defined to invoke other functions that are non-deterministic. -A final source of non-determinsm in M are _errors_. Errors stop evaluations when they occur (up to the level where they are handled by a try expression). It is not normally observable whether `a + b` caused the evaluation of `a` before `b` or `b` before `a` (ignoring concurrency here for simplicity). However, if the subexpression that was evaluated first raises an error, then it can be determined which of the two expressions was evaluated first. - +A final source of non-determinism in M are _errors_. Errors stop evaluations when they occur (up to the level where they are handled by a try expression). It is not normally observable whether `a + b` caused the evaluation of `a` before `b` or `b` before `a` (ignoring concurrency here for simplicity). However, if the subexpression that was evaluated first raises an error, then it can be determined which of the two expressions was evaluated first. diff --git a/query-languages/m/m-spec-conditionals.md b/query-languages/m/m-spec-conditionals.md index d50b7c2e4..ff2bb1066 100644 --- a/query-languages/m/m-spec-conditionals.md +++ b/query-languages/m/m-spec-conditionals.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 2/28/2020 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -16,7 +16,7 @@ ms.author: dougklo The _if-expression_ selects from two expressions based on the value of a logical input value and evaluates only the selected expression. _if-expression:_
-       `if` _if-condition_ `then` _true-expression_ `else` _false-expression
+       `if` _if-condition_ `then` _true-expression_ `else` _false-expression
if-condition:
      expression
true-expression:
@@ -26,7 +26,7 @@ false-expression:
The following are examples of _if-expressions_: -``` +```powerquery-m if 2 > 1 then 2 else 1 // 2 if 1 = 1 then "yes" else "no" // "yes" ``` @@ -42,4 +42,3 @@ The following holds when evaluating an _if-expression_: * The result of the _if-expression_ is the value of the _true-expression_ if the _if-condition_ is `true`, and the value of the _false-expression_ if the _if-condition_ is `false`. * Errors raised during the evaluation of the _if-condition_, _true-expression_, or _falseexpression_ are propagated. - diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 4e658329c..73a3d6800 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 11/29/2021 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -146,7 +146,7 @@ _verbatim-literal:_
### Identifiers -_identifier:
+_identifier:
      regular-identifier
      quoted-identifier
regular-identifier:
@@ -206,7 +206,7 @@ _keyword:_ one of
      `section shared then true try type #binary #date #datetime`
      `#datetimezone #duration #infinity #nan #sections #shared #table #time` -### Operators and punctuators +### Operators and punctuators _operator-or-punctuator:_ one of
      `, ; = < <= > >= <> + - * / & ( ) [ ] { } @ ? ?? => .. ...` @@ -577,7 +577,7 @@ otherwise-clause:_
default-expression:
      expression_ -### Literal Attributes +### Literal Attributes _literal-attributes:
      record-literal
diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index 4bdb8b9d2..c5f3c54d5 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 2/28/2020 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -29,20 +29,20 @@ _error-raising-expression:_
Text values can be used as shorthand for error values. For example: -``` +```powerquery-m error "Hello, world" // error with message "Hello, world" ``` Full error values are records and can be constructed using the `Error.Record` function: -``` +```powerquery-m error Error.Record("FileNotFound", "File my.txt not found", "my.txt") ``` The above expression is equivalent to: -``` +```powerquery-m error [ Reason = "FileNotFound", Message = "File my.txt not found", @@ -62,7 +62,7 @@ Raising an error will cause the current expression evaluation to stop, and the e An _error-handling-expression_ is used to handle an error: -_error-handling-expression:
+_error-handling-expression:_
      `try` _protected-expression otherwise-clauseopt
protected-expression:
      expression
@@ -75,13 +75,13 @@ The following holds when evaluating an _error-handling-expression_ without an _o * If the evaluation of the protected-expression does not result in an error and produces a value x, the value produced by the error-handling-expression is a record of the following form: -``` +```powerquery-m [ HasErrors = false, Value = x ] ``` * If the evaluation of the protected-expression raises an error value e, the result of the error-handling-expression is a record of the following form: -``` +```powerquery-m [ HasErrors = true, Error = e ] ``` @@ -97,7 +97,7 @@ The following holds when evaluating an _error-handling-expression_ with an _othe The following example illustrates an _error-handling-expression_ in a case where no error is raised: -``` +```powerquery-m let x = try "A" in @@ -107,7 +107,7 @@ in The following example shows raising an error and then handling it: -``` +```powerquery-m let x = try error "A" in @@ -117,14 +117,14 @@ in An otherwise clause can be used to replace errors handled by a try expression with an alternative value: -``` +```powerquery-m try error "A" otherwise 1 // 1 ``` If the otherwise clause also raises an error, then so does the entire try expression: -``` +```powerquery-m try error "A" otherwise error "B" // error with message "B" ``` @@ -133,7 +133,7 @@ try error "A" otherwise error "B" The following example shows a record initializer with a field `A` that raises an error and is accessed by two other fields `B` and `C`. Field `B` does not handle the error that is raised by `A`, but `C` does. The final field `D` does not access `A` and so it is not affected by the error in `A`. -``` +```powerquery-m [ A = error "A", B = A + 1, @@ -147,7 +147,7 @@ The following example shows a record initializer with a field `A` that raises an The result of evaluating the above expression is: -``` +```powerquery-m [ A = // error with message "A" B = // error with message "A" @@ -158,7 +158,7 @@ The result of evaluating the above expression is: Error handling in M should be performed close to the cause of errors to deal with the effects of lazy field initialization and deferred closure evaluations. The following example shows an unsuccessful attempt at handling an error using a `try` expression: -``` +```powerquery-m let f = (x) => [ a = error "bad", b = x ], g = try f(42) otherwise 123 @@ -172,7 +172,7 @@ In this example, the definition `g` was meant to handle the error raised when ca While an expression is being developed, an author may want to leave out the implementation for some parts of the expression, but may still want to be able to execute the expression. One way to handle this case is to raise an error for the unimplemented parts. For example: -``` +```powerquery-m (x, y) => if x > y then x - y @@ -188,7 +188,6 @@ _not-implemented-expression:_
For example, the following is equivalent to the previous example: -``` +```powerquery-m (x, y) => if x > y then x - y else ... ``` - diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 514ace79d..0a1826c89 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 4/7/2020 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -50,13 +50,13 @@ nullable-primitve-type
The following is an example of a function that requires exactly two values `x` and `y`, and produces the result of applying the `+` operator to those values. The `x` and `y` are _parameters_ that are part of the _formal-parameter-list_ of the function, and the `x + y` is the _function body_: -``` +```powerquery-m (x, y) => x + y ``` The result of evaluating a _function-expression_ is to produce a function value (not to evaluate the _function-body_). As a convention in this document, function values (as opposed to function expressions) are shown with the _formal-parameter-list_ but with an ellipsis (`...`) instead of the _function-body_. For example, once the function expression above has been evaluated, it would be shown as the following function value: -``` +```powerquery-m (x, y) => ... ``` @@ -66,7 +66,6 @@ The following operators are defined for function values: | -------- | ------ | | `x = y` | Equal | | `x <> y` | Not equal | -| | | The native type of function values is a custom function type (derived from the intrinsic type `function`) that lists the parameter names and specifies all parameter types and the return type to be `any`. (See [Function types](m-spec-types.md#function-types) for details on function types.) @@ -83,7 +82,7 @@ Each time a function value is invoked, a set of values are specified as an _argu An _argument-list_ is used to specify a fixed number of arguments directly as a list of expressions. The following example defines a record with a function value in a field, and then invokes the function from another field of the record: -``` +```powerquery-m [ MyFunction = (x, y, z) => x + y + z, Result1 = MyFunction(1, 2, 3) // 6 @@ -105,7 +104,7 @@ There are two kinds of formal parameters that may be present in a _formal-parame * A _required_ parameter indicates that an argument corresponding to the parameter must always be specified when a function is invoked. Required parameters must be specified first in the _formal-parameter-list_. The function in the following example defines required parameters `x` and `y`: -``` +```powerquery-m [ MyFunction = (x, y) => x + y, @@ -116,7 +115,7 @@ There are two kinds of formal parameters that may be present in a _formal-parame * An _optional_ parameter indicates that an argument corresponding to the parameter may be specified when a function is invoked, but is not required to be specified. If an argument that corresponds to an optional parameter is not specified when the function is invoked, then the value `null` is used instead. Optional parameters must appear after any required parameters in a _formal-parameter-list_. The function in the following example defines a fixed parameter `x` and an optional parameter `y`: -``` +```powerquery-m [ MyFunction = fn(x, optional y) => if (y = null) x else x + y, @@ -130,7 +129,7 @@ The number of arguments that are specified when a function is invoked must be co * Let the value _N_ represent the number of arguments `A` constructed from the _argumentlist_. For example: -``` +```powerquery-m MyFunction() // N = 0 MyFunction(1) // N = 1 MyFunction(null) // N = 1 @@ -142,7 +141,7 @@ The number of arguments that are specified when a function is invoked must be co * Let the value _Required_ represent the number of fixed parameters of `F` and _Optional_ the number of optional parameters of `F`. For example: -``` +```powerquery-m () // Required = 0, Optional = 0 (x) // Required = 1, Optional = 0 (optional x) // Required = 0, Optional = 1 @@ -151,12 +150,12 @@ The number of arguments that are specified when a function is invoked must be co * Arguments `A` are compatible with function `F` if the following are true: - * (_N >= Fixed_) and (_N <= (Fixed + Optional_)) - * The argument types are compatible with `F`'s corresponding parameter types + * (_N >= Fixed_) and (_N <= (Fixed + Optional_)) + * The argument types are compatible with `F`'s corresponding parameter types * If the function has a declared return type, then the result value of the body of function `F` is compatible with `F`'s return type if the following is true: - * The value yielded by evaluating the function body with the supplied arguments for the function parameters has a type that is compatible with the return type. + * The value yielded by evaluating the function body with the supplied arguments for the function parameters has a type that is compatible with the return type. * If the function body yields a value incompatible with the function's return type, an error with reason code `"Expression.Error"` is raised. @@ -164,7 +163,7 @@ The number of arguments that are specified when a function is invoked must be co In order to write a function value that is recursive, it is necessary to use the scoping operator (`@`) to reference the function within its scope. For example, the following record contains a field that defines the `Factorial` function, and another field that invokes it: -``` +```powerquery-m [ Factorial = (x) => if x = 0 then 1 else x * @Factorial(x - 1), @@ -174,7 +173,7 @@ In order to write a function value that is recursive, it is necessary to use the Similarly, mutually recursive functions can be written as long as each function that needs to be accessed has a name. In the following example, part of the `Factorial` function has been refactored into a second `Factorial2` function. -``` +```powerquery-m [ Factorial = (x) => if x = 0 then 1 else Factorial2(x), Factorial2 = (x) => x * Factorial(x - 1), @@ -186,7 +185,7 @@ Similarly, mutually recursive functions can be written as long as each function A function can return another function as a value. This function can in turn depend on one or more parameters to the original function. In the following example, the function associated with the field `MyFunction` returns a function that returns the parameter specified to it: -``` +```powerquery-m [ MyFunction = (x) => () => x, MyFunction1 = MyFunction(1), @@ -201,7 +200,7 @@ Each time the function is invoked, a new function value will be returned that ma In addition to parameters, the _function-body_ of a _function-expression_ can reference variables that are present in the environment when the function is initialized. For example, the function defined by the field `MyFunction` accesses the field `C` of the enclosing record `A`: -``` +```powerquery-m [ A = [ @@ -227,7 +226,7 @@ Simplified declarations are commonly used to improve the readability of higher-o For example, the following pairs of declarations are semantically equivalent: -``` +```powerquery-m each _ + 1 (_) => _ + 1 each [A] @@ -236,4 +235,3 @@ each [A] Table.SelectRows( aTable, each [Weight] > 12 ) Table.SelectRows( aTable, (_) => _[Weight] > 12 ) ``` - diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index d0f86bd53..49b761400 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -6,19 +6,19 @@ author: dougklopfenstein ms.service: powerquery ms.topic: overview -ms.date: 2/25/2020 +ms.date: 8/2/2022 ms.author: dougklo --- # Introduction -## Overview +## Overview -Microsoft Power Query provides a powerful "get data" experience that encompasses many features. A core capability of Power Query is to filter and combine, that is, to "mash-up" data from one or more of a rich collection of supported data sources. Any such data mashup is expressed using the Power Query Formula Language (informally known as "M"). Power Query embeds M documents in Excel and Power BI workbooks to enable repeatable mashup of data. +Microsoft Power Query provides a powerful "get data" experience that encompasses many features. A core capability of Power Query is to filter and combine, that is, to "mash-up" data from one or more of a rich collection of supported data sources. Any such data mashup is expressed using the Power Query Formula Language (informally known as "M"). Power Query embeds M documents in in a wide range of Microsoft products, including Excel, Power BI, Analysis Services, Dataverse to enable repeatable mashup of data. This document provides the specification for M. After a brief introduction that aims at building some first intuition and familiarity with the language, the document covers the language precisely in several progressive steps: - + 1. The _lexical structure_ defines the set of texts that are lexically valid. 2. Values, expressions, environments and variables, identifiers, and the evaluation model form the language's _basic concepts_. @@ -40,7 +40,7 @@ This document provides the specification for M. After a brief introduction that 10. _Sections_ provide a simple modularity mechanism. (Sections are not yet leveraged by Power Query.) 11. Finally, a _consolidated grammar_ collects the grammar fragments from all other sections of this document into a single complete definition. - + For computer language theorists: the formula language specified in this document is a mostly pure, higher-order, dynamically typed, partially lazy functional language. ## Expressions and values @@ -53,7 +53,7 @@ The following examples illustrate the different kinds of values available in M. * A _primitive_ value is single-part value, such as a number, logical, text, or null. A null value can be used to indicate the absence of any data. - ``` + ```powerquery-m 123 // A number true // A logical "abc" // A text @@ -62,7 +62,7 @@ The following examples illustrate the different kinds of values available in M. * A _list_ value is an ordered sequence of values. M supports infinite lists, but if written as a literal, lists have a fixed length. The curly brace characters `{` and `}` denote the beginning and end of a list. - ``` + ```powerquery-m {123, true, "A"} // list containing a number, a logical, and // a text {1, 2, 3} // list of three numbers @@ -70,7 +70,7 @@ The following examples illustrate the different kinds of values available in M. * A _record_ is a set of _fields_. A field is a name/value pair where the name is a text value that is unique within the field's record. The literal syntax for record values allows the names to be written without quotes, a form also referred to as _identifiers_. The following shows a record containing three fields named "`A`", "`B`", and "`C`", which have values `1`, `2`, and `3`. - ``` + ```powerquery-m [ A = 1, B = 2, @@ -81,7 +81,7 @@ The following examples illustrate the different kinds of values available in M. For example: - ``` + ```powerquery-m #table( {"A", "B"}, { {1, 2}, {3, 4} } ) ``` @@ -89,9 +89,9 @@ The following examples illustrate the different kinds of values available in M. ![Example table in M formula language](media/table-example.png) -* A _function_ is a value which, when invoked with arguments, produces a new value. Function are written by listing the function's _parameters_ in parentheses, followed by the goes-to symbol `=>`, followed by the expression defining the function. That expression typically refers to the parameters (by name). +* A _function_ is a value that, when invoked with arguments, produces a new value. Function are written by listing the function's _parameters_ in parentheses, followed by the goes-to symbol `=>`, followed by the expression defining the function. That expression typically refers to the parameters (by name). - ``` + ```powerquery-m (x, y) => (x + y) / 2` ``` @@ -102,12 +102,12 @@ The evaluation model of the M language is modeled after the evaluation model com If you have written formulas in a spreadsheet such as Excel, you may recognize the formulas on the left will result in the values on the right when calculated: ![Formula resulting in value](media/m-spec-formula-value.png) - + In M, parts of an expression can reference other parts of the expression by name, and the evaluation process will automatically determine the order in which referenced expressions are calculated. -We can use a record to produce an expression which is equivalent to the above spreadsheet example. When initializing the value of a field, we can refer to other fields within the record by using the name of the field, as follows: +We can use a record to produce an expression that's equivalent to the above spreadsheet example. When initializing the value of a field, we can refer to other fields within the record by using the name of the field, as follows: -``` +```powerquery-m [ A1 = A2 * 2, A2 = A3 + 1, @@ -117,7 +117,7 @@ We can use a record to produce an expression which is equivalent to the above sp The above expression is equivalent to the following (in that both evaluate to equal values): -``` +```powerquery-m [ A1 = 4, A2 = 2, @@ -127,7 +127,7 @@ The above expression is equivalent to the following (in that both evaluate to eq Records can be contained within, or _nest_, within other records. We can use the _lookup operator_ (`[]`) to access the fields of a record by name. For example, the following record has a field named `Sales` containing a record, and a field named `Total` that accesses the `FirstHalf` and `SecondHalf` fields of the `Sales` record: -``` +```powerquery-m [ Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], Total = Sales[FirstHalf] + Sales[SecondHalf] @@ -136,7 +136,7 @@ Records can be contained within, or _nest_, within other records. We can use the The above expression is equivalent to the following when it is evaluated: \ -``` +```powerquer-m [ Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], Total = 2100 @@ -145,7 +145,7 @@ The above expression is equivalent to the following when it is evaluated: \ Records can also be contained within lists. We can use the _positional index operator_ (`{}`) to access an item in a list by its numeric index. The values within a list are referred to using a zero-based index from the beginning of the list. For example, the indexes `0` and `1` are used to reference the first and second items in the list below: -``` +```powerquery-m [ Sales = { @@ -173,14 +173,14 @@ record value that itself remembers how its list items or record fields need to b In M, a _function_ is a mapping from a set of input values to a single output value. A function is written by first naming the required set of input values (the parameters to the function) and then providing an expression that will compute the result of the function using those input values (the body of the function) following the goes-to (`=>`) symbol. For example: -``` +```powerquery-m (x) => x + 1 // function that adds one to a value (x, y) => x + y // function that adds two values ``` A function is a value just like a number or a text value. The following example shows a function which is the value of an Add field which is then _invoked_, or executed, from several other fields. When a function is invoked, a set of values are specified which are logically substituted for the required set of input values within the function body expression. -``` +```powerquery-m [ Add = (x, y) => x + y, OnePlusOne = Add(1, 1), // 2 @@ -192,7 +192,7 @@ A function is a value just like a number or a text value. The following example M includes a common set of definitions available for use from an expression called the _standard library_, or just library for short. These definitions consist of a set of named values. The names of values provided by a library are available for use within an expression without having been defined explicitly by the expression. For example: -``` +```powerquery-m Number.E // Euler's number e (2.7182...) Text.PositionOf("Hello", "ll") // 2 ``` @@ -203,7 +203,7 @@ M includes a set of operators that can be used in expressions. _Operators_ are a The meaning of an operator can vary depending on what kind of values its operands are. For example, the plus operator can be used with other kinds of values than numbers: -``` +```powerquer-m 1 + 2 // numeric addition: 3 #time(12,23,0) + #duration(0,0,2,0) // time arithmetic: #time(12,25,0) @@ -211,7 +211,7 @@ The meaning of an operator can vary depending on what kind of values its operand Another example of an operator with operand-depending meaning is the combination operator (`&`): -``` +```powerquery-m "A" & "BC" // text concatenation: "ABC" {1} & {2, 3} // list concatenation: {1, 2, 3} [ a = 1 ] & [ b = 2 ] // record merge: [ a = 1, b = 2 ] @@ -219,7 +219,7 @@ Another example of an operator with operand-depending meaning is the combination Note that not all combinations of values may be supported by an operator. For example: -``` +```powerquery-m 1 + "2" // error: adding number and text is not supported ``` @@ -235,20 +235,20 @@ Metadata records provide a way to associate additional information with any kind A metadata record value `y` is associated with an existing value `x` using the syntax `x meta y`. For example, the following associates a metadata record with `Rating` and `Tags` fields with the text value `"Mozart"`: -``` +```powerquery-m "Mozart" meta [ Rating = 5, Tags = {"Classical"} ] ``` For values that already carry a non-empty metadata record, the result of applying meta is that of computing the record merge of the existing and the new metadata record. For example, the following two expressions are equivalent to each other and to the previous expression: -``` +```powerquery-m ("Mozart" meta [ Rating = 5 ]) meta [ Tags = {"Classical"} ] "Mozart" meta ([ Rating = 5 ] & [ Tags = {"Classical"} ]) ``` A metadata record can be accessed for a given value using the _Value.Metadata_ function. In the following example, the expression in the `ComposerRating` field accesses the metadata record of the value in the `Composer` field, and then accesses the `Rating` field of the metadata record. -``` +```powerquery-m [ Composer = "Mozart" meta [ Rating = 5, Tags = {"Classical"} ], ComposerRating = Value.Metadata(Composer)[Rating] // 5 @@ -259,7 +259,7 @@ A metadata record can be accessed for a given value using the _Value.Metadata_ f Many of the examples shown so far have included all the literal values of the expression in the result of the expression. The _let_ expression allows a set of values to be computed, assigned names, and then used in a subsequent expression that follows the _in_. For example, in our sales data example, we could do: -``` +```powerquer-m let Sales2007 = [ @@ -284,7 +284,7 @@ The result of the above expression is a number value (`4600`) which was computed The `if` expression selects between two expressions based on a logical condition. For example: -``` +```powerquery-m if 2 > 1 then 2 + 2 else @@ -299,7 +299,7 @@ An _error_ is an indication that the process of evaluating an expression could n Errors are raised by operators and functions encountering error conditions or by using the error expression. Errors are handled using the try expression. When an error is raised, a value is specified that can be used to indicate why the error occurred. -``` +```powerquer-m let Sales = [ Revenue = 2000, @@ -315,25 +315,25 @@ in "Unit Price: " & The above example accesses the `Sales[UnitPrice]` field and formats the value producing the result: -``` +```powerquery-m "Unit Price: 2" ``` If the `Units` field had been zero, then the `UnitPrice` field would have raised an error which would have been handled by the `try`. The resulting value would then have been: -``` +```powerquery-m "No Units" ``` A `try` expression converts proper values and errors into a record value that indicates whether the try expression handled and error, or not, and either the proper value or the error record it extracted when handling the error. For example, consider the following expression that raises an error and then handles it right away: -``` +```powerquery-m try error "negative unit count" ``` This expression evaluates to the following nested record value, explaining the `[HasError]`, `[Error]`, and `[Message]` field lookups in the unit-price example before. -``` +```powerquery-m [ HasError = true, Error = @@ -344,9 +344,10 @@ This expression evaluates to the following nested record value, explaining the ` ] ] ``` + A common case is to replace errors with default values. The `try` expression can be used with an optional `otherwise` clause to achieve just that in a compact form: -``` +```powerquery-m try error "negative unit count" otherwise 42 // 42 ``` diff --git a/query-languages/m/m-spec-let.md b/query-languages/m/m-spec-let.md index 22de2258f..e19df038e 100644 --- a/query-languages/m/m-spec-let.md +++ b/query-languages/m/m-spec-let.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 4/7/2020 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -29,7 +29,7 @@ variable-name:
The following example shows intermediate results being calculated and stored in variables `x`, `y`, and `z` which are then used in a subsequent calculation `x + y + z`: -``` +```powerquery-m let x = 1 + 1, y = 2 + 2, z = y + 1 @@ -39,7 +39,7 @@ in The result of this expression is: -``` +```powerquery-m 11 // (1 + 1) + (2 + 2) + (2 + 2 + 1) ``` @@ -55,11 +55,10 @@ The following holds when evaluating expressions within the _let-expression_: A let expression can be seen as syntactic sugar over an implicit record expression. The following expression is equivalent to the example above: -``` +```powerquery-m [ x = 1 + 1, y = 2 + 2, z = y + 1, result = x + y + z ][result] ``` - diff --git a/query-languages/m/m-spec-lexical-structure.md b/query-languages/m/m-spec-lexical-structure.md index 58b74129f..0c584bf44 100644 --- a/query-languages/m/m-spec-lexical-structure.md +++ b/query-languages/m/m-spec-lexical-structure.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 11/29/2021 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -27,7 +27,7 @@ A document either consists of exactly one _expression_ or of groups of _definiti ## Grammar conventions -The lexical and syntactic grammars are presented using _grammar productions_. Each grammar production defines a non-terminal symbol and the possible expansions of that nonterminal symbol into sequences of non-terminal or terminal symbols. In grammar productions, _non-terminal+ symbols are shown in italic type, and _terminal_ symbols are shown in a fixed-width font. +The lexical and syntactic grammars are presented using _grammar productions_. Each grammar production defines a non-terminal symbol and the possible expansions of that nonterminal symbol into sequences of non-terminal or terminal symbols. In grammar productions, _non-terminal+_ symbols are shown in italic type, and _terminal_ symbols are shown in a fixed-width font. The first line of a grammar production is the name of the non-terminal symbol being defined, followed by a colon. Each successive indented line contains a possible expansion of the nonterminal given as a sequence of non-terminal or terminal symbols. For example, the production: @@ -42,7 +42,6 @@ _variable-list:
      variable
      variable-list_ `,` _variable_ - defines a _variable-list_ to either consist of a _variable_ or consist of a _variable-list_ followed by a _variable_. In other words, the definition is recursive and specifies that a variable list consists of one or more variables, separated by commas. A subscripted suffix "opt" is used to indicate an optional symbol. The production: @@ -123,7 +122,6 @@ Two forms of comments are supported: single-line comments and delimited comments Delimited comments may span multiple lines. - _comment:
      single-line-comment
      delimited-comment
@@ -149,7 +147,7 @@ Comments do not nest. The character sequences `/*` and `*/` have no special mean Comments are not processed within text literals. The example -``` +```powerquery-m /* Hello, world */ "Hello, world" @@ -159,7 +157,7 @@ includes a delimited comment. The example -``` +```powerquery-m // Hello, world // "Hello, world" // This is an example of a text literal @@ -181,13 +179,13 @@ _token:
M text values can contain arbitrary Unicode characters. Text literals, however, are limited to graphic characters and require the use of _escape sequences_ for non-graphic characters. For example, to include a carriage-return, linefeed, or tab character in a text literal, the `#(cr)`, `#(lf)`, and `#(tab)` escape sequences can be used, respectively. To embed the escapesequence start characters `#(` in a text literal, the `#` itself needs to be escaped: -``` +```powerquery-m #(#)( ``` Escape sequences can also contain short (four hex digits) or long (eight hex digits) Unicode code-point values. The following three escape sequences are therefore equivalent: -``` +```powerquery-m #(000D) // short Unicode hexadecimal value #(0000000D) // long Unicode hexadecimal value #(cr) // compact escape shorthand for carriage return @@ -195,7 +193,7 @@ Escape sequences can also contain short (four hex digits) or long (eight hex dig Multiple escape codes can be included in a single escape sequence, separated by commas; the following two sequences are thus equivalent: -``` +```powerquery-m #(cr,lf) #(cr)#(lf) ``` @@ -279,7 +277,7 @@ hex-digit:_ one of
A number can be specified in hexadecimal format by preceding the _hex-digits_ with the characters `0x`. For example: -``` +```powerquery-m 0xff // 255 ``` @@ -304,13 +302,13 @@ _double-quote-escape-sequence:_
To include quotes in a text value, the quote mark is repeated, as follows: -``` +```powerquery-m "The ""quoted"" text" // The "quoted" text ``` The [_character-escape-sequence_](#character-escape-sequences) production can be used to write characters in text values without having to directly encode them as Unicode characters in the document. For example, a carriage return and line feed can be written in a text value as: -``` +```powerquery-m "Hello world#(cr,lf)" ``` @@ -321,7 +319,6 @@ A verbatim literal is used to store a sequence of Unicode characters that were e _verbatim-literal:_
      `#!"` _text-literal-charactersopt_ `"` - ### Identifiers An _identifier_ is a name used to refer to a value. Identifiers can either be regular identifiers or quoted identifiers. @@ -372,7 +369,7 @@ Note that escape sequences and double-quotes to escape quotes can be used in a _ The following example uses identifier quoting for names containing a space character: -``` +```powerquery-m [ #"1998 Sales" = 1000, #"1999 Sales" = 1100, @@ -382,7 +379,7 @@ The following example uses identifier quoting for names containing a space chara The following example uses identifier quoting to include the `+` operator in an identifier: -``` +```powerquery-m [ #"A + B" = A + B, A = 1, @@ -394,7 +391,7 @@ The following example uses identifier quoting to include the `+` operator in an There are two places in M where no ambiguities are introduced by identifiers that contain blanks or that are otherwise keywords or number literals. These places are the names of record fields in a record literal and in a field access operator (`[ ]`) There, M allows such identifiers without having to use quoted identifiers. -``` +```powerquery-m [ Data = [ Base Line = 100, Rate = 1.8 ], Progression = Data[Base Line] * Data[Rate] diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 48e7a66f5..cd2c8e427 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 11/29/2021 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -25,7 +25,7 @@ _parenthesized-expression:_
For example: -``` +```powerquery-m 1 + 2 * 3 // 7 (1 + 2) * 3 // 9 ``` @@ -173,13 +173,13 @@ A metadata record is just a regular record and can contain any fields and values Every value has a default metadata record, even if one has not been specified. The default metadata record is empty. The following examples show accessing the metadata record of a text value using the `Value.Metadata` standard library function: -``` +```powerquery-m Value.Metadata( "Mozart" ) // [] ``` Metadata records are generally _not preserved_ when a value is used with an operator or function that constructs a new value. For example, if two text values are concatenated using the `&` operator, the metadata of the resulting text value is the empty record `[]`. The following expressions are equivalent: -``` +```powerquery-m "Amadeus " & ("Mozart" meta [ Rating = 5 ]) "Amadeus " & "Mozart" ``` @@ -192,7 +192,7 @@ The only operator that returns results that carry metadata is the [meta operator Values can be _cyclic_. For example: -``` +```powerquery-m let l = {0, @l} in l // {0, {0, {0, ... }}} [A={B}, B={A}] @@ -201,7 +201,7 @@ let l = {0, @l} in l M handles cyclic values by keeping construction of records, lists, and tables lazy. An attempt to construct a cyclic value that does not benefit from interjected lazy structured values yields an error: -``` +```powerquery-m [A=B, B=A] // [A = Error.Record("Expression.Error", // "A cyclic reference was encountered during evaluation"), @@ -244,7 +244,7 @@ The _item-access-expression_ `x{y}` returns: For example: -``` +```powerquery-m {"a","b","c"}{0} // "a" {1, [A=2], 3}{1} // [A=2] {true, false}{2} // error @@ -258,7 +258,7 @@ The _item-access-expression_ also supports the form `x{y}?`, which returns `null For example: -``` +```powerquery-m {"a","b","c"}{0}? // "a" {1, [A=2], 3}{1}? // [A=2] {true, false}{2}? // null @@ -270,7 +270,7 @@ For example: Item access does not force the evaluation of list or table items other than the one being accessed. For example: -``` +```powerquery-m { error "a", 1, error "c"}{1} // 1 { error "a", error "b"}{1} // error "b" ``` @@ -333,7 +333,7 @@ The simplest form of field access is _required field selection_. It uses the ope For example: -``` +```powerquery-m [A=1,B=2][B] // 2 [A=1,B=2][C] // error [A=1,B=2][C]? // null @@ -342,7 +342,7 @@ For example: Collective access of multiple fields is supported by the operators for _required record projection_ and _optional record projection_. The operator `x[[y1],[y2],...]` projects the record to a new record with fewer fields (selected by `y1`, `y2`, `...`). If a selected field does not exist, an error is raised. The operator `x[[y1],[y2],...]` projects the record to a new record with the fields selected by `y1`, `y2`, `...`; if a field is missing, `null` is used instead. For example: -``` +```powerquery-m [A=1,B=2][[B]] // [B=2] [A=1,B=2][[C]] // error [A=1,B=2][[B],[C]]? // [B=2,C=null] @@ -350,44 +350,45 @@ For example: The forms `[y]` and `[y]?` are supported as a _shorthand_ reference to the identifier `_` (underscore). The following two expressions are equivalent: -``` +```powerquery-m [A] _[A] ``` The following example illustrates the shorthand form of field access: -``` +```powerquery-m let _ = [A=1,B=2] in [A] //1 ``` The form `[[y1],[y2],...]` and `[[y1],[y2],...]?` are also supported as a shorthand and the following two expressions are likewise equivalent: -``` +```powerquery-m [[A],[B]] _[[A],[B]] ``` The shorthand form is particularly useful in combination with the `each` shorthand, a way to introduce a function of a single parameter named `_` (for details, see [Simplified declarations](m-spec-functions.md#simplified-declarations). Together, the two shorthands simplify common higher-order functional expressions: -``` +```powerquery-m List.Select( {[a=1, b=1], [a=2, b=4]}, each [a] = [b]) // {[a=1, b=1]} ``` The above expression is equivalent to the following more cryptic looking longhand: -``` +```powerquery-m List.Select( {[a=1, b=1], [a=2, b=4]}, (_) => _[a] = _[b]) // {[a=1, b=1]} ``` Field access does not force the evaluation of fields other than the one(s) being accessed. For example: -``` +```powerquery-m [A=error "a", B=1, C=error "c"][B] // 1 [A=error "a", B=error "b"][B] // error "b" ``` + The following holds when a field access operator `x[y]`, `x[y]?`, `x[[y]]`, or `x[[y]]?` is evaluated: * Errors raised during the evaluation of expression `x` are propagated. @@ -410,7 +411,7 @@ _metadata-expression:
The following example constructs a text value with a metadata record using the `meta` operator and then accesses the metadata record of the resulting value using `Value.Metadata`: -``` +```powerquery-m Value.Metadata( "Mozart" meta [ Rating = 5 ] ) // [Rating = 5 ] Value.Metadata( "Mozart" meta [ Rating = 5 ] )[Rating] @@ -429,7 +430,7 @@ The following holds when applying the metadata combining operator `x meta y`: The standard library functions `Value.RemoveMetadata` and `Value.ReplaceMetadata` can be used to remove all metadata from a value and to replace a value's metadata (rather than merge metadata into possibly existing metadata). The following expressions are equivalent: -``` +```powerquery-m x meta y Value.ReplaceMetadata(x, Value.Metadata(x) & y) Value.RemoveMetadata(x) meta (Value.Metadata(x) & y) @@ -446,7 +447,7 @@ _equality-expression:
For example: -``` +```powerquery-m 1 = 1 // true 1 = 2 // false 1 <> 1 // false @@ -457,7 +458,7 @@ null = null // true Metadata is not part of equality or inequality comparison. For example: -``` +```powerquery-m (1 meta [ a = 1 ]) = (1 meta [ a = 2 ]) // true (1 meta [ a = 1 ]) = 1 // true ``` @@ -478,7 +479,7 @@ The following holds when applying the equality operators `x = y` and `x <> y`: * The following is always true: -``` +```powerquery-m (x = y) = not (x <> y) ``` @@ -486,7 +487,7 @@ The equality operators are defined for the following types: * The `null` value is only equal to itself. -``` +```powerquery-m null = null // true null = true // false null = false // false @@ -494,7 +495,7 @@ The equality operators are defined for the following types: * The logical values `true` and `false` are only equal to themselves. For example: -``` +```powerquery-m true = true // true false = false // true true = false // false @@ -511,7 +512,7 @@ The equality operators are defined for the following types: For example: -``` +```powerquery-m 1 = 1, // true 1.0 = 1 // true 2 = 1 // false @@ -539,11 +540,11 @@ The equality operators are defined for the following types: For example: -``` + ```powerquery-m {1, 2} = {1, 2} // true {2, 1} = {1, 2} // false {1, 2, 3} = {1, 2} // false -``` + ``` * Two records are equal if all of the following are true: @@ -555,12 +556,12 @@ The equality operators are defined for the following types: For example: -``` + ```powerquery-m [ A = 1, B = 2 ] = [ A = 1, B = 2 ] // true [ B = 2, A = 1 ] = [ A = 1, B = 2 ] // true [ A = 1, B = 2, C = 3 ] = [ A = 1, B = 2 ] // false [ A = 1 ] = [ A = 1, B = 2 ] // false -``` + ``` * Two tables are equal if all of the following are true: @@ -574,11 +575,11 @@ The equality operators are defined for the following types: For example: -``` + ```powerquery-m #table({"A","B"},{{1,2}}) = #table({"A","B"},{{1,2}}) // true #table({"A","B"},{{1,2}}) = #table({"X","Y"},{{1,2}}) // false #table({"A","B"},{{1,2}}) = #table({"B","A"},{{2,1}}) // true -``` + ``` * A function value is equal to itself, but may or may not be equal to another function value. If two function values are considered equal, then they will behave identically when invoked. @@ -607,11 +608,10 @@ These operators are used to determine the relative ordering relationship between | `x > y` | `true` if `x` is greater than `y`, `false` otherwise | | `x <= y` | `true` if `x` is less than or equal to `y`, `false` otherwise | | `x >= y` | `true` if `x` is greater than or equal to `y`, `false` otherwise | -| | | For example: -``` +```powerquery-m 0 <= 1 // true null < 1 // null null <= null // null @@ -642,8 +642,8 @@ The following holds when evaluating an expression containing the relational oper * Two numbers `x` and `y` are compared according to the rules of the IEEE 754 standard: - * If either operand is `#nan`, the result is `false` for all relational operators. - * When neither operand is `#nan`, the operators compare the values of the two floatingpoint operands with respect to the ordering `-∞ < -max < ... < -min < -0.0 = +0.0 < +min < ... < +max < +∞` where min and max are the smallest and largest positive finite values that can be represented. The M names for -∞ and +∞ are `-#infinity` and `#infinity`. + * If either operand is `#nan`, the result is `false` for all relational operators. + * When neither operand is `#nan`, the operators compare the values of the two floatingpoint operands with respect to the ordering `-∞ < -max < ... < -min < -0.0 = +0.0 < +min < ... < +max < +∞` where min and max are the smallest and largest positive finite values that can be represented. The M names for -∞ and +∞ are `-#infinity` and `#infinity`. Notable effects of this ordering are: @@ -670,23 +670,21 @@ The `and` operator returns `false` when at least one of its operands is `false`. Truth tables for the `or` and `and` operators are shown below, with the result of evaluating the left operand expression on the vertical axis and the result of evaluating the right operand expression on the horizontal axis. -| *`and`* | `true` | `false` | `null` | `error` | +| _`and`_ | `true` | `false` | `null` | `error` | | --- | --- | --- | --- | --- | | **`true`** | `true` | `false` | `null` | `error` | | **`false`** | `false` | `false` | `false` | `false` | | **`null`** | `null` | `false` | `null` | `error` | | **`error`** | `error` | `error` | `error` | `error` | -| | | | | | -| *`or`* | `true` | `false` | `null` | `error` | +| _`or`_ | `true` | `false` | `null` | `error` | | --- | --- | --- | --- | --- | | **`or`** | `true` | `false` | `null` | `error` | | **`true`** | `true` | `true` | `true` | `true` | | **`false`** | `true` | `false` | `null` | `error` | | **`null`** | `true` | `null` | `null` | `error` | | **`error`** | `error` | `error` | `error` | `error` | -| | | | | | - + The following holds when evaluating an expression containing conditional logical operators: * Errors raised when evaluating the `x` or `y` expressions are propagated. @@ -701,7 +699,7 @@ The following holds when evaluating an expression containing conditional logical The last two properties give the conditional logical operators their "conditional" qualification; properties also referred to as "short-circuiting". These properties are useful to write compact _guarded predicates_. For example, the following expressions are equivalent: -``` +```powerquery-m d <> 0 and n/d > 1 if d <> 0 then n/d > 1 else false ``` @@ -726,7 +724,6 @@ Numbers in M are stored using a variety of representations to retain as much inf | --------- | --------- | | `Precision.Decimal` | 128-bit decimal representation with a range of ±1.0 x 10-28 to ±7.9 x 1028 and 28-29 significant digits. | | `Precision.Double` | Scientific representation using mantissa and exponent; conforms to the 64-bit binary double-precision IEEE 754 arithmetic standard [IEEE 754-2008](https://ieeexplore.ieee.org/servlet/opac?punumber=4610933). | -| | | Arithmetic operations are performed by choosing a precision, converting both operands to that precision (if necessary), then performing the actual operation, and finally returning a number in the chosen precision. @@ -758,7 +755,6 @@ The interpretation of the addition operator (`x + y`) is dependent on the kind o | `type duration` | `type` _datetime_ | `type` _datetime_ | | | `type` _datetime_ | `null` | `null` | | | `null` | `type` _datetime_ | `null` | | -| | | | | In the table, `type` _datetime_ stands for any of `type date`, `type datetime`, `type datetimezone`, or `type time`. When adding a duration and a value of some type _datetime_, the resulting value is of that same type. @@ -772,24 +768,23 @@ The sum of two numbers is computed using the _addition operator_, producing a nu For example: -``` +```powerquery-m 1 + 1 // 2 #nan + #infinity // #nan ``` The addition operator `+` over numbers uses Double Precision; the standard library function `Value.Add` can be used to specify Decimal Precision. The following holds when computing a sum of numbers: -* The sum in Double Precision is computed according to the rules of 64-bit binary doubleprecision IEEE 754 arithmetic [IEEE 754-2008](https://ieeexplore.ieee.org/servlet/opac?punumber=4610933). The following table lists the results of all possible combinations of nonzero finite values, zeros, infinities, and NaN's. In the table, `x` and `y` are nonzero finite values, and `z` is the result of `x + y`. If `x` and `y` have the same magnitude but opposite signs, `z` is positive zero. If `x + y` is too large to be represented in the destination type, `z` is an infinity with the same sign as `x + y`. - +* The sum in Double Precision is computed according to the rules of 64-bit binary doubleprecision IEEE 754 arithmetic [IEEE 754-2008](https://ieeexplore.ieee.org/servlet/opac?punumber=4610933). The following table lists the results of all possible combinations of nonzero finite values, zeros, infinities, and NaN's. In the table, `x` and `y` are nonzero finite values, and `z` is the result of `x + y`. If `x` and `y` have the same magnitude but opposite signs, `z` is positive zero. If `x + y` is too large to be represented in the destination type, `z` is an infinity with the same sign as `x + y`. + | + | y | +0 | -0 | +∞ | -∞ | NaN | | --- | --- | --- | --- | --- | --- | --- | - | x | z | x | x | +∞ | -∞ | NaN | - | +0 | y | +0 | +0 | +∞ | -∞ | NaN | - | -0 | y | +0 | -0 | +∞ | -∞ | NaN | - | +∞ | +∞ | +∞ | +∞ | +∞ | NaN | NaN | - | -∞ | -∞ | -∞ | -∞ | NaN | -∞ | NaN | - | NaN | NaN | NaN | NaN | NaN | NaN | NaN | - | | | | | | | | + | **x** | z | x | x | +∞ | -∞ | NaN | + | **+0** | y | +0 | +0 | +∞ | -∞ | NaN | + | **-0** | y | +0 | -0 | +∞ | -∞ | NaN | + | **+∞** | +∞ | +∞ | +∞ | +∞ | NaN | NaN | + | **-∞** | -∞ | -∞ | -∞ | NaN | -∞ | NaN | + | **NaN** | NaN | NaN | NaN | NaN | NaN | NaN | * The sum in Decimal Precision is computed without losing precision. The scale of the result is the larger of the scales of the two operands. @@ -797,7 +792,7 @@ The addition operator `+` over numbers uses Double Precision; the standard libra The sum of two durations is the duration representing the sum of the number of 100nanosecond ticks represented by the durations. For example: -``` +```powerquery-m #duration(2,1,0,15.1) + #duration(0,1,30,45.3) // #duration(2, 2, 31, 0.4) ``` @@ -808,21 +803,21 @@ A _datetime_ `x` and a duration `y` may be added using `x + y` to compute a new * If the datetime's days since epoch value is specified, construct a new datetime with the following information elements: - * Calculate a new days since epoch equivalent to dividing the magnitude of y by the number of 100-nanosecond ticks in a 24-hour period, truncating the decimal portion of the result, and adding this value to the x's days since epoch. + * Calculate a new days since epoch equivalent to dividing the magnitude of y by the number of 100-nanosecond ticks in a 24-hour period, truncating the decimal portion of the result, and adding this value to the x's days since epoch. - * Calculate a new ticks since midnight equivalent to adding the magnitude of y to the x's ticks since midnight, modulo the number of 100-nanosecond ticks in a 24-hour period. If x does not specify a value for ticks since midnight, a value of 0 is assumed. + * Calculate a new ticks since midnight equivalent to adding the magnitude of y to the x's ticks since midnight, modulo the number of 100-nanosecond ticks in a 24-hour period. If x does not specify a value for ticks since midnight, a value of 0 is assumed. - * Copy x's value for minutes offset from UTC unchanged. + * Copy x's value for minutes offset from UTC unchanged. * If the datetime's days since epoch value is unspecified, construct a new datetime with the following information elements specified: - * Calculate a new ticks since midnight equivalent to adding the magnitude of y to the x's ticks since midnight, modulo the number of 100-nanosecond ticks in a 24-hour period. If x does not specify a value for ticks since midnight, a value of 0 is assumed. + * Calculate a new ticks since midnight equivalent to adding the magnitude of y to the x's ticks since midnight, modulo the number of 100-nanosecond ticks in a 24-hour period. If x does not specify a value for ticks since midnight, a value of 0 is assumed. - * Copy x's values for days since epoch and minutes offset from UTC unchanged. + * Copy x's values for days since epoch and minutes offset from UTC unchanged. The following examples show calculating the absolute temporal sum when the datetime specifies the _days since epoch_: -``` +```powerquery-m #date(2010,05,20) + #duration(0,8,0,0) //#datetime( 2010, 5, 20, 8, 0, 0 ) //2010-05-20T08:00:00 @@ -842,7 +837,7 @@ The following examples show calculating the absolute temporal sum when the datet The following example shows calculating the datetime offset by duration for a given time: -``` +```powerquery-m #time(8,0,0) + #duration(30,5,0,0) //#time(13, 0, 0) //13:00:00 @@ -864,7 +859,6 @@ The interpretation of the subtraction operator (`x - y`) is dependent on the kin | `type` _datetime_ | `type duration` | `type` _datetime_ | Datetime offset by negated duration | | `type` _datetime_ | `null` | `null` | | | `null` | `type` _datetime_ | `null` | | -| | | | | In the table, `type` _datetime_ stands for any of `type date`, `type datetime`, `type datetimezone`, or `type time`. When subtracting a duration from a value of some type _datetime_, the resulting value is of that same type. @@ -876,32 +870,31 @@ Errors raised when evaluating either operand are propagated. The difference between two numbers is computed using the _subtraction operator_, producing a number. For example: -``` +```powerquery-m 1 - 1 // 0 #nan - #infinity // #nan ``` The subtraction operator `-` over numbers uses Double Precision; the standard library function `Value.Subtract` can be used to specify Decimal Precision. The following holds when computing a difference of numbers: -* The difference in Double Precision is computed according to the rules of 64-bit binary double-precision IEEE 754 arithmetic [IEEE 754-2008](https://ieeexplore.ieee.org/servlet/opac?punumber=4610933). The following table lists the results of all possible combinations of nonzero finite values, zeros, infinities, and NaN's. In the table, `x` and `y` are nonzero finite values, and `z` is the result of `x - y`. If `x` and `y` are equal, `z` is positive zero. If `x - y` is too large to be represented in the destination type, `z` is an infinity with the same sign as `x - y`. - +* The difference in Double Precision is computed according to the rules of 64-bit binary double-precision IEEE 754 arithmetic [IEEE 754-2008](https://ieeexplore.ieee.org/servlet/opac?punumber=4610933). The following table lists the results of all possible combinations of nonzero finite values, zeros, infinities, and NaN's. In the table, `x` and `y` are nonzero finite values, and `z` is the result of `x - y`. If `x` and `y` are equal, `z` is positive zero. If `x - y` is too large to be represented in the destination type, `z` is an infinity with the same sign as `x - y`. + | - | y | +0 | -0 | +∞ | -∞ | NaN | | --- | --- | --- | --- | --- | --- | --- | - | x | z | x | x | -∞ | +∞ | NaN | - | +0 | -y | +0 | +0 | -∞ | +∞ | NaN | - | -0 | -y | -0 | +0 | -∞ | +∞ | NaN | - | +∞ | +∞ | +∞ | +∞ | NaN | +∞ | NaN | - | -∞ | -∞ | -∞ | -∞ | -∞ | NaN | NaN | - | NaN | NaN | NaN | NaN | NaN | NaN | NaN | - | | | | | | | | - + | **x** | z | x | x | -∞ | +∞ | NaN | + | **+0** | -y | +0 | +0 | -∞ | +∞ | NaN | + | **-0** | -y | -0 | +0 | -∞ | +∞ | NaN | + | **+∞** | +∞ | +∞ | +∞ | NaN | +∞ | NaN | + | **-∞** | -∞ | -∞ | -∞ | -∞ | NaN | NaN | + | **NaN** | NaN | NaN | NaN | NaN | NaN | NaN | + * The difference in Decimal Precision is computed without losing precision. The scale of the result is the larger of the scales of the two operands. #### Difference of durations The difference of two durations is the duration representing the difference between the number of 100-nanosecond ticks represented by each duration. For example: -``` +```powerquery-m #duration(1,2,30,0) - #duration(0,0,0,30.45) // #duration(1, 2, 29, 29.55) ``` @@ -910,7 +903,7 @@ The difference of two durations is the duration representing the difference betw A _datetime_ `x` and a duration `y` may be subtracted using `x - y` to compute a new _datetime_. Here, _datetime_ stands for any of `date`, `datetime`, `datetimezone`, or `time`. The resulting _datetime_ has a distance from `x` on a linear timeline that is exactly the magnitude of `y`, in the direction opposite the sign of `y`. Subtracting positive durations yields results that are backwards in time relative to `x`, while subtracting negative values yields results that are forwards in time. -``` +```powerquery-m #date(2010,05,20) - #duration(00,08,00,00) //#datetime(2010, 5, 19, 16, 0, 0) //2010-05-19T16:00:00 @@ -923,7 +916,7 @@ A _datetime_ `x` and a duration `y` may be subtracted using `x - y` to compute a Two _datetimes_ `t` and `u` may be subtracted using `t - u` to compute the duration between them. Here, _datetime_ stands for any of `date`, `datetime`, `datetimezone`, or `time`. The duration produced by subtracting `u` from `t` must yield `t` when added to `u`. -``` +```powerquery-m #date(2010,01,31) - #date(2010,01,15) // #duration(16,00,00,00) // 16.00:00:00 @@ -940,7 +933,7 @@ Two _datetimes_ `t` and `u` may be subtracted using `t - u` to compute the durat Subtracting `t - u` when `u > t` results in a negative duration: -``` +```powerquery-m #time(01,30,00) - #time(08,00,00) // #duration(0, -6, -30, 0) ``` @@ -962,16 +955,16 @@ The interpretation of the multiplication operator (`x * y`) is dependent on the | `type number` | `type duration` | `type duration` | Multiple of duration | | `type duration` | `null` | `null` | | | `null` | `type duration` | `null` | | -| | | | | For other combinations of values than those listed in the table, an error with reason code `"Expression.Error"` is raised. Each combination is covered in the following sections. Errors raised when evaluating either operand are propagated. #### Numeric product + The product of two numbers is computed using the _multiplication operator_, producing a number. For example: -``` +```powerquery-m 2 * 4 // 8 6 * null // null #nan * #infinity // #nan @@ -983,14 +976,13 @@ The multiplication operator `*` over numbers uses Double Precision; the standard | * | +y | -y | +0 | -0 | +∞ | -∞ | NaN | | --- | --- | --- | --- | --- | --- | --- | --- | - | +x | +z | -z | +0 | -0 | +∞ | -∞ | NaN | - | -x | -z | +z | -0 | +0 | -∞ | +∞ | NaN | - | +0 | +0 | -0 | +0 | -0 | NaN | NaN | NaN | - | -0 | -0 | +0 | -0 | +0 | NaN | NaN | NaN | - | +∞ | +∞ | -∞ | NaN | NaN | +∞ | -∞ | NaN | - | -∞ | -∞ | +∞ | NaN | NaN | -∞ | +∞ | NaN | - | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | - | | | | | | | | | + | **+x** | +z | -z | +0 | -0 | +∞ | -∞ | NaN | + | **-x** | -z | +z | -0 | +0 | -∞ | +∞ | NaN | + | **+0** | +0 | -0 | +0 | -0 | NaN | NaN | NaN | + | **-0** | -0 | +0 | -0 | +0 | NaN | NaN | NaN | + | **+∞** | +∞ | -∞ | NaN | NaN | +∞ | -∞ | NaN | + | **-∞** | -∞ | +∞ | NaN | NaN | -∞ | +∞ | NaN | + | **NaN** | NaN | NaN | NaN | NaN | NaN | NaN | NaN | * The product in Decimal Precision is computed without losing precision. The scale of the result is the larger of the scales of the two operands. @@ -998,7 +990,7 @@ The multiplication operator `*` over numbers uses Double Precision; the standard The product of a duration and a number is the duration representing the number of 100nanosecond ticks represented by the duration operand times the number operand. For example: -``` +```powerquery-m #duration(2,1,0,15.1) * 2 // #duration(4, 2, 0, 30.2) ``` @@ -1016,7 +1008,6 @@ The interpretation of the division operator (`x / y`) is dependent on the kind o | `type duration` | `type duration` | `type duration` | Numeric quotient of durations | | `type duration` | `null` | `null` | | | `null` | `type duration` | `null` | | -| | | | | For other combinations of values than those listed in the table, an error with reason code `"Expression.Error"` is raised. Each combination is covered in the following sections. @@ -1026,7 +1017,7 @@ Errors raised when evaluating either operand are propagated. The quotient of two numbers is computed using the _division operator_, producing a number. For example: -``` +```powerquery-m 8 / 2 // 4 8 / 0 // #infinity 0 / 0 // #nan @@ -1040,30 +1031,30 @@ The division operator `/` over numbers uses Double Precision; the standard libra | / | +y | -y | +0 | -0 | +∞ | -∞ | NaN | | --- | --- | --- | --- | --- | --- | --- | --- | - | +x | +z | -z | +∞ | -∞ | +0 | -0 | NaN | - | -x | -z | +z | -∞ | +∞ | -0 | +0 | NaN | - | +0 | +0 | -0 | NaN | NaN | +0 | -0 | NaN | - | -0 | -0 | +0 | NaN | NaN | -0 | +0 | NaN | - | +∞ | +∞ | -∞ | +∞ | -∞ | NaN | NaN | NaN | - | -∞ | -∞ | +∞ | -∞ | +∞ | NaN | NaN | NaN | - | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | - | | | | | | | | | - + | **+x** | +z | -z | +∞ | -∞ | +0 | -0 | NaN | + | **-x** | -z | +z | -∞ | +∞ | -0 | +0 | NaN | + | **+0** | +0 | -0 | NaN | NaN | +0 | -0 | NaN | + | **-0** | -0 | +0 | NaN | NaN | -0 | +0 | NaN | + | **+∞** | +∞ | -∞ | +∞ | -∞ | NaN | NaN | NaN | + | **-∞** | -∞ | +∞ | -∞ | +∞ | NaN | NaN | NaN | + | **NaN** | NaN | NaN | NaN | NaN | NaN | NaN | NaN | + * The sum in Decimal Precision is computed without losing precision. The scale of the result is the larger of the scales of the two operands. #### Quotient of durations The quotient of two durations is the number representing the quotient of the number of 100nanosecond ticks represented by the durations. For example: -``` +```powerquery-m #duration(2,0,0,0) / #duration(0,1,30,0) // 32 ``` #### Scaled durations + The quotient of a duration `x` and a number `y` is the duration representing the quotient of the number of 100-nanosecond ticks represented by the duration `x` and the number `y`. For example: -``` +```powerquery-m #duration(2,0,0,0) / 32 // #duration(0,1,30,0) ``` @@ -1083,7 +1074,6 @@ The combination operator (`x & y`) is defined over the following kinds of values | `type list` | `type list` | `type list` | Concatenation | | `type record` | `type record` | `type record` | Merge | | `type table` | `type table` | `type table` | Concatenation | -| | | | | ### Concatenation @@ -1091,13 +1081,13 @@ Two text, two list, or two table values can be concatenated using `x & y`. The following example illustrates concatenating text values: -``` +```powerquery-m "AB" & "CDE" // "ABCDE" ``` The following example illustrates concatenating lists: -``` +```powerquery-m {1, 2} & {3} // {1, 2, 3} ``` @@ -1121,7 +1111,7 @@ Two records can be merged using `x & y`, producing a record that includes fields The following examples illustrate merging records: -``` +```powerquery-m [ x = 1 ] & [ y = 2 ] // [ x = 1, y = 2 ] [ x = 1, y = 2 ] & [ x = 3, z = 4 ] // [ x = 3, y = 2, z = 4 ] ``` @@ -1146,10 +1136,11 @@ A date `x` can be merged with a time `y` using `x & y`, producing a datetime tha The following example illustrates merging a date and a time: -``` +```powerquery-m #date(2013,02,26) & #time(09,17,00) // #datetime(2013,02,26,09,17,00) ``` + The following holds when merging two records using `x + y`: * Errors raised when evaluating the `x` or `y` expressions are propagated. @@ -1168,20 +1159,19 @@ _unary-expression:
### Unary plus operator -The unary plus operator (`+x`) is defined for the following kinds of values: - +The unary plus operator (`+x`) is defined for the following kinds of values: + | X | Result | Interpretation | | --- | --- | --- | | `type number` | `type number` | Unary plus | | `type duration` | `type duration` | Unary plus | | `null` | `null | | -| | | | For other values, an error with reason code `"Expression.Error"` is raised. The unary plus operator allows a `+` sign to be applied to a number, datetime, or null value. The result is that same value. For example: -``` +```powerquery-m + - 1 // -1 + + 1 // 1 + #nan // #nan @@ -1203,13 +1193,12 @@ The unary minus operator (`-x`) is defined for the following kinds of values: | `type number` | `type number ` | Negation | | `type duration` | `type duration` | Negation | | `null` | `null` | | -| | | | For other values, an error with reason code `"Expression.Error"` is raised. The unary minus operator is used to change the sign of a number or duration. For example: -``` +```powerquery-m - (1 + 1) // -2 - - 1 // 1 - - - 1 // -1 @@ -1233,11 +1222,10 @@ The logical negation operator (`not`) is defined for the following kinds of valu | --- | --- | --- | | `type logical` | `type logical` | Negation | | `null` | `null` | | -| | | | - + This operator computes the logical `not` operation on a given logical value. For example: -``` +```powerquery-m not true // false not false // true not (true and true) // false @@ -1262,8 +1250,7 @@ The type compatibility operator `x is y` is defined for the following types of | X | Y | Result | | --- | --- | --- | | `type any` | _nullable-primitive-type_ | `type logical` | -| | | | - + The expression `x is y` returns `true` if the ascribed type of `x` is compatible with `y`, and returns `false` if the ascribed type of `x` is incompatible with `y`. `y` must be a _nullable-primitivetype_. _is-expression:
@@ -1289,8 +1276,7 @@ The type assertion operator `x as y` is defined for the following types of value | X | Y | Result | | --- | --- | --- | | `type any` | _nullable-primitive-type_ | `type any` | -| | | | - + The expression `x as y` asserts that the value `x` is compatible with `y` as per the `is` operator. If it is not compatible, an error is raised. `y` must be a _nullable-primitive-type_. _as-expression:
@@ -1305,7 +1291,7 @@ The expression `x as y` is evaluated as follows: Examples: -``` +```powerquery-m 1 as number // 1 "A" as number // error null as nullable number // null diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index da2cce491..79b155ceb 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 8/23/2021 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -31,7 +31,7 @@ In M, a section is an organizational concept that allows related expressions to The following example shows a section-document: -``` +```powerquery-m section Section1; A = 1; //1 @@ -46,7 +46,7 @@ _section-access-expression:
The following example shows a set of two documents containing sections that are mutually referential: -``` +```powerquery-m section Section1; A = "Hello"; //"Hello" B = 1 + Section2!A; //3 @@ -60,7 +60,7 @@ Section members may optionally be declared as `shared`, which omits the requirem The following example illustrates the behavior of shared members when used across sections within the same set of documents: -``` +```powerquery-m section Section1; shared A = 1; // 1 @@ -75,7 +75,7 @@ C = Section1!A + 2; // 3 Defining a shared member with the same name in different sections will produce a valid global environment, however accessing the shared member will raise an error when accessed. -``` +```powerquery-m section Section1; shared A = 1; @@ -116,7 +116,7 @@ The `#sections` intrinsic variable returns all sections within the global enviro The following example shows a document consisting of two sections and the record produced by evaluating the `#sections` intrinsic variable within the context of that document: -``` +```powerquery-m section Section1; A = 1; B = 2; @@ -134,7 +134,7 @@ D = "world"; The following holds when evaluating `#sections`: -* The `#sections` intrinsic variable preserves the evaluation state of all section member expressions within the document. +* The `#sections` intrinsic variable preserves the evaluation state of all section member expressions within the document. * The `#sections` intrinsic variable does not force the evaluation of any unevaluated section members. ### #shared @@ -143,7 +143,7 @@ The `#shared` intrinsic variable returns a record containing the names and value The following example shows a document with two shared members and the corresponding record produced by evaluating the #shared intrinsic variable within the context of that document: -``` +```powerquery-m section Section1; shared A = 1; B = 2; diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 292d5053a..a848d9468 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 11/29/2021 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -32,7 +32,7 @@ The set of _primitive types_ includes the types of primitive values a number of All types that are not members of the closed set of primitive types are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: -_type-expression:
+_type-expression:
      primary-expression_
      `type` _primary-type
type:
@@ -51,33 +51,33 @@ primitive-type:_ one of
The _primitive-type_ names are _contextual keywords_ recognized only in a _type_ context. The use of parentheses in a _type_ context moves the grammar back to a regular expression context, requiring the use of the type keyword to move back into a type context. For example, to invoke a function in a _type_ context, parentheses can be used: -``` +```powerquery-m type nullable ( Type.ForList({type number}) ) // type nullable {number} ``` Parentheses can also be used to access a variable whose name collides with a _primitive-type_ name: -``` +```powerquery-m let record = type [ A = any ] in type {(record)} // type {[ A = any ]} ``` The following example defines a type that classifies a list of numbers: -``` +```powerquery-m type { number } ``` Similarly, the following example defines a custom type that classifies records with mandatory fields named `X` and `Y` whose values are numbers: -``` +```powerquery-m type [ X = number, Y = number ] ``` The ascribed type of a value is obtained using the standard library function [Value.Type](value-type.md), as shown in the following examples: -``` +```powerquery-m Value.Type( 2 ) // type number Value.Type( {2} ) // type list Value.Type( [ X = 1, Y = 2 ] ) // type record @@ -85,7 +85,7 @@ Value.Type( [ X = 1, Y = 2 ] ) // type record The `is` operator is used to determine whether a value's type is compatible with a given type, as shown in the following examples: -``` +```powerquery-m 1 is number // true 1 is text // false {2} is list // true @@ -93,7 +93,7 @@ The `is` operator is used to determine whether a value's type is compatible with The `as` operator checks if the value is compatible with the given type, and raises an error if it is not. Otherwise, it returns the original value. -``` +```powerquery-m Value.Type( 1 as number ) // type number {2} as text // error, type mismatch ``` @@ -103,7 +103,7 @@ Note that the `is` and `as` operators only accept primitive types as their right A type `X` is _compatible_ with a type `Y` if and only if all values that conform to `X` also conform to `Y`. All types are compatible with type `any` and no types (but `none` itself) are compatible with type `none`. The following graph shows the compatibility relation. (Type compatibility is reflexive and transitive. It forms a lattice with type `any` as the top and type `none` as the bottom value.) The names of abstract types are set in _italics_. ![Type compatibility](media/m-spec-type-compatibility.png) - + The following operators are defined for type values: | Operator | Result | @@ -111,7 +111,6 @@ The following operators are defined for type values: | `x = y` | Equal | | `x <> y` | Not equal | | `x ?? y` | Coalesce | -| | | The native type of type values is the intrinsic type `type`. @@ -119,7 +118,7 @@ The native type of type values is the intrinsic type `type`. Types in the M language form a disjoint hierarchy rooted at type `any`, which is the type that classifies all values. Any M value conforms to exactly one primitive subtype of `any`. The closed set of primitive types deriving from type `any` are as follows: -* `type null`, which classifies the null value. +* `type null`, which classifies the null value. * `type logical`, which classifies the values true and false. * `type number`, which classifies number values. * `type time`, which classifies time values. @@ -153,7 +152,7 @@ The result of evaluating a _list-type_ is a _list type value_ whose base type is The following examples illustrate the syntax for declaring homogeneous list types: -``` +```powerquery-m type { number } // list of numbers type { record } // list of records type {{ text }} // list of lists of text values @@ -167,7 +166,7 @@ The item type of a list type indicates a bound: all items of a conforming list c Any value that is a record conforms to the intrinsic type record, which does not place any restrictions on the field names or values within a record value. A _record-type value_ is used to restrict the set of valid names as well as the types of values that are permitted to be associated with those names. -_record-type:_
+_record-type:_
      `[` _open-record-marker_ `]`
      `[` _field-specification-listopt_ `]`
      `[` _field-specification-list , open-record-marker_ `]`
@@ -187,7 +186,7 @@ The result of evaluating a _record-type_ is a type value whose base type is `rec The following examples illustrate the syntax for declaring record types: -``` +```powerquery-m type [ X = number, Y = number] type [ Name = text, Age = number ] type [ Title = text, optional Description = text ] @@ -196,7 +195,7 @@ type [ Name = text, ... ] Record types are _closed_ by default, meaning that additional fields not present in the _fieldspecification-list_ are not allowed to be present in conforming values. Including the _openrecord-marker_ in the record type declares the type to be _open_, which permits fields not present in the field specification list. The following two expressions are equivalent: -``` +```powerquery-m type record // primitive type classifying all records type [ ... ] // custom type classifying all records ``` @@ -240,7 +239,7 @@ The result of evaluating a _function-type_ is a type value whose base type is `f The following examples illustrate the syntax for declaring function types: -``` +```powerquery-m type function (x as text) as number type function (y as number, optional z as text) as any ``` @@ -262,7 +261,7 @@ The result of evaluating a _table-type_ is a type value whose base type is `tabl The _row type_ of a table specifies the column names and column types of the table as a closed record type. So that all table values conform to the type `table`, its row type is type `record` (the empty open record type). Thus, type table is abstract since no table value can have type `table`'s row type (but all table values have a row type that is compatible with type `table`'s row type). The following example shows the construction of a table type: -``` +```powerquery-m type table [A = text, B = number, C = binary] // a table type with three columns named A, B, and C // of column types text, number, and binary, respectively @@ -270,10 +269,9 @@ type table [A = text, B = number, C = binary] A table-type value also carries the definition of a table value's _keys_. A key is a set of column names. At most one key can be designated as the table's _primary key_. (Within M, table keys have no semantic meaning. However, it is common for external data sources, such as databases or OData feeds, to define keys over tables. Power Query uses key information to improve performance of advanced functionality, such as cross-source join operations.) -The standard library functions `Type.TableKeys`, `Type.AddTableKey`, and -`Type.ReplaceTableKeys` can be used to obtain the keys of a table type, add a key to a table type, and replace all keys of a table type, respectively. +The standard library functions `Type.TableKeys`, `Type.AddTableKey`, and `Type.ReplaceTableKeys` can be used to obtain the keys of a table type, add a key to a table type, and replace all keys of a table type, respectively. -``` +```powerquery-m Type.AddTableKey(tableType, {"A", "B"}, false) // add a non-primary key that combines values from columns A and B Type.ReplaceTableKeys(tableType, {}) @@ -289,14 +287,14 @@ _nullable-type:_
The result is an abstract type that allows values of type _T_ or the value `null`. -``` +```powerquery-m 42 is nullable number // true null is nullable number // true ``` Ascription of `type nullable` _T_ reduces to ascription of `type null` or `type` _T_. (Recall that nullable types are abstract and no value can be directly of abstract type.) -``` +```powerquery-m Value.Type(42 as nullable number) // type number Value.Type(null as nullable number) // type null ``` @@ -310,8 +308,7 @@ The following hold (for any type T): The following are pairwise equivalent (for any type T): - -    `type nullable any`
+    `type nullable any`
    `any`
    `Type.NonNullable(type any)`
@@ -319,23 +316,22 @@ The following are pairwise equivalent (for any type T):     `type nullable none`
    `type null`
- +     `Type.NonNullable(type null)`
    `type none`
    type nullable nullable T
    type nullable T
- -    Type.NonNullable(Type.NonNullable(type T))
+ +    Type.NonNullable(Type.NonNullable(type T))
    Type.NonNullable(type T)
- -    Type.NonNullable(type nullable T)
+ +    Type.NonNullable(type nullable T)
    Type.NonNullable(type T)
    type nullable (Type.NonNullable(type T))
    type nullable T - ## Ascribed type of a value A value's _ascribed type_ is the type to which a value is _declared_ to conform. When a value is ascribed a type, only a limited conformance check occurs. _M does not perform conformance checking beyond a nullable primitive type. M program authors that choose to ascribe values with type definitions more complex than a nullable primitive-type must ensure that such values conform to these types._ @@ -346,7 +342,7 @@ Library functions may choose to compute and ascribe complex types to results bas The ascribed type of a value may be obtained using the library function `Value.Type`. For example: -``` +```powerquery-m Value.Type( Value.ReplaceType( {1}, type {number} ) // type {number} ``` @@ -357,7 +353,7 @@ Type equivalence is not defined in M. Any two type values that are compared for Compatibility between a given type and a nullable primitive type can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a nullable primitive type value as its second argument: -``` +```powerquery-m Type.Is(type text, type nullable text) // true Type.Is(type nullable text, type text) // false Type.Is(type number, type text) // false @@ -369,7 +365,7 @@ There is no support in M for determining compatibility of a given type with a cu The standard library does include a collection of functions to extract the defining characteristics from a custom type, so specific compatibility tests can be implemented as M expressions. Below are some examples; consult the M library specification for full details. -``` +```powerquery-m Type.ListItem( type {number} ) // type number Type.NonNullable( type nullable text ) @@ -389,4 +385,3 @@ Type.FunctionReturn( type function (x as number, optional y as text) as number) // type number ``` - diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index 9b18cc325..6275294cd 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -6,7 +6,7 @@ author: dougklopfenstein ms.service: powerquery ms.topic: article -ms.date: 11/29/2021 +ms.date: 8/2/2022 ms.author: dougklo --- @@ -31,14 +31,13 @@ A value is data produced by evaluating an expression. This section describes the | _Table_ | `#table({"X","Y"},{{0,1},{1,0}})` | | _Function_ | `(x) => x + 1` | | _Type_ | `type { number }`    `type table [ A = any, B = text ]` | -| | | - + The following sections cover each value kind in detail. Types and type ascription are defined formally in [Types](m-spec-types.md). Function values are defined in [Functions](m-spec-functions.md). The following sections list the operators defined for each value kind and give examples. The full definition of operator semantics follows in [Operators](m-spec-operators.md). ## Null A _null value_ is used to represent the absence of a value, or a value of indeterminate or unknown state. A null value is written using the literal `null`. The following operators are defined for null values: - + | Operator | Result | | -------- | ------ | | `x > y` | Greater than | @@ -48,8 +47,7 @@ A _null value_ is used to represent the absence of a value, or a value of indete | `x = y` | Equal | | `x <> y` | Not equal | | `x ?? y` | Coalesce | -| | | - + The native type of the `null` value is the intrinsic type `null`. ## Logical @@ -68,15 +66,14 @@ A _logical value_ is used for Boolean operations has the value true or false. A | `x ?? y` | Coalesce | | `x and y` | Conditional logical AND | | `not x` | Logical NOT | -| | | - + The native type of both logical values (`true` and `false`) is the intrinsic type `logical`. ## Number A _number value_ is used for numeric and arithmetic operations. The following are examples of number literals: -``` +```powerquery-m 3.14 // Fractional number -1.5 // Fractional number 1.0e3 // Fractional number with exponent @@ -122,7 +119,6 @@ The following operators are defined for number values: | `x ?? y` | Coalesce | | `+x` | Unary plus | | `-x` | Negation | -| | | The native type of number values is the intrinsic type `number`. @@ -132,7 +128,7 @@ A _time value_ stores an opaque representation of time of day. A time is encoded Time values may be constructed using the #time instrinsic. -``` +```powerquery-m #time(hour, minute, second) ``` @@ -155,7 +151,6 @@ The following operators are defined for time values: | `x < y` | Less than | | `x <= y` | Less than or equal | | `x ?? y` | Coalesce | -| | | The following operators permit one or both of their operands to be a date: @@ -166,8 +161,7 @@ The following operators permit one or both of their operands to be a date: | `x - y` | `time` | `duration` | Date offset by negated duration | | `x - y` | `time` | `time` | Duration between dates | | `x & y` | `date` | `time` | Merged datetime | -| | | | | - + The native type of time values is the intrinsic type `time`. ## Date @@ -176,7 +170,7 @@ A _date value_ stores an opaque representation of a specific day. A date is enco Date values may be constructed using the `#date` intrinsic. -``` +```powerquery-m #date(year, month, day) ``` @@ -199,7 +193,6 @@ The following operators are defined for date values: | `x < y` | Less than | | `x <= y` | Less than or equal | | `x ?? y` | Coalesce | -| | | The following operators permit one or both of their operands to be a date: @@ -210,16 +203,16 @@ The following operators permit one or both of their operands to be a date: | `x - y` | `date` | `duration` | Date offset by negated duration | | `x - y` | `date` | `date` | Duration between dates | | `x & y` | `date` | `time` | Merged datetime | -| | | | | The native type of date values is the intrinsic type `date`. ## DateTime + A _datetime value_ contains both a date and time. DateTime values may be constructed using the `#datetime` intrinsic. -``` +```powerquery-m #datetime(year, month, day, hour, minute, second) ``` @@ -244,17 +237,15 @@ The following operators are defined for datetime values: | `x < y` | Less than | | `x <= y` | Less than or equal | | `x ?? y` | Coalesce | -| | | - + The following operators permit one or both of their operands to be a datetime: - + | Operator | Left Operand | Right Operand | Meaning | | -------- | ------------ | ------------- | ------- | | `x + y` | `datetime` | `duration` | Datetime offset by duration | | `x + y` | `duration` | `datetime` | Datetime offset by duration | | `x - y` | `datetime` | `duration` | Datetime offset by negated duration | | `x - y` | `datetime` | `datetime` | Duration between datetimes | -| | | | | The native type of datetime values is the intrinsic type `datetime`. @@ -264,7 +255,7 @@ A _datetimezone_ value contains a datetime and a timezone. A _timezone_ is encod DateTimeZone values may be constructed using the `#datetimezone` intrinsic. -``` +```powerquery-m #datetimezone( year, month, day, hour, minute, second, @@ -295,28 +286,25 @@ The following operators are defined for datetimezone values: | `x < y` | Less than | | `x <= y` | Less than or equal | | `x ?? y` | Coalesce | -| | | - + The following operators permit one or both of their operands to be a datetimezone: - + | Operator | Left Operand | Right Operand | Meaning | | -------- | ------------ | ------------- | ------- | | `x + y` | `datetimezone` | `duration` | Datetimezone offset by duration | | `x + y` | `duration` | `datetimezone` | Datetimezone offset by duration | | `x - y` | `datetimezone` | `duration` | Datetimezone offset by negated duration | | `x - y` | `datetimezone` | `datetimezone` | Duration between datetimezones | -| | | | | The native type of datetimezone values is the intrinsic type `datetimezone`. ## Duration -A _duration value_ stores an opaque representation of the distance between two points on a timeline measured 100-nanosecond ticks. The magnitude of a _duration_ can be either positive or negative, with positive values denoting progress forwards in time and negative values denoting progress backwards in time. The minimum value that can be stored in a _duration_ is -9,223,372,036,854,775,808 ticks, or 10,675,199 days 2 hours 48 minutes 05.4775808 seconds backwards in time. The maximum value that can be stored in a _duration_ is 9,223,372,036,854,775,807 ticks, or 10,675,199 days 2 hours 48 minutes -05.4775807 seconds forwards in time. +A _duration value_ stores an opaque representation of the distance between two points on a timeline measured 100-nanosecond ticks. The magnitude of a _duration_ can be either positive or negative, with positive values denoting progress forwards in time and negative values denoting progress backwards in time. The minimum value that can be stored in a _duration_ is -9,223,372,036,854,775,808 ticks, or 10,675,199 days 2 hours 48 minutes 05.4775808 seconds backwards in time. The maximum value that can be stored in a _duration_ is 9,223,372,036,854,775,807 ticks, or 10,675,199 days 2 hours 48 minutes 05.4775807 seconds forwards in time. Duration values may be constructed using the `#duration` intrinsic function: -``` +```powerquery-m #duration(0, 0, 0, 5.5) // 5.5 seconds #duration(0, 0, 0, -5.5) // -5.5 seconds #duration(0, 0, 5, 30) // 5.5 minutes @@ -336,7 +324,6 @@ The following operators are defined on duration values: | `x < y` | Less than | | `x <= y` | Less than or equal | | `x ?? y` | Coalesce | -| | | Additionally, the following operators allow one or both of their operands to be a duration value: @@ -351,7 +338,6 @@ Additionally, the following operators allow one or both of their operands to be | `x * y` | `duration` | `number` | N times a duration | | `x * y` | `number` | `duration` | N times a duration | | `x / y` | `duration` | `number` | Fraction of a duration | -| | | | | The native type of duration values is the intrinsic type `duration`. @@ -374,11 +360,11 @@ _double-quote-escape-sequence:_
The following is an example of a _text_ value: -``` +```powerquery-m "ABC" // the text value ABC ``` -The following operators are defined on _text_ values: +The following operators are defined on _text_ values: | Operator | Result | | -------- | ------ | @@ -390,7 +376,6 @@ The following operators are defined on _text_ values: | `x <= y` | Less than or equal | | `x & y` | Concatenation | | `x ?? y` | Coalesce | -| | | The native type of text values is the intrinsic type `text`. @@ -398,12 +383,12 @@ The native type of text values is the intrinsic type `text`. A _binary value_ represents a sequence of bytes. There is no literal format. Several standard library functions are provided to construct binary values. For example, `#binary` can be used to construct a binary value from a list of bytes: -``` +```powerquery-m #binary( {0x00, 0x01, 0x02, 0x03} ) ``` The following operators are defined on _binary_ values: - + | Operator | Result | | -------- | ------ | | `x = y` | Equal | @@ -413,7 +398,6 @@ The following operators are defined on _binary_ values: | `x < y` | Less than | | `x <= y` | Less than or equal | | `x ?? y` | Coalesce | -| | | The native type of binary values is the intrinsic type _binary_. @@ -421,7 +405,7 @@ The native type of binary values is the intrinsic type _binary_. A _list value_ is a value which produces a sequence of values when enumerated. A value produced by a list can contain any kind of value, including a list. Lists can be constructed using the initialization syntax, as follows: -_list-expression:_
+_list-expression:_
      { _item-listopt_ }
_item-list:
      item
@@ -432,7 +416,7 @@ item:
The following is an example of a _list-expression_ that defines a list with three text values: `"A"`, `"B"`, and `"C"`. -``` +```powerquery-m {"A", "B", "C"} ``` @@ -443,13 +427,13 @@ The value `"A"` is the first item in the list, and the value `"C"` is the last i To include a sequence of whole number in a list, the `a..b` form can be used: -``` +```powerquery-m { 1, 5..9, 11 } // { 1, 5, 6, 7, 8, 9, 11 } ``` The number of items in a list, known as the _list count_, can be determined using the `List.Count` function. -``` +```powerquery-m List.Count({true, false}) // 2 List.Count({}) // 0 ``` @@ -458,7 +442,7 @@ A list may effectively have an infinite number of items; `List.Count` for such l If a list contains no items, it is called an _empty list_. An empty list is written as: -``` +```powerquery-m {} // empty list ``` @@ -470,11 +454,10 @@ The following operators are defined for lists: | `x <> y` | Not equal | | `x & y` | Concatenate | | `x ?? y` | Coalesce | -| | | For example: -``` +```powerquery-m {1, 2} & {3, 4, 5} // {1, 2, 3, 4, 5} {1, 2} = {1, 2} // true {2, 1} <> {1, 2} // true @@ -498,13 +481,13 @@ field-name:
The following example constructs a record with a field named `x` with value `1`, and a field named `y` with value `2`. -``` +```powerquery-m [ x = 1, y = 2 ] ``` The following example constructs a record with `a` field named a with a nested record value. The nested record has a field named `b` with value `2`. -``` +```powerquery-m [ a = [ b = 2 ] ] ``` @@ -528,13 +511,13 @@ The following holds when evaluating a record expression: * Every field name that is specified must be unique within the record, or it is an error. Names are compared using an ordinal comparison. -``` +```powerquery-m [ x = 1, x = 2 ] // error: field names must be unique [ X = 1, x = 2 ] // OK ``` A record with no fields is called an _empty record_, and is written as follows: -``` +```powerquery-m [] // empty record ``` @@ -542,27 +525,27 @@ Although the order of the fields of a record is not significant when accessing a The same two records produce different results when the fields are obtained: -``` +```powerquery-m Record.FieldNames([ x = 1, y = 2 ]) // [ "x", "y" ] Record.FieldNames([ y = 1, x = 2 ]) // [ "y", "x" ] ``` The number of fields in a record can be determined using the `Record.FieldCount` function. For example: -``` +```powerquery-m Record.FieldCount([ x = 1, y = 2 }) // 2 Record.FieldCount([]) // 0 ``` In addition to using the record initialization syntax `[ ]`, records can be constructed from a list of values, and a list of field names or a record type. For example: -``` +```powerquery-m Record.FromList({1, 2}, {"a", "b"}) ``` The above is equivalent to: -``` +```powerquery-m [ a = 1, b = 2 ] ``` @@ -574,11 +557,10 @@ The following operators are defined for record values: | `x <> y` | Not equal | | `x & y` | Merge | | `x ?? y` | Coalesce | -| | | The following examples illustrate the above operators. Note that record merge uses the fields from the right operand to override fields from the left operand, should there be an overlap in field names. -``` +```powerquery-m [ a = 1, b = 2 ] & [ c = 3 ] // [ a = 1, b = 2, c = 3 ] [ a = 1, b = 2 ] & [ a = 3 ] // [ a = 3, b = 2 ] [ a = 1, b = 2 ] = [ b = 2, a = 1 ] // true @@ -593,7 +575,7 @@ A _table value_ is an ordered sequence of rows. A _row_ is an ordered sequence o There is no literal syntax for tables. Several standard library functions are provided to construct binary values. For example, `#table` can be used to construct a table from a list of row lists and a list of header names: -``` +```powerquery-m #table({"x", "x^2"}, {{1,1}, {2,4}, {3,9}}) ``` @@ -601,7 +583,7 @@ The above example constructs a table with two columns, both of which are of `typ `#table` can also be used to specify a full table type: -``` +```powerquery-m #table( type table [Digit = number, Name = text], {{1,"one"}, {2,"two"}, {3,"three"}} @@ -618,11 +600,10 @@ The following operators are defined for table values: | `x <> y` | Not equal | | `x & y` | Concatenation | | `x ?? y` | Coalesce | -| | | Table concatenation aligns like-named columns and fills in `null` for columns appearing in only one of the operand tables. The following example illustrates table concatenation: -``` +```powerquery-m #table({"A","B"}, {{1,2}}) & #table({"B","C"}, {{3,4}}) ``` @@ -631,13 +612,13 @@ Table concatenation aligns like-named columns and fills in `null` for columns ap | --- | --- | ---| | `1` | `2` | `null` | | `null` | `3` | `4` | -| | | -The native type of table values is a custom table type (derived from the intrinsic type `table`) that lists the column names, specifies all column types to be any, and has no keys. (See [Table types](m-spec-types.md#table-types) for details on table types.) +The native type of table values is a custom table type (derived from the intrinsic type `table`) that lists the column names, specifies all column types to be any, and has no keys. (Go to [Table types](m-spec-types.md#table-types) for details on table types.) ## Function A _function value_ is a value that maps a set of arguments to a single value. The details of _function_ values are described in [Functions](m-spec-functions.md). ## Type + A _type value_ is a value that classifies other values. The details of _type_ values are described in [Types](m-spec-types.md). diff --git a/query-languages/m/metadata.md b/query-languages/m/metadata.md index a882b4440..d6ed15155 100644 --- a/query-languages/m/metadata.md +++ b/query-languages/m/metadata.md @@ -1,16 +1,17 @@ --- description: "Learn more about: Metadata" title: "Metadata | Microsoft Docs" -ms.date: 4/16/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo - --- + # Metadata + **Metadata** is information about a value that is associated with a value. **Metadata** is represented as a record value, called a metadata record. The fields of a **metadata record** can be used to store the metadata for a value. Every value has a metadata record. If the value of the metadata record has not been specified, then the metadata record is empty (has no fields). Associating a metadata record with a value does not change the value’s behavior in evaluations except for those that explicitly inspect metadata records. A metadata record value is associated with a value x using the syntax value meta [record]. For example, the following associates a metadata record with Rating and Tags fields with the text value "Mozart": @@ -18,7 +19,8 @@ A metadata record value is associated with a value x using the syntax value meta ```powerquery-m "Mozart" meta [ Rating = 5, Tags = {"Classical"} ] -``` +``` + A metadata record can be accessed for a value using the `Value.Metadata` function. In the following example, the expression in the ComposerRating field accesses the metadata record of the value in the Composer field, and then accesses the Rating field of the metadata record. ```powerquery-m @@ -26,8 +28,8 @@ A metadata record can be accessed for a value using the `Value.Metadata` functio Composer = "Mozart" meta [ Rating = 5, Tags = {"Classical"} ], ComposerRating = Value.Metadata(Composer)[Rating] // 5 ] -``` +``` + Metadata records are not preserved when a value is used with an operator or function that constructs a new value. For example, if two text values are concatenated using the & operator, the metadata of the resulting text value is an empty record []. The standard library functions `Value.RemoveMetadata` and `Value.ReplaceMetadata` can be used to remove all metadata from a value and to replace a value’s metadata. - diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index 99aca5385..7dd7eaef4 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -1,22 +1,23 @@ --- description: "Learn more about: Operators" title: "Operators | Microsoft Docs" -ms.date: 4/16/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo - --- + # Operators + The Power Query M formula language includes a set of operators that can be used in an expression. **Operators** are applied to **operands** to form symbolic expressions. For example, in the expression 1 + 2 the numbers 1 and 2 are operands and the operator is the addition operator (+). The meaning of an operator can vary depending on the type of operand values. The language has the following operators: -### Plus operator (+) - +### Plus operator (+) + |Expression|Equals| |--------------|----------| |1 + 2|Numeric addition: 3| @@ -30,7 +31,8 @@ The meaning of an operator can vary depending on the type of operand values. The |{1} & {2, 3}|List concatenation: {1, 2, 3}| |[ a = 1 ] & [ b = 2 ]|Record merge: [ a = 1, b = 2 ]| -### List of M operators +### List of M operators + **Common operators** which apply to null, logical, number, time, date, datetime, datetimezone, duration, text, binary) |Operator|Description| @@ -67,7 +69,7 @@ The meaning of an operator can vary depending on the type of operand values. The |------------|---------------| |&|Concatenation| -**List, record, table operators** +**List, record, table operators** |Operator|Description| |------------|---------------| @@ -75,26 +77,26 @@ The meaning of an operator can vary depending on the type of operand values. The |<>|Not equal| |&|Concatenation| -**Record lookup operator** +**Record lookup operator** |Operator|Description| |------------|---------------| |[]|Access the fields of a record by name.| -**List indexer operator** +**List indexer operator** |Operator|Description| |------------|---------------| |{}|Access an item in a list by its zero-based numeric index.| -**Type compatibility and assertion operators** +**Type compatibility and assertion operators** |Operator|Description| |------------|---------------| |is|The expression x is y returns true if the type of x is compatible with y, and returns false if the type of x is not compatible with y.| |as|The expression x as y asserts that the value x is compatible with y as per the is operator.| -**Date operators** +**Date operators** |Operator|Left Operand|Right Operand|Meaning| |------------|----------------|-----------------|-----------| @@ -104,7 +106,7 @@ The meaning of an operator can vary depending on the type of operand values. The |x - y|time|time|Duration between dates| |x & y|date|time|Merged datetime| -**Datetime operators** +**Datetime operators** |Operator|Left Operand|Right Operand|Meaning| |------------|----------------|-----------------|-----------| @@ -113,7 +115,7 @@ The meaning of an operator can vary depending on the type of operand values. The |x - y|datetime|duration|Datetime offset by negated duration| |x - y|datetime|datetime|Duration between datetimes| -**Datetimezone operators** +**Datetimezone operators** |Operator|Left Operand|Right Operand|Meaning| |------------|----------------|-----------------|-----------| @@ -122,7 +124,7 @@ The meaning of an operator can vary depending on the type of operand values. The |x - y|datetimezone|duration|Datetimezone offset by negated duration| |x - y|datetimezone|datetimezone|Duration between datetimezones| -**Duration operators** +**Duration operators** |Operator|Left Operand|Right Operand|Meaning| |------------|----------------|-----------------|-----------| @@ -137,11 +139,11 @@ The meaning of an operator can vary depending on the type of operand values. The |x / y|duration|number|Fraction of a duration| > [!NOTE] -> Not all combinations of values may be supported by an operator. Expressions that, when evaluated, encounter undefined operator conditions evaluate to errors. For more information about errors in M, see [Errors](errors.md) +> Not all combinations of values may be supported by an operator. Expressions that, when evaluated, encounter undefined operator conditions evaluate to errors. For more information about errors in M, go to [Errors](errors.md) **Error example**: |Function|Equals| |------------|----------| |1 + "2"|Error: adding number and text is not supported| - + \ No newline at end of file diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index dd4472428..4b9197fe1 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Power Query M language specification" title: "Power Query M language specification | Microsoft Docs" -ms.date: 4/7/2020 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh ms.topic: reference @@ -11,7 +11,7 @@ ms.author: dougklo --- # Power Query M language specification -The specification describes the values, expressions, environments and variables, identifiers, and the evaluation model that form the Power Query M language’s basic concepts. +The specification describes the values, expressions, environments and variables, identifiers, and the evaluation model that form the Power Query M language’s basic concepts. The specification is contained in the following topics. @@ -27,4 +27,3 @@ The specification is contained in the following topics. * [Error Handling](m-spec-error-handling.md) * [Sections](m-spec-sections.md) * [Consolidated Grammar](m-spec-consolidated-grammar.md) - diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index 0cff589e5..88d6a97f1 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Types in the Power Query M formula language" title: "Power Query M type system | Microsoft Docs" -ms.date: 4/16/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh @@ -20,7 +20,7 @@ Developers should have a thorough understanding of the type system in-order to d By exploring the M type system more carefully, many of these issues can be clarified, and developers will be empowered to craft the solutions they need. Knowledge of predicate calculus and naïve set theory should be adequate to understand the notation used. - + ## PRELIMINARIES (1) *B* := { _true_; _false_ }
@@ -46,13 +46,13 @@ _Fn is the set of all sets of n record fields._ (8) *F*\* := ( ⋃*0≤i≤∞* *F**i* ) ∖ { _F_ | ⟨_b1_, _n1_, _t1_⟩, ⟨_b2_, _n2_, _t2_⟩ ∈ _F_ ⋀ _n1_ = _n2_ }
_F\* is the set of all sets (of any length) of record fields, except for the sets where more than one field has the same name._ - + (9) *C* := ⟨*N*,*T*⟩
_C is the set of column types, for tables. Each column has a name and a type._ (10) *C**n* ⊂ ⋃_0≤i≤n_ ⟨*i*, *C*⟩
_Cn is the set of all ordered sequences of n column types._ - + (11) _C_\* := ( ⋃_0≤i≤∞_ *C**i* ) ∖ { *C**m* | ⟨*a*, ⟨*n1*, *t1*⟩⟩, ⟨*b*, ⟨*n2*, *t2*⟩⟩ ∈ _Cm_ ⋀ *n1* = *n2* }
_C\* is the set of all combinations (of any length) of column types, except for those where more than one column has the same name._ @@ -81,7 +81,7 @@ _A Primitive Type is one from this list of M keywords._ (19) *T**N* := { *tn*, u ∈ *T* | *tn* = u+null } = nullable *t*
_Any type can additionally be marked as being nullable, by using the_ "nullable" _keyword._ - + (20) *T* := _TF_ ∪ _TL_ ∪ _TR_ ∪ _TT_ ∪ _TP_ ∪ _TN_
_The set of all M types is the union of these six sets of types: Function Types, List Types, Record Types, Table Types, Primitive Types, and Nullable Types._ @@ -102,15 +102,15 @@ Some identities are needed to define some special cases, and may also help eluci (25) nullable nullable *t* ∈ *T* = nullable *t*
(26) *NonNullable*(nullable *t* ∈ *T*) = *NonNullable*(*t*)
(27) *NonNullable*(any) = anynonnull
- + ## TYPE COMPATIBILITY As defined elsewhere, an M type is compatable with another M type if and only if all values that conform to the first type also conform to the second type. -Here is defined a compatability relation that does not depend on conforming values, and is based on the properties of the types themselves. It is anticiplated that this relation, as defined in this document, is completely equivalent to the original semantic definition. +Here is defined a compatibility relation that does not depend on conforming values, and is based on the properties of the types themselves. It is anticipated that this relation, as defined in this document, is completely equivalent to the original semantic definition. -The "is compatible with" relation : ≤ : *B* ← *T* × *T*
-In the below section, a lowercase *t* will always represent an M Type, an element of *T*. +The "is compatible with" relation : ≤ : *B* ← *T* × *T*
+In the below section, a lowercase *t* will always represent an M Type, an element of *T*. A *Φ* will represent a subset of *F*\*, or of *C*\*. @@ -170,7 +170,7 @@ _A record type with a non-optional field is compatible with a record type identi (46) _ta_ ∈ *T**R*o = ⟨true, (_Φ_, ⟨b, n, u⟩)⟩, _tb_ ∈ *T**R*o = ⟨true, _Φ_⟩ → _ta_ ≤ _tb_
_An open record type is compatible with another open record type with one fewer field._ - + (47) _ta_ ∈ _TT_ = (_Φ_, ⟨i, ⟨n, _ua_⟩⟩), _tb_ ∈ _TT_ = (_Φ_, ⟨i, ⟨n, _ub_⟩⟩) ∧ _ua_ ≤ _ub_ → _ta_ ≤ _tb_
_A table type is compatible with a second table type, which is identical but for one column having a differing type, when the types for that column are compatible._ @@ -183,5 +183,3 @@ Retrieved from https://msdn.microsoft.com/library/mt807488.aspx Microsoft Corporation (n.d.)
Power Query M function reference [web page]
Retrieved from https://msdn.microsoft.com/library/mt779182.aspx - - diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index 08ffeef2d..c8f69f4ab 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Quick tour of the Power Query M formula language" title: "Quick tour | Microsoft Docs" -ms.date: 12/12/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh ms.topic: conceptual @@ -19,7 +19,7 @@ This quick tour describes creating Power Query M formula language queries. ## Create a query with Query Editor -To create an advanced query, you use the **Query Editor**. A mashup query is composed of variables, expressions, and values encapsulated by a **let** expression. A variable can contain spaces by using the # identifier with the name in quotes as in #"Variable name". +To create an advanced query, you use the **Query Editor**. A mashup query is composed of variables, expressions, and values encapsulated by a **let** expression. A variable can contain spaces by using the # identifier with the name in quotes as in `#"Variable name"`. A **let** expression follows this structure: @@ -33,14 +33,13 @@ in To create an M query in the **Query Editor**, you follow this basic process: -- Create a series of query formula steps that start with the **let** statement. Each step is defined by a step variable name. An M **variable** can include spaces by using the # character as #"Step Name". A formula step can be a custom formula. Please note that the Power Query Formula Language is case sensitive. +1. Create a series of query formula steps that start with the **let** statement. Each step is defined by a step variable name. An M **variable** can include spaces by using the # character as `#"Step Name"`. A formula step can be a custom formula. Note that the Power Query Formula Language is case sensitive. -- Each query formula step builds upon a previous step by referring to a step by its variable name. +2. Each query formula step builds upon a previous step by referring to a step by its variable name. -- Output a query formula step using the **in** statement. Generally, the last query step is used as the in final data set result. - - -To learn more about expressions and values, see [Expressions, values, and let expression](expressions-values-and-let-expression.md). +3. Output a query formula step using the **in** statement. Generally, the last query step is used as the in final data set result. + +To learn more about expressions and values, go to [Expressions, values, and let expression](expressions-values-and-let-expression.md). ## Simple Power Query M formula steps @@ -48,7 +47,7 @@ Let's assume you created the following transform in the **Query Editor** to conv ![Intro to M Step 1](media/mstep1.png "Intro to M Step 1") -**You have a table that looks like this:** +You have a table that looks like this: |OrderID|CustomerID|Item|Price| |-----------|--------------|--------|---------| @@ -56,7 +55,7 @@ Let's assume you created the following transform in the **Query Editor** to conv |2|1|1 lb. worms|5| |3|2|fishing net|25| -**And, you want to capitalize each word in the Item column to produce the following table:** +And, you want to capitalize each word in the Item column to produce the following table: |OrderID|CustomerID|Item|Price| |-----------|--------------|--------|---------| @@ -64,11 +63,11 @@ Let's assume you created the following transform in the **Query Editor** to conv |2|1|1 Lb. Worms|5| |3|2|Fishing Net|25| -**The M formula steps to project the original table into the results table looks like this:** +The M formula steps to project the original table into the results table look like this: ![Advanced Editor](media/madvancededitor.png "Advanced Editor") -Here's the code you can paste into **Query Editor**: +Here's the code you can paste into the Power Query editor: ```powerquery-m let Orders = Table.FromRecords({ @@ -80,17 +79,16 @@ in #"Capitalized Each Word" ``` -**Let’s review each formula step.** +Let’s review each formula step. -1. **Orders** – Create a \[Table](#_Table_value) with data for Orders. +1. **Orders** – Create a \[Table](#_Table_value) with data for Orders. -2. \#**"Capitalized Each Word"** – To capitalize each word, you use Table.TransformColumns(). +2. \#**"Capitalized Each Word"** – To capitalize each word, you use [Table.TransformColumns](table-transformcolumns.md). -3. **in #"Capitalized Each Word"** – Output the table with each word capitalized. +3. **in #"Capitalized Each Word"** – Output the table with each word capitalized. ## See also [Expressions, values, and let expression](expressions-values-and-let-expression.md) [Operators](operators.md) [Type conversion](type-conversion.md) - diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 00599c655..06a6e82bd 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -1,17 +1,18 @@ --- description: "Learn more about: Type conversion" title: "Type conversion | Microsoft Docs" -ms.date: 4/16/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh ms.topic: reference author: dougklopfenstein ms.author: dougklo - --- + # Type conversion -The Power Query M formula language has formulas to convert between types. The following is a summary of conversion formulas in M. + +The Power Query M formula language has formulas to convert between types. The following is a summary of conversion formulas in M. ## Number @@ -49,4 +50,3 @@ The Power Query M formula language has formulas to convert between types. The fo |.ToText(date, time, dateTime, or dateTimeZone as
date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| |.From(value as any)|Returns a date, time, datetime, or datetimezone value from a value.| |.ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone)|Returns a record containing parts of a date, time, datetime, or datetimezone value.| - From 37833298b2e1ff1ea594ce58e93421fc903a7be2 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 2 Aug 2022 11:57:31 -0700 Subject: [PATCH 030/934] Minor formatting fixes --- query-languages/m/m-spec-functions.md | 24 ++++++++++++------------ query-languages/m/m-spec-introduction.md | 9 +++++---- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 0a1826c89..921e32112 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -104,18 +104,18 @@ There are two kinds of formal parameters that may be present in a _formal-parame * A _required_ parameter indicates that an argument corresponding to the parameter must always be specified when a function is invoked. Required parameters must be specified first in the _formal-parameter-list_. The function in the following example defines required parameters `x` and `y`: -```powerquery-m + ```powerquery-m [ MyFunction = (x, y) => x + y, Result1 = MyFunction(1, 1), // 2 Result2 = MyFunction(2, 2) // 4 ] -``` + ``` * An _optional_ parameter indicates that an argument corresponding to the parameter may be specified when a function is invoked, but is not required to be specified. If an argument that corresponds to an optional parameter is not specified when the function is invoked, then the value `null` is used instead. Optional parameters must appear after any required parameters in a _formal-parameter-list_. The function in the following example defines a fixed parameter `x` and an optional parameter `y`: -```powerquery-m + ```powerquery-m [ MyFunction = fn(x, optional y) => if (y = null) x else x + y, @@ -123,13 +123,13 @@ There are two kinds of formal parameters that may be present in a _formal-parame Result2 = MyFunction(1, null), // 1 Result3 = MyFunction(2, 2), // 4 ] -``` + ``` The number of arguments that are specified when a function is invoked must be compatible with the formal parameter list. Compatibility of a set of arguments `A` for a function `F` is computed as follows: * Let the value _N_ represent the number of arguments `A` constructed from the _argumentlist_. For example: -```powerquery-m + ```powerquery-m MyFunction() // N = 0 MyFunction(1) // N = 1 MyFunction(null) // N = 1 @@ -137,16 +137,16 @@ The number of arguments that are specified when a function is invoked must be co MyFunction(1, 2, 3) // N = 3 MyFunction(1, 2, null) // N = 3 MyFunction(1, 2, {3, 4}) // N = 3 -``` + ``` * Let the value _Required_ represent the number of fixed parameters of `F` and _Optional_ the number of optional parameters of `F`. For example: -```powerquery-m -() // Required = 0, Optional = 0 -(x) // Required = 1, Optional = 0 -(optional x) // Required = 0, Optional = 1 -(x, optional y) // Required = 1, Optional = 1 -``` + ```powerquery-m + () // Required = 0, Optional = 0 + (x) // Required = 1, Optional = 0 + (optional x) // Required = 0, Optional = 1 + (x, optional y) // Required = 1, Optional = 1 + ``` * Arguments `A` are compatible with function `F` if the following are true: diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index 49b761400..32db9a472 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -77,6 +77,7 @@ The following examples illustrate the different kinds of values available in M. C = 3 ] ``` + * A _table_ is a set of values organized into columns (which are identified by name), and rows. There is no literal syntax for creating a table, but there are several standard functions that can be used to create tables from lists or records. For example: @@ -136,7 +137,7 @@ Records can be contained within, or _nest_, within other records. We can use the The above expression is equivalent to the following when it is evaluated: \ -```powerquer-m +```powerquery-m [ Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], Total = 2100 @@ -203,7 +204,7 @@ M includes a set of operators that can be used in expressions. _Operators_ are a The meaning of an operator can vary depending on what kind of values its operands are. For example, the plus operator can be used with other kinds of values than numbers: -```powerquer-m +```powerquery-m 1 + 2 // numeric addition: 3 #time(12,23,0) + #duration(0,0,2,0) // time arithmetic: #time(12,25,0) @@ -259,7 +260,7 @@ A metadata record can be accessed for a given value using the _Value.Metadata_ f Many of the examples shown so far have included all the literal values of the expression in the result of the expression. The _let_ expression allows a set of values to be computed, assigned names, and then used in a subsequent expression that follows the _in_. For example, in our sales data example, we could do: -```powerquer-m +```powerquery-m let Sales2007 = [ @@ -299,7 +300,7 @@ An _error_ is an indication that the process of evaluating an expression could n Errors are raised by operators and functions encountering error conditions or by using the error expression. Errors are handled using the try expression. When an error is raised, a value is specified that can be used to indicate why the error occurred. -```powerquer-m +```powerquery-m let Sales = [ Revenue = 2000, From 29e88925cac2716c903f64c69ee33d4996a4a74e Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 3 Aug 2022 07:46:46 -0700 Subject: [PATCH 031/934] More M docs updates --- .../understanding-power-query-m-functions.md | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index c1d58e3b2..0d51e7281 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -1,31 +1,33 @@ --- description: "Learn more about: Understanding Power Query M functions" title: "Understanding Power Query M functions | Microsoft Docs" -ms.date: 4/16/2018 +ms.date: 8/2/2022 ms.service: powerquery ms.reviewer: ehvonleh -ms.topic: reference +ms.topic: article author: dougklopfenstein ms.author: dougklo - --- + # Understanding Power Query M functions -In the Power Query M formula language, a **function** is a mapping from a set of input values to a single output value. A function is written by first naming the function parameters, and then providing an expression to compute the result of the function. The body of the function follows the goes-to (=>) symbol. Optionally, type information can be included on parameters and the function return value. A function is defined and invoked in the body of a **let** statement. Parameters and/or return value can be implicit or explicit. Implicit parameters and/or return value are of type **any**. Type **any** is similar to an object type in other languages. All types in M derive from type **any**. + +In the Power Query M formula language, a *function* is a mapping from a set of input values to a single output value. A function is written by first naming the function parameters, and then providing an expression to compute the result of the function. The body of the function follows the goes-to (=>) symbol. Optionally, type information can be included on parameters and the function return value. A function is defined and invoked in the body of a **let** statement. Parameters and/or return value can be implicit or explicit. Implicit parameters and/or return value are of type **any**. Type **any** is similar to an object type in other languages. All types in M derive from type **any**. A **function** is a value just like a number or a text value, and can be included in-line just like any other expression. The following example shows a function which is the value of an Add variable which is then invoked, or executed, from several other variables. When a function is invoked, a set of values are specified which are logically substituted for the required set of input values within the function body expression. -**Example – Explicit parameters and return value** +**Example – Explicit parameters and return value** -```powerquery-m +```powerquery-m let AddOne = (x as number) as number => x + 1, //additional expression steps CalcAddOne = AddOne(5) in CalcAddOne -``` -**Example – Implicit parameters and return value** +``` + +**Example – Implicit parameters and return value** ```powerquery-m let @@ -37,8 +39,9 @@ let ] in AddResults -``` -**Find the first element of a list greater than 5, or null otherwise** +``` + +**Find the first element of a list greater than 5, or null otherwise** ```powerquery-m let @@ -55,7 +58,8 @@ let ] in Results -``` +``` + Functions can be used recursively. In order to recursively reference the function, prefix the identifier with @. ```powerquery-m @@ -63,15 +67,16 @@ let fact = (num) => if num = 0 then 1 else num * @fact (num-1) in fact(5) // equals 120 -``` -**Each keyword** +``` + +**Each keyword** The **each** keyword is used to easily create simple functions. “each ...” is syntactic sugar for a function signature that takes the _ parameter “(\_) => ...” Each is useful when combined with the lookup operator, which is applied by default to _ For example, each [CustomerID] is the same as each \_[CustomerID], which is the same as (\_) => \_[CustomerID] -**Example – Using each in table row filter** +**Example – Using each in table row filter** ```powerquery-m Table.SelectRows( From c77388dc3e9b35f2f71d9801f5c6979f6831f232 Mon Sep 17 00:00:00 2001 From: Mike Kinsman Date: Wed, 3 Aug 2022 14:46:32 -0700 Subject: [PATCH 032/934] Update docfx.json --- query-languages/dax/docfx.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index 617aac45d..e84a01239 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -39,7 +39,10 @@ "breadcrumb_path": "/dax/breadcrumb/toc.json", "extendBreadcrumb": true, "titleSuffix": "DAX", - "show_latex": true + "show_latex": true, + "contributors_to_exclude": [ + "mikekinsman" + ] }, "fileMetadata": {}, "template": [], From fb4cf950e3d7059ce225e9849ac8f179e254171a Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:58:03 -0700 Subject: [PATCH 033/934] Adding ms.topic --- query-languages/m/comments.md | 1 + query-languages/m/errors.md | 21 ++++++++++----- query-languages/m/evaluation-model.md | 26 ++++++++++++------- .../expressions-values-and-let-expression.md | 5 ++-- query-languages/m/m-spec-basic-concepts.md | 2 +- query-languages/m/m-spec-conditionals.md | 2 +- .../m/m-spec-consolidated-grammar.md | 2 +- query-languages/m/m-spec-error-handling.md | 2 +- query-languages/m/m-spec-functions.md | 2 +- query-languages/m/m-spec-let.md | 2 +- query-languages/m/m-spec-lexical-structure.md | 2 +- query-languages/m/m-spec-operators.md | 2 +- query-languages/m/m-spec-sections.md | 2 +- query-languages/m/m-spec-types.md | 2 +- query-languages/m/m-spec-values.md | 2 +- query-languages/m/metadata.md | 5 ++-- query-languages/m/operators.md | 1 + .../m/power-query-m-language-specification.md | 4 +-- .../m/power-query-m-type-system.md | 1 + query-languages/m/type-conversion.md | 13 +++++----- .../understanding-power-query-m-functions.md | 4 ++- 21 files changed, 63 insertions(+), 40 deletions(-) diff --git a/query-languages/m/comments.md b/query-languages/m/comments.md index a95a352ff..da3f63fb3 100644 --- a/query-languages/m/comments.md +++ b/query-languages/m/comments.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Comments" title: "Comments" +ms.topic: conceptual ms.date: 12/12/2018 --- # Comments diff --git a/query-languages/m/errors.md b/query-languages/m/errors.md index 2c07781bb..bf0e18d0f 100644 --- a/query-languages/m/errors.md +++ b/query-languages/m/errors.md @@ -1,17 +1,21 @@ --- description: "Learn more about: Errors" title: "Errors" +ms.topic: conceptual ms.date: 4/16/2018 --- # Errors + An **error** in Power Query M formula language is an indication that the process of evaluating an expression could not produce a value. Errors are raised by operators and functions encountering **error** conditions or by using the **error** expression. Errors are handled using the **try** expression. When an error is raised, a value is specified that can be used to indicate why the error occurred. -## Try expression +## Try expression + A try expression converts values and errors into a record value that indicates whether the try expression handled an error, or not, and either the proper value or the error record it extracted when handling the error. For example, consider the following expression that raises an error and then handles it right away: -```powerquery-m +```powerquery-m try error "negative unit count" -``` +``` + This expression evaluates to the following nested record value, explaining the `[HasError], [Error]`, and `[Message]` field lookups in the unit-price example before. ## Error record @@ -26,7 +30,8 @@ This expression evaluates to the following nested record value, explaining the ` Detail = null ] ] -``` +``` + A common case is to replace errors with default values. The try expression can be used with an optional otherwise clause to achieve just that in a compact form: ```powerquery-m @@ -54,12 +59,14 @@ let Sales = else textUnitPrice[Value]) in Label -``` -The above example accesses the `Sales[UnitPrice]` field and formats the value producing the result: +``` + +The previous example accesses the `Sales[UnitPrice]` field and formats the value producing the result: ```powerquery-m "Unit Price: 2" -``` +``` + If the Units field had been zero, then the `UnitPrice` field would have raised an error which would have been handled by the try. The resulting value would then have been: ```powerquery-m diff --git a/query-languages/m/evaluation-model.md b/query-languages/m/evaluation-model.md index 8ff9ef35b..863fd7c7b 100644 --- a/query-languages/m/evaluation-model.md +++ b/query-languages/m/evaluation-model.md @@ -1,10 +1,13 @@ --- description: "Learn more about: Evaluation model" title: "Evaluation model" +ms.topic: conceptual ms.date: 4/16/2018 --- # Evaluation model -The evaluation model of the Power Query M formula language is modeled after the evaluation model commonly found in spreadsheets, where the order of calculations can be determined based on dependencies between the formulas in the cells. + +The evaluation model of the Power Query M formula language is modeled after the evaluation model commonly found in spreadsheets, where the order of calculations can be determined based on dependencies between the formulas in the cells. + If you have written formulas in a spreadsheet such as Excel, you may recognize the formulas on the left will result in the values on the right when calculated: ![Evaluation Model 1](media/evaluation-model-1.png "Evaluation Model 1") @@ -13,7 +16,7 @@ If you have written formulas in a spreadsheet such as Excel, you may recognize t In M, an expression can reference previous expressions by name, and the evaluation process will automatically determine the order in which referenced expressions are calculated. -Let’s use a record to produce an expression which is equivalent to the above spreadsheet example. When initializing the value of a field, you refer to other fields within the record by the name of the field, as follows: +Let's use a record to produce an expression which is equivalent to the above spreadsheet example. When initializing the value of a field, you refer to other fields within the record by the name of the field, as follows: ```powerquery-m [ @@ -21,7 +24,8 @@ Let’s use a record to produce an expression which is equivalent to the above s A2 = A3 + 1, A3 = 1 ] -``` +``` + The above expression evaluates to the following record: ```powerquery-m @@ -30,7 +34,8 @@ The above expression evaluates to the following record: A2 = 2, A3 = 1 ] -``` +``` + Records can be contained within, or **nested**, within other records. You can use the **lookup operator** ([ ]) to access the fields of a record by name. For example, the following record has a field named Sales containing a record, and a field named Total that accesses the FirstHalf and SecondHalf fields of the Sales record: ```powerquery-m @@ -38,7 +43,8 @@ Records can be contained within, or **nested**, within other records. You can us Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], Total = Sales[FirstHalf] + Sales[SecondHalf] ] -``` +``` + The above expression evaluates to the following record: ```powerquery-m @@ -46,7 +52,8 @@ The above expression evaluates to the following record: Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], Total = 2100 ] -``` +``` + You use the **positional index operator** ({ }) to access an item in a list by its numeric index. The values within a list are referred to using a zero-based index from the beginning of the list. For example, the indexes 0 and 1 are used to reference the first and second items in the list below: ```powerquery-m @@ -68,8 +75,9 @@ You use the **positional index operator** ({ }) to access an item in a list by i }, #"Total Sales" = Sales{0}[Total] + Sales{1}[Total] // equals 4600 ] -``` +``` -## Lazy and eager evaluation +## Lazy and eager evaluation + **List**, **Record**, and **Table** member expressions, as well as **let** expressions (See [Expressions, values, and let expression](expressions-values-and-let-expression.md)), are evaluated using **lazy evaluation**: they are evaluated when needed. All other expressions are evaluated using **eager evaluation**: they are evaluated immediately, when encountered during the evaluation process. A good way to think about this is to remember that evaluating a list or record expression will return a list or record value that knows how its list items or record fields need to computed, when requested (by lookup or index operators). - + \ No newline at end of file diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index 4743eac56..f1d333f3b 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Expressions, values, and let expression" title: "Expressions, values, and let expression" +ms.topic: conceptual ms.date: 4/16/2018 --- # Expressions, values, and let expression @@ -35,7 +36,7 @@ A **primitive** value is single-part value, such as a number, logical, text, or |Time|12:34:12 PM| ## Function value -A **Function** is a value which, when invoked with arguments, produces a new value. Functions are written by listing the function’s **parameters** in parentheses, followed by the goes-to symbol =>, followed by the expression defining the function. For example, to create a function called “MyFunction” that has two parameters and performs a calculation on parameter1 and parameter2: +A **Function** is a value which, when invoked with arguments, produces a new value. Functions are written by listing the function's **parameters** in parentheses, followed by the goes-to symbol =>, followed by the expression defining the function. For example, to create a function called "MyFunction" that has two parameters and performs a calculation on parameter1 and parameter2: ```powerquery-m let @@ -84,7 +85,7 @@ The following are some **List** examples. |{
{1, 2, 3},
{4, 5, 6}
}{0}{1}|Get the value of the second item from the first List element. This expression returns the value 2.| ### Record -A **Record** is a set of fields. A **field** is a name/value pair where the name is a text value that is unique within the field’s record. The syntax for record values allows the names to be written without quotes, a form also referred to as **identifiers**. An identifier can take the following two forms: +A **Record** is a set of fields. A **field** is a name/value pair where the name is a text value that is unique within the field's record. The syntax for record values allows the names to be written without quotes, a form also referred to as **identifiers**. An identifier can take the following two forms: - identifier_name such as OrderID. diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 54395cd7e..68c40d844 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -1,7 +1,7 @@ --- title: M Language basic concepts description: Discusses basic concepts that appear throughout the subsequent sections -ms.topic: article +ms.topic: conceptual ms.date: 2/25/2020 ms.custom: intro-internal --- diff --git a/query-languages/m/m-spec-conditionals.md b/query-languages/m/m-spec-conditionals.md index a7f37119e..59f9e34bb 100644 --- a/query-languages/m/m-spec-conditionals.md +++ b/query-languages/m/m-spec-conditionals.md @@ -1,7 +1,7 @@ --- title: M Language Conditionals description: Describes using conditionals in the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 2/28/2020 --- diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index a66666acd..ae53e1014 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -1,7 +1,7 @@ --- title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 11/29/2021 --- diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index d2d3ad69f..e3ddaa4de 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -1,7 +1,7 @@ --- title: M Language Error Handling description: Describes error handling in the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 2/28/2020 --- diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 6137371c6..4e1191de1 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -1,7 +1,7 @@ --- title: M Language Functions description: Describes using functions in the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 4/7/2020 --- diff --git a/query-languages/m/m-spec-let.md b/query-languages/m/m-spec-let.md index 8d40cf398..e2911c58e 100644 --- a/query-languages/m/m-spec-let.md +++ b/query-languages/m/m-spec-let.md @@ -1,7 +1,7 @@ --- title: M Language Let description: Describes using the let expression in the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 4/7/2020 --- diff --git a/query-languages/m/m-spec-lexical-structure.md b/query-languages/m/m-spec-lexical-structure.md index e3114f256..dd936aa6c 100644 --- a/query-languages/m/m-spec-lexical-structure.md +++ b/query-languages/m/m-spec-lexical-structure.md @@ -1,7 +1,7 @@ --- title: M Language lexical structure description: Describes the lexical structure of the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 11/29/2021 --- diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index c4f6c6654..a39b79f5d 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -1,7 +1,7 @@ --- title: M Language Operators description: Describes using operators in the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 11/29/2021 --- diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index 94510d9f5..bd8b81590 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -1,7 +1,7 @@ --- title: M Language Sections description: Describes using sections in the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 8/23/2021 --- diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 70db20f52..5721d8863 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -1,7 +1,7 @@ --- title: M Language types description: Describes using types in the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 11/29/2021 --- diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index 451a49abe..8178abf55 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -1,7 +1,7 @@ --- title: M Language values description: Describes using values in the Power Query M formula language -ms.topic: article +ms.topic: conceptual ms.date: 11/29/2021 --- diff --git a/query-languages/m/metadata.md b/query-languages/m/metadata.md index c6dde216b..7827d7dee 100644 --- a/query-languages/m/metadata.md +++ b/query-languages/m/metadata.md @@ -1,10 +1,11 @@ --- description: "Learn more about: Metadata" title: "Metadata" +ms.topic: conceptual ms.date: 4/16/2018 --- # Metadata -**Metadata** is information about a value that is associated with a value. **Metadata** is represented as a record value, called a metadata record. The fields of a **metadata record** can be used to store the metadata for a value. Every value has a metadata record. If the value of the metadata record has not been specified, then the metadata record is empty (has no fields). Associating a metadata record with a value does not change the value’s behavior in evaluations except for those that explicitly inspect metadata records. +**Metadata** is information about a value that is associated with a value. **Metadata** is represented as a record value, called a metadata record. The fields of a **metadata record** can be used to store the metadata for a value. Every value has a metadata record. If the value of the metadata record has not been specified, then the metadata record is empty (has no fields). Associating a metadata record with a value does not change the value's behavior in evaluations except for those that explicitly inspect metadata records. A metadata record value is associated with a value x using the syntax value meta [record]. For example, the following associates a metadata record with Rating and Tags fields with the text value "Mozart": @@ -22,5 +23,5 @@ A metadata record can be accessed for a value using the `Value.Metadata` functio ``` Metadata records are not preserved when a value is used with an operator or function that constructs a new value. For example, if two text values are concatenated using the & operator, the metadata of the resulting text value is an empty record []. -The standard library functions `Value.RemoveMetadata` and `Value.ReplaceMetadata` can be used to remove all metadata from a value and to replace a value’s metadata. +The standard library functions `Value.RemoveMetadata` and `Value.ReplaceMetadata` can be used to remove all metadata from a value and to replace a value's metadata. diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index 52eb56ca6..4d68b35cc 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Operators" title: "Operators" +ms.topic: conceptual ms.date: 4/16/2018 --- # Operators diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index 0c6506fe5..4a7ed3cb5 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -1,11 +1,12 @@ --- description: "Learn more about: Power Query M language specification" title: "Power Query M language specification" +ms.topic: conceptual ms.date: 4/7/2020 --- # Power Query M language specification -The specification describes the values, expressions, environments and variables, identifiers, and the evaluation model that form the Power Query M language’s basic concepts. +The specification describes the values, expressions, environments and variables, identifiers, and the evaluation model that form the Power Query M language's basic concepts. The specification is contained in the following topics. @@ -21,4 +22,3 @@ The specification is contained in the following topics. * [Error Handling](m-spec-error-handling.md) * [Sections](m-spec-sections.md) * [Consolidated Grammar](m-spec-consolidated-grammar.md) - diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index d1027c181..2abe9d30c 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Types in the Power Query M formula language" title: "Power Query M type system" +ms.topic: conceptual ms.date: 4/16/2018 --- diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 2ccd48779..7dfe42746 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -1,10 +1,12 @@ --- description: "Learn more about: Type conversion" title: "Type conversion" +ms.topic: conceptual ms.date: 4/16/2018 --- # Type conversion -The Power Query M formula language has formulas to convert between types. The following is a summary of conversion formulas in M. + +The Power Query M formula language has formulas to convert between types. The following is a summary of conversion formulas in M. ## Number @@ -38,8 +40,7 @@ The Power Query M formula language has formulas to convert between types. The fo |Type conversion|Description| |-------------------|---------------| -|.FromText(text as text) as date, time, datetime, or datetimezone|Returns a date, time, datetime, or datetimezone value from a set of date formats and culture value.| -|.ToText(date, time, dateTime, or dateTimeZone as
date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| -|.From(value as any)|Returns a date, time, datetime, or datetimezone value from a value.| -|.ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone)|Returns a record containing parts of a date, time, datetime, or datetimezone value.| - +|.FromText(text as text) as date, time, datetime, or datetimezone|Returns a date, time, datetime, or datetimezone value from a set of date formats and culture value.| +|.ToText(date, time, dateTime, or dateTimeZone as
date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| +|.From(value as any)|Returns a date, time, datetime, or datetimezone value from a value.| +|.ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone)|Returns a record containing parts of a date, time, datetime, or datetimezone value.| diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index 061f253eb..2259bfacf 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -1,9 +1,11 @@ --- description: "Learn more about: Understanding Power Query M functions" title: "Understanding Power Query M functions" +ms.topic: conceptual ms.date: 4/16/2018 --- # Understanding Power Query M functions + In the Power Query M formula language, a **function** is a mapping from a set of input values to a single output value. A function is written by first naming the function parameters, and then providing an expression to compute the result of the function. The body of the function follows the goes-to (=>) symbol. Optionally, type information can be included on parameters and the function return value. A function is defined and invoked in the body of a **let** statement. Parameters and/or return value can be implicit or explicit. Implicit parameters and/or return value are of type **any**. Type **any** is similar to an object type in other languages. All types in M derive from type **any**. A **function** is a value just like a number or a text value, and can be included in-line just like any other expression. The following example shows a function which is the value of an Add variable which is then invoked, or executed, from several other variables. When a function is invoked, a set of values are specified which are logically substituted for the required set of input values within the function body expression. @@ -59,7 +61,7 @@ in ``` **Each keyword** -The **each** keyword is used to easily create simple functions. “each ...” is syntactic sugar for a function signature that takes the _ parameter “(\_) => ...” +The **each** keyword is used to easily create simple functions. "each ..." is syntactic sugar for a function signature that takes the _ parameter "(\_) => ..." Each is useful when combined with the lookup operator, which is applied by default to _ For example, each [CustomerID] is the same as each \_[CustomerID], which is the same as (\_) => \_[CustomerID] From 5dfb18ecd3ec6725aaf340c0851cd17aff252d9b Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Thu, 4 Aug 2022 14:34:36 -0700 Subject: [PATCH 034/934] Update userelationship-function-dax.md ------- cc: @Minewiskan --- query-languages/dax/userelationship-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/userelationship-function-dax.md b/query-languages/dax/userelationship-function-dax.md index 2f757d1e5..569ba0f12 100644 --- a/query-languages/dax/userelationship-function-dax.md +++ b/query-languages/dax/userelationship-function-dax.md @@ -48,7 +48,7 @@ The function returns no value; the function only enables the indicated relations - If CALCULATE expressions are nested, and more than one CALCULATE expression contains a USERELATIONSHIP function, then the innermost USERELATIONSHIP is the one that prevails in case of a conflict or ambiguity. -- Up to 10 USERELATIONSHIP functions can be nested; however, your expression might have a deeper level of nesting, ie. the following sample expression is nested 3 levels deep but only 2 for USEREALTIONSHIP: `=CALCULATE(CALCULATE( CALCULATE( <anyExpression>, USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))`. +- Up to 10 USERELATIONSHIP functions can be nested; however, your expression might have a deeper level of nesting, ie. the following sample expression is nested 3 levels deep but only 2 for USERELATIONSHIP: `=CALCULATE(CALCULATE( CALCULATE( , USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))`. - For 1-to-1 relationships, USERELATIONSHIP will only activate the relationship in one direction. In particular, filters will only be able to flow from *columnName2*'s table to *columnName1*'s table. If bi-directional cross-filtering is desired, two USERELATIONSHIPs with opposite directionality can be used in the same calculation. For example, `CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K]))`. From 68eac3e4215e7f57125185d61e8459d674b0e5bd Mon Sep 17 00:00:00 2001 From: AKomonen <109805647+AKomonen@users.noreply.github.com> Date: Fri, 5 Aug 2022 09:50:16 +0300 Subject: [PATCH 035/934] Correction to description of DEFINE statement In my understanding is required (not optional) in a DEFINE statement --- query-languages/dax/define-statement-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 1370fc21f..9ca88675b 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -18,7 +18,7 @@ A keyword that defines entities that can be applied to one or more EVALUATE stat ## Syntax ```dax -DEFINE { [] = } +DEFINE { = } ``` ### Arguments From 70b2a6e2b8742994962085bda825a47bfcfb800b Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 5 Aug 2022 10:41:13 -0400 Subject: [PATCH 036/934] Clarifying exclusive identifier reference behavior --- query-languages/m/m-spec-basic-concepts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 68c40d844..4ca987d89 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -152,9 +152,9 @@ The simplest form of identifier reference is an _exclusive-identifier-reference_ _exclusive-identifier-reference:
      identifier_ -It is an error for an _exclusive-identifier-reference_ to refer to a variable that is not part of the environment of the expression that the identifier appears within, or to refer to an identifier that is currently being initialized. +It is an error for an _exclusive-identifier-reference_ to refer to a variable that is not part of the environment of the expression that the identifier appears within. -An _inclusive-identifier-reference_ can be used to gain access to the environment that includes the identifier being initialized. If it used in a context where there is no identifier being initialized, then it is equivalent to an _exclusive-identifier-reference_. +Inside a `let` expression or record, it is an error for an _exclusive-identifier-reference_ to refer to an identifier that is currently being initialized. Instead, an _inclusive-identifier-reference_ can be used to gain access to the environment that includes the identifier being initialized. If an _inclusive-identifier-reference_ is used in a context where there is no identifier being initialized, then it is equivalent to an _exclusive-identifier-reference_. _inclusive-identifier-reference:_
      `@` _identifier_ From 21c2c406ffeb6b96eb57d20321c22774d2f098e3 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 5 Aug 2022 10:46:13 -0400 Subject: [PATCH 037/934] Tweaking --- query-languages/m/m-spec-basic-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 4ca987d89..620beb204 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -154,7 +154,7 @@ _exclusive-identifier-reference:
It is an error for an _exclusive-identifier-reference_ to refer to a variable that is not part of the environment of the expression that the identifier appears within. -Inside a `let` expression or record, it is an error for an _exclusive-identifier-reference_ to refer to an identifier that is currently being initialized. Instead, an _inclusive-identifier-reference_ can be used to gain access to the environment that includes the identifier being initialized. If an _inclusive-identifier-reference_ is used in a context where there is no identifier being initialized, then it is equivalent to an _exclusive-identifier-reference_. +Inside a _record-initializer-expression_ or _let-expression_, it is an error for an _exclusive-identifier-reference_ to refer to an identifier that is currently being initialized. Instead, an _inclusive-identifier-reference_ can be used to gain access to the environment that includes the identifier being initialized. If an _inclusive-identifier-reference_ is used in a context where there is no identifier being initialized, then it is equivalent to an _exclusive-identifier-reference_. _inclusive-identifier-reference:_
      `@` _identifier_ From 12863b67d51c6b643baeb42a06c1114d449e40b9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 5 Aug 2022 11:04:44 -0400 Subject: [PATCH 038/934] Tweaking --- query-languages/m/m-spec-basic-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 620beb204..b1f7b06cc 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -154,7 +154,7 @@ _exclusive-identifier-reference:
It is an error for an _exclusive-identifier-reference_ to refer to a variable that is not part of the environment of the expression that the identifier appears within. -Inside a _record-initializer-expression_ or _let-expression_, it is an error for an _exclusive-identifier-reference_ to refer to an identifier that is currently being initialized. Instead, an _inclusive-identifier-reference_ can be used to gain access to the environment that includes the identifier being initialized. If an _inclusive-identifier-reference_ is used in a context where there is no identifier being initialized, then it is equivalent to an _exclusive-identifier-reference_. +It is an error for an _exclusive-identifier-reference_ to refer to an identifier that is currently being initialized if referenced identifier is defined inside a _record-initializer-expression_ or _let-expression_. Instead, an _inclusive-identifier-reference_ can be used to gain access to the environment that includes the identifier being initialized. If an _inclusive-identifier-reference_ is used in any other situation, then it is equivalent to an _exclusive-identifier-reference_. _inclusive-identifier-reference:_
      `@` _identifier_ From 05f28bd33f9453b8fd0485bb10b0b5aa605add6f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 5 Aug 2022 11:06:41 -0400 Subject: [PATCH 039/934] Tweak --- query-languages/m/m-spec-basic-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index b1f7b06cc..bb6cd902a 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -154,7 +154,7 @@ _exclusive-identifier-reference:
It is an error for an _exclusive-identifier-reference_ to refer to a variable that is not part of the environment of the expression that the identifier appears within. -It is an error for an _exclusive-identifier-reference_ to refer to an identifier that is currently being initialized if referenced identifier is defined inside a _record-initializer-expression_ or _let-expression_. Instead, an _inclusive-identifier-reference_ can be used to gain access to the environment that includes the identifier being initialized. If an _inclusive-identifier-reference_ is used in any other situation, then it is equivalent to an _exclusive-identifier-reference_. +It is an error for an _exclusive-identifier-reference_ to refer to an identifier that is currently being initialized if the referenced identifier is defined inside a _record-initializer-expression_ or _let-expression_. Instead, an _inclusive-identifier-reference_ can be used to gain access to the environment that includes the identifier being initialized. If an _inclusive-identifier-reference_ is used in any other situation, then it is equivalent to an _exclusive-identifier-reference_. _inclusive-identifier-reference:_
      `@` _identifier_ From 20189ff09d13294a29e8000b7e35e5d91c7b6695 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 9 Aug 2022 13:51:19 -0700 Subject: [PATCH 040/934] Updates. --- query-languages/dax/dax-queries.md | 39 ++++++++++++---- query-languages/dax/define-statement-dax.md | 23 +++++++--- query-languages/dax/measure-statement-dax.md | 48 ++++++++++++++++++++ query-languages/dax/statements-dax.md | 5 +- 4 files changed, 97 insertions(+), 18 deletions(-) create mode 100644 query-languages/dax/measure-statement-dax.md diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index c416584b0..da4546a84 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -3,7 +3,7 @@ title: "DAX Queries | Microsoft Docs" description: Describes Data Analysis Expressions (DAX) language queries. ms.service: powerbi ms.subservice: dax -ms.date: 06/14/2021 +ms.date: 08/09/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -134,13 +134,23 @@ The optional **DEFINE** keyword defines entities that exist only for the duratio #### Syntax ```dax -[DEFINE { MEASURE [] = } - { VAR = }] -EVALUATE
+[DEFINE + { MEASURE [] = } + { VAR = } + { TABLE = } + { COLUMN [] = } ] ``` #### Arguments +|Term |Definition | +|---------|---------| +| tableName | The name of an existing table using standard DAX syntax. It cannot be an expression. | +| name | The name of a new measure. It cannot be an expression. | +| expression | Any DAX expression that returns a single scalar value. The expression can use any of the defined measures. The expression must return a table. If a scalar value is required, wrap the scalar inside a ROW() function to produce a table. | +| VAR | An optional expression as a named variable. A [VAR](var-dax.md) can be passed as an argument to other expressions. | + + |Term |Definition | |---------|---------| | tableName | The name of an existing table using standard DAX syntax. It cannot be an expression. | @@ -152,14 +162,25 @@ EVALUATE
```dax DEFINE -MEASURE 'Internet Sales'[Internet Total Sales] = SUM('Internet Sales'[Sales Amount]) + MEASURE 'Internet Sales'[Internet Total Sales] = + SUM ( 'Internet Sales'[Sales Amount] ) + EVALUATE -SUMMARIZECOLUMNS -( +SUMMARIZECOLUMNS ( 'Date'[Calendar Year], - TREATAS({2013, 2014}, 'Date'[Calendar Year]), + TREATAS ( + { + 2013, + 2014 + }, + 'Date'[Calendar Year] + ), "Total Sales", [Internet Total Sales], - "Combined Years Total Sales", CALCULATE([Internet Total Sales], ALLSELECTED('Date'[Calendar Year])) + "Combined Years Total Sales", + CALCULATE ( + [Internet Total Sales], + ALLSELECTED ( 'Date'[Calendar Year] ) + ) ) ORDER BY [Calendar Year] ``` diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 1370fc21f..ce5269902 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -18,29 +18,38 @@ A keyword that defines entities that can be applied to one or more EVALUATE stat ## Syntax ```dax -DEFINE { [] = } +DEFINE + = ``` ### Arguments |Term|Definition| |--------|--------------| -|entity|MEASURE, VAR, TABLE, or COLUMN.| +|entity|MEASURE, VAR, TABLE\*, or COLUMN\*. | |name|The name of an entity. It cannot be an expression.| |expression|Any DAX expression that returns a single scalar value. The expression can use any of the defined entities. The expression must return a table. If a scalar value is required, wrap the scalar inside a ROW() function to produce a table.| ## Remarks -- Entities can be variables, measures, tables, and columns. +- *Table and column entity types are currently for internal use only. Functionality for these entity types is subject to change. -- Definitions typically precede the EVALUATE statement and are valid for all EVALUATE statements. +- Definitions typically precede the EVALUATE statement and are valid for all EVALUATE statements for the duration of the query. - Definitions can reference other definitions that appear before or after the current definition. -- Definitions exist only for the duration of the query. +## Examples + +```DAX +DEFINE + MEASURE Customer[# Customers] = COUNTROWS ( Customer ) + MEASURE Product[Number of products] = DISTINCTCOUNT ( Product[Product]) +``` + + ## See also -[DAX queries](dax-queries.md) -[ORDER BY](orderby-statement-dax.md) +[DAX queries](dax-queries.md) [VAR](var-dax.md) +[ORDER BY](orderby-statement-dax.md) diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md new file mode 100644 index 000000000..9155630df --- /dev/null +++ b/query-languages/dax/measure-statement-dax.md @@ -0,0 +1,48 @@ +--- +description: "Learn more about: START AT" +title: "START AT keyword (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 08/09/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# START AT + +A keyword used inside an ORDER BY clause within an EVALUATE statement. START AT defines the value at which query results begin. + +## Syntax + +```dax +[START AT {|} [, …]]] +``` + +### Arguments + +|Term|Definition| +|--------|--------------| +|measureName|The name of the measure. Exists only for the duration of the query.| +|expression|Any DAX expression that returns a single scalar value. The expression can use any other defined entities. The expression must return a table. If a scalar value is required, wrap the scalar inside a ROW() function to produce a table.| + +## Remarks + +- Measures defined for a query exist only for the duration of a the query. + +- Measures defined for a query override model measures of the same name. + +- The expression for a defined measure can be used can be used with any other expression in the same query. + +## Examples + +DEFINE + MEASURE Product[# Unique Products] = DISTINCTCOUNT ( Product[ProductKey] ) + +## See also + +[DAX queries](dax-queries.md) +[EVALUATE](evaluate-statement.md) +[VAR](var-dax.md) diff --git a/query-languages/dax/statements-dax.md b/query-languages/dax/statements-dax.md index e23ebb066..62008b247 100644 --- a/query-languages/dax/statements-dax.md +++ b/query-languages/dax/statements-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: Statements" title: "Statements(DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 07/10/2020 +ms.date: 08/09/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -18,5 +18,6 @@ recommendations: false |---------|---------| |[DEFINE](define-statement-dax.md) | (Keyword) Defines entities that exist only for the duration of a DAX query. | |[EVALUATE](evaluate-statement-dax.md) | (Keyword) A statement required to execute a DAX query. | +|[MEASURE](measure-statement-dax.md) | (Keyword) Defines a measure entity that exists only for the duration of a DAX query. | |[ORDER BY](orderby-statement-dax.md) | (Keyword) Defines one or more expressions used to sort results of a DAX query. | -|[VAR](var-dax.md) | (Keyword) Stores the result of an expression as a named variable, which can then be passed as an argument to other measure expressions. | +|[VAR](var-dax.md) | (Keyword) Stores the result of an expression as a named variable entity, which can then be passed as an argument to other measure expressions. | From 4fa59bdb8953423d3e281310a594199448ab53cc Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 12 Aug 2022 10:50:08 -0700 Subject: [PATCH 041/934] Updates to Queries articles. --- query-languages/dax/dax-queries.md | 54 +++++++----------- query-languages/dax/define-statement-dax.md | 55 ------------------- query-languages/dax/evaluate-statement-dax.md | 3 +- query-languages/dax/orderby-statement-dax.md | 51 ----------------- query-languages/dax/statements-dax.md | 7 +-- query-languages/dax/toc.yml | 4 -- 6 files changed, 24 insertions(+), 150 deletions(-) delete mode 100644 query-languages/dax/define-statement-dax.md delete mode 100644 query-languages/dax/orderby-statement-dax.md diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index da4546a84..0a26c32c7 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -3,7 +3,7 @@ title: "DAX Queries | Microsoft Docs" description: Describes Data Analysis Expressions (DAX) language queries. ms.service: powerbi ms.subservice: dax -ms.date: 08/09/2022 +ms.date: 06/14/2021 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -16,21 +16,11 @@ With DAX queries, you can query and return data defined by a table expression. R Before learning about queries, it's important you have a solid understanding of DAX basics. If you haven't already, be sure to checkout [DAX overview](dax-overview.md). -## Syntax - -```dax -[DEFINE { MEASURE [] = } - { VAR = }] -EVALUATE
-[ORDER BY { [{ASC | DESC}]}[, …] -[START AT {|} [, …]]] -``` - ## Keywords ### EVALUATE (Required) -At the most basic level, a DAX query is an **EVALUATE** statement containing a table expression. However, a query can contain multiple EVALUATE statements. +At the most basic level, a DAX query is an **EVALUATE** statement containing a table expression. A query can contain multiple EVALUATE statements. #### Syntax @@ -129,34 +119,32 @@ Multiple **EVALUATE**/**ORDER BY**/**START AT** clauses can be specified in a si ### DEFINE (Optional) -The optional **DEFINE** keyword defines entities that exist only for the duration of the query. Definitions are valid for all EVALUATE statements. Entities can be variables, measures, tables, and columns. Definitions can reference other definitions that appear before or after the current definition. Definitions typically precede the EVALUATE statement. +The optional **DEFINE** keyword defines one or more calculated entity definitions that exist only for the duration of the query. Definitions typically precede the EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables*, and columns*. Definitions can reference other definitions that appear before or after the current definition. + +#### Syntax -#### Syntax - ```dax -[DEFINE - { MEASURE [] = } - { VAR = } - { TABLE = } - { COLUMN [] = } ] +[DEFINE + ( + MEASURE
[] = | + VAR =
| + TABLE
=
| + COLUMN
[column name] = | + ) ++ ] + +(EVALUATE
) + ``` #### Arguments -|Term |Definition | -|---------|---------| -| tableName | The name of an existing table using standard DAX syntax. It cannot be an expression. | -| name | The name of a new measure. It cannot be an expression. | -| expression | Any DAX expression that returns a single scalar value. The expression can use any of the defined measures. The expression must return a table. If a scalar value is required, wrap the scalar inside a ROW() function to produce a table. | -| VAR | An optional expression as a named variable. A [VAR](var-dax.md) can be passed as an argument to other expressions. | +|Term|Definition| +|--------|--------------| +|Entity|MEASURE, VAR, TABLE*, or COLUMN*. | +|name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.
VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters).| +|expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| - -|Term |Definition | -|---------|---------| -| tableName | The name of an existing table using standard DAX syntax. It cannot be an expression. | -| name | The name of a new measure. It cannot be an expression. | -| expression | Any DAX expression that returns a single scalar value. The expression can use any of the defined measures. The expression must return a table. If a scalar value is required, wrap the scalar inside a ROW() function to produce a table. | -| VAR | An optional expression as a named variable. A [VAR](var-dax.md) can be passed as an argument to other expressions. | +\* Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN types for a query, they may produce inconsistent results and are not recommended. #### Example diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md deleted file mode 100644 index ce5269902..000000000 --- a/query-languages/dax/define-statement-dax.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -description: "Learn more about: DEFINE" -title: "DEFINE keyword (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - ---- -# DEFINE - -A keyword that defines entities that can be applied to one or more EVALUATE statements of a [DAX query](dax-queries.md). - -## Syntax - -```dax -DEFINE - = -``` - -### Arguments - -|Term|Definition| -|--------|--------------| -|entity|MEASURE, VAR, TABLE\*, or COLUMN\*. | -|name|The name of an entity. It cannot be an expression.| -|expression|Any DAX expression that returns a single scalar value. The expression can use any of the defined entities. The expression must return a table. If a scalar value is required, wrap the scalar inside a ROW() function to produce a table.| - -## Remarks - -- *Table and column entity types are currently for internal use only. Functionality for these entity types is subject to change. - -- Definitions typically precede the EVALUATE statement and are valid for all EVALUATE statements for the duration of the query. - -- Definitions can reference other definitions that appear before or after the current definition. - -## Examples - -```DAX -DEFINE - MEASURE Customer[# Customers] = COUNTROWS ( Customer ) - MEASURE Product[Number of products] = DISTINCTCOUNT ( Product[Product]) -``` - - - -## See also - -[DAX queries](dax-queries.md) -[VAR](var-dax.md) -[ORDER BY](orderby-statement-dax.md) diff --git a/query-languages/dax/evaluate-statement-dax.md b/query-languages/dax/evaluate-statement-dax.md index b2d39c80b..3da538d16 100644 --- a/query-languages/dax/evaluate-statement-dax.md +++ b/query-languages/dax/evaluate-statement-dax.md @@ -48,5 +48,4 @@ Returns all rows and columns from the Internet Sales table, as a table. ## See also [DAX queries](dax-queries.md) -[DEFINE](define-statement-dax.md) -[ORDER BY](orderby-statement-dax.md) +[VAR](var-dax.md) diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md deleted file mode 100644 index 6856001b2..000000000 --- a/query-languages/dax/orderby-statement-dax.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -description: "Learn more about: ORDER BY" -title: "ORDER BY keyword (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - ---- -# ORDER BY - -Defines the sort order of query results returned by an EVALUATE statement in a [DAX query](dax-queries.md). - -## Syntax - -```dax -ORDER BY { [{ASC | DESC}]} -``` - -### Arguments - -|Term|Definition| -|--------|--------------| -|expression|Any DAX expression that returns a single scalar value.| -|ASC|(default) Ascending sort order.| -|DESC|Descending sort order.| - -## Return value - -The result of an EVALUATE statement in ascending (ASC) or descending (DESC) order. - -## Example - -```dax -EVALUATE( - 'Internet Sales' - ) -ORDER BY - 'Internet Sales'[Order Date] -``` - -Returns all rows and columns from the Internet Sales table, ordered by Order Date, as a table. - -## See also - -[DAX queries](dax-queries.md) -[EVALUATE](evaluate-statement-dax.md) diff --git a/query-languages/dax/statements-dax.md b/query-languages/dax/statements-dax.md index 62008b247..4db271dd6 100644 --- a/query-languages/dax/statements-dax.md +++ b/query-languages/dax/statements-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: Statements" title: "Statements(DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 08/09/2022 +ms.date: 08/11/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -16,8 +16,5 @@ recommendations: false |Statement |Description | |---------|---------| -|[DEFINE](define-statement-dax.md) | (Keyword) Defines entities that exist only for the duration of a DAX query. | |[EVALUATE](evaluate-statement-dax.md) | (Keyword) A statement required to execute a DAX query. | -|[MEASURE](measure-statement-dax.md) | (Keyword) Defines a measure entity that exists only for the duration of a DAX query. | -|[ORDER BY](orderby-statement-dax.md) | (Keyword) Defines one or more expressions used to sort results of a DAX query. | -|[VAR](var-dax.md) | (Keyword) Stores the result of an expression as a named variable entity, which can then be passed as an argument to other measure expressions. | +|[VAR](var-dax.md) | (Keyword) Stores the result of an expression as a named variable, which can then be passed as an argument to other measure expressions. | diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 84fbc07ac..89ef1d924 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -793,12 +793,8 @@ items: - name: Statements overview href: statements-dax.md - - name: DEFINE - href: define-statement-dax.md - name: EVALUATE href: evaluate-statement-dax.md - - name: ORDER BY - href: orderby-statement-dax.md - name: VAR href: var-dax.md - name: DAX glossary From 9aca6d45dee1ebb5a65cba62ef4423e70a4a3232 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 12 Aug 2022 11:07:17 -0700 Subject: [PATCH 042/934] Revisions --- .openpublishing.redirection.json | 10 ++++++++++ query-languages/dax/dax-queries.md | 15 ++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 744cbbfbf..01b6e78e2 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -39,6 +39,16 @@ "source_path": "query-languages/dax/pre-defined-numeric-formats-for-the-format-function.md", "redirect_url": "/dax/format-function-dax", "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/define-statement-dax.md", + "redirect_url": "/dax/dax-queries", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/orderby-statement-dax.md", + "redirect_url": "/dax/dax-queries", + "redirect_document_id": false } ] } diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 0a26c32c7..07b8275b8 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -97,6 +97,8 @@ EVALUATE
|---------|---------| | value | A constant value. Cannot be an expression. | | parameter | The name of a parameter in an XMLA statement prefixed with an `@` character. | + +#### Remarks START AT arguments have a one-to-one correspondence with the columns in the ORDER BY clause. There can be as many arguments in the START AT clause as there are in the ORDER BY clause, but not more. The first argument in the START AT defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. @@ -141,9 +143,16 @@ The optional **DEFINE** keyword defines one or more calculated entity definition |Term|Definition| |--------|--------------| |Entity|MEASURE, VAR, TABLE*, or COLUMN*. | -|name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.
VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters).| +|name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| |expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| +#### Remarks + +Measure definitions for a query override model measures of the same name. +The expression for a measure definition can be used with any other expression in the same query. + +VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). + \* Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN types for a query, they may produce inconsistent results and are not recommended. #### Example @@ -191,7 +200,7 @@ Reference XMLA parameters by prefixing the name of the parameter with an `@` cha ## See also -[FILTER](filter-function-dax.md) [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) [TREATAS](treatas-function.md) -[VAR](var-dax.md) +[VAR](var-dax.md) +[FILTER](filter-function-dax.md) From 035527e9201d23274e504f9ab4f9f2ad599b5de2 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 12 Aug 2022 11:10:44 -0700 Subject: [PATCH 043/934] Forgot to remove measure-statement-dax.md --- query-languages/dax/measure-statement-dax.md | 48 -------------------- 1 file changed, 48 deletions(-) delete mode 100644 query-languages/dax/measure-statement-dax.md diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md deleted file mode 100644 index 9155630df..000000000 --- a/query-languages/dax/measure-statement-dax.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -description: "Learn more about: START AT" -title: "START AT keyword (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/09/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - ---- -# START AT - -A keyword used inside an ORDER BY clause within an EVALUATE statement. START AT defines the value at which query results begin. - -## Syntax - -```dax -[START AT {|} [, …]]] -``` - -### Arguments - -|Term|Definition| -|--------|--------------| -|measureName|The name of the measure. Exists only for the duration of the query.| -|expression|Any DAX expression that returns a single scalar value. The expression can use any other defined entities. The expression must return a table. If a scalar value is required, wrap the scalar inside a ROW() function to produce a table.| - -## Remarks - -- Measures defined for a query exist only for the duration of a the query. - -- Measures defined for a query override model measures of the same name. - -- The expression for a defined measure can be used can be used with any other expression in the same query. - -## Examples - -DEFINE - MEASURE Product[# Unique Products] = DISTINCTCOUNT ( Product[ProductKey] ) - -## See also - -[DAX queries](dax-queries.md) -[EVALUATE](evaluate-statement.md) -[VAR](var-dax.md) From 4a81a7de0819bfd8d2a5767b102548dc180a6743 Mon Sep 17 00:00:00 2001 From: Bryan Ricker <978899+bricker@users.noreply.github.com> Date: Mon, 15 Aug 2022 10:52:12 -0700 Subject: [PATCH 044/934] Update relatedtable-function-dax.md --- query-languages/dax/relatedtable-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/relatedtable-function-dax.md b/query-languages/dax/relatedtable-function-dax.md index 2c13dfc25..cf9d61a68 100644 --- a/query-languages/dax/relatedtable-function-dax.md +++ b/query-languages/dax/relatedtable-function-dax.md @@ -33,7 +33,7 @@ A table of values. ## Remarks -- The RELATEDTETABLE function changes the context in which the data is filtered, and evaluates the expression in the new context that you specify. +- The RELATEDTABLE function changes the context in which the data is filtered, and evaluates the expression in the new context that you specify. - This function is a shortcut for CALCULATETABLE function with no logical expression. From 7453c4b7f74d4a2bf04d2cb54890e461c6a3eb42 Mon Sep 17 00:00:00 2001 From: Bryan Ricker <978899+bricker@users.noreply.github.com> Date: Mon, 15 Aug 2022 15:59:39 -0700 Subject: [PATCH 045/934] Update earlier-function-dax.md --- query-languages/dax/earlier-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/earlier-function-dax.md b/query-languages/dax/earlier-function-dax.md index 8faf7f37f..30d6a7643 100644 --- a/query-languages/dax/earlier-function-dax.md +++ b/query-languages/dax/earlier-function-dax.md @@ -44,7 +44,7 @@ Description of errors - **EARLIER** succeeds if there is a row context prior to the beginning of the table scan. Otherwise it returns an error. -- The performance of **EARLIER** might be slow because it theoretically, it might have to perform a number of operations that is close to the total number of rows (in the column) times the same number (depending on the syntax of the expression). For example if you have 10 rows in the column, approximately a 100 operations could be required; if you have 100 rows then close to 10,000 operations might be performed. +- The performance of **EARLIER** might be slow because theoretically, it might have to perform a number of operations that is close to the total number of rows (in the column) times the same number (depending on the syntax of the expression). For example if you have 10 rows in the column, approximately a 100 operations could be required; if you have 100 rows then close to 10,000 operations might be performed. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] From 141619e14d8165c0a18bfe224c1e0f7195aa1922 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 16 Aug 2022 09:40:24 -0700 Subject: [PATCH 046/934] Revisions --- query-languages/dax/dax-queries.md | 37 +++++---- query-languages/dax/evaluate-statement-dax.md | 76 ++++++++++++++++++- 2 files changed, 93 insertions(+), 20 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 07b8275b8..8869197ae 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -12,15 +12,19 @@ recommendations: false --- # DAX queries -With DAX queries, you can query and return data defined by a table expression. Reporting clients construct DAX queries whenever a field is placed on a report surface, or a whenever a filter or calculation is applied. DAX queries can also be created and run in [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS) and open-source tools like [DAX Studio](https://daxstudio.org). DAX queries run in SSMS and DAX Studio return results as a table. +With DAX queries, you can query and return data defined by a table expression. Reporting clients like Power BI and Excel construct DAX queries whenever a field is placed on a report surface, or when a filter is applied. + +You can can also create and run your own DAX queries in [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS) and open-source tools like [DAX Studio](https://daxstudio.org). DAX queries run in SSMS and DAX Studio return results as a table right within the tool, allowing you to quickly create and test the performance of your measure formulas. Before learning about queries, it's important you have a solid understanding of DAX basics. If you haven't already, be sure to checkout [DAX overview](dax-overview.md). ## Keywords +DAX queries have a simple syntax comprised of just one required keyword, EVALUATE, and several optional keywords; ORDER BY, START AT, and DEFINE. Each keyword defines a statement used for the duration of the query. + ### EVALUATE (Required) -At the most basic level, a DAX query is an **EVALUATE** statement containing a table expression. A query can contain multiple EVALUATE statements. +At the most basic level, a DAX query is an **EVALUATE** statement containing a table expression. At least one EVALUATE statement is required, however, a query can contain any number of EVALUATE statements. #### Syntax @@ -75,7 +79,7 @@ ORDER BY 'Internet Sales'[Order Date] ``` -Returns all rows and columns from the Internet Sales table, ordered by Order Date, as a table. +Returns all rows and columns from the Internet Sales table, in ascending order by Order Date, as a table. ![DAX Evaluate order by statement](media/dax-queries/dax-evaluate-orderby.png) @@ -113,27 +117,25 @@ ORDER BY START AT "SO7000" ``` -Returns all rows and columns from the Internet Sales table, ordered by Sales Order Number, beginning at SO7000. +Returns all rows and columns from the Internet Sales table, in ascending order by Sales Order Number, beginning at SO7000. ![DAX Evaluate order by Sales order number statement](media/dax-queries/dax-evaluate-startat.png) -Multiple **EVALUATE**/**ORDER BY**/**START AT** clauses can be specified in a single query. - ### DEFINE (Optional) -The optional **DEFINE** keyword defines one or more calculated entity definitions that exist only for the duration of the query. Definitions typically precede the EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables*, and columns*. Definitions can reference other definitions that appear before or after the current definition. +The optional **DEFINE** keyword defines one or more calculated entity definitions that exist only for the duration of the query. Definitions typically precede the EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec). Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included with an EVALUATE statement. -#### Syntax +#### Syntax ```dax [DEFINE ( - MEASURE
[] = | - VAR =
| - TABLE
=
| - COLUMN
[column name] = | - ) -+ ] + (MEASURE
[] = ) | + (VAR =
) | + (TABLE
=
) | + (COLUMN
[column name] = ) | + ) + +] (EVALUATE
) + ``` @@ -142,18 +144,21 @@ The optional **DEFINE** keyword defines one or more calculated entity definition |Term|Definition| |--------|--------------| -|Entity|MEASURE, VAR, TABLE*, or COLUMN*. | +|Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](##not-rec). | |name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| |expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| #### Remarks +At least one definition is required in a DEFINE statement. + Measure definitions for a query override model measures of the same name. + The expression for a measure definition can be used with any other expression in the same query. VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). -\* Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN types for a query, they may produce inconsistent results and are not recommended. +[1] **Important:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN types for a query, they may produce inconsistent results and are not recommended. #### Example diff --git a/query-languages/dax/evaluate-statement-dax.md b/query-languages/dax/evaluate-statement-dax.md index 3da538d16..add54a235 100644 --- a/query-languages/dax/evaluate-statement-dax.md +++ b/query-languages/dax/evaluate-statement-dax.md @@ -15,6 +15,8 @@ recommendations: false A statement containing a table expression required in a [DAX query](dax-queries.md). +A DAX query can include any number of EVALUATE statements. EVALUATE statements can be preceded by one or more optional DEFINE statements which include VAR, MEASURE, TABLE, COLUMN entity definitions that exist for the entire scope of the query and apply to all EVALUATE statements in the query. An EVALUATE statement can be followed by optional ORDER BY and START AT result modifiers that determine the order and starting point of rows returned. + ## Syntax ```dax @@ -27,15 +29,15 @@ EVALUATE
|--------|--------------| |table|A table expression| -## Return value +### Return value The result of a table expression. -## Remarks +### Remarks -A query can contain multiple EVALUATE statements. +A DAX query can contain multiple EVALUATE statements. -## Example +### Example ```dax EVALUATE( @@ -44,7 +46,73 @@ EVALUATE( ``` Returns all rows and columns from the Internet Sales table, as a table. + +## ORDER BY (Optional) + +The optional **ORDER BY** keyword defines one or more expressions used to sort query results. Any expression that can be evaluated for each row of the result is valid. + +### Syntax + +```dax +EVALUATE
+[ORDER BY { [{ASC | DESC}]}[, …] +``` + +### Arguments + +|Term |Definition | +|---------|---------| +| expression | Any DAX expression that returns a single scalar value. | +| ASC | (default) Ascending sort order. | +| DESC | Descending sort order. | + +### Example + +```dax +EVALUATE( + 'Internet Sales' + ) +ORDER BY + 'Internet Sales'[Order Date] +``` + +Returns all rows and columns from the Internet Sales table, ordered by Order Date, as a table. + +## START AT (Optional) + +The optional **START AT** keyword is used inside an **ORDER BY** clause. It defines the value at which the query results begin. + +### Syntax + +```dax +EVALUATE
+[ORDER BY { [{ASC | DESC}]}[, …] +[START AT {|} [, …]]] +``` + +### Arguments + +|Term |Definition | +|---------|---------| +| value | A constant value. Cannot be an expression. | +| parameter | The name of a parameter in an XMLA statement prefixed with an `@` character. | + +### Remarks +START AT arguments have a one-to-one correspondence with the columns in the ORDER BY clause. There can be as many arguments in the START AT clause as there are in the ORDER BY clause, but not more. The first argument in the START AT defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. + +### Example + +```dax +EVALUATE( + 'Internet Sales' + ) +ORDER BY + 'Internet Sales'[Order Date] +``` + +Returns all rows and columns from the Internet Sales table, ordered by Order Date, as a table. + ## See also [DAX queries](dax-queries.md) From 5217cdb36bf64604dc413ee0eacf88a79c3f0eff Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 16 Aug 2022 12:41:19 -0700 Subject: [PATCH 047/934] Replacing files. --- query-languages/dax/define-statement-dax.md | 67 ++++++++++++++++++++ query-languages/dax/orderby-statement-dax.md | 51 +++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 query-languages/dax/define-statement-dax.md create mode 100644 query-languages/dax/orderby-statement-dax.md diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md new file mode 100644 index 000000000..d6d09fa31 --- /dev/null +++ b/query-languages/dax/define-statement-dax.md @@ -0,0 +1,67 @@ +--- +description: "Learn more about: DEFINE" +title: "DEFINE keyword (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 08/16/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# DEFINE + +A keyword that defines entities that can be applied to one or more EVALUATE statements of a [DAX query](dax-queries.md). + +## Syntax + +```dax +[DEFINE + ( + (MEASURE
[] = ) | + (VAR =
) | + (TABLE
=
) | + (COLUMN
[column name] = ) | + ) + +] + +(EVALUATE
) + +``` + +### Arguments + +|Term|Definition| +|--------|--------------| +|Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](##not-rec). | +|name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| +|expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| + +## Remarks + +At least one definition is required in a DEFINE statement. + +Measure definitions for a query override model measures of the same name. + +The expression for a measure definition can be used with any other expression in the same query. + +VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). + +[1] **Important:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN types for a query, they may produce inconsistent results and are not recommended. + +## Example + +```DAX +DEFINE + MEASURE Product[Number of products] = DISTINCTCOUNT ( Products[Product]) +``` + +Defines a measure that calculates the distinct count of products in the Products + +## See also + +[DAX queries](dax-queries.md) +[EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[ORDER BY](orderby-statement-dax.md) diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md new file mode 100644 index 000000000..6856001b2 --- /dev/null +++ b/query-languages/dax/orderby-statement-dax.md @@ -0,0 +1,51 @@ +--- +description: "Learn more about: ORDER BY" +title: "ORDER BY keyword (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 07/10/2020 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# ORDER BY + +Defines the sort order of query results returned by an EVALUATE statement in a [DAX query](dax-queries.md). + +## Syntax + +```dax +ORDER BY { [{ASC | DESC}]} +``` + +### Arguments + +|Term|Definition| +|--------|--------------| +|expression|Any DAX expression that returns a single scalar value.| +|ASC|(default) Ascending sort order.| +|DESC|Descending sort order.| + +## Return value + +The result of an EVALUATE statement in ascending (ASC) or descending (DESC) order. + +## Example + +```dax +EVALUATE( + 'Internet Sales' + ) +ORDER BY + 'Internet Sales'[Order Date] +``` + +Returns all rows and columns from the Internet Sales table, ordered by Order Date, as a table. + +## See also + +[DAX queries](dax-queries.md) +[EVALUATE](evaluate-statement-dax.md) From 3c68c4bb21f18cdd05e7227516449a34324e88aa Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 16 Aug 2022 14:56:45 -0700 Subject: [PATCH 048/934] Adding new statement files. --- query-languages/dax/define-statement-dax.md | 24 +++--- query-languages/dax/evaluate-statement-dax.md | 75 ++----------------- query-languages/dax/measure-statement-dax.md | 54 +++++++++++++ query-languages/dax/orderby-statement-dax.md | 10 ++- query-languages/dax/startat-statement-dax.md | 54 +++++++++++++ query-languages/dax/statements-dax.md | 4 + 6 files changed, 136 insertions(+), 85 deletions(-) create mode 100644 query-languages/dax/measure-statement-dax.md create mode 100644 query-languages/dax/startat-statement-dax.md diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index d6d09fa31..cd9ff0faa 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -34,34 +34,34 @@ A keyword that defines entities that can be applied to one or more EVALUATE stat |Term|Definition| |--------|--------------| -|Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](##not-rec). | +|Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | |name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| |expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| - -## Remarks -At least one definition is required in a DEFINE statement. +[1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. User defined TABLE and COLUMN definitions may return inconsistent results and are not recommended. + +## Remarks -Measure definitions for a query override model measures of the same name. +- At least one definition is required in a DEFINE statement. -The expression for a measure definition can be used with any other expression in the same query. +- Measure definitions for a query override model measures of the same name. -VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). +- The expression for a measure definition can be used with any other expression in the same query. -[1] **Important:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN types for a query, they may produce inconsistent results and are not recommended. +- VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). ## Example ```DAX DEFINE - MEASURE Product[Number of products] = DISTINCTCOUNT ( Products[Product]) + MEASURE Products[Number of products] = DISTINCTCOUNT ( Products[Product]) ``` -Defines a measure that calculates the distinct count of products in the Products +Defines a measure named Number of Products that calculates the distinct count of products. ## See also -[DAX queries](dax-queries.md) [EVALUATE](evaluate-statement-dax.md) [VAR](var-dax.md) -[ORDER BY](orderby-statement-dax.md) +[MEASURE](measure-statement-dax.md) +[DAX queries](dax-queries.md) \ No newline at end of file diff --git a/query-languages/dax/evaluate-statement-dax.md b/query-languages/dax/evaluate-statement-dax.md index add54a235..a368b503c 100644 --- a/query-languages/dax/evaluate-statement-dax.md +++ b/query-languages/dax/evaluate-statement-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: EVALUATE" title: "EVALUATE keyword (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 07/08/2020 +ms.date: 08/16/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -15,8 +15,6 @@ recommendations: false A statement containing a table expression required in a [DAX query](dax-queries.md). -A DAX query can include any number of EVALUATE statements. EVALUATE statements can be preceded by one or more optional DEFINE statements which include VAR, MEASURE, TABLE, COLUMN entity definitions that exist for the entire scope of the query and apply to all EVALUATE statements in the query. An EVALUATE statement can be followed by optional ORDER BY and START AT result modifiers that determine the order and starting point of rows returned. - ## Syntax ```dax @@ -47,73 +45,10 @@ EVALUATE( Returns all rows and columns from the Internet Sales table, as a table. -## ORDER BY (Optional) - -The optional **ORDER BY** keyword defines one or more expressions used to sort query results. Any expression that can be evaluated for each row of the result is valid. - -### Syntax - -```dax -EVALUATE
-[ORDER BY { [{ASC | DESC}]}[, …] -``` - -### Arguments - -|Term |Definition | -|---------|---------| -| expression | Any DAX expression that returns a single scalar value. | -| ASC | (default) Ascending sort order. | -| DESC | Descending sort order. | - -### Example - -```dax -EVALUATE( - 'Internet Sales' - ) -ORDER BY - 'Internet Sales'[Order Date] -``` - -Returns all rows and columns from the Internet Sales table, ordered by Order Date, as a table. - -## START AT (Optional) - -The optional **START AT** keyword is used inside an **ORDER BY** clause. It defines the value at which the query results begin. - -### Syntax - -```dax -EVALUATE
-[ORDER BY { [{ASC | DESC}]}[, …] -[START AT {|} [, …]]] -``` - -### Arguments - -|Term |Definition | -|---------|---------| -| value | A constant value. Cannot be an expression. | -| parameter | The name of a parameter in an XMLA statement prefixed with an `@` character. | - -### Remarks - -START AT arguments have a one-to-one correspondence with the columns in the ORDER BY clause. There can be as many arguments in the START AT clause as there are in the ORDER BY clause, but not more. The first argument in the START AT defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. - -### Example - -```dax -EVALUATE( - 'Internet Sales' - ) -ORDER BY - 'Internet Sales'[Order Date] -``` - -Returns all rows and columns from the Internet Sales table, ordered by Order Date, as a table. - ## See also -[DAX queries](dax-queries.md) +[ORDER BY](orderby-statement-dax.md) +[START AT](startat-statement-dax.md) +[DEFINE](define-statement-dax.md) [VAR](var-dax.md) +[DAX queries](dax-queries.md) diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md new file mode 100644 index 000000000..16788528b --- /dev/null +++ b/query-languages/dax/measure-statement-dax.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: MEASURE" +title: "MEASURE keyword (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 08/16/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# MEASURE + + +## Syntax + +```dax +[DEFINE + ( + (MEASURE
[] = ) + ) + +] + +(EVALUATE
) + +``` + +## Arguments + +|Term |Definition | +|---------|---------| +| table name | | +| measure name | The name of the measure. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query. | +| scalar expression | A DAX expression that returns a scalar value. | + +## Remarks + +- Measure definitions for a query override model measures of the same name. + +- The expression for a measure definition can be used with any other expression in the same query. + +## Example + +```dax + +``` + +## See also + +[DEFINE](define-statement-dax.md) +[EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[DAX queries](dax-queries.md) diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index 6856001b2..7f4dcb7b3 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: ORDER BY" title: "ORDER BY keyword (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 07/10/2020 +ms.date: 08/16/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -18,7 +18,7 @@ Defines the sort order of query results returned by an EVALUATE statement in a [ ## Syntax ```dax -ORDER BY { [{ASC | DESC}]} +[ORDER BY { [{ASC | DESC}]}[, …] ``` ### Arguments @@ -36,6 +36,7 @@ The result of an EVALUATE statement in ascending (ASC) or descending (DESC) orde ## Example ```dax + EVALUATE( 'Internet Sales' ) @@ -47,5 +48,8 @@ Returns all rows and columns from the Internet Sales table, ordered by Order Dat ## See also -[DAX queries](dax-queries.md) +[START AT](startat-statement-dax.md) [EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[DEFINE](define-statement-dax.md) +[DAX queries](dax-queries.md) \ No newline at end of file diff --git a/query-languages/dax/startat-statement-dax.md b/query-languages/dax/startat-statement-dax.md new file mode 100644 index 000000000..e7a20c260 --- /dev/null +++ b/query-languages/dax/startat-statement-dax.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: START AT" +title: "START AT keyword (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 08/16/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# START AT + +Defines the starting value at which the query results of an ORDER BY clause in an EVALUATE statement in a [DAX query](dax-queries.md) are returned. + +## Syntax + +```dax +[START AT {|} [, …]]] +``` + +## Arguments + +|Term |Definition | +|---------|---------| +| value | A constant value. Cannot be an expression. | +| parameter | The name of a parameter in an XMLA statement prefixed with an `@` character. | + +## Remarks + +START AT arguments have a one-to-one correspondence with the columns in the ORDER BY clause. There can be as many arguments in the START AT clause as there are in the ORDER BY clause, but not more. The first argument in the START AT defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. + +## Example + +```dax +EVALUATE( + 'Internet Sales' + ) +ORDER BY + 'Internet Sales'[Sales Order Number] +START AT "SO7000" +``` + +Returns all rows and columns from the Internet Sales table, ordered by Sales Order Number, beginning at SO7000, as a table. + +## See also + +[ORDER BY](orderby-statement-dax.md) +[EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[DEFINE](define-statement-dax.md) +[DAX queries](dax-queries.md) diff --git a/query-languages/dax/statements-dax.md b/query-languages/dax/statements-dax.md index 4db271dd6..c8074517d 100644 --- a/query-languages/dax/statements-dax.md +++ b/query-languages/dax/statements-dax.md @@ -16,5 +16,9 @@ recommendations: false |Statement |Description | |---------|---------| +|[DEFINE](define-statement-dax.md) |(Keyword) Defines one or more entities that can be applied to one or more EVALUATE statements| |[EVALUATE](evaluate-statement-dax.md) | (Keyword) A statement required to execute a DAX query. | +|[MEASURE](measure-statement-dax.md) |(Keyword) | +|[ORDER BY](orderby-statement-dax.md) |(Keyword) Defines the sort order of query results returned by an EVALUATE statement. | +|[START AT](startat-statement-dax.md) |(Keyword) Defines the starting value at which the query results of an ORDER BY clause in an EVALUATE statement are returned. | |[VAR](var-dax.md) | (Keyword) Stores the result of an expression as a named variable, which can then be passed as an argument to other measure expressions. | From adf6704c7bbdebcfd703f236bcd550cc26406522 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 17 Aug 2022 11:33:11 -0700 Subject: [PATCH 049/934] Revisions --- query-languages/dax/dax-queries.md | 20 ++++++++++---------- query-languages/dax/measure-statement-dax.md | 7 +++++-- query-languages/dax/statements-dax.md | 8 ++++---- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 8869197ae..5addd7e0f 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -14,7 +14,7 @@ recommendations: false With DAX queries, you can query and return data defined by a table expression. Reporting clients like Power BI and Excel construct DAX queries whenever a field is placed on a report surface, or when a filter is applied. -You can can also create and run your own DAX queries in [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS) and open-source tools like [DAX Studio](https://daxstudio.org). DAX queries run in SSMS and DAX Studio return results as a table right within the tool, allowing you to quickly create and test the performance of your measure formulas. +You can can also create and run your own DAX queries in [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org). DAX queries return results as a table right within the tool, allowing you to quickly create and test the performance of your DAX formulas. Before learning about queries, it's important you have a solid understanding of DAX basics. If you haven't already, be sure to checkout [DAX overview](dax-overview.md). @@ -123,7 +123,7 @@ Returns all rows and columns from the Internet Sales table, in ascending order b ### DEFINE (Optional) -The optional **DEFINE** keyword defines one or more calculated entity definitions that exist only for the duration of the query. Definitions typically precede the EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec). Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included with an EVALUATE statement. +The optional **DEFINE** keyword introduces one or more calculated entity definitions that exist only for the duration of the query. Definitions precede the EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec). Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included in a query. #### Syntax @@ -148,17 +148,17 @@ The optional **DEFINE** keyword defines one or more calculated entity definition |name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| |expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| -#### Remarks +[1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query, they may produce inconsistent results and are not recommended. -At least one definition is required in a DEFINE statement. +#### Remarks -Measure definitions for a query override model measures of the same name. +- At least one definition is required in a DEFINE statement. -The expression for a measure definition can be used with any other expression in the same query. +- Measure definitions for a query override model measures of the same name but are only used within the query. -VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). +- The expression for a measure definition can be used with any other expression in the same query. -[1] **Important:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN types for a query, they may produce inconsistent results and are not recommended. +- VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). #### Example @@ -200,8 +200,8 @@ The [Execute Method (XMLA)](/analysis-services/xmla/xml-elements-methods-execute Reference XMLA parameters by prefixing the name of the parameter with an `@` character. Any place in the syntax where a value is allowed, the value can be replaced with a parameter call. All XMLA parameters are typed as text. > [!IMPORTANT] -> Parameters defined in the parameters section and not used in the **<STATEMENT>** element generate an error response in XMLA. -> Parameters used and not defined in the **<Parameters>** element generate an error response in XMLA. +> Parameters defined in the parameters section and not used in the **\** element generate an error response in XMLA. +> Parameters used and not defined in the **\** element generate an error response in XMLA. ## See also diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index 16788528b..044fdd54a 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -13,7 +13,6 @@ recommendations: false --- # MEASURE - ## Syntax ```dax @@ -43,9 +42,13 @@ recommendations: false ## Example ```dax - +DEFINE + MEASURE 'Internet Sales'[Margin] = + [Sales Amount] - [Total Cost] ``` +Defines a measure named Margin that can be used in any EVALUATE statement in the query. + ## See also [DEFINE](define-statement-dax.md) diff --git a/query-languages/dax/statements-dax.md b/query-languages/dax/statements-dax.md index c8074517d..c0d34a1fe 100644 --- a/query-languages/dax/statements-dax.md +++ b/query-languages/dax/statements-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: Statements" title: "Statements(DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 08/11/2022 +ms.date: 08/17/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -16,9 +16,9 @@ recommendations: false |Statement |Description | |---------|---------| -|[DEFINE](define-statement-dax.md) |(Keyword) Defines one or more entities that can be applied to one or more EVALUATE statements| -|[EVALUATE](evaluate-statement-dax.md) | (Keyword) A statement required to execute a DAX query. | -|[MEASURE](measure-statement-dax.md) |(Keyword) | +|[DEFINE](define-statement-dax.md) |(Keyword) Introduces one or more one or more entity definitions that can be applied to one or more EVALUATE statements| +|[EVALUATE](evaluate-statement-dax.md) | (Keyword) Introduces a statement required to execute a DAX query. | +|[MEASURE](measure-statement-dax.md) |(Keyword) Introduces a measure definition that can be used in one or more EVALUATE statements in a query. | |[ORDER BY](orderby-statement-dax.md) |(Keyword) Defines the sort order of query results returned by an EVALUATE statement. | |[START AT](startat-statement-dax.md) |(Keyword) Defines the starting value at which the query results of an ORDER BY clause in an EVALUATE statement are returned. | |[VAR](var-dax.md) | (Keyword) Stores the result of an expression as a named variable, which can then be passed as an argument to other measure expressions. | From 42b3d0b971b2b3cc9ce3ff2f23f7d6cae04b5efe Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 17 Aug 2022 11:37:08 -0700 Subject: [PATCH 050/934] Revisions --- .openpublishing.redirection.json | 10 ---------- query-languages/dax/dax-queries.md | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 01b6e78e2..744cbbfbf 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -39,16 +39,6 @@ "source_path": "query-languages/dax/pre-defined-numeric-formats-for-the-format-function.md", "redirect_url": "/dax/format-function-dax", "redirect_document_id": false - }, - { - "source_path": "query-languages/dax/define-statement-dax.md", - "redirect_url": "/dax/dax-queries", - "redirect_document_id": false - }, - { - "source_path": "query-languages/dax/orderby-statement-dax.md", - "redirect_url": "/dax/dax-queries", - "redirect_document_id": false } ] } diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 5addd7e0f..f194204d2 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -144,7 +144,7 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit |Term|Definition| |--------|--------------| -|Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](##not-rec). | +|Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | |name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| |expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| From 9340eb810a84b80d09f29f433c1f3089bed0e7ff Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 17 Aug 2022 12:27:42 -0700 Subject: [PATCH 051/934] Revisions to ToC --- query-languages/dax/toc.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 89ef1d924..0cd0b5668 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -793,8 +793,16 @@ items: - name: Statements overview href: statements-dax.md + - name: DEFINE + href: define-statement-dax.md - name: EVALUATE href: evaluate-statement-dax.md + - name: MEASURE + href: measure-statement-dax.md + - name: ORDER BY + href: orderby-statement-dax.md + - name: START AT + href: startat-statement-dax.md - name: VAR href: var-dax.md - name: DAX glossary From 741c8c4f9c9e254f3dae232bd71802e46159a7a6 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 19 Aug 2022 12:08:33 -0700 Subject: [PATCH 052/934] Revisions. --- query-languages/dax/dax-queries.md | 45 ++++++++++--------- query-languages/dax/define-statement-dax.md | 17 +++---- query-languages/dax/evaluate-statement-dax.md | 17 +++---- query-languages/dax/measure-statement-dax.md | 16 +++---- query-languages/dax/orderby-statement-dax.md | 17 ++----- query-languages/dax/startat-statement-dax.md | 17 ++----- query-languages/dax/statements-dax.md | 8 ++-- query-languages/dax/var-dax.md | 6 ++- 8 files changed, 58 insertions(+), 85 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index f194204d2..bc9a718b2 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -20,30 +20,29 @@ Before learning about queries, it's important you have a solid understanding of ## Keywords -DAX queries have a simple syntax comprised of just one required keyword, EVALUATE, and several optional keywords; ORDER BY, START AT, and DEFINE. Each keyword defines a statement used for the duration of the query. +DAX queries have a simple syntax comprised of just one required keyword, EVALUATE, and several optional keywords; ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, and COLUMN. Each keyword defines a statement used for the duration of the query. ### EVALUATE (Required) At the most basic level, a DAX query is an **EVALUATE** statement containing a table expression. At least one EVALUATE statement is required, however, a query can contain any number of EVALUATE statements. -#### Syntax +#### EVALUATE Syntax ```dax EVALUATE
``` -#### Arguments +#### EVALUATE Arguments |Term |Definition | |---------|---------| | table | A table expression. | -#### Example +#### EVALUATE Example ```dax -EVALUATE( +EVALUATE 'Internet Sales' - ) ``` Returns all rows and columns from the Internet Sales table, as a table. @@ -54,14 +53,14 @@ Returns all rows and columns from the Internet Sales table, as a table. The optional **ORDER BY** keyword defines one or more expressions used to sort query results. Any expression that can be evaluated for each row of the result is valid. -#### Syntax +#### ORDER BY Syntax ```dax EVALUATE
[ORDER BY { [{ASC | DESC}]}[, …] ``` -#### Arguments +#### ORDER BY Arguments |Term |Definition | |---------|---------| @@ -69,12 +68,12 @@ EVALUATE
| ASC | (default) Ascending sort order. | | DESC | Descending sort order. | -#### Example +#### ORDER BY Example ```dax -EVALUATE( +EVALUATE 'Internet Sales' - ) + ORDER BY 'Internet Sales'[Order Date] ``` @@ -87,7 +86,7 @@ Returns all rows and columns from the Internet Sales table, in ascending order b The optional **START AT** keyword is used inside an **ORDER BY** clause. It defines the value at which the query results begin. -#### Syntax +#### START AT Syntax ```dax EVALUATE
@@ -95,23 +94,23 @@ EVALUATE
[START AT {|} [, …]]] ``` -#### Arguments +#### START AT Arguments |Term |Definition | |---------|---------| | value | A constant value. Cannot be an expression. | | parameter | The name of a parameter in an XMLA statement prefixed with an `@` character. | -#### Remarks +#### START AT Remarks START AT arguments have a one-to-one correspondence with the columns in the ORDER BY clause. There can be as many arguments in the START AT clause as there are in the ORDER BY clause, but not more. The first argument in the START AT defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. -#### Example +#### START AT Example ```dax -EVALUATE( +EVALUATE 'Internet Sales' - ) + ORDER BY 'Internet Sales'[Sales Order Number] START AT "SO7000" @@ -125,7 +124,7 @@ Returns all rows and columns from the Internet Sales table, in ascending order b The optional **DEFINE** keyword introduces one or more calculated entity definitions that exist only for the duration of the query. Definitions precede the EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec). Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included in a query. -#### Syntax +#### DEFINE Syntax ```dax [DEFINE @@ -140,7 +139,7 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit (EVALUATE
) + ``` -#### Arguments +#### DEFINE Arguments |Term|Definition| |--------|--------------| @@ -150,17 +149,19 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit [1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query, they may produce inconsistent results and are not recommended. -#### Remarks +#### DEFINE Remarks + +- A DAX query can have multiple EVALUATE statements, but can have only one DEFINE statement. Definitions in the DEFINE statement can apply to any EVALUATE statements in the query. - At least one definition is required in a DEFINE statement. -- Measure definitions for a query override model measures of the same name but are only used within the query. +- Measure definitions for a query override model measures of the same name but are only used within the query. They will not effect the model measure. - The expression for a measure definition can be used with any other expression in the same query. - VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). -#### Example +#### DEFINE Example ```dax DEFINE diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index cd9ff0faa..39ca055d7 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # DEFINE -A keyword that defines entities that can be applied to one or more EVALUATE statements of a [DAX query](dax-queries.md). +Introduces a statement with one or more entity definitions that can be applied to one or more EVALUATE statements of a [DAX query](dax-queries.md). ## Syntax @@ -42,26 +42,21 @@ A keyword that defines entities that can be applied to one or more EVALUATE stat ## Remarks +- A DAX query can have multiple EVALUATE statements, but can have only one DEFINE statement. Definitions in the DEFINE statement can apply to any EVALUATE statements in the query. + - At least one definition is required in a DEFINE statement. - Measure definitions for a query override model measures of the same name. - The expression for a measure definition can be used with any other expression in the same query. -- VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). - -## Example - -```DAX -DEFINE - MEASURE Products[Number of products] = DISTINCTCOUNT ( Products[Product]) -``` +- VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). -Defines a measure named Number of Products that calculates the distinct count of products. +- To learn more about how a DEFINE statement is used, see [DAX queries](dax-queries.md). ## See also [EVALUATE](evaluate-statement-dax.md) [VAR](var-dax.md) [MEASURE](measure-statement-dax.md) -[DAX queries](dax-queries.md) \ No newline at end of file +[DAX queries](dax-queries.md) diff --git a/query-languages/dax/evaluate-statement-dax.md b/query-languages/dax/evaluate-statement-dax.md index a368b503c..a17658bc2 100644 --- a/query-languages/dax/evaluate-statement-dax.md +++ b/query-languages/dax/evaluate-statement-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # EVALUATE -A statement containing a table expression required in a [DAX query](dax-queries.md). +Introduces a statement containing a table expression required in a [DAX query](dax-queries.md). ## Syntax @@ -21,26 +21,27 @@ A statement containing a table expression required in a [DAX query](dax-queries. EVALUATE
``` -### Parameters +## Parameters |Term|Definition| |--------|--------------| |table|A table expression| -### Return value +## Return value The result of a table expression. -### Remarks +## Remarks -A DAX query can contain multiple EVALUATE statements. +- A DAX query can contain multiple EVALUATE statements. -### Example +- To learn more about how EVALUATE statements are used, see [DAX queries](dax-queries.md). + +## Example ```dax -EVALUATE( +EVALUATE 'Internet Sales' - ) ``` Returns all rows and columns from the Internet Sales table, as a table. diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index 044fdd54a..2768825f5 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -13,6 +13,8 @@ recommendations: false --- # MEASURE +Introduces a measure definition in a DEFINE statement of a [DAX query](dax-queries.md). + ## Syntax ```dax @@ -29,25 +31,17 @@ recommendations: false |Term |Definition | |---------|---------| -| table name | | +| table name | The name of a table containing the measure. | | measure name | The name of the measure. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query. | | scalar expression | A DAX expression that returns a scalar value. | ## Remarks -- Measure definitions for a query override model measures of the same name. +- Measure definitions for a query override model measures of the same name for the duration of the query. They will not effect the model measure. - The expression for a measure definition can be used with any other expression in the same query. -## Example - -```dax -DEFINE - MEASURE 'Internet Sales'[Margin] = - [Sales Amount] - [Total Cost] -``` - -Defines a measure named Margin that can be used in any EVALUATE statement in the query. +- To learn more about how MEASURE statements are used, see [DAX queries](dax-queries.md). ## See also diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index 7f4dcb7b3..2a1d88ea8 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # ORDER BY -Defines the sort order of query results returned by an EVALUATE statement in a [DAX query](dax-queries.md). +Introduces a statement that defines sort order of query results returned by an EVALUATE statement in a [DAX query](dax-queries.md). ## Syntax @@ -31,21 +31,10 @@ Defines the sort order of query results returned by an EVALUATE statement in a [ ## Return value -The result of an EVALUATE statement in ascending (ASC) or descending (DESC) order. +- The result of an EVALUATE statement in ascending (ASC) or descending (DESC) order. -## Example +- To learn more about how ORDER BY statements are used, see [DAX queries](dax-queries.md). -```dax - -EVALUATE( - 'Internet Sales' - ) -ORDER BY - 'Internet Sales'[Order Date] -``` - -Returns all rows and columns from the Internet Sales table, ordered by Order Date, as a table. - ## See also [START AT](startat-statement-dax.md) diff --git a/query-languages/dax/startat-statement-dax.md b/query-languages/dax/startat-statement-dax.md index e7a20c260..a8312349a 100644 --- a/query-languages/dax/startat-statement-dax.md +++ b/query-languages/dax/startat-statement-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # START AT -Defines the starting value at which the query results of an ORDER BY clause in an EVALUATE statement in a [DAX query](dax-queries.md) are returned. +Introduces a statement that defines the starting value at which the query results of an ORDER BY clause in an EVALUATE statement in a [DAX query](dax-queries.md) are returned. ## Syntax @@ -30,20 +30,9 @@ Defines the starting value at which the query results of an ORDER BY clause in a ## Remarks -START AT arguments have a one-to-one correspondence with the columns in the ORDER BY clause. There can be as many arguments in the START AT clause as there are in the ORDER BY clause, but not more. The first argument in the START AT defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. +- START AT arguments have a one-to-one correspondence with the columns in the ORDER BY statement. There can be as many arguments in the START AT statement as there are in the ORDER BY statement, but not more. The first argument in the START AT statement defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT statement defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. -## Example - -```dax -EVALUATE( - 'Internet Sales' - ) -ORDER BY - 'Internet Sales'[Sales Order Number] -START AT "SO7000" -``` - -Returns all rows and columns from the Internet Sales table, ordered by Sales Order Number, beginning at SO7000, as a table. +- To learn more about how START AT statements are used, see [DAX queries](dax-queries.md). ## See also diff --git a/query-languages/dax/statements-dax.md b/query-languages/dax/statements-dax.md index c0d34a1fe..09cd2fcff 100644 --- a/query-languages/dax/statements-dax.md +++ b/query-languages/dax/statements-dax.md @@ -16,9 +16,9 @@ recommendations: false |Statement |Description | |---------|---------| -|[DEFINE](define-statement-dax.md) |(Keyword) Introduces one or more one or more entity definitions that can be applied to one or more EVALUATE statements| -|[EVALUATE](evaluate-statement-dax.md) | (Keyword) Introduces a statement required to execute a DAX query. | +|[DEFINE](define-statement-dax.md) |(Keyword) Introduces one or more one or more entity definitions that can be applied to one or more EVALUATE statements.| +|[EVALUATE](evaluate-statement-dax.md) | (Keyword) Introduces a statement containing a table expression required to execute a DAX query. | |[MEASURE](measure-statement-dax.md) |(Keyword) Introduces a measure definition that can be used in one or more EVALUATE statements in a query. | -|[ORDER BY](orderby-statement-dax.md) |(Keyword) Defines the sort order of query results returned by an EVALUATE statement. | -|[START AT](startat-statement-dax.md) |(Keyword) Defines the starting value at which the query results of an ORDER BY clause in an EVALUATE statement are returned. | +|[ORDER BY](orderby-statement-dax.md) |(Keyword) Introduces a statement that defines the sort order of query results returned by an EVALUATE statement. | +|[START AT](startat-statement-dax.md) |(Keyword) Introduces a statement that defines the starting value at which the query results of an ORDER BY statement are returned. | |[VAR](var-dax.md) | (Keyword) Stores the result of an expression as a named variable, which can then be passed as an argument to other measure expressions. | diff --git a/query-languages/dax/var-dax.md b/query-languages/dax/var-dax.md index f85177534..94b65c106 100644 --- a/query-languages/dax/var-dax.md +++ b/query-languages/dax/var-dax.md @@ -44,6 +44,8 @@ A named variable containing the result of the expression argument. - For best practices when using VAR, see [Use variables to improve your DAX formulas](best-practices/dax-variables.md). +- To learn more about how VAR is used within a DAX Query, see [DAX queries](dax-queries.md). + ## Example To calculate a percentage of year-over-year growth without using a variable, you could create three separate measures. This first measure calculates Sum of Sales Amount: @@ -84,4 +86,6 @@ VAR SalesLastYear = By using a variable, you can get the same outcome, but in a more readable way. And because the result of the expression is stored in the variable, the measure's performance can be significantly improved because it doesn't have to be recalculated each time it's used. ## See also -[Use variables to improve your DAX formulas](best-practices/dax-variables.md) + +[Use variables to improve your DAX formulas](best-practices/dax-variables.md) +[DAX queries](dax-queries.md) From eb646421724cb96ac068a8b5655b9fa266becd24 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 19 Aug 2022 12:24:58 -0700 Subject: [PATCH 053/934] Revisions. --- query-languages/dax/dax-queries.md | 8 ++++---- query-languages/dax/define-statement-dax.md | 2 +- query-languages/dax/measure-statement-dax.md | 2 +- query-languages/dax/orderby-statement-dax.md | 4 +++- query-languages/dax/startat-statement-dax.md | 2 +- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index bc9a718b2..998868983 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -32,7 +32,7 @@ At the most basic level, a DAX query is an **EVALUATE** statement containing a t EVALUATE
``` -#### EVALUATE Arguments +#### EVALUATE Parameters |Term |Definition | |---------|---------| @@ -60,7 +60,7 @@ EVALUATE
[ORDER BY { [{ASC | DESC}]}[, …] ``` -#### ORDER BY Arguments +#### ORDER BY Parameters |Term |Definition | |---------|---------| @@ -94,7 +94,7 @@ EVALUATE
[START AT {|} [, …]]] ``` -#### START AT Arguments +#### START AT Parameters |Term |Definition | |---------|---------| @@ -139,7 +139,7 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit (EVALUATE
) + ``` -#### DEFINE Arguments +#### DEFINE Parameters |Term|Definition| |--------|--------------| diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 39ca055d7..9ddf08648 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -30,7 +30,7 @@ Introduces a statement with one or more entity definitions that can be applied t (EVALUATE
) + ``` -### Arguments +### Parameters |Term|Definition| |--------|--------------| diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index 2768825f5..19a062e7e 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -27,7 +27,7 @@ Introduces a measure definition in a DEFINE statement of a [DAX query](dax-queri (EVALUATE
) + ``` -## Arguments +## Parameters |Term |Definition | |---------|---------| diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index 2a1d88ea8..f31be8ae6 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -21,7 +21,7 @@ Introduces a statement that defines sort order of query results returned by an E [ORDER BY { [{ASC | DESC}]}[, …] ``` -### Arguments +### Parameters |Term|Definition| |--------|--------------| @@ -33,6 +33,8 @@ Introduces a statement that defines sort order of query results returned by an E - The result of an EVALUATE statement in ascending (ASC) or descending (DESC) order. +## Remarks + - To learn more about how ORDER BY statements are used, see [DAX queries](dax-queries.md). ## See also diff --git a/query-languages/dax/startat-statement-dax.md b/query-languages/dax/startat-statement-dax.md index a8312349a..d536bddd6 100644 --- a/query-languages/dax/startat-statement-dax.md +++ b/query-languages/dax/startat-statement-dax.md @@ -21,7 +21,7 @@ Introduces a statement that defines the starting value at which the query result [START AT {|} [, …]]] ``` -## Arguments +## Parameters |Term |Definition | |---------|---------| From 570eea2c2108e67a701f34faba74e40d2fb5cbd1 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 19 Aug 2022 17:19:04 -0400 Subject: [PATCH 054/934] Tweaks --- query-languages/m/m-spec-types.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 527dbf5d1..0b4f305bb 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -9,7 +9,7 @@ ms.date: 8/2/2022 A _type value_ is a value that _classifies_ other values. A value that is classified by a type is said to _conform_ to that type. The M type system consists of the following kinds of types: -* Primitive types, which classify primitive values (`binary`, `date`, `datetime`, `datetimezone`, `duration`, `list`, `logical`, `null`, `number`, `record`, `text`, `time`, `type`) and also include a number of abstract types (`function`, `table`, `any`, and `none`) +* Primitive types, which classify primitive values (`binary`, `date`, `datetime`, `datetimezone`, `duration`, `list`, `logical`, `null`, `number`, `record`, `text`, `time`, `type`) and also include a number of abstract types (`function`, `table`, `any`, `anynonnull` and `none`) * Record types, which classify record values based on field names and value types @@ -23,9 +23,9 @@ A _type value_ is a value that _classifies_ other values. A value that is classi * Type types, which classify values that are types -The set of _primitive types_ includes the types of primitive values a number of _abstract types_, types that do not uniquely classify any values: `function`, `table`, `any`, and `none`. All function values conform to the abstract type `function`, all table values to the abstract type `table`, all values to the abstract type `any`, and no values to the abstract type `none`. An expression of type `none` must raise an error or fail to terminate since no value could be produced that conforms to type `none`. Note that the primitive types `function` and `table` are abstract because no function or table is directly of those types, respectively. The primitive types `record` and `list` are non-abstract because they represent an open record with no defined fields and a list of type any, respectively. +The set of _primitive types_ includes the types of primitive values, and a number of _abstract types_, which are types that do not uniquely classify any values: `function`, `table`, `any`, `anynonnull` and `none`. All function values conform to the abstract type `function`, all table values to the abstract type `table`, all values to the abstract type `any`, all values but `null` to the abstract type `anynonnull`, and no values to the abstract type `none`. An expression of type `none` must raise an error or fail to terminate since no value could be produced that conforms to type `none`. Note that the primitive types `function` and `table` are abstract because no function or table is directly of those types, respectively. The primitive types `record` and `list` are non-abstract because they represent an open record with no defined fields and a list of type any, respectively. -All types that are not members of the closed set of primitive types are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: +All types that are not members of the closed set of primitive types plus their nullable counterparts are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: _type-expression:
      primary-expression_
@@ -41,7 +41,7 @@ primary-type:
      table-type
      nullable-type
primitive-type:_ one of
-      `any binary date datetime datetimezone duration function list logical`
+      `any anynonnull binary date datetime datetimezone duration function list logical`
      `none null number record table text time type` The _primitive-type_ names are _contextual keywords_ recognized only in a _type_ context. The use of parentheses in a _type_ context moves the grammar back to a regular expression context, requiring the use of the type keyword to move back into a type context. For example, to invoke a function in a _type_ context, parentheses can be used: @@ -93,7 +93,7 @@ Value.Type( 1 as number ) // type number {2} as text // error, type mismatch ``` -Note that the `is` and `as` operators only accept primitive types as their right operand. M does not provide means to check values for conformance to custom types. +Note that the `is` and `as` operators only accept nullable primitive types as their right operand. M does not provide means to check values for conformance to custom types. A type `X` is _compatible_ with a type `Y` if and only if all values that conform to `X` also conform to `Y`. All types are compatible with type `any` and no types (but `none` itself) are compatible with type `none`. The following graph shows the compatibility relation. (Type compatibility is reflexive and transitive. It forms a lattice with type `any` as the top and type `none` as the bottom value.) The names of abstract types are set in _italics_. @@ -128,7 +128,8 @@ Types in the M language form a disjoint hierarchy rooted at type `any`, which is * `type record`, which classifies record values. * `type table`, which classifies table values. * `type function`, which classifies function values. -* `type anynonnull`, which classifies all values excluding null. The intrinsic type `none` classifies no values. +* `type anynonnull`, which classifies all values excluding null. +* `type none`, which classifies no values. ## Any Type From 83a84a2d18d51dfccdaed1264f88bebb68649776 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 19 Aug 2022 17:22:32 -0400 Subject: [PATCH 055/934] Tweak --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 0b4f305bb..eb3f33443 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -128,7 +128,7 @@ Types in the M language form a disjoint hierarchy rooted at type `any`, which is * `type record`, which classifies record values. * `type table`, which classifies table values. * `type function`, which classifies function values. -* `type anynonnull`, which classifies all values excluding null. +* `type anynonnull`, which classifies all values excluding `null`. * `type none`, which classifies no values. ## Any Type From 40397410b3e0dd7b2e64e05ddfa79e0496ee9693 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 19 Aug 2022 17:23:14 -0400 Subject: [PATCH 056/934] Removing tweak --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index eb3f33443..0b4f305bb 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -128,7 +128,7 @@ Types in the M language form a disjoint hierarchy rooted at type `any`, which is * `type record`, which classifies record values. * `type table`, which classifies table values. * `type function`, which classifies function values. -* `type anynonnull`, which classifies all values excluding `null`. +* `type anynonnull`, which classifies all values excluding null. * `type none`, which classifies no values. ## Any Type From 394f03303c9a9850620eadcf77929a2e16695dcd Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 19 Aug 2022 17:24:58 -0400 Subject: [PATCH 057/934] Tweak --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 0b4f305bb..2ee907d00 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -23,7 +23,7 @@ A _type value_ is a value that _classifies_ other values. A value that is classi * Type types, which classify values that are types -The set of _primitive types_ includes the types of primitive values, and a number of _abstract types_, which are types that do not uniquely classify any values: `function`, `table`, `any`, `anynonnull` and `none`. All function values conform to the abstract type `function`, all table values to the abstract type `table`, all values to the abstract type `any`, all values but `null` to the abstract type `anynonnull`, and no values to the abstract type `none`. An expression of type `none` must raise an error or fail to terminate since no value could be produced that conforms to type `none`. Note that the primitive types `function` and `table` are abstract because no function or table is directly of those types, respectively. The primitive types `record` and `list` are non-abstract because they represent an open record with no defined fields and a list of type any, respectively. +The set of _primitive types_ includes the types of primitive values, and a number of _abstract types_, which are types that do not uniquely classify any values: `function`, `table`, `any`, `anynonnull` and `none`. All function values conform to the abstract type `function`, all table values to the abstract type `table`, all values to the abstract type `any`, all non-null values to the abstract type `anynonnull`, and no values to the abstract type `none`. An expression of type `none` must raise an error or fail to terminate since no value could be produced that conforms to type `none`. Note that the primitive types `function` and `table` are abstract because no function or table is directly of those types, respectively. The primitive types `record` and `list` are non-abstract because they represent an open record with no defined fields and a list of type any, respectively. All types that are not members of the closed set of primitive types plus their nullable counterparts are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: From ef20a5214d37ba09787521a3208ed70ddab45fa3 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 19 Aug 2022 17:29:36 -0400 Subject: [PATCH 058/934] Adding type time to list of primitive-types --- query-languages/m/m-spec-consolidated-grammar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 8e0d4d4de..baa2b7c51 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -510,7 +510,7 @@ primary-type:
      nullable-type
primitive-type:_ one of
      `any anynonnull binary date datetime datetimezone duration function`
-      `list logical none null number record table text type`
+      `list logical none null number record table text time type`
_record-type:_
      `[` _open-record-marker_ `]`
      `[` _field-specification-listopt_ `]`
From 6edf9fa69564356cb7ade0bbc0b65a043f1bbaeb Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 19 Aug 2022 17:35:14 -0400 Subject: [PATCH 059/934] Allowing table's row-type field list to be empty --- query-languages/m/m-spec-consolidated-grammar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 8e0d4d4de..77920e83d 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -552,7 +552,7 @@ parameter-specification:
table-type:_
      `table` _row-type
row-type:_
-      `[` _field-specification-list_ `]`
+      `[` _field-specification-list_opt `]`
_nullable-type:_
      `nullable` _type_ From 2a8a04e2981d0ee37fcebfb2c59135b807e084a8 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 19 Aug 2022 15:34:16 -0700 Subject: [PATCH 060/934] Revisions. --- query-languages/dax/dax-queries.md | 2 +- query-languages/dax/measure-statement-dax.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 998868983..96d519dc6 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -155,7 +155,7 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit - At least one definition is required in a DEFINE statement. -- Measure definitions for a query override model measures of the same name but are only used within the query. They will not effect the model measure. +- Measure definitions for a query override model measures of the same name but are only used within the query. They will not affect the model measure. - The expression for a measure definition can be used with any other expression in the same query. diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index 19a062e7e..38eb2dc0b 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -20,7 +20,7 @@ Introduces a measure definition in a DEFINE statement of a [DAX query](dax-queri ```dax [DEFINE ( - (MEASURE
[] = ) + MEASURE
[] = ) + ] @@ -37,7 +37,7 @@ Introduces a measure definition in a DEFINE statement of a [DAX query](dax-queri ## Remarks -- Measure definitions for a query override model measures of the same name for the duration of the query. They will not effect the model measure. +- Measure definitions for a query override model measures of the same name for the duration of the query. They will not affect the model measure. - The expression for a measure definition can be used with any other expression in the same query. From bd8cdce40931bed257b0796b655c3066065ec6a2 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 22 Aug 2022 12:15:54 -0700 Subject: [PATCH 061/934] Revisions. --- query-languages/dax/dax-queries.md | 8 +++----- query-languages/dax/measure-statement-dax.md | 8 ++++++-- query-languages/dax/orderby-statement-dax.md | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 96d519dc6..3022d42cb 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -12,15 +12,13 @@ recommendations: false --- # DAX queries -With DAX queries, you can query and return data defined by a table expression. Reporting clients like Power BI and Excel construct DAX queries whenever a field is placed on a report surface, or when a filter is applied. - -You can can also create and run your own DAX queries in [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org). DAX queries return results as a table right within the tool, allowing you to quickly create and test the performance of your DAX formulas. +Reporting clients like Power BI and Excel execute DAX queries whenever a field is placed on a report or when a filter is applied. By using [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), you can create and run your own DAX queries. DAX queries return results as a table right within the tool, allowing you to quickly create and test the performance of your DAX formulas. Before learning about queries, it's important you have a solid understanding of DAX basics. If you haven't already, be sure to checkout [DAX overview](dax-overview.md). ## Keywords -DAX queries have a simple syntax comprised of just one required keyword, EVALUATE, and several optional keywords; ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, and COLUMN. Each keyword defines a statement used for the duration of the query. +DAX queries have a simple syntax comprised of just one required keyword, EVALUATE, and several optional keywords: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, and COLUMN. Each keyword defines a statement used for the duration of the query. ### EVALUATE (Required) @@ -206,7 +204,7 @@ Reference XMLA parameters by prefixing the name of the parameter with an `@` cha ## See also +[DAX statements](statements-dax.md) [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) [TREATAS](treatas-function.md) -[VAR](var-dax.md) [FILTER](filter-function-dax.md) diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index 38eb2dc0b..a56c08000 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -27,7 +27,7 @@ Introduces a measure definition in a DEFINE statement of a [DAX query](dax-queri (EVALUATE
) + ``` -## Parameters +### Parameters |Term |Definition | |---------|---------| @@ -35,11 +35,15 @@ Introduces a measure definition in a DEFINE statement of a [DAX query](dax-queri | measure name | The name of the measure. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query. | | scalar expression | A DAX expression that returns a scalar value. | +## Return value + +The calculated result of the measure expression. + ## Remarks - Measure definitions for a query override model measures of the same name for the duration of the query. They will not affect the model measure. -- The expression for a measure definition can be used with any other expression in the same query. +- The measure expression can be used with any other expression in the same query. - To learn more about how MEASURE statements are used, see [DAX queries](dax-queries.md). diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index f31be8ae6..ef3b3bd7d 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -31,11 +31,11 @@ Introduces a statement that defines sort order of query results returned by an E ## Return value -- The result of an EVALUATE statement in ascending (ASC) or descending (DESC) order. +The result of an EVALUATE statement in ascending (ASC) or descending (DESC) order. ## Remarks -- To learn more about how ORDER BY statements are used, see [DAX queries](dax-queries.md). +To learn more about how ORDER BY statements are used, see [DAX queries](dax-queries.md). ## See also From 09b3a3e9182be5ea90b7551e0d8ad9c9954e4fa0 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 23 Aug 2022 11:26:23 -0700 Subject: [PATCH 062/934] Adding DAX USERCULTURE --- .../dax/information-functions-dax.md | 3 +- query-languages/dax/toc.yml | 2 + .../dax/userculture-function-dax.md | 57 +++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 query-languages/dax/userculture-function-dax.md diff --git a/query-languages/dax/information-functions-dax.md b/query-languages/dax/information-functions-dax.md index 38a1a22d0..0a9b9e4da 100644 --- a/query-languages/dax/information-functions-dax.md +++ b/query-languages/dax/information-functions-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: Information functions" title: "Information functions (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 09/01/2020 +ms.date: 08/23/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -45,6 +45,7 @@ DAX information functions look at the cell or row that is provided as an argumen |[SELECTEDMEASURE](selectedmeasure-function-dax.md) | Used by expressions for calculation items to reference the measure that is in context. | |[SELECTEDMEASUREFORMATSTRING](selectedmeasureformatstring-function-dax.md) | Used by expressions for calculation items to retrieve the format string of the measure that is in context. | |[SELECTEDMEASURENAME](selectedmeasurename-function-dax.md) | Used by expressions for calculation items to determine the measure that is in context by name. | +|[USERCULTURE](userculture-function-dax.md) |Returns the locale for the current user. | |[USERNAME](username-function-dax.md) | Returns the domain name and username from the credentials given to the system at connection time. | |[USEROBJECTID](userobjectid-function-dax.md) | Returns the current user's Object ID or SID. | |[USERPRINCIPALNAME](userprincipalname-function-dax.md) | Returns the user principal name. | diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 84fbc07ac..a121059a8 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -333,6 +333,8 @@ href: selectedmeasureformatstring-function-dax.md - name: SELECTEDMEASURENAME href: selectedmeasurename-function-dax.md + - name: USERCULTURE + href: userculture-function-dax.md - name: USERNAME href: username-function-dax.md - name: USEROBJECTID diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md new file mode 100644 index 000000000..2a94dc861 --- /dev/null +++ b/query-languages/dax/userculture-function-dax.md @@ -0,0 +1,57 @@ +--- +description: "Learn more about: USERCULTURE" +title: "USERCULTURE function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 08/23/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# USERCULTURE + +Returns the locale \(language code-country code) for the current user, determined by operating system or browser settings. + +**Note:** This function is currently supported in Power BI Desktop, Power BI Premium per capacity, Power BI Premium per user, and Power BI Embedded only. + +## Syntax + +```dax +USERCULTURE() +``` + +### Parameters + +This expression has no parameters. + +## Return value + +Locale as a string. + +## Remarks + +- In Power BI service, locale is determined by **Settings** > **Language** > **Language Settings**. By default, locale is determined by the user browser settings. + +- In Power BI Desktop, locale is determined by **File** > **Options and settings** > **Options** > **Regional Settings** > **Application language**. By default, locale is determined by the computer operating system language settings. + +- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] + +## Example + +The following DAX query, + +```dax +EVALUATE +{ + USERCULTURE() +} +``` + +Returns, + +|Value | +|---------| +|en-US | From f1f1cd223aa1490a6504d5b69f91ec25bdcc42ef Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 25 Aug 2022 13:25:00 -0700 Subject: [PATCH 063/934] Changes to remarks section. --- query-languages/dax/userculture-function-dax.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index 2a94dc861..b9f2db278 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -15,7 +15,7 @@ recommendations: false Returns the locale \(language code-country code) for the current user, determined by operating system or browser settings. -**Note:** This function is currently supported in Power BI Desktop, Power BI Premium per capacity, Power BI Premium per user, and Power BI Embedded only. +**Note:** This function is currently supported in Power BI Premium per capacity, Power BI Premium per user, and Power BI Embedded only. ## Syntax @@ -33,11 +33,9 @@ Locale as a string. ## Remarks -- In Power BI service, locale is determined by **Settings** > **Language** > **Language Settings**. By default, locale is determined by the user browser settings. +- In the Power BI service, locale is determined by **Settings** > **Language** > **Language Settings**. The default is locale is determined by the user's browser language setting. -- In Power BI Desktop, locale is determined by **File** > **Options and settings** > **Options** > **Regional Settings** > **Application language**. By default, locale is determined by the computer operating system language settings. - -- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] +- When used in calculated table and calculated column expressions, the result may differ depending on whether the table is in DirectQuery or Import mode. When in DirectQuery mode, the result is determined by the language (locale) specified in Language Settings in the Power BI service. The default in Language Settings specifies locale is determined by the user's browser language setting, which means the same calculated table or column can return different results depending on the browser language settings for each user. When in Import mode, the result is statically determined during refresh and will not vary at query time. For managed refreshes, such as scheduled or interactive, locale is not based on the user’s browser language setting but instead uses an invariant locale. The invariant locale, however, can be overridden by using the XMLA endpoint to specify a custom locale. ## Example From ef7f00337d3e1e3822a27ad4dc61c6cc7d7739a5 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 25 Aug 2022 13:36:59 -0700 Subject: [PATCH 064/934] Add See Also. --- query-languages/dax/userculture-function-dax.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index b9f2db278..2a7a99e28 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -53,3 +53,9 @@ Returns, |Value | |---------| |en-US | + +## See also + +[USERNAME](username-function-dax.md) +[USERPRINCIPALNAME](userprincipalname-function-dax.md) +[USEROBJECTID](userobjectid-function-dax.md) From d445e01d523b2fd45f0271234af2c0d950457f80 Mon Sep 17 00:00:00 2001 From: MikeBreenMSFT <81197746+MikeBreenMSFT@users.noreply.github.com> Date: Thu, 25 Aug 2022 14:48:53 -0700 Subject: [PATCH 065/934] Update keepfilters-function-dax.md --- query-languages/dax/keepfilters-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/keepfilters-function-dax.md b/query-languages/dax/keepfilters-function-dax.md index 5960989a4..7b3352685 100644 --- a/query-languages/dax/keepfilters-function-dax.md +++ b/query-languages/dax/keepfilters-function-dax.md @@ -35,7 +35,7 @@ A table of values. - You use KEEPFILTERS within the context CALCULATE and CALCULATETABLE functions, to override the standard behavior of those functions. -- By default, filter arguments s in functions such as CALCULATE are used as the context for evaluating the expression, and as such filter arguments for CALCULATE replace all existing filters over the same columns. The new context effected by the filter argument for CALCULATE affects only existing filters on columns mentioned as part of the filter argument. Filters on columns other than those mentioned in the arguments of CALCULATE or other related functions remain in effect and unaltered. +- By default, filter arguments in functions such as CALCULATE are used as the context for evaluating the expression, and as such filter arguments for CALCULATE replace all existing filters over the same columns. The new context effected by the filter argument for CALCULATE affects only existing filters on columns mentioned as part of the filter argument. Filters on columns other than those mentioned in the arguments of CALCULATE or other related functions remain in effect and unaltered. - The KEEPFILTERS function allows you to modify this behavior. When you use KEEPFILTERS, any existing filters in the current context are compared with the columns in the filter arguments, and the intersection of those arguments is used as the context for evaluating the expression. The net effect over any one column is that both sets of arguments apply: both the filter arguments used in CALCULATE and the filters in the arguments of the KEEPFILTER function. In other words, whereas CALCULATE filters replace the current context, KEEPFILTERS adds filters to the current context. From b3235eed9a90e04ad4f8d86e4bd91c1570c93a5a Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 29 Aug 2022 18:49:35 -0700 Subject: [PATCH 066/934] Update table-insertrows.md --- query-languages/m/table-insertrows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-insertrows.md b/query-languages/m/table-insertrows.md index 8400679a6..404e39d23 100644 --- a/query-languages/m/table-insertrows.md +++ b/query-languages/m/table-insertrows.md @@ -13,7 +13,7 @@ Table.InsertRows(table as table, offset as number, rows as ## About -Returns a table with the list of rows, `rows`, inserted into the `table` at the given position, `offset`. Each column in the row to insert much match the column types of the table. +Returns a table with the list of rows, `rows`, inserted into the `table` at the given position, `offset`. Each column in the row to insert must match the column types of the table. ## Example 1 From d8f43a29a149e5d0967d6bfae3f369f535f9b301 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 30 Aug 2022 12:16:52 -0700 Subject: [PATCH 067/934] Revisions. --- query-languages/dax/dax-queries.md | 12 +++++------- query-languages/dax/define-statement-dax.md | 6 ++---- query-languages/dax/orderby-statement-dax.md | 2 +- query-languages/dax/startat-statement-dax.md | 2 +- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 3022d42cb..af688cb80 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -55,7 +55,7 @@ The optional **ORDER BY** keyword defines one or more expressions used to sort q ```dax EVALUATE
-[ORDER BY { [{ASC | DESC}]}[, …] +[ORDER BY { [{ASC | DESC}]}[, …]] ``` #### ORDER BY Parameters @@ -89,7 +89,7 @@ The optional **START AT** keyword is used inside an **ORDER BY** clause. It defi ```dax EVALUATE
[ORDER BY { [{ASC | DESC}]}[, …] -[START AT {|} [, …]]] +[START AT {|} [, …]]] ``` #### START AT Parameters @@ -130,7 +130,7 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit (MEASURE
[] = ) | (VAR =
) | (TABLE
=
) | - (COLUMN
[column name] = ) | + (COLUMN
[] = ) | ) + ] @@ -143,9 +143,9 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit |--------|--------------| |Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | |name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| -|expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| +|expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If there is a need to convert a scalar expression into a table expression, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| -[1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query, they may produce inconsistent results and are not recommended. +[1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query without syntax error, they may produce runtime errors and are not recommended. #### DEFINE Remarks @@ -155,8 +155,6 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit - Measure definitions for a query override model measures of the same name but are only used within the query. They will not affect the model measure. -- The expression for a measure definition can be used with any other expression in the same query. - - VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). #### DEFINE Example diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 9ddf08648..b3a7135d6 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -23,7 +23,7 @@ Introduces a statement with one or more entity definitions that can be applied t (MEASURE
[] = ) | (VAR =
) | (TABLE
=
) | - (COLUMN
[column name] = ) | + (COLUMN
[] = ) | ) + ] @@ -38,7 +38,7 @@ Introduces a statement with one or more entity definitions that can be applied t |name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| |expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| -[1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. User defined TABLE and COLUMN definitions may return inconsistent results and are not recommended. +[1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query without syntax error, they may produce runtime errors and are not recommended. ## Remarks @@ -48,8 +48,6 @@ Introduces a statement with one or more entity definitions that can be applied t - Measure definitions for a query override model measures of the same name. -- The expression for a measure definition can be used with any other expression in the same query. - - VAR names have unique restrictions. To learn more, see [VAR - Parameters](var-dax.md#parameters). - To learn more about how a DEFINE statement is used, see [DAX queries](dax-queries.md). diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index ef3b3bd7d..a0c15d28e 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -18,7 +18,7 @@ Introduces a statement that defines sort order of query results returned by an E ## Syntax ```dax -[ORDER BY { [{ASC | DESC}]}[, …] +[ORDER BY { [{ASC | DESC}]}[, …]] ``` ### Parameters diff --git a/query-languages/dax/startat-statement-dax.md b/query-languages/dax/startat-statement-dax.md index d536bddd6..fee060012 100644 --- a/query-languages/dax/startat-statement-dax.md +++ b/query-languages/dax/startat-statement-dax.md @@ -18,7 +18,7 @@ Introduces a statement that defines the starting value at which the query result ## Syntax ```dax -[START AT {|} [, …]]] +[START AT {|} [, …]] ``` ## Parameters From 622ad8d484b03f32e09b2dbd2e69dbbd129e38c4 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 30 Aug 2022 12:34:56 -0700 Subject: [PATCH 068/934] Revision --- query-languages/dax/define-statement-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index b3a7135d6..7f2fe8666 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -36,7 +36,7 @@ Introduces a statement with one or more entity definitions that can be applied t |--------|--------------| |Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | |name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| -|expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If a scalar value is required, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| +|expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If there is a need to convert a scalar expression into a table expression, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| [1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query without syntax error, they may produce runtime errors and are not recommended. From 44cf88599d0a512cb28dad9f98f3df9c9ac6b2dc Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 31 Aug 2022 09:31:43 -0700 Subject: [PATCH 069/934] Added example. --- .../dax/userculture-function-dax.md | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index 2a7a99e28..ad153b5f0 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -1,6 +1,6 @@ --- -description: "Learn more about: USERCULTURE" -title: "USERCULTURE function (DAX) | Microsoft Docs" +description: "Learn more about: :::no-loc text="USERCULTURE":::" +title: ":::no-loc text="USERCULTURE"::: function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax ms.date: 08/23/2022 @@ -13,7 +13,7 @@ recommendations: false --- # USERCULTURE -Returns the locale \(language code-country code) for the current user, determined by operating system or browser settings. +Returns the locale \(language code-country code) for the current user, determined by the operating system, browser settings, or Power BI service. **Note:** This function is currently supported in Power BI Premium per capacity, Power BI Premium per user, and Power BI Embedded only. @@ -33,29 +33,36 @@ Locale as a string. ## Remarks -- In the Power BI service, locale is determined by **Settings** > **Language** > **Language Settings**. The default is locale is determined by the user's browser language setting. +- In the Power BI service, locale is determined by **Settings** > **Language** > **Language Settings**. The default is determined by the user's browser language setting. - When used in calculated table and calculated column expressions, the result may differ depending on whether the table is in DirectQuery or Import mode. When in DirectQuery mode, the result is determined by the language (locale) specified in Language Settings in the Power BI service. The default in Language Settings specifies locale is determined by the user's browser language setting, which means the same calculated table or column can return different results depending on the browser language settings for each user. When in Import mode, the result is statically determined during refresh and will not vary at query time. For managed refreshes, such as scheduled or interactive, locale is not based on the user’s browser language setting but instead uses an invariant locale. The invariant locale, however, can be overridden by using the XMLA endpoint to specify a custom locale. ## Example -The following DAX query, +For the following expression, ```dax -EVALUATE -{ - USERCULTURE() -} +FORMAT(TODAY(), “dddd”, USERCULTURE()) ``` -Returns, +Depending on the language setting for the current user, :::no-loc text="USERCULTURE"::: returns the current day. For example: -|Value | -|---------| -|en-US | +|Locale | Formatted weekday | +|---------|---------| +|de-DE | :::no-loc text="Dienstag":::| +|en-US | :::no-loc text="Tuesday":::| +|es-ES_tradnl | :::no-loc text="martes":::| +|eu-ES | :::no-loc text="asteartea":::| +|it-IT | :::no-loc text="martedì":::| +|nl-NL | :::no-loc text="dinsdag":::| +|pl-PL | :::no-loc text="wtorek":::| +|ro-RO | :::no-loc text="marți":::| +|ru-RU | :::no-loc text="вторник":::| +|uk-UA | :::no-loc text="вівторок":::| ## See also +[Expression-based titles in Power BI](/power-bi/create-reports/desktop-conditional-format-visual-titles) [USERNAME](username-function-dax.md) [USERPRINCIPALNAME](userprincipalname-function-dax.md) [USEROBJECTID](userobjectid-function-dax.md) From 2f2ba3afbafe57fd9dcd0689de91fc184e02dff5 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 31 Aug 2022 10:15:40 -0700 Subject: [PATCH 070/934] Revisions. --- query-languages/dax/userculture-function-dax.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index ad153b5f0..20cab65b2 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -1,9 +1,9 @@ --- -description: "Learn more about: :::no-loc text="USERCULTURE":::" -title: ":::no-loc text="USERCULTURE"::: function (DAX) | Microsoft Docs" +description: "Learn more about: USERCULTURE" +title: "USERCULTURE function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 08/23/2022 +ms.date: 08/31/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -45,7 +45,7 @@ For the following expression, FORMAT(TODAY(), “dddd”, USERCULTURE()) ``` -Depending on the language setting for the current user, :::no-loc text="USERCULTURE"::: returns the current day. For example: +Depending on the language setting for the current user, :::no-loc text="USERCULTURE"::: returns the current day, for example: |Locale | Formatted weekday | |---------|---------| From 6107116e770db7e1f80d28444d05e02ec15d8db8 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 31 Aug 2022 14:52:31 -0700 Subject: [PATCH 071/934] Added September updates to the Power Query M reference --- query-languages/m/saphana-database.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index 29f4427fd..c8bcbab57 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: SapHana.Database" title: "SapHana.Database" -ms.date: 4/16/2018 +ms.date: 8/31/2022 --- # SapHana.Database @@ -12,7 +12,10 @@ SapHana.Database(**server** as text, optional **options** as nullable record) as ## About -Returns a table of multidimensional packages from the SAP HANA database `server`. An optional record parameter, `options`, may be specified to control the following options: -* `Query` : A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `Distribution` : A SapHanaDistribution that sets the value of the "Distribution" property in the connection string. Statement routing is the method of evaluating the correct server node of a distributed system before statement execution. The default value is SapHanaDistribution.All. - + +Returns a table of multidimensional packages from the SAP HANA database `server`. An optional record parameter, `options`, may be specified to control the following options: + +* `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. +* `Distribution`: A [SapHanaDistribution](saphanadistribution-type.md) that sets the value of the "Distribution" property in the connection string. Statement routing is the method of evaluating the correct server node of a distributed system before statement execution. The default value is `SapHanaDistribution.All`. +* `Implementation`: Specifies the implementation of the SAP HANA connector to use. +* `EnableColumnBinding`: When set to `true`, the connector will attempt to bind all columns. From 44913f81f24688dd64a5ac3e7c7f75b31c5deed6 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 1 Sep 2022 10:21:11 -0700 Subject: [PATCH 072/934] Fix double quotes in example expression. --- query-languages/dax/userculture-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index 20cab65b2..1648d01e8 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -42,7 +42,7 @@ Locale as a string. For the following expression, ```dax -FORMAT(TODAY(), “dddd”, USERCULTURE()) +FORMAT(TODAY(), "dddd", USERCULTURE()) ``` Depending on the language setting for the current user, :::no-loc text="USERCULTURE"::: returns the current day, for example: From 7203d5a4892022f96b67b40600906da5dfacdfd6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 1 Sep 2022 13:10:02 -0700 Subject: [PATCH 073/934] Update SapHana.Database EnableColumnBinding description --- query-languages/m/saphana-database.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index c8bcbab57..9782cb185 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: SapHana.Database" title: "SapHana.Database" -ms.date: 8/31/2022 +ms.date: 9/1/2022 --- # SapHana.Database @@ -18,4 +18,4 @@ Returns a table of multidimensional packages from the SAP HANA database `server` * `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. * `Distribution`: A [SapHanaDistribution](saphanadistribution-type.md) that sets the value of the "Distribution" property in the connection string. Statement routing is the method of evaluating the correct server node of a distributed system before statement execution. The default value is `SapHanaDistribution.All`. * `Implementation`: Specifies the implementation of the SAP HANA connector to use. -* `EnableColumnBinding`: When set to `true`, the connector will attempt to bind all columns. +* `EnableColumnBinding`: Binds variables to the columns of a SAP HANA result set when fetching data. May potentially improve performance at the cost of slightly higher memory utilization. The default value is false. From 6b935c04c7bc011d2f284a9823a1264816d8ec94 Mon Sep 17 00:00:00 2001 From: Alex Buck Date: Fri, 2 Sep 2022 23:20:37 -0400 Subject: [PATCH 074/934] [BULK UPDATE] DocuTune - Fix build validation issues: docs-link-absolute --- query-languages/dax/dax-overview.md | 2 +- query-languages/m/power-query-m-function-reference.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index a24911232..f98e5c06d 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -484,7 +484,7 @@ When learning DAX, it's best to use the application you'll be using to create yo [Videos](dax-learn-videos.md) -[Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) path in Microsoft Learn. +[Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) path. The [Definitive Guide to DAX](https://www.sqlbi.com/books/the-definitive-guide-to-dax-2nd-edition/) by Alberto Ferrari and Marco Russo (Microsoft Press). Now in its second edition, this extensive guide provides basics to innovative high-performance techniques for beginning data modelers and BI professionals. diff --git a/query-languages/m/power-query-m-function-reference.md b/query-languages/m/power-query-m-function-reference.md index 7d680f477..9a33fc708 100644 --- a/query-languages/m/power-query-m-function-reference.md +++ b/query-languages/m/power-query-m-function-reference.md @@ -5,7 +5,7 @@ ms.date: 7/31/2019 --- # Power Query M function reference -The Power Query M function reference includes articles for each of the over 700 functions. The reference articles you see here on docs.microsoft.com are auto-generated from in-product help. To learn more about functions and how they work in an expression, see [Understanding Power Query M functions](understanding-power-query-m-functions.md). +The Power Query M function reference includes articles for each of the over 700 functions. These reference articles are auto-generated from in-product help. To learn more about functions and how they work in an expression, see [Understanding Power Query M functions](understanding-power-query-m-functions.md). ## Functions by category From 463d061958a16d62f463ce0ec6792f6333331014 Mon Sep 17 00:00:00 2001 From: William Assaf MSFT Date: Tue, 6 Sep 2022 20:38:52 -0700 Subject: [PATCH 075/934] 20220906 fix typos in code samples removing extra ` --- query-languages/m/date-dayofweek.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/date-dayofweek.md b/query-languages/m/date-dayofweek.md index 172d889e9..775250066 100644 --- a/query-languages/m/date-dayofweek.md +++ b/query-languages/m/date-dayofweek.md @@ -25,7 +25,7 @@ Get the day of the week represented by Monday, February 21st, 2011, treating Sun **Usage** ```powerquery-m -Date.DayOfWeek(#date(2011, 02, 21), Day.Sunday)` +Date.DayOfWeek(#date(2011, 02, 21), Day.Sunday) ``` **Output** From 13a23456eea5984af590a44eb26a3640579348e9 Mon Sep 17 00:00:00 2001 From: William Assaf MSFT Date: Tue, 6 Sep 2022 20:40:21 -0700 Subject: [PATCH 076/934] Update time-second.md --- query-languages/m/time-second.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/time-second.md b/query-languages/m/time-second.md index e352e7419..4fa41f6e5 100644 --- a/query-languages/m/time-second.md +++ b/query-languages/m/time-second.md @@ -8,7 +8,7 @@ ms.date: 3/14/2022 ## Syntax
-Time.Second(dateTime as any) as nullable number`
+Time.Second(dateTime as any) as nullable number
 
## About From a24be9423fd04e7dd8427e50be7efdc18a63250c Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Wed, 7 Sep 2022 14:19:32 -0700 Subject: [PATCH 077/934] Update docfx.json --- query-languages/m/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 5bb539ecc..84de207e4 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -39,7 +39,7 @@ "extendBreadcrumb": true, "titleSuffix": "PowerQuery M", "ms.service": "powerquery", - "ms.topic": "reference", + "ms.topic": "article", "ms.reviewer": "ehvonleh", "author": "dougklopfenstein", "ms.author": "dougklo", From 613d4f10a5b55f7345b41fbb44551cff7fbfc289 Mon Sep 17 00:00:00 2001 From: Ed Hansberry <45298358+edhans@users.noreply.github.com> Date: Thu, 8 Sep 2022 12:29:58 -0700 Subject: [PATCH 078/934] Update except-function-dax.md Making the definition more explicit - records in first table listed not on the second. Will help the intellisense too since it seems these are shared. The original of "rows in one table not in the other" is unclear which is the one being compared against. --- query-languages/dax/except-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/except-function-dax.md b/query-languages/dax/except-function-dax.md index e56dec9d2..c829f3fe0 100644 --- a/query-languages/dax/except-function-dax.md +++ b/query-languages/dax/except-function-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # EXCEPT -Returns the rows of one table which do not appear in another table. +Returns the rows of the first table in the expression which do not appear in the second table. ## Syntax From 18bc4fd4c6d80e7a9825b09e212fa57d79563e39 Mon Sep 17 00:00:00 2001 From: Alex Buck Date: Tue, 13 Sep 2022 12:17:18 -0400 Subject: [PATCH 079/934] Update dax-overview.md --- query-languages/dax/dax-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index f98e5c06d..8461fb615 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -484,7 +484,7 @@ When learning DAX, it's best to use the application you'll be using to create yo [Videos](dax-learn-videos.md) -[Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) path. +[Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) learning path. The [Definitive Guide to DAX](https://www.sqlbi.com/books/the-definitive-guide-to-dax-2nd-edition/) by Alberto Ferrari and Marco Russo (Microsoft Press). Now in its second edition, this extensive guide provides basics to innovative high-performance techniques for beginning data modelers and BI professionals. From 13c918b3f92564d368b181c280ce377cc8f475e8 Mon Sep 17 00:00:00 2001 From: mattpenner Date: Tue, 13 Sep 2022 11:14:18 -0700 Subject: [PATCH 080/934] Update calendarauto-function-dax.md Fixed incorrect example results on line 52. Using CALENDARAUTO(3) for the min and max dates given, the dates will be between April 1, 2010 and March 31, 2012. Not March 1, 2010 through March 31, 2012. --- query-languages/dax/calendarauto-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/calendarauto-function-dax.md b/query-languages/dax/calendarauto-function-dax.md index 09147048c..129726ab6 100644 --- a/query-languages/dax/calendarauto-function-dax.md +++ b/query-languages/dax/calendarauto-function-dax.md @@ -49,4 +49,4 @@ In this example, the MinDate and MaxDate in the data model are July 1, 2010 and `CALENDARAUTO()` will return all dates between January 1, 2010 and December 31, 2011. -`CALENDARAUTO(3)` will return all dates between March 1, 2010 and March 31, 2012. +`CALENDARAUTO(3)` will return all dates between April 1, 2010 and March 31, 2012. From 19aa097f23d75617959d06075d8a16367e28389a Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 14 Sep 2022 10:05:03 -0400 Subject: [PATCH 081/934] Typo fix --- query-languages/m/m-spec-sections.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index f8a0cce3b..72bb00759 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -22,7 +22,7 @@ section-member:
_section-member-name:
      identifier_ -In M, a section is an organizational concept that allows related expressions to be named and grouped within a document. Each section has a _section-name_, which identifies the section and qualifies the names of the _section-members_ declared within the section. A _sectionmember_ consists of a _member-name_ and an _expression_. Section member expressions may refer to other section members within the same section directly by member name. +In M, a section is an organizational concept that allows related expressions to be named and grouped within a document. Each section has a _section-name_, which identifies the section and qualifies the names of the _section-members_ declared within the section. A _section-member_ consists of a _member-name_ and an _expression_. Section member expressions may refer to other section members within the same section directly by member name. The following example shows a section-document: From ccf26351f0c3c4a8f09307c926b073b065ed4626 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 14 Sep 2022 10:16:41 -0400 Subject: [PATCH 082/934] Clarifying #shared to reflect directly injected global identifiers --- query-languages/m/m-spec-sections.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index f8a0cce3b..ac76c2926 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -134,9 +134,9 @@ The following holds when evaluating `#sections`: ### #shared -The `#shared` intrinsic variable returns a record containing the names and values of all shared section members currently in scope. +The `#shared` intrinsic variable returns the contents of the global environment as a record. (The global environment consists of all shared section members as well as any identifiers directly included in the global environment by the expression evaluator.) This record is keyed by identifier name, with each value being the value of the associated identifier. -The following example shows a document with two shared members and the corresponding record produced by evaluating the #shared intrinsic variable within the context of that document: +The following example shows a document with two shared members and the corresponding record produced by evaluating the `#shared` intrinsic variable within the context of that document: ```powerquery-m section Section1; @@ -155,6 +155,6 @@ shared D = "world"; The following holds when evaluating `#shared`: -* The `#shared` intrinsic variable preserves the evaluation state of all shared member expressions within the document. +* The `#shared` intrinsic variable preserves the evaluation state of the global environment. -* The `#shared` intrinsic variable does not force the evaluation of any unevaluated section members. +* The `#shared` intrinsic variable does not force the evaluation of any unevaluated value. From 215fba2afddda77bd4627c0072de9eef95b5fc86 Mon Sep 17 00:00:00 2001 From: Alex Buck Date: Wed, 14 Sep 2022 22:17:34 -0400 Subject: [PATCH 083/934] [BULK UPDATE] DocuTune - Rebranding links --- CONTRIBUTING.md | 4 ++-- .../dax-avoid-avoid-filter-as-filter-argument.md | 2 +- .../dax/best-practices/dax-avoid-converting-blank.md | 4 ++-- .../dax/best-practices/dax-column-measure-references.md | 4 ++-- query-languages/dax/best-practices/dax-countrows.md | 4 ++-- .../dax/best-practices/dax-divide-function-operator.md | 4 ++-- query-languages/dax/best-practices/dax-error-functions.md | 4 ++-- query-languages/dax/best-practices/dax-selectedvalue.md | 4 ++-- query-languages/dax/best-practices/dax-variables.md | 4 ++-- query-languages/dax/dax-overview.md | 2 +- query-languages/dax/dax-sample-model.md | 4 ++-- query-languages/dax/index.yml | 4 ++-- query-languages/m/index.yml | 2 +- 13 files changed, 23 insertions(+), 23 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5b8de2bb2..fffddfc4b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ Whether you have a GitHub account or not, you can use the thumb up, thumb down i ## Editing in GitHub -Refer to the [Microsoft Docs contributors guide](https://docs.microsoft.com/contribute) to learn more about using GitHub Editor and Git and markdown tools to submit a pull request (PR) for documentation changes. +Refer to the [Microsoft Docs contributors guide](https://learn.microsoft.com/contribute) to learn more about using GitHub Editor and Git and markdown tools to submit a pull request (PR) for documentation changes. ### DAX Reference @@ -28,4 +28,4 @@ If your changes are accepted, your GitHub account ID is shown as a contributor a This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/), or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. \ No newline at end of file +For more information, see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/), or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. diff --git a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md index 932fa3283..67d81012b 100644 --- a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md +++ b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md @@ -81,6 +81,6 @@ Therefore, the FILTER function should only be used when necessary. You can use i ## See also - [Filter functions (DAX)](../filter-function-dax.md) -- Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) +- Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) - Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) diff --git a/query-languages/dax/best-practices/dax-avoid-converting-blank.md b/query-languages/dax/best-practices/dax-avoid-converting-blank.md index 78f0b99c4..183a0bd66 100644 --- a/query-languages/dax/best-practices/dax-avoid-converting-blank.md +++ b/query-languages/dax/best-practices/dax-avoid-converting-blank.md @@ -72,6 +72,6 @@ This design approach is efficient, allowing Power BI to render reports faster. A ## See also -- Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) +- Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) -- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) \ No newline at end of file +- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) diff --git a/query-languages/dax/best-practices/dax-column-measure-references.md b/query-languages/dax/best-practices/dax-column-measure-references.md index 35d763c9f..b76c52b23 100644 --- a/query-languages/dax/best-practices/dax-column-measure-references.md +++ b/query-languages/dax/best-practices/dax-column-measure-references.md @@ -60,6 +60,6 @@ Here's why: ## See also -- Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) +- Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) -- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) \ No newline at end of file +- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) diff --git a/query-languages/dax/best-practices/dax-countrows.md b/query-languages/dax/best-practices/dax-countrows.md index b4d0931ce..54ce99d32 100644 --- a/query-languages/dax/best-practices/dax-countrows.md +++ b/query-languages/dax/best-practices/dax-countrows.md @@ -45,6 +45,6 @@ When it's your intention to count table rows, it's recommended you always use th ## See also -- Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) +- Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) -- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) \ No newline at end of file +- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) diff --git a/query-languages/dax/best-practices/dax-divide-function-operator.md b/query-languages/dax/best-practices/dax-divide-function-operator.md index fea6e5565..0c95a36dc 100644 --- a/query-languages/dax/best-practices/dax-divide-function-operator.md +++ b/query-languages/dax/best-practices/dax-divide-function-operator.md @@ -58,6 +58,6 @@ Carefully consider whether the DIVIDE function should return an alternate value. ## See also -- Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) +- Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) -- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) \ No newline at end of file +- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) diff --git a/query-languages/dax/best-practices/dax-error-functions.md b/query-languages/dax/best-practices/dax-error-functions.md index 43453809d..edd98b8a6 100644 --- a/query-languages/dax/best-practices/dax-error-functions.md +++ b/query-languages/dax/best-practices/dax-error-functions.md @@ -57,6 +57,6 @@ Profit Margin ## See also -- Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) +- Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) -- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) \ No newline at end of file +- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) diff --git a/query-languages/dax/best-practices/dax-selectedvalue.md b/query-languages/dax/best-practices/dax-selectedvalue.md index 13923f3cd..ea44ab6fc 100644 --- a/query-languages/dax/best-practices/dax-selectedvalue.md +++ b/query-languages/dax/best-practices/dax-selectedvalue.md @@ -51,6 +51,6 @@ IF( ## See also -- Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) +- Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) -- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) \ No newline at end of file +- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) diff --git a/query-languages/dax/best-practices/dax-variables.md b/query-languages/dax/best-practices/dax-variables.md index 0ba5f0f24..1d43b2ba3 100644 --- a/query-languages/dax/best-practices/dax-variables.md +++ b/query-languages/dax/best-practices/dax-variables.md @@ -103,5 +103,5 @@ RETURN ## See also - [VAR](../var-dax.md) DAX article -- Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) -- Questions? [Try asking the Power BI Community](https://community.powerbi.com/) \ No newline at end of file +- Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) +- Questions? [Try asking the Power BI Community](https://community.powerbi.com/) diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index 8461fb615..4b775c2f2 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -484,7 +484,7 @@ When learning DAX, it's best to use the application you'll be using to create yo [Videos](dax-learn-videos.md) -[Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) learning path. +[Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) learning path. The [Definitive Guide to DAX](https://www.sqlbi.com/books/the-definitive-guide-to-dax-2nd-edition/) by Alberto Ferrari and Marco Russo (Microsoft Press). Now in its second edition, this extensive guide provides basics to innovative high-performance techniques for beginning data modelers and BI professionals. diff --git a/query-languages/dax/dax-sample-model.md b/query-languages/dax/dax-sample-model.md index 0020b877b..ec39ae941 100644 --- a/query-languages/dax/dax-sample-model.md +++ b/query-languages/dax/dax-sample-model.md @@ -45,6 +45,6 @@ Download the Power BI Desktop sample model file [here](https://aka.ms/dax-docs-s ## See also -- Learning path: [Use DAX in Power BI Desktop](/learn/paths/dax-power-bi/) +- Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) -- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) \ No newline at end of file +- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) diff --git a/query-languages/dax/index.yml b/query-languages/dax/index.yml index 257e396c6..962faf2a2 100644 --- a/query-languages/dax/index.yml +++ b/query-languages/dax/index.yml @@ -46,7 +46,7 @@ landingContent: - linkListType: learn links: - text: Use DAX in Power BI Desktop - url: https://docs.microsoft.com/learn/paths/dax-power-bi/ + url: https://learn.microsoft.com/training/paths/dax-power-bi/ # Card @@ -61,4 +61,4 @@ landingContent: - text: DAX queries url: dax-queries.md - text: DAX syntax - url: dax-syntax-reference.md \ No newline at end of file + url: dax-syntax-reference.md diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index 8894d4214..720491fd1 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -30,7 +30,7 @@ landingContent: - linkListType: learn links: - text: Power Query documentation - url: https://docs.microsoft.com/en-us/power-query + url: https://learn.microsoft.com/power-query # Card - title: Functions From 2a54611717088d0e816d7d02e9082e312ae4e274 Mon Sep 17 00:00:00 2001 From: Alex Buck Date: Wed, 14 Sep 2022 22:21:19 -0400 Subject: [PATCH 084/934] Update index.yml --- query-languages/dax/index.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/index.yml b/query-languages/dax/index.yml index 962faf2a2..371b4c146 100644 --- a/query-languages/dax/index.yml +++ b/query-languages/dax/index.yml @@ -46,7 +46,7 @@ landingContent: - linkListType: learn links: - text: Use DAX in Power BI Desktop - url: https://learn.microsoft.com/training/paths/dax-power-bi/ + url: /training/paths/dax-power-bi/ # Card From 5eacb8947deffe0a3df94c0c62dbd2cec6b5e615 Mon Sep 17 00:00:00 2001 From: Alex Buck Date: Wed, 14 Sep 2022 22:21:49 -0400 Subject: [PATCH 085/934] Update index.yml --- query-languages/m/index.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index 720491fd1..aef4cb886 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -30,7 +30,7 @@ landingContent: - linkListType: learn links: - text: Power Query documentation - url: https://learn.microsoft.com/power-query + url: /power-query # Card - title: Functions From 4af9f69f644ccfa9e4311692d153f51b520283e3 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 15 Sep 2022 08:46:35 -0700 Subject: [PATCH 086/934] Added October updates to the Power Query M reference --- query-languages/m/csv-document.md | 4 ++-- query-languages/m/table-distinct.md | 6 ++++-- query-languages/m/table-hascolumns.md | 4 ++-- query-languages/m/table-insertrows.md | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index b3ff25c34..b0d750c84 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Csv.Document" title: "Csv.Document" -ms.date: 4/13/2022 +ms.date: 9/15/2022 --- # Csv.Document @@ -16,7 +16,7 @@ Csv.Document(source as any, optional columns as any, optional d Returns the contents of the CSV document as a table. * `columns` can be null, the number of columns, a list of column names, a table type, or an options record. -* `delimiter` can be a single character, or a list of characters. Default: `","`. +* `delimiter` can be a single character, a list of characters, or the value `""`, which indicates rows should be split by consecutive whitespace characters. Default: `","`. * Refer to [ExtraValues.Type](extravalues-type.md) for the supported values of `extraValues`. * `encoding` specifies the text encoding type. diff --git a/query-languages/m/table-distinct.md b/query-languages/m/table-distinct.md index 6f85d0931..0b2a1c680 100644 --- a/query-languages/m/table-distinct.md +++ b/query-languages/m/table-distinct.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.Distinct" title: "Table.Distinct" -ms.date: 3/10/2022 +ms.date: 9/15/2022 --- # Table.Distinct @@ -13,7 +13,9 @@ Table.Distinct(table as table, optional equationCriteria as any) a ## About -Removes duplicate rows from the table `table`. An optional parameter, `equationCriteria`, specifies which columns of the table are tested for duplication. If `equationCriteria` is not specified, all columns are tested. +Removes duplicate rows from the table. An optional parameter, `equationCriteria`, specifies which columns of the table are tested for duplication. If `equationCriteria` is not specified, all columns are tested. + +Because Power Query sometimes offloads certain operations to backend data sources (known as *folding*), and also sometimes optimizes queries by skipping operations that aren't strictly necessary, in general there's no guarantee which specific duplicate will be preserved. For example, you can't assume that the first row with a unique set of column values will remain, and rows further down in the table will be removed. If you want the duplicate removal to behave predictably, first buffer the table using [Table.Buffer](table-buffer.md). ## Example 1 diff --git a/query-languages/m/table-hascolumns.md b/query-languages/m/table-hascolumns.md index fc3347e12..248963ff0 100644 --- a/query-languages/m/table-hascolumns.md +++ b/query-languages/m/table-hascolumns.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.HasColumns" title: "Table.HasColumns" -ms.date: 3/14/2022 +ms.date: 9/15/2022 --- # Table.HasColumns @@ -13,7 +13,7 @@ Table.HasColumns(table as table, columns as any) as logical ## About -indicates whether the `table` contains the specified column(s), `columns`. Returns `true` if the table contains the column(s), `false` otherwise. +Indicates whether the `table` contains the specified column(s), `columns`. Returns `true` if the table contains the column(s), `false` otherwise. ## Example 1 diff --git a/query-languages/m/table-insertrows.md b/query-languages/m/table-insertrows.md index 404e39d23..25608041b 100644 --- a/query-languages/m/table-insertrows.md +++ b/query-languages/m/table-insertrows.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.InsertRows" title: "Table.InsertRows" -ms.date: 3/10/2022 +ms.date: 9/15/2022 --- # Table.InsertRows From 4b2406e2f1cb9ca51a6c3cfd461885957a95e270 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 15 Sep 2022 09:07:54 -0700 Subject: [PATCH 087/934] Updated table function category article --- query-languages/m/table-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index 206025225..ed2f26bb0 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -91,7 +91,7 @@ These functions create and manipulate table values. |[Table.ColumnsOfType](table-columnsoftype.md)|Returns a list with the names of the columns that match the specified types.| |[Table.DemoteHeaders](table-demoteheaders.md)|Demotes the header row down into the first row of a table.| |[Table.DuplicateColumn](table-duplicatecolumn.md) | Duplicates a column with the specified name. Values and type are copied from the source column.| -|[Table.HasColumns](table-hascolumns.md)|Returns true if a table has the specified column or columns.| +|[Table.HasColumns](table-hascolumns.md)|Indicates whether the table contains the specified column(s).| |[Table.Pivot](table-pivot.md)|Given a table and attribute column containing pivotValues, creates new columns for each of the pivot values and assigns them values from the valueColumn. An optional aggregationFunction can be provided to handle multiple occurrence of the same key value in the attribute column.| |[Table.PrefixColumns](table-prefixcolumns.md)|Returns a table where the columns have all been prefixed with a text value.| |[Table.PromoteHeaders](table-promoteheaders.md)|Promotes the first row of the table into its header or column names.| From b686343b2631d640df848fca35caa38bf2258775 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 20 Sep 2022 14:53:04 -0700 Subject: [PATCH 088/934] Fixed erroneous dates (doc updated but date not changed) --- query-languages/m/combiner-functions.md | 2 +- query-languages/m/expression-functions.md | 2 +- query-languages/m/logical-functions.md | 2 +- .../m/power-query-m-function-reference.md | 15 ++++++--------- query-languages/m/table-column.md | 2 +- 5 files changed, 10 insertions(+), 13 deletions(-) diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index 949e4d222..f26e670c9 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Combiner functions" title: "Combiner functions" -ms.date: 5/16/2020 +ms.date: 5/16/2022 --- # Combiner functions diff --git a/query-languages/m/expression-functions.md b/query-languages/m/expression-functions.md index 0ac56e249..9604924af 100644 --- a/query-languages/m/expression-functions.md +++ b/query-languages/m/expression-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Expression functions" title: "Expression functions" -ms.date: 5/16/2020 +ms.date: 5/16/2022 --- # Expression functions diff --git a/query-languages/m/logical-functions.md b/query-languages/m/logical-functions.md index 15b12180a..2525a71aa 100644 --- a/query-languages/m/logical-functions.md +++ b/query-languages/m/logical-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Logical functions" title: "Logical functions" -ms.date: 5/16/2020 +ms.date: 5/16/2022 --- # Logical functions diff --git a/query-languages/m/power-query-m-function-reference.md b/query-languages/m/power-query-m-function-reference.md index 9a33fc708..1cfe5d0d5 100644 --- a/query-languages/m/power-query-m-function-reference.md +++ b/query-languages/m/power-query-m-function-reference.md @@ -1,18 +1,18 @@ --- description: "Learn more about: Power Query M function reference" title: "Power Query M function reference" -ms.date: 7/31/2019 +ms.date: 9/20/2022 --- # Power Query M function reference -The Power Query M function reference includes articles for each of the over 700 functions. These reference articles are auto-generated from in-product help. To learn more about functions and how they work in an expression, see [Understanding Power Query M functions](understanding-power-query-m-functions.md). +The Power Query M function reference includes articles for each of the over 700 functions. These reference articles are auto-generated from in-product help. To learn more about functions and how they work in an expression, go to [Understanding Power Query M functions](understanding-power-query-m-functions.md). ## Functions by category * [Accessing data functions](accessing-data-functions.md) * [Binary functions](binary-functions.md) * [Combiner functions](combiner-functions.md) -* [Comparer functions](comparer-functions.md) +* [Comparer functions](comparer-functions.md) * [Date functions](date-functions.md) * [DateTime functions](datetime-functions.md) * [DateTimeZone functions](datetimezone-functions.md) @@ -20,19 +20,16 @@ The Power Query M function reference includes articles for each of the over 700 * [Error handling](error-handling.md) * [Expression functions](expression-functions.md) * [Function values](function-values.md) -* [List functions](list-functions.md) +* [List functions](list-functions.md) * [Lines functions](lines-functions.md) * [Logical functions](logical-functions.md) * [Number functions](number-functions.md) * [Record functions](record-functions.md) -* [Replacer functions](replacer-functions.md) -* [Splitter functions](splitter-functions.md) +* [Replacer functions](replacer-functions.md) +* [Splitter functions](splitter-functions.md) * [Table functions](table-functions.md) * [Text functions](text-functions.md) * [Time functions](time-functions.md) * [Type functions](type-functions.md) * [Uri functions](uri-functions.md) * [Value functions](value-functions.md) - - - diff --git a/query-languages/m/table-column.md b/query-languages/m/table-column.md index edc0e1eac..e1a0d1849 100644 --- a/query-languages/m/table-column.md +++ b/query-languages/m/table-column.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.Column" title: "Table.Column" -ms.date: 3/10/2020 +ms.date: 3/10/2022 --- # Table.Column From 5f797614f16af94f2195e7971894dc1f4062c73d Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 22 Sep 2022 16:56:03 -0700 Subject: [PATCH 089/934] Add remark about live connect reports. --- query-languages/dax/userculture-function-dax.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index 1648d01e8..a8cf77f45 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -37,6 +37,12 @@ Locale as a string. - When used in calculated table and calculated column expressions, the result may differ depending on whether the table is in DirectQuery or Import mode. When in DirectQuery mode, the result is determined by the language (locale) specified in Language Settings in the Power BI service. The default in Language Settings specifies locale is determined by the user's browser language setting, which means the same calculated table or column can return different results depending on the browser language settings for each user. When in Import mode, the result is statically determined during refresh and will not vary at query time. For managed refreshes, such as scheduled or interactive, locale is not based on the user’s browser language setting but instead uses an invariant locale. The invariant locale, however, can be overridden by using the XMLA endpoint to specify a custom locale. +- When combined with the Field parameters feature in Power BI, USERCULTURE can be used to reliably translate dynamic visualization titles and captions when used in measure and row-level security (RLS) object expressions within the same model. However, expressions containing USERCULTURE called from outside the model, such as queries and live-connect report measures, should not be relied upon for correctly translated titles and captions. + +- USERCULTURE returns the correct user locale when used in object expressions called from within the model such as measures, row-level security (RLS), and calculation items. However, it may not return the correct user locale when used in expressions from outside the model, such as queries and live-connect report measures. + +- In Live-connect reports, USERCULTURE may not return the correct user locale when called from a report measure expression. + ## Example For the following expression, From 918ca2a20aefc24b644cb07b5db0810bf65bfb9c Mon Sep 17 00:00:00 2001 From: Alex Buck Date: Sat, 24 Sep 2022 00:20:55 -0400 Subject: [PATCH 090/934] [BULK UPDATE] DocuTune - Rebranding --- CONTRIBUTING.md | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fffddfc4b..fae7d81fb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ Whether you have a GitHub account or not, you can use the thumb up, thumb down i ## Editing in GitHub -Refer to the [Microsoft Docs contributors guide](https://learn.microsoft.com/contribute) to learn more about using GitHub Editor and Git and markdown tools to submit a pull request (PR) for documentation changes. +Refer to the [Microsoft Docs contributor guide](https://learn.microsoft.com/contribute) to learn more about using GitHub Editor and Git and markdown tools to submit a pull request (PR) for documentation changes. ### DAX Reference diff --git a/README.md b/README.md index c2176078c..0dc52b7e9 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Microsoft Data Analysis Expressions (DAX) Power Query M language references README -Welcome to the DAX and Power Query M language references. Please review this README to learn more about how you can contribute to documentation on the open-source Microsoft Docs platform. +Welcome to the DAX and Power Query M language references. Please review this README to learn more about how you can contribute to documentation on the open-source Microsoft Learn platform. ## Contribute @@ -13,4 +13,4 @@ For more information, see the [Code of Conduct FAQ](https://opensource.microsoft ## License -Refer to [LICENSE](LICENSE), [LICENSE-CODE](LICENSE-CODE) and [ThirdPartyNotices](ThirdPartyNotices.md) for all Licensing information. \ No newline at end of file +Refer to [LICENSE](LICENSE), [LICENSE-CODE](LICENSE-CODE) and [ThirdPartyNotices](ThirdPartyNotices.md) for all Licensing information. From 62a109659fe82b99a7930f049d68515e04476963 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 10 Oct 2022 09:13:43 -0700 Subject: [PATCH 091/934] Updated formatting in older articles --- query-languages/m/access-database.md | 19 +- ...ccesscontrolentry-conditiontoidentities.md | 10 +- query-languages/m/accesscontrolkind-type.md | 6 +- query-languages/m/accessing-data-functions.md | 84 ++-- query-languages/m/activedirectory-domains.md | 6 +- query-languages/m/adobeanalytics-cubes.md | 4 +- query-languages/m/adodotnet-datasource.md | 10 +- query-languages/m/adodotnet-query.md | 11 +- .../m/analysisservices-database.md | 22 +- .../m/analysisservices-databases.md | 16 +- .../m/azurestorage-blobcontents.md | 15 +- query-languages/m/azurestorage-blobs.md | 13 +- query-languages/m/azurestorage-datalake.md | 16 +- .../m/azurestorage-datalakecontents.md | 15 +- query-languages/m/binary-combine.md | 3 +- query-languages/m/binary-decompress.md | 5 +- query-languages/m/binary-from.md | 4 +- query-languages/m/binary-fromlist.md | 2 +- query-languages/m/binary-functions.md | 76 ++-- query-languages/m/binary-infercontenttype.md | 10 +- query-languages/m/binary-length.md | 11 +- query-languages/m/binary-tolist.md | 9 +- query-languages/m/binary-totext.md | 17 +- query-languages/m/binary-view.md | 6 +- query-languages/m/binaryencoding-type.md | 6 +- .../binaryformat-7bitencodedsignedinteger.md | 13 +- ...binaryformat-7bitencodedunsignedinteger.md | 13 +- query-languages/m/binaryformat-binary.md | 12 +- query-languages/m/binaryformat-byte.md | 11 +- query-languages/m/binaryformat-byteorder.md | 11 +- query-languages/m/binaryformat-decimal.md | 11 +- query-languages/m/binaryformat-double.md | 13 +- query-languages/m/binaryformat-length.md | 6 +- query-languages/m/binaryformat-list.md | 4 +- query-languages/m/binaryformat-null.md | 15 +- query-languages/m/binaryformat-record.md | 4 +- .../m/binaryformat-signedinteger16.md | 10 +- .../m/binaryformat-signedinteger32.md | 10 +- .../m/binaryformat-signedinteger64.md | 12 +- query-languages/m/binaryformat-single.md | 10 +- query-languages/m/binaryformat-text.md | 4 +- .../m/binaryformat-unsignedinteger16.md | 14 +- .../m/binaryformat-unsignedinteger32.md | 12 +- .../m/binaryformat-unsignedinteger64.md | 12 +- query-languages/m/binaryoccurrence-type.md | 4 +- query-languages/m/buffermode-type.md | 6 +- query-languages/m/byte-from.md | 8 +- query-languages/m/cdm-contents.md | 4 +- query-languages/m/character-fromnumber.md | 6 +- query-languages/m/character-tonumber.md | 4 +- .../m/combiner-combinetextbydelimiter.md | 4 +- .../m/combiner-combinetextbyeachdelimiter.md | 11 +- .../m/combiner-combinetextbylengths.md | 10 +- .../m/combiner-combinetextbypositions.md | 12 +- .../m/combiner-combinetextbyranges.md | 4 +- query-languages/m/comments.md | 46 +- query-languages/m/comparer-equals.md | 12 +- query-languages/m/comparer-fromculture.md | 4 +- query-languages/m/comparer-ordinal.md | 4 +- query-languages/m/constants.md | 14 +- query-languages/m/csvstyle-type.md | 6 +- .../m/cube-addandexpanddimensioncolumn.md | 3 +- query-languages/m/cube-addmeasurecolumn.md | 3 +- query-languages/m/cube-applyparameter.md | 11 +- query-languages/m/cube-attributememberid.md | 3 +- .../m/cube-attributememberproperty.md | 4 +- .../m/cube-collapseandremovecolumns.md | 3 +- query-languages/m/cube-dimensions.md | 5 +- query-languages/m/cube-measureproperties.md | 7 +- query-languages/m/cube-measureproperty.md | 7 +- query-languages/m/cube-measures.md | 6 +- query-languages/m/cube-parameters.md | 12 +- query-languages/m/cube-properties.md | 7 +- query-languages/m/cube-propertykey.md | 3 +- query-languages/m/cube-transform.md | 4 +- query-languages/m/culture-current.md | 6 +- query-languages/m/currency-from.md | 6 +- query-languages/m/date-adddays.md | 6 +- query-languages/m/date-addmonths.md | 4 +- query-languages/m/date-addquarters.md | 6 +- query-languages/m/date-addweeks.md | 4 +- query-languages/m/date-addyears.md | 4 +- query-languages/m/date-day.md | 4 +- query-languages/m/date-isinnextyear.md | 4 +- query-languages/m/date-torecord.md | 4 +- query-languages/m/datetime-fixedlocalnow.md | 6 +- query-languages/m/datetime-localnow.md | 5 +- .../m/datetimezone-fixedlocalnow.md | 7 +- query-languages/m/datetimezone-fixedutcnow.md | 12 +- query-languages/m/datetimezone-localnow.md | 9 +- query-languages/m/datetimezone-utcnow.md | 4 +- query-languages/m/datetimezone-zonehours.md | 9 +- query-languages/m/datetimezone-zoneminutes.md | 4 +- query-languages/m/db2-database.md | 29 +- query-languages/m/decimal-from.md | 6 +- query-languages/m/diagnostics-activityid.md | 4 +- query-languages/m/diagnostics-trace.md | 15 +- query-languages/m/double-from.md | 6 +- query-languages/m/duration-days.md | 4 +- query-languages/m/duration-torecord.md | 4 +- query-languages/m/duration-totaldays.md | 4 +- query-languages/m/dynamic-values.md | 8 +- query-languages/m/embedded-value.md | 3 +- query-languages/m/enumerations.md | 10 +- query-languages/m/error-record.md | 4 +- query-languages/m/errors.md | 100 ++--- query-languages/m/essbase-cubes.md | 9 +- query-languages/m/evaluation-model.md | 115 +++-- query-languages/m/excel-currentworkbook.md | 10 +- query-languages/m/excel-shapetable.md | 4 +- query-languages/m/excel-workbook.md | 6 +- query-languages/m/exchange-contents.md | 10 +- query-languages/m/expression-constant.md | 7 +- query-languages/m/expression-evaluate.md | 4 +- query-languages/m/expression-identifier.md | 4 +- .../expressions-values-and-let-expression.md | 393 +++++++++--------- query-languages/m/file-contents.md | 6 +- query-languages/m/folder-contents.md | 4 +- query-languages/m/folder-files.md | 6 +- query-languages/m/function-invoke.md | 8 +- query-languages/m/function-invokeafter.md | 10 +- query-languages/m/function-isdatasource.md | 10 +- query-languages/m/function-scalarvector.md | 8 +- .../m/geography-fromwellknowntext.md | 5 +- .../m/geography-towellknowntext.md | 5 +- query-languages/m/geographypoint-from.md | 5 +- .../m/geometry-fromwellknowntext.md | 7 +- query-languages/m/geometry-towellknowntext.md | 5 +- query-languages/m/geometrypoint-from.md | 4 +- query-languages/m/googleanalytics-accounts.md | 3 +- query-languages/m/graph-nodes.md | 5 +- query-languages/m/hdfs-contents.md | 9 +- query-languages/m/hdfs-files.md | 7 +- query-languages/m/hdinsight-containers.md | 7 +- query-languages/m/hdinsight-contents.md | 7 +- query-languages/m/hdinsight-files.md | 5 +- query-languages/m/html-table.md | 4 +- query-languages/m/identity-from.md | 4 +- query-languages/m/identity-ismemberof.md | 4 +- query-languages/m/identityprovider-default.md | 4 +- query-languages/m/informix-database.md | 21 +- query-languages/m/int16-from.md | 6 +- query-languages/m/int32-from.md | 6 +- query-languages/m/int64-from.md | 6 +- query-languages/m/int8-from.md | 6 +- query-languages/m/itemexpression-from.md | 4 +- query-languages/m/json-document.md | 5 +- query-languages/m/json-fromvalue.md | 6 +- query-languages/m/limitclausekind-type.md | 6 +- query-languages/m/lines-frombinary.md | 3 +- query-languages/m/lines-fromtext.md | 12 +- query-languages/m/lines-tobinary.md | 7 +- query-languages/m/lines-totext.md | 9 +- query-languages/m/list-accumulate.md | 4 +- query-languages/m/list-alltrue.md | 4 +- query-languages/m/list-alternate.md | 4 +- query-languages/m/list-anytrue.md | 4 +- query-languages/m/list-average.md | 4 +- query-languages/m/list-buffer.md | 4 +- query-languages/m/list-conformtopagereader.md | 7 +- query-languages/m/list-contains.md | 4 +- query-languages/m/list-containsall.md | 4 +- query-languages/m/list-containsany.md | 4 +- query-languages/m/list-count.md | 6 +- query-languages/m/list-covariance.md | 6 +- query-languages/m/list-datetimezones.md | 4 +- query-languages/m/list-difference.md | 4 +- query-languages/m/list-distinct.md | 4 +- query-languages/m/list-findtext.md | 4 +- query-languages/m/list-first.md | 4 +- query-languages/m/list-firstn.md | 4 +- query-languages/m/list-functions.md | 244 +++++------ query-languages/m/list-generate.md | 4 +- query-languages/m/list-insertrange.md | 6 +- query-languages/m/list-intersect.md | 4 +- query-languages/m/list-isdistinct.md | 4 +- query-languages/m/list-isempty.md | 4 +- query-languages/m/list-last.md | 4 +- query-languages/m/list-lastn.md | 4 +- query-languages/m/list-matchesall.md | 4 +- query-languages/m/list-matchesany.md | 4 +- query-languages/m/list-nonnullcount.md | 7 +- query-languages/m/list-numbers.md | 4 +- query-languages/m/list-positionof.md | 6 +- query-languages/m/list-sort.md | 10 +- query-languages/m/list-transformmany.md | 6 +- query-languages/m/m-spec-let.md | 4 +- query-languages/m/m-spec-sections.md | 4 +- query-languages/m/metadata.md | 28 +- query-languages/m/mysql-database.md | 27 +- query-languages/m/number-abs.md | 4 +- query-languages/m/number-acos.md | 9 +- query-languages/m/number-asin.md | 7 +- query-languages/m/number-atan.md | 9 +- query-languages/m/number-atan2.md | 4 +- query-languages/m/number-bitwiseand.md | 6 +- query-languages/m/number-bitwisenot.md | 6 +- query-languages/m/number-bitwiseor.md | 7 +- query-languages/m/number-bitwiseshiftleft.md | 9 +- query-languages/m/number-bitwiseshiftright.md | 7 +- query-languages/m/number-bitwisexor.md | 6 +- query-languages/m/number-combinations.md | 4 +- query-languages/m/number-cos.md | 4 +- query-languages/m/number-cosh.md | 9 +- query-languages/m/number-epsilon.md | 7 +- query-languages/m/number-exp.md | 4 +- query-languages/m/number-factorial.md | 4 +- query-languages/m/number-fromtext.md | 4 +- query-languages/m/number-nan.md | 8 +- query-languages/m/number-negativeinfinity.md | 6 +- query-languages/m/number-pi.md | 8 +- query-languages/m/number-positiveinfinity.md | 6 +- query-languages/m/number-power.md | 6 +- query-languages/m/number-round.md | 4 +- query-languages/m/number-sinh.md | 7 +- query-languages/m/number-tanh.md | 7 +- query-languages/m/odbc-datasource.md | 12 +- query-languages/m/odbc-query.md | 8 +- query-languages/m/oledb-datasource.md | 23 +- query-languages/m/oledb-query.md | 12 +- query-languages/m/oracle-database.md | 18 +- query-languages/m/postgresql-database.md | 19 +- query-languages/m/rdata-frombinary.md | 10 +- query-languages/m/rowexpression-from.md | 4 +- query-languages/m/salesforce-data.md | 11 +- query-languages/m/salesforce-reports.md | 6 +- .../m/sapbusinesswarehouse-cubes.md | 3 +- query-languages/m/saphana-database.md | 4 +- query-languages/m/sharepoint-contents.md | 7 +- query-languages/m/sharepoint-files.md | 7 +- query-languages/m/sharepoint-tables.md | 7 +- query-languages/m/sharpdate.md | 2 +- query-languages/m/sharpduration.md | 2 +- query-languages/m/soda-feed.md | 9 +- query-languages/m/splitter-splitbynothing.md | 6 +- query-languages/m/sql-database.md | 5 +- query-languages/m/sql-databases.md | 4 +- query-languages/m/sybase-database.md | 19 +- .../m/table-addfuzzyclustercolumn.md | 6 +- query-languages/m/table-addjoincolumn.md | 8 +- .../m/table-combinecolumnstorecord.md | 7 +- .../m/table-conformtopagereader.md | 7 +- query-languages/m/table-firstvalue.md | 4 +- query-languages/m/table-fromrecords.md | 2 +- query-languages/m/table-partition.md | 4 +- query-languages/m/table-pivot.md | 4 +- query-languages/m/table-profile.md | 17 +- query-languages/m/table-schema.md | 7 +- query-languages/m/table-splitat.md | 4 +- query-languages/m/table-torows.md | 4 +- query-languages/m/tables-getrelationships.md | 9 +- query-languages/m/teradata-database.md | 20 +- query-languages/m/text-frombinary.md | 7 +- query-languages/m/text-infernumbertype.md | 5 +- query-languages/m/text-newguid.md | 9 +- query-languages/m/text-tobinary.md | 7 +- query-languages/m/text-trimend.md | 2 +- query-languages/m/type-addtablekey.md | 7 +- query-languages/m/type-facets.md | 10 +- query-languages/m/type-forrecord.md | 7 +- query-languages/m/type-replacefacets.md | 8 +- query-languages/m/type-replacetablekeys.md | 9 +- query-languages/m/type-tablecolumn.md | 3 +- query-languages/m/type-tablekeys.md | 9 +- query-languages/m/type-union.md | 4 +- query-languages/m/uri-combine.md | 7 +- query-languages/m/value-add.md | 9 +- query-languages/m/value-compare.md | 9 +- query-languages/m/value-divide.md | 7 +- query-languages/m/value-equals.md | 7 +- query-languages/m/value-fromtext.md | 11 +- query-languages/m/value-lineage.md | 5 +- query-languages/m/value-metadata.md | 9 +- query-languages/m/value-multiply.md | 9 +- query-languages/m/value-nullableequals.md | 11 +- query-languages/m/value-optimize.md | 7 +- query-languages/m/value-removemetadata.md | 11 +- query-languages/m/value-replacemetadata.md | 7 +- query-languages/m/value-subtract.md | 7 +- query-languages/m/value-traits.md | 5 +- query-languages/m/value-type.md | 5 +- query-languages/m/web-browsercontents.md | 4 +- query-languages/m/web-page.md | 10 +- query-languages/m/xml-document.md | 8 +- 284 files changed, 1589 insertions(+), 1498 deletions(-) diff --git a/query-languages/m/access-database.md b/query-languages/m/access-database.md index dae608d9c..de0521251 100644 --- a/query-languages/m/access-database.md +++ b/query-languages/m/access-database.md @@ -1,16 +1,21 @@ --- description: "Learn more about: Access.Database" title: "Access.Database" -ms.date: 12/12/2018 +ms.date: 10/7/2022 --- # Access.Database ## Syntax -
  
-Access.Database(database as binary, optional options as nullable record) as table 
-
- -## About -Returns a structural representation of an Access database, `database`. An optional record parameter, `options`, may be specified to control the following options:
  • `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is false).
  • `NavigationPropertyNameGenerator` : A function that is used for the creation of names for navigation properties.
The record parameter is specified as [option1 = value1, option2 = value2...], for example. +
+Access.Database(database as binary, optional options as nullable record) as table
+
+## About + +Returns a structural representation of an Access database, `database`. An optional record parameter, `options`, may be specified to control the following options: + +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is false). +* `NavigationPropertyNameGenerator`: A function that is used for the creation of names for navigation properties. + +The record parameter is specified as [option1 = value1, option2 = value2...], for example. diff --git a/query-languages/m/accesscontrolentry-conditiontoidentities.md b/query-languages/m/accesscontrolentry-conditiontoidentities.md index 4f1c60dbe..5dc58b5f2 100644 --- a/query-languages/m/accesscontrolentry-conditiontoidentities.md +++ b/query-languages/m/accesscontrolentry-conditiontoidentities.md @@ -1,7 +1,7 @@ --- description: "Learn more about: AccessControlEntry.ConditionToIdentities" title: "AccessControlEntry.ConditionToIdentities" -ms.date: 3/28/2019 +ms.date: 10/7/2022 --- # AccessControlEntry.ConditionToIdentities @@ -10,9 +10,9 @@ ms.date: 3/28/2019
 AccessControlEntry.ConditionToIdentities(identityProvider as function, condition as function) as list
 
- -## About -

Using the specified identityProvider, converts the condition into the list of identities for which condition would return true in all authorization contexts with identityProvider as the identity provider. An error is raised if it is not possible to convert condition into a list of identities, for example if condition consults attributes other than user or group identities to make a decision.

Note that the list of identities represents the identities as they appear in condition and no normalization (such as group expansion) is performed on them.

+## About - +Using the specified `identityProvider`, converts the `condition` into the list of identities for which `condition` would return `true` in all authorization contexts with `identityProvider` as the identity provider. An error is raised if it is not possible to convert `condition` into a list of identities, for example if `condition` consults attributes other than user or group identities to make a decision. + +Note that the list of identities represents the identities as they appear in `condition` and no normalization (such as group expansion) is performed on them. diff --git a/query-languages/m/accesscontrolkind-type.md b/query-languages/m/accesscontrolkind-type.md index 972f7e9f9..38e023ceb 100644 --- a/query-languages/m/accesscontrolkind-type.md +++ b/query-languages/m/accesscontrolkind-type.md @@ -1,7 +1,7 @@ --- description: "Learn more about: AccessControlKind.Type" title: "AccessControlKind.Type" -ms.date: 5/16/2022 +ms.date: 10/7/2022 --- # AccessControlKind.Type @@ -11,8 +11,8 @@ Specifies the kind of access control. ## Allowed values -|Name|Value|Description| -|------------|--|---------------| +|Name|Value|Description| +|------------|--|---------------| |**AccessControlKind.Deny**|0|Access is denied.| |**AccessControlKind.Allow**|1|Access is allowed.| diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index ed209dc2f..3544b2fd9 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -1,24 +1,24 @@ --- description: "Learn more about: Accessing data functions" title: "Accessing data functions" -ms.date: 5/16/2022 +ms.date: 10/7/2022 --- # Accessing data functions -These functions access data and return table values. Most of these functions return a table value called a **navigation table**. Navigation tables are primarily used by the Power Query user interface to provide a navigation experience over the potentially large hierarchical data sets returned. - -|Name|Description| -|------------|---------------| +These functions access data and return table values. Most of these functions return a table value called a **navigation table**. Navigation tables are primarily used by the Power Query user interface to provide a navigation experience over the potentially large hierarchical data sets returned. + +|Name|Description| +|------------|---------------| |[AccessControlEntry.ConditionToIdentities](accesscontrolentry-conditiontoidentities.md)|Returns a list of identities that the condition will accept.| -|[Access.Database](access-database.md)|Returns a structural representation of an Microsoft Access database. | -|[ActiveDirectory.Domains](activedirectory-domains.md)|Returns a list of Active Directory domains in the same forest as the specified domain or of the current machine's domain if none is specified.| -|[AdobeAnalytics.Cubes](adobeanalytics-cubes.md) | Returns the report suites in Adobe Analytics.| +|[Access.Database](access-database.md)|Returns a structural representation of an Microsoft Access database. | +|[ActiveDirectory.Domains](activedirectory-domains.md)|Returns a list of Active Directory domains in the same forest as the specified domain or of the current machine's domain if none is specified.| +|[AdobeAnalytics.Cubes](adobeanalytics-cubes.md) | Returns the report suites in Adobe Analytics.| |[AdoDotNet.DataSource](adodotnet-datasource.md)|Returns the schema collection for an ADO.NET data source.| |[AdoDotNet.Query](adodotnet-query.md)|Returns the schema collection for an ADO.NET data source.| -|[AnalysisServices.Database](analysisservices-database.md)|Returns a table of multidimensional cubes or tabular models from the Analysis Services database.| +|[AnalysisServices.Database](analysisservices-database.md)|Returns a table of multidimensional cubes or tabular models from the Analysis Services database.| |[AnalysisServices.Databases](analysisservices-databases.md)|Returns the Analysis Services databases on a particular host.| -|[AzureStorage.BlobContents](azurestorage-blobcontents.md) | Returns the content of the specified blob from an Azure storage vault. | -|[AzureStorage.Blobs](azurestorage-blobs.md)|Returns a navigational table containing all containers found in the Azure Storage account. Each row has the container name and a link to the container blobs.| +|[AzureStorage.BlobContents](azurestorage-blobcontents.md) | Returns the content of the specified blob from an Azure storage vault. | +|[AzureStorage.Blobs](azurestorage-blobs.md)|Returns a navigational table containing all containers found in the Azure Storage account. Each row has the container name and a link to the container blobs.| |[AzureStorage.DataLake](azurestorage-datalake.md)|Returns a navigational table containing the documents found in the specified container and its subfolders from Azure Data Lake Storage.| |[AzureStorage.DataLakeContents](azurestorage-datalakecontents.md)|Returns the content of the specified file from an Azure Data Lake Storage filesystem.| |[AzureStorage.Tables](azurestorage-tables.md)|Returns a navigational table containing a row for each table found at the account URL from an Azure storage vault. Each row contains a link to the azure table.| @@ -37,57 +37,57 @@ These functions access data and return table values. Most of these functions ret |[Cube.Measures](cube-measures.md)|Returns a table containing the set of available measures within the cube.| |[Cube.Parameters](cube-parameters.md)|Returns a table containing the set of parameters that can be applied to cube.| |[Cube.Properties](cube-properties.md)|Returns a table containing the set of available properties for dimensions that are expanded in the cube.| -|[Cube.PropertyKey](cube-propertykey.md) | Returns the key of property `property`. | +|[Cube.PropertyKey](cube-propertykey.md) | Returns the key of property `property`.| |[Cube.ReplaceDimensions](cube-replacedimensions.md)|Replaces the set of dimensions returned by [Cube.Dimensions](/powerquery-m/cube-dimensions).| |[Cube.Transform](cube-transform.md)|Applies the list cube functions, transforms, on the cube.| -|[DB2.Database](db2-database.md)|Returns a table of SQL tables and views available in a Db2 database.| +|[DB2.Database](db2-database.md)|Returns a table of SQL tables and views available in a Db2 database.| |[Essbase.Cubes](essbase-cubes.md)|Returns the cubes in an Essbase instance grouped by Essbase server.| |[Excel.CurrentWorkbook](excel-currentworkbook.md)|Returns the tables in the current Excel Workbook.| -|[Excel.Workbook](excel-workbook.md)|Returns a table representing sheets in the given excel workbook.| +|[Excel.Workbook](excel-workbook.md)|Returns a table representing sheets in the given excel workbook.| |[Exchange.Contents](exchange-contents.md)|Returns a table of contents from a Microsoft Exchange account.| -|[File.Contents](file-contents.md)|Returns the binary contents of the file located at a path.| -|[Folder.Contents](folder-contents.md)|Returns a table containing the properties and contents of the files and folders found in the specified folder.| -|[Folder.Files](folder-files.md)|Returns a table containing a row for each file found at a folder path, and subfolders. Each row contains properties of the folder or file and a link to its content.| +|[File.Contents](file-contents.md)|Returns the binary contents of the file located at a path.| +|[Folder.Contents](folder-contents.md)|Returns a table containing the properties and contents of the files and folders found in the specified folder.| +|[Folder.Files](folder-files.md)|Returns a table containing a row for each file found at a folder path, and subfolders. Each row contains properties of the folder or file and a link to its content.| |[GoogleAnalytics.Accounts](googleanalytics-accounts.md)|Returns the Google Analytics accounts for the current credential.| -|[Hdfs.Contents](hdfs-contents.md)|Returns a table containing a row for each folder and file found at the folder url, {0}, from a Hadoop file system. Each row contains properties of the folder or file and a link to its content.| -|[Hdfs.Files](hdfs-files.md)|Returns a table containing a row for each file found at the folder url, {0}, and subfolders from a Hadoop file system. Each row contains properties of the file and a link to its content.| -|[HdInsight.Containers](hdinsight-containers.md)|Returns a navigational table containing all containers found in the HDInsight account. Each row has the container name and table containing its files.| -|[HdInsight.Contents](hdinsight-contents.md)|Returns a navigational table containing all containers found in the HDInsight account. Each row has the container name and table containing its files.| -|[HdInsight.Files](hdinsight-files.md)|Returns a table containing a row for each folder and file found at the container URL, and subfolders from an HDInsight account. Each row contains properties of the file/folder and a link to its content.| -|[Html.Table](html-table.md)|Returns a table containing the results of running the specified CSS selectors against the provided html.| +|[Hdfs.Contents](hdfs-contents.md)|Returns a table containing a row for each folder and file found at the folder url, {0}, from a Hadoop file system. Each row contains properties of the folder or file and a link to its content.| +|[Hdfs.Files](hdfs-files.md)|Returns a table containing a row for each file found at the folder url, {0}, and subfolders from a Hadoop file system. Each row contains properties of the file and a link to its content.| +|[HdInsight.Containers](hdinsight-containers.md)|Returns a navigational table containing all containers found in the HDInsight account. Each row has the container name and table containing its files.| +|[HdInsight.Contents](hdinsight-contents.md)|Returns a navigational table containing all containers found in the HDInsight account. Each row has the container name and table containing its files.| +|[HdInsight.Files](hdinsight-files.md)|Returns a table containing a row for each folder and file found at the container URL, and subfolders from an HDInsight account. Each row contains properties of the file/folder and a link to its content.| +|[Html.Table](html-table.md)|Returns a table containing the results of running the specified CSS selectors against the provided html.| |[Identity.From](identity-from.md)|Creates an identity.| |[Identity.IsMemberOf](identity-ismemberof.md)|Determines whether an identity is a member of an identity collection.| |[IdentityProvider.Default](identityprovider-default.md)|The default identity provider for the current host.| -|[Informix.Database](informix-database.md)|Returns a table of SQL tables and views available in an Informix database on server `server` in the database instance named `database`.| -|[Json.Document](json-document.md)|Returns the contents of a JSON document. The contents may be directly passed to the function as text, or it may be the binary value returned by a function like File.Contents.| +|[Informix.Database](informix-database.md)|Returns a table of SQL tables and views available in an Informix database on server `server` in the database instance named `database`.| +|[Json.Document](json-document.md)|Returns the contents of a JSON document. The contents may be directly passed to the function as text, or it may be the binary value returned by a function like File.Contents.| |[Json.FromValue](json-fromvalue.md)|Produces a JSON representation of a given value value with a text encoding specified by encoding.| |[MySQL.Database](mysql-database.md)|Returns a table with data relating to the tables in the specified MySQL Database.| |[OData.Feed](odata-feed.md)|Returns a table of OData feeds offered by an OData serviceUri.| -|[Odbc.DataSource](odbc-datasource.md)|Returns a table of SQL tables and views from the ODBC data source specified by the connection string `connectionString`. | -|[Odbc.InferOptions](odbc-inferoptions.md)|Returns the result of trying to infer SQL capabilities for an ODBC driver. | -|[Odbc.Query](odbc-query.md)|Connects to a generic provider with the given connection string and returns the result of evaluating the query.| +|[Odbc.DataSource](odbc-datasource.md)|Returns a table of SQL tables and views from the ODBC data source specified by the connection string `connectionString`. | +|[Odbc.InferOptions](odbc-inferoptions.md)|Returns the result of trying to infer SQL capabilities for an ODBC driver. | +|[Odbc.Query](odbc-query.md)|Connects to a generic provider with the given connection string and returns the result of evaluating the query.| |[OleDb.DataSource](oledb-datasource.md)|Returns a table of SQL tables and views from the OLE DB data source specified by the connection string.| |[OleDb.Query](oledb-query.md)|Returns the result of running a native query on an OLE DB data source.| |[Oracle.Database](oracle-database.md)|Returns a table with data relating to the tables in the specified Oracle Database.| |[Pdf.Tables](pdf-tables.md)|Returns any tables found in pdf.| |[PostgreSQL.Database](postgresql-database.md)|Returns a table with data relating to the tables in the specified PostgreSQL Database.| -|[RData.FromBinary](rdata-frombinary.md)|Returns a record of data frames from the RData file.| -|[Salesforce.Data](salesforce-data.md)|Connects to the Salesforce Objects API and returns the set of available objects (i.e. Accounts).| -|[Salesforce.Reports](salesforce-reports.md)|Connects to the Salesforce Reports API and returns the set of available reports.| +|[RData.FromBinary](rdata-frombinary.md)|Returns a record of data frames from the RData file.| +|[Salesforce.Data](salesforce-data.md)|Connects to the Salesforce Objects API and returns the set of available objects (i.e. Accounts).| +|[Salesforce.Reports](salesforce-reports.md)|Connects to the Salesforce Reports API and returns the set of available reports.| |[SapBusinessWarehouse.Cubes](sapbusinesswarehouse-cubes.md)|Returns the InfoCubes and queries in an SAP Business Warehouse system grouped by InfoArea.| |[SapHana.Database](saphana-database.md)|Returns the packages in an SAP HANA database.| -|[SharePoint.Contents](sharepoint-contents.md)|Returns a table containing a row for each folder and document found at the SharePoint site url. Each row contains properties of the folder or file and a link to its content.| +|[SharePoint.Contents](sharepoint-contents.md)|Returns a table containing a row for each folder and document found at the SharePoint site url. Each row contains properties of the folder or file and a link to its content.| |[SharePoint.Files](sharepoint-files.md)|Returns a table containing a row for each document found at the SharePoint site url, and subfolders. Each row contains properties of the folder or file and a link to its content.| -|[SharePoint.Tables](sharepoint-tables.md)|Returns a table containing the result of a SharePoint List as an OData feed.| -|[Soda.Feed](soda-feed.md)|Returns the resulting table of a CSV file that can be accessed using the SODA 2.0 API. The URL must point to a valid SODA-compliant source that ends in a .csv extension.| +|[SharePoint.Tables](sharepoint-tables.md)|Returns a table containing the result of a SharePoint List as an OData feed.| +|[Soda.Feed](soda-feed.md)|Returns the resulting table of a CSV file that can be accessed using the SODA 2.0 API. The URL must point to a valid SODA-compliant source that ends in a .csv extension.| |[Sql.Database](sql-database.md)|Returns a table containing SQL tables located on a SQL Server instance database.| -|[Sql.Databases](sql-databases.md)|Returns a table with references to databases located on a SQL Server instance. Returns a navigation table.| -|[Sybase.Database](sybase-database.md)|Returns a table with data relating to the tables in the specified Sybase Database.| -|[Teradata.Database](teradata-database.md)|Returns a table with data relating to the tables in the specified Teradata Database.| -|[WebAction.Request](webaction-request.md)|Creates an action that, when executed, will return the results of performing a method request against url using HTTP as a binary value.| -|[Web.BrowserContents](web-browsercontents.md)|Returns the HTML for the specified url, as viewed by a web browser.| +|[Sql.Databases](sql-databases.md)|Returns a table with references to databases located on a SQL Server instance. Returns a navigation table.| +|[Sybase.Database](sybase-database.md)|Returns a table with data relating to the tables in the specified Sybase Database.| +|[Teradata.Database](teradata-database.md)|Returns a table with data relating to the tables in the specified Teradata Database.| +|[WebAction.Request](webaction-request.md)|Creates an action that, when executed, will return the results of performing a method request against url using HTTP as a binary value.| +|[Web.BrowserContents](web-browsercontents.md)|Returns the HTML for the specified url, as viewed by a web browser.| |[Web.Contents](web-contents.md)|Returns the contents downloaded from a web url as a binary value.| |[Web.Headers](web-headers.md)|Returns the HTTP headers downloaded from the url as a record value.| -|[Web.Page](web-page.md)|Returns the contents of an HTML webpage as a table.| -|[Xml.Document](xml-document.md)|Returns the contents of an XML document as a hierarchical table (list of records).| -|[Xml.Tables](xml-tables.md)|Returns the contents of an XML document as a nested collection of flattened tables.| +|[Web.Page](web-page.md)|Returns the contents of an HTML webpage as a table.| +|[Xml.Document](xml-document.md)|Returns the contents of an XML document as a hierarchical table (list of records).| +|[Xml.Tables](xml-tables.md)|Returns the contents of an XML document as a nested collection of flattened tables.| diff --git a/query-languages/m/activedirectory-domains.md b/query-languages/m/activedirectory-domains.md index 18bfa4bfd..4a063cd0e 100644 --- a/query-languages/m/activedirectory-domains.md +++ b/query-languages/m/activedirectory-domains.md @@ -1,16 +1,16 @@ --- description: "Learn more about: ActiveDirectory.Domains" title: "ActiveDirectory.Domains" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # ActiveDirectory.Domains ## Syntax -
  
+
 ActiveDirectory.Domains(optional forestRootDomainName as nullable text) as table
 
- + ## About Returns a list of Active Directory domains in the same forest as the specified domain or of the current machine's domain if none is specified. diff --git a/query-languages/m/adobeanalytics-cubes.md b/query-languages/m/adobeanalytics-cubes.md index 15111d5c6..b20d0bb16 100644 --- a/query-languages/m/adobeanalytics-cubes.md +++ b/query-languages/m/adobeanalytics-cubes.md @@ -1,13 +1,13 @@ --- description: "Learn more about: AdobeAnalytics.Cubes" title: "AdobeAnalytics.Cubes" -ms.date: 6/24/2022 +ms.date: 10/7/2022 --- # AdobeAnalytics.Cubes ## Syntax -
  
+
 AdobeAnalytics.Cubes(optional options as nullable record) as table
 
diff --git a/query-languages/m/adodotnet-datasource.md b/query-languages/m/adodotnet-datasource.md index 7ef97ce76..3ae293996 100644 --- a/query-languages/m/adodotnet-datasource.md +++ b/query-languages/m/adodotnet-datasource.md @@ -1,7 +1,7 @@ --- description: "Learn more about: AdoDotNet.DataSource" title: "AdoDotNet.DataSource" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # AdoDotNet.DataSource @@ -13,8 +13,8 @@ AdoDotNet.DataSource(providerName as text, connectionString as any ## About -Returns the schema collection for the ADO.NET data source with provider name providerName and connection string connectionString. connectionString can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, options, may be provided to specify additional properties. The record can contain the following fields: -- CommandTimeout : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -- SqlCompatibleWindowsAuth : A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. -- TypeMap +Returns the schema collection for the ADO.NET data source with provider name `providerName` and connection string `connectionString`. `connectionString` can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `SqlCompatibleWindowsAuth`: A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. +* `TypeMap` diff --git a/query-languages/m/adodotnet-query.md b/query-languages/m/adodotnet-query.md index 071cc313e..3efc601e6 100644 --- a/query-languages/m/adodotnet-query.md +++ b/query-languages/m/adodotnet-query.md @@ -1,20 +1,19 @@ --- description: "Learn more about: AdoDotNet.Query" title: "AdoDotNet.Query" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # AdoDotNet.Query ## Syntax -
  
+
 AdoDotNet.Query(providerName as text, connectionString as any, query as text, optional options as nullable record) as table
 
## About -Returns the result of running `query` with the connection string `connectionString` using the ADO.NET provider `providerName`. `connectionString` can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: - -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `SqlCompatibleWindowsAuth` : A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. +Returns the result of running `query` with the connection string `connectionString` using the ADO.NET provider `providerName`. `connectionString` can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `SqlCompatibleWindowsAuth`: A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. diff --git a/query-languages/m/analysisservices-database.md b/query-languages/m/analysisservices-database.md index cc13064bb..5e0424d39 100644 --- a/query-languages/m/analysisservices-database.md +++ b/query-languages/m/analysisservices-database.md @@ -1,24 +1,24 @@ --- description: "Learn more about: AnalysisServices.Database" title: "AnalysisServices.Database" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # AnalysisServices.Database ## Syntax -
  
+
 AnalysisServices.Database(server as text, database as text, optional options as nullable record) as table
 
## About -Returns a table of multidimensional cubes or tabular models from the Analysis Services database `database` on server `server`. An optional record parameter, `options`, may be specified to control the following options: -* `Query` : A native MDX query used to retrieve data. -* `TypedMeasureColumns` : A logical value indicating if the types specified in the multidimensional or tabular model will be used for the types of the added measure columns. When set to false, the type "number" will be used for all measure columns. The default value for this option is false. -* `Culture` : A culture name specifying the culture for the data. This corresponds to the 'Locale Identifier' connection string property. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is driver-dependent. -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -* `SubQueries` : A number (0, 1 or 2) that sets the value of the "SubQueries" property in the connection string. This controls the behavior of calculated members on subselects or subcubes. (The default value is 2). -* `Implementation` - +Returns a table of multidimensional cubes or tabular models from the Analysis Services database `database` on server `server`. An optional record parameter, `options`, may be specified to control the following options: + +* `Query`: A native MDX query used to retrieve data. +* `TypedMeasureColumns`: A logical value indicating if the types specified in the multidimensional or tabular model will be used for the types of the added measure columns. When set to false, the type "number" will be used for all measure columns. The default value for this option is false. +* `Culture`: A culture name specifying the culture for the data. This corresponds to the 'Locale Identifier' connection string property. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is driver-dependent. +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `SubQueries`: A number (0, 1 or 2) that sets the value of the "SubQueries" property in the connection string. This controls the behavior of calculated members on subselects or subcubes. (The default value is 2). +* `Implementation` diff --git a/query-languages/m/analysisservices-databases.md b/query-languages/m/analysisservices-databases.md index 3196fc73a..e66c01649 100644 --- a/query-languages/m/analysisservices-databases.md +++ b/query-languages/m/analysisservices-databases.md @@ -1,23 +1,23 @@ --- description: "Learn more about: AnalysisServices.Databases" title: "AnalysisServices.Databases" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # AnalysisServices.Databases ## Syntax -
  
+
 AnalysisServices.Databases(server as text, optional options as nullable record) as table
 
## About -Returns databases on an Analysis Services instance, `server`. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: +Returns databases on an Analysis Services instance, `server`. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: -* `TypedMeasureColumns` : A logical value indicating if the types specified in the multidimensional or tabular model will be used for the types of the added measure columns. When set to false, the type "number" will be used for all measure columns. The default value for this option is false. -* `Culture` : A culture name specifying the culture for the data. This corresponds to the 'Locale Identifier' connection string property. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is driver-dependent. -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -* `SubQueries` : A number (0, 1 or 2) that sets the value of the "SubQueries" property in the connection string. This controls the behavior of calculated members on subselects or subcubes. (The default value is 2). +* `TypedMeasureColumns`: A logical value indicating if the types specified in the multidimensional or tabular model will be used for the types of the added measure columns. When set to false, the type "number" will be used for all measure columns. The default value for this option is false. +* `Culture`: A culture name specifying the culture for the data. This corresponds to the 'Locale Identifier' connection string property. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is driver-dependent. +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `SubQueries`: A number (0, 1 or 2) that sets the value of the "SubQueries" property in the connection string. This controls the behavior of calculated members on subselects or subcubes. (The default value is 2). * `Implementation` diff --git a/query-languages/m/azurestorage-blobcontents.md b/query-languages/m/azurestorage-blobcontents.md index d34854880..90bbd74fd 100644 --- a/query-languages/m/azurestorage-blobcontents.md +++ b/query-languages/m/azurestorage-blobcontents.md @@ -1,19 +1,20 @@ --- description: "Learn more about: AzureStorage.BlobContents" title: "AzureStorage.BlobContents" -ms.date: 10/10/2019 +ms.date: 10/7/2022 --- # AzureStorage.BlobContents ## Syntax -
  
+
 AzureStorage.BlobContents(url as text, optional options as nullable record) as binary
 
-## About +## About -Returns the content of the blob at the URL, url, from an Azure storage vault. options may be specified to control the following options:
  • BlockSize : The number of bytes to read before waiting on the data consumer. The default value is 4 MB.
  • RequestSize : The number of bytes to try to read in a single HTTP request to the server. The default value is 4 MB.
  • ConcurrentRequests : The ConcurrentRequests option supports faster download of data by specifying the number of requests to be made in parallel, at the cost of memory utilization. The memory required is (ConcurrentRequest * RequestSize). The default value is 16.
- - - +Returns the content of the blob at the URL, `url`, from an Azure storage vault. `options` may be specified to control the following options: + +* `BlockSize`: The number of bytes to read before waiting on the data consumer. The default value is 4 MB. +* `RequestSize`: The number of bytes to try to read in a single HTTP request to the server. The default value is 4 MB. +* `ConcurrentRequests`: The ConcurrentRequests option supports faster download of data by specifying the number of requests to be made in parallel, at the cost of memory utilization. The memory required is (ConcurrentRequest * RequestSize). The default value is 16. diff --git a/query-languages/m/azurestorage-blobs.md b/query-languages/m/azurestorage-blobs.md index 9a9c50755..1b74c391b 100644 --- a/query-languages/m/azurestorage-blobs.md +++ b/query-languages/m/azurestorage-blobs.md @@ -1,7 +1,7 @@ --- description: "Learn more about: AzureStorage.Blobs" title: "AzureStorage.Blobs" -ms.date: 10/10/2019 +ms.date: 10/7/2022 --- # AzureStorage.Blobs @@ -10,8 +10,11 @@ ms.date: 10/10/2019
 AzureStorage.Blobs(account as text, optional options as nullable record) as table
 
- -## About -Returns a navigational table containing a row for each container found at the account URL, account, from an Azure storage vault. Each row contains a link to the container blobs. options may be specified to control the following options:
  • BlockSize : The number of bytes to read before waiting on the data consumer. The default value is 4 MB.
  • RequestSize : The number of bytes to try to read in a single HTTP request to the server. The default value is 4 MB.
  • ConcurrentRequests : The ConcurrentRequests option supports faster download of data by specifying the number of requests to be made in parallel, at the cost of memory utilization. The memory required is (ConcurrentRequest * RequestSize). The default value is 16.
- +## About + +Returns a navigational table containing a row for each container found at the account URL, `account`, from an Azure storage vault. Each row contains a link to the container blobs. `options` may be specified to control the following options: + +* `BlockSize`: The number of bytes to read before waiting on the data consumer. The default value is 4 MB. +* `RequestSize`: The number of bytes to try to read in a single HTTP request to the server. The default value is 4 MB. +* `ConcurrentRequests`: The ConcurrentRequests option supports faster download of data by specifying the number of requests to be made in parallel, at the cost of memory utilization. The memory required is (ConcurrentRequest * RequestSize). The default value is 16. diff --git a/query-languages/m/azurestorage-datalake.md b/query-languages/m/azurestorage-datalake.md index d5c6fc575..d3706307d 100644 --- a/query-languages/m/azurestorage-datalake.md +++ b/query-languages/m/azurestorage-datalake.md @@ -1,19 +1,21 @@ --- description: "Learn more about: AzureStorage.DataLake" title: "AzureStorage.DataLake" -ms.date: 10/10/2019 +ms.date: 10/7/2022 --- # AzureStorage.DataLake ## Syntax -
  
+
 AzureStorage.DataLake(endpoint as text, optional options as nullable record) as table
 
-## About +## About -Returns a navigational table containing the documents found in the specified container and its subfolders at the account URL, endpoint, from an Azure Data Lake Storage filesystem. options may be specified to control the following options:
  • BlockSize : The number of bytes to read before waiting on the data consumer. The default value is 4 MB.
  • RequestSize : The number of bytes to try to read in a single HTTP request to the server. The default value is 4 MB.
  • ConcurrentRequests : The ConcurrentRequests option supports faster download of data by specifying the number of requests to be made in parallel, at the cost of memory utilization. The memory required is (ConcurrentRequest * RequestSize). The default value is 16.
  • HierarchicalNavigation : A logical (true/false) that controls whether the files are returned in a tree-like directory view or in a flat list. The default value is false.
- - - +Returns a navigational table containing the documents found in the specified container and its subfolders at the account URL, `endpoint`, from an Azure Data Lake Storage filesystem. `options` may be specified to control the following options: + +* `BlockSize`: The number of bytes to read before waiting on the data consumer. The default value is 4 MB. +* `RequestSize`: The number of bytes to try to read in a single HTTP request to the server. The default value is 4 MB. +* `ConcurrentRequests`: The ConcurrentRequests option supports faster download of data by specifying the number of requests to be made in parallel, at the cost of memory utilization. The memory required is (ConcurrentRequest * RequestSize). The default value is 16. +* `HierarchicalNavigation`: A logical (true/false) that controls whether the files are returned in a tree-like directory view or in a flat list. The default value is false. diff --git a/query-languages/m/azurestorage-datalakecontents.md b/query-languages/m/azurestorage-datalakecontents.md index 12560159d..b686d1fcb 100644 --- a/query-languages/m/azurestorage-datalakecontents.md +++ b/query-languages/m/azurestorage-datalakecontents.md @@ -1,19 +1,20 @@ --- description: "Learn more about: AzureStorage.DataLakeContents" title: "AzureStorage.DataLakeContents" -ms.date: 10/10/2019 +ms.date: 10/7/2022 --- # AzureStorage.DataLakeContents ## Syntax -
  
+
 AzureStorage.DataLakeContents(url as text, optional options as nullable record) as binary
 
-## About +## About -Returns the content of the file at the URL, url, from an Azure Data Lake Storage filesystem. options may be specified to control the following options:
  • BlockSize : The number of bytes to read before waiting on the data consumer. The default value is 4 MB.
  • RequestSize : The number of bytes to try to read in a single HTTP request to the server. The default value is 4 MB.
  • ConcurrentRequests : The ConcurrentRequests option supports faster download of data by specifying the number of requests to be made in parallel, at the cost of memory utilization. The memory required is (ConcurrentRequest * RequestSize). The default value is 16.
- - - +Returns the content of the file at the URL, `url`, from an Azure Data Lake Storage filesystem. `options` may be specified to control the following options: + +* `BlockSize`: The number of bytes to read before waiting on the data consumer. The default value is 4 MB. +* `RequestSize`: The number of bytes to try to read in a single HTTP request to the server. The default value is 4 MB. +* `ConcurrentRequests`: The ConcurrentRequests option supports faster download of data by specifying the number of requests to be made in parallel, at the cost of memory utilization. The memory required is (ConcurrentRequest * RequestSize). The default value is 16. diff --git a/query-languages/m/binary-combine.md b/query-languages/m/binary-combine.md index b573ecab9..7c5cc0861 100644 --- a/query-languages/m/binary-combine.md +++ b/query-languages/m/binary-combine.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary.Combine" title: "Binary.Combine" -ms.date: 12/12/2018 +ms.date: 10/7/2022 --- # Binary.Combine @@ -14,4 +14,3 @@ Binary.Combine(binaries as list) as binary ## About Combines a list of binaries into a single binary. - diff --git a/query-languages/m/binary-decompress.md b/query-languages/m/binary-decompress.md index 23102bef5..c6766ddd9 100644 --- a/query-languages/m/binary-decompress.md +++ b/query-languages/m/binary-decompress.md @@ -1,13 +1,13 @@ --- description: "Learn more about: Binary.Decompress" title: "Binary.Decompress" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Binary.Decompress ## Syntax -
 
+
 Binary.Decompress(binary as nullable binary, compressionType as number) as nullable binary
 
@@ -31,4 +31,3 @@ Binary.Decompress(#binary({115, 103, 200, 7, 194, 20, 134, 36, 134, 74, 134, 84, **Output** `#binary({71, 0, 111, 0, 111, 0, 100, 0, 98, 0, 121, 0, 101, 0})` - \ No newline at end of file diff --git a/query-languages/m/binary-from.md b/query-languages/m/binary-from.md index 904673c71..ddb47b1a8 100644 --- a/query-languages/m/binary-from.md +++ b/query-languages/m/binary-from.md @@ -1,11 +1,11 @@ --- description: "Learn more about: Binary.From" title: "Binary.From" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # Binary.From -## Syntax +## Syntax
 Binary.From(value as any, optional encoding as nullable number) as nullable binary
diff --git a/query-languages/m/binary-fromlist.md b/query-languages/m/binary-fromlist.md
index d99687f44..8a26814d0 100644
--- a/query-languages/m/binary-fromlist.md
+++ b/query-languages/m/binary-fromlist.md
@@ -1,7 +1,7 @@
 ---
 description: "Learn more about: Binary.FromList"
 title: "Binary.FromList"
-ms.date: 12/12/2018
+ms.date: 10/10/2022
 ---
 # Binary.FromList
 
diff --git a/query-languages/m/binary-functions.md b/query-languages/m/binary-functions.md
index c6d99d083..fec6d77d2 100644
--- a/query-languages/m/binary-functions.md
+++ b/query-languages/m/binary-functions.md
@@ -1,39 +1,39 @@
 ---
 description: "Learn more about: Binary functions"
 title: "Binary functions"
-ms.date: 7/19/2022
+ms.date: 10/7/2022
 ---
 # Binary functions
 
 These functions create and manipulate binary data.
-  
-## Binary Formats  
-  
-### Reading numbers  
-  
-|Name|Description|  
-|------------|---------------|  
-|[BinaryFormat.7BitEncodedSignedInteger](binaryformat-7bitencodedsignedinteger.md)|A binary format that reads a 64-bit signed integer that was encoded using a 7-bit variable-length encoding.|  
-|[BinaryFormat.7BitEncodedUnsignedInteger](binaryformat-7bitencodedunsignedinteger.md)|A binary format that reads a 64-bit unsigned integer that was encoded using a 7-bit variable-length encoding.|  
-|[BinaryFormat.Binary](binaryformat-binary.md)|Returns a binary format that reads a binary value.|  
-|[BinaryFormat.Byte](binaryformat-byte.md)|A binary format that reads an 8-bit unsigned integer.|  
-|[BinaryFormat.Choice](binaryformat-choice.md)|Returns a binary format that chooses the next binary format based on a value that has already been read.|  
+
+## Binary Formats
+
+### Reading numbers
+
+|Name|Description|
+|------------|---------------|
+|[BinaryFormat.7BitEncodedSignedInteger](binaryformat-7bitencodedsignedinteger.md)|A binary format that reads a 64-bit signed integer that was encoded using a 7-bit variable-length encoding.|
+|[BinaryFormat.7BitEncodedUnsignedInteger](binaryformat-7bitencodedunsignedinteger.md)|A binary format that reads a 64-bit unsigned integer that was encoded using a 7-bit variable-length encoding.|
+|[BinaryFormat.Binary](binaryformat-binary.md)|Returns a binary format that reads a binary value.|
+|[BinaryFormat.Byte](binaryformat-byte.md)|A binary format that reads an 8-bit unsigned integer.|
+|[BinaryFormat.Choice](binaryformat-choice.md)|Returns a binary format that chooses the next binary format based on a value that has already been read.|
 |[BinaryFormat.Decimal](binaryformat-decimal.md)|A binary format that reads a .NET 16-byte decimal value.|
-|[BinaryFormat.Double](binaryformat-double.md)|A binary format that reads an 8-byte IEEE double-precision floating point value.|  
-|[BinaryFormat.Group](binaryformat-group.md)|Returns a binary format that reads a group of items. Each item value is preceded by a unique key value. The result is a list of item values.|  
-|[BinaryFormat.Length](binaryformat-length.md)|Returns a binary format that limits the amount of data that can be read. Both BinaryFormat.List and BinaryFormat.Binary can be used to read until end of the data. BinaryFormat.Length can be used to limit the number of bytes that are read.|  
-|[BinaryFormat.List](binaryformat-list.md)|Returns a binary format that reads a sequence of items and returns a list.|  
-|[BinaryFormat.Null](binaryformat-null.md)|A binary format that reads zero bytes and returns null.|  
-|[BinaryFormat.Record](binaryformat-record.md)|Returns a binary format that reads a record. Each field in the record can have a different binary format.|  
+|[BinaryFormat.Double](binaryformat-double.md)|A binary format that reads an 8-byte IEEE double-precision floating point value.|
+|[BinaryFormat.Group](binaryformat-group.md)|Returns a binary format that reads a group of items. Each item value is preceded by a unique key value. The result is a list of item values.|
+|[BinaryFormat.Length](binaryformat-length.md)|Returns a binary format that limits the amount of data that can be read. Both BinaryFormat.List and BinaryFormat.Binary can be used to read until end of the data. BinaryFormat.Length can be used to limit the number of bytes that are read.|
+|[BinaryFormat.List](binaryformat-list.md)|Returns a binary format that reads a sequence of items and returns a list.|
+|[BinaryFormat.Null](binaryformat-null.md)|A binary format that reads zero bytes and returns null.|
+|[BinaryFormat.Record](binaryformat-record.md)|Returns a binary format that reads a record. Each field in the record can have a different binary format.|
 |[BinaryFormat.SignedInteger16](binaryformat-signedinteger16.md)|A binary format that reads a 16-bit signed integer.|
-|[BinaryFormat.SignedInteger32](binaryformat-signedinteger32.md)|A binary format that reads a 32-bit signed integer.|  
-|[BinaryFormat.SignedInteger64](binaryformat-signedinteger64.md)|A binary format that reads a 64-bit signed integer.|  
-|[BinaryFormat.Single](binaryformat-single.md)|A binary format that reads a 4-byte IEEE single-precision floating point value.|  
-|[BinaryFormat.Text](binaryformat-text.md)|Returns a binary format that reads a text value. The optional encoding value specifies the encoding of the text.|  
-|[BinaryFormat.Transform](binaryformat-transform.md)|Returns a binary format that will transform the values read by another binary format.|  
-|[BinaryFormat.UnsignedInteger16](binaryformat-unsignedinteger16.md)|A binary format that reads a 16-bit unsigned integer.|  
-|[BinaryFormat.UnsignedInteger32](binaryformat-unsignedinteger32.md)|A binary format that reads a 32-bit unsigned integer.|  
-|[BinaryFormat.UnsignedInteger64](binaryformat-unsignedinteger64.md)|A binary format that reads a 64-bit unsigned integer.|  
+|[BinaryFormat.SignedInteger32](binaryformat-signedinteger32.md)|A binary format that reads a 32-bit signed integer.|
+|[BinaryFormat.SignedInteger64](binaryformat-signedinteger64.md)|A binary format that reads a 64-bit signed integer.|
+|[BinaryFormat.Single](binaryformat-single.md)|A binary format that reads a 4-byte IEEE single-precision floating point value.|
+|[BinaryFormat.Text](binaryformat-text.md)|Returns a binary format that reads a text value. The optional encoding value specifies the encoding of the text.|
+|[BinaryFormat.Transform](binaryformat-transform.md)|Returns a binary format that will transform the values read by another binary format.|
+|[BinaryFormat.UnsignedInteger16](binaryformat-unsignedinteger16.md)|A binary format that reads a 16-bit unsigned integer.|
+|[BinaryFormat.UnsignedInteger32](binaryformat-unsignedinteger32.md)|A binary format that reads a 32-bit unsigned integer.|
+|[BinaryFormat.UnsignedInteger64](binaryformat-unsignedinteger64.md)|A binary format that reads a 64-bit unsigned integer.|
 
 ### Controlling byte order
 
@@ -41,23 +41,23 @@ These functions create and manipulate binary data.
 |---------------------- | -----------|
 |[BinaryFormat.ByteOrder](binaryformat-byteorder.md) | Returns a binary format with the byte order specified by a function.|
 |[Table.PartitionValues](table-partitionvalues.md) | Returns information about how a table is partitioned.|
-  
+
 ## Binary data
-  
-|Name|Description|  
+
+|Name|Description|
 |------------|---------------|
 |[Binary.ApproximateLength](binary-approximatelength.md)|Returns the approximate length of the binary.|
-|[Binary.Buffer](binary-buffer.md)|Buffers the binary value in memory. The result of this call is a stable binary value, which means it will have a deterministic length and order of bytes.|  
+|[Binary.Buffer](binary-buffer.md)|Buffers the binary value in memory. The result of this call is a stable binary value, which means it will have a deterministic length and order of bytes.|
 |[Binary.Combine](binary-combine.md)|Combines a list of binaries into a single binary.|
 |[Binary.Compress](binary-compress.md)|Compresses a binary value using the given compression type.|
-|[Binary.Decompress](binary-decompress.md)|Decompresses a binary value using the given compression type.|  
-|[Binary.From](binary-from.md)|Returns a binary value from the given value.|  
-|[Binary.FromList](binary-fromlist.md)|Converts a list of numbers into a binary value|  
-|[Binary.FromText](binary-fromtext.md)|Decodes data from a text form into binary.|  
-|[Binary.InferContentType](binary-infercontenttype.md)|Returns a record with field Content.Type that contains the inferred MIME-type.|  
-|[Binary.Length](binary-length.md)|Returns the length of binary values.|  
+|[Binary.Decompress](binary-decompress.md)|Decompresses a binary value using the given compression type.|
+|[Binary.From](binary-from.md)|Returns a binary value from the given value.|
+|[Binary.FromList](binary-fromlist.md)|Converts a list of numbers into a binary value|
+|[Binary.FromText](binary-fromtext.md)|Decodes data from a text form into binary.|
+|[Binary.InferContentType](binary-infercontenttype.md)|Returns a record with field Content.Type that contains the inferred MIME-type.|
+|[Binary.Length](binary-length.md)|Returns the length of binary values.|
 |[Binary.Range](binary-range.md)|Returns a subset of the binary value beginning at an offset.|
-|[Binary.ToList](binary-tolist.md)|Converts a binary value into a list of numbers|  
+|[Binary.ToList](binary-tolist.md)|Converts a binary value into a list of numbers|
 |[Binary.ToText](binary-totext.md)|Encodes binary data into a text form.|
 |[Binary.View](binary-view.md) | Creates or extends a binary with user-defined handlers for query and action operations.|
 |[Binary.ViewError](binary-viewerror.md) | Creates a modified error record which won't trigger a fallback when thrown by a handler defined on a view (via [Binary.View](binary-view.md)).|
diff --git a/query-languages/m/binary-infercontenttype.md b/query-languages/m/binary-infercontenttype.md
index 08f5aac7a..f93baafd5 100644
--- a/query-languages/m/binary-infercontenttype.md
+++ b/query-languages/m/binary-infercontenttype.md
@@ -1,16 +1,16 @@
 ---
 description: "Learn more about: Binary.InferContentType"
 title: "Binary.InferContentType"
-ms.date: 4/17/2018
+ms.date: 10/7/2022
 ---
 # Binary.InferContentType
 
 ## Syntax
 
-
 
+
 Binary.InferContentType(source as binary) as record
 
- -## About - + +## About + Returns a record with field Content.Type that contains the inferred MIME-type. If the inferred content type is text/*, and an encoding code page is detected, then additionally returns field Content.Encoding that contains the encoding of the stream. If the inferred content type is text/csv, and the format is delimited, additionally returns field Csv.PotentialDelimiter containing a table for analysis of potential delimiters. If the inferred content type is text/csv, and the format is fixed-width, additionally returns field Csv.PotentialPositions containing a list for analysis of potential fixed width column positions. diff --git a/query-languages/m/binary-length.md b/query-languages/m/binary-length.md index 031f2fa0f..f07bb80be 100644 --- a/query-languages/m/binary-length.md +++ b/query-languages/m/binary-length.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary.Length" title: "Binary.Length" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Binary.Length @@ -9,7 +9,8 @@ ms.date: 7/29/2019
 Binary.Length(binary as nullable binary) as nullable number
-
- -## About -Returns the number of characters. +
+ +## About + +Returns the number of characters. diff --git a/query-languages/m/binary-tolist.md b/query-languages/m/binary-tolist.md index 0b52f3b1d..d716a4785 100644 --- a/query-languages/m/binary-tolist.md +++ b/query-languages/m/binary-tolist.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary.ToList" title: "Binary.ToList" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Binary.ToList @@ -9,7 +9,8 @@ ms.date: 7/29/2019
 Binary.ToList(binary as binary) as list
-
- -## About +
+ +## About + Converts a binary value into a list of numbers. diff --git a/query-languages/m/binary-totext.md b/query-languages/m/binary-totext.md index 1c6105fbc..73bbc551f 100644 --- a/query-languages/m/binary-totext.md +++ b/query-languages/m/binary-totext.md @@ -1,16 +1,19 @@ --- description: "Learn more about: Binary.ToText" title: "Binary.ToText" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Binary.ToText ## Syntax
-Binary.ToText(binary as nullable binary, optional encoding as nullable number) as nullable text 
-
- -## About -Returns the result of converting a binary list of numbers `binary` into a text value. Optionally, `encoding` may be specified to indicate the encoding to be used in the text value produced The following `BinaryEncoding` values may be used for `encoding`.
  • BinaryEncoding.Base64: Base 64 encoding
  • BinaryEncoding.Hex: Hex encoding
- +Binary.ToText(binary as nullable binary, optional encoding as nullable number) as nullable text +
+ +## About + +Returns the result of converting a binary list of numbers `binary` into a text value. Optionally, `encoding` may be specified to indicate the encoding to be used in the text value produced The following `BinaryEncoding` values may be used for `encoding`. + +* `BinaryEncoding.Base64`: Base 64 encoding +* `BinaryEncoding.Hex`: Hex encoding diff --git a/query-languages/m/binary-view.md b/query-languages/m/binary-view.md index ed43bf77d..e929bcb98 100644 --- a/query-languages/m/binary-view.md +++ b/query-languages/m/binary-view.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary.View" title: "Binary.View" -ms.date: 7/19/2022 +ms.date: 10/7/2022 --- # Binary.View @@ -21,9 +21,9 @@ Handler functions must return a value that is semantically equivalent to the res If a handler function raises an error, the default behavior of the operation is applied to the view. -`Binary.View` can be used to implement folding to a data source–the translation of M queries into source-specific operations (for example, to download a section of a file). +**Binary.View** can be used to implement folding to a data source–the translation of M queries into source-specific operations (for example, to download a section of a file). -Refer to the published Power Query custom connector documentation for a more complete description of `Binary.View`. +Refer to the published Power Query custom connector documentation for a more complete description of **Binary.View**. ## Example 1 diff --git a/query-languages/m/binaryencoding-type.md b/query-languages/m/binaryencoding-type.md index 773af5067..c17ee9bfb 100644 --- a/query-languages/m/binaryencoding-type.md +++ b/query-languages/m/binaryencoding-type.md @@ -1,7 +1,7 @@ --- description: "Learn more about: BinaryEncoding.Type" title: "BinaryEncoding.Type" -ms.date: 5/16/2022 +ms.date: 10/7/2022 --- # BinaryEncoding.Type @@ -11,8 +11,8 @@ Specifies the type of binary encoding. ## Allowed values -|Name|Value|Description| -|------------|--|-------------| +|Name|Value|Description| +|------------|--|-------------| |**BinaryEncoding.Base64**|0|Constant to use as the encoding type when base-64 encoding is required.| |**BinaryEncoding.Hex**|1|Constant to use as the encoding type when hexadecimal encoding is required.| diff --git a/query-languages/m/binaryformat-7bitencodedsignedinteger.md b/query-languages/m/binaryformat-7bitencodedsignedinteger.md index f5a5cd8eb..1e983ec17 100644 --- a/query-languages/m/binaryformat-7bitencodedsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedsignedinteger.md @@ -1,15 +1,16 @@ --- description: "Learn more about: BinaryFormat.7BitEncodedSignedInteger" title: "BinaryFormat.7BitEncodedSignedInteger" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.7BitEncodedSignedInteger ## Syntax
-BinaryFormat.7BitEncodedSignedInteger(binary as binary) as any 
-
- -## About -A binary format that reads a 64-bit signed integer that was encoded using a 7-bit variable-length encoding. +BinaryFormat.7BitEncodedSignedInteger(binary as binary) as any +
+ +## About + +A binary format that reads a 64-bit signed integer that was encoded using a 7-bit variable-length encoding. diff --git a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md index 3396daadc..08f3d03c9 100644 --- a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md @@ -1,15 +1,16 @@ --- description: "Learn more about: BinaryFormat.7BitEncodedUnsignedInteger" title: "BinaryFormat.7BitEncodedUnsignedInteger" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.7BitEncodedUnsignedInteger ## Syntax
-BinaryFormat.7BitEncodedUnsignedInteger(binary as binary) as any 
-
- -## About -A binary format that reads a 64-bit unsigned integer that was encoded using a 7-bit variable-length encoding. +BinaryFormat.7BitEncodedUnsignedInteger(binary as binary) as any +
+ +## About + +A binary format that reads a 64-bit unsigned integer that was encoded using a 7-bit variable-length encoding. diff --git a/query-languages/m/binaryformat-binary.md b/query-languages/m/binaryformat-binary.md index dc19219f3..bc98f4c85 100644 --- a/query-languages/m/binaryformat-binary.md +++ b/query-languages/m/binaryformat-binary.md @@ -1,16 +1,16 @@ --- description: "Learn more about: BinaryFormat.Binary" title: "BinaryFormat.Binary" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.Binary ## Syntax
-BinaryFormat.Binary(optional length as any) as function
+BinaryFormat.Binary(optional length as any) as function
 
- -## About -Returns a binary format that reads a binary value. If `length` is specified, the binary value will contain that many bytes. If `length` is not specified, the binary value will contain the remaining bytes. The `length` can be specified either as a number, or as a binary format of the length that preceeds the binary data. - + +## About + +Returns a binary format that reads a binary value. If `length` is specified, the binary value will contain that many bytes. If `length` is not specified, the binary value will contain the remaining bytes. The `length` can be specified either as a number, or as a binary format of the length that precedes the binary data. diff --git a/query-languages/m/binaryformat-byte.md b/query-languages/m/binaryformat-byte.md index f6121dacf..fbf6fe3d0 100644 --- a/query-languages/m/binaryformat-byte.md +++ b/query-languages/m/binaryformat-byte.md @@ -1,15 +1,16 @@ --- description: "Learn more about: BinaryFormat.Byte" title: "BinaryFormat.Byte" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.Byte ## Syntax
-BinaryFormat.Byte(binary as binary) as any 
-
- -## About +BinaryFormat.Byte(binary as binary) as any +
+ +## About + A binary format that reads an 8-bit unsigned integer. diff --git a/query-languages/m/binaryformat-byteorder.md b/query-languages/m/binaryformat-byteorder.md index 3dec3c7c1..5cbfe44dc 100644 --- a/query-languages/m/binaryformat-byteorder.md +++ b/query-languages/m/binaryformat-byteorder.md @@ -1,15 +1,16 @@ --- description: "Learn more about: BinaryFormat.ByteOrder" title: "BinaryFormat.ByteOrder" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.ByteOrder ## Syntax
-BinaryFormat.ByteOrder(binaryFormat as function, byteOrder as number) as function 
-
+BinaryFormat.ByteOrder(binaryFormat as function, byteOrder as number) as function +
-## About -Returns a binary format with the byte order specified by `binaryFormat`. The default byte order is `ByteOrder.BigEndian`. +## About + +Returns a binary format with the byte order specified by `binaryFormat`. The default byte order is `ByteOrder.BigEndian`. diff --git a/query-languages/m/binaryformat-decimal.md b/query-languages/m/binaryformat-decimal.md index f8c8b6b2d..d10bfae74 100644 --- a/query-languages/m/binaryformat-decimal.md +++ b/query-languages/m/binaryformat-decimal.md @@ -1,15 +1,16 @@ --- description: "Learn more about: BinaryFormat.Decimal" title: "BinaryFormat.Decimal" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.Decimal ## Syntax
-BinaryFormat.Decimal(binary as binary) as any 
-
- -## About +BinaryFormat.Decimal(binary as binary) as any +
+ +## About + A binary format that reads a .NET 16-byte decimal value. diff --git a/query-languages/m/binaryformat-double.md b/query-languages/m/binaryformat-double.md index 48a8bec86..1979515b5 100644 --- a/query-languages/m/binaryformat-double.md +++ b/query-languages/m/binaryformat-double.md @@ -1,15 +1,16 @@ --- description: "Learn more about: BinaryFormat.Double" title: "BinaryFormat.Double" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.Double ## Syntax -
  
-BinaryFormat.Double(binary as binary) as any 
+
+BinaryFormat.Double(binary as binary) as any
 
- -## About -A binary format that reads an 8-byte IEEE double-precision floating point value. + +## About + +A binary format that reads an 8-byte IEEE double-precision floating point value. diff --git a/query-languages/m/binaryformat-length.md b/query-languages/m/binaryformat-length.md index a69825b46..f9777230a 100644 --- a/query-languages/m/binaryformat-length.md +++ b/query-languages/m/binaryformat-length.md @@ -1,7 +1,7 @@ --- description: "Learn more about: BinaryFormat.Length" title: "BinaryFormat.Length" -ms.date: 3/7/2022 +ms.date: 10/7/2022 --- # BinaryFormat.Length @@ -10,10 +10,10 @@ ms.date: 3/7/2022
 BinaryFormat.Length(binaryFormat as function, length as any) as function
 
- + ## About -Returns a binary format that limits the amount of data that can be read. Both `BinaryFormat.List` and `BinaryFormat.Binary` can be used to read until end of the data. `BinaryFormat.Length` can be used to limit the number of bytes that are read. The `binaryFormat` parameter specifies the binary format to limit. The `length` parameter specifies the number of bytes to read. The `length` parameter may either be a number value, or a binary format value that specifies the format of the length value that appears that precedes the value being read. +Returns a binary format that limits the amount of data that can be read. Both [BinaryFormat.List](binaryformat-list.md) and [BinaryFormat.Binary](binaryformat-binary.md) can be used to read until end of the data. **BinaryFormat.Length** can be used to limit the number of bytes that are read. The `binaryFormat` parameter specifies the binary format to limit. The `length` parameter specifies the number of bytes to read. The `length` parameter may either be a number value, or a binary format value that specifies the format of the length value that appears that precedes the value being read. ## Example 1 diff --git a/query-languages/m/binaryformat-list.md b/query-languages/m/binaryformat-list.md index 324d75edf..ab4f9733a 100644 --- a/query-languages/m/binaryformat-list.md +++ b/query-languages/m/binaryformat-list.md @@ -1,7 +1,7 @@ --- description: "Learn more about: BinaryFormat.List" title: "BinaryFormat.List" -ms.date: 3/16/2022 +ms.date: 10/7/2022 --- # BinaryFormat.List @@ -10,7 +10,7 @@ ms.date: 3/16/2022
 BinaryFormat.List(binaryFormat as function, optional countOrCondition as any) as function
 
- + ## About Returns a binary format that reads a sequence of items and returns a `list`. The `binaryFormat` parameter specifies the binary format of each item. There are three ways to determine the number of items read: diff --git a/query-languages/m/binaryformat-null.md b/query-languages/m/binaryformat-null.md index 5e4f87732..dea172ff9 100644 --- a/query-languages/m/binaryformat-null.md +++ b/query-languages/m/binaryformat-null.md @@ -1,15 +1,16 @@ --- description: "Learn more about: BinaryFormat.Null" title: "BinaryFormat.Null" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.Null ## Syntax -
   
-BinaryFormat.Null(binary as binary) as any 
-
- -## About -A binary format that reads zero bytes and returns null. +
+BinaryFormat.Null(binary as binary) as any
+
+ +## About + +A binary format that reads zero bytes and returns null. diff --git a/query-languages/m/binaryformat-record.md b/query-languages/m/binaryformat-record.md index 89e1e0b34..13bc80702 100644 --- a/query-languages/m/binaryformat-record.md +++ b/query-languages/m/binaryformat-record.md @@ -1,7 +1,7 @@ --- description: "Learn more about: BinaryFormat.Record" title: "BinaryFormat.Record" -ms.date: 5/19/2022 +ms.date: 10/7/2022 --- # BinaryFormat.Record @@ -10,7 +10,7 @@ ms.date: 5/19/2022
 BinaryFormat.Record(record as record) as function
 
- + ## About Returns a binary format that reads a record. The `record` parameter specifies the format of the record. Each field in the record can have a different binary format. If a field contains a value that is not a binary format value, then no data is read for that field, and the field value is echoed to the result. diff --git a/query-languages/m/binaryformat-signedinteger16.md b/query-languages/m/binaryformat-signedinteger16.md index ca8ebf9e0..e56a0b608 100644 --- a/query-languages/m/binaryformat-signedinteger16.md +++ b/query-languages/m/binaryformat-signedinteger16.md @@ -1,7 +1,7 @@ --- description: "Learn more about: BinaryFormat.SignedInteger16" title: "BinaryFormat.SignedInteger16" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.SignedInteger16 @@ -9,8 +9,8 @@ ms.date: 7/29/2019
 BinaryFormat.SignedInteger16(binary as binary) as any
-
- -## About +
+ +## About + A binary format that reads a 16-bit signed integer. - diff --git a/query-languages/m/binaryformat-signedinteger32.md b/query-languages/m/binaryformat-signedinteger32.md index 60447bd51..5d25b8c4c 100644 --- a/query-languages/m/binaryformat-signedinteger32.md +++ b/query-languages/m/binaryformat-signedinteger32.md @@ -1,16 +1,16 @@ --- description: "Learn more about: BinaryFormat.SignedInteger32" title: "BinaryFormat.SignedInteger32" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.SignedInteger32 - + ## Syntax
 BinaryFormat.SignedInteger32(binary as binary) as any
 
- -## About -A binary format that reads a 32-bit signed integer. +## About + +A binary format that reads a 32-bit signed integer. diff --git a/query-languages/m/binaryformat-signedinteger64.md b/query-languages/m/binaryformat-signedinteger64.md index 46ed0a75a..4c8f3d17f 100644 --- a/query-languages/m/binaryformat-signedinteger64.md +++ b/query-languages/m/binaryformat-signedinteger64.md @@ -1,16 +1,16 @@ --- description: "Learn more about: BinaryFormat.SignedInteger64" title: "BinaryFormat.SignedInteger64" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.SignedInteger64 ## Syntax
-BinaryFormat.SignedInteger64(binary as binary) as any  
+BinaryFormat.SignedInteger64(binary as binary) as any
 
- -## About -A binary format that reads a 64-bit signed integer. - + +## About + +A binary format that reads a 64-bit signed integer. diff --git a/query-languages/m/binaryformat-single.md b/query-languages/m/binaryformat-single.md index d11b310c3..2fec4d1e9 100644 --- a/query-languages/m/binaryformat-single.md +++ b/query-languages/m/binaryformat-single.md @@ -1,7 +1,7 @@ --- description: "Learn more about: BinaryFormat.Single" title: "BinaryFormat.Single" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.Single @@ -9,8 +9,8 @@ ms.date: 7/29/2019
 BinaryFormat.Single(binary as binary) as any
-
- -## About +
+ +## About + A binary format that reads a 4-byte IEEE single-precision floating point value. - diff --git a/query-languages/m/binaryformat-text.md b/query-languages/m/binaryformat-text.md index c8f8126a2..18b20a3d7 100644 --- a/query-languages/m/binaryformat-text.md +++ b/query-languages/m/binaryformat-text.md @@ -1,7 +1,7 @@ --- description: "Learn more about: BinaryFormat.Text" title: "BinaryFormat.Text" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # BinaryFormat.Text @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 BinaryFormat.Text(length as any, optional encoding as nullable number) as function 
 
- + ## About Returns a binary format that reads a text value. The `length` specifies the number of bytes to decode, or the binary format of the length that precedes the text. The optional `encoding` value specifies the encoding of the text. If the `encoding` is not specified, then the encoding is determined from the Unicode byte order marks. If no byte order marks are present, then `TextEncoding.Utf8` is used. diff --git a/query-languages/m/binaryformat-unsignedinteger16.md b/query-languages/m/binaryformat-unsignedinteger16.md index 54023563f..cc2ff94ff 100644 --- a/query-languages/m/binaryformat-unsignedinteger16.md +++ b/query-languages/m/binaryformat-unsignedinteger16.md @@ -1,16 +1,16 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger16" title: "BinaryFormat.UnsignedInteger16" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.UnsignedInteger16 ## Syntax
-BinaryFormat.UnsignedInteger16(binary as binary) as any 
-
- -## About -A binary format that reads a 16-bit unsigned integer. - +BinaryFormat.UnsignedInteger16(binary as binary) as any +
+ +## About + +A binary format that reads a 16-bit unsigned integer. diff --git a/query-languages/m/binaryformat-unsignedinteger32.md b/query-languages/m/binaryformat-unsignedinteger32.md index d667c926e..379c0fe2d 100644 --- a/query-languages/m/binaryformat-unsignedinteger32.md +++ b/query-languages/m/binaryformat-unsignedinteger32.md @@ -1,16 +1,16 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger32" title: "BinaryFormat.UnsignedInteger32" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.UnsignedInteger32 - + ## Syntax
 BinaryFormat.UnsignedInteger32(binary as binary) as any
-
+
+ +## About - -## About -A binary format that reads a 32-bit unsigned integer. +A binary format that reads a 32-bit unsigned integer. diff --git a/query-languages/m/binaryformat-unsignedinteger64.md b/query-languages/m/binaryformat-unsignedinteger64.md index 487541aa4..ab4e0ea4b 100644 --- a/query-languages/m/binaryformat-unsignedinteger64.md +++ b/query-languages/m/binaryformat-unsignedinteger64.md @@ -1,16 +1,16 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger64" title: "BinaryFormat.UnsignedInteger64" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # BinaryFormat.UnsignedInteger64 ## Syntax
-BinaryFormat.UnsignedInteger64(binary as binary) as any  
-
- -## About -A binary format that reads a 64-bit unsigned integer. +BinaryFormat.UnsignedInteger64(binary as binary) as any + +## About + +A binary format that reads a 64-bit unsigned integer. diff --git a/query-languages/m/binaryoccurrence-type.md b/query-languages/m/binaryoccurrence-type.md index 8c393462e..cac17a053 100644 --- a/query-languages/m/binaryoccurrence-type.md +++ b/query-languages/m/binaryoccurrence-type.md @@ -1,7 +1,7 @@ --- description: "Learn more about: BinaryOccurrence.Type" title: "BinaryOccurrence.Type" -ms.date: 5/16/2022 +ms.date: 10/7/2022 --- # BinaryOccurrence.Type @@ -11,7 +11,7 @@ Specifies how many times the item is expected to appear in the group. ## Allowed values -|Name|Value|Description| +|Name|Value|Description| |------------|--|-------------| |**BinaryOccurrence.Optional**|0|The item is expected to appear zero or one time in the input.| |**BinaryOccurrence.Required**|1|The item is expected to appear once in the input.| diff --git a/query-languages/m/buffermode-type.md b/query-languages/m/buffermode-type.md index d3c08dafb..99c9661c4 100644 --- a/query-languages/m/buffermode-type.md +++ b/query-languages/m/buffermode-type.md @@ -1,7 +1,7 @@ --- description: "Learn more about: BufferMode.Type" title: "BufferMode.Type" -ms.date: 5/16/2022 +ms.date: 10/7/2022 --- # BufferMode.Type @@ -11,8 +11,8 @@ Describes the type of buffering to be performed. ## Allowed values -|Name|Value|Description| -|------------|--|---------------| +|Name|Value|Description| +|------------|--|---------------| |**BufferMode.Eager**|1|The entire value is immediately buffered in memory before continuing.| |**BufferMode.Delayed**|2|The type of the value is computed immediately but its contents aren't buffered until data is needed, at which point the entire value is immediately buffered.| diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index 978cbb949..bd994c15c 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -1,19 +1,19 @@ --- description: "Learn more about: Byte.From" title: "Byte.From" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # Byte.From ## Syntax -
  
+
 Byte.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
 
- + ## About -Returns an 8-bit integer `number` value from the given `value`. If the given `value` is `null`, **Byte.From** returns `null`. If the given `value` is a `number` within the range of an 8-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](/powerquery-m/roundingmode-toeven). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](/powerquery-m/number-fromtext). Refer to [Number.Round](/powerquery-m/number-round) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). +Returns an 8-bit integer `number` value from the given `value`. If the given `value` is `null`, **Byte.From** returns `null`. If the given `value` is a `number` within the range of an 8-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](roundingmode-type.md). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](number-fromtext.md). Refer to [Number.Round](number-round.md) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index 27c412f9b..fc0b914c7 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -1,14 +1,14 @@ --- description: "Learn more about: Cdm.Contents" title: "Cdm.Contents" -ms.date: 03/18/2020 +ms.date: 10/7/2022 --- # Cdm.Contents ## Syntax
-Cdm.Contents(table as table) as table 
+Cdm.Contents(table as table) as table
 
## About diff --git a/query-languages/m/character-fromnumber.md b/query-languages/m/character-fromnumber.md index d602ee5b5..7fb706e51 100644 --- a/query-languages/m/character-fromnumber.md +++ b/query-languages/m/character-fromnumber.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Character.FromNumber" title: "Character.FromNumber" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Character.FromNumber ## Syntax -
  
+
 Character.FromNumber(number as nullable number) as nullable text
 
- + ## About Returns the character equivalent of the number. diff --git a/query-languages/m/character-tonumber.md b/query-languages/m/character-tonumber.md index daf3b9437..eb0e234fe 100644 --- a/query-languages/m/character-tonumber.md +++ b/query-languages/m/character-tonumber.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Character.ToNumber" title: "Character.ToNumber" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Character.ToNumber @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Character.ToNumber(character as nullable text) as nullable number
 
- + ## About Returns the number equivalent of the character, `character`. diff --git a/query-languages/m/combiner-combinetextbydelimiter.md b/query-languages/m/combiner-combinetextbydelimiter.md index 98f0c55cc..40c7dc9d4 100644 --- a/query-languages/m/combiner-combinetextbydelimiter.md +++ b/query-languages/m/combiner-combinetextbydelimiter.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Combiner.CombineTextByDelimiter" title: "Combiner.CombineTextByDelimiter" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Combiner.CombineTextByDelimiter @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Combiner.CombineTextByDelimiter(delimiter as text, optional quoteStyle as nullable number) as function
 
- + ## About Returns a function that combines a list of text into a single text using the specified delimiter. diff --git a/query-languages/m/combiner-combinetextbyeachdelimiter.md b/query-languages/m/combiner-combinetextbyeachdelimiter.md index bf560137e..80af2e97d 100644 --- a/query-languages/m/combiner-combinetextbyeachdelimiter.md +++ b/query-languages/m/combiner-combinetextbyeachdelimiter.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Combiner.CombineTextByEachDelimiter" title: "Combiner.CombineTextByEachDelimiter" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Combiner.CombineTextByEachDelimiter ## Syntax
-Combiner.CombineTextByEachDelimiter(delimiters as list, optional quoteStyle as nullable number) as function  
-
- -## About +Combiner.CombineTextByEachDelimiter(delimiters as list, optional quoteStyle as nullable number) as function +
+ +## About + Returns a function that combines a list of text into a single text using each specified delimiter in sequence. diff --git a/query-languages/m/combiner-combinetextbylengths.md b/query-languages/m/combiner-combinetextbylengths.md index c6d4d6a8c..d80686f3b 100644 --- a/query-languages/m/combiner-combinetextbylengths.md +++ b/query-languages/m/combiner-combinetextbylengths.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Combiner.CombineTextByLengths" title: "Combiner.CombineTextByLengths" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Combiner.CombineTextByLengths @@ -9,8 +9,8 @@ ms.date: 7/29/2019
 Combiner.CombineTextByLengths(lengths as list, optional template as nullable text) as function
-
- -## About -Returns a function that combines a list of text into a single text using the specified lengths. +
+## About + +Returns a function that combines a list of text into a single text using the specified lengths. diff --git a/query-languages/m/combiner-combinetextbypositions.md b/query-languages/m/combiner-combinetextbypositions.md index cb3ebe21e..f56d49ac2 100644 --- a/query-languages/m/combiner-combinetextbypositions.md +++ b/query-languages/m/combiner-combinetextbypositions.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Combiner.CombineTextByPositions" title: "Combiner.CombineTextByPositions" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Combiner.CombineTextByPositions ## Syntax
-Combiner.CombineTextByPositions(positions as list, optional template as nullable text) as function 
+Combiner.CombineTextByPositions(positions as list, optional template as nullable text) as function
 
- -## About -Returns a function that combines a list of text into a single text using the specified positions. - + +## About + +Returns a function that combines a list of text into a single text using the specified positions. diff --git a/query-languages/m/combiner-combinetextbyranges.md b/query-languages/m/combiner-combinetextbyranges.md index 595f8f6ab..18d458a7b 100644 --- a/query-languages/m/combiner-combinetextbyranges.md +++ b/query-languages/m/combiner-combinetextbyranges.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Combiner.CombineTextByRanges" title: "Combiner.CombineTextByRanges" -ms.date: 5/19/2022 +ms.date: 10/7/2022 --- # Combiner.CombineTextByRanges @@ -10,7 +10,7 @@ ms.date: 5/19/2022
 Combiner.CombineTextByRanges(ranges as list, optional template as nullable text) as function
 
- + ## About Returns a function that combines a list of text into a single text using the specified positions and lengths. A null length indicates that the entire text value should be included. diff --git a/query-languages/m/comments.md b/query-languages/m/comments.md index 4857b70d6..8d80e699e 100644 --- a/query-languages/m/comments.md +++ b/query-languages/m/comments.md @@ -2,33 +2,33 @@ description: "Learn more about: Comments" title: "Comments" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 10/7/2022 --- # Comments -You can add comments to your code with single-line comments `//` or multi-line comments that begin with `/*` and end with `*/`. - +You can add comments to your code with single-line comments `//` or multi-line comments that begin with `/*` and end with `*/`. + **Example - Single-line comment** - -```powerquery-m -let - //Convert to proper case. - Source = Text.Proper("hello world") -in - Source + +```powerquery-m +let + //Convert to proper case. + Source = Text.Proper("hello world") +in + Source ``` **Example - Multi-line comment** - -```powerquery-m -/* Capitalize each word in the Item column in the Orders table. Text.Proper -is evaluated for each Item in each table row. */ -let - Orders = Table.FromRecords({ - [OrderID = 1, CustomerID = 1, Item = "fishing rod", Price = 100.0], - [OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0], - [OrderID = 3, CustomerID = 2, Item = "fishing net", Price = 25.0]}), - #"Capitalized Each Word" = Table.TransformColumns(Orders, {"Item", Text.Proper}) -in - #"Capitalized Each Word" -``` + +```powerquery-m +/* Capitalize each word in the Item column in the Orders table. Text.Proper +is evaluated for each Item in each table row. */ +let + Orders = Table.FromRecords({ + [OrderID = 1, CustomerID = 1, Item = "fishing rod", Price = 100.0], + [OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0], + [OrderID = 3, CustomerID = 2, Item = "fishing net", Price = 25.0]}), + #"Capitalized Each Word" = Table.TransformColumns(Orders, {"Item", Text.Proper}) +in + #"Capitalized Each Word" +``` diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index 2b22331f5..c42730135 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Comparer.Equals" title: "Comparer.Equals" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Comparer.Equals ## Syntax
-Comparer.Equals(comparer as function, x as any, y as any) as logical  
+Comparer.Equals(comparer as function, x as any, y as any) as logical
 
- + ## About Returns a `logical` value based on the equality check over the two given values, `x` and `y`, using the provided `comparer`. @@ -19,9 +19,9 @@ Returns a `logical` value based on the equality check over the two given values, The following built-in comparers are available in the formula language: -* `Comparer.Ordinal`: Used to perform an exact ordinal comparison -* `Comparer.OrdinalIgnoreCase`: Used to perform an exact ordinal case-insensitive comparison -* `Comparer.FromCulture`: Used to perform a culture-aware comparison +* [Comparer.Ordinal](comparer-ordinal.md): Used to perform an exact ordinal comparison +* [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md): Used to perform an exact ordinal case-insensitive comparison +* [Comparer.FromCulture](comparer-fromculture.md): Used to perform a culture-aware comparison ## Example 1 diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index 020ec4a1e..5a42f9d06 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Comparer.FromCulture" title: "Comparer.FromCulture" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Comparer.FromCulture @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Comparer.FromCulture(culture as text, optional ignoreCase as nullable logical) as function
 
- + ## About Returns a comparer function given the `culture` and a logical value `ignoreCase` for case sensitivity for the comparison. The default value for `ignoreCase` is false. The value for culture are well known text representations of locales used in the .NET framework. diff --git a/query-languages/m/comparer-ordinal.md b/query-languages/m/comparer-ordinal.md index 43c240b77..0f513480c 100644 --- a/query-languages/m/comparer-ordinal.md +++ b/query-languages/m/comparer-ordinal.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Comparer.Ordinal" title: "Comparer.Ordinal" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Comparer.Ordinal @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Comparer.Ordinal(x as any, y as any) as number
 
- + ## About Returns a comparer function which uses Ordinal rules to compare the provided values `x` and `y`. diff --git a/query-languages/m/constants.md b/query-languages/m/constants.md index b269344f1..326855e2c 100644 --- a/query-languages/m/constants.md +++ b/query-languages/m/constants.md @@ -1,22 +1,22 @@ --- description: "Learn more about: Constants" title: "Constants" -ms.date: 5/16/2022 +ms.date: 10/7/2022 --- # Constants The Power Query M formula language includes these constant values. ## List of constants - -|Name|Description| -|------------|---------------| + +|Name|Description| +|------------|---------------| |[Number.E](number-e.md)|Returns 2.7182818284590451, the value of e up to 16 decimal digits.| |[Number.Epsilon](number-epsilon.md)|Returns the smallest possible number.| -|[Number.NaN](number-nan.md)|Represents 0/0.| -|[Number.NegativeInfinity](number-negativeinfinity.md)|Represents -1/0.| +|[Number.NaN](number-nan.md)|Represents 0/0.| +|[Number.NegativeInfinity](number-negativeinfinity.md)|Represents -1/0.| |[Number.PI](number-pi.md)|Returns 3.1415926535897931, the value for Pi up to 16 decimal digits.| -|[Number.PositiveInfinity](number-positiveinfinity.md)|Represents 1/0.| +|[Number.PositiveInfinity](number-positiveinfinity.md)|Represents 1/0.| ## See also diff --git a/query-languages/m/csvstyle-type.md b/query-languages/m/csvstyle-type.md index c62695f4a..76cae9c23 100644 --- a/query-languages/m/csvstyle-type.md +++ b/query-languages/m/csvstyle-type.md @@ -1,7 +1,7 @@ --- description: "Learn more about: CsvStyle.Type" title: "CsvStyle.Type" -ms.date: 5/16/2022 +ms.date: 10/7/2022 --- # CsvStyle.Type @@ -11,8 +11,8 @@ Specifies the significance of quotes in CSV documents. ## Allowed values -|Name|Value|Description| -|------------|--|----------------| +|Name|Value|Description| +|------------|--|----------------| |**CsvStyle.QuoteAfterDelimiter**|0|Quotes in a field are only significant immediately following the delimiter.| |**CsvStyle.QuoteAlways**|1|Quotes in a field are always significant regardless of where they appear.| diff --git a/query-languages/m/cube-addandexpanddimensioncolumn.md b/query-languages/m/cube-addandexpanddimensioncolumn.md index b05555a32..185e0f23a 100644 --- a/query-languages/m/cube-addandexpanddimensioncolumn.md +++ b/query-languages/m/cube-addandexpanddimensioncolumn.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.AddAndExpandDimensionColumn" title: "Cube.AddAndExpandDimensionColumn" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # Cube.AddAndExpandDimensionColumn @@ -11,4 +11,5 @@ ms.date: 4/16/2018 ## About + Merges the specified dimension table, `dimensionSelector`, into the cube's, `cube`, filter context and changes the dimensional granularity by expanding the specified set, `attributeNames`, of dimension attributes. The dimension attributes are added to the tabular view with columns named `newColumnNames`, or `attributeNames` if not specified. diff --git a/query-languages/m/cube-addmeasurecolumn.md b/query-languages/m/cube-addmeasurecolumn.md index d9a0efd7b..113de7ee5 100644 --- a/query-languages/m/cube-addmeasurecolumn.md +++ b/query-languages/m/cube-addmeasurecolumn.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.AddMeasureColumn" title: "Cube.AddMeasureColumn" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # Cube.AddMeasureColumn @@ -12,4 +12,5 @@ Cube.AddMeasureColumn(**cube** as table, **column** as text, **measureSelector** ## About + Adds a column with the name `column` to the `cube` that contains the results of the measure `measureSelector` applied in the row context of each row. Measure application is affected by changes to dimension granularity and slicing. Measure values will be adjusted after certain cube operations are performed. diff --git a/query-languages/m/cube-applyparameter.md b/query-languages/m/cube-applyparameter.md index 49a7a2f57..9e6ff6c44 100644 --- a/query-languages/m/cube-applyparameter.md +++ b/query-languages/m/cube-applyparameter.md @@ -1,17 +1,16 @@ --- description: "Learn more about: Cube.ApplyParameter" title: "Cube.ApplyParameter" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Cube.ApplyParameter ## Syntax
-Cube.ApplyParameter(cube as table, parameter as any, optional arguments as nullable list) as table  
+Cube.ApplyParameter(cube as table, parameter as any, optional arguments as nullable list) as table
 
- -## About - + +## About + Returns a cube after applying `parameter` with `arguments` to `cube`. - diff --git a/query-languages/m/cube-attributememberid.md b/query-languages/m/cube-attributememberid.md index 69c64b13f..e2e7dcd6a 100644 --- a/query-languages/m/cube-attributememberid.md +++ b/query-languages/m/cube-attributememberid.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.AttributeMemberId" title: "Cube.AttributeMemberId" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # Cube.AttributeMemberId @@ -11,4 +11,5 @@ ms.date: 4/16/2018 ## About + Returns the unique member identifier from a member property value. `attribute`. Returns null for any other values. diff --git a/query-languages/m/cube-attributememberproperty.md b/query-languages/m/cube-attributememberproperty.md index af0a612d8..79ea69560 100644 --- a/query-languages/m/cube-attributememberproperty.md +++ b/query-languages/m/cube-attributememberproperty.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.AttributeMemberProperty" title: "Cube.AttributeMemberProperty" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # Cube.AttributeMemberProperty @@ -12,5 +12,5 @@ Cube.AttributeMemberProperty(attribute as any, propertyName as tex ## About -Returns the property `propertyName` of dimension attribute `attribute`. +Returns the property `propertyName` of dimension attribute `attribute`. diff --git a/query-languages/m/cube-collapseandremovecolumns.md b/query-languages/m/cube-collapseandremovecolumns.md index 0f5aa0dea..2f743f44d 100644 --- a/query-languages/m/cube-collapseandremovecolumns.md +++ b/query-languages/m/cube-collapseandremovecolumns.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.CollapseAndRemoveColumns" title: "Cube.CollapseAndRemoveColumns" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # Cube.CollapseAndRemoveColumns @@ -12,4 +12,5 @@ Cube.CollapseAndRemoveColumns(**cube** as table, **columnNames** as list) as tab ## About + Changes the dimensional granularity of the filter context for the `cube` by collapsing the attributes mapped to the specified columns `columnNames`. The columns are also removed from the tabular view of the cube. diff --git a/query-languages/m/cube-dimensions.md b/query-languages/m/cube-dimensions.md index 68e7347a6..6fa9c47fb 100644 --- a/query-languages/m/cube-dimensions.md +++ b/query-languages/m/cube-dimensions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.Dimensions" title: "Cube.Dimensions" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # Cube.Dimensions @@ -12,6 +12,5 @@ Cube.Dimensions(**cube** as table) as table ## About -Returns a table containing the set of available dimensions within the `cube`. Each dimension is a table containing a set of dimension attributes and each dimension attribute is represented as a column in the dimension table. Dimensions can be expanded in the cube using Cube.AddAndExpandDimensionColumn. - +Returns a table containing the set of available dimensions within the `cube`. Each dimension is a table containing a set of dimension attributes and each dimension attribute is represented as a column in the dimension table. Dimensions can be expanded in the cube using [Cube.AddAndExpandDimensionColumn](cube-addandexpanddimensioncolumn.md). diff --git a/query-languages/m/cube-measureproperties.md b/query-languages/m/cube-measureproperties.md index 25caa8bd9..429626b70 100644 --- a/query-languages/m/cube-measureproperties.md +++ b/query-languages/m/cube-measureproperties.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.MeasureProperties" title: "Cube.MeasureProperties" -ms.date: 8/17/2018 +ms.date: 10/7/2022 --- # Cube.MeasureProperties @@ -10,6 +10,7 @@ ms.date: 8/17/2018
 Cube.MeasureProperties(cube as table) as table
 
- -## About + +## About + Returns a table containing the set of available properties for measures that are expanded in the cube. diff --git a/query-languages/m/cube-measureproperty.md b/query-languages/m/cube-measureproperty.md index d59baf056..5808b685b 100644 --- a/query-languages/m/cube-measureproperty.md +++ b/query-languages/m/cube-measureproperty.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.MeasureProperty" title: "Cube.MeasureProperty" -ms.date: 8/17/2018 +ms.date: 10/7/2022 --- # Cube.MeasureProperty @@ -10,6 +10,7 @@ ms.date: 8/17/2018
 Cube.MeasureProperty(measure as any, propertyName as text) as any
 
- -## About + +## About + Returns the property `propertyName` of measure `measure`. diff --git a/query-languages/m/cube-measures.md b/query-languages/m/cube-measures.md index a30cac8f1..18cac0274 100644 --- a/query-languages/m/cube-measures.md +++ b/query-languages/m/cube-measures.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.Measures" title: "Cube.Measures" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # Cube.Measures @@ -12,7 +12,5 @@ Cube.Measures(**cube** as any) as table ## About -Returns a table containing the set of available measures within the `cube`. Each measure is represented as a function. Measures can be applied to the cube using Cube.AddMeasureColumn. - - +Returns a table containing the set of available measures within the `cube`. Each measure is represented as a function. Measures can be applied to the cube using Cube.AddMeasureColumn. diff --git a/query-languages/m/cube-parameters.md b/query-languages/m/cube-parameters.md index 19d34bb3d..e565115a7 100644 --- a/query-languages/m/cube-parameters.md +++ b/query-languages/m/cube-parameters.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.Parameters" title: "Cube.Parameters" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Cube.Parameters @@ -9,8 +9,8 @@ ms.date: 7/29/2019
 Cube.Parameters(cube as table) as table
-
- -## About -Returns a table containing the set of parameters that can be applied to `cube`. Each parameter is a function that can be invoked to get `cube` with the parameter and its arguments applied. - + + +## About + +Returns a table containing the set of parameters that can be applied to `cube`. Each parameter is a function that can be invoked to get `cube` with the parameter and its arguments applied. diff --git a/query-languages/m/cube-properties.md b/query-languages/m/cube-properties.md index 42d782659..a3b76441b 100644 --- a/query-languages/m/cube-properties.md +++ b/query-languages/m/cube-properties.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.Properties" title: "Cube.Properties" -ms.date: 4/17/2018 +ms.date: 10/7/2022 --- # Cube.Properties @@ -10,6 +10,7 @@ ms.date: 4/17/2018
 Cube.Properties(cube as table) as table
 
- -## About + +## About + Returns a table containing the set of available properties for dimensions that are expanded in the cube. diff --git a/query-languages/m/cube-propertykey.md b/query-languages/m/cube-propertykey.md index 7423a0506..d2670ccc2 100644 --- a/query-languages/m/cube-propertykey.md +++ b/query-languages/m/cube-propertykey.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.PropertyKey" title: "Cube.PropertyKey" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # Cube.PropertyKey @@ -12,4 +12,5 @@ Cube.PropertyKey(property as any) as any ## About + Returns the key of property `property`. diff --git a/query-languages/m/cube-transform.md b/query-languages/m/cube-transform.md index a601781c0..1d59f2c54 100644 --- a/query-languages/m/cube-transform.md +++ b/query-languages/m/cube-transform.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Cube.Transform" title: "Cube.Transform" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Cube.Transform @@ -12,5 +12,5 @@ Cube.Transform(cube as table, transforms as list) as table ## About -Applies the list cube functions, `transforms`, on the `cube`. +Applies the list cube functions, `transforms`, on the `cube`. diff --git a/query-languages/m/culture-current.md b/query-languages/m/culture-current.md index 23a0503e5..a85a72bcf 100644 --- a/query-languages/m/culture-current.md +++ b/query-languages/m/culture-current.md @@ -1,10 +1,10 @@ --- description: "Learn more about: Culture.Current" title: "Culture.Current" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Culture.Current - -## About +## About + Returns the name of the current culture for the application. diff --git a/query-languages/m/currency-from.md b/query-languages/m/currency-from.md index e2cd1a94e..1c2393ddb 100644 --- a/query-languages/m/currency-from.md +++ b/query-languages/m/currency-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Currency.From" title: "Currency.From" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # Currency.From @@ -10,10 +10,10 @@ ms.date: 4/13/2022
 
 Currency.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
 
- + ## About -Returns a `currency` value from the given `value`. If the given `value` is `null`, **Currency.From** returns `null`. If the given `value` is `number` within the range of currency, fractional part of the `value` is rounded to 4 decimal digits and returned. If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](/powerquery-m/number-fromtext). Valid range for currency is `-922,337,203,685,477.5808` to `922,337,203,685,477.5807`. Refer to [Number.Round](/powerquery-m/number-round) for the available rounding modes. The default is [RoundingMode.ToEven](/powerquery-m/roundingmode-toeven). An optional `culture` may also be provided (for example, "en-US"). +Returns a `currency` value from the given `value`. If the given `value` is `null`, **Currency.From** returns `null`. If the given `value` is `number` within the range of currency, fractional part of the `value` is rounded to 4 decimal digits and returned. If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](number-fromtext.md). Valid range for currency is `-922,337,203,685,477.5808` to `922,337,203,685,477.5807`. Refer to [Number.Round](number-round.md) for the available rounding modes. The default is [RoundingMode.ToEven](roundingmode-type.md). An optional `culture` may also be provided (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/date-adddays.md b/query-languages/m/date-adddays.md index 355936a8b..3f853e620 100644 --- a/query-languages/m/date-adddays.md +++ b/query-languages/m/date-adddays.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Date.AddDays" title: "Date.AddDays" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Date.AddDays ## Syntax
-Date.AddDays(dateTime as any, numberOfDays as number) as any  
+Date.AddDays(dateTime as any, numberOfDays as number) as any
 
- + ## About Returns the `date`, `datetime`, or `datetimezone` result from adding `numberOfDays` days to the `datetime` value `dateTime`. diff --git a/query-languages/m/date-addmonths.md b/query-languages/m/date-addmonths.md index 69967b992..682da2ae3 100644 --- a/query-languages/m/date-addmonths.md +++ b/query-languages/m/date-addmonths.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.AddMonths" title: "Date.AddMonths" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Date.AddMonths @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Date.AddMonths(dateTime as any, numberOfMonths as number) as any
 
- + ## About Returns the `date`, `datetime`, or `datetimezone` result from adding `numberOfMonths` months to the `datetime` value `dateTime`. diff --git a/query-languages/m/date-addquarters.md b/query-languages/m/date-addquarters.md index 19124126f..07245dc03 100644 --- a/query-languages/m/date-addquarters.md +++ b/query-languages/m/date-addquarters.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Date.AddQuarters" title: "Date.AddQuarters" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Date.AddQuarters ## Syntax
-Date.AddQuarters(dateTime as any, numberOfQuarters as number) as any  
+Date.AddQuarters(dateTime as any, numberOfQuarters as number) as any
 
- + ## About Returns the `date`, `datetime`, or `datetimezone` result from adding `numberOfQuarters` quarters to the `datetime` value `dateTime`. diff --git a/query-languages/m/date-addweeks.md b/query-languages/m/date-addweeks.md index 8fa9ff255..f65372b28 100644 --- a/query-languages/m/date-addweeks.md +++ b/query-languages/m/date-addweeks.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.AddWeeks" title: "Date.AddWeeks" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Date.AddWeeks @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Date.AddWeeks(dateTime as any, numberOfWeeks as number) as any
 
- + ## About Returns the `date`, `datetime`, or `datetimezone` result from adding `numberOfWeeks` weeks to the `datetime` value `dateTime`. diff --git a/query-languages/m/date-addyears.md b/query-languages/m/date-addyears.md index 73bd364dc..5c10fbb9e 100644 --- a/query-languages/m/date-addyears.md +++ b/query-languages/m/date-addyears.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.AddYears" title: "Date.AddYears" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Date.AddYears @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Date.AddYears(dateTime as any, numberOfYears as number) as any
 
- + ## About Returns the `date`, `datetime`, or `datetimezone` result of adding `numberOfYears` to a `datetime` value `dateTime`. diff --git a/query-languages/m/date-day.md b/query-languages/m/date-day.md index 7eb9c36b1..5f49ae227 100644 --- a/query-languages/m/date-day.md +++ b/query-languages/m/date-day.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.Day" title: "Date.Day" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Date.Day @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Date.Day(dateTime as any) as nullable number
 
- + ## About Returns the day component of a `date`, `datetime`, or `datetimezone` value. diff --git a/query-languages/m/date-isinnextyear.md b/query-languages/m/date-isinnextyear.md index 8dc52a8f2..bc8225a6a 100644 --- a/query-languages/m/date-isinnextyear.md +++ b/query-languages/m/date-isinnextyear.md @@ -10,8 +10,8 @@ ms.date: 3/11/2022
 Date.IsInNextYear(dateTime as any) as nullable logical
 
- -## About + +## About Indicates whether the given datetime value `dateTime` occurs during the next year, as determined by the current date and time on the system. Note that this function will return false when passed a value that occurs within the current year. diff --git a/query-languages/m/date-torecord.md b/query-languages/m/date-torecord.md index bb43a7006..5b48e0987 100644 --- a/query-languages/m/date-torecord.md +++ b/query-languages/m/date-torecord.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.ToRecord" title: "Date.ToRecord" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # Date.ToRecord @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 Date.ToRecord(date as date) as record
 
- + ## About Returns a record containing the parts of the given date value, `date`. diff --git a/query-languages/m/datetime-fixedlocalnow.md b/query-languages/m/datetime-fixedlocalnow.md index 6777a07d4..76e111de0 100644 --- a/query-languages/m/datetime-fixedlocalnow.md +++ b/query-languages/m/datetime-fixedlocalnow.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DateTime.FixedLocalNow" title: "DateTime.FixedLocalNow" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # DateTime.FixedLocalNow @@ -11,6 +11,6 @@ ms.date: 7/30/2019 DateTime.FixedLocalNow() as datetime -## About -Returns a `datetime` value set to the current date and time on the system. This value is fixed and will not change with successive calls, unlike DateTime.LocalNow, which may return different values over the course of execution of an expression. +## About +Returns a `datetime` value set to the current date and time on the system. This value is fixed and will not change with successive calls, unlike [DateTime.LocalNow](datetime-localnow.md), which may return different values over the course of execution of an expression. diff --git a/query-languages/m/datetime-localnow.md b/query-languages/m/datetime-localnow.md index f242f85e3..442bce785 100644 --- a/query-languages/m/datetime-localnow.md +++ b/query-languages/m/datetime-localnow.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DateTime.LocalNow" title: "DateTime.LocalNow" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # DateTime.LocalNow @@ -11,5 +11,6 @@ ms.date: 7/30/2019 DateTime.LocalNow() as datetime -## About +## About + Returns a `datetime` value set to the current date and time on the system. diff --git a/query-languages/m/datetimezone-fixedlocalnow.md b/query-languages/m/datetimezone-fixedlocalnow.md index e62af8971..861ad4bd7 100644 --- a/query-languages/m/datetimezone-fixedlocalnow.md +++ b/query-languages/m/datetimezone-fixedlocalnow.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DateTimeZone.FixedLocalNow" title: "DateTimeZone.FixedLocalNow" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # DateTimeZone.FixedLocalNow @@ -10,6 +10,7 @@ ms.date: 7/30/2019
 DateTimeZone.FixedLocalNow() as datetimezone
 
- -## About + +## About + Returns a `datetime` value set to the current date and time on the system. The returned value contains timezone information representing the local timezone. This value is fixed and will not change with successive calls, unlike DateTimeZone.LocalNow, which may return different values over the course of execution of an expression. diff --git a/query-languages/m/datetimezone-fixedutcnow.md b/query-languages/m/datetimezone-fixedutcnow.md index 7521e2b2d..523732d7e 100644 --- a/query-languages/m/datetimezone-fixedutcnow.md +++ b/query-languages/m/datetimezone-fixedutcnow.md @@ -1,16 +1,16 @@ --- description: "Learn more about: DateTimeZone.FixedUtcNow" title: "DateTimeZone.FixedUtcNow" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # DateTimeZone.FixedUtcNow ## Syntax
-DateTimeZone.FixedUtcNow() as datetimezone  
+DateTimeZone.FixedUtcNow() as datetimezone
 
- -## About -Returns the current date and time in UTC (the GMT timezone). This value is fixed and will not change with successive calls. - + +## About + +Returns the current date and time in UTC (the GMT timezone). This value is fixed and will not change with successive calls. diff --git a/query-languages/m/datetimezone-localnow.md b/query-languages/m/datetimezone-localnow.md index e28f3f634..883ee7e33 100644 --- a/query-languages/m/datetimezone-localnow.md +++ b/query-languages/m/datetimezone-localnow.md @@ -1,15 +1,16 @@ --- description: "Learn more about: DateTimeZone.LocalNow" title: "DateTimeZone.LocalNow" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # DateTimeZone.LocalNow ## Syntax
-DateTimeZone.LocalNow() as datetimezone  
+DateTimeZone.LocalNow() as datetimezone
 
- -## About + +## About + Returns a `datetimezone` value set to the current date and time on the system. The returned value contains timezone information representing the local timezone. diff --git a/query-languages/m/datetimezone-utcnow.md b/query-languages/m/datetimezone-utcnow.md index e4c5870e4..878807dc1 100644 --- a/query-languages/m/datetimezone-utcnow.md +++ b/query-languages/m/datetimezone-utcnow.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DateTimeZone.UtcNow" title: "DateTimeZone.UtcNow" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # DateTimeZone.UtcNow @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 DateTimeZone.UtcNow() as datetimezone
 
- + ## About Returns the current date and time in UTC (the GMT timezone). diff --git a/query-languages/m/datetimezone-zonehours.md b/query-languages/m/datetimezone-zonehours.md index 201848295..a53f87b5c 100644 --- a/query-languages/m/datetimezone-zonehours.md +++ b/query-languages/m/datetimezone-zonehours.md @@ -1,15 +1,16 @@ --- description: "Learn more about: DateTimeZone.ZoneHours" title: "DateTimeZone.ZoneHours" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # DateTimeZone.ZoneHours ## Syntax
-DateTimeZone.ZoneHours(dateTimeZone as nullable datetimezone) as nullable number  
+DateTimeZone.ZoneHours(dateTimeZone as nullable datetimezone) as nullable number
 
- -## About + +## About + Changes the timezone of the value. diff --git a/query-languages/m/datetimezone-zoneminutes.md b/query-languages/m/datetimezone-zoneminutes.md index 512dc67f7..8b691a436 100644 --- a/query-languages/m/datetimezone-zoneminutes.md +++ b/query-languages/m/datetimezone-zoneminutes.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DateTimeZone.ZoneMinutes" title: "DateTimeZone.ZoneMinutes" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # DateTimeZone.ZoneMinutes @@ -12,5 +12,5 @@ DateTimeZone.ZoneMinutes(dateTimeZone as nullable datetimezone) as nullab ## About -Changes the timezone of the value. +Changes the timezone of the value. diff --git a/query-languages/m/db2-database.md b/query-languages/m/db2-database.md index da28140de..0551901d0 100644 --- a/query-languages/m/db2-database.md +++ b/query-languages/m/db2-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DB2.Database" title: "DB2.Database" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # DB2.Database @@ -13,20 +13,17 @@ DB2.Database(server as text, database as text, optional options ## About -Returns a table of SQL tables and views available in a Db2 database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: - -- `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). -- `NavigationPropertyNameGenerator` : A function that is used for the creation of names for navigation properties. -- `Query` : A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -- `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -- `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -- `HierarchicalNavigation` : A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). -- `Implementation` : Specifies the internal database provider implementation to use. Valid values are: "IBM" and "Microsoft". -- `BinaryCodePage` : A number for the CCSID (Coded Character Set Identifier) to decode Db2 FOR BIT binary data into character strings. Applies to Implementation = "Microsoft". Set 0 to disable conversion (default). Set 1 to convert based on database encoding. Set other CCSID number to convert to application encoding. -- `PackageCollection` : Specifies a string value for package collection (default is "NULLID") to enable use of shared packages required to process SQL statements. Applies to Implementation = "Microsoft". -- `UseDb2ConnectGateway` : Specifies whether the connection is being made through a Db2 Connect gateway. Applies to Implementation = "Microsoft". - -The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. - +Returns a table of SQL tables and views available in a Db2 database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: +- `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). +- `NavigationPropertyNameGenerator`: A function that is used for the creation of names for navigation properties. +- `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. +- `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +- `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +- `HierarchicalNavigation`: A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). +- `Implementation`: Specifies the internal database provider implementation to use. Valid values are: "IBM" and "Microsoft". +- `BinaryCodePage`: A number for the CCSID (Coded Character Set Identifier) to decode Db2 FOR BIT binary data into character strings. Applies to Implementation = "Microsoft". Set 0 to disable conversion (default). Set 1 to convert based on database encoding. Set other CCSID number to convert to application encoding. +- `PackageCollection`: Specifies a string value for package collection (default is "NULLID") to enable use of shared packages required to process SQL statements. Applies to Implementation = "Microsoft". +- `UseDb2ConnectGateway`: Specifies whether the connection is being made through a Db2 Connect gateway. Applies to Implementation = "Microsoft". +The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/decimal-from.md b/query-languages/m/decimal-from.md index 5d5b6d513..f23ea6581 100644 --- a/query-languages/m/decimal-from.md +++ b/query-languages/m/decimal-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Decimal.From" title: "Decimal.From" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # Decimal.From @@ -10,10 +10,10 @@ ms.date: 4/13/2022
 Decimal.From(value as any, optional culture as nullable text) as nullable number
 
- + ## About -Returns a Decimal `number` value from the given `value`. If the given `value` is `null`, **Decimal.From** returns `null`. If the given `value` is `number` within the range of Decimal, `value` is returned, otherwise an error is returned. If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](/powerquery-m/number-fromtext). An optional `culture` may also be provided (for example, "en-US"). +Returns a Decimal `number` value from the given `value`. If the given `value` is `null`, **Decimal.From** returns `null`. If the given `value` is `number` within the range of Decimal, `value` is returned, otherwise an error is returned. If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](number-fromtext.md). An optional `culture` may also be provided (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/diagnostics-activityid.md b/query-languages/m/diagnostics-activityid.md index d95c3e876..8a8f52958 100644 --- a/query-languages/m/diagnostics-activityid.md +++ b/query-languages/m/diagnostics-activityid.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Diagnostics.ActivityId" title: "Diagnostics.ActivityId" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # Diagnostics.ActivityId @@ -12,5 +12,5 @@ Diagnostics.ActivityId() as nullable text ## About -Returns an opaque identifier for the currently-running evaluation. +Returns an opaque identifier for the currently-running evaluation. diff --git a/query-languages/m/diagnostics-trace.md b/query-languages/m/diagnostics-trace.md index 65d494716..68028472a 100644 --- a/query-languages/m/diagnostics-trace.md +++ b/query-languages/m/diagnostics-trace.md @@ -1,32 +1,33 @@ --- description: "Learn more about: Diagnostics.Trace" title: "Diagnostics.Trace" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Diagnostics.Trace + ## Syntax
 Diagnostics.Trace(traceLevel as number, message as anynonnull, value as any, optional delayed as nullable logical) as any
 
-## About +## About Writes a trace `message`, if tracing is enabled, and returns `value`. An optional parameter `delayed` specifies whether to delay the evaluation of `value` until the message is traced. `traceLevel` can take one of the following values: - [TraceLevel.Critical](/powerquery-m/tracelevel-critical) - [TraceLevel.Error](/powerquery-m/tracelevel-error) -- [TraceLevel.Warning](/powerquery-m/tracelevel-warning) -- [TraceLevel.Information](/powerquery-m/tracelevel-information) +- [TraceLevel.Warning](/powerquery-m/tracelevel-warning) +- [TraceLevel.Information](/powerquery-m/tracelevel-information) - [TraceLevel.Verbose](/powerquery-m/tracelevel-verbose) - -## Example 1 + +## Example 1 Trace the message before invoking Text.From function and return the result. **Usage** -``` +```powerquery-m Diagnostics.Trace(TraceLevel.Information, "TextValueFromNumber", () => Text.From(123), true) ``` diff --git a/query-languages/m/double-from.md b/query-languages/m/double-from.md index 4e3cfe04e..1d97b2dce 100644 --- a/query-languages/m/double-from.md +++ b/query-languages/m/double-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Double.From" title: "Double.From" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # Double.From @@ -10,10 +10,10 @@ ms.date: 4/13/2022
 Double.From(value as any, optional culture as nullable text) as nullable number
 
- + ## About -Returns a Double `number` value from the given `value`. If the given `value` is `null`, **Double.From** returns `null`. If the given `value` is `number` within the range of Double, `value` is returned, otherwise an error is returned. If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](/powerquery-m/number-fromtext). An optional `culture` may also be provided (for example, "en-US"). +Returns a Double `number` value from the given `value`. If the given `value` is `null`, **Double.From** returns `null`. If the given `value` is `number` within the range of Double, `value` is returned, otherwise an error is returned. If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](number-fromtext.md). An optional `culture` may also be provided (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/duration-days.md b/query-languages/m/duration-days.md index 813907994..5a588f26c 100644 --- a/query-languages/m/duration-days.md +++ b/query-languages/m/duration-days.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.Days" title: "Duration.Days" -ms.date: 7/18/2022 +ms.date: 10/7/2022 --- # Duration.Days @@ -10,7 +10,7 @@ ms.date: 7/18/2022
 Duration.Days(duration as nullable duration) as nullable number
 
- + ## About Returns the days portion of `duration`. diff --git a/query-languages/m/duration-torecord.md b/query-languages/m/duration-torecord.md index ff1d25f21..5a919ecb2 100644 --- a/query-languages/m/duration-torecord.md +++ b/query-languages/m/duration-torecord.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.ToRecord" title: "Duration.ToRecord" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # Duration.ToRecord @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 Duration.ToRecord(duration as duration) as record
 
- + ## About Returns a record containing the parts the duration value, `duration`. diff --git a/query-languages/m/duration-totaldays.md b/query-languages/m/duration-totaldays.md index 3ede07eb3..ec130da27 100644 --- a/query-languages/m/duration-totaldays.md +++ b/query-languages/m/duration-totaldays.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.TotalDays" title: "Duration.TotalDays" -ms.date: 7/18/2022 +ms.date: 10/7/2022 --- # Duration.TotalDays @@ -10,7 +10,7 @@ ms.date: 7/18/2022
 Duration.TotalDays(duration as nullable duration) as nullable number
 
- + ## About Returns the total days spanned by `duration`. diff --git a/query-languages/m/dynamic-values.md b/query-languages/m/dynamic-values.md index afbc24c1c..a5e60f9f8 100644 --- a/query-languages/m/dynamic-values.md +++ b/query-languages/m/dynamic-values.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Dynamic values" title: "Dynamic values" -ms.date: 5/16/2022 +ms.date: 10/7/2022 --- # Dynamic values The Power Query M formula language includes these dynamic values. ## List of dynamic values - -|Name|Description| -|------------|---------------| + +|Name|Description| +|------------|---------------| |[Culture.Current](culture-current.md)|Returns the name of the current culture for the application.| |[TimeZone.Current](timezone-current.md)|Returns the name of the current time zone for the application.| diff --git a/query-languages/m/embedded-value.md b/query-languages/m/embedded-value.md index 302191936..bec5f7075 100644 --- a/query-languages/m/embedded-value.md +++ b/query-languages/m/embedded-value.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Embedded.Value" title: "Embedded.Value" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Embedded.Value @@ -12,4 +12,5 @@ Embedded.Value(value as any, path as text) as any ## About + Accesses a value by name in an embedded mashup. diff --git a/query-languages/m/enumerations.md b/query-languages/m/enumerations.md index cc27b38e6..5393c589c 100644 --- a/query-languages/m/enumerations.md +++ b/query-languages/m/enumerations.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Enumerations" title: "Accessing data enumerations" -ms.date: 6/27/2022 +ms.date: 10/7/2022 --- # Enumerations The Power Query M formula language includes these enumerations. ## List of enumerations - -|Name|Description| -|------------|---------------| + +|Name|Description| +|------------|---------------| |[AccessControlKind.Type](accesscontrolkind-type.md)|Specifies the kind of access control.| |[BinaryEncoding.Type](binaryencoding-type.md)|Specifies the type of binary encoding.| |[BinaryOccurrence.Type](binaryoccurrence-type.md)|Specifies how many times the item is expected to appear in the group.| @@ -39,5 +39,5 @@ The Power Query M formula language includes these enumerations. |[SapHanaDistribution.Type](saphanadistribution-type.md)|Specifies valid options for SAP HANA distribution option.| |[SapHanaRangeOperator.Type](saphanarangeoperator-type.md)|Specifies a range operator for SAP HANA range input parameters.| |[TextEncoding.Type](textencoding-type.md) | Specifies the text encoding type.| -|[TraceLevel.Type](tracelevel-type.md)|Specifies the trace level.| +|[TraceLevel.Type](tracelevel-type.md)|Specifies the trace level.| |[WebMethod.Type](webmethod-type.md) |Specifies an HTTP method.| diff --git a/query-languages/m/error-record.md b/query-languages/m/error-record.md index c85245bb4..3623eb1f0 100644 --- a/query-languages/m/error-record.md +++ b/query-languages/m/error-record.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Error.Record" title: "Error.Record" -ms.date: 1/24/2022 +ms.date: 10/7/2022 --- # Error.Record @@ -10,7 +10,7 @@ ms.date: 1/24/2022
 Error.Record(reason as text, optional message as nullable text, optional detail as any, optional parameters as nullable list) as record
 
- + ## About Returns an error record from the provided text values for reason, message and detail. diff --git a/query-languages/m/errors.md b/query-languages/m/errors.md index 4fb0e5845..e9efcffa2 100644 --- a/query-languages/m/errors.md +++ b/query-languages/m/errors.md @@ -2,74 +2,74 @@ description: "Learn more about: Errors" title: "Errors" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 10/7/2022 --- # Errors -An **error** in Power Query M formula language is an indication that the process of evaluating an expression could not produce a value. Errors are raised by operators and functions encountering **error** conditions or by using the **error** expression. Errors are handled using the **try** expression. When an error is raised, a value is specified that can be used to indicate why the error occurred. - +An *error* in Power Query M formula language is an indication that the process of evaluating an expression could not produce a value. Errors are raised by operators and functions encountering **error** conditions or by using the **error** expression. Errors are handled using the **try** expression. When an error is raised, a value is specified that can be used to indicate why the error occurred. + ## Try expression -A try expression converts values and errors into a record value that indicates whether the try expression handled an error, or not, and either the proper value or the error record it extracted when handling the error. For example, consider the following expression that raises an error and then handles it right away: - +A try expression converts values and errors into a record value that indicates whether the try expression handled an error, or not, and either the proper value or the error record it extracted when handling the error. For example, consider the following expression that raises an error and then handles it right away: + ```powerquery-m -try error "negative unit count" +try error "negative unit count" ``` -This expression evaluates to the following nested record value, explaining the `[HasError], [Error]`, and `[Message]` field lookups in the unit-price example before. - -## Error record - +This expression evaluates to the following nested record value, explaining the `[HasError], [Error]`, and `[Message]` field lookups in the unit-price example before. + +## Error record + ```powerquery-m -[ - HasError = true, - Error = +[ + HasError = true, + Error = [ - Reason = "Expression.Error", - Message = "negative unit count", - Detail = null - ] -] + Reason = "Expression.Error", + Message = "negative unit count", + Detail = null + ] +] ``` -A common case is to replace errors with default values. The try expression can be used with an optional otherwise clause to achieve just that in a compact form: - +A common case is to replace errors with default values. The try expression can be used with an optional otherwise clause to achieve just that in a compact form: + ```powerquery-m -try error "negative unit count" otherwise 42 -// equals 42 -``` - -## Error example - +try error "negative unit count" otherwise 42 +// equals 42 +``` + +## Error example + ```powerquery-m -let Sales = - [ - ProductName = "Fishing rod", - Revenue = 2000, - Units = 1000, - UnitPrice = if Units = 0 then error "No Units" - else Revenue / Units - ], - - //Get UnitPrice from Sales record - textUnitPrice = try Number.ToText(Sales[UnitPrice]), - Label = "Unit Price: " & - (if textUnitPrice[HasError] then textUnitPrice[Error][Message] - //Continue expression flow - else textUnitPrice[Value]) -in - Label +let Sales = + [ + ProductName = "Fishing rod", + Revenue = 2000, + Units = 1000, + UnitPrice = if Units = 0 then error "No Units" + else Revenue / Units + ], + + //Get UnitPrice from Sales record + textUnitPrice = try Number.ToText(Sales[UnitPrice]), + Label = "Unit Price: " & + (if textUnitPrice[HasError] then textUnitPrice[Error][Message] + //Continue expression flow + else textUnitPrice[Value]) +in + Label ``` -The previous example accesses the `Sales[UnitPrice]` field and formats the value producing the result: - +The previous example accesses the `Sales[UnitPrice]` field and formats the value producing the result: + ```powerquery-m -"Unit Price: 2" +"Unit Price: 2" ``` -If the Units field had been zero, then the `UnitPrice` field would have raised an error which would have been handled by the try. The resulting value would then have been: - +If the Units field had been zero, then the `UnitPrice` field would have raised an error which would have been handled by the try. The resulting value would then have been: + ```powerquery-m -"No Units" -``` +"No Units" +``` diff --git a/query-languages/m/essbase-cubes.md b/query-languages/m/essbase-cubes.md index 16146069d..20da246d2 100644 --- a/query-languages/m/essbase-cubes.md +++ b/query-languages/m/essbase-cubes.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Essbase.Cubes" title: "Essbase.Cubes" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # Essbase.Cubes @@ -11,9 +11,8 @@ ms.date: 02/03/2021 Essbase.Cubes(url as text, optional options as nullable record) as table -## About - -Returns a table of cubes grouped by Essbase server from an Essbase instance at APS server `url`. An optional record parameter, `options`, may be specified to control the following options: -- `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +## About +Returns a table of cubes grouped by Essbase server from an Essbase instance at APS server `url`. An optional record parameter, `options`, may be specified to control the following options: +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. diff --git a/query-languages/m/evaluation-model.md b/query-languages/m/evaluation-model.md index a1f03b452..41d9aee36 100644 --- a/query-languages/m/evaluation-model.md +++ b/query-languages/m/evaluation-model.md @@ -2,82 +2,81 @@ description: "Learn more about: Evaluation model" title: "Evaluation model" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 10/7/2022 --- # Evaluation model The evaluation model of the Power Query M formula language is modeled after the evaluation model commonly found in spreadsheets, where the order of calculations can be determined based on dependencies between the formulas in the cells. -If you have written formulas in a spreadsheet such as Excel, you may recognize the formulas on the left will result in the values on the right when calculated: - -![Evaluation Model 1](media/evaluation-model-1.png "Evaluation Model 1") - -![Evaluation Model 2](media/evaluation-model-2.png "Evaluation Model 2") - -In M, an expression can reference previous expressions by name, and the evaluation process will automatically determine the order in which referenced expressions are calculated. - -Let's use a record to produce an expression which is equivalent to the above spreadsheet example. When initializing the value of a field, you refer to other fields within the record by the name of the field, as follows: - +If you have written formulas in a spreadsheet such as Excel, you may recognize the formulas on the left will result in the values on the right when calculated: + +![Evaluation Model 1](media/evaluation-model-1.png "Evaluation Model 1") + +![Evaluation Model 2](media/evaluation-model-2.png "Evaluation Model 2") + +In M, an expression can reference previous expressions by name, and the evaluation process will automatically determine the order in which referenced expressions are calculated. + +Let's use a record to produce an expression which is equivalent to the above spreadsheet example. When initializing the value of a field, you refer to other fields within the record by the name of the field, as follows: + ```powerquery-m -[ - A1 = A2 * 2, - A2 = A3 + 1, - A3 = 1 -] +[ + A1 = A2 * 2, + A2 = A3 + 1, + A3 = 1 +] ``` -The above expression evaluates to the following record: - +The above expression evaluates to the following record: + ```powerquery-m -[ - A1 = 4, - A2 = 2, - A3 = 1 -] +[ + A1 = 4, + A2 = 2, + A3 = 1 +] ``` -Records can be contained within, or **nested**, within other records. You can use the **lookup operator** ([ ]) to access the fields of a record by name. For example, the following record has a field named Sales containing a record, and a field named Total that accesses the FirstHalf and SecondHalf fields of the Sales record: - +Records can be contained within, or **nested**, within other records. You can use the **lookup operator** ([ ]) to access the fields of a record by name. For example, the following record has a field named Sales containing a record, and a field named Total that accesses the FirstHalf and SecondHalf fields of the Sales record: + ```powerquery-m -[ - Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], - Total = Sales[FirstHalf] + Sales[SecondHalf] -] +[ + Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], + Total = Sales[FirstHalf] + Sales[SecondHalf] +] ``` -The above expression evaluates to the following record: - +The above expression evaluates to the following record: + ```powerquery-m -[ - Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], - Total = 2100 -] +[ + Sales = [ FirstHalf = 1000, SecondHalf = 1100 ], + Total = 2100 +] ``` -You use the **positional index operator** ({ }) to access an item in a list by its numeric index. The values within a list are referred to using a zero-based index from the beginning of the list. For example, the indexes 0 and 1 are used to reference the first and second items in the list below: - +You use the **positional index operator** ({ }) to access an item in a list by its numeric index. The values within a list are referred to using a zero-based index from the beginning of the list. For example, the indexes 0 and 1 are used to reference the first and second items in the list below: + ```powerquery-m -[ - Sales = - { - [ - Year = 2007, - FirstHalf = 1000, - SecondHalf = 1100, - Total = FirstHalf + SecondHalf // equals 2100 - ], - [ - Year = 2008, - FirstHalf = 1200, - SecondHalf = 1300, - Total = FirstHalf + SecondHalf // equals 2500 - ] - }, - #"Total Sales" = Sales{0}[Total] + Sales{1}[Total] // equals 4600 -] +[ + Sales = + { + [ + Year = 2007, + FirstHalf = 1000, + SecondHalf = 1100, + Total = FirstHalf + SecondHalf // equals 2100 + ], + [ + Year = 2008, + FirstHalf = 1200, + SecondHalf = 1300, + Total = FirstHalf + SecondHalf // equals 2500 + ] + }, + #"Total Sales" = Sales{0}[Total] + Sales{1}[Total] // equals 4600 +] ``` - -## Lazy and eager evaluation +## Lazy and eager evaluation -**List**, **Record**, and **Table** member expressions, as well as **let** expressions (Go to [Expressions, values, and let expression](expressions-values-and-let-expression.md)), are evaluated using **lazy evaluation**. That is, they are evaluated when needed. All other expressions are evaluated using **eager evaluation**. That is, they are evaluated immediately when encountered during the evaluation process. A good way to think about this is to remember that evaluating a list or record expression will return a list or record value that knows how its list items or record fields need to computed, when requested (by lookup or index operators). +**List**, **Record**, and **Table** member expressions, as well as **let** expressions (Go to [Expressions, values, and let expression](expressions-values-and-let-expression.md)), are evaluated using **lazy evaluation**. That is, they are evaluated when needed. All other expressions are evaluated using **eager evaluation**. That is, they are evaluated immediately when encountered during the evaluation process. A good way to think about this is to remember that evaluating a list or record expression will return a list or record value that knows how its list items or record fields need to computed, when requested (by lookup or index operators). diff --git a/query-languages/m/excel-currentworkbook.md b/query-languages/m/excel-currentworkbook.md index 119b6402d..1c5f8ccd9 100644 --- a/query-languages/m/excel-currentworkbook.md +++ b/query-languages/m/excel-currentworkbook.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Excel.CurrentWorkbook" title: "Excel.CurrentWorkbook" -ms.date: 7/16/2020 +ms.date: 10/7/2022 --- # Excel.CurrentWorkbook ## Syntax
-Excel.CurrentWorkbook() as table  
+Excel.CurrentWorkbook() as table
 
- -## About -Returns the contents of the current Excel workbook. +## About + +Returns the contents of the current Excel workbook. diff --git a/query-languages/m/excel-shapetable.md b/query-languages/m/excel-shapetable.md index 0ff5aac0d..8aeaa1201 100644 --- a/query-languages/m/excel-shapetable.md +++ b/query-languages/m/excel-shapetable.md @@ -1,10 +1,10 @@ --- description: "Learn more about: Excel.ShapeTable" title: "Excel.ShapeTable" -ms.date: 1/24/2022 +ms.date: 10/7/2022 --- # Excel.ShapeTable - + ## Syntax
diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md
index 9b1d60651..855498e79 100644
--- a/query-languages/m/excel-workbook.md
+++ b/query-languages/m/excel-workbook.md
@@ -1,10 +1,10 @@
 ---
 description: "Learn more about: Excel.Workbook"
 title: "Excel.Workbook"
-ms.date: 4/13/2022
+ms.date: 10/7/2022
 ---
 # Excel.Workbook
-  
+
 ## Syntax
 
 
@@ -13,7 +13,7 @@ Excel.Workbook(workbook as binary, optional useHeaders as any, opt
 
 ## About
 
-Returns the contents of the Excel workbook.  
+Returns the contents of the Excel workbook.
 
 * `useHeaders` can be null, a logical (true/false) value indicating whether the first row of each returned table should be treated as a header, or an options record. Default: false.
 * `delayTypes` can be null or a logical (true/false) value indicating whether the columns of each returned table should be left untyped. Default: false.
diff --git a/query-languages/m/exchange-contents.md b/query-languages/m/exchange-contents.md
index ea149a099..1f83daa25 100644
--- a/query-languages/m/exchange-contents.md
+++ b/query-languages/m/exchange-contents.md
@@ -1,16 +1,16 @@
 ---
 description: "Learn more about: Exchange.Contents"
 title: "Exchange.Contents"
-ms.date: 7/29/2019
+ms.date: 10/7/2022
 ---
 # Exchange.Contents
 
 ## Syntax
 
 
-Exchange.Contents (optional mailboxAddress as nullable text) as table  
+Exchange.Contents (optional mailboxAddress as nullable text) as table
 
- -## About + +## About + Returns a table of contents from the Microsoft Exchange account `mailboxAddress`. If `mailboxAddress` is not specified, the default account for the credential will be used. - diff --git a/query-languages/m/expression-constant.md b/query-languages/m/expression-constant.md index bd774b1bf..2c7f16c0a 100644 --- a/query-languages/m/expression-constant.md +++ b/query-languages/m/expression-constant.md @@ -1,17 +1,16 @@ --- description: "Learn more about: Expression.Constant" title: "Expression.Constant" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Expression.Constant - ## Syntax
-Expression.Constant(value as any) as text  
+Expression.Constant(value as any) as text
 
- + ## About Returns the M source code representation of a constant value. diff --git a/query-languages/m/expression-evaluate.md b/query-languages/m/expression-evaluate.md index 232beb1f9..9a565c488 100644 --- a/query-languages/m/expression-evaluate.md +++ b/query-languages/m/expression-evaluate.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Expression.Evaluate" title: "Expression.Evaluate" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Expression.Evaluate @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Expression.Evaluate(document as text, optional environment as nullable record) as any
 
- + ## About Returns the result of evaluating an M expression `document`, with the available identifiers that can be referenced defined by `environment`. diff --git a/query-languages/m/expression-identifier.md b/query-languages/m/expression-identifier.md index 77eadd0de..c3a15018c 100644 --- a/query-languages/m/expression-identifier.md +++ b/query-languages/m/expression-identifier.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Expression.Identifier" title: "Expression.Identifier" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Expression.Identifier @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Expression.Identifier(name as text) as text
 
- + ## About Returns the M source code representation of an identifier `name`. diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index de49e251a..de1d30c5a 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -2,248 +2,249 @@ description: "Learn more about: Expressions, values, and let expression" title: "Expressions, values, and let expression" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 10/7/2022 --- # Expressions, values, and let expression -A Power Query M formula language query is composed of formula **expression** steps that create a mashup query. A formula expression can be evaluated (computed), yielding a value. The **let** expression encapsulates a set of values to be computed, assigned names, and then used in a subsequent expression that follows the **in** statement. For example, a let expression could contain a **Source** variable that equals the value of **Text.Proper()** and yields a text value in proper case. +A Power Query M formula language query is composed of formula **expression** steps that create a mashup query. A formula expression can be evaluated (computed), yielding a value. The **let** expression encapsulates a set of values to be computed, assigned names, and then used in a subsequent expression that follows the **in** statement. For example, a let expression could contain a **Source** variable that equals the value of **Text.Proper()** and yields a text value in proper case. ## Let expression - + ```powerquery-m -let - Source = Text.Proper("hello world") -in - Source +let + Source = Text.Proper("hello world") +in + Source ``` -In the example above, Text.Proper("hello world") is evaluated to "Hello World". - -The next sections describe value types in the language. - +In the example above, Text.Proper("hello world") is evaluated to "Hello World". + +The next sections describe value types in the language. + ## Primitive value -A **primitive** value is single-part value, such as a number, logical, text, or null. A null value can be used to indicate the absence of any data. - -|Type|Example value| -|--------|-----------------| -|Binary|00 00 00 02 // number of points (2)| -|Date|5/23/2015| -|DateTime|5/23/2015 12:00:00 AM| -|DateTimeZone|5/23/2015 12:00:00 AM -08:00| -|Duration|15:35:00| -|Logical|true and false| -|Null|null| -|Number|0, 1, -1, 1.5, and 2.3e-5| -|Text|"abc"| -|Time|12:34:12 PM| - +A **primitive** value is single-part value, such as a number, logical, text, or null. A null value can be used to indicate the absence of any data. + +|Type|Example value| +|--------|-----------------| +|Binary|00 00 00 02 // number of points (2)| +|Date|5/23/2015| +|DateTime|5/23/2015 12:00:00 AM| +|DateTimeZone|5/23/2015 12:00:00 AM -08:00| +|Duration|15:35:00| +|Logical|true and false| +|Null|null| +|Number|0, 1, -1, 1.5, and 2.3e-5| +|Text|"abc"| +|Time|12:34:12 PM| + ## Function value -A **Function** is a value that, when invoked with arguments, produces a new value. Functions are written by listing the function’s **parameters** in parentheses, followed by the goes-to symbol =>, followed by the expression defining the function. For example, to create a function called “MyFunction” that has two parameters and performs a calculation on parameter1 and parameter2: - +A **Function** is a value that, when invoked with arguments, produces a new value. Functions are written by listing the function’s **parameters** in parentheses, followed by the goes-to symbol =>, followed by the expression defining the function. For example, to create a function called “MyFunction” that has two parameters and performs a calculation on parameter1 and parameter2: + +```powerquery-m +let + MyFunction = (parameter1, parameter2) => (parameter1 + parameter2) / 2 +in + MyFunction +``` + +Calling the MyFunction() returns the result: + ```powerquery-m -let - MyFunction = (parameter1, parameter2) => (parameter1 + parameter2) / 2 -in - MyFunction - -Calling the MyFunction() returns the result: - -let - Source = MyFunction(2, 4) -in - Source +let + Source = MyFunction(2, 4) +in + Source ``` -This code produces the value of 3. - +This code produces the value of 3. + ## Structured data values -The M language supports the following structured data values: - -- [List](#list) - -- [Record](#record) - -- [Table](#table) - -- [Additional structured data examples](#additional) - -> [!NOTE] -> Structured data can contain any M value. To see a couple of examples, see [Additional structured data examples](#additional). - +The M language supports the following structured data values: + +- [List](#list) + +- [Record](#record) + +- [Table](#table) + +- [Additional structured data examples](#additional) + +> [!NOTE] +> Structured data can contain any M value. To see a couple of examples, see [Additional structured data examples](#additional). + ### List -A List is a zero-based ordered sequence of values enclosed in curly brace characters { }. The curly brace characters { } are also used to retrieve an item from a List by index position. See \[List value](#_List_value). - -> [!NOTE] -> Power Query M supports an infinite list size, but if a list is written as a literal, the list has a fixed length. For example, {1, 2, 3} has a fixed length of 3. - -The following are some **List** examples. - -|Value|Type| -|---------|--------| -|{123, true, "A"}|List containing a number, a logical, and text.| -|{1, 2, 3}|List of numbers| -|{
{1, 2, 3},
{4, 5, 6}
}|List of List of numbers| -|{
[CustomerID = 1, Name = "Bob", Phone = "123-4567"],
[CustomerID = 2, Name = "Jim", Phone = "987-6543"]
}|List of Records| -|{123, true, "A"}{0}|Get the value of the first item in a List. This expression returns the value 123.| -|{
{1, 2, 3},
{4, 5, 6}
}{0}{1}|Get the value of the second item from the first List element. This expression returns the value 2.| - +A List is a zero-based ordered sequence of values enclosed in curly brace characters { }. The curly brace characters { } are also used to retrieve an item from a List by index position. See \[List value](#_List_value). + +> [!NOTE] +> Power Query M supports an infinite list size, but if a list is written as a literal, the list has a fixed length. For example, {1, 2, 3} has a fixed length of 3. + +The following are some **List** examples. + +|Value|Type| +|---------|--------| +|{123, true, "A"}|List containing a number, a logical, and text.| +|{1, 2, 3}|List of numbers| +|{
    {1, 2, 3},
    {4, 5, 6}
}|List of List of numbers| +|{
    [CustomerID = 1, Name = "Bob", Phone = "123-4567"],
    [CustomerID = 2, Name = "Jim", Phone = "987-6543"]
}|List of Records| +|{123, true, "A"}{0}|Get the value of the first item in a List. This expression returns the value 123.| +|{
    {1, 2, 3},
    {4, 5, 6}
}{0}{1}|Get the value of the second item from the first List element. This expression returns the value 2.| ### Record -A **Record** is a set of fields. A **field** is a name/value pair where the name is a text value that is unique within the field’s record. The syntax for record values allows the names to be written without quotes, a form also referred to as **identifiers**. An identifier can take the following two forms: - -- identifier_name such as OrderID. - -- \#"identifier name" such as #"Today's data is: ". - -The following is a record containing fields named "OrderID", "CustomerID", "Item", and "Price" with values 1, 1, "Fishing rod", and 100.00. Square brace characters [ ] denote the beginning and end of a record expression, and are used to get a field value from a record. The follow examples show a record and how to get the Item field value. - -Here's an example record: - +A **Record** is a set of fields. A **field** is a name/value pair where the name is a text value that is unique within the field’s record. The syntax for record values allows the names to be written without quotes, a form also referred to as **identifiers**. An identifier can take the following two forms: + +- identifier_name such as OrderID. + +- \#"identifier name" such as #"Today's data is: ". + +The following is a record containing fields named "OrderID", "CustomerID", "Item", and "Price" with values 1, 1, "Fishing rod", and 100.00. Square brace characters [ ] denote the beginning and end of a record expression, and are used to get a field value from a record. The follow examples show a record and how to get the Item field value. + +Here's an example record: + ```powerquery-m -let Source = - [ - OrderID = 1, - CustomerID = 1, - Item = "Fishing rod", - Price = 100.00 - ] -in Source +let Source = + [ + OrderID = 1, + CustomerID = 1, + Item = "Fishing rod", + Price = 100.00 + ] +in Source ``` -To get the value of an Item, you use square brackets as Source[Item]: - +To get the value of an Item, you use square brackets as Source[Item]: + ```powerquery-m -let Source = - [ - OrderID = 1, - CustomerID = 1, - Item = "Fishing rod", - Price = 100.00 - ] -in Source[Item] //equals "Fishing rod" -``` - +let Source = + [ + OrderID = 1, + CustomerID = 1, + Item = "Fishing rod", + Price = 100.00 + ] +in Source[Item] //equals "Fishing rod" +``` + ### Table -A **Table** is a set of values organized into named columns and rows. The column type can be implicit or explicit. You can use #table to create a list of column names and list of rows. A **Table** of values is a List in a **List**. The curly brace characters { } are also used to retrieve a row from a **Table** by index position (see [Example 3 – Get a row from a table by index position](#tableIndex)). - -#### Example 1 - Create a table with implicit column types - +A **Table** is a set of values organized into named columns and rows. The column type can be implicit or explicit. You can use #table to create a list of column names and list of rows. A **Table** of values is a List in a **List**. The curly brace characters { } are also used to retrieve a row from a **Table** by index position (go to [Example 3 – Get a row from a table by index position](#tableIndex)). + +#### Example 1 - Create a table with implicit column types + ```powerquery-m -let - Source = #table( - {"OrderID", "CustomerID", "Item", "Price"}, - { - {1, 1, "Fishing rod", 100.00}, - {2, 1, "1 lb. worms", 5.00} - }) -in - Source -``` - -#### Example 2 – Create a table with explicit column types - +let + Source = #table( + {"OrderID", "CustomerID", "Item", "Price"}, + { + {1, 1, "Fishing rod", 100.00}, + {2, 1, "1 lb. worms", 5.00} + }) +in + Source +``` + +#### Example 2 – Create a table with explicit column types + ```powerquery-m -let - Source = #table( - type table [OrderID = number, CustomerID = number, Item = text, Price = number], - { - {1, 1, "Fishing rod", 100.00}, - {2, 1, "1 lb. worms", 5.00} - } - ) -in - Source +let + Source = #table( + type table [OrderID = number, CustomerID = number, Item = text, Price = number], + { + {1, 1, "Fishing rod", 100.00}, + {2, 1, "1 lb. worms", 5.00} + } + ) +in + Source ``` -Both of the examples above creates a table with the following shape: - -|OrderID|CustomerID|Item|Price| -|-----------|--------------|--------|---------| -|1|1|Fishing rod|100.00| -|2|1|1 lb. worms|5.00| - -#### Example 3 – Get a row from a table by index position - +Both of the examples above creates a table with the following shape: + +|OrderID|CustomerID|Item|Price| +|-----------|--------------|--------|---------| +|1|1|Fishing rod|100.00| +|2|1|1 lb. worms|5.00| + +#### Example 3 – Get a row from a table by index position + ```powerquery-m -let - Source = #table( - type table [OrderID = number, CustomerID = number, Item = text, Price = number], - { - {1, 1, "Fishing rod", 100.00}, - {2, 1, "1 lb. worms", 5.00} - } - ) -in - Source{1} +let + Source = #table( + type table [OrderID = number, CustomerID = number, Item = text, Price = number], + { + {1, 1, "Fishing rod", 100.00}, + {2, 1, "1 lb. worms", 5.00} + } + ) +in + Source{1} ``` -This expression returns the follow record: - -|Field|Value| -|-|-| -|**OrderID**|2| -|**CustomerID**|1| -|**Item**|1 lb. worms| -|**Price**|5| - +This expression returns the follow record: + +|Field|Value| +|-|-| +|**OrderID**|2| +|**CustomerID**|1| +|**Item**|1 lb. worms| +|**Price**|5| + ### Additional structured data examples -Structured data can contain any M value. Here are some examples: - -#### Example 1 - List with \[Primitive](#_Primitive_value_1) values, \[Function](#_Function_value), and \[Record](#_Record_value) - +Structured data can contain any M value. Here are some examples: + +#### Example 1 - List with \[Primitive](#_Primitive_value_1) values, \[Function](#_Function_value), and \[Record](#_Record_value) + ```powerquery-m -let - Source = -{ - 1, - "Bob", - DateTime.ToText(DateTime.LocalNow(), "yyyy-MM-dd"), - [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0] -} -in - Source +let + Source = +{ + 1, + "Bob", + DateTime.ToText(DateTime.LocalNow(), "yyyy-MM-dd"), + [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0] +} +in + Source ``` -Evaluating this expression can be visualized as: - -![List Example 1](media/list-example-1.png "List Example 1") - -### Example 2 - Record containing Primitive values and nested Records - +Evaluating this expression can be visualized as: + +![List Example 1](media/list-example-1.png "List Example 1") + +### Example 2 - Record containing Primitive values and nested Records + ```powerquery-m -let - Source = [CustomerID = 1, Name = "Bob", Phone = "123-4567", Orders = - { - [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0], - [OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0] - }] -in - Source +let + Source = [CustomerID = 1, Name = "Bob", Phone = "123-4567", Orders = + { + [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0], + [OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0] + }] +in + Source ``` -Evaluating this expression can be visualized as: - -![List Example 2](media/list-example-2.png "List Example 2") - +Evaluating this expression can be visualized as: + +![List Example 2](media/list-example-2.png "List Example 2") + > [!NOTE] -> Although many values can be written literally as an expression, a value is not an expression. For example, the expression 1 evaluates to the value 1; the expression 1+1 evaluates to the value 2. This distinction is subtle, but important. Expressions are recipes for evaluation; values are the results of evaluation. - +> Although many values can be written literally as an expression, a value is not an expression. For example, the expression 1 evaluates to the value 1; the expression 1+1 evaluates to the value 2. This distinction is subtle, but important. Expressions are recipes for evaluation; values are the results of evaluation. + ### If expression -The **if** expression selects between two expressions based on a logical condition. For example: - +The **if** expression selects between two expressions based on a logical condition. For example: + ```powerquery-m -if 2 > 1 then - 2 + 2 -else - 1 + 1 +if 2 > 1 then + 2 + 2 +else + 1 + 1 ``` -The first expression (2 + 2) is selected if the logical expression (2 > 1) is true, and the second expression (1 + 1) is selected if it is false. The selected expression (in this case 2 + 2) is evaluated and becomes the result of the **if** expression (4). +The first expression (2 + 2) is selected if the logical expression (2 > 1) is true, and the second expression (1 + 1) is selected if it is false. The selected expression (in this case 2 + 2) is evaluated and becomes the result of the **if** expression (4). diff --git a/query-languages/m/file-contents.md b/query-languages/m/file-contents.md index d24d05ff9..fc3402561 100644 --- a/query-languages/m/file-contents.md +++ b/query-languages/m/file-contents.md @@ -1,7 +1,7 @@ --- description: "Learn more about: File.Contents" title: "File.Contents" -ms.date: 9/13/2021 +ms.date: 10/7/2022 --- # File.Contents @@ -10,7 +10,7 @@ ms.date: 9/13/2021
 File.Contents(path as text, optional options as nullable record) as binary
 
- -## About + +## About Returns the contents of the file, `path`, as binary. The `options` parameter is currently intended for internal use only. diff --git a/query-languages/m/folder-contents.md b/query-languages/m/folder-contents.md index 648ea3f5a..9580e2fb0 100644 --- a/query-languages/m/folder-contents.md +++ b/query-languages/m/folder-contents.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Folder.Contents" title: "Folder.Contents" -ms.date: 9/13/2021 +ms.date: 10/7/2022 --- # Folder.Contents @@ -10,7 +10,7 @@ ms.date: 9/13/2021
 Folder.Contents(path as text, optional options as nullable record) as table
 
- + ## About Returns a table containing a row for each folder and file found in the folder `path`. Each row contains properties of the folder or file and a link to its content. The `options` parameter is currently intended for internal use only. diff --git a/query-languages/m/folder-files.md b/query-languages/m/folder-files.md index e4791c118..3aba96fc0 100644 --- a/query-languages/m/folder-files.md +++ b/query-languages/m/folder-files.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Folder.Files" title: "Folder.Files" -ms.date: 9/13/2021 +ms.date: 10/7/2022 --- # Folder.Files - + ## Syntax
 Folder.Files(path as text, optional options as nullable record) as table
 
- + ## About Returns a table containing a row for each file found in the folder `path` and all its subfolders. Each row contains properties of the file and a link to its content. The `options` parameter is currently intended for internal use only. diff --git a/query-languages/m/function-invoke.md b/query-languages/m/function-invoke.md index cd7a83aeb..5091d126c 100644 --- a/query-languages/m/function-invoke.md +++ b/query-languages/m/function-invoke.md @@ -1,23 +1,23 @@ --- description: "Learn more about: Function.Invoke" title: "Function.Invoke" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # Function.Invoke ## Syntax
-Function.Invoke(function as function, args as list) as any 
+Function.Invoke(function as function, args as list) as any
 
- + ## About Invokes the given function using the specified list of arguments and returns the result. ## Example 1 -Invokes [Record.FieldNames](/powerquery-m/record-fieldnames) with one argument [A=1,B=2] +Invokes [Record.FieldNames](record-fieldnames.md) with one argument [A=1,B=2] **Usage** diff --git a/query-languages/m/function-invokeafter.md b/query-languages/m/function-invokeafter.md index 68593f8fb..5fc049e21 100644 --- a/query-languages/m/function-invokeafter.md +++ b/query-languages/m/function-invokeafter.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Function.InvokeAfter" title: "Function.InvokeAfter" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # Function.InvokeAfter ## Syntax
-Function.InvokeAfter(function as function, delay as duration) as any 
+Function.InvokeAfter(function as function, delay as duration) as any
 
- -## About + +## About + Returns the result of invoking `function` after duration `delay` has passed. - diff --git a/query-languages/m/function-isdatasource.md b/query-languages/m/function-isdatasource.md index f8d81cf98..d36acc4c6 100644 --- a/query-languages/m/function-isdatasource.md +++ b/query-languages/m/function-isdatasource.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Function.IsDataSource" title: "Function.IsDataSource" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # Function.IsDataSource @@ -9,8 +9,8 @@ ms.date: 7/30/2019
 Function.IsDataSource(function as function) as logical
-
- -## About +
+ +## About + Returns whether or not `function` is considered a data source. - diff --git a/query-languages/m/function-scalarvector.md b/query-languages/m/function-scalarvector.md index aa10d9baf..1fa9658f1 100644 --- a/query-languages/m/function-scalarvector.md +++ b/query-languages/m/function-scalarvector.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Function.ScalarVector" title: "Function.ScalarVector" -ms.date: 09/13/2018 +ms.date: 10/7/2022 --- # Function.ScalarVector @@ -9,9 +9,9 @@ ms.date: 09/13/2018
 Function.ScalarVector(scalarFunctionType as type, vectorFunction as function) as function
-
- -## About +
+ +## About Returns a scalar function of type `scalarFunctionType` that invokes `vectorFunction` with a single row of arguments and returns its single output. Additionally, when the scalar function is repeatedly applied for each row of a table of inputs, such as in Table.AddColumn, instead `vectorFunction` will be applied once for all inputs. diff --git a/query-languages/m/geography-fromwellknowntext.md b/query-languages/m/geography-fromwellknowntext.md index a992c26e5..b326a6c3d 100644 --- a/query-languages/m/geography-fromwellknowntext.md +++ b/query-languages/m/geography-fromwellknowntext.md @@ -1,9 +1,10 @@ --- description: "Learn more about: Geography.FromWellKnownText" title: "Geography.FromWellKnownText" -ms.date: 7/16/2020 +ms.date: 10/7/2022 --- # Geography.FromWellKnownText + ## Syntax
@@ -11,5 +12,5 @@ Geography.FromWellKnownText(input as nullable text) as nullable record
 
## About -Translates text representing a geographic value in Well-Known Text (WKT) format into a structured record. WKT is a standard format defined by the Open Geospatial Consortium (OGC) and is the typical serialization format used by databases including SQL Server. +Translates text representing a geographic value in Well-Known Text (WKT) format into a structured record. WKT is a standard format defined by the Open Geospatial Consortium (OGC) and is the typical serialization format used by databases including SQL Server. diff --git a/query-languages/m/geography-towellknowntext.md b/query-languages/m/geography-towellknowntext.md index 1f819aeb1..5e4f17171 100644 --- a/query-languages/m/geography-towellknowntext.md +++ b/query-languages/m/geography-towellknowntext.md @@ -1,9 +1,10 @@ --- description: "Learn more about: Geography.ToWellKnownText" title: "Geography.ToWellKnownText" -ms.date: 7/16/2020 +ms.date: 10/7/2022 --- # Geography.ToWellKnownText + ## Syntax
@@ -11,5 +12,5 @@ Geography.ToWellKnownText(input as nullable record, optional omitSRID<
 
## About -Translates a structured geographic point value into its Well-Known Text (WKT) representation as defined by the Open Geospatial Consortium (OGC), also the serialization format used by many databases including SQL Server. +Translates a structured geographic point value into its Well-Known Text (WKT) representation as defined by the Open Geospatial Consortium (OGC), also the serialization format used by many databases including SQL Server. diff --git a/query-languages/m/geographypoint-from.md b/query-languages/m/geographypoint-from.md index 7186f1a2b..2c805f617 100644 --- a/query-languages/m/geographypoint-from.md +++ b/query-languages/m/geographypoint-from.md @@ -1,9 +1,10 @@ --- description: "Learn more about: GeographyPoint.From" title: "GeographyPoint.From" -ms.date: 7/16/2020 +ms.date: 10/7/2022 --- # GeographyPoint.From + ## Syntax
@@ -11,5 +12,5 @@ GeographyPoint.From(longitude as number, latitude as number, optio
 
## About -Creates a record representing a geographic point from its constituent parts, such as longitude, latitude, and if present, elevation (Z) and measure (M). An optional spatial reference identifier (SRID) can be given if different from the default value (4326). +Creates a record representing a geographic point from its constituent parts, such as longitude, latitude, and if present, elevation (Z) and measure (M). An optional spatial reference identifier (SRID) can be given if different from the default value (4326). diff --git a/query-languages/m/geometry-fromwellknowntext.md b/query-languages/m/geometry-fromwellknowntext.md index 79e849c2e..12e43d072 100644 --- a/query-languages/m/geometry-fromwellknowntext.md +++ b/query-languages/m/geometry-fromwellknowntext.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Geometry.FromWellKnownText" title: "Geometry.FromWellKnownText" -ms.date: 7/16/2020 +ms.date: 10/7/2022 --- # Geometry.FromWellKnownText + ## Syntax
-Geometry.FromWellKnownText(input as nullable text) as nullable record
+Geometry.FromWellKnownText(input as nullable text) as nullable record
 
## About -Translates text representing a geometric value in Well-Known Text (WKT) format into a structured record. WKT is a standard format defined by the Open Geospatial Consortium (OGC) and is the typical serialization format used by databases including SQL Server. +Translates text representing a geometric value in Well-Known Text (WKT) format into a structured record. WKT is a standard format defined by the Open Geospatial Consortium (OGC) and is the typical serialization format used by databases including SQL Server. diff --git a/query-languages/m/geometry-towellknowntext.md b/query-languages/m/geometry-towellknowntext.md index 338852e94..131e0f892 100644 --- a/query-languages/m/geometry-towellknowntext.md +++ b/query-languages/m/geometry-towellknowntext.md @@ -1,9 +1,10 @@ --- description: "Learn more about: Geometry.ToWellKnownText" title: "Geometry.ToWellKnownText" -ms.date: 7/16/2020 +ms.date: 10/7/2022 --- # Geometry.ToWellKnownText + ## Syntax
@@ -11,5 +12,5 @@ Geometry.ToWellKnownText(input as nullable record, optional omitSRID
 
 ## About
-Translates a structured geometric point value into its Well-Known Text (WKT) representation as defined by the Open Geospatial Consortium (OGC), also the serialization format used by many databases including SQL Server.
 
+Translates a structured geometric point value into its Well-Known Text (WKT) representation as defined by the Open Geospatial Consortium (OGC), also the serialization format used by many databases including SQL Server.
diff --git a/query-languages/m/geometrypoint-from.md b/query-languages/m/geometrypoint-from.md
index af4a9e236..9186a0343 100644
--- a/query-languages/m/geometrypoint-from.md
+++ b/query-languages/m/geometrypoint-from.md
@@ -1,9 +1,10 @@
 ---
 description: "Learn more about: GeometryPoint.From"
 title: "GeometryPoint.From"
-ms.date: 7/16/2020
+ms.date: 10/7/2022
 ---
 # GeometryPoint.From
+
 ## Syntax
 
 
@@ -11,4 +12,5 @@ GeometryPoint.From(x as number, y as number, optional z as
 
## About + Creates a record representing a geometric point from its constituent parts, such as X coordinate, Y coordinate, and if present, Z coordinate and measure (M). An optional spatial reference identifier (SRID) can be given if different from the default value (0). diff --git a/query-languages/m/googleanalytics-accounts.md b/query-languages/m/googleanalytics-accounts.md index fcc027a19..2bb42c709 100644 --- a/query-languages/m/googleanalytics-accounts.md +++ b/query-languages/m/googleanalytics-accounts.md @@ -1,7 +1,7 @@ --- description: "Learn more about: GoogleAnalytics.Accounts" title: "GoogleAnalytics.Accounts" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # GoogleAnalytics.Accounts @@ -12,4 +12,5 @@ GoogleAnalytics.Accounts() as table
## About + Returns Google Analytics accounts that are accessible from the current credential. diff --git a/query-languages/m/graph-nodes.md b/query-languages/m/graph-nodes.md index 3425981ec..b22d375b4 100644 --- a/query-languages/m/graph-nodes.md +++ b/query-languages/m/graph-nodes.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Graph.Nodes" title: "Graph.Nodes" -ms.date: 9/22/2020 +ms.date: 10/7/2022 --- # Graph.Nodes ## Syntax -
 
+
 Graph.Nodes(graph as record) as list
 
## About + This function is intended for internal use only. diff --git a/query-languages/m/hdfs-contents.md b/query-languages/m/hdfs-contents.md index c5852a97d..f6149b294 100644 --- a/query-languages/m/hdfs-contents.md +++ b/query-languages/m/hdfs-contents.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Hdfs.Contents" title: "Hdfs.Contents" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Hdfs.Contents - + ## Syntax
 Hdfs.Contents(url as text) as table
-
+
+ +## About -## About Returns a table containing a row for each folder and file found at the folder URL, `url`, from a Hadoop file system. Each row contains properties of the folder or file and a link to its content. diff --git a/query-languages/m/hdfs-files.md b/query-languages/m/hdfs-files.md index e5596d851..30982065e 100644 --- a/query-languages/m/hdfs-files.md +++ b/query-languages/m/hdfs-files.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Hdfs.Files" title: "Hdfs.Files" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Hdfs.Files @@ -10,6 +10,7 @@ ms.date: 7/29/2019
 Hdfs.Files(url as text) as table
 
- -## About + +## About + Returns a table containing a row for each file found at the folder URL, `url`, and subfolders from a Hadoop file system. Each row contains properties of the file and a link to its content. diff --git a/query-languages/m/hdinsight-containers.md b/query-languages/m/hdinsight-containers.md index 8a7922ed8..d732c1b0c 100644 --- a/query-languages/m/hdinsight-containers.md +++ b/query-languages/m/hdinsight-containers.md @@ -1,7 +1,7 @@ --- description: "Learn more about: HdInsight.Containers" title: "HdInsight.Containers" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # HdInsight.Containers @@ -10,6 +10,7 @@ ms.date: 7/29/2019
 HdInsight.Containers(account as text) as table
 
- -## About + +## About + Returns a navigational table containing a row for each container found at the account URL, `account`, from an Azure storage vault. Each row contains a link to the container blobs. diff --git a/query-languages/m/hdinsight-contents.md b/query-languages/m/hdinsight-contents.md index 9ec2680a3..443434022 100644 --- a/query-languages/m/hdinsight-contents.md +++ b/query-languages/m/hdinsight-contents.md @@ -1,7 +1,7 @@ --- description: "Learn more about: HdInsight.Contents" title: "HdInsight.Contents" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # HdInsight.Contents @@ -10,6 +10,7 @@ ms.date: 7/29/2019
 HdInsight.Contents(account as text) as table
 
- -## About + +## About + Returns a navigational table containing a row for each container found at the account URL, `account`, from an Azure storage vault. Each row contains a link to the container blobs. diff --git a/query-languages/m/hdinsight-files.md b/query-languages/m/hdinsight-files.md index a7d5dd51a..883766ac9 100644 --- a/query-languages/m/hdinsight-files.md +++ b/query-languages/m/hdinsight-files.md @@ -1,7 +1,7 @@ --- description: "Learn more about: HdInsight.Files" title: "HdInsight.Files" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # HdInsight.Files @@ -11,5 +11,6 @@ ms.date: 7/29/2019 HdInsight.Files(account as text, containerName as text) as table -## About +## About + Returns a table containing a row for each blob file found at the container URL, `account`, from an Azure storage vault. Each row contains properties of the file and a link to its content. diff --git a/query-languages/m/html-table.md b/query-languages/m/html-table.md index c0d2954c1..994328afa 100644 --- a/query-languages/m/html-table.md +++ b/query-languages/m/html-table.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Html.Table" title: "Html.Table" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # Html.Table @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 Html.Table(html as any, columnNameSelectorPairs as list, optional options as nullable record) as table
 
- + ## About Returns a table containing the results of running the specified CSS selectors against the provided `html`. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: diff --git a/query-languages/m/identity-from.md b/query-languages/m/identity-from.md index bc042a801..ec7c9aff4 100644 --- a/query-languages/m/identity-from.md +++ b/query-languages/m/identity-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Identity.From" title: "Identity.From" -ms.date: 3/28/2019 +ms.date: 10/7/2022 --- # Identity.From @@ -11,6 +11,6 @@ ms.date: 3/28/2019 Identity.From(identityProvider as function, value as any) as record -## About +## About Creates an identity. diff --git a/query-languages/m/identity-ismemberof.md b/query-languages/m/identity-ismemberof.md index 22504c8a4..c95d716b8 100644 --- a/query-languages/m/identity-ismemberof.md +++ b/query-languages/m/identity-ismemberof.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Identity.IsMemberOf" title: "Identity.IsMemberOf" -ms.date: 3/28/2019 +ms.date: 10/7/2022 --- # Identity.IsMemberOf @@ -11,6 +11,6 @@ ms.date: 3/28/2019 Identity.IsMemberOf(identity as record, collection as record) as logical -## About +## About Determines whether an identity is a member of an identity collection. diff --git a/query-languages/m/identityprovider-default.md b/query-languages/m/identityprovider-default.md index 725fda781..8aca4d247 100644 --- a/query-languages/m/identityprovider-default.md +++ b/query-languages/m/identityprovider-default.md @@ -1,7 +1,7 @@ --- description: "Learn more about: IdentityProvider.Default" title: "IdentityProvider.Default" -ms.date: 3/28/2019 +ms.date: 10/7/2022 --- # IdentityProvider.Default @@ -11,6 +11,6 @@ ms.date: 3/28/2019 IdentityProvider.Default() as any -## About +## About The default identity provider for the current host. diff --git a/query-languages/m/informix-database.md b/query-languages/m/informix-database.md index f9d9efad9..140925e6b 100644 --- a/query-languages/m/informix-database.md +++ b/query-languages/m/informix-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Informix.Database" title: "Informix.Database" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # Informix.Database @@ -11,14 +11,15 @@ ms.date: 02/03/2021 Informix.Database(server as text, database as text, optional options as nullable record) as table -## About -Returns a table of SQL tables and views available in an Informix database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: +## About -* `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). -* `NavigationPropertyNameGenerator` : A function that is used for the creation of names for navigation properties. -* `Query` : A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -* `HierarchicalNavigation` : A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). +Returns a table of SQL tables and views available in an Informix database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: - The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). +* `NavigationPropertyNameGenerator`: A function that is used for the creation of names for navigation properties. +* `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `HierarchicalNavigation`: A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). + +The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/int16-from.md b/query-languages/m/int16-from.md index a0c3faef8..fc068858c 100644 --- a/query-languages/m/int16-from.md +++ b/query-languages/m/int16-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Int16.From" title: "Int16.From" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # Int16.From @@ -10,10 +10,10 @@ ms.date: 4/13/2022
 Int16.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
 
- + ## About -Returns a 16-bit integer `number` value from the given `value`. If the given `value` is `null`, **Int16.From** returns `null`. If the given `value` is `number` within the range of 16-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](/powerquery-m/roundingmode-toeven). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](/powerquery-m/number-fromtext). Refer to [Number.Round](/powerquery-m/number-round) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). +Returns a 16-bit integer `number` value from the given `value`. If the given `value` is `null`, **Int16.From** returns `null`. If the given `value` is `number` within the range of 16-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](roundingmode-type.md). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](number-fromtext.md). Refer to [Number.Round](number-round.md) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/int32-from.md b/query-languages/m/int32-from.md index f29da89ca..34a1586d7 100644 --- a/query-languages/m/int32-from.md +++ b/query-languages/m/int32-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Int32.From" title: "Int32.From" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # Int32.From @@ -10,10 +10,10 @@ ms.date: 4/13/2022
 Int32.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
 
- + ## About -Returns a 32-bit integer `number` value from the given `value`. If the given `value` is `null`, **Int32.From** returns `null`. If the given `value` is `number` within the range of 32-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](/powerquery-m/roundingmode-toeven). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](/powerquery-m/number-fromtext). Refer to [Number.Round](/powerquery-m/number-round) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). +Returns a 32-bit integer `number` value from the given `value`. If the given `value` is `null`, **Int32.From** returns `null`. If the given `value` is `number` within the range of 32-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](roundingmode-type.md). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](number-fromtext.md). Refer to [Number.Round](number-round.md) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/int64-from.md b/query-languages/m/int64-from.md index 3470c6dee..c4bb9c157 100644 --- a/query-languages/m/int64-from.md +++ b/query-languages/m/int64-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Int64.From" title: "Int64.From" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # Int64.From @@ -10,10 +10,10 @@ ms.date: 4/13/2022
 Int64.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
 
- + ## About -Returns a 64-bit integer `number` value from the given `value`. If the given `value` is `null`, **Int64.From** returns `null`. If the given `value` is `number` within the range of 64-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](/powerquery-m/roundingmode-toeven). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](/powerquery-m/number-fromtext). Refer to [Number.Round](/powerquery-m/number-round) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). +Returns a 64-bit integer `number` value from the given `value`. If the given `value` is `null`, **Int64.From** returns `null`. If the given `value` is `number` within the range of 64-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](roundingmode-type.md). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](number-fromtext.md). Refer to [Number.Round](number-round.md) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index 975dd57b0..c323810bd 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Int8.From" title: "Int8.From" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # Int8.From @@ -10,10 +10,10 @@ ms.date: 4/13/2022
 Int8.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
 
- + ## About -Returns a signed 8-bit integer `number` value from the given `value`. If the given `value` is `null`, **Int8.From** returns `null`. If the given `value` is `number` within the range of signed 8-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](/powerquery-m/roundingmode-toeven). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](/powerquery-m/number-fromtext). Refer to [Number.Round](/powerquery-m/number-round) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). +Returns a signed 8-bit integer `number` value from the given `value`. If the given `value` is `null`, **Int8.From** returns `null`. If the given `value` is `number` within the range of signed 8-bit integer without a fractional part, `value` is returned. If it has fractional part, then the number is rounded with the rounding mode specified. The default rounding mode is [RoundingMode.ToEven](roundingmode-type.md). If `value` is of any other type, it will first be converted to a `number` using [Number.FromText](number-fromtext.md). Refer to [Number.Round](number-round.md) for the available rounding modes. An optional `culture` may also be provided (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index cf3c27efe..84f67d942 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: ItemExpression.From" title: "ItemExpression.From" -ms.date: 3/16/2022 +ms.date: 10/7/2022 --- # ItemExpression.From @@ -16,7 +16,7 @@ ItemExpression.From(function as function) as record Returns the abstract syntax tree (AST) for the body of `function`, normalized into an *item expression*: - The function must be a 1-argument lambda. -- All references to the function parameter are replaced with `ItemExpression.Item`. +- All references to the function parameter are replaced with [ItemExpression.Item](itemexpression-item.md). - The AST will be simplified to contain only nodes of the kinds: - `Constant` - `Invocation` diff --git a/query-languages/m/json-document.md b/query-languages/m/json-document.md index 6f61bbff7..fcae511db 100644 --- a/query-languages/m/json-document.md +++ b/query-languages/m/json-document.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Json.Document" title: "Json.Document" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Json.Document @@ -11,5 +11,6 @@ ms.date: 7/29/2019 Json.Document(jsonText as any, optional encoding as nullable number) as any -## About +## About + Returns the content of the JSON document. diff --git a/query-languages/m/json-fromvalue.md b/query-languages/m/json-fromvalue.md index df721c587..917afbbcc 100644 --- a/query-languages/m/json-fromvalue.md +++ b/query-languages/m/json-fromvalue.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Json.FromValue" title: "Json.FromValue" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # Json.FromValue ## Syntax
-Json.FromValue(value as any, optional encoding as nullable number) as binary  
+Json.FromValue(value as any, optional encoding as nullable number) as binary
 
- + ## About Produces a JSON representation of a given value `value` with a text encoding specified by `encoding`. If `encoding` is omitted, UTF8 is used. Values are represented as follows: diff --git a/query-languages/m/limitclausekind-type.md b/query-languages/m/limitclausekind-type.md index c1870d801..4e18f7256 100644 --- a/query-languages/m/limitclausekind-type.md +++ b/query-languages/m/limitclausekind-type.md @@ -1,7 +1,7 @@ --- description: "Learn more about: LimitClauseKind.Type" title: "LimitClauseKind.Type" -ms.date: 5/16/2022 +ms.date: 10/7/2022 --- # LimitClauseKind.Type @@ -11,8 +11,8 @@ Describes the type of limit clause supported by the SQL dialect used by this dat ## Allowed values -|Name|Value|Description| -|------------|--|---------------| +|Name|Value|Description| +|------------|--|---------------| |**LimitClauseKind.None**|0|This SQL dialect does not support a limit clause.| |**LimitClauseKind.Top**|1|This SQL dialect supports a TOP specifier to limit the number of rows returned.| |**LimitClauseKind.LimitOffset**|2|This SQL dialect supports LIMIT and OFFSET specifiers to limit the number of rows returned.| diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index 24c1b8700..bccf9e22d 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Lines.FromBinary" title: "Lines.FromBinary" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # Lines.FromBinary @@ -12,4 +12,5 @@ Lines.FromBinary(binary as binary, optional quoteStyle as nullable ## About + Converts a binary value to a list of text values split at lines breaks. If a quote style is specified, then line breaks may appear within quotes. If includeLineSeparators is true, then the line break characters are included in the text. diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index d196f4893..9ff9d9325 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Lines.FromText" title: "Lines.FromText" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # Lines.FromText @@ -10,6 +10,10 @@ ms.date: 7/30/2019
 Lines.FromText(text as text, optional quoteStyle as nullable number, optional includeLineSeparators as nullable logical) as list
 
- -## About -Converts a text value to a list of text values split at lines breaks. If includeLineSeparators is true, then the line break characters are included in the text.
  • QuoteStyle.None: (default) No quoting behavior is needed.
  • QuoteStyle.Csv: Quoting is as per Csv. A double quote character is used to demarcate such regions, and a pair of double quote characters is used to indicate a single double quote character within such a region.
+ +## About + +Converts a text value to a list of text values split at lines breaks. If `includeLineSeparators` is true, then the line break characters are included in the text. + +* `QuoteStyle.None`: (default) No quoting behavior is needed. +* `QuoteStyle.Csv`: Quoting is as per Csv. A double quote character is used to demarcate such regions, and a pair of double quote characters is used to indicate a single double quote character within such a region. diff --git a/query-languages/m/lines-tobinary.md b/query-languages/m/lines-tobinary.md index e41ca5fd1..de2a55ec3 100644 --- a/query-languages/m/lines-tobinary.md +++ b/query-languages/m/lines-tobinary.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Lines.ToBinary" title: "Lines.ToBinary" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # Lines.ToBinary @@ -10,6 +10,7 @@ ms.date: 7/30/2019
 Lines.ToBinary(lines as list, optional lineSeparator as nullable text, optional encoding as nullable number, optional includeByteOrderMark as nullable logical) as binary
 
- -## About + +## About + Converts a list of text into a binary value using the specified encoding and lineSeparator.The specified lineSeparator is appended to each line. If not specified then the carriage return and line feed characters are used. diff --git a/query-languages/m/lines-totext.md b/query-languages/m/lines-totext.md index fd202a157..f00f78e17 100644 --- a/query-languages/m/lines-totext.md +++ b/query-languages/m/lines-totext.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Lines.ToText" title: "Lines.ToText" -ms.date: 7/30/2019 +ms.date: 10/7/2022 --- # Lines.ToText ## Syntax
-Lines.ToText(lines as list, optional lineSeparator as nullable text) as text 
+Lines.ToText(lines as list, optional lineSeparator as nullable text) as text
 
- -## About + +## About + Converts a list of text into a single text. The specified lineSeparator is appended to each line. If not specified then the carriage return and line feed characters are used. diff --git a/query-languages/m/list-accumulate.md b/query-languages/m/list-accumulate.md index a4f5c49db..fdfe17bb3 100644 --- a/query-languages/m/list-accumulate.md +++ b/query-languages/m/list-accumulate.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Accumulate" title: "List.Accumulate" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.Accumulate @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.Accumulate(list as list, seed as any, accumulator as function) as any
 
- + ## About Accumulates a summary value from the items in the list `list`, using `accumulator`. An optional seed parameter, `seed`, may be set. diff --git a/query-languages/m/list-alltrue.md b/query-languages/m/list-alltrue.md index 3d67135cd..c77f7b3c6 100644 --- a/query-languages/m/list-alltrue.md +++ b/query-languages/m/list-alltrue.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.AllTrue" title: "List.AllTrue" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.AllTrue @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.AllTrue(list as list) as logical
 
- + ## About Returns true if all expressions in the list `list` are true. diff --git a/query-languages/m/list-alternate.md b/query-languages/m/list-alternate.md index 13e1f1191..de49a1ba3 100644 --- a/query-languages/m/list-alternate.md +++ b/query-languages/m/list-alternate.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Alternate" title: "List.Alternate" -ms.date: 3/16/2022 +ms.date: 10/7/2022 --- # List.Alternate @@ -10,7 +10,7 @@ ms.date: 3/16/2022
 List.Alternate(list as list, count as number, optional repeatInterval as nullable number, optional offset as nullable number) as list
 
- + ## About Returns a list comprised of all the odd numbered offset elements in a list. Alternates between taking and skipping values from the list `list` depending on the parameters. diff --git a/query-languages/m/list-anytrue.md b/query-languages/m/list-anytrue.md index 7a3b1abf7..7a5a073e5 100644 --- a/query-languages/m/list-anytrue.md +++ b/query-languages/m/list-anytrue.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.AnyTrue" title: "List.AnyTrue" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.AnyTrue @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.AnyTrue(list as list) as logical
 
- + ## About Returns true if any expression in the list `list` is true. diff --git a/query-languages/m/list-average.md b/query-languages/m/list-average.md index 632918767..4490efedf 100644 --- a/query-languages/m/list-average.md +++ b/query-languages/m/list-average.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Average" title: "List.Average" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.Average @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.Average(list as list, optional precision as nullable number) as any 
 
- + ## About Returns the average value for the items in the list, `list`. The result is given in the same datatype as the values in the list. Only works with number, date, time, datetime, datetimezone and duration values. If the list is empty null is returned. diff --git a/query-languages/m/list-buffer.md b/query-languages/m/list-buffer.md index f68631ce0..2dc1ad285 100644 --- a/query-languages/m/list-buffer.md +++ b/query-languages/m/list-buffer.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Buffer" title: "List.Buffer" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # List.Buffer @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 List.Buffer(list as list) as list
 
- + ## About Buffers the list `list` in memory. The result of this call is a stable list. diff --git a/query-languages/m/list-conformtopagereader.md b/query-languages/m/list-conformtopagereader.md index 7de593122..4ac41e0b8 100644 --- a/query-languages/m/list-conformtopagereader.md +++ b/query-languages/m/list-conformtopagereader.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.ConformToPageReader" title: "List.ConformToPageReader" -ms.date: 8/21/2020 +ms.date: 10/7/2022 --- # List.ConformToPageReader @@ -10,6 +10,7 @@ ms.date: 8/21/2020
 List.ConformToPageReader(list as list, optional options as nullable record) as table
 
- -## About + +## About + This function is intended for internal use only. diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index bf5044a34..14bf8c2c3 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Contains" title: "List.Contains" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.Contains @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.Contains(list as list, value as any, optional equationCriteria as any) as logical 
 
- + ## About Indicates whether the list `list` contains the value `value`. Returns true if value is found in the list, false otherwise. An optional equation criteria value, `equationCriteria`, can be specified to control equality testing. diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index db74eea38..6f342af6a 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.ContainsAll" title: "List.ContainsAll" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.ContainsAll @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.ContainsAll(list as list, values as list, optional equationCriteria as any) as logical
 
- + ## About Indicates whether the list `list` includes all the values in another list, `values`. Returns true if value is found in the list, false otherwise. An optional equation criteria value, `equationCriteria`, can be specified to control equality testing. diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index 9f2bb55fa..b15ab4dd3 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.ContainsAny" title: "List.ContainsAny" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.ContainsAny @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.ContainsAny(list as list, values as list, optional equationCriteria as any) as logical
 
- + ## About Indicates whether the list `list` includes any of the values in another list, `values`. Returns true if value is found in the list, false otherwise. An optional equation criteria value, `equationCriteria`, can be specified to control equality testing. diff --git a/query-languages/m/list-count.md b/query-languages/m/list-count.md index ac64fdd6f..5868ea30a 100644 --- a/query-languages/m/list-count.md +++ b/query-languages/m/list-count.md @@ -1,16 +1,16 @@ --- description: "Learn more about: List.Count" title: "List.Count" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.Count ## Syntax
-List.Count(list as list) as number  
+List.Count(list as list) as number
 
- + ## About Returns the number of items in the list `list`. diff --git a/query-languages/m/list-covariance.md b/query-languages/m/list-covariance.md index de9baff70..d359f3009 100644 --- a/query-languages/m/list-covariance.md +++ b/query-languages/m/list-covariance.md @@ -1,16 +1,16 @@ --- description: "Learn more about: List.Covariance" title: "List.Covariance" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.Covariance ## Syntax
-List.Covariance(numberList1 as list, numberList2 as list) as nullable number 
+List.Covariance(numberList1 as list, numberList2 as list) as nullable number
 
- + ## About Returns the covariance between two lists, `numberList1` and `numberList2`. `numberList1` and `numberList2` must contain the same number of `number` values. diff --git a/query-languages/m/list-datetimezones.md b/query-languages/m/list-datetimezones.md index e9d60cac5..300e0a866 100644 --- a/query-languages/m/list-datetimezones.md +++ b/query-languages/m/list-datetimezones.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.DateTimeZones" title: "List.DateTimeZones" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # List.DateTimeZones @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 List.DateTimeZones(start as datetimezone, count as number, step as duration) as list 
 
- + ## About Returns a list of `datetimezone` values of size `count`, starting at `start`. The given increment, `step`, is a `duration` value that is added to every value. diff --git a/query-languages/m/list-difference.md b/query-languages/m/list-difference.md index a2a554d3e..88ecb63b6 100644 --- a/query-languages/m/list-difference.md +++ b/query-languages/m/list-difference.md @@ -1,14 +1,14 @@ --- description: "Learn more about: List.Difference" title: "List.Difference" -ms.date: 4/13/2022 +ms.date: 10/7/2022 --- # List.Difference
 List.Difference(list1 as list, list2 as list, optional equationCriteria as any) as list
 
- + ## About Returns the items in list `list1` that do not appear in list `list2`. Duplicate values are supported. An optional equation criteria value, `equationCriteria`, can be specified to control equality testing. diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index 14a0421a6..dc46a468a 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Distinct" title: "List.Distinct" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # List.Distinct @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 List.Distinct(list as list, optional equationCriteria as any) as list
 
- + ## About Returns a list that contains all the values in list `list` with duplicates removed. If the list is empty, the result is an empty list. diff --git a/query-languages/m/list-findtext.md b/query-languages/m/list-findtext.md index 0acc3d18d..167378d27 100644 --- a/query-languages/m/list-findtext.md +++ b/query-languages/m/list-findtext.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.FindText" title: "List.FindText" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # List.FindText @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 List.FindText(list as list, text as text) as list
 
- + ## About Returns a list of the values from the list `list` which contained the value `text`. diff --git a/query-languages/m/list-first.md b/query-languages/m/list-first.md index 4bf5011bc..7bc5494e8 100644 --- a/query-languages/m/list-first.md +++ b/query-languages/m/list-first.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.First" title: "List.First" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.First @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.First(list as list, optional defaultValue as any) as any
 
- + ## About Returns the first item in the list `list`, or the optional default value, `defaultValue`, if the list is empty. If the list is empty and a default value is not specified, the function returns `null`. diff --git a/query-languages/m/list-firstn.md b/query-languages/m/list-firstn.md index f99d5ae19..585a6ad68 100644 --- a/query-languages/m/list-firstn.md +++ b/query-languages/m/list-firstn.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.FirstN" title: "List.FirstN" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # List.FirstN @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 List.FirstN(list as list, countOrCondition as any) as any
 
- + ## About * If a number is specified, up to that many items are returned. diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index d95888f76..0fe513fe2 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -1,163 +1,163 @@ --- description: "Learn more about: List functions" title: "List functions" -ms.date: 7/19/2022 +ms.date: 10/7/2022 --- # List functions These functions create and manipulate list values. - + ## Information - -|Name|Description| -|------------|---------------| -|[List.Count](list-count.md)|Returns the number of items in a list.| -|[List.NonNullCount](list-nonnullcount.md)|Returns the number of items in a list excluding null values| -|[List.IsEmpty](list-isempty.md)|Returns whether a list is empty.| - + +|Name|Description| +|------------|---------------| +|[List.Count](list-count.md)|Returns the number of items in a list.| +|[List.NonNullCount](list-nonnullcount.md)|Returns the number of items in a list excluding null values| +|[List.IsEmpty](list-isempty.md)|Returns whether a list is empty.| + ## Selection - -|Name|Description| -|------------|---------------| -|[List.Alternate](list-alternate.md)|Returns a list with the items alternated from the original list based on a count, optional repeatInterval, and an optional offset.| + +|Name|Description| +|------------|---------------| +|[List.Alternate](list-alternate.md)|Returns a list with the items alternated from the original list based on a count, optional repeatInterval, and an optional offset.| |[List.Buffer](list-buffer.md)|Buffers the list in memory. The result of this call is a stable list, which means it will have a determinimic count, and order of items.| -|[List.Distinct](list-distinct.md)|Filters a list down by removing duplicates. An optional equation criteria value can be specified to control equality comparison. The first value from each equality group is chosen.| +|[List.Distinct](list-distinct.md)|Filters a list down by removing duplicates. An optional equation criteria value can be specified to control equality comparison. The first value from each equality group is chosen.| |[List.FindText](list-findtext.md)|Searches a list of values, including record fields, for a text value.| -|[List.First](list-first.md)|Returns the first value of the list or the specified default if empty. Returns the first item in the list, or the optional default value, if the list is empty. If the list is empty and a default value is not specified, the function returns.| -|[List.FirstN](list-firstn.md)|Returns the first set of items in the list by specifying how many items to return or a qualifying condition provided by `countOrCondition`.| -|[List.InsertRange](list-insertrange.md)|Inserts items from values at the given index in the input list.| +|[List.First](list-first.md)|Returns the first value of the list or the specified default if empty. Returns the first item in the list, or the optional default value, if the list is empty. If the list is empty and a default value is not specified, the function returns.| +|[List.FirstN](list-firstn.md)|Returns the first set of items in the list by specifying how many items to return or a qualifying condition provided by `countOrCondition`.| +|[List.InsertRange](list-insertrange.md)|Inserts items from values at the given index in the input list.| |[List.IsDistinct](list-isdistinct.md)|Returns whether a list is distinct.| -|[List.Last](list-last.md)|Returns the last set of items in the list by specifying how many items to return or a qualifying condition provided by `countOrCondition`.| -|[List.LastN](list-lastn.md)|Returns the last set of items in a list by specifying how many items to return or a qualifying condition.| -|[List.MatchesAll](list-matchesall.md)|Returns true if all items in a list meet a condition.| -|[List.MatchesAny](list-matchesany.md)|Returns true if any item in a list meets a condition.| -|[List.Positions](list-positions.md)|Returns a list of positions for an input list.| -|[List.Range](list-range.md)|Returns a count items starting at an offset.| +|[List.Last](list-last.md)|Returns the last set of items in the list by specifying how many items to return or a qualifying condition provided by `countOrCondition`.| +|[List.LastN](list-lastn.md)|Returns the last set of items in a list by specifying how many items to return or a qualifying condition.| +|[List.MatchesAll](list-matchesall.md)|Returns true if all items in a list meet a condition.| +|[List.MatchesAny](list-matchesany.md)|Returns true if any item in a list meets a condition.| +|[List.Positions](list-positions.md)|Returns a list of positions for an input list.| +|[List.Range](list-range.md)|Returns a count items starting at an offset.| |[List.Select](list-select.md)|Selects the items that match a condition.| -|[List.Single](list-single.md)|Returns the single item of the list or throws an `Expression.Error` if the list has more than one item.| -|[List.SingleOrDefault](list-singleordefault.md)|Returns a single item from a list.| -|[List.Skip](list-skip.md)|Skips the first item of the list. Given an empty list, it returns an empty list. This function takes an optional parameter `countOrCondition` to support skipping multiple values.| - -## Transformation functions - -|Name|Description| -|------------|---------------| -|[List.Accumulate](list-accumulate.md)|Accumulates a result from the list. Starting from the initial value seed this function applies the accumulator function and returns the final result.| +|[List.Single](list-single.md)|Returns the single item of the list or throws an `Expression.Error` if the list has more than one item.| +|[List.SingleOrDefault](list-singleordefault.md)|Returns a single item from a list.| +|[List.Skip](list-skip.md)|Skips the first item of the list. Given an empty list, it returns an empty list. This function takes an optional parameter `countOrCondition` to support skipping multiple values.| + +## Transformation functions + +|Name|Description| +|------------|---------------| +|[List.Accumulate](list-accumulate.md)|Accumulates a result from the list. Starting from the initial value seed this function applies the accumulator function and returns the final result.| |[List.Combine](list-combine.md)|Merges a list of lists into single list.| -|[List.ConformToPageReader](list-conformtopagereader.md)|This function is intended for internal use only.| -|[List.RemoveRange](list-removerange.md)|Returns a list that removes count items starting at offset. The default count is 1.| -|[List.RemoveFirstN](list-removefirstn.md)|Returns a list with the specified number of elements removed from the list starting at the first element. The number of elements removed depends on the optional `countOrCondition` parameter.| +|[List.ConformToPageReader](list-conformtopagereader.md)|This function is intended for internal use only.| +|[List.RemoveRange](list-removerange.md)|Returns a list that removes count items starting at offset. The default count is 1.| +|[List.RemoveFirstN](list-removefirstn.md)|Returns a list with the specified number of elements removed from the list starting at the first element. The number of elements removed depends on the optional `countOrCondition` parameter.| |[List.RemoveItems](list-removeitems.md)|Removes items from `list1` that are present in `list2`, and returns a new list.| -|[List.RemoveLastN](list-removelastn.md)|Returns a list with the specified number of elements removed from the list starting at the last element. The number of elements removed depends on the optional `countOrCondition` parameter.| -|[List.Repeat](list-repeat.md)|Returns a list that repeats the contents of an input list count times.| +|[List.RemoveLastN](list-removelastn.md)|Returns a list with the specified number of elements removed from the list starting at the last element. The number of elements removed depends on the optional `countOrCondition` parameter.| +|[List.Repeat](list-repeat.md)|Returns a list that repeats the contents of an input list count times.| |[List.ReplaceRange](list-replacerange.md)|Returns a list that replaces count values in a list with a `replaceWith` list starting at an index.| -|[List.RemoveMatchingItems](list-removematchingitems.md)|Removes all occurrences of the given values in the list.| -|[List.RemoveNulls](list-removenulls.md)|Removes null values from a list.| -|[List.ReplaceMatchingItems](list-replacematchingitems.md)|Replaces occurrences of existing values in the list with new values using the provided `equationCriteria`. Old and new values are provided by the `replacements` parameters. An optional equation criteria value can be specified to control equality comparisons. For details of replacement operations and equation criteria, go to [Parameter values](#parameter-values).| -|[List.ReplaceValue](list-replacevalue.md)|Searches a list of values for the value and replaces each occurrence with the replacement value.| +|[List.RemoveMatchingItems](list-removematchingitems.md)|Removes all occurrences of the given values in the list.| +|[List.RemoveNulls](list-removenulls.md)|Removes null values from a list.| +|[List.ReplaceMatchingItems](list-replacematchingitems.md)|Replaces occurrences of existing values in the list with new values using the provided `equationCriteria`. Old and new values are provided by the `replacements` parameters. An optional equation criteria value can be specified to control equality comparisons. For details of replacement operations and equation criteria, go to [Parameter values](#parameter-values).| +|[List.ReplaceValue](list-replacevalue.md)|Searches a list of values for the value and replaces each occurrence with the replacement value.| |[List.Reverse](list-reverse.md)|Returns a list that reverses the items in a list.| |[List.Split](list-split.md)|Splits the specified list into a list of lists using the specified page size.| -|[List.Transform](list-transform.md)|Performs the function on each item in the list and returns the new list.| +|[List.Transform](list-transform.md)|Performs the function on each item in the list and returns the new list.| |[List.TransformMany](list-transformmany.md)|Returns a list whose elements are projected from the input list.| - + ## Membership functions -Since all values can be tested for equality, these functions can operate over heterogeneous lists. - -|Name|Description| -|------------|---------------| +Since all values can be tested for equality, these functions can operate over heterogeneous lists. + +|Name|Description| +|------------|---------------| |[List.AllTrue](list-alltrue.md)|Returns true if all expressions in a list are true| |[List.AnyTrue](list-anytrue.md)|Returns true if any expression in a list in true| -|[List.Contains](list-contains.md)|Returns true if a value is found in a list.| -|[List.ContainsAll](list-containsall.md)|Returns true if all items in values are found in a list.| -|[List.ContainsAny](list-containsany.md)|Returns true if any item in values is found in a list.| -|[List.PositionOf](list-positionof.md)|Finds the first occurrence of a value in a list and returns its position.| -|[List.PositionOfAny](list-positionofany.md)|Finds the first occurrence of any value in values and returns its position.| - -## Set operations - -|Name|Description| -|------------|---------------| -|[List.Difference](list-difference.md)|Returns the items in list 1 that do not appear in list 2. Duplicate values are supported.| -|[List.Intersect](list-intersect.md)|Returns a list from a list of lists and intersects common items in individual lists. Duplicate values are supported.| +|[List.Contains](list-contains.md)|Returns true if a value is found in a list.| +|[List.ContainsAll](list-containsall.md)|Returns true if all items in values are found in a list.| +|[List.ContainsAny](list-containsany.md)|Returns true if any item in values is found in a list.| +|[List.PositionOf](list-positionof.md)|Finds the first occurrence of a value in a list and returns its position.| +|[List.PositionOfAny](list-positionofany.md)|Finds the first occurrence of any value in values and returns its position.| + +## Set operations + +|Name|Description| +|------------|---------------| +|[List.Difference](list-difference.md)|Returns the items in list 1 that do not appear in list 2. Duplicate values are supported.| +|[List.Intersect](list-intersect.md)|Returns a list from a list of lists and intersects common items in individual lists. Duplicate values are supported.| |[List.Union](list-union.md)|Returns a list from a list of lists and unions the items in the individual lists. The returned list contains all items in any input lists. Duplicate values are matched as part of the Union.| |[List.Zip](list-zip.md)|Returns a list of lists combining items at the same position.| - + ## Ordering -Ordering functions perform comparisons. All values that are compared must be comparable with each other. This means they must all come from the same datatype (or include null, which always compares smallest). Otherwise, an `Expression.Error` is thrown. - +Ordering functions perform comparisons. All values that are compared must be comparable with each other. This means they must all come from the same datatype (or include null, which always compares smallest). Otherwise, an `Expression.Error` is thrown. + Comparable data types include: -- Number -- Duration -- DateTime -- Text -- Logical -- Null - -|Name|Description| -|------------|---------------| -|[List.Max](list-max.md)|Returns the maximum item in a list, or the optional default value if the list is empty.| -|[List.MaxN](list-maxn.md)|Returns the maximum values in the list. The number of values to return or a filtering condition must be specified.| +- Number +- Duration +- DateTime +- Text +- Logical +- Null + +|Name|Description| +|------------|---------------| +|[List.Max](list-max.md)|Returns the maximum item in a list, or the optional default value if the list is empty.| +|[List.MaxN](list-maxn.md)|Returns the maximum values in the list. The number of values to return or a filtering condition must be specified.| |[List.Median](list-median.md)|Returns the median item from a list.| -|[List.Min](list-min.md)|Returns the minimum item in a list, or the optional default value if the list is empty.| -|[List.MinN](list-minn.md)|Returns the minimum values in a list. The number of values to return or a filtering condition may be specified.| +|[List.Min](list-min.md)|Returns the minimum item in a list, or the optional default value if the list is empty.| +|[List.MinN](list-minn.md)|Returns the minimum values in a list. The number of values to return or a filtering condition may be specified.| |[List.Sort](list-sort.md)|Returns a sorted list using comparison criterion.| |[List.Percentile](list-percentile.md) | Returns one or more sample percentiles corresponding to the given probabilities.| - + ## Averages -These functions operate over homogeneous lists of Numbers, DateTimes, and Durations. - -|Name|Description| -|------------|---------------| -|[List.Average](list-average.md)|Returns an average value from a list in the datatype of the values in the list.| -|[List.Mode](list-mode.md)|Returns an item that appears most commonly in a list.| +These functions operate over homogeneous lists of Numbers, DateTimes, and Durations. + +|Name|Description| +|------------|---------------| +|[List.Average](list-average.md)|Returns an average value from a list in the datatype of the values in the list.| +|[List.Mode](list-mode.md)|Returns an item that appears most commonly in a list.| |[List.Modes](list-modes.md)|Returns all items that appear with the same maximum frequency.| -|[List.StandardDeviation](list-standarddeviation.md)|Returns the standard deviation from a list of values. **List.StandardDeviation** performs a sample based estimate. The result is a number for numbers, and a duration for DateTimes and Durations.| - +|[List.StandardDeviation](list-standarddeviation.md)|Returns the standard deviation from a list of values. **List.StandardDeviation** performs a sample based estimate. The result is a number for numbers, and a duration for DateTimes and Durations.| + ## Addition -These functions work over homogeneous lists of Numbers or Durations. - -|Name|Description| -|------------|---------------| -|[List.Sum](list-sum.md)|Returns the sum from a list.| - +These functions work over homogeneous lists of Numbers or Durations. + +|Name|Description| +|------------|---------------| +|[List.Sum](list-sum.md)|Returns the sum from a list.| + ## Numerics -These functions only work over numbers. - -|Name|Description| -|------------|---------------| -|[List.Covariance](list-covariance.md)|Returns the covariance from two lists as a number.| -|[List.Product](list-product.md)|Returns the product from a list of numbers.| - +These functions only work over numbers. + +|Name|Description| +|------------|---------------| +|[List.Covariance](list-covariance.md)|Returns the covariance from two lists as a number.| +|[List.Product](list-product.md)|Returns the product from a list of numbers.| + ## Generators -These functions generate list of values. - -|Name|Description| -|------------|---------------| +These functions generate list of values. + +|Name|Description| +|------------|---------------| |[List.Dates](list-dates.md)|Returns a list of date values from size count, starting at start and adds an increment to every value.| |[List.DateTimes](list-datetimes.md)|Returns a list of datetime values from size count, starting at start and adds an increment to every value.| -|[List.DateTimeZones](list-datetimezones.md)|Returns a list of of datetimezone values from size count, starting at start and adds an increment to every value.| -|[List.Durations](list-durations.md)|Returns a list of durations values from size count, starting at start and adds an increment to every value.| -|[List.Generate](list-generate.md)|Generates a list of values.| -|[List.Numbers](list-numbers.md)|Returns a list of numbers from size count starting at initial, and adds an increment. The increment defaults to 1.| -|[List.Random](list-random.md)|Returns a list of count random numbers, with an optional seed parameter.| +|[List.DateTimeZones](list-datetimezones.md)|Returns a list of of datetimezone values from size count, starting at start and adds an increment to every value.| +|[List.Durations](list-durations.md)|Returns a list of durations values from size count, starting at start and adds an increment to every value.| +|[List.Generate](list-generate.md)|Generates a list of values.| +|[List.Numbers](list-numbers.md)|Returns a list of numbers from size count starting at initial, and adds an increment. The increment defaults to 1.| +|[List.Random](list-random.md)|Returns a list of count random numbers, with an optional seed parameter.| |[List.Times](list-times.md)|Returns a list of time values of size count, starting at start.| - -## Parameter values - -### Occurrence specification - + +## Parameter values + +### Occurrence specification + - [Occurrence.First](occurrence-type.md) = 0; - [Occurrence.Last](occurrence-type.md) = 1; - [Occurrence.All](occurrence-type.md) = 2; -### Sort order +### Sort order - [Order.Ascending](order-type.md) = 0; - [Order.Descending](order-type.md) = 1; @@ -165,17 +165,17 @@ These functions generate list of values. ### Equation criteria Equation criteria for list values can be specified as either: - + - A function value that is either: - A key selector that determines the value in the list to apply the equality criteria. - - A comparer function that is used to specify the kind of comparison to apply. Built in comparer functions can be specified—go to [Comparer functions](comparer-functions.md). + - A comparer function that is used to specify the kind of comparison to apply. Built in comparer functions can be specified—go to [Comparer functions](comparer-functions.md). - A list value that has: - Exactly two items. - The first element is the key selector as specified above. - - The second element is a comparer as specified above. - -For more information and examples, go to [List.Distinct](list-distinct.md). - + - The second element is a comparer as specified above. + +For more information and examples, go to [List.Distinct](list-distinct.md). + ### Comparison criteria Comparison criterion can be provided as either of the following values: @@ -183,10 +183,10 @@ Comparison criterion can be provided as either of the following values: - A number value to specify a sort order. For more information, go to [Sort order](#sort-order). - To compute a key to be used for sorting, a function of one argument can be used. - To both select a key and control order, comparison criterion can be a list containing the key and order. -- To completely control the comparison, a function of two arguments can be used that returns -1, 0, or 1 given the relationship between the left and right inputs. [Value.Compare](value-compare.md) is a method that can be used to delegate this logic. - -For more information and examples, go to [List.Sort](list-sort.md). - +- To completely control the comparison, a function of two arguments can be used that returns -1, 0, or 1 given the relationship between the left and right inputs. [Value.Compare](value-compare.md) is a method that can be used to delegate this logic. + +For more information and examples, go to [List.Sort](list-sort.md). + ### Replacement operations Replacement operations are specified by a list value. Each item of this list must be: diff --git a/query-languages/m/list-generate.md b/query-languages/m/list-generate.md index 4dbb1626c..fc12ec89d 100644 --- a/query-languages/m/list-generate.md +++ b/query-languages/m/list-generate.md @@ -1,10 +1,10 @@ --- description: "Learn more about: List.Generate" title: "List.Generate" -ms.date: 7/19/2022 +ms.date: 10/7/2022 --- # List.Generate - + ## Syntax
diff --git a/query-languages/m/list-insertrange.md b/query-languages/m/list-insertrange.md
index fa9e57869..32ad998e8 100644
--- a/query-languages/m/list-insertrange.md
+++ b/query-languages/m/list-insertrange.md
@@ -1,7 +1,7 @@
 ---
 description: "Learn more about: List.InsertRange"
 title: "List.InsertRange"
-ms.date: 3/8/2022
+ms.date: 10/7/2022
 ---
 # List.InsertRange
 
@@ -11,13 +11,13 @@ ms.date: 3/8/2022
 List.InsertRange(list as list, index as number, values as list) as list
 
-## About +## About Returns a new list produced by inserting the values in `values` into `list` at `index`. The first position in the list is at index 0. * `list`: The target list where values are to be inserted. * `index`: The index of the target list(`list`) where the values are to be inserted. The first position in the list is at index 0. -* `values`: The list of values which are to be inserted into `list`. +* `values`: The list of values which are to be inserted into `list`. ## Example 1 diff --git a/query-languages/m/list-intersect.md b/query-languages/m/list-intersect.md index 3fb601e2c..a04041472 100644 --- a/query-languages/m/list-intersect.md +++ b/query-languages/m/list-intersect.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Intersect" title: "List.Intersect" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # List.Intersect @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 List.Intersect(lists as list, optional equationCriteria as any) as list
 
- + ## About Returns the intersection of the list values found in the input list `lists`. An optional parameter, `equationCriteria`, can be specified. diff --git a/query-languages/m/list-isdistinct.md b/query-languages/m/list-isdistinct.md index 125b8ac1f..4171b5e63 100644 --- a/query-languages/m/list-isdistinct.md +++ b/query-languages/m/list-isdistinct.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.IsDistinct" title: "List.IsDistinct" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.IsDistinct @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.IsDistinct(list as list, optional equationCriteria as any) as logical
 
- + ## About Returns a logical value whether there are duplicates in the list `list`; `true` if the list is distinct, `false` if there are duplicate values. diff --git a/query-languages/m/list-isempty.md b/query-languages/m/list-isempty.md index af9ca5442..9b86d68ea 100644 --- a/query-languages/m/list-isempty.md +++ b/query-languages/m/list-isempty.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.IsEmpty" title: "List.IsEmpty" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.IsEmpty @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.IsEmpty(list as list) as logical
 
- + ## About Returns `true` if the list, `list`, contains no values (length 0). If the list contains values (length > 0), returns `false`. diff --git a/query-languages/m/list-last.md b/query-languages/m/list-last.md index 070712d95..7528bdc17 100644 --- a/query-languages/m/list-last.md +++ b/query-languages/m/list-last.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Last" title: "List.Last" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.Last @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.Last(list as list, optional defaultValue as any) as any 
 
- + ## About Returns the last item in the list `list`, or the optional default value, `defaultValue`, if the list is empty. If the list is empty and a default value is not specified, the function returns `null`. diff --git a/query-languages/m/list-lastn.md b/query-languages/m/list-lastn.md index f633966a8..1bc225d9f 100644 --- a/query-languages/m/list-lastn.md +++ b/query-languages/m/list-lastn.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.LastN" title: "List.LastN" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # List.LastN @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 List.LastN(list as list, optional countOrCondition as any) as any
 
- + ## About Returns the last item of the list `list`. If the list is empty, an exception is thrown. This function takes an optional parameter, `countOrCondition`, to support gathering multiple items or filtering items. `countOrCondition` can be specified in three ways: diff --git a/query-languages/m/list-matchesall.md b/query-languages/m/list-matchesall.md index eac35108e..14a84112b 100644 --- a/query-languages/m/list-matchesall.md +++ b/query-languages/m/list-matchesall.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.MatchesAll" title: "List.MatchesAll" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.MatchesAll @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.MatchesAll(list as list, condition as function) as logical
 
- + ## About Returns `true` if the condition function, `condition`, is satisfied by all values in the list `list`, otherwise returns `false`. diff --git a/query-languages/m/list-matchesany.md b/query-languages/m/list-matchesany.md index e38c23d27..e6d8880ef 100644 --- a/query-languages/m/list-matchesany.md +++ b/query-languages/m/list-matchesany.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.MatchesAny" title: "List.MatchesAny" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.MatchesAny @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 List.MatchesAny(list as list, condition as function) as logical
 
- + ## About Returns `true` if the condition function, `condition`, is satisfied by any of values in the list `list`, otherwise returns `false`. diff --git a/query-languages/m/list-nonnullcount.md b/query-languages/m/list-nonnullcount.md index b59e04631..2fbe966f4 100644 --- a/query-languages/m/list-nonnullcount.md +++ b/query-languages/m/list-nonnullcount.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.NonNullCount" title: "List.NonNullCount" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # List.NonNullCount @@ -10,6 +10,7 @@ ms.date: 7/31/2019
 List.NonNullCount(list as list) as number
 
- -## About + +## About + Returns the number of non-null items in the list `list`. diff --git a/query-languages/m/list-numbers.md b/query-languages/m/list-numbers.md index 2f3527819..35360f026 100644 --- a/query-languages/m/list-numbers.md +++ b/query-languages/m/list-numbers.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Numbers" title: "List.Numbers" -ms.date: 3/8/2022 +ms.date: 10/7/2022 --- # List.Numbers @@ -10,7 +10,7 @@ ms.date: 3/8/2022
 List.Numbers(start as number, count as number, optional increment as nullable number) as list
 
- + ## About Returns a list of numbers given an initial value, count, and optional increment value. The default increment value is 1. diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index ef0798020..5e848b395 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.PositionOf" title: "List.PositionOf" -ms.date: 3/11/2022 +ms.date: 10/7/2022 --- # List.PositionOf @@ -13,7 +13,9 @@ List.PositionOf(list as list, value as any, optional occurrence ## About -Returns the offset at which the value `value` appears in the list `list`. Returns -1 if the value doesn't appear. An optional occurrence parameter `occurrence` can be specified.
  • occurrence: The maximum number of occurrences to report.
+Returns the offset at which the value `value` appears in the list `list`. Returns -1 if the value doesn't appear. An optional occurrence parameter `occurrence` can be specified. + +* `occurrence`: The maximum number of occurrences to report. ## Example 1 diff --git a/query-languages/m/list-sort.md b/query-languages/m/list-sort.md index 822ba19e7..947edac66 100644 --- a/query-languages/m/list-sort.md +++ b/query-languages/m/list-sort.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Sort" title: "List.Sort" -ms.date: 3/9/2022 +ms.date: 10/7/2022 --- # List.Sort @@ -10,12 +10,12 @@ ms.date: 3/9/2022
 List.Sort(list as list, optional comparisonCriteria as any) as list  
 
- + ## About Sorts a list of data, `list`, according to the optional criteria specified. An optional parameter, `comparisonCriteria`, can be specified as the comparison criterion. This can take the following values: -* To control the order, the comparison criterion can be an Order enum value. (`Order.Descending`, `Order.Ascending`). +* To control the order, the comparison criterion can be an Order enum value. ([Order.Descending](order-type.md), [Order.Ascending](order-type.md)). * To compute a key to be used for sorting, a function of 1 argument can be used. * To both select a key and control order, comparison criterion can be a list containing the key and order (`{each 1 / _, Order.Descending}`). * To completely control the comparison, a function of 2 arguments can be used. This function will be passed two items from the list (any two items, in any order). The function should return one of the following values: @@ -24,7 +24,7 @@ Sorts a list of data, `list`, according to the optional criteria specified. An o * `0`: The items are equal. * `1`: The first item is greater than the second item. - Value.Compare is a method that can be used to delegate this logic. + [Value.Compare](value-compare.md) is a method that can be used to delegate this logic. ## Example 1 @@ -56,7 +56,7 @@ List.Sort({2, 3, 1}, Order.Descending) ## Example 3 -Sort the list {2, 3, 1} in descending order using the Value.Compare method. +Sort the list {2, 3, 1} in descending order using the **Value.Compare** method. **Usage** diff --git a/query-languages/m/list-transformmany.md b/query-languages/m/list-transformmany.md index 957beba04..fa990bb30 100644 --- a/query-languages/m/list-transformmany.md +++ b/query-languages/m/list-transformmany.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.TransformMany" title: "List.TransformMany" -ms.date: 10/18/2021 +ms.date: 10/7/2022 --- # List.TransformMany @@ -10,7 +10,7 @@ ms.date: 10/18/2021
 List.TransformMany(list as list, collectionTransform as function, resultTransform as function) as list
 
- -## About + +## About Returns a list whose elements are projected from the input list. The `collectionTransform` function is applied to each element, and the `resultTransform` function is invoked to construct the resulting list. The `collectionTransform` has the signature `(x as any) as list => ...` where `x` is an element in `list`. The `resultTransform` projects the shape of the result and has the signature `(x as any, y as any) as any => ...` where `x` is the element in `list` and `y` is the element obtained by applying the `collectionTransform` to that element. diff --git a/query-languages/m/m-spec-let.md b/query-languages/m/m-spec-let.md index 4557b90b5..cb7df0740 100644 --- a/query-languages/m/m-spec-let.md +++ b/query-languages/m/m-spec-let.md @@ -2,7 +2,7 @@ title: M Language Let description: Describes using the let expression in the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 10/7/2022 --- @@ -26,7 +26,7 @@ The following example shows intermediate results being calculated and stored in ```powerquery-m let x = 1 + 1, - y = 2 + 2, + y = 2 + 2, z = y + 1 in x + y + z diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index 073c8917e..f40cfb87b 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -2,7 +2,7 @@ title: M Language Sections description: Describes using sections in the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 10/7/2022 --- # Sections @@ -29,7 +29,7 @@ The following example shows a section-document: ```powerquery-m section Section1; -A = 1; //1 +A = 1; //1 B = 2; //2 C = A + B; //3 ``` diff --git a/query-languages/m/metadata.md b/query-languages/m/metadata.md index 0219014a9..97644e1ec 100644 --- a/query-languages/m/metadata.md +++ b/query-languages/m/metadata.md @@ -2,29 +2,29 @@ description: "Learn more about: Metadata" title: "Metadata" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 10/7/2022 --- # Metadata -**Metadata** is information about a value that is associated with a value. **Metadata** is represented as a record value, called a metadata record. The fields of a **metadata record** can be used to store the metadata for a value. Every value has a metadata record. If the value of the metadata record has not been specified, then the metadata record is empty (has no fields). Associating a metadata record with a value does not change the value’s behavior in evaluations except for those that explicitly inspect metadata records. - -A metadata record value is associated with a value x using the syntax value meta [record]. For example, the following associates a metadata record with Rating and Tags fields with the text value "Mozart": - +**Metadata** is information about a value that is associated with a value. **Metadata** is represented as a record value, called a metadata record. The fields of a **metadata record** can be used to store the metadata for a value. Every value has a metadata record. If the value of the metadata record has not been specified, then the metadata record is empty (has no fields). Associating a metadata record with a value does not change the value’s behavior in evaluations except for those that explicitly inspect metadata records. + +A metadata record value is associated with a value x using the syntax value meta [record]. For example, the following associates a metadata record with Rating and Tags fields with the text value "Mozart": + ```powerquery-m -"Mozart" meta [ Rating = 5, -Tags = {"Classical"} ] +"Mozart" meta [ Rating = 5, +Tags = {"Classical"} ] ``` -A metadata record can be accessed for a value using the `Value.Metadata` function. In the following example, the expression in the ComposerRating field accesses the metadata record of the value in the Composer field, and then accesses the Rating field of the metadata record. - +A metadata record can be accessed for a value using the `Value.Metadata` function. In the following example, the expression in the ComposerRating field accesses the metadata record of the value in the Composer field, and then accesses the Rating field of the metadata record. + ```powerquery-m [ - Composer = "Mozart" meta [ Rating = 5, Tags = {"Classical"} ], - ComposerRating = Value.Metadata(Composer)[Rating] // 5 + Composer = "Mozart" meta [ Rating = 5, Tags = {"Classical"} ], + ComposerRating = Value.Metadata(Composer)[Rating] // 5 ] ``` -Metadata records are not preserved when a value is used with an operator or function that constructs a new value. For example, if two text values are concatenated using the & operator, the metadata of the resulting text value is an empty record []. - -The standard library functions `Value.RemoveMetadata` and `Value.ReplaceMetadata` can be used to remove all metadata from a value and to replace a value’s metadata. +Metadata records are not preserved when a value is used with an operator or function that constructs a new value. For example, if two text values are concatenated using the & operator, the metadata of the resulting text value is an empty record []. + +The standard library functions `Value.RemoveMetadata` and `Value.ReplaceMetadata` can be used to remove all metadata from a value and to replace a value’s metadata. diff --git a/query-languages/m/mysql-database.md b/query-languages/m/mysql-database.md index 1ef0758e8..fa73e7053 100644 --- a/query-languages/m/mysql-database.md +++ b/query-languages/m/mysql-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: MySQL.Database" title: "MySQL.Database" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # MySQL.Database @@ -13,18 +13,17 @@ MySQL.Database(server as text, database as text, optional optio ## About -Returns a table of SQL tables, views, and stored scalar functions available in a MySQL database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: +Returns a table of SQL tables, views, and stored scalar functions available in a MySQL database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: -* `Encoding` : A TextEncoding value that specifies the character set used to encode all queries sent to the server (default is null). -* `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). -* `NavigationPropertyNameGenerator` : A function that is used for the creation of names for navigation properties. -* `Query` : A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -* `TreatTinyAsBoolean` : A logical (true/false) that determines whether to force tinyint columns on the server as logical values. The default value is true. -* `OldGuids` : A logical (true/false) that sets whether char(36) columns (if false) or binary(16) columns (if true) will be treated as GUIDs. The default value is false. -* `ReturnSingleDatabase` : A logical (true/false) that sets whether to return all tables of all databases (if false) or to return tables and views of the specified database (if true). The default value is false. -* `HierarchicalNavigation` : A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). +* `Encoding`: A TextEncoding value that specifies the character set used to encode all queries sent to the server (default is null). +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). +* `NavigationPropertyNameGenerator`: A function that is used for the creation of names for navigation properties. +* `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `TreatTinyAsBoolean`: A logical (true/false) that determines whether to force tinyint columns on the server as logical values. The default value is true. +* `OldGuids`: A logical (true/false) that sets whether char(36) columns (if false) or binary(16) columns (if true) will be treated as GUIDs. The default value is false. +* `ReturnSingleDatabase`: A logical (true/false) that sets whether to return all tables of all databases (if false) or to return tables and views of the specified database (if true). The default value is false. +* `HierarchicalNavigation`: A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). - The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. - +The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/number-abs.md b/query-languages/m/number-abs.md index 5e4059dcf..47c0707bc 100644 --- a/query-languages/m/number-abs.md +++ b/query-languages/m/number-abs.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Abs" title: "Number.Abs" -ms.date: 3/11/2022 +ms.date: 10/10/2022 --- # Number.Abs @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Number.Abs(number as nullable number) as nullable number
 
- + ## About Returns the absolute value of `number`. If `number` is null, **Number.Abs** returns null. diff --git a/query-languages/m/number-acos.md b/query-languages/m/number-acos.md index cff2de02c..8f3b843d0 100644 --- a/query-languages/m/number-acos.md +++ b/query-languages/m/number-acos.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Acos" title: "Number.Acos" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.Acos @@ -9,7 +9,8 @@ ms.date: 7/31/2019
 Number.Acos(number as nullable number) as nullable number
-
- -## About + + +## About + Returns the arccosine of `number`. diff --git a/query-languages/m/number-asin.md b/query-languages/m/number-asin.md index d068ad15b..51f514258 100644 --- a/query-languages/m/number-asin.md +++ b/query-languages/m/number-asin.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Asin" title: "Number.Asin" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.Asin @@ -10,6 +10,7 @@ ms.date: 7/31/2019
 Number.Asin(number as nullable number) as nullable number
 
- -## About + +## About + Returns the arcsine of `number`. diff --git a/query-languages/m/number-atan.md b/query-languages/m/number-atan.md index e20db57fe..d1a6a55a3 100644 --- a/query-languages/m/number-atan.md +++ b/query-languages/m/number-atan.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Number.Atan" title: "Number.Atan" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.Atan ## Syntax
-Number.Atan(number as nullable number) as nullable number  
+Number.Atan(number as nullable number) as nullable number
 
- -## About + +## About + Returns the arctangent of `number`. diff --git a/query-languages/m/number-atan2.md b/query-languages/m/number-atan2.md index 23d07502e..93654035b 100644 --- a/query-languages/m/number-atan2.md +++ b/query-languages/m/number-atan2.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Atan2" title: "Number.Atan2" -ms.date: 1/20/2022 +ms.date: 10/10/2022 --- # Number.Atan2 @@ -10,7 +10,7 @@ ms.date: 1/20/2022
 Number.Atan2(y as nullable number, x as nullable number) as nullable number
 
- + ## About Returns the angle, in radians, whose tangent is the quotient `y`/`x` of the two numbers `y` and `x`. diff --git a/query-languages/m/number-bitwiseand.md b/query-languages/m/number-bitwiseand.md index 058862fff..4b9a2cf00 100644 --- a/query-languages/m/number-bitwiseand.md +++ b/query-languages/m/number-bitwiseand.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.BitwiseAnd" title: "Number.BitwiseAnd" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.BitwiseAnd @@ -10,7 +10,7 @@ ms.date: 7/31/2019
 Number.BitwiseAnd(number1 as nullable number, number2 as nullable number) as nullable number
 
- -## About + +## About Returns the result of performing a bitwise "And" operation between `number1` and `number2`. diff --git a/query-languages/m/number-bitwisenot.md b/query-languages/m/number-bitwisenot.md index 90f9f7512..965ccee10 100644 --- a/query-languages/m/number-bitwisenot.md +++ b/query-languages/m/number-bitwisenot.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.BitwiseNot" title: "Number.BitwiseNot" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.BitwiseNot @@ -10,7 +10,7 @@ ms.date: 7/31/2019
 Number.BitwiseNot(number as any) as any
 
- -## About + +## About Returns the result of performing a bitwise "Not" operation on `number`. diff --git a/query-languages/m/number-bitwiseor.md b/query-languages/m/number-bitwiseor.md index 43fee9714..6f3023b93 100644 --- a/query-languages/m/number-bitwiseor.md +++ b/query-languages/m/number-bitwiseor.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.BitwiseOr" title: "Number.BitwiseOr" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.BitwiseOr @@ -10,6 +10,7 @@ ms.date: 7/31/2019
 Number.BitwiseOr(number1 as nullable number, number2 as nullable number) as nullable number
 
- -## About + +## About + Returns the result of performing a bitwise "Or" between `number1` and `number2`. diff --git a/query-languages/m/number-bitwiseshiftleft.md b/query-languages/m/number-bitwiseshiftleft.md index 9a860f009..ab533c99d 100644 --- a/query-languages/m/number-bitwiseshiftleft.md +++ b/query-languages/m/number-bitwiseshiftleft.md @@ -1,17 +1,16 @@ --- description: "Learn more about: Number.BitwiseShiftLeft" title: "Number.BitwiseShiftLeft" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.BitwiseShiftLeft ## Syntax
-Number.BitwiseShiftLeft(number1 as nullable number, number2 as nullable number) as nullable number 
+Number.BitwiseShiftLeft(number1 as nullable number, number2 as nullable number) as nullable number
 
- -## About -Returns the result of performing a bitwise shift to the left on `number1`, by the specified number of bits `number2`. +## About +Returns the result of performing a bitwise shift to the left on `number1`, by the specified number of bits `number2`. diff --git a/query-languages/m/number-bitwiseshiftright.md b/query-languages/m/number-bitwiseshiftright.md index c8cc5911f..0311603b1 100644 --- a/query-languages/m/number-bitwiseshiftright.md +++ b/query-languages/m/number-bitwiseshiftright.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.BitwiseShiftRight" title: "Number.BitwiseShiftRight" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.BitwiseShiftRight @@ -10,6 +10,7 @@ ms.date: 7/31/2019
 Number.BitwiseShiftRight(number1 as nullable number, number2 as nullable number) as nullable number
 
- -## About + +## About + Returns the result of performing a bitwise shift to the right on `number1`, by the specified number of bits `number2`. diff --git a/query-languages/m/number-bitwisexor.md b/query-languages/m/number-bitwisexor.md index f6e12c3b0..41952c016 100644 --- a/query-languages/m/number-bitwisexor.md +++ b/query-languages/m/number-bitwisexor.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.BitwiseXor" title: "Number.BitwiseXor" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.BitwiseXor @@ -10,7 +10,7 @@ ms.date: 7/31/2019
 Number.BitwiseXor(number1 as nullable number, number2 as nullable number) as nullable number
 
- -## About + +## About Returns the result of performing a bitwise "XOR" (Exclusive-OR) between `number1` and `number2`. diff --git a/query-languages/m/number-combinations.md b/query-languages/m/number-combinations.md index f84a37459..9609d7e72 100644 --- a/query-languages/m/number-combinations.md +++ b/query-languages/m/number-combinations.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Combinations" title: "Number.Combinations" -ms.date: 3/11/2022 +ms.date: 10/10/2022 --- # Number.Combinations @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Number.Combinations(setSize as nullable number, combinationSize as nullable number) as nullable number
 
- + ## About Returns the number of unique combinations from a list of items, `setSize` with specified combination size, `combinationSize`. diff --git a/query-languages/m/number-cos.md b/query-languages/m/number-cos.md index 0cd0de013..5dc431212 100644 --- a/query-languages/m/number-cos.md +++ b/query-languages/m/number-cos.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Cos" title: "Number.Cos" -ms.date: 3/11/2022 +ms.date: 10/10/2022 --- # Number.Cos @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Number.Cos(number as nullable number) as nullable number
 
- + ## About Returns the cosine of `number`. diff --git a/query-languages/m/number-cosh.md b/query-languages/m/number-cosh.md index 62a1bbc37..ec174e81f 100644 --- a/query-languages/m/number-cosh.md +++ b/query-languages/m/number-cosh.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Number.Cosh" title: "Number.Cosh" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.Cosh ## Syntax
-Number.Cosh(number as nullable number) as nullable number 
+Number.Cosh(number as nullable number) as nullable number
 
- -## About + +## About + Returns the hyperbolic cosine of `number`. diff --git a/query-languages/m/number-epsilon.md b/query-languages/m/number-epsilon.md index c0614fd22..f7ff9ce30 100644 --- a/query-languages/m/number-epsilon.md +++ b/query-languages/m/number-epsilon.md @@ -1,11 +1,10 @@ --- description: "Learn more about: Number.Epsilon" title: "Number.Epsilon" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.Epsilon - -## About +## About + A constant value that represents the smallest positive number a floating-point number can hold. - diff --git a/query-languages/m/number-exp.md b/query-languages/m/number-exp.md index c60ff7afe..de12a59a6 100644 --- a/query-languages/m/number-exp.md +++ b/query-languages/m/number-exp.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Exp" title: "Number.Exp" -ms.date: 3/11/2022 +ms.date: 10/10/2022 --- # Number.Exp @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Number.Exp(number as nullable number) as nullable number
 
- + ## About Returns the result of raising e to the power of `number` (exponential function). diff --git a/query-languages/m/number-factorial.md b/query-languages/m/number-factorial.md index 63ce05051..b0e1f5fea 100644 --- a/query-languages/m/number-factorial.md +++ b/query-languages/m/number-factorial.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Factorial" title: "Number.Factorial" -ms.date: 3/11/2022 +ms.date: 10/10/2022 --- # Number.Factorial @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Number.Factorial(number as nullable number) as nullable number
 
- + ## About Returns the factorial of the number `number`. diff --git a/query-languages/m/number-fromtext.md b/query-languages/m/number-fromtext.md index 78ed9773c..c780b3147 100644 --- a/query-languages/m/number-fromtext.md +++ b/query-languages/m/number-fromtext.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.FromText" title: "Number.FromText" -ms.date: 3/11/2022 +ms.date: 10/10/2022 --- # Number.FromText @@ -10,7 +10,7 @@ ms.date: 3/11/2022
 Number.FromText(text as nullable text, optional culture as nullable text) as nullable number
 
- + ## About Returns a `number` value from the given text value, `text`. diff --git a/query-languages/m/number-nan.md b/query-languages/m/number-nan.md index 7b2541551..874142b33 100644 --- a/query-languages/m/number-nan.md +++ b/query-languages/m/number-nan.md @@ -1,10 +1,10 @@ --- description: "Learn more about: Number.NaN" title: "Number.NaN" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.NaN - -## About -A constant value that represents 0 divided by 0. +## About + +A constant value that represents 0 divided by 0. diff --git a/query-languages/m/number-negativeinfinity.md b/query-languages/m/number-negativeinfinity.md index d8d3e1dfe..41521e000 100644 --- a/query-languages/m/number-negativeinfinity.md +++ b/query-languages/m/number-negativeinfinity.md @@ -1,10 +1,10 @@ --- description: "Learn more about: Number.NegativeInfinity" title: "Number.NegativeInfinity" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.NegativeInfinity - -## About +## About + A constant value that represents -1 divided by 0. diff --git a/query-languages/m/number-pi.md b/query-languages/m/number-pi.md index 094d3636a..b66119696 100644 --- a/query-languages/m/number-pi.md +++ b/query-languages/m/number-pi.md @@ -1,10 +1,10 @@ --- description: "Learn more about: Number.PI" title: "Number.PI" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.PI - -## About -A constant that represents 3.1415926535897932, the value for pi up to 16 decimal digits. +## About + +A constant that represents 3.1415926535897932, the value for pi up to 16 decimal digits. diff --git a/query-languages/m/number-positiveinfinity.md b/query-languages/m/number-positiveinfinity.md index ea9854be3..6b6accbc8 100644 --- a/query-languages/m/number-positiveinfinity.md +++ b/query-languages/m/number-positiveinfinity.md @@ -1,10 +1,10 @@ --- description: "Learn more about: Number.PositiveInfinity" title: "Number.PositiveInfinity" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.PositiveInfinity - -## About +## About + A constant value that represents 1 divided by 0. diff --git a/query-languages/m/number-power.md b/query-languages/m/number-power.md index 505032c12..f98abbf1f 100644 --- a/query-languages/m/number-power.md +++ b/query-languages/m/number-power.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Number.Power" title: "Number.Power" -ms.date: 3/11/2022 +ms.date: 10/10/2022 --- # Number.Power - + ## Syntax
 Number.Power(number as nullable number, power as nullable number) as nullable number
 
- + ## About Returns the result of raising `number` to the power of `power`. If `number` or `power` are null, **Number.Power** returns null. diff --git a/query-languages/m/number-round.md b/query-languages/m/number-round.md index 380bb10a8..c3f39d8e2 100644 --- a/query-languages/m/number-round.md +++ b/query-languages/m/number-round.md @@ -10,8 +10,8 @@ ms.date: 4/13/2022
 Number.Round(number as nullable number, optional digits as nullable number, optional roundingMode as nullable number) as nullable number
 
- -## About + +## About Returns the result of rounding `number` to the nearest number. If `number` is null, **Number.Round** returns null. diff --git a/query-languages/m/number-sinh.md b/query-languages/m/number-sinh.md index 58ae21175..72065d170 100644 --- a/query-languages/m/number-sinh.md +++ b/query-languages/m/number-sinh.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Sinh" title: "Number.Sinh" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.Sinh @@ -10,6 +10,7 @@ ms.date: 7/31/2019
 Number.Sinh(number as nullable number) as nullable number
 
- -## About + +## About + Returns the hyperbolic sine of `number`. diff --git a/query-languages/m/number-tanh.md b/query-languages/m/number-tanh.md index 3a43745af..077a3e769 100644 --- a/query-languages/m/number-tanh.md +++ b/query-languages/m/number-tanh.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Tanh" title: "Number.Tanh" -ms.date: 7/31/2019 +ms.date: 10/7/2022 --- # Number.Tanh @@ -10,6 +10,7 @@ ms.date: 7/31/2019
 Number.Tanh(number as nullable number) as nullable number
 
- -## About + +## About + Returns the hyperbolic tangent of `number`. diff --git a/query-languages/m/odbc-datasource.md b/query-languages/m/odbc-datasource.md index 8b51b3356..828226442 100644 --- a/query-languages/m/odbc-datasource.md +++ b/query-languages/m/odbc-datasource.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Odbc.DataSource" title: "Odbc.DataSource" -ms.date: 3/14/2022 +ms.date: 10/7/2022 --- # Odbc.DataSource @@ -15,11 +15,11 @@ Odbc.DataSource(connectionString as any, optional options as nulla Returns a table of SQL tables and views from the ODBC data source specified by the connection string `connectionString`. `connectionString` can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: -* `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). -* `HierarchicalNavigation` : A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is 15 seconds. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `SqlCompatibleWindowsAuth` : A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). +* `HierarchicalNavigation`: A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is 15 seconds. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `SqlCompatibleWindowsAuth`: A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. ## Example 1 diff --git a/query-languages/m/odbc-query.md b/query-languages/m/odbc-query.md index 1d1562bd3..287ead5f2 100644 --- a/query-languages/m/odbc-query.md +++ b/query-languages/m/odbc-query.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Odbc.Query" title: "Odbc.Query" -ms.date: 3/14/2022 +ms.date: 10/7/2022 --- # Odbc.Query @@ -15,9 +15,9 @@ Odbc.Query(connectionString as any, query as text, optional opt Returns the result of running `query` with the connection string `connectionString` using ODBC. `connectionString` can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is 15 seconds. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `SqlCompatibleWindowsAuth` : A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is 15 seconds. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `SqlCompatibleWindowsAuth`: A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. ## Example 1 diff --git a/query-languages/m/oledb-datasource.md b/query-languages/m/oledb-datasource.md index 251b0a54c..01310b8c7 100644 --- a/query-languages/m/oledb-datasource.md +++ b/query-languages/m/oledb-datasource.md @@ -1,7 +1,7 @@ --- description: "Learn more about: OleDb.DataSource" title: "OleDb.DataSource" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # OleDb.DataSource @@ -12,14 +12,15 @@ OleDb.DataSource(connectionString as any, optional options as null ## About -Returns a table of SQL tables and views from the OLE DB data source specified by the connection string `connectionString`. `connectionString` can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: -* `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). -* `NavigationPropertyNameGenerator` : A function that is used for the creation of names for navigation properties. -* `Query` : A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `HierarchicalNavigation` : A logical (true/false) that sets whether to view the tables grouped by their schema names (default is true). -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `SqlCompatibleWindowsAuth` : A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. - The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. - +Returns a table of SQL tables and views from the OLE DB data source specified by the connection string `connectionString`. `connectionString` can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: + +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). +* `NavigationPropertyNameGenerator`: A function that is used for the creation of names for navigation properties. +* `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. +* `HierarchicalNavigation`: A logical (true/false) that sets whether to view the tables grouped by their schema names (default is true). +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `SqlCompatibleWindowsAuth`: A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. + +The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/oledb-query.md b/query-languages/m/oledb-query.md index 793a2c5d7..194913270 100644 --- a/query-languages/m/oledb-query.md +++ b/query-languages/m/oledb-query.md @@ -1,7 +1,7 @@ --- description: "Learn more about: OleDb.Query" title: "OleDb.Query" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # OleDb.Query @@ -12,7 +12,9 @@ OleDb.Query(connectionString as any, query as text, optional op ## About -Returns the result of running `query` with the connection string `connectionString` using OLE DB. `connectionString` can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `SqlCompatibleWindowsAuth` : A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. + +Returns the result of running `query` with the connection string `connectionString` using OLE DB. `connectionString` can be text or a record of property value pairs. Property values can either be text or number. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: + +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `SqlCompatibleWindowsAuth`: A logical (true/false) that determines whether to produce SQL Server-compatible connection string options for Windows authentication. The default value is true. diff --git a/query-languages/m/oracle-database.md b/query-languages/m/oracle-database.md index b76771f6f..e2bf83339 100644 --- a/query-languages/m/oracle-database.md +++ b/query-languages/m/oracle-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Oracle.Database" title: "Oracle.Database" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # Oracle.Database @@ -13,13 +13,13 @@ Oracle.Database(server as text, optional options as nullable recor ## About -Returns a table of SQL tables and views from the Oracle database on server `server`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: +Returns a table of SQL tables and views from the Oracle database on server `server`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: -* `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). -* `NavigationPropertyNameGenerator` : A function that is used for the creation of names for navigation properties. -* `Query` : A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -* `HierarchicalNavigation` : A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). +* `NavigationPropertyNameGenerator`: A function that is used for the creation of names for navigation properties. +* `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `HierarchicalNavigation`: A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). - The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. +The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/postgresql-database.md b/query-languages/m/postgresql-database.md index 3743d4fbd..a8367953f 100644 --- a/query-languages/m/postgresql-database.md +++ b/query-languages/m/postgresql-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: PostgreSQL.Database" title: "PostgreSQL.Database" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # PostgreSQL.Database @@ -13,14 +13,13 @@ PostgreSQL.Database(server as text, database as text, optional ## About -Returns a table of SQL tables and views available in a PostgreSQL database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: +Returns a table of SQL tables and views available in a PostgreSQL database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: -* `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). -* `NavigationPropertyNameGenerator` : A function that is used for the creation of names for navigation properties. -* `Query` : A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -* `HierarchicalNavigation` : A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). +* `NavigationPropertyNameGenerator`: A function that is used for the creation of names for navigation properties. +* `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `HierarchicalNavigation`: A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). - The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. - +The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/rdata-frombinary.md b/query-languages/m/rdata-frombinary.md index 0c5392e2a..8271a8344 100644 --- a/query-languages/m/rdata-frombinary.md +++ b/query-languages/m/rdata-frombinary.md @@ -1,16 +1,16 @@ --- description: "Learn more about: RData.FromBinary" title: "RData.FromBinary" -ms.date: 4/16/2018 +ms.date: 10/7/2022 --- # RData.FromBinary ## Syntax
-RData.FromBinary(stream as binary) as any  
+RData.FromBinary(stream as binary) as any
 
-## About -Returns a record of data frames from the RData file. - +## About + +Returns a record of data frames from the RData file. diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 517acf59b..132b14a8b 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -10,8 +10,8 @@ ms.date: 3/16/2022
 RowExpression.From(function as function) as record
 
- -## About + +## About Returns the abstract syntax tree (AST) for the body of `function`, normalized into a _row expression_: diff --git a/query-languages/m/salesforce-data.md b/query-languages/m/salesforce-data.md index 8b11e196f..7bf00a559 100644 --- a/query-languages/m/salesforce-data.md +++ b/query-languages/m/salesforce-data.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Salesforce.Data" title: "Salesforce.Data" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # Salesforce.Data @@ -13,7 +13,8 @@ Salesforce.Data(optional loginUrl as any, optional options as null ## About -Returns the objects on the Salesforce account provided in the credentials. The account will be connected through the provided environment `loginUrl`. If no environment is provided then the account will connect to production (https://login.salesforce.com). An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: -* `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is false). -* `ApiVersion` : The Salesforce API version to use for this query. When not specified, API version 29.0 is used. -* `Timeout` : A duration that controls how long to wait before abandoning the request to the server. The default value is source-specific. +Returns the objects on the Salesforce account provided in the credentials. The account will be connected through the provided environment `loginUrl`. If no environment is provided then the account will connect to production (https://login.salesforce.com). An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: + +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is false). +* `ApiVersion`: The Salesforce API version to use for this query. When not specified, API version 29.0 is used. +* `Timeout`: A duration that controls how long to wait before abandoning the request to the server. The default value is source-specific. diff --git a/query-languages/m/salesforce-reports.md b/query-languages/m/salesforce-reports.md index a95b141eb..e04df55dc 100644 --- a/query-languages/m/salesforce-reports.md +++ b/query-languages/m/salesforce-reports.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Salesforce.Reports" title: "Salesforce.Reports" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # Salesforce.Reports @@ -15,5 +15,5 @@ Salesforce.Reports(optional loginUrl as nullable text, optional option Returns the reports on the Salesforce account provided in the credentials. The account will be connected through the provided environment `loginUrl`. If no environment is provided then the account will connect to production (https://login.salesforce.com). An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: -* `ApiVersion` : The Salesforce API version to use for this query. When not specified, API version 29.0 is used. -* `Timeout` : A duration that controls how long to wait before abandoning the request to the server. The default value is source-specific. +* `ApiVersion`: The Salesforce API version to use for this query. When not specified, API version 29.0 is used. +* `Timeout`: A duration that controls how long to wait before abandoning the request to the server. The default value is source-specific. diff --git a/query-languages/m/sapbusinesswarehouse-cubes.md b/query-languages/m/sapbusinesswarehouse-cubes.md index 7a791f28b..e1f626eaa 100644 --- a/query-languages/m/sapbusinesswarehouse-cubes.md +++ b/query-languages/m/sapbusinesswarehouse-cubes.md @@ -1,7 +1,7 @@ --- description: "Learn more about: SapBusinessWarehouse.Cubes" title: "SapBusinessWarehouse.Cubes" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # SapBusinessWarehouse.Cubes @@ -12,4 +12,5 @@ SapBusinessWarehouse.Cubes(server as text, systemNumberOrSystemId ## About + Returns a table of InfoCubes and queries grouped by InfoArea from an SAP Business Warehouse instance at server `server` with system number `systemNumberOrSystemId` and Client ID `clientId`. An optional record parameter, `optionsOrLogonGroup`, may be specified to control options. diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index 9782cb185..cdca97d52 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: SapHana.Database" title: "SapHana.Database" -ms.date: 9/1/2022 +ms.date: 10/7/2022 --- # SapHana.Database @@ -16,6 +16,6 @@ SapHana.Database(**server** as text, optional **options** as nullable record) as Returns a table of multidimensional packages from the SAP HANA database `server`. An optional record parameter, `options`, may be specified to control the following options: * `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `Distribution`: A [SapHanaDistribution](saphanadistribution-type.md) that sets the value of the "Distribution" property in the connection string. Statement routing is the method of evaluating the correct server node of a distributed system before statement execution. The default value is `SapHanaDistribution.All`. +* `Distribution`: A [SapHanaDistribution](saphanadistribution-type.md) that sets the value of the "Distribution" property in the connection string. Statement routing is the method of evaluating the correct server node of a distributed system before statement execution. The default value is `SapHanaDistribution.All`. * `Implementation`: Specifies the implementation of the SAP HANA connector to use. * `EnableColumnBinding`: Binds variables to the columns of a SAP HANA result set when fetching data. May potentially improve performance at the cost of slightly higher memory utilization. The default value is false. diff --git a/query-languages/m/sharepoint-contents.md b/query-languages/m/sharepoint-contents.md index 2b56f49a3..03a5cc834 100644 --- a/query-languages/m/sharepoint-contents.md +++ b/query-languages/m/sharepoint-contents.md @@ -1,7 +1,7 @@ --- description: "Learn more about: SharePoint.Contents" title: "SharePoint.Contents" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # SharePoint.Contents @@ -13,7 +13,6 @@ SharePoint.Contents(url as text, optional options as nullable reco ## About -Returns a table containing a row for each folder and document found at the specified SharePoint site, `url`. Each row contains properties of the folder or file and a link to its content. `options` may be specified to control the following options: +Returns a table containing a row for each folder and document found at the specified SharePoint site, `url`. Each row contains properties of the folder or file and a link to its content. `options` may be specified to control the following options: -* `ApiVersion` : A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. - +* `ApiVersion`: A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. diff --git a/query-languages/m/sharepoint-files.md b/query-languages/m/sharepoint-files.md index bc8033ff5..632d0ed73 100644 --- a/query-languages/m/sharepoint-files.md +++ b/query-languages/m/sharepoint-files.md @@ -1,7 +1,7 @@ --- description: "Learn more about: SharePoint.Files" title: "SharePoint.Files" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # SharePoint.Files @@ -13,7 +13,6 @@ SharePoint.Files(url as text, optional options as nullable record) ## About -Returns a table containing a row for each document found at the specified SharePoint site, `url`, and subfolders. Each row contains properties of the folder or file and a link to its content. `options` may be specified to control the following options: +Returns a table containing a row for each document found at the specified SharePoint site, `url`, and subfolders. Each row contains properties of the folder or file and a link to its content. `options` may be specified to control the following options: -* `ApiVersion` : A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. - +* `ApiVersion`: A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index b46b46108..bb9f5e550 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -1,7 +1,7 @@ --- description: "Learn more about: SharePoint.Tables" title: "SharePoint.Tables" -ms.date: 9/14/2020 +ms.date: 10/7/2022 --- # SharePoint.Tables @@ -13,9 +13,8 @@ SharePoint.Tables(url as text, optional options as nullable record ## About -Returns a table containing a row for each List item found at the specified SharePoint list, `url`. Each row contains properties of the List. `options` may be specified to control the following options: +Returns a table containing a row for each List item found at the specified SharePoint list, `url`. Each row contains properties of the List. `options` may be specified to control the following options: -* `ApiVersion` : A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. +* `ApiVersion`: A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. * `Implementation` * `ViewMode` - diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index 656db0b83..720104f27 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -1,7 +1,7 @@ --- description: "Learn more about: #date" title: "#date" -ms.date: 6/21/2021 +ms.date: 10/10/2022 --- # #date diff --git a/query-languages/m/sharpduration.md b/query-languages/m/sharpduration.md index 50982afc8..f7a24caca 100644 --- a/query-languages/m/sharpduration.md +++ b/query-languages/m/sharpduration.md @@ -1,7 +1,7 @@ --- description: "Learn more about: #duration" title: "#duration" -ms.date: 6/21/2021 +ms.date: 10/10/2022 --- # #duration diff --git a/query-languages/m/soda-feed.md b/query-languages/m/soda-feed.md index 45501f4cd..d9737c15e 100644 --- a/query-languages/m/soda-feed.md +++ b/query-languages/m/soda-feed.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Soda.Feed" title: "Soda.Feed" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Soda.Feed - + ## Syntax
 Soda.Feed(url as text) as table
 
- -## About + +## About + Returns a table from the contents at the specified URL `url` formatted according to the SODA 2.0 API. The URL must point to a valid SODA-compliant source that ends in a .csv extension. diff --git a/query-languages/m/splitter-splitbynothing.md b/query-languages/m/splitter-splitbynothing.md index a0d608532..db082e395 100644 --- a/query-languages/m/splitter-splitbynothing.md +++ b/query-languages/m/splitter-splitbynothing.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Splitter.SplitByNothing" title: "Splitter.SplitByNothing" -ms.date: 8/1/2019 +ms.date: 10/7/2022 --- # Splitter.SplitByNothing @@ -12,7 +12,5 @@ Splitter.SplitByNothing() as function ## About -Returns a function that does no splitting, returning its argument as a single element list. - - +Returns a function that does no splitting, returning its argument as a single element list. diff --git a/query-languages/m/sql-database.md b/query-languages/m/sql-database.md index e20820ff3..a4bd6e3f1 100644 --- a/query-languages/m/sql-database.md +++ b/query-languages/m/sql-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Sql.Database" title: "Sql.Database" -ms.date: 11/23/2020 +ms.date: 10/7/2022 --- # Sql.Database @@ -27,5 +27,4 @@ Returns a table of SQL tables, views, and stored functions from the SQL Server d * `ContextInfo`: A binary value that is used to set the CONTEXT_INFO before running each command. * `OmitSRID`: A logical (true/false) that, if true, omits the SRID when producing Well-Known Text from geometry and geography types. -The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. - +The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/sql-databases.md b/query-languages/m/sql-databases.md index 07aeafdc3..f0911b09a 100644 --- a/query-languages/m/sql-databases.md +++ b/query-languages/m/sql-databases.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Sql.Databases" title: "Sql.Databases" -ms.date: 11/23/2020 +ms.date: 10/7/2022 --- # Sql.Databases @@ -28,4 +28,4 @@ Returns a table of databases on the specified SQL server, `server`. An optional The record parameter is specified as [option1 = value1, option2 = value2...] for example. -Does not support setting a SQL query to run on the server. [`Sql.Database`](sql-database.md) should be used instead to run a SQL query. +Does not support setting a SQL query to run on the server. [`Sql.Database`](sql-database.md) should be used instead to run a SQL query. diff --git a/query-languages/m/sybase-database.md b/query-languages/m/sybase-database.md index a313cb68f..7f3a58180 100644 --- a/query-languages/m/sybase-database.md +++ b/query-languages/m/sybase-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Sybase.Database" title: "Sybase.Database" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # Sybase.Database @@ -13,14 +13,13 @@ Sybase.Database(server as text, database as text, optional opti ## About -Returns a table of SQL tables and views available in a Sybase database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: +Returns a table of SQL tables and views available in a Sybase database on server `server` in the database instance named `database`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: -* `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). -* `NavigationPropertyNameGenerator` : A function that is used for the creation of names for navigation properties. -* `Query` : A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -* `HierarchicalNavigation` : A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). +* `NavigationPropertyNameGenerator`: A function that is used for the creation of names for navigation properties. +* `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `HierarchicalNavigation`: A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). - The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. - +The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index d9583e1a7..de8676742 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.AddFuzzyClusterColumn" title: "Table.AddFuzzyClusterColumn" -ms.date: 3/14/2022 +ms.date: 10/7/2022 --- # Table.AddFuzzyClusterColumn @@ -10,8 +10,8 @@ ms.date: 3/14/2022
 Table.AddFuzzyClusterColumn(table as table, columnName as text, newColumnName as text, optional options as nullable record) as table
 
- -## About + +## About Adds a new column `newColumnName` to `table` with representative values of `columnName`. The representatives are obtained by fuzzily matching values in `columnName`, for each row. diff --git a/query-languages/m/table-addjoincolumn.md b/query-languages/m/table-addjoincolumn.md index fc3ebc82d..fc7b819f1 100644 --- a/query-languages/m/table-addjoincolumn.md +++ b/query-languages/m/table-addjoincolumn.md @@ -1,17 +1,17 @@ --- description: "Learn more about: Table.AddJoinColumn" title: "Table.AddJoinColumn" -ms.date: 3/10/2022 +ms.date: 10/7/2022 --- # Table.AddJoinColumn ## Syntax
-Table.AddJoinColumn(table1 as table, key1 as any, table2 as function, key2 as any, newColumnName as text) as table  
+Table.AddJoinColumn(table1 as table, key1 as any, table2 as function, key2 as any, newColumnName as text) as table
 
- -## About + +## About Joins the rows of `table1` with the rows of `table2` based on the equality of the values of the key columns selected by `key1` (for `table1`) and `key2` (for `table2`). The results are entered into the column named `newColumnName`. This function behaves similarly to [Table.Join](/powerquery-m/table-join) with a JoinKind of LeftOuter except that the join results are presented in a nested rather than flattened fashion. diff --git a/query-languages/m/table-combinecolumnstorecord.md b/query-languages/m/table-combinecolumnstorecord.md index 33873505a..fb73962a0 100644 --- a/query-languages/m/table-combinecolumnstorecord.md +++ b/query-languages/m/table-combinecolumnstorecord.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.CombineColumnsToRecord" title: "Table.CombineColumnsToRecord" -ms.date: 09/14/2020 +ms.date: 10/7/2022 --- # Table.CombineColumnsToRecord @@ -10,8 +10,9 @@ ms.date: 09/14/2020
 Table.CombineColumnsToRecord(table as table, newColumnName as text, sourceColumns as list, optional options as nullable record) as table
 
- -## About + +## About + Combines the specified columns of `table` into a new record-valued column named `newColumnName` where each record has field names and values corresponding to the column names and values of the columns that were combined. If a record is specified for `options`, the following options may be provided: * `DisplayNameColumn`: When specified as text, indicates that the given column name should be treated as the display name of the record. This need not be one of the columns in the record itself. diff --git a/query-languages/m/table-conformtopagereader.md b/query-languages/m/table-conformtopagereader.md index 7e52da974..644c89453 100644 --- a/query-languages/m/table-conformtopagereader.md +++ b/query-languages/m/table-conformtopagereader.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.ConformToPageReader" title: "Table.ConformToPageReader" -ms.date: 8/21/2020 +ms.date: 10/7/2022 --- # Table.ConformToPageReader @@ -10,6 +10,7 @@ ms.date: 8/21/2020
 Table.ConformToPageReader(table as table, shapingFunction as function) as table
 
- -## About + +## About + This function is intended for internal use only. diff --git a/query-languages/m/table-firstvalue.md b/query-languages/m/table-firstvalue.md index 8472077d6..ccba46589 100644 --- a/query-languages/m/table-firstvalue.md +++ b/query-languages/m/table-firstvalue.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.FirstValue" title: "Table.FirstValue" -ms.date: 8/1/2019 +ms.date: 10/7/2022 --- # Table.FirstValue @@ -12,5 +12,5 @@ Table.FirstValue(table as table, optional default as any) as any ## About -Returns the first column of the first row of the table `table` or a specified default value. +Returns the first column of the first row of the table `table` or a specified default value. diff --git a/query-languages/m/table-fromrecords.md b/query-languages/m/table-fromrecords.md index ebac055e2..0ef1b9e5f 100644 --- a/query-languages/m/table-fromrecords.md +++ b/query-languages/m/table-fromrecords.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.FromRecords" title: "Table.FromRecords" -ms.date: 3/10/2021 +ms.date: 3/10/2022 --- # Table.FromRecords diff --git a/query-languages/m/table-partition.md b/query-languages/m/table-partition.md index de9a951b4..672cc6647 100644 --- a/query-languages/m/table-partition.md +++ b/query-languages/m/table-partition.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.Partition" title: "Table.Partition" -ms.date: 3/14/2022 +ms.date: 10/7/2022 --- # Table.Partition @@ -22,7 +22,7 @@ Partitions the `table` into a list of `groups` number of tables, based on the va ## Example 1 -Partition the table ({[a = 2, b = 4], [a = 6, b = 8], [a = 2, b = 4], [a = 1, b = 4]}) into 2 tables on column [a], using the value of the columns as the hash function. +Partition the table `({[a = 2, b = 4], [a = 6, b = 8], [a = 2, b = 4], [a = 1, b = 4]})` into 2 tables on column [a], using the value of the columns as the hash function. **Usage** diff --git a/query-languages/m/table-pivot.md b/query-languages/m/table-pivot.md index e706819b9..0cd879482 100644 --- a/query-languages/m/table-pivot.md +++ b/query-languages/m/table-pivot.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.Pivot" title: "Table.Pivot" -ms.date: 3/10/2021 +ms.date: 10/7/2022 --- # Table.Pivot @@ -10,7 +10,7 @@ ms.date: 3/10/2021
 Table.Pivot(table as table, pivotValues as list, attributeColumn as text, valueColumn as text, optional aggregationFunction as nullable function) as table
 
- + ## About Given a pair of columns representing attribute-value pairs, rotates the data in the attribute column into a column headings. diff --git a/query-languages/m/table-profile.md b/query-languages/m/table-profile.md index 494b5422a..df3ff6da3 100644 --- a/query-languages/m/table-profile.md +++ b/query-languages/m/table-profile.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.Profile" title: "Table.Profile" -ms.date: 8/1/2019 +ms.date: 10/7/2022 --- # Table.Profile @@ -11,5 +11,16 @@ ms.date: 8/1/2019 Table.Profile(table as table, optional additionalAggregates as nullable list) as table -## About -

Returns a profile for the columns in table.

The following information is returned for each column (when applicable):

  • minimum
  • maximum
  • average
  • standard deviation
  • count
  • null count
  • distinct count

+## About + +Returns a profile for the columns in `table`. + +The following information is returned for each column (when applicable): + +* minimum +* maximum +* average +* standard deviation +* count +* null count +* distinct count diff --git a/query-languages/m/table-schema.md b/query-languages/m/table-schema.md index 4a980e408..d1dde740e 100644 --- a/query-languages/m/table-schema.md +++ b/query-languages/m/table-schema.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.Schema" title: "Table.Schema" -ms.date: 11/17/2021 +ms.date: 10/7/2022 --- # Table.Schema @@ -20,10 +20,10 @@ Each row in the table describes the properties of a column of `table`: | Column Name | Description | | --- | --- | | `Name` | The name of the column. | -| `Position` | The 0-based position of the column in `table`. +| `Position` | The 0-based position of the column in `table`. | | `TypeName` | The name of the type of the column. | | `Kind` | The kind of the type of the column. | -| `IsNullable` | Whether the column can contain `null` values. +| `IsNullable` | Whether the column can contain `null` values. | | `NumericPrecisionBase` | The numeric base (for example, base-2 or base-10) of the `NumericPrecision` and `NumericScale` fields. | | `NumericPrecision` | The precision of a numeric column in the base specified by `NumericPrecisionBase`. This is the maximum number of digits that can be represented by a value of this type (including fractional digits). | | `NumericScale` | The scale of a numeric column in the base specified by `NumericPrecisionBase`. This is the number of digits in the fractional part of a value of this type. A value of `0` indicates a fixed scale with no fractional digits. A value of `null` indicates the scale is not known (either because it is floating or not defined). | @@ -35,4 +35,3 @@ Each row in the table describes the properties of a column of `table`: | `NativeDefaultExpression` | The default expression for a value of this column in the native expression language of the source (for example, `42` or `newid()` for SQL Server). | |   |   | | `Description` | The description of the column. | -| | | diff --git a/query-languages/m/table-splitat.md b/query-languages/m/table-splitat.md index ee15e4105..1d3ab6848 100644 --- a/query-languages/m/table-splitat.md +++ b/query-languages/m/table-splitat.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.SplitAt" title: "Table.SplitAt" -ms.date: 3/14/2022 +ms.date: 10/7/2022 --- # Table.SplitAt @@ -20,7 +20,7 @@ Return the first two rows of the table and the remaining rows of the table. **Usage** ```powerquery-m -Table.SplitAt(#table({"a", "b", "c"}, {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}), 2) +Table.SplitAt(#table({"a", "b", "c"}, {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}), 2) ``` **Output** diff --git a/query-languages/m/table-torows.md b/query-languages/m/table-torows.md index 0cabf6116..94c0a1533 100644 --- a/query-languages/m/table-torows.md +++ b/query-languages/m/table-torows.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.ToRows" title: "Table.ToRows" -ms.date: 3/10/2022 +ms.date: 10/7/2022 --- # Table.ToRows @@ -13,7 +13,7 @@ Table.ToRows(table as table) as list ## About -Creates a list of nested lists from the table, table. Each list item is an inner list that contains the row values. +Creates a list of nested lists from the table, `table`. Each list item is an inner list that contains the row values. ## Example 1 diff --git a/query-languages/m/tables-getrelationships.md b/query-languages/m/tables-getrelationships.md index 26101ec1d..3d0e1a1ce 100644 --- a/query-languages/m/tables-getrelationships.md +++ b/query-languages/m/tables-getrelationships.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Tables.GetRelationships" title: "Tables.GetRelationships" -ms.date: 8/1/2019 +ms.date: 10/7/2022 --- # Tables.GetRelationships @@ -9,7 +9,8 @@ ms.date: 8/1/2019
 Tables.GetRelationships(tables as table, optional dataColumn as nullable text) as table
-
- -## About + + +## About + Gets the relationships among a set of tables. The set `tables` is assumed to have a structure similar to that of a navigation table. The column defined by `dataColumn` contains the actual data tables. diff --git a/query-languages/m/teradata-database.md b/query-languages/m/teradata-database.md index 82f27a71f..b1e752cf7 100644 --- a/query-languages/m/teradata-database.md +++ b/query-languages/m/teradata-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Teradata.Database" title: "Teradata.Database" -ms.date: 02/03/2021 +ms.date: 10/7/2022 --- # Teradata.Database @@ -12,19 +12,19 @@ Teradata.Database(server as text, optional options as nullable rec ## About -Returns a table of SQL tables and views from the Teradata database on server `server`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: -* `CreateNavigationProperties` : A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). +Returns a table of SQL tables and views from the Teradata database on server `server`. The port may be optionally specified with the server, separated by a colon. An optional record parameter, `options`, may be specified to control the following options: -* `NavigationPropertyNameGenerator` : A function that is used for the creation of names for navigation properties. +* `CreateNavigationProperties`: A logical (true/false) that sets whether to generate navigation properties on the returned values (default is true). -* `Query` : A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. +* `NavigationPropertyNameGenerator`: A function that is used for the creation of names for navigation properties. -* `CommandTimeout` : A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. +* `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `ConnectionTimeout` : A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. -* `HierarchicalNavigation` : A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. -The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. - +* `HierarchicalNavigation`: A logical (true/false) that sets whether to view the tables grouped by their schema names (default is false). + +The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/text-frombinary.md b/query-languages/m/text-frombinary.md index 2ca6877ba..a773d70da 100644 --- a/query-languages/m/text-frombinary.md +++ b/query-languages/m/text-frombinary.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text.FromBinary" title: "Text.FromBinary" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Text.FromBinary @@ -10,6 +10,7 @@ ms.date: 8/2/2019
 Text.FromBinary(binary as nullable binary, optional encoding as nullable number) as nullable text
 
- -## About + +## About + Decodes data, `binary`, from a binary value in to a text value, using `encoding` type. diff --git a/query-languages/m/text-infernumbertype.md b/query-languages/m/text-infernumbertype.md index 5b73e5eb4..fe55f27e3 100644 --- a/query-languages/m/text-infernumbertype.md +++ b/query-languages/m/text-infernumbertype.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text.InferNumberType" title: "Text.InferNumberType" -ms.date: 11/17/2021 +ms.date: 10/7/2022 --- # Text.InferNumberType @@ -10,8 +10,7 @@ ms.date: 11/17/2021
 Text.InferNumberType(text as text, optional culture as nullable text) as type
 
- + ## About Infers the granular number type (Int64.Type, Double.Type, and so on) of `text`. An error is raised if `text` is not a number. An optional `culture` may also be provided (for example, "en-US"). - diff --git a/query-languages/m/text-newguid.md b/query-languages/m/text-newguid.md index ca2bb5668..cdb6068ae 100644 --- a/query-languages/m/text-newguid.md +++ b/query-languages/m/text-newguid.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Text.NewGuid" title: "Text.NewGuid" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Text.NewGuid ## Syntax
-Text.NewGuid() as text 
+Text.NewGuid() as text
 
- -## About + +## About + Returns a new, random globally unique identifier (GUID). diff --git a/query-languages/m/text-tobinary.md b/query-languages/m/text-tobinary.md index 92f6b99d7..2cc03d91d 100644 --- a/query-languages/m/text-tobinary.md +++ b/query-languages/m/text-tobinary.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text.ToBinary" title: "Text.ToBinary" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Text.ToBinary @@ -10,6 +10,7 @@ ms.date: 8/2/2019
 Text.ToBinary(text as nullable text, optional encoding as nullable number, optional includeByteOrderMark as nullable logical) as nullable binary
 
- -## About + +## About + Encodes the given text value, `text`, into a binary value using the specified `encoding`. diff --git a/query-languages/m/text-trimend.md b/query-languages/m/text-trimend.md index acfe47e33..1763aa9fd 100644 --- a/query-languages/m/text-trimend.md +++ b/query-languages/m/text-trimend.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text.TrimEnd" title: "Text.TrimEnd" -ms.date: 4/22/2020 +ms.date: 4/22/2022 --- # Text.TrimEnd diff --git a/query-languages/m/type-addtablekey.md b/query-languages/m/type-addtablekey.md index 53fec054c..0588ca2d8 100644 --- a/query-languages/m/type-addtablekey.md +++ b/query-languages/m/type-addtablekey.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Type.AddTableKey" title: "Type.AddTableKey" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Type.AddTableKey @@ -10,6 +10,7 @@ ms.date: 8/2/2019
 Type.AddTableKey(table as type, columns as list, isPrimary as logical) as type
 
- -## About + +## About + Adds a key to the given table type. diff --git a/query-languages/m/type-facets.md b/query-languages/m/type-facets.md index f62597734..6beaa3e9c 100644 --- a/query-languages/m/type-facets.md +++ b/query-languages/m/type-facets.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Type.Facets" title: "Type.Facets" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Type.Facets @@ -10,7 +10,7 @@ ms.date: 8/2/2019
 Type.Facets(type as type) as record
 
- -## About -Returns a record containing the facets of `type` - + +## About + +Returns a record containing the facets of `type`. diff --git a/query-languages/m/type-forrecord.md b/query-languages/m/type-forrecord.md index 2ed9a888f..f32ee1771 100644 --- a/query-languages/m/type-forrecord.md +++ b/query-languages/m/type-forrecord.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Type.ForRecord" title: "Type.ForRecord" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Type.ForRecord @@ -10,6 +10,7 @@ ms.date: 8/2/2019
 Type.ForRecord(fields as record, open as logical) as type
 
- -## About + +## About + Returns a type that represents records with specific type constraints on fields. diff --git a/query-languages/m/type-replacefacets.md b/query-languages/m/type-replacefacets.md index a143d0d04..531803be2 100644 --- a/query-languages/m/type-replacefacets.md +++ b/query-languages/m/type-replacefacets.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Type.ReplaceFacets" title: "Type.ReplaceFacets" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Type.ReplaceFacets @@ -10,7 +10,7 @@ ms.date: 8/2/2019
 Type.ReplaceFacets(type as type, facets as record) as type
 
- -## About + +## About + Replaces the facets of `type` with the facets contained in the record `facets`. - diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index b3a37357f..21876f481 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Type.ReplaceTableKeys" title: "Type.ReplaceTableKeys" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Type.ReplaceTableKeys ## Syntax -
  
+
 Type.ReplaceTableKeys(tableType as type, keys as list) as type
 
- -## About + +## About + Returns a new table type with all keys replaced by the specified list of keys. diff --git a/query-languages/m/type-tablecolumn.md b/query-languages/m/type-tablecolumn.md index fa6220cdf..5937b5f9a 100644 --- a/query-languages/m/type-tablecolumn.md +++ b/query-languages/m/type-tablecolumn.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Type.TableColumn" title: "Type.TableColumn" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Type.TableColumn @@ -12,4 +12,5 @@ Type.TableColumn(tableType as type, column as text) as type
## About + Returns the type of the column `column` in the table type `tableType`. diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index 929f0054d..559b4d51e 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Type.TableKeys" title: "Type.TableKeys" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Type.TableKeys ## Syntax
-Type.TableKeys(tableType as type) as list 
+Type.TableKeys(tableType as type) as list
 
- -## About + +## About + Returns the possibly empty list of keys for the given table type. diff --git a/query-languages/m/type-union.md b/query-languages/m/type-union.md index e55107562..81d76ab72 100644 --- a/query-languages/m/type-union.md +++ b/query-languages/m/type-union.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Type.Union" title: "Type.Union" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Type.Union @@ -12,5 +12,5 @@ Type.Union(types as list) as type ## About -Returns the union of the types in `types`. +Returns the union of the types in `types`. diff --git a/query-languages/m/uri-combine.md b/query-languages/m/uri-combine.md index 1e13a358c..ad48f8c60 100644 --- a/query-languages/m/uri-combine.md +++ b/query-languages/m/uri-combine.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Uri.Combine" title: "Uri.Combine" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Uri.Combine @@ -10,6 +10,7 @@ ms.date: 8/2/2019
 Uri.Combine(baseUri as text, relativeUri as text) as text
 
- -## About + +## About + Returns an absolute URI that is the combination of the input `baseUri` and `relativeUri`. diff --git a/query-languages/m/value-add.md b/query-languages/m/value-add.md index 0fda9c364..842b6786c 100644 --- a/query-languages/m/value-add.md +++ b/query-languages/m/value-add.md @@ -1,17 +1,16 @@ --- description: "Learn more about: Value.Add" title: "Value.Add" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.Add - + ## Syntax
 Value.Add(value1 as any, value2 as any, optional precision as nullable number) as any
 
- -## About - Returns the sum of `value1` and `value2`. An optional `precision` parameter may be specified, by default `Precision.Double` is used. +## About +Returns the sum of `value1` and `value2`. An optional `precision` parameter may be specified, by default `Precision.Double` is used. diff --git a/query-languages/m/value-compare.md b/query-languages/m/value-compare.md index db77e6055..2e094450e 100644 --- a/query-languages/m/value-compare.md +++ b/query-languages/m/value-compare.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Value.Compare" title: "Value.Compare" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.Compare ## Syntax
-Value.Compare(value1 as any, value2 as any, optional precision as nullable number) as number 
+Value.Compare(value1 as any, value2 as any, optional precision as nullable number) as number
 
- -## About + +## About + Returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second one. diff --git a/query-languages/m/value-divide.md b/query-languages/m/value-divide.md index f4faeaa97..675631b55 100644 --- a/query-languages/m/value-divide.md +++ b/query-languages/m/value-divide.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value.Divide" title: "Value.Divide" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.Divide @@ -9,7 +9,8 @@ ms.date: 8/2/2019
 Value.Divide(value1 as any, value2 as any, optional precision as nullable number) as any
-
+ -## About +## About + Returns the result of dividing `value1` by `value2`. An optional `precision` parameter may be specified, by default `Precision.Double` is used. diff --git a/query-languages/m/value-equals.md b/query-languages/m/value-equals.md index eecae0ace..883d0c49d 100644 --- a/query-languages/m/value-equals.md +++ b/query-languages/m/value-equals.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value.Equals" title: "Value.Equals" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.Equals @@ -10,6 +10,7 @@ ms.date: 8/2/2019
 Value.Equals(value1 as any, value2 as any, optional precision as nullable number) as logical
 
- -## About + +## About + Returns true if value `value1` is equal to value `value2`, false otherwise. diff --git a/query-languages/m/value-fromtext.md b/query-languages/m/value-fromtext.md index 267d67378..f3787e9ac 100644 --- a/query-languages/m/value-fromtext.md +++ b/query-languages/m/value-fromtext.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value.FromText" title: "Value.FromText" -ms.date: 4/1/2020 +ms.date: 10/7/2022 --- # Value.FromText @@ -9,7 +9,8 @@ ms.date: 4/1/2020
 Value.FromText(text as any, optional culture as nullable text) as any
-
- -## About -Decodes a value from a textual representation, `text`, and interprets it as a value with an appropriate type. `Value.FromText` takes a text value and returns a number, a logical value, a null value, a datetime value, a duration value, or a text value. The empty text value is interpreted as a null value. An optional `culture` may also be provided (for example, "en-US"). + + +## About + +Decodes a value from a textual representation, `text`, and interprets it as a value with an appropriate type. **Value.FromText** takes a text value and returns a number, a logical value, a null value, a datetime value, a duration value, or a text value. The empty text value is interpreted as a null value. An optional `culture` may also be provided (for example, "en-US"). diff --git a/query-languages/m/value-lineage.md b/query-languages/m/value-lineage.md index cc29f902d..f3cfb829a 100644 --- a/query-languages/m/value-lineage.md +++ b/query-languages/m/value-lineage.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Value.Lineage" title: "Value.Lineage" -ms.date: 9/22/2020 +ms.date: 10/7/2022 --- # Value.Lineage ## Syntax -
 
+
 Value.Lineage(value as any) as any
 
## About + This function is intended for internal use only. diff --git a/query-languages/m/value-metadata.md b/query-languages/m/value-metadata.md index 5bc961fc7..57614df20 100644 --- a/query-languages/m/value-metadata.md +++ b/query-languages/m/value-metadata.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Value.Metadata" title: "Value.Metadata" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.Metadata ## Syntax
-Value.Metadata(value as any) as any 
+Value.Metadata(value as any) as any
 
- -## About + +## About + Returns a record containing the input's metadata. diff --git a/query-languages/m/value-multiply.md b/query-languages/m/value-multiply.md index 02b145e67..ddd4bf153 100644 --- a/query-languages/m/value-multiply.md +++ b/query-languages/m/value-multiply.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value.Multiply" title: "Value.Multiply" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.Multiply @@ -10,6 +10,7 @@ ms.date: 8/2/2019
 Value.Multiply(value1 as any, value2 as any, optional precision as nullable number) as any
 
- -## About -Returns the product of multiplying `value1` by `value2`. An optional `precision` parameter may be specified, by default `Precision.Double` is used. + +## About + +Returns the product of multiplying `value1` by `value2`. An optional `precision` parameter may be specified, by default [Precision.Double](precision-type.md) is used. diff --git a/query-languages/m/value-nullableequals.md b/query-languages/m/value-nullableequals.md index 3ac3d9952..f35703cb7 100644 --- a/query-languages/m/value-nullableequals.md +++ b/query-languages/m/value-nullableequals.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Value.NullableEquals" title: "Value.NullableEquals" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.NullableEquals ## Syntax -
  
+
 Value.NullableEquals(value1 as any, value2 as any, optional precision as nullable number) as nullable logical
 
- -## About -Returns null if either argument `value1`, `value2` is null, otherwise equivalent to Value.Equals. + +## About + +Returns null if either argument `value1`, `value2` is null, otherwise equivalent to [Value.Equals](value-equals.md). diff --git a/query-languages/m/value-optimize.md b/query-languages/m/value-optimize.md index 3602c30dc..9e6cb5702 100644 --- a/query-languages/m/value-optimize.md +++ b/query-languages/m/value-optimize.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value.Optimize" title: "Value.Optimize" -ms.date: 06/16/2020 +ms.date: 10/7/2022 --- # Value.Optimize @@ -10,6 +10,7 @@ ms.date: 06/16/2020
 Value.Optimize(value as any) as any
 
- -## About + +## About + When used within Value.Expression, if `value` represents a query that can be optimized, this function indicates that the optimized expression should be returned. Otherwise, `value` will be passed through with no effect. diff --git a/query-languages/m/value-removemetadata.md b/query-languages/m/value-removemetadata.md index edaf0d2dd..ef24d1349 100644 --- a/query-languages/m/value-removemetadata.md +++ b/query-languages/m/value-removemetadata.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Value.RemoveMetadata" title: "Value.RemoveMetadata" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.RemoveMetadata ## Syntax
-Value.RemoveMetadata(value as any, optional metaValue as any) as any 
-
- -## About +Value.RemoveMetadata(value as any, optional metaValue as any) as any +
+ +## About + Strips the input of metadata. diff --git a/query-languages/m/value-replacemetadata.md b/query-languages/m/value-replacemetadata.md index b89172812..c4b1be6ea 100644 --- a/query-languages/m/value-replacemetadata.md +++ b/query-languages/m/value-replacemetadata.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value.ReplaceMetadata" title: "Value.ReplaceMetadata" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.ReplaceMetadata @@ -10,6 +10,7 @@ ms.date: 8/2/2019
 Value.ReplaceMetadata(value as any, metaValue as any) as any
 
- -## About + +## About + Replaces the input's metadata information. diff --git a/query-languages/m/value-subtract.md b/query-languages/m/value-subtract.md index 413918ff3..28c8866bb 100644 --- a/query-languages/m/value-subtract.md +++ b/query-languages/m/value-subtract.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value.Subtract" title: "Value.Subtract" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.Subtract @@ -10,6 +10,7 @@ ms.date: 8/2/2019
 Value.Subtract(value1 as any, value2 as any, optional precision as nullable number) as any
 
- -## About + +## About + Returns the difference of `value1` and `value2`. An optional `precision` parameter may be specified, by default `Precision.Double` is used. diff --git a/query-languages/m/value-traits.md b/query-languages/m/value-traits.md index 1447c98a9..9d1891ae2 100644 --- a/query-languages/m/value-traits.md +++ b/query-languages/m/value-traits.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Value.Traits" title: "Value.Traits" -ms.date: 9/22/2020 +ms.date: 10/7/2022 --- # Value.Traits ## Syntax -
 
+
 Value.Traits(value as any) as table
 
## About + This function is intended for internal use only. diff --git a/query-languages/m/value-type.md b/query-languages/m/value-type.md index 9d7ae3146..cfce66563 100644 --- a/query-languages/m/value-type.md +++ b/query-languages/m/value-type.md @@ -1,15 +1,16 @@ --- description: "Learn more about: Value.Type" title: "Value.Type" -ms.date: 8/2/2019 +ms.date: 10/7/2022 --- # Value.Type - ## Syntax +
 Value.Type(value as any) as type
 
## About + Returns the type of the given value. diff --git a/query-languages/m/web-browsercontents.md b/query-languages/m/web-browsercontents.md index 504c6d403..1d868d153 100644 --- a/query-languages/m/web-browsercontents.md +++ b/query-languages/m/web-browsercontents.md @@ -10,8 +10,8 @@ ms.date: 3/14/2022
 Web.BrowserContents(url as text, optional options as nullable record) as text
 
- -## About + +## About Returns the HTML for the specified `url`, as viewed by a web browser. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: diff --git a/query-languages/m/web-page.md b/query-languages/m/web-page.md index 6851de697..c2b6ceeb2 100644 --- a/query-languages/m/web-page.md +++ b/query-languages/m/web-page.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Web.Page" title: "Web.Page" -ms.date: 10/17/2019 +ms.date: 10/7/2022 --- # Web.Page @@ -9,8 +9,8 @@ ms.date: 10/17/2019
 Web.Page(html as any) as table
-
- -## About -Returns the contents of the HTML document broken into its constituent structures, as well as a representation of the full document and its text after removing tags. +
+## About + +Returns the contents of the HTML document broken into its constituent structures, as well as a representation of the full document and its text after removing tags. diff --git a/query-languages/m/xml-document.md b/query-languages/m/xml-document.md index c991beeff..0527db651 100644 --- a/query-languages/m/xml-document.md +++ b/query-languages/m/xml-document.md @@ -1,16 +1,16 @@ --- description: "Learn more about: Xml.Document" title: "Xml.Document" -ms.date: 7/29/2019 +ms.date: 10/7/2022 --- # Xml.Document - ## Syntax
 Xml.Document(contents as any, optional encoding as nullable number) as table
 
- -## About + +## About + Returns the contents of the XML document as a hierarchical table. From 0524f62ebc889c29bb72149bf964cf6accb915a9 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 17 Oct 2022 16:17:18 -0700 Subject: [PATCH 092/934] Addding OFFSET --- query-languages/dax/offset-function-dax.md | 117 +++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 query-languages/dax/offset-function-dax.md diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md new file mode 100644 index 000000000..0143de613 --- /dev/null +++ b/query-languages/dax/offset-function-dax.md @@ -0,0 +1,117 @@ +--- +description: "Learn more about: OFFSET" +title: "OFFSET function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 10/17/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- + +# OFFSET + +Returns a single row that is positioned either before or after the current row by a given offset, within the same table. + +## Syntax + +```dax +OFFSET ( [, ][, ][, ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|delta|The number of rows before (negative value) or after (positive value) the current row from which to obtain the data. It can be any DAX expression that returns a scalar value. | +|relation|(Optional) A table expression from which the output row will be returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \. +|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ will be treated as a single partition. | + +## Return value + +A single row from \. + +## Remarks + +- \ columns must have a corresponding outer column to help define the “current row” on which to operate. + - If there is no corresponding outer column: + - If all \ columns with no corresponding outer column are from the same table, one row will be returned for every possible combination of existing values of these columns. + - Otherwise, an error will be returned. + - If there is more than one corresponding outer column, an error will be returned. + +- \ columns must have a corresponding outer column to help define the “current row” on which to operate. If there isn't exactly one corresponding outer column, an error will be returned. + +- If the data in an \ or \ column is a strict subset of its corresponding outer column, an error will be returned. + +- OFFSET can be non-deterministic if there are columns in \ that are neither \ nor \ columns. For example, given the following table: + + |Product |Country |Sales | + |---------|---------|---------| + |Bike | Canada | 1000 | + |Bike | Canada | 200 | + |Bike | USA | 5000 | + |Bike | USA | 300 | + + The following DAX query: + + ```dax + OFFSET(-1, Table, ORDERBY([Country]), PARTITIONBY([Product]) + ``` + + For the last two rows, either of the first two rows may be returned as the “previous” row. + +## Example 1 + +The following DAX query: + +```dax +DEFINE +VAR vRelation = SUMMARIZECOLUMNS ( + DimProductCategory[EnglishProductCategoryName], + DimDate[CalendarYear], + "Current Sales", SUM(FactInternetSales[SalesAmount]) + ) +EVALUATE +ADDCOLUMNS ( + vRelation, + "LY Sales", + SELECTCOLUMNS( + OFFSET ( + -1, + vRelation, + ORDERBY([CalendarYear]), + PARTITIONBY([EnglishProductCategoryName]) + ), + [Current Sales] + ) +) +``` + +Returns a table that summarizes the total sales for each product category and calendar year, as well as the total sales for that category in the previous year. + +## Example 2 + +The following DAX query: + +```dax +DEFINE +MEASURE DimProduct[CurrentYearSales] = SUM(FactInternetSales[SalesAmount]) +MEASURE DimProduct[PreviousYearSales] = CALCULATE(SUM(FactInternetSales[SalesAmount]), OFFSET(-1, , ORDERBY(DimDate[CalendarYear]))) +EVALUATE +SUMMARIZECOLUMNS ( + DimDate[CalendarYear], + "CurrentYearSales", DimProduct[CurrentYearSales], + "PreviousYearSales", DimProduct[PreviousYearSales] +) +``` + +Uses OFFSET() in a measure to return a table that summarizes the total sales for each calendar year and the total sales for the previous year. + +## See also + +[]() +[]() From d461746af0c93c8309ab5338e2b38a081be0b908 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 18 Oct 2022 11:11:27 -0700 Subject: [PATCH 093/934] Adding index, orderby, paritionby, window. --- query-languages/dax/index-function-dax.md | 196 ++++++++++++++++++ query-languages/dax/offset-function-dax.md | 22 +- query-languages/dax/orderby-function-dax.md | 49 +++++ .../dax/partitionby-function-dax.md | 48 +++++ query-languages/dax/window-function-dax.md | 47 +++++ 5 files changed, 352 insertions(+), 10 deletions(-) create mode 100644 query-languages/dax/index-function-dax.md create mode 100644 query-languages/dax/orderby-function-dax.md create mode 100644 query-languages/dax/partitionby-function-dax.md create mode 100644 query-languages/dax/window-function-dax.md diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md new file mode 100644 index 000000000..d50f7253b --- /dev/null +++ b/query-languages/dax/index-function-dax.md @@ -0,0 +1,196 @@ +--- +description: "Learn more about: INDEX" +title: "INDEX function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 10/17/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- + +# INDEX + +Returns a row at an absolute position (specified by the position parameter) within the specified partition sorted by the specified order or on the specified axis. + +## Syntax + +```dax +INDEX([, < relation>, < orderBy>, < partitionBy>]) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|position|The absolute position (1-based) from which to obtain the data.| +|relation|A table expression from which the output will be returned. If omitted, \ must be explicitly specified. +|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \. +|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | + +## Return value + +A row at an absolute position (specified by the position parameter) within the specified partition sorted by the specified order or on the specified axis. + +## Remarks + +This function is similar to OFFSET function. + +## Example 1 + +The following DAX query: + +```dax +EVALUATE INDEX(1, ALL(DimDate[CalendarYear])) +``` + +Returns the following table: + +|DimDate[CalendarYear] | +|---------| +| 2005 | + +## Example 2 + +The following DAX query: + +```dax +EVALUATE +SUMMARIZECOLUMNS ( + FactInternetSales[ProductKey], + DimDate[MonthNumberOfYear], + FILTER ( + VALUES(FactInternetSales[ProductKey]), + [ProductKey] < 222 + ), + "CurrentSales", SUM(FactInternetSales[SalesAmount]), + "LastMonthSales", + CALCULATE ( + SUM(FactInternetSales[SalesAmount]), + INDEX(-1, ORDERBY(DimDate[MonthNumberOfYear])) + ) +) +ORDER BY [ProductKey], [MonthNumberOfYear] +``` + +Returns the following table: + +|FactInternetSales[ProductKey] |DimDate[MonthNumberOfYear] |[CurrentSales] |[LastMonthSales] | +|---------|---------|---------|---------| +|214 | 1 | 5423.45 | 8047.7 | +|214 | 2 | 4968.58 | 8047.7 | +|214 | 3 | 5598.4 | 8047.7 | +|214 | 4 | 5073.55 | 8047.7 | +|214 | 5 | 5248.5 | 8047.7 | +|214 | 6 | 7487.86 | 8047.7 | +|214 | 7 | 7382.89 | 8047.7 | +|214 | 8 | 6543.13 | 8047.7 | +|214 | 9 | 6788.06 | 8047.7 | +|214 | 10 | 6858.04 | 8047.7 | +|214 | 11 | 8607.54 | 8047.7 | +|214 | 12 | 8047.7 | 8047.7 | +|217 | 1 | 5353.47 | 7767.78 | +|217 | 2 | 4268.78 | 7767.78 | +|217 | 3 | 5773.35 | 7767.78 | +|217 | 4 | 5738.36 | 7767.78 | +|217 | 5 | 6158.24 | 7767.78 | +|217 | 6 | 6998 | 7767.78 | +|217 | 7 | 5563.41 | 7767.78 | +|217 | 8 | 5913.31 | 7767.78 | +|217 | 9 | 5913.31 | 7767.78 | +|217 | 10 | 6823.05 | 7767.78 | +|217 | 11 | 6683.09 | 7767.78 | +|217 | 12 | 7767.78 | 7767.78 | + +## Example 3 + +The following DAX query: + +```dax +DEFINE +MEASURE DimProduct[TotalSales] = SUM(FactInternetSales[SalesAmount]) +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimProduct[ProductKey], + FactInternetSales[OrderDate], + DimDate[DayNumberOfWeek], + FILTER(VALUES(DimProduct[ProductKey]), [ProductKey] < 350), + FILTER(VALUES(FactInternetSales[OrderDate]), [OrderDate] < dt"2011-1-15"), + "Total Sales", DimProduct[TotalSales] + ) +EVALUATE +ADDCOLUMNS ( + vRelation, + "Dynamic Position Sales", + SELECTCOLUMNS(INDEX([DayNumberOfWeek], vRelation, ORDERBY([ProductKey], ASC, [OrderDate]), PARTITIONBY([Color])), "Dynamic Position Sales", [TotalSales]) +) +ORDER BY [Color], [ProductKey] ASC, [OrderDate] +``` + +Returns the following table: + +|DimProduct[Color]|DimProduct[ProductKey]|FactInternetSales[OrderDate]|DimDate[DayNumberOfWeek]|[Total Sales]|[Dynamic Position Sales]| +|---------|---------|---------|---------|---------|---------| +|Black|332|1/4/2011 12:00:00 AM|1|699.0982|699.0982| +|Black|332|1/5/2011 12:00:00 AM|2|699.0982|699.0982| +|Black|332|1/12/2011 12:00:00 AM|2|699.0982|699.0982| +|Black|336|12/29/2010 12:00:00 AM|2|699.0982|699.0982| +|Black|336|1/2/2011 12:00:00 AM|6|699.0982 | | +|Red|310|12/29/2010 12:00:00 AM|2|3578.27|3578.27| +|Red|310|12/30/2010 12:00:00 AM|3|3578.27|3578.27| +|Red|310|1/2/2011 12:00:00 AM|6|3578.27|3578.27| +|Red|310|1/3/2011 12:00:00 AM|7|3578.27|3578.27| +|Red|310|1/7/2011 12:00:00 AM|4|3578.27|3578.27| +|Red|310|1/8/2011 12:00:00 AM|5|3578.27|3578.27| +|Red|310|1/9/2011 12:00:00 AM|6|3578.27|3578.27| +|Red|310|1/11/2011 12:00:00 AM|1|3578.27|3578.27| +|Red|310|1/13/2011 12:00:00 AM|3|10734.81|3578.27| +|Red|310|1/14/2011 12:00:00 AM|4|3578.27|3578.27| +|Red|311|12/30/2010 12:00:00 AM|3|3578.27|3578.27| +|Red|311|1/1/2011 12:00:00 AM|5|3578.27|3578.27| +|Red|311|1/2/2011 12:00:00 AM|6|7156.54|3578.27| +|Red|311|1/3/2011 12:00:00 AM|7|7156.54|3578.27| +|Red|311|1/4/2011 12:00:00 AM|1|3578.27|3578.27| +|Red|311|1/5/2011 12:00:00 AM|2|7156.54|3578.27| +|Red|311|1/8/2011 12:00:00 AM|5|3578.27|3578.27| +|Red|311|1/10/2011 12:00:00 AM|7|3578.27|3578.27| +|Red|311|1/11/2011 12:00:00 AM|1|7156.54|3578.27| +|Red|311|1/12/2011 12:00:00 AM|2|3578.27|3578.27| +|Red|312|12/31/2010 12:00:00 AM|4|7156.54|3578.27| +|Red|312|1/3/2011 12:00:00 AM|7|3578.27|3578.27| +|Red|312|1/4/2011 12:00:00 AM|1|3578.27|3578.27| +|Red|312|1/6/2011 12:00:00 AM|3|3578.27|3578.27| +|Red|312|1/7/2011 12:00:00 AM|4|3578.27|3578.27| +|Red|312|1/8/2011 12:00:00 AM|5|7156.54|3578.27| +|Red|312|1/10/2011 12:00:00 AM|7|3578.27|3578.27| +|Red|312|1/12/2011 12:00:00 AM|2|3578.27|3578.27| +|Red|313|12/31/2010 12:00:00 AM|4|3578.27|3578.27| +|Red|313|1/6/2011 12:00:00 AM|3|3578.27|3578.27| +|Red|313|1/9/2011 12:00:00 AM|6|3578.27|3578.27| +|Red|313|1/11/2011 12:00:00 AM|1|7156.54|3578.27| +|Red|313|1/14/2011 12:00:00 AM|4|3578.27|3578.27| +|Red|314|12/31/2010 12:00:00 AM|4|3578.27|3578.27| +|Red|314|1/1/2011 12:00:00 AM|5|3578.27|3578.27| +|Red|314|1/2/2011 12:00:00 AM|6|3578.27|3578.27| +|Red|314|1/6/2011 12:00:00 AM|3|3578.27|3578.27| +|Red|314|1/9/2011 12:00:00 AM|6|3578.27|3578.27| +|Red|314|1/11/2011 12:00:00 AM|1|7156.54|3578.27| +|Red|314|1/13/2011 12:00:00 AM|3|3578.27|3578.27| +|Red|314|1/14/2011 12:00:00 AM|4|3578.27|3578.27| +|Red|330|12/31/2010 12:00:00 AM|4|699.0982|3578.27| +|Silver|344|12/30/2010 12:00:00 AM|3|3399.99|6799.98| +|Silver|346|12/29/2010 12:00:00 AM|2|10199.97|10199.97| +|Silver|346|1/6/2011 12:00:00 AM|3|6799.98|6799.98| +|Silver|346|1/7/2011 12:00:00 AM|4|3399.99|3399.99| +|Silver|346|1/14/2011 12:00:00 AM|4|3399.99|3399.99| +|Silver|347|1/9/2011 12:00:00 AM|6|3399.99|3399.99| + +## See also + +[OFFSET](offset-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 0143de613..0093849a5 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -27,9 +27,9 @@ OFFSET ( [, ][, ][, ] ) |Term|Definition| |--------|--------------| |delta|The number of rows before (negative value) or after (positive value) the current row from which to obtain the data. It can be any DAX expression that returns a scalar value. | -|relation|(Optional) A table expression from which the output row will be returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \. -|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ will be treated as a single partition. | +|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | ## Return value @@ -39,13 +39,13 @@ A single row from \. - \ columns must have a corresponding outer column to help define the “current row” on which to operate. - If there is no corresponding outer column: - - If all \ columns with no corresponding outer column are from the same table, one row will be returned for every possible combination of existing values of these columns. - - Otherwise, an error will be returned. - - If there is more than one corresponding outer column, an error will be returned. + - If all \ columns with no corresponding outer column are from the same table, one row is returned for every possible combination of existing values of these columns. + - Otherwise, an error is returned. + - If there is more than one corresponding outer column, an error is returned. -- \ columns must have a corresponding outer column to help define the “current row” on which to operate. If there isn't exactly one corresponding outer column, an error will be returned. +- \ columns must have a corresponding outer column to help define the “current row” on which to operate. If there isn't exactly one corresponding outer column, an error is returned. -- If the data in an \ or \ column is a strict subset of its corresponding outer column, an error will be returned. +- If the data in an \ or \ column is a strict subset of its corresponding outer column, an error is returned. - OFFSET can be non-deterministic if there are columns in \ that are neither \ nor \ columns. For example, given the following table: @@ -91,7 +91,7 @@ ADDCOLUMNS ( ) ``` -Returns a table that summarizes the total sales for each product category and calendar year, as well as the total sales for that category in the previous year. +Returns a table that summarizes the total sales for each product category and calendar year, as well as the total sales for that category in the previous year. ## Example 2 @@ -113,5 +113,7 @@ Uses OFFSET() in a measure to return a table that summarizes the total sales for ## See also -[]() -[]() +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md new file mode 100644 index 000000000..fe231d99c --- /dev/null +++ b/query-languages/dax/orderby-function-dax.md @@ -0,0 +1,49 @@ +--- +description: "Learn more about: ORDERBY" +title: "ORDERBY function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 10/17/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- + +# OFFSET + +Defines the columns that determine the sort order within each of a Window function’s partitions. + +## Syntax + +```dax +ORDERBY ( [, ][, orderBy_columnName [, ]] [, …] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|orderBy_columnName|The name of an existing column to be used to sort the data within each of a window function’s partitions.| +|order|(Optional) A value that specifies how to sort \ values, ascending or descending:
Value: **DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
Value: **ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.| + +## Return value + +This function does not return a value. + +## Remarks + +This function can only be used within Window functions. + +## Example + +See [OFFSET](offset-function-dax.md). + +## See also + +[INDEX](index-function-dax.md) +[OFFSET](offset-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) \ No newline at end of file diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md new file mode 100644 index 000000000..b1df97117 --- /dev/null +++ b/query-languages/dax/partitionby-function-dax.md @@ -0,0 +1,48 @@ +--- +description: "Learn more about: PARTITIONBY" +title: "OFFSET function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 10/17/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- + +# PARTITIONBY + +Defines the columns that will be used to partition a Window function’s \. + +## Syntax + +```dax +PARTITIONBY ( [, partitionBy_columnName [, …] ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|partitionBy_columnName|The name of an existing column to be used to partition the window function’s \. | + +## Return value + +This function does not return a value. + +## Remarks + +This function can only be used within Window functions. + +## Example + +See [OFFSET](offset-function-dax.md). + +## See also + +[INDEX](index-function-dax.md) +[OFFSET](offset-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md new file mode 100644 index 000000000..5d8138cbd --- /dev/null +++ b/query-languages/dax/window-function-dax.md @@ -0,0 +1,47 @@ +--- +description: "Learn more about: WINDOW" +title: "WINDOW function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 10/17/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- + +# WINDOW + +## Syntax + +```dax + +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +||| +||| + +## Return value + +## Remarks + +## Example + +The following DAX query: + +```dax + +``` + +## See also + +[INDEX](index-function-dax.md) +[OFFSET](offset-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) From b542cd94696e1c845cfa67fb977399eaea670809 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 18 Oct 2022 11:27:13 -0700 Subject: [PATCH 094/934] Revision --- query-languages/dax/offset-function-dax.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 0093849a5..09ec4721f 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -38,9 +38,7 @@ A single row from \. ## Remarks - \ columns must have a corresponding outer column to help define the “current row” on which to operate. - - If there is no corresponding outer column: - - If all \ columns with no corresponding outer column are from the same table, one row is returned for every possible combination of existing values of these columns. - - Otherwise, an error is returned. + - If there is no corresponding outer column, if all \ columns with no corresponding outer column are from the same table, one row is returned for every possible combination of existing values of these columns. Otherwise, an error is returned. - If there is more than one corresponding outer column, an error is returned. - \ columns must have a corresponding outer column to help define the “current row” on which to operate. If there isn't exactly one corresponding outer column, an error is returned. From 5e51d1d0785db13498e78162f941bedf100baa97 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 18 Oct 2022 15:34:42 -0700 Subject: [PATCH 095/934] Added November updates to the Power Query M reference --- query-languages/m/binary-viewfunction.md | 6 ++-- query-languages/m/date-functions.md | 4 +-- query-languages/m/date-startofweek.md | 30 +++++++++++++++---- .../m/table-addfuzzyclustercolumn.md | 4 +-- query-languages/m/table-fuzzygroup.md | 4 +-- query-languages/m/table-fuzzyjoin.md | 4 +-- query-languages/m/table-fuzzynestedjoin.md | 4 +-- query-languages/m/table-viewfunction.md | 4 +-- query-languages/m/type-forrecord.md | 27 ++++++++++++++++- query-languages/m/value-functions.md | 4 ++- query-languages/m/value-viewerror.md | 16 ++++++++++ query-languages/m/value-viewfunction.md | 16 ++++++++++ 12 files changed, 101 insertions(+), 22 deletions(-) create mode 100644 query-languages/m/value-viewerror.md create mode 100644 query-languages/m/value-viewfunction.md diff --git a/query-languages/m/binary-viewfunction.md b/query-languages/m/binary-viewfunction.md index d14c2f639..b48b0b93a 100644 --- a/query-languages/m/binary-viewfunction.md +++ b/query-languages/m/binary-viewfunction.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary.ViewFunction" title: "Binary.ViewFunction" -ms.date: 7/19/2022 +ms.date: 10/18/2022 --- # Binary.ViewFunction @@ -15,8 +15,8 @@ Binary.ViewFunction(function as function) as function Creates a view function based on `function` that can be handled in a view created by [Binary.View](binary-view.md). -The `OnInvoke` handler of `Binary.View` can be used to defined a handler for the view function. +The `OnInvoke` handler of **Binary.View** can be used to define a handler for the view function. As with the handlers for built-in operations, if no `OnInvoke` handler is specified, or if it does not handle the view function, or if an error is raised by the handler, `function` is applied on top of the view. -Refer to the published Power Query custom connector documentation for a more complete description of `Binary.View` and custom view functions. +Refer to the published Power Query custom connector documentation for a more complete description of **Binary.View** and custom view functions. diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index bd33c4b7a..2e1347ac0 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date functions" title: "Date functions" -ms.date: 5/16/2022 +ms.date: 10/18/2022 --- # Date functions @@ -59,7 +59,7 @@ These functions create and manipulate the date component of date, datetime, and |[Date.StartOfDay](date-startofday.md)|Returns a DateTime value for the start of the day.| |[Date.StartOfMonth](date-startofmonth.md)|Returns a DateTime value representing the start of the month.| |[Date.StartOfQuarter](date-startofquarter.md)|Returns a DateTime value representing the start of the quarter.| -|[Date.StartOfWeek](date-startofweek.md)|Returns a DateTime value representing the start of the week.| +|[Date.StartOfWeek](date-startofweek.md)|Returns the start of the week.| |[Date.StartOfYear](date-startofyear.md)|Returns a DateTime value representing the start of the year.| |[Date.ToRecord](date-torecord.md)|Returns a record containing parts of a Date value.| |[Date.ToText](date-totext.md)|Returns a text value from a Date value.| diff --git a/query-languages/m/date-startofweek.md b/query-languages/m/date-startofweek.md index 2584eea72..e1c57fb14 100644 --- a/query-languages/m/date-startofweek.md +++ b/query-languages/m/date-startofweek.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.StartOfWeek" title: "Date.StartOfWeek" -ms.date: 3/11/2022 +ms.date: 10/18/2022 --- # Date.StartOfWeek @@ -13,18 +13,38 @@ Date.StartOfWeek(dateTime as any, optional firstDayOfWeek as nulla ## About -Returns the first value of the week given a `date`, `datetime`, or `datetimezone` value. +Returns the start of the week given a `date`, `datetime`, or `datetimezone` value. ## Example 1 -Find the start of the week for October 10th, 2011, 8:10:32AM (`#datetime(2011, 10, 10, 8, 10, 32)`). +Find the start of the week for Tuesday, October 11th, 2011. **Usage** ```powerquery-m -Date.StartOfWeek(#datetime(2011, 10, 10, 8, 10, 32)) +Date.StartOfWeek(#datetime(2011, 10, 11, 8, 10, 32)) ``` **Output** -`#datetime(2011, 10, 9, 0, 0, 0)` +```powerquery-m +// Sunday, October 9th, 2011 +#datetime(2011, 10, 9, 0, 0, 0) +``` + +## Example 2 + +Find the start of the week for Tuesday, October 11th, 2011, using Monday as the start of the week. + +**Usage** + +```powerquery-m +Date.StartOfWeek(#datetime(2011, 10, 11, 8, 10, 32), Day.Monday) +``` + +**Output** + +```powerquery-m +// Monday, October 10th, 2011 +#datetime(2011, 10, 10, 0, 0, 0) +``` diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index de8676742..1393cd05c 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.AddFuzzyClusterColumn" title: "Table.AddFuzzyClusterColumn" -ms.date: 10/7/2022 +ms.date: 10/18/2022 --- # Table.AddFuzzyClusterColumn @@ -21,7 +21,7 @@ An optional set of `options` may be included to specify how to compare the key c * `IgnoreCase`: A logical (true/false) value that allows case-insensitive key grouping. For example, when true, "Grapes" is grouped with "grapes". The default value is true. * `IgnoreSpace`: A logical (true/false) value that allows combining of text parts in order to find groups. For example, when true, "Gra pes" is grouped with "Grapes". The default value is true. * `SimilarityColumnName`: A name for the column that shows the similarity between an input value and the representative value for that input. The default value is null, in which case a new column for similarities will not be added. -* `Threshold`: A number between 0.00 and 1.00 that specifies the similarity score at which two values will be grouped. For example, "Grapes" and "Graes" (missing "p") are grouped together only if this option is set to less than 0.90. A threshold of 1.00 is the same as specifying an exact match criteria while grouping. The default value is 0.80. +* `Threshold`: A number between 0.00 and 1.00 that specifies the similarity score at which two values will be grouped. For example, "Grapes" and "Graes" (missing the "p") are grouped together only if this option is set to less than 0.90. A threshold of 1.00 only allows exact matches. (Note that a fuzzy "exact match" might ignore differences like casing, word order, and punctuation.) The default value is 0.80. * `TransformationTable`: A table that allows grouping records based on custom value mappings. It should contain "From" and "To" columns. For example, "Grapes" is grouped with "Raisins" if a transformation table is provided with the "From" column containing "Grapes" and the "To" column containing "Raisins". Note that the transformation will be applied to all occurrences of the text in the transformation table. With the above transformation table, "Grapes are sweet" will also be grouped with "Raisins are sweet". ### Example 1 diff --git a/query-languages/m/table-fuzzygroup.md b/query-languages/m/table-fuzzygroup.md index e8e822f4a..4b0a2c211 100644 --- a/query-languages/m/table-fuzzygroup.md +++ b/query-languages/m/table-fuzzygroup.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.FuzzyGroup" title: "Table.FuzzyGroup" -ms.date: 3/10/2022 +ms.date: 10/18/2022 --- # Table.FuzzyGroup @@ -21,7 +21,7 @@ An optional set of `options` may be included to specify how to compare the key c * `IgnoreCase`: A logical (true/false) value that allows case-insensitive key grouping. For example, when true, "Grapes" is grouped with "grapes". The default value is true. * `IgnoreSpace`: A logical (true/false) value that allows combining of text parts in order to find groups. For example, when true, "Gra pes" is grouped with "Grapes". The default value is true. * `SimilarityColumnName`: A name for the column that shows the similarity between an input value and the representative value for that input. The default value is null, in which case a new column for similarities will not be added. -* `Threshold`: A number between 0.00 and 1.00 that specifies the similarity score at which two values will be grouped. For example, "Grapes" and "Graes" (missing "p") are grouped together only if this option is set to less than 0.90. A threshold of 1.00 is the same as specifying an exact match criteria while grouping. The default value is 0.80. +* `Threshold`: A number between 0.00 and 1.00 that specifies the similarity score at which two values will be grouped. For example, "Grapes" and "Graes" (missing the "p") are grouped together only if this option is set to less than 0.90. A threshold of 1.00 only allows exact matches. (Note that a fuzzy "exact match" might ignore differences like casing, word order, and punctuation.) The default value is 0.80. * `TransformationTable`: A table that allows grouping records based on custom value mappings. It should contain "From" and "To" columns. For example, "Grapes" is grouped with "Raisins" if a transformation table is provided with the "From" column containing "Grapes" and the "To" column containing "Raisins". Note that the transformation will be applied to all occurrences of the text in the transformation table. With the above transformation table, "Grapes are sweet" will also be grouped with "Raisins are sweet". ## Example 1 diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index 3a264dae1..d4c1db32e 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.FuzzyJoin" title: "Table.FuzzyJoin" -ms.date: 5/19/2022 +ms.date: 10/18/2022 --- # Table.FuzzyJoin @@ -34,7 +34,7 @@ An optional set of `joinOptions` may be included to specify how to compare the k * `IgnoreSpace`: A logical (true/false) value that allows combining of text parts in order to find matches. For example, when true, "Gra pes" is matched with "Grapes". The default value is true. * `NumberOfMatches`: A whole number that specifies the maximum number of matching rows that can be returned for every input row. For example, a value of 1 will return at most one matching row for each input row. If this option is not provided, all matching rows are returned. * `SimilarityColumnName`: A name for the column that shows the similarity between an input value and the representative value for that input. The default value is null, in which case a new column for similarities will not be added. -* `Threshold`: A number between 0.00 and 1.00 that specifies the similarity score at which two values will be matched. For example, "Grapes" and "Graes" (missing "p") are matched only if this option is set to less than 0.90. A threshold of 1.00 is the same as specifying an exact match criteria. The default value is 0.80. +* `Threshold`: A number between 0.00 and 1.00 that specifies the similarity score at which two values will be matched. For example, "Grapes" and "Graes" (missing the "p") are matched only if this option is set to less than 0.90. A threshold of 1.00 only allows exact matches. (Note that a fuzzy "exact match" might ignore differences like casing, word order, and punctuation.) The default value is 0.80. * `TransformationTable`: A table that allows matching records based on custom value mappings. It should contain "From" and "To" columns. For example, "Grapes" is matched with "Raisins" if a transformation table is provided with the "From" column containing "Grapes" and the "To" column containing "Raisins". Note that the transformation will be applied to all occurrences of the text in the transformation table. With the above transformation table, "Grapes are sweet" will also be matched with "Raisins are sweet". ## Example 1 diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index 76634ea04..da7ab8889 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.FuzzyNestedJoin" title: "Table.FuzzyNestedJoin" -ms.date: 5/19/2022 +ms.date: 10/18/2022 --- # Table.FuzzyNestedJoin @@ -34,7 +34,7 @@ An optional set of `joinOptions` may be included to specify how to compare the k * `IgnoreSpace`: A logical (true/false) value that allows combining of text parts in order to find matches. For example, when true, "Gra pes" is matched with "Grapes". The default value is true. * `NumberOfMatches`: A whole number that specifies the maximum number of matching rows that can be returned for every input row. For example, a value of 1 will return at most one matching row for each input row. If this option is not provided, all matching rows are returned. * `SimilarityColumnName`: A name for the column that shows the similarity between an input value and the representative value for that input. The default value is null, in which case a new column for similarities will not be added. -* `Threshold`: A number between 0.00 and 1.00 that specifies the similarity score at which two values will be matched. For example, "Grapes" and "Graes" (missing "p") are matched only if this option is set to less than 0.90. A threshold of 1.00 is the same as specifying an exact match criteria. The default value is 0.80. +* `Threshold`: A number between 0.00 and 1.00 that specifies the similarity score at which two values will be matched. For example, "Grapes" and "Graes" (missing the "p") are matched only if this option is set to less than 0.90. A threshold of 1.00 only allows exact matches. (Note that a fuzzy "exact match" might ignore differences like casing, word order, and punctuation.) The default value is 0.80. * `TransformationTable`: A table that allows matching records based on custom value mappings. It should contain "From" and "To" columns. For example, "Grapes" is matched with "Raisins" if a transformation table is provided with the "From" column containing "Grapes" and the "To" column containing "Raisins". Note that the transformation will be applied to all occurrences of the text in the transformation table. With the above transformation table, "Grapes are sweet" will also be matched with "Raisins are sweet". ## Example 1 diff --git a/query-languages/m/table-viewfunction.md b/query-languages/m/table-viewfunction.md index f3ca792bb..1d5c6d450 100644 --- a/query-languages/m/table-viewfunction.md +++ b/query-languages/m/table-viewfunction.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.ViewFunction" title: "Table.ViewFunction" -ms.date: 4/13/2022 +ms.date: 10/18/2022 --- # Table.ViewFunction @@ -15,7 +15,7 @@ Table.ViewFunction(function as function) as function Creates a view function based on `function` that can be handled in a view created by [Table.View](/powerquery-m/table-view). -The `OnInvoke` handler of **Table.View** can be used to defined a handler for the view function. +The `OnInvoke` handler of **Table.View** can be used to define a handler for the view function. As with the handlers for built-in operations, if no `OnInvoke` handler is specified, or if it does not handle the view function, or if an error is raised by the handler, `function` is applied on top of the view. diff --git a/query-languages/m/type-forrecord.md b/query-languages/m/type-forrecord.md index f32ee1771..0a65a8d2e 100644 --- a/query-languages/m/type-forrecord.md +++ b/query-languages/m/type-forrecord.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Type.ForRecord" title: "Type.ForRecord" -ms.date: 10/7/2022 +ms.date: 10/18/2022 --- # Type.ForRecord @@ -14,3 +14,28 @@ Type.ForRecord(fields as record, open as logical) as type ## About Returns a type that represents records with specific type constraints on fields. + +## Example 1 + +Dynamically generate a table type. + +**Usage** + +```powerquery-m +let + columnNames = {"Name", "Score"}, + columnTypes = {type text, type number}, + rowColumnTypes = List.Transform(columnTypes, (t) => [Type = t, Optional = false]), + rowType = Type.ForRecord(Record.FromList(rowColumnTypes, columnNames), false) +in + #table(type table rowType, {{"Betty", 90.3}, {"Carl", 89.5}}) +``` + +**Output** + +```powerquery-m +#table( + type table [Name = text, Score = number], + {{"Betty", 90.3}, {"Carl", 89.5}} +) +``` diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 7816becad..c5c85c9b6 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value functions" title: "Value functions" -ms.date: 5/19/2022 +ms.date: 10/18/2022 --- # Value functions @@ -43,6 +43,8 @@ These functions evaluate and perform operations on values. |[Embedded.Value](embedded-value.md) | Accesses a value by name in an embedded mashup.| |[Excel.ShapeTable](excel-shapetable.md) | This function is intended for internal use only.| |[Value.Firewall](value-firewall.md) | This function is intended for internal use only.| +|[Value.ViewError](value-viewerror.md) | This function is intended for internal use only.| +|[Value.ViewFunction](value-viewfunction.md) | This function is intended for internal use only.| |[Variable.Value](variable-value.md) | This function is intended for internal use only.| |[SqlExpression.SchemaFrom](sqlexpression-schemafrom.md) | This function is intended for internal use only.| |[SqlExpression.ToExpression](sqlexpression-toexpression.md) | This function is intended for internal use only.| diff --git a/query-languages/m/value-viewerror.md b/query-languages/m/value-viewerror.md new file mode 100644 index 000000000..17d2689e6 --- /dev/null +++ b/query-languages/m/value-viewerror.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Value.ViewError" +title: "Value.ViewError" +ms.date: 10/18/2022 +--- +# Value.ViewError + +## Syntax + +
+Value.ViewError(errorRecord as record) as record
+
+ +## About + +This function is intended for internal use only. diff --git a/query-languages/m/value-viewfunction.md b/query-languages/m/value-viewfunction.md new file mode 100644 index 000000000..6305c479b --- /dev/null +++ b/query-languages/m/value-viewfunction.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Value.ViewFunction" +title: "Value.ViewFunction" +ms.date: 10/18/2022 +--- +# Value.ViewFunction + +## Syntax + +
+Value.ViewFunction(function as function) as function
+
+ +## About + +This function is intended for internal use only. From 7a79334d6227578ad0b62820c4d905c638b18b7a Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 21 Oct 2022 12:50:15 -0700 Subject: [PATCH 096/934] Added new functions to table of contents --- query-languages/m/toc.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 5911c0437..66d7e2238 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -1444,6 +1444,10 @@ items: href: value-versionidentity.md - name: Value.Versions href: value-versions.md + - name: Value.ViewError + href: value-viewerror.md + - name: Value.ViewFunction + href: value-viewfunction.md - name: Variable.Value href: variable-value.md - name: Enumerations From 6eb82331b21a88422b8dea87c744d1125db63eab Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 21 Oct 2022 13:00:07 -0700 Subject: [PATCH 097/934] Minor fix --- query-languages/m/table-functions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index ed2f26bb0..3effd7cff 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table functions" title: "Table functions" -ms.date: 6/24/2022 +ms.date: 10/21/2022 --- # Table functions @@ -26,8 +26,8 @@ These functions create and manipulate table values. |[Table.FuzzyNestedJoin](table-fuzzynestedjoin.md)|Performs a fuzzy join between tables on supplied columns and produces the join result in a new column.| |[Table.Split](table-split.md)|Splits the specified table into a list of tables using the specified page size.| |[Table.View](table-view.md)|Creates or extends a table with user-defined handlers for query and action operations.| -|[Table.ViewFunction](table-viewfunction.md) | Creates a function that can be intercepted by a handler defined on a view (via [Table.View](table-view.md)).| -|[Table.ViewError](table-viewerror.md) | Creates a modified error record which won't trigger a fallback when thrown by a handler defined on a view (via **Table.View**)| +|[Table.ViewError](table-viewerror.md) | Creates a modified error record which won't trigger a fallback when thrown by a handler defined on a view (via [Table.View](table-view.md)).| +|[Table.ViewFunction](table-viewfunction.md) | Creates a function that can be intercepted by a handler defined on a view (via **Table.View**).| ## Conversions From 20c697d3199def52f6614cec4612c3017a714c80 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 26 Oct 2022 12:46:34 -0400 Subject: [PATCH 098/934] Ascribed type of a value clarification --- query-languages/m/m-spec-types.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 2ee907d00..cb08ad32a 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -330,9 +330,17 @@ The following are pairwise equivalent (for any type T): ## Ascribed type of a value -A value's _ascribed type_ is the type to which a value is _declared_ to conform. When a value is ascribed a type, only a limited conformance check occurs. _M does not perform conformance checking beyond a nullable primitive type. M program authors that choose to ascribe values with type definitions more complex than a nullable primitive-type must ensure that such values conform to these types._ +A value's _ascribed type_ is the type to which a value is _declared_ to conform. -A value may be ascribed a type using the library function `Value.ReplaceType`. The function either returns a new value with the type ascribed or raises an error if the new type is incompatible with the value's native primitive type. In particular, the function raises an error when an attempt is made to ascribe an abstract type, such as `any`. +A value may be ascribed a type using the library function `Value.ReplaceType`. This function either returns a new value with the type ascribed or raises an error if the new type is incompatible with the value. + +When a value is ascribed a type, only a limited conformance check occurs: +* The type being ascribed must be non-abstract, not nullable and compatible with the value's intrinsic (native) _primitive-type_. +* When a custom type is being ascribed, it must match in structure with the value. + * For records: The type must define the same number of fields as the value. (However, field names and field types are not checked.) + * For tables: The type must define the same number of columns as the value. (However, column names and column types are not checked.) + * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (However, parameter names, parameter types and the function return type are not checked.) + * For lists: As a list type always defines exactly one item type, any list type is structurally compatible with all list values. Library functions may choose to compute and ascribe complex types to results based on the ascribed types of the input values. From 3241a48655cf48d4c5d6578f0e4f9100455262c9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 28 Oct 2022 14:08:47 -0400 Subject: [PATCH 099/934] Expounding on ascribed record type rules --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index cb08ad32a..56bc2c569 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -337,7 +337,7 @@ A value may be ascribed a type using the library function `Value.ReplaceType`. T When a value is ascribed a type, only a limited conformance check occurs: * The type being ascribed must be non-abstract, not nullable and compatible with the value's intrinsic (native) _primitive-type_. * When a custom type is being ascribed, it must match in structure with the value. - * For records: The type must define the same number of fields as the value. (However, field names and field types are not checked.) + * For records: The type must be closed, must define the same number of fields as the value and must not contain any optional fields. (However, field names and field types are not checked.) * For tables: The type must define the same number of columns as the value. (However, column names and column types are not checked.) * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (However, parameter names, parameter types and the function return type are not checked.) * For lists: As a list type always defines exactly one item type, any list type is structurally compatible with all list values. From 183d57dbb38b3c41775bca9314ac66a2321bcbb9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 28 Oct 2022 14:27:28 -0400 Subject: [PATCH 100/934] Clarifying list type ascription rules --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 56bc2c569..a7f504bba 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -340,7 +340,7 @@ When a value is ascribed a type, only a limited conformance check occurs: * For records: The type must be closed, must define the same number of fields as the value and must not contain any optional fields. (However, field names and field types are not checked.) * For tables: The type must define the same number of columns as the value. (However, column names and column types are not checked.) * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (However, parameter names, parameter types and the function return type are not checked.) - * For lists: As a list type always defines exactly one item type, any list type is structurally compatible with all list values. + * For lists: Unlike records, tables and functions, which can vary in their structure, a list's structure is always defined by a single item type, so a given list type is always structurally compatible with all other list types. (However, the item type is not checked during ascription.) Library functions may choose to compute and ascribe complex types to results based on the ascribed types of the input values. From 0c2308625f8ca310ef0deb206f13c856214160cc Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 28 Oct 2022 15:27:47 -0400 Subject: [PATCH 101/934] Comma tweak Co-authored-by: Ehren --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index a7f504bba..4b04c6c65 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -337,7 +337,7 @@ A value may be ascribed a type using the library function `Value.ReplaceType`. T When a value is ascribed a type, only a limited conformance check occurs: * The type being ascribed must be non-abstract, not nullable and compatible with the value's intrinsic (native) _primitive-type_. * When a custom type is being ascribed, it must match in structure with the value. - * For records: The type must be closed, must define the same number of fields as the value and must not contain any optional fields. (However, field names and field types are not checked.) + * For records: The type must be closed, must define the same number of fields as the value, and must not contain any optional fields. (However, field names and field types are not checked.) * For tables: The type must define the same number of columns as the value. (However, column names and column types are not checked.) * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (However, parameter names, parameter types and the function return type are not checked.) * For lists: Unlike records, tables and functions, which can vary in their structure, a list's structure is always defined by a single item type, so a given list type is always structurally compatible with all other list types. (However, the item type is not checked during ascription.) From 5c44c542a67058b7fb802419b7033446ab84583b Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 28 Oct 2022 20:24:33 -0400 Subject: [PATCH 102/934] Clarifying wording --- query-languages/m/m-spec-types.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 4b04c6c65..634dcfa95 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -336,11 +336,15 @@ A value may be ascribed a type using the library function `Value.ReplaceType`. T When a value is ascribed a type, only a limited conformance check occurs: * The type being ascribed must be non-abstract, not nullable and compatible with the value's intrinsic (native) _primitive-type_. -* When a custom type is being ascribed, it must match in structure with the value. - * For records: The type must be closed, must define the same number of fields as the value, and must not contain any optional fields. (However, field names and field types are not checked.) - * For tables: The type must define the same number of columns as the value. (However, column names and column types are not checked.) - * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (However, parameter names, parameter types and the function return type are not checked.) - * For lists: Unlike records, tables and functions, which can vary in their structure, a list's structure is always defined by a single item type, so a given list type is always structurally compatible with all other list types. (However, the item type is not checked during ascription.) +* When a custom type is being ascribed, its component type(s) are not checked. + * For records: Field types are not checked. + * For tables: Column types are not checked. + * For functions: Parameter types and the function return type are not checked. + * For lists: The item type is not checked. +* When a custom type that defines structure is ascribed, its must match the structure of the value. + * For records: The type must be closed, must define the same number of fields as the value, and must not contain any optional fields. (However, field names are not checked.) + * For tables: The type must define the same number of columns as the value. (However, column names are not checked.) + * For functions: The type must define the same number of required and optional parameters as the value. (However, parameter names are not checked.) Library functions may choose to compute and ascribe complex types to results based on the ascribed types of the input values. From 0396ee3706f93df4c4bfa90f0419aa90b8aafc71 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 28 Oct 2022 20:30:11 -0400 Subject: [PATCH 103/934] Typo fix --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 634dcfa95..214a82f3e 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -341,7 +341,7 @@ When a value is ascribed a type, only a limited conformance check occurs: * For tables: Column types are not checked. * For functions: Parameter types and the function return type are not checked. * For lists: The item type is not checked. -* When a custom type that defines structure is ascribed, its must match the structure of the value. +* When a custom type that defines structure is ascribed, it must match the structure of the value. * For records: The type must be closed, must define the same number of fields as the value, and must not contain any optional fields. (However, field names are not checked.) * For tables: The type must define the same number of columns as the value. (However, column names are not checked.) * For functions: The type must define the same number of required and optional parameters as the value. (However, parameter names are not checked.) From ad4f6249bc82f7ce5126332bd466fab69be805f5 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 31 Oct 2022 09:26:04 -0700 Subject: [PATCH 104/934] Additions --- .../dax/evaluateandlog-function-dax.md | 158 ++++++++++++++++++ query-languages/dax/other-functions-dax.md | 3 + query-languages/dax/toc.yml | 6 + query-languages/dax/tocsv-function-dax.md | 66 ++++++++ query-languages/dax/tojson-function-dax.md | 68 ++++++++ 5 files changed, 301 insertions(+) create mode 100644 query-languages/dax/evaluateandlog-function-dax.md create mode 100644 query-languages/dax/tocsv-function-dax.md create mode 100644 query-languages/dax/tojson-function-dax.md diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md new file mode 100644 index 000000000..b328f04be --- /dev/null +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -0,0 +1,158 @@ +--- +description: "Learn more about: EvaluateAndLog" +title: "EvaluateAndLog function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 10/26/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# EvaluateAndLog + +Returns the value of the first argument and logs it in a DAX evaluation log. This function applies to Power BI Desktop only. + +## Syntax + +```dax +EvaluateAndLog(, [Label], [MaxRows]) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|Value|Any scalar value or table expression to be logged.| +|Label|(Optional) A constant string.| +|MaxRows|(Optional) The maximum number of rows output to the DAX evaluation log when the first argument is a table expression. If the value is a scalar, this parameter is ignored. Default is 10.| + +## Return value + +First argument. + +## Remarks + +- You can wrap this function around almost any expression in a DAX query and the whole query will still be valid. + +- Value is logged together with its arguments for every set of arguments. + +- If the argument is a table, then only the top MaxRows rows are shown. + +- The label parameter is included in the event return. The string can make finding specific logs more convenient in cases where multiple EvaluateAndLog expressions are used in a single query. + +- In some cases, this function is not executed due to optimizations. + +- If the log is greater than one million symbols, it is truncated (preserving correct json structure). + +## Example 1 + +The following DAX query: + +```dax +evaluate +SUMMARIZE( + EvaluateAndLog(FILTER(FactInternetSales, [ProductKey] = 528)), + FactInternetSales[SalesTerritoryKey], + "sum", + sum(FactInternetSales[SalesAmount]) +) +``` + +Returns the following log: + +```json +{ + "expression": "SELECTCOLUMNS(FILTER(FactInternetSales, [ProductKey] = 528), \n\t\t[SalesTerritoryKey], \n\t\t[ProductKey], \n\t\t[SalesAmount],\n\t\t[OrderDate]\n\t\t)", + "inputs": [], + "outputs": ["'FactInternetSales'[SalesTerritoryKey]", "'FactInternetSales'[ProductKey]", "'FactInternetSales'[SalesAmount]", "'FactInternetSales'[OrderDate]"], + "data": [ + { + "input": [], + "rowCount": 3095, + "output": [ + [4, 528, 4.99, "2013-02-04T00:00:00"], + [4, 528, 4.99, "2013-02-04T00:00:00"], + [4, 528, 4.99, "2013-02-04T00:00:00"], + [4, 528, 4.99, "2013-02-03T00:00:00"], + [4, 528, 4.99, "2013-02-03T00:00:00"], + [4, 528, 4.99, "2013-02-01T00:00:00"], + [4, 528, 4.99, "2013-01-31T00:00:00"], + [4, 528, 4.99, "2013-01-31T00:00:00"], + [4, 528, 4.99, "2013-01-29T00:00:00"], + [4, 528, 4.99, "2013-01-28T00:00:00"] + ] + } + ] +} +``` + +## Example 2 + +The following DAX query with a scalar argument and varying attributes: + +```dax +evaluate +SELECTCOLUMNS( + TOPN(5, DimCustomer), + [FirstName], + [LastName], + "FullName", + EvaluateAndLog([FirstName] & " " & [LastName], "myLog") +) + +``` + +Returns the following log: + +```json +{ + "expression": "[FirstName] & \" \" & [LastName]", + "label": "myLog", + "inputs": ["'DimCustomer'[FirstName]", "'DimCustomer'[LastName]"], + "data": [ + { + "input": ["Larry", "Gill"], + "output": "Larry Gill" + }, + { + "input": ["Geoffrey", "Gonzalez"], + "output": "Geoffrey Gonzalez" + }, + { + "input": ["Blake", "Collins"], + "output": "Blake Collins" + }, + { + "input": ["Alexa", "Watson"], + "output": "Alexa Watson" + }, + { + "input": ["Jacquelyn", "Dominguez"], + "output": "Jacquelyn Dominguez" + } + ] +} + +``` + +The JSON log structure for this example includes: + +“expression” as a text version of logged expression. + +“inputs” as names of varying attributes. In this example, the expression has no varying attributes. + +“outputs” as names of columns of logged expressions. + +“data” contains expression values for every varying attribute as well as values of attributes. + +“RowCount” is the number of rows for a table specified as Value. + +“Label” is the Label parameter specified in the expression. + +## See also + +[ToCSV](tocsv-function-dax.md) +[ToJSON](tojson-function-dax.md) diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index c9b8c2cb5..5c517cbac 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -20,3 +20,6 @@ These functions perform unique actions that cannot be defined by any of the cate |---------|---------| |[BLANK](blank-function-dax.md) | Returns a blank. | |[ERROR](error-function.md) | Raises an error with an error message. | +|[EvaluateAndLog](evaluateandlog-function-dax.md) | Returns the value of the first argument and logs it in a DAX evaluation log. | +|[ToCSV](tocsv-function-dax.md) | Returns a table as a string in CSV format. | +|[ToJSON](tojson-function-dax.md) | Returns a table as a string in CSV format. | diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 9ca32d9b7..a2c1faaa2 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -485,6 +485,12 @@ href: blank-function-dax.md - name: ERROR href: error-function.md + - name: EvaluateAndLog + href: evaluateandlog-function-dax.md + - name: ToCSV + href: tocsv-function-dax.md + - name: ToJSON + href: tojson-function-dax.md - name: Parent and child functions items: - name: Parent and child functions overview diff --git a/query-languages/dax/tocsv-function-dax.md b/query-languages/dax/tocsv-function-dax.md new file mode 100644 index 000000000..428e0299a --- /dev/null +++ b/query-languages/dax/tocsv-function-dax.md @@ -0,0 +1,66 @@ +--- +description: "Learn more about: ToCSV" +title: "ToCSV function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 10/26/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# ToCSV + +Returns a table as a string in CSV format. This function applies to Power BI Desktop only. + +## Syntax + +```dax +ToCSV(
, [MaxRows], [Delimiter], [IncludeHeaders]) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|Table|The table to be converted to CSV.| +|MaxRows| (Optional) The maximum number fo rows to convert. Default is 10 rows.| +|Delimiter|(Optional) A column delimiter. Default is comma ",".| +|IncludeHeaders|(Optional) Specifies a header with column name as the first row. Default is True.| + +## Return value + +A string with CSV representation of the table. + +## Example + +The following DAX query: + +```dax +EVALUATE +{ToCSV(DimSalesTerritory)} + +``` + +Returns: + +``` +'DimSalesTerritory'[SalesTerritoryKey],'DimSalesTerritory'[SalesTerritoryAlternateKey],'DimSalesTerritory'[SalesTerritoryRegion],'DimSalesTerritory'[SalesTerritoryCountry],'DimSalesTerritory'[SalesTerritoryGroup] +1,1,Northwest,United States,North America +2,2,Northeast,United States,North America +3,3,Central,United States,North America +4,4,Southwest,United States,North America +5,5,Southeast,United States,North America +6,6,Canada,Canada,North America +7,7,France,France,Europe +8,8,Germany,Germany,Europe +9,9,Australia,Australia,Pacific +10,10,United Kingdom,United Kingdom,Europe +``` + +## See also + +[ToJSON](tojson-function-dax.md) +[EvaluateAndLog](evaluateandlog-function-dax.md) diff --git a/query-languages/dax/tojson-function-dax.md b/query-languages/dax/tojson-function-dax.md new file mode 100644 index 000000000..32c5944d8 --- /dev/null +++ b/query-languages/dax/tojson-function-dax.md @@ -0,0 +1,68 @@ +--- +description: "Learn more about: ToJSON" +title: "ToJSON function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 10/26/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# ToJSON + +Returns a table as a string using JSON format. This function applies to Power BI Desktop only. + +## Syntax + +```dax +ToJSON(
, [MaxRows]) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|Table|The table to be converted to JSON.| +|MaxRows|(Optional) The maximum number fo rows to convert. Default is 10 rows.| + +## Return value + +A string with JSON representation of the table. The representation contains column names as "header", count-of-rows as “rowCount”, and values as “data”. + +## Example + +The following DAX query: + +```dax +EVALUATE +{ToJSON(DimSalesTerritory)} +``` + +Returns: + +```json +{ +"header": ["'DimSalesTerritory'[SalesTerritoryKey]", "'DimSalesTerritory'[SalesTerritoryAlternateKey]", "'DimSalesTerritory'[SalesTerritoryRegion]", "'DimSalesTerritory'[SalesTerritoryCountry]", "'DimSalesTerritory'[SalesTerritoryGroup]"],
+"rowCount": 11, +"data": [ +[1, 1, "Northwest", "United States", "North America"], +[2, 2, "Northeast", "United States", "North America"], +[3, 3, "Central", "United States", "North America"], +[4, 4, "Southwest", "United States", "North America"], +[5, 5, "Southeast", "United States", "North America"], +[6, 6, "Canada", "Canada", "North America"], +[7, 7, "France", "France", "Europe"], +[8, 8, "Germany", "Germany", "Europe"], +[9, 9, "Australia", "Australia", "Pacific"], +[10, 10, "United Kingdom", "United Kingdom", "Europe"] +] +} +``` + +## See also + +[ToCSV](tocsv-function-dax.md) +[EvaluateAndLog](evaluateandlog-function-dax.md) From 84504c1ac011f63ac5cef167d47499fbae85cc20 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 31 Oct 2022 10:33:34 -0700 Subject: [PATCH 105/934] Adding new function. --- .../dax/columnstatistics-function-dax.md | 73 ++++++++++++++++++ .../dax/information-functions-dax.md | 3 +- .../columnstatistics-result-table.png | Bin 0 -> 95303 bytes query-languages/dax/toc.yml | 2 + 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 query-languages/dax/columnstatistics-function-dax.md create mode 100644 query-languages/dax/media/columnstatistics-function-dax/columnstatistics-result-table.png diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md new file mode 100644 index 000000000..ef48ce639 --- /dev/null +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -0,0 +1,73 @@ +--- +description: "Learn more about: COLUMNSTATISTICS" +title: "COLUMNSTATISTICS function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 10/31/2022 +ms.reviewer: owend +ms.topic: reference +author: minewiskan +ms.author: owend +recommendations: false + +--- +# COLUMNSTATISTICS + +Returns a table of statistics regarding every column in every table in the model. + +## Syntax + +```dax +COLUMNSTATISTICS () +``` + +### Parameters + +This function does not take any parameters. + +## Return value + +A table of statistics. Each row of this table represents a different column in the model. Table columns include: + +- **Table Name**: The current column’s table. +- **Column Name**: The current column’s name. +- **Min**: The minimum value found within the current column. +- **Max**: The maximum value found within the current column. +- **Cardinality**: The number of distinct values found within the current column. +- **Max Length**: The length of the longest string found within the current column (only applicable for string columns). + +## Remarks + +- Columns in an error state and columns from query-scope calculated tables do not appear in the result table: + +- If a filter from the filter context is applied to COLUMNSTATISTICS(), an error is returned. + + +## Example + +[!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] + +The following DAX query: + +```dax +DEFINE + TABLE FilteredProduct = + FILTER ( + Product, + [Color] == "Blue" + ) + COLUMN Customer[Location] = [State-Province] & " " & [Country-Region] + +EVALUATE +COLUMNSTATISTICS () + +``` + +Returns a table with statistics regarding all columns from all tables in the model. The table also includes statistics for the query-scope calculated column, Customer[Location]. However, the table does not include the columns from the query-scope calculated table, FilteredProduct. + +:::image type="content" source="media/columnstatistics-function-dax/columnstatistics-result-table.png" alt-text="COLUMNSTATISTICS result table"::: + +## See also + +[Filter context](dax-overview.md#filter-context) +[CALCULATETABLE function](calculatetable-function-dax.md) diff --git a/query-languages/dax/information-functions-dax.md b/query-languages/dax/information-functions-dax.md index 0a9b9e4da..41aadfcb7 100644 --- a/query-languages/dax/information-functions-dax.md +++ b/query-languages/dax/information-functions-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: Information functions" title: "Information functions (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 08/23/2022 +ms.date: 10/31/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -18,6 +18,7 @@ DAX information functions look at the cell or row that is provided as an argumen |Function |Description | |---------|---------| +|[COLUMNSTATISTICS](columnstatistics-function-dax.md) | Returns a table of statistics regarding every column in every table in the model. | |[CONTAINS](contains-function-dax.md) | Returns true if values for all referred columns exist, or are contained, in those columns; otherwise, the function returns false. | |[CONTAINSROW](containsrow-function-dax.md) | Returns TRUE if a row of values exists or contained in a table, otherwise returns FALSE. | |[CONTAINSSTRING](containsstring-function-dax.md) | Returns TRUE or FALSE indicating whether one string contains another string. | diff --git a/query-languages/dax/media/columnstatistics-function-dax/columnstatistics-result-table.png b/query-languages/dax/media/columnstatistics-function-dax/columnstatistics-result-table.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9178c6b96b36c2dfd3f6c963abacef3dbe26aa GIT binary patch literal 95303 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�ds_J_!^ZC;OY)>f`;b(EYH!o)eI>;jAf#q^h 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 9ca32d9b7..0de0945a5 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -279,6 +279,8 @@ items: - name: Information functions overview href: information-functions-dax.md + - name: COLUMNSTATISTICS + href: columnstatistics-function-dax.md - name: CONTAINS href: contains-function-dax.md - name: CONTAINSROW From 7d27f7c4886f190acb5235bb85d4bf80681e81b4 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 31 Oct 2022 10:42:02 -0700 Subject: [PATCH 106/934] Revise image --- .../columnstatistics-result-table.png | Bin 95303 -> 138589 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/query-languages/dax/media/columnstatistics-function-dax/columnstatistics-result-table.png b/query-languages/dax/media/columnstatistics-function-dax/columnstatistics-result-table.png index ea9178c6b96b36c2dfd3f6c963abacef3dbe26aa..ab2f187e97760ffc17e69ba6e06f7b5a795a8fda 100644 GIT binary patch literal 138589 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%0D*+W&<-Z@h@-vx;Uy=a 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%0D2jz#~NVj0pTVqvMZvVStctesa_UAeHPHI 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 literal 95303 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�ds_J_!^ZC;OY)>f`;b(EYH!o)eI>;jAf#q^h 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 From c7061502e94ab68e8bc5af808a579cd279add3a2 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 31 Oct 2022 11:11:43 -0700 Subject: [PATCH 107/934] Revisions. --- query-languages/dax/best-practices/dax-variables.md | 4 ++-- query-languages/dax/columnstatistics-function-dax.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/best-practices/dax-variables.md b/query-languages/dax/best-practices/dax-variables.md index 1d43b2ba3..3d0702e74 100644 --- a/query-languages/dax/best-practices/dax-variables.md +++ b/query-languages/dax/best-practices/dax-variables.md @@ -15,9 +15,9 @@ recommendations: false As a data modeler, writing and debugging some DAX calculations can be challenging. It's common that complex calculation requirements often involve writing compound or complex expressions. Compound expressions can involve the use of many nested functions, and possibly the reuse of expression logic. -Using variables in your DAX formulas can help you write more complex and efficient calculations. Variables can improve performance and reliability, and readability, and reduce complexity. +Using variables in your DAX formulas can help you write more complex and efficient calculations. Variables can improve performance, reliability, readability, and reduce complexity. -In this article, we'll demonstrate the first three benefits by using an example measure for year-over-year (YoY) sales growth. (The formula for YoY sales growth is: period sales *fewer sales for the same period last year, divided by* sales for the same period last year.) +In this article, we'll demonstrate the first three benefits by using an example measure for year-over-year (YoY) sales growth. (The formula for YoY sales growth is period sales, minus sales for the same period last year, divided by sales for the same period last year.) Let's start with the following measure definition. diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index ef48ce639..5d221db49 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -32,13 +32,13 @@ A table of statistics. Each row of this table represents a different column in t - **Table Name**: The current column’s table. - **Column Name**: The current column’s name. - **Min**: The minimum value found within the current column. -- **Max**: The maximum value found within the current column. +- **Max**: The maximum value found within the current column. - **Cardinality**: The number of distinct values found within the current column. -- **Max Length**: The length of the longest string found within the current column (only applicable for string columns). +- **Max Length**: The length of the longest string found within the current column (only applicable for string columns). ## Remarks -- Columns in an error state and columns from query-scope calculated tables do not appear in the result table: +- Columns in an error state and columns from query-scope calculated tables do not appear in the result table. - If a filter from the filter context is applied to COLUMNSTATISTICS(), an error is returned. From 676ffa058664a097670c752e4ec9af534cb2a679 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 31 Oct 2022 15:07:42 -0400 Subject: [PATCH 108/934] Refatoring + Stating that ascription can work as a rename Previously, this PR claimed that column/field/param names were not checked during ascription. This could be viewed as implying that the column/field/param names given in the type being ascribed have no effect. This is incorrect. Rather, the child names given in the ascribed type are applied as renames. --- query-languages/m/m-spec-types.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 214a82f3e..62a70b729 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -336,15 +336,21 @@ A value may be ascribed a type using the library function `Value.ReplaceType`. T When a value is ascribed a type, only a limited conformance check occurs: * The type being ascribed must be non-abstract, not nullable and compatible with the value's intrinsic (native) _primitive-type_. -* When a custom type is being ascribed, its component type(s) are not checked. - * For records: Field types are not checked. - * For tables: Column types are not checked. - * For functions: Parameter types and the function return type are not checked. - * For lists: The item type is not checked. * When a custom type that defines structure is ascribed, it must match the structure of the value. - * For records: The type must be closed, must define the same number of fields as the value, and must not contain any optional fields. (However, field names are not checked.) - * For tables: The type must define the same number of columns as the value. (However, column names are not checked.) - * For functions: The type must define the same number of required and optional parameters as the value. (However, parameter names are not checked.) + * For records: The type must be closed, must define the same number of fields as the value and must not contain any optional fields. (However, field types are not checked.) + * For tables: The type must define the same number of columns as the value. (However, column types are not checked.) + * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (However, parameter types and the function return type are not checked.) + * For lists: The value must be a list. (However, the item type is not checked.) + +For records, tables and functions: During ascription, the structure of the type being ascribed is applied positionally, with the child names it defines applied as renames to the value. For example, below the new type's first column definition is applied to the first column of the original value, resulting it its name changing from `A` to `Col1`. Similarly, the new type's second column definition is applied to the value's second column, renaming it to `Col2`. +```powerquery-m +let + Data = #table({"A", "B"}, {}), + NewType = type table [Col1 = text, Col2 = text], + Result = Value.ReplaceType(Data, NewType) +in + Result // returns a table with the following column names: Col1, Col2 +``` Library functions may choose to compute and ascribe complex types to results based on the ascribed types of the input values. From 3da97de4a5fc3c1420f83128197e99d14074999e Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 1 Nov 2022 16:16:08 -0400 Subject: [PATCH 109/934] Merging details of changes caused by ascription into the conformance check list --- query-languages/m/m-spec-types.md | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 62a70b729..242fd7fda 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -337,20 +337,10 @@ A value may be ascribed a type using the library function `Value.ReplaceType`. T When a value is ascribed a type, only a limited conformance check occurs: * The type being ascribed must be non-abstract, not nullable and compatible with the value's intrinsic (native) _primitive-type_. * When a custom type that defines structure is ascribed, it must match the structure of the value. - * For records: The type must be closed, must define the same number of fields as the value and must not contain any optional fields. (However, field types are not checked.) - * For tables: The type must define the same number of columns as the value. (However, column types are not checked.) - * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (However, parameter types and the function return type are not checked.) + * For records: The type must be closed, must define the same number of fields as the value and must not contain any optional fields. (The type's field names and field types will replace those currently associated with the record. However, field types will not be checked.) + * For tables: The type must define the same number of columns as the value. (The type's column names and column types will replace those currently associated with the table. However, column types will not be checked.) + * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (The type's parameter and return assertions, as well as its parameter names, will replace those associated with the function value's current type. However, the new assertions will have no effect on the actual behavior of the function.) * For lists: The value must be a list. (However, the item type is not checked.) - -For records, tables and functions: During ascription, the structure of the type being ascribed is applied positionally, with the child names it defines applied as renames to the value. For example, below the new type's first column definition is applied to the first column of the original value, resulting it its name changing from `A` to `Col1`. Similarly, the new type's second column definition is applied to the value's second column, renaming it to `Col2`. -```powerquery-m -let - Data = #table({"A", "B"}, {}), - NewType = type table [Col1 = text, Col2 = text], - Result = Value.ReplaceType(Data, NewType) -in - Result // returns a table with the following column names: Col1, Col2 -``` Library functions may choose to compute and ascribe complex types to results based on the ascribed types of the input values. From 556bd4c8aca710ff192ffeee64f07437b426078c Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 2 Nov 2022 09:27:03 -0400 Subject: [PATCH 110/934] Tweak from Ehren Co-authored-by: Ehren --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 242fd7fda..cb3eba4f9 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -335,7 +335,7 @@ A value's _ascribed type_ is the type to which a value is _declared_ to conform. A value may be ascribed a type using the library function `Value.ReplaceType`. This function either returns a new value with the type ascribed or raises an error if the new type is incompatible with the value. When a value is ascribed a type, only a limited conformance check occurs: -* The type being ascribed must be non-abstract, not nullable and compatible with the value's intrinsic (native) _primitive-type_. +* The type being ascribed must be non-abstract, non-nullable, and compatible with the value's intrinsic (native) _primitive-type_. * When a custom type that defines structure is ascribed, it must match the structure of the value. * For records: The type must be closed, must define the same number of fields as the value and must not contain any optional fields. (The type's field names and field types will replace those currently associated with the record. However, field types will not be checked.) * For tables: The type must define the same number of columns as the value. (The type's column names and column types will replace those currently associated with the table. However, column types will not be checked.) From b38cbfff0e65bd4a3bf1952ef529acfcad44123c Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 2 Nov 2022 09:28:28 -0400 Subject: [PATCH 111/934] Clear behavior statement from Ehren Co-authored-by: Ehren --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index cb3eba4f9..228366ca1 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -338,7 +338,7 @@ When a value is ascribed a type, only a limited conformance check occurs: * The type being ascribed must be non-abstract, non-nullable, and compatible with the value's intrinsic (native) _primitive-type_. * When a custom type that defines structure is ascribed, it must match the structure of the value. * For records: The type must be closed, must define the same number of fields as the value and must not contain any optional fields. (The type's field names and field types will replace those currently associated with the record. However, field types will not be checked.) - * For tables: The type must define the same number of columns as the value. (The type's column names and column types will replace those currently associated with the table. However, column types will not be checked.) + * For tables: The type must define the same number of columns as the value. (The type's column names and column types will replace those currently associated with the table. However, existing column values will not be checked against the new types.) * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (The type's parameter and return assertions, as well as its parameter names, will replace those associated with the function value's current type. However, the new assertions will have no effect on the actual behavior of the function.) * For lists: The value must be a list. (However, the item type is not checked.) From 82acff6958e170177ca8c06e283632b50aaf9f03 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 2 Nov 2022 16:35:56 -0400 Subject: [PATCH 112/934] Applying missed change + wording tweak --- query-languages/m/m-spec-types.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 228366ca1..55a391079 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -337,10 +337,10 @@ A value may be ascribed a type using the library function `Value.ReplaceType`. T When a value is ascribed a type, only a limited conformance check occurs: * The type being ascribed must be non-abstract, non-nullable, and compatible with the value's intrinsic (native) _primitive-type_. * When a custom type that defines structure is ascribed, it must match the structure of the value. - * For records: The type must be closed, must define the same number of fields as the value and must not contain any optional fields. (The type's field names and field types will replace those currently associated with the record. However, field types will not be checked.) + * For records: The type must be closed, must define the same number of fields as the value, and must not contain any optional fields. (The type's field names and field types will replace those currently associated with the record. However, existing field values will not be checked against the new types.) * For tables: The type must define the same number of columns as the value. (The type's column names and column types will replace those currently associated with the table. However, existing column values will not be checked against the new types.) * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (The type's parameter and return assertions, as well as its parameter names, will replace those associated with the function value's current type. However, the new assertions will have no effect on the actual behavior of the function.) - * For lists: The value must be a list. (However, the item type is not checked.) + * For lists: The value must be a list. (However, existing list items will not be checked against the new item type.) Library functions may choose to compute and ascribe complex types to results based on the ascribed types of the input values. From 4e571b9173a9094aafeff4311e698654c8aa5b13 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 2 Nov 2022 16:38:02 -0400 Subject: [PATCH 113/934] Tweak --- query-languages/m/m-spec-types.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 55a391079..579641a5a 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -337,8 +337,8 @@ A value may be ascribed a type using the library function `Value.ReplaceType`. T When a value is ascribed a type, only a limited conformance check occurs: * The type being ascribed must be non-abstract, non-nullable, and compatible with the value's intrinsic (native) _primitive-type_. * When a custom type that defines structure is ascribed, it must match the structure of the value. - * For records: The type must be closed, must define the same number of fields as the value, and must not contain any optional fields. (The type's field names and field types will replace those currently associated with the record. However, existing field values will not be checked against the new types.) - * For tables: The type must define the same number of columns as the value. (The type's column names and column types will replace those currently associated with the table. However, existing column values will not be checked against the new types.) + * For records: The type must be closed, must define the same number of fields as the value, and must not contain any optional fields. (The type's field names and field types will replace those currently associated with the record. However, existing field values will not be checked against the new field types.) + * For tables: The type must define the same number of columns as the value. (The type's column names and column types will replace those currently associated with the table. However, existing column values will not be checked against the new column types.) * For functions: The type must define the same number of required parameters, as well as the same number of optional parameters, as the value. (The type's parameter and return assertions, as well as its parameter names, will replace those associated with the function value's current type. However, the new assertions will have no effect on the actual behavior of the function.) * For lists: The value must be a list. (However, existing list items will not be checked against the new item type.) From e8aacc88ef0aff9673d57ab61e6dd41fe7ec149d Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 3 Nov 2022 13:45:15 -0700 Subject: [PATCH 114/934] Adding new functions. --- .../dax/evaluateandlog-function-dax.md | 121 +++++++++--------- 1 file changed, 62 insertions(+), 59 deletions(-) diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index b328f04be..2d61e95f6 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -35,7 +35,7 @@ First argument. ## Remarks -- You can wrap this function around almost any expression in a DAX query and the whole query will still be valid. +- This function can be used with almost any expression in a DAX query and the whole query will still be valid. - Value is logged together with its arguments for every set of arguments. @@ -45,7 +45,7 @@ First argument. - In some cases, this function is not executed due to optimizations. -- If the log is greater than one million symbols, it is truncated (preserving correct json structure). +- If the log is greater than one million characters, it's truncated to preserving correct json structure. ## Example 1 @@ -65,30 +65,38 @@ Returns the following log: ```json { - "expression": "SELECTCOLUMNS(FILTER(FactInternetSales, [ProductKey] = 528), \n\t\t[SalesTerritoryKey], \n\t\t[ProductKey], \n\t\t[SalesAmount],\n\t\t[OrderDate]\n\t\t)", - "inputs": [], - "outputs": ["'FactInternetSales'[SalesTerritoryKey]", "'FactInternetSales'[ProductKey]", "'FactInternetSales'[SalesAmount]", "'FactInternetSales'[OrderDate]"], - "data": [ - { - "input": [], - "rowCount": 3095, - "output": [ - [4, 528, 4.99, "2013-02-04T00:00:00"], - [4, 528, 4.99, "2013-02-04T00:00:00"], - [4, 528, 4.99, "2013-02-04T00:00:00"], - [4, 528, 4.99, "2013-02-03T00:00:00"], - [4, 528, 4.99, "2013-02-03T00:00:00"], - [4, 528, 4.99, "2013-02-01T00:00:00"], - [4, 528, 4.99, "2013-01-31T00:00:00"], - [4, 528, 4.99, "2013-01-31T00:00:00"], - [4, 528, 4.99, "2013-01-29T00:00:00"], - [4, 528, 4.99, "2013-01-28T00:00:00"] - ] - } - ] + "expression": "SELECTCOLUMNS(FILTER(FactInternetSales, [ProductKey] = 528), \n\t\t[SalesTerritoryKey], \n\t\t[ProductKey], \n\t\t[SalesAmount],\n\t\t[OrderDate]\n\t\t)", + "inputs": [], + "outputs": ["'FactInternetSales'[SalesTerritoryKey]", "'FactInternetSales'[ProductKey]", "'FactInternetSales'[SalesAmount]", "'FactInternetSales'[OrderDate]"], + "data": [ + { + "input": [], + "rowCount": 3095, + "output": [ + [4, 528, 4.99, "2013-02-04T00:00:00"], + [4, 528, 4.99, "2013-02-04T00:00:00"], + [4, 528, 4.99, "2013-02-04T00:00:00"], + [4, 528, 4.99, "2013-02-03T00:00:00"], + [4, 528, 4.99, "2013-02-03T00:00:00"], + [4, 528, 4.99, "2013-02-01T00:00:00"], + [4, 528, 4.99, "2013-01-31T00:00:00"], + [4, 528, 4.99, "2013-01-31T00:00:00"], + [4, 528, 4.99, "2013-01-29T00:00:00"], + [4, 528, 4.99, "2013-01-28T00:00:00"] + ] + } + ] } ``` +The JSON log structure for this example includes: + +- “expression” as a text version of logged expression. +- “inputs” as names of varying attributes. In this example, the expression has no varying attributes. +- “outputs” as names of columns of logged expressions. +- “data” contains expression values for every varying attribute as well as values of attributes. +- “RowCount” is the number of rows for a table specified as Value. + ## Example 2 The following DAX query with a scalar argument and varying attributes: @@ -109,48 +117,43 @@ Returns the following log: ```json { - "expression": "[FirstName] & \" \" & [LastName]", - "label": "myLog", - "inputs": ["'DimCustomer'[FirstName]", "'DimCustomer'[LastName]"], - "data": [ - { - "input": ["Larry", "Gill"], - "output": "Larry Gill" - }, - { - "input": ["Geoffrey", "Gonzalez"], - "output": "Geoffrey Gonzalez" - }, - { - "input": ["Blake", "Collins"], - "output": "Blake Collins" - }, - { - "input": ["Alexa", "Watson"], - "output": "Alexa Watson" - }, - { - "input": ["Jacquelyn", "Dominguez"], - "output": "Jacquelyn Dominguez" - } - ] + "expression": "[FirstName] & \" \" & [LastName]", + "label": "myLog", + "inputs": ["'DimCustomer'[FirstName]", "'DimCustomer'[LastName]"], + "data": [ + { + "input": ["Larry", "Gill"], + "output": "Larry Gill" + }, + { + "input": ["Geoffrey", "Gonzalez"], + "output": "Geoffrey Gonzalez" + }, + { + "input": ["Blake", "Collins"], + "output": "Blake Collins" + }, + { + "input": ["Alexa", "Watson"], + "output": "Alexa Watson" + }, + { + "input": ["Jacquelyn", "Dominguez"], + "output": "Jacquelyn Dominguez" + } + ] } ``` The JSON log structure for this example includes: -“expression” as a text version of logged expression. - -“inputs” as names of varying attributes. In this example, the expression has no varying attributes. - -“outputs” as names of columns of logged expressions. - -“data” contains expression values for every varying attribute as well as values of attributes. - -“RowCount” is the number of rows for a table specified as Value. - -“Label” is the Label parameter specified in the expression. +- “expression” as a text version of logged expression. +- “Label” is the Label parameter specified in the expression. +- “inputs” as names of varying attributes. In this example, the expression has no varying attributes. +- “outputs” as names of columns of logged expressions. +- “data” contains expression values for every varying attribute as well as values of attributes. +- “RowCount” is the number of rows for a table specified as Value. ## See also From bce371652d4f7a16c848b8a85d54c83dc78209ed Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 3 Nov 2022 14:07:44 -0700 Subject: [PATCH 115/934] Revisions. --- .../dax/evaluateandlog-function-dax.md | 20 +++++++++---------- query-languages/dax/other-functions-dax.md | 6 +++--- query-languages/dax/toc.yml | 6 +++--- query-languages/dax/tocsv-function-dax.md | 14 ++++++------- query-languages/dax/tojson-function-dax.md | 14 ++++++------- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index 2d61e95f6..4d72916eb 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -1,6 +1,6 @@ --- -description: "Learn more about: EvaluateAndLog" -title: "EvaluateAndLog function (DAX) | Microsoft Docs" +description: "Learn more about: EVALUATEANDLOG" +title: "EVALUATEANDLOG function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax ms.date: 10/26/2022 @@ -11,14 +11,14 @@ ms.author: owend recommendations: false --- -# EvaluateAndLog +# EVALUATEANDLOG Returns the value of the first argument and logs it in a DAX evaluation log. This function applies to Power BI Desktop only. ## Syntax ```dax -EvaluateAndLog(, [Label], [MaxRows]) +EVALUATEANDLOG(, [Label], [MaxRows]) ``` ### Parameters @@ -41,11 +41,11 @@ First argument. - If the argument is a table, then only the top MaxRows rows are shown. -- The label parameter is included in the event return. The string can make finding specific logs more convenient in cases where multiple EvaluateAndLog expressions are used in a single query. +- The label parameter is included in the event return. The string can make finding specific logs more convenient in cases where multiple EVALUATEANDLOG expressions are used in a single query. - In some cases, this function is not executed due to optimizations. -- If the log is greater than one million characters, it's truncated to preserving correct json structure. +- If the log is greater than one million characters, it's truncated to preserve correct json structure. ## Example 1 @@ -54,7 +54,7 @@ The following DAX query: ```dax evaluate SUMMARIZE( - EvaluateAndLog(FILTER(FactInternetSales, [ProductKey] = 528)), + EVALUATEANDLOG(FILTER(FactInternetSales, [ProductKey] = 528)), FactInternetSales[SalesTerritoryKey], "sum", sum(FactInternetSales[SalesAmount]) @@ -108,7 +108,7 @@ SELECTCOLUMNS( [FirstName], [LastName], "FullName", - EvaluateAndLog([FirstName] & " " & [LastName], "myLog") + EVALUATEANDLOG([FirstName] & " " & [LastName], "myLog") ) ``` @@ -157,5 +157,5 @@ The JSON log structure for this example includes: ## See also -[ToCSV](tocsv-function-dax.md) -[ToJSON](tojson-function-dax.md) +[TOCSV](tocsv-function-dax.md) +[TOJSON](tojson-function-dax.md) diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index 5c517cbac..a7b6404d2 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -20,6 +20,6 @@ These functions perform unique actions that cannot be defined by any of the cate |---------|---------| |[BLANK](blank-function-dax.md) | Returns a blank. | |[ERROR](error-function.md) | Raises an error with an error message. | -|[EvaluateAndLog](evaluateandlog-function-dax.md) | Returns the value of the first argument and logs it in a DAX evaluation log. | -|[ToCSV](tocsv-function-dax.md) | Returns a table as a string in CSV format. | -|[ToJSON](tojson-function-dax.md) | Returns a table as a string in CSV format. | +|[EVALUATEANDLOG](evaluateandlog-function-dax.md) | Returns the value of the first argument and logs it in a DAX evaluation log. | +|[TOCSV](tocsv-function-dax.md) | Returns a table as a string in CSV format. | +|[TOJSON](tojson-function-dax.md) | Returns a table as a string in CSV format. | diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index d40a25e03..da6953edd 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -487,11 +487,11 @@ href: blank-function-dax.md - name: ERROR href: error-function.md - - name: EvaluateAndLog + - name: EVALUATEANDLOG href: evaluateandlog-function-dax.md - - name: ToCSV + - name: TOCSV href: tocsv-function-dax.md - - name: ToJSON + - name: TOJSON href: tojson-function-dax.md - name: Parent and child functions items: diff --git a/query-languages/dax/tocsv-function-dax.md b/query-languages/dax/tocsv-function-dax.md index 428e0299a..0fc5585d3 100644 --- a/query-languages/dax/tocsv-function-dax.md +++ b/query-languages/dax/tocsv-function-dax.md @@ -1,6 +1,6 @@ --- -description: "Learn more about: ToCSV" -title: "ToCSV function (DAX) | Microsoft Docs" +description: "Learn more about: TOCSV" +title: "TOCSV function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax ms.date: 10/26/2022 @@ -11,14 +11,14 @@ ms.author: owend recommendations: false --- -# ToCSV +# TOCSV Returns a table as a string in CSV format. This function applies to Power BI Desktop only. ## Syntax ```dax -ToCSV(
, [MaxRows], [Delimiter], [IncludeHeaders]) +TOCSV(
, [MaxRows], [Delimiter], [IncludeHeaders]) ``` ### Parameters @@ -40,7 +40,7 @@ The following DAX query: ```dax EVALUATE -{ToCSV(DimSalesTerritory)} +{TOCSV(DimSalesTerritory)} ``` @@ -62,5 +62,5 @@ Returns: ## See also -[ToJSON](tojson-function-dax.md) -[EvaluateAndLog](evaluateandlog-function-dax.md) +[TOJSON](tojson-function-dax.md) +[EVALUATEANDLOG](evaluateandlog-function-dax.md) diff --git a/query-languages/dax/tojson-function-dax.md b/query-languages/dax/tojson-function-dax.md index 32c5944d8..14f884772 100644 --- a/query-languages/dax/tojson-function-dax.md +++ b/query-languages/dax/tojson-function-dax.md @@ -1,6 +1,6 @@ --- -description: "Learn more about: ToJSON" -title: "ToJSON function (DAX) | Microsoft Docs" +description: "Learn more about: TOJSON" +title: "TOJSON function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax ms.date: 10/26/2022 @@ -11,14 +11,14 @@ ms.author: owend recommendations: false --- -# ToJSON +# TOJSON Returns a table as a string using JSON format. This function applies to Power BI Desktop only. ## Syntax ```dax -ToJSON(
, [MaxRows]) +TOJSON(
, [MaxRows]) ``` ### Parameters @@ -38,7 +38,7 @@ The following DAX query: ```dax EVALUATE -{ToJSON(DimSalesTerritory)} +{TOJSON(DimSalesTerritory)} ``` Returns: @@ -64,5 +64,5 @@ Returns: ## See also -[ToCSV](tocsv-function-dax.md) -[EvaluateAndLog](evaluateandlog-function-dax.md) +[TOCSV](tocsv-function-dax.md) +[EVALUATEANDLOG](evaluateandlog-function-dax.md) From b31da1e9db672d6aa422eb1d1d9eb3a33d0d3586 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 3 Nov 2022 14:25:11 -0700 Subject: [PATCH 116/934] Revisions. --- query-languages/dax/new-dax-functions.md | 9 ++++----- query-languages/dax/other-functions-dax.md | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 9479ea20c..47f1f6cc0 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -23,12 +23,11 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| +|[EVALUATEANDLOG](evaluateandlog-function-dax.md)| November, 2022 | Returns the value of the first argument and logs it in a DAX evaluation log. This function applies to Power BI Desktop only. | +|[TOCSV](tocsv-function-dax.md) | November, 2022 | Returns a table as a string in CSV format. This function applies to Power BI Desktop only. | +|[TOJSON](tojson-function-dax.md) | November, 2022 | Returns a table as a string in JSON format. This function applies to Power BI Desktop only. | |[NETWORKDAYS](networkdays-dax.md)| July, 2022 | Returns the number of whole workdays between two dates. | -|[BITAND](bitand-function-dax.md) | November, 2021 | Returns a bitwise 'AND' of two numbers. | -|[BITLSHIFT](bitlshift-function-dax.md) | November, 2021 | Returns a number shifted left by the specified number of bits. | -|[BITOR](bitor-function-dax.md) | November, 2021 | Returns a bitwise 'OR' of two numbers. | -|[BITRSHIFT](bitrshift-function-dax.md) | November, 2021| Returns a number shifted right by the specified number of bits. | -|[BITXOR](bitxor-function-dax.md) | November, 2021 | Returns a bitwise 'XOR' of two numbers. | + ## Updated functions diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index a7b6404d2..5b384d6eb 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -22,4 +22,4 @@ These functions perform unique actions that cannot be defined by any of the cate |[ERROR](error-function.md) | Raises an error with an error message. | |[EVALUATEANDLOG](evaluateandlog-function-dax.md) | Returns the value of the first argument and logs it in a DAX evaluation log. | |[TOCSV](tocsv-function-dax.md) | Returns a table as a string in CSV format. | -|[TOJSON](tojson-function-dax.md) | Returns a table as a string in CSV format. | +|[TOJSON](tojson-function-dax.md) | Returns a table as a string in JSON format. | From fa4af65c7d2c24b99d8bd5797aca6f80ad78c4b9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 4 Nov 2022 16:20:20 -0400 Subject: [PATCH 117/934] Grammar change --- query-languages/m/m-spec-consolidated-grammar.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index d5a904e51..d1a45fc74 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -500,6 +500,7 @@ _type-expression:
      `type` _primary-type
type:
      parenthesized-expression
+      primary-expression
      primary-type
primary-type:
      primitive-type
From 09583109924a41947b719517f4c3ae13ec2249c9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 4 Nov 2022 16:32:15 -0400 Subject: [PATCH 118/934] Removing parenthesized-expression as it is already included via primary-expression --- query-languages/m/m-spec-consolidated-grammar.md | 1 - 1 file changed, 1 deletion(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index d1a45fc74..aee434845 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -499,7 +499,6 @@ _type-expression:
      primary-expression_
      `type` _primary-type
type:
-      parenthesized-expression
      primary-expression
      primary-type
primary-type:
From c99f694fee73f88d6d3fe6810bbd5b0cfe152e5c Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 4 Nov 2022 15:09:05 -0700 Subject: [PATCH 119/934] Revisions. --- .../dax/evaluateandlog-function-dax.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index 4d72916eb..ea7cde1fd 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # EVALUATEANDLOG -Returns the value of the first argument and logs it in a DAX evaluation log. This function applies to Power BI Desktop only. +Returns the value of the first argument and logs it in Trace event, DAX Evaluation Log. This function applies to Power BI Desktop only. ## Syntax @@ -25,27 +25,26 @@ EVALUATEANDLOG(, [Label], [MaxRows]) |Term|Definition| |--------|--------------| -|Value|Any scalar value or table expression to be logged.| -|Label|(Optional) A constant string.| -|MaxRows|(Optional) The maximum number of rows output to the DAX evaluation log when the first argument is a table expression. If the value is a scalar, this parameter is ignored. Default is 10.| +|Value|Any scalar value or table expression to be logged. The value of the expression is returned, as well as entered in JSON format to the DAX Evaluation Log event.| +|Label|(Optional) A constant string included in the event return. Labels help identify and differentiate between multiple EVALUATEANDLOG expressions in the same query.| +|MaxRows|(Optional) The maximum number of rows output when the first argument is a table expression. Default is 10. If the value is a scalar, this parameter is ignored. | ## Return value -First argument. +Result of the expression. ## Remarks -- This function can be used with almost any expression in a DAX query and the whole query will still be valid. +- Trace events can be captured by using [SQL Server Profiler](/analysis-services/instances/use-sql-server-profiler-to-monitor-analysis-services) and the open-source [DAX Debug Output](https://github.com/pbidax/DAXDebugOutput/releases/) tool. +- This function does not change the result of the Value expression. - Value is logged together with its arguments for every set of arguments. -- If the argument is a table, then only the top MaxRows rows are shown. - -- The label parameter is included in the event return. The string can make finding specific logs more convenient in cases where multiple EVALUATEANDLOG expressions are used in a single query. +- If the argument for Value is a table, only the top MaxRows rows are shown. - In some cases, this function is not executed due to optimizations. -- If the log is greater than one million characters, it's truncated to preserve correct json structure. +- If the DAX Evaluation Log event is greater than one million characters, it's truncated to preserve correct json structure. ## Example 1 From d36dca290fb6af82ce4a6dc609c6fbd9f280009f Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 7 Nov 2022 12:53:46 -0800 Subject: [PATCH 120/934] Revisions. --- .../dax/evaluateandlog-function-dax.md | 113 ++++++++---------- query-languages/dax/new-dax-functions.md | 2 +- query-languages/dax/other-functions-dax.md | 2 +- query-languages/dax/tocsv-function-dax.md | 2 +- query-languages/dax/tojson-function-dax.md | 4 +- 5 files changed, 58 insertions(+), 65 deletions(-) diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index ea7cde1fd..26f92a29c 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # EVALUATEANDLOG -Returns the value of the first argument and logs it in Trace event, DAX Evaluation Log. This function applies to Power BI Desktop only. +Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. This function is fully functional in Power BI Desktop only. It acts as a simple passthrough function in other environments. ## Syntax @@ -25,22 +25,33 @@ EVALUATEANDLOG(, [Label], [MaxRows]) |Term|Definition| |--------|--------------| -|Value|Any scalar value or table expression to be logged. The value of the expression is returned, as well as entered in JSON format to the DAX Evaluation Log event.| -|Label|(Optional) A constant string included in the event return. Labels help identify and differentiate between multiple EVALUATEANDLOG expressions in the same query.| -|MaxRows|(Optional) The maximum number of rows output when the first argument is a table expression. Default is 10. If the value is a scalar, this parameter is ignored. | +|Value|Any scalar value or table expression to be logged.| +|Label|(Optional) A constant string included in the event return.| +|MaxRows|(Optional) The maximum number of rows output when the first argument is a table expression. Default is 10.| ## Return value -Result of the expression. +The value of the first argument. + +The JSON structure logged in a DAX Evaluation Log profiler event includes: + +- “expression” is the text version of the first argument. +- “label” is the Label parameter when specified in the expression. +- “inputs” is a list of columns in the evaluation context that affects the values of the first argument. +- “outputs” is a list of a single column [Value] when the first argument is a scalar expression and a list of output columns when the first argument is a table expression. +- “data” is a list of input values and output values when the first argument is a scalar expression, and a list of input values and corresponding output rows when the first argument is a table expression. +- “rowCount” is the number of rows when the first argument is a table expression. Even though the number of rows in the json output is truncated by the MaxRows parameter, rowCount is the real number of rows without truncation. ## Remarks - Trace events can be captured by using [SQL Server Profiler](/analysis-services/instances/use-sql-server-profiler-to-monitor-analysis-services) and the open-source [DAX Debug Output](https://github.com/pbidax/DAXDebugOutput/releases/) tool. -- This function does not change the result of the Value expression. +- This function can be used with almost any sub-expression in a DAX expression, and the entire expression will still be valid. -- Value is logged together with its arguments for every set of arguments. +- When the first argument is evaluated multiple times in a single query, the function generates a single DAX Evaluation Log event that contains both the input values and the corresponding output values. -- If the argument for Value is a table, only the top MaxRows rows are shown. +- When the label parameter is specified, its value is returned in both the json output and the Label column of the DAX Evaluation Log event. + +- If the first argument is a table expression, only the top MaxRows rows are shown in the DAX Evaluation Log event. - In some cases, this function is not executed due to optimizations. @@ -53,49 +64,41 @@ The following DAX query: ```dax evaluate SUMMARIZE( - EVALUATEANDLOG(FILTER(FactInternetSales, [ProductKey] = 528)), - FactInternetSales[SalesTerritoryKey], + EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)), + Sales[SalesTerritoryKey], "sum", - sum(FactInternetSales[SalesAmount]) + sum(Sales[Sales Amount]) ) ``` -Returns the following log: +Returns the following DAX Evaluation Log event: ```json { - "expression": "SELECTCOLUMNS(FILTER(FactInternetSales, [ProductKey] = 528), \n\t\t[SalesTerritoryKey], \n\t\t[ProductKey], \n\t\t[SalesAmount],\n\t\t[OrderDate]\n\t\t)", + "expression": "FILTER(Sales, [ProductKey] = 528)", "inputs": [], - "outputs": ["'FactInternetSales'[SalesTerritoryKey]", "'FactInternetSales'[ProductKey]", "'FactInternetSales'[SalesAmount]", "'FactInternetSales'[OrderDate]"], + "outputs": ["'Sales'[SalesOrderLineKey]", "'Sales'[ResellerKey]", "'Sales'[CustomerKey]", "'Sales'[ProductKey]", "'Sales'[OrderDateKey]", "'Sales'[DueDateKey]", "'Sales'[ShipDateKey]", "'Sales'[SalesTerritoryKey]", "'Sales'[Order Quantity]", "'Sales'[Unit Price]", "'Sales'[Extended Amount]", "'Sales'[Product Standard Cost]", "'Sales'[Total Product Cost]", "'Sales'[Sales Amount]", "'Sales'[Unit Price Discount Pct]"], "data": [ { "input": [], "rowCount": 3095, "output": [ - [4, 528, 4.99, "2013-02-04T00:00:00"], - [4, 528, 4.99, "2013-02-04T00:00:00"], - [4, 528, 4.99, "2013-02-04T00:00:00"], - [4, 528, 4.99, "2013-02-03T00:00:00"], - [4, 528, 4.99, "2013-02-03T00:00:00"], - [4, 528, 4.99, "2013-02-01T00:00:00"], - [4, 528, 4.99, "2013-01-31T00:00:00"], - [4, 528, 4.99, "2013-01-31T00:00:00"], - [4, 528, 4.99, "2013-01-29T00:00:00"], - [4, 528, 4.99, "2013-01-28T00:00:00"] + [52174001, -1, 23785, 528, 20190707, 20190717, 20190714, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0], + [52173001, -1, 26278, 528, 20190707, 20190717, 20190714, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0], + [52082001, -1, 23831, 528, 20190705, 20190715, 20190712, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0], + [52054002, -1, 11207, 528, 20190704, 20190714, 20190711, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0], + [52036001, -1, 25337, 528, 20190704, 20190714, 20190711, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0], + [51939002, -1, 23670, 528, 20190702, 20190712, 20190709, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0], + [51911002, -1, 11746, 528, 20190701, 20190711, 20190708, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0], + [51379003, -1, 13745, 528, 20190612, 20190622, 20190619, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0], + [51264002, -1, 11282, 528, 20190605, 20190615, 20190612, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0], + [51184003, -1, 11263, 528, 20190531, 20190610, 20190607, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0] ] } ] } ``` -The JSON log structure for this example includes: - -- “expression” as a text version of logged expression. -- “inputs” as names of varying attributes. In this example, the expression has no varying attributes. -- “outputs” as names of columns of logged expressions. -- “data” contains expression values for every varying attribute as well as values of attributes. -- “RowCount” is the number of rows for a table specified as Value. - ## Example 2 The following DAX query with a scalar argument and varying attributes: @@ -103,57 +106,47 @@ The following DAX query with a scalar argument and varying attributes: ```dax evaluate SELECTCOLUMNS( - TOPN(5, DimCustomer), - [FirstName], - [LastName], - "FullName", - EVALUATEANDLOG([FirstName] & " " & [LastName], "myLog") + TOPN(5, Customer), + [Customer], + "Customer", + EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog") ) ``` -Returns the following log: +Returns the following DAX Evaluation Log event: ```json { - "expression": "[FirstName] & \" \" & [LastName]", - "label": "myLog", - "inputs": ["'DimCustomer'[FirstName]", "'DimCustomer'[LastName]"], + "expression": "[Customer] & \", \" & [Country-Region]", + "label": "customerLog", + "inputs": ["'Customer'[Customer]", "'Customer'[Country-Region]"], "data": [ { - "input": ["Larry", "Gill"], - "output": "Larry Gill" + "input": ["Russell Xie", "United States"], + "output": "Russell Xie, United States" }, { - "input": ["Geoffrey", "Gonzalez"], - "output": "Geoffrey Gonzalez" + "input": ["Savannah Baker", "United States"], + "output": "Savannah Baker, United States" }, { - "input": ["Blake", "Collins"], - "output": "Blake Collins" + "input": ["Maurice Tang", "United States"], + "output": "Maurice Tang, United States" }, { - "input": ["Alexa", "Watson"], - "output": "Alexa Watson" + "input": ["Emily Wood", "United States"], + "output": "Emily Wood, United States" }, { - "input": ["Jacquelyn", "Dominguez"], - "output": "Jacquelyn Dominguez" + "input": ["Meghan Hernandez", "United States"], + "output": "Meghan Hernandez, United States" } ] } ``` -The JSON log structure for this example includes: - -- “expression” as a text version of logged expression. -- “Label” is the Label parameter specified in the expression. -- “inputs” as names of varying attributes. In this example, the expression has no varying attributes. -- “outputs” as names of columns of logged expressions. -- “data” contains expression values for every varying attribute as well as values of attributes. -- “RowCount” is the number of rows for a table specified as Value. - ## See also [TOCSV](tocsv-function-dax.md) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 47f1f6cc0..4d7cebd5e 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -23,7 +23,7 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| -|[EVALUATEANDLOG](evaluateandlog-function-dax.md)| November, 2022 | Returns the value of the first argument and logs it in a DAX evaluation log. This function applies to Power BI Desktop only. | +|[EVALUATEANDLOG](evaluateandlog-function-dax.md)| November, 2022 | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. | |[TOCSV](tocsv-function-dax.md) | November, 2022 | Returns a table as a string in CSV format. This function applies to Power BI Desktop only. | |[TOJSON](tojson-function-dax.md) | November, 2022 | Returns a table as a string in JSON format. This function applies to Power BI Desktop only. | |[NETWORKDAYS](networkdays-dax.md)| July, 2022 | Returns the number of whole workdays between two dates. | diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index 5b384d6eb..8bc6c173d 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -20,6 +20,6 @@ These functions perform unique actions that cannot be defined by any of the cate |---------|---------| |[BLANK](blank-function-dax.md) | Returns a blank. | |[ERROR](error-function.md) | Raises an error with an error message. | -|[EVALUATEANDLOG](evaluateandlog-function-dax.md) | Returns the value of the first argument and logs it in a DAX evaluation log. | +|[EVALUATEANDLOG](evaluateandlog-function-dax.md) | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. | |[TOCSV](tocsv-function-dax.md) | Returns a table as a string in CSV format. | |[TOJSON](tojson-function-dax.md) | Returns a table as a string in JSON format. | diff --git a/query-languages/dax/tocsv-function-dax.md b/query-languages/dax/tocsv-function-dax.md index 0fc5585d3..aa4089b26 100644 --- a/query-languages/dax/tocsv-function-dax.md +++ b/query-languages/dax/tocsv-function-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # TOCSV -Returns a table as a string in CSV format. This function applies to Power BI Desktop only. +Returns a table as a string in CSV format. ## Syntax diff --git a/query-languages/dax/tojson-function-dax.md b/query-languages/dax/tojson-function-dax.md index 14f884772..e645c6d0c 100644 --- a/query-languages/dax/tojson-function-dax.md +++ b/query-languages/dax/tojson-function-dax.md @@ -13,8 +13,8 @@ recommendations: false --- # TOJSON -Returns a table as a string using JSON format. This function applies to Power BI Desktop only. - +Returns a table as a string using JSON format. + ## Syntax ```dax From eb0c36fb76b64a87f83bf45df7c53e8e119160dc Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 7 Nov 2022 13:27:17 -0800 Subject: [PATCH 121/934] Revisions. --- query-languages/dax/evaluateandlog-function-dax.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index 26f92a29c..d5029685e 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -25,9 +25,9 @@ EVALUATEANDLOG(, [Label], [MaxRows]) |Term|Definition| |--------|--------------| -|Value|Any scalar value or table expression to be logged.| -|Label|(Optional) A constant string included in the event return.| -|MaxRows|(Optional) The maximum number of rows output when the first argument is a table expression. Default is 10.| +|Value|Any scalar expression or table expression to be evaluated and logged.| +|Label|(Optional) A constant string included in both the json text and the Label column of the DAX Evaluation Log event that can be used to easily identify an instance of the function call.| +|MaxRows|(Optional) The maximum number of rows in the json text of the DAX Evaluation Log event when the first argument is a table expression. Default is 10.| ## Return value From 71a9c012b73ecc8e407bb34aee42e3304e8e72f9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 11 Nov 2022 15:59:20 -0500 Subject: [PATCH 122/934] Applying change to types article --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 579641a5a..d9e95b696 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -31,7 +31,7 @@ _type-expression:
      primary-expression_
      `type` _primary-type
type:
-      parenthesized-expression
+      primary-expression
      primary-type
primary-type:
      primitive-type
From f6e0f25196ae430d90d65d8833af6c14febb93ea Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 14 Nov 2022 14:52:22 -0800 Subject: [PATCH 123/934] Added December updates to the Power Query M reference --- query-languages/m/date-dayofyear.md | 4 +- query-languages/m/date-endofday.md | 4 +- query-languages/m/date-endofmonth.md | 6 +- query-languages/m/date-endofquarter.md | 6 +- query-languages/m/date-endofweek.md | 6 +- query-languages/m/date-endofyear.md | 4 +- query-languages/m/date-functions.md | 20 ++--- query-languages/m/date-startofday.md | 6 +- query-languages/m/date-startofmonth.md | 6 +- query-languages/m/date-startofquarter.md | 6 +- query-languages/m/date-startofweek.md | 6 +- query-languages/m/date-startofyear.md | 6 +- query-languages/m/date-weekofmonth.md | 4 +- query-languages/m/date-weekofyear.md | 6 +- .../m/progress-datasourceprogress.md | 16 ++++ query-languages/m/saphana-database.md | 6 +- query-languages/m/table-replacevalue.md | 90 ++++++++++++++++--- query-languages/m/time-endofhour.md | 4 +- query-languages/m/time-functions.md | 6 +- query-languages/m/time-startofhour.md | 6 +- query-languages/m/toc.yml | 2 + query-languages/m/value-functions.md | 3 +- 22 files changed, 153 insertions(+), 70 deletions(-) create mode 100644 query-languages/m/progress-datasourceprogress.md diff --git a/query-languages/m/date-dayofyear.md b/query-languages/m/date-dayofyear.md index 3bad5570c..ca511c6a0 100644 --- a/query-languages/m/date-dayofyear.md +++ b/query-languages/m/date-dayofyear.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.DayOfYear" title: "Date.DayOfYear" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.DayOfYear @@ -17,7 +17,7 @@ Returns a number representing the day of the year in the provided `date`, `datet ## Example 1 -The number of the day March 1st, 2011 (`#date(2011, 03, 01)`). +The day of the year for March 1st, 2011. **Usage** diff --git a/query-languages/m/date-endofday.md b/query-languages/m/date-endofday.md index 4b23f6c46..e9c1d0301 100644 --- a/query-languages/m/date-endofday.md +++ b/query-languages/m/date-endofday.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.EndOfDay" title: "Date.EndOfDay" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.EndOfDay @@ -11,7 +11,7 @@ Date.EndOfDay(dateTime as any) as any ## About -Returns a `date`, `datetime`, or `datetimezone` value representing the end of the day in `dateTime`. Time zone information is preserved. +Returns the end of the day represented by `dateTime`. Time zone information is preserved. * `dateTime`: A `date`, `datetime`, or `datetimezone` value from from which the end of the day is calculated. diff --git a/query-languages/m/date-endofmonth.md b/query-languages/m/date-endofmonth.md index c6b24e76d..07d6add90 100644 --- a/query-languages/m/date-endofmonth.md +++ b/query-languages/m/date-endofmonth.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.EndOfMonth" title: "Date.EndOfMonth" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.EndOfMonth @@ -13,9 +13,9 @@ Date.EndOfMonth(dateTime as any) as any ## About -Returns the last day of the month in `dateTime`. +Returns the end of the month that contains `dateTime`. -* `dateTime`: A `date`, `datetime`, or `datetimezone` value from which the end of the month is calculated +* `dateTime`: A `date`, `datetime`, or `datetimezone` value from which the end of the month is calculated. ## Example 1 diff --git a/query-languages/m/date-endofquarter.md b/query-languages/m/date-endofquarter.md index c3c79dce8..ae39da138 100644 --- a/query-languages/m/date-endofquarter.md +++ b/query-languages/m/date-endofquarter.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.EndOfQuarter" title: "Date.EndOfQuarter" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.EndOfQuarter @@ -13,13 +13,13 @@ Date.EndOfQuarter(dateTime as any) as any ## About -Returns a `date`, `datetime`, or `datetimezone` value representing the end of the quarter in `dateTime`. Time zone information is preserved. +Returns the end of the quarter that contains `dateTime`. Time zone information is preserved. * `dateTime`: A `date`, `datetime`, or `datetimezone` value from which the end of the quarter is calculated. ## Example 1 -Find the end of the quarter for October 10th, 2011, 8:00AM (`#datetime(2011, 10, 10, 8, 0, 0)`). +Find the end of the quarter for October 10th, 2011, 8:00AM. **Usage** diff --git a/query-languages/m/date-endofweek.md b/query-languages/m/date-endofweek.md index 0a3d539f6..e99fa1587 100644 --- a/query-languages/m/date-endofweek.md +++ b/query-languages/m/date-endofweek.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.EndOfWeek" title: "Date.EndOfWeek" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.EndOfWeek @@ -13,10 +13,10 @@ Date.EndOfWeek(dateTime as any, optional firstDayOfWeek as nullabl ## About -Returns the last day of the week in the provided `date`, `datetime`, or `datetimezone` `dateTime`. This function takes an optional `Day`, `firstDayOfWeek`, to set the first day of the week for this relative calculation. The default value is [Day.Sunday](/powerquery-m/day-sunday). +Returns the end of the week that contains `dateTime`. This function takes an optional `Day`, `firstDayOfWeek`, to set as the first day of the week for this relative calculation. The default value is [Day.Sunday](/powerquery-m/day-type). * `dateTime`: A `date`, `datetime`, or `datetimezone` value from which the last day of the week is calculated -* `firstDayOfWeek`: _[Optional]_ A [Day.Type](day-type.md) value representing the first day of the week. Possible values are `Day.Sunday`, `Day.Monday`, `Day.Tuesday`, `Day.Wednesday`, `Day.Thursday`, `Day.Friday`, and `Day.Saturday`. The default value is `Day.Sunday`. +* `firstDayOfWeek`: _[Optional]_ A [Day.Type](/powerquery-m/day-type) value representing the first day of the week. Possible values are `Day.Sunday`, `Day.Monday`, `Day.Tuesday`, `Day.Wednesday`, `Day.Thursday`, `Day.Friday` and `Day.Saturday`. The default value is `Day.Sunday`. ## Example 1 diff --git a/query-languages/m/date-endofyear.md b/query-languages/m/date-endofyear.md index d22cbeeb1..ca6559c89 100644 --- a/query-languages/m/date-endofyear.md +++ b/query-languages/m/date-endofyear.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.EndOfYear" title: "Date.EndOfYear" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.EndOfYear @@ -13,7 +13,7 @@ Date.EndOfYear(dateTime as any) as any ## About -Returns a value representing the end of the year in `dateTime`, including fractional seconds. Time zone information is preserved. +Returns the end of the year that contains `dateTime`, including fractional seconds. Time zone information is preserved. * `dateTime`: A `date`, `datetime`, or `datetimezone` value from which the end of the year is calculated. diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index 2e1347ac0..614e9e99d 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date functions" title: "Date functions" -ms.date: 10/18/2022 +ms.date: 11/14/2022 --- # Date functions @@ -19,11 +19,11 @@ These functions create and manipulate the date component of date, datetime, and |[Date.DayOfWeekName](date-dayofweekname.md)|Returns the day of the week name.| |[Date.DayOfYear](date-dayofyear.md)|Returns a number that represents the day of the year from a DateTime value.| |[Date.DaysInMonth](date-daysinmonth.md)|Returns the number of days in the month from a DateTime value.| -|[Date.EndOfDay](date-endofday.md)|Returns a DateTime value for the end of the day.| -|[Date.EndOfMonth](date-endofmonth.md)|Returns a DateTime value for the end of the month.| -|[Date.EndOfQuarter](date-endofquarter.md)|Returns a Date/DateTime/DateTimeZone value representing the end of the quarter. The date and time portions are reset to their terminating values for the quarter. The timezone information is persisted.| -|[Date.EndOfWeek](date-endofweek.md)|Returns a DateTime value for the end of the week.| -|[Date.EndOfYear](date-endofyear.md)|Returns a DateTime value for the end of the year.| +|[Date.EndOfDay](date-endofday.md)|Returns the end of the day.| +|[Date.EndOfMonth](date-endofmonth.md)|Returns the end of the month.| +|[Date.EndOfQuarter](date-endofquarter.md)|Returns the end of the quarter.| +|[Date.EndOfWeek](date-endofweek.md)|Returns the end of the week.| +|[Date.EndOfYear](date-endofyear.md)|Returns the end of the year.| |[Date.From](date-from.md)|Returns a date value from a value.| |[Date.FromText](date-fromtext.md)|Creates a Date from local, universal, and custom Date formats.| |[Date.IsInCurrentDay](date-isincurrentday.md)|Indicates whether the given datetime value `dateTime` occurs during the current day, as determined by the current date and time on the system.| @@ -56,11 +56,11 @@ These functions create and manipulate the date component of date, datetime, and |[Date.Month](date-month.md)|Returns the month from a DateTime value.| |[Date.MonthName](date-monthname.md)|Returns the name of the month component.| |[Date.QuarterOfYear](date-quarterofyear.md)|Returns a number between 1 and 4 for the quarter of the year from a DateTime value.| -|[Date.StartOfDay](date-startofday.md)|Returns a DateTime value for the start of the day.| -|[Date.StartOfMonth](date-startofmonth.md)|Returns a DateTime value representing the start of the month.| -|[Date.StartOfQuarter](date-startofquarter.md)|Returns a DateTime value representing the start of the quarter.| +|[Date.StartOfDay](date-startofday.md)|Returns the start of the day.| +|[Date.StartOfMonth](date-startofmonth.md)|Returns the start of the month.| +|[Date.StartOfQuarter](date-startofquarter.md)|Returns the start of the quarter.| |[Date.StartOfWeek](date-startofweek.md)|Returns the start of the week.| -|[Date.StartOfYear](date-startofyear.md)|Returns a DateTime value representing the start of the year.| +|[Date.StartOfYear](date-startofyear.md)|Returns the start of the year.| |[Date.ToRecord](date-torecord.md)|Returns a record containing parts of a Date value.| |[Date.ToText](date-totext.md)|Returns a text value from a Date value.| |[Date.WeekOfMonth](date-weekofmonth.md)|Returns a number for the count of week in the current month.| diff --git a/query-languages/m/date-startofday.md b/query-languages/m/date-startofday.md index 6c83e00e9..7d8b80821 100644 --- a/query-languages/m/date-startofday.md +++ b/query-languages/m/date-startofday.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.StartOfDay" title: "Date.StartOfDay" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.StartOfDay @@ -13,11 +13,11 @@ Date.StartOfDay(dateTime as any) as any ## About -Returns the first value of the day `dateTime`. `dateTime` must be a `date`, `datetime`, or `datetimezone` value. +Returns the start of the day represented by `dateTime`. `dateTime` must be a `date`, `datetime`, or `datetimezone` value. ## Example 1 -Find the start of the day for October 10th, 2011, 8:00AM (`#datetime(2011, 10, 10, 8, 0, 0)`). +Find the start of the day for October 10th, 2011, 8:00AM. **Usage** diff --git a/query-languages/m/date-startofmonth.md b/query-languages/m/date-startofmonth.md index 5540ca9c6..7cbea3b5d 100644 --- a/query-languages/m/date-startofmonth.md +++ b/query-languages/m/date-startofmonth.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.StartOfMonth" title: "Date.StartOfMonth" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.StartOfMonth @@ -13,11 +13,11 @@ Date.StartOfMonth(dateTime as any) as any ## About -Returns the first value of the month given a `date` or `datetime` type. +Returns the start of the month that contains `dateTime`. `dateTime` must be a `date` or `datetime` value. ## Example 1 -Find the start of the month for October 10th, 2011, 8:10:32AM (`#datetime(2011, 10, 10, 8, 10, 32)`). +Find the start of the month for October 10th, 2011, 8:10:32AM. **Usage** diff --git a/query-languages/m/date-startofquarter.md b/query-languages/m/date-startofquarter.md index 1b8c4f46a..a3ed23496 100644 --- a/query-languages/m/date-startofquarter.md +++ b/query-languages/m/date-startofquarter.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.StartOfQuarter" title: "Date.StartOfQuarter" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.StartOfQuarter @@ -13,11 +13,11 @@ Date.StartOfQuarter(dateTime as any) as any ## About -Returns the first value of the quarter <`dateTime`. `dateTime` must be a `date`, `datetime`, or `datetimezone` value. +Returns the start of the quarter that contains `dateTime`. `dateTime` must be a `date`, `datetime`, or `datetimezone` value. ## Example 1 -Find the start of the quarter for October 10th, 2011, 8:00AM (`#datetime(2011, 10, 10, 8, 0, 0)`). +Find the start of the quarter for October 10th, 2011, 8:00AM. **Usage** diff --git a/query-languages/m/date-startofweek.md b/query-languages/m/date-startofweek.md index e1c57fb14..ba372b6ae 100644 --- a/query-languages/m/date-startofweek.md +++ b/query-languages/m/date-startofweek.md @@ -1,19 +1,19 @@ --- description: "Learn more about: Date.StartOfWeek" title: "Date.StartOfWeek" -ms.date: 10/18/2022 +ms.date: 11/14/2022 --- # Date.StartOfWeek ## Syntax
-Date.StartOfWeek(dateTime as any, optional firstDayOfWeek as nullable number) as any 
+Date.StartOfWeek(dateTime as any, optional firstDayOfWeek as nullable number) as any
 
## About -Returns the start of the week given a `date`, `datetime`, or `datetimezone` value. +Returns the start of the week that contains `dateTime`. `dateTime` must be a `date`, `datetime`, or `datetimezone` value. ## Example 1 diff --git a/query-languages/m/date-startofyear.md b/query-languages/m/date-startofyear.md index ece1df42f..18a777f56 100644 --- a/query-languages/m/date-startofyear.md +++ b/query-languages/m/date-startofyear.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.StartOfYear" title: "Date.StartOfYear" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.StartOfYear @@ -13,11 +13,11 @@ Date.StartOfYear(dateTime as any) as any ## About -Returns the first value of the year given a `date`, `datetime`, or `datetimezone` value. +Returns the start of the year that contains `dateTime`. `dateTime` must be a `date`, `datetime`, or `datetimezone` value. ## Example 1 -Find the start of the year for October 10th, 2011, 8:10:32AM (`#datetime(2011, 10, 10, 8, 10, 32)`). +Find the start of the year for October 10th, 2011, 8:10:32AM. **Usage** diff --git a/query-languages/m/date-weekofmonth.md b/query-languages/m/date-weekofmonth.md index ec4bd809c..e5b57dda0 100644 --- a/query-languages/m/date-weekofmonth.md +++ b/query-languages/m/date-weekofmonth.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.WeekOfMonth" title: "Date.WeekOfMonth" -ms.date: 3/11/2022 +ms.date: 11/14/2022 --- # Date.WeekOfMonth @@ -19,7 +19,7 @@ Returns a number from 1 to 6 indicating which week of the month the date `dateTi ## Example 1 -Determine which week of March the 15th falls on in 2011 (`#date(2011, 03, 15)`). +Determine which week of March the 15th falls on in 2011. **Usage** diff --git a/query-languages/m/date-weekofyear.md b/query-languages/m/date-weekofyear.md index 73b195e8d..c7992f7c9 100644 --- a/query-languages/m/date-weekofyear.md +++ b/query-languages/m/date-weekofyear.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.WeekOfYear" title: "Date.WeekOfYear" -ms.date: 5/16/2022 +ms.date: 11/14/2022 --- # Date.WeekOfYear @@ -21,7 +21,7 @@ Returns a number from 1 to 54 indicating which week of the year the date, `dateT ## Example 1 -Determine which week of the year March 27th, 2011 falls in (`#date(2011, 03, 27)`). +Determine which week of the year contains March 27th, 2011. **Usage** @@ -35,7 +35,7 @@ Date.WeekOfYear(#date(2011, 03, 27)) ## Example 2 -Determine which week of the year March 27th, 2011 falls in (`#date(2011, 03, 27)`), using Monday as the start of a new week. +Determine which week of the year contains March 27th, 2011, using Monday as the start of the week. **Usage** diff --git a/query-languages/m/progress-datasourceprogress.md b/query-languages/m/progress-datasourceprogress.md new file mode 100644 index 000000000..306a65f28 --- /dev/null +++ b/query-languages/m/progress-datasourceprogress.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Progress.DataSourceProgress" +title: "Progress.DataSourceProgress" +ms.date: 11/14/2022 +--- +# Progress.DataSourceProgress + +## Syntax + +
+Progress.DataSourceProgress() as any
+
+ +## About + +This function is intended for internal use only. diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index cdca97d52..676b6bf19 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: SapHana.Database" title: "SapHana.Database" -ms.date: 10/7/2022 +ms.date: 11/14/2022 --- # SapHana.Database @@ -16,6 +16,8 @@ SapHana.Database(**server** as text, optional **options** as nullable record) as Returns a table of multidimensional packages from the SAP HANA database `server`. An optional record parameter, `options`, may be specified to control the following options: * `Query`: A native SQL query used to retrieve data. If the query produces multiple result sets, only the first will be returned. -* `Distribution`: A [SapHanaDistribution](saphanadistribution-type.md) that sets the value of the "Distribution" property in the connection string. Statement routing is the method of evaluating the correct server node of a distributed system before statement execution. The default value is `SapHanaDistribution.All`. +* `Distribution`: A [SapHanaDistribution](saphanadistribution-type.md) that sets the value of the "Distribution" property in the connection string. Statement routing is the method of evaluating the correct server node of a distributed system before statement execution. The default value is [SapHanaDistribution.All](/powerquery-m/saphanadistribution-type). * `Implementation`: Specifies the implementation of the SAP HANA connector to use. * `EnableColumnBinding`: Binds variables to the columns of a SAP HANA result set when fetching data. May potentially improve performance at the cost of slightly higher memory utilization. The default value is false. +* `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is 15 seconds. +* `CommandTimeout`: A duration that controls how long the server-side query is allowed to run before it is canceled. The default value is ten minutes. diff --git a/query-languages/m/table-replacevalue.md b/query-languages/m/table-replacevalue.md index 7def6f285..aa0c8a3ca 100644 --- a/query-languages/m/table-replacevalue.md +++ b/query-languages/m/table-replacevalue.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.ReplaceValue" title: "Table.ReplaceValue" -ms.date: 5/19/2022 +ms.date: 11/14/2022 --- # Table.ReplaceValue @@ -17,20 +17,21 @@ Replaces `oldValue` with `newValue` in the specified columns of the `table`. ## Example 1 -Replace the text "goodbye" with the text "world" in the table. +Replace the text "goodbye" with "world" in column B, matching only the entire value. **Usage** ```powerquery-m Table.ReplaceValue( Table.FromRecords({ - [a = 1, b = "hello"], - [a = 3, b = "goodbye"] + [A = 1, B = "hello"], + [A = 2, B = "goodbye"], + [A = 3, B = "goodbyes"] }), "goodbye", "world", - Replacer.ReplaceText, - {"b"} + Replacer.ReplaceValue, + {"B"} ) ``` @@ -38,27 +39,88 @@ Table.ReplaceValue( ```powerquery-m Table.FromRecords({ - [a = 1, b = "hello"], - [a = 3, b = "world"] + [A = 1, B = "hello"], + [A = 2, B = "world"], + [A = 3, B = "goodbyes"] }) ``` ## Example 2 -Replace the text "ur" with the text "or" in the table. +Replace the text "ur" with "or" in column B, matching any part of the value. **Usage** ```powerquery-m Table.ReplaceValue( Table.FromRecords({ - [a = 1, b = "hello"], - [a = 3, b = "wurld"] + [A = 1, B = "hello"], + [A = 2, B = "wurld"] }), "ur", "or", Replacer.ReplaceText, - {"b"} + {"B"} +) +``` + +**Output** + +```powerquery-m +Table.FromRecords({ + [A = 1, B = "hello"], + [A = 2, B = "world"] +}) +``` + +## Example 3 + +Anonymize the names of US employees. + +**Usage** + +```powerquery-m +Table.ReplaceValue( + Table.FromRecords({ + [Name = "Cindy", Country = "US"], + [Name = "Bob", Country = "CA"] + }), + each if [Country] = "US" then [Name] else false, + each Text.Repeat("*", Text.Length([Name])), + Replacer.ReplaceValue, + {"Name"} +) +``` + +**Output** + +```powerquery-m +Table.FromRecords({ + [Name = "*****", Country = "US"], + [Name = "Bob", Country = "CA"] +}) +``` + +## Example 4 + +Anonymize all columns of US employees. + +**Usage** + +```powerquery-m +Table.ReplaceValue( + Table.FromRecords({ + [Name = "Cindy", Country = "US"], + [Name = "Bob", Country = "CA"] + }), + each [Country] = "US", + "?", + (currentValue, isUS, replacementValue) => + if isUS then + Text.Repeat(replacementValue, Text.Length(currentValue)) + else + currentValue, + {"Name", "Country"} ) ``` @@ -66,7 +128,7 @@ Table.ReplaceValue( ```powerquery-m Table.FromRecords({ - [a = 1, b = "hello"], - [a = 3, b = "world"] + [Name = "?????", Country = "??"], + [Name = "Bob", Country = "CA"] }) ``` diff --git a/query-languages/m/time-endofhour.md b/query-languages/m/time-endofhour.md index 5dde3c958..924a0d74a 100644 --- a/query-languages/m/time-endofhour.md +++ b/query-languages/m/time-endofhour.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Time.EndOfHour" title: "Time.EndOfHour" -ms.date: 3/14/2022 +ms.date: 11/14/2022 --- # Time.EndOfHour @@ -13,7 +13,7 @@ Time.EndOfHour(dateTime as any) as any ## About -Returns a `time`, `datetime`, or `datetimezone` value representing the end of the hour in `dateTime`, including fractional seconds. Time zone information is preserved. +Returns the end of the hour represented by `dateTime`, including fractional seconds. Time zone information is preserved. * `dateTime`: A `time`, `datetime`, or `datetimezone` value from which the end of the hour is calculated. diff --git a/query-languages/m/time-functions.md b/query-languages/m/time-functions.md index d4c17615a..3094c8e7f 100644 --- a/query-languages/m/time-functions.md +++ b/query-languages/m/time-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Time functions" title: "Time functions" -ms.date: 5/16/2022 +ms.date: 11/14/2022 --- # Time functions @@ -9,13 +9,13 @@ These functions create and manipulate time values. |Name|Description| |------------|---------------| -|[Time.EndOfHour](time-endofhour.md)|Returns a DateTime value from the end of the hour.| +|[Time.EndOfHour](time-endofhour.md)|Returns the end of the hour.| |[Time.From](time-from.md)|Returns a time value from a value.| |[Time.FromText](time-fromtext.md)|Creates a Time from local, universal, and custom Time formats.| |[Time.Hour](time-hour.md)|Returns an hour value from a DateTime value.| |[Time.Minute](time-minute.md)|Returns a minute value from a DateTime value.| |[Time.Second](time-second.md)|Returns a second value from a DateTime value| -|[Time.StartOfHour](time-startofhour.md)|Returns the first value of the hour from a time value.| +|[Time.StartOfHour](time-startofhour.md)|Returns the start of the hour.| |[Time.ToRecord](time-torecord.md)|Returns a record containing parts of a Date value.| |[Time.ToText](time-totext.md)|Returns a text value from a Time value.| |[#time](sharptime.md)|Creates a time value from hour, minute, and second.| diff --git a/query-languages/m/time-startofhour.md b/query-languages/m/time-startofhour.md index e39582d43..ce84328e9 100644 --- a/query-languages/m/time-startofhour.md +++ b/query-languages/m/time-startofhour.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Time.StartOfHour" title: "Time.StartOfHour" -ms.date: 3/14/2022 +ms.date: 11/14/2022 --- # Time.StartOfHour @@ -13,11 +13,11 @@ Time.StartOfHour(dateTime as any) as any ## About -Returns the first value of the hour given a `time`, `datetime` or `datetimezone` type. +Returns the start of the hour represented by `dateTime`. `dateTime` must be a `time`, `datetime` or `datetimezone` value. ## Example 1 -Find the start of the hour for October 10th, 2011, 8:10:32AM (`#datetime(2011, 10, 10, 8, 10, 32)`). +Find the start of the hour for October 10th, 2011, 8:10:32AM. **Usage** diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 66d7e2238..25025e110 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -1392,6 +1392,8 @@ items: href: excel-shapetable.md - name: Graph.Nodes href: graph-nodes.md + - name: Progress.DataSourceProgress + href: progress-datasourceprogress.md - name: SqlExpression.SchemaFrom href: sqlexpression-schemafrom.md - name: SqlExpression.ToExpression diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index c5c85c9b6..24a4f537d 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value functions" title: "Value functions" -ms.date: 10/18/2022 +ms.date: 11/14/2022 --- # Value functions @@ -42,6 +42,7 @@ These functions evaluate and perform operations on values. |[DirectQueryCapabilities.From](directquerycapabilities-from.md) | This function is intended for internal use only.| |[Embedded.Value](embedded-value.md) | Accesses a value by name in an embedded mashup.| |[Excel.ShapeTable](excel-shapetable.md) | This function is intended for internal use only.| +|[Progress.DataSourceProgress](progress-datasourceprogress.md) | This function is intended for internal use only. | |[Value.Firewall](value-firewall.md) | This function is intended for internal use only.| |[Value.ViewError](value-viewerror.md) | This function is intended for internal use only.| |[Value.ViewFunction](value-viewfunction.md) | This function is intended for internal use only.| From 0ce9601881a3e9d779921375b17563e72d155579 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 22 Nov 2022 10:38:31 -0500 Subject: [PATCH 124/934] Clarifying type equality comparisons --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 579641a5a..45dd67fe3 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -353,7 +353,7 @@ Value.Type( Value.ReplaceType( {1}, type {number} ) ## Type equivalence and compatibility -Type equivalence is not defined in M. Any two type values that are compared for equality may or may not return `true`. However, the relation between those two types (whether `true` or `false`) will always be the same. +Type equivalence is not fully defined in M. It is acceptable for an M implementation to return `false` when type values are compared for equality. If `true` is returned, at minimum, the following criteria must be met: the two values must be based on the same nullable primitive type and the response returned must be consistent if the same values are repeatedly compared (that is, multiple recurrences of the same comparison must all either evaluate to `true` or to `false`). Compatibility between a given type and a nullable primitive type can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a nullable primitive type value as its second argument: From b0d1d7b12d295dd2f2784143ceb35e976c36e46e Mon Sep 17 00:00:00 2001 From: veronicawuuuuu5 <58800682+veronicawuuuuu5@users.noreply.github.com> Date: Tue, 22 Nov 2022 12:38:14 -0500 Subject: [PATCH 125/934] Updated first item in the remarks The original description for "When startValue is less than endValue , an empty table is returned." mixed up the startvalue and endvalue, should be switched. --- query-languages/dax/generateseries-function.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/generateseries-function.md b/query-languages/dax/generateseries-function.md index 4e0148fb7..08607fbe2 100644 --- a/query-languages/dax/generateseries-function.md +++ b/query-languages/dax/generateseries-function.md @@ -35,7 +35,7 @@ A single column table containing the values of an arithmetic series. The name of ## Remarks -- When startValue is less than endValue, an empty table is returned. +- When endValue is less than startValue, an empty table is returned. - incrementValue must be a positive value. From e15c01b7f18e2018b49850ca173e740ee0467de2 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 29 Nov 2022 13:41:21 -0800 Subject: [PATCH 126/934] Revisions. --- query-languages/dax/index-function-dax.md | 45 +++++++++---- query-languages/dax/offset-function-dax.md | 59 ++++++++-------- query-languages/dax/orderby-function-dax.md | 6 +- .../dax/partitionby-function-dax.md | 4 +- query-languages/dax/window-function-dax.md | 67 +++++++++++++++++-- 5 files changed, 130 insertions(+), 51 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index d50f7253b..40a4a614c 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: INDEX" title: "INDEX function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 10/17/2022 +ms.date: 11/15/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -12,32 +12,53 @@ recommendations: false --- -# INDEX +# INDEX1` -Returns a row at an absolute position (specified by the position parameter) within the specified partition sorted by the specified order or on the specified axis. +Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis. If the current partition can't be deduced to a single partition, multiple rows may be returned. ## Syntax ```dax -INDEX([, < relation>, < orderBy>, < partitionBy>]) +INDEX([, ][, ][, ][, < partitionBy>]) ``` ### Parameters |Term|Definition| |--------|--------------| -|position|The absolute position (1-based) from which to obtain the data.| -|relation|A table expression from which the output will be returned. If omitted, \ must be explicitly specified. -|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \. -|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|position|The absolute position (1-based) from which to obtain the data:
- \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return empty. It can be any DAX expression that returns a scalar value.| +|relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ and \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. +|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | ## Return value -A row at an absolute position (specified by the position parameter) within the specified partition sorted by the specified order or on the specified axis. +A row at an absolute position. ## Remarks -This function is similar to OFFSET function. +Each \ column must have a corresponding outer value to help define the “current partition” on which to operate, with the following behavior: + +- If there is exactly one corresponding outer column, its value is used. +- If there is no corresponding outer column: + - INDEX will first determine all \ columns that have no corresponding outer column. + - For every combination of existing values for these columns in INDEX’s parent context, INDEX is evaluated and a row is returned. + - INDEX’s final output is a union of these rows. +- If there is more than one corresponding outer column, an error is returned. + +If the non-volatile columns specified within \ and \ cannot uniquely identify every row in \: + +- INDEX will try to find the least number of additional columns required to uniquely identify every row. +- If such columns can be found, INDEX will automatically append these new columns to , and each partition is sorted using this new set of OrderBy columns. +- If such columns cannot be found, an error is returned. + +An empty table is returned if: + +- The corresponding outer value of a PartitionBy column does not exist within \. +- The \ value refers to a position that does not exist within the partition. + +If INDEX is used within a calculated column defined on the same table as \ and \ is omitted, an error is returned. ## Example 1 @@ -63,8 +84,8 @@ SUMMARIZECOLUMNS ( FactInternetSales[ProductKey], DimDate[MonthNumberOfYear], FILTER ( - VALUES(FactInternetSales[ProductKey]), - [ProductKey] < 222 + VALUES(FactInternetSales[ProductKey]), + [ProductKey] < 222 ), "CurrentSales", SUM(FactInternetSales[SalesAmount]), "LastMonthSales", diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 09ec4721f..6792a2696 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: OFFSET" title: "OFFSET function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 10/17/2022 +ms.date: 11/15/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -14,12 +14,12 @@ recommendations: false # OFFSET -Returns a single row that is positioned either before or after the current row by a given offset, within the same table. +Returns a single row that is positioned either before or after the *current row* by a given offset, within the same table. If the current row cannot be deduced to a single row, multiple rows may be returned. ## Syntax ```dax -OFFSET ( [, ][, ][, ] ) +OFFSET ( [, ][, ][, ][, ] ) ``` ### Parameters @@ -27,40 +27,38 @@ OFFSET ( [, ][, ][, ] ) |Term|Definition| |--------|--------------| |delta|The number of rows before (negative value) or after (positive value) the current row from which to obtain the data. It can be any DAX expression that returns a scalar value. | -|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \. -|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | ## Return value -A single row from \. +One or more rows from \. ## Remarks -- \ columns must have a corresponding outer column to help define the “current row” on which to operate. - - If there is no corresponding outer column, if all \ columns with no corresponding outer column are from the same table, one row is returned for every possible combination of existing values of these columns. Otherwise, an error is returned. - - If there is more than one corresponding outer column, an error is returned. +Each \ and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: -- \ columns must have a corresponding outer column to help define the “current row” on which to operate. If there isn't exactly one corresponding outer column, an error is returned. +- If there is exactly one corresponding outer column, its value is used. +- If there is no corresponding outer column, then: + - OFFSET will first determine all \ and \ columns that have no corresponding outer column. + - For every combination of existing values for these columns in OFFSET’s parent context, OFFSET is evaluated and a row is returned. + - OFFSET’s final output is a union of these rows. +- If there is more than one corresponding outer column, an error is returned. -- If the data in an \ or \ column is a strict subset of its corresponding outer column, an error is returned. +If the non-volatile columns specified within \ and \ can't uniquely identify every row in \, then: -- OFFSET can be non-deterministic if there are columns in \ that are neither \ nor \ columns. For example, given the following table: +- OFFSET will try to find the least number of additional columns required to uniquely identify every row. +- If such columns can be found, OFFSET will automatically append these new columns to \, and each partition is sorted using this new set of OrderBy columns. +- If such columns cannot be found, an error is returned. - |Product |Country |Sales | - |---------|---------|---------| - |Bike | Canada | 1000 | - |Bike | Canada | 200 | - |Bike | USA | 5000 | - |Bike | USA | 300 | +An empty table is returned if: - The following DAX query: - - ```dax - OFFSET(-1, Table, ORDERBY([Country]), PARTITIONBY([Product]) - ``` - - For the last two rows, either of the first two rows may be returned as the “previous” row. +- The corresponding outer value of an OrderBy or PartitionBy column does not exist within \. +- The \ value causes a shift to a row that does not exist within the partition. + +If OFFSET is used within a calculated column defined on the same table as \, and \ is omitted, an error is returned. ## Example 1 @@ -71,12 +69,12 @@ DEFINE VAR vRelation = SUMMARIZECOLUMNS ( DimProductCategory[EnglishProductCategoryName], DimDate[CalendarYear], - "Current Sales", SUM(FactInternetSales[SalesAmount]) - ) + "CurrentYearSales", SUM(FactInternetSales[SalesAmount]) + ) EVALUATE ADDCOLUMNS ( vRelation, - "LY Sales", + "PreviousYearSales", SELECTCOLUMNS( OFFSET ( -1, @@ -87,6 +85,7 @@ ADDCOLUMNS ( [Current Sales] ) ) + ``` Returns a table that summarizes the total sales for each product category and calendar year, as well as the total sales for that category in the previous year. @@ -107,7 +106,7 @@ SUMMARIZECOLUMNS ( ) ``` -Uses OFFSET() in a measure to return a table that summarizes the total sales for each calendar year and the total sales for the previous year. +Uses OFFSET() in a measure to return a table that summarizes the total sales for each calendar year and the total sales for the previous year. ## See also diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index fe231d99c..4911869c2 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -12,9 +12,9 @@ recommendations: false --- -# OFFSET +# ORDERBY -Defines the columns that determine the sort order within each of a Window function’s partitions. +Defines the columns that determine the sort order within each of a WINDOW function’s partitions. ## Syntax @@ -35,7 +35,7 @@ This function does not return a value. ## Remarks -This function can only be used within Window functions. +This function can only be used within a [WINDOW](window-function-dax.md) function expression. ## Example diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index b1df97117..13480b181 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -14,7 +14,7 @@ recommendations: false # PARTITIONBY -Defines the columns that will be used to partition a Window function’s \. +Defines the columns that are used to partition a WINDOW function’s \ paramter. ## Syntax @@ -34,7 +34,7 @@ This function does not return a value. ## Remarks -This function can only be used within Window functions. +This function can only be used within a [WINDOW](window-function-dax.md) function expression. ## Example diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 5d8138cbd..9af9c95ad 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: WINDOW" title: "WINDOW function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 10/17/2022 +ms.date: 11/14/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -14,31 +14,90 @@ recommendations: false # WINDOW +Returns multiple rows which are positioned within the given interval. + ## Syntax ```dax - +WINDOW ( from[, from_type], to[, to_type][, ][, ][, ][, ] ) ``` ### Parameters |Term|Definition| |--------|--------------| -||| -||| +|from|Indicates where the window starts. It can be any DAX expression that returns a scalar value.
The behavior depends on the \ parameter:
- If \ is REL, the number of rows to go back (negative value) or forward (positive value) from the current row to get the first row in the window.
- If \ is ABS, and \ is positive, then it’s the position of the start of the window from beginning of the partition. Indexing is 1-based. For example, 1 means window starts from the beginning of the partition. If \ is negative, then it’s the position of the start of the window from the end of the partition. -1 means the last row in the partition. | +|from_type |Modifies behavior of the \ parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| +|to|Same as \, but indicates the end of the window. The last row is included in the window.| +|to_type|Same as \, but modifies the behavior of \.| +|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| ## Return value +All rows from the window. + ## Remarks +Each \ and \ column must have a corresponding outer value to help define the current row on which to operate. If \ and \ both have value ABS, then the following applies only to the \ columns: + +- If there is exactly one corresponding outer column, its value is used. +- If there is no corresponding outer column: + - WINDOW will first determine all \ and \ columns that have no corresponding outer column. + - For every combination of existing values for these columns in WINDOW’s parent context, WINDOW is evaluated, and the corresponding rows is returned. + - WINDOW final output is a union of these rows. +- If there is more than one corresponding outer column, an error is returned. + +If the non-volatile columns specified within \ and \ cannot uniquely identify every row in \, then: + +- WINDOW will try to find the least number of additional columns required to uniquely identify every row. +- If such columns can be found, WINDOW will automatically append these new columns to \, and each partition is sorted using this new set of orderBy columns. +- If such columns cannot be found, an error is returned. + +An empty table is returned if: + +- The corresponding outer value of an \ or \ column does not exist within \. +- The whole window is outside the partition, or the beginning of the window is after its ending. + +If WINDOW is used within a calculated column defined on the same table as \, and \ is omitted, an error is returned. + +If the beginning of the window turns out to be negative, then it’s set to the first row. Similarly, if the end of the window is greater than the size of the partition, then it’s set to the last row. + ## Example The following DAX query: ```dax +DEFINE + TABLE t = + SUMMARIZECOLUMNS( + FactInternetSales[SalesTerritoryKey], + FactInternetSales[OrderDate], + FactInternetSales, + "sales", + sum(FactInternetSales[SalesAmount]) + ) + + evaluate + SELECTCOLUMNS( + t, + t[SalesTerritoryKey], + t[OrderDate], + t[sales], + "sum of sales from beginning", + CALCULATE ( + sum(t[sales]), + window(1, abs, 0, rel, ALL(t), orderBy([OrderDate]), PARTITIONBY([SalesTerritoryKey])) + ) + ) + orderBy [SalesTerritoryKey], [OrderDate] ``` +Returns a table that for each date and location has total amount of sales for that location from beginning of history up to the current date. + ## See also [INDEX](index-function-dax.md) From 0b1aae59dcc7847050233fd5ba24847684097453 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 29 Nov 2022 13:59:33 -0800 Subject: [PATCH 127/934] Revisions --- query-languages/dax/filter-functions-dax.md | 7 ++++++- query-languages/dax/index-function-dax.md | 4 ++-- query-languages/dax/new-dax-functions.md | 5 +++++ query-languages/dax/orderby-function-dax.md | 2 +- query-languages/dax/partitionby-function-dax.md | 4 ++-- 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 77541bf70..1a47a9805 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: Filter functions" title: "Filter functions (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 08/17/2020 +ms.date: 11/29/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -28,7 +28,12 @@ The filter and value functions in DAX are some of the most complex and powerful, |[EARLIER](earlier-function-dax.md) | Returns the current value of the specified column in an outer evaluation pass of the mentioned column. | |[EARLIEST](earliest-function-dax.md) | Returns the current value of the specified column in an outer evaluation pass of the specified column. | |[FILTER](filter-function-dax.md) | Returns a table that represents a subset of another table or expression. | +|[INDEX](index-function-dax.md)|Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | +|[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* by a given offset, within the same table. | +|[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| +|[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a WINDOW function’s \ parameter.| |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[SELECTEDVALUE](selectedvalue-function.md) | Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. | +|[WINDOW](window-function-dax.md)| Returns multiple rows which are positioned within the given interval. | diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 40a4a614c..a305c13c6 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: INDEX" title: "INDEX function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 11/15/2022 +ms.date: 11/29/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -12,7 +12,7 @@ recommendations: false --- -# INDEX1` +# INDEX Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis. If the current partition can't be deduced to a single partition, multiple rows may be returned. diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 4d7cebd5e..74354c7fc 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -23,6 +23,11 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| +|[INDEX](index-function-dax.md)| December, 2022 | Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| +|[OFFSET](offset-function-dax.md)| December, 2022 | Returns a single row that is positioned either before or after the *current row* by a given offset, within the same table. | +|[ORDERBY](orderby-function-dax.md)| December, 2022 | Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| +|[PARTITIONBY](partitionby-function-dax.md)| December, 2022 | Defines the columns that are used to partition a WINDOW function’s \ parameter.| +|[WINDOW](window-function-dax.md)| December, 2022 | Returns multiple rows which are positioned within the given interval. | |[EVALUATEANDLOG](evaluateandlog-function-dax.md)| November, 2022 | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. | |[TOCSV](tocsv-function-dax.md) | November, 2022 | Returns a table as a string in CSV format. This function applies to Power BI Desktop only. | |[TOJSON](tojson-function-dax.md) | November, 2022 | Returns a table as a string in JSON format. This function applies to Power BI Desktop only. | diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index 4911869c2..984620547 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: ORDERBY" title: "ORDERBY function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 10/17/2022 +ms.date: 11/29/2022 ms.reviewer: owend ms.topic: reference author: minewiskan diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index 13480b181..fb484e59a 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: PARTITIONBY" title: "OFFSET function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 10/17/2022 +ms.date: 11/29/2022 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -14,7 +14,7 @@ recommendations: false # PARTITIONBY -Defines the columns that are used to partition a WINDOW function’s \ paramter. +Defines the columns that are used to partition a WINDOW function’s \ parameter. ## Syntax From 0e83a45452bc128366da6140e3c421e458e7f5e4 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 29 Nov 2022 14:05:38 -0800 Subject: [PATCH 128/934] Revisions --- query-languages/dax/index-function-dax.md | 2 +- query-languages/dax/partitionby-function-dax.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index a305c13c6..e2b2aaea0 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -50,7 +50,7 @@ Each \ column must have a corresponding outer value to help define If the non-volatile columns specified within \ and \ cannot uniquely identify every row in \: - INDEX will try to find the least number of additional columns required to uniquely identify every row. -- If such columns can be found, INDEX will automatically append these new columns to , and each partition is sorted using this new set of OrderBy columns. +- If such columns can be found, INDEX will automatically append these new columns to \, and each partition is sorted using this new set of OrderBy columns. - If such columns cannot be found, an error is returned. An empty table is returned if: diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index fb484e59a..5f43a21b5 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PARTITIONBY" -title: "OFFSET function (DAX) | Microsoft Docs" +title: "PARTITIONBY function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax ms.date: 11/29/2022 From 6cf28b8e060471826faff9b1f1de51493faf08b5 Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Tue, 29 Nov 2022 14:09:26 -0800 Subject: [PATCH 129/934] Update new-dax-functions.md --- query-languages/dax/new-dax-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 4d7cebd5e..b2dfa4131 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -23,7 +23,7 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| -|[EVALUATEANDLOG](evaluateandlog-function-dax.md)| November, 2022 | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. | +|[EVALUATEANDLOG](evaluateandlog-function-dax.md)| November, 2022 | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. This function applies to Power BI Desktop only. | |[TOCSV](tocsv-function-dax.md) | November, 2022 | Returns a table as a string in CSV format. This function applies to Power BI Desktop only. | |[TOJSON](tojson-function-dax.md) | November, 2022 | Returns a table as a string in JSON format. This function applies to Power BI Desktop only. | |[NETWORKDAYS](networkdays-dax.md)| July, 2022 | Returns the number of whole workdays between two dates. | From 52dc33d977fc76c2a34cbcc23782dbd7e73b5e22 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 30 Nov 2022 09:46:32 -0500 Subject: [PATCH 130/934] Another wording idea --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 45dd67fe3..8ed3ee5c3 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -353,7 +353,7 @@ Value.Type( Value.ReplaceType( {1}, type {number} ) ## Type equivalence and compatibility -Type equivalence is not fully defined in M. It is acceptable for an M implementation to return `false` when type values are compared for equality. If `true` is returned, at minimum, the following criteria must be met: the two values must be based on the same nullable primitive type and the response returned must be consistent if the same values are repeatedly compared (that is, multiple recurrences of the same comparison must all either evaluate to `true` or to `false`). +Type equivalence is not defined in M. An M implementation may optionally choose to use its own rules to perform equality comparisons between type values, in which case `true` or `false` should be returned, as the implementation deems appropriate. Otherwise, comparing two type values for equality should evaluate to `false`. In either case, the response returned must be consistent if the same two values are repeatedly compared. Compatibility between a given type and a nullable primitive type can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a nullable primitive type value as its second argument: From e14bba8a7e4f4ed731b76b3d8a017c03301f873b Mon Sep 17 00:00:00 2001 From: "microsoft-github-policy-service[bot]" <77245923+microsoft-github-policy-service[bot]@users.noreply.github.com> Date: Thu, 1 Dec 2022 21:33:07 +0000 Subject: [PATCH 131/934] Microsoft mandatory file --- SECURITY.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..e138ec5d6 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,41 @@ + + +## Security + +Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). + +If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). + +If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). + +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + + * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) + * Full paths of source file(s) related to the manifestation of the issue + * The location of the affected source code (tag/branch/commit or direct URL) + * Any special configuration required to reproduce the issue + * Step-by-step instructions to reproduce the issue + * Proof-of-concept or exploit code (if possible) + * Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. + +## Preferred Languages + +We prefer all communications to be in English. + +## Policy + +Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). + + From 134fd37c003f81edc3c7b7c04b3ef164174f012d Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 1 Dec 2022 15:52:56 -0800 Subject: [PATCH 132/934] Revisions from Jeffrey's review. --- query-languages/dax/filter-functions-dax.md | 2 +- query-languages/dax/index-function-dax.md | 89 +------------------ query-languages/dax/new-dax-functions.md | 12 +-- query-languages/dax/offset-function-dax.md | 2 +- query-languages/dax/orderby-function-dax.md | 6 +- .../dax/partitionby-function-dax.md | 6 +- query-languages/dax/window-function-dax.md | 42 ++++----- 7 files changed, 27 insertions(+), 132 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 1a47a9805..f356f8efe 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -31,7 +31,7 @@ The filter and value functions in DAX are some of the most complex and powerful, |[INDEX](index-function-dax.md)|Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | -|[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* by a given offset, within the same table. | +|[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| |[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a WINDOW function’s \ parameter.| |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index e2b2aaea0..8e633db61 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -14,19 +14,19 @@ recommendations: false # INDEX -Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis. If the current partition can't be deduced to a single partition, multiple rows may be returned. +Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order. If the current partition can't be deduced to a single partition, multiple rows may be returned. ## Syntax ```dax -INDEX([, ][, ][, ][, < partitionBy>]) +INDEX([, ][, ][, ][, ]) ``` ### Parameters |Term|Definition| |--------|--------------| -|position|The absolute position (1-based) from which to obtain the data:
- \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return empty. It can be any DAX expression that returns a scalar value.| +|position|The absolute position (1-based) from which to obtain the data:
- \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| |relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ and \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| @@ -126,89 +126,6 @@ Returns the following table: |217 | 11 | 6683.09 | 7767.78 | |217 | 12 | 7767.78 | 7767.78 | -## Example 3 - -The following DAX query: - -```dax -DEFINE -MEASURE DimProduct[TotalSales] = SUM(FactInternetSales[SalesAmount]) -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimProduct[ProductKey], - FactInternetSales[OrderDate], - DimDate[DayNumberOfWeek], - FILTER(VALUES(DimProduct[ProductKey]), [ProductKey] < 350), - FILTER(VALUES(FactInternetSales[OrderDate]), [OrderDate] < dt"2011-1-15"), - "Total Sales", DimProduct[TotalSales] - ) -EVALUATE -ADDCOLUMNS ( - vRelation, - "Dynamic Position Sales", - SELECTCOLUMNS(INDEX([DayNumberOfWeek], vRelation, ORDERBY([ProductKey], ASC, [OrderDate]), PARTITIONBY([Color])), "Dynamic Position Sales", [TotalSales]) -) -ORDER BY [Color], [ProductKey] ASC, [OrderDate] -``` - -Returns the following table: - -|DimProduct[Color]|DimProduct[ProductKey]|FactInternetSales[OrderDate]|DimDate[DayNumberOfWeek]|[Total Sales]|[Dynamic Position Sales]| -|---------|---------|---------|---------|---------|---------| -|Black|332|1/4/2011 12:00:00 AM|1|699.0982|699.0982| -|Black|332|1/5/2011 12:00:00 AM|2|699.0982|699.0982| -|Black|332|1/12/2011 12:00:00 AM|2|699.0982|699.0982| -|Black|336|12/29/2010 12:00:00 AM|2|699.0982|699.0982| -|Black|336|1/2/2011 12:00:00 AM|6|699.0982 | | -|Red|310|12/29/2010 12:00:00 AM|2|3578.27|3578.27| -|Red|310|12/30/2010 12:00:00 AM|3|3578.27|3578.27| -|Red|310|1/2/2011 12:00:00 AM|6|3578.27|3578.27| -|Red|310|1/3/2011 12:00:00 AM|7|3578.27|3578.27| -|Red|310|1/7/2011 12:00:00 AM|4|3578.27|3578.27| -|Red|310|1/8/2011 12:00:00 AM|5|3578.27|3578.27| -|Red|310|1/9/2011 12:00:00 AM|6|3578.27|3578.27| -|Red|310|1/11/2011 12:00:00 AM|1|3578.27|3578.27| -|Red|310|1/13/2011 12:00:00 AM|3|10734.81|3578.27| -|Red|310|1/14/2011 12:00:00 AM|4|3578.27|3578.27| -|Red|311|12/30/2010 12:00:00 AM|3|3578.27|3578.27| -|Red|311|1/1/2011 12:00:00 AM|5|3578.27|3578.27| -|Red|311|1/2/2011 12:00:00 AM|6|7156.54|3578.27| -|Red|311|1/3/2011 12:00:00 AM|7|7156.54|3578.27| -|Red|311|1/4/2011 12:00:00 AM|1|3578.27|3578.27| -|Red|311|1/5/2011 12:00:00 AM|2|7156.54|3578.27| -|Red|311|1/8/2011 12:00:00 AM|5|3578.27|3578.27| -|Red|311|1/10/2011 12:00:00 AM|7|3578.27|3578.27| -|Red|311|1/11/2011 12:00:00 AM|1|7156.54|3578.27| -|Red|311|1/12/2011 12:00:00 AM|2|3578.27|3578.27| -|Red|312|12/31/2010 12:00:00 AM|4|7156.54|3578.27| -|Red|312|1/3/2011 12:00:00 AM|7|3578.27|3578.27| -|Red|312|1/4/2011 12:00:00 AM|1|3578.27|3578.27| -|Red|312|1/6/2011 12:00:00 AM|3|3578.27|3578.27| -|Red|312|1/7/2011 12:00:00 AM|4|3578.27|3578.27| -|Red|312|1/8/2011 12:00:00 AM|5|7156.54|3578.27| -|Red|312|1/10/2011 12:00:00 AM|7|3578.27|3578.27| -|Red|312|1/12/2011 12:00:00 AM|2|3578.27|3578.27| -|Red|313|12/31/2010 12:00:00 AM|4|3578.27|3578.27| -|Red|313|1/6/2011 12:00:00 AM|3|3578.27|3578.27| -|Red|313|1/9/2011 12:00:00 AM|6|3578.27|3578.27| -|Red|313|1/11/2011 12:00:00 AM|1|7156.54|3578.27| -|Red|313|1/14/2011 12:00:00 AM|4|3578.27|3578.27| -|Red|314|12/31/2010 12:00:00 AM|4|3578.27|3578.27| -|Red|314|1/1/2011 12:00:00 AM|5|3578.27|3578.27| -|Red|314|1/2/2011 12:00:00 AM|6|3578.27|3578.27| -|Red|314|1/6/2011 12:00:00 AM|3|3578.27|3578.27| -|Red|314|1/9/2011 12:00:00 AM|6|3578.27|3578.27| -|Red|314|1/11/2011 12:00:00 AM|1|7156.54|3578.27| -|Red|314|1/13/2011 12:00:00 AM|3|3578.27|3578.27| -|Red|314|1/14/2011 12:00:00 AM|4|3578.27|3578.27| -|Red|330|12/31/2010 12:00:00 AM|4|699.0982|3578.27| -|Silver|344|12/30/2010 12:00:00 AM|3|3399.99|6799.98| -|Silver|346|12/29/2010 12:00:00 AM|2|10199.97|10199.97| -|Silver|346|1/6/2011 12:00:00 AM|3|6799.98|6799.98| -|Silver|346|1/7/2011 12:00:00 AM|4|3399.99|3399.99| -|Silver|346|1/14/2011 12:00:00 AM|4|3399.99|3399.99| -|Silver|347|1/9/2011 12:00:00 AM|6|3399.99|3399.99| - ## See also [OFFSET](offset-function-dax.md) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 74354c7fc..65f5b5c1c 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -24,7 +24,7 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| |[INDEX](index-function-dax.md)| December, 2022 | Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| -|[OFFSET](offset-function-dax.md)| December, 2022 | Returns a single row that is positioned either before or after the *current row* by a given offset, within the same table. | +|[OFFSET](offset-function-dax.md)| December, 2022 | Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset.| |[ORDERBY](orderby-function-dax.md)| December, 2022 | Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| |[PARTITIONBY](partitionby-function-dax.md)| December, 2022 | Defines the columns that are used to partition a WINDOW function’s \ parameter.| |[WINDOW](window-function-dax.md)| December, 2022 | Returns multiple rows which are positioned within the given interval. | @@ -32,13 +32,3 @@ While functions and functionality are being updated all the time, only those upd |[TOCSV](tocsv-function-dax.md) | November, 2022 | Returns a table as a string in CSV format. This function applies to Power BI Desktop only. | |[TOJSON](tojson-function-dax.md) | November, 2022 | Returns a table as a string in JSON format. This function applies to Power BI Desktop only. | |[NETWORKDAYS](networkdays-dax.md)| July, 2022 | Returns the number of whole workdays between two dates. | - - -## Updated functions - -|Function | Month |Description| -|---------|---------|---------| -|[CALCULATE](calculate-function-dax.md)| September, 2021 |Support for aggregation functions in boolean filter expressions.| -|[CALCULATETABLE](calculatetable-function-dax.md)| September, 2021 |Support for aggregation functions in boolean filter expressions.| -|[FORMAT](format-function-dax.md)| September, 2021 |Additional locale_name parameter that specifies the name of a locale to be used by format_string.| -|[XIRR](xirr-function-dax.md)| September, 2021 |Additional alternateResult parameter that specifies a result to be returned instead of an error if XIRR cannot determine a solution.| diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 6792a2696..cd4bb829b 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -14,7 +14,7 @@ recommendations: false # OFFSET -Returns a single row that is positioned either before or after the *current row* by a given offset, within the same table. If the current row cannot be deduced to a single row, multiple rows may be returned. +Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. If the current row cannot be deduced to a single row, multiple rows may be returned. ## Syntax diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index 984620547..a6facee21 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -14,7 +14,7 @@ recommendations: false # ORDERBY -Defines the columns that determine the sort order within each of a WINDOW function’s partitions. +Defines the columns that determine the sort order within each of a window function’s partitions. ## Syntax @@ -26,7 +26,7 @@ ORDERBY ( [, ][, orderBy_columnName [, ]] [, |Term|Definition| |--------|--------------| -|orderBy_columnName|The name of an existing column to be used to sort the data within each of a window function’s partitions.| +|orderBy_columnName|The name of an existing column to be used to sort the data within each of a WINDOW function’s partitions.| |order|(Optional) A value that specifies how to sort \ values, ascending or descending:
Value: **DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
Value: **ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.| ## Return value @@ -35,7 +35,7 @@ This function does not return a value. ## Remarks -This function can only be used within a [WINDOW](window-function-dax.md) function expression. +This function can only be used within a window function expression. ## Example diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index 5f43a21b5..aa6df9d26 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -14,7 +14,7 @@ recommendations: false # PARTITIONBY -Defines the columns that are used to partition a WINDOW function’s \ parameter. +Defines the columns that are used to partition a window function’s \ parameter. ## Syntax @@ -26,7 +26,7 @@ PARTITIONBY ( [, partitionBy_columnName [, …] ] ) |Term|Definition| |--------|--------------| -|partitionBy_columnName|The name of an existing column to be used to partition the window function’s \. | +|partitionBy_columnName|The name of an existing column to be used to partition the WINDOW function’s \. | ## Return value @@ -34,7 +34,7 @@ This function does not return a value. ## Remarks -This function can only be used within a [WINDOW](window-function-dax.md) function expression. +This function can only be used within a window function expression. ## Example diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 9af9c95ad..88902d6e4 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -50,7 +50,7 @@ Each \ and \ column must have a corresponding outer value - WINDOW final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If the non-volatile columns specified within \ and \ cannot uniquely identify every row in \, then: +If the columns specified within \ and \ cannot uniquely identify every row in \, then: - WINDOW will try to find the least number of additional columns required to uniquely identify every row. - If such columns can be found, WINDOW will automatically append these new columns to \, and each partition is sorted using this new set of orderBy columns. @@ -63,40 +63,28 @@ An empty table is returned if: If WINDOW is used within a calculated column defined on the same table as \, and \ is omitted, an error is returned. -If the beginning of the window turns out to be negative, then it’s set to the first row. Similarly, if the end of the window is greater than the size of the partition, then it’s set to the last row. +If the beginning of the window turns out be before the first row, then it’s set to the first row. Similarly, if the end of the window is after the last row of the partition, then it's set to the last row. ## Example -The following DAX query: +The following measure: ```dax -DEFINE - TABLE t = - SUMMARIZECOLUMNS( - FactInternetSales[SalesTerritoryKey], - FactInternetSales[OrderDate], - FactInternetSales, - "sales", - sum(FactInternetSales[SalesAmount]) - ) - - evaluate - SELECTCOLUMNS( - t, - t[SalesTerritoryKey], - t[OrderDate], - t[sales], - "sum of sales from beginning", - CALCULATE ( - sum(t[sales]), - window(1, abs, 0, rel, ALL(t), orderBy([OrderDate]), PARTITIONBY([SalesTerritoryKey])) - ) - ) - orderBy [SalesTerritoryKey], [OrderDate] +3-day Average Price = +AVERAGEX( + WINDOW( + -2,REL,0,REL, + SUMMARIZE(ALLSELECTED('Sales'), 'Date'[Date], 'Product'[Product]), + ORDERBY('Date'[Date]), + KEEP, + PARTITIONBY('Product'[Product]) + ), + CALCULATE(AVERAGE(Sales[Unit Price])) +) ``` -Returns a table that for each date and location has total amount of sales for that location from beginning of history up to the current date. +Returns the 3-day average of unit prices for each product. Note the 3-day window consists of three days in which the product has sales, not necessarily three consecutive calendar days. ## See also From 9e1181783146d73a9ec330c9911e7a1000bf2d11 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 1 Dec 2022 17:21:59 -0800 Subject: [PATCH 133/934] Fix formatting --- query-languages/dax/orderby-function-dax.md | 2 +- query-languages/dax/partitionby-function-dax.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index a6facee21..d38dece97 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -26,7 +26,7 @@ ORDERBY ( [, ][, orderBy_columnName [, ]] [, |Term|Definition| |--------|--------------| -|orderBy_columnName|The name of an existing column to be used to sort the data within each of a WINDOW function’s partitions.| +|orderBy_columnName|The name of an existing column to be used to sort the data within each of a window function’s partitions.| |order|(Optional) A value that specifies how to sort \ values, ascending or descending:
Value: **DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
Value: **ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.| ## Return value diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index aa6df9d26..13a827cab 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -26,7 +26,7 @@ PARTITIONBY ( [, partitionBy_columnName [, …] ] ) |Term|Definition| |--------|--------------| -|partitionBy_columnName|The name of an existing column to be used to partition the WINDOW function’s \. | +|partitionBy_columnName|The name of an existing column to be used to partition the window function’s \. | ## Return value From 5a4336184d5e86af871a61061efe1a80a3711f12 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 2 Dec 2022 07:31:46 -0800 Subject: [PATCH 134/934] Fixed broken link in Binary.FromText --- query-languages/m/binary-fromtext.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/binary-fromtext.md b/query-languages/m/binary-fromtext.md index 69e6398b1..70ea48ea4 100644 --- a/query-languages/m/binary-fromtext.md +++ b/query-languages/m/binary-fromtext.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary.FromText" title: "Binary.FromText" -ms.date: 3/11/2022 +ms.date: 12/2/2022 --- # Binary.FromText @@ -16,7 +16,7 @@ Binary.FromText(text as nullable text, optional encoding as nullab Returns the result of converting text value `text` to a binary (list of `number`). `encoding` may be specified to indicate the encoding used in the text value. The following `BinaryEncoding` values may be used for `encoding`. * [BinaryEncoding.Base64](binaryencoding-type.md): Base 64 encoding -* [BinaryEncoding.Hex](binaryencoding-type.md: Hex encoding +* [BinaryEncoding.Hex](binaryencoding-type.md): Hex encoding ## Example 1 From e0777828b2f6257562f2790cf20e52f85b445378 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 5 Dec 2022 12:46:49 -0800 Subject: [PATCH 135/934] Adding to ToC.yml. --- query-languages/dax/toc.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index da6953edd..a53f57211 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -161,14 +161,24 @@ href: earliest-function-dax.md - name: FILTER href: filter-function-dax.md + - name: INDEX + href: index-function-dax.md - name: KEEPFILTERS href: keepfilters-function-dax.md - name: LOOKUPVALUE href: lookupvalue-function-dax.md + - name: OFFSET + href: offset-function-dax.md + - name: ORDERBY + href: orderby-function-dax.md + - name: PARTITIONBY + href: partitionby-function-dax.md - name: REMOVEFILTERS href: removefilters-function-dax.md - name: SELECTEDVALUE href: selectedvalue-function.md + - name: WINDOW + href: window-function-dax.md - name: Financial functions items: - name: Financial functions overview From 55ffc200523eb539e0d071be1e5b9da0656d61d4 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 12 Dec 2022 13:43:48 -0800 Subject: [PATCH 136/934] Minor update for James. --- query-languages/dax/index-function-dax.md | 2 +- query-languages/dax/offset-function-dax.md | 2 +- query-languages/dax/window-function-dax.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 8e633db61..745486615 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -27,7 +27,7 @@ INDEX([, ][, ][, ][, ]) |Term|Definition| |--------|--------------| |position|The absolute position (1-based) from which to obtain the data:
- \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| -|relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ and \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. +|relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index cd4bb829b..0c7365b2f 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -27,7 +27,7 @@ OFFSET ( [, ][, ][, ][, ] ) |Term|Definition| |--------|--------------| |delta|The number of rows before (negative value) or after (positive value) the current row from which to obtain the data. It can be any DAX expression that returns a scalar value. | -|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 88902d6e4..76187600b 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -30,7 +30,7 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |from_type |Modifies behavior of the \ parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| |to|Same as \, but indicates the end of the window. The last row is included in the window.| |to_type|Same as \, but modifies the behavior of \.| -|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| From 47a789e301d8b7d893ed8c40150966eeead51033 Mon Sep 17 00:00:00 2001 From: James Jin Date: Mon, 12 Dec 2022 15:58:00 -0800 Subject: [PATCH 137/934] Make expression/related semantics support changes --- query-languages/dax/orderby-function-dax.md | 8 ++++---- query-languages/dax/partitionby-function-dax.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index d38dece97..11382d0dd 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -14,20 +14,20 @@ recommendations: false # ORDERBY -Defines the columns that determine the sort order within each of a window function’s partitions. +Defines the expressions that determine the sort order within each of a window function’s partitions. ## Syntax ```dax -ORDERBY ( [, ][, orderBy_columnName [, ]] [, …] ) +ORDERBY ( [, ][, orderBy_expression [, ]] [, …] ) ``` ### Parameters |Term|Definition| |--------|--------------| -|orderBy_columnName|The name of an existing column to be used to sort the data within each of a window function’s partitions.| -|order|(Optional) A value that specifies how to sort \ values, ascending or descending:
Value: **DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
Value: **ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.| +|orderBy_expression|Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| +|order|(Optional) A value that specifies how to sort \ values, ascending or descending:
Value: **DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
Value: **ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.| ## Return value diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index 13a827cab..a0b960120 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -26,7 +26,7 @@ PARTITIONBY ( [, partitionBy_columnName [, …] ] ) |Term|Definition| |--------|--------------| -|partitionBy_columnName|The name of an existing column to be used to partition the window function’s \. | +|partitionBy_columnName|The name of an existing column to be used to partition the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| ## Return value From 369e5fca2e543749358602ea454fd0ff422d803f Mon Sep 17 00:00:00 2001 From: James Jin Date: Mon, 12 Dec 2022 21:48:46 -0800 Subject: [PATCH 138/934] Makee changes to main window function docs --- query-languages/dax/index-function-dax.md | 4 ++-- query-languages/dax/offset-function-dax.md | 10 ++++++---- query-languages/dax/window-function-dax.md | 11 ++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 745486615..4b5657986 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -27,8 +27,8 @@ INDEX([, ][, ][, ][, ]) |Term|Definition| |--------|--------------| |position|The absolute position (1-based) from which to obtain the data:
- \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| -|relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. -|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \.| +|relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. +|orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 0c7365b2f..0a347e1d6 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -27,8 +27,8 @@ OFFSET ( [, ][, ][, ][, ] ) |Term|Definition| |--------|--------------| |delta|The number of rows before (negative value) or after (positive value) the current row from which to obtain the data. It can be any DAX expression that returns a scalar value. | -|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | @@ -38,15 +38,17 @@ One or more rows from \. ## Remarks -Each \ and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: +Except for columns added by DAX table functions, each column in \ must have a corresponding outer value to help define the current row on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column, then: - - OFFSET will first determine all \ and \ columns that have no corresponding outer column. + - OFFSET will first determine all columns that have no corresponding outer column. - For every combination of existing values for these columns in OFFSET’s parent context, OFFSET is evaluated and a row is returned. - OFFSET’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. +If all of \'s columns were added by DAX table functions, an error is returned. + If the non-volatile columns specified within \ and \ can't uniquely identify every row in \, then: - OFFSET will try to find the least number of additional columns required to uniquely identify every row. diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 76187600b..5e855c1c2 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -30,8 +30,8 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |from_type |Modifies behavior of the \ parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| |to|Same as \, but indicates the end of the window. The last row is included in the window.| |to_type|Same as \, but modifies the behavior of \.| -|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| @@ -40,16 +40,17 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] All rows from the window. ## Remarks - -Each \ and \ column must have a corresponding outer value to help define the current row on which to operate. If \ and \ both have value ABS, then the following applies only to the \ columns: +Except for columns added by DAX table functions, each column in \ must have a corresponding outer value to help define the current row on which to operate. If \ and \ both have value ABS, then the following applies only to the \ columns: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column: - - WINDOW will first determine all \ and \ columns that have no corresponding outer column. + - WINDOW will first determine all columns that have no corresponding outer column. - For every combination of existing values for these columns in WINDOW’s parent context, WINDOW is evaluated, and the corresponding rows is returned. - WINDOW final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. +If all of \'s columns were added by DAX table functions, an error is returned. + If the columns specified within \ and \ cannot uniquely identify every row in \, then: - WINDOW will try to find the least number of additional columns required to uniquely identify every row. From a3ae8ea0f4a65a378a2b224473004f7b827a6147 Mon Sep 17 00:00:00 2001 From: James Jin Date: Mon, 12 Dec 2022 22:41:47 -0800 Subject: [PATCH 139/934] Remove volatile usage and consistency with other docs --- query-languages/dax/index-function-dax.md | 4 ++-- query-languages/dax/offset-function-dax.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 745486615..fa22d7b6f 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -28,7 +28,7 @@ INDEX([, ][, ][, ][, ]) |--------|--------------| |position|The absolute position (1-based) from which to obtain the data:
- \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| |relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. -|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \.| +|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | @@ -47,7 +47,7 @@ Each \ column must have a corresponding outer value to help define - INDEX’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If the non-volatile columns specified within \ and \ cannot uniquely identify every row in \: +If the columns specified within \ and \ cannot uniquely identify every row in \: - INDEX will try to find the least number of additional columns required to uniquely identify every row. - If such columns can be found, INDEX will automatically append these new columns to \, and each partition is sorted using this new set of OrderBy columns. diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 0c7365b2f..3d4fc019b 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -47,7 +47,7 @@ Each \ and \ column must have a corresponding outer value - OFFSET’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If the non-volatile columns specified within \ and \ can't uniquely identify every row in \, then: +If the columns specified within \ and \ can't uniquely identify every row in \, then: - OFFSET will try to find the least number of additional columns required to uniquely identify every row. - If such columns can be found, OFFSET will automatically append these new columns to \, and each partition is sorted using this new set of OrderBy columns. From 650cd2908478504d5bb57a48b939d1015938be91 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 13 Dec 2022 09:47:40 -0500 Subject: [PATCH 140/934] Edits from Ehren Co-authored-by: Ehren --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 8ed3ee5c3..50268b096 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -353,7 +353,7 @@ Value.Type( Value.ReplaceType( {1}, type {number} ) ## Type equivalence and compatibility -Type equivalence is not defined in M. An M implementation may optionally choose to use its own rules to perform equality comparisons between type values, in which case `true` or `false` should be returned, as the implementation deems appropriate. Otherwise, comparing two type values for equality should evaluate to `false`. In either case, the response returned must be consistent if the same two values are repeatedly compared. +Type equivalence is not defined in M. An M implementation may optionally choose to use its own rules to perform equality comparisons between type values. Comparing two type values for equality should evaluate to `true` if they are considered identical by the implementation, and `false` otherwise. In either case, the response returned must be consistent if the same two values are repeatedly compared. Note that within a given implementation, comparing some identical type values (such as `(type text) = (type text)`) may return `true`, while comparing others (such as `(type [a = text]) = (type [a = text])`) may not. Compatibility between a given type and a nullable primitive type can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a nullable primitive type value as its second argument: From bac7fb0fd3d86e1392f3f5e923538c12ef464e18 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 19 Dec 2022 09:37:10 -0800 Subject: [PATCH 141/934] Fixed broken links in M docs --- query-languages/m/binary-compress.md | 6 +++--- query-languages/m/binary-decompress.md | 6 +++--- query-languages/m/byte-from.md | 4 ++-- query-languages/m/date-dayofweek.md | 4 ++-- query-languages/m/diagnostics-trace.md | 12 ++++++------ query-languages/m/int8-from.md | 4 ++-- query-languages/m/list-percentile.md | 4 ++-- query-languages/m/number-round.md | 4 ++-- 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/query-languages/m/binary-compress.md b/query-languages/m/binary-compress.md index 736c0d638..70f34c9d7 100644 --- a/query-languages/m/binary-compress.md +++ b/query-languages/m/binary-compress.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary.Compress" title: "Binary.Compress" -ms.date: 3/11/2022 +ms.date: 12/19/2022 --- # Binary.Compress @@ -15,8 +15,8 @@ Binary.Compress(binary as nullable binary, compressionType as numb Compresses a binary value using the given compression type. The result of this call is a compressed copy of the input. Compression types include: -* [Compression.GZip](/powerquery-m/compression-gzip) -* [Compression.Deflate](/powerquery-m/compression-deflate) +* [Compression.GZip](compression-type.md) +* [Compression.Deflate](compression-type.md) ## Example 1 diff --git a/query-languages/m/binary-decompress.md b/query-languages/m/binary-decompress.md index c6766ddd9..399f58f11 100644 --- a/query-languages/m/binary-decompress.md +++ b/query-languages/m/binary-decompress.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary.Decompress" title: "Binary.Decompress" -ms.date: 10/7/2022 +ms.date: 12/19/2022 --- # Binary.Decompress @@ -15,8 +15,8 @@ Binary.Decompress(binary as nullable binary, compressionType as nu Decompresses a binary value using the given compression type. The result of this call is a decompressed copy of the input. Compression types include: -* [Compression.GZip](/powerquery-m/compression-gzip) -* [Compression.Deflate](/powerquery-m/compression-deflate) +* [Compression.GZip](compression-type.md) +* [Compression.Deflate](compression-type.md) ## Example 1 diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index bd994c15c..0be8f019d 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Byte.From" title: "Byte.From" -ms.date: 10/7/2022 +ms.date: 12/19/2022 --- # Byte.From @@ -31,7 +31,7 @@ Byte.From("4") ## Example 2 -Get the 8-bit integer `number` value of `"4.5"` using [RoundingMode.AwayFromZero](/powerquery-m/roundingmode-awayfromzero). +Get the 8-bit integer `number` value of `"4.5"` using [RoundingMode.AwayFromZero](roundingmode-type.md). **Usage** diff --git a/query-languages/m/date-dayofweek.md b/query-languages/m/date-dayofweek.md index 775250066..0f2a3eca4 100644 --- a/query-languages/m/date-dayofweek.md +++ b/query-languages/m/date-dayofweek.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date.DayOfWeek" title: "Date.DayOfWeek" -ms.date: 3/11/2022 +ms.date: 12/19/2022 --- # Date.DayOfWeek @@ -16,7 +16,7 @@ Date.DayOfWeek(dateTime as any, optional firstDayOfWeek as nullabl Returns a number (from 0 to 6) indicating the day of the week of the provided `dateTime`. * `dateTime`: A `date`, `datetime`, or `datetimezone` value. -* `firstDayOfWeek`: A `Day` value indicating which day should be considered the first day of the week. Allowed values are [Day.Sunday](/powerquery-m/day-sunday), [Day.Monday](/powerquery-m/day-monday), [Day.Tuesday](/powerquery-m/day-tuesday), [Day.Wednesday](/powerquery-m/day-wednesday), [Day.Thursday](/powerquery-m/day-Thursday), [Day.Friday](/powerquery-m/day-friday), or [Day.Saturday](/powerquery-m/day-saturday). If unspecified, a culture-dependent default is used. +* `firstDayOfWeek`: A `Day` value indicating which day should be considered the first day of the week. Allowed values are [Day.Sunday](day-type.md), [Day.Monday](day-type.md), [Day.Tuesday](day-type.md), [Day.Wednesday](day-type.md), [Day.Thursday](day-type.md), [Day.Friday](day-type.md), or [Day.Saturday](day-type.md). If unspecified, a culture-dependent default is used. ## Example 1 diff --git a/query-languages/m/diagnostics-trace.md b/query-languages/m/diagnostics-trace.md index 68028472a..ef9c0470f 100644 --- a/query-languages/m/diagnostics-trace.md +++ b/query-languages/m/diagnostics-trace.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Diagnostics.Trace" title: "Diagnostics.Trace" -ms.date: 10/7/2022 +ms.date: 12/19/2022 --- # Diagnostics.Trace @@ -15,11 +15,11 @@ Diagnostics.Trace(traceLevel as number, message as anynonnull, Writes a trace `message`, if tracing is enabled, and returns `value`. An optional parameter `delayed` specifies whether to delay the evaluation of `value` until the message is traced. `traceLevel` can take one of the following values: -- [TraceLevel.Critical](/powerquery-m/tracelevel-critical) -- [TraceLevel.Error](/powerquery-m/tracelevel-error) -- [TraceLevel.Warning](/powerquery-m/tracelevel-warning) -- [TraceLevel.Information](/powerquery-m/tracelevel-information) -- [TraceLevel.Verbose](/powerquery-m/tracelevel-verbose) +- [TraceLevel.Critical](tracelevel-type.md) +- [TraceLevel.Error](tracelevel-type.md) +- [TraceLevel.Warning](tracelevel-type.md) +- [TraceLevel.Information](tracelevel-type.md) +- [TraceLevel.Verbose](tracelevel-type.md) ## Example 1 diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index c323810bd..a1ec43ed1 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Int8.From" title: "Int8.From" -ms.date: 10/7/2022 +ms.date: 12/19/2022 --- # Int8.From @@ -31,7 +31,7 @@ Int8.From("4") ## Example 2 -Get the signed 8-bit integer `number` value of `"4.5"` using [RoundingMode.AwayFromZero](/powerquery-m/roundingmode-awayfromzero). +Get the signed 8-bit integer `number` value of `"4.5"` using [RoundingMode.AwayFromZero](roundingmode-type.md). **Usage** diff --git a/query-languages/m/list-percentile.md b/query-languages/m/list-percentile.md index 5f69ec14a..700797edf 100644 --- a/query-languages/m/list-percentile.md +++ b/query-languages/m/list-percentile.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.Percentile" title: "List.Percentile" -ms.date: 3/11/2022 +ms.date: 12/19/2022 --- # List.Percentile @@ -15,7 +15,7 @@ List.Percentile(list as list, percentiles as any, optional opti Returns one or more sample percentiles of the list `list`. If the value `percentiles` is a number between 0.0 and 1.0, it will be treated as a percentile and the result will be a single value corresponding to that probability. If the value `percentiles` is a list of numbers with values between 0.0 and 1.0, the result will be a list of percentiles corresponding to the input probability. -The PercentileMode option in `options` can be used by advanced users to pick a more-specific interpolation method but is not recommended for most uses. Predefined symbols [PercentileMode.ExcelInc](/powerquery-m/percentilemode-excelinc) and [PercentileMode.ExcelExc](/powerquery-m/percentilemode-excelexc) match the interpolation methods used by the Excel functions `PERCENTILE.INC` and `PERCENTILE.EXC`. The default behavior matches **PercentileMode.ExcelInc**. The symbols [PercentileMode.SqlCont](/powerquery-m/percentilemode-sqlcont) and [PercentileMode.SqlDisc](/powerquery-m/percentilemode-sqldisc) match the SQL Server behavior for `PERCENTILE_CONT` and `PERCENTILE_DISC`, respectively. +The PercentileMode option in `options` can be used by advanced users to pick a more-specific interpolation method but is not recommended for most uses. Predefined symbols [PercentileMode.ExcelInc](percentilemode-type.md) and [PercentileMode.ExcelExc](percentilemode-type.md) match the interpolation methods used by the Excel functions `PERCENTILE.INC` and `PERCENTILE.EXC`. The default behavior matches **PercentileMode.ExcelInc**. The symbols [PercentileMode.SqlCont](percentilemode-type.md) and [PercentileMode.SqlDisc](percentilemode-type.md) match the SQL Server behavior for `PERCENTILE_CONT` and `PERCENTILE_DISC`, respectively. ## Example 1 diff --git a/query-languages/m/number-round.md b/query-languages/m/number-round.md index c3f39d8e2..063a953af 100644 --- a/query-languages/m/number-round.md +++ b/query-languages/m/number-round.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.Round" title: "Number.Round" -ms.date: 4/13/2022 +ms.date: 12/19/2022 --- # Number.Round @@ -15,7 +15,7 @@ Number.Round(number as nullable number, optional digits as nullabl Returns the result of rounding `number` to the nearest number. If `number` is null, **Number.Round** returns null. -By default, `number` is rounded to the nearest integer, and ties are broken by rounding to the nearest even number (using [RoundingMode.ToEven](/powerquery-m/roundingmode-toeven), also known as "banker's rounding"). +By default, `number` is rounded to the nearest integer, and ties are broken by rounding to the nearest even number (using [RoundingMode.ToEven](roundingmode-type.md), also known as "banker's rounding"). However, these defaults can be overridden via the following optional parameters. From f0ff24e19500466ef2b2972092da62b64deb6fc2 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 2 Jan 2023 09:33:07 -0500 Subject: [PATCH 142/934] Revising to include try's new catch feature --- .../m/m-spec-consolidated-grammar.md | 14 ++-- query-languages/m/m-spec-error-handling.md | 66 ++++++++++++++----- 2 files changed, 61 insertions(+), 19 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index aee434845..dfb64098e 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -564,13 +564,19 @@ _error-raising-expression:_
#### Error handling expression _error-handling-expression:_
-      `try` _protected-expression otherwise-clauseopt
+      `try` _protected-expression +error-handleropt
protected-expression:
      expression
+_error-handler:_
+      otherwise-clause
+      catch-function
otherwise-clause:_
-      `otherwise` _default-expression
-default-expression:
-      expression_ +      `otherwise` _default-expression_
+_default-expression_:
+      _expression_
+_catch-function:_
+      `(`_parameter-name_opt`)` `=>` _function-body_
### Literal Attributes diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index 6764d89ae..dff2eb422 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -55,40 +55,48 @@ Raising an error will cause the current expression evaluation to stop, and the e ## Handling errors -An _error-handling-expression_ is used to handle an error: +An _error-handling-expression_ (informally known as a "`try` expression") is used to handle an error: _error-handling-expression:_
-      `try` _protected-expression otherwise-clauseopt
+      `try` _protected-expression +error-handleropt
protected-expression:
      expression
+_error-handler:_
+      otherwise-clause
+      catch-function
otherwise-clause:_
-      `otherwise` _default-expression
-default-expression:
-      expression_ +      `otherwise` _default-expression_
+_default-expression_:
+      _expression_
+_catch-function:_
+      `(`_parameter-name_opt`)` `=>` _function-body_
-The following holds when evaluating an _error-handling-expression_ without an _otherwiseclause_: +The following holds when evaluating an _error-handling-expression_ without an _error-handler_: -* If the evaluation of the protected-expression does not result in an error and produces a value x, the value produced by the error-handling-expression is a record of the following form: +* If the evaluation of the _protected-expression_ does not result in an error and produces a value x, the value produced by the _error-handling-expression_ is a record of the following form: ```powerquery-m [ HasErrors = false, Value = x ] ``` -* If the evaluation of the protected-expression raises an error value e, the result of the error-handling-expression is a record of the following form: +* If the evaluation of the _protected-expression_ raises an error value e, the result of the _error-handling-expression_ is a record of the following form: ```powerquery-m [ HasErrors = true, Error = e ] ``` -The following holds when evaluating an _error-handling-expression_ with an _otherwiseclause_: +The following holds when evaluating an _error-handling-expression_ with an _error-handler_: -* The protected-expression must be evaluated before the otherwise-clause. +* The _protected-expression_ must be evaluated before the _error-handler_. -* The otherwise-clause must be evaluated if and only if the evaluation of the protectedexpression raises an error. +* The _error-handler_ must be evaluated if and only if the evaluation of the _protected-expression_ raises an error. -* If the evaluation of the _protected-expression_ raises an error, the value produced by the _error-handling-expression_ is the result of evaluating the otherwise-clause. +* If the evaluation of the _protected-expression_ raises an error, the value produced by the _error-handling-expression_ is the result of evaluating the _error-handler_. -* Errors raised during the evaluation of the otherwise-clause are propagated. +* Errors raised during the evaluation of the _error-handler_ are propagated. + +* When an _error-handler_ is evaluated that is _catch-function_, the function defined by the _catch-function_ is invoked. If that function accepts a parameter, the error value will be passed as its value. The following example illustrates an _error-handling-expression_ in a case where no error is raised: @@ -110,20 +118,48 @@ in // [ Reason = "Expression.Error", Message = "A", Detail = null ] ``` -An otherwise clause can be used to replace errors handled by a try expression with an alternative value: +The preceding effect can be achieved with less syntax by using a _catch-function_ that accepts a parameter: +```powerquery-m +let + x = try error "A" catch (e) => e +in + x +// [ Reason = "Expression.Error", Message = "A", Detail = null ] +``` + +An _otherwise-clause_ can be used to replace errors handled by a try expression with an alternative value: ```powerquery-m try error "A" otherwise 1 // 1 ``` -If the otherwise clause also raises an error, then so does the entire try expression: +A _catch-function_ that does not accept a parameter is effectively a long-form alternate syntax for an _otherwise-clause_: + +```powerquery-m +try error "A" catch () => 1 +// 1 +``` + +If the _error-handler_ also raises an error, then so does the entire try expression: ```powerquery-m try error "A" otherwise error "B" // error with message "B" ``` +```powerquery-m +try error "A" catch () => error "B" +// error with message "B" +``` + +```powerquery-m +try error "A" catch (e) => error "B" +// error with message "B" +``` + + + ## Errors in record and let initializers The following example shows a record initializer with a field `A` that raises an error and is accessed by two other fields `B` and `C`. Field `B` does not handle the error that is raised by `A`, but `C` does. The final field `D` does not access `A` and so it is not affected by the error in `A`. From 1dffd528bf32e7b208fa05c09423cf529b2a79fe Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 4 Jan 2023 08:44:05 -0500 Subject: [PATCH 143/934] Typo fix from @ehrenMSFT Co-authored-by: Ehren --- query-languages/m/m-spec-error-handling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index dff2eb422..8abcc0cf5 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -96,7 +96,7 @@ The following holds when evaluating an _error-handling-expression_ with an _erro * Errors raised during the evaluation of the _error-handler_ are propagated. -* When an _error-handler_ is evaluated that is _catch-function_, the function defined by the _catch-function_ is invoked. If that function accepts a parameter, the error value will be passed as its value. +* When an _error-handler_ is evaluated that is a _catch-function_, the function defined by the _catch-function_ is invoked. If that function accepts a parameter, the error value will be passed as its value. The following example illustrates an _error-handling-expression_ in a case where no error is raised: From fac9faa8172dab1ea8525402e934509db6f061db Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 4 Jan 2023 08:44:32 -0500 Subject: [PATCH 144/934] Wording tweak from @ehrenMSFT Co-authored-by: Ehren --- query-languages/m/m-spec-error-handling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index 8abcc0cf5..5a0d7379d 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -118,7 +118,7 @@ in // [ Reason = "Expression.Error", Message = "A", Detail = null ] ``` -The preceding effect can be achieved with less syntax by using a _catch-function_ that accepts a parameter: +The preceding example can be rewritten with less syntax by using a _catch-function_ that accepts a parameter: ```powerquery-m let x = try error "A" catch (e) => e From 4b53ea3e4761a58cdd4cb663b14282850fad7a99 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 4 Jan 2023 08:44:57 -0500 Subject: [PATCH 145/934] Wording tweak from @ehrenMSFT Co-authored-by: Ehren --- query-languages/m/m-spec-error-handling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index 5a0d7379d..e1550cb8d 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -134,7 +134,7 @@ try error "A" otherwise 1 // 1 ``` -A _catch-function_ that does not accept a parameter is effectively a long-form alternate syntax for an _otherwise-clause_: +A _catch-function_ that does not accept a parameter is effectively a longer alternate syntax for an _otherwise-clause_: ```powerquery-m try error "A" catch () => 1 From 623db1358bf670ac4e6118c9a5ee5b5b79dd822a Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 4 Jan 2023 08:55:47 -0500 Subject: [PATCH 146/934] Adding catch-clause, "catch" --- query-languages/m/m-spec-consolidated-grammar.md | 4 +++- query-languages/m/m-spec-error-handling.md | 12 +++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index dfb64098e..e897a067b 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -570,11 +570,13 @@ protected-expression:
      expression
_error-handler:_
      otherwise-clause
-      catch-function
+      catch-clause
otherwise-clause:_
      `otherwise` _default-expression_
_default-expression_:
      _expression_
+_catch-clause:_
+      `catch` _catch-function_
_catch-function:_
      `(`_parameter-name_opt`)` `=>` _function-body_
diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index e1550cb8d..c9980bcf6 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -55,7 +55,7 @@ Raising an error will cause the current expression evaluation to stop, and the e ## Handling errors -An _error-handling-expression_ (informally known as a "`try` expression") is used to handle an error: +An _error-handling-expression_ (informally known as a "try expression") is used to handle an error: _error-handling-expression:_
      `try` _protected-expression @@ -64,11 +64,13 @@ protected-expression:
      expression
_error-handler:_
      otherwise-clause
-      catch-function
+      catch-clause
otherwise-clause:_
      `otherwise` _default-expression_
_default-expression_:
      _expression_
+_catch-clause:_
+      `catch` _catch-function_
_catch-function:_
      `(`_parameter-name_opt`)` `=>` _function-body_
@@ -96,7 +98,7 @@ The following holds when evaluating an _error-handling-expression_ with an _erro * Errors raised during the evaluation of the _error-handler_ are propagated. -* When an _error-handler_ is evaluated that is a _catch-function_, the function defined by the _catch-function_ is invoked. If that function accepts a parameter, the error value will be passed as its value. +* When an _error-handler_ is evaluated that is a _catch-clause_, the _catch-function_ is invoked. If that function accepts a parameter, the error value will be passed as its value. The following example illustrates an _error-handling-expression_ in a case where no error is raised: @@ -118,7 +120,7 @@ in // [ Reason = "Expression.Error", Message = "A", Detail = null ] ``` -The preceding example can be rewritten with less syntax by using a _catch-function_ that accepts a parameter: +The preceding example can be rewritten with less syntax by using a _catch-clause_ with a _catch-function_ that accepts a parameter: ```powerquery-m let x = try error "A" catch (e) => e @@ -134,7 +136,7 @@ try error "A" otherwise 1 // 1 ``` -A _catch-function_ that does not accept a parameter is effectively a longer alternate syntax for an _otherwise-clause_: +A _catch-clause_ with a zero-parameter _catch-function_ is effectively a longer, alternate syntax for an _otherwise-clause_: ```powerquery-m try error "A" catch () => 1 From 3ca4f296530c2226e7a09c19ccd5b86683a6b4da Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 4 Jan 2023 17:28:46 -0500 Subject: [PATCH 147/934] Tweak from @ehrenMSFT Co-authored-by: Ehren --- query-languages/m/m-spec-error-handling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index c9980bcf6..f1f2d997b 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -98,7 +98,7 @@ The following holds when evaluating an _error-handling-expression_ with an _erro * Errors raised during the evaluation of the _error-handler_ are propagated. -* When an _error-handler_ is evaluated that is a _catch-clause_, the _catch-function_ is invoked. If that function accepts a parameter, the error value will be passed as its value. +* When the _error-handler_ being evaluated is a _catch-clause_, the _catch-function_ is invoked. If that function accepts a parameter, the error value will be passed as its value. The following example illustrates an _error-handling-expression_ in a case where no error is raised: From 29dd1e51d3898903965d88ebff55239234f11f38 Mon Sep 17 00:00:00 2001 From: Mark Iannucci Date: Mon, 9 Jan 2023 18:05:58 -0700 Subject: [PATCH 148/934] Note alternateResult not available in PowerPivot --- query-languages/dax/lookupvalue-function-dax.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index 95b160bcd..36412ba63 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -52,6 +52,8 @@ If multiple rows match the search values and in all cases **result_column** valu - Avoid using ISERROR or IFERROR functions to capture an error returned by LOOKUPVALUE. If some inputs to the function will result in an error when a single output value cannot be determined, providing an alternateResult parameter is the most reliable and highest performing way to handle the error. +- The **alternateResult** parameter will throw an error if specified in a PowerPivot calculated column. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example From 635604bbf9ef060c6c6651f25a2d44b3dffc72be Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 11 Jan 2023 10:29:35 -0800 Subject: [PATCH 149/934] Adding Phil Seamark video. --- query-languages/dax/dax-learn-videos.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/dax-learn-videos.md b/query-languages/dax/dax-learn-videos.md index 676bebcf3..8dcd21cbf 100644 --- a/query-languages/dax/dax-learn-videos.md +++ b/query-languages/dax/dax-learn-videos.md @@ -24,4 +24,10 @@ In this DAX 101 video, Microsoft Partner, Alberto Ferrari introduces essential c In this advanced DAX video, Microsoft Partner, Alberto Ferrari describes DAX theory, filter and row context, and other essential concepts in DAX. -> [!VIDEO https://www.youtube.com/embed/6ncHnWMEdic] \ No newline at end of file +> [!VIDEO https://www.youtube.com/embed/6ncHnWMEdic] + +## Practical DAX for Power BI + +In this video, Microsoft Principal Program Manager, Phil Seamark, walks through some best practices for practical uses of DAX in Power BI. + +> [!VIDEO https://www.youtube.com/embed/1fGfqzS37qs] From 173a9939441b75aede56e08a57dfadbbd8689cbb Mon Sep 17 00:00:00 2001 From: James Jin Date: Wed, 11 Jan 2023 21:49:32 -0800 Subject: [PATCH 150/934] Add forgotten optionality of ORDERBY() and PARTITIONBY() parameters and add Keshuang's documentation of ORDERBY() blank handling --- query-languages/dax/orderby-function-dax.md | 7 ++++--- query-languages/dax/partitionby-function-dax.md | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index 11382d0dd..10771d7d5 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -19,15 +19,16 @@ Defines the expressions that determine the sort order within each of a window fu ## Syntax ```dax -ORDERBY ( [, ][, orderBy_expression [, ]] [, …] ) +ORDERBY ( [[, [, [, ]] …]] ) ``` ### Parameters |Term|Definition| |--------|--------------| -|orderBy_expression|Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| -|order|(Optional) A value that specifies how to sort \ values, ascending or descending:
Value: **DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
Value: **ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.| +|orderBy_expression|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| +|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\, an optional value, specifies how blanks are compared to non-blank values. Valid values include:
**BLANKS DEFAULT**. For numeric types, blanks are less than 0 but greater than negative values. For strings, blanks are less than all strings including empty strings.
**BLANKS FIRST**. Blanks are considered less than non-blank values.
**BLANKS LAST**. Blanks are considered greater than non-blank values. +| ## Return value diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index a0b960120..d739b9bc8 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -19,14 +19,14 @@ Defines the columns that are used to partition a window function’s \ ## Syntax ```dax -PARTITIONBY ( [, partitionBy_columnName [, …] ] ) +PARTITIONBY ( [[, partitionBy_columnName [, …]]] ) ``` ### Parameters |Term|Definition| |--------|--------------| -|partitionBy_columnName|The name of an existing column to be used to partition the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| +|partitionBy_columnName| (Optional) The name of an existing column to be used to partition the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| ## Return value From 058ff81087c6c2a65a2dd30153c24c0ab162c06b Mon Sep 17 00:00:00 2001 From: James Jin Date: Wed, 11 Jan 2023 21:52:46 -0800 Subject: [PATCH 151/934] Remove extra line --- query-languages/dax/orderby-function-dax.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index 10771d7d5..7ff41865e 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -27,8 +27,7 @@ ORDERBY ( [[, [, [, ]] … |Term|Definition| |--------|--------------| |orderBy_expression|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| -|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\, an optional value, specifies how blanks are compared to non-blank values. Valid values include:
**BLANKS DEFAULT**. For numeric types, blanks are less than 0 but greater than negative values. For strings, blanks are less than all strings including empty strings.
**BLANKS FIRST**. Blanks are considered less than non-blank values.
**BLANKS LAST**. Blanks are considered greater than non-blank values. -| +|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\, an optional value, specifies how blanks are compared to non-blank values. Valid values include:
**BLANKS DEFAULT**. For numeric types, blanks are less than 0 but greater than negative values. For strings, blanks are less than all strings including empty strings.
**BLANKS FIRST**. Blanks are considered less than non-blank values.
**BLANKS LAST**. Blanks are considered greater than non-blank values.| ## Return value From 7989c45e57f0dea73db1aff506d3b6d05934a15d Mon Sep 17 00:00:00 2001 From: Alex Dupler Date: Thu, 12 Jan 2023 10:35:04 -0800 Subject: [PATCH 152/934] Adds an example that uses the optional eoy param The syntax for the optional end_of_year parameter is not explicitly spelled out in the doc. This leads to user confusion. Seehttps://www.reddit.com/r/PowerBI/comments/1096tyo/comment/j40jz52/ for an example of how this is causing user confusion. "m-dd" is not likely to be users first guess. Even though this param's exact syntax varries by locale, we should include at least some example of likely formats to get users started. --- query-languages/dax/datesytd-function-dax.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/datesytd-function-dax.md b/query-languages/dax/datesytd-function-dax.md index ea1506bfb..5948d998f 100644 --- a/query-languages/dax/datesytd-function-dax.md +++ b/query-languages/dax/datesytd-function-dax.md @@ -45,7 +45,7 @@ The **dates** argument can be any of the following: > [!NOTE] > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- The **year_end_date** parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. +- The **year_end_date** parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. Depending on locale, the format might be something like "m-dd" or "dd-m". - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] @@ -56,6 +56,17 @@ The following sample formula creates a measure that calculates the 'Running Tota ```dax = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESYTD(DateTime[DateKey])) ``` + +The following sample formula creates a measure that calculates the 'Fiscal YearRunning Total' for Internet sales, using a US Locale for the Date format. + +```dax += CALCULATE( + SUM(InternetSales_USD[SalesAmount_USD]), + DATESYTD(DateTime[DateKey], + "6-30" + ) +) +``` ## See also From eb86b99248dfca6d2a7b5eb72f63c25f6f7dda3c Mon Sep 17 00:00:00 2001 From: Alex Dupler Date: Tue, 17 Jan 2023 11:35:50 -0800 Subject: [PATCH 153/934] Update datesytd-function-dax.md --- query-languages/dax/datesytd-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/datesytd-function-dax.md b/query-languages/dax/datesytd-function-dax.md index 5948d998f..19b093593 100644 --- a/query-languages/dax/datesytd-function-dax.md +++ b/query-languages/dax/datesytd-function-dax.md @@ -57,7 +57,7 @@ The following sample formula creates a measure that calculates the 'Running Tota = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESYTD(DateTime[DateKey])) ``` -The following sample formula creates a measure that calculates the 'Fiscal YearRunning Total' for Internet sales, using a US Locale for the Date format. +The following sample formula creates a measure that calculates the 'Fiscal Year Running Total' for Internet sales, using a US Locale for the Date format. ```dax = CALCULATE( From 0146897ea6fa750806f5c17346da31d36d44754f Mon Sep 17 00:00:00 2001 From: Rahul Tenany Date: Tue, 17 Jan 2023 11:37:14 -0800 Subject: [PATCH 154/934] Added docs for RANK and ROWNUMBER functions --- query-languages/dax/filter-functions-dax.md | 2 + query-languages/dax/index-function-dax.md | 4 +- query-languages/dax/offset-function-dax.md | 4 +- query-languages/dax/orderby-function-dax.md | 4 +- .../dax/partitionby-function-dax.md | 4 +- query-languages/dax/rank-function-dax.md | 78 +++++++++++++++++ query-languages/dax/rownumber-function-dax.md | 83 +++++++++++++++++++ query-languages/dax/toc.yml | 4 + query-languages/dax/window-function-dax.md | 2 + 9 files changed, 181 insertions(+), 4 deletions(-) create mode 100644 query-languages/dax/rank-function-dax.md create mode 100644 query-languages/dax/rownumber-function-dax.md diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index f356f8efe..753a5018d 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -37,3 +37,5 @@ The filter and value functions in DAX are some of the most complex and powerful, |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[SELECTEDVALUE](selectedvalue-function.md) | Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. | |[WINDOW](window-function-dax.md)| Returns multiple rows which are positioned within the given interval. | +|[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | +|[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index fa22d7b6f..be6cce0d9 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -131,4 +131,6 @@ Returns the following table: [OFFSET](offset-function-dax.md) [ORDERBY](orderby-function-dax.md) [PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) +[ROWNUMBER](rownumber-function-dax.md) \ No newline at end of file diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 3d4fc019b..3c4f2e370 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -113,4 +113,6 @@ Uses OFFSET() in a measure to return a table that summarizes the total sales for [INDEX](index-function-dax.md) [ORDERBY](orderby-function-dax.md) [PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) +[ROWNUMBER](rownumber-function-dax.md) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index d38dece97..02394e0e5 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -46,4 +46,6 @@ See [OFFSET](offset-function-dax.md). [INDEX](index-function-dax.md) [OFFSET](offset-function-dax.md) [PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) \ No newline at end of file +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) +[ROWNUMBER](rownumber-function-dax.md) \ No newline at end of file diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index 13a827cab..9ccb6e6ce 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -45,4 +45,6 @@ See [OFFSET](offset-function-dax.md). [INDEX](index-function-dax.md) [OFFSET](offset-function-dax.md) [ORDERBY](orderby-function-dax.md) -[WINDOW](window-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) +[ROWNUMBER](rownumber-function-dax.md) \ No newline at end of file diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md new file mode 100644 index 000000000..1d166af32 --- /dev/null +++ b/query-languages/dax/rank-function-dax.md @@ -0,0 +1,78 @@ +--- +description: "Learn more about: RANK" +title: "RANK function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 01/13/2023 +ms.topic: reference +author: rahulten +ms.author: rahulten +recommendations: false + +--- + +# RANK + +Returns the ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then then rank is blank. + +## Syntax + +```dax +RANK ( [][, ][, ][, ][, ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|ties|(Optional) Defines how to handle the ranking when two or more rows are tied.
If specified, the supported value is either DENSE, or SKIP.
If omitted:
- Defaults to SKIP | +|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | + +## Return value + +The rank number for the current context. + +## Remarks + +Each \ and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: + +- If there is exactly one corresponding outer column, its value is used. +- If there is no corresponding outer column, then: + - RANK will first determine all \ and \ columns that have no corresponding outer column. + - For every combination of existing values for these columns in RANK parent context, RANK is evaluated and a row is returned. + - RANK’s final output is a rank number. + +If the columns specified within \ and \ can't uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. + +## Example + +The following DAX query: + +```dax +EVALUATE +ADDCOLUMNS( + 'DimGeography', + "Rank", + RANK( + DENSE, + 'DimGeography', + ORDERBY( + 'DimGeography'[StateProvinceName], desc, + 'DimGeography'[City], asc), + PARTITIONBY( + 'DimGeography'[EnglishCountryRegionName]))) +ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc +``` + +Returns a table that ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. + +## See also + +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) +[ROWNUMBER](rownumber-function-dax.md) diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md new file mode 100644 index 000000000..02e0e5f16 --- /dev/null +++ b/query-languages/dax/rownumber-function-dax.md @@ -0,0 +1,83 @@ +--- +description: "Learn more about: ROWNUMBER" +title: "ROWNUMBER function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 01/13/2023 +ms.topic: reference +author: rahulten +ms.author: rahulten +recommendations: false + +--- +# ROWNUMBER + +Returns the unique ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then then rank is blank. + +## Syntax + +```dax +ROWNUMBER ( [][, ][, ][, ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | + +## Return value + +The rank number for the current context. + +## Remarks + +Each \ and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: + +- If there is exactly one corresponding outer column, its value is used. +- If there is no corresponding outer column, then: + - RANK will first determine all \ and \ columns that have no corresponding outer column. + - For every combination of existing values for these columns in RANK parent context, RANK is evaluated and a row is returned. + - RANK’s final output is a union of these rows. +- If there is more than one corresponding outer column, an error is returned. + +If the columns specified within \ and \ cannot uniquely identify every row in \, then: + +- ROWNUMBER will try to find the least number of additional columns required to uniquely identify every row. +- If such columns can be found, - ROWNUMBER will try to find the least number of additional columns required to uniquely identify every row. + will automatically append these new columns to \, and each partition is sorted using this new set of orderBy columns. +- If such columns cannot be found, an error is returned. + +If the function detects a tie at runtime, an error is returned. + +## Example + +The following DAX query: + +```dax +EVALUATE +ADDCOLUMNS( + 'DimGeography', + "UniqueRank", + ROWNUMBER( + 'DimGeography', + ORDERBY( + 'DimGeography'[StateProvinceName], desc, + 'DimGeography'[City], asc), + PARTITIONBY( + 'DimGeography'[EnglishCountryRegionName]))) +ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc +``` + +Returns a table that uniquely ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. + +## See also + +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index a53f57211..088cbf6fc 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -173,8 +173,12 @@ href: orderby-function-dax.md - name: PARTITIONBY href: partitionby-function-dax.md + - name: RANK + href: rank-function-dax.md - name: REMOVEFILTERS href: removefilters-function-dax.md + - name: ROWNUMBER + href: rownumber-function-dax.md - name: SELECTEDVALUE href: selectedvalue-function.md - name: WINDOW diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 76187600b..97fae860b 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -92,3 +92,5 @@ Returns the 3-day average of unit prices for each product. Note the 3-day window [OFFSET](offset-function-dax.md) [ORDERBY](orderby-function-dax.md) [PARTITIONBY](partitionby-function-dax.md) +[RANK](rank-function-dax.md) +[ROWNUMBER](rownumber-function-dax.md) From a9742937ee3d8433cfe9ea2b8a7ea71de7306eb6 Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Tue, 17 Jan 2023 13:16:26 -0800 Subject: [PATCH 155/934] Update filter-functions-dax.md --- query-languages/dax/filter-functions-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 753a5018d..6f4a091aa 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -34,8 +34,8 @@ The filter and value functions in DAX are some of the most complex and powerful, |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| |[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a WINDOW function’s \ parameter.| +|[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| +|[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | |[SELECTEDVALUE](selectedvalue-function.md) | Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. | |[WINDOW](window-function-dax.md)| Returns multiple rows which are positioned within the given interval. | -|[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | -|[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | From 5ef106cbc500c583cad366cc0e8ac08fac13f610 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 18 Jan 2023 08:27:46 -0800 Subject: [PATCH 156/934] Added February updates to the Power Query M reference --- query-languages/m/accessing-data-functions.md | 6 ++-- query-languages/m/datetime-addzone.md | 6 ++-- query-languages/m/datetime-functions.md | 6 ++-- query-languages/m/duration-days.md | 8 ++--- query-languages/m/excel-currentworkbook.md | 4 +-- query-languages/m/function-values.md | 3 +- query-languages/m/list-transformmany.md | 35 +++++++++++++++++-- query-languages/m/table-addcolumn.md | 7 ++-- query-languages/m/text-positionofany.md | 16 ++++----- .../m/viewfunction-tryinvoke.md.md | 16 +++++++++ 10 files changed, 78 insertions(+), 29 deletions(-) create mode 100644 query-languages/m/viewfunction-tryinvoke.md.md diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index 3544b2fd9..a0dceda66 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Accessing data functions" title: "Accessing data functions" -ms.date: 10/7/2022 +ms.date: 1/18/2023 --- # Accessing data functions @@ -54,7 +54,7 @@ These functions access data and return table values. Most of these functions ret |[HdInsight.Containers](hdinsight-containers.md)|Returns a navigational table containing all containers found in the HDInsight account. Each row has the container name and table containing its files.| |[HdInsight.Contents](hdinsight-contents.md)|Returns a navigational table containing all containers found in the HDInsight account. Each row has the container name and table containing its files.| |[HdInsight.Files](hdinsight-files.md)|Returns a table containing a row for each folder and file found at the container URL, and subfolders from an HDInsight account. Each row contains properties of the file/folder and a link to its content.| -|[Html.Table](html-table.md)|Returns a table containing the results of running the specified CSS selectors against the provided html.| +|[Html.Table](html-table.md)|Returns a table containing the results of running the specified CSS selectors against the provided HTML.| |[Identity.From](identity-from.md)|Creates an identity.| |[Identity.IsMemberOf](identity-ismemberof.md)|Determines whether an identity is a member of an identity collection.| |[IdentityProvider.Default](identityprovider-default.md)|The default identity provider for the current host.| @@ -69,7 +69,7 @@ These functions access data and return table values. Most of these functions ret |[OleDb.DataSource](oledb-datasource.md)|Returns a table of SQL tables and views from the OLE DB data source specified by the connection string.| |[OleDb.Query](oledb-query.md)|Returns the result of running a native query on an OLE DB data source.| |[Oracle.Database](oracle-database.md)|Returns a table with data relating to the tables in the specified Oracle Database.| -|[Pdf.Tables](pdf-tables.md)|Returns any tables found in pdf.| +|[Pdf.Tables](pdf-tables.md)|Returns any tables found in a PDF file.| |[PostgreSQL.Database](postgresql-database.md)|Returns a table with data relating to the tables in the specified PostgreSQL Database.| |[RData.FromBinary](rdata-frombinary.md)|Returns a record of data frames from the RData file.| |[Salesforce.Data](salesforce-data.md)|Connects to the Salesforce Objects API and returns the set of available objects (i.e. Accounts).| diff --git a/query-languages/m/datetime-addzone.md b/query-languages/m/datetime-addzone.md index 2a12f9ec0..458f822e2 100644 --- a/query-languages/m/datetime-addzone.md +++ b/query-languages/m/datetime-addzone.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DateTime.AddZone" title: "DateTime.AddZone" -ms.date: 3/11/2022 +ms.date: 1/18/2023 --- # DateTime.AddZone @@ -13,11 +13,11 @@ DateTime.AddZone(dateTime as nullable datetime, timezoneHours as n ## About -Sets timezone information to on the datetime value `dateTime`. The timezone information will include `timezoneHours` and optionally `timezoneMinutes`. +Adds timezone information to the `dateTime` value. The timezone information includes `timezoneHours` and optionally `timezoneMinutes`, which specify the desired offset from UTC time. ## Example 1 -Set timezone information for #datetime(2010, 12, 31, 11, 56, 02) to 7 hours, 30 minutes. +Set the timezone to UTC+7:30 (7 hours and 30 minutes past UTC). **Usage** diff --git a/query-languages/m/datetime-functions.md b/query-languages/m/datetime-functions.md index 7faccb524..55a97cf4e 100644 --- a/query-languages/m/datetime-functions.md +++ b/query-languages/m/datetime-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DateTime functions" title: "DateTime functions" -ms.date: 5/16/2022 +ms.date: 1/18/2023 --- # DateTime functions @@ -9,8 +9,8 @@ These functions create and manipulate datetime and datetimezone values. |Name|Description| |------------|---------------| -|[DateTime.AddZone](datetime-addzone.md)|Adds the timezonehours as an offset to the input datetime value and returns a new datetimezone value.| -|[DateTime.Date](datetime-date.md)|Returns a date part from a DateTime value| +|[DateTime.AddZone](datetime-addzone.md)|Adds timezone information to the datetime value.| +|[DateTime.Date](datetime-date.md)|Returns a date part from a DateTime value.| |[DateTime.FixedLocalNow](datetime-fixedlocalnow.md)|Returns a DateTime value set to the current date and time on the system.| |[DateTime.From](datetime-from.md)|Returns a datetime value from a value.| |[DateTime.FromFileTime](datetime-fromfiletime.md)|Returns a DateTime value from the supplied number.| diff --git a/query-languages/m/duration-days.md b/query-languages/m/duration-days.md index 5a588f26c..ace29fd41 100644 --- a/query-languages/m/duration-days.md +++ b/query-languages/m/duration-days.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration.Days" title: "Duration.Days" -ms.date: 10/7/2022 +ms.date: 1/18/2023 --- # Duration.Days @@ -17,14 +17,14 @@ Returns the days portion of `duration`. ## Example 1 -Extract the days from a duration value. +Extract the number of days between two dates. **Usage** ```powerquery-m -Duration.Days(#duration(5, 4, 3, 2)) +Duration.Days(#date(2022, 3, 4) - #date(2022, 2, 25)) ``` **Output** -`5` +`7` diff --git a/query-languages/m/excel-currentworkbook.md b/query-languages/m/excel-currentworkbook.md index 1c5f8ccd9..daf7da3d7 100644 --- a/query-languages/m/excel-currentworkbook.md +++ b/query-languages/m/excel-currentworkbook.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Excel.CurrentWorkbook" title: "Excel.CurrentWorkbook" -ms.date: 10/7/2022 +ms.date: 1/18/2023 --- # Excel.CurrentWorkbook @@ -13,4 +13,4 @@ Excel.CurrentWorkbook() as table ## About -Returns the contents of the current Excel workbook. +Returns the contents of the current Excel workbook. It returns tables, named ranges, and dynamic arrays. Unlike [Excel.Workbook](excel-workbook.md), it does not return sheets. diff --git a/query-languages/m/function-values.md b/query-languages/m/function-values.md index 41e4598b3..ce96efc2b 100644 --- a/query-languages/m/function-values.md +++ b/query-languages/m/function-values.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Function values" title: "Function values" -ms.date: 5/16/2022 +ms.date: 1/18/2023 --- # Function values @@ -14,3 +14,4 @@ These functions create and invoke other M functions. |[Function.InvokeAfter](function-invokeafter.md)|Returns the result of invoking function after duration delay has passed.| |[Function.IsDataSource](function-isdatasource.md)|Returns whether or not function is considered a data source.| |[Function.ScalarVector](function-scalarvector.md)|Returns a scalar function of type scalarFunctionType that invokes vectorFunction with a single row of arguments and returns its single output. | +|[ViewFunction.TryInvoke](viewfunction-tryinvoke.md) | Tries to fold the given view function. | diff --git a/query-languages/m/list-transformmany.md b/query-languages/m/list-transformmany.md index fa990bb30..717264a85 100644 --- a/query-languages/m/list-transformmany.md +++ b/query-languages/m/list-transformmany.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List.TransformMany" title: "List.TransformMany" -ms.date: 10/7/2022 +ms.date: 1/18/2023 --- # List.TransformMany @@ -13,4 +13,35 @@ List.TransformMany(list as list, collectionTransform as function, ## About -Returns a list whose elements are projected from the input list. The `collectionTransform` function is applied to each element, and the `resultTransform` function is invoked to construct the resulting list. The `collectionTransform` has the signature `(x as any) as list => ...` where `x` is an element in `list`. The `resultTransform` projects the shape of the result and has the signature `(x as any, y as any) as any => ...` where `x` is the element in `list` and `y` is the element obtained by applying the `collectionTransform` to that element. +Returns a list whose elements are projected from the input list. + +The `collectionTransform` function transforms each element into an intermediate list, and the `resultTransform` function receives the original element as well as an item from the intermediate list in order to construct the final result. + +The `collectionTransform` function has the signature `(x as any) as list => ...`, where `x` is an element in `list`. The `resultTransform` function projects the shape of the result and has the signature `(x as any, y as any) as any => ...`, where `x` is an element in `list` and `y` is an element from the list generated by passing `x` to `collectionTransform`. + +## Example 1 + +Flatten a list of people and their pets. + +**Usage** + +```powerquery-m +List.TransformMany( + { + [Name = "Alice", Pets = {"Scruffy", "Sam"}], + [Name = "Bob", Pets = {"Walker"}] + }, + each [Pets], + (person, pet) => [Name = person[Name], Pet = pet] +) +``` + +**Output** + +```powerquery-m +{ + [Name = "Alice", Pet = "Scruffy"], + [Name = "Alice", Pet = "Sam"], + [Name = "Bob", Pet = "Walker"] +} +``` diff --git a/query-languages/m/table-addcolumn.md b/query-languages/m/table-addcolumn.md index 762fafac5..045aa9ceb 100644 --- a/query-languages/m/table-addcolumn.md +++ b/query-languages/m/table-addcolumn.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.AddColumn" title: "Table.AddColumn" -ms.date: 3/9/2022 +ms.date: 1/18/2023 --- # Table.AddColumn @@ -17,7 +17,7 @@ Adds a column named `newColumnName` to the table `table`. The values for the col ## Example 1 -Add a column named "TotalPrice" to the table with each value being the sum of column [Price] and column [Shipping]. +Add a number column named "TotalPrice" to the table, with each value being the sum of the [Price] and [Shipping] columns. **Usage** @@ -29,7 +29,8 @@ Table.AddColumn( [OrderID = 3, CustomerID = 2, Item = "Fishing net", Price = 25.0, Shipping = 10.00] }), "TotalPrice", - each [Price] + [Shipping] + each [Price] + [Shipping], + type number ) ``` diff --git a/query-languages/m/text-positionofany.md b/query-languages/m/text-positionofany.md index 3b3bbbf32..090acb855 100644 --- a/query-languages/m/text-positionofany.md +++ b/query-languages/m/text-positionofany.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text.PositionOfAny" title: "Text.PositionOfAny" -ms.date: 3/14/2022 +ms.date: 1/18/2023 --- # Text.PositionOfAny @@ -13,32 +13,32 @@ Text.PositionOfAny(text as text, characters as list, optional o ## About -Returns the position of the first occurrence of any of the characters in the character list `text` found in the text value `characters`. An optional parameter `occurrence` may be used to specify which occurrence position to return. +Returns the first position of any character in the list `characters` that is found in `text`. An optional parameter `occurrence` may be used to specify which occurrence position to return. ## Example 1 -Find the position of "W" in text "Hello, World!". +Find the first position of "W" or "H" in text "Hello, World!". **Usage** ```powerquery-m -Text.PositionOfAny("Hello, World!", {"W"}) +Text.PositionOfAny("Hello, World!", {"H", "W"}) ``` **Output** -`7` +`0` ## Example 2 -Find the position of "W" or "H" in text "Hello, World!". +Find all the positions of "W" or "H" in text "Hello, World!". **Usage** ```powerquery-m -Text.PositionOfAny("Hello, World!", {"H", "W"}) +Text.PositionOfAny("Hello, World!", {"H", "W"}, Occurrence.All) ``` **Output** -`0` +{0, 7} diff --git a/query-languages/m/viewfunction-tryinvoke.md.md b/query-languages/m/viewfunction-tryinvoke.md.md new file mode 100644 index 000000000..160ad0647 --- /dev/null +++ b/query-languages/m/viewfunction-tryinvoke.md.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: ViewFunction.TryInvoke" +title: "ViewFunction.TryInvoke" +ms.date: 1/18/2023 +--- +# ViewFunction.TryInvoke + +## Syntax + +
 
+ViewFunction.TryInvoke(function as function, args as list) as any
+
+ +## About + +Tries to fold the given view function using the specified list of arguments and returns the result. Throws a folding error if folding fails. From d554d6bfae9783c9b2507fcb8658804c3f831e8a Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 18 Jan 2023 08:32:06 -0800 Subject: [PATCH 157/934] Fixed broken link --- .../m/{viewfunction-tryinvoke.md.md => viewfunction-tryinvoke.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename query-languages/m/{viewfunction-tryinvoke.md.md => viewfunction-tryinvoke.md} (100%) diff --git a/query-languages/m/viewfunction-tryinvoke.md.md b/query-languages/m/viewfunction-tryinvoke.md similarity index 100% rename from query-languages/m/viewfunction-tryinvoke.md.md rename to query-languages/m/viewfunction-tryinvoke.md From 71279003db9eca558864e81834c0cde041d3b9aa Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 18 Jan 2023 08:47:16 -0800 Subject: [PATCH 158/934] Added new function to toc, minor fixes --- query-languages/m/accessing-data-functions.md | 6 +++--- query-languages/m/toc.yml | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index a0dceda66..478c47e93 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -85,9 +85,9 @@ These functions access data and return table values. Most of these functions ret |[Sybase.Database](sybase-database.md)|Returns a table with data relating to the tables in the specified Sybase Database.| |[Teradata.Database](teradata-database.md)|Returns a table with data relating to the tables in the specified Teradata Database.| |[WebAction.Request](webaction-request.md)|Creates an action that, when executed, will return the results of performing a method request against url using HTTP as a binary value.| -|[Web.BrowserContents](web-browsercontents.md)|Returns the HTML for the specified url, as viewed by a web browser.| -|[Web.Contents](web-contents.md)|Returns the contents downloaded from a web url as a binary value.| -|[Web.Headers](web-headers.md)|Returns the HTTP headers downloaded from the url as a record value.| +|[Web.BrowserContents](web-browsercontents.md)|Returns the HTML for the specified URL, as viewed by a web browser.| +|[Web.Contents](web-contents.md)|Returns the contents downloaded from a web URL as a binary value.| +|[Web.Headers](web-headers.md)|Returns the HTTP headers downloaded from the URL as a record value.| |[Web.Page](web-page.md)|Returns the contents of an HTML webpage as a table.| |[Xml.Document](xml-document.md)|Returns the contents of an XML document as a hierarchical table (list of records).| |[Xml.Tables](xml-tables.md)|Returns the contents of an XML document as a nested collection of flattened tables.| diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 25025e110..5dee6c249 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -606,6 +606,8 @@ items: href: function-isdatasource.md - name: Function.ScalarVector href: function-scalarvector.md + - name: ViewFunction.TryInvoke + href: viewfunction-tryinvoke.md - name: Lines functions items: - name: Lines functions overview From cf85314d7c4b10c2affe93b86a257126bb293bc2 Mon Sep 17 00:00:00 2001 From: Mario da Silva Date: Wed, 18 Jan 2023 15:04:12 -0800 Subject: [PATCH 159/934] adding documentation for LINEST and LINESTX functions --- query-languages/dax/linest-function-dax.md | 124 ++++++++++++++++++ query-languages/dax/linestx-function-dax.md | 123 +++++++++++++++++ .../dax/statistical-functions-dax.md | 2 + query-languages/dax/toc.yml | 4 + 4 files changed, 253 insertions(+) create mode 100644 query-languages/dax/linest-function-dax.md create mode 100644 query-languages/dax/linestx-function-dax.md diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md new file mode 100644 index 000000000..5a726e47a --- /dev/null +++ b/query-languages/dax/linest-function-dax.md @@ -0,0 +1,124 @@ +--- +description: "Learn more about: LINEST" +title: "LINEST function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 01/18/2023 +ms.topic: reference +author: masanto-msft +ms.author: masanto +recommendations: false + +--- + +# LINEST + +Uses the Least Squares method to calculate a straight line that best fits the given data, then returns a table describing the line. The equation for the line is of the form: y = **Slope1**\*x1 + **Slope2**\*x2 + ... + **Intercept**. + +## Syntax + +```dax +LINEST ( , [, …][, ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|columnY|The column of known y-values. Must have scalar type.| +|columnX|The columns of known x-values. Must have scalar type. At least one must be provided.| +|const|(Optional) A constant TRUE/FALSE value specifying whether to force the constant **Intercept** to equal 0.
If TRUE or omitted, the **Intercept** value is calculated normally; If FALSE, the **Intercept** value is set to zero.| + +## Return value + +A single-row table describing the line, plus additional statistics. These are the available columns: + +- **Slope1**, **Slope2**, ..., **Slopen**: the coefficients corresponding to each x-value; +- **Intercept**: intercept value; +- **StandardErrorSlope1**, **StandardErrorSlope2**, ..., **StandardErrorSlopen**: the standard error values for the coefficients **Slope1**, **Slope2**, ..., **Slopen**; +- **StandardErrorIntercept**: the standard error value for the constant **Intercept**; +- **CoefficientOfDetermination**: the coefficient of determination (r²). Compares estimated and actual y-values, and ranges in value from 0 to 1: the higher the value, the higher the correlation in the sample; +- **StandardError**: the standard error for the y estimate; +- **FStatistic**: the F statistic, or the F-observed value. Use the F statistic to determine whether the observed relationship between the dependent and independent variables occurs by chance; +- **DegreesOfFreedom**: the degrees of freedom. Use this value to help you find F-critical values in a statistical table, and determine a confidence level for the model; +- **RegressionSumOfSquares**: the regression sum of squares; +- **ResidualSumOfSquares**: the residual sum of squares. + +## Remarks + +\ and the \’s must all belong to the same table. + +## Example 1 + +The following DAX query: + +```dax +DEFINE VAR TotalSalesByRegion = SUMMARIZECOLUMNS( + 'Sales Territory'[Sales Territory Key], + 'Sales Territory'[Population], + "Total Sales", SUM(Sales[Sales Amount]) +) +EVALUATE LINEST( + 'TotalSalesByRegion'[Total Sales], + 'TotalSalesByRegion'[Population] +) +``` + +Returns a single-row table with ten columns: + +|Slope1|Intercept|StandardErrorSlope1|StandardErrorIntercept|CoefficientOfDetermination| +|-----|-----|-----|-----|-----| +|6.42271517588|-410592.76216|0.24959467764561|307826.343996223|0.973535860750193| + +|StandardError|FStatistic|DegreesOfFreedom|RegressionSumOfSquares|ResidualSumOfSquares| +|-----|-----|-----|-----|-----| +|630758.1747292|662.165707642|18|263446517001130|7161405749781.07| + +- **Slope1** and **Intercept**: the coefficients of the calculated linear model; +- **StandardErrorSlope1** and **StandardErrorIntercept**: the standard error values for the coefficients above; +- **CoefficientOfDetermination**, **StandardError**, **FStatistic**, **DegreesOfFreedom**, **RegressionSumOfSquares** and **ResidualSumOfSquares**: regression statistics about the model. + +For a given sales territory, this model predicts total sales by the following formula: + + Total Sales = Slope1 * Population + Intercept + +## Example 2 + +The following DAX query: + +```dax +DEFINE VAR TotalSalesByCustomer = SUMMARIZECOLUMNS( + 'Customer'[Customer ID], + 'Customer'[Age], + 'Customer'[NumOfChildren], + "Total Sales", SUM(Sales[Sales Amount]) +) +EVALUATE LINEST( + 'TotalSalesByCustomer'[Total Sales], + 'TotalSalesByCustomer'[Age], + 'TotalSalesByCustomer'[NumOfChildren] +) +``` + +Returns a single-row table with twelve columns: + +|Slope1|Slope2|Intercept|StandardErrorSlope1| +|--|--|--|--| +|69.0435458093763|33.005949841721|-871.118539339539|0.872588875481658| + +|StandardErrorSlope2|StandardErrorIntercept|CoefficientOfDetermination|StandardError| +|--|--|--|--| +|6.21158863903435|26.726292527427|0.984892920482022|68.5715034014342| + +|FStatistic|DegreesOfFreedom|RegressionSumOfSquares|ResidualSumOfSquares| +|--|--|--|--| +|3161.91535144391|97|29734974.9782379|456098.954637092| + +For a given customer, this model predicts total sales by the following formula: + + Total Sales = Slope1 * Age + Slope2 * NumOfChildren + Intercept + +## See also + +[LINESTX](linestx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/linestx-function-dax.md b/query-languages/dax/linestx-function-dax.md new file mode 100644 index 000000000..25c7cbb93 --- /dev/null +++ b/query-languages/dax/linestx-function-dax.md @@ -0,0 +1,123 @@ +--- +description: "Learn more about: LINESTX" +title: "LINESTX function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 01/18/2023 +ms.topic: reference +author: masanto-msft +ms.author: masanto +recommendations: false + +--- + +# LINESTX + +Uses the Least Squares method to calculate a straight line that best fits the given data, then returns a table describing the line. The data result from expressions evaluated for each row in a table. The equation for the line is of the form: y = **Slope1**\*x1 + **Slope2**\*x2 + ... + **Intercept**. + +## Syntax + +```dax +LINESTX (
, , [, …][, ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|table|The table containing the rows for which the expressions will be evaluated.| +|expressionY|The expression to be evaluated for each row of the table, to obtain the known y-values. Must have scalar type. | +|expressionX|The expressions to be evaluated for each row of the table, to obtain the known x-values. Must have scalar type. At least one must be provided.| +|const|(Optional) A constant TRUE/FALSE value specifying whether to force the constant **Intercept** to equal 0.
If TRUE or omitted, the **Intercept** value is calculated normally; If FALSE, the **Intercept** value is set to zero.| + +## Return value + +A single-row table describing the line, plus additional statistics. These are the available columns: + +- **Slope1**, **Slope2**, ..., **Slopen**: the coefficients corresponding to each x-value; +- **Intercept**: intercept value; +- **StandardErrorSlope1**, **StandardErrorSlope2**, ..., **StandardErrorSlopen**: the standard error values for the coefficients **Slope1**, **Slope2**, ..., **Slopen**; +- **StandardErrorIntercept**: the standard error value for the constant **Intercept**; +- **CoefficientOfDetermination**: the coefficient of determination (r²). Compares estimated and actual y-values, and ranges in value from 0 to 1: the higher the value, the higher the correlation in the sample; +- **StandardError**: the standard error for the y estimate; +- **FStatistic**: the F statistic, or the F-observed value. Use the F statistic to determine whether the observed relationship between the dependent and independent variables occurs by chance; +- **DegreesOfFreedom**: the degrees of freedom. Use this value to help you find F-critical values in a statistical table, and determine a confidence level for the model; +- **RegressionSumOfSquares**: the regression sum of squares; +- **ResidualSumOfSquares**: the residual sum of squares. + +## Example 1 + +The following DAX query: + +```dax +DEFINE VAR TotalSalesByRegion = SUMMARIZECOLUMNS( + 'Sales Territory'[Sales Territory Key], + 'Sales Territory'[Population], + "Total Sales", SUM(Sales[Sales Amount]) +) +EVALUATE LINESTX( + 'TotalSalesByRegion', + [Total Sales], + [Population] +) +``` + +Returns a single-row table with ten columns: + +|Slope1|Intercept|StandardErrorSlope1|StandardErrorIntercept|CoefficientOfDetermination| +|-----|-----|-----|-----|-----| +|6.42271517588|-410592.76216|0.24959467764561|307826.343996223|0.973535860750193| + +|StandardError|FStatistic|DegreesOfFreedom|RegressionSumOfSquares|ResidualSumOfSquares| +|-----|-----|-----|-----|-----| +|630758.1747292|662.165707642|18|263446517001130|7161405749781.07| + +- **Slope1** and **Intercept**: the coefficients of the calculated linear model; +- **StandardErrorSlope1** and **StandardErrorIntercept**: the standard error values for the coefficients above; +- **CoefficientOfDetermination**, **StandardError**, **FStatistic**, **DegreesOfFreedom**, **RegressionSumOfSquares** and **ResidualSumOfSquares**: regression statistics about the model. + +For a given sales territory, this model predicts total sales by the following formula: + + Total Sales = Slope1 * Population + Intercept + +## Example 2 + +The following DAX query: + +```dax +DEFINE VAR TotalSalesByCustomer = SUMMARIZECOLUMNS( + 'Customer'[Customer ID], + 'Customer'[Age], + 'Customer'[NumOfChildren], + "Total Sales", SUM(Sales[Sales Amount]) +) +EVALUATE LINESTX( + 'TotalSalesByCustomer', + [Total Sales], + [Age], + [NumOfChildren] +) +``` + +Returns a single-row table with twelve columns: + +|Slope1|Slope2|Intercept|StandardErrorSlope1| +|--|--|--|--| +|69.0435458093763|33.005949841721|-871.118539339539|0.872588875481658| + +|StandardErrorSlope2|StandardErrorIntercept|CoefficientOfDetermination|StandardError| +|--|--|--|--| +|6.21158863903435|26.726292527427|0.984892920482022|68.5715034014342| + +|FStatistic|DegreesOfFreedom|RegressionSumOfSquares|ResidualSumOfSquares| +|--|--|--|--| +|3161.91535144391|97|29734974.9782379|456098.954637092| + +For a given customer, this model predicts total sales by the following formula: + + Total Sales = Slope1 * Age + Slope2 * NumOfChildren + Intercept + +## See also + +[LINEST](linest-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/statistical-functions-dax.md b/query-languages/dax/statistical-functions-dax.md index 12419d64b..95f09b4d8 100644 --- a/query-languages/dax/statistical-functions-dax.md +++ b/query-languages/dax/statistical-functions-dax.md @@ -31,6 +31,8 @@ Statistical functions calculate values related to statistical distributions and |[EXPON.DIST](expon-dist-function-dax.md) | Returns the exponential distribution. | |[GEOMEAN](geomean-function-dax.md) | Returns the geometric mean of the numbers in a column. | |[GEOMEANX](geomeanx-function-dax.md) | Returns the geometric mean of an expression evaluated for each row in a table. | +|[LINEST](linest-function-dax.md)|Uses the Least Squares method to calculate a straight line that best fits the given data.| +|[LINESTX](linestx-function-dax.md)|Uses the Least Squares method to calculate a straight line that best fits the given data. The data result from expressions evaluated for each row in a table.| |[MEDIAN](median-function-dax.md) | Returns the median of numbers in a column. | |[MEDIANX](medianx-function-dax.md) | Returns the median number of an expression evaluated for each row in a table. | |[NORM.DIST](norm-dist-dax.md) | Returns the normal distribution for the specified mean and standard deviation. | diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index a53f57211..db38717b0 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -561,6 +561,10 @@ href: geomean-function-dax.md - name: GEOMEANX href: geomeanx-function-dax.md + - name: LINEST + href: linest-function-dax.md + - name: LINESTX + href: linestx-function-dax.md - name: MEDIAN href: median-function-dax.md - name: MEDIANX From b3b0d24866eaa29b713477ef3c0b33a284375251 Mon Sep 17 00:00:00 2001 From: Mario da Silva Date: Wed, 18 Jan 2023 15:28:22 -0800 Subject: [PATCH 160/934] using three backticks for code blocks --- query-languages/dax/linest-function-dax.md | 8 ++++++-- query-languages/dax/linestx-function-dax.md | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index 5a726e47a..98290f66c 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -80,7 +80,9 @@ Returns a single-row table with ten columns: For a given sales territory, this model predicts total sales by the following formula: - Total Sales = Slope1 * Population + Intercept +``` +Total Sales = Slope1 * Population + Intercept +``` ## Example 2 @@ -116,7 +118,9 @@ Returns a single-row table with twelve columns: For a given customer, this model predicts total sales by the following formula: - Total Sales = Slope1 * Age + Slope2 * NumOfChildren + Intercept +``` +Total Sales = Slope1 * Age + Slope2 * NumOfChildren + Intercept +``` ## See also diff --git a/query-languages/dax/linestx-function-dax.md b/query-languages/dax/linestx-function-dax.md index 25c7cbb93..2594a7ae3 100644 --- a/query-languages/dax/linestx-function-dax.md +++ b/query-languages/dax/linestx-function-dax.md @@ -78,7 +78,9 @@ Returns a single-row table with ten columns: For a given sales territory, this model predicts total sales by the following formula: - Total Sales = Slope1 * Population + Intercept +``` +Total Sales = Slope1 * Population + Intercept +``` ## Example 2 @@ -115,7 +117,9 @@ Returns a single-row table with twelve columns: For a given customer, this model predicts total sales by the following formula: - Total Sales = Slope1 * Age + Slope2 * NumOfChildren + Intercept +``` +Total Sales = Slope1 * Age + Slope2 * NumOfChildren + Intercept +``` ## See also From 998d95972079407924f53531bcdff99dd567d60c Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 19 Jan 2023 10:46:25 -0500 Subject: [PATCH 161/934] Adding rule for type text + alphabetizing + style standardizing --- query-languages/m/m-spec-operators.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 3847fbeac..7b84cdf57 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -619,15 +619,11 @@ The following holds when evaluating an expression containing the relational oper * Errors raised when evaluating the `x` or `y` operand expressions are propagated. -* The values produced by evaluating both the `x` and `y` expressions must be a number, date, datetime, datetimezone, duration, logical, null or time value. Otherwise, an error with reason code `"Expression.Error"` is raised. +* The values produced by evaluating both the `x` and `y` expressions must be a date, datetime, datetimezone, duration, logical, number, null, text or time value. Otherwise, an error with reason code `"Expression.Error"` is raised. -* If either or both operands are `null`, the result is the `null` value. - -* If both operands are logical, the value `true` is considered to be greater than `false`. - -* If both operands are durations, then the values are compared according to the total number of 100-nanosecond ticks they represent. +* Both operands must be of the same type or `null`. Otherwise, an error with reason code `"Expression.Error"` is raised. -* Two times are compared by comparing their hour parts and, if equal, their minute parts and, if equal, their second parts. +* If either or both operands are `null`, the result is the `null` value. * Two dates are compared by comparing their year parts and, if equal, their month parts and, if equal, their day parts. @@ -635,6 +631,10 @@ The following holds when evaluating an expression containing the relational oper * Two datetimezones are compared by normalizing them to UTC by subtracting their hour/minute offset and then comparing their datetime components. +* Two durations are compared according to the total number of 100-nanosecond ticks they represent. + +* Two logicals are compared such that `true` is considered to be greater than `false`. + * Two numbers `x` and `y` are compared according to the rules of the IEEE 754 standard: * If either operand is `#nan`, the result is `false` for all relational operators. @@ -648,6 +648,11 @@ The following holds when evaluating an expression containing the relational oper * A `#infinity` value is considered greater than all other number values, but equal to another `#infinity`. +* Two texts are compared by using a character-by-character ordinal, case-sensitive, culture-insensitive comparison. + +* Two times are compared by comparing their hour parts and, if equal, their minute parts and, if equal, their second parts. + + ## Conditional logical operators The `and` and `or` operators are called the conditional logical operators. From d630b915a16f6aff0506a15245d524b7f66f4577 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 19 Jan 2023 10:55:32 -0500 Subject: [PATCH 162/934] Adding type binary --- query-languages/m/m-spec-operators.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 7b84cdf57..90f413075 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -619,12 +619,14 @@ The following holds when evaluating an expression containing the relational oper * Errors raised when evaluating the `x` or `y` operand expressions are propagated. -* The values produced by evaluating both the `x` and `y` expressions must be a date, datetime, datetimezone, duration, logical, number, null, text or time value. Otherwise, an error with reason code `"Expression.Error"` is raised. +* The values produced by evaluating both the `x` and `y` expressions must be a binary, date, datetime, datetimezone, duration, logical, number, null, text or time value. Otherwise, an error with reason code `"Expression.Error"` is raised. * Both operands must be of the same type or `null`. Otherwise, an error with reason code `"Expression.Error"` is raised. * If either or both operands are `null`, the result is the `null` value. +* Two binaries are compared byte by byte. + * Two dates are compared by comparing their year parts and, if equal, their month parts and, if equal, their day parts. * Two datetimes are compared by comparing their year parts and, if equal, their month parts and, if equal, their day parts and, if equal, their hour parts and, if equal, their minute parts and, if equal, their second parts. From 6ca12e21bc6cd5a77cc09d627120f8582a014ff2 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 23 Jan 2023 14:38:53 -0500 Subject: [PATCH 163/934] Wording tweak --- query-languages/m/m-spec-error-handling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index f1f2d997b..8313392df 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -136,7 +136,7 @@ try error "A" otherwise 1 // 1 ``` -A _catch-clause_ with a zero-parameter _catch-function_ is effectively a longer, alternate syntax for an _otherwise-clause_: +A _catch-clause_ with a zero-parameter _catch-function_ is effectively an alternative syntax for an _otherwise-clause_: ```powerquery-m try error "A" catch () => 1 From 89e170098f87281a997fbbda8339755d451fe5b2 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 23 Jan 2023 14:40:13 -0500 Subject: [PATCH 164/934] Wording tweak --- query-languages/m/m-spec-error-handling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index 8313392df..97d333d4f 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -136,7 +136,7 @@ try error "A" otherwise 1 // 1 ``` -A _catch-clause_ with a zero-parameter _catch-function_ is effectively an alternative syntax for an _otherwise-clause_: +A _catch-clause_ with a zero-parameter _catch-function_ is effectively a longer, alternative syntax for an _otherwise-clause_: ```powerquery-m try error "A" catch () => 1 From 933c49ede60e063dfeab746e0c158bcc049cdea2 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 23 Jan 2023 14:42:59 -0500 Subject: [PATCH 165/934] Rephrasing away from type equality --- query-languages/m/m-spec-operators.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 90f413075..b9e1acf86 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -621,7 +621,7 @@ The following holds when evaluating an expression containing the relational oper * The values produced by evaluating both the `x` and `y` expressions must be a binary, date, datetime, datetimezone, duration, logical, number, null, text or time value. Otherwise, an error with reason code `"Expression.Error"` is raised. -* Both operands must be of the same type or `null`. Otherwise, an error with reason code `"Expression.Error"` is raised. +* Both operands must be the same kind of value or `null`. Otherwise, an error with reason code `"Expression.Error"` is raised. * If either or both operands are `null`, the result is the `null` value. From dd6f270878ebe25e13904b640d4a7e6d971401a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Mon, 23 Jan 2023 15:06:25 -0800 Subject: [PATCH 166/934] addressing small PR comment --- query-languages/dax/linest-function-dax.md | 4 ++-- query-languages/dax/linestx-function-dax.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index 98290f66c..00d46e532 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -33,9 +33,9 @@ LINEST ( , [, …][, ] ) A single-row table describing the line, plus additional statistics. These are the available columns: -- **Slope1**, **Slope2**, ..., **Slopen**: the coefficients corresponding to each x-value; +- **Slope1**, **Slope2**, ..., **SlopeN**: the coefficients corresponding to each x-value; - **Intercept**: intercept value; -- **StandardErrorSlope1**, **StandardErrorSlope2**, ..., **StandardErrorSlopen**: the standard error values for the coefficients **Slope1**, **Slope2**, ..., **Slopen**; +- **StandardErrorSlope1**, **StandardErrorSlope2**, ..., **StandardErrorSlopeN**: the standard error values for the coefficients **Slope1**, **Slope2**, ..., **SlopeN**; - **StandardErrorIntercept**: the standard error value for the constant **Intercept**; - **CoefficientOfDetermination**: the coefficient of determination (r²). Compares estimated and actual y-values, and ranges in value from 0 to 1: the higher the value, the higher the correlation in the sample; - **StandardError**: the standard error for the y estimate; diff --git a/query-languages/dax/linestx-function-dax.md b/query-languages/dax/linestx-function-dax.md index 2594a7ae3..b298aefbc 100644 --- a/query-languages/dax/linestx-function-dax.md +++ b/query-languages/dax/linestx-function-dax.md @@ -34,9 +34,9 @@ LINESTX (
, , [, …][, ] ) A single-row table describing the line, plus additional statistics. These are the available columns: -- **Slope1**, **Slope2**, ..., **Slopen**: the coefficients corresponding to each x-value; +- **Slope1**, **Slope2**, ..., **SlopeN**: the coefficients corresponding to each x-value; - **Intercept**: intercept value; -- **StandardErrorSlope1**, **StandardErrorSlope2**, ..., **StandardErrorSlopen**: the standard error values for the coefficients **Slope1**, **Slope2**, ..., **Slopen**; +- **StandardErrorSlope1**, **StandardErrorSlope2**, ..., **StandardErrorSlopeN**: the standard error values for the coefficients **Slope1**, **Slope2**, ..., **SlopeN**; - **StandardErrorIntercept**: the standard error value for the constant **Intercept**; - **CoefficientOfDetermination**: the coefficient of determination (r²). Compares estimated and actual y-values, and ranges in value from 0 to 1: the higher the value, the higher the correlation in the sample; - **StandardError**: the standard error for the y estimate; From 2c45640d5947fee1d106216b48801782ea2b1ee8 Mon Sep 17 00:00:00 2001 From: Mario da Silva Date: Tue, 24 Jan 2023 17:00:26 -0800 Subject: [PATCH 167/934] replacing LINEST example queries for examples that use base tables --- query-languages/dax/linest-function-dax.md | 65 ++++++++++------------ 1 file changed, 29 insertions(+), 36 deletions(-) diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index 00d46e532..9b4d85afa 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -53,14 +53,9 @@ A single-row table describing the line, plus additional statistics. These are th The following DAX query: ```dax -DEFINE VAR TotalSalesByRegion = SUMMARIZECOLUMNS( - 'Sales Territory'[Sales Territory Key], - 'Sales Territory'[Population], - "Total Sales", SUM(Sales[Sales Amount]) -) EVALUATE LINEST( - 'TotalSalesByRegion'[Total Sales], - 'TotalSalesByRegion'[Population] + 'FactInternetSales'[SalesAmount], + 'FactInternetSales'[TotalProductCost] ) ``` @@ -68,20 +63,20 @@ Returns a single-row table with ten columns: |Slope1|Intercept|StandardErrorSlope1|StandardErrorIntercept|CoefficientOfDetermination| |-----|-----|-----|-----|-----| -|6.42271517588|-410592.76216|0.24959467764561|307826.343996223|0.973535860750193| +|1.67703250456677|6.34550460373026|0.000448675725548806|0.279131821917317|0.995695557281456| |StandardError|FStatistic|DegreesOfFreedom|RegressionSumOfSquares|ResidualSumOfSquares| |-----|-----|-----|-----|-----| -|630758.1747292|662.165707642|18|263446517001130|7161405749781.07| +|60.9171030357485|13970688.6139993|60396|51843736761.658|224123120.339218| - **Slope1** and **Intercept**: the coefficients of the calculated linear model; - **StandardErrorSlope1** and **StandardErrorIntercept**: the standard error values for the coefficients above; - **CoefficientOfDetermination**, **StandardError**, **FStatistic**, **DegreesOfFreedom**, **RegressionSumOfSquares** and **ResidualSumOfSquares**: regression statistics about the model. -For a given sales territory, this model predicts total sales by the following formula: +For a given internet sale, this model predicts the sale amount by the following formula: ``` -Total Sales = Slope1 * Population + Intercept +SalesAmount = Slope1 * TotalProductCost + Intercept ``` ## Example 2 @@ -89,37 +84,35 @@ Total Sales = Slope1 * Population + Intercept The following DAX query: ```dax -DEFINE VAR TotalSalesByCustomer = SUMMARIZECOLUMNS( - 'Customer'[Customer ID], - 'Customer'[Age], - 'Customer'[NumOfChildren], - "Total Sales", SUM(Sales[Sales Amount]) -) EVALUATE LINEST( - 'TotalSalesByCustomer'[Total Sales], - 'TotalSalesByCustomer'[Age], - 'TotalSalesByCustomer'[NumOfChildren] + 'DimCustomer'[TotalSalesAmount], + 'DimCustomer'[YearlyIncome], + 'DimCustomer'[TotalChildren], + 'DimCustomer'[BirthDate] ) ``` -Returns a single-row table with twelve columns: - -|Slope1|Slope2|Intercept|StandardErrorSlope1| -|--|--|--|--| -|69.0435458093763|33.005949841721|-871.118539339539|0.872588875481658| - -|StandardErrorSlope2|StandardErrorIntercept|CoefficientOfDetermination|StandardError| -|--|--|--|--| -|6.21158863903435|26.726292527427|0.984892920482022|68.5715034014342| - -|FStatistic|DegreesOfFreedom|RegressionSumOfSquares|ResidualSumOfSquares| -|--|--|--|--| -|3161.91535144391|97|29734974.9782379|456098.954637092| - -For a given customer, this model predicts total sales by the following formula: +Returns a single-row table with fourteen columns: + +- Slope1 +- Slope2 +- Slope3 +- Intercept +- StandardErrorSlope1 +- StandardErrorSlope2 +- StandardErrorSlope3 +- StandardErrorIntercept +- CoefficientOfDetermination +- StandardError +- FStatistic +- DegreesOfFreedom +- RegressionSumOfSquares +- ResidualSumOfSquares + +For a given customer, this model predicts total sales by the following formula (the birth date is automatically converted to a number): ``` -Total Sales = Slope1 * Age + Slope2 * NumOfChildren + Intercept +TotalSalesAmount = Slope1 * YearlyIncome + Slope2 * TotalChildren + Slope3 * BirthDate + Intercept ``` ## See also From 3128bc5910e7e6d35f4d928cd15f8a464b734b68 Mon Sep 17 00:00:00 2001 From: Mario da Silva Date: Tue, 24 Jan 2023 17:02:05 -0800 Subject: [PATCH 168/934] fixing identation --- query-languages/dax/linest-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index 9b4d85afa..8b667f065 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -87,7 +87,7 @@ The following DAX query: EVALUATE LINEST( 'DimCustomer'[TotalSalesAmount], 'DimCustomer'[YearlyIncome], - 'DimCustomer'[TotalChildren], + 'DimCustomer'[TotalChildren], 'DimCustomer'[BirthDate] ) ``` From b405a36aadc075bf8b5a33977ee74908fe2043d6 Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Tue, 31 Jan 2023 12:32:01 -0800 Subject: [PATCH 169/934] Update statements-dax.md --- query-languages/dax/statements-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/statements-dax.md b/query-languages/dax/statements-dax.md index 09cd2fcff..905b8dd67 100644 --- a/query-languages/dax/statements-dax.md +++ b/query-languages/dax/statements-dax.md @@ -16,7 +16,7 @@ recommendations: false |Statement |Description | |---------|---------| -|[DEFINE](define-statement-dax.md) |(Keyword) Introduces one or more one or more entity definitions that can be applied to one or more EVALUATE statements.| +|[DEFINE](define-statement-dax.md) |(Keyword) Introduces one or more entity definitions that can be applied to one or more EVALUATE statements.| |[EVALUATE](evaluate-statement-dax.md) | (Keyword) Introduces a statement containing a table expression required to execute a DAX query. | |[MEASURE](measure-statement-dax.md) |(Keyword) Introduces a measure definition that can be used in one or more EVALUATE statements in a query. | |[ORDER BY](orderby-statement-dax.md) |(Keyword) Introduces a statement that defines the sort order of query results returned by an EVALUATE statement. | From c2b9e9946cc20238d3fdd7c2cda96e85c9911de8 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 1 Feb 2023 17:19:20 -0800 Subject: [PATCH 170/934] New example. --- query-languages/dax/topn-function-dax.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/query-languages/dax/topn-function-dax.md b/query-languages/dax/topn-function-dax.md index 87945261a..96521dd5f 100644 --- a/query-languages/dax/topn-function-dax.md +++ b/query-languages/dax/topn-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: TOPN" title: "TOPN function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 06/08/2022 +ms.date: 02/01/2023 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -50,12 +50,16 @@ The following measure formula returns the top 10 sold products by sales amount. ```dax = SUMX( - TOPN(10, - SUMMARIZE(Product, [ProductKey], "TotalSales", - SUMX(RELATED(InternetSales_USD[SalesAmount_USD]), - InternetSales_USD[SalesAmount_USD]) + SUMX(RELATED(ResellerSales_USD[SalesAmount_USD]), - ResellerSales_USD[SalesAmount_USD]) - ) - ) - ) + TOPN( + 10, + SUMMARIZE( + InternetSales, + InternetSales[ProductKey], + "TotalSales", SUM(InternetSales[SalesAmount]) + ), + [TotalSales], DESC + ), + [TotalSales] +) + ``` From a7506b059b527d67790d97856b80e2fa8cee48fb Mon Sep 17 00:00:00 2001 From: DubeyAbhay <31397223+DubeyAbhay@users.noreply.github.com> Date: Sun, 12 Feb 2023 14:39:18 +1100 Subject: [PATCH 171/934] dax syntax @ row 71 Row 71 from ```dax BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactOnlineSales[ProductKey], DimProduct[ProductKey] , Both)) ``` to ```dax BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both)) ``` --- query-languages/dax/crossfilter-function.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/crossfilter-function.md b/query-languages/dax/crossfilter-function.md index daf819c78..a11f06fe1 100644 --- a/query-languages/dax/crossfilter-function.md +++ b/query-languages/dax/crossfilter-function.md @@ -68,7 +68,7 @@ There are two ways to get the count of products by year: When using DAX, we can use the CROSSFILTER function to change how the cross-filter direction behaves between two columns defined by a relationship. In this case, the DAX expression looks like this: ```dax -BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both)) +BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactOnlineSales[ProductKey], DimProduct[ProductKey] , Both)) ``` By using the CROSSFILTER function in our measure expression, we get the expected results: From 3091c93c67944bd6b3bba429653020a20a506f33 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 16 Feb 2023 12:21:52 -0800 Subject: [PATCH 172/934] Adding to New DAX functions. --- query-languages/dax/new-dax-functions.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 65f5b5c1c..ac9361c84 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -2,7 +2,7 @@ description: "Learn more about: New DAX functions" title: "New DAX functions | Microsoft Docs" ms.service: powerbi -ms.date: 06/20/2022 +ms.date: 02/16/2023 ms.subservice: dax ms.reviewer: owend ms.topic: reference @@ -23,6 +23,8 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| +|[LINEST](linest-function-dax.md)|February, 2023|Uses the Least Squares method to calculate a straight line that best fits the given data.| +|[LINESTX](linestx-function-dax.md)|February, 2023|Uses the Least Squares method to calculate a straight line that best fits the given data. The data result from expressions evaluated for each row in a table.| |[INDEX](index-function-dax.md)| December, 2022 | Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| |[OFFSET](offset-function-dax.md)| December, 2022 | Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset.| |[ORDERBY](orderby-function-dax.md)| December, 2022 | Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| From 454a1749122b243b2beab921beea45650b72d851 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 17 Feb 2023 14:29:48 -0800 Subject: [PATCH 173/934] Added March updates to Power Query M reference --- query-languages/m/binary-functions.md | 3 ++- query-languages/m/binary-split.md | 16 ++++++++++++++++ query-languages/m/function-values.md | 3 +-- query-languages/m/sql-database.md | 3 ++- query-languages/m/sql-databases.md | 3 ++- query-languages/m/toc.yml | 2 -- query-languages/m/viewfunction-tryinvoke.md | 16 ---------------- query-languages/m/web-browsercontents.md | 3 ++- 8 files changed, 25 insertions(+), 24 deletions(-) create mode 100644 query-languages/m/binary-split.md delete mode 100644 query-languages/m/viewfunction-tryinvoke.md diff --git a/query-languages/m/binary-functions.md b/query-languages/m/binary-functions.md index fec6d77d2..58aface22 100644 --- a/query-languages/m/binary-functions.md +++ b/query-languages/m/binary-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Binary functions" title: "Binary functions" -ms.date: 10/7/2022 +ms.date: 2/17/2023 --- # Binary functions @@ -57,6 +57,7 @@ These functions create and manipulate binary data. |[Binary.InferContentType](binary-infercontenttype.md)|Returns a record with field Content.Type that contains the inferred MIME-type.| |[Binary.Length](binary-length.md)|Returns the length of binary values.| |[Binary.Range](binary-range.md)|Returns a subset of the binary value beginning at an offset.| +|[Binary.Split](binary-split.md)|Splits the specified binary into a list of binaries using the specified page size.| |[Binary.ToList](binary-tolist.md)|Converts a binary value into a list of numbers| |[Binary.ToText](binary-totext.md)|Encodes binary data into a text form.| |[Binary.View](binary-view.md) | Creates or extends a binary with user-defined handlers for query and action operations.| diff --git a/query-languages/m/binary-split.md b/query-languages/m/binary-split.md new file mode 100644 index 000000000..07d9fdc8e --- /dev/null +++ b/query-languages/m/binary-split.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Binary.Split" +title: "Binary.Split" +ms.date: 2/17/2023 +--- +# Binary.Split + +## Syntax + +
+Binary.Split(binary as binary, pageSize as number) as list
+
+ +## About + +Splits `binary` into a list of binaries where the first element of the output list is a binary containing the first `pageSize` bytes from the source binary, the next element of the output list is a binary containing the next `pageSize` bytes from the source binary, and so on. diff --git a/query-languages/m/function-values.md b/query-languages/m/function-values.md index ce96efc2b..8d4a4ea05 100644 --- a/query-languages/m/function-values.md +++ b/query-languages/m/function-values.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Function values" title: "Function values" -ms.date: 1/18/2023 +ms.date: 2/17/2023 --- # Function values @@ -14,4 +14,3 @@ These functions create and invoke other M functions. |[Function.InvokeAfter](function-invokeafter.md)|Returns the result of invoking function after duration delay has passed.| |[Function.IsDataSource](function-isdatasource.md)|Returns whether or not function is considered a data source.| |[Function.ScalarVector](function-scalarvector.md)|Returns a scalar function of type scalarFunctionType that invokes vectorFunction with a single row of arguments and returns its single output. | -|[ViewFunction.TryInvoke](viewfunction-tryinvoke.md) | Tries to fold the given view function. | diff --git a/query-languages/m/sql-database.md b/query-languages/m/sql-database.md index a4bd6e3f1..161c1d9b3 100644 --- a/query-languages/m/sql-database.md +++ b/query-languages/m/sql-database.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Sql.Database" title: "Sql.Database" -ms.date: 10/7/2022 +ms.date: 2/17/2023 --- # Sql.Database @@ -26,5 +26,6 @@ Returns a table of SQL tables, views, and stored functions from the SQL Server d * `UnsafeTypeConversions`: A logical (true/false) that, if true, attempts to fold type conversions which could fail and cause the entire query to fail. Not recommended for general use. * `ContextInfo`: A binary value that is used to set the CONTEXT_INFO before running each command. * `OmitSRID`: A logical (true/false) that, if true, omits the SRID when producing Well-Known Text from geometry and geography types. +* `EnableCrossDatabaseFolding`: A logical (true/false) value that, if true, allows query folding across databases on the same server. The default value is false. The record parameter is specified as [option1 = value1, option2 = value2...] or [Query = "select ..."] for example. diff --git a/query-languages/m/sql-databases.md b/query-languages/m/sql-databases.md index f0911b09a..0823efe0e 100644 --- a/query-languages/m/sql-databases.md +++ b/query-languages/m/sql-databases.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Sql.Databases" title: "Sql.Databases" -ms.date: 10/7/2022 +ms.date: 2/17/2023 --- # Sql.Databases @@ -25,6 +25,7 @@ Returns a table of databases on the specified SQL server, `server`. An optional * `UnsafeTypeConversions`: A logical (true/false) that, if true, attempts to fold type conversions which could fail and cause the entire query to fail. Not recommended for general use. * `ContextInfo`: A binary value that is used to set the CONTEXT_INFO before running each command. * `OmitSRID`: A logical (true/false) that, if true, omits the SRID when producing Well-Known Text from geometry and geography types. +* `EnableCrossDatabaseFolding`: A logical (true/false) value that, if true, allows query folding across databases on the same server. The default value is false. The record parameter is specified as [option1 = value1, option2 = value2...] for example. diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 5dee6c249..25025e110 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -606,8 +606,6 @@ items: href: function-isdatasource.md - name: Function.ScalarVector href: function-scalarvector.md - - name: ViewFunction.TryInvoke - href: viewfunction-tryinvoke.md - name: Lines functions items: - name: Lines functions overview diff --git a/query-languages/m/viewfunction-tryinvoke.md b/query-languages/m/viewfunction-tryinvoke.md deleted file mode 100644 index 160ad0647..000000000 --- a/query-languages/m/viewfunction-tryinvoke.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -description: "Learn more about: ViewFunction.TryInvoke" -title: "ViewFunction.TryInvoke" -ms.date: 1/18/2023 ---- -# ViewFunction.TryInvoke - -## Syntax - -
 
-ViewFunction.TryInvoke(function as function, args as list) as any
-
- -## About - -Tries to fold the given view function using the specified list of arguments and returns the result. Throws a folding error if folding fails. diff --git a/query-languages/m/web-browsercontents.md b/query-languages/m/web-browsercontents.md index 1d868d153..a4ca3fbfd 100644 --- a/query-languages/m/web-browsercontents.md +++ b/query-languages/m/web-browsercontents.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Web.BrowserContents" title: "Web.BrowserContents" -ms.date: 3/14/2022 +ms.date: 2/17/2023 --- # Web.BrowserContents @@ -15,6 +15,7 @@ Web.BrowserContents(url as text, optional options as nullable reco Returns the HTML for the specified `url`, as viewed by a web browser. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: +* `ApiKeyName`: If the target site has a notion of an API key, this parameter can be used to specify the name (not the value) of the key parameter that must be used in the URL. The actual key value is provided in the credential. * `WaitFor`: Specifies a condition to wait for before downloading the HTML, in addition to waiting for the page to load (which is always done). Can be a record containing Timeout and/or Selector fields. If only a Timeout is specified, the function will wait the amount of time specified before downloading the HTML. If both a Selector and Timeout are specified, and the Timeout elapses before the Selector exists on the page, an error will be thrown. If a Selector is specified with no Timeout, a default Timeout of 30 seconds is applied. ## Example 1 From b2dcc9bef4040e09e61cbc6b144ca658eb4236d9 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 17 Feb 2023 15:30:00 -0800 Subject: [PATCH 174/934] Added redirection for removed function --- .openpublishing.redirection.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 744cbbfbf..677837aed 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -39,6 +39,11 @@ "source_path": "query-languages/dax/pre-defined-numeric-formats-for-the-format-function.md", "redirect_url": "/dax/format-function-dax", "redirect_document_id": false + }, + { + "source_path": "query-languages/m/viewfunction.tryinvoke.md", + "redirect_url": "/m/function-values", + "redirect_document_id": false } ] } From 675845e36743f7d770b5027216b26e7a50dac190 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 17 Feb 2023 15:32:31 -0800 Subject: [PATCH 175/934] Use the correct filename this time --- .openpublishing.redirection.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 677837aed..45105fc79 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -41,7 +41,7 @@ "redirect_document_id": false }, { - "source_path": "query-languages/m/viewfunction.tryinvoke.md", + "source_path": "query-languages/m/viewfunction-tryinvoke.md", "redirect_url": "/m/function-values", "redirect_document_id": false } From a1045fd9db752858b195272f29e0dc8854841aa4 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 21 Feb 2023 12:40:53 -0800 Subject: [PATCH 176/934] Updated images. --- query-languages/dax/crossfilter-function.md | 12 ++++++------ query-languages/dax/dax-overview.md | 14 +++++++------- .../dax/media/crossfilter-examp-diagview.png | Bin 98498 -> 0 bytes .../crossfilter-examp-diagview.png | Bin 0 -> 96600 bytes .../crossfilter-examp-pivottable1.png | Bin .../crossfilter-examp-pivottable2.png | Bin .../{ => dax-overview}/dax-overview-book.png | Bin .../{ => dax-overview}/dax-overview-excel.png | Bin .../{ => dax-overview}/dax-overview-pbid.png | Bin .../{ => dax-overview}/dax-overview-ssms.png | Bin .../{ => dax-overview}/dax-overview-studio.png | Bin .../{ => dax-overview}/dax-overview-te.png | Bin .../{ => dax-overview}/dax-overview-vs.png | Bin 13 files changed, 13 insertions(+), 13 deletions(-) delete mode 100644 query-languages/dax/media/crossfilter-examp-diagview.png create mode 100644 query-languages/dax/media/crossfilter-function/crossfilter-examp-diagview.png rename query-languages/dax/media/{ => crossfilter-function}/crossfilter-examp-pivottable1.png (100%) rename query-languages/dax/media/{ => crossfilter-function}/crossfilter-examp-pivottable2.png (100%) rename query-languages/dax/media/{ => dax-overview}/dax-overview-book.png (100%) rename query-languages/dax/media/{ => dax-overview}/dax-overview-excel.png (100%) rename query-languages/dax/media/{ => dax-overview}/dax-overview-pbid.png (100%) rename query-languages/dax/media/{ => dax-overview}/dax-overview-ssms.png (100%) rename query-languages/dax/media/{ => dax-overview}/dax-overview-studio.png (100%) rename query-languages/dax/media/{ => dax-overview}/dax-overview-te.png (100%) rename query-languages/dax/media/{ => dax-overview}/dax-overview-vs.png (100%) diff --git a/query-languages/dax/crossfilter-function.md b/query-languages/dax/crossfilter-function.md index a11f06fe1..181bf26f9 100644 --- a/query-languages/dax/crossfilter-function.md +++ b/query-languages/dax/crossfilter-function.md @@ -3,7 +3,7 @@ description: "Learn more about: CROSSFILTER" title: "CROSSFILTER function | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 04/16/2021 +ms.date: 02/21/2023 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -51,13 +51,13 @@ The function returns no value; the function only sets the cross-filtering direct ## Example -In the following model diagram, both DimProduct and DimDate have a single direction relationship with FactOnlineSales. +In the following model diagram, both DimProduct and DimDate have a single direction relationship with FactInternetSales. -![CROSSFILTER_Examp_DiagView](media/crossfilter-examp-diagview.png "CROSSFILTER_Examp_DiagView") +![CROSSFILTER_Examp_DiagView](media/crossfilter-function/crossfilter-examp-diagview.png "CROSSFILTER_Examp_DiagView") By default, we cannot get the Count of Products sold by year: -![CROSSFILTER_Examp_PivotTable1](media/crossfilter-examp-pivottable1.png "CROSSFILTER_Examp_PivotTable1") +![CROSSFILTER_Examp_PivotTable1](media/crossfilter-function/crossfilter-examp-pivottable1.png "CROSSFILTER_Examp_PivotTable1") There are two ways to get the count of products by year: @@ -68,9 +68,9 @@ There are two ways to get the count of products by year: When using DAX, we can use the CROSSFILTER function to change how the cross-filter direction behaves between two columns defined by a relationship. In this case, the DAX expression looks like this: ```dax -BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactOnlineSales[ProductKey], DimProduct[ProductKey] , Both)) +BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both)) ``` By using the CROSSFILTER function in our measure expression, we get the expected results: -![CROSSFILTER_Examp_PivotTable2](media/crossfilter-examp-pivottable2.png "CROSSFILTER_Examp_PivotTable2") +![CROSSFILTER_Examp_PivotTable2](media/crossfilter-function/crossfilter-examp-pivottable2.png "CROSSFILTER_Examp_PivotTable2") diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index 4b775c2f2..b005522e8 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -444,37 +444,37 @@ In the first four cases, DAX flags the entire column that contains the invalid f ### Power BI Desktop -![Power BI Desktop](media/dax-overview-pbid.png) +![Power BI Desktop](media/dax-overview/dax-overview-pbid.png) [Power BI Desktop](https://powerbi.microsoft.com/desktop/) is a free data modeling and reporting application. The model designer includes a DAX editor for creating DAX calculation formulas. ### Power Pivot in Excel -![Power Pivot in Excel](media/dax-overview-excel.png) +![Power Pivot in Excel](media/dax-overview/dax-overview-excel.png) The [Power Pivot in Excel](https://support.office.com/article/power-pivot-powerful-data-analysis-and-data-modeling-in-excel-a9c2c6e2-cc49-4976-a7d7-40896795d045) models designer includes a DAX editor for creating DAX calculation formulas. ### Visual Studio -![Visual Studio](media/dax-overview-vs.png) +![Visual Studio](media/dax-overview/dax-overview-vs.png) Visual Studio with [Analysis Services projects](https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftAnalysisServicesModelingProjects) extension (VSIX) is used to create Analysis Services model projects. Tabular model designer, installed with the projects extension includes a DAX editor. ### SQL Server Management Studio -![SQL Server Management Studio](media/dax-overview-ssms.png) +![SQL Server Management Studio](media/dax-overview/dax-overview-ssms.png) [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS) is an essential tool for working with Analysis Services. SSMS includes a DAX query editor for querying both tabular and multidimensional models. ### DAX Studio -![DAX Studio icon](media/dax-overview-studio.png) +![DAX Studio icon](media/dax-overview/dax-overview-studio.png) [DAX Studio](http://daxstudio.org/) is an open-source client tool for creating and running DAX queries against Analysis Services, Power BI Desktop, and Power Pivot in Excel models. ### Tabular Editor -![Tabular Editor icon](media/dax-overview-te.png) +![Tabular Editor icon](media/dax-overview/dax-overview-te.png) [Tabular Editor](https://tabulareditor.com/) is an open-source tool that provides an intuitive, hierarchical view of every object in tabular model metadata. Tabular Editor includes a DAX Editor with syntax highlighting, which provides an easy way to edit measures, calculated column, and calculated table expressions. @@ -488,7 +488,7 @@ When learning DAX, it's best to use the application you'll be using to create yo The [Definitive Guide to DAX](https://www.sqlbi.com/books/the-definitive-guide-to-dax-2nd-edition/) by Alberto Ferrari and Marco Russo (Microsoft Press). Now in its second edition, this extensive guide provides basics to innovative high-performance techniques for beginning data modelers and BI professionals. -![The Definitive Guide to DAX book image](media/dax-overview-book.png) +![The Definitive Guide to DAX book image](media/dax-overview/dax-overview-book.png) ## Community diff --git a/query-languages/dax/media/crossfilter-examp-diagview.png b/query-languages/dax/media/crossfilter-examp-diagview.png deleted file mode 100644 index b445d03db22f3bd4842a2a24e100382a472d0f73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98498 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 RiC5r9MnX}%T=cWw{{tGFlj#5e diff --git a/query-languages/dax/media/crossfilter-function/crossfilter-examp-diagview.png b/query-languages/dax/media/crossfilter-function/crossfilter-examp-diagview.png new file mode 100644 index 0000000000000000000000000000000000000000..0f5263106f7007ecd264f62bb58fe2bed7f1949d GIT binary patch literal 96600 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 E0rle2o&W#< literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/crossfilter-examp-pivottable1.png b/query-languages/dax/media/crossfilter-function/crossfilter-examp-pivottable1.png similarity index 100% rename from query-languages/dax/media/crossfilter-examp-pivottable1.png rename to query-languages/dax/media/crossfilter-function/crossfilter-examp-pivottable1.png diff --git a/query-languages/dax/media/crossfilter-examp-pivottable2.png b/query-languages/dax/media/crossfilter-function/crossfilter-examp-pivottable2.png similarity index 100% rename from query-languages/dax/media/crossfilter-examp-pivottable2.png rename to query-languages/dax/media/crossfilter-function/crossfilter-examp-pivottable2.png diff --git a/query-languages/dax/media/dax-overview-book.png b/query-languages/dax/media/dax-overview/dax-overview-book.png similarity index 100% rename from query-languages/dax/media/dax-overview-book.png rename to query-languages/dax/media/dax-overview/dax-overview-book.png diff --git a/query-languages/dax/media/dax-overview-excel.png b/query-languages/dax/media/dax-overview/dax-overview-excel.png similarity index 100% rename from query-languages/dax/media/dax-overview-excel.png rename to query-languages/dax/media/dax-overview/dax-overview-excel.png diff --git a/query-languages/dax/media/dax-overview-pbid.png b/query-languages/dax/media/dax-overview/dax-overview-pbid.png similarity index 100% rename from query-languages/dax/media/dax-overview-pbid.png rename to query-languages/dax/media/dax-overview/dax-overview-pbid.png diff --git a/query-languages/dax/media/dax-overview-ssms.png b/query-languages/dax/media/dax-overview/dax-overview-ssms.png similarity index 100% rename from query-languages/dax/media/dax-overview-ssms.png rename to query-languages/dax/media/dax-overview/dax-overview-ssms.png diff --git a/query-languages/dax/media/dax-overview-studio.png b/query-languages/dax/media/dax-overview/dax-overview-studio.png similarity index 100% rename from query-languages/dax/media/dax-overview-studio.png rename to query-languages/dax/media/dax-overview/dax-overview-studio.png diff --git a/query-languages/dax/media/dax-overview-te.png b/query-languages/dax/media/dax-overview/dax-overview-te.png similarity index 100% rename from query-languages/dax/media/dax-overview-te.png rename to query-languages/dax/media/dax-overview/dax-overview-te.png diff --git a/query-languages/dax/media/dax-overview-vs.png b/query-languages/dax/media/dax-overview/dax-overview-vs.png similarity index 100% rename from query-languages/dax/media/dax-overview-vs.png rename to query-languages/dax/media/dax-overview/dax-overview-vs.png From 1868c7ed5732a5dcff4ea8cdc298b1ed794c8b1e Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 27 Feb 2023 14:21:30 -0800 Subject: [PATCH 177/934] Updated description --- query-languages/dax/aggregation-functions-dax.md | 4 ++-- query-languages/dax/approximate-distinctcount-function-dax.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/aggregation-functions-dax.md b/query-languages/dax/aggregation-functions-dax.md index b12d5d3e0..80a80e3d2 100644 --- a/query-languages/dax/aggregation-functions-dax.md +++ b/query-languages/dax/aggregation-functions-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: Aggregation functions" title: "Aggregation functions (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 06/07/2022 +ms.date: 02/27/2023 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -18,7 +18,7 @@ Aggregation functions calculate a (scalar) value such as count, sum, average, mi |Function |Description | |---------|---------| -|[APPROXIMATEDISTINCTCOUNT](approximate-distinctcount-function-dax.md) | Returns the *approximate* number of rows that contain distinct values in a column. | +|[APPROXIMATEDISTINCTCOUNT](approximate-distinctcount-function-dax.md) | Returns an *estimated* count of unique values in a column. | |[AVERAGE](average-function-dax.md) | Returns the average (arithmetic mean) of all the numbers in a column. | |[AVERAGEA](averagea-function-dax.md) | Returns the average (arithmetic mean) of the values in a column. | |[AVERAGEX](averagex-function-dax.md) | Calculates the average (arithmetic mean) of a set of expressions evaluated over a table. | diff --git a/query-languages/dax/approximate-distinctcount-function-dax.md b/query-languages/dax/approximate-distinctcount-function-dax.md index 32262d3de..4dfaef7af 100644 --- a/query-languages/dax/approximate-distinctcount-function-dax.md +++ b/query-languages/dax/approximate-distinctcount-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: APPROXIMATEDISTINCTCOUNT" title: "APPROXIMATEDISTINCTCOUNT function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 07/05/2020 +ms.date: 02/27/2023 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -13,7 +13,7 @@ recommendations: false --- # APPROXIMATEDISTINCTCOUNT -Returns the *approximate* number of rows that contain distinct values in a column. This function can query large amounts of data with potentially better performance than DISTINCTCOUNT, with slight deviation from the exact result. +Returns an *estimated* count of unique values in a column. This function invokes a corresponding aggregation operation in the data source, which is optimized for query performance, but with slightly reduced accuracy. This function can be used with the following data sources: Azure SQL, Azure SQL Data Warehouse, BigQuery, Databricks, and Snowflake. This function requires DirectQuery mode. Import mode and dual storage mode are not supported. ## Syntax From 09ed40806e66c20010e1ba04e5a20e3a6605c5ea Mon Sep 17 00:00:00 2001 From: nachoalonsoportillo <41644064+nachoalonsoportillo@users.noreply.github.com> Date: Thu, 2 Mar 2023 11:58:42 +0100 Subject: [PATCH 178/934] Make orderBy_expression required param of SAMPLE Based on my tests, SAMPLE function requires three arguments, which are n_value, table, and orderBy_expression. An attempt to invoke it with only n_value and table fails. --- query-languages/dax/sample-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/sample-function-dax.md b/query-languages/dax/sample-function-dax.md index 7e20e8b01..74061af06 100644 --- a/query-languages/dax/sample-function-dax.md +++ b/query-languages/dax/sample-function-dax.md @@ -27,7 +27,7 @@ SAMPLE(,

, , [[, |---------|---------| |n_value | The number of rows to return. It is any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). If a non-integer value (or expression) is entered, the result is cast as an integer. | |table | Any DAX expression that returns a table of data from where to extract the 'n' sample rows. | -|orderBy_expression | (Optional) Any scalar DAX expression where the result value is evaluated for each row of *table*. | +|orderBy_expression | Any scalar DAX expression where the result value is evaluated for each row of *table*. | |order | (Optional) A value that specifies how to sort *orderBy_expression* values, ascending or descending: 0 (zero), sorts in descending order of values of *order_by*. 1, ranks in ascending order of *order_by*. | ## Return value From 248ba6903a5e9e898225bc3fdf68bba70eb31f94 Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Wed, 8 Mar 2023 17:11:27 +0530 Subject: [PATCH 179/934] Update time-intelligence-functions-dax.md --- query-languages/dax/time-intelligence-functions-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/time-intelligence-functions-dax.md b/query-languages/dax/time-intelligence-functions-dax.md index 3a3eb7100..adee6aa85 100644 --- a/query-languages/dax/time-intelligence-functions-dax.md +++ b/query-languages/dax/time-intelligence-functions-dax.md @@ -12,7 +12,7 @@ recommendations: false --- # Time intelligence functions -Data Analysis Expressions (DAX) includes time-intelligence functions that enable you to manipulate data using time periods, including days, months, quarters, and years, and then build and compare calculations over those periods. +Data Analysis Expressions (DAX) includes time-intelligence functions that enable you to manipulate data using time periods, including days, months, quarters, and years, and then build and compare calculations over those periods. Before using any time-intelligence functions, make sure to mark one of the tables containing date column as [Date Table](https://learn.microsoft.com/en-us/analysis-services/tabular-models/specify-mark-as-date-table-for-use-with-time-intelligence-ssas-tabular?view=asallproducts-allversions). ## In this category From 9ca1dc739c1d1e8bba8c447118990c2b135c78b1 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 8 Mar 2023 13:24:03 -0500 Subject: [PATCH 180/934] Exception -> error; Clarifying behavior --- query-languages/m/table-singlerow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-singlerow.md b/query-languages/m/table-singlerow.md index c70270452..182d311a0 100644 --- a/query-languages/m/table-singlerow.md +++ b/query-languages/m/table-singlerow.md @@ -13,7 +13,7 @@ Table.SingleRow(table as table) as record ## About -Returns the single row in the one row `table`. If the `table` has more than one row, an exception is thrown. +Returns the single row in the one row `table`. If the `table` does not contain exactly one row, an error is raised. ## Example 1 From 710d269ca0f7aae1283472d4a4a1b45723d47b34 Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Sat, 11 Mar 2023 10:41:48 +0530 Subject: [PATCH 181/934] Update time-intelligence-functions-dax.md --- query-languages/dax/time-intelligence-functions-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/time-intelligence-functions-dax.md b/query-languages/dax/time-intelligence-functions-dax.md index adee6aa85..acdd054a9 100644 --- a/query-languages/dax/time-intelligence-functions-dax.md +++ b/query-languages/dax/time-intelligence-functions-dax.md @@ -12,7 +12,7 @@ recommendations: false --- # Time intelligence functions -Data Analysis Expressions (DAX) includes time-intelligence functions that enable you to manipulate data using time periods, including days, months, quarters, and years, and then build and compare calculations over those periods. Before using any time-intelligence functions, make sure to mark one of the tables containing date column as [Date Table](https://learn.microsoft.com/en-us/analysis-services/tabular-models/specify-mark-as-date-table-for-use-with-time-intelligence-ssas-tabular?view=asallproducts-allversions). +Data Analysis Expressions (DAX) includes time-intelligence functions that enable you to manipulate data using time periods, including days, months, quarters, and years, and then build and compare calculations over those periods. Before using any time-intelligence functions, make sure to mark one of the tables containing date column as [Date Table](https://learn.microsoft.com/analysis-services/tabular-models/specify-mark-as-date-table-for-use-with-time-intelligence-ssas-tabular?view=asallproducts-allversions). ## In this category From 5df78a0c0093f94dbe908a612f14173f8ac32936 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 13 Mar 2023 14:35:53 -0400 Subject: [PATCH 182/934] Exception -> error; Example error change from record -> table; Wording tweaks --- query-languages/m/table-removecolumns.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index 1d22bd122..661294161 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -13,7 +13,7 @@ Table.RemoveColumns(table as table, columns as any, optional mi ## About -Removes the specified `columns` from the `table` provided. If the column doesn't exist, an exception is thrown unless the optional parameter `missingField` specifies an alternative (eg. `MissingField.UseNull` or `MissingField.Ignore`). +Removes the specified `columns` from the `table` provided. If a specified column does not exist, an error is raised unless the optional parameter `missingField` specifies an alternative behavior (eg. `MissingField.UseNull` or `MissingField.Ignore`). ## Example 1 @@ -34,7 +34,7 @@ Table.RemoveColumns( ### Example 2 -Remove column [Address] from the table. Throws an error if it doesn't exist. +Attempts to remove non-existent column [Address] from the table. Raises an error as the column doesn't exist. **Usage** @@ -47,4 +47,4 @@ Table.RemoveColumns( **Output** -`[Expression.Error] The field 'Address' of the record was not found.` +`Expression.Error: The column 'Address' of the table wasn't found.` From 2426ed23f694ecd996ff2832d952da0ddfbff772 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 15 Mar 2023 12:55:39 -0700 Subject: [PATCH 183/934] Added April updates to Power Query M reference --- query-languages/m/sharepoint-tables.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index bb9f5e550..b055e340d 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -1,7 +1,7 @@ --- description: "Learn more about: SharePoint.Tables" title: "SharePoint.Tables" -ms.date: 10/7/2022 +ms.date: 3/15/2023 --- # SharePoint.Tables @@ -16,5 +16,5 @@ SharePoint.Tables(url as text, optional options as nullable record Returns a table containing a row for each List item found at the specified SharePoint list, `url`. Each row contains properties of the List. `options` may be specified to control the following options: * `ApiVersion`: A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. -* `Implementation` -* `ViewMode` +* `Implementation`: Optional. Specifies which version of the SharePoint connector to use. Accepted values are "2.0" or null. If the value is "2.0", the 2.0 implementation of the SharePoint connector is used. If the value is null, the original implementation of the SharePoint connector is used. +* `ViewMode`: Optional. This option is only valid for implementation 2.0. Accepted values are "All" and "Default". If no value is specified, the value is set to "All". When "All"; is specified, the view includes all user-created and system-defined columns. When "Default" is specified, the view will match what the user sees when looking at the list online in whichever view that user set as Default in their settings. If the user edits their default view to add or remove either user-created or system-defined columns, or by creating a new view and setting it as default, these changes will propagate through the connector. From 27c8780b669d2a0cc54e38b2e69454b0178ecddc Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 20 Mar 2023 08:33:53 -0700 Subject: [PATCH 184/934] Fixed example from customer issue --- query-languages/m/number-from.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/number-from.md b/query-languages/m/number-from.md index a132f8386..8c2daa2b4 100644 --- a/query-languages/m/number-from.md +++ b/query-languages/m/number-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.From" title: "Number.From" -ms.date: 4/13/2022 +ms.date: 3/20/2023 --- # Number.From @@ -32,7 +32,7 @@ Get the `number` value of `"4"`. **Usage** ```powerquery-m -powerquery-mNumber.From("4") +Number.From("4") ``` **Output** From 92bc59263e244c02637d485d8320067749ff56a9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 20 Mar 2023 16:34:06 -0400 Subject: [PATCH 185/934] Update query-languages/m/table-removecolumns.md Co-authored-by: Ehren --- query-languages/m/table-removecolumns.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index 661294161..dd1ad5b15 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -13,7 +13,7 @@ Table.RemoveColumns(table as table, columns as any, optional mi ## About -Removes the specified `columns` from the `table` provided. If a specified column does not exist, an error is raised unless the optional parameter `missingField` specifies an alternative behavior (eg. `MissingField.UseNull` or `MissingField.Ignore`). +Removes the specified `columns` from the `table` provided. If a specified column doesn't exist, an error is raised unless the optional parameter `missingField` specifies an alternative behavior (for example, `MissingField.UseNull` or `MissingField.Ignore`). ## Example 1 From 88281d32641ea7e48190fbd86b3c2bbf60536f5f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 20 Mar 2023 16:34:32 -0400 Subject: [PATCH 186/934] Update query-languages/m/table-removecolumns.md Co-authored-by: Ehren --- query-languages/m/table-removecolumns.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index dd1ad5b15..e84febe15 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -34,7 +34,7 @@ Table.RemoveColumns( ### Example 2 -Attempts to remove non-existent column [Address] from the table. Raises an error as the column doesn't exist. +Try to remove a non-existent column from the table. **Usage** From 5f15bd1fbd3be8b5d02bccca0cf9f8b3c3750cf6 Mon Sep 17 00:00:00 2001 From: Rahul Tenany Date: Mon, 27 Mar 2023 14:06:42 -0700 Subject: [PATCH 187/934] Addressed comments --- query-languages/dax/rank-function-dax.md | 17 ++++++++-------- query-languages/dax/rownumber-function-dax.md | 20 +++++++++---------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 1d166af32..f4c7562f6 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -37,15 +37,16 @@ The rank number for the current context. ## Remarks -Each \ and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: +- Each \ and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: -- If there is exactly one corresponding outer column, its value is used. -- If there is no corresponding outer column, then: - - RANK will first determine all \ and \ columns that have no corresponding outer column. - - For every combination of existing values for these columns in RANK parent context, RANK is evaluated and a row is returned. - - RANK’s final output is a rank number. - -If the columns specified within \ and \ can't uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. + - If there is exactly one corresponding outer column, its value is used. + - If there is no corresponding outer column, then: + - RANK will first determine all \ and \ columns that have no corresponding outer column. + - For every combination of existing values for these columns in RANK parent context, RANK is evaluated and a row is returned. + - RANK’s final output is a rank number. +- If the columns specified within \ and \ can't uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. +- RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. +- RANK does not compare to RANKX as SUM compares to SUMX. ## Example diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 02e0e5f16..e6a6330ca 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -12,7 +12,7 @@ recommendations: false --- # ROWNUMBER -Returns the unique ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then then rank is blank. +Returns the unique ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then then rownumber is blank. ## Syntax @@ -31,7 +31,7 @@ ROWNUMBER ( [][, ][, ][, ] ) ## Return value -The rank number for the current context. +The rownumber number for the current context. ## Remarks @@ -39,19 +39,19 @@ Each \ and \ column must have a corresponding outer value - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column, then: - - RANK will first determine all \ and \ columns that have no corresponding outer column. - - For every combination of existing values for these columns in RANK parent context, RANK is evaluated and a row is returned. - - RANK’s final output is a union of these rows. + - ROWNUMBER will first determine all \ and \ columns that have no corresponding outer column. + - For every combination of existing values for these columns in ROWNUMBER parent context, ROWNUMBER is evaluated and a row is returned. + - ROWNUMBER’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. If the columns specified within \ and \ cannot uniquely identify every row in \, then: - ROWNUMBER will try to find the least number of additional columns required to uniquely identify every row. -- If such columns can be found, - ROWNUMBER will try to find the least number of additional columns required to uniquely identify every row. - will automatically append these new columns to \, and each partition is sorted using this new set of orderBy columns. -- If such columns cannot be found, an error is returned. - -If the function detects a tie at runtime, an error is returned. +- If such columns can be found, ROWNUMBER will + - Try to find the least number of additional columns required to uniquely identify every row. + - Automatically append these new columns to \ clause. + - Sort each partition using this new set of orderBy columns. +- If such columns cannot be found and the function detects a tie at runtime, an error is returned. ## Example From d4fff545560f3175c6c65c7a759aede01a784196 Mon Sep 17 00:00:00 2001 From: Rachel Price <52579263+raprice@users.noreply.github.com> Date: Mon, 27 Mar 2023 14:20:15 -0700 Subject: [PATCH 188/934] Fixing breadcrumb file --- query-languages/dax/breadcrumb/toc.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/breadcrumb/toc.yml b/query-languages/dax/breadcrumb/toc.yml index 61d8fca61..940b253a1 100644 --- a/query-languages/dax/breadcrumb/toc.yml +++ b/query-languages/dax/breadcrumb/toc.yml @@ -1,3 +1,3 @@ -- name: Docs - tocHref: / - topicHref: / \ No newline at end of file +- name: Data Analysis Expressions (DAX) + tocHref: /dax/ + topicHref: /dax/index From e07c47044a15ed316bd057fa5896f2b1f12798af Mon Sep 17 00:00:00 2001 From: Rachel Price <52579263+raprice@users.noreply.github.com> Date: Mon, 27 Mar 2023 14:21:05 -0700 Subject: [PATCH 189/934] header & breadcrumb fixes Add DAX L2 header, remove 'extend breadcrumb' feature (no longer supported) --- query-languages/dax/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index e84a01239..ce6f5bbb7 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -37,7 +37,7 @@ "externalReference": [], "globalMetadata": { "breadcrumb_path": "/dax/breadcrumb/toc.json", - "extendBreadcrumb": true, + "uhfHeaderId": "MSDocsHeader-DAX", "titleSuffix": "DAX", "show_latex": true, "contributors_to_exclude": [ From 898e8ef67e22abdfb7442b39c2f09244b433297a Mon Sep 17 00:00:00 2001 From: Rachel Price <52579263+raprice@users.noreply.github.com> Date: Mon, 27 Mar 2023 14:23:35 -0700 Subject: [PATCH 190/934] header & breadcrumb fixes Add correct L2 header and remove 'extend breadcrumbs' feature (no longer supported) --- query-languages/m/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 84de207e4..553b6642f 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -36,7 +36,7 @@ "externalReference": [], "globalMetadata": { "breadcrumb_path": "/powerquery-m/breadcrumb/toc.json", - "extendBreadcrumb": true, + "uhfHeaderId": "MSDocsHeader-PowerQueryM", "titleSuffix": "PowerQuery M", "ms.service": "powerquery", "ms.topic": "article", From 537272048a1923cd4506ae31e5245a29e5ad1a03 Mon Sep 17 00:00:00 2001 From: Rachel Price <52579263+raprice@users.noreply.github.com> Date: Mon, 27 Mar 2023 14:25:07 -0700 Subject: [PATCH 191/934] Fix breadcrumbs --- query-languages/m/breadcrumb/toc.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/breadcrumb/toc.yml b/query-languages/m/breadcrumb/toc.yml index 61d8fca61..62b3289a2 100644 --- a/query-languages/m/breadcrumb/toc.yml +++ b/query-languages/m/breadcrumb/toc.yml @@ -1,3 +1,3 @@ -- name: Docs - tocHref: / - topicHref: / \ No newline at end of file +- name: Power Query M + tocHref: /powerquery-m/ + topicHref: /powerquery-m/index From 6f1f2fb60d1d014fd27cc2c0ab616e1ed2af0795 Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Mon, 27 Mar 2023 14:55:16 -0700 Subject: [PATCH 192/934] Update orderby-function-dax.md Per Jeroen, removed the following Order definition: \, an optional value, specifies how blanks are compared to non-blank values. Valid values include:
**BLANKS DEFAULT**. For numeric types, blanks are less than 0 but greater than negative values. For strings, blanks are less than all strings including empty strings.
**BLANKS FIRST**. Blanks are considered less than non-blank values.
**BLANKS LAST**. Blanks are considered greater than non-blank values. --- query-languages/dax/orderby-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index 7ff41865e..c2f868ec7 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -27,7 +27,7 @@ ORDERBY ( [[, [, [, ]] … |Term|Definition| |--------|--------------| |orderBy_expression|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| -|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\, an optional value, specifies how blanks are compared to non-blank values. Valid values include:
**BLANKS DEFAULT**. For numeric types, blanks are less than 0 but greater than negative values. For strings, blanks are less than all strings including empty strings.
**BLANKS FIRST**. Blanks are considered less than non-blank values.
**BLANKS LAST**. Blanks are considered greater than non-blank values.| +|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

| ## Return value @@ -46,4 +46,4 @@ See [OFFSET](offset-function-dax.md). [INDEX](index-function-dax.md) [OFFSET](offset-function-dax.md) [PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) \ No newline at end of file +[WINDOW](window-function-dax.md) From 73484293a153a55591d0cef158128f2c852e2dbe Mon Sep 17 00:00:00 2001 From: Ankit Kumar Date: Wed, 29 Mar 2023 09:08:36 +0530 Subject: [PATCH 193/934] Update time-intelligence-functions-dax.md --- query-languages/dax/time-intelligence-functions-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/time-intelligence-functions-dax.md b/query-languages/dax/time-intelligence-functions-dax.md index acdd054a9..65cd2a2fa 100644 --- a/query-languages/dax/time-intelligence-functions-dax.md +++ b/query-languages/dax/time-intelligence-functions-dax.md @@ -12,7 +12,7 @@ recommendations: false --- # Time intelligence functions -Data Analysis Expressions (DAX) includes time-intelligence functions that enable you to manipulate data using time periods, including days, months, quarters, and years, and then build and compare calculations over those periods. Before using any time-intelligence functions, make sure to mark one of the tables containing date column as [Date Table](https://learn.microsoft.com/analysis-services/tabular-models/specify-mark-as-date-table-for-use-with-time-intelligence-ssas-tabular?view=asallproducts-allversions). +Data Analysis Expressions (DAX) includes time-intelligence functions that enable you to manipulate data using time periods, including days, months, quarters, and years, and then build and compare calculations over those periods. Before using any time-intelligence functions, make sure to mark one of the tables containing date column as Date Table. ## In this category From 60b29227af184862a3b3d46fe74f080acf4d7217 Mon Sep 17 00:00:00 2001 From: Aysegul Yigit <127193220+aysegulyigitbi@users.noreply.github.com> Date: Mon, 3 Apr 2023 14:19:51 +0300 Subject: [PATCH 194/934] Update sumx-function-dax.md --- query-languages/dax/sumx-function-dax.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/dax/sumx-function-dax.md b/query-languages/dax/sumx-function-dax.md index 0c063fbcc..3a2505d69 100644 --- a/query-languages/dax/sumx-function-dax.md +++ b/query-languages/dax/sumx-function-dax.md @@ -35,6 +35,8 @@ A decimal number. ## Remarks - The SUMX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers you want to sum, or an expression that evaluates to a column. + +- The SUMX is an iterator function. Iterator functions loop through all the rows in the input table and save the expression result in a temporary memory storage. They then apply aggregation to the temporary storage results, freeing up memory usage and visualizing the calculation result. - Only the numbers in the column are counted. Blanks, logical values, and text are ignored. From 2627cd05659723d10b087fce8521454f2d7bf380 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 10 Apr 2023 17:00:03 -0700 Subject: [PATCH 195/934] Minor update. --- query-languages/dax/format-function-dax.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/query-languages/dax/format-function-dax.md b/query-languages/dax/format-function-dax.md index 402b12be1..fddc29a25 100644 --- a/query-languages/dax/format-function-dax.md +++ b/query-languages/dax/format-function-dax.md @@ -46,6 +46,11 @@ A string containing **value** formatted as defined by **format_string**. - To learn more specifying a locale with FORMAT, check out this [video](https://www.microsoft.com/videoplayer/embed/RWLjrD). +- Using FORMAT changes a measure to a text data type. If the measure was originally of numeric data type, then with FORMAT, the measure cannot be used as before on visuals where the values section requires a numeric data type. +- +- You can alternatively use [Dynamic format strings for measures](/analysis-services/tabular-models/calculation-groups#dynamic-format-strings) to maintain the numeric data type of the measure and define the dynamic format string as a string like in the format_string argument, as a DAX expression to get the format string from a table in the model, or as a DAX expression determining which format string to use based on some condition, such as the value in the measure itself. + + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Examples From bffa5eed362ef425b55f08f587c1391fe81caa12 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 10 Apr 2023 17:12:49 -0700 Subject: [PATCH 196/934] Add RANK and ROWNUMBER to new-functions.md --- query-languages/dax/index-function-dax.md | 2 +- query-languages/dax/new-dax-functions.md | 2 ++ query-languages/dax/offset-function-dax.md | 2 +- query-languages/dax/orderby-function-dax.md | 2 +- query-languages/dax/partitionby-function-dax.md | 2 +- query-languages/dax/rank-function-dax.md | 4 ++-- query-languages/dax/rownumber-function-dax.md | 4 ++-- query-languages/dax/window-function-dax.md | 2 +- 8 files changed, 11 insertions(+), 9 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 90c7447e1..97770a30b 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: INDEX" title: "INDEX function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 11/29/2022 +ms.date: 04/10/2023 ms.reviewer: owend ms.topic: reference author: minewiskan diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index ac9361c84..0170d2051 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -23,6 +23,8 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| +|[RANK](rank-function-dax.md)|April, 2023|Returns the ranking for the current context within the specified partition, sorted by the specified order.| +|[ROWNUMBER](rownumber-function-dax.md)|April, 2023|Returns the unique ranking for the current context within the specified partition, sorted by the specified order.| |[LINEST](linest-function-dax.md)|February, 2023|Uses the Least Squares method to calculate a straight line that best fits the given data.| |[LINESTX](linestx-function-dax.md)|February, 2023|Uses the Least Squares method to calculate a straight line that best fits the given data. The data result from expressions evaluated for each row in a table.| |[INDEX](index-function-dax.md)| December, 2022 | Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 79f70d870..9228af71a 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: OFFSET" title: "OFFSET function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 11/15/2022 +ms.date: 04/10/2023 ms.reviewer: owend ms.topic: reference author: minewiskan diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index 8c0c064d3..d8ce1f2b0 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: ORDERBY" title: "ORDERBY function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 11/29/2022 +ms.date: 04/10/2023 ms.reviewer: owend ms.topic: reference author: minewiskan diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index e4f7a8ee5..40bd5d912 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: PARTITIONBY" title: "PARTITIONBY function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 11/29/2022 +ms.date: 04/10/2023 ms.reviewer: owend ms.topic: reference author: minewiskan diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index f4c7562f6..006d08357 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -3,10 +3,10 @@ description: "Learn more about: RANK" title: "RANK function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 01/13/2023 +ms.date: 04/10/2023 ms.topic: reference author: rahulten -ms.author: rahulten +ms.author: owend recommendations: false --- diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index e6a6330ca..d4072cd6e 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -3,10 +3,10 @@ description: "Learn more about: ROWNUMBER" title: "ROWNUMBER function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 01/13/2023 +ms.date: 04/10/2023 ms.topic: reference author: rahulten -ms.author: rahulten +ms.author: owend recommendations: false --- diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index cae27a50f..8dc29e817 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: WINDOW" title: "WINDOW function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 11/14/2022 +ms.date: 04/10/2023 ms.reviewer: owend ms.topic: reference author: minewiskan From 27f9ec922beac4d946fde96e9dac52b9601a982c Mon Sep 17 00:00:00 2001 From: kyleamueller <82664864+kyleamueller@users.noreply.github.com> Date: Thu, 13 Apr 2023 10:57:48 -0400 Subject: [PATCH 197/934] Update selectedmeasure-function-dax.md Updated to reflect the new capability of dynamic format strings --- .../dax/selectedmeasure-function-dax.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/selectedmeasure-function-dax.md b/query-languages/dax/selectedmeasure-function-dax.md index 763886c5b..2866b7d01 100644 --- a/query-languages/dax/selectedmeasure-function-dax.md +++ b/query-languages/dax/selectedmeasure-function-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # SELECTEDMEASURE -Used by expressions for calculation items to reference the measure that is in context. +Used by expressions for calculation items or dynamic format strings to reference the measure that is in context. ## Syntax @@ -27,11 +27,11 @@ None ## Return value -A reference to the measure that is currently in context when the calculation item is evaluated. +A reference to the measure that is currently in context when the calculation item or format string is evaluated. ## Remarks -- Can only be referenced in the expression for a calculation item. +- Can only be referenced in the expression for a calculation item or format string. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] @@ -42,6 +42,17 @@ The following calculation item expression calculates the year-to-date for whatev ```dax CALCULATE(SELECTEDMEASURE(), DATESYTD(DimDate[Date])) ``` + +The following expression can be used to dynamically adjust the format string of a measure based upon whether a value is the hundreds, thousands, or millions. + +```dax +SWITCH( +TRUE(), +SELECTEDMEASURE() < 1000,"$#,##0", //Values less than 1000 have no text after them +SELECTEDMEASURE() < 1000000, "$#,##0,.0 K", //Values between 1000 and 1000000 are formatted as #.## K +"$#,##0,,.0 M" //Values greater than 1000000 are formatted as #.## M +) +``` ## See also From 46ac3ace32ff880dc6863aa73c1ecefe94160794 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 13 Apr 2023 13:07:56 -0700 Subject: [PATCH 198/934] Adding DFS to FORMAT. --- query-languages/dax/format-function-dax.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/query-languages/dax/format-function-dax.md b/query-languages/dax/format-function-dax.md index fddc29a25..e27643dff 100644 --- a/query-languages/dax/format-function-dax.md +++ b/query-languages/dax/format-function-dax.md @@ -46,10 +46,7 @@ A string containing **value** formatted as defined by **format_string**. - To learn more specifying a locale with FORMAT, check out this [video](https://www.microsoft.com/videoplayer/embed/RWLjrD). -- Using FORMAT changes a measure to a text data type. If the measure was originally of numeric data type, then with FORMAT, the measure cannot be used as before on visuals where the values section requires a numeric data type. -- -- You can alternatively use [Dynamic format strings for measures](/analysis-services/tabular-models/calculation-groups#dynamic-format-strings) to maintain the numeric data type of the measure and define the dynamic format string as a string like in the format_string argument, as a DAX expression to get the format string from a table in the model, or as a DAX expression determining which format string to use based on some condition, such as the value in the measure itself. - +- Using FORMAT changes a measure result to a text data type. If the measure result is originally of numeric data type, then with FORMAT, the measure can't be used on visuals where the values section requires a numeric data type, like with charts. In Power BI, you can alternatively use **Dynamic format strings for measures** specify a conditional format string that maintains the numeric data type of the measure. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] From 659e08b23bb27e6a3c1154d41c7fc0d94adff1e5 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 19 Apr 2023 09:48:48 -0400 Subject: [PATCH 199/934] Typo fix, adding null as compatible with null --- query-languages/m/m-spec-operators.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index b9e1acf86..016226877 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -1263,7 +1263,7 @@ nullable-primitive-type:_
Type compatibility, as supported by the `is` operator, is a subset of [general type compatibility](m-spec-types.md) and is defined using the following rules: -* If `x` is null then it is compatible iff y is a nullable type or the type `any`. +* If `x` is null then it is compatible if `y` is a nullable type, the type `null` or the type `any`. * If `x` is non-null then if it is a compatible if the the primitive type of `x` is the same as `y`. From 31faa20224a3290d48d3a289db42e47f125101c1 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 19 Apr 2023 09:56:01 -0400 Subject: [PATCH 200/934] Typo fixes --- query-languages/m/m-spec-functions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 4f9b16f61..58beebca1 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -66,7 +66,7 @@ The native type of function values is a custom function type (derived from the i ## Invoking functions -The _function-body_ of a function is executed by _invoking_ the function value using an _invokeexpression_. Invoking a function value means the _function-body_ of the function value is evaluated and a value is returned or an error is raised. +The _function-body_ of a function is executed by _invoking_ the function value using an _invoke-expression_. Invoking a function value means the _function-body_ of the function value is evaluated and a value is returned or an error is raised. _invoke-expression:
      primary-expression_ `(` _argument-listopt_ `)`
@@ -86,10 +86,10 @@ An _argument-list_ is used to specify a fixed number of arguments directly as a The following holds when invoking a function: -* The environment used to evaluate the _function-body_ of the function includes a variable that corresponds to each parameter, with the same name as the parameter. The value of each parameter corresponds to a value constructed from the _argument-list_ of the _invokeexpression_, as defined in [Parameters](#parameters). +* The environment used to evaluate the _function-body_ of the function includes a variable that corresponds to each parameter, with the same name as the parameter. The value of each parameter corresponds to a value constructed from the _argument-list_ of the _invoke-expression_, as defined in [Parameters](#parameters). * All of the expressions corresponding to the function arguments are evaluated before the _function-body_ is evaluated. -* Errors raised when evaluating the expressions in the _expression-list_ or _functionexpression_ are propagated. +* Errors raised when evaluating the expressions in the _expression-list_ or _function-body_ are propagated. * The number of arguments constructed from the _argument-list_ must be compatible with the formal parameters of the function, or an error is raised with reason code `"Expression.Error"`. The process for determining compatibility is defined in [Parameters](#parameters). @@ -122,7 +122,7 @@ There are two kinds of formal parameters that may be present in a _formal-parame The number of arguments that are specified when a function is invoked must be compatible with the formal parameter list. Compatibility of a set of arguments `A` for a function `F` is computed as follows: -* Let the value _N_ represent the number of arguments `A` constructed from the _argumentlist_. For example: +* Let the value _N_ represent the number of arguments `A` constructed from the _argument-list_. For example: ```powerquery-m MyFunction() // N = 0 From 886f71f1653b490a9d460c6fb7f9d2b366b57497 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 19 Apr 2023 09:59:51 -0400 Subject: [PATCH 201/934] Editing references to formal parameter lists --- query-languages/m/m-spec-functions.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 58beebca1..c12178f6c 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -43,13 +43,13 @@ optional-parameter:_
nullable-primitve-type
      `nullable`_opt primitive-type_ -The following is an example of a function that requires exactly two values `x` and `y`, and produces the result of applying the `+` operator to those values. The `x` and `y` are _parameters_ that are part of the _formal-parameter-list_ of the function, and the `x + y` is the _function body_: +The following is an example of a function that requires exactly two values `x` and `y`, and produces the result of applying the `+` operator to those values. The `x` and `y` are _parameters_ that are part of the _parameter-list_ of the function, and the `x + y` is the _function body_: ```powerquery-m (x, y) => x + y ``` -The result of evaluating a _function-expression_ is to produce a function value (not to evaluate the _function-body_). As a convention in this document, function values (as opposed to function expressions) are shown with the _formal-parameter-list_ but with an ellipsis (`...`) instead of the _function-body_. For example, once the function expression above has been evaluated, it would be shown as the following function value: +The result of evaluating a _function-expression_ is to produce a function value (not to evaluate the _function-body_). As a convention in this document, function values (as opposed to function expressions) are shown with the _parameter-list_ but with an ellipsis (`...`) instead of the _function-body_. For example, once the function expression above has been evaluated, it would be shown as the following function value: ```powerquery-m (x, y) => ... @@ -91,13 +91,13 @@ The following holds when invoking a function: * Errors raised when evaluating the expressions in the _expression-list_ or _function-body_ are propagated. -* The number of arguments constructed from the _argument-list_ must be compatible with the formal parameters of the function, or an error is raised with reason code `"Expression.Error"`. The process for determining compatibility is defined in [Parameters](#parameters). +* The number of arguments constructed from the _argument-list_ must be compatible with the parameters of the function, or an error is raised with reason code `"Expression.Error"`. The process for determining compatibility is defined in [Parameters](#parameters). ## Parameters -There are two kinds of formal parameters that may be present in a _formal-parameter-list_: +There are two kinds of parameters that may be present in a _parameter-list_: -* A _required_ parameter indicates that an argument corresponding to the parameter must always be specified when a function is invoked. Required parameters must be specified first in the _formal-parameter-list_. The function in the following example defines required parameters `x` and `y`: +* A _required_ parameter indicates that an argument corresponding to the parameter must always be specified when a function is invoked. Required parameters must be specified first in the _parameter-list_. The function in the following example defines required parameters `x` and `y`: ```powerquery-m [ @@ -108,7 +108,7 @@ There are two kinds of formal parameters that may be present in a _formal-parame ] ``` -* An _optional_ parameter indicates that an argument corresponding to the parameter may be specified when a function is invoked, but is not required to be specified. If an argument that corresponds to an optional parameter is not specified when the function is invoked, then the value `null` is used instead. Optional parameters must appear after any required parameters in a _formal-parameter-list_. The function in the following example defines a fixed parameter `x` and an optional parameter `y`: +* An _optional_ parameter indicates that an argument corresponding to the parameter may be specified when a function is invoked, but is not required to be specified. If an argument that corresponds to an optional parameter is not specified when the function is invoked, then the value `null` is used instead. Optional parameters must appear after any required parameters in a _parameter-list_. The function in the following example defines a fixed parameter `x` and an optional parameter `y`: ```powerquery-m [ @@ -120,7 +120,7 @@ There are two kinds of formal parameters that may be present in a _formal-parame ] ``` -The number of arguments that are specified when a function is invoked must be compatible with the formal parameter list. Compatibility of a set of arguments `A` for a function `F` is computed as follows: +The number of arguments that are specified when a function is invoked must be compatible with the parameter list. Compatibility of a set of arguments `A` for a function `F` is computed as follows: * Let the value _N_ represent the number of arguments `A` constructed from the _argument-list_. For example: @@ -210,7 +210,7 @@ When `MyFunction` is invoked, it accesses the value of the variable `C`, even th ## Simplified declarations -The _each-expression_ is a syntactic shorthand for declaring untyped functions taking a single formal parameter named `_` (underscore). +The _each-expression_ is a syntactic shorthand for declaring untyped functions taking a single parameter named `_` (underscore). _each-expression:_
      `each` _each-expression-body
From 2886033f9516214392f2427784207c289064bf54 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 19 Apr 2023 10:20:35 -0400 Subject: [PATCH 202/934] Table typo fixes --- query-languages/m/m-spec-values.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index 8d2625dd6..89a073017 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -566,9 +566,9 @@ The native type of record values is the intrinsic type `record`, which specifies ## Table -A _table value_ is an ordered sequence of rows. A _row_ is an ordered sequence of value. The table's type determines the length of all rows in the table, the names of the table's columns, the types of the table's columns, and the structure of the table's keys (if any). +A _table value_ is an ordered sequence of rows. A _row_ is an ordered sequence of column values. The table's type determines the length of all rows in the table, the names of the table's columns, the types of the table's columns, and the structure of the table's keys (if any). -There is no literal syntax for tables. Several standard library functions are provided to construct binary values. For example, `#table` can be used to construct a table from a list of row lists and a list of header names: +There is no literal syntax for tables. Several standard library functions are provided to construct table values. For example, `#table` can be used to construct a table from a list of row lists and a list of header names: ```powerquery-m #table({"x", "x^2"}, {{1,1}, {2,4}, {3,9}}) From 36e62ba77fc6ddee2197e6da9e92a2369fe4a679 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 19 Apr 2023 17:10:53 -0400 Subject: [PATCH 203/934] Updating to indicate that ItemExpression.From is an alias --- query-languages/m/itemexpression-from.md | 40 +----------------------- 1 file changed, 1 insertion(+), 39 deletions(-) diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index 84f67d942..9dc03963b 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -13,42 +13,4 @@ ItemExpression.From(function as function) as record ## About -Returns the abstract syntax tree (AST) for the body of `function`, normalized into an *item expression*: - -- The function must be a 1-argument lambda. -- All references to the function parameter are replaced with [ItemExpression.Item](itemexpression-item.md). -- The AST will be simplified to contain only nodes of the kinds: - - `Constant` - - `Invocation` - - `Unary` - - `Binary` - - `If` - - `FieldAccess` - - `NotImplemented` - -An error is raised if an item expression AST cannot be returned for the body of `function`. - -## Example 1 - -Returns the AST for the body of the function `each _ <> null` - -**Usage** - -```powerquery-m -ItemExpression.From(each _ <> null) -``` - -**Output** - -```powerquery-m -[ - Kind = "Binary", - Operator = "NotEquals", - Left = ItemExpression.Item, - Right = - [ - Kind = "Constant", - Value = null - ] -] -``` +This identifier is an alias for [RowExpression.Row](rowexpression-row.md). From 56edda0fcc3c1061c68003fed592bc723296db57 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 19 Apr 2023 17:16:07 -0400 Subject: [PATCH 204/934] Updating to indicate aliases --- query-languages/m/itemexpression-from.md | 9 ++------- query-languages/m/itemexpression-item.md | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index 9dc03963b..f018b1e1d 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -5,12 +5,7 @@ ms.date: 10/7/2022 --- # ItemExpression.From -## Syntax - -
-ItemExpression.From(function as function) as record
-
- ## About -This identifier is an alias for [RowExpression.Row](rowexpression-row.md). +This identifier is an alias for [RowExpression.From](rowexpression-from.md). + diff --git a/query-languages/m/itemexpression-item.md b/query-languages/m/itemexpression-item.md index 97e77dc3e..f20fd95fc 100644 --- a/query-languages/m/itemexpression-item.md +++ b/query-languages/m/itemexpression-item.md @@ -7,4 +7,4 @@ ms.date: 3/16/2022 ## About -An abstract syntax tree (AST) node representing the item in an item expression. +This identifier is an alias for [RowExpression.Row](rowexpression-row.md). From a3df672f661b2bd68ce04702fe1d61df711d23b9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 20 Apr 2023 07:51:41 -0400 Subject: [PATCH 205/934] Typo fix from Ehren Co-authored-by: Ehren --- query-languages/m/m-spec-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index c12178f6c..c750b9213 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -43,7 +43,7 @@ optional-parameter:_
nullable-primitve-type
      `nullable`_opt primitive-type_ -The following is an example of a function that requires exactly two values `x` and `y`, and produces the result of applying the `+` operator to those values. The `x` and `y` are _parameters_ that are part of the _parameter-list_ of the function, and the `x + y` is the _function body_: +The following is an example of a function that requires exactly two values `x` and `y`, and produces the result of applying the `+` operator to those values. The `x` and `y` are _parameters_ that are part of the _parameter-list_ of the function, and the `x + y` is the _function-body_: ```powerquery-m (x, y) => x + y From 37aeae56f33b52456a8c95458ee396fb88da35e8 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 20 Apr 2023 14:16:17 -0400 Subject: [PATCH 206/934] Tweak Co-authored-by: Ehren --- query-languages/m/m-spec-operators.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 016226877..13c0e8583 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -1263,7 +1263,7 @@ nullable-primitive-type:_
Type compatibility, as supported by the `is` operator, is a subset of [general type compatibility](m-spec-types.md) and is defined using the following rules: -* If `x` is null then it is compatible if `y` is a nullable type, the type `null` or the type `any`. +* If `x` is null then it is compatible if `y` is the type `any`, the type `null`, or a nullable type. * If `x` is non-null then if it is a compatible if the the primitive type of `x` is the same as `y`. From dbdf130120aa0976a643f4b5fdcd3e90e3c15fc1 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 21 Apr 2023 13:49:24 -0400 Subject: [PATCH 207/934] Table value tweaks --- query-languages/m/m-spec-values.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index 89a073017..9c0afe820 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -568,14 +568,14 @@ The native type of record values is the intrinsic type `record`, which specifies A _table value_ is an ordered sequence of rows. A _row_ is an ordered sequence of column values. The table's type determines the length of all rows in the table, the names of the table's columns, the types of the table's columns, and the structure of the table's keys (if any). -There is no literal syntax for tables. Several standard library functions are provided to construct table values. For example, `#table` can be used to construct a table from a list of row lists and a list of header names: +Tables may be constructed using the `#table` intrinsic. + +Below, a table is constructed from a list of row lists and a list of column names. In the resulting table, each column will be of `type any`. ```powerquery-m #table({"x", "x^2"}, {{1,1}, {2,4}, {3,9}}) ``` -The above example constructs a table with two columns, both of which are of `type any`. - `#table` can also be used to specify a full table type: ```powerquery-m From 34668da38769a4f38f114600404ea766645be8d9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 26 Apr 2023 09:53:36 -0400 Subject: [PATCH 208/934] Suggestion from Ehren Co-authored-by: Ehren --- query-languages/m/m-spec-values.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index 9c0afe820..454656dfd 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -570,7 +570,7 @@ A _table value_ is an ordered sequence of rows. A _row_ is an ordered sequence o Tables may be constructed using the `#table` intrinsic. -Below, a table is constructed from a list of row lists and a list of column names. In the resulting table, each column will be of `type any`. +The following example constructs a table from a list of column names and a list of rows. The resulting table will contain two columns of `type any` and three rows. ```powerquery-m #table({"x", "x^2"}, {{1,1}, {2,4}, {3,9}}) From 04c1438e2828e170946ff3beec444c5a183b7023 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 27 Apr 2023 11:58:22 -0400 Subject: [PATCH 209/934] Applying consistency --- query-languages/m/m-spec-values.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index 454656dfd..0c7440a82 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -121,7 +121,7 @@ The native type of number values is the intrinsic type `number`. A _time value_ stores an opaque representation of time of day. A time is encoded as the number of _ticks since midnight_, which counts the number of 100-nanosecond ticks that have elapsed on a 24-hour clock. The maximum number of _ticks since midnight_ corresponds to 23:59:59.9999999 hours. -Time values may be constructed using the #time instrinsic. +Although there is no literal syntax for times, several standard library functions are provided to construct them. Times may also be constructed using the intrinsic function `#time`: ```powerquery-m #time(hour, minute, second) @@ -163,7 +163,7 @@ The native type of time values is the intrinsic type `time`. A _date value_ stores an opaque representation of a specific day. A date is encoded as a number of _days since epoch_, starting from January 1, 0001 Common Era on the Gregorian calendar. The maximum number of days since epoch is 3652058, corresponding to December 31, 9999. -Date values may be constructed using the `#date` intrinsic. +Although there is no literal syntax for dates, several standard library functions are provided to construct them. Dates may also be constructed using the intrinsic function `#date`: ```powerquery-m #date(year, month, day) @@ -205,7 +205,7 @@ The native type of date values is the intrinsic type `date`. A _datetime value_ contains both a date and time. -DateTime values may be constructed using the `#datetime` intrinsic. +Although there is no literal syntax for datetimes, several standard library functions are provided to construct them. Datetimes may also be constructed using the intrinsic function `#datetime`: ```powerquery-m #datetime(year, month, day, hour, minute, second) @@ -248,7 +248,7 @@ The native type of datetime values is the intrinsic type `datetime`. A _datetimezone_ value contains a datetime and a timezone. A _timezone_ is encoded as a number of _minutes offset from UTC_, which counts the number of minutes the time portion of the _datetime_ should be offset from Universal Coordinated Time (UTC). The minimum number of _minutes offset from UTC_ is -840, representing a UTC offset of -14:00, or fourteen hours earlier than UTC. The maximum number of _minutes offset from UTC_ is 840, corresponding to a UTC offset of 14:00. -DateTimeZone values may be constructed using the `#datetimezone` intrinsic. +Although there is no literal syntax for datetimezones, several standard library functions are provided to construct them. Datetimezones may also be constructed using the intrinsic function `#datetimezone`: ```powerquery-m #datetimezone( @@ -297,7 +297,7 @@ The native type of datetimezone values is the intrinsic type `datetimezone`. A _duration value_ stores an opaque representation of the distance between two points on a timeline measured 100-nanosecond ticks. The magnitude of a _duration_ can be either positive or negative, with positive values denoting progress forwards in time and negative values denoting progress backwards in time. The minimum value that can be stored in a _duration_ is -9,223,372,036,854,775,808 ticks, or 10,675,199 days 2 hours 48 minutes 05.4775808 seconds backwards in time. The maximum value that can be stored in a _duration_ is 9,223,372,036,854,775,807 ticks, or 10,675,199 days 2 hours 48 minutes 05.4775807 seconds forwards in time. -Duration values may be constructed using the `#duration` intrinsic function: +Although there is no literal syntax for durations, several standard library functions are provided to construct them. Durations may also be constructed using the intrinsic function `#duration`: ```powerquery-m #duration(0, 0, 0, 5.5) // 5.5 seconds @@ -376,7 +376,11 @@ The native type of text values is the intrinsic type `text`. ## Binary -A _binary value_ represents a sequence of bytes. There is no literal format. Several standard library functions are provided to construct binary values. For example, `#binary` can be used to construct a binary value from a list of bytes: +A _binary value_ represents a sequence of bytes. + +Although there is no literal syntax for binary values, several standard library functions are provided to construct them. Binary values may also be constructed using the intrinsic function `#binary`. + +The following example constructs a binary value from a list of bytes: ```powerquery-m #binary( {0x00, 0x01, 0x02, 0x03} ) @@ -568,7 +572,7 @@ The native type of record values is the intrinsic type `record`, which specifies A _table value_ is an ordered sequence of rows. A _row_ is an ordered sequence of column values. The table's type determines the length of all rows in the table, the names of the table's columns, the types of the table's columns, and the structure of the table's keys (if any). -Tables may be constructed using the `#table` intrinsic. +Although there is no literal syntax for tables, several standard library functions are provided to construct them. Tables may also be constructed using the intrinsic function `#table`. The following example constructs a table from a list of column names and a list of rows. The resulting table will contain two columns of `type any` and three rows. From c8ca5a677056b5b2c0d99c087c8a985dbdfbf79f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 28 Apr 2023 11:52:05 -0400 Subject: [PATCH 210/934] Renaming so link from ReadMe works --- ThirdPartyNotices => ThirdPartyNotices.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename ThirdPartyNotices => ThirdPartyNotices.md (94%) diff --git a/ThirdPartyNotices b/ThirdPartyNotices.md similarity index 94% rename from ThirdPartyNotices rename to ThirdPartyNotices.md index faceb5a52..522940634 100644 --- a/ThirdPartyNotices +++ b/ThirdPartyNotices.md @@ -12,4 +12,4 @@ Microsoft's general trademark guidelines can be found at https://go.microsoft.co Privacy information can be found at https://privacy.microsoft.com/en-us/ Microsoft and any contributors reserve all others rights, whether under their respective copyrights, patents, -or trademarks, whether by implication, estoppel or otherwise. \ No newline at end of file +or trademarks, whether by implication, estoppel or otherwise. From 48efcc135f4884f05ca5be43a77ba7afabbcae89 Mon Sep 17 00:00:00 2001 From: Docs Allowlist Management Date: Thu, 4 May 2023 10:20:09 +0000 Subject: [PATCH 211/934] MicrosoftDocs--OfficeDocs-AppCompliance, MicrosoftDocs--office-lync-ref-docs, MicrosoftDocs--office-shared-ref-docs, MicrosoftDocs--powerbi-docs-powershell, MicrosoftDocs--query-docs, MicrosoftDocs--sdk-api. MicrosoftDocs--VBA-Docs --- query-languages/m/docfx.json | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 553b6642f..ef5ce6138 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -35,6 +35,7 @@ "overwrite": [], "externalReference": [], "globalMetadata": { + "feedback_system": "Standard", "breadcrumb_path": "/powerquery-m/breadcrumb/toc.json", "uhfHeaderId": "MSDocsHeader-PowerQueryM", "titleSuffix": "PowerQuery M", From 2a7e60fbe4cbc7dd2444697a23c85ecd48b88177 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 5 May 2023 22:14:25 -0700 Subject: [PATCH 212/934] Update docfx.json Turn on Unified Feedbac --- query-languages/m/docfx.json | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 553b6642f..52764d090 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -36,6 +36,7 @@ "externalReference": [], "globalMetadata": { "breadcrumb_path": "/powerquery-m/breadcrumb/toc.json", + "feedback_system": "Standard", "uhfHeaderId": "MSDocsHeader-PowerQueryM", "titleSuffix": "PowerQuery M", "ms.service": "powerquery", From 4ff94bdaa59bf3857d6bd77167aa571ec7600237 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 5 May 2023 22:15:54 -0700 Subject: [PATCH 213/934] Update docfx.json for DAX docset --- query-languages/dax/docfx.json | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index ce6f5bbb7..8f5bc814e 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -36,6 +36,7 @@ "overwrite": [], "externalReference": [], "globalMetadata": { + "feedback_system": "Standard", "breadcrumb_path": "/dax/breadcrumb/toc.json", "uhfHeaderId": "MSDocsHeader-DAX", "titleSuffix": "DAX", From 4ce688a676b8ec4af2432987e19a49176102e97b Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 10:51:37 -0700 Subject: [PATCH 214/934] Update index-function-dax.md --- query-languages/dax/index-function-dax.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 97770a30b..7b635a776 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -19,7 +19,7 @@ Returns a row at an absolute position, specified by the position parameter, with ## Syntax ```dax -INDEX([, ][, ][, ][, ]) +INDEX([, ][, ][, ][, ][, ]) ``` ### Parameters @@ -31,6 +31,8 @@ INDEX([, ][, ][, ][, ]) |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | + ## Return value @@ -38,16 +40,17 @@ A row at an absolute position. ## Remarks -Each \ column must have a corresponding outer value to help define the “current partition” on which to operate, with the following behavior: +Each \ and \ column must have a corresponding outer value to help define the “current partition” on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column: - - INDEX will first determine all \ columns that have no corresponding outer column. + - INDEX will first determine all \ and \ columns that have no corresponding outer column. - For every combination of existing values for these columns in INDEX’s parent context, INDEX is evaluated and a row is returned. - INDEX’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If the columns specified within \ and \ cannot uniquely identify every row in \: +If \ is present, INDEX will try to use \ and \ columns to identify the row. +If \ is not present and the columns specified within \ and \ cannot uniquely identify every row in \: - INDEX will try to find the least number of additional columns required to uniquely identify every row. - If such columns can be found, INDEX will automatically append these new columns to \, and each partition is sorted using this new set of OrderBy columns. @@ -133,4 +136,4 @@ Returns the following table: [PARTITIONBY](partitionby-function-dax.md) [WINDOW](window-function-dax.md) [RANK](rank-function-dax.md) -[ROWNUMBER](rownumber-function-dax.md) \ No newline at end of file +[ROWNUMBER](rownumber-function-dax.md) From 934cac92247c744a0339d380df78d0bc8a6c0e8a Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 10:52:39 -0700 Subject: [PATCH 215/934] Create matchby-function-dax.md --- query-languages/dax/matchby-function-dax.md | 36 +++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 query-languages/dax/matchby-function-dax.md diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md new file mode 100644 index 000000000..047bca637 --- /dev/null +++ b/query-languages/dax/matchby-function-dax.md @@ -0,0 +1,36 @@ +# MATCHBY + +In window functions, defines the columns that are used to determine how to match data and identify the current row. + +## Syntax + +```dax +MATCHBY ( [[, matchBy_columnName [, …]]] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|matchBy_columnName| (Optional) The name of an existing column to be used to identify current row in the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| + +## Return value + +This function does not return a value. + +## Remarks + +This function can only be used within a window function expression. + +## Example + +See [OFFSET](offset-function-dax.md). + +## See also + +[INDEX](index-function-dax.md) +[OFFSET](offset-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) +[ROWNUMBER](rownumber-function-dax.md) From d8b54cb442cd2e3d38325dfba86c9eceaba8da1d Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 10:53:16 -0700 Subject: [PATCH 216/934] Update new-dax-functions.md --- query-languages/dax/new-dax-functions.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 0170d2051..eda0aa937 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -23,14 +23,15 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| +|[MATCHBY](matchby-function-dax.md)|May, 2023|Define the columns that are used to to match data and identify the current row, in a window function expression.| |[RANK](rank-function-dax.md)|April, 2023|Returns the ranking for the current context within the specified partition, sorted by the specified order.| |[ROWNUMBER](rownumber-function-dax.md)|April, 2023|Returns the unique ranking for the current context within the specified partition, sorted by the specified order.| |[LINEST](linest-function-dax.md)|February, 2023|Uses the Least Squares method to calculate a straight line that best fits the given data.| |[LINESTX](linestx-function-dax.md)|February, 2023|Uses the Least Squares method to calculate a straight line that best fits the given data. The data result from expressions evaluated for each row in a table.| |[INDEX](index-function-dax.md)| December, 2022 | Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| |[OFFSET](offset-function-dax.md)| December, 2022 | Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset.| -|[ORDERBY](orderby-function-dax.md)| December, 2022 | Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| -|[PARTITIONBY](partitionby-function-dax.md)| December, 2022 | Defines the columns that are used to partition a WINDOW function’s \ parameter.| +|[ORDERBY](orderby-function-dax.md)| December, 2022 | Defines the columns that determine the sort order within each of a window function’s partitions.| +|[PARTITIONBY](partitionby-function-dax.md)| December, 2022 | Defines the columns that are used to partition a window function’s \ parameter.| |[WINDOW](window-function-dax.md)| December, 2022 | Returns multiple rows which are positioned within the given interval. | |[EVALUATEANDLOG](evaluateandlog-function-dax.md)| November, 2022 | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. | |[TOCSV](tocsv-function-dax.md) | November, 2022 | Returns a table as a string in CSV format. This function applies to Power BI Desktop only. | From 8b98a98369f81848b007339b57f004e44dde6bb6 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 10:56:34 -0700 Subject: [PATCH 217/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 33 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 9228af71a..2efab2897 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -19,7 +19,7 @@ Returns a single row that is positioned either before or after the *current row* ## Syntax ```dax -OFFSET ( [, ][, ][, ][, ] ) +OFFSET ( [, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -31,6 +31,7 @@ OFFSET ( [, ][, ][, ][, ] ) |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | ## Return value @@ -38,7 +39,7 @@ One or more rows from \. ## Remarks -Except for columns added by DAX table functions, each column in \ must have a corresponding outer value to help define the current row on which to operate, with the following behavior: +Except for columns added by DAX table functions, each column in \, when \ is not present, or each column in \ and \, when \ is present, must have a corresponding outer value to help define the current row on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column, then: @@ -49,7 +50,8 @@ Except for columns added by DAX table functions, each column in \ must If all of \'s columns were added by DAX table functions, an error is returned. -If the columns specified within \ and \ can't uniquely identify every row in \, then: +If \ is present, OFFSET will try to use \ and \ columns to identify the row. +If \ is not present and the columns specified within \ and \ can't uniquely identify every row in \, then: - OFFSET will try to find the least number of additional columns required to uniquely identify every row. - If such columns can be found, OFFSET will automatically append these new columns to \, and each partition is sorted using this new set of OrderBy columns. @@ -110,11 +112,36 @@ SUMMARIZECOLUMNS ( Uses OFFSET() in a measure to return a table that summarizes the total sales for each calendar year and the total sales for the previous year. +## Example 3 + +The following DAX query: + +```dax +EVALUATE +ADDCOLUMNS ( + FactInternetSales, + "Previous Sales Amount", + SELECTCOLUMNS ( + OFFSET ( + -1, + FactInternetSales, + ORDERBY ( FactInternetSales[SalesAmount], DESC ), + PARTITIONBY ( FactInternetSales[ProductKey] ), + MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] ) + ), + FactInternetSales[SalesAmount] + ) +) +``` + +Returns FactInternetSales table with adding a column, which indicates, for each sale, its previous sale's amount, of the same product, in descending order of sales amount, with current sale being identified by its SalesOrderNumber and SalesOrderLineNumber. Without MATCHBY, the query would return an error since there are no key columns in FactInternetSales table. + ## See also [INDEX](index-function-dax.md) [ORDERBY](orderby-function-dax.md) [PARTITIONBY](partitionby-function-dax.md) +[MATCHBY](matchby-function-dax.md) [WINDOW](window-function-dax.md) [RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) From 1f07beabb454da5609198350330991d602285f4c Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 10:58:01 -0700 Subject: [PATCH 218/934] Update rank-function-dax.md --- query-languages/dax/rank-function-dax.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 006d08357..93f165246 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -18,7 +18,7 @@ Returns the ranking for the current context within the specified partition, sort ## Syntax ```dax -RANK ( [][, ][, ][, ][, ] ) +RANK ( [][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -30,6 +30,7 @@ RANK ( [][, ][, ][, ][, ] ) |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | ## Return value @@ -37,15 +38,15 @@ The rank number for the current context. ## Remarks -- Each \ and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: +- Each \, \, and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column, then: - - RANK will first determine all \ and \ columns that have no corresponding outer column. + - RANK will first determine all \, \, and \ columns that have no corresponding outer column. - For every combination of existing values for these columns in RANK parent context, RANK is evaluated and a row is returned. - RANK’s final output is a rank number. -- If the columns specified within \ and \ can't uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. -- RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. +- If \ is present, then RANK will try to use columns in \ and \ to idenfity the current row. +- If the columns specified within \ and \ cannot uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter.- RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. - RANK does not compare to RANKX as SUM compares to SUMX. ## Example From 4f70306add75489ab6a13e8f55191f18096d6db8 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 10:58:52 -0700 Subject: [PATCH 219/934] Add header. --- query-languages/dax/matchby-function-dax.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md index 047bca637..c93abd113 100644 --- a/query-languages/dax/matchby-function-dax.md +++ b/query-languages/dax/matchby-function-dax.md @@ -1,3 +1,16 @@ +--- +description: "Learn more about: MATCHBY" +title: "MATCHBY function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 05/10/2023 +ms.topic: reference +author: keshen +ms.author: owend +recommendations: false + +--- + # MATCHBY In window functions, defines the columns that are used to determine how to match data and identify the current row. From a249ba25635874b1fa2ae26e4bed209ab07da355 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 11:00:12 -0700 Subject: [PATCH 220/934] Update rownumber-function-dax.md --- query-languages/dax/rownumber-function-dax.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index d4072cd6e..4d3ab50a6 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -17,7 +17,7 @@ Returns the unique ranking for the current context within the specified partitio ## Syntax ```dax -ROWNUMBER ( [][, ][, ][, ] ) +ROWNUMBER ( [][, ][, ][, ][, ] ) ``` ### Parameters @@ -27,23 +27,25 @@ ROWNUMBER ( [][, ][, ][, ] ) |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| -|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | - +|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | + ## Return value The rownumber number for the current context. ## Remarks -Each \ and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: +Each \, \, and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column, then: - - ROWNUMBER will first determine all \ and \ columns that have no corresponding outer column. + - ROWNUMBER will first determine all \, \, and \ columns that have no corresponding outer column. - For every combination of existing values for these columns in ROWNUMBER parent context, ROWNUMBER is evaluated and a row is returned. - ROWNUMBER’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. +If \ is present, then ROWNUMBER will try to use columns in \ and \ to idenfity the current row. If the columns specified within \ and \ cannot uniquely identify every row in \, then: - ROWNUMBER will try to find the least number of additional columns required to uniquely identify every row. From cb01e84280c7f8e8cb363beeec2571c3aeeaa709 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 11:01:07 -0700 Subject: [PATCH 221/934] Update toc.yml --- query-languages/dax/toc.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index fabb0a813..764e24559 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -167,6 +167,8 @@ href: keepfilters-function-dax.md - name: LOOKUPVALUE href: lookupvalue-function-dax.md + - name: MATCHBY + href: matchby-function-dax.md - name: OFFSET href: offset-function-dax.md - name: ORDERBY From 2e5f8144a1d4520186565a6280e7a1d128b4ff91 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 11:02:05 -0700 Subject: [PATCH 222/934] Update window-function-dax.md --- query-languages/dax/window-function-dax.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 8dc29e817..bad0c2d11 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -19,7 +19,7 @@ Returns multiple rows which are positioned within the given interval. ## Syntax ```dax -WINDOW ( from[, from_type], to[, to_type][, ][, ][, ][, ] ) +WINDOW ( from[, from_type], to[, to_type][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -34,13 +34,15 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| +|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | + ## Return value All rows from the window. ## Remarks -Except for columns added by DAX table functions, each column in \ must have a corresponding outer value to help define the current row on which to operate. If \ and \ both have value ABS, then the following applies only to the \ columns: +Except for columns added by DAX table functions, each column in \, when \ is not present, or each column in \ and \, when \ is present, must have a corresponding outer value to help define the current row on which to operate. If \ and \ both have value ABS, then the following applies only to the \ columns: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column: @@ -51,7 +53,8 @@ Except for columns added by DAX table functions, each column in \ must If all of \'s columns were added by DAX table functions, an error is returned. -If the columns specified within \ and \ cannot uniquely identify every row in \, then: +If \ is present, WINDOW will try to use \ and \ columns to identify the row. +If \ is not present and the columns specified within \ and \ cannot uniquely identify every row in \, then: - WINDOW will try to find the least number of additional columns required to uniquely identify every row. - If such columns can be found, WINDOW will automatically append these new columns to \, and each partition is sorted using this new set of orderBy columns. From a7d5df77a4fc6228fbed19f429b450fa632d74ea Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 11:04:22 -0700 Subject: [PATCH 223/934] Update index-function-dax.md --- query-languages/dax/index-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 7b635a776..d4db27d2f 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -44,7 +44,7 @@ Each \ and \ column must have a corresponding outer value - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column: - - INDEX will first determine all \ and \ columns that have no corresponding outer column. + - INDEX will first determine all \ and \ columns that have no corresponding outer column. - For every combination of existing values for these columns in INDEX’s parent context, INDEX is evaluated and a row is returned. - INDEX’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. From bcbf3a11f212ec398100fb02ab464ce10165fd27 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 11:07:17 -0700 Subject: [PATCH 224/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 2efab2897..84b5b7ed4 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -39,7 +39,7 @@ One or more rows from \. ## Remarks -Except for columns added by DAX table functions, each column in \, when \ is not present, or each column in \ and \, when \ is present, must have a corresponding outer value to help define the current row on which to operate, with the following behavior: +Except for columns added by DAX table functions, each column in \, when \ is not present, or each column in \ and \, when \ is present, must have a corresponding outer value to help define the current row on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column, then: From 00a3bbeeb7734c131d7c14dbd7b18df14779ea15 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 11:08:28 -0700 Subject: [PATCH 225/934] Update rank-function-dax.md --- query-languages/dax/rank-function-dax.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 93f165246..ac73e6183 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -46,7 +46,8 @@ The rank number for the current context. - For every combination of existing values for these columns in RANK parent context, RANK is evaluated and a row is returned. - RANK’s final output is a rank number. - If \ is present, then RANK will try to use columns in \ and \ to idenfity the current row. -- If the columns specified within \ and \ cannot uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter.- RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. +- If the columns specified within \ and \ cannot uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. +- RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. - RANK does not compare to RANKX as SUM compares to SUMX. ## Example From 4d5bb13830943cffc31ebda158025ab20829a999 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 10 May 2023 11:09:30 -0700 Subject: [PATCH 226/934] Update rownumber-function-dax.md --- query-languages/dax/rownumber-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 4d3ab50a6..b67d693a8 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -45,7 +45,7 @@ Each \, \, and \ column must have a corresponding - ROWNUMBER’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If \ is present, then ROWNUMBER will try to use columns in \ and \ to idenfity the current row. +If \ is present, then ROWNUMBER will try to use columns in \ and \ to idenfity the current row. If the columns specified within \ and \ cannot uniquely identify every row in \, then: - ROWNUMBER will try to find the least number of additional columns required to uniquely identify every row. From f781498b49dde3e13aef7524f379d7c74efcae18 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 11 May 2023 12:56:46 -0400 Subject: [PATCH 227/934] Adding null-handling case --- query-languages/m/text-combine.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 54198d612..49c7deb5f 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text.Combine" title: "Text.Combine" -ms.date: 3/14/2022 +ms.date: 5/11/2023 --- # Text.Combine @@ -13,7 +13,9 @@ Text.Combine(texts as list, optional separator as nullable text) a ## About -Returns the result of combining the list of text values, `texts`, into a single text value. An optional separator used in the final combined text may be specified, `separator`. +Returns the result of combining the list of text values, `texts`, into a single text value. Any `null` values present in `texts` are ignored. + +An optional separator used in the final combined text may be specified, `separator`. ## Example 1 @@ -31,7 +33,7 @@ Text.Combine({"Seattle", "WA"}) ## Example 2 -Combine text values "Seattle" and "WA" separated by a comma and a space, ", ". +Combine text values "Seattle" and "WA", separated by a comma and a space, ", ". **Usage** @@ -42,3 +44,17 @@ Text.Combine({"Seattle", "WA"}, ", ") **Output** `"Seattle, WA"` + +## Example 3 + +Combine values "Seattle", `null`, and "WA", separated by a comma and a space, ", ". (The `null` will be ignored.) + +**Usage** + +```powerquery-m +Text.Combine({"Seattle", null, "WA"}, ", ") +``` + +**Output** + +`"Seattle, WA"` From d87a0cec51ee375ab859c17ab0477f470bcf0c76 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 15 May 2023 16:24:18 -0400 Subject: [PATCH 228/934] Update query-languages/m/text-combine.md Co-authored-by: Ehren --- query-languages/m/text-combine.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 49c7deb5f..097addf30 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -15,7 +15,7 @@ Text.Combine(texts as list, optional separator as nullable text) a Returns the result of combining the list of text values, `texts`, into a single text value. Any `null` values present in `texts` are ignored. -An optional separator used in the final combined text may be specified, `separator`. +An optional `separator` used in the final combined text may be specified. ## Example 1 From 04d3c6f013a662cf8300ef887801f979c7db7100 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 15 May 2023 16:24:26 -0400 Subject: [PATCH 229/934] Update query-languages/m/text-combine.md Co-authored-by: Ehren --- query-languages/m/text-combine.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 097addf30..ef80a826b 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -33,7 +33,7 @@ Text.Combine({"Seattle", "WA"}) ## Example 2 -Combine text values "Seattle" and "WA", separated by a comma and a space, ", ". +Combine text values "Seattle" and "WA", separated by a comma and a space. **Usage** From 51a231c3207fa8d76c6b639cd39ead45e8edfcfc Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 15 May 2023 16:24:38 -0400 Subject: [PATCH 230/934] Update query-languages/m/text-combine.md Co-authored-by: Ehren --- query-languages/m/text-combine.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index ef80a826b..5f3e30f68 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -47,7 +47,7 @@ Text.Combine({"Seattle", "WA"}, ", ") ## Example 3 -Combine values "Seattle", `null`, and "WA", separated by a comma and a space, ", ". (The `null` will be ignored.) +Combine the values "Seattle", `null`, and "WA", separated by a comma and a space. (Note that the `null` is ignored.) **Usage** From 6e785b383eb3eb72f06b6584f51f886cbcee37a9 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 16 May 2023 10:46:17 -0700 Subject: [PATCH 231/934] Update filter-functions-dax.md --- query-languages/dax/filter-functions-dax.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 6f4a091aa..d20a5fc28 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -31,6 +31,7 @@ The filter and value functions in DAX are some of the most complex and powerful, |[INDEX](index-function-dax.md)|Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | +|[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| |[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a WINDOW function’s \ parameter.| From 225f9bf8d0bf4962180710046c3ddfe1929600e5 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 16 May 2023 11:10:12 -0700 Subject: [PATCH 232/934] Added June updates to Power Query M reference --- query-languages/m/accessing-data-functions.md | 3 ++- query-languages/m/deltalake-table.md | 16 ++++++++++++++++ query-languages/m/googleanalytics-accounts.md | 4 ++-- 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 query-languages/m/deltalake-table.md diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index 478c47e93..82fccda0d 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Accessing data functions" title: "Accessing data functions" -ms.date: 1/18/2023 +ms.date: 5/16/2023 --- # Accessing data functions @@ -41,6 +41,7 @@ These functions access data and return table values. Most of these functions ret |[Cube.ReplaceDimensions](cube-replacedimensions.md)|Replaces the set of dimensions returned by [Cube.Dimensions](/powerquery-m/cube-dimensions).| |[Cube.Transform](cube-transform.md)|Applies the list cube functions, transforms, on the cube.| |[DB2.Database](db2-database.md)|Returns a table of SQL tables and views available in a Db2 database.| +|[DeltaLake.Table](deltalake-table.md)| Returns the contents of the Delta Lake table.| |[Essbase.Cubes](essbase-cubes.md)|Returns the cubes in an Essbase instance grouped by Essbase server.| |[Excel.CurrentWorkbook](excel-currentworkbook.md)|Returns the tables in the current Excel Workbook.| |[Excel.Workbook](excel-workbook.md)|Returns a table representing sheets in the given excel workbook.| diff --git a/query-languages/m/deltalake-table.md b/query-languages/m/deltalake-table.md new file mode 100644 index 000000000..11c0abbcd --- /dev/null +++ b/query-languages/m/deltalake-table.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: DeltaLake.Table" +title: "DeltaLake.Table" +ms.date: 5/16/2023 +--- +# DeltaLake.Table + +## Syntax + +
+DeltaLake.Table(directory as table, optional options as nullable record) as any
+
+ +## About + +Returns the contents of the Delta Lake table. diff --git a/query-languages/m/googleanalytics-accounts.md b/query-languages/m/googleanalytics-accounts.md index 2bb42c709..54d9b0f3f 100644 --- a/query-languages/m/googleanalytics-accounts.md +++ b/query-languages/m/googleanalytics-accounts.md @@ -1,14 +1,14 @@ --- description: "Learn more about: GoogleAnalytics.Accounts" title: "GoogleAnalytics.Accounts" -ms.date: 10/7/2022 +ms.date: 5/16/2023 --- # GoogleAnalytics.Accounts ## Syntax
-GoogleAnalytics.Accounts() as table
+GoogleAnalytics.Accounts(optional options as nullable record) as table
 
## About From 033d05f0c46926ab061ad6b07e91eec4af580e3b Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 16 May 2023 11:15:37 -0700 Subject: [PATCH 233/934] Added TOC entry for DeltaLake.Table --- query-languages/m/toc.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 25025e110..88f4ef75f 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -122,6 +122,8 @@ items: href: cube-transform.md - name: DB2.Database href: db2-database.md + - name: DeltaLake.Table + href: deltalake-table.md - name: Essbase.Cubes href: essbase-cubes.md - name: Excel.CurrentWorkbook From 7a75bee11b61d984c607f694ae1cd272629f8467 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:22:58 -0400 Subject: [PATCH 234/934] Update itemexpression-from.md --- query-languages/m/itemexpression-from.md | 49 +++++++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index f018b1e1d..8483479e8 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -1,11 +1,56 @@ --- description: "Learn more about: ItemExpression.From" title: "ItemExpression.From" -ms.date: 10/7/2022 +ms.date: 5/16/2023 --- # ItemExpression.From +## Syntax + +
+ItemExpression.From(function as function) as record
+
+ ## About -This identifier is an alias for [RowExpression.From](rowexpression-from.md). +Returns the abstract syntax tree (AST) for the body of `function`, normalized into an *item expression*: + +- The function must be a 1-argument lambda. +- All references to the function parameter are replaced with [ItemExpression.Item](itemexpression-item.md). +- The AST will be simplified to contain only nodes of the kinds: + - `Constant` + - `Invocation` + - `Unary` + - `Binary` + - `If` + - `FieldAccess` + - `NotImplemented` + +An error is raised if an item expression AST cannot be returned for the body of `function`. + +This function is identical to [RowExpression.Row](rowexpression-row.md). + +## Example 1 + +Returns the AST for the body of the function `each _ <> null` + +**Usage** + +```powerquery-m +ItemExpression.From(each _ <> null) +``` + +**Output** +```powerquery-m +[ + Kind = "Binary", + Operator = "NotEquals", + Left = ItemExpression.Item, + Right = + [ + Kind = "Constant", + Value = null + ] +] +``` From 9921f6d56a4aa8c3c873ae1bb4b573d8adcda174 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:23:49 -0400 Subject: [PATCH 235/934] Update itemexpression-from.md --- query-languages/m/itemexpression-from.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index 8483479e8..8fd0fda16 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -28,7 +28,7 @@ Returns the abstract syntax tree (AST) for the body of `function`, normalized in An error is raised if an item expression AST cannot be returned for the body of `function`. -This function is identical to [RowExpression.Row](rowexpression-row.md). +This function is identical to [RowExpression.From](rowexpression-from.md). ## Example 1 From cf1baf49f64f1bd33c1cb1e6a48b160b80757de9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:24:25 -0400 Subject: [PATCH 236/934] Update rowexpression-from.md --- query-languages/m/rowexpression-from.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 132b14a8b..99a944f5e 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -28,6 +28,8 @@ Returns the abstract syntax tree (AST) for the body of `function`, normalized in * `NotImplemented` An error is raised if a row expression AST cannot be returned for the body of `function`. + +This function is identical to [ItemExpression.From](itemexpression-from.md). ## Example 1 From fac778ee93a7b3e23c5eb6434baceb0d6c44b948 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:25:39 -0400 Subject: [PATCH 237/934] Update rowexpression-row.md --- query-languages/m/rowexpression-row.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/query-languages/m/rowexpression-row.md b/query-languages/m/rowexpression-row.md index ddeaeed35..e0c4268c8 100644 --- a/query-languages/m/rowexpression-row.md +++ b/query-languages/m/rowexpression-row.md @@ -1,10 +1,12 @@ --- description: "Learn more about: RowExpression.Row" title: "RowExpression.Row" -ms.date: 3/16/2022 +ms.date: 5/16/2023 --- # RowExpression.Row ## About An abstract syntax tree (AST) node representing the row in a row expression. + +The value returned is identical to [ItemExpression.Item](itemexpression-item.md). From ec60aad1f3a9bffb77611c56d2f0a1127d89193d Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:26:13 -0400 Subject: [PATCH 238/934] Update rowexpression-row.md --- query-languages/m/rowexpression-row.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/rowexpression-row.md b/query-languages/m/rowexpression-row.md index e0c4268c8..3bff26a91 100644 --- a/query-languages/m/rowexpression-row.md +++ b/query-languages/m/rowexpression-row.md @@ -9,4 +9,4 @@ ms.date: 5/16/2023 An abstract syntax tree (AST) node representing the row in a row expression. -The value returned is identical to [ItemExpression.Item](itemexpression-item.md). +This value is identical to [ItemExpression.Item](itemexpression-item.md). From 25be75035b09da1eec414902c5e4ded2e37a5dcf Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:26:27 -0400 Subject: [PATCH 239/934] Update rowexpression-from.md --- query-languages/m/rowexpression-from.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 99a944f5e..18bd80ce0 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: RowExpression.From" title: "RowExpression.From" -ms.date: 3/16/2022 +ms.date: 5/16/2023 --- # RowExpression.From From 3ca4fd83932b1afdc792b9da0c96b3a75d003c26 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:28:04 -0400 Subject: [PATCH 240/934] Update itemexpression-item.md --- query-languages/m/itemexpression-item.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/query-languages/m/itemexpression-item.md b/query-languages/m/itemexpression-item.md index f20fd95fc..ba64b6b5c 100644 --- a/query-languages/m/itemexpression-item.md +++ b/query-languages/m/itemexpression-item.md @@ -1,10 +1,12 @@ --- description: "Learn more about: ItemExpression.Item" title: "ItemExpression.Item" -ms.date: 3/16/2022 +ms.date: 5/16/2023 --- # ItemExpression.Item ## About -This identifier is an alias for [RowExpression.Row](rowexpression-row.md). +An abstract syntax tree (AST) node representing the item in an item expression. + +This value is identical to [RowExpression.Row](rowexpression-row.md). From 95f16224490c71f9ac843a94f97303fc7839a209 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:30:53 -0400 Subject: [PATCH 241/934] Update rowexpression-from.md --- query-languages/m/rowexpression-from.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 18bd80ce0..00a4aacb4 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -16,8 +16,8 @@ RowExpression.From(function as function) as record Returns the abstract syntax tree (AST) for the body of `function`, normalized into a _row expression_: * The function must be a 1-argument lambda. -* All references to the function parameter are replaced with `RowExpression.Row`. -* All references to columns are replaced with RowExpression.Column(_columnName_). +* All references to the function parameter are replaced with [`RowExpression.Row`](rowexpression-row.md). +* All references to columns are replaced with [`RowExpression.Column(columnName)`](rowexpression-column.md). * The AST will be simplified to contain only nodes of the kinds: * `Constant` * `Invocation` @@ -33,7 +33,7 @@ This function is identical to [ItemExpression.From](itemexpression-from.md). ## Example 1 -Returns the AST for the body of the function each [CustomerID] = "ALFKI" +Returns the AST for the body of the function `each [CustomerID] = "ALFKI"`. **Usage** From 4a4ffa2c35a65594cff9cd219b24ed17be33376f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:32:51 -0400 Subject: [PATCH 242/934] Update itemexpression-from.md --- query-languages/m/itemexpression-from.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index 8fd0fda16..c03a27da1 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -16,7 +16,7 @@ ItemExpression.From(function as function) as record Returns the abstract syntax tree (AST) for the body of `function`, normalized into an *item expression*: - The function must be a 1-argument lambda. -- All references to the function parameter are replaced with [ItemExpression.Item](itemexpression-item.md). +- All references to the function parameter are replaced with [`ItemExpression.Item`](itemexpression-item.md). - The AST will be simplified to contain only nodes of the kinds: - `Constant` - `Invocation` @@ -28,11 +28,11 @@ Returns the abstract syntax tree (AST) for the body of `function`, normalized in An error is raised if an item expression AST cannot be returned for the body of `function`. -This function is identical to [RowExpression.From](rowexpression-from.md). +This function is identical to [`RowExpression.From`](rowexpression-from.md). ## Example 1 -Returns the AST for the body of the function `each _ <> null` +Returns the AST for the body of the function `each _ <> null`. **Usage** From 2627eccb2188b3bd334abc0e7e23b1111f8e58e9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:33:05 -0400 Subject: [PATCH 243/934] Update itemexpression-item.md --- query-languages/m/itemexpression-item.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/itemexpression-item.md b/query-languages/m/itemexpression-item.md index ba64b6b5c..5d29373c2 100644 --- a/query-languages/m/itemexpression-item.md +++ b/query-languages/m/itemexpression-item.md @@ -9,4 +9,4 @@ ms.date: 5/16/2023 An abstract syntax tree (AST) node representing the item in an item expression. -This value is identical to [RowExpression.Row](rowexpression-row.md). +This value is identical to [`RowExpression.Row`](rowexpression-row.md). From 3bc5ddcc861ced3eb0affb71eb82abf96c91d1ad Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:33:20 -0400 Subject: [PATCH 244/934] Update rowexpression-row.md --- query-languages/m/rowexpression-row.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/rowexpression-row.md b/query-languages/m/rowexpression-row.md index 3bff26a91..a5da2ec5e 100644 --- a/query-languages/m/rowexpression-row.md +++ b/query-languages/m/rowexpression-row.md @@ -9,4 +9,4 @@ ms.date: 5/16/2023 An abstract syntax tree (AST) node representing the row in a row expression. -This value is identical to [ItemExpression.Item](itemexpression-item.md). +This value is identical to [`ItemExpression.Item`](itemexpression-item.md). From 07966f15a8f1728e0fff9cc136a0d00df113f56f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:33:37 -0400 Subject: [PATCH 245/934] Update rowexpression-from.md --- query-languages/m/rowexpression-from.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 00a4aacb4..936bd9fcf 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -29,7 +29,7 @@ Returns the abstract syntax tree (AST) for the body of `function`, normalized in An error is raised if a row expression AST cannot be returned for the body of `function`. -This function is identical to [ItemExpression.From](itemexpression-from.md). +This function is identical to [`ItemExpression.From`](itemexpression-from.md). ## Example 1 From 8ac8261019c44f213ee718820632036b7fb00a42 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 16 May 2023 15:35:06 -0400 Subject: [PATCH 246/934] Update itemexpression-from.md --- query-languages/m/itemexpression-from.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index c03a27da1..0a7c620ab 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -17,6 +17,7 @@ Returns the abstract syntax tree (AST) for the body of `function`, normalized in - The function must be a 1-argument lambda. - All references to the function parameter are replaced with [`ItemExpression.Item`](itemexpression-item.md). +- All references to columns are replaced with [`RowExpression.Column(columnName)`](rowexpression-column.md). - The AST will be simplified to contain only nodes of the kinds: - `Constant` - `Invocation` From 97bb54463f8c6dbbe53714ae611b9a8dfefa432e Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 17 May 2023 07:34:55 -0700 Subject: [PATCH 247/934] Fixed expression error format, added missing parenthesis --- query-languages/m/table-removecolumns.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index e84febe15..f916d66c9 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.RemoveColumns" title: "Table.RemoveColumns" -ms.date: 3/10/2022 +ms.date: 5/17/2022 --- # Table.RemoveColumns @@ -25,7 +25,7 @@ Remove column [Phone] from the table. Table.RemoveColumns( Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"]}), "Phone" - +) ``` **Output** @@ -47,4 +47,4 @@ Table.RemoveColumns( **Output** -`Expression.Error: The column 'Address' of the table wasn't found.` +`[Expression.Error] The column 'Address' of the table wasn't found.` From b752e241628259364abe9026e207d5f92e0ec20f Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Thu, 18 May 2023 16:17:19 -0700 Subject: [PATCH 248/934] Remove duplicate value in docfx.json --- query-languages/m/docfx.json | 1 - 1 file changed, 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index c5a67378f..ef5ce6138 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -37,7 +37,6 @@ "globalMetadata": { "feedback_system": "Standard", "breadcrumb_path": "/powerquery-m/breadcrumb/toc.json", - "feedback_system": "Standard", "uhfHeaderId": "MSDocsHeader-PowerQueryM", "titleSuffix": "PowerQuery M", "ms.service": "powerquery", From bb9a1fc46d616a8297d046b82407c4759ae28b9d Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 22 May 2023 14:17:37 -0400 Subject: [PATCH 249/934] Expounding on streaming --- query-languages/m/m-spec-basic-concepts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 2b24d72c6..0c8525dd9 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -2,7 +2,7 @@ title: M Language basic concepts description: Discusses basic concepts that appear throughout the subsequent sections ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 5/22/2023 ms.custom: intro-internal --- @@ -228,7 +228,7 @@ It does, however, rely on being able to reorder computations. Since expressions Once a value has been calculated, it is _immutable_, meaning it can no longer be changed. This simplifies the model for evaluating an expression and makes it easier to reason about the result since it is not possible to change a value once it has been used to evaluate a subsequent part of the expression. For instance, a record field is only computed when needed. However, once computed, it remains fixed for the lifetime of the record. Even if the attempt to compute the field raised an error, that same error will be raised again on every attempt to access that record field. -An important exception to the immutable-once-calculated rule applies to list and table values. Both have _streaming semantics_. That is, repeated enumeration of the items in a list or the rows in a table can produce varying results. Streaming semantics enables the construction of M expressions that transform data sets that would not fit in memory at once. +An important exception to the immutable-once-calculated rule applies to list, table and binary values, each of which has _streaming semantics_. M's representation of a list, table or binary value, while immutable, does not contain materialized list items, table rows or binary bytes (respectively). Instead, these are produced as needed each time the value is enumerated. Since a streamed value's items, rows or bytes are produced on demand, repeated enumerations of the value can produce varying results unless the source and all intermediate transforms are guaranteed to be deterministic. Streaming semantics enables the construction of M expressions that transform data sets that would not fit in memory at once. Also, note that function application is _not_ the same as value construction. Library functions may expose external state (such as the current time or the results of a query against a database that evolves over time), rendering them _non-deterministic_. While functions defined in M will not, as such, expose any such non-deterministic behavior, they can if they are defined to invoke other functions that are non-deterministic. From 8bac00511d3137873c2ab137a922a7f600240a47 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 25 May 2023 14:30:57 -0700 Subject: [PATCH 250/934] Added missing question marks to code sample --- query-languages/m/m-spec-operators.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 13c0e8583..4ff84e52f 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -2,7 +2,7 @@ title: M Language Operators description: Describes using operators in the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 5/25/2023 --- # Operator behavior @@ -257,10 +257,10 @@ For example: {"a","b","c"}{0}? // "a" {1, [A=2], 3}{1}? // [A=2] {true, false}{2}? // null -#table({"A","B"},{{0,1},{2,1}}){0} // [A=0,B=1] -#table({"A","B"},{{0,1},{2,1}}){[A=2]} // [A=2,B=1] -#table({"A","B"},{{0,1},{2,1}}){[B=3]} // null -#table({"A","B"},{{0,1},{2,1}}){[B=1]} // error +#table({"A","B"},{{0,1},{2,1}}){0}? // [A=0,B=1] +#table({"A","B"},{{0,1},{2,1}}){[A=2]}? // [A=2,B=1] +#table({"A","B"},{{0,1},{2,1}}){[B=3]}? // null +#table({"A","B"},{{0,1},{2,1}}){[B=1]}? // error ``` Item access does not force the evaluation of list or table items other than the one being accessed. For example: From b56f950affe3fdf45d1522bb05605a1b98fcc5b0 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 15 Jun 2023 08:44:29 -0700 Subject: [PATCH 251/934] Added July updates to Power Query M reference --- .../m/combiner-combinetextbydelimiter.md | 35 +++++++++++++++++-- query-languages/m/combiner-functions.md | 4 +-- query-languages/m/csv-document.md | 10 ++++-- query-languages/m/itemexpression-from.md | 21 ++++++----- query-languages/m/rowexpression-from.md | 3 +- query-languages/m/table-removecolumns.md | 4 +-- query-languages/m/text-combine.md | 6 ++-- 7 files changed, 57 insertions(+), 26 deletions(-) diff --git a/query-languages/m/combiner-combinetextbydelimiter.md b/query-languages/m/combiner-combinetextbydelimiter.md index 40c7dc9d4..5118adcee 100644 --- a/query-languages/m/combiner-combinetextbydelimiter.md +++ b/query-languages/m/combiner-combinetextbydelimiter.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Combiner.CombineTextByDelimiter" title: "Combiner.CombineTextByDelimiter" -ms.date: 10/7/2022 +ms.date: 6/15/2023 --- # Combiner.CombineTextByDelimiter @@ -13,7 +13,7 @@ Combiner.CombineTextByDelimiter(delimiter as text, optional quoteStyle ## About -Returns a function that combines a list of text into a single text using the specified delimiter. +Returns a function that combines a list of text values into a single text value using the specified delimiter. ## Example 1 @@ -28,3 +28,34 @@ Combiner.CombineTextByDelimiter(";")({"a", "b", "c"}) **Output** `"a;b;c"` + +## Example 2 + +Combine the text of two columns using a comma delimiter and CSV-style quoting. + +**Usage** + +```powerquery-m +let + Source = #table( + type table [Column1 = text, Column2 = text], + {{"a", "b"}, {"c", "d,e,f"}} + ), + Merged = Table.CombineColumns( + Source, + {"Column1", "Column2"}, + Combiner.CombineTextByDelimiter(",", QuoteStyle.Csv), + "Merged" + ) +in + Merged +``` + +**Output** + +```powerquery-m +#table( + type table [Merged = text], + {{"a,b"}, {"c,""d,e,f"""}} +) +``` diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index f26e670c9..acff0c1fa 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Combiner functions" title: "Combiner functions" -ms.date: 5/16/2022 +ms.date: 6/15/2023 --- # Combiner functions @@ -9,7 +9,7 @@ These functions are used by other library functions that merge values. For examp |Name|Description| |------------|---------------| -|[Combiner.CombineTextByDelimiter](combiner-combinetextbydelimiter.md)|Returns a function that combines a list of text into a single text using the specified delimiter.| +|[Combiner.CombineTextByDelimiter](combiner-combinetextbydelimiter.md)|Returns a function that combines a list of text values into a single text value using the specified delimiter.| |[Combiner.CombineTextByEachDelimiter](combiner-combinetextbyeachdelimiter.md)|Returns a function that combines a list of text into a single text using each specified delimiter in sequence.| |[Combiner.CombineTextByLengths](combiner-combinetextbylengths.md)|Returns a function that combines a list of text into a single text using the specified lengths.| |[Combiner.CombineTextByPositions](combiner-combinetextbypositions.md)|Returns a function that combines a list of text into a single text using the specified positions.| diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index b0d750c84..43a78567e 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Csv.Document" title: "Csv.Document" -ms.date: 9/15/2022 +ms.date: 6/15/2023 --- # Csv.Document @@ -25,8 +25,12 @@ If a record is specified for `columns` (and `delimiter`, `extraValues`, and `enc * `Delimiter`: The column delimiter. Default: `","`. * `Columns`: Can be null, the number of columns, a list of column names, or a table type. If the number of columns is lower than the number found in the input, the additional columns will be ignored. If the number of columns is higher than the number found in the input, the additional columns will be null. When not specified, the number of columns will be determined by what is found in the input. * `Encoding`: The text encoding of the file. Default: 65001 (UTF-8). -* `CsvStyle`: Specifies how quotes are handled. [CsvStyle.QuoteAfterDelimiter](csvstyle-type.md) (default): Quotes in a field are only significant immediately following the delimiter. [CsvStyle.QuoteAlways](csvstyle-type.md): Quotes in a field are always significant, regardless of where they appear. -* `QuoteStyle`: Specifies how quoted line breaks are handled. [QuoteStyle.None](quotestyle-type.md) (default): All line breaks are treated as the end of the current row, even when they occur inside a quoted value. [QuoteStyle.Csv](quotestyle-type.md): Quoted line breaks are treated as part of the data, not as the end of the current row. +* `CsvStyle`: Specifies how quotes are handled. + * [CsvStyle.QuoteAfterDelimiter](csvstyle-type.md) (default): Quotes in a field are only significant immediately following the delimiter. + * [CsvStyle.QuoteAlways](csvstyle-type.md): Quotes in a field are always significant, regardless of where they appear. +* `QuoteStyle`: Specifies how quoted line breaks are handled. + * [QuoteStyle.Csv](quotestyle-type.md) (default): Quoted line breaks are treated as part of the data, not as the end of the current row. + * [QuoteStyle.None](quotestyle-type.md): All line breaks are treated as the end of the current row, even when they occur inside a quoted value. ## Example 1 diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index 84f67d942..aaa6a5ebd 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: ItemExpression.From" title: "ItemExpression.From" -ms.date: 10/7/2022 +ms.date: 6/15/2023 --- # ItemExpression.From @@ -15,16 +15,15 @@ ItemExpression.From(function as function) as record Returns the abstract syntax tree (AST) for the body of `function`, normalized into an *item expression*: -- The function must be a 1-argument lambda. -- All references to the function parameter are replaced with [ItemExpression.Item](itemexpression-item.md). -- The AST will be simplified to contain only nodes of the kinds: - - `Constant` - - `Invocation` - - `Unary` - - `Binary` - - `If` - - `FieldAccess` - - `NotImplemented` +* The function must be a 1-argument lambda. +* All references to the function parameter are replaced with [ItemExpression.Item](itemexpression-item.md). +* The AST will be simplified to contain only nodes of the kinds: + * `Constant` + * `Invocation` + * `Unary` + * `Binary` + * `If` + * `FieldAccess` An error is raised if an item expression AST cannot be returned for the body of `function`. diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 132b14a8b..d31ea1a7e 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -1,7 +1,7 @@ --- description: "Learn more about: RowExpression.From" title: "RowExpression.From" -ms.date: 3/16/2022 +ms.date: 6/15/2023 --- # RowExpression.From @@ -25,7 +25,6 @@ Returns the abstract syntax tree (AST) for the body of `function`, normalized in * `Binary` * `If` * `FieldAccess` - * `NotImplemented` An error is raised if a row expression AST cannot be returned for the body of `function`. diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index f916d66c9..1d9a033e7 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table.RemoveColumns" title: "Table.RemoveColumns" -ms.date: 5/17/2022 +ms.date: 6/15/2023 --- # Table.RemoveColumns @@ -13,7 +13,7 @@ Table.RemoveColumns(table as table, columns as any, optional mi ## About -Removes the specified `columns` from the `table` provided. If a specified column doesn't exist, an error is raised unless the optional parameter `missingField` specifies an alternative behavior (for example, `MissingField.UseNull` or `MissingField.Ignore`). +Removes the specified `columns` from the `table` provided. If the specified column doesn't exist, an error is raised unless the optional parameter `missingField` specifies an alternative behavior (for example, `MissingField.UseNull` or `MissingField.Ignore`). ## Example 1 diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 5f3e30f68..22bcb1dda 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text.Combine" title: "Text.Combine" -ms.date: 5/11/2023 +ms.date: 6/15/2023 --- # Text.Combine @@ -13,9 +13,7 @@ Text.Combine(texts as list, optional separator as nullable text) a ## About -Returns the result of combining the list of text values, `texts`, into a single text value. Any `null` values present in `texts` are ignored. - -An optional `separator` used in the final combined text may be specified. +Returns the result of combining the list of text values, `texts`, into a single text value. Any `null` values present in `texts` are ignored. An optional `separator` used in the final combined text can be specified. ## Example 1 From f8f23a5fc744cab49717d0d2c604377b74cfa922 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 16 Jun 2023 15:21:47 -0700 Subject: [PATCH 252/934] Clarify XIRR() --- query-languages/dax/xirr-function-dax.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/xirr-function-dax.md b/query-languages/dax/xirr-function-dax.md index b201a3a2b..956f61778 100644 --- a/query-languages/dax/xirr-function-dax.md +++ b/query-languages/dax/xirr-function-dax.md @@ -39,7 +39,7 @@ Internal rate of return for the given inputs. If the calculation fails to return - The value is calculated as the rate that satisfies the following function: - $$\sum^{N}\_{j=1} \frac{P\_{j}}{(1 + \text{rate})^{\frac{d\_{j} - d\_{1}}{365}}}$$ + $$0=\sum^{N}\_{j=1} \frac{P\_{j}}{(1 + \text{rate})^{\frac{d\_{j} - d\_{1}}{365}}}$$ Where: @@ -52,6 +52,10 @@ Internal rate of return for the given inputs. If the calculation fails to return - Avoid using ISERROR or IFERROR functions to capture an error returned by XIRR. If some inputs to the function may result in a no solution error, providing an alternateResult parameter is the most reliable and highest performing way to handle the error. - To learn more about using the alternateResult parameter, be to check out this [video](https://www.microsoft.com/videoplayer/embed/RWLzrC). + +- When the absolute value of initial payment is small, the calculation likely fails to return a valid result. + +- Avoid including 0 values in payments. They will not impact the final result, and using 0 as initial payment will fail XIRR() calculation always. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] From 82ae2fbde3d13655bc92812fefe555c9c015d049 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 20 Jun 2023 19:07:47 -0700 Subject: [PATCH 253/934] Add variant. --- query-languages/dax/maxx-function-dax.md | 17 ++++++++++------- query-languages/dax/minx-function-dax.md | 17 ++++++++++------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/query-languages/dax/maxx-function-dax.md b/query-languages/dax/maxx-function-dax.md index c4e8b3275..431653cc7 100644 --- a/query-languages/dax/maxx-function-dax.md +++ b/query-languages/dax/maxx-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: MAXX" title: "MAXX function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 07/08/2020 +ms.date: 06/20/2023 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -13,12 +13,12 @@ recommendations: false --- # MAXX -Evaluates an expression for each row of a table and returns the largest value. +Returns the highest value that results from evaluating an expression for each row of a table. ## Syntax ```dax -MAXX(
,) +MAXX(
,,[]) ``` ### Parameters @@ -27,14 +27,15 @@ MAXX(
,) |--------|--------------| |table|The table containing the rows for which the expression will be evaluated.| |expression|The expression to be evaluated for each row of the table.| +|variant|(Optional) If TRUE, and if there are variant or mixed value types, the highest value based on ORDER BY DESC is returned.| ## Return value -The largest value. +The highest value. ## Remarks -- The **table** argument to the MAXX function can be a table name, or an expression that evaluates to a table. The second argument indicates the expression to be evaluated for each row of the table. +- The **table** argument to the MAXX function can be a table name or an expression that evaluates to a table. The second argument indicates the expression to be evaluated for each row of the table. - Of the values to evaluate, only the following are counted: - Numbers @@ -43,11 +44,13 @@ The largest value. - Blank values are skipped. TRUE/FALSE values are not supported. +- If the expression has variant or mixed value types such as text and number, then by default MAXX considers only numbers. If ` = TRUE`, the maximum value is returned. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example 1 -The following formula uses an expression as the second argument to calculate the total amount of taxes and shipping for each order in the table, InternetSales. The expected result is 375.7184. +The following formula uses an expression as the second argument to calculate the total amount of taxes and shipping for each order in the InternetSales table. The expected result is 375.7184. ```dax = MAXX(InternetSales, InternetSales[TaxAmt]+ InternetSales[Freight]) @@ -55,7 +58,7 @@ The following formula uses an expression as the second argument to calculate the ## Example 2 -The following formula first filters the table InternetSales, by using a FILTER expression, to return a subset of orders for a specific sales region, defined as [SalesTerritory] = 5. The MAXX function then evaluates the expression used as the second argument for each row of the filtered table, and returns the highest amount for taxes and shipping for just those orders. The expected result is 250.3724. +The following formula first filters the InternetSales table by using a FILTER expression to return a subset of orders for a specific sales region defined as, [SalesTerritory] = 5. The MAXX function then evaluates the expression used as the second argument for each row of the filtered table and returns the highest amount for taxes and shipping for just those orders. The expected result is 250.3724. ```dax = MAXX(FILTER(InternetSales,[SalesTerritoryCode]="5"), InternetSales[TaxAmt]+ InternetSales[Freight]) diff --git a/query-languages/dax/minx-function-dax.md b/query-languages/dax/minx-function-dax.md index 265e9da1a..260d345c7 100644 --- a/query-languages/dax/minx-function-dax.md +++ b/query-languages/dax/minx-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: MINX" title: "MINX function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 07/08/2020 +ms.date: 06/20/2023 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -13,12 +13,12 @@ recommendations: false --- # MINX -Returns the smallest value that results from evaluating an expression for each row of a table. +Returns the lowest value that results from evaluating an expression for each row of a table. ## Syntax ```dax -MINX(
, < expression>) +MINX(
, < expression>,[]) ``` ### Parameters @@ -27,22 +27,25 @@ MINX(
, < expression>) |--------|--------------| |table|The table containing the rows for which the expression will be evaluated.| |expression|The expression to be evaluated for each row of the table.| +|variant|(Optional) If TRUE, and if there are variant or mixed value types, the lowest value based on ORDER BY ASC is returned.| ## Return value -A smallest value. +The lowest value. ## Remarks -- The MINX function takes as its first argument a table, or an expression that returns a table. The second argument contains the expression that is evaluated for each row of the table. +- The MINX function takes as its first argument a table or an expression that returns a table. The second argument contains the expression that is evaluated for each row of the table. - Blank values are skipped. TRUE/FALSE values are not supported. +- If the expression has variant or mixed value types such as text and number, then by default MINX considers only numbers. If ` = TRUE`, the minimum value is returned. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example 1 -The following example filters the table, InternetSales, and returns only rows for a specific sales territory. The formula then finds the minimum value in the column, Freight. +The following example filters the InternetSales table and returns only rows for a specific sales territory. The formula then finds the minimum value in the Freight column. ```dax = MINX( FILTER(InternetSales, [SalesTerritoryKey] = 5),[Freight]) @@ -50,7 +53,7 @@ The following example filters the table, InternetSales, and returns only rows fo ## Example 2 -The following example uses the same filtered table as in the previous example, but instead of merely looking up values in the column for each row of the filtered table, the function calculates the sum of two columns, Freight and TaxAmt, and returns the smallest value resulting from that calculation. +The following example uses the same filtered table as in the previous example, but instead of merely looking up values in the column for each row of the filtered table, the function calculates the sum of two columns, Freight and TaxAmt, and returns the lowest value resulting from that calculation. ```dax = MINX( FILTER(InternetSales, InternetSales[SalesTerritoryKey] = 5), InternetSales[Freight] + InternetSales[TaxAmt]) From f48130c7b72de300c9c4ea58b0ac71ad3630f180 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 21 Jun 2023 11:17:45 -0700 Subject: [PATCH 254/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 84b5b7ed4..8f7af23f8 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -29,7 +29,7 @@ OFFSET ( [, ][, ][, ][, ][, If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 96454779c3526231643f827c09e594e26f6caebc Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 21 Jun 2023 11:21:54 -0700 Subject: [PATCH 255/934] Update index-function-dax.md --- query-languages/dax/index-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index d4db27d2f..40b57090a 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -29,7 +29,7 @@ INDEX([, ][, ][, ][, ][, - \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| |relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From e5b125e261983dede0c8a214c284fe75e975ede6 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 21 Jun 2023 11:22:16 -0700 Subject: [PATCH 256/934] Update rownumber-function-dax.md --- query-languages/dax/rownumber-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index b67d693a8..1b207aa73 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -26,7 +26,7 @@ ROWNUMBER ( [][, ][, ][, ][, ] |--------|--------------| |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 37aad7f31eec7ae6bb1ecaa75172a732e109496a Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 21 Jun 2023 11:22:30 -0700 Subject: [PATCH 257/934] Update rank-function-dax.md --- query-languages/dax/rank-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index ac73e6183..1d3456d05 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -28,7 +28,7 @@ RANK ( [][, ][, ][, ][, ][, If specified, the supported value is either DENSE, or SKIP.
If omitted:
- Defaults to SKIP | |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From c0eb0c81bc9020338c3964b2def04344942e784f Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 21 Jun 2023 11:23:06 -0700 Subject: [PATCH 258/934] Update window-function-dax.md --- query-languages/dax/window-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index bad0c2d11..becedac6b 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -32,7 +32,7 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |to_type|Same as \, but modifies the behavior of \.| |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is KEEP (default), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 1ccacf84288f808526a7a2a26acc4ff14a124d78 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 21 Jun 2023 11:31:12 -0700 Subject: [PATCH 259/934] Update orderby-function-dax.md --- query-languages/dax/orderby-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index d8ce1f2b0..dcfb4ba4f 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -27,7 +27,7 @@ ORDERBY ( [[, [, [, ]] … |Term|Definition| |--------|--------------| |orderBy_expression|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| -|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

| +|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.
**ASC BLANKS DEFAULT**, **ASC BLANKS FIRST**, **ASC BLANKS LAST**, **DESC BLANKS DEFAULT**, **DESC BLANKS FIRST**, **DESC BLANKS LAST**.
The \ part controls how blanks are ordered:
  • DEFAULT, where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
| ## Return value From 8556a35e79f1dd5d00de932cc8fdced2134b41be Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Wed, 21 Jun 2023 11:32:45 -0700 Subject: [PATCH 260/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 8f7af23f8..497dc0d15 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -126,6 +126,7 @@ ADDCOLUMNS ( -1, FactInternetSales, ORDERBY ( FactInternetSales[SalesAmount], DESC ), + BLANKS LAST, PARTITIONBY ( FactInternetSales[ProductKey] ), MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] ) ), From 343d79bfd9d6306a50e57ecdde445ca285b4858f Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:04:04 -0700 Subject: [PATCH 261/934] Update offset-function-dax.md fix offset doc --- query-languages/dax/offset-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 497dc0d15..90be6925d 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -29,7 +29,7 @@ OFFSET ( [, ][, ][, ][, ][, If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From bdc26971fc4234e153ecf4ba25bcc46adab8fc46 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:04:29 -0700 Subject: [PATCH 262/934] Update window-function-dax.md fix window doc --- query-languages/dax/window-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index becedac6b..f563ef0d7 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -32,7 +32,7 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |to_type|Same as \, but modifies the behavior of \.| |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 2db6b106d1802d8ceb60b273757f1a0d9ec30bba Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:05:11 -0700 Subject: [PATCH 263/934] Update index-function-dax.md fix index doc --- query-languages/dax/index-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 40b57090a..08636d3bb 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -29,7 +29,7 @@ INDEX([, ][, ][, ][, ][, - \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| |relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From b5d389ab9ea0e119acf39f693c67a55522152394 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:21:20 -0700 Subject: [PATCH 264/934] Update index-function-dax.md --- query-languages/dax/index-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 08636d3bb..45419bfd7 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -29,7 +29,7 @@ INDEX([, ][, ][, ][, ][, - \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| |relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 109ce50bd3dc1fbb246929c4d1a583bd2c6c0723 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:21:47 -0700 Subject: [PATCH 265/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 90be6925d..eaf084b70 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -29,7 +29,7 @@ OFFSET ( [, ][, ][, ][, ][, If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 70e59a91d75db677b44737ac1fd91daee580945b Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:22:14 -0700 Subject: [PATCH 266/934] Update window-function-dax.md --- query-languages/dax/window-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index f563ef0d7..d0dc64f2e 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -32,7 +32,7 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |to_type|Same as \, but modifies the behavior of \.| |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 61e753f1f07b5aeeed31d4ebb08c6dff9be58f91 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:23:37 -0700 Subject: [PATCH 267/934] Update rank-function-dax.md --- query-languages/dax/rank-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 1d3456d05..347772d19 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -28,7 +28,7 @@ RANK ( [][, ][, ][, ][, ][, If specified, the supported value is either DENSE, or SKIP.
If omitted:
- Defaults to SKIP | |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 3c80550fc0478b3642640d95845bb438c3660451 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:24:18 -0700 Subject: [PATCH 268/934] Update rownumber-function-dax.md --- query-languages/dax/rownumber-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 1b207aa73..c7367be77 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -26,7 +26,7 @@ ROWNUMBER ( [][, ][, ][, ][, ] |--------|--------------| |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 10b53b9a0c06cce35027f86fbbc20911712a720d Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:25:32 -0700 Subject: [PATCH 269/934] Update orderby-function-dax.md --- query-languages/dax/orderby-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index dcfb4ba4f..d47597991 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -27,7 +27,7 @@ ORDERBY ( [[, [, [, ]] … |Term|Definition| |--------|--------------| |orderBy_expression|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| -|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.
**ASC BLANKS DEFAULT**, **ASC BLANKS FIRST**, **ASC BLANKS LAST**, **DESC BLANKS DEFAULT**, **DESC BLANKS FIRST**, **DESC BLANKS LAST**.
The \ part controls how blanks are ordered:
  • DEFAULT, where the behavior for numerical/date values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
| +|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.
**ASC BLANKS DEFAULT**, **ASC BLANKS FIRST**, **ASC BLANKS LAST**, **DESC BLANKS DEFAULT**, **DESC BLANKS FIRST**, **DESC BLANKS LAST**.
The \ part controls how blanks are ordered:
  • DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| ## Return value From 6bd68930717d1acee4935cb7c261ff9ad081b2b2 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:27:04 -0700 Subject: [PATCH 270/934] Update rank-function-dax.md RANK with blanks example --- query-languages/dax/rank-function-dax.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 347772d19..74c560486 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -65,12 +65,13 @@ ADDCOLUMNS( ORDERBY( 'DimGeography'[StateProvinceName], desc, 'DimGeography'[City], asc), + LAST, PARTITIONBY( 'DimGeography'[EnglishCountryRegionName]))) ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc ``` -Returns a table that ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. +Returns a table that ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. Blank \ column values are sorted on the end. ## See also From faf37e605dad63602b50af45974a8827e1d487e3 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:31:05 -0700 Subject: [PATCH 271/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index eaf084b70..b33e69bb2 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -125,8 +125,7 @@ ADDCOLUMNS ( OFFSET ( -1, FactInternetSales, - ORDERBY ( FactInternetSales[SalesAmount], DESC ), - BLANKS LAST, + ORDERBY ( FactInternetSales[SalesAmount], DESC BLANKS LAST ), PARTITIONBY ( FactInternetSales[ProductKey] ), MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] ) ), @@ -135,7 +134,7 @@ ADDCOLUMNS ( ) ``` -Returns FactInternetSales table with adding a column, which indicates, for each sale, its previous sale's amount, of the same product, in descending order of sales amount, with current sale being identified by its SalesOrderNumber and SalesOrderLineNumber. Without MATCHBY, the query would return an error since there are no key columns in FactInternetSales table. +Returns FactInternetSales table with adding a column, which indicates, for each sale, its previous sale's amount, of the same product, in descending order of sales amount, with current sale being identified by its SalesOrderNumber and SalesOrderLineNumber. Without MATCHBY, the query would return an error since there are no key columns in FactInternetSales table. ## See also From b485870b505d4695345c6da7916023a1023cbf22 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:41:21 -0700 Subject: [PATCH 272/934] Update orderby-function-dax.md --- query-languages/dax/orderby-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index d47597991..270d6cf85 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -27,7 +27,7 @@ ORDERBY ( [[, [, [, ]] … |Term|Definition| |--------|--------------| |orderBy_expression|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| -|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.
**ASC BLANKS DEFAULT**, **ASC BLANKS FIRST**, **ASC BLANKS LAST**, **DESC BLANKS DEFAULT**, **DESC BLANKS FIRST**, **DESC BLANKS LAST**.
The \ part controls how blanks are ordered:
  • DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\ specifies how blanks are ordered. Valid values include:
**BLANKS DEFAULT**. This is the default value. The behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
**BLANKS FIRST**. Blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
**BLANKS LAST**. Blanks are always ordered on the end, regardless of ascending or descending sorting order.| ## Return value From c7668f9d31e9e4170bcc3f460e7771d0101d038f Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 17:52:44 -0700 Subject: [PATCH 273/934] Update rank-function-dax.md --- query-languages/dax/rank-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 74c560486..8cc6690f6 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -65,7 +65,7 @@ ADDCOLUMNS( ORDERBY( 'DimGeography'[StateProvinceName], desc, 'DimGeography'[City], asc), - LAST, + LAST, PARTITIONBY( 'DimGeography'[EnglishCountryRegionName]))) ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc From b72a67f7476270f79d4fdc2c6447b7f4e277a240 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 18:00:06 -0700 Subject: [PATCH 274/934] Update orderby-function-dax.md --- query-languages/dax/orderby-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index 270d6cf85..ba13989f2 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -27,7 +27,7 @@ ORDERBY ( [[, [, [, ]] … |Term|Definition| |--------|--------------| |orderBy_expression|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| -|order|(Optional) A two-part value of the form "\ \".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\ specifies how blanks are ordered. Valid values include:
**BLANKS DEFAULT**. This is the default value. The behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
**BLANKS FIRST**. Blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
**BLANKS LAST**. Blanks are always ordered on the end, regardless of ascending or descending sorting order.| +|order|(Optional) A two-part value of the form "\ [\]".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\ part is optional. It specifies how blanks are ordered. Valid values include:
**BLANKS DEFAULT**. This is the default value. The behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
**BLANKS FIRST**. Blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
**BLANKS LAST**. Blanks are always ordered on the end, regardless of ascending or descending sorting order.| ## Return value From 0e26623f3c86d6dd3eba5e1e3dde90675ff62893 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 18:05:59 -0700 Subject: [PATCH 275/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index b33e69bb2..73784c331 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -125,7 +125,7 @@ ADDCOLUMNS ( OFFSET ( -1, FactInternetSales, - ORDERBY ( FactInternetSales[SalesAmount], DESC BLANKS LAST ), + ORDERBY ( FactInternetSales[SalesAmount] ), PARTITIONBY ( FactInternetSales[ProductKey] ), MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] ) ), From 4f79dde1fb446b21774830105a1357ddd10a9685 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 18:07:22 -0700 Subject: [PATCH 276/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 73784c331..4ef299f89 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -125,7 +125,7 @@ ADDCOLUMNS ( OFFSET ( -1, FactInternetSales, - ORDERBY ( FactInternetSales[SalesAmount] ), + ORDERBY ( FactInternetSales[SalesAmount], DESC ), PARTITIONBY ( FactInternetSales[ProductKey] ), MATCHBY( FactInternetSales[SalesOrderNumber], FactInternetSales[SalesOrderLineNumber] ) ), From 92a180c39489bc5cafbe62e2894ae10fe3041920 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Jun 2023 18:08:41 -0700 Subject: [PATCH 277/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 4ef299f89..203331e70 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -134,7 +134,7 @@ ADDCOLUMNS ( ) ``` -Returns FactInternetSales table with adding a column, which indicates, for each sale, its previous sale's amount, of the same product, in descending order of sales amount, with current sale being identified by its SalesOrderNumber and SalesOrderLineNumber. Without MATCHBY, the query would return an error since there are no key columns in FactInternetSales table. +Returns FactInternetSales table with adding a column, which indicates, for each sale, its previous sale's amount, of the same product, in descending order of sales amount, with current sale being identified by its SalesOrderNumber and SalesOrderLineNumber. Without MATCHBY, the query would return an error since there are no key columns in FactInternetSales table. ## See also From 377d9f27d6662bca7887e8631576a74866989a79 Mon Sep 17 00:00:00 2001 From: Dan Mabee <40476441+damabe@users.noreply.github.com> Date: Thu, 22 Jun 2023 18:32:02 -0700 Subject: [PATCH 278/934] Policheck update --- query-languages/dax/isafter-function-dax.md | 2 +- query-languages/dax/isempty-function-dax.md | 2 +- query-languages/dax/isonorafter-function-dax.md | 4 ++-- query-languages/dax/union-function-dax.md | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/query-languages/dax/isafter-function-dax.md b/query-languages/dax/isafter-function-dax.md index 1db4f2ade..19db33a0a 100644 --- a/query-languages/dax/isafter-function-dax.md +++ b/query-languages/dax/isafter-function-dax.md @@ -44,7 +44,7 @@ This function is similar to [ISONORAFTER](isonorafter-function-dax.md). The diff Table name: 'Info' -|Country|State|Count|Total| +|Country/Region|State|Count|Total| |-----------|---------|---------|---------| |IND|JK|20|800| |IND|MH|25|1000| diff --git a/query-languages/dax/isempty-function-dax.md b/query-languages/dax/isempty-function-dax.md index 65206c48f..441184a99 100644 --- a/query-languages/dax/isempty-function-dax.md +++ b/query-languages/dax/isempty-function-dax.md @@ -39,7 +39,7 @@ True if the table is empty (has no rows), if else, False. For the below table named 'Info': -|Country|State|County|Total| +|Country/Region|State|County|Total| |-----------|---------|----------|---------| |IND|JK|20|800| |IND|MH|25|1000| diff --git a/query-languages/dax/isonorafter-function-dax.md b/query-languages/dax/isonorafter-function-dax.md index e69d872c1..8af5f5c39 100644 --- a/query-languages/dax/isonorafter-function-dax.md +++ b/query-languages/dax/isonorafter-function-dax.md @@ -44,7 +44,7 @@ This function is similar to [ISAFTER](isafter-function-dax.md). The difference i For the following table named, Info: -|Country|State|Count|Total| +|Country/Region|State|Count|Total| |-----------|---------|---------|---------| |IND|JK|20|800| |IND|MH|25|1000| @@ -65,7 +65,7 @@ FILTER ( Returns: -|Country|State|Count|Total| +|Country/Region|State|Count|Total| |-----------|---------|---------|---------| |IND|MH|25|1000| |IND|WB|10|900| diff --git a/query-languages/dax/union-function-dax.md b/query-languages/dax/union-function-dax.md index 344f03f05..6c4860b4a 100644 --- a/query-languages/dax/union-function-dax.md +++ b/query-languages/dax/union-function-dax.md @@ -59,14 +59,14 @@ UNION(UsaInventory, IndInventory) **USAInventory** -|Country|State|Count|Total| +|Country/Region|State|Count|Total| |-----------|---------|---------|---------| |USA|CA|5|500| |USA|WA|10|900| **INDInventory** -|Country|State|Count|Total| +|Country/Region|State|Count|Total| |-----------|---------|---------|---------| |IND|JK|20|800| |IND|MH|25|1000| @@ -74,7 +74,7 @@ UNION(UsaInventory, IndInventory) Return table, -|Country|State|Count|Total| +|Country/Region|State|Count|Total| |-----------|---------|---------|---------| |USA|CA|5|500| |USA|WA|10|900| From a1efa7cb63f130e4c97732d90bff390bb204b43f Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Mon, 26 Jun 2023 12:26:35 -0700 Subject: [PATCH 279/934] Update offset-function-dax.md --- query-languages/dax/offset-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 203331e70..abead1031 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -86,7 +86,7 @@ ADDCOLUMNS ( ORDERBY([CalendarYear]), PARTITIONBY([EnglishProductCategoryName]) ), - [Current Sales] + [CurrentYearSales] ) ) From 3415272d6a072dc04ab44adcf6a9f8e35fe63dc0 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 6 Jul 2023 11:59:49 -0700 Subject: [PATCH 280/934] Updates --- query-languages/dax/switch-function-dax.md | 76 ++++++++++++++++++---- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index 0c5897e8c..0c1596dfe 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: SWITCH" title: "SWITCH function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 08/04/2020 +ms.date: 07/06/2023 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -13,7 +13,7 @@ recommendations: false --- # SWITCH -Evaluates an expression against a list of values and returns one of multiple possible result expressions. +Evaluates an expression against a list of values and returns one of multiple possible result expressions. This function can be used to avoid having multiple nested [IF](if-function-dax.md) statements. ## Syntax @@ -25,26 +25,78 @@ SWITCH(, , [, , ]…[, ]) |Term|Definition| |--------|--------------| -| expression | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | +| expression | Any DAX expression that returns a single scalar value where the expression is to be evaluated multiple times (for each row/context). | | value | A constant value to be matched with the results of *expression*. | |result |Any scalar expression to be evaluated if the results of *expression* match the corresponding *value*. | |else |Any scalar expression to be evaluated if the result of *expression* doesn't match any of the *value* arguments. | ## Return value -A scalar value coming from one of the *result* expressions, if there was a match with *value*, or from the *else* expression, if there was no match with any *value*. +If there’s a match with a *value*, a scalar value from the corresponding *result* is returned. If there isn’t a match with a *value*, a value from *else* is returned. If none of the *values* match and *else* isn’t specified, (blank) is returned. ## Remarks -All result expressions and the else expression must be of the same data type. +- The *expression* to be evaluated can be a constant value or an expression. A common use of this function is to set the first parameter to TRUE. See examples below. +- All *result* expressions and the else expression must be of the same data type. +- The order of conditions matters. As soon as one *value* matches, the corresponding *result* is returned, and other subsequent *values* aren’t evaluated. Make sure the most restrictive *values* to be evaluated are specified before less restrictive *values*. See examples below. -## Example +## Examples + +A common use of SWITCH is to compare *expression* with constant values. The following example creates a calculated column of month names: + +```dax += SWITCH( + [MonthNumber], + 1, "January", + 2, "February", + 3, "March", + 4, "April", + 5, "May", + 6, "June", + 7, "July", + 8, "August", + 9, "September", + 10, "October", + 11, "November", + 12, "December", + "Unknown month number" + ) + +``` + +Another common use of SWITCH is to replace multiple nested IF statements. This is accomplished by setting expression to TRUE, as shown in the following example, which compares ReorderPoint and SafetyStockLevel on products to identify potential risks of running out of stock: + +```dax += SWITCH ( + TRUE, + [ReorderPoint] > [SafetyStockLevel], "Good: Safety stock level exceeded", + [ReorderPoint] = [SafetyStockLevel], "Minimal: Safety stock level met", + [ReorderPoint] < [SafetyStockLevel], "At risk: Safety stock level not met", + ISBLANK ( [ReorderPoint] ), "Incomplete: Reorder point not set", + ISBLANK ( [SafetyStockLevel] ), "Incomplete: Safety stock level not set", + "Unknown" +) + +``` + +The order of *values* matters. In the following example, the second *result* is never returned because the first value is less restrictive than the second. The result in this example is always “A” or “C”, but never “B”. -The following example creates a calculated column of month names. - ```dax -= SWITCH([Month], 1, "January", 2, "February", 3, "March", 4, "April" - , 5, "May", 6, "June", 7, "July", 8, "August" - , 9, "September", 10, "October", 11, "November", 12, "December" - , "Unknown month number" ) += SWITCH ( + TRUE, + DimProduct[StandardCost] < 100, "A", + DimProduct[StandardCost] < 10, "B", + "C" + ) + +``` + +The following statement returns an error because the data types in the *result* arguments are different. Keep in mind that the data types in all *result* and *else* arguments must be the same. + +```dax += SWITCH([Class], + "L", "Large", + "H", 0.1 +) + ``` From 777932a951471a25bd5b22f0ea30fbeb63918301 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 6 Jul 2023 12:34:13 -0700 Subject: [PATCH 281/934] Revisions --- query-languages/dax/switch-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index 0c1596dfe..f8fb40767 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -37,12 +37,12 @@ If there’s a match with a *value*, a scalar value from the corresponding *resu ## Remarks - The *expression* to be evaluated can be a constant value or an expression. A common use of this function is to set the first parameter to TRUE. See examples below. -- All *result* expressions and the else expression must be of the same data type. +- All *result* expressions and the *else* expression must be of the same data type. - The order of conditions matters. As soon as one *value* matches, the corresponding *result* is returned, and other subsequent *values* aren’t evaluated. Make sure the most restrictive *values* to be evaluated are specified before less restrictive *values*. See examples below. ## Examples -A common use of SWITCH is to compare *expression* with constant values. The following example creates a calculated column of month names: +A common use of SWITCH is to compare *expression* with constant *values*. The following example creates a calculated column of month names: ```dax = SWITCH( From 386ca95a60c93907c3c3e1e33d1262224bc07a44 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Thu, 6 Jul 2023 16:09:43 -0700 Subject: [PATCH 282/934] Additional changes. --- query-languages/dax/switch-function-dax.md | 60 +++++++++++----------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index f8fb40767..add1cecd3 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -32,7 +32,7 @@ SWITCH(, , [, , ]…[, ]) ## Return value -If there’s a match with a *value*, a scalar value from the corresponding *result* is returned. If there isn’t a match with a *value*, a value from *else* is returned. If none of the *values* match and *else* isn’t specified, (blank) is returned. +If there’s a match with a *value*, a scalar value from the corresponding *result* is returned. If there isn’t a match with a *value*, a value from *else* is returned. If none of the *values* match and *else* isn’t specified, BLANK is returned. ## Remarks @@ -46,36 +46,36 @@ A common use of SWITCH is to compare *expression* with constant *values*. The fo ```dax = SWITCH( - [MonthNumber], - 1, "January", - 2, "February", - 3, "March", - 4, "April", - 5, "May", - 6, "June", - 7, "July", - 8, "August", - 9, "September", - 10, "October", - 11, "November", - 12, "December", - "Unknown month number" - ) + [Month Number Of Year], + 1, "January", + 2, "February", + 3, "March", + 4, "April", + 5, "May", + 6, "June", + 7, "July", + 8, "August", + 9, "September", + 10, "October", + 11, "November", + 12, "December", + "Unknown month number" ``` -Another common use of SWITCH is to replace multiple nested IF statements. This is accomplished by setting expression to TRUE, as shown in the following example, which compares ReorderPoint and SafetyStockLevel on products to identify potential risks of running out of stock: +Another common use of SWITCH is to replace multiple nested IF statements. This is accomplished by setting expression to TRUE, as shown in the following example, which compares Reorder Point and Safety Stock Level on products to identify potential risks of running out of stock: ```dax = SWITCH ( - TRUE, - [ReorderPoint] > [SafetyStockLevel], "Good: Safety stock level exceeded", - [ReorderPoint] = [SafetyStockLevel], "Minimal: Safety stock level met", - [ReorderPoint] < [SafetyStockLevel], "At risk: Safety stock level not met", - ISBLANK ( [ReorderPoint] ), "Incomplete: Reorder point not set", - ISBLANK ( [SafetyStockLevel] ), "Incomplete: Safety stock level not set", - "Unknown" -) + TRUE, + [Reorder Point] > [Safety Stock Level], "Good: Safety stock level exceeded", + [Reorder Point] = [Safety Stock Level], "Minimal: Safety stock level met", + [Reorder Point] < [Safety Stock Level], "At risk: Safety stock level not met", + ISBLANK ( [Reorder Point] ), "Incomplete: Reorder point not set", + ISBLANK ( [Safety Stock Level] ), "Incomplete: Safety stock level not set", + "Unknown" + ) + ``` @@ -83,11 +83,11 @@ The order of *values* matters. In the following example, the second *result* is ```dax = SWITCH ( - TRUE, - DimProduct[StandardCost] < 100, "A", - DimProduct[StandardCost] < 10, "B", - "C" - ) + TRUE, + Product[Standard Cost] < 100, "A", + Product[Standard Cost] < 10, "B", + "C" + ) ``` From 76d11935375c696b393e96d1e794464f7a96bc15 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 7 Jul 2023 09:17:51 -0700 Subject: [PATCH 283/934] SWITCH example changes. --- query-languages/dax/switch-function-dax.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index add1cecd3..dc4639933 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -60,7 +60,7 @@ A common use of SWITCH is to compare *expression* with constant *values*. The fo 11, "November", 12, "December", "Unknown month number" - + ) ``` Another common use of SWITCH is to replace multiple nested IF statements. This is accomplished by setting expression to TRUE, as shown in the following example, which compares Reorder Point and Safety Stock Level on products to identify potential risks of running out of stock: @@ -94,9 +94,9 @@ The order of *values* matters. In the following example, the second *result* is The following statement returns an error because the data types in the *result* arguments are different. Keep in mind that the data types in all *result* and *else* arguments must be the same. ```dax -= SWITCH([Class], - "L", "Large", - "H", 0.1 -) += SWITCH ([Class], + "L", "Large", + "H", 0.1 + ) ``` From a3fae9ea13b0206e7c989975c561791523e395bb Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 7 Jul 2023 09:42:28 -0700 Subject: [PATCH 284/934] Revisions. --- query-languages/dax/switch-function-dax.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index dc4639933..d8157057f 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -26,23 +26,23 @@ SWITCH(, , [, , ]…[, ]) |Term|Definition| |--------|--------------| | expression | Any DAX expression that returns a single scalar value where the expression is to be evaluated multiple times (for each row/context). | -| value | A constant value to be matched with the results of *expression*. | -|result |Any scalar expression to be evaluated if the results of *expression* match the corresponding *value*. | -|else |Any scalar expression to be evaluated if the result of *expression* doesn't match any of the *value* arguments. | +| value | A constant value to be matched with the results of **expression**. | +|result |Any scalar expression to be evaluated if the results of **expression** match the corresponding **value**. | +|else |Any scalar expression to be evaluated if the result of **expression** doesn't match any of the **value** arguments. | ## Return value -If there’s a match with a *value*, a scalar value from the corresponding *result* is returned. If there isn’t a match with a *value*, a value from *else* is returned. If none of the *values* match and *else* isn’t specified, BLANK is returned. +If there’s a match with a **value**, a scalar value from the corresponding **result** is returned. If there isn’t a match with a **value**, a value from **else** is returned. If none of the **values** match and **else** isn’t specified, BLANK is returned. ## Remarks -- The *expression* to be evaluated can be a constant value or an expression. A common use of this function is to set the first parameter to TRUE. See examples below. -- All *result* expressions and the *else* expression must be of the same data type. -- The order of conditions matters. As soon as one *value* matches, the corresponding *result* is returned, and other subsequent *values* aren’t evaluated. Make sure the most restrictive *values* to be evaluated are specified before less restrictive *values*. See examples below. +- The **expression** to be evaluated can be a constant value or an expression. A common use of this function is to set the first parameter to TRUE. See examples below. +- All **result** expressions and the **else** expression must be of the same data type. +- The order of conditions matters. As soon as one **value** matches, the corresponding **result** is returned, and other subsequent **values** aren’t evaluated. Make sure the most restrictive **values** to be evaluated are specified before less restrictive **values**. See examples below. ## Examples -A common use of SWITCH is to compare *expression* with constant *values*. The following example creates a calculated column of month names: +A common use of SWITCH is to compare **expression** with constant **values**. The following example creates a calculated column of month names: ```dax = SWITCH( @@ -79,7 +79,7 @@ Another common use of SWITCH is to replace multiple nested IF statements. This i ``` -The order of *values* matters. In the following example, the second *result* is never returned because the first value is less restrictive than the second. The result in this example is always “A” or “C”, but never “B”. +The order of **values** matters. In the following example, the second **result** is never returned because the first value is less restrictive than the second. The result in this example is always “A” or “C”, but never “B”. ```dax = SWITCH ( @@ -91,7 +91,7 @@ The order of *values* matters. In the following example, the second *result* is ``` -The following statement returns an error because the data types in the *result* arguments are different. Keep in mind that the data types in all *result* and *else* arguments must be the same. +The following statement returns an error because the data types in the **result** arguments are different. Keep in mind that the data types in all **result** and **else** arguments must be the same. ```dax = SWITCH ([Class], From 8a1a1b3943d40125c9566dbd092399f676aac742 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 7 Jul 2023 10:27:42 -0700 Subject: [PATCH 285/934] Revisions. --- query-languages/dax/switch-function-dax.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index d8157057f..b1ef198ef 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -94,7 +94,8 @@ The order of **values** matters. In the following example, the second **result** The following statement returns an error because the data types in the **result** arguments are different. Keep in mind that the data types in all **result** and **else** arguments must be the same. ```dax -= SWITCH ([Class], += SWITCH ( + [Class], "L", "Large", "H", 0.1 ) From 71d044696ca0ab81ab348d028a597554422f0765 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 7 Jul 2023 13:18:19 -0700 Subject: [PATCH 286/934] Revisions. --- query-languages/dax/switch-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index b1ef198ef..2e7721bd7 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -45,7 +45,7 @@ If there’s a match with a **value**, a scalar value from the corresponding **r A common use of SWITCH is to compare **expression** with constant **values**. The following example creates a calculated column of month names: ```dax -= SWITCH( += SWITCH ( [Month Number Of Year], 1, "January", 2, "February", From f483245967e51cbdfe665146e86cdc85d18ef801 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 7 Jul 2023 13:46:03 -0700 Subject: [PATCH 287/934] Adding new article. --- .../best-practices/dax-understand-orderby.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 query-languages/dax/best-practices/dax-understand-orderby.md diff --git a/query-languages/dax/best-practices/dax-understand-orderby.md b/query-languages/dax/best-practices/dax-understand-orderby.md new file mode 100644 index 000000000..1b3854035 --- /dev/null +++ b/query-languages/dax/best-practices/dax-understand-orderby.md @@ -0,0 +1,24 @@ +--- +title: "Understanding ORDERBY, PARTITIONBY, and MATCHBY functions in DAX" +description: Best practices for using ORDERBY, PARTITIONBY, and MATCHBY functions. +author: +ms.author: owend +ms.reviewer: owend +ms.service: powerbi +ms.subservice: dax +ms.topic: conceptual +ms.date: 07/07/2023 +recommendations: false +--- + +# Understanding ORDERBY, PARTITIONBY, and MATCHBY functions + +The ORDERBY, PARTITIONBY and MATCHBY functions in DAX are special functions that can only be used in the DAX Window functions: INDEX, OFFSET, WINDOW, RANK, ROWNUMBER. + +ORDERBY, PARTITIONBY and MATCHBY can be used in any of these functions. Please refer to the links above for a full description of the functions and all the parameters available. + +Understanding ORDERBY, PARTITIONBY and MATCHBY is key to successfully using these Window functions. The examples below use OFFSET but are similarly applicable to the other Window functions. + +## See also + + From bfe44d694411e8a4522769b9c0906fa64baee9eb Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 14 Jul 2023 14:01:25 -0400 Subject: [PATCH 288/934] Update m-spec-basic-concepts.md --- query-languages/m/m-spec-basic-concepts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 0c8525dd9..0a16edf12 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -2,7 +2,7 @@ title: M Language basic concepts description: Discusses basic concepts that appear throughout the subsequent sections ms.topic: conceptual -ms.date: 5/22/2023 +ms.date: 7/14/2023 ms.custom: intro-internal --- @@ -228,7 +228,7 @@ It does, however, rely on being able to reorder computations. Since expressions Once a value has been calculated, it is _immutable_, meaning it can no longer be changed. This simplifies the model for evaluating an expression and makes it easier to reason about the result since it is not possible to change a value once it has been used to evaluate a subsequent part of the expression. For instance, a record field is only computed when needed. However, once computed, it remains fixed for the lifetime of the record. Even if the attempt to compute the field raised an error, that same error will be raised again on every attempt to access that record field. -An important exception to the immutable-once-calculated rule applies to list, table and binary values, each of which has _streaming semantics_. M's representation of a list, table or binary value, while immutable, does not contain materialized list items, table rows or binary bytes (respectively). Instead, these are produced as needed each time the value is enumerated. Since a streamed value's items, rows or bytes are produced on demand, repeated enumerations of the value can produce varying results unless the source and all intermediate transforms are guaranteed to be deterministic. Streaming semantics enables the construction of M expressions that transform data sets that would not fit in memory at once. +An important exception to the immutable-once-calculated rule applies to list, table, and binary values, which have _streaming semantics_. Streaming semantics allow M to transform data sets that do not fit into memory all at once. With streaming, the values returned when enumerating a given table, list, or binary value are produced as needed each time they're requested. Since the enumerated values are not fixed and immutable but instead are produced dynamically on demand, they can be different across multiple enumerations. This does not mean that multiple enumerations will always result in different values, just that they can be different if the data source or M logic being used is non-deterministic. Also, note that function application is _not_ the same as value construction. Library functions may expose external state (such as the current time or the results of a query against a database that evolves over time), rendering them _non-deterministic_. While functions defined in M will not, as such, expose any such non-deterministic behavior, they can if they are defined to invoke other functions that are non-deterministic. From cf529393d5028e944116b24159583c21e66d4d82 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 17 Jul 2023 11:49:01 -0700 Subject: [PATCH 289/934] New article --- query-languages/dax/best-practices/dax-understand-orderby.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/query-languages/dax/best-practices/dax-understand-orderby.md b/query-languages/dax/best-practices/dax-understand-orderby.md index 1b3854035..d717613d5 100644 --- a/query-languages/dax/best-practices/dax-understand-orderby.md +++ b/query-languages/dax/best-practices/dax-understand-orderby.md @@ -1,7 +1,7 @@ --- title: "Understanding ORDERBY, PARTITIONBY, and MATCHBY functions in DAX" description: Best practices for using ORDERBY, PARTITIONBY, and MATCHBY functions. -author: +author: jeroenterheerdt ms.author: owend ms.reviewer: owend ms.service: powerbi @@ -15,8 +15,6 @@ recommendations: false The ORDERBY, PARTITIONBY and MATCHBY functions in DAX are special functions that can only be used in the DAX Window functions: INDEX, OFFSET, WINDOW, RANK, ROWNUMBER. -ORDERBY, PARTITIONBY and MATCHBY can be used in any of these functions. Please refer to the links above for a full description of the functions and all the parameters available. - Understanding ORDERBY, PARTITIONBY and MATCHBY is key to successfully using these Window functions. The examples below use OFFSET but are similarly applicable to the other Window functions. ## See also From df651a3d1e7ab0f5ed2672b6b654852f2f467634 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 17 Jul 2023 12:35:13 -0700 Subject: [PATCH 290/934] Updates to DAX LOOKUPVALUE. --- .../dax/lookupvalue-function-dax.md | 55 ++++++++++++++----- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index 36412ba63..bf06a2fbd 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: LOOKUPVALUE" title: "LOOKUPVALUE function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 09/02/2021 +ms.date: 07/17/2023 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -18,7 +18,7 @@ Returns the value for the row that meets all criteria specified by one or more s ## Syntax ```dax -LOOKUPVALUE( +LOOKUPVALUE ( , , @@ -32,38 +32,46 @@ LOOKUPVALUE( |Term|Definition| |--------|--------------| | result_columnName | The name of an existing column that contains the value you want to return. It cannot be an expression. | -| search_columnName | The name of an existing column. It can be in the same table as result_columnName or in a related table. It cannot be an expression. | -| search_value | The value to search for in search_columnName. | -| alternateResult | (Optional) The value returned when the context for result_columnName has been filtered down to zero or more than one distinct value. When not provided, the function returns BLANK when result_columnName is filtered down to zero value or an error when more than one distinct value. | +| search_columnName | The name of an existing column. It can be in the same table as result_columnName or in a related table. It cannot be an expression. Multiple pairs of search_columnName and search_value can be specified. | +| search_value | The value to search for in search_columnName. Multiple pairs of search_columnName and search_value can be specified. | +| alternateResult | (Optional) The value returned when the context for result_columnName has been filtered down to zero or more than one distinct value. If not specified, the function returns BLANK when result_columnName is filtered down to zero values or an error when there is more than one distinct value in the context for result_columnName. | ## Return value -The value of **result_column** at the row where all pairs of **search_column** and **search_value** have an exact match. +The value of **result_columnName** at the row where all pairs of **search_columnName** and **search_value** have an exact match. -If there's no match that satisfies all the search values, BLANK or **alternateResult** (if supplied) is returned. In other words, the function won't return a lookup value if only some of the criteria match. +If there's no match that satisfies all the search values, BLANK or **alternateResult** (if supplied) is returned. In other words, the function doesn't return a lookup value if only some of the criteria match. -If multiple rows match the search values and in all cases **result_column** values are identical, then that value is returned. However, if **result_column** returns different values, an error or **alternateResult** (if supplied) is returned. +If multiple rows match the search values and the values in the **result_columnName** for these rows are identical, then that value is returned. However, if **result_columnName** returns different values, an error or **alternateResult** (if supplied) is returned. ## Remarks -- If there is a relationship between the result and search tables, in most cases, using [RELATED](related-function-dax.md) function instead of LOOKUPVALUE is more efficient and provides better performance. +- If there is a relationship between the table that contains the result column and tables that contain the search columns, in most cases, using the [RELATED](related-function-dax.md) function instead of LOOKUPVALUE is more efficient and provides better performance. + +- Multiple pairs of **search_columnName** and **search_value** can be specified. - The **search_value** and **alternateResult** parameters are evaluated before the function iterates through the rows of the search table. -- Avoid using ISERROR or IFERROR functions to capture an error returned by LOOKUPVALUE. If some inputs to the function will result in an error when a single output value cannot be determined, providing an alternateResult parameter is the most reliable and highest performing way to handle the error. +- Avoid using ISERROR or IFERROR functions to capture an error returned by LOOKUPVALUE. If some inputs to the function result in an error when a single output value cannot be determined, providing an **alternateResult** parameter is the most reliable and highest performing way to handle the error. -- The **alternateResult** parameter will throw an error if specified in a PowerPivot calculated column. +- The **alternateResult** parameter returns an error if specified in a Power Pivot calculated column. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Examples [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] The following calculated column defined in the **Sales** table uses the LOOKUPVALUE function to return channel values from the **Sales Order** table. ```dax -CHANNEL = LOOKUPVALUE('Sales Order'[Channel],'Sales Order'[SalesOrderLineKey],[SalesOrderLineKey]) +CHANNEL = +LOOKUPVALUE ( + 'Sales Order'[Channel], + 'Sales Order'[SalesOrderLineKey], + [SalesOrderLineKey] +) + ``` However, in this case, because there is a relationship between the **Sales Order** and **Sales** tables, it's more efficient to use the [RELATED](related-function-dax.md) function. @@ -72,6 +80,27 @@ However, in this case, because there is a relationship between the **Sales Order CHANNEL = RELATED('Sales Order'[Channel]) ``` +The following example is not supported in the Adventure Works DW 2020 sample model. Here, LOOKUPVALUE searches Average Rate for the currency used to pay for the order on the day the order was placed: + +```dax +Exchange Rate = +LOOKUPVALUE ( + 'Currency Rate'[Average Rate], + 'Currency Rate'[CurrencyKey], [CurrencyKey], + 'Currency Rate'[DateKey], [OrderDateKey] +) + +``` + +Both the Order Date and Currency are required to find the Average Rate for the correct date and currency. OrderDateKey and CurrencyKey are the keys used to look up the Average Rate in the Currency Rate table. + +You can use the Exchange Rate to calculate the Sales Amount in local currency with: + +```dax +Sales Amount Local Currency = [Sales Amount] * [Exchange Rate] + +``` + ## See also [RELATED function (DAX)](related-function-dax.md) From 0848d268413edfcaad928c79d948037950612970 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 17 Jul 2023 12:47:06 -0700 Subject: [PATCH 291/934] Revisions --- query-languages/dax/lookupvalue-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index bf06a2fbd..29a9a733d 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -40,9 +40,9 @@ LOOKUPVALUE ( The value of **result_columnName** at the row where all pairs of **search_columnName** and **search_value** have an exact match. -If there's no match that satisfies all the search values, BLANK or **alternateResult** (if supplied) is returned. In other words, the function doesn't return a lookup value if only some of the criteria match. +If there isn't a match that satisfies all the search values, BLANK or **alternateResult** (if specified) is returned. In other words, the function doesn't return a lookup value if only some of the criteria match. -If multiple rows match the search values and the values in the **result_columnName** for these rows are identical, then that value is returned. However, if **result_columnName** returns different values, an error or **alternateResult** (if supplied) is returned. +If multiple rows match the search values and the values in the **result_columnName** for these rows are identical, then that value is returned. However, if **result_columnName** returns different values, an error or **alternateResult** (if specified) is returned. ## Remarks From 435d3b245839c7350ab1c8f52b3578132e28aeaa Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 17 Jul 2023 13:07:35 -0700 Subject: [PATCH 292/934] Revisions --- query-languages/dax/lookupvalue-function-dax.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index 29a9a733d..575ae1278 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -60,8 +60,6 @@ If multiple rows match the search values and the values in the **result_columnNa ## Examples -[!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] - The following calculated column defined in the **Sales** table uses the LOOKUPVALUE function to return channel values from the **Sales Order** table. ```dax @@ -80,7 +78,7 @@ However, in this case, because there is a relationship between the **Sales Order CHANNEL = RELATED('Sales Order'[Channel]) ``` -The following example is not supported in the Adventure Works DW 2020 sample model. Here, LOOKUPVALUE searches Average Rate for the currency used to pay for the order on the day the order was placed: +In the following example, LOOKUPVALUE is used to search Average Rate for the currency used to pay for the order on the day the order was placed: ```dax Exchange Rate = From 24633a387704190b6b1b4a4872832df5145249df Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 17 Jul 2023 13:18:35 -0700 Subject: [PATCH 293/934] Revisions --- .../dax/lookupvalue-function-dax.md | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index 575ae1278..99dbe447d 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -58,45 +58,47 @@ If multiple rows match the search values and the values in the **result_columnNa - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Examples +## Example 1 -The following calculated column defined in the **Sales** table uses the LOOKUPVALUE function to return channel values from the **Sales Order** table. +In this example, LOOKUPVALUE is used to search Average Rate for the currency used to pay for the order on the day the order was placed: ```dax -CHANNEL = +Exchange Rate = LOOKUPVALUE ( - 'Sales Order'[Channel], - 'Sales Order'[SalesOrderLineKey], - [SalesOrderLineKey] + 'Currency Rate'[Average Rate], + 'Currency Rate'[CurrencyKey], [CurrencyKey], + 'Currency Rate'[DateKey], [OrderDateKey] ) ``` -However, in this case, because there is a relationship between the **Sales Order** and **Sales** tables, it's more efficient to use the [RELATED](related-function-dax.md) function. +Both the Order Date and Currency are required to find the Average Rate for the correct date and currency. OrderDateKey and CurrencyKey are the keys used to look up the Average Rate in the Currency Rate table. + +You can use the Exchange Rate to calculate the Sales Amount in local currency with: ```dax -CHANNEL = RELATED('Sales Order'[Channel]) +Sales Amount Local Currency = [Sales Amount] * [Exchange Rate] + ``` -In the following example, LOOKUPVALUE is used to search Average Rate for the currency used to pay for the order on the day the order was placed: +## Example 2 + +In this example, the following calculated column defined in the **Sales** table uses the LOOKUPVALUE function to return channel values from the **Sales Order** table. ```dax -Exchange Rate = +CHANNEL = LOOKUPVALUE ( - 'Currency Rate'[Average Rate], - 'Currency Rate'[CurrencyKey], [CurrencyKey], - 'Currency Rate'[DateKey], [OrderDateKey] + 'Sales Order'[Channel], + 'Sales Order'[SalesOrderLineKey], + [SalesOrderLineKey] ) ``` -Both the Order Date and Currency are required to find the Average Rate for the correct date and currency. OrderDateKey and CurrencyKey are the keys used to look up the Average Rate in the Currency Rate table. - -You can use the Exchange Rate to calculate the Sales Amount in local currency with: +However, in this case, because there is a relationship between the **Sales Order** and **Sales** tables, it's more efficient to use the [RELATED](related-function-dax.md) function. ```dax -Sales Amount Local Currency = [Sales Amount] * [Exchange Rate] - +CHANNEL = RELATED('Sales Order'[Channel]) ``` ## See also From 84f8e88964a1aeb1d888100637c0521a50050fdc Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 18 Jul 2023 14:02:19 -0700 Subject: [PATCH 294/934] Added August updates to Power Query M reference --- query-languages/m/number-functions.md | 4 ++-- query-languages/m/number-totext.md | 21 +++++++-------------- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/query-languages/m/number-functions.md b/query-languages/m/number-functions.md index b45558a89..5eaf8f115 100644 --- a/query-languages/m/number-functions.md +++ b/query-languages/m/number-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number functions" title: "Number functions" -ms.date: 5/16/2022 +ms.date: 7/18/2023 --- # Number functions @@ -29,7 +29,7 @@ These functions create and manipulate number values. |[Int64.From](int64-from.md)|Returns a 64-bit integer number value from the given value.| |[Number.From](number-from.md)|Returns a number value from a value.| |[Number.FromText](number-fromtext.md)|Returns a number value from a text value.| -|[Number.ToText](number-totext.md)|Returns a text value from a number value.| +|[Number.ToText](number-totext.md)|Converts the given number to text.| |[Percentage.From](percentage-from.md)|Returns a percentage value from the given value.| |[Single.From](single-from.md)|Returns a Single number value from the given value.| diff --git a/query-languages/m/number-totext.md b/query-languages/m/number-totext.md index 2cb89cd95..98afa7142 100644 --- a/query-languages/m/number-totext.md +++ b/query-languages/m/number-totext.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number.ToText" title: "Number.ToText" -ms.date: 3/11/2022 +ms.date: 7/18/2023 --- # Number.ToText @@ -13,22 +13,15 @@ Number.ToText(number as nullable number, optional format as nullab ## About -Formats the numeric value `number` to a text value according to the format specified by `format`. The format is a single character code optionally followed by a number precision specifier. The following character codes may be used for `format`. +Converts the numeric value `number` to a text value according to the format specified by `format`. -* "D" or "d": (Decimal) Formats the result as integer digits. The precision specifier controls the number of digits in the output. -* "E" or "e": (Exponential/scientific) Exponential notation. The precision specifier controls the maximum number of decimal digits (default is 6). -* "F" or "f": (Fixed-point) Integral and decimal digits. -* "G" or "g": (General) Most compact form of either fixed-point or scientific. -* "N" or "n": (Number) Integral and decimal digits with group separators and a decimal separator. -* "P" or "p": (Percent) Number multiplied by 100 and displayed with a percent symbol. -* "R" or "r": (Round-trip) A text value that can round-trip an identical number. The precision specifier is ignored. -* "X" or "x": (Hexadecimal) A hexadecimal text value. +The format is a text value indicating how the number should be converted. For more details on the supported format values, go to [https://go.microsoft.com/fwlink/?linkid=2241210](https://go.microsoft.com/fwlink/?linkid=2241210) and [https://go.microsoft.com/fwlink/?linkid=2240884](https://go.microsoft.com/fwlink/?linkid=2240884). -An optional `culture` may also be provided (for example, "en-US"). +An optional `culture` may also be provided (for example, "en-US") to control the culture-dependent behavior of `format`. ## Example 1 -Format a number as text without format specified. +Convert a number to text without specifying a format. **Usage** @@ -42,7 +35,7 @@ Number.ToText(4) ## Example 2 -Format a number as text in Exponential format. +Convert a number to exponential format. **Usage** @@ -56,7 +49,7 @@ Number.ToText(4, "e") ## Example 3 -Format a number as text in Decimal format with limited precision. +Convert a number to percentage format with only one decimal place. **Usage** From 5f283f42b504c012917e678fb5204b9d6ea12907 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 18 Jul 2023 14:13:07 -0700 Subject: [PATCH 295/934] Updated M conceptual articles --- query-languages/m/index.yml | 4 +- query-languages/m/m-spec-functions.md | 11 +-- query-languages/m/m-spec-introduction.md | 81 +++++++++--------- query-languages/m/media/madvancededitor.png | Bin 56867 -> 62245 bytes query-languages/m/media/mstep1.png | Bin 88987 -> 95619 bytes ...r-of-the-power-query-m-formula-language.md | 46 +++++----- 6 files changed, 71 insertions(+), 71 deletions(-) diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index aef4cb886..6bfcc363b 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -1,13 +1,13 @@ ### YamlMime:Landing title: Power Query M formula language -summary: Microsoft Power Query provides a powerful data import experience that encompasses many features. Power Query works with Analysis Services, Excel, and Power BI workbooks. A core capability of Power Query is to filter and combine, that is, to mash-up data from one or more of a rich collection of supported data sources. Any such data mashup is expressed using the Power Query M Formula Language. It's a functional, case sensitive language similar to F#. +summary: Microsoft Power Query provides a powerful data import experience that encompasses many features. Power Query works with Analysis Services, Excel, and Power BI workbooks. A core capability of Power Query is to filter and combine, that is, to mash-up data from one or more of a rich collection of supported data sources. Any such data mashup is expressed using the Power Query M formula language. It's a functional, case sensitive language similar to F#. metadata: title: Power Query M formula language reference description: Power Query M is used to filter, combine, and mash-up data from one or more supported data sources. ms.topic: landing-page - ms.date: 07/29/2022 + ms.date: 7/6/2023 # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index c750b9213..87e661a66 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -2,7 +2,7 @@ title: M Language Functions description: Describes using functions in the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 7/7/2023 --- @@ -41,7 +41,7 @@ optional-parameter-list:
optional-parameter:_
      `optional` _parameter
nullable-primitve-type
-      `nullable`_opt primitive-type_ +      `nullable`_opt _primitive-type_ The following is an example of a function that requires exactly two values `x` and `y`, and produces the result of applying the `+` operator to those values. The `x` and `y` are _parameters_ that are part of the _parameter-list_ of the function, and the `x + y` is the _function-body_: @@ -62,7 +62,7 @@ The following operators are defined for function values: | `x = y` | Equal | | `x <> y` | Not equal | -The native type of function values is a custom function type (derived from the intrinsic type `function`) that lists the parameter names and specifies all parameter types and the return type to be `any`. (See [Function types](m-spec-types.md#function-types) for details on function types.) +The native type of function values is a custom function type (derived from the intrinsic type `function`) that lists the parameter names and specifies all parameter types and the return type to be `any`. (Go to [Function types](m-spec-types.md#function-types) for details on function types.) ## Invoking functions @@ -86,7 +86,8 @@ An _argument-list_ is used to specify a fixed number of arguments directly as a The following holds when invoking a function: -* The environment used to evaluate the _function-body_ of the function includes a variable that corresponds to each parameter, with the same name as the parameter. The value of each parameter corresponds to a value constructed from the _argument-list_ of the _invoke-expression_, as defined in [Parameters](#parameters). +* The environment used to evaluate the _function-body_ of the function includes a variable that corresponds to each parameter, with the same name as the parameter. The value of each parameter corresponds to a value constructed from the _argument-list_ of the _invoke-expression_, as defined in [Parameters](#parameters). + * All of the expressions corresponding to the function arguments are evaluated before the _function-body_ is evaluated. * Errors raised when evaluating the expressions in the _expression-list_ or _function-body_ are propagated. @@ -112,7 +113,7 @@ There are two kinds of parameters that may be present in a _parameter-list_: ```powerquery-m [ - MyFunction = fn(x, optional y) => + MyFunction = (x, optional y) => if (y = null) x else x + y, Result1 = MyFunction(1), // 1 Result2 = MyFunction(1, null), // 1 diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index 531888b23..f2bc059f1 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -1,15 +1,15 @@ --- -title: Power Query M Formula Language Introduction +title: Power Query M formula language introduction description: Provides an overview of the Power Query M formula language ms.topic: overview -ms.date: 8/2/2022 +ms.date: 7/6/2023 --- # Introduction ## Overview -Microsoft Power Query provides a powerful "get data" experience that encompasses many features. A core capability of Power Query is to filter and combine, that is, to "mash-up" data from one or more of a rich collection of supported data sources. Any such data mashup is expressed using the Power Query Formula Language (informally known as "M"). Power Query embeds M documents in in a wide range of Microsoft products, including Excel, Power BI, Analysis Services, Dataverse to enable repeatable mashup of data. +Microsoft Power Query provides a powerful "get data" experience that encompasses many features. A core capability of Power Query is to filter and combine, that is, to "mash-up" data from one or more of a rich collection of supported data sources. Any such data mashup is expressed using the Power Query formula language (informally known as "M"). Power Query embeds M documents in a wide range of Microsoft products, including Excel, Power BI, Analysis Services, and Dataverse, to enable repeatable mashup of data. This document provides the specification for M. After a brief introduction that aims at building some first intuition and familiarity with the language, the document covers the language precisely in several progressive steps: @@ -25,13 +25,13 @@ This document provides the specification for M. After a brief introduction that 6. _Functions_, another kind of special values, provide the foundation for a rich standard library for M and allow for the addition of new abstractions. -7. _Errors_ can occur when applying operators or functions during expression evaluation. While errors are not values, there are ways to _handle errors_ that map errors back to values. +7. _Errors_ can occur when applying operators or functions during expression evaluation. While errors aren't values, there are ways to _handle errors_ that map errors back to values. 8. _Let expressions_ allow for the introduction of auxiliary definitions used to build up complex expressions in smaller steps. 9. _If expressions_ support conditional evaluation. -10. _Sections_ provide a simple modularity mechanism. (Sections are not yet leveraged by Power Query.) +10. _Sections_ provide a simple modularity mechanism. (Sections aren't yet leveraged by Power Query.) 11. Finally, a _consolidated grammar_ collects the grammar fragments from all other sections of this document into a single complete definition. @@ -41,7 +41,7 @@ For computer language theorists: the formula language specified in this document The central construct in M is the _expression_. An expression can be evaluated (computed), yielding a single _value_. -Although many values can be written literally as an expression, a value is not an expression. For example, the expression `1` evaluates to the value _1_; the expressions `1+1` evaluates to the value _2_. This distinction is subtle, but important. Expressions are recipes for evaluation; values are the results of evaluation. +Although many values can be written literally as an expression, a value isn't an expression. For example, the expression `1` evaluates to the value _1_; the expressions `1+1` evaluates to the value _2_. This distinction is subtle, but important. Expressions are recipes for evaluation; values are the results of evaluation. The following examples illustrate the different kinds of values available in M. As a convention, a value is written using the literal form in which they would appear in an expression that evaluates to just that value. (Note that the `//` indicates the start of a comment which continues to the end of the line.) @@ -62,7 +62,7 @@ The following examples illustrate the different kinds of values available in M. {1, 2, 3} // list of three numbers ``` -* A _record_ is a set of _fields_. A field is a name/value pair where the name is a text value that is unique within the field's record. The literal syntax for record values allows the names to be written without quotes, a form also referred to as _identifiers_. The following shows a record containing three fields named "`A`", "`B`", and "`C`", which have values `1`, `2`, and `3`. +* A _record_ is a set of _fields_. A field is a name/value pair where the name is a text value that's unique within the field's record. The literal syntax for record values allows the names to be written without quotes, a form also referred to as _identifiers_. The following shows a record containing three fields named "`A`", "`B`", and "`C`", which have values `1`, `2`, and `3`. ```powerquery-m [ @@ -72,7 +72,7 @@ The following examples illustrate the different kinds of values available in M. ] ``` -* A _table_ is a set of values organized into columns (which are identified by name), and rows. There is no literal syntax for creating a table, but there are several standard functions that can be used to create tables from lists or records. +* A _table_ is a set of values organized into columns (which are identified by name), and rows. There's no literal syntax for creating a table, but there are several standard functions that can be used to create tables from lists or records. For example: @@ -80,11 +80,11 @@ The following examples illustrate the different kinds of values available in M. #table( {"A", "B"}, { {1, 2}, {3, 4} } ) ``` - This creates a table of the following shape: + This creates a table of the following shape: - ![Example table in M formula language](media/table-example.png) - -* A _function_ is a value that, when invoked with arguments, produces a new value. Function are written by listing the function's _parameters_ in parentheses, followed by the goes-to symbol `=>`, followed by the expression defining the function. That expression typically refers to the parameters (by name). + :::image type="content" source="media/table-example.png" alt-text="Image of an example table in the M formula language."::: + +* A _function_ is a value that, when invoked with arguments, produces a new value. A function is written by listing the function's _parameters_ in parentheses, followed by the goes-to symbol `=>`, followed by the expression defining the function. That expression typically refers to the parameters (by name). ```powerquery-m (x, y) => (x + y) / 2` @@ -94,13 +94,13 @@ The following examples illustrate the different kinds of values available in M. The evaluation model of the M language is modeled after the evaluation model commonly found in spreadsheets, where the order of calculation can be determined based on dependencies between the formulas in the cells. -If you have written formulas in a spreadsheet such as Excel, you may recognize the formulas on the left will result in the values on the right when calculated: +If you've written formulas in a spreadsheet such as Excel, you may recognize the formulas on the left result in the values on the right when calculated: -![Formula resulting in value](media/m-spec-formula-value.png) +:::image type="content" source="media/m-spec-formula-value.png" alt-text="Image of the formulas on the right resulting in the values on the left."::: -In M, parts of an expression can reference other parts of the expression by name, and the evaluation process will automatically determine the order in which referenced expressions are calculated. +In M, parts of an expression can reference other parts of the expression by name, and the evaluation process automatically determines the order in which referenced expressions are calculated. -We can use a record to produce an expression that's equivalent to the above spreadsheet example. When initializing the value of a field, we can refer to other fields within the record by using the name of the field, as follows: +You can use a record to produce an expression that's equivalent to the previous spreadsheet example. When initializing the value of a field, you can refer to other fields within the record by using the name of the field, as follows: ```powerquery-m [ @@ -120,7 +120,7 @@ The above expression is equivalent to the following (in that both evaluate to eq ] ``` -Records can be contained within, or _nest_, within other records. We can use the _lookup operator_ (`[]`) to access the fields of a record by name. For example, the following record has a field named `Sales` containing a record, and a field named `Total` that accesses the `FirstHalf` and `SecondHalf` fields of the `Sales` record: +Records can be contained within, or _nest_, within other records. You can use the _lookup operator_ (`[]`) to access the fields of a record by name. For example, the following record has a field named `Sales` containing a record, and a field named `Total` that accesses the `FirstHalf` and `SecondHalf` fields of the `Sales` record: ```powerquery-m [ @@ -129,7 +129,7 @@ Records can be contained within, or _nest_, within other records. We can use the ] ``` -The above expression is equivalent to the following when it is evaluated: \ +The above expression is equivalent to the following when it is evaluated: ```powerquery-m [ @@ -138,7 +138,7 @@ The above expression is equivalent to the following when it is evaluated: \ ] ``` -Records can also be contained within lists. We can use the _positional index operator_ (`{}`) to access an item in a list by its numeric index. The values within a list are referred to using a zero-based index from the beginning of the list. For example, the indexes `0` and `1` are used to reference the first and second items in the list below: +Records can also be contained within lists. You can use the _positional index operator_ (`{}`) to access an item in a list by its numeric index. The values within a list are referred to using a zero-based index from the beginning of the list. For example, the indexes `0` and `1` are used to reference the first and second items in the list below: ```powerquery-m [ @@ -161,19 +161,18 @@ Records can also be contained within lists. We can use the _positional index ope ] ``` -List and record member expressions (as well as let expressions, introduced further below) are evaluated using _lazy evaluation_, which means that they are evaluated only as needed. All other expressions are evaluated using _eager evaluation_, which means that they are evaluated immediately, when encountered during the evaluation process. A good way to think about this is to remember that evaluating a list or record expression will return a list or -record value that itself remembers how its list items or record fields need to be computed, when requested (by lookup or index operators). +List and record member expressions (as well as [let expressions](#let-expression)) are evaluated using _lazy evaluation_, which means that they are evaluated only as needed. All other expressions are evaluated using _eager evaluation_, which means that they are evaluated immediately when encountered during the evaluation process. A good way to think about this is to remember that evaluating a list or record expression returns a list or record value that itself remembers how its list items or record fields need to be computed, when requested (by lookup or index operators). ## Functions -In M, a _function_ is a mapping from a set of input values to a single output value. A function is written by first naming the required set of input values (the parameters to the function) and then providing an expression that will compute the result of the function using those input values (the body of the function) following the goes-to (`=>`) symbol. For example: +In M, a _function_ is a mapping from a set of input values to a single output value. A function is written by first naming the required set of input values (the parameters to the function) and then providing an expression that computes the result of the function using those input values (the body of the function) following the goes-to (`=>`) symbol. For example: ```powerquery-m (x) => x + 1 // function that adds one to a value (x, y) => x + y // function that adds two values ``` -A function is a value just like a number or a text value. The following example shows a function which is the value of an Add field which is then _invoked_, or executed, from several other fields. When a function is invoked, a set of values are specified which are logically substituted for the required set of input values within the function body expression. +A function is a value just like a number or a text value. The following example shows a function that is the value of an Add field which is then _invoked_, or executed, from several other fields. When a function is invoked, a set of values are specified that are logically substituted for the required set of input values within the function body expression. ```powerquery-m [ @@ -185,7 +184,7 @@ A function is a value just like a number or a text value. The following example ## Library -M includes a common set of definitions available for use from an expression called the _standard library_, or just library for short. These definitions consist of a set of named values. The names of values provided by a library are available for use within an expression without having been defined explicitly by the expression. For example: +M includes a common set of definitions available for use from an expression called the _standard library_, or just _library_ for short. These definitions consist of a set of named values. The names of values provided by a library are available for use within an expression without having been defined explicitly by the expression. For example: ```powerquery-m Number.E // Euler's number e (2.7182...) @@ -196,7 +195,7 @@ Text.PositionOf("Hello", "ll") // 2 M includes a set of operators that can be used in expressions. _Operators_ are applied to _operands_ to form symbolic expressions. For example, in the expression `1 + 2` the numbers `1` and `2` are operands and the operator is the addition operator (`+`). -The meaning of an operator can vary depending on what kind of values its operands are. For example, the plus operator can be used with other kinds of values than numbers: +The meaning of an operator can vary depending on what kind of values its operands are. For example, the plus operator can be used with other kinds of values besides numbers: ```powerquery-m 1 + 2 // numeric addition: 3 @@ -212,23 +211,23 @@ Another example of an operator with operand-depending meaning is the combination [ a = 1 ] & [ b = 2 ] // record merge: [ a = 1, b = 2 ] ``` -Note that not all combinations of values may be supported by an operator. For example: +Note that not all combinations of values are supported by an operator. For example: ```powerquery-m -1 + "2" // error: adding number and text is not supported +1 + "2" // error: adding number and text isn't supported ``` -Expressions that, when evaluated, encounter undefined operator conditions evaluate to errors. More on errors in M later. +Expressions that, when evaluated, encounter undefined operator conditions evaluate to [errors](#errors). ## Metadata -_Metadata_ is information about a value that is associated with a value. Metadata is represented as a record value, called a _metadata record_. The fields of a metadata record can be used to store the metadata for a value. +_Metadata_ is information about a value that's associated with a value. Metadata is represented as a record value, called a _metadata record_. The fields of a metadata record can be used to store the metadata for a value. -Every value has a metadata record. If the value of the metadata record has not been specified, then the metadata record is empty (has no fields). +Every value has a metadata record. If the value of the metadata record hasn't been specified, then the metadata record is empty (has no fields). -Metadata records provide a way to associate additional information with any kind of value in an unobtrusive way. Associating a metadata record with a value does not change the value or its behavior. +Metadata records provide a way to associate additional information with any kind of value in an unobtrusive way. Associating a metadata record with a value doesn't change the value or its behavior. -A metadata record value `y` is associated with an existing value `x` using the syntax `x meta y`. For example, the following associates a metadata record with `Rating` and `Tags` fields with the text value `"Mozart"`: +A metadata record value `y` is associated with an existing value `x` using the syntax `x meta y`. For example, the following code associates a metadata record with `Rating` and `Tags` fields with the text value `"Mozart"`: ```powerquery-m "Mozart" meta [ Rating = 5, Tags = {"Classical"} ] @@ -241,7 +240,7 @@ For values that already carry a non-empty metadata record, the result of applyin "Mozart" meta ([ Rating = 5 ] & [ Tags = {"Classical"} ]) ``` -A metadata record can be accessed for a given value using the _Value.Metadata_ function. In the following example, the expression in the `ComposerRating` field accesses the metadata record of the value in the `Composer` field, and then accesses the `Rating` field of the metadata record. +A metadata record can be accessed for a given value using the [Value.Metadata](value-metadata.md) function. In the following example, the expression in the `ComposerRating` field accesses the metadata record of the value in the `Composer` field, and then accesses the `Rating` field of the metadata record. ```powerquery-m [ @@ -252,7 +251,7 @@ A metadata record can be accessed for a given value using the _Value.Metadata_ f ## Let expression -Many of the examples shown so far have included all the literal values of the expression in the result of the expression. The _let_ expression allows a set of values to be computed, assigned names, and then used in a subsequent expression that follows the _in_. For example, in our sales data example, we could do: +Many of the examples shown so far have included all the literal values of the expression in the result of the expression. The `let` expression allows a set of values to be computed, assigned names, and then used in a subsequent expression that follows the `in`. For example, in our sales data example, you could do: ```powerquery-m let @@ -273,7 +272,7 @@ let in Sales2007[Total] + Sales2008[Total] // 4600 ``` -The result of the above expression is a number value (`4600`) which was computed from the values bound to the names `Sales2007` and `Sales2008`. +The result of the above expression is a number value (`4600`) that's computed from the values bound to the names `Sales2007` and `Sales2008`. ## If expression @@ -286,13 +285,13 @@ else 1 + 1 ``` -The first expression (`2 + 2`) is selected if the logical expression (`2 > 1`) is true, and the second expression (`1 + 1`) is selected if it is false. The selected expression (in this case `2 + 2`) is evaluated and becomes the result of the `if` expression (`4`). +The first expression (`2 + 2`) is selected if the logical expression (`2 > 1`) is true, and the second expression (`1 + 1`) is selected if it's false. The selected expression (in this case `2 + 2`) is evaluated and becomes the result of the `if` expression (`4`). ## Errors -An _error_ is an indication that the process of evaluating an expression could not produce a value. +An _error_ is an indication that the process of evaluating an expression couldn't produce a value. -Errors are raised by operators and functions encountering error conditions or by using the error expression. Errors are handled using the try expression. When an error is raised, a value is specified that can be used to indicate why the error occurred. +Errors are raised by operators and functions encountering error conditions or by using the error expression. Errors are handled using the `try` expression. When an error is raised, a value is specified that can be used to indicate why the error occurred. ```powerquery-m let Sales = @@ -314,19 +313,19 @@ The above example accesses the `Sales[UnitPrice]` field and formats the value pr "Unit Price: 2" ``` -If the `Units` field had been zero, then the `UnitPrice` field would have raised an error which would have been handled by the `try`. The resulting value would then have been: +If the `Units` field had been zero, then the `UnitPrice` field would have raised an error, which would have been handled by the `try`. The resulting value would then have been: ```powerquery-m "No Units" ``` -A `try` expression converts proper values and errors into a record value that indicates whether the try expression handled and error, or not, and either the proper value or the error record it extracted when handling the error. For example, consider the following expression that raises an error and then handles it right away: +A `try` expression converts proper values and errors into a record value that indicates whether the `try` expression handled an error, or not, and either the proper value or the error record it extracted when handling the error. For example, consider the following expression that raises an error and then handles it right away: ```powerquery-m try error "negative unit count" ``` -This expression evaluates to the following nested record value, explaining the `[HasError]`, `[Error]`, and `[Message]` field lookups in the unit-price example before. +This expression evaluates to the following nested record value, explaining the `[HasError]`, `[Error]`, and `[Message]` field lookups in the previous unit-price example. ```powerquery-m [ diff --git a/query-languages/m/media/madvancededitor.png b/query-languages/m/media/madvancededitor.png index 9e9cd05f7fd5a929534e02cc0169b25769c6fffe..10e983975b6e846606541e3bf8c2960b9d0f6682 100644 GIT binary patch literal 62245 zcmeFYby$>J)HZG_ARtI73?SVh%@8Wm-QC?iG>D2w4c#RnNHcUJ-5@=*w7?KU*TDC1 zJf3sj-}U?c{Qi6Ax`1mB&+KRIHEXYR-}l;2kb;~zCi-*qTeoguN=m#{x^?Tp$gNxV zK#%SK@5nSuQvrW&J1dF5xm7$!vH=Y4nZK5Oed`u19OKgPJ}^dekkE9#b&G)d=I6Gg z64lmeHLRq)K;?+(rIHS?g}r;M_;JsU!6^e~ohaHj5=M{8W(`3`jx zu`g4fDrMg|g66~*aujBL+G@x7baclt^vS+>CQmRG-4{h<=>wUD&;*NjyevOEKPSG( zkPLmL#sYd6pg(>fpsIT`cAZoI%dRQ?fR7Khxsh3SC3Li%n?`F*3K;m$3m4r;{GY+C zTd&@~Mm+k@Sc2^{==OicXb)hN{~40EkVEeMXG}%Z4*k#Y-MtTRod1j?44!~*T=?gO z`}luv{+BQQ*X@5o;wIok?G~C)!q@BPWT)|cX?zFvHlz}QBR+nO$n&koZ|_p|f`3PifmbJ4wmO#vFg9xpiygb~}{fGiWp{k__CZic>w2J>*q6X>wT zA!2HWx%qN+Ftyn%`kzT|5yYy5g3Qg#uIMjQUOGq4)tUCCUmen_u{e@LWLRGcLGXyk z!Y`c;nlIz=u?3Ie;hUSs=(P8fGjgg=E`?)a9(BkN++?fYub)DBL|`l|tm1Q|es@Ob z$ha_SBaE0wqqf~2&fchj4$G3ot)csK^{sdJqJm*rFC{$=hs7sKuEo#N-wy<0mpcXB z1$^fZSNw0HP>PNT0p;f8q-ma1kYwQrUhxECk?J6SV6V_$pL~*W{%aT+=HtWi5wtu1f43S72Cc8H`6_GDo73I+ z7P;JYb(kw`J69%}Mpxsu+lRROfBj%rSJ(AU5AEt>QPNjyr%2=8lfrb(lf$twJk)2< z+S=Nuz(B~(<`pbkv}XUDOO)P}i*uFbqWof$+u2*0GTxP4+A}b&?zfUzxv$1{6~3f2ERt)uC?3`y#>_6p!e)G`{q@?k zL!_0g(Rm#URfE%-zO^lQJ+?sTOtwB-vuJ)T&-$+3ZFe4K-1U)by|)j&{uLZ&dHEAP zk*WU$qh0@X@s~5XjQ;+9gx4}ApX~}BMHML*x>zMTb-;d|IFuWLHy9Fsf{4uR z9>w{$N=rxJ1%pbku&>AUi=#%-&oHfnSCjj+gsv|SXwy%%&nRiGR`baS2`=CAi9R#7 zoY6`XoEccNd}4-nf2DQy;-^mBp}v~H;b=3<L-lzHTf{fwYQdChCAdYadi26roNoP^pZC$YI-(67x3W29e?F088c+W8 zX=^WrS73-yfFDR`wp}Ri`xQ4H7Pg&VEdh9NU;yO3#e9ZxOh#V?^UJ|R>3(!VTlIbv z6a5P|HU`6pDc>W=1~q?njm85j#BMr@ds!5*P@3a?wi*v?-7o>S09CROU|S_$ou#kt zkC9!UvSNV*c=`D~cjp^ts_pfEZTsxhhD|rfD*y}cs>sVf$4t&OlM|$Ze%bp97q~MJ zb#*x`{*hV-L`tCcVSpU-fxg$aDhuw2?O4x!CC*hmp_(oI>!b6dt;2%UonNOj29ae6 zUv@@5(qGKGf0%jHDx7{57!^$`FGhh=_kH2|>ZEl6{|cQDj83-xyasJy=SRke*5i1L z%ZpgX+4`AQ@ft44pI1)p=IK7ifWK8(tWf8ED#xGl=2+i&EGpYnwF9MZHW&pIgKc+Y zM@vhK1*hlwVCqn@Zo$<;y-V^l{xDGNqtVz77eZ=EoA1}h>){N27+Xv>$03BmNhv9K z$K5;&-p^GAX0#d&|%$*jb`}_~wd!^;P+}XWw?E^FL9$vg7 zoHmgyg>csvl;}p6&F9Va7)t7+=BrT)d{69qENnkl*I_0-TkmEMM81VS%bF2WanWkh zHPVg8e%|B&@6po$O(&SD@Ks1l%WLj%a_@lseL_2*1I&x+PdvoL%-2r{CD73QBxa_* zRv`fo3N^U|S!d7yIkZWKN#Yp@GyD)4mcL#7Qb$?MzkP=_`BB$U z2WoIezaW?X}8DJ^U+a;eXI>Hi(nQ`*bnZ@ogZ+ znazU;2H0{(2pRp1p`|hXZI+9Rf@U4lG3hT=K1Pk@P4kCvu z*7M~Pc63<{GKAY*VI%Cfi@CO7#}IBxw2MBPS;dp~g$Dtk_O-l4tapBN^oa=x1_zuo zXNDiDqv%@=`>8#5+M%;j=npr8+!jm^I3I~`6#JpnYfHZzyDS@t=i6yK{*&&qxsYE2 zr3IYvBx2#n>gKtk$E+3pskctjD#=gK%lo^#yY&eP;PjHuNJwFXK3yt-hf*O}lM!67$}b>1MygBETB+qgQsdJ(FKt zuaKoN{iylowy6i9k+^NCbyL)x>B*sFY%;ThN7Hb{6J47>Yazeuko1BASV|B)(pt(4 z4?bWCcoEC~&Bo@Y5;x*}tMz>(PC2MQz~}umQHXWVH`M4X@kA?6nRoRekfQZ{&sHyX zoBe+MXaPbr&3hls?iRr!tJOl<+8z2VD9!yQ)bWhpW5EKZejir52)jA492$q2GoXxD z7{X+za6K;Vuj+N&mp`SWnl~)@8J}JB;Vzb7Y>~6Je7j!|`tqmpgPK-7ECNB6AzT&i zm9Y*vwFEev9U42-BtOSfNI!j2 zSlc2RkgKklYbdD&*i#Fa1N8>E5Mv?R!07612Y-%TVFbykY?2{W!$Vh-R zGboSbC$Hp1AIUbx8Z@R_RbPL>IQVd2@cTgPbnohY*XELe#(wG#V#(0Hc3UXRKu4Ai zNq+}4&Q|3QvVZsZyMXH3wQnX!WAS3YSGm*Awx;Mp6kC1X@^mga#jU5aer-EKmywaV z6p>_-AG0kv0jjjKAa3tXArvm(*$56!eYoJc)kB-EFes&m_?EiG30awFkL+DxyfMtq zo?mrdP3KcW63m!{k^Z|+uK=W?R_2c{$miI52_pHNn0yi4uB^YtVy}+^&4(c6rjibk zVTuGg5}??cvU})YtzJyl*(Z|< z`^ro)uHIx+Hxff0;6u_AG+Cp+j5rR;s5~zEK7OvV@A4-0dAZrzXkxprYYd)YhQTNa zaTuODKdlL1Og=&XS5hdAS#%OJfoc)(K}bkQI6ZgaP17$dYFs;c$ zmwo#g&va;&y%ft&4#}FD#nSuHK#iok$ilk}jEV{hLgOBKpd+oCOBOFVfA!Mei&gK3 zlY_Z#MG?(_xEc=D1G`rcLZdF$rqef5u`R)YzI*o96FqCs$Vu8}B_?zj!v3jg-*Lqg zxhb5-%DQ2cJQ98RWY--5^Yfqa?Rj_@wXx8z{Vq@0tKPQOI+M`_c24-gXI**DUjMsW0$A z&3DgVQ$$p^0tp2Fbw?MOU;j-nj03v$g+2CH zMz0kp@FsFTPH!`v0$8M@iD&)`WvqCXqTyY;^L4)*KgNjbgtBai{~hiVCv|ng>MOvG z!%_KwSVAm@Mdem3BhmGB`GyM?w~0sk$ArzNwWW40l=5 zY9P*aFk_{Ycr>@2*|Q@ks8^I8A2Og{e9q3J$U}X3Iznx0lV4D})_TsE%R~hkJI2e4 z3Aq!%s;!G^u9X;8$~xKkmpo}C5mARqkn#~QLssg>pI$9ES?FTzY#Z20iyXX_JO;R1 zR~IE@iSOAq9mUvMTc9Qyrr-H!I-oFcsiz%~Nl6v!HColupoN3(v*EW2=qotRVscdjU?9d5UtiNDyFfYrTj<0ExpG+L=Y*!pqTVmEhi zh_E(MS3M%;mTwg>!O58%QyJ>-hlj75_+HG+_3poqV+~5K=9&T6_3|%VGoM>+GG5$MT@jDeaSMVL-%e}VTtEL3TetMfQ zpNo06Y2`crNhw^2>|hB}QvzDZ7|o~VyuuVf7A)Up2joH^7Gf~ids!$WyVC@lQ8NZO z1LYsD(XUx$&VV46z-Y%Yw$x9WziRGfZho&|;O;I#N8emW-0dfGN+5WBay^oEkB}Xb zJ$t^E>^AS=1z@xuYdV{9fFQip=mBV&oVV8>Xz+^z84K|F15Ax(oQaQ)KE13*tQRc z8MmIqR=+EyuD;xlC-XUsyqtRq=napg39w!mlJzu-q5J7-JT#QuvG}x_@oR_4Q2F|> z1S6nQ(5p(DkF$a0KTe@XtOrSu(uW*Jas9y=z+X%MQ7W9CtXu!`V&KikL98Ng_x~kw zH`n_RM3J%}SN=r>H*cQ*_{Fv}>)=l&Z~Z@1eS>a*TVtSM5}qOt@Bf1%Za(q9-GUo0 z+`Rs`Px9LjfQtOT9irc^_iO zQyPpGhEJ`KUmj0fR_5-}1>}%_EP3%!`gJ?B_&prwZ_|KlS?=S2>wxCuzcba~ z{WDSB`YT=J^!|Ku(#GFbCV2n8yuND4+!R^mXc|{#OI-ezyUJN*4Xj_=hB;C+KBa)RE%duXNeeHL__H=DLQKLa|8a2_7>IAtO{v-P}cf-#jDW zGf4M7EK65@=t5m$jRG=;16!uppo28%HBap7xAgbWq`yTxI+ArkxR-M=nL#z1!iu72 znFf257gwq5`+N7-(7UW0QCzam{$7m>i;=jxFe}e>+J71o)?4x`lHDwq3*4uNF;P zrlmP%nf|s&=QFTIYJB6asgilY!?^1J{wO|{SUAji`ZHB;SQ9sAX7L#l6=`-JC2liN3j4#g@h<8YA$I(K zhZc(p5LQuIu;s9wW-4Y9b+XM18^}(%vi%E4=wwhEHI-gJX0@X%%&zKFT#&N>wJgD0 z0UsVL%N7TmnzTYAA{zr-L|oyXv>+Je@9EhzDIhMfH~l7iuBPKb zMiJ%1^bJz5*x+Cw`kHf@q~Wgj7mKE=!n)835{_jI3j49hTyJ^g>(ux>&3h5}g=Dd` z44DN}uq)JROKdi{8N8I@Tg6F(oP?BDu}%vC6FF2!QDFk-LN6~b74AqgQeNWJ zC=gY$H|KrzUct5=Qcr(8H_+5++tP5+L)*~QI+Bw?r>>FLs1Srj*AJ9oV60C*M!O~p@_9Xk@@TOwqMRnOhM0Y;6-XF*(2r9k@`X;v&rGIruKQ&Nt8Wo~ z#hX*Bv=r6VrTP(`p~>PS4Cxal)?#(;huj*A5+V^Y*jqa2DRw;j<12HvvzS{lD>Ay@ zUh&VZluMR_NYZ6nCu=L@dF4@ur#O>S?mu3b=aPa)_90qfdIP`)`<+2#;%*|f!$>^V z5(I|Wq@6^(oY!&Ovrdoqp|U^lM)(U`!m?sM;gO}SmGc~p59z47O1AFGAg zM#!I>nZWc{0_<|H2nGd0qWjt1n)Hwff)#%A;zFvkB*}Ei@c6=do)F5;vIj=|Y3K)G z2^KD~%Y8?mZx3*|HfAl|DjUYYzpbP+B@={+8M%rX!+o@nz1%-2gOy&Q!z{P@KC0)b zA-i+`Aft6S7f(nE^CXK}#C_^oAtdE|>po=U6C*#wowA3yJeHopt2y>ihmVHqC@GNy zgb;MJlHjqaq@KevO9*g*RN{lrLwdL5Q^RxDe0Hi zS+7*FIhtAcu`}Aj+xrb9ATCNAy8+9Ic7uT93%La#s55m5BnB>!zYMb(m(A^7}L;jY}hDan|bH$cOR>I#sthK{t;W?xgDZb4twp_K+8O8HDE@b zUP{g-X5?v$e*f|Q?B#Y#RVvfON#214t@)_V?y40%p&zaG_k?WMDui7qTzh(RYrlt}V6b91d3E2u$ zVy0)Ij}^h>vpcv?tU`}3&89wH>Y65~DpvRDu?o^KPHzF~6PwMYxj4TS9F)mauX1wK z`5u>jSRousKucW9-m{f%mg2}1W~b>dJavG z_Ni`YP-j=n5JkY7qu(m_iutKKjm*dN%^5K`xO3Wm3$a$kcOb#D!$O`#$le-7aiDm4hABYS#cziqEl9yt(K*n*b=NY|vkysK8`IS5o~NYQ*{yCwO04i*JR(r|sr>eC^x%Mzza zX3Py1gHeXV@2^nr>^axW!G(Iuy>Hhx2WLa;UhLa2+BTEe5Jl5Y3ny!&KjxQSt7aQU z=9xQ}=0$!ox<;Qc|LPV{XD|CF%SHT!IgAC8I-w|46T2$-S4w-9i!bM@vcsa5+X>~h z(n*;EM~AD*5&`^+t&vX>SB{Fv8~GVxJ?oXPM568d2^(!G6B1VvG(ibDrJ~0-I+X52Xu*!aewlp_%V-_Gf&`580g>=vyyR{ zf~sG#eu*yipi0WkH@mFyQ2`cHYeq2AVP-P-w{B{Q(5RT36|LU*|Khlyas|rD%3!<{GAT?#w_wv6|*+s;SfQ z6mK#~7ZgigFd0V4u-y;LjbVy1l*ZriRk8c=udY$>`#HiBQZ;p@kg2l znDe8>sHq_)B9a;p#bk0}ln2L0^J_^Cilo+3IiRnT{x;wQgP056VIXvjqf8pH=<&MU?2xIayH_WX~%H{j~Gy+oGe&gHKB4xH>T z*z#q7)635va%(haT2eSy0<3rm>tU2z59Gjf+lVu#m!6>v4G|Xv711mmAaL(IsSQ(x z?T=Q_EK_}s7{Z;R5J2p|*dR8veLYyjB*AMLQJeR_R+ZDGNFfp zb=t9ET@=)s7~!DRgU@7IT~m9BMynd!auht&qbCrjh+ES?xYIAv((G$Pnw>I@)CFGMtm91{8 zR7sZ+gQfgwc%IwqZ(D5yNSpqm40BnWf#-Ad26hH?LfN^n_JmTz~8MOHaNQ*vH34XSOIP!yyW zJ+JS%n#v~gnYY1YrPXggeWcjK9SMAKrcDzRe<%-)^bIbxf-So#E9=X%dCkmI!IqO% zMfTe_b~(v3?+qA>*KQb1czOQ&DqOJD`X01jnAgo zqzf}8(7iMmIR3vwY?-S6ia^=jN!k9p4XoRrUmdR^vy@oj$ap%Lgahv3M?f3(nzb zHtnI&mr6?@h^+S#08GF>w+Pvqml;y=gqEffHS)n{bQBwOpFP8#7-<88SsSh|A8Fd$ z&;jmgjBm81;Q4aNL3#C9w{UdYF`19LblyT`f~w*Y0=cC17N^zell>$3{}aCBg@C#M zpiHTl71_mq7G9Ix@rqqX9?G-Mpl;nO!SGN~QL8?fmA>xXWbp;@d(NSsdra8XqBX6@ z#^S5IRWH*T268nHOVCq$a7$Vi;eKxtW%ltGXA zDqIgC(LMNrlIB9gS;XGZG`!93w}bMh+@3uT0-l#wR&hidO2$XzKDI}U(;bx z9iG3;T&yf_^*P@v+>+@JhyFvvZ8w=9R9KZm07>!DQ=>6I^DcF18lW;yOx>CX>(``k zd6}>jR(Jh!P&Sp!xb}Un>hALwm&8d;yGm(?n!pzCB-wiS+|M{KH(olVeBt;WpeMBz zB@J}sMPhM0llmG;!*GrqA|}x>$&13`>7$nK=*@VgXrC8YbmsWqPS<>`ii2elO;*`r zJaF2W4B6(b3mSth%Vg)~L7W{I(VGRz#0U3VBX)8eh`_;O=g$MUG}9=z1=5?p)Hq#x zj67Bzn%WAS3^6A0QYUIQO=*BDvhlmSn>%Jyv@W$&HRaf9%nh4l8g*%W5SLvK9juzU zp&7go=p!$-C$m*0>DL~w;0?xeUTrPjke^;VCl7;riCH6`Dimb_GdWe|xKnG+{KduE zOhS&-gBIjm8#>%JWvf0(#>ab9Js0@@Y-6LFfNFj0lKn#BrL65xvK9{b@5CHU{a0xN zN;=zF89TIWpYh!FxejA0uMP!4#T+5k-z;?+|BoE<>l2UmMuKo$8>H_;l)9cmGYI={ z*#zV1Ki5Q!yi*}yerA5Lq8Qsy>w6u%bZ(vW@^2mFm(Cv{CBqAA>|O}NIdhe4G>aFOw_q{%knldcz05@1hm_hqv4~=k9M|hZ$)3{B7QoHwm}@ zp7R0@^=9w>GAirqe>EnKSAY3oSn0p|*0bLWvan3*f)*_@rM)`( zl9Mn~WlL3128&I`0xSW6&O3Ypcb-1hBOqc*VA4p)B*2 zV^waSg!38U)FhqOO(&3WGdrbm>yb?I*}+)ChWRQEy#AAo0WB>l%qhe}nP~MiN-_^} z_ni+zyFVxo>U;8lgX1W1Q})dsIY-OPq9b)K=hWx+2skXDSS07ZImQGX#Kl*IN+Y!| z$3c4t`%{7TQ?*9R_yq=-`ed)cZfKM9;n_upRCkiBPf{&}_9e3_2Ow@%45?%i}6SZqL`j%FR!qISFEy z4nWBL6_b*caO6zEoO}a$PFMpzE&p{iD*`G_1<+pIIB~z?^*w?Kti1q2yXkf)dxO7i zF3oCGUXI2jYgVk&Qf51p1LYNhsuPc_FF7{fr1T#=D8F+6SL`frs1ZUlcgZ9nv(r48 z!QEh!3xP+vn)t&bsim-OYNf9DTn#{I3EY^^sOQR=Bn5_T3XY6c#$5-nXWcBu<1(}_ znbtdr!Gn5Dr-veeJ6@%xGd(l2gysau+`~LR7uuS%#`+Sx~Dm{Bq{14i(df)B1)P9 z(x8wg&Y;*tYh7m_VdgU&balM{W_pjEXBMJ-5E)Qw5z9Tn&|>hR6t2jAatv1(YTCa; zcBT?n!g&-WE~>jwUvD((kD0yM@Cat?=laTOk?4^s&kdJ2U_7 zsN;?CmEgv$Gg*6k>ewf3aL0W6>U2E!!mnNloV;Paqs{9B<~_M-b1s_rG`=I6Vs_|5 z#Ty7R+U+M<`Y!gKiC0DU$DDV<5FW8i*^rC07UVZxQ_s_^x$xoqu>$6{-qzN?e2`Ob}0|Zmf@X6uyb3gY4*;JCxQ;dkfw@{s`+iP-fHxlIP);zl;Wke(t)aG#$q>?A75HS?5h;X4iZ zo&BKQe{0!uKXp?rVswsJvUkI$K)dqEjGT|ki=4#z-s8~xT>a@)O2+0L%JQ6;n`-g9 z^5hYKH!qOvxZuAec(wh3OE}U+6RJT|a{1nD;!>w;sHY#$f%o4g%??WmY+$|I^##hs z`c=cvstKG%7kd6#t@@@PL!M!H^@$uC5n!h(7L}hv8O%5hO|KMdt`J1(Vo=@gtgC(n zFWGPJSVp!OAB~?79Y4XdNAU6pd*$0C@(x8i;SV4u=cnbOo+Hyk@W65;EH9Wr@c}lR zp{hIJSdnp)1M76`fUKpFrv1!!=_HmEM(N4^KlMbPlWytu5p6fs3%a{&vymUY-59{U z=@HcW3iL#EAU3p=Edm^3Je<^G-5%*5tes6)`YwJrFJTt%i7N7vQccMyH%49bePHbA zHCbQ5kFC~SM(?}X^h03?W~u|3610$|*hw;boGj=4A(e2@6alv=?dKHG);w{Pmyl_f z_FL6YY4=;rX}uWUFWuffiXRISexz%SxgHW2&67^z8yucpPz6A-cxc(0=Hgrl3${wJ zbr@z?VX<)FMgCoiw}Wa4b`;gqKklaInvFiYJhSk{#)a4cJM zJtyl|dB>}x#{R87>`x~U(Zj0p#ySNl_*9+isCbr9^6S?JaK}^Es4ZKcZDL=7kUIt3 zh$!d~@}xQ>B)@oTtb*@!1^8 zPvAJpcu?=^)ckhS1M zAvirHwl25O7v(d~6#H-1u*3oTLN=M%A(!Kp(NeGW`w!ucg-zWRS1w^;Ww-?dqxr`# z)8*Y629E=ucawLNb2O@Q689D~;9Z;oeX^Is#B{cs&632C0K>+>_jF`95eH;@>Xipu ztla|xW}l7;qbHLEI|h2WLzy7R)nJasg1(vJ&tySR?f}WzWq=`;B(ai1QiO3S(lI9r z7J6Y{UFpoq!bxg)Vav~^4JJxv4AipP;7FzW9{7WVg*(rU0wdt-IdE%}@T)$@DpItM zKC(t2d*9Q&@AoWo*q?4p5$3c+l%0r_?K;J+K6=W?I#4>%(&yw<=DkR1e896QvDLEF z=Je1oI=A~Zod8)?XXh@|CANe@T2FIWK9_CdS<-SJ{+j3I(AZH_RUFVva5;J$HG97u zdf*cq9?ap)?Ph7F$$-**+Rsz3%dtzn)uQEe>ol!!tC3kY6pK490*D^OX@QzTz0aYcaZU4 z_-F1RYRj=hsFTydR6HLW=6c?D$4&RaqM%<3kO~KFt%N!g``*iBO?Vf5O$SJ6&Nx*j z@BPgx@n6%BvGjV;2ctD$pChYn{yO@k>eR#_X2{NQB&LyJ*>F>h==smI@Ih}+*g8GT zL8}8=r`~$X(!JkfiVN=5t#sd)IyoAVtB`d4=BRCWhGr@$?)u`Q&h>~p3=~dAV4fG< zzJWb%JbbEk(Q_E7>$)V2Q72{`up34eFV>qQ_3Z0Yamz_gQ?E|^r_DR_RI6$2+aB*_6s_>K`b{qnobi&`_k9_#^MJ< zNm~+-@+aFX5akf9`obhpm- za*d)y0K!x9kBNp3giHtu@(p74PMgLtDmi+;+ymLC^4ESkk??%jFi z4smSuc1Dh6_S4nF=!^HxlaPq&qSXNGhA|2PuWtvsz5>WceV-@wF0(itkNc;{f?iuKl5h!1NF#Tm8L#5jVP)-YBO7YD?VFmz*vZc*(SXc4XtWccFW|7s3dU z;d)969!$^5&^Q=nojVOq?&txY(C{XhQYP;-9|EazBb6-~A!CxrPrfg%I^uK*SLrY5 zhN9eNxPwN?ikI}?x{}YR0Zmqv;<3*`!POTQ8h)>`XwI5wgvqZv&%PNfvX?Y7aD+?vL05-H$LLt07+O)?zRYTHi-=a3dfb*kUZQkHR zLKk!`T^5rN=qxbHM2}7@BJGmkw0eu@Nu3-%(K*6zG=y;<{~)Z!givn*YG`uWj+;l( z>8!X6U3y%*>h(d8}0Rkb+XGlSoy1YFhQU` zfAT5ZaR<^xaBj7iaY1UMSHAJ)fNw+8KrYW-d>}J4^Ls*-k$5WW*Qfok38;6ln{9pF zYa;@DtP)fjYLqJ^mbko=m zFc#-?_CDxXkhfl|TgMFoVQ$Hb`G9HoA)LP45olwboslL5+hzz}j|i-e$Pr9Tf^}-^ zDpmYtti+z<)NQyU6nae@5eOsb9z=`T+2SD@nmmvEeo3^3byo{+hUi{PTBKKnKEz#6 zF7B|juDd@N&q`?i{CXq;-An_~-J9^Du>s(p8rq7}+i9JHv@3>%_v5*QVWtM}ti2MR z15be^o;<#Q=s=dfuLDJ*66i1$3B{K9GOkSUaTtl)7dMw?XCk9^60~k2Y=_>7kdxbr z32W<3UalshTP({c(H0S)ohj?xG!61$%P#BM_CFv{RdqrRXS^HOQJfW%%@^)OsVgyZ z;uEv{O+%%`m_Haa#XIa7aHR7Q9@#`=>4iC7)@=QLN~mlXNZ3jfG$-=r`3LYwJ`TPg zs?Fs!5tXNGB)_K4BVYOI>zyoyRYGF+O+)^QujRKhzE)wo^lrCdl-hpb%j;H(8@ovn z3AC`sAt22$>vhlAcKC2nL4Z@#|O3LT%LQy8yx8+2%Fbh}%qe$A`CYUlY{ zy~r~^zk1%S>I-2NdG)^}$G>zz;K}vn#ymGmKPYR%(MXu4Z}FCyH-e69NjdBlGksV? z2BLK~(-Rck=*4&vNy`|P`K7R;N2CRAE#1xVW2Xbkv-y4nQ?t#VX~1>M-_Oyg>#Rwt zPGs9fhkCmnZhg@oRCSbn!noB{l-QlBkz=a(x@o4rd>Cp$0m(l9>!l(m`xXMjHdgIWXG$*&$=m5i z@lI+$?gY++c#)0Jgk4p8scd`f0-BC$%FdkIOYW!<9^3F}Q6z|0?!+da8pCp1T{hmk z+2<}A&!oG)?b%z_c$2)<;xfU_hhce5bH2zALv~z^bW_0~^NY>Nb3x6t6bf0cyMPRY zext?zbtn(=EzJaaU9b^bP~DW4Fmj%Hg`F(Pc>p~1?r6ay>n(6q$u-Ag)*b{%Y-oGk^^LDyA!5db%=?!S<;waZfvw{TCPg-MzOla?OI= zW1}kdLJE*KEcCyW5JX{*k9SyEbp|OaKMLHZp8Yj;dV22w^>ipCb|Zh??J`inG09f) zt5SUGo#`4rQu7Nd%a@Ey4jzUcZF%#Hu`fMW)W7sE^cqih(G!T}h@(PaC5xeaZIpcEPzha^9CgM?=Er&YXl0p!retukm zPKz^e;o3T(vNu@aO%yKgVn>A?wg84dOa8_KeX>RQ=52N3@tX>uIJ|a-=+#WQmuB@$ zumzO|^l7_apS{>9#VcVO;L1=n1u01am`zL6@@}9f7D*$-)LV*F%#7P}tF04j#4pp+ zVH41)rebLI8W;)>;+K{6MG0rS6({TvbT+{u@)4inu<;ruy^#|YyvUuRK6S>)sFGR) zyr9>PjP>M)S{SxH5fQ=U@!;O@i7$hrg|WFR@~psRaW?fe48ACmv-0sj?3XZ(O)guT5;>mfrD5l z5eZUx-W|ANu>WHPZ=B_*wAGGE!Mp^%-V%&w^%uO?IIrn(2)eQQBD>ym&iHH!Qa8ei z+sg%Jj~_g{uZ8mN-aO%Vzx-PCz<=XQihsTWnLVl=<4B!{N2A0hYK;?c9Wfu#zI7A1 z$aB88BQ46s$ebsNc81GQtH?Qd`90eIkWo-(TZWM?9Fb3$obmuB&~rxO0I_Xn+r2 zzAro=v>de&JQZI5!V-g9hVu<`Rj)ZgXueg8GJm$xP&qw^7OV51nH875~{`M{6 z2uE_Z)cRvGBj5BsFQ`*%8&$H!6QR-zY4kwQHA+ymE}Q_pHu*;~8^gPg&=Oo2Y&k@>xianuYlkt( z5AMGzt;h-Ej8pj~hoHN3^)r-AtN|&VfD%uQ#20bCy*V#K3uQB-5WHZJMn{c&V@ z{T-j@jrHz#{nlE?vG>~hA3gX(Veb3OeP7r0InVR*O1HMKBR^hd=cc>h&XnKoWxTt! z^#I%Y4z|teJ2e}x*=Al54^8|SQ(oM>r;je`WOr%r_wG^`eypi74>2#X64K4Ba}eb; zc6{&~GFM~V*u!#iN2_ZuSE$^~xKzM*E?L18gdQKl*Q+lj?<@pC+GAcBlKPaBrd;>i z6HT_Q4mh8^s*sO#F8bW&|D74@-Xd9}%V{K^fLK3jA+R?x5g^rkt|j8`C!u@h0Kr_wR)?t@xQz!NfBDtzSQVXLVdK#MavT~}_;od2 zn4PHsGzlgpql9Z_Q$%+cUD{;=#0+(J`?Aw=vsEeW*&qMv)_8I!D1%iV)y$=fBw#Xw>Yb+k@Z4O>l@Rq=+(?5UqY>z z!xxTJ3l^=GEluZd8x~N(Z*HkGg;`m{pL$<^wXe@GRIrjBA9@hz~bcB&n9JhmzRVu$db67mGEbPq5TrV|`#L9Xk+W$cqf# zh_n`_>E4}-acE`?gmjqRgO;=bmwA+mGWPG#*~%IVwji4tSpAmt~qUf%fK&bBZbh^4LJ?7-z7M znP*^DTU(TrfBEC2<$M0J7sQMY^@<+cR0=3LBB4HrOj;MPIw2rq~fmK5b-8W zvf*O(Pf)*J+3Z~xISAgCVvekD1>KZRF4q2UDU!)=wM->SZtNJ3GXUqYr^A_hF9WeA z2&2v>7v)$zN$;RzALMH7^ zUh%|`Egot73j_N9ikUx1ecJdBXdVV;L1<`hMEJs8PUDHR=Zh2V$&q^b3x5=gLZ!3f zQyGiR&L|HH#;N*~My;GiG0^?hjfLwdVe^P64&~HyDo38TYfKvn6#mm^0_u=P=TP8B z0CT$>q;1*n+~~xi zpU0?KCaO0H?N%~*z^y?{_jBcY%x!HQv_l9MLQjQYT9orN%59`pd_}x=Na(xnO3k+P zYyrIDmyKnj8Sz(~2cPxmG4rXhV~U0V>9eQ=!jOU#M?d;pdP$aj{9mc`^UWdYVU`5*~@WmXQ3sFv6_~$-46IZx*6|k7HFoS^Ld7%=QtdA8Dg2iw+X`D}7h8s$PaW z4z@%39+z~cG$+3AkyFV{E?Kr(W=#hkXRY7xCrL`&A4Ow}4wlH&$tFR5rPr>v$#jbN zGM@m@9iSOv>CY&*AIbTCj9tKbHVyLz1e0ktIko<9J7yHqPYth1Ii(h&!LWbyHO)>2 zQ^Vucxdj0+s7amlW(|u~=}aC%*L8%FH9t96@&xf~+*O=KHZ)zlbFxx-TQYA@!W2b9 zO#>qXle8MtdYyD{Nlt3g#FM@WrQN=}0`%0sU%0>xXdhh>08ukTaGo`d^nj)?3{uY- z`Oe1Kxx^@DHSk3qWJRg_TMz;C=t%KP^%ueu4qJE9-UAgg39+B0oo^A#ylY;XWC5SD zBGo_xH#ONSZ||^pHfP+nDk22?`lU6yMjwo!X0|+RvR`^h8BT{lXn<`nBfL?$6t0gz zZA_ANFCd)3Sh$Y&v#W{GdFxitBJfTqNiAi{y?7?;p7N|HYGl2`=Z3>K&6ipsB1^k$ z`_t&jm1bn`alGO(%@9ZXh0(fxtDj0^9ArocDOqA*x3|FF) z;SehZ*i?TXtv8L^V#D4~6}wFd~=E-3j@fQ9Yy`enW(#ZJGaz z;c9C>(P`>2pM8~tcA<$c4t9oIX?|XY&1SA^vc2tV7zwm*T}kD3LVen0o$UL#D3r}v z@{LR}eWd?X;p&RT1}u{Ftx}hAWNF|%v>=rYNU{quT{fMVCpuGPosrJV5%a!-klsVe8<=i-~FjZ*Y+NnpZQ_M9~U)Qh|bP~R5 zq7c`{ml8pJnSTmq5T{fWd*kmebB$uMM$=Ti%{qX5NH445%z<;_c4``q(PbTu5j*ID znUy}N%(;DAFQ$Oq4s^E+Y7{i%z`n4m~M6b(bHONFuXpeBPTRoHs2oXDN{VFr;f9N)f>%7jQUhA z{_&GfZOm08;UUDFfg-kg6SXVYe|^^piBm14x}kXWll3gRQ**534Tt6;YWMpMB<^%| zp~K_=vt=O8EvsWii0cPQ&+XN_zrt@qE7UFoi(Kz&+%CI*C|@$#dT2f!RHa$_(pe=5 zU9W$46?j&)c{)L~%rGElBQS&?GeyHaYM#>$xiw9bw5{#Gi_E6s8i`Mf5&eR6J z^V9YmlmH&z?jZ4Ouht|}Rk-=M154GSSF9-IX=mV>olayZwUeWZ+j@5`J-NqY`k0p_ zi2oL(rruvq2FJ}nCE1Di`6@}MR0F5S#p?d?Q2h;?-t!KP8^0C5`snG6cn4gEougql zV>aMS=N@LHn%b||I|M2neE%I3U3%M$B~}5(qZ~3(pS&oYf6LGo1Ec~94BjK4G4_WN z;Omz~bE2LsM=PRH^xlnMjaNmLdZAOZ6aD?-AO9_s4uE7;x9roOTuEA04KDJGewLhY zbe`-F{$+p}NM^C0qxwsFYfii&&(*hlU!q5eR59m{*~f-_;Szk|wG&Pt+tm0vU!L8) zlFYKpplk-XW@PUoW}KlRWNMcKnZVKw=_xILf>dz(#4Ei)?tv@qAIGHQXI_gcU2qRe zda^@+EVta!kjS=rC~8~e6Iw}Geea@d*Y{`tMZUn7>*hGn*{okl4SQsP#KGG0I-QLU zW&66N2Kz^>LCh^pO-I<;ldos0jCL#~Cg;3xZe(6k_443Nt5|RA@1|ae_w`Tn*T4y^ zOYAx@fRawS%3myKgG3Rv8h>qwOb@Fe8{1t)(vixi$s=Io-&4TpTK}f1?bqbW z7?}mS%w=8!VOXePM7E^+1SO{}1DA^lKF+gROY-P{suQ|UHk;8TEEbAq8Dm6@&YF~^ z8M_&k%j1bkB{xdPisKW6N`z)1tlgN-vl3sHXi&xzA-g*|K1wxnl2( zw5=h+B`vAJF!@XgwYFd-K(E|u=IEGU?;6FG^|{T6pyeoedKA9-y!(#wn&XG85gu5Q zh2d*jDcEq?$fw!t97Iof#17fg+r|oHQ>lLeH|1M zlFQivKs``pLBMR~K?2z;?_3!xpZ>Pvc-hKajA9|wT11sPgwaLdXYHn%mIMce;}%o8 z+i)CoyI)H<7E2Z&()>&uqju!L1Gi>Y2rje!>CdbkEM>4%sUyo*QBeWOG87$mE7bVx=DNl@`p{AdK`65Wybt8Td7P#%OQKH@fo!PCNic1 z4#8Xvp1f5bacE4}C?#`T-=OTaox$Ip`6?3D+1_;vQ?@9s=)3sB8$FTW{_KyBh@fR- z+@+PyRz$DW zk;rFAsK?>n7ZfP2h{VNf++JW_3gl?UXol2q);oX~Mps&I*e3x;P~ebr9|fOz;W72Q z(ez7kkGIQWhW(1C?tS6}pey5s&}M$YdFzdwR-oG>Nj@?7VxgdQN9^%f;kiiy^E(L` zv8tWsKxgS?s|`m3NT3HjJ2u*?km5Xog-bYw zTJmLII)hB#*N?&6aEQhEq1iXg$2?VA--*rR5{Bh9Dt|7YVN1}FFt5S$2xl?I*Hb7R zU+ZUd%zt5uYMH4oTQIbJH0x-alxT>ghk8g13Crzl2aWNoG?h&^SE?s96_3^A>#Jvg zNRXN~^o(omKA7q{Jbr@nSm$ioI6%;yc(Sk7UTL#$QcxZ{O2-J-C@zPECrqq|E%yb{Tl{3pEmVOjyoWKK1-z~ zVM`VJ`eChgpWL0j9sRV`Pn5RkE&M)?*rn=04&|481v&HJdk68@y~F4==wHv}>pW zTFy8J06pcy>NtdbY*c|Z>Ku$IpqQP8Q#FWU+gWI#iZ zH2t3KpIeTD0LZU>y@0!>m&3KR9zeSNub`QQ|KtB1G$RZN-;yry2Gx;5g@MvN{6y(7 ziXy9l^Quq7{%-tM$@o^kO}f6uD-_NQ;Tg`YWS+r$Pf0~L({vnv#F}i@dT-Sy^=j=+ zou0;D<^Q4O-MAt+?e{{>EIj%aj+0QySP4AcM&t1!X+PcLf=)uj-4l?3E z!b#?b{xb>g0_?0W8U9$EhHky*XP1OiC(|$<@t))Nj^ty#yUnJqNd!Nj)=AsriuBUQ z)kg){b|fRKiqthsz+Co13qAj*eGK*BJXHEsi(eqNd~zAf|B&reiPhA|WAiz$>1K9d z7^1l<`@AEBiv`S*$oevD48qTjozF`%rfxG;*X#z>pne-xTT=HCT9z2(B{~&ky&F0ACK8|870%SH z2y`H5Dx}|5(!hreb3Slb!V%+5>Ipqq*qYj^GuHWzP7E)3h#sx-Ov%bM(23OMpyE=- zz4lo3=e3*ooNCy@+*My)x}kmv3%T2={908te;7YG=1LmmaNS02l=TBmNk!f-YVH(v z>6CZZl6Ja+s;=37>FocesDJS}TQ$eF~t<#RmF z9G<~Kq~G3B_lpczzU0w0qjNG=xA_jU%nZxGgzDoTs<(aNr+jNaX~z5(B(@W<8L#*y zhGGJx2u>uIMooj?aVmKPuEZ|ZkS4ym(kMlA&jrec!{r>gOS@caCqTH6FDOt{My<=-zoP3RG8xIq z-+QQTa?923u_kMD-Wxn-_t&m-F_b4ub@@%F``iW*^Q{`igWrtfx`H6hTqlF=RdzaV z+)Q{>c8+KJ0%WLHqZVo+iG8moaT~Sk#d+I==FOvuUJ8L1`FL@eru@@MorZFyIu@XR zP8DbkPo(ZlTZarWfP z1xFx9V6NjFV4@0b5m$qPw7iWsU~E407Oj#3THvKrt7msIIt0!w9C!5Y>ND05=!xte z&-_PdoRmnOd*}OrtG*KeGV4o^i}E=8Rl0E~oO$PJ^hIcIy?nJR6e8ggLp*krslELC zLrCKP`s_Sc8BKZh!VJ5AUftw!Q*lrHG zN}e0zHT1%Cvx&;L0`NFWuqq0%*aTi(oxb|K-?^ffn?vQwm=G5bz*yB%`Z{;bb@c6( z&`xIo8{x>w&$_Tv4Yx8q5%pL7hK!TaGciGoZ%2FmZadC~Ar{-=%ftrB&7z4$8{d9$ zV**XUr^C5inNC)Q^>l8~$o+x_89IQI}-jvkb ze9prWle-sPYz_W8#>oz)1@BNRn?{K)LdNq{ezr(A4;8 z;qEfg$0JxEMvbo@m;IN*ny))LDO3W*caUt4{S_nbdT8aILHNlA5BW_v-|^truQjigH>Sp$#Mjs= z>~z^U!NQ7fxz_qvnET_6VcOTakN1y7(tAM#-PsOrn(i;*p0K^ZE=b#I+MYU@i~!2J zLf#2{=vC!R;>n_8NlBh-OjEeK=hnX2M7=-Gkfa}Y+&mredji;G9lCF6*Fz}UueHIg z1IJZPpXZs9;^^V(s*8HIc6MVy270{jWv5*#ReaOe&Qj9JeL)x^y>Ylywh92S9I^Mk zmS+I#fs7Cn@K;>?%#=t6GQ`o`^0q?jjD^9?w72#*FexOj{R8$^3>s|)pidr?*x&ua zEqB=lm84w-Dxg1J`qHlUeD~m}k(~%T!=eDRePc!%Q6tgCGWCwclm_-z>o&k|eI zsRp?doTxBgffa4h5P@7p+c<4pY!gj1Uj+Hmm%AoV* zn!wXnD_HDgdByZf4xq;v23O*5As6Zi_e(Q^-rjBaV@TP?7psI>;Ni?<)}xu5E%tI` z=YF_M_FT^psvqw0C>9nw{hnrTD?Yx!$}ThS5qt*L>a2suTusGas99?NpN!P^g8s4* z|85xnBD4Pwd8Yr@!0P|m+8qO?8aGHaXxN7U;LV2rg-A_76wt?Vr{A%DmXlTCh20&> z=$NGzd;3-5V@RFM3nyLGir=m{Le9yz5S2D!O5;pW-^0se*M z1zxg93698)?a;#Rx*z3kzXQyAsHpLLslC8rg>vY^KG!TsM5yi&gl~3Wirqdj6<0w` z`My$w4r?YYb*H!s(2vMoj+GrQkA0xps-`m#1k9lbRG%IsydTw4Ti@>w0 z<;jZ2X78|5%uH5!fBmUZcQ=lsVKB(}Ro-|i(q(;ryI^z7A zizv82?ic99zdQ;w!`wyfURIMfHCMu&3Kf7a8~k{8hqdRjHy-^@Suguei04WD<%ah3 zkIBkqS0%Hi>H-79=_9FRzE(%JXIipcK`rhW<~rwJZ(io?GczWpY6q*w|5h4*q) zeI>AW%d|r@ty~U@)r*KTjbp1|FQ;hf7N(zj7Ib`NnCPq$(<}^8fV7L#w_!bXNT6Nn<7FOmVlg zKn@-1m>Jpd2+%z!{114z0%;YEDljw5Jf`M9o!&58PifStu~#YDRTcn3nSK0elO}+U zoyY!xj>ShPtPVdS@T$qk>szA-coe1HdxBqEJ6NGbh73at#In3D5mxm~LTCp)=XTrknyQsq0hNPXMkLABM0k1j{i#GmRi zzPO7kusDnM#U0a!aGz3}TR};IY3CeR=vki2bfX@02}Ru@xaUgLwJ3lXIA_H(X!j zTtq0{kXTSCiQu0d;PB?7I;XUz=Hl(-{+x`KsK3OK9O|A~hN?=cL6FKn8TC^;H<*<1 zFD^&?aYGyYQV@p3siQ%Bkyw;wsHe-hApi8o4R9Qpjfi66az^? z?EpZ(@(0sEsiK_Zo@8N=241Id=kF#%HfD7mYlfZtB1a8x zCh{AmGvcGod-X)B{G0MNZcP4(%>X?NRjmMkn4xe5jQl^8D4O|S5 z=7^s>idh}2GfX(~YPlo`;dIlrAi;?S0rzi{HYlrcb$NvZ*?vC{2Q)fKCV<6jv*< z&Lhucr-&WiCWa;7}N|V3QplFdnk=mtC4^gj@8J_K2 z8zmbANt9`dE$KRc?6FHie1kg-f?20+K2qF;??&gS!F2Rhkg?!8Bc8x>LZTsg-R^NF zCFjI4ludtEm|&PFc9i>DD1p=B*E%DfW6XK-Xx8t`vic17kzjAbG0)nf_a+cbj}#Q& zV{;TdcSs``9r+uw#-1&eJlL;tD4YeU1Rc%RPr=*4Gl~$IgJd2B#jgGDnbJc577BFg zPZ*QE(YLDu4ze5d?qpo(U6GI)K2t`dD{UF_r~Xt-0#Tr!UI!T)yA+skM5#E_9_@Dd zv>T*z%1#V>MsiRl#*-1z9n33khv9BfOLXFl>U>H}?7h3iOkKih*GyQRkjku*w5Fvs z0~5LswXdL+oPR7M7U?nKb`6Mj!|$D%f6<;4ssqqEu8ZGxwQ&uvKcWd@R!wf5BhtWH z@vTs&`dgu}f9XON)*f9Fv+6W^8!km@zf|d1=i|%Rg`PK@YPvd+s)$5#e%==pFcEfv z|6S{~!p@;Nd*WxTIs_3mj)H2Z!d5#;8x$!~!59u#rH=An)PBu8qehU^ zqOnTTnliCF4!5$r3k&yWwHj%L7WJN`sAM={#*rmWZDjuIculWm&x@&L+HY=soGzsaQgP^~N0M)Vvgn#3&0|?Uk(BG4Fs!T781N zUsz&SBQ4E1PlRZh@EkVJ`{Gg+NG@1|}(3D2;&BG{PC*+P&$=0#|=)d+Y{L_C;eMz?{i*SbmuX{Ca@(bpB3PF$^*Tpt3WROZA4Q2|}5NE0) zfwCDZ%sCUZ8iCo(oJirdHp;C` zqwL8b|I2n+jmA5-Xt%v${S25eA+ zD-%Tx8i+7z;M7`N=QE1&n_SiHA%8kW+tHLf6EV)<(8ipslVCD)KpVi=y^1!_AN8rc zNqrHyU?Oo1LirhaxodEfJ(k~Hjb$H1yJt8#?+>khN)_U7PT9isXa<4>FrdmaY5__s zJ7Z7LvZ@@Nx?Muf;K+7(k!w_ZhKYfU*TY;sM|)vDzU(5@Zd#w?DRI32-<{dQbJNpR zQu7D?1t$$1Rf7>a^Cj^r+LV)StsmUX-nqVJ5sK-htNC2Jl;r?CU+Ik zkss1hVl_y;h^?OUr& z6?l46t;AyRT1Ve?=N(ltk2UjoKvyRri|)Dun2BTNb>H2#gEhLT{mU3&!%W>gvgL%( zb+^2Z!sPjDnASa=+3J+Q$_G$ULak;`Lakm1#!H8da= zgz#P&C$RbaXm@;FRY+V~P`r(YmxQ(|uhQ&9T59K~Ob_Rn2);A0pO5@jCFP)JHSE2? zU$%Q6qPAJHT$3KIf9}6v?iBC)TP`V*S^Dv9VR6UrfRtzG=@cyiba1S|(_vHV^zc2M z9s(n;@2!1B_mhw_n56xt$%Xk7{M^t`sxIZpUX;z=6G#vh4hczsw4+ra(Z=}I5&cD> zFS06MZ;FC-yr~=l?Hkzjys`IU6hz>A4Z2_6S~vw2+cM&X3~%Iv}YzXNu*Q63mU!}Jj9)R#A; z@<-V+P1W7I))sgQRIntT{S@6W8MAGyz+x44h1Tk6iqMML zJzf&7`;@tJ{@gXIG*=s8PXH~mNw*k24G6vmuK81ok~H-rM=4Ra=!28VOsuQ-5>r;| z<4WBVi&txs4v(QPjj1u~)*Xq6%ZSL|H0pSMHr_zV{Wopj@5;t4cz`8rEA^nLk2E-j z8>>t!G5{4W)Cen95etD3FVGnn+3Ja`Piw@MK%DaQLwVu*RLPL;MHavqfsq)R$*ve? zFnuvK;K#OCNe*2yK_5Wi1CY%U^OpXR)Kot2y>q)&q;;f!84{t_ zYKUlm@6xfDPfDMsgCSPK7+s`gA8)87)IY?#K;Qx4`kbYu%Y)5=Oz5yQLTRvR=gBn4&&A zCS@3PoROTPgn~3smNmTMfquM!E3!)~$Nez4B@!k@sVBm5lJ_r`?|}h*#T|y6x0_DK zKE&-RE#x!S#kN`-croGa{3y+eZOuugVuV-@`0y)hJX|R3^Z!VbZ$Z{wx&fzMp zrLrO=WBwSHTH?#Y4?nHzMH3b_%_ldNkmS0-;Nd*a->vDxm&>dMQ|NDT?=pH zH1o(g|Kr6#snjO^bp4y=Z=V%JNW2Yh1o9nh;9fikJ?!W_(&}4ga^AkUkn~jg!1Qfq zKW+O>Tw!IWxX-PI^sx<kE5o0B+O z5QIu(_0iTvn@xM3%<)jqZs{oA7RMn;F1_}4S9jl?ZRr!}g87)L1^rrm1D4zpOZ<$EQNGwE+Q7lrn_RAC3T`=xA<353jB`>DCkL&qNSa86OIAc2=L@52{J5dGviW%b%YeAhtJ_Q$<< zV##ND9nmNjp8JnX2&E|#jyHUZXnzcY__~aEeTicl{DlSeoM^CEMveSFW!+XKae6Pv zx=ASCZ|UvufuQq!lNdE;TF(3N#Qd|I{7j4Q6a|I)fiaqD0m|lwY`<5=SaFC9|Bo!c-cu{|e*K#wSbJL8@RpRMHlh|iB(k(yMwIX|lSBI9e0nzrU-WI}vKK2Pz%)fk?;iE4k$gZ~_iA9@^p&-Fp*OuWArhui%q7wd3$w7Fi^ z)4|T?u$$Uc8m;jU_n~NB#(tR@F8CC}yF_Azb$^M7gNc?GQT6_omDC+Igf?~4bgTPY z>;D3bzunA@Fmw~n7ci6O@&wv?Au<0_DkNs8A|dP^w9meK!O|{5r6`ek7JjVgfVL@n z@c(ps)p(sHtT7*2*1I@jVcQ&!g}*z&zOnqqw|)nqzo#d%52jH%nT!($KYk_o)XCDB zsNM;m9ww%@vd`0T{=9|XY9A4LNAOSQw6m2#|AzTn^Jox867EXF`9iFe%515wu(0(& zQ~DtE?wi|bAPf|}St{%Q9Tfg7l7v!afqD1W(J8x##>}HqEHO;FOyJ?AYOBJm5!{6rZ`Sz{BSU)uU8#dOm2i(?k9cFO+-7Wdx$A7gQGk!DY;AHoWmlZl6|G+l{mO^hD;jyad63 zvFZyG^$zsF`UlF68OM#waw>x5%t2!$kn)g+=I;*b#5s5%s9Ldv{YVwK;`+hrYb@EO z)MkMP7NdUh-!RZ1TrYI#gqWzrNXFg8MCveMXNyj4$dKpNQDdNt$MIQ0opDzuhuLS%!qu<+{D+v|zcv~3o+MJd{b-eU28 z!I;^sYhdUHH!*r0SEt>0;v2UcIG)bqPzNIBx|gp%Sj1o^Vc+aFIWI8rK{SXLG|B2t zJW5UpAi>)zQ>6y$iEh*^si4+JZgRf7O<}L{_XO-0tc|r{cS|1bpr-C+e{7uWy!|F{ z^%m}%Ldo+KqnDv_@KeaO z!~t$g@XlE+`|H#OK>n?Hx=7gFPu64BdAw9>CA&$Xw~p2ApfNQfHW`1f&(;NPpF%sR zAM4kA>-ny{$pszVwHw48%P$em)38hAq@L;oto%N@$_Rk`la<3YkGHMk2p>f%7LKkC^Xha z1JWow>EKrvMrNX9l~aA8chDD3lkKm^BH*ElURU|C74x?VwRJpRG*nBlHr(-DOGkYp zf@rQ<)4@ysNP}c3kUw5`wzQDA5|qDsj>|lBcJSLxjatKF${;A9pP2&L2E|Z6%x3RL z8GWB$0Tf8Tc8C$w&G@mL3Ql$xLtMkcAfP7v_3gQIbklkds-Cd?Pm$>q1b@BZ|F_c7 z|F=m$6Dkni>zC#;_M7Ryq?v5>0_*d@X1|u3e>uwQ6!j2ZK@AKo9m>0@WACpYq&}0% z^Oyv&Ej&ZR1FS?#+4Z_+ahA_8=3vDkaIozO(yJv{eYzIBOjuWcqf&*fd{C?oI(VtU zRb`QJQaK)9kkphS8OtFmlIMRhq~q~giD3v**h}18m5i@ootvO_s<$|H*EHyx?;{8= zkfvEXf zoTd$_9coH#Z3l!D>_OU61-G#ukwK4CFxyz^z&5_G{pvSkT{gK?n-fOW%6N~1{dLAo zi@#1?So4KKG&V{iXyv6v6gn$n&v{gs31}5WZ{wRHmQh0d^uIL-JOZy$33$EM`2qEQ z@fyu|6@wuH(8JN=>d`fg{cpwzdrWa4i|}-Bsl}aMxpaFbiRwz@T$YC2s)8IU%(PX& zKx-hg+@i(yd&k5otUyr6?0&HCfy-o{?2Fmh3QYB?_QKfy6xdC9>OaI^fgtJ^bu|Q2 zPpM!P_tgg=bxzkBG-Vj;lMN^>=5K}1M3swRy-s{DUO09jI z{0u(>KYXAmjkH@YZvh?MT=V>^haT9c^r!5sxW`1ig90kc$^j$GeIin2jh*ttxSgQd zI`@?e*D)F+Zp6Iat!>js9KGN^-s_frXr-O!oME`hRS_@ADSKAa9Un&8&tF}&v?kPZ zlDQljj1Q$-FQ%?hDG_zUQ9GMccnyOK2s|vdgaqyR#Riq@gH<&Oft%K(jZ2T9AZStu zL~x&|-D~mvYoh}Cp>anqCiYldq0=?C&PuHe_54dBtZrDTO7g;3J9=ive4yzJY;57& ztAV_~&1uxkiL~?lo`216OZA1c1+!;WN!4>i@6c~3g@?)T{-wsB}!S1xf%Zn)X486~#Y;&VnZ1Z_j+e1knltEttvksq5 zll%p&saNZQVSK#ljApGKn=B=Biar*$DeCEUq&iil+UK-6(%&V}pL|IXc>h>anK+mR zc2URwyicnq+fTl)X6x?h$_YXy((`J5QA?@xY5eKD%vc$tIBi*$F5 zqk)DX{eVZsQq6H)Y4XW$#S1AzHywRr$MJTPp|Yovhl(op$26m*UYcwf0Nv+!vAd~ z!-wU!S6eH!YsDY|xI0hnjMqqFK!b89i3{E%6bRwQucMXkVOyW1IC@!wXs&Cxl1#Nm z28ZAtrJz(aNDf@@L)E!}fsGyq*<$hWGN@BZ2lOBAk(n%t2OXzp#;bTqVopQWrU>{! zv980HQdDWV&sF4-eH}}BX4H~eV?Z+a^cN1QPIX)*pCo7((=R>ZPw2=B;-6c79!T_Q zJa2WbV6sL>S}#+=??=_%lPEX2RuCEilyTP8RSm#R+bP2d#g zeA6oO`HJrB;pQF1!?k9adO*~C*vonE{683g8E+JbAgtAp> zH-rZ<-zFb$rDA8PZs-98gUrB$(42PbwL+T2V6lc=cMOe*lks+cd{X%*unK;Z>VC&v zu+(l}xDEc6Q%_{s&z8qKs|$l7!$Fxw*Wm-O(V6_bt(*QgZ5t95K9W-uuwdg-7KmFC zQ$DjTAu~Wtl`YN-)qjA^_(0bL0%(dIX`RTOZi(Zwx zgwb9!{yKW6;Q$hWbVj_!s@yN{JFsXMh$r?*v$*^iIE7&yqz+OUZ*0N>*`cG&&Af5U zghWTTNrgunQ3FSE_gQUCb)4m1txF9583>+-q}M|vx`$@@*{}VjD3~uQ9f%z`a3y^* zcztRPq`x7onJztAC=^v2%EgQ~ZCw<Rym zIKDVm|3pCz;Wn7wJ~Z5%{{7277ho3CsSV-@3C? ziwp$4vM%{{ls0`kVd*1!Koh(h#kMv~Z#hgD#9Ho+v*(q`l{YRYg2#i__s(V<_jxGR z6d{Byh{7acTx-c{2GE-|3sSB<&?Xls@9T)XMidLKl)i{*2np+i%}Bv_h=#8k*z56kk!%dRfSkkD=+s3~FtG>GJ%Q-vxrLJgPNq&=Q{;I~ zXu{0R4L;ctnO7Wzkx@Gc1;MH!-Ob!{!{k({aMtNzoJ5sz30P0@VLHhK4pH{el_%FOT}NSZrB+05krRN){?MEqZ@{0_F`^tp8V3( zplNioP{|W}qrLRZBc^Hdn>^;uI*)^vuQIN8^f?km{}788i5%fe6s;t}xDy0%i0J_f zKN6KRPK^b$)$`^P+GFGbp#p8_ASo5+R7V+y zi>NOt-r(dT3h2~m>%@(o9uC6t#*A-k2W*24o_a# z>NE)(m7xgp+SL80Y{sJ>Dj+6OV&de$^M8n4=Q7FjT9efsgfN;xu~3EnH-N067jH1) zcbXa_aYpGvO2&!@C8LNW1v4&hwdB=GS`LX-*OG!XOf+!@VKH{FSp2DGUxk%x52W=E zGJt2r=s24hs=2|@A@l@aqVPo{?}S^KwY`iZj8Oi$`}ggS=&esN)$4(TZ&tzjWU%ad zU=YyaXXgcND_JO$hs52NEzQK%8|gUpQToHGPFd77bc*%O1)lca><2aOjjm94lR1xi z{eJ12=>4c~&3j(5Ry4;ckL<%pD%o_atqVX(x4F@ecNTI_6dOxi--W=K*#)4iw%JL; zBX=kCURW@tiqfl6%Xus3*|GGt_Dp@ZEaUU@PsiT-kiQ30urkQg@$BE5S9e}TP3m7_ z3eJ1Y>1~>v=iZA-9R)MFa~G@cJ6x>XZcTrsmDk}u4*OCLLIX#%?(5?9!Nnx1hP|eUT0+YenfB zh26(AYU1<1cg}`b_=^w9noz7%T4ae(;Xf!P8C6U4`M=tG@2IA>?p;`q1qBfmks1&I zQ4kQR5{jTwrHS+sDH2);HAq(xP^!{9B2BvVP6UKVuK_|R(py64EtI>1o^#&c`^PuN zH^%+OH}1Il2g1(YD|@ds*PLt5^~~pa_%5%QQ$OZ5lZ;K@<4(QgejA|+rYPw>i#hkA zd~I7-T2lQzQA(QdRu4|j>93YRYi3+XRN%fcRs8w5l*xZhTuk$LY=pRHQb){BKdb`w#I>rByO6R>*2Zq>mW&C$7f<_zjwu@n{#2*Srak}CCTNwM520YzEKasoRW*GJ}QLH03_oHFYcT4GQ=`s zxP`A>J&FZ=sSyg z4=+o3maGfV^Is8njn{8MT$inCU63@??cs~Q>g2Rp=JKY3gW_I0LNVdy4#!dfgrkYs z$YpivOMeZJ3t9Iw=T|To=n-yF3>zxk^``>40eke<-O8697k;B+v8p3{>~uj94huhC zXsI=R9>62K32@F$F@EuhOS-N^SL~7g^v3NMAJ0nFi)A%n`a}^xUgKFpcq-HL)_M#( zWr<9->$HM&#c9ei{Dod6EgW|sm#x`=>a~#N1(kdmE{sIeAx5MqenccX(%ITv`W!8= z6{4-s1F+uu`b8pLxt;b+jwaDGy+4y$$9tD75}frU^7v_=WyOuC>Y2*>{I#@Twp;QB(DaG;Tn?09kHCv@rQ14K zCd?RqdezQ3H$Wj-syNCwO-m}QY#bq|rCUB#IG850{pC`!e2YlAK-#Mw*6&H~Q#KfB zmnf%pRc3ZV^>-6mJ)a0Ue?ks>eZC6c>0Z-U*-~r>_7BkWX!ulafu^OIYsz8Ao?Ktu zLRO#MbzLrM@>3)4L7Qlax6{sBXIcVFif~Rp?zNKvWNJ}t7VZXN4F_+X3|@#Ju6`AN zdqD_!Jv^67*zm|^aZFZ4qw$@V>QY-sWASYS&E&Qau|6m`|0d{4gDHFEl_G&#+@VQL zHu1%5u@bCUCILk^*6V65BF-Q4C;SYZbVq;8hm?W9|B(1Xx=!MX&xM5 z8eDgOx9vxRPylF#24FLYu|2XeL3&KT4fzs2pz{zX)ASnljHlnV$nK@8iyh6RnRDpK zWV7*1EqaJLEjb{UL@{#htsO~DE)o#1c>#GjRhgu3VC?c_4j{&kyXyWW6&ce+U-wQ= zGsq@~Hln-rwTkkMfvYmm6SmT2T3X}Q#*tjLa#u@LqTscHk-5C-#DTMTVI`697v7J( zqD-X<7saK3&ABfu$%Qo!;>#B;UY_fz5bvzdSTHx!gk~*-uRw?N12$H|g-1{1U240X zrnpsPtZw)y>BrVb;k0fhH11A!%MXJfkYTTwwSXF2Ltg(WmY>DFRAaR`6G?O5K0??eL>!fSEcb2FPS|+_?=M5qv}?v)9F9OaB>mRR?!#E@*)TEcRug zMKSL$0JRO}{&D-emu^ouGU$#0LSNmW=<~Y+@y;Q>(pMQ+^7!S@yIy*zTGqq^`X}`V{|3O{a4yq=FC*w253NAp^OH>;`3j znwW~`<2dx!weGu*Nb3+Zxqs%Uv(z-P&Q>-7NFQlv>*^WY+6r$l8%>`VpIIE$;#sZ` z)AW!4JB}d9915_%5d|O%GC4{ z#jpg|P-kg09RstBTUG$fa`1G?;uD|j{Z|#0L#mTbl<9FxA3v;6rAp+iX9VHdUWZ<} z$~%uuPm7C?R`vJ)F!s^XzB|swvGTG(?wkSMYTmm$b|Ai?rRkAVJ+0Znl=8CjlaZUQ z^)P3U#8Z)rvU)~{gd}A|fy_RuH1eYdnK3rOQ#wi?Q+>KHwc)3^lj6F3ZvUdJtV>C! zbd$IB=AO0W58>(>O-j{EK2wk$xs*Zein@%|3+~YdkmJGDFGU35t#e=;)@y^MoSin@ z5dRtHBAaaxLCYC0JYp< z@}_dGmcZie2B^vs80V~o+s~Ms8|WsZp&ydvm;!6jPCc|R=ldQQXV zOh5KRkd`cS+X<`9Dj^pl&zAIF$I}|Dt$r@WkpzMWK!vm))zG;~KVd$ALrBaFfQ4(+=b^2XvRC-WUIngjE8fdDVIbpZa-7L zo5duWRf6$0=y5vPX=zXx{?WTl$f)sjzh#1lCz+h@hF5T2K;i^z8cW1bge}urpBSw0 zip@ORE*P);KA#mEd6sH1Z1}*ID1TRX?M(_8Crb?LV6? zKNal*ivNWqN}-k_LX!vbjtgp5>yrx)@M09IEWR8x!OOp7ZO5V=BQavMsM}<+yW1#Y;eB$GU6Hx&y6T}SUt;X=+`IJ z3Mgaj_Iy%h8IV+p9maau3B7-QZ3CZhTY@3>!#nhcd;!^bj--e3gdZiM7RqJ2GT;lP zdFTwg2v7FeH#YV)q_S;6bky1PG@aJs07kuMy^BRtJ2pk`G?P^4_kyPlTgoao&S0=3 zexCQZB16az4g~?Ml@IO3Tw60Ixh1CH{qos?p=-)L zQPI03+?maNN*xhgI&?4K+7m6T;=nXrUy^7pqhi~XTyK3=X7}Owut&NDS!W;m^L+
V>x!7?bFf=0 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 G-~2BaA9q{; literal 56867 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
    ~q3t>bCl`pM$C0abb!T^S5r^Z-q}~#X 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⩔G~V3%Zrl`d3_T8zOv6*ZE<>tUpW``87UA=#hBr#0gT5 z;@MxM*yaVegN=xEcGfs6XN=C_y|d15U(!;$AMml?=Lsvd{R2vMs%Z3fYf2Qkd^UV>Z``J-<}0HuOdcUG1&sgF#(lIviK*#BnmwVwttnOZh70i7@?yX8_IdvImT7v>mh{gZplAM5p4qRmDLtX}8bKht=j)fYiz|y8lEM8+Ei;vH)xDG#5xCXno|ci*#?PGSuRxJH0egyFOBk{&jmjYWz)B_Xf}w9KW5cF z>soUeK2`hvlWov>)i-g{I18HJ_^sV(QJ`p7D|QR!N)_nDcuVs7oPipDzTRPRH+aDh zF|0+jV4Sg7U!#jttoL;oV3Uq9kcE~D!S5qr`Id?ckHQ&H=Gf}gK%40_1cemP9A?6> zy>dsxZML8WFtKCrE_vQ5(Ym8`y$+%sR>&-|SPR4KTX#Yt9L4nAIK88qcNejLVI2NB z^cVc#xc8FPpt3}YRpYqH?_)qouxTd%KW9GG8_z0$7B4~^hMO5N6_JB8HQe#6g4W#t zVNR%o+z!V2=)>i)f`;at2s;B9C(5Q#uSV;Hdb*hJ9F1;~)&ul8%1=D}QV!nWeFVKw zhM3c0pj^Cmjzf__!YSrkWFK7YH{%m0xc6pg$B4}C0)?_bAL*mVS^^p_OZ3AJ zUKoh8_PsTC^0*g@Wha9l19AVRSsbcT7k5Z@cA=yo0dC#lY6*%3Yx$n3H*WfoL^o$H z)%26`w3s(>wfQ7O$Zwv@`YFc0$W3zTqo*wcoN(lfNB_2JayNa&{_%?5eu2|phU#nm zgG!MCf>}6R)VCb%aQ#HW`S=!iPLxC6+vhOY4s z%uJ~Ke7LU&l9l)2>93A^^&$6vgZGLmR;{z*e-&8p=v;oLbKR0D{To!}25KTdMj%1?FkN||E zy(3Tm?ZZ4^YU^3Y?E8w3Peo|gd&O&~O3iMu!ZEKYub)m6rcShY&)`Cw>H+nccj%Y2 zu}KNWzk6FibU4loB%Sfz?NESy$AWPI?@%?$ZbQQRPWjxRv27#!p*I{@n?ugn_MIJD^`ZPaK!Dj z|DZ|~K8eX$orJ86xk#N4=zNuFg3oZ^8c!%sCB)tGS_D~B0#^p;Bri~!9jVux@T*8X zR~edLKtg(^W#?uupAIqvv@`YKx+Dm{L!XZNr)5feorce(=dC&`v>spE(a4fQwY?vUuL_B^Q=`{Ng13)PXGZ!xi% z(qUbv9)V&NFe9a*-2K@K?c@PAO$S zoL2RWNc14<-i5)mCos6PrG-0n(%f`1U9Hq}tz`Q&?XTM1RIXn;eoMD6YsFQg#Ivp< zWDT_`tvVc(O4IHdsg2Xqi;V4-FQ%WT9JzP4Zm3`vWCU0Ca8muJ4DT}3`W@XL=5p-5 zegyAY^H-zwE>G;WBW7{Kggi^qt^Igcq=cf0zQYS|$K7=-@%8plX*H(AiIbKe6mpLp znm?)pkaazN`yScn?zdCMFrY`KErj3zXknN( z0Ae@BJhAUtPpI9#9FkR?q4d=5MrVfzBWjh1-`;Nfoh_LTZMh@sEgZ-aVz9W@!NbJOY5aNq9)xmBlKC?A)}ZmdmUO<@wAZ9Vhrl^`H0yS)-d=&SeZgn2e>WAcK{wYx$)0T{-kcFhANKH=UJ` zyU;O=K~Z!T$DZjH-!oj}hffEOYdeBj&~Io)os8_IIy5>uI3t6A&8*Hq^I=w#fhx1J z4ymgvMyOf5Qk_�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 diff --git a/query-languages/m/media/mstep1.png b/query-languages/m/media/mstep1.png index 5cf63d91da22d6e30d3ef058166d54e0fe005a20..5ec2d3646ae0f5dc8e64b7f43c4c6e994f949af3 100644 GIT binary patch literal 95619 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

    El@#*g(t7B-e#F9ud9Nw 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 G=l=q;oB8Dc literal 88987 zcmYg%V{~2Z8f{~1$4---9ox3k*o|#BM&q3{R%5HN(b#qxTa9hreCK@k-1}pVHP#yA z<$B%+bIuj6q#%WYNPzh1(pZLpCIEueS#Q-hy8eiOwru=af5JCkrMq>IYD&z z@c?Zh@sCnq0=)o9bN#VXt z?2w4U_c^+|yEkoDhKS}CzNqCChKNq9tgijQran761HgYqzs~^PcXGMI$qP>P1guYX0rDU*pEjIYs~=v3E_=7)@t>D`bp*?Z%r}mNmiU;SX&Z1Iy{`CGIR;#B~hfQI}4V~_i)qXUMcZZ zo|Nk@>xmiwj%c+wGC_5YSU&N_=j6Gw8GQj+d>@kzfpQ}{dacn?eQ7bikQP(f{dd9d zFePe;x-EFY*`f9U9G97zBIzYklif+mt;!HjcFfOdvD%#R^5nkHcOjw`0~Nywx%D*x z@499;wI1I!tw&nC{SEk zT^FYoEPm&dV?18OHM~$K?6g{{lEtp&HTB2A1V2aCU+A zF|Gz2M2N@PvF0m6eEYs=QT2;CD5+9MKRqwi4%KtSBa_(k7@6!{MLfv;`}y9!7_wT~ z6pLg*k_@FTyoN-d^Kom7Rroa_S((aGl1CF`2G{Jid5S^}FH3>q^clXAPc9gUDHs7D zp*$7VU*=l7kvQVr5)tyj^y}f^fMoc>_+~5{Ds1^uExMn!!TQ<3flH@GQpjIzrZ8pL z%`)ZuMSYldg@Zm6vh1rehBD-c1MP7q)LEsHrzXR?`xyYodUP z#_z*e8j_a@#}GjnT;!wMwKa@bX~3bV@X{xH4ZdniyGSCv3Fc#>=L;?@WpDbKv|NJSJb-uR1yu!1*9 z{MO5JBULiKTXmuF?TuQ{1_wYYG_dvi+t!~vn5!6qkZKAkN2eilEl;nA)VZc^LK`6V z%~myZCc60@0k$nQ#UI&(B4x?Gi2OnhV2*dx2Ha*}LRj#T%QrEN-Ts&96Xud5fGno6axa`Bote}iy5@g8qkTzEacy6cz85!={> zJ@zzic@bw_*7(PD?1}qVVI=(FrRrF%;E;jvn`$CI0<0*<>xPeGEQp+!55Txa zwD3_35-6--*gjkDZ}EGDHY)er3M7jYN$1=eY1%MH3?GBnFFiLUp{AP0!X}Lx3f3Y( zprQbRAgz-S5nCYdG#U?B{}Lt=sljlOY)H0z=1_98WGEMW#KlmgyZ$O~SdrB(plDMp zMIJTPOA@l%x_Rmm?Q@`g4D3oCDp>9DJLIt;Hk|acCNDxLG3rcdQ+NHlW`Q-hG9qa= z18B?UB^MD5?S>v1PzVa~C+g1_hGX&GhInatA<|v5%T?=Gv5L|R;INXylIJGs6SkL5m$XF5war(&WSJ`ape z)<;`)6T~vuFo9pTH!?te_Pr4<#+Zh%n3jz09}e%uz1x)a>c)y+r|Ases_ka)r_%CD zCoW*v!wd~m2I#!9shu)w2Q&uDlMuH6nG0A* z!WQGR0Sb*G7hs_PV5(%>-^?Jv&rZ?^q=YG^Cu@Ghb~fV!z26B^?Ny)yQqmaRa zKh7+S87Nrd*CwA7-&cR%LE}z9lk?M06j%WV)1q(#uBA*00j6IaqAod9{kCr8|&A zf!NMVs|D-bWJOV==*s-QD=1u$#7=v;m@>xX@w=U8B}{;DQ+uI=%pMh3%CEW2D>Rmv z70}oF0ba8Ac^yYBu?nYxY8G@NJ?Wx_$vaPlgIcWDcxm-C5u|=L!5AjTCVf>X7Xq($ zlRKgKn5f^m2sSy%i_~V((Z06M&2GxSot$tux-|qO{D?|nY(f{Zr*K0hAg@B?=KYGa z;{qpD=5HzRh(DiPW9~S6bUk&5e87@Jj+H8WmXacX65YK!?X6TJ$>_t?0a3WL+d;U2 z{w*DQ;KtxSoPnF0A%l}p)v;`d-R@I2e8x!H&k_4Tvpo%D;w^{0RU_8wq2TJyr z8g~b%mz*3UwxcIX9x0VyZtCMX?@vT8J~#qAilU|D<*1IgDufWJ(zUMQ#OxEdhB(l) z%1|s-_eh9rQw%{nFJIh)`z@z_4G^2UL>2!vl`i7lPy#d$-ILdB3|9ljMnOlP3N;kOPk3PGcZ&OH3}5XHO=6 z=Yqy8G;>h|GjRH)tp-b50{}GbycHtogFTeBI}=gG&Hi-ANnlIHYG%v(a zp!03d?1T3;c4F1GA~5Xd_LtXlnl2Hlm%Z)0p3QQ>d&WuVt7DFfnqPCdUCQ%l%F_O6RjLEi7 z&U-zo4*@eZDX_Tw*k|c0#QHo$xdkF!0Rm0T4p$=Ft&4ez>6CNBzTt+mLap-!Hd%~O9LF#A3MH+sxCXPi7)s&44X z8q#?*@zzQ^Utp81NUefY&>q)&a^w?!X10KPfpLFap^j_!_M;e-~^{eW`~;FW82!L93dgDF)jh8dKgVlGuwy zOdd879iB3G4FuiuA}}>^kFXrEpvXoZdJ(V*2}Q(viXEioPfUV()jt-Y3lv;o_;;G4l!+p*!#L_i`9vRw&KrFEXB1n5%{{Mr8dI8c8p!SjOW2IBsIrRR zPfot*DEpP%|5R71j3AAZB9+hDfNdbeK@av?THWDp-T{TatDs@-*Nd)H7BU;{qONvg z+RMWEt_WxLAka=`7qN?Rkl*Sm0;L}kyY1wLmxZmFm|S`~xZ7c$5Ua;zibQamat%Tq zdUvN=4Gtaz(FQ{3y@DLfu-aY~U)sH!1-;nM#!@bAjZn_1hMy&~NSTFCm}pcJPS{3& zxrb;1WPIZx9_#i*n`FnUuO2w%kNF{CuXYq@6w<$kXZr@dZZJvZp0v~)ukx@g= z-+22IW@}RnA&Wm+G~K>1WPkF{8j1Sx9(Mlg!H~F!Yf5lS^Ab63)aq>XfC0=IddiJ9 zkqwt>V1CsCXv@lxo}WhV&2x)a^!K- z-{fd(v-0cQ=aiyBiryWiG8qUgx?>b32PrIu1SsXLOL!mj&+vB%Ie13bT3N$vdoDVT zRE-uZ9PAa`#N)J+!ueOT)vgmx4 z`P8lls?k}au$o+@T!&*_A6e3`?-uyYYYk^=0ET5;|6H3tzo1JK_;(-{jswj|Ck0-0sU=6pMHoJ*Te~hD>mn-BU_IVe4iTbZlYaTE`QXG6sUN_0946F>}GQb-A{y zPAm$};tN-6OdVN75seO%^AtztUH2NZ$jd~w&v!_PI)v@`^}qVi(HpNTxyD|pQnx~= zYk>?ljQq1BEDyf&Zy8`=2@Iz%Oyl&5`FYzC9VK%kxCKiuVOf8zN}IVEKrhXhV&0Y5 zXZI}L{Wq@Ug)yY=P7NVV*+_t$Z^k;yNi*khJ)5Uf+waqyF595)k`2pTz{E}`;^6H415G)_r;%t&AnI& z+gD6Qpo?X@z1EBcy|br>iP5A1bLXJt9Gx!0Z(#c)3KJaZw-kC!vEt!@P+95(DlEDC z{ZLK?vA+1Bf=HOmrOP9`D2QwKU6D%Lw&HvYNqhmDJ(=$K13haX4GEdH=Z~`*j7K51 zpK&QUV)t*i%D-(tuXbKz1wa_3bU4DRV;!;gHGTNThi>nr%RD45cRr$Z_rIh+gtQWh z7VsUfk1$0@JanYcS)Ob#_+NhZrldv4$8u(gn%QY(L23tU)M!~be0UG3SVoZ9wzgj! zzK>pGE$Kvt2N`>TCKD{uc-9sS!3=Idc)9~4S7g>Q*2dfNCkiS~$sJCK_uQ==7^;pI z-J17vLgO^SLgc;XYJshWA2D%%MiDqUY2y^-RaA?33f+=t$5bcEQFc{nv?zweoAqY{ zMSIhn6}d;5?#k5IxEQniz|9^4(Zs*QXdAB3S>%MqiSH#(~%NqRAhQ+CP=Fb9q~e!0q)6De&|1&v)7u zR85l~y*Yc>KWZ!uPB~#GX@YVL`2dSpNH8)2Ef~`^1TP)6c(!2qc?RquF=!&B3Ykpd z5xsqF?{4B!?bsqHoCy&T#f#TPjS{Uw>SVhI9Q!QUgJu`cVV4ijE^o-1Q=S(o2sSjmG70c zT)9Nn3Fac~tizd$-?s?8hdayFuY(kIDORI(yq5%9E@kWoLkm=9ps`xXhu?deyJPLv zdA+tByqcNC?b}1q=6v}%v%Pj`#m>WYjeUo8m;G~sKRDp(dyJI#lA0hU&wP>dI-4gp zFiHP3dyrU>M2g}-B$(`yXs|k#dt{Q?rKJE36eq8=bQU+d+&io6^L|tFspd$xT(%fZ zm!A-9%R>~x0K(0X9zVv7`UmkW`0=xHdEG-mDWjAs^Xy#Fhfq&UsCj+F@?xPd6_I@S^bW|5=Egr9y3~ z?K6Iwhg|esM|x&7?bUy3JWtr7_w4#`kO3}=S4S`E}QT5TYn=8u9N8oF-yPir97FNT}!AG8b!!B@La|- zRa&co*K?eOES7%r*9@B!l;g{k-kgmNymoj-VZDLrsU>$DMU8c<(c6M;#joyN8XHcj z#bq1jt*}gEMaf3xHU+Ewq**>L1Cgq3b)^DvHxcoreHXaG&j&`(aShZbR5RnMiqVYo z)UsAr7p`3>UT&{5b>OIJ1W`ZN4Lc$}SGYa8#~%{%<*(&xbX;-j4P^fEeJNcq>u9)- zs-{Lgnoy%Nx=b%(6z`(_lG=KX*vsz=Trh zAc$de|DrGQhz(v)eUaFn#|I&MZLW@SLf=6==+0|;L$2;QGaFJ8q-b8ng{@@dR%Su1 zT-jvq`seK8GvY_4;;>?oe#}Q$L*$)ET=&p(G&qr0k696iXCpA#IZjJ()QNnFLXqI$ zlSSMOVnp%)XO=d<*UIqDwAffO-XhH}pIPFN5fp;I;!u6S^$#Uo&^6-t4lE77t!`mN z>`7K*(C-)TCb^2!tJ8OA&r;VA?oh33VuS6jm+xum>fNHFHH?3!Y^bNgVmqqB;Bs z8t1_FKuqQM&Ox}_J4|u!^m=6?>keIy0L+#a=4n}+@#Tt07~xkx56BcR{a^_sUd>@( zjLac5s^Q~=tlud|AISvusTxlW(`B#=3r(t=MO}tW6S;Vq)VpytG)gTFRg?&bGbd;`5fG z8XE&b?&6DA9vd_#V7i%N(zUdD&63AQF=C+dovto?O^2OALrU>?4jN`A-@Oz2gZJn4zeX?zg zjccp#5(S!dGM$*+OeU$rZ`2!B6zF`GDp!bMK8g)A!9-W^haxw=e;uz3+KgF0l-9R{fZw{?OiE=UwD zL%6|#9Uo|>&grY1Q!UdXF=B@A}kvo;l1Pgf0WHYt?T~T z)<71(oVcjl+cy{&5GepjBCVbQ1W#oH$DrESR+?Jumzr|fgA9uV$D%jF=?*>b?8I$9 z`-0+^jO(IB_5wC!NO6;1WO4&KTYGBCUa&K)ut!)h^lUM7JMA_*XW+}XO=Q7$k#?S8 zb`mzy)7KZDM>6(F(``z;?t6_xZI^)&znNm*I1BoKEp+eTDw^k2r@JB=P z3vyUZ3Iy2UlAW_KT=S|pvMEKU*!#ur!*BcG;U%#GuLt(B(M^Aw4vp6iLM9)&J7AJ} z;m6f~mtg;>zJ%(yX3?{5m zLwb(HS&bs_a*q9~zV<^zx`sI()Mosd<2{#uHvGRjzC7|VM(cwWBSrE!uP84+(zzW7 z8${0|9XVi-9TCGWu&&FQjGSG;ws}0=;GMIW1Eq0}RBfdnI(`qoO2r%_F1f3nA;q;8 z#bl~in!Mbb<>lwoQ07K&y_e2ENyHn42Lt&dIdjOUAd0U+#{LlSg{*tRluDJ1wo8t2R5S0h5rP|_)&jm#j)veof>AaSbpJ)HI)wyTE-Dl zJGqjHlL5uqH%3>_YRQ?Z{Ii$;VAT`dU%3V-`wah14-cg!p-Fj62nRHSG*AL^T`q=d`eb| zarl*c?r@F1bm)GX}m%EQjU5TN9qQBC%KH}X=)@F)QCLRK^O@ieV!a3o7hkyi{{|@#mX?NZ zv|S4P{(XVM>%JG0#kSX%8&i9Z3jb2U`mnTLx(=9C5j}5`PDjE z#&1#+zo$PQ4&w1L1tyjH&2!Ia<<^`4|3>^U2N#PF90Cumm1$q%E6*emK|T)T8Nu-X z85SfO34hn!=?VrBQKVk0+tx%T-#%Z}K;K$SFi3^wXSXE7;5i%##llb>UiChs?7JHT zE@^+R6$UQ1&h7fG9BTJh2cxF z2|7O>pnG9#M5g_yPbUO!tOPiKUT^1b?Z@l87hU+)eQvGDk9w?q1g*oFh2s9hj-TUh zZEY=lrpDI+*&*?{zaow7s|J!9vt%9kNKFTNt~e;)?^aI~@=edeB)EzA=ILGzlq$YG19(tBfU8KAXALJ>7>3)h^?ZqxckZs1Lzq>! z_E+V;4#7VZNXK7f>ENN&DEmP)!TNw*6->LAZuk_?y5E`_@_eA-iRahmO#Di>nEom# z2n=~a;Yx+O3riQ6A-_a;TlYR91PUv0zNQiaB0~a0brkg(A@gED=@(n1i@#N*BrA5rj z%CcOpr}6Ri#lXZ2vRi4~`ml=qSSCrsl4S6X3;u*@d~vfjpXXugwqw0U-rnkQ-~uz1 zGJ3iXphBvg)5Led8yGKH)6(dW<)$@jj?C$Qhmyv}Lmtf$(^tvB47A!hU4iz^Jj;I@ zsZuhztfJN_LUS&|+;~oG(ltZj!VObPH9bCn<)agHP@w@A1`dh8qkn1N}j7&OSw47{vjoGbLQP?y{IG+n3l4>fVe$lIl7S)7CsV_T+_kfGWF;so& z?=qKS+FS2-PLh^}a=A7X;AA-#e%$lvdt)}cKal!NR`x$)jqLfZROWw4|NY%T?1iOt z)|=$pKZp1u5R`|nwz^kMiFEHg{Lyr}l#SdizVksE(%z;8bGHz%3>Hy%AJXD+6mSu6mVVdp1sNVG8syj=KT#*P;ww-Arp1Yp zV~)Q6wp+>n@=N8x=oyn5W@${fkLn0R3VSNh;Ok?q@;QX1QY)O>D$?L@WxMGdZ9=ti zP1yGpZ?WLic^*PR!UqQ4#-ow#E!?U3u@KdG~v0@w2Z(>t-ZeJ=hv@Ii4!_(q^|> zBZ8s((_iY6yZ=cX#L);Zz>dlg#>n~n$(L`TJI*k#$lE_yGX(bGZPdO*(sSmTZY1IS zIpwOrQu9KK?efJrv1;X$klz{<%2ASV>U`(U`21-*a{t9QT)6Tzqxl|C=3pru!A;dp zQ1z)eYwH(`bu_ebiFBOXsZtSvxdV3MWiZ8%esf{-pj{pJ?U%p5!(r6>X~Eck zg+NtNY!(w_tgHa-T2qmH$*9f!ebCG4>1lsMOiav_d=|f_%0nl-bNnbx3@1B!+}NRg z)YaRarNB9FrBHZSl9FF4m?F%q0+=uyxhX)050(e8xJ)f}PmkbeSV;rLKnWBqpK(5a zhMRVJy|-*NVh<%*iGT|)3T{^%N}6Y0)r~G~u*vtjJt~p#mvV^yo*yJYa{7YbsY?&8 zOXo6rEqXn$=p^im&Wmsj zC2R8j^lj1Am2o2aG-@Rrk$S`F$~K<8nsF9o#cfz;2o0~b|<~%a23unI5W9l{*%H|&saWw zYBQf>WZ6QGzM{d{GnpxOjmR>K!q!6yOW}=baIG#2y_N3QJ7u|yV5{E>q1osYuw?M^ zspx|J08>dN)4jHdQxBbpD8tIJ=Z(`*#oKssH)OHX4uVmhDAZQW{0IM``V|f*X?So_ z1w)=C_jTvSzRAi)aV(du0IJ}S53P2GIX2N+gVYP^S_gV)tw5KtTv20CdIILFSD-_O zPPjeW+rV!-|9rhG0R0czs4Wt%8gLT{l5R+>uDa9Ni`8%VuB9%o1NE>lqyI*UZ*hr< zKxxzQG!7%VS7BL8c7kp>EwR*$7iXk9WBtY{N&%{PXYxqpaM+r(^x}pk5NqLGTzFA- zIxHh+xv?k5I$fL^dU(Aijp`R%T5N(V)gK!g)`W`*t)4D43eD_;X$0+;Vo6LaMQRvB z)M6W4@hAvN`-k75THO%D7S?X=pFtDSWPX*@WE1l9`jOuJa zv}|Ffvny!!KDOzb_tq%2E)Nsrpg(kFXEj1E1x{QEFDT_>fOQOg9&6+{5l@hf;~w2FN5dX!*q_Hgj0rt~j`7=Ia?Vyrf?U2hV}ivD6>hN|2mzf49jx;m11ExlC6Tn*L7!8vBppad@u+o+ z7!Rh_`ogtHBZ*d#ZVBh4vU4f6E^nB7!UvLX;JY6Oiwu_sn=aY;tVK|OcoDZ)ifGh8Q7m!Flbl)${ev^l{cAh zpqxXDfMoyJsXn)_l=#VhGObU8o8`Z9azHm7f4KN zO^HFK(5>UD&>YpWNhj5_m|qD`CJGCZc*NqrFHtLq6C#K^l5G&i{~rk8W{^sPQu@TsY0ddO(S{SJkFC;6OB(Xi%^j7Ne!#vb`lEp!p>Ln>Wj?| zN+KeB-o>3=!w)&R4{48lYpEq4mUqMB*Q|_*=skglsuzD+CtUGCV@7XrnOijS{gDmc zbi8YqMxhR(*Zu+4g38D|0b_xFNN|R;7)fjJbx-J^G|)pdo$~`u*4Zpb7Kc%$DElZ_ zS@0`S8`ZRi!Qm01N$pS=W;__fcq58*+>6V?saWBB_oC3l&ewOilMyt1xMU(#K^fqt zgm2b-;XgkINLP)G;2X#B7z~Pwnx9H9fK)1DP`dN0#Z517fVDYc?d=@(PU3jw897FF z+N>Cdc=#E_>K<1YpQ*L0U2X%*h&y9toQZ5Rh=L`PAt?^J#f-wXw*DfqIN8oou<9UD zN!4W%VdP0yAS<|O_+U;evs8a$7pPJMhv-{TXvCYr0`kRjo1BB%tpv5YN`8oF(hZCb9&T@BxNmW<6lft4~I}l(pvLkWg`sd|zkD%haYMw!3$zFICM?BZ#!+ z4`(F>BprisXa~!O_Q$N)FS%;+Sv=735K~n-cdHde0fm|(8_{zrEfMEH)vUgr z=&N8C5h>63g4&=4-LQjT(^9S?chHouq`3`R8P*DqDJU;1xObwrU$^qZ514*av)?}- z4F1rY*|N?loL#uG?xizw0$`&kl1K-Kzk|Wh+DQGeN*@w}t-z$B;nzasru zKmdl06Th*VF+df^DgKM65ZvyqM+X@@rM?94{R`10@%KONlQO`d;;#rAixwcojiF244EPhA?rZvYJX~?*Vd1bhJ_Q79F$Bjvb#S2>N$*`%W)vYBRbGJ zEr)g08?XYiK-}LcDdivzXo+DHC~9uEf#WRsVNe_PoHJ$Z*OpCv(IKe?g~iBTxgGl8^Hyl4&{+_$XL({jfl2WLOg)vR34_`e z5^PCgY%a_3_-#XENTKQP$kNMJ+ayNXy}?1qj<`p+)5|wW)bb6Li)k!)#Xm|~GB~(r zY3+2j#1bIrrFDc=c6Sbl8xw&Za|U!3!_V8pfh4;&KuBkO{wesVcFksfEYcl;9iy!P9YS;bs7R70Rvc+P` z7Tpq)4XTfuWRFk2seXSAR(iVivxyQd`p#v8JLcq35am%Q880%ZDR5c^wCG47aayzSOlQRxMXW}MxA6~suEWfkb z@{3rbPT35P00WHcFzn}IRwPi=F2%0vIEX!-CN2wF&0Lt`aU#4xr?4o}r+vm0Hd}u% zR=JHKZWmQrf_Uy&G`qmxZ15Ij2*AfK!#?!N4DANa=;RmF56xDP0a&9KDC2FXd}u)E z9h_%9)Gxm1Y*_%*+5Ty20d4sDpZ(_&;_)G4ze>ERttX5z?_$KmFY=0qlt z`m*teiN~*$D3nR8XxK5ky;M^I2O9^8rfHcbcxUG71Wc z>2e8|ho@(R$3%SABQtSU0mn8W>NrzCi_0Kt-(Z~v$OIW2;>THKOKs4|54hE-J3sDL zSy~U4c80^cx}i}Z5{ld6{;E{tOxfJr44$=S#nfFILDm0awKbA-$=we;xK#Z+W2roy zeRcK9UgA&3O5UXs7_wwW9v?!~7A}2d{oI86sR|M)OGyve_y*y^3yIv5W&iUC_kQqt zO3Uqogwk*#H-;x+KXnzWEU@KExmE+<`tO*;pHlV9-k~^Y>Ca3Lev?`4%rU{PvhVdC zxE~<&ZYrI-blp2vr6I7mqDGLNp;u`@HACmy#C zGm{{1fKdX=mfsq}cgIrMrmGBu>J+W%wW>cg9M5%Uwz?~~$YLL${BBBCJr9)bP$iT( z6L!#V4Uj}3$dhb1!gu~c$kjbR?r*da;5(%R>U5yS`aq&vV~Cd8l!`S@U3XIE|5WI~ zWszvJILs4?q&*U+qVN&glq5Nm{{>kTY9Ly)m|NHtD)?3?i{|_Jjvuv#>i)t&Ik>fa zDn`H|pg(9nY0o)^d3`?G`C$g0?kwF7} zIHP*|bbe9i!?<6s&QHl5(Z+2i1OK&Btl#S6B4W9NYTaM@>GR_Ne=TH-JruvGfHZ|= zNKF9v-<$*_C)Z&qeBV2TL6oM9&31aNUf2-#=lOn_zpHcan!E=UjF=u-zCY&5Rt$`F zb8MMc<%nbg8Z~G!&QIUl#8vDH2wL+Q*o$d;k(Cd$y^tG(K zAOZ~Kt!6@^h#wHS%{bC$%6KHOuw=BfBUnSoIMsV}iMZAa6)Q~<$X*-F9YwDIMGLk| z+l5MEH`}#n@P#9FVrp^fjdECy$nc4!h9Fg1;RX$e@a1oVPd#L+*JR~<3(4u$Hq*9qGElP2w zinrED%8lI?TCL9=2PZRhETA~Wa|0=*$g{$KW;E1oRifR_N{e+Xb{A--+%C&=gZD-S zFt|8tf=U?jxFO?tT6-eAc|IN5?QCe58zR~rPuHX_DOIb82!uf@wBa1Ia~i!+QA#5C z)UEP+##wJv)tTsCudA^8Qw6xLJB1J=3Tyn#Wi}@0bCR#YpRR)S zK0A36g@z)R>7_?F9Ei%3GLY_TfDDS8R?{d;t}2L06+mcHvg`Vr-8nZg3HgS)B0WF= z*jSdVP0aWI9eO0&5((>Jb=*A~D{e;&504O9%=Ty8wN{i;byIwo80(`r1U7|v0d>DN z*dbY1P!W_2F}v^E(reYiSK8b6oW=DblknrI7Rh^_bH>wjUur!qV7$D!e*%4DiWs51 zQubMIU&BclN?&l;T%687v}VRD$2L>Vz}+&t=h;BSriq*}8)y;# z5|Vo87g~>TOM=bWik>~l{PERW*0c9kAwbAWT~zI_(52lT{U$)3MzJ22f!@Ryl;CrI znZ|g4#}4le`;&Q%teStz5C^}%fyT}r>?e^Ms2<@XnDu3gM#kL>dpKuYn=O z@aFFX@md-nJ(0%zd|!fXocw9bTW+i5WwekKNB0HKpwin-!fGkb1E|wp+f2tH;M7ah5=_2w5d3>kFO8&#WlpF zu8(d8PhS{Z!Vp}p6ZNt`OexCOcQj3_1703|Fqc?CjCYg&))hP3f zooQxBn?i_?r!E#E4>Hz$rgHZCduPXPHHWv>`b}{mBrLS}*ujaZb)(FJNtfGS#4?Nx zk_3G?%1eC4fyC09zs#sVP~*Yw!UL#e!R;cgs#dOx{U{)7Vx)w8R!JK5YmSNjKohq& zSvTNvUNn(b3rC$+P5e~9^K;hFFEeEy*7lfRwyqf@q0p+N0B!vxs+>aB{vAZM1GhjqInu&ix_Gdw3hM= z0|HZ~>&P<7KYfiNdUiOhHr^m6U*OGcmuqEh(YdvDbaCqKfO`H#@yI<4tm4!x%f=*m zTdPr}I$3Fe`%qT&oL$*%9vpyc&17OVeg%#IPY`iw$R#OdSh0;UOKRhOM11kNOV@MN zC3lsf?@`???m+~#pELLf9pW7Q8IgHplzIuG_Tl^n#Yuk>@THx0Q}VH&+uM+o@q{1@ zDnE3GM8K$!dAnnbbadf-ps=iSv&&r-Ltd}5**XO6AMGGEHnB-eG!-7fV)_-(U5_ZAQr&qnPH+~xH?G7c0GWPsAWi^QG6---MMx_%sRLYIo-3OVbQW;`uS~;M5AyI z&#d@q%+DaIX7&XJ4H=A5WlDdrPMAsLnd2vLlIrZKqepP!@FCo}aZ`}VL?Vwx3gi}= zEhdpcfe&$<$S{XvcZ>#xFVY&m4dgt4O(RQFLe3-1m*7?R-)2#vft4Bs3d29*0V1_Z zwESr~jvP9GYv=o8LZ5~3Z}~k&v?+rD^LJx>=Yr5%SHh7iG?1qJst~;se_aisLCK5b zXIHQ`dfA-E^t;r~=z9IOGw3j|16-1fxb-9k!{%(ksf&NZ?eHQTj7r3!K3(DVzoR%o zWihL>5;N!TL+wGc@cm~bf6Oa?*+j<}^%UnF98ksG5uH1`VDSbLb_5lX%{zB)p~Iy0 zICT_T(_+A;%zl_&0P{7C{&Fgc_;24G?#V4D-TI(`Ya=WSH>cSj!c}m!kILe={Cn zriIsCX^ex5#_(y zgih11AckiYM8~ASpBLis`?`~mk#JxEID6JCF~!Yp_UzfXe*GGb9X^WNw@t$NV}qxs zCwA}N{VdMx=FOWYrhukR{+&oz=4%}ibb5SOIvi*IX!k<*U6}}IDVzXRDw~kMP`Oqu zRI2tlzCCpYP5jk}k57bK#kwfP*{Z#V%_j>{$DAKVR-aoJLUZ@)_?zStzcIh#u__y^ky% z{1K%}m&)|5w=xRep&~Rg7J8RL&^qLW&M7})VM}>sO0UHxlBY_OG_KG(<~N0NE{M<= zCcp290KbFj`pkgfw-17#_bv_xO+1cI8G#BltD#<-2{2MVvK~GmQHS_wmKn(i4-Q1% zhNV!ob`31u8G%GO=hutdfEG>|I=&Uwe7BV3PbALY)uKshSCT{VsM@#_Ttp~))XHz5 z0rNc^dK8b%-_=FU8r9K%;YE>cuDL6rd_ET{J5$;4woaF}jK_tmdaPN!76;;7aOuZE zxJI{S$vPCT(*ZuBYqCcbZ#SF@jz^=fy5P#J6<`B_9cvDuP3JoF?&q^~Od3^66_ROy zIL1$>IYePI002?`QGaRyTnPM$m&K|w(nGiD4XPMnC* zqelz>IDLxE$dj~)cW;D4M0gMH--)_eb;9D|~}1mye-c_8S=R`7FfAGFJ`%F+eF(;*ZUj zFnqyre7EQ%2G2Y~9iAM!cI^~)eO!i9r%uJ4TQ_m@Q4EI8J}SZun|lm@owyIx2b#j= zEo%~~Y!iswrgYqnA3h1imunZ|X7B?n_^J+0-M@l8H!opewZ_MiLFlF)-{O`MO;X&7fhkQwKFbemfz@%Dco$6~ z8ilr-PUFC?z35ch20H!A%Q=~Cx{C}(al<-XIJ_1y#RtQSZ^-1h{UA_;;W@K_Cu(@) zbbyO427^}Yz@EMPuzS~T%<5lV$V1cAAVWs+0`~7XgX(P>!qr9zwP$VAC>f4J=VPH( zD#W5H6Oy5)!IhlkEnFI*wf{*RJiZM_J^P_9$x*FP$36!SewaY&J_1|t{|c(OJ;ndp zl)#9#CDFO8llc4XXQl8(U2lwPS6ux5p>;v1VtG;MJJYwl8YCQyx7R^`c_DD`PjZ`K zytNX#i*q51zC+bAWj|o5R~5%^gWbmVSb8Q5R;+L!{!z3@BmBK}C-&{zi%rYsqPoA# zTn{tiUX6E>Luz{K@Yx4(F31RtS_y9_89pnY4FhU=pnnYy`s<0owcOxtYZM(58??%k zwdhbSC!FnUkkuor`Aw<8#>k%{jG3_M@IR-v3#Zb)@HRy5?(P^dVg!Z`9g6S2|6cf~ zTqu=n&><=!3=#C3?UWMD0?nvTL{to0D$%G0?)YKGPuSU~9!Acdg;8G(!M!HK(TM76 zG6~hgbH2gkX*1Bb<4`yb9D%~FMe%J{4|H$R3BS+!4PAPSMkv2j7f+*qlc76P|GX7y zqCI6vAwkh9qJT9 zt7`e5xwbV5qE_jg$mi{gh6T!E{O)zwcJ3$^9NUe4l^dc^_T0D|u7ygKIq_yP$@@s^ zh^&3yuRnV9?1h}Ze$U!NTAM?aGIL2clZ$^iuBC5LQH6F_Zn9}g>E0G^Yf_V0V1lm; zK8*<^Q-1$_3I?=oiDR{X!}tcyu<|Je*QXot>-0GoIdTEQB6VO%U%FUf{5AQ1*m(|U zStka6{BIs+|M5Lm?g>JYS<{;m25k%tRxEu4FTv2DL0uoT=`;m{zOEvCWojEl@Ba;> zew&M*z8ipTUd_Hj*->8u3?WW5MMT z_}_r0Xw9u2yq?ZD57jOsJk zHA{GxcoGqV^XJatVzC#I>9EaP-7!oH>0OhmM?}vXTpu#Dl#|oC(e_ zMC(;pQ9D*aMjT0&lpqG7GNl#Wd@k1#<6{s{1A4CaIvTDmnmGXT=bnI$2Qzv4qqFNa zwD{^fOrJIiU;J+wwCa>Q8t|`|xmP38rHq<7i?dhm;C>XJgDXQ8J2`&oSQxz;7DLnO zCD5WqNi?IsaRw!x#!(k3n1%s^>*qibzbvq_vJ)KwtNbnQLrqtGR7g{vJiX7Ik3|F1 zty?$If$}O#w#j_H+S2r(k&kc8S{7@T{0I$I#Alj9gC6n%ZLnraccC3I5W%!5@EMk` z`2`jH{86RNP^=o+ibKL+RG{U+A5pDDE;JuJ0n@sb7Y5^%2hGQYJ-W8{uiKqrqwXP@E*2_$uPLSX=9W%7oieko$>A>~PP>5BA852w|0~0LXGji_`*fC>;e`bKc%|w>l7w^tsadC-pl(IKV8xzPl zdSA+S@^6-XZ$l>8Zaaa<4G&PXT5T%F;P*39`s=jMPtHj1zQwWWN=9dgj7d5qxtG9- zRnt*AS8n7hP!L^4FUG2Yl|;GO=52um^M6Ls{Q1%Ax3$>5u0K&gBZ~F-0h0!{gp*?y z^!$Ab2G{kX0ckfJe6SNOd>o-o(Ka|P*_%(ml0GG&Pd1TBzMIF(4PG?|pez+XUmK{L zinJSz&NXwPOr0KBH)Rm?6hG@io$=?NV^GE~HyX8Ri=sZxsQdk9%pJ(@qkKrFKFPH@ z=C2(IR~qheyc0-vde0r_ral40>ZS1}xcyVNI(cXWsJY zJ*XMf3DnNb&u0j)2%PEL|5y`|oU{EJRvfsGB%=)D+WMkGi9({`ab75CB)N3^In3A> z0vB7ASjqQwLm!kbkR5mL1wIpA7O*hnV+V8P$|W}DbaHh@uH3m_D#SSc?|b{7m%*~U z-_qH=F1QoqEnpfnXehL@yeK0$_z5c4sEVTp52Htq9{B68zeI<+X3ZM04H1(`o?f3b zdp0_C>%zU2co*CG{DYiO#bleil>Tz13M%sFb6ND%X;>*0Slqn~?sPeVpQ>7sZxVDg z;x^^33`!ccv%bklWK_rRkt;-5^K`fgrZDt%65K?DE%&IbR5aS>*qNS9hC-zzLTUas z)rSw*e4oKmr!s5%AJ%g8owg5m9!H63v8Z@GX7ntCut$NYUbCh-6fk?{A1G0`9fnNb zC$y0~>TFrb4+9z(rTUb*t?+l=<@P^3cnP>4fP1&@2s0B4*sS8qFTWJOd6x#BWms@z z2ildc3VSPCD3nU9TD1zb>ehyx1Id##8u~Zc{)eai9|s5H*Rf;879T7p*zvtlqedY- zB3ukW!@|PRxJeUqY~McJ_9sZ;Yi$3+@BjXXACNCk9;&}7@`vK>=IITG97X6S4b>9xNmY;}Uu@c4qA+ytkXy+vFMH+b~ zDk;@onilzCpiYrBKjI$MMSjM}gHfX#YD$xlYJ^y*LLH`1LZpC9&U@k}i4LFluC$^T z{oJ|%@{C%JHU;hJNhQwA?v8Qc9kBj?HK}IN;F!pug&*+l5K4+4e}iQnzmLriECfOv zsz6zpY7bD3BgszQqJ{5S;}j-Xnh#Ezfa;h^_O{L(oum8CR&{Wi#m9DddIKNcC$ zwoMxvXvHIc!MrHge*>KDs2`&DGgyZ4x47+yt#$}}l>)XBWFvH#q}iV`EVuS8XCzJd#hD zEiVTXl1ul)5kSI{<=2<3ic>>1WgV|LUA5~x)}4ulyMvmpfkS!P?3iZtf}eWPA&p zK7AUcXvD)p@=ZW|97T#1g`aNYNskDfA)|;Ay3=z(4)Dv*#7Ern7*lQc}5I-}fhC3${UJAIje}4T+7# zP2tV&;culWBU2diOLH&nv#G!Rallfi_!N~0JrNJ3^-Eg?3#6yIXk^hiQtp|AQ%b0) zp8a+5J|bdG0!FJ(M)Pvnv3|`eT)uJzM~)o9DIx*4Z{9@lO0}{5#9e6A3hJ=rVZw zpM!@EVcnW__~zT;NJvaT6vc@(xm^E~h|pE9Q3Iz=oD{aiO`0}F&+a{5NXA%>=yiH% ztW5U1uL29+vuDqWK^nKS=dL(z-@OO5Ll%)fjV0gwa{a~)lrLBAjpPQW%a!D0u_E-YLWR?H`SRsUb%~Wx- zz~Yx$rtwc@QamONtclr)&9QiRT_T{bsRfeo4`f6Ra~pfCjY4)Smw(7G2Df2eZ_uoH zbJ)5$!$~g^QgAcJ$lTkvNBg6|9J_R4JSlepwxEsIqk!50wqOPW>egfQfp8J{Fl4xUe6&@D@7aM!g_oR93ACQxbdKmT?VNcG8 zd`}6MVG-f6Z$~6G)JgD&i#tV&BMy(^IkVuiDml@ydTt^hDjKQrsLgb*NUrQ?S2ZVE zSMo=jN;wgD_ZqZX142SV5F8wgC)7!$bnM64HMRl#REgxNQ>Rh-ZHOeL)xps*)v=7u z&dy@AzHG@7Bx<#|eEBl25COS*_3ATs>((utqy|&Be!W*#mREt5D#aRh6C^T$NY8%_ z?}JFzE9#1DG~#R5zC9{bsDN@rA_DH;g@=DZ>^OD*qac#J=qr|pn}1FcU}iAkW&2$V zcu$&zLt;QICJV({~}M3UR*wQEK{H4lH+BA1oAg4D`Xz}(KHorH!kZ%_a+urL%ZQ|c+OR$K@2hT{ zz?iKoP&B(gaztLn=)vvKx^iw5u#d!mHr2)NGM;+$ZdOtJu9ZuP@Fx%8?dvZHSxWFX z--JkVJE~Bwyiok4bu3dI9PJSMkmpNmklJ=}{C)Tb4Jk*A6)zOeCF& zNU}_SRkdXK{3;^(##7sTe(aVxhY)g655sE^3k9FwL;u$vk{5pdKEf7=zxOg?$ejmI z*M3q{+w@uPPB<=e=gdLR-o1rDW3V4ruCyAv*M&%DWaLZpg7c1v=j-N!gw(LqsdqiK z9dz#w>eX*x4h2k~HWg(WcKm3jwu2uBW7^~?@XDTD)H^;wg$H;!a^w)xqMT1$*LYya zGYlMtpSyqWK7JhY6A?BN{Amct>rQR6R+5LMDZ!z{iArX0Jk(0INqcVdmmWBNuRFE< z+k^@D`m3+ZKF_gr#~#?{C`^%IEn3E>w!;E0qgnkL<`B;@Vd6x5HFW3;wW;qCoX$P_ z_u|}{vlu+|OUfsc>3{?Y9}*dn!!MiK76ZA&cp8*zF#q5-oVtGl18Ovdr>zsRIJ@A~ zkrRlGixqt)gAYmJ6P{Sk-M@by-hRGfaF=$4{hLm0zZ$%bgu*B5AbZBcNXC-P z8eA?vu@{}@j>V-%_uy!4iy8Yi%d=lM5CKHB8<@qafphKML^h7%s;pt3-@hu5S4DyYKPU(67YQDNk#T`0fW`ul%uqr&-c!(s{Zm zC3prQZGGe^kk^~ic{%v~JjI>TNkk@na9)LmgyO)SeTWW^Lip3LR4zI^5=Rak#ybTTvLO8uA<+JQ!Bcri;*-EGtFP3F;sv>;G@tZga5;6;k z20dC7tB8?}J0rJ;7s6tr(WzW*G;_-bKO&Tst5!jlELomuBz=8-pJ^m3lrNvDds(yG zWD^oTtDQILPw6avX=UrjiZ`~Av{I=svGo?%IH}QpZhf=wt8w@26RaP53}u_;MX~0d zB!n#c9i|VSn&PQ%Ub+3z+DOtj!lR-v_s~{B811dBP{uDm%I7KwXIopbeZ-}Qcd+N$ zSp-K#z}?OfkqNOV;N^$jH5zBw28s#e^=sFNgtIN0+0zVrdk19Ck^QyPDuIlab*(83yf|DMTs=O4tOiEa``;OwqOz@WJC_X zYWp9Cl~RR2&m9rd+g&Tw#q#NM#ezE??8>Q4^1>_z%RI}feC~IfHgASJdGq{Z7Up$r zBsm>SO8=NV75=$+<@NJnHs4E#i-%hlca$dr%QFHj)7U>V@Fq5rhi{(6t(VwHelQ|g zu6aHbY~)6x;n!5pb5PDZw##7f z9(&VwZN!6!r{oVJl0N8FJ>x`@JF#DW{sm2&H5Jo`44(GX5uw<(cQ5MHtB2yni@&n- zl<@kn)TzuOl9sc!;}T6rK1(TTYFAeV`3fEc1c(*lYPAaA3>}7vQzxNPFjR&zH7`{}Pc5xOX4bt5q}mrUp;r@pfze{{Cj4)L6Q7DLQuS_(ECDd*Su!*Ed}v zsaDBxdOBr-%We6CCx=(qlXEHp~t{oZ(M6?Vl-ln`45FR>?l;Y5Slb@g8Fsq;qalu82r_js9L$IAdw6%e?9{3W3LDQ74RU)(N+Ve*L3{M z`-fC({tMt~Zk9{D1y5R8^&*$4i)~0ADv7`{N#p@B|FxI}sc3L)YikQf2M0X77l4@P z=u9J$F9nO}v@Qd9??jRrEQ2+F|AxgjT)2-yo_#Cz-UncUZ}TopEBF9L5HVD-xTe8$6vfn3R()u-9u zMXnUuAdBPssUf2}r4bz#pUR`5^nL8z0h38SA;IEa)MlAXrVRI?NaV)^7U*2QtJkhZ zWMmXNwC^Z1o+*)b1-yh$9|~&YYDJ2cO#^jdOJ=@&EtsE8DOXry%(9c^$lE}f_Pv=b zj4U!dqp#)gsbwaoQzK?W-V~xN{vn4YybhjEXr~7A3f|g}w;bZdKlkt66VvT48jQ=8 zsq5QYnHF=Mu(%B3ty&8wmeUm+^4RS2YFxc=OQ>%DEsJe<>e|aAD;D(rA7=OXN@yi{ zT8+2*5%9?3`Yg_!J&Vhi zFNu6k3l=DekIrMo=A+_Rvb2y>+!J>WL(VpH#qYO}Gj9YIPEVF~MA80R1u+!gClV=( zyo==vr(@#eNfnLbVA79w*{Nba2>O__o99Kh{1dC z@?syJjb-JKHc^X&cs^$OpZUThGUD29OrA0clcr3@*zv#NL9zx`8SVC1Y+77eWUv_C z%0_Zh+rMDrM5M`H21jRm7_>?0YRni)uE265LLNmTIZ=ipwR};vV*x=ZUj>d2lcJB+ zMsm}cL%8wyp|G>yukn<2rCbG3E^lEZny1<<;0|!Y)|KS17e>DBPA*7JCx6oeKRbKY zZ1m~d$Ly0n_>_+$$B&|Zg9gv0`Yd3$E3PGD!<9f1U|2+l|g3Tqy*8|j*lOXSL|k|opgY~jY5SRMHMSq2kAOP$v7 z*`IV}ZGPTB*LtcmY%6AEwo`e!;d8V;(FFT`tt)J)C=;+csTnN zKw&?3jub52->42%k!{FY^e(K#^@nlDn==P4uKo_2t-Im-COL(s*pvnn^z?1EIh3&m zlp@W0qw+bsiTZy|Us&o?X4y!-3-EW|wTpM~NFI)t7H#cFPkP>{KH(s`o$+Y>v9XoF@&-?2! z(%$FiS>_BI{*7p3X~A~Byh!ZMqp(z@g};|l{_}g-rJO$G+E605htR~c?Ar9d;#i$` z4OVvbM`AL)?CB*`=rk1DHt&XuCMm_KA_mGgs=st?ZI&xZMxHe?r(LdsRrC$isow(~ zejW=SImN@)1tm(AKvck0XgvJkY@?>SDHk=6-^wzZ`#lrbSB^g?3_xtnAJMtEtGS$b zC2lf)?9m#AD!ouIUsl}RGzzm5+G5Y-E-6ZSr}POV(0e(32z!ttkH(Dbvadfw)b5Q1P!ixIDKdy;~2BF@gGr ziWs@@3`%FC@NzXQbddL7Wl7GOSxau3{8E2o|HRL**ls8m_9;c*H$L;{Q+x~*UDK&} z)LzLMlJziBo?FtbqcD~vahXR)M~kUk2G=h>&5p0r*0qet;f&fyW+vWrvCZNA2ho7~ z>GZ(ul=Fs9_~UJeeEj`jYnS?D83t>X4^8Qc3Bi>xym?`$t}a8z^-AnmI~h6DRBm#O z=-(Jzjxu`ZGaE^68)+k(1{txDwDj+943QyGMg&JhAXfzs*x5cmme4{fl}ZKfTzQ1Z zdx=n4sgNu)2;p=m;1q2VRJiexCBEJrr9u>M>(MIZPOJ z2&+d`hKz)cl~RTcvxeh%s5fe5j~2&EKE1gS2NNoyO;IQ4NCZ4Ny%GoF%A-xm82mbV zDWa72sMw+>8kY3L(<^`DD)J-p*kT-i?1s*t_ds4JIgP?qxV~>b7Vo+ZIOIgnFM1*; zZejf7#dsR+fSx}MLp}|O0)04^PMd(s+We^Fto`TI5>wB;-#1RkA?SR~`5!yE{1X(&{Qo_dp71iV3-Fu;Asgn46``?I*jTJ(WvF`=cYHfygxTla;6;R&ZMJV+IFJ21cf-fmm*SH|BttD$it{m`ya-X8 zIZk9EG&EGm`XpWeL1Fgq+lNv!XVF_sGE`+{2Wz#3-cbKT?VSk+i3cK)QJD4PB-~Hb zA#d$I=vX5sRQh1d{e32GKGC50;4e|ZLx}`4!D1Pyq`^z|T2=6LbwSV-v6t}c*ky=R zJE2CK9;jZx`Pm>wuCj)`t(A!wikT`E?1+>oiNGpIMu(DYpRo2kvgE9UzP%g69x>Rz zaxVV95=dOUD8BpgGpOkEG9us8W-P#C>#`_9yq5Gm z(d(@TQJ*rHL^7Bwy=pIEnc4vb%T`0Bvc!`}4%V2L54VFS!rxB=?cKle)$Dz+cP)s4 z!#cy6YPmvfZGMvQ@>gdFX?p9|he)4{MkBUr)ay|al|IXlif!|Xzg5~75UxU-yr|N) z5R#};Tk?a2eNLa;;tcAP=S!w_Wy+NKs7WM)M;gr9xkPwL{iqgQFrj0Al*pNv8VU&+ zN;Ho$BV%K*;p|}{tg7arkpqoxUt}ZkI!OBtYa45!4rkh!l2FQ2M7++;$2C6^f*l6K z{`z7(q&}B5k*f#S#G+gN==@m)T-bMr8n6;s6%X;<*NYHELWg3H1;c(qn6odQ9^4DB zmi^JIO%+TZHv~cS?)XdV(5iheBp3J$mE13*cB|2XL_SzQ3|)S|g$5lvBEKWi*oPM} zu-jM2)1(K!ZsLr=oqt0dRl_N5Dq~MlN%U%-7rQncgG!xxj3bjNkQDb6H$sDO^UfWF z#nY(v@i8>7{tXIt?TL?iz>yuATtwx2_Gl;Eb*E1W~1N0&*ANz1LZ4} zN98J2kj*RGOJ^$n%XphbQWO(7a_U zlrCEiZ9Z%FEKKga`OR;58Dy~57_oZ5X9&pC0lm6+g#6)o(Y8l)Y=h(yt?@PWNn^W@ z#66knx%Px)qtY0MJ9i%7?%i9s7Zfh~)WyG#z?Co=R1w!Oyk|>niYkIG9ZKM@U%KMB zrW*S6>`ER<$i$RKTr2 zzeLwx@1X(7pc+{M(74O5uyr$F_Mj;sY6)5FL447s3szl@rnfxBoG*VzsK%MnVv_MP z)`(u4gL6JzQLoKVWVtaPcZtwxo4Hi=nFKfQ4WbAcVHxPZUGbS#He804|#}t z_wM1r-FrlARYI{7v~Mc<&byCZ-+YaHp?~AsMJHj52*wS#qtEAGqI~jV^jUFB%s36H zQy))q*F(>`PWW@(MOax|!x(!Fow|=krMc4|eqTuBb5T2>SPJ2QR~3 z4FBH_H0ah3r9D)LOyq6l#U_hljAsw;Ki(0kSt31n(P*F?;!X1n+-{6R}jj^qp$`#-nA0JZRjh zKXOIgK?FkZ{SQa*+lF6Jxj=q&?$-nU57*+)bMZK~W&wWRbpw%?=Ht}WgV^?{GJYP~ z8oBb6!|=~*BR(PZlsr$V#6LKS>Ay|HSFAs7RZ;ft^J&>p) z;;z)dM#GaRYWRD(z{R&Pa=Gd;W$aFLUoaWf{BxmJ+b_}j35}3Lsodz@RhoW|=2c2j zcn8xkIg`L;!&9}~{NK5wdiWwi^SXF%aTd<>t&D=nVs0u!jarQkZQG0e5ew$a|K84& zfAKdc6(r~Q99;g(av^lbcCW?MO(zj|dlvpW!~KZ)dCGrl-2*I|Iu%nU zPsGYi7lpTtjUCAZ3L`VZ&95a!w5^0(KHgAL^v@st6OXJ&mUV9nXO$CjWU)uKyv5*~ z#Q{e13>>!}jo~RaFPV=qJ*s2ykvv#1ya~N72;;^cz~{@xp$gUCIvt0i(Y;kzV=RlW z%U;I(6F}sVeW*9|YaH2rgf5QbPJupXl!HxzOz*XV9`nX*K+hi=(RDVI%4@`dGf(KZ zE%eDxv2oiz6s=kvO{$egQi@p>1_i6b3_vyGEZVNj_B33V0g@~A7 zES)q3J8#{>uJ!97bIy%EO?)xwx8HF5kq*~39!E^*YFu>ghX1vy4*&c$Ft}?;=!`1d z+cgV^@9D66!Awj$@BpEw{=m67`lwBQeD`%PwqFI_9SLa z`Ni#t$>hcj8!&hNJap-pIomy1iZi93(?%sCN0pZN{EH^g#U!Ht(4XP; zcsT~x<^o%~iSH*Q@Jq-&N3tOi_63^b_i^++Gj=YIhMljA`HFK7h?OL^8Lhv#dJeB&}gx@F*&*RIxF_bJ(68c~w zBNPuNKnhXWvY7%{!15q2gu>m2k!LaJ+SykAkN2_Mh);O=VGW-WcreR$nmoW|*~EuT zusH&+NKK&j&eL~~A3sJ^R1}^*eJbv8n3Q?IrK=#)%^O3Tx^BuRxdAeR0$TEFJ9QI^ z9RC|XHqQ=KyPa5CRSTD*4bk_@zEDKQq3?jN;9#dC(n4?IhpC>&SQWs;-zSQxSko6Q z{}PzQy4#8AV67nu4M#3P{>vxuOLuRKtuPl`N7kouPeQVg<0g4&LK5Ot-Wd49MAY+C zV$Q&F=smYQ=JfJHTv8Tza1YP*U9Nz=RU*Ql0zLY7!Ma_WuqiwNgMJx=KU&Se%GEI_ z*KPz2hm#;An^FbC<0Dvk@e%ax>tGqhH2%>w7!60zty~L?-FY0x*Zz*GmCB?24=XXa zP7dmqOnr<&7mqyk24Ui_wZt{!QLBpLq`9aVd(k|FtlMC?7ny!M{i$7aCC&IU`(?3T+e!iN})=DV#0_yGf5VRQx%LN3#UoG1ROw7a=2OpiI(GtUIs8fMOaf zTDBJPx?#d9sY>(DF#6k-*kvD&c75^!u}5(9ffjRn)`na7cI-KF1C6K_u`qpR$WH0i zYqc~+%8d>sPh;f78(1?mFP_}Kf!N&TfuZ9NIj=8@5W_sR`!u|2)q>CcCfM_67+QE~ zF>&EvP!(@$dY1*1rnDr_w?aM~8@&SPR+=*4B!1g;2Q$B?21fOdPsCt2X{-9>g z3v@S?9Rd@>%s%f2Su_r!on!<|N+Mz+arxpUj2`ndejNED0sFt$8@^SbMWBP*UtwzbEe$*TZU>?tD1kOMrL%X9|M>u-o1BM z)Jv8}yl-AyTpZ4vIU`6Tm#KwBo;`b3loyAIii|YBfn+neQjMFT`)6Yi)_EaZsj2T< z`90k8b%UES7W>XTLiKV@uxg(gp1x!8wD&aRypbPQwIk7tvitm=W3a1PmQ|mEND|$L zfd-%4!RqCDA{|Dtn94x+nM3kFd`3L~R3R3}&Ih1;u}YY~V;%DQjK&Qjk}fh89_YDK zXS!*rW0XcJx7g??z|$2yex8Dbg}=tlUVG8CZU{yX-h~>!*Ct}N4~rrSVlT-crB7ox zb*zd-jTWGXl^>dxJc2%d4ZBFB=7G8>)zL#=;i{n%iYXss{PIKa9h!_Bm8;_MsCh7s z?||G{fa64Hv(+hwBq~>4tXZlggsgFFWzHNl7d`8;UWtJg6T`-99p-zVo^R zFDoZJObC0gvR5Nlkuxp0eOufNjKtN45olh{2fog7#3dvm)@X|(S02L2HVg&)+t%e0K^|!6~qy1QTP#r#d`Zhev*Fd#f3#l&j7jexD zB}Zyn`x@YtQl-0OhqIR*-2ENk?(K*jQ?Fs|n4|D3mIX2r9BY3$iZws8JC4`~)TZ({ z!Oh1W?ztS0tFAMVLeqwzujAe&iL`))SbE=nk@NHL#Nc|Zpd?|)wvY`=R=}v1-7v0o zPYiF^4r5#O!06UJP`hXuAy6}$L^62$4Ib(9>PmJjq@A6dQKwdIp%G;ataX12MISs`E1TtWbMUlD+64+o-bc^V~;T>*yz zEwFJ}7Ywalj)-pwY>1?n!UyxWjKb>n#Zji!*C^YhEAn_+)AOeFc-&y*PTuegU5~2O ztD|y-GUzgH1M<}U7IQl!p={aGsPx?hOdI|gY~@rxY_p)SUsjF@3UnF@*DYPq;=4al zcl1#V&$SAr%2z=3&sSsSjtxQ!D|7Zmz8ntJu+pyodvkE(bW+(Or;R)Ot>3S+NwaG3 zb-+2`XYH2md*7w=wsOgE?z1Vv>653SrH;za+ZTTRe%P{UvsnGjr18e}>!yI_UWAVo zeG^lf7a=_vz>aqq;L|EBE-i_)fXQUaaJ;iZdhcWRZvo4u3Kc4#e*OAr)Tog-&4U+F z@?XB@m8&&s)Ik3H`BAT4y=P%~a9}|a<&$g4q1ZFEC^}UskII$HW6G^&SURCO-PPgF znx9djQYDlwHWe!`EJYSLVa4{DSWW}YisedU>eWOz6SXqcGLkMb4f5vCO{9uz-t)TW zm!~Kk)JaIvIHOSB?81-trVZRa4V5ZXM493v@$-J_tjWK2|9-ghQ#}lveG-aiE4qPf zzWy|bm6Pl>K<-!yKMu%^??#Xe8hZwVvdktKR1wvOY{k6ot0)82I2UMtB5gir*%NGuW zJV_@~#ZKnvgMz+}qKyeMPky=c7KDPzrTiBg@J)erC{>{ns=SQGa z?JlsX+KS|<9pzj}EScQ`BdV1|*{*ZYrE6z++8SV&vkkV)tcJFgE1-OtVmK)GqqkFk zpQ`}eZB6Y?kr0Ss^-7^q#VWW}>06AbF@?vJGde}qr-$(YwA z7$wSALZuola8vCG&wNc#=ZlGA1-Gd-y!<~Cp0|(m@W$K!Fx1p=(q@~ew5Fe_KAm=8 zz*AYtDZZJR;P}7k_CIe5UTnkPV$#MC784W??#nm|qDbB{E<9SEGiMHZ_wH@>d5(>L zZAO_Ar38uO5r5vic`II0Y%U^I;_OHabLJ)Izw?yJbpPE7>+w3j;MQYZAg1@b*743j5rLPZcnTEiqDC zrSjqcz4OuzWP3>D#Hl zmll>fmC@~gK6dcLV0zpCd<@{Yy=?m*uE*bf|2-~Wx`fhYO5@heThORAnDqM;*jibm zR;^n2W9D?MUa<<*YF5XbnX|=N(diL0ZY!^|{f~s#2ivxvI(ZUS)P{?fC~o!zCQX_| z@@a_q3Sw&e;>C-oTbFIPO_)4+GQRxsxeQ~O#jCkf${(#kOKq9tObQ~GY}ApzF^yc| z>C+U`k8;!2KqO@qC*ei!4qp4^3&~kS1{4EZ;UEZM;mdY^!DgZ=uFC<5~JCUDgy2(-vs_-js2o zXQ@B1Z0BPE=L2uFo_a`Tif`&Z!4yBy-%$Dzd68`z`JFah8O5h4hdJ3V+WzP0fkUWA zgR7K?(!K8_|yGiL%`tfgzOBsgUyA;|S|HSwNv4ze10;|*0rpZDc`M=Bn7wE2? zJK>ov8xj3rJbm&+*yw~uMdIp}E21-Xc6JsvT<+A+4jwv0BfyH3-=@mNe|g`;l(6_2 z#oyG<0yb4hdCl8*qzuQh()7IL-CV{N3P98~MOeEw_u8E%WrlZmSGB?=6h*isZ%zTw-I_G9!l#>D%B4I9_Yj*CBj+t@ueqa+|srk zE(aq?=CPxH!JLKj(4av>G;Y=ei{>vxu@c4L;hqImt5-w+K7A1o5P%cMj$_5@Ra8gQ zmpSam)0Y~nG&bE5G7UTn6ZGg2Zr{8uI#Y`+V zB{@wgL!ZCnxeQ{M{8G!q^x~Gj3{UOS1o=l=7%9W0d{*Qgn`NZ%W5-CF_m=pk_BXvW zE-}uM@Kx4*5k^F-Hh9D{?8WH4@Wk#%8 zz5<8#9T3{eQ6op;kLlAzc-}zxV{c>{t?j3QV0gRZMHAUHvQJ{eew|_z;O~-d+fa2qU=_g~uUJ!~lT*@^x5b zI5alaC|I;Go`!`y3)8S^Bk+!~5+wYazynyZn+lP-i9O_1JzNWn#;vD`IC$j=zhvH;H3u1!anas_|Q|^oQ_Yo7G)gVe%{nh^=0KJ;lG7XQ4Vt( zPdl}30iRNo9-AP5j*5AlP@zB;Xf#&fS>87V$AeF{@pH{8$RoSX zojc>ef&B;wcpzfKyHHrb_g^)&{T3QY)0xsNz}fLa6E;Y;dI#qki{tam-%*+E-7*8O zd(b)ChnV&kW6JjW;B;^Y$7JtK!7B<`u%>h>wFjZ z6ghj$5CSW+z#Wt_@d;MV`4wZv(RbpKq0R&{$!UnXu@6&H9CUt9Pw9FA59SIKeqsh{ zm8^rI)3?G%&%aJAm`G^v9Yli;J(2vH&%O$*=C*XCDV;s;5O?;OGGbtgVvGRXudDF%BtF2ckKzmXey>DL=m0Fle6gDq$F-+t%b5>N+F+BD309@hLx=YTpi2{T+AbH%ShM) z7H$?lOF^gfOB*38O3?ft`s0E;FDm5-#}{8rM!bSY@~oXS2YLhW^7%V^mt*@w8m&I zv_22d?=Z#B&Mb&!G{E9(Ta7ifGgGKf3A|!<&9M5Ic2q}lq%6vox5dFNw<#Z#LPqf{ zhD8Q&mdGftT%4WR;2FNHr{nmdKH`LlO%n%V(b-55E;GO~HR;9{G;G)gkv`Q?x@1X| z&!feXKQB=}D}?NNCchLEGb$%bJT0rA`EUu|nZp9HVwWl!pE6}d{+8$8#VnKr2^oQ$ zNTlNFIpQOwaKob}%9JjNJl5eje&?~+J6WN!GRqqq(`=%6hGnK&XfW+q?ogdpo8^*4 z#;R={;bh0>QLBW%h6Z^Cy%u@)f#c1+-7wtX%KKXUMl z0WbEM_QxL>IB?)=Z&CP~tF~$Mtx#ZWr#f)>d=Eyo%8ML1e37qgMU=>Dhp_8=u;#8a zde;(%Vo4pMpFRa7J$%}FJ zW-LmSD+G1&^Hp8UjMpys6}5*=MfHO5nD^UBwCmjvSGF#}Bin+=?jZZe3N?=Zt5$6* z=)FM~_Tg#HR_I-~7_t|uhnus9z^P_mkpIGHDSKv*kxYk7O*G_A8ceI08++lF03B16jgV{Px2H{B`IQl06H- z-#QH2&p$yy#chn6wFXagIZ!xXR*R zCTOD9VepT^FcxsfkXCh&9Df57zZ;LO2M!@doeKs1vmol`UYrP0;O6!}FmKa2xaBX3 zYz|himOaAwZ+@n*`w^1lheCPXh-6wJ=;&OG{bMz*JeDIo_y!zvhIuPCVb}QxRIOYbHjfYD>z`-f;IX?XR-*!Jll7FZFJ85s*$`8%Z@g-o?Tc<< zRFC->xPCsW`gz0Grwr;=&VeMvW9P>0ur@p-ay}a;&TCPzQa-4(kyy523!1d*1m)w? zI1ykrv&UsNNmkXXBxAz7h0%&D?iaxFTqUFq^=vgHP#mfgi`KqE> zMIRU_f6wjR1Z`p{M*p%Hs(i(e*Etq*rcA*4&41%!vJWcf@jyc4ZR|OG4L<(9ROeK< zaBu^{t#iRX@*MuYqJ{44d`wul4N;ohDC}=Oh~gFCcEsjAYLdUa`aWg9BSFHekXjDM z!_(RUOU3j-PFo zo_AL!)<3UzC9DYWL5H3l;D3G`I?ujH-2NJdbeV&S9Y06qobHI%C*tv;S?DqCGJ1UT zHHs(h$FP|P#ArGtI<;<(pBv{xnWnSx{f239BvH6;_Bb30G}5T!&D9ukSu(-{@8VHt z2p$}ohT9(9P$riW;TP7U)v%4|GVE(K^SXn+qqf1ZXcd(7&5A-*YomN&FI-;s4T^le z5^X!QMEQIk_^Cr9MCEISVeN}xa*rPnj0B8p^EsRveu0*?DnR?>He^0B;((fiyCY!wLOg^9wn{BFjNO5D)4zawGM}&m1RdA~ z*XDiDyJKUlnDPZ~#L{y&cMu8dfJpyVsFmvxTD16{8n6l>d$z*1QE&9`-3>ct^})$t zIU-NZM(6%pQLS$;l(IU4_HD)@!pa)A*AByXJJsm@%@9}}pNEOtF4M^Pb+kn?D3fAv z^XVf51V6;;HJ4GZMI~`({m9nXnot^p`ZmSEF+bv_8U%xD2ObmksNRclQ*7&TBgFL?^|N>2{qbvX@M+J;dpR+Ct7{69PPjU3hnYe zM!&CCL94cYO`-H5!Ap7a;>&MJqj9NrICA$PVv>2-%?AJ&F{4{EbYAoTef#!<%k6O( zIR6}EHYV9dS%a{Xi!o;1dAJv=g5r6+P_S}+R4$Z-NaWkuK*^O#L|pp|k6oLgK`uG; zMje6!@8HJ0dkBt<75mGbp7%Kle)$*r^=*ry+0^*DT4mhxtc0#TTjBA7{usaK2^4WR zuzclKBq>gP>YiAsiJ6$8Xbz|lcr$nwc9wb`A;NJ>`CT8 zPJ}Y%=0fzIdIJ;xK7;Q{$}#5qN%WCW8Wq$)i*nXPW;2@9e?kQsL(w7y;1;?P zlefm<-ocHS^5+r6-=B*O=P3<}aBSYT5BV!sLzAkdVW3d}%J!rYR5|!$Z;YWG+;HSd zAf;6zlK&bcB_b(nOSG?a2CI(HNGqc@=mXI^ibfPMMAo%}e4$(UBNd zEgulMACs2dK!EKj@f#{G~v z!pGeX+42;HuZIJSDK{W|LnJ50llzx58p!)WxGv z`ybJzdQp_C+X`)*A7k?kBA6u0Y|O$)P+L<*gQUh>mihp zmJz5z`TV33F5H9!Bw6QxJzbiJo(*i0BM}ByY`Sy-&9t+TqiQ>xe;f^6f<0>Y>V^J& zdt%V{Gq88n&rl`twjOe5s4^_*KMJiEEkH>-8#EcW8nYXPz{w#mviBbZe@gaS@JMKl z)~MI}2aKP+9*4hkpx;Y`e?qhhWk2hJ0sVTT@4(U6wS5WPkqAE0DM@cq`x-Th=LYqW zk+3gNAAN@ONB7RXG5^S2bSPwv|7|{kA4)z#?aE~^Y1boIQ3Z6fRnwbHu$I{%I+0hJ zO2YKt1YLY2N;T?_;NySc$e{zM+@Kw73_78w0%GuE!`hhlv?RX#<_na|=SUs1Oe~mk zwRukZtm0X(6@!_d)x+4E1@YyGuTizI6XeteLqe5s_vABOlf;55J~~dGq(^wHE7}bC z9KCvW#jq*sv2}6>#OV{vZ_EIa^@z1Ag~?;aVEM5-u;0`Ub1y`YzYYew!stG10J?YW zigABk#l-q{xE|^ZFIQ^gL@acCCNT*l@tPzW<5HF8ZG4C;fRFD)XfQ&ovkRG^)pA|{ zaZz%VXx$P0`}IPPz9X=0=W6&^$D1}p{$wB%TNK$9X^z=Mjy4a>gHA1Gke@Yd)ha<6 zSwtmUSwW$Tg&{fpw$8$wHxZ_gCXcrO@78ARmj_W74g@+3ku-2;+s+U7d6PY=gtr9C8>jrR4L*kJ!ECQ=E>PklTxa98 z4sdhl6X$f)9*wZINkSsYRc;^(dvpF%T~O!nH1QV-XJzLo?9JKa!oh~;SNNb_8Ema| zh>zp&9MA+ijZ$oz$TeT1wu3e%7TQ=n{A#p9zkz+wxl>=PKXMFJJmZO^nV$I=!Aat6 z&@8{xx{ToUh@_ax$%SEG<->qR?Ga4bFO0LpZsF*o7#bBAq1RH!?CjQo$h1I1q&T_1v*_`XP8`_eD-GI|SbgqKd%LV(Tbd z_~o_5-jx^Wnv;}>GxrkV>gf$H(do*cEi!l$Bva=b7i&7`ykM7QD0<{a{C+VJ)fyGW z;pv-@C7Ta&`FY^sWg1e@x01NiHrwj04v~(RWZ2WVe5WZM!Z*P6IMN$wFs2dzJ*9o&=OCISf0G-$CF1wSu=}IR0FJ z7Rf3blrC+H^|SU;i%=l$!k^f5G6Y5kAGE3(jiobh!;eUWhsJ>L&?ss)uhBs0y9Qk% zxJ77*^8Ng6M@;NJ7I3M9`tAp?abGfW=gb4+qeqB#$cnm!f-!skWpT#!r5%fK>UNZ9 zrCuI(*uLeQ_`P-QN(6<)18xmbMz;uacZG<>L)VU;fp^`~IQ7R`xOw>_e@-tvJbwqQ z%KUVi1a(5HC)l?3{Ih|yGC>Qihbxtg5)n6!Vfn#(A|Fo9UI1gwmdK)^0jbU)(wLlV z5arCUr#D3CIONN%LlLuxmg-wn6$l>aO2ZxU%fCCw?V(i*WV(`ohy>4z8kIUpOLjsmFidO>+Otrwy^a`=R9%5Xc-O?h+Q=c16?TJP77? zV-irjHI=3RP9iSBGCoWBnuz{u5fVJSkv~@+1fISLqZPHPk5Hy%W|Ur&NK!`Xb*M6E z2`tOl%8h#?$T|m!R4!H{jbQa?GW{xAMtzO4m8+sc znT80+-y3&s?1O%OZxsA&1i}(zZ$u{f3pVaP@Nu=K-&C3C`s>+WVAa6y;n{E;mi3P_ z9dur;A#U3Eizl+=%nJ`&lc0CWkrz3fO=nl@;D(iZS76(~Qm9zIG=4oD4LgMl+kfgL z4$*HlJps#?ehx*l9R9vOrcQ+3;pCGW-p)Mg`3P&7gx3a_seM*|WOr21Z&wWNm=8zN3z@( zOIHoR7sX1Udgl%3_j5Pc(O{-4u^}TcJ)7ck;EuAG;4Dc4=Fb zFJA_O|Ga?m^+sXM2rHB+R|yp=)y6g3T(Evag7IO%R9=Q-Gl!r;wQ8tZsoekBI}5-l zjy4Rx=W!wsNC@uk?(XjHu0Jj5#q`D?LXh%T?B%K1j{__lHJ+a z+u6}~94#*u!Gkr;*u8M1%vTu6&rL^ZmM4txt&81btH7u=F+a`@ISUqrYX;=>N+$kN z_1-=4Vq#77T6~@f6RRwZF9Oso?`$*w09G`Xpls1ns8F#yigr4R$nN{eIO20*gCN$dx^v7#5@tJ=14^6VrWi*R*KTtRkk?E{=lrr=aIw>yU$4k|xiJY$?rU zcA88%U?-#enh8%AFJ$qwg?*|T*t)zvdX_JN5=9H(pf(kp*!^FogeQl-e|!P)+}VbS zH-%DM#>R@##FRXVNp?Y|oP`{Q1ag%mdGq8;@ImWzMe(X)>t()yf!Q4Wd%SR(X z%iOB64APEk^LKLpm+WjKE-=mtZd#)$`r0g(X&pdo+W;$8q0tMXJE<0=(X;n6yHb`3 zTQg6}P-41LZ7`b0KUttn^bItdl4WExIf-0Fix|sdyr1*)VvSRu+fjkm8j}lZsC6bt zmA0^z=nk*jlpk~c+nD^h`@KoqooU)A?zpOSyT3SIrgu0zS*x81?*HNiNICG=< zDH-fllxb?&Z!ujVx3;9 zn3$P{`IjANkqts`V*bX`7P;+HJKH2A-@daAE&FBlaWh&b_Eqw5v?*5u{db>3A?nX( zi0PjBnXOzd=6x(8h|7wpS$-3pf6%&dpYJCAB3PVNF#nF}I&)rT5?jM)-yduKMItR` zejYoIip{g5)6i+N9gZ&TZ87!-6 z1B)<|K(r}c6qT1gM!Q_pTSmWZ#lU`-x;tZs4WWB?A5}XI!rvQq!QGCgO+-TzNDb^) zRB}a(-y&a&ZO>eGu@k8Zw$j7Ml4?43JUf7_HhRceIk>!YO}uP0ALDCeGCyE}9*KCk zA4P_2!M*J(#A}IQPG2NMDYa4g`F?pqWs-!IKQYa$VU(1JJ0E7jK+B=AdsZ|CHFPY1 zXjvcfQ$ok`7mE8bG5^)Fyo%+^G|QTWwV0o=Ft%m(jqF*I+%`IoW#|PB%hQdqo~51@ zojwB8F)5{dT4G>%CrisQ@^>RNh}0TCy0guXfZRb7Dl@pIV)?^+=_8KSB4`P)QxC4- z@vQ{k*@h{37KvjneywBT&S*IoZ5Z{j?u+g-nRlD89_BL6ycLkuES88Qn4@DpLzymh z30bedWt9wC7b>QRGhb6PH>-79&gr1YXLYCfoDw$Oi>`rNzukI3h;}0#dgf5UXg0Gt z+58SJB7Z0JOh}Q4BuuQfEDA%0V9<#ok}xnkp_U_@9a@$X8JTFb+GP<%G^g=t#u#=Z z*r8_?k-KZ>Vd#SS*s*UfMz!dJRQ0>Ui{)Ij<3VH$`yUgLABDwPbB1cgD87^2MP2qJ z63xGDv14&3nbC9fm&^s0KCNz`=Sf7Gt?Og_2DM#M%cu34`I{we{aR2(Fgl&nVeal? zVG$aF@DLV;mVD3ZXLL?MW6m?oeiNO4B#?+Cm^<`QziU3M`IkA*jn2Q`&(B4-GGgX~ zbdc+edJV!OXuz0R^n9tCX@>TrhmUaV#4)j3@Z8z6xcA_mC=RU9(m>WOYk6GjQ!=~J zt%z!7FBKdd%=z=FrF~GSTv?RNoEy{6s+oukLem1-Fm}u!lqpvlc{0_&Q5Nl@*7=n& zarkB@Di$e)a^*{-WQ_rM&BVQ}%!u=gx+86&GALQ12zo8Lgoszi(6&wqlqyynRXff> zD6=QFiI`YkFR6@v^>x^B`l%=)^`Ymm^I0-6$$Q5a5Kke=;c$Kg23GjztXCTaU2Wn0`USGJnt{dL zE3wQg>9tP$ywHFb8w{K|7g=2ltg!igLWWv!-SRcUeUO+pFS5wRZMJ@5*(P>9+fLsM5CSyQGd*8)K4eH^COEe z>1+mEIdKwaA0NZHp>6R7E=;^I-d>GdOYl zH2UYfg;fXN!1u&d4BzL0=T}bQ?72%AUtfta9Vepc-{)}V!g+LaIDl0bL!tyJ$%--+ z3*+>W^WwGd$t?)a-Vh#42S*|^{yKINCyt%Myhh=ev+5QUHq^FhmVn|S@0KQCTCAS7 zD5aLx@x5oE)kgFCy4dc)ru*KQ+<5^;-a3O*r!HVYxBTK5f1c(!@rFbqReEC{VzjhY zbgakc;X;zb`IRskVX*T={gxfkxl1=RsheA@bz3UNoSy<}36!H~#maD1(U?Gs@oxaN zHruAij`BsaK=&2BDYV|NQYuBBym?T&RvnZrRR*r>+T(~JKTy!C!pHkwK#nED2n^-!nW6uV%NLhjq|v2X$z`Xt&DQzn?jPm z01WCNcw{Yty2a9nf-8CH%23@ugJ6w<8a6?5kRl_3F}_J@l&D+<6F2)oqA=jd`fI2- ztOF|?P2y5?uJQovd*Y8dZK|PS#Y$LwUk_;rO-VBsvefdQuT~3~PVUD$cD;G=6%3x% z1PUfGBefw|*sdyyR;rACi|#TH)Ug-GD0bOTh;vIBQX0Q0XO0TLg?-Q7Vn!?T`<6X4 zKo{tQF{}GvT+!laJ8S};E7HJT`Wr$x=6UZTu?gmiEuK zN#Ol)IlnKorecCDKF`FYR;z}Z9W(=x7bia+af{1Xc>#$@-ESo#t&o`fS`qp1buhZj zI{~@aerLo#M{l6VqSLr^`ys4bGSZChTzPVd-Q}L{sUV|;)q?_A(H32}(L^w9c(8ar zcTBn#);#{uyy_@q_Y*^8xV*Pjiq?>eFIH0FBVR;Je3Ug z#z6epqAxN`JdAUP4`FDHU$1_u|++;Ko`F+I%QF|dj! zbEl<6)}({rP!Rpf_+i!deK?f7CTfZUo7I@ttsiu4{=&s0hcTl~c0@+417nUDwEBl{ zka!Ap*gI&|5deEv1}8VniSfSPCGDWf(+yXyp2x7VA?Vg}3f@V6owAbiGeeQwdc==! zj)ycrn7SY0?*t1>M9K`|IJoZ+f=$vyNg&oG8LUUte#Y^DL}ciLL-_Z^6IQe3Vlt^B zm8rxfC#;9c+Pv@{BqD=u@4^1NAwTy{Msk~2-{Tl_57{J!L>fI_&wRw4&PhauKR%9~ zS6;s-CVzfne_!H^xuY?VdYuk8p9Wy{u8R=#YBVjI9_}hN2Clw^Q&&k$n&X+#U=$|; zJ$m*8DN>|BuH1QGFh+}3qfU)5wYl;npfDy3%Z85ChQpl+s{$AQM5kGEF>m%TjF@qh z*|39C@HI>wH4e*`O+%AD+t6dqU^wbS5gZZ%jm#A_t0=K$#zOqHVg?p&eS(OHa8w>N z2Pt^2t9A`P+jhSxF&RUh05!y2?e$!7JK z39SR`fbtbwaANgxEMGAjQ`g-Pms~O#bO;U&6Q8R;Z~*>oT>(>9EW^ZwoAES&#+&BF z#C|!^t$H)|zM1TO6Y);>5+i!|!HoG!aPsgQc$Ul#8LvTdeiGt2YugNoNd1Ln=(#%; zmX5CrDXU4wJ8nzmunB*Rsi%8GYhw~8sF-IL#)fLFpTat`E9R_i5|K~;8;NF< zkHgJT#%gmpv3BcRJl&JC-@d|Jx}8j|sVkCi8H99zK{Y zXyXbw&8!YSj_zfL;7xK{r~{H?R~?=MVml@Hc6^RoHqQp78|CCUQXeY~m}T0L%qs}pN~Hh+pQwEm(> z7TwKD&|GEe5{?g)?`#-R9dk}-V2f~gHJF6I2UQg(;v}R-p_nI?2u!G5z|LzSNbRbG zf(b{1K@b0M0dkWT<6GoH-W=&!I+GzF@E!Ve?}?G4|3IExd86|}cFz?02G1fKkR`Pv z1X|o(2*I^;&yk~SVK_y;#PM?vpkra0rFeB@a`Hpl8m-ZO+${E-4{S3OLaB_d&}hT) z@cAob%A6B+#$XCER>q18n5qO$9+TMfq z+5gcANFs#|dwF!xWm)1z#%jGW8e=GfFtK+$mp zMc9QIDA4FA{(HTb)&F8b>q5$7EVE!@*XE7ptnV}zGSN`ROMVgkjKH3eL_H&svPjB2 zoR$D0aZDMwNzjY4b?Ll!-#$p2Hm&IHu&^)`C|D5n>el08@+ac`3@n3FYTVs03~iR* z#@~l`Bd-k5dtbvDEh{k6y0Exw6BQqrJc1r7+?rhpqm;9;zgI4nB4p6$BE;FdBr+AW zyo5m_E}KK`FXrUU(hV&yBc8Lk#O&)?T(no(is{Un1w_#AFne}P*jmkKHZ`SM5|In$ z%|%#v7?eu(+e~y&0XS;pC_D=Fjx8h=c5u2n1w}U%!o?X?*wa2}UAzDaFY-n20+G;3 zXh{rfsx~4_#{`Jdo@KV?Wi^!SJ8YN>Y4)OdISdoaKuzNE8d1+^HKN-|ME2>|2cD@@ zivlS!A_Cd6XGh~^O`vDb|41Q8>D&M4B2*i=0?W@_K?z#RBjg26`3WeIB@HX&Wifh8 zOf0-uX8Lyrbb8Vpr$$v1P4z}r$TO##mvLd?NNGLFAIwCDGy4^mH)t(+Lrkp8%#a@i z1qNd3l&SFW^kAVN!Mk_w(4avB6e?0UUSg8oHKs*rr1|3zI_0v(#JcI>)A2kO)KA6k zTJmhh`%4AI2bO$TnZVM({RcSnn8j+9E#7$h;@E>oq<7L|eEXtEn<^DTBErzWPhT`^ z)*RKVRTFo^iCJ)wn3PMIpIcWXU}cR$E)(N5HAX08w6do;Top2ZG%wo(gSMYWVOM6x z@?4!b&6bHidd9%MkNuvKol7Vj>6Tz*=|f;Y%gO-uTU6*9nHy-CI_r{fg22iM>*fKm zkT5|aXZC5KYO4_|JLFW26U0eZw7sN({gy%|f!^{P6yNAgW?{@2DAemx6MZ_ggMxVnn*&Bw3 z)~x~wmN03Zv>g*$pis%uC{m>XR-I?HL6%r-1NNgr-XbVnx-{DTu^DY@h6518jRsXhar3RY~sE6K!cf$T633zW3g5!@Aejf z5y0*lT`_&ZbQCXK6N@jrh46GgTGua!;swiM{GR8~Ut5M+Bi4!EpkT+#{|2MUnEiON zcMw`GxhQ6|>IeJLwxRi%(K{Z)aC0?k4PPlfBMpCqrd4a>w#K|Q*0jFWu;o@nR2QeK zn=6J69wL6@__56kNd&QFMhDjKgbZRu&u*{}<_W#*+PH10W>h;$W~IoUa( zsTltYSE-NH=X|5YpoBdO_Ux$Mz3@iQgclQ37gqPjltcco3x9%Ey?S8%q)sSWBoEpz zx`^OY^H8{W5#-O=8jqN0vuDzB!thS`d;U-qFP8l`4T875X8Z z2}p`v23B}hs9X`FnQ$CFcqslH@dpYPD*SPQ#?r4$9CS^%BA=Hhbh>cJC3XlpwHy^H zl|h-3h0ti)J~*=X&hB3w|J)20yTPx`Z-ORM&p^e_-yWZXdSm~ABkrJMwMr;ivM3r1 z-T;%zM$B004PI%yFmmW{(Ou)mj6>yWRm_F^4}}R6gkje7H5j?^5)+Y@Wy~B>M~TRb z%X%Y!iP9)uz6z!tcq)oPbB;wmuEV5mEpaPMCFTonc8)-=&Cggqr$gV~&9Q3cKol>Q z4|T@xM%c9ts9LEca%HTKvqoBvQia(=>to|z(@>&BK@_U>2SS+mqJ4xZ^G?nRPk(=Z z3>{?7D|YSNiQIYfh@vUJ&^SbiC9g@D+ym*;rNXhfO)+M#H**iG05dmj9ov?D=Sy}T z|89FKd&nPiWXpu^wez8Jc3V954M!RW=3gC)i6YW3@GZJ`?uts4Dx+YLLU`%@THGZn z79_;1B9aiyEwW@{9=oX(E8y0d@=h);kT8X4V8Y%kA_*qMtnrNfo{ot!EfdW~BRee5 z(Qnc3&^`0(NW7VUJ8lt4(74zbB9dV4GyguTz_H&K-9>JW@f+sf)iF2Hx5aSdd+#HG zO5aDnmlQ>0VnOLAUx9r1_n$3dUNmCJFoXmJi=r|iS|oo~D4KrB@g;n-kc^Fl)jH+a zH?{(1KWmIDXHVnOw&D1zduKdkE(-Cr#rm6}50|UhC!^e)IecSe8h7>;}P}!MxlJMTU6qh|}qoh3${_q^8 zoO8hW%X`tIm61yAp-~cWiIfZRkX^{AJoIB`-Jb9g21g3?2 zwHP;gES4@`205!87+EIcZ%*K~P!2gfBv9+j$xUEkCS^6WgJY^- z-isz;{J*?)C|369iihmJJZk+oBmBL6*uShGXNM-(7Xc9_CP0B#JD1^IwS~BN=@#?@ zOQOo2w77i!5*D|Ai@p=iLZ-CEjRUK3H%$+mKYtxn-mSsJ9k1}@;9Tt2Ho%!P=Wu34 zS8=UBa+O}EN8X%yasTNfb_JZhd;xW;*MvrE-SPcBn9#ewZw~%9bO45rn*?2nG3Zv@ z0YQ(qqgLxxn0@#ZPMy7iD$i$Q;D&oBlPeu|?7qq#e2HcMg~R{)D)_OhEBh{@Xz_el z)wM6u|FH*W&tAlw4!NLbg(sGRy zPRc~sDJ(iDN24kk+55jeY)C+9jXGR=8jLdeGGJQgV(@TJ4jmJ2AweN1TfQ73A|tTr z?+w_wZM)bCORceA54EVKz_J~?kk3tzUvi03&Ub;*k5Z+=lgCfs<>iHLJ-TDfs@39_ zhrcuCQY*G-jO+Lk5>`k`B&>EDfL%xJ(PwIH<_ebaIOIpW^slk~29PX!9<1+D9%U+3 zz{W!wMCjgP-|ly4HKD2bareR~kkgT6SkcZWq2)$mGUy#Dm9Ov(B9dkH3KMosX@klY zOQXdmBerk()7<@Rp9Z~KQdb`1{!Z+^?~Q@As-aTl>bMl{hsQq2(Wj*g)~>z^)4NA_ z?3@F2(g0c$?K^7&`0mB72mTmVt2!!Gsfu$U>=|z_bZn%-=7XVle*GaP{yPU3HXlad z#huW0=#88#h^(JU-_*5p7x)JShyh16PR>sZE7T=Sa0%Klv3oKK7XOuo0PH?$i{6uJ zF;S$2$tf?|q@jGuWlO_5Xvq&5iA);$P@q0K6fp0_P_%t{w5V(zcu}Bq zIheviDApilf!gR;DZTjanstlg*`0gvEZ!O^pN~e(?lbVjDK%2bs58wBiMEUxGQ#_v zABq$zBDS7>6c+c=6ls6~!v{crek=UbWdK#Z{LdXj^5#R4QzDqRL2OkS4-cF`{u+&O z_u4_01|CCNt3BFhQ{nXWr#K%eN7W)ZP@#2092iy!{pM_jF+*-RQJ!Fd+|jggGx!Ah ziy1kMkNn|K(;4jtZHQp$TMSYQv>l=mCl3Xp^`y4!nv{tbS{6~@;Kgtz=%Or&t$fyP zTcg4jOw42}jm~AfMDwCeYocz|QsQ}DqiYP5NoZ-O<)qQ4(IzLW$Jl2VyM++K^em4Z|WCmUb9 ze#4x>YVefd21VGy)4>-V^Hzn!kOMe%kIJoBkjvPLWa~H0nc}5^h z_0BNe+kwM7*TbV|JF%-$?82ae$5w%?x$0r>p8Ys-h&^-ZI$C4^3ODJ9$ODV;&xO>e z-Jm`S_-@7ArT0+3R#Em~>@iLBZFY8cTtxl?2qrxw$;-kc@DPqajugi%Dpg7rmu(@T z2`egpy!N5-BeadCfS_utm?Q7g1mkfW0$BDLn-bv_C! zv~8SIA+@s?rfpq@hoigU7*mc;t}2B4zG1GAh+B@CnEOpk4BL1WKousa7aV_p;sx>{ zXKGj6ys;lT-{eT?B0>6!{c+~Z8B|mJheq|sAwX{Ka<@Vv*TKQz=c)Y*EKg9BL_WLA z*m~w2Q-RMOYYM=O~L2wgN)KNot$Xh6gZFY58K7zfsr{ zf*^|_kfOtu#_H)T*%A#+7h;TECrC`{4SF%YBt+}25ej&u&x{n#Y0z5c8rfmAbblulS{8q43}(!+`Sd-M55_!x=dMN0&jrOlIjaQz6cyT^ zh^VaX6U5BZe!LF1^ zS;yMwG!f8u~=39!was3e+L(n6V`C*x$zF^>5LsgSnN+po>66 z1S?6BwLqH`+tGQ(8urXyj32!MtTGR$j79No({Ma1Ru@iiLCvCm7KWMSQ5W6Q zFwqe~TV_!vl^Hp0-eJbdO)M?^jqw}r)0ljU_Vhd5oAkYgr9~b?ifOnFuf;A;>4&$c!UO8CNT`QB{6+? zF7&QH8K^oCg`X_PgsppV_WUkPTzVa?d)H?VBuB%-k1=-sW#lW69ffO_!;QJq@U~oQ zq?LqW)#54GxcdZBdK7@YjTWJ-o)q26XXfXM_cXaqg<9d#P+UcDbvHY|pAWY)Y zGS;zsdY0#?t%{NSoE9)-Xd;;%OTHwAxn-%Fn2?yHBOx$GzQvVOM{()OQ4H+83?(`> z7WWA*+_D9Z%pQt6PMJ|4mGbMi+vIS5L3kM)oA`6U~eYXBlJ8 z%vHq6B_GqI0xSLG_AaoI2Ep&e8@ze*3MQ9KC|aUAsuu!|9=wcDo6MLrrl&ZyzHGJ9 zxP5FlUP}vM%pXmV+T8Kbf|wZq_+#gIC+7t4<0Kevh8uZdK{#?HER zI&-U329;BCWXO~iX;a#=+P>x2WpdcNrbOnf*^x3C6L^9I6`M3e;$pgff{^h}}F2M|bvn*^w=k6UsDd2JOSMxN*-HX)Dx3(X`Gm$()cX zOD9q-I%M>8gllq7q)VS33b_EegDcW! z&5Fz^?C|LNW!!rmiF!jup-O5w)Su{!q?W}nqXsSt^Y=K(X(qS{0(*}~n)Jx*xg0FN5WIVp0RTi!#2C8GqRN_4at)$ zxD?`w0lhmQQ`)r1=%zx7RB4elb7t5mWw3E}XBF#gNS)js61f9B)1*W8bjgt{g(os( z%nDm-0JU{ST4p~>dS_O`C4xV&ye~xxCxrR=;@OjzNLgnPhSkf>Dld8#jv4Xxze#Xw zHW%eHD8$t!IGi8N`}wdr-}<>BF{WdA3QZ!mp)uG$7;?wEh)_7&I*2p4KZlHIrn0Rv=|1pqL`PxFk@Z9f+i{0SnSe}d)hFaYUm_Z z&BMn`Ffwod)};-|{qHaTL(n4Pw6j9=>^(EI{DQ=!i>h_g(hn-jG7>ZlqUV(o zfnA%sr6qJt-^+fFX0NMQ#vJ<@^G-d2W!WDZ0-$7{Z+)Kg>tKyjA1ph;!qkq%12aZw zbQ-bDmnm$Z5@(GWp=D+iwP;atR#g$>pEw+ZJx9x`=-2}i6HN$^K&6n2GgT=j%9X4V z$KsCILM6sY6H8kxy(kr88lk97WANk>TDnAP`8`@jgl2nwx&@!sYW!dwNqVdJ9wGX9 z2@^f+eR}!^39ULn?_jPrs-w~orE41hsTFtGVR2ri5?j;gHhqIqoT*N;SJk4~=lB`c zkrZKmVM{ZhEa)jLC>^tKR9UL()@6QZQF5h}g*Edx%0Fx@&rwR33Ocd7n(_hz%L~o% zL&?ky=E*$Fe^jheK+jTMXtda&xTTU(n14DfzlGRKnVGwrX{j`s_ZHOe`T{F=4}yc9 z+NU|3AJ0eg;hz}FDt^Z0f6{-&@;|2&d-)$QF&J}9i#5|T#xS$?ijZ)$n$h-QQQbUI zc4>Ko#9P{cb`*GDL=v>jLd>okTKa*;Ws;k$B9frzV~Rk5U6Y6u&smM*!)FBcJv7+c z{M)q2J{OU{87xdAwGo!XEF#UunkX}C)H1Qm#2Wu7E~v%(Oo*^JFUCJsVbfYfBtc^z zqn0`mmm{HPsRhj}BF)B>W|-WH`n||+6CUDwVmwdX_||V=_h=z=`mUJih|+cRR*fvq zGyB%t^bKZz_%adsQ$gQrNz-&#^D7F+Xfx4BtSnmnjq;DE`|Qw(EyL!#AUb}qFpqjT z+RrI3wA!J#^-W><1(5r!ZY2>(!t%kE!EmWOADyRnge$A)B(4iM9L}%Kw+l%Qhr{9g z7Lc&a(quYEa086DN7;|cV?hOYduu#2)eZw+pqfb zgq+CGE+;Ylo^~O5f4^l8=U0R(qp{<5^o}#1M*>-l9cnl~2ekNk>@Zcq=BvW>3y`vS zBRt2P(SKmu)wjG1;v@-3cTswZS^SeWQ^{kPSWmyTIg*iZsY)V+N@BpR^XoCR>;Eul z=pb}&H3XN9fcEJ*oV*`Qy<>DF;TA4Dnb@{%+qP}n&cvA*9Xk`-n%L~v$wU*|=0sng zbMC$C`_VtTs=L>_-qlsL_p=|2Ngyf@M?*Sxl=%ce!&4!NZG(lf-UJD<`fSqLKxDNO zQ$^lai|M0P2e)%$XpZY@;rEb(`QGW<(*uQb-{hb>Bpg?7z;=evcmW>#{0B zo~-Wt;Sj9U^BD>D5n=ifJ<7l=Ps2(ZUdw<&A2}-$v0SV|o?xHDpY6)ihfYEEL(w7R z-_SDPSmR$xlt7m+O6$gw_-mk$3>E`gu$RKy4$JmG3fT0fsspwhLv}>``Zbe--)oty zo={kf7jYU;M=0y&zc#72>cb~w4rDAEr^jUQ{wmA>=SGw03Shb-$H}ot6`Kk(x$XI^ zW{kpOxIkIrPeCg4Lj6<7jtqb87JB;+%7@=-GciahSnFyd|2&so8@lsE!)vODH+T$^ z9bB_uHd!f**6`k|Fh`<$P%TEj!b(o*yhfvOK^dnL*IM|*g_J@vQ3XNS%-<7uLYWCo zR{u&<2zMhKHCx`GwJ~I3Ke!OKe^G@uyD(yMr;>WrZO&@>tA{peK)cRKHntPvpqtvD zK9MC8_mQJhGnaS9I(1O9hj#x9$sQh=kQLvPCnp~QLisCY!_xm;yW58?f)rkpr1sV9oKOL1q29q*|ky8Z;u0I2ia^cyC!v7N3n+@ zy&^(Ekpk|`^CPfKHD0(6J3MtbZiRAJsotJ;;8YAc@#4_Wru)&yH0otM$>ZB*AI;G^ zEuPF=m+i6NIVT1bzp&`bKY}&+k@i*_yJQS&Xf`yHPXcU&!8(l5D?$3*T;Rd8)HvJx zBL307W?lS=5m#tCJ*4AxwvaN?#;c!T$shZjKkrUFr)tFE8{bpE}+_EMMq9aDtUgDEpo^rb6I#bxrmzgem`PbuH}!&ZcEr5U(Dd~ z`=Cv>oQU>d;!=HuIrQ`WPw{}?1a{nIYW5l#dq|7Sd?A@=&x)a753j}9zZ(wT@VY_n z@V5axA{G+G)r^aZc`bM|`^T>2T`W!3062B}(?HqewTs8G9mA`=@CIC(gci47juAKN zVus`BOhCCwHYKzF)6_sKe1gm419}OK8qNs2{q1p43y+rzx7QYoct`T93I0D6@kpiM zgfBz}<3PlxN$?XBB-HK;fX^~Bu^Sp7A!;wo&0Y$tI7N1rtfd*E=nShJYCEPh)OOXGP2 zr;|Sh-hJ2`PwMm9+bo3#$Ma+pOuA}t1f95!JSRaADHHpm{;C^BX1fbkIs*=1u<}x+ z^YUA&Og<*~5wbMvE?k*|Z|uP0vB|$FNSpmf7(km*WGoPS?Ju`WCF?hM>?f%S8N%34 zA({<$4y>sxgg(xoJ=IpN%%MEn)MG}Zd~c+V(#W`>S6oyG!KHPNlMNgFwiJbN?i0&bb2Ndgct{Xe5!6qX2`n z++Yt#Xc9>zL37@sl#WpNnH23;_RQE;!XVaoGuJ)rc{JNq*+9q!!Jm&$5*Lf152tp> z6t*-~hegM6p@CPvLSVAM`u*AXRF$n9+5@T=nfdsQ1g9mj<6!u!jA?kG($FQqPH;-N zH246>DRa*)rNv)$3tlOY5%M|UC~-o;QZf|-0uoG3FzLVni%_9T7$m-OFgf{nJ+ZHsEFIBr`z~+1XT5}S6d?H8=B+u>m9&G<2 ze;IXyN5@Jcs8dWX^G39VbZQ1&TJW<Hq)4HMH_aH7uHW}P%QMrKc75soMg zHrp<;c-~<&(;UFH%)q1!khD_4Gb}cbZ@}QjS>GHitJ?ftii|{@-0>+!I_@G3j{Ord zELW9_9f5Ei?9TrzvVRITU9DdvqVYRt3J2v|XfZtoTlz}F1WL4&uat?|0*#DLT2!ZP z`?r_V!d)naufjdqqaYl1F9`FK)U`~GI({`?)h~dJY%?gWN#UjOSK}(Sdd(|OjUhXn zDfQ>bKl6mljt*>qB-ofb59z@gcp`#EgH6FBa@a60ZV6fpGnA@?9%^hleGI=ZI6^vH zR8pl9Q7BIz)R9=H*>xez7C)i(2glxvQAagB0is@dJQ@=fwE}y-Nm#*y#C1}wi`5{> z)K)Y4-yaS`F}6)Eq^Ui_1)?Rt{*V)bvP0^=O&LF6dtGkD;!f5Th|YTT4^88+TM{DW z1R_+Xpj&v+&ebW~Ul1-q+dp3nCRK%8q;n*SaMmh(rn^EHMvW{r@`tQe0%vdJYvY-;5cffpzjXP$gdTV zYp=}p2#^?tC@+0r+7DNEX^AU2X zK%lK|1*-4u`oeya05e-z;#`aAvWlGmb#GQ95YPh z{sD#a-FRU8AcVuIRRI}-}Y&}mB>gEzcm9|K_5J2@MQQ!vR;XcZW8FG5|>+@esfN2Ui|lP}hf zw(XczF?j*mB5yZ%TVYv=Y>rTkz!CCrc8Z#jtNRnYcQM`I^S$7UQ*}|3-CI6|V2(B+{w;G{{!k)s~R(T)17K=bJFtu~ef|5}Ov8q-AuxZR@$e{$5OYYlXrCa)%Yhz5C{caWH*SZg;_$tofp+#@SdraIzd12 zvcz<>g<&GFxk9Ck+puKImhA0V!rq&pPd~LD+;PMw=phf+(W)8-;U0Vzv|aBclhMM; zvTF&W&jP=uY_eWb#xSS0#}lS^ZA*5c5VCBP1}r&#>^9savih0v%q`$BnAPEPBM{X_ z7MnrwYc0OUyxe4ipq25>jzk5AE$rkl1t#o!1Twljw5eDu{Dic8ma*77v~%nvlR^(s zF9t1%_QdyFl~oxCy>^-C0rb`x8UgcXVUQ+1M% z&=jT!4rxcp(93$FI#uV-i|!@qA)gj7%-b~lV~zHe7oB3sW)Et`nxWXBC7@|S3XI`3 z_Z_5mme&|N$)u1h!L-j|Q-zG);{~krT?}kE=am8BG}2k$HMYgS@AhCgPqUi=)k8Wy zLf^wgi%5=`qXt9P0H&01bU8dABf;#<-Mh~gUS;!FEchSQ?EuF}AlSSC%FxRP4_cF$ z=q=EWS}V%}GYJA%nINDXhX)!J=@fy08;0$Fs{fY%>(uDk&q18SdbG+n+X#Q&9f$P*uz2aORF=f0Jd(PZeOw1^H_)XLNZh61@1BJ$ zzrWvEi;*S`Xztz^>fw8Xc$e>dQLilWbzuJ*@|m{(Va&ksrytYl#6OweDc zC_UC?YPPnZiHP!C;l`Dp=5OmL|BJ`)_rU*!T#%@ZT>c||`0p2@vHyP`2U4#jIT%_aU0e__mI-qU2?_1FN&1f$8ApPm z%m)Srz(B94sHld_|A9ZRs5;oR&kqk6pnTCJQ=Pu*FX@$}cgpaRwzf7Jv5U(~Myh^L zzyh$3Eh`rEoFj-a#*2f}{cRDPk%3Jl;7y_hp+Sd<%>UnI2Y%DwT2zYg?IAjx%xKH} zEEBr}0^9JUK2o@YzmFE^wfe1vYtGmagT z|HGO5#0A4v>W#nXNMGgSlPC)1N8fOSoBr_~AMbvoOZVpU{}+%F#tI!U;eB&^vB3Y| zUJ@vE?|`%m|JxRH=KrB#|2Z`b&qNW#YSil=4a&s{cxDYZH8suTb*G9z#E$@}JpfIe zfzlkk&#p(kZHH$8&FyYS0wIBgyE)oV&VwT#+>F}7q)GLzdwb^Zt>hMuU_3r&a7+HI z-$9UD_F%XLg3WIvM#hJ$O@4r^gALbW0)>Epfrqh)2?>#)uLbLeki%+&sDXBsN}-rH z$W&SS$!u6RBwUd~sU3~>Z60OQJ|S^H!a@t)Y{+ z_&;a+?-@)!xE^?~cL!p<{;#UP{Vg@<^mB5LrDhBeZ*KTu0M#k_1^Y4dQFA8@RMAsi z_9q7Q5O>Fu00AGkg2PP0bo~6CajH~jE)d^ql6aE;eZGv_DMFtKx9!KY_z)aq68jG@ zjZ+pV<6Q7=!3ejs^<5zKo`D#u*OxH|4Hrz|#rsQ*(ds3*fzcv*(^EFR6t*?8)b{ib z;QjF4$PBHH3mHm%0>fZ~WjRBcE6VFPMf-G#IsqTm5)B`XS{*z{_yfr@4@;K=^T&2? z^jO;Im}nnuqjaLl<@0EFuylQ4n9WC@inZhV3h%G88;J+w7j*3xo*d+=kk#fQs$aG0bYa&7t5&>-XDd`F-u zz;v&%P8-sqh7Ww`OEB`B+i7pPmfR+96F2{lG8{e+Rnr?STTzQ+)sE`p*4TMJlY$VA z!2cZ%Ob-0r#@U4Gi_w$ z>;4axo#_@ro{z*5N`B!kx{JPnf( zK~H(WTzzg=3vbo#yOY@J6{o#%fO-W+57M1BN(@+<{9b-W`lJrT?)D}#%i$R2hQ;aa zTr-_bA|K_aPfg3l*C);Wvn2K!o5ppYX19`h2lBf%*FfJh#~x?oeXU9{dhI-cdlRxA zUy_G}ib^7o!gNQB4GJz?48w+kW_$?tpFE?BZj)7b?Iksa44Jq+<3h8)9j9Uj)8-F% zcu(uud|_jQHuuwoQjjC+2(ok5haQI%>;tOtl~uHXEw4Nena6j9bsR;*=(t~+VH64v zfsyI6QN;nQHwv&D?RVU4vHgnjh>IzK0lxU*X4uVT5G_`A@y|=`!iA= zfojT{zeE)vxmnK;IZKy1{&1!C-rxw-!u6eNpo~=pHl(^flWzMWoc^9DHbT|{6qj6< zHbsy{dk6nL?jU9 zbAJ>K%^6Ecu`MZ+$K(3Fx3@RFIv<~#o4Z6g-^hUEZJ|{D=J{Fr>0-^)+S&_aHivN-G(>+2i-4Q8M{GqJZfstZvO8uH_kX zia-!6rCebEW0KW%kcYuA=;EHy_}bO=Qe~;e2oZBKO*F!Tx8W?OqzV4;Nw#?r#UUuO9sX$7w3w76iXDZqM^*WP5zb;+30k^{Vt!4s#~1?boOr~tjqds zI-Xi-vt2;vRyO&Q&2T09c{Rao|EE^P#Cx?uYjJW-rBO%vbIu{XZ5lLi zV1i9ag*1AsMeuIqfyAK^zsWh{REbl*k)?{K3@zb*P;s%@Pde7r-6-Gttqm* z2eR`y2cO>>O$xOwt!OMWZ0i}>aS-|FaBiq|Mgq`^i^)wwUsijLkWXWB)DP}m5g!#2 zAb;hC!Ijb%i2>PY^s1n=3^>}1w)9sZE7>)NmSn+IyUawrOBmw&o}DFTy{1)K3{)+q z)KMdiGW8d#kT)X{340RD-}nr^s^e_1n8U13{xlFwXjg?T00G5L^{+*@udJmcvw}EB zZCP{m1&Dgg!eNwg`uivQkvMMVv(WUWk}L=B{+tJc@T`Qntdd{*~w{~@Y;jn zrPapb`stA18JoE!_|h21hob}PCFQh+_Sl8?+#{_2?j+Mvr^gZlS{Z878Pkz<>Al1X zyfaYU@Q3u4OajL?46A7H5OomU75XCHE}$_E`qwjxl4>T|1dVAwJ>s23nJ3yu?$fiujzmE&fycdP4It>B|hvJJ_%JME7)Jd z4r8KFq)L@ZG0vXq5A{$Gev#}t{v2?lglXBl46{8xu~ZHpG;%AP|9yUhFV--}8k#ca zryNBhk%!H;T8>_)cZI_V79u6kMS0*QOTU3R3%UCgb0t=#_OY6xl?UUwSc*oKTT~xN zy)6u z>zQ+_{1YDH;>>=(Kjp}XeGfV64-P5FAJEj1ky!O8(9|*JSm^(YVQ@{xtICfgRSvT7 z`HA~TADJ6|h7G1ReVfDh?Gi(+{SZxp7>g?sAr@T86r%yw(5v|8d6H}e=Q-H@MYWjGQ{JicJHroz z!Hv$-@Uwd+-8#tKqhzY@3tDJ2WzZLdq!!h@6aJy7?bTh0y&DL(@53)}-+woo^qE*0 zW-y2agS|0oGhjvd53{NoV8nD}U@#b?Q1k0yp}EBhS$1^NA9z&|U=lY!FT?rVaiMlI zt_&9ULCg|N>(*G=nvIfxC95%D{aRbDkNS4N`NnDf^>aaN+39u?ItrUX=)k6R%uUiJ zyyMXgPOwd~Ln>2qT>Ydu;qG0g(6tU@FlW+^)WXl0)bP)IdUHMIuLDLB0vK%Ot^IJ7 zbbD zzqp;5egz?8j4u?3#hq0cRHD)8#?xt57h3F2nE{qpcJ{8q8zQxDpC`gI8y}fclY~&p zkx&1~Xa#(;v;IwmDD82s1MzjaIysYe#H3@lIx^rK3_|JOQAod-TXSK;a= z(EWnaFdYMD+dW@C1nP~6VJasO_hhyTR8A0m!}NYtq}Q#-&lF2FP}f=v-w1Uy`o0QZ z7{JzQMa(EpW;(NaK*7Rk*&(0Htg2~NlNl$Ssjg7U9gj?Raj#m-kYrLsIi33?l*y@UvLXP8tUjNh7JYvlhqClj^;g~t4Q*j7p!&9KqXp>D9K4LUPuXW34~{#f zrCQ<7TcBg8V{V?e5RT$a4@Mo+-4%@qO)TbT4*7}0g+VT@JlNvmOrYDHzu62-XIyM( z4nWk%eT32f!ZnwDBb__(fC0Ee00_MFjHie;5Eb=WhsusSZvX9q9e@bCC#G&UV#WV} z64^_9ef~{I#Zp{N28-S!S0|v>{^-hrH*5;VvvcA^oxA6dY3^orpuO9kX$fX{JKLG$ zWJdVK{DtM6)eD2D$3GOvKg+JK#^YTgws@uxp*N<|#ZMREFp$}@oJT`_z+?umW!+%l z&T|_X(dT(G2Zl+ng`urm=!59^w^cHUOtL_O>f)yMnv8;8qk<%!wZzi?^X*#LRcvw= z%5y(?HQ@dzZZ%HvYC4m(c=gZ6%k4gL>w~;Z#VfCLJb~HHuV>z8)a+tei3PuL$1HYh zEXa-Lh|VS3--;0k%VxtDMxba9KjZtI>}(Y_ajb*seBxI|=_`XZmHPdS`W(gTfuC%+ z^A1l&?bZxoRcSFp@s&`jLzxgVg677&tj1WwL|0=jBmuG<4)X}pzc?jxp%fb) zCma=Ovqv0GK_nAmxlX3wK*A0=g^$VoTxJg%X6uy(zE_*z^vPTfJah;YN?NNO$kBk6I58TxH*jUe55%d zabm-Dt5J5Qi6`KbFr5`oSI4&ai0Y)!yhuyAtK@eBT8?IvS5I(2K8ADXxSP|4uN$If z8n%j13;3_8W{>Md_KRl;i>#!PorHVjeLNP_5b-y1)jBaMthh`V*S5%%7U3-3k%J?g zEQPBl4dl$2`s1xe@R>Kf$=+WJUL87sP zG(!BV05h|wK|)Qs!_nM*>MUk|#AKRn&1&+*76n8O=aG%&W>!0{t2p_D`~soHF}ogE zrq=o1%JM?S^j*fV0h2I|l%McCxEyo5<>Kad)JJ(zk5%UVcU?S9Q)(cBE3BUNuBEx5Y+Y=ngyQyi(Vh=Leq^$%Cc5(b&O#5#)$Vk#{fzZ z27rvAthOF{WG+cs9vR2*DJ4cV9>#~5-N@n;5#foqGkdw>;-iM>Wel#*>!%!xjUPa~ zrH?@d)oDBjeMg!(2#&ZVf2z8xxw60*gx%hBQt!B z8DRdkC#+KH?|Lxplt2~82t%I9BrwC4ps>CdvdCI_y z(A)Yv21^`!|5M)hr0sDq1W?nju46^0lSi8>9<8Wf|BIO+hp)f4T0_#S%)IYo>l(f0 z`@JkgvJ8?AZ;K!l*OfC?!*xmr&BoT{NK&SF$%pfvmPnw+quKEhX-E=d~oL!f_hJEpp3B$rKO#^`)i!TV%8Qvs* z;*PGL?FTwg*0_GbYhPwix5esRD9OE8a%D|b%OvS-xI0? zIfcRH`&+SO1RM{d=J$Ns>p`y*n5uj~UNY$zW@NTVNB3hV9ANl5By2 z^Y^8O9UHEa^oKj=OIl*nE0Tb{&9Mqj+PR!Bj^qJkZ#)%4T&)zuAw=pqRQ*nD5m*S% z1ug|K?|r6);;@*I(%ZzEi8A6Kz<9SIlaDwLw*2L8wDfm(SXv$^Vd5|qjf-k<(K2aN zx0GZ!&BpVzN9qs9Z*%$BV2#cD!v4P2Q$RkH$Y<@|UHC(H&Xx?NGJ4I(B7{l+K`*q$ z!d2u|&S{m`9?og2D^wgHZR&}Fjt%9O2DW?Aqi`-&s2wR57Ksobpz4Vo?rp6UrlFoCW(0#@Aas)AFs|ikA%F*JifrX3F zHbjW?m&xp_eY@YKz&}sia4x{Ih(p&O_8$?|!1U%+O}@e?Uv^(6;dsBc8S{%5NSJ5s z?5<43187vOO<6Et9pp*ThJ%GEIvk@;7!&+dn=2qQK-#w|#ToI)OgVY};ZLpPnjSDm$S|LGkgV6=i%tyi* zTvfJX^r=-B%pcofB+hNNHdLGO>*6bWaPEJ@$@N)$m=KRi5J&c;V;i{7bR;PSe6#R6 zkpNNEkLgjvC2$=q*YSsJNGGqEuJBb1tIc)z5t=m-ankjBM{)A299_&xthvPA{%pRN ziqVqf_NF&?x;!ieaIFGGiAwQ&ugRw4MU3tDsfUY&8LBLvZ12=sCJGEr4b37kFW|9J zu}Ml%l=fw&=Er)g9(#D8w5=%E%k@FW7rbUmKD9Yn)8m6sRzj=YjZ0{r-arC7rJI4} zN5$0?wkiEN{1p3@;dlUd7L5QPEof$_g9OW-@*rZ>Hk0ZJHUeicc1rvy`Rn5c(f{&c@s zV~xgr>v&nh8pFiIWY*?rFz3AJa5!w_6*)}thiI!efIf!njvFrF8a6txTBmzJLi9fs z40lpN$+8|=r{zQ{YS-U=_!hNA=j6T=o6^!a8!vA&lZ+`u-FqxCK5cnO(IlwLbIYOd zO@3EF5?rWQym$g4BN`1FYzIuQv1RXXdKTVsnE21+!##9bpPUFsO8&S8$$mv9h3_&W zMY3CXgevnNoLr8)KfCJ1Ra(`^4{qH;B+7n@Pt?$8vEbLRE{)7XX1N`Sw=NyA`e;PD zySPg~kwNa-S|e?LM_eD6en#*j>VvK417|7e#9lb2jYe?taxuSV)SzJ|U{DTqRU~q!fveiALwe8NnrE|EOZz?Ec_f%!yKs8- z+hloj8-pWxXp=r2hROD!gYB5cY6qF(^59tRNKPKc6O&9v56Yb-Yh+Tgq4k&%3M6~B zv?5l;I#Mlw-}JBW*Y4hJ$(TCfr5vBxO8O;_-#O*Y}V5LKaAyuw(LFf)N};rUq}9wgv^>xZuVfs4Cx zI0y$CQhcz0!^et{gdf;c3O}G-EOsH%qAk|HFqU3P9aAr%S@7f82hM-F+-+DwbZQU& zUfTp-xk=Y!=NBw~f% z9fl2}F%bc?3$)5mF4kL-l@WDWt?pzjly-x~Al(N>s5tpNDv|rt|GI?1IvJCacXHIi zNSB6%m$To`c8?{E7_c_6hVM-cgz~r_3bAn#hO#QUi{0BWf39Q31{FPCP++HLfP3PlY=#_z_vbCK6PR+dM8U>Em zRt5e8n(}~4>1HYwy`w2}w0y#mAc;(#D0R#pNxV~Ox(@z0S{zJLK%&hD8zjFuPv`{X zJx^t_(>bAz|6UQPCPU(BwkNLJ2!x6hW1J)DgLcaAje+YKDanM^L>Vy&OzAJTjbG@=t{!xHj|!TJfHY~-_` ziFS&+H(QBN8~hY3>g?l;5Y|T zlkmtP9s7yjli9T3>Gh1n7}XC=N4^PXUNTy8t`zjU$k>c1N@?NXm@h5Mw7nWM$y+K9+s;lo8@RmWeOTQ%cw)kK{KWVS5+Qu0jbfza~0~$=W zG?yvm>KTxybk0`V=MTNA3g~PRF*0Wi14|9}QS5~C&guQkr<%%Eg?ej%6jV}FBES0! z$DtI?bvMkO_F;M2FybC>u%KqdfM-+sb7GDI{+|6JP~bsFf0!y zh~h8P)G9vApj_Ut4PoO*LTXr1-^-`Vzcj|Z-N3M6OPuBFGh}4sS)I6ewk!-~;@C?tYR8ZwXr9q#zDB`j5{Yp`>y(Q-cQikauFHL?5o zpU5#5=Sd`sxQE6X{TFwVXPW4&9$%fhzyOE=7)C{bCWBGz;_UznCtmpb%qR-6Pz9V; z8$s-(9OGnA9}1E|93PKDaq4l4o;edwr_hv4Yhs3PFq$LpiR1|&^C8=z_(|O&kMIT% zVbHw?aH+g7t(J&{tA+P=7AK)#}VoFcc5W@TS18WB02-0Y63_&-w5ot;5hdf!v=rOjKIB)OV%dp7%A~TNV$jF;H?CFD;Fu>E z$3Bo}Z>E^4vYbllLg$BvmK}R8JhE}yYBIgPk8mI|`qR_XcC84daG@X#IT=~t-}R2v zfc-ZA>;W5$q0lGzax8NuDs%FT$xPzW*&y2VMTwIBev$bgTODZZl>CT2cEyVrW{iB; z^}qQAJ-b1rJc?P}3V2_Hz>_!IYORkt7 zCzvSd%~OCq>nq=wvYXX3NkpVtwO7tqx1f!p$Z{^5jDw-yS0a!{Gler#+D)>}~hp^o>TVhu{J=_>w+-H;xXPueA$Tm`FeW z{JVC{;?lo>!x50rN+uZ7j8cu-Gv;X)u+2TAj?{j{14Ti~l@kH<|I8_wJPxxcqAwE3 z2Y8ownUJA*w>m>QkyFR;^$w2$R zXgPye_|pe90^E5pC?_*@V%NlZl<8F8_Oq&P0VIK4uE;FCg(gmPl?f+5%fs+p!bL z+&C(i6+LW>0V%KoAIzrr5)AL!J8YyYzv#A(`shA4VcvU|{kD7UDbglz0$JB8>dxqP zlWE4q+y|}+Bz1UGC232unj2FV)4-}?g-%uG$UIdD=jAcbV z@WzU*O_(jea;v-;OJ?ftn%@fGn)adm& zZ65DEhVNvGjr8mfxx}t!3_-79LGM*62Ce^!!%Cal-`9Lq{M#ZB1s{WrWpo4@ZhZkFLxrr5JITMv>avP}76!LB`>rp43+6b=Ek)m{ zPW`suK1Dy#*?TGDt3l6_YpFeWS+Vm-!)z_{@#HTQk+l>f_?|;8vl}IQkxITel_D*0 z3tBzAS2_*!*-35(q!k5Tm2RtmTRm&^ZCH3T8jbH)SGp0W_R3`9alJZiR*)lJ^r7zd z$L60;@-7XUtc@ihakY#Njt&JHVAKO+cGUhp8dQTcYN(#GT#uHv)4|NQb2z{j;mi z^0Uqik_>(CA}<#hPl#SkchqMFAZT)SqAc>8ua!F5HlJlXmRkkgCdOi~))G6y!V~1W zsos`U7%>lAa;5yC zc^02Lj;TyuX@Y9&M_u_LJ%+L4(y3`$gJjkqQ?i{y*#{zC z+~+OaEa5TpAnJSge@Y9x7|6BTwok$U;piua!jjv%KKQBav2&ZU?!J6sEw&(|mM7<$ zqL*$nPAn#)2;HV*(~EZ4cF(suoNL(tScckwZ@@i!=*5lH_A z=1=}H5HuZ+v(?A@+j=$}?^3$ZP?CCM-5pNIN$s7xijnV`FoH^RvhX-Z{Xasvq4j04 zq(RC#yJe3knQVUiLW_8@q<10}J`Um36tk^Qee+5A+>lO260!G;c zBxnw0AQJI9be~L*4#_YyI=z%lPO6f%NUuPLiL>)4 z#3AEGuO~jY(?)+OAj9Q!L2{`^6Mj6IH^zQCdcSh2RGDMxvL0q+>rW6lLxAU0o&W;y z{z!CsMx4c3gFY-bGrDFR&g7gOmR^PvM{gefafB!|j_ljymrbaGtzc56w|GvF7j)3l zRg9lfM`M7BQ0nP#7%Ewc*4c|Vu{HL=MRLXo?(+oj=OI(Ny*P*qlEDT@hh zFmtRLk?l^&Bqnh$4uW<#J52g^#Lvv7YEn0ACBRe%pm=twM*(4d@1Z-rLZ@EvEMq2G zEf-r1{Ov@G>PeeLCP}~?>3~)RBF;~7lz4h!_kCizow-#`?;-%|j%q&WQ7V;2H-t%t zpeLMvDyZJLZ)WezXCug)I4+wb{x|*S$Lciz6NyqRpGdNa2z|E_MtT+wcRujYaJ6cX zrN`O)U^1EL)D26r&-N>rme9ap1GW^;LnH(0Fo{Z0isOP4OTG+ALjEP{5IYqQ(^ z-nj0e)AN{(N3z(6<&cyLeqUM`u z_xYT}w|`U<7WjiEEK!?19d3sqk&)2!42x06YriegGj7Im`P;nn)2j**Qid%IMn_G4 z6fWDL5TSn8e?CxvkpiU(iq(Rgp6)nAN`ynU$4#y+LNkO0Y=q2&Mm#1G$j^`Vl4*&t zYTw`=-FQVt*&I8>qK~axP4;KFPr6*#m!~cx3&bZIzpP*g2y#q0yvZ$319e#H2$Lr{ z%&3Ubi&baggpbl)AO#l6zYmh%#$$TiBI*Q(0ZK{c*%}wyRn0ACQejPZ3-`Dqq{E8! zD|ck#zkSmWl9dqEXuC2ite(e{@Y7HUQn^x*ujYf8{b;^XI7Na!%GEm({xt?lCA(HC;2~b zTp_UgdbOCgBNqF;&s$pWV*?eS8N&%b|PrAg!cIqZp(_ zgSWyhF9!uq8lAS-{n2#cd=~and4nl+y0JGg?7@_CUXBjP5JazdrPshZ@6 zOW5_GLuppE87imH3*y!M*7^U3C||eEe!JqW*kMf!lvT{2F~0_*pg1;rJA5 zma2ICPrSD8fo$Qczp_;3tTPum-U6QjTI~Kv)#Y@cpjpYznv&YA6oSKHPZ6i(L9z-4 zUA%$nX=<)$CW#*Lyffoe$rtpR?Fc7r#5(jQiwQ4W_dcX(-c8{z= zM9ZbuyAM^m{ADc^(4(QXzbBPzc&3gULonKDV`BeHle6>=ct%D4R;a_%4&I6U3t+uF z;C)_iDP$E=>rTf}@fSw7$y=0CMatRrC*&DcI&0hNI^OLJ^|ywmV0LzZGpk4+GZxha zb1kEsSr-V0cQO6`{--+QWVr>uN`r1Tthscq5F7Z&);R!YAbmtlS~F*5S=CNdBxVba zNl!~z(~PF`P~4b&5x=@%XGS(nYVQdOUB&XF_UNDL=^e}97u;a;9vG?3d0Ji(%K-4LsHOju?W#Y5ti}|L=_L+mOpWhI0*-|kd)^rN%urH(f>;;8F z`rp+i=qOGXN-Qurc|le+k*QCp?H*T%7`w_h)+-}6oZetYJ@DbmA}A$P;LW=7ML$B> zXf%5n6k01)>I38t=rq1dE_#dM6TlI|XB!*I=n3^-Y9GVK*D4G zf9$t?{eeXl}82!}!aCoah zQNUmIuf6u%bAC%?d#h`(RiR(+-rj5Yol4=@-9}f1OtHJ)V&*}yQiBb&@hVcdB#6?U z!lhadmRps#E`n6mgpCpHv-Oc2e`uUt^aZqS#^x_L+Z4&jMQRO-i!YhhQf0ubf3El- z9g*30!|$dnh~fU4uSVOFo?0W1wmZpds_&o8w(AALT|9Mj4KM5IM<2H+zXo=FkboOe zo)U(z_huw!(@PzlN55eHv#g79=jNsA`KXuSxM{bw z&K!m#2Tr7$c4)V3F}&*MLSWIX2(a03 zUJ9BKrm|Q@ef_2unrmt{!oMf<3l@d!ncdsczk9w~+ex!qkfLCs0N}nD`t(C{eoNid zOPQ7c;_3Y<7UrxN{865J$huss6EOzj{*ujXbk8xwrCAD4LVG6cgtOcpLM?~e~o)f(uJ5uiHc zoaLs|c!);{gZ2!qc*8VaO5q*VYTi^ z+~tgiWw=a$pu)}D*JNN_`C`xeY3O*Jo1GXp*4zIpM;^NJhGF<=-rY*mr8n zkjK@!?%pOWJLlw0@b=}OgdzYey&$|vwyRi^wCJLB5kv6|x_T~zJn){n3@vCNR`QkF zEsR#n)swJ?r2k}CkF8Q=GLwlk6kt_HMMBLI1A0;8Nkk#RAt1un^NM6s5sPG!BTzGl z`eF6@U|c&Mg%@==p50ZblBzVo_{}fH!wSVz! zL_|>fU|HLKP)01+o^Kw|Eeys%K*e{9;Jw%QnvOzbTks3akb^0sYa#M1H}uaA%!56g zE~ANKhHIbsR%9a?LNKDyXrA5ol|BwRJYCgM$MN%8-Dg2msnQlsXu&qoc^e5Y%TRBd zLY%9t5VPsPNkZXe>9NBHk2em^B6BWOsp2963m5R@`J8YYJsPq~G$ccJrXzyx(?$g{ z{Z_r-)YMasUYZ^=Ht8)Db#MsdiUOe|BNY)% zBT|0P%j^-zUry&2IAyK_7x!Chv_xB3<*xmM8p*_R>Hof-&RsE&O)7$njvwMcIm#A~ zOW8l+PSXt$B3}Ew0lwsqse=+UsX=TC7;pc_B;f+R*0=1V+z?eOCYQ4=ZO`4rD5Zy!rq}y(j#}S|0RaE5(!PRzN zLmJoL?d#JQo%V-Rqxa|tD|)*=rOlr1yy+tdlC5yfx@o4i)h42gg)s?hDRR{2jE4uTA7WTM61f$D0h?y zBCDL^w%Ho4LE%}(GI^gBNQV~z4rmV-WK ztt_q9tY46x9v(Fr3@z8`I89&j)YQSL+5B^S3!^fm%9(YA6$*!44!ZQgC|(+OvTqe4 zkP_RFhbAHZZO~yR{L?mb0;idkOeEdl`z!)vuxq`E!UTc-;kL}Pc*io z@u6vM&}}!}vOTHfVWZL7zBaiNmvkmk<1&Z$Nm9Df;&F@>jlIERQczf9IANzEgkOe= z{7jYMjYo9ids18>C?KWopJm^}E?dc%fJkilM`;`mzamayylIMw0z-lclc!Tg7k0-^ zxU5tJv-24$mzd2BjcI6G#VBmmBBhMrqu;Ci=}+{l?kC>-wjuggPRl60`|oudePORv z9zxrSBK1Inl2Tc>o|Imz55|cK1=ezTBn7$n#3g1=YP#m8^e34glB!dqRW@L=;3|_YEIQ#LQAI`~f*YIu#&{TuMsMTx9Nh6IKE@3(1(@n{1vf zMU7rhFuvx0L^uWIq$G^z8noJkgH4)YS}KQ10OTaF@YaX#I8tI-b+8R-Ml*jTgMlnw zH7QI6Ejjdrf2R*h)FxcsyRdV`E+1iWf8*l#1_36?v=|zF_ykAY;6*ASL7|HIUPCHG z(9#MU8o?$?Qsho%)1-{54@GftJ{K2ou3`>ZBDdW5ku=;a>$%{OeV8-u`m;!cK5#&HoomzZ^-){on6Ihsr?DxuWbXO-x4?kb)-%M zbB*U?8mRRfC^sy0;#Tgcg+w}dYWvv*97xi+W;nGvxOy;e(O}_tTH~Vd*2*MoE|gOprt7kN$igG(2&EK|w=3Jz7~DNSePJYTUoO&Z7Zin0w4b|NH4t z*eH~T>kZc@HaDvANb~@gTNEKX?zp=?M3n%l{zR}CpUhv6TmJ2b0%l3%h919*8$S?P zv#gb{eJ*kTm)HFdmWmDko^OZdX7+D0f`a~O;V08Q8M%^@>1o>!rlIWocOJl{LO?RV zMT!z~fmGVAv85%}na|ir=&FHHaj%*TT^)gJ$}J#*n0^=%*uYh!Df=hCdq7 zt+UoefRvSEMz?O&&q#lMe#9Z&9w`;BPTw26{s` zXCx%jx@F|#J?g^>ej;b8Dx9$$9dGVvwLPfllx%m|l+11I?M{L+2BZF#?4YQpjo;Cp zwg*RWOK3h+m)%ruonIekW|SQHb+?)(cgc1A-YYNSO40<)3FcC0Ky!^1m3)1OTJ<)< zChhO?w5zf(we?40aml3j$;!m%#>dBv{&*7M4oDjDs+Ir1L{kviySP9|mZ4yzo_rB_ zet8McrxlMt$4o2)3%9U}KLCCZrQ6@HSrR}#-Qz1gzO$8TfTeF-3|;hOMIHh+men`f zV}Kg1pIf(j@Pj#7nIC89z>5=b$3v?&1?~G0m@Q45IBGCHwa}77+&@dA7a8yTUnz7y z#Q*1g(U;SIr>^sF2pY2p{xqLQ7Gp%@X$%>Srf>j{(g{L3t5epual(HfYV-1rzLaDB zSCD;MEFVrfkpwjWBtR;j1t}t#K6p?3wqKbjDh}F~FJaJ84aX8xHaj{W>)1|ZvbuDo;9<+U5{q$b}X51MoabpqDzA)|#eS6iS&iIfs8Fhz0 zG4^LO)6rCNq@B33rsIx9=Gf)sqp~<)_J^bTj%N#)Z7)&bEzIdw{NrY4 zNlmBgDFa@-9+N&e%I;ClR&1}x9hr@!#^GTO=o>_{sOy`7+Fwc@Z}q!FB;4o<9`V~v z!80>~r9!Wn2LZZWhgTr79jrHb02=dJt(?_5-BEPvc4Wk63@Svwv{P&L;qHD zdc2t3Dn1s$IcvFKDkBBrW>NPNMTL6n^~vierB`0lg~Eopq$ayzyUA;CIA5E5EU z%aZ)?g8$V1#b#n!*DifWS>O*ez@k4x-^EBvo!$F4n^w~;S+98_UFJ7>w3NQ5>mEji z>!YlT)~|N~$`5<4sYovtWdCTKm@X_I$BR)uHVa-@zul|lQSvyM$xBbKd+0`*xq%eM zpsT&<0Aq*yOY04RE-c^nrx7~kl@J4))GaQDOUxKMy@)TyH<6;}+NPvCS8CRuLmT1z z*Qb;G=%b07Hl^La2%fTMi)A?O*uh6lVX=Lu4Yr**8_Uv`Y;59$NLYlY8-O6wI|$%e zJlpBO_0lpDFex>({_ETGOJ{%G!y8HtD})WbTQ?jzCA(LOw93hl^C&Bh$6!Uqx#tO&JO6miJb)N&HZcRB)_5&vhXkR4Ej)yzhDDNA^tR9 z1+Y}f)>Aby)8fx`Z)3Ar&0r4j9E>!}hYoGmJ39cfRi^xYz~Yh6y+&OIrO2=SHtlve zUp*SZzyCI(=aFYWy>>j)z{y&y5Wtt75I(J?yq4kMae{n*H3Lnsv}UyVr+bf8-}^8c ztUPLPr}<&FdKzfeEl+z}+TsT_L}OP4hr8DhNSrb3=XUd97H;gF{E7u~5X{HQ^m#Fez zI^0pNk5LHFhOj$EbktlA_fm_yx~Vut=@)X_;wR>1J^8kpw_WDw>b3d*}x2>w#lXUgCA6$ zU~l9xX5~qS?Y_yk?2_~CB6aQR7;1=0Q>2oSj^cAD>5t63xHBKb%3K?G-gFooUYXdnhSA{Z86SV0 zMlQ+C&H_bAhduK6U=!>Z8{MF`h7#k``;#<&cNj!{f0`{%=TG7(&&&}sUv&-PlKE3l z$QOi8u4Z&wUN`X`HOZU5y*BU!JrIJ#|UqGThIDA3u%?_GX4ghh={KaFrzSU%_oWnIS-EuapRy zO;l!k41)kRBrntno)zuTINwVGXDu#9jY3die0(}*+o$kXR?|n8eHi-Jz0>&Z8P1(k zMEW)~ z2xn9IVrMDWDpuD;cXp$S{R0DMdaq@rhNj_rVNzQp+GlW>7rGk zLiU{L##yC9=uEG6`9@1|&#uWab{kVjRPRtLwb8P)0XXHcl^G~SHRqg)glFTKYrChfFtufr1 zn3U3P!zf3Wf@%}{B{l=hBDiwxpT&@fuKUzNZl>P8K3I#1iS;fmJ)Tjn`+)tWT5=!a zI}#iCpmyB-eEX38@=WDsX;YHCWlTs`VMFMb_i>l578KgAfyQIQ8oV-sdHEaA;&iQs;AIadFY8AIKAWAv)cYk0%Wt zB0oV!M<0ZZm+F2;3QYvO7><8+DvE?l(cQCbzwJ2qvGFl}Vkea6-nIVQEaQc_jxF&i)pS;A3a5)buQ6*IM~o9a4Xbyb-n_ zlGEETmI&*#u5-+3Pg$&x5gO2>V*EAxJ)iq&60qBMDV^rdjqT}VCQ+w@LtjjE`*;od z-li9MyExw`!Pt^EEC%^z!U%*`(=P+iVUrn>P|;j~R7PBZBI=^j^+MLmTrRWjh2Y(G zX~?4%EXVC_o4>x7;H=Abk@P79kWoBMtvRKX!-S=QWABLa9@LEzvqGIq*1%j7$ymPu zC?}tetw2lueAu|1ri}w?_z@E0Z=p@gG#*!4v&r<>`0VmPqeO}o;Ja~DK%QM~8w~GN z0E1c<X^!{Ukl8QqO17|;{l(y85C)sqoUom&u$U=uq_b(gOG(eD{q(n; zH8k*#!ezyv(u3UH>vSt!bjCNE%!vu;;@z9Zk!7~tLysa_MtEpvKn*TP( zn(S{B*G8V2;0hl&Fiv$m+xuCmRfjK01gv3X2+LXe08 zieyg>&yGFi&}9tGYl4kaisg_M#1`Qhna6%OjB8?whQ{`F?#eqp+{?4QII|TiXb0ef zP&tyXeA{j)xnWdSi^Ar{CF4;Kji6c-E10ScPUESCC_j=8FDmc`sw+Z3lV*1uIT?A8 z4DU)Q(QlxZ)4HdGx8I>2@_X?Hv(dwNu-Vg><;;q*GHVe9rr`^PiqifPAJ9eHazG1$ z0-jbFBbEJUqwqY5mQI9BFZ{@HKd?Rd`_5W)1=q_Cx6^@4C|mF!(Ia1!8vX1*9$6X_ zQfnsQ{-1%2FEJcRIGqm(otDS~UIJTQ!em@|&?kr_O-?Fhqw_6Zf+;9k7Pd7~-C&zu zIBggJFCS8nH*dROyMcK2B={>JHdBf%q3BxV)x~mGxskEF-O6#l&2$44xD5D&6q1me z%B(zRiLYN4#1{>i$Pq1|bF4}ESSk`9`I6pDFMRFBm0>p593${X(oh+~_}~K?#qWR( z90J0o(wZM1`42ai%dx^ZT#=jMX}++V&2e4_SC-fT_?xG`jxZ!i^21V9tWz{uhey&l zLAnZ#Rud79P3H++M<|L@b!KguR2Ys=q+RQDmx70$A#fAil~L0@L>dXvDB(o-fNDg%v!xQt2rW!I8m@k5cevQoFfQpW` zwegNLkY+$6c&K=v(McpPF(tfP*iyw6IuK6ve|2Nn{G$<%Lytf_;u(*#f%(&&tJc5B z00#$$gM-6!ewP6TEH|TVMtHJhu1GoaQ|zqGEa;?UzT%>s(pf%SYpk%J$am!?Er!m{ zPWobL6cDd$5Y}|SOE4m(<6{*tB+p?~MNUlo4KfI%OeMX8fm=UT7!M|T3%ux02%|w< zse!q1PW;7xXlW2Yy4H=B!P5Y{mzmi(dOD_8B6xFib6tvUo}EedPcX1IIw442Z?jaA z;D8}ZgrsJ~+NCl%i4;r=5iR`9(S<{@MuHHQxXbCXypM)PB z=PgmF>839X0SAH;rmS~Yad_mc>0F+YXgDB2!~sDcvDQzIcXw#>JsllQcOOrpc!ZE$ zVz9~C{PdcIQb1_nf)%?;$!9`*JFvRDle4nIpSeGThK8EcPl|g!&X06Ui%OxwYIkVh zkP8Q2r-n%d!i_Nn!Ho?b_>zoC`y>R$y<`95L1s07jn-=d)5X5^W2v!6pOq9U1Qp19Exg;Mc>Z_1#e zpR(V>fVyW^c6N_71#Ov#p8_3<(rZcjtu&3of3#FT%Xb=@fguJs{ZFa@V!_?ns4@rbAt|H{tRT`(;8i<|ME7wAY^3fC$kT$)+jm~hkBvUVErkqEPZr8;76D?tv7ci27Y+OoYx7{9KyrkRuN$E#^<{hh2!$3%_MEMrU^;b8J|oN5M`NN{jsDblphlTXA`LAaZXg!7ffiK4 z*n4{*%VI8tK%dP*NaBT4$X5`B^@LYN?~ z9$poN_W8Cs);|XW{is#jK-~D6uq_A;ZLYdoUmY3X0X@C9o|!0CZ9s00U&+_dxhvGo zpCgV>+yxBduWqu83L>I`(igg$+jMS1eqXe2-5yxLEgdSbz@p1ha(Q|YL#ReuMI%

    $s12u{Cu{#!Uw*XE=pn>SzVA(@b7yep+KvGg*Fx;O2ANcDaWh|-qUzJN z_aEJ)v1Ne;IIOu*skTNxN!<4!>9AB2$68KT06e|p}`k$LIE+lO9WU-6*G(K z@BUfc=W;w@sl0PiEuI9&;>9q49{8Z@hDP!Lph?E;y&CIBB7_VR9mNm~m3_x@c-hn3 z@EHPF%bAqTx+@u1zB+@yABS3YsY^;yS4Dq?xO2I_W5*D3LlRZ39uLQ7uRLxmoOie& zBI%8+M*Wc{R!Omoa`e9!4qCHiX|)#E==9Qu|AJCiB-IbjvkR-PtHOW2|FIYI@I|Fl$egJ&g@}ZqGQ1fOOpT__ ze%faUMlJI^N~RWJEU>S+xi)?%te~SbnBB#yMQDrkJX5I81Zu5dweK|;&`MDIJAo(~ z&g@D)HtU67hGXLPl&nOCCRab7jXwW9s9J;;hXjaIH=$*S4k>Z3Sb%|pvT+zf;ylgxLK8Anh6y+t0dZWMo5{mOSs zF~MwD8C7HD<7)iY<@F#k(p**h=mb39UE|M=7vNV5#(y9w%w)Sc1b3Sp^g6`>aT594h@ed2eRsh48W zBM#G>XPM6pJdJRgR=dVVk~Y6^l@jO2kneOFwSDRsp&Ug)9|f*$%!7D8Dzn zaH{Z~a?Oa)AceiW*JGh94jUtCU{l4kXsud=alC7u;mq2aP?1utEU8( zhKjgx>0FZcSv?oKMU<-b8sQ7Uj)8a>sL}Ma#!;~V7_qjE_f7ym8JV+}9t!`XGAWsJ ziUQv}X|xuo_Vj|()d^t!4$=rn{!aWwe%?}$od|KEg&sOw3OOHMJG~4GR$ew+=}hHv zu|gQh1Q=LM(R7{;eidIhUaUk&A@DTzOG@lLc68XnuH@PWdw5YhUM+yrYDxR1ztT%* z%r(q$(YvQb6~zropC*V!=*X@D6d@Gw|9hAL>@aqq3~7At$OvB5*+fA0=5z_NUY8dH z9v&VS7gw6Ll0Z-rMx1bLjPb+aewab7<$eMjKU8C2A_uBIPjl`&5Y>#YRfVair-!LJ z^#%?O-fO^2tX6KXEfIpoxwW+g#F7G&eGO?og4NY0(JU?FhDZ05dk@X=?2bHNDibyd z5}lvAH~-bnb^Oz4u(6?=w4xWvJmDxp6Muw9!4JIZe(dh<;>bFWnW*pqiTP|=b`RU9U5K4QT&&AL>W%L(cvm4Jpt>{(pxv|9?q8|DUJ- ze}5rwz8){Z_{v#*@t*m8S<3(k-&7EY`HAI`k>g0IN#_OwBUXMci)#kE)*0w7M{KIO zD5E1|6h7&R9Fr#@qiWHfjNL!-U&(_RA#h{_O)A9CXqD-z_`) z1@pxswMLp>{`KUa3iR(0Q&JYcGLZtmUhSWA>wnul9;pU0B%2C~_%%2!A(T#MM z4?`bE&yZ+*!2f%V4-{|;kW(-Lm*_vjCOY(ieUY9(q9PgH_pj6-liuB7;|dk!gFE4x z3co<$?2E8ZWY7e>f+&g3@0Gmw9OL##3G!?}O0W9&fI^VIQQbtVtG ze%W;J@MXr1PL(h8%Y{OWg|o}WBFt5ks0>xEL6RRoaqPwL+K3dI`Ibn+2bl}MfBRy{ zjIH!tEq9wDcDLUey(MayXd$@x%!PLc?v%+>@8)fzw&Eqx5)#x(kB=3J@`d-^hj}M- zd_QE0_>Rf;-ZSggOVJ{y^OJaDu6i8y*}$Dw^g^X(J~X7pPa*!%)0goi^SbrNy6c=9 zJJBN3uaSz^DT17zLYROp;{9vcp4KA4{*S`vMW2o?=JHRaapA*N8e61O`5DVEp4&^D0RsZ}~-}XHp_)Aubo5&Q)xYuSX%IiczW@lD7zQX`yt6PiAsv zxf;Wd=^X2{@m0BL&BG9%MCI-W15%4{PU@cut0espSFbLtwSv|nLhnM3(6hQfFsw*( z%(_a4oBPSw#O$rFO(13F<&2qy-DPW6h~P|RA0&O>HuOs5s5bmRf8n;|y^b+2+J%~6 z4g|j_v1=65*>}f9kur zwytBfILdX|VT7~@bGjR88U=JHMPJB8S41Cln<~6KrJJv%^h<3}w0it_?8|lQ^%m}v zC5H(JIf%K(AYvy%|G+ds-9Qyi+O;(5r@WZ1l_lg!zaG9~!l33dPKtS*oX;iDR$;A| z2LF{X+B{?7Sp|4n|ID8=8X6L(6P{IrG&WM4IOhE(p{a>nIao|kQCr81CJ^K@bTtneim@)hz2u#{Bt-%+8-f@$q-1vLt<^xTP+Ry+g z0h}zn#1np4QdOj5XE`u2tk74$a5lhncg4sXh_z%dmNbNlyA5$0QqIgivd}jWXTbWq z(SS){y&DA4IEo(JQ!iNRWyfOuQUcyKC5+lLnnfcRV!eAL&j`xqHa|j!ipRAZ!rjG& z1VrO=YBl7k**-uw6%f9RAhdN7z2emjZPul~=FLv|R2AE@R23{u^PZ;Vse5H4 z{`cXzR^MJz+7!q0_WH6onc6ut=sU1F2>kec{d~GJMM5?^XatZB6n=RTP3tm4P@)1E z@Qx7)<%zGAs(VZ#8W_>`7mHtyaJzuqEvBmh44EW=+KV{${mf!+k$7n)suevAV@F@w z2y1-k+gt``wy(iKN@Y18sV^MoW1t*v* zQo24I&NIa8dH#2ug}G`A*uBBaRIrBgA)l7sD%!p_rO`|E0oPGvT)TF_rSGM1$KGUG zVm#A6Y`(IHBD}3#|LHtsloeJ0MP~QVssVizYB7EMgTve6=FM#T)ok$x^F1rp?z(8` zZsI5OkP-~{5F_WSuDhTF)e7>=i6f~o`<8;d=s;GrcKUdFL(9 zNynl3eSa9DI?0xigwn;JliBVK#rA+%bdnHy=vfE6SPLWqaUB??^EVo6OoNiOn3 zLRTjE#Ar)FKd49wToj293J`S$=UnR6DS3ko^NDe5dDA9xHu!LoCm@~mj+r)(<;Z1`ecvqArvc!aOojI4tk;jj z$<(e?1};5)Ql&hG(n#Q{}y3rl5Cs=;c0q;^2 zwKZRlz4-Jr$9dbZL<0|&kaFY`k++}ojyqT19o(+8=vNw0%?Su*dzAV9&}Uyie3xY= zF8;QCt`%MrlRHx2?iY*&%?4wPt0zEAbywQ>3RF8x|?*tIaE>)*5ll&n{ycj%=%t#qZlf`7qS3t;{yJI+eLI zIQkbF;o==BBn}s{QXk_%4lCas)M|LIby_Z&%NStQDYQ1Ov5TYALaguW#YwcWS#G2~ zOczWVV=to-6#2lu#)i^byy099O%@`P<#O~PdUy7>`G(n9clynp2bUA{e7E!*cmBkSo*5pQ+OU49{In!WX z=tXl=C~L4f!(3i$fMQ(Av<6+ozs5qe=Dm|27FGAx512kX4D)sRh>K=9u=OVv5J|*} z)iiFC)z}AcQf$MqEJ57LZvR%JXV@Q+l>F?p?iYpkM7xC81>%PzDFk8Y zj&4VEZ_X#+#dB%7fR5Os2%1AgP=gzJ(xq*D8H1sbRF5;oGvILl!Z|yAD1>urkg)Li z*iFPN=!%wdz8b}k!HQ&C=>OK7+}?%1U1TGoc8**)oe>?NY-g!Y%%;x{DgYHF-D0#9 z=Y2g4$SZa7GJy7QxL+~zX>f)!%82e`n3TC$oKn-sbVWsMl2kcu(6)MW?aCd@LeahX zY_FNE94UBqTbN{SKQDDzGi_VlwO~WUBf<`yh_a8{?SirX^1-5wj8L+lY0zN(4fFF{ zGjyf;`_0fboe8$SM>qNJ_WODk=Q}bf#LqB)dup#>5}6SV-DIggn>-kM_?W}yw7u!xbALeCW!&M!9OX(3=S|N%6+K;Fx27Lkeh+oa ztr%!(S}*7?)SdIN-4%uSoH;9}JukK3!%pPoOu$gD60;-M;RZ+3_EP?F8Hb1%^0PH? z!k3DD;OJw;xSFk#nMnb zy#Rz~@d7%v0X8~BH(F@eD(eqZo5x?;okZjx5ys~8wM!4@JuA z{pvX&z`k=EW{KbO_Hz9#$b10RDFpIsd7faQAB`V?~ckCF+ zErIz==;K0(iPRVkXjme7)R%;kO(MGcNibidY9c=;S#Xw|JyYe$ znuD{AYCok3Q!!LY=>*f`1KoOnK!COh8dPPfaTed*R*vO%nHkCE&M%fB&phsedQXv- z(~d@_9V?m`rRK1R6D8)19yl42-*p1839b?v`OEveA$9+cVOM<57x5IP?>FznBNlfT z*#)(d-Q$V8JBqNd<1chIFx^rY+}Ywq3~F9yLIuU=xKda@M0JV`P6CLeLJ=xqMr>$e z+Gdn?3W@^tiYW_yLCDoIsCXQUu1tPL4LGoihBK8piwS?)>is&lGcM`^DJ`94&V#F#J_QIctP`&lA~r)+gvNJ6 zBd8KtH`5FKxV3=UDj(=4LwqI=rqm5uUmx5#^X~~YHN})`wL|Vi1uVXlQobnHs2}B* zpM*{|z$26eNo#d^ZdQ~oKS9V@IALsgl_Fu%uaMsG61F^cp;YDL<$ETA;|n^0vnX?j zVX5uf#GocGfM+*oY>;4tt*%@kR-Xw9<7T7h(ofj?iwL9un% z?Eu4@$=|+^3IX_~V)?!*1U4CuHaitX=tR(TQ;qh>O9Z!h}Pi|RaD zy9vjtGRZU=;r!Q=BU9u%@+%l|k=U2_y9RJ z!Iet<=-{t-kPF%og<@apY9Upa-&`OrEuGl|Z`1vqL(gjITp1tF$PCNX&K5m?x#BhU zT~|Qu9acd7)(*l3N2(ESry`Wk;FPr4XDQ`t1TUHYNha_DNnFj6pgm}`KAg;)ZoPac zTV_q}GW8AiPp4G5wXm^1&RpkVuR=68fvHe$jm}~Gy5josmQ3i-t@6*k;ZE;Tt@>4RrF_ZvKC}%w5@v}{CSkP{ z=?Y9ykqDXqoB{iU#G;Y;NH7;BMY#yr}ykcuaxi-K9{K)yAMW>b6wc06gaN% zm)A64J!0&lBH0zAVa_?E_nn87nu6yJTr$df@zK?))qPZRbsVdD(2xrcgkCS|fq{Qi zu;EeiT;+75=x8v8v+`#=6TO(Y6wjiAwg=o}Cx?;tC5@-vPeyAcNcv6s>U1OH zimfA2bWxQ}<$5PRm-qLFh=`|+;Pm(NW^0fV=Du~%XO<9t;V=JW96>6QXXYzws>D}5 zUgUv6fow7Y&I`Pg#-N^S46Vr?;btqSQ zxLZ0d+z-0Vi2UJ@%mC&4+>gr-e~q3!5X!4ydWn(gt}>g!XrnY5smqaNS4^HrN6P{b}2A*2*Hs+ozmCyEQ?D~EM>RvMp zZ4z7H=2l+3x%MbxsxKt1VUS_7GuGqT`ETN>`ETQ!(+?=vdwqR$xmz0333}>-CFCuh-$uCj0)f8#MRSi7&Hr0i5=6dK6>8^G7RDzVj9BPx^ z>%%GMetd6lfw$W=L+^w#tSNBgr31UrulXQ+*rhoRoIH+vPx#^vb=MRtaxr7}cewH1 zPtYk|^1@}3mwKr>OuVhafIjht(AC@_GHt&+X|P)1uPgxCJ%&j!dW;$~3kTo)5<}u+ zFs}EVXk+uhSF0W?fq)AUQP)FXwO>Y~5AC?xyz^B&x$tc~@%>!nRylumVR10%g2i?{ zjE;k$y_Mm|)XpRmri>W~Z_Fqhe0>epjqM0sv#}Uozn-+`KkR3fVO52GW7;%qSokiU zTJ#Q{|NKSVGm4D(Qi!gopK1>@p1|8enh`xcf`0$h- z(Y1F^Yw+uXq%d0Ika1`c-rkpk{;iYIrhcLX;|R2F+z=MMTFdmX7^^V<;7YV=I|038 z^HJt>g)YIba#g?^@L>KPFJ2we1BGR!p~vlxVpy7w!2^vB}9HP7RRey#B0qAyWl zwOz9NUeU|^I?C4Lp0#`M-2IQ^3cpy%B~rb>n4j2V^dEI9K=urly{i~RL z94p0bx80AJtRJw~VukU*Za7fcLgjlJ@I(Acs#f2DDJ&>5YDB2iXKmo zMei5yMAw=3!k0J#U82;r1#0h|x*d+R%OiERGy;#09gQD0ua=GrA8J;Ip2K~wzpy7! z4Ws%YG)##VQ^(zkrCV1^Fjd3IPyr_#bw}Zb$ZU*#>o)Y9H4$B(zXP)l8ga+KBviWp z^UfT#$G5!&I9uV6&}T-_S%M0AJUSRaK}9i~_A&{FPPA>;1!a|$D37(EQKB9>t4rVr zCZKhvIF!ocb?U_+R`N?$p-wg`!sAxdYU1{kqtqc8A)rTu$ryS}F&J$)lm0ahHogfj zjU9`xmd}GnGE~hDJg1`^g|d8qzCZUr`}ILmR(4CE0$cX{fDbl&jn`LvhA(Ah0qmH& zelyCvvZBbm7>$vrNc#v~m!8D3*Y@C!UW0IB^0j#7wy*G7?{0YU%R4dGa68ifJ_|Q= z?1K?QXJPlGet7Vmr*Y6FTXgb9sN0}5M)n+rTe}az-Q9a*-NE^oT{H|wW;~2R?FZtE zsc)lc**d(xpCOC-dYLSevYut~8CpTDop<8RR<8KZj)#TXg(#x||wbw-@a{}%ggjZxom4r!*EluE5R2BRwJ(7RXC7x0%k)5BJ4k6p3{Ov ziwv28C$~5~XL?NJ)JW;m| zZj)g~^casd|M(8gvOmVuCEH;&n`PG3{TQuyaNKy<)3%_X*n|c#@n|TEW#ittXw~fr z432WaEA6qEBN6$Ny~rvXs0(85|M3Xk`OA~Ix#P8%^6;04-aiZ9Ml?Wh&LO-SS&l!g zc>}HbzKZup_QULvvw;0mF~@NfFK=9mCnvs*N3XjT|GISozM20N4%nhDZW!nch?JNU zDa%-$8lWzy3TH$kq9UxYnJw^F9L0NUvv7UfDa<{55GL8Mu*oVFkdQw4!S7M^_h-@c zH-^dIc0+Rc9XcUbT_j_Yh3~QBV0JoAlocURb26#C#w1~|T;6GK~XR zdvF_IZh(3=8;T3IWBQVXaLUSH2zqfi?*tCypMg)Nn| zE{ZF2u`lZ|&XktHByF&oo!E4AKThYQU|)U~ju+?13RDl#774;7DR}DpZ&0Uwe@sh` z$0J`YgHC!{?fuikjjYl_Tq&=OiiknZ-mfrgXF6=MkZSr#eSVY_okB|13FKA<5TW-X z?c_F`kEvP>M!PQkX!bhv}oP$+OZ&*5;^A!L_SqO9~Rj+Rzj7*_8u$KirP=%n_gWoBaS z;f>g5cOz2jb&1r~;!Ci)9XER|p#v@L~ReE+C?wkJw%KUMm zP#j?@$Jd*FL{V%*G`6XWX3yj0g>N9$9t>TeqW0>Qm*nGQ{vmvsnFg0neVK;^8D~%9 z=%M9USymyhGoY+8TWVrD&Q&<12AgHP1z33`1G$+gICj1Wm1Q|NQd|aWb$hIE;7HMF zY}>yK`~A^q921SW$RHN3c?X}J$VKBQGl~mOVCmi*c+4s|Nn0d50F$B^eqK%CVQI$zaOaRz&HPar+7pn4b}b>~NT zdgFE(CaU^o-Rj6=6r$Y)Sa^6VvRppt4+(6Ne{za)B)gnJks}x7UIR+Yv$6MdCi1I1 zp*^1A?v@NC0pWQ1YV0mGplyQ&@Mf>YjOD9P;Wr`u{3-0nI}3NwVSIhE5KW?+pr~Lm zURr+$5fQP-J+T=ZN{nb4ZIjUc89vD7`v~bJTRtqS!5c5_&=%`gY?~ z{!w{68&y6(^2<+R=i%+xdESjEgCFOl-G}mWkX3jNdrlm{k&5!rP1eILR@b5YS8hli zrglTCdnT&gvp?Upsm>z^-?cqN?a?%vLk&~6-BI^a3ZM2M3tt|$RG-VJ&KGp669j5< zt-SFfWJ^F@map#6AAYR%xYSj0UKnK_)Ph!5O8cO$l#)Oddd>%vyphy}Lh2i2tTh+k z2=xsD>ii59iUTs;+ViRoiMMHUJ;o(w$cmJMSW8U@s$2W0JI064gHY#bs^Kqbzd8>> z#_gBw1dD8WDFJDdTZS>o8_cK=NZ(wXp894Tbv0b=ai}Z&eA0HSJg2%}^|jmQgHeW8 zr#poDspeuJd4YOk{`8xDh=}O-5w2_DdQq6>sCiX4N0-M{4fMI;kv7^?{Z@5T z=0Uaj!aND}jWq5+xIL<-U9LT9zSLoNbz^MBAk(%O4WW5b-$0{wTwVM|7IhI#xYir> z>Y^AKUvQ|#bGW8FHd#RjQWP53)EqBRih1Rd4+R= zq^Hol{+!Atk`dJOC2yFe4f^VNGRXhcdJ^gzl@VllSY+J^T~i}{5XuIj!BlQgho!4W zsZ@^xdW&SB+E0XYl3s5LEjP7psSAYF@Zn*+G8waMgh(!tcGu1$zvhPI|64)w|99$* z;PM+n7XlFx5fS~7{MWwO=8r<{{bPtEA|fKXJO)W3A|fKv2b0<~gx~k`b0mp~h=_=O%3#zZ^LQR~|M*~1 r(Dsvi0}&As5fS|obwRen;l}?05;BQBh64b>00000NkvXXu0mjfIV>rq diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index 8600d4f35..f156c1e60 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Quick tour of the Power Query M formula language" title: "Quick tour" -ms.date: 8/2/2022 +ms.date: 7/6/2023 ms.topic: conceptual ms.custom: intro-internal --- @@ -12,11 +12,11 @@ This quick tour describes creating Power Query M formula language queries. > [!NOTE] > M is a case-sensitive language. -## Create a query with Query Editor +## Create a query with the Power Query editor -To create an advanced query, you use the **Query Editor**. A mashup query is composed of variables, expressions, and values encapsulated by a **let** expression. A variable can contain spaces by using the # identifier with the name in quotes as in `#"Variable name"`. +To create an advanced query, you use the [Power Query advanced editor](/power-query/power-query-ui#the-advanced-editor). A mashup query is composed of variables, expressions, and values encapsulated by a `let` expression. A variable can contain spaces by using the # identifier with the name in quotes as in `#"Variable name"`. -A **let** expression follows this structure: +A `let` expression follows this structure: ```powerquery-m let @@ -26,23 +26,23 @@ in Variablename ``` -To create an M query in the **Query Editor**, you follow this basic process: +To create an M query in the advanced editor, you follow this basic process: -1. Create a series of query formula steps that start with the **let** statement. Each step is defined by a step variable name. An M **variable** can include spaces by using the # character as `#"Step Name"`. A formula step can be a custom formula. Note that the Power Query Formula Language is case sensitive. +1. Create a series of query formula steps that start with the `let` statement. Each step is defined by a step variable name. An M _variable_ can include spaces by using the # character as `#"Step Name"`. A formula step can be a custom formula. Note that the Power Query formula language is case sensitive. 2. Each query formula step builds upon a previous step by referring to a step by its variable name. -3. Output a query formula step using the **in** statement. Generally, the last query step is used as the in final data set result. +3. Output a query formula step using the `in` statement. Generally, the last query step is used as the in final data set result. To learn more about expressions and values, go to [Expressions, values, and let expression](expressions-values-and-let-expression.md). ## Simple Power Query M formula steps -Let's assume you created the following transform in the **Query Editor** to convert product names to proper case. - -![Intro to M Step 1](media/mstep1.png "Intro to M Step 1") +Let's assume you created the following transform in the Power Query editor to convert product names to the proper case, in this case, to all initial capitalization. + +:::image type="content" source="media/mstep1.png" alt-text="Screenshot of the Power Query editor showing the results of converting the Item column entries to intial capitalization."::: -You have a table that looks like this: +To begin with, you have a table that looks like this: |OrderID|CustomerID|Item|Price| |-----------|--------------|--------|---------| @@ -50,7 +50,7 @@ You have a table that looks like this: |2|1|1 lb. worms|5| |3|2|fishing net|25| -And, you want to capitalize each word in the Item column to produce the following table: +And, you want to capitalize the first letter in each word in the Item column to produce the following table: |OrderID|CustomerID|Item|Price| |-----------|--------------|--------|---------| @@ -58,11 +58,11 @@ And, you want to capitalize each word in the Item column to produce the followin |2|1|1 Lb. Worms|5| |3|2|Fishing Net|25| -The M formula steps to project the original table into the results table look like this: - -![Advanced Editor](media/madvancededitor.png "Advanced Editor") +The M formula steps to project the original table into the results table look like this in the Power Query advanced editor: + +:::image type="content" source="media/madvancededitor.png" alt-text="Screenshot of the Power Query advanced editor with all of the M formula steps to produce the table and capitalize initial letters."::: -Here's the code you can paste into the Power Query editor: +Here's the code you can paste into the Power Query advanced editor: ```powerquery-m let Orders = Table.FromRecords({ @@ -75,15 +75,15 @@ in ``` Let’s review each formula step. - -1. **Orders** – Create a \[Table](#_Table_value) with data for Orders. - -2. \#**"Capitalized Each Word"** – To capitalize each word, you use [Table.TransformColumns](table-transformcolumns.md). - -3. **in #"Capitalized Each Word"** – Output the table with each word capitalized. + +1. **Orders**: Create a table with data for Orders. + +2. **#"Capitalized Each Word"**: To capitalize each word, you use [Table.TransformColumns](table-transformcolumns.md). + +3. **in #"Capitalized Each Word"**: Output the table with the first letter of each word capitalized. ## See also [Expressions, values, and let expression](expressions-values-and-let-expression.md) [Operators](operators.md) -[Type conversion](type-conversion.md) +[Type conversion](type-conversion.md) From 852c52f53e65239f360f66bcf8afcfa75774bc95 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 19 Jul 2023 13:55:57 -0700 Subject: [PATCH 296/934] Adding new Understanding ORDERBY article. --- .../best-practices/dax-understand-orderby.md | 492 +++++++++++++++++- .../offset-by-calendar-year.png | Bin 0 -> 85097 bytes query-languages/dax/toc.yml | 2 + 3 files changed, 491 insertions(+), 3 deletions(-) create mode 100644 query-languages/dax/best-practices/media/dax-understand-orderby/offset-by-calendar-year.png diff --git a/query-languages/dax/best-practices/dax-understand-orderby.md b/query-languages/dax/best-practices/dax-understand-orderby.md index d717613d5..094b8cf8e 100644 --- a/query-languages/dax/best-practices/dax-understand-orderby.md +++ b/query-languages/dax/best-practices/dax-understand-orderby.md @@ -13,10 +13,496 @@ recommendations: false # Understanding ORDERBY, PARTITIONBY, and MATCHBY functions -The ORDERBY, PARTITIONBY and MATCHBY functions in DAX are special functions that can only be used in the DAX Window functions: INDEX, OFFSET, WINDOW, RANK, ROWNUMBER. +The [ORDERBY](../orderby-function-dax.md), [PARTITIONBY](../partitionby-function-dax.md), and [MATCHBY](../matchby-function-dax.md) functions in DAX are special functions that can only be used along with DAX Window functions: [INDEX](../index-function-dax.md), [OFFSET](../offset-function-dax.md), [WINDOW](../window-function-dax.md), [RANK](../rank-function-dax.md), [ROWNUMBER](../rownumber-function-dax.md). -Understanding ORDERBY, PARTITIONBY and MATCHBY is key to successfully using these Window functions. The examples below use OFFSET but are similarly applicable to the other Window functions. +Understanding ORDERBY, PARTITIONBY, and MATCHBY is critical to successfully using the Window functions. The examples provided here use OFFSET, but are similarly applicable to the other Window functions. -## See also +## Scenario + +Let’s start with an example that doesn't use Window functions at all. Shown below is a table that returns total sales, per color, per calendar year. There are multiple ways to define this table, but since we're interested in understanding what happens in DAX, we'll use a calculated table. Here's the table expression: + +```dax +BasicTable = +SUMMARIZECOLUMNS ( +DimProduct[Color], +DimDate[CalendarYear], +"CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) +) + +``` + +You'll see this calculated table expression uses [SUMMARIZECOLUMNS](../summarizecolumns-function-dax.md) to calculate the SUM of the SalesAmount column in the FactInternetSales table, by the Color column from the DimProduct table, and the CalendarYear column from the DimDate table. Here's The result: + +| Color | CalendarYear | CurrentYearSales | +|----------|--------------|------------------| +| "Black" | 2017 | 393885 | +| "Black" | 2018 | 1818835 | +| "Black" | 2019 | 3981638 | +| "Black" | 2020 | 2644054 | +| "Blue" | 2019 | 994448 | +| "Blue" | 2020 | 1284648 | +| "Multi" | 2019 | 48622 | +| "Multi" | 2020 | 57849 | +| "NA" | 2019 | 207822 | +| "NA" | 2020 | 227295 | +| "Red" | 2017 | 2961198 | +| "Red" | 2018 | 3686935 | +| "Red" | 2019 | 900175 | +| "Red" | 2020 | 176022 | +| "Silver" | 2017 | 326399 | +| "Silver" | 2018 | 750026 | +| "Silver" | 2019 | 2165176 | +| "Silver" | 2020 | 1871788 | +| "White" | 2019 | 2517 | +| "White" | 2020 | 2589 | +| "Yellow" | 2018 | 163071 | +| "Yellow" | 2019 | 2072083 | +| "Yellow" | 2020 | 2621602 | + +Now, let’s imagine we're trying to solve the business question of calculating the difference in sales, year-over-year for each color. Effectively, we need a way to find sales for the same color in the previous year and subtract that from the sales in the current year, in context. For example, for the combination [Red, 2019] we're looking for sales for [Red, 2018]. Once we have that, we can then subtract it from the current sales and return the required value. + +### Using OFFSET + +OFFSET is perfect for the typical *compare with previous* types of calculations required to answer the business question described above, as it allows us to do a relative movement. Our first attempt might be: + +```dax +1stAttempt = +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) + ) +RETURN +ADDCOLUMNS( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS( + OFFSET( + -1, + vRelation + ), + [CurrentYearSales] + ) +) + +``` + +A lot is happening with this expression. We used [ADDCOLUMNS](../addcolumns-function-dax.md) to expand the table from before with a column called PreviousColorSales. The contents of that column are set to the CurrentYearSales, which is SUM(FactInternetSales[SalesAmount]), for the previous Color (retrieved using OFFSET). + +The result is: + +| Color | CalendarYear | CurrentYearSales | PreviousColorSales | +|----------|--------------|------------------|--------------------| +| "Black" | 2017 | 393885 | | +| "Black" | 2018 | 1818835 | 393885 | +| "Black" | 2019 | 3981638 | 1818835 | +| "Black" | 2020 | 2644054 | 3981638 | +| "Blue" | 2019 | 994448 | 2644054 | +| "Blue" | 2020 | 1284648 | 994448 | +| "Multi" | 2019 | 48622 | 1284648 | +| "Multi" | 2020 | 57849 | 48622 | +| "NA" | 2019 | 207822 | 57849 | +| "NA" | 2020 | 227295 | 207822 | +| "Red" | 2017 | 2961198 | 227295 | +| "Red" | 2018 | 3686935 | 2961198 | +| "Red" | 2019 | 900175 | 3686935 | +| "Red" | 2020 | 176022 | 900175 | +| "Silver" | 2017 | 326399 | 176022 | +| "Silver" | 2018 | 750026 | 326399 | +| "Silver" | 2019 | 2165176 | 750026 | +| "Silver" | 2020 | 1871788 | 2165176 | +| "White" | 2019 | 2517 | 1871788 | +| "White" | 2020 | 2589 | 2517 | +| "Yellow" | 2018 | 163071 | 2589 | +| "Yellow" | 2019 | 2072083 | 163071 | +| "Yellow" | 2020 | 2621602 | 2072083 | + +This is one step closer to our goal, but if we look closely it doesn't match exactly what we're after. For example, for [Silver, 2017] the PreviousColorSales is set to [Red, 2020]. + +### Adding ORDERBY + +That definition above is equivalent to: + +```dax +1stAttemptWithORDERBY = +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) + ) +RETURN +ADDCOLUMNS( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS( + OFFSET( + -1, + vRelation, + ORDERBY([Color], ASC, [CalendarYear], ASC, [CurrentYearSales], ASC) + ), + [CurrentYearSales] + ) +) + +``` + +In this case, the call to OFFSET uses ORDERBY to order the table by Color and CalendarYear in ascending order, which determines what is considered the previous row that's returned. + +The reason these two results are equivalent is because ORDERBY automatically contains all columns from the relation that aren't in PARTITIONBY. Since PARTITIONBY wasn't specified, ORDERBY is set to Color, CalendarYear, and CurrentYearSales. However, since the Color and CalendarYear pairs in the relation are unique, adding CurrentYearSales doesn't change the result. In fact, even if we were to only specify Color in ORDERBY, the results are the same since CalendarYear would be automatically added. This is because the function will add as many columns as needed to ORDERBY in order to ensure each row can be uniquely identified by the ORDERBY and PARTITIONBY columns: + +```dax +1stAttemptWithORDERBY = +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) + ) +RETURN +ADDCOLUMNS( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS( + OFFSET( + -1, + vRelation, +ORDERBY([Color]) + ), + [CurrentYearSales] + ) +) + +``` + +### Adding PARTITIONBY + +Now, to *almost* get the result we're after we can use PARTITIONBY, as shown in the following calculated table expression: + +```dax +UsingPARTITIONBY = +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) + ) +RETURN +ADDCOLUMNS( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS( + OFFSET( + -1, + vRelation, + ORDERBY([CalendarYear]), + PARTITIONBY([Color]) + ), + [CurrentYearSales] + ) +) + +``` + +Notice that specifying ORDERBY is optional here because ORDERBY automatically contains all the columns from the relation that aren't specified in PARTITIONBY. So, the following expression returns the same results because ORDERBY is set to CalendarYear and CurrentYearSales automatically: + +```dax +UsingPARTITIONBYWithoutORDERBY = +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) + ) +RETURN +ADDCOLUMNS( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS( + OFFSET( + -1, + vRelation, + PARTITIONBY([Color]) + ), + [CurrentYearSales] + ) +) + + +``` + +> [!NOTE] +> While ORDERBY is set to CalendarYear and CurrentYearSales automatically, no guarantee is given as to what order in which they'll be added. If CurrentYearSales is added before CalendarYear, the resulting order isn't inline with what's expected. **Be explicit when specifying ORDERBY and PARTITIONBY to avoid confusion and unexpected results**. + +Both expressions return the result we're after: + +| Color | CalendarYear | CurrentYearSales | PreviousYearSalesForSameColor | +|----------|--------------|------------------|-------------------------------| +| "Black" | 2017 | 393885 | | +| "Black" | 2018 | 1818835 | 393885 | +| "Black" | 2019 | 3981638 | 1818835 | +| "Black" | 2020 | 2644054 | 3981638 | +| "Blue" | 2019 | 994448 | | +| "Blue" | 2020 | 1284648 | 994448 | +| "Multi" | 2019 | 48622 | | +| "Multi" | 2020 | 57849 | 48622 | +| "NA" | 2019 | 207822 | | +| "NA" | 2020 | 227295 | 207822 | +| "Red" | 2017 | 2961198 | | +| "Red" | 2018 | 3686935 | 2961198 | +| "Red" | 2019 | 900175 | 3686935 | +| "Red" | 2020 | 176022 | 900175 | +| "Silver" | 2017 | 326399 | | +| "Silver" | 2018 | 750026 | 326399 | +| "Silver" | 2019 | 2165176 | 750026 | +| "Silver" | 2020 | 1871788 | 2165176 | +| "White" | 2019 | 2517 | | +| "White" | 2020 | 2589 | 2517 | +| "Yellow" | 2018 | 163071 | | +| "Yellow" | 2019 | 2072083 | 163071 | +| "Yellow" | 2020 | 2621602 | 2072083 | + +As you see in this table, the PreviousYearSalesForSameColor column shows the sales for the previous year for the same color. For [Red, 2020], it returns the sales for [Red, 2019], and so on. If there's no previous year, for example in the case of [Red,2017], no value is returned. + +You can think of PARTITIONBY as a way to divide the table into parts in which to execute the OFFSET calculation. In the example above, the table is divided into as many parts as there are colors, one for each color. Then, within each part, the OFFSET is calculated, sorted by CalendarYear. + +Visually what's happening is this: +:::image type="content" source="media/dax-understand-orderby/offset-by-calendar-year.png" border="false" alt-text="Table showing OFFSET by Calendar Year"::: + +First, the call to PARTITIONBY results in the table getting divided into parts, one for each Color. This is represented by the light blue boxes in the table image. Next, ORDERBY makes sure that each part is sorted by CalendarYear (represented by the orange arrows). Finally, within each sorted part, for each row, OFFSET finds the row above it and returns that value in the PreviousYearSalesForSameColor column. Since for every first row in each part there is no previous row in that same part, the result in that row for the PreviousYearSalesForSameColor column is empty. + +To achieve the final result, we simply have to subtract CurrentYearSales from the previous year sales for the same color returned by the call to OFFSET. Since we're not interested in showing the previous year sales for the same color, but only in the current year sales and the year over year difference. Here's the final calculated table expression: + +```dax +FinalResult = +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) + ) +RETURN +ADDCOLUMNS( + vRelation, + "YoYSalesForSameColor", + [CurrentYearSales] - + SELECTCOLUMNS( + OFFSET( + -1, + vRelation, + ORDERBY([CalendarYear]), + PARTITIONBY([Color]) + ), + [CurrentYearSales] + ) +) + +``` + +And here's the result of that expression: + +| Color | CalendarYear | CurrentYearSales | YoYSalesForSameColor | +|----------|--------------|------------------|----------------------| +| "Black" | 2017 | 393885 | 393885 | +| "Black" | 2018 | 1818835 | 1424950 | +| "Black" | 2019 | 3981638 | 2162803 | +| "Black" | 2020 | 2644054 | -1337584 | +| "Blue" | 2019 | 994448 | 994448 | +| "Blue" | 2020 | 1284648 | 290200 | +| "Multi" | 2019 | 48622 | 48622 | +| "Multi" | 2020 | 57849 | 9227 | +| "NA" | 2019 | 207822 | 207822 | +| "NA" | 2020 | 227295 | 19473 | +| "Red" | 2017 | 2961198 | 2961198 | +| "Red" | 2018 | 3686935 | 725737 | +| "Red" | 2019 | 900175 | -2786760 | +| "Red" | 2020 | 176022 | -724153 | +| "Silver" | 2017 | 326399 | 326399 | +| "Silver" | 2018 | 750026 | 423627 | +| "Silver" | 2019 | 2165176 | 1415150 | +| "Silver" | 2020 | 1871788 | -293388 | +| "White" | 2019 | 2517 | 2517 | +| "White" | 2020 | 2589 | 72 | +| "Yellow" | 2018 | 163071 | 163071 | +| "Yellow" | 2019 | 2072083 | 1909012 | +| "Yellow" | 2020 | 2621602 | 549519 | + +### Using MATCHBY + +You might have noticed we didn't specify MATCHBY at all. In this case, it isn't necessary. The columns in ORDERBY and PARTITIONBY (for as far as they were specified in the examples above) are sufficient to uniquely identify each row. Since we didn't specify MATCHBY, the columns specified in ORDERBY and PARTITIONBY are used to uniquely identify each row so they can be compared to enable OFFSET to give a meaningful result. If the columns in ORDERBY and PARTITIONBY can’t uniquely identify each row, additional columns can be added to the ORDERBY clause if those extra columns allow each row to be uniquely identified. If that's not possible, an error is returned. In this last case, specifying MATCHBY may help to resolve the error. + +If MATCHBY is specified, the columns in MATCHBY and PARTITIONBY are used to uniquely identify each row. If that's not possible, an error is returned. + +Even if MATCHBY isn't required, consider explicitly specifying MATCHBY to avoid any confusion. + +Continuing from the examples above, here's the last expression: + +```dax +FinalResult = +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) + ) +RETURN +ADDCOLUMNS( + vRelation, + "YoYSalesForSameColor", + [CurrentYearSales] - + SELECTCOLUMNS( + OFFSET( + -1, + vRelation, + ORDERBY([CalendarYear]), + PARTITIONBY([Color]) + ), + [CurrentYearSales] + ) +) + +``` + +If we want to be explicit about how rows should be uniquely identified, we can specify MATCHBY as shown in the following equivalent expression: + +```dax +FinalResultWithExplicitMATCHBYOnColorAndCalendarYear = +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) + ) +RETURN +ADDCOLUMNS( + vRelation, + "YoYSalesForSameColor", + [CurrentYearSales] - + SELECTCOLUMNS( + OFFSET( + -1, + vRelation, + ORDERBY([CalendarYear]), + PARTITIONBY([Color]), + MATCHBY([Color], [CalendarYear]) + ), + [CurrentYearSales] + ) +) + +``` + +Since MATCHBY is specified, both the columns specified in MATCHBY as well as in PARTITIONBY are used to uniquely identify rows. Since Color is specified in both MATCHBY and PARTITIONBY, the following expression is equivalent to the previous expression: + +```dax +FinalResultWithExplicitMATCHBYOnCalendarYear = +VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) + ) +RETURN +ADDCOLUMNS( + vRelation, + "YoYSalesForSameColor", + [CurrentYearSales] - + SELECTCOLUMNS( + OFFSET( + -1, + vRelation, + ORDERBY([CalendarYear]), + PARTITIONBY([Color]), + MATCHBY([CalendarYear]) + ), + [CurrentYearSales] + ) +) + +``` + +Since specifying MATCHBY isn't necessary in the examples we've looked at so far, let’s look at a slightly different example that does require MATCHBY. In this case, we have a list of order lines. Each row represents an order line for an order. An order can have multiple order lines and order line 1 appears on many orders. In addition, for each order line we have a ProductKey and a SalesAmount. A sample of the relevant columns on the table looks like this: + +| SalesOrderNumber | SalesOrderLineNumber | ProductKey | SalesAmount | +|------------------|----------------------|------------|-------------| +| SO51900 | 1 | 528 | 4.99 | +| SO51948 | 1 | 528 | 5.99 | +| SO52043 | 1 | 528 | 4.99 | +| SO52045 | 1 | 528 | 4.99 | +| SO52094 | 1 | 528 | 4.99 | +| SO52175 | 1 | 528 | 4.99 | +| SO52190 | 1 | 528 | 4.99 | +| SO52232 | 1 | 528 | 4.99 | +| SO52234 | 1 | 528 | 4.99 | +| SO52234 | 2 | 529 | 3.99 | + +Notice SalesOrderNumber and SalesOrderLineNumber are both required to uniquely identify rows. + +For each order, we want to return the previous sales amount of the same product (represented by the ProductKey) ordered by the SalesAmount in descending order. The following expression won't work because there are potentially multiple rows in vRelation as it's passed into OFFSET: + +```dax +ThisExpressionFailsBecauseMATCHBYIsMissing = + +ADDCOLUMNS ( + FactInternetSales, + "Previous Sales Amount", + SELECTCOLUMNS ( + OFFSET ( + -1, + FactInternetSales, + ORDERBY ( FactInternetSales[SalesAmount], DESC ), + PARTITIONBY ( FactInternetSales[ProductKey] ) + ), + FactInternetSales[SalesAmount] + ) +) + +``` + +This expression returns an error: "OFFSET's Relation parameter may have duplicate rows, which isn't allowed." + +In order to make this expression work, MATCHBY must be specified and must include all columns that uniquely define a row. MATCHBY is required here because the relation, FactInternetSales, doesn't contain any explicit keys or unique columns. However, the columns SalesOrderNumber and SalesOrderLineNumber together form a *composite key*, where their existence together is unique in the relation and can therefore uniquely identify each row. Just specifying SalesOrderNumber or SalesOrderLineNumber isn't enough as both columns contain repeating values. The following expression solves the problem: + +```dax +ThisExpressionWorksBecauseOfMATCHBY = + +ADDCOLUMNS ( + FactInternetSales, + "Previous Sales Amount", + SELECTCOLUMNS ( + OFFSET ( + -1, + FactInternetSales, + ORDERBY ( FactInternetSales[SalesAmount], DESC ), + PARTITIONBY ( FactInternetSales[ProductKey] ), + MATCHBY( FactInternetSales[SalesOrderNumber], +FactInternetSales[SalesOrderLineNumber] ) + ), + FactInternetSales[SalesAmount] + ) +) + +``` + +And this expression does indeed return the results we're after: + +| SalesOrderNumber | SalesOrderLineNumber | ProductKey | SalesAmount | Previous Sales Amount | +|---------------------|----------------------|------------|-------------|-----------------------| +| SO51900 | 1 | 528 | 5.99 | | +| SO51948 | 1 | 528 | 4.99 | 5.99 | +| SO52043 | 1 | 528 | 4.99 | 4.99 | +| SO52045 | 1 | 528 | 4.99 | 4.99 | +| SO52094 | 1 | 528 | 4.99 | 4.99 | +| SO52175 | 1 | 528 | 4.99 | 4.99 | +| SO52190 | 1 | 528 | 4.99 | 4.99 | +| SO52232 | 1 | 528 | 4.99 | 4.99 | +| SO52234 | 1 | 528 | 4.99 | 4.99 | +| SO52234 | 2 | 529 | 3.99 | | + +## Summary + +As shown in these examples, MATCHBY isn't always required. But for many different scenarios, it's an important function to understand when using DAX's Window functions. + +## See also +[ORDERBY](../orderby-function-dax.md) +[PARTITIONBY](../partitionby-function-dax.md) +[MATCHBY](../matchby-function-dax.md) +[INDEX](../index-function-dax.md) +[OFFSET](../offset-function-dax.md) +[WINDOW](../window-function-dax.md) +[RANK](../rank-function-dax.md) +[ROWNUMBER](../rownumber-function-dax.md) diff --git a/query-languages/dax/best-practices/media/dax-understand-orderby/offset-by-calendar-year.png b/query-languages/dax/best-practices/media/dax-understand-orderby/offset-by-calendar-year.png new file mode 100644 index 0000000000000000000000000000000000000000..95734ff8f9ac1293ff35589c4511d862197a609e GIT binary patch literal 85097 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 JMe270{|5?%v?c%m literal 0 HcmV?d00001 diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 764e24559..d36f319fb 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -14,6 +14,8 @@ href: dax-sample-model.md - name: Best practices items: + - name: "Understanding ORDERBY, PARTITIONBY, and MATCHBY functions" + href: best-practices/dax-understand-orderby.md - name: "Appropriate use of error functions" href: best-practices/dax-error-functions.md - name: "Avoid converting BLANKs to values" From 2a59d6003925446b7905a082043482d4e7b7c21c Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 19 Jul 2023 14:10:50 -0700 Subject: [PATCH 297/934] Revision --- .../dax/best-practices/dax-understand-orderby.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/best-practices/dax-understand-orderby.md b/query-languages/dax/best-practices/dax-understand-orderby.md index 094b8cf8e..ae4bf62e1 100644 --- a/query-languages/dax/best-practices/dax-understand-orderby.md +++ b/query-languages/dax/best-practices/dax-understand-orderby.md @@ -258,11 +258,11 @@ Both expressions return the result we're after: | "Yellow" | 2019 | 2072083 | 163071 | | "Yellow" | 2020 | 2621602 | 2072083 | -As you see in this table, the PreviousYearSalesForSameColor column shows the sales for the previous year for the same color. For [Red, 2020], it returns the sales for [Red, 2019], and so on. If there's no previous year, for example in the case of [Red,2017], no value is returned. +As you see in this table, the PreviousYearSalesForSameColor column shows the sales for the previous year for the same color. For [Red, 2020], it returns the sales for [Red, 2019], and so on. If there's no previous year, for example in the case of [Red, 2017], no value is returned. You can think of PARTITIONBY as a way to divide the table into parts in which to execute the OFFSET calculation. In the example above, the table is divided into as many parts as there are colors, one for each color. Then, within each part, the OFFSET is calculated, sorted by CalendarYear. -Visually what's happening is this: +Visually, what's happening is this: :::image type="content" source="media/dax-understand-orderby/offset-by-calendar-year.png" border="false" alt-text="Table showing OFFSET by Calendar Year"::: @@ -327,9 +327,7 @@ And here's the result of that expression: You might have noticed we didn't specify MATCHBY at all. In this case, it isn't necessary. The columns in ORDERBY and PARTITIONBY (for as far as they were specified in the examples above) are sufficient to uniquely identify each row. Since we didn't specify MATCHBY, the columns specified in ORDERBY and PARTITIONBY are used to uniquely identify each row so they can be compared to enable OFFSET to give a meaningful result. If the columns in ORDERBY and PARTITIONBY can’t uniquely identify each row, additional columns can be added to the ORDERBY clause if those extra columns allow each row to be uniquely identified. If that's not possible, an error is returned. In this last case, specifying MATCHBY may help to resolve the error. -If MATCHBY is specified, the columns in MATCHBY and PARTITIONBY are used to uniquely identify each row. If that's not possible, an error is returned. - -Even if MATCHBY isn't required, consider explicitly specifying MATCHBY to avoid any confusion. +If MATCHBY is specified, the columns in MATCHBY and PARTITIONBY are used to uniquely identify each row. If that's not possible, an error is returned. Even if MATCHBY isn't required, consider explicitly specifying MATCHBY to avoid any confusion. Continuing from the examples above, here's the last expression: From 9bad4fb2a816ffc4f2765d2c5a2861ed428649ba Mon Sep 17 00:00:00 2001 From: minewiskan Date: Wed, 19 Jul 2023 14:50:05 -0700 Subject: [PATCH 298/934] Revisions --- .../best-practices/dax-understand-orderby.md | 392 +++++++++--------- 1 file changed, 195 insertions(+), 197 deletions(-) diff --git a/query-languages/dax/best-practices/dax-understand-orderby.md b/query-languages/dax/best-practices/dax-understand-orderby.md index ae4bf62e1..9a9a843a0 100644 --- a/query-languages/dax/best-practices/dax-understand-orderby.md +++ b/query-languages/dax/best-practices/dax-understand-orderby.md @@ -23,11 +23,11 @@ Let’s start with an example that doesn't use Window functions at all. Shown be ```dax BasicTable = -SUMMARIZECOLUMNS ( -DimProduct[Color], -DimDate[CalendarYear], -"CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) -) + SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) ``` @@ -67,23 +67,23 @@ OFFSET is perfect for the typical *compare with previous* types of calculations ```dax 1stAttempt = -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimDate[CalendarYear], - "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) - ) -RETURN -ADDCOLUMNS( - vRelation, - "PreviousColorSales", - SELECTCOLUMNS( - OFFSET( - -1, - vRelation - ), - [CurrentYearSales] + VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) + RETURN + ADDCOLUMNS ( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS ( + OFFSET ( + -1, + vRelation + ), + [CurrentYearSales] + ) ) -) ``` @@ -125,24 +125,24 @@ That definition above is equivalent to: ```dax 1stAttemptWithORDERBY = -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimDate[CalendarYear], - "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) - ) -RETURN -ADDCOLUMNS( - vRelation, - "PreviousColorSales", - SELECTCOLUMNS( - OFFSET( - -1, - vRelation, - ORDERBY([Color], ASC, [CalendarYear], ASC, [CurrentYearSales], ASC) - ), - [CurrentYearSales] + VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) + RETURN + ADDCOLUMNS ( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS ( + OFFSET ( + -1, + vRelation, + ORDERBY ([Color], ASC, [CalendarYear], ASC, [CurrentYearSales], ASC) + ), + [CurrentYearSales] + ) ) -) ``` @@ -152,24 +152,24 @@ The reason these two results are equivalent is because ORDERBY automatically con ```dax 1stAttemptWithORDERBY = -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimDate[CalendarYear], - "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) - ) -RETURN -ADDCOLUMNS( - vRelation, - "PreviousColorSales", - SELECTCOLUMNS( - OFFSET( - -1, - vRelation, -ORDERBY([Color]) - ), - [CurrentYearSales] + VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) + RETURN + ADDCOLUMNS( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS ( + OFFSET ( + -1, + vRelation, + ORDERBY ([Color]) + ), + [CurrentYearSales] + ) ) -) ``` @@ -179,25 +179,25 @@ Now, to *almost* get the result we're after we can use PARTITIONBY, as shown in ```dax UsingPARTITIONBY = -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimDate[CalendarYear], - "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) - ) -RETURN -ADDCOLUMNS( - vRelation, - "PreviousColorSales", - SELECTCOLUMNS( - OFFSET( - -1, - vRelation, - ORDERBY([CalendarYear]), - PARTITIONBY([Color]) - ), + VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) + RETURN + ADDCOLUMNS ( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS ( + OFFSET ( + -1, + vRelation, + ORDERBY ([CalendarYear]), + PARTITIONBY ([Color]) + ), [CurrentYearSales] + ) ) -) ``` @@ -205,24 +205,24 @@ Notice that specifying ORDERBY is optional here because ORDERBY automatically co ```dax UsingPARTITIONBYWithoutORDERBY = -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimDate[CalendarYear], - "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) - ) -RETURN -ADDCOLUMNS( - vRelation, - "PreviousColorSales", - SELECTCOLUMNS( - OFFSET( - -1, - vRelation, - PARTITIONBY([Color]) - ), - [CurrentYearSales] + VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) + RETURN + ADDCOLUMNS ( + vRelation, + "PreviousColorSales", + SELECTCOLUMNS ( + OFFSET ( + -1, + vRelation, + PARTITIONBY ([Color]) + ), + [CurrentYearSales] + ) ) -) ``` @@ -272,26 +272,26 @@ To achieve the final result, we simply have to subtract CurrentYearSales from th ```dax FinalResult = -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimDate[CalendarYear], - "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) - ) -RETURN -ADDCOLUMNS( - vRelation, - "YoYSalesForSameColor", - [CurrentYearSales] - - SELECTCOLUMNS( - OFFSET( - -1, - vRelation, - ORDERBY([CalendarYear]), - PARTITIONBY([Color]) - ), - [CurrentYearSales] + VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) + RETURN + ADDCOLUMNS ( + vRelation, + "YoYSalesForSameColor", + [CurrentYearSales] - + SELECTCOLUMNS ( + OFFSET ( + -1, + vRelation, + ORDERBY ([CalendarYear]), + PARTITIONBY ([Color]) + ), + [CurrentYearSales] + ) ) -) ``` @@ -333,26 +333,26 @@ Continuing from the examples above, here's the last expression: ```dax FinalResult = -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimDate[CalendarYear], - "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) - ) -RETURN -ADDCOLUMNS( - vRelation, - "YoYSalesForSameColor", - [CurrentYearSales] - - SELECTCOLUMNS( - OFFSET( - -1, - vRelation, - ORDERBY([CalendarYear]), - PARTITIONBY([Color]) - ), - [CurrentYearSales] + VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) + RETURN + ADDCOLUMNS ( + vRelation, + "YoYSalesForSameColor", + [CurrentYearSales] - + SELECTCOLUMNS ( + OFFSET ( + -1, + vRelation, + ORDERBY ([CalendarYear]), + PARTITIONBY ([Color]) + ), + [CurrentYearSales] + ) ) -) ``` @@ -360,27 +360,27 @@ If we want to be explicit about how rows should be uniquely identified, we can s ```dax FinalResultWithExplicitMATCHBYOnColorAndCalendarYear = -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimDate[CalendarYear], - "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) - ) -RETURN -ADDCOLUMNS( - vRelation, - "YoYSalesForSameColor", - [CurrentYearSales] - - SELECTCOLUMNS( - OFFSET( - -1, - vRelation, - ORDERBY([CalendarYear]), - PARTITIONBY([Color]), - MATCHBY([Color], [CalendarYear]) - ), - [CurrentYearSales] + VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) + RETURN + ADDCOLUMNS ( + vRelation, + "YoYSalesForSameColor", + [CurrentYearSales] - + SELECTCOLUMNS ( + OFFSET ( + -1, + vRelation, + ORDERBY ([CalendarYear]), + PARTITIONBY ([Color]), + MATCHBY ([Color], [CalendarYear]) + ), + [CurrentYearSales] + ) ) -) ``` @@ -388,27 +388,27 @@ Since MATCHBY is specified, both the columns specified in MATCHBY as well as in ```dax FinalResultWithExplicitMATCHBYOnCalendarYear = -VAR vRelation = SUMMARIZECOLUMNS ( - DimProduct[Color], - DimDate[CalendarYear], - "CurrentYearSales", ROUND( SUM( FactInternetSales[SalesAmount] ), 0 ) - ) -RETURN -ADDCOLUMNS( - vRelation, - "YoYSalesForSameColor", - [CurrentYearSales] - - SELECTCOLUMNS( - OFFSET( - -1, - vRelation, - ORDERBY([CalendarYear]), - PARTITIONBY([Color]), - MATCHBY([CalendarYear]) - ), - [CurrentYearSales] + VAR vRelation = SUMMARIZECOLUMNS ( + DimProduct[Color], + DimDate[CalendarYear], + "CurrentYearSales", ROUND ( SUM ( FactInternetSales[SalesAmount] ), 0 ) + ) + RETURN + ADDCOLUMNS ( + vRelation, + "YoYSalesForSameColor", + [CurrentYearSales] - + SELECTCOLUMNS ( + OFFSET ( + -1, + vRelation, + ORDERBY ([CalendarYear]), + PARTITIONBY ([Color]), + MATCHBY ([CalendarYear]) + ), + [CurrentYearSales] + ) ) -) ``` @@ -433,20 +433,19 @@ For each order, we want to return the previous sales amount of the same product ```dax ThisExpressionFailsBecauseMATCHBYIsMissing = - -ADDCOLUMNS ( - FactInternetSales, - "Previous Sales Amount", - SELECTCOLUMNS ( - OFFSET ( - -1, - FactInternetSales, - ORDERBY ( FactInternetSales[SalesAmount], DESC ), - PARTITIONBY ( FactInternetSales[ProductKey] ) - ), - FactInternetSales[SalesAmount] - ) -) + ADDCOLUMNS ( + FactInternetSales, + "Previous Sales Amount", + SELECTCOLUMNS ( + OFFSET ( + -1, + FactInternetSales, + ORDERBY ( FactInternetSales[SalesAmount], DESC ), + PARTITIONBY ( FactInternetSales[ProductKey] ) + ), + FactInternetSales[SalesAmount] + ) + ) ``` @@ -456,22 +455,21 @@ In order to make this expression work, MATCHBY must be specified and must includ ```dax ThisExpressionWorksBecauseOfMATCHBY = - -ADDCOLUMNS ( - FactInternetSales, - "Previous Sales Amount", - SELECTCOLUMNS ( - OFFSET ( - -1, - FactInternetSales, - ORDERBY ( FactInternetSales[SalesAmount], DESC ), - PARTITIONBY ( FactInternetSales[ProductKey] ), - MATCHBY( FactInternetSales[SalesOrderNumber], -FactInternetSales[SalesOrderLineNumber] ) - ), - FactInternetSales[SalesAmount] - ) -) + ADDCOLUMNS ( + FactInternetSales, + "Previous Sales Amount", + SELECTCOLUMNS ( + OFFSET ( + -1, + FactInternetSales, + ORDERBY ( FactInternetSales[SalesAmount], DESC ), + PARTITIONBY ( FactInternetSales[ProductKey] ), + MATCHBY ( FactInternetSales[SalesOrderNumber], + FactInternetSales[SalesOrderLineNumber] ) + ), + FactInternetSales[SalesAmount] + ) + ) ``` From ee6e88801220decdddb5b106a007e44443a066ee Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 21 Jul 2023 11:45:19 -0700 Subject: [PATCH 299/934] Updated per dev review --- query-languages/m/m-spec-introduction.md | 4 ++-- .../m/quick-tour-of-the-power-query-m-formula-language.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index f2bc059f1..85a0881f2 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -2,7 +2,7 @@ title: Power Query M formula language introduction description: Provides an overview of the Power Query M formula language ms.topic: overview -ms.date: 7/6/2023 +ms.date: 7/21/2023 --- # Introduction @@ -211,7 +211,7 @@ Another example of an operator with operand-depending meaning is the combination [ a = 1 ] & [ b = 2 ] // record merge: [ a = 1, b = 2 ] ``` -Note that not all combinations of values are supported by an operator. For example: +Note that some operators don't support all combinations of values. For example: ```powerquery-m 1 + "2" // error: adding number and text isn't supported diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index f156c1e60..1b26b99bd 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Quick tour of the Power Query M formula language" title: "Quick tour" -ms.date: 7/6/2023 +ms.date: 7/21/2023 ms.topic: conceptual ms.custom: intro-internal --- @@ -38,9 +38,9 @@ To learn more about expressions and values, go to [Expressions, values, and let ## Simple Power Query M formula steps -Let's assume you created the following transform in the Power Query editor to convert product names to the proper case, in this case, to all initial capitalization. +Let's assume you created the following transform in the Power Query editor to convert product names to the appropriate case, in this instance, to all initial capitalization. -:::image type="content" source="media/mstep1.png" alt-text="Screenshot of the Power Query editor showing the results of converting the Item column entries to intial capitalization."::: +:::image type="content" source="media/mstep1.png" alt-text="Screenshot of the Power Query editor showing the results of converting the Item column entries to initial capitalization."::: To begin with, you have a table that looks like this: From 86d7d0632233d01c628d9b28f5b97ff24eb73431 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 25 Jul 2023 11:08:32 -0700 Subject: [PATCH 300/934] Adding new See also. --- query-languages/dax/matchby-function-dax.md | 2 ++ query-languages/dax/orderby-function-dax.md | 2 ++ query-languages/dax/partitionby-function-dax.md | 2 ++ 3 files changed, 6 insertions(+) diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md index c93abd113..7d80f1c05 100644 --- a/query-languages/dax/matchby-function-dax.md +++ b/query-languages/dax/matchby-function-dax.md @@ -41,9 +41,11 @@ See [OFFSET](offset-function-dax.md). ## See also +[Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) [INDEX](index-function-dax.md) [OFFSET](offset-function-dax.md) [ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) [WINDOW](window-function-dax.md) [RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index ba13989f2..4d1f4acb8 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -43,9 +43,11 @@ See [OFFSET](offset-function-dax.md). ## See also +[Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) [INDEX](index-function-dax.md) [OFFSET](offset-function-dax.md) [PARTITIONBY](partitionby-function-dax.md) +[MATCHBY](matchby-function-dax.md) [WINDOW](window-function-dax.md) [RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index 40bd5d912..6aaa4f5ea 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -42,9 +42,11 @@ See [OFFSET](offset-function-dax.md). ## See also +[Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) [INDEX](index-function-dax.md) [OFFSET](offset-function-dax.md) [ORDERBY](orderby-function-dax.md) +[MATCHBY](matchby-function-dax.md) [WINDOW](window-function-dax.md) [RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) \ No newline at end of file From 55fe6bea0c9dbd4ba97250eb6daf89d943d0b36e Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Fri, 28 Jul 2023 14:08:31 -0700 Subject: [PATCH 301/934] Update dax-understand-orderby.md --- query-languages/dax/best-practices/dax-understand-orderby.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/query-languages/dax/best-practices/dax-understand-orderby.md b/query-languages/dax/best-practices/dax-understand-orderby.md index 9a9a843a0..05e6d50dc 100644 --- a/query-languages/dax/best-practices/dax-understand-orderby.md +++ b/query-languages/dax/best-practices/dax-understand-orderby.md @@ -488,10 +488,6 @@ And this expression does indeed return the results we're after: | SO52234 | 1 | 528 | 4.99 | 4.99 | | SO52234 | 2 | 529 | 3.99 | | -## Summary - -As shown in these examples, MATCHBY isn't always required. But for many different scenarios, it's an important function to understand when using DAX's Window functions. - ## See also [ORDERBY](../orderby-function-dax.md) From c272bac427f7d39862038f6b21e1b6f47219257a Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 31 Jul 2023 12:30:48 -0400 Subject: [PATCH 302/934] Tweaks --- query-languages/m/m-spec-basic-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 0a16edf12..1c178bdc8 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -228,7 +228,7 @@ It does, however, rely on being able to reorder computations. Since expressions Once a value has been calculated, it is _immutable_, meaning it can no longer be changed. This simplifies the model for evaluating an expression and makes it easier to reason about the result since it is not possible to change a value once it has been used to evaluate a subsequent part of the expression. For instance, a record field is only computed when needed. However, once computed, it remains fixed for the lifetime of the record. Even if the attempt to compute the field raised an error, that same error will be raised again on every attempt to access that record field. -An important exception to the immutable-once-calculated rule applies to list, table, and binary values, which have _streaming semantics_. Streaming semantics allow M to transform data sets that do not fit into memory all at once. With streaming, the values returned when enumerating a given table, list, or binary value are produced as needed each time they're requested. Since the enumerated values are not fixed and immutable but instead are produced dynamically on demand, they can be different across multiple enumerations. This does not mean that multiple enumerations will always result in different values, just that they can be different if the data source or M logic being used is non-deterministic. +An important exception to the immutable-once-calculated rule applies to list, table, and binary values, which have _streaming semantics_. Streaming semantics allow M to transform data sets that do not fit into memory all at once. With streaming, the values returned when enumerating a given table, list, or binary value are produced on demand each time they're requested. Since the expressions defining the enumerated values are evaluated each time they're enumerated, the output they produce can be different across multiple enumerations. This does not mean that multiple enumerations will always result in different values, just that they can be different if the data source or M logic being used is non-deterministic. Also, note that function application is _not_ the same as value construction. Library functions may expose external state (such as the current time or the results of a query against a database that evolves over time), rendering them _non-deterministic_. While functions defined in M will not, as such, expose any such non-deterministic behavior, they can if they are defined to invoke other functions that are non-deterministic. From 6947c1030d67eaef4062a8b426e632ea141fd74f Mon Sep 17 00:00:00 2001 From: minewiskan Date: Tue, 1 Aug 2023 14:08:34 -0700 Subject: [PATCH 303/934] Add another example. --- query-languages/dax/window-function-dax.md | 69 +++++++++++++++++++++- 1 file changed, 66 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index d0dc64f2e..02e54844c 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: WINDOW" title: "WINDOW function (DAX) | Microsoft Docs" ms.service: powerbi ms.subservice: dax -ms.date: 04/10/2023 +ms.date: 08/01/2023 ms.reviewer: owend ms.topic: reference author: minewiskan @@ -36,7 +36,6 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | - ## Return value All rows from the window. @@ -69,7 +68,7 @@ If WINDOW is used within a calculated column defined on the same table as \ Date: Tue, 1 Aug 2023 14:14:16 -0700 Subject: [PATCH 304/934] Revision --- query-languages/dax/window-function-dax.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 02e54844c..9e6998926 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -97,10 +97,7 @@ The following measure: RunningSum = SUMX ( WINDOW ( - 1, - ABS, - 0, - REL, + 1, ABS, 0, REL, ALLSELECTED ( 'Date'[Fiscal Year], 'Date'[Month Number Of Year] From 1a0ce6422ac1470fd6b851ff0036e330c9cc08aa Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 9 Aug 2023 11:27:28 -0700 Subject: [PATCH 305/934] Minor changes for MS style --- query-languages/m/m-spec-basic-concepts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 1c178bdc8..ab858b4c8 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -228,7 +228,7 @@ It does, however, rely on being able to reorder computations. Since expressions Once a value has been calculated, it is _immutable_, meaning it can no longer be changed. This simplifies the model for evaluating an expression and makes it easier to reason about the result since it is not possible to change a value once it has been used to evaluate a subsequent part of the expression. For instance, a record field is only computed when needed. However, once computed, it remains fixed for the lifetime of the record. Even if the attempt to compute the field raised an error, that same error will be raised again on every attempt to access that record field. -An important exception to the immutable-once-calculated rule applies to list, table, and binary values, which have _streaming semantics_. Streaming semantics allow M to transform data sets that do not fit into memory all at once. With streaming, the values returned when enumerating a given table, list, or binary value are produced on demand each time they're requested. Since the expressions defining the enumerated values are evaluated each time they're enumerated, the output they produce can be different across multiple enumerations. This does not mean that multiple enumerations will always result in different values, just that they can be different if the data source or M logic being used is non-deterministic. +An important exception to the immutable-once-calculated rule applies to list, table, and binary values, which have _streaming semantics_. Streaming semantics allow M to transform data sets that don't fit into memory all at once. With streaming, the values returned when enumerating a given table, list, or binary value are produced on demand each time they're requested. Since the expressions defining the enumerated values are evaluated each time they're enumerated, the output they produce can be different across multiple enumerations. This doesn't mean that multiple enumerations always results in different values, just that they can be different if the data source or M logic being used is non-deterministic. Also, note that function application is _not_ the same as value construction. Library functions may expose external state (such as the current time or the results of a query against a database that evolves over time), rendering them _non-deterministic_. While functions defined in M will not, as such, expose any such non-deterministic behavior, they can if they are defined to invoke other functions that are non-deterministic. From fe326d369c8ac92951772a6ab2b286c86ea9a983 Mon Sep 17 00:00:00 2001 From: th28 <7756136+th28@users.noreply.github.com> Date: Tue, 15 Aug 2023 23:23:10 +0300 Subject: [PATCH 306/934] Fixed missing right parenthesis --- query-languages/dax/except-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/except-function-dax.md b/query-languages/dax/except-function-dax.md index c829f3fe0..24b385522 100644 --- a/query-languages/dax/except-function-dax.md +++ b/query-languages/dax/except-function-dax.md @@ -18,7 +18,7 @@ Returns the rows of the first table in the expression which do not appear in the ## Syntax ```dax -EXCEPT(, +EXCEPT(, ) ``` ### Parameters From e35fd7d1d519ffe62b2db1e5cf80f1f1c88939cf Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Fri, 18 Aug 2023 13:00:12 -0700 Subject: [PATCH 307/934] Update topn-function-dax.md --- query-languages/dax/topn-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/topn-function-dax.md b/query-languages/dax/topn-function-dax.md index 96521dd5f..0ad8d8c1b 100644 --- a/query-languages/dax/topn-function-dax.md +++ b/query-languages/dax/topn-function-dax.md @@ -27,7 +27,7 @@ TOPN(,

, , [[, , |-------------|--------------| |N_Value|The number of rows to return. Any DAX expression that returns a scalar value, where the expression is to be evaluated multiple times (for each row/context). See Remarks to better understand when the number of rows returned could be larger than *n_value*. | |Table|Any DAX expression that returns a table of data from where to extract the top 'n' rows. See Remarks to better understand when an empty table is returned. | -|OrderBy_Expression|Any DAX expression where the result value is used to sort the table and evaluated for each row of *table*. | +|OrderBy_Expression|(Optional) Any DAX expression where the result value is used to sort the table and evaluated for each row of *table*. | |Order|(Optional) A value that specifies how to sort *OrderBy_Expression* values:

- **0** (zero) or **FALSE**. Sorts in descending order of values of *Order*. Default when *Order* parameter is omitted.

- **1** or **TRUE**. Ranks in ascending order of *OrderBy*.| ## Return value From ff45392d318687bd457ee0ba2103757b7028bde8 Mon Sep 17 00:00:00 2001 From: Sergio Oller Date: Tue, 29 Aug 2023 17:37:23 +0200 Subject: [PATCH 308/934] Table.FromList includes example with identity splitter The example is trivial for someone with experience writing M functions. However, for someone starting writing M, this example provides a "learning by doing" way of defining and using a simple function and solving a simple problem. If there is a better way of converting a list to a table without splitting by any character, then the documentation could refer to it instead of providing this example. As a beginner myself, I would find it helpful. --- query-languages/m/table-fromlist.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index 8499f3701..6899b0184 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -61,3 +61,29 @@ Table.FromRecords({ [CustomerID = 2, Name = "Jim"] }) ``` + +## Example 3 + +Create a table with a single column, from a List that may include commas `,`, where commas should not be treated as a separator character. + +**Usage** + +```powerquery-m +Table.FromList( + { + "abcd", + ".,!?" + }, + (x) => {x}, + {"SomeStrings"} +) +``` + +**Output** + +```powerquery-m +Table.FromRecords({ + [SomeStrings = "abcd"], + [SomeStrings = ".,!?"] +}) +``` From 47954add9feba707285d7ee3698f5dfe724be48d Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 29 Aug 2023 11:39:54 -0700 Subject: [PATCH 309/934] Removed ref ms.date metadata --- query-languages/m/access-database.md | 1 - query-languages/m/accesscontrolentry-conditiontoidentities.md | 1 - query-languages/m/accesscontrolkind-type.md | 1 - query-languages/m/activedirectory-domains.md | 1 - query-languages/m/adobeanalytics-cubes.md | 1 - query-languages/m/adodotnet-datasource.md | 1 - query-languages/m/adodotnet-query.md | 1 - query-languages/m/analysisservices-database.md | 1 - query-languages/m/analysisservices-databases.md | 1 - query-languages/m/azurestorage-blobcontents.md | 1 - query-languages/m/azurestorage-blobs.md | 1 - query-languages/m/azurestorage-datalake.md | 1 - query-languages/m/azurestorage-datalakecontents.md | 1 - query-languages/m/azurestorage-tables.md | 1 - query-languages/m/binary-approximatelength.md | 1 - query-languages/m/binary-buffer.md | 1 - query-languages/m/binary-combine.md | 1 - query-languages/m/binary-compress.md | 1 - query-languages/m/binary-decompress.md | 1 - query-languages/m/binary-from.md | 1 - query-languages/m/binary-fromlist.md | 1 - query-languages/m/binary-fromtext.md | 1 - query-languages/m/binary-infercontenttype.md | 1 - query-languages/m/binary-length.md | 1 - query-languages/m/binary-range.md | 1 - query-languages/m/binary-split.md | 1 - query-languages/m/binary-tolist.md | 1 - query-languages/m/binary-totext.md | 1 - query-languages/m/binary-view.md | 1 - query-languages/m/binary-viewerror.md | 1 - query-languages/m/binary-viewfunction.md | 1 - query-languages/m/binaryencoding-type.md | 1 - query-languages/m/binaryformat-7bitencodedsignedinteger.md | 1 - query-languages/m/binaryformat-7bitencodedunsignedinteger.md | 1 - query-languages/m/binaryformat-binary.md | 1 - query-languages/m/binaryformat-byte.md | 1 - query-languages/m/binaryformat-byteorder.md | 1 - query-languages/m/binaryformat-choice.md | 1 - query-languages/m/binaryformat-decimal.md | 1 - query-languages/m/binaryformat-double.md | 1 - query-languages/m/binaryformat-group.md | 1 - query-languages/m/binaryformat-length.md | 1 - query-languages/m/binaryformat-list.md | 1 - query-languages/m/binaryformat-null.md | 1 - query-languages/m/binaryformat-record.md | 1 - query-languages/m/binaryformat-signedinteger16.md | 1 - query-languages/m/binaryformat-signedinteger32.md | 1 - query-languages/m/binaryformat-signedinteger64.md | 1 - query-languages/m/binaryformat-single.md | 1 - query-languages/m/binaryformat-text.md | 1 - query-languages/m/binaryformat-transform.md | 1 - query-languages/m/binaryformat-unsignedinteger16.md | 1 - query-languages/m/binaryformat-unsignedinteger32.md | 1 - query-languages/m/binaryformat-unsignedinteger64.md | 1 - query-languages/m/binaryoccurrence-type.md | 1 - query-languages/m/buffermode-type.md | 1 - query-languages/m/byte-from.md | 1 - query-languages/m/byteorder-type.md | 1 - query-languages/m/cdm-contents.md | 1 - query-languages/m/character-fromnumber.md | 1 - query-languages/m/character-tonumber.md | 1 - query-languages/m/combiner-combinetextbydelimiter.md | 1 - query-languages/m/combiner-combinetextbyeachdelimiter.md | 1 - query-languages/m/combiner-combinetextbylengths.md | 1 - query-languages/m/combiner-combinetextbypositions.md | 1 - query-languages/m/combiner-combinetextbyranges.md | 1 - query-languages/m/comparer-equals.md | 1 - query-languages/m/comparer-fromculture.md | 1 - query-languages/m/comparer-ordinal.md | 1 - query-languages/m/comparer-ordinalignorecase.md | 1 - query-languages/m/compression-type.md | 1 - query-languages/m/constants.md | 1 - query-languages/m/csv-document.md | 1 - query-languages/m/csvstyle-type.md | 1 - query-languages/m/cube-addandexpanddimensioncolumn.md | 1 - query-languages/m/cube-addmeasurecolumn.md | 1 - query-languages/m/cube-applyparameter.md | 1 - query-languages/m/cube-attributememberid.md | 1 - query-languages/m/cube-attributememberproperty.md | 1 - query-languages/m/cube-collapseandremovecolumns.md | 1 - query-languages/m/cube-dimensions.md | 1 - query-languages/m/cube-displayfolders.md | 1 - query-languages/m/cube-measureproperties.md | 1 - query-languages/m/cube-measureproperty.md | 1 - query-languages/m/cube-measures.md | 1 - query-languages/m/cube-parameters.md | 1 - query-languages/m/cube-properties.md | 1 - query-languages/m/cube-propertykey.md | 1 - query-languages/m/cube-replacedimensions.md | 1 - query-languages/m/cube-transform.md | 1 - query-languages/m/culture-current.md | 1 - query-languages/m/currency-from.md | 1 - query-languages/m/date-adddays.md | 1 - query-languages/m/date-addmonths.md | 1 - query-languages/m/date-addquarters.md | 1 - query-languages/m/date-addweeks.md | 1 - query-languages/m/date-addyears.md | 1 - query-languages/m/date-day.md | 1 - query-languages/m/date-dayofweek.md | 1 - query-languages/m/date-dayofweekname.md | 1 - query-languages/m/date-dayofyear.md | 1 - query-languages/m/date-daysinmonth.md | 1 - query-languages/m/date-endofday.md | 1 - query-languages/m/date-endofmonth.md | 1 - query-languages/m/date-endofquarter.md | 1 - query-languages/m/date-endofweek.md | 1 - query-languages/m/date-endofyear.md | 1 - query-languages/m/date-from.md | 1 - query-languages/m/date-fromtext.md | 1 - query-languages/m/date-isincurrentday.md | 1 - query-languages/m/date-isincurrentmonth.md | 1 - query-languages/m/date-isincurrentquarter.md | 1 - query-languages/m/date-isincurrentweek.md | 1 - query-languages/m/date-isincurrentyear.md | 1 - query-languages/m/date-isinnextday.md | 1 - query-languages/m/date-isinnextmonth.md | 1 - query-languages/m/date-isinnextndays.md | 1 - query-languages/m/date-isinnextnmonths.md | 1 - query-languages/m/date-isinnextnquarters.md | 1 - query-languages/m/date-isinnextnweeks.md | 1 - query-languages/m/date-isinnextnyears.md | 1 - query-languages/m/date-isinnextquarter.md | 1 - query-languages/m/date-isinnextweek.md | 1 - query-languages/m/date-isinnextyear.md | 1 - query-languages/m/date-isinpreviousday.md | 1 - query-languages/m/date-isinpreviousmonth.md | 1 - query-languages/m/date-isinpreviousndays.md | 1 - query-languages/m/date-isinpreviousnmonths.md | 1 - query-languages/m/date-isinpreviousnquarters.md | 1 - query-languages/m/date-isinpreviousnweeks.md | 1 - query-languages/m/date-isinpreviousnyears.md | 1 - query-languages/m/date-isinpreviousquarter.md | 1 - query-languages/m/date-isinpreviousweek.md | 1 - query-languages/m/date-isinpreviousyear.md | 1 - query-languages/m/date-isinyeartodate.md | 1 - query-languages/m/date-isleapyear.md | 1 - query-languages/m/date-month.md | 1 - query-languages/m/date-monthname.md | 1 - query-languages/m/date-quarterofyear.md | 1 - query-languages/m/date-startofday.md | 1 - query-languages/m/date-startofmonth.md | 1 - query-languages/m/date-startofquarter.md | 1 - query-languages/m/date-startofweek.md | 1 - query-languages/m/date-startofyear.md | 1 - query-languages/m/date-torecord.md | 1 - query-languages/m/date-totext.md | 1 - query-languages/m/date-weekofmonth.md | 1 - query-languages/m/date-weekofyear.md | 1 - query-languages/m/date-year.md | 1 - query-languages/m/datetime-addzone.md | 1 - query-languages/m/datetime-date.md | 1 - query-languages/m/datetime-fixedlocalnow.md | 1 - query-languages/m/datetime-from.md | 1 - query-languages/m/datetime-fromfiletime.md | 1 - query-languages/m/datetime-fromtext.md | 1 - query-languages/m/datetime-isincurrenthour.md | 1 - query-languages/m/datetime-isincurrentminute.md | 1 - query-languages/m/datetime-isincurrentsecond.md | 1 - query-languages/m/datetime-isinnexthour.md | 1 - query-languages/m/datetime-isinnextminute.md | 1 - query-languages/m/datetime-isinnextnhours.md | 1 - query-languages/m/datetime-isinnextnminutes.md | 1 - query-languages/m/datetime-isinnextnseconds.md | 1 - query-languages/m/datetime-isinnextsecond.md | 1 - query-languages/m/datetime-isinprevioushour.md | 1 - query-languages/m/datetime-isinpreviousminute.md | 1 - query-languages/m/datetime-isinpreviousnhours.md | 1 - query-languages/m/datetime-isinpreviousnminutes.md | 1 - query-languages/m/datetime-isinpreviousnseconds.md | 1 - query-languages/m/datetime-isinprevioussecond.md | 1 - query-languages/m/datetime-localnow.md | 1 - query-languages/m/datetime-time.md | 1 - query-languages/m/datetime-torecord.md | 1 - query-languages/m/datetime-totext.md | 1 - query-languages/m/datetimezone-fixedlocalnow.md | 1 - query-languages/m/datetimezone-fixedutcnow.md | 1 - query-languages/m/datetimezone-from.md | 1 - query-languages/m/datetimezone-fromfiletime.md | 1 - query-languages/m/datetimezone-fromtext.md | 1 - query-languages/m/datetimezone-localnow.md | 1 - query-languages/m/datetimezone-removezone.md | 1 - query-languages/m/datetimezone-switchzone.md | 1 - query-languages/m/datetimezone-tolocal.md | 1 - query-languages/m/datetimezone-torecord.md | 1 - query-languages/m/datetimezone-totext.md | 1 - query-languages/m/datetimezone-toutc.md | 1 - query-languages/m/datetimezone-utcnow.md | 1 - query-languages/m/datetimezone-zonehours.md | 1 - query-languages/m/datetimezone-zoneminutes.md | 1 - query-languages/m/day-type.md | 1 - query-languages/m/db2-database.md | 1 - query-languages/m/decimal-from.md | 1 - query-languages/m/deltalake-table.md | 1 - query-languages/m/diagnostics-activityid.md | 1 - query-languages/m/diagnostics-trace.md | 1 - query-languages/m/directquerycapabilities-from.md | 1 - query-languages/m/double-from.md | 1 - query-languages/m/duration-days.md | 1 - query-languages/m/duration-from.md | 1 - query-languages/m/duration-fromtext.md | 1 - query-languages/m/duration-hours.md | 1 - query-languages/m/duration-minutes.md | 1 - query-languages/m/duration-seconds.md | 1 - query-languages/m/duration-torecord.md | 1 - query-languages/m/duration-totaldays.md | 1 - query-languages/m/duration-totalhours.md | 1 - query-languages/m/duration-totalminutes.md | 1 - query-languages/m/duration-totalseconds.md | 1 - query-languages/m/duration-totext.md | 1 - query-languages/m/dynamic-values.md | 1 - query-languages/m/embedded-value.md | 1 - query-languages/m/enumerations.md | 1 - query-languages/m/error-record.md | 1 - query-languages/m/essbase-cubes.md | 1 - query-languages/m/excel-currentworkbook.md | 1 - query-languages/m/excel-shapetable.md | 1 - query-languages/m/excel-workbook.md | 1 - query-languages/m/exchange-contents.md | 1 - query-languages/m/expression-constant.md | 1 - query-languages/m/expression-evaluate.md | 1 - query-languages/m/expression-identifier.md | 1 - query-languages/m/extravalues-type.md | 1 - query-languages/m/file-contents.md | 1 - query-languages/m/folder-contents.md | 1 - query-languages/m/folder-files.md | 1 - query-languages/m/function-from.md | 1 - query-languages/m/function-invoke.md | 1 - query-languages/m/function-invokeafter.md | 1 - query-languages/m/function-isdatasource.md | 1 - query-languages/m/function-scalarvector.md | 1 - query-languages/m/geography-fromwellknowntext.md | 1 - query-languages/m/geography-towellknowntext.md | 1 - query-languages/m/geographypoint-from.md | 1 - query-languages/m/geometry-fromwellknowntext.md | 1 - query-languages/m/geometry-towellknowntext.md | 1 - query-languages/m/geometrypoint-from.md | 1 - query-languages/m/googleanalytics-accounts.md | 1 - query-languages/m/graph-nodes.md | 1 - query-languages/m/groupkind-type.md | 1 - query-languages/m/guid-from.md | 1 - query-languages/m/hdfs-contents.md | 1 - query-languages/m/hdfs-files.md | 1 - query-languages/m/hdinsight-containers.md | 1 - query-languages/m/hdinsight-contents.md | 1 - query-languages/m/hdinsight-files.md | 1 - query-languages/m/html-table.md | 1 - query-languages/m/identity-from.md | 1 - query-languages/m/identity-ismemberof.md | 1 - query-languages/m/identityprovider-default.md | 1 - query-languages/m/informix-database.md | 1 - query-languages/m/int16-from.md | 1 - query-languages/m/int32-from.md | 1 - query-languages/m/int64-from.md | 1 - query-languages/m/int8-from.md | 1 - query-languages/m/itemexpression-from.md | 1 - query-languages/m/itemexpression-item.md | 1 - query-languages/m/joinalgorithm-type.md | 1 - query-languages/m/joinkind-type.md | 1 - query-languages/m/joinside-type.md | 1 - query-languages/m/json-document.md | 1 - query-languages/m/json-fromvalue.md | 1 - query-languages/m/limitclausekind-type.md | 1 - query-languages/m/lines-frombinary.md | 1 - query-languages/m/lines-fromtext.md | 1 - query-languages/m/lines-tobinary.md | 1 - query-languages/m/lines-totext.md | 1 - query-languages/m/list-accumulate.md | 1 - query-languages/m/list-alltrue.md | 1 - query-languages/m/list-alternate.md | 1 - query-languages/m/list-anytrue.md | 1 - query-languages/m/list-average.md | 1 - query-languages/m/list-buffer.md | 1 - query-languages/m/list-combine.md | 1 - query-languages/m/list-conformtopagereader.md | 1 - query-languages/m/list-contains.md | 1 - query-languages/m/list-containsall.md | 1 - query-languages/m/list-containsany.md | 1 - query-languages/m/list-count.md | 1 - query-languages/m/list-covariance.md | 1 - query-languages/m/list-dates.md | 1 - query-languages/m/list-datetimes.md | 1 - query-languages/m/list-datetimezones.md | 1 - query-languages/m/list-difference.md | 1 - query-languages/m/list-distinct.md | 1 - query-languages/m/list-durations.md | 1 - query-languages/m/list-findtext.md | 1 - query-languages/m/list-first.md | 1 - query-languages/m/list-firstn.md | 1 - query-languages/m/list-generate.md | 1 - query-languages/m/list-insertrange.md | 1 - query-languages/m/list-intersect.md | 1 - query-languages/m/list-isdistinct.md | 1 - query-languages/m/list-isempty.md | 1 - query-languages/m/list-last.md | 1 - query-languages/m/list-lastn.md | 1 - query-languages/m/list-matchesall.md | 1 - query-languages/m/list-matchesany.md | 1 - query-languages/m/list-max.md | 1 - query-languages/m/list-maxn.md | 1 - query-languages/m/list-median.md | 1 - query-languages/m/list-min.md | 1 - query-languages/m/list-minn.md | 1 - query-languages/m/list-mode.md | 1 - query-languages/m/list-modes.md | 1 - query-languages/m/list-nonnullcount.md | 1 - query-languages/m/list-numbers.md | 1 - query-languages/m/list-percentile.md | 1 - query-languages/m/list-positionof.md | 1 - query-languages/m/list-positionofany.md | 1 - query-languages/m/list-positions.md | 1 - query-languages/m/list-product.md | 1 - query-languages/m/list-random.md | 1 - query-languages/m/list-range.md | 1 - query-languages/m/list-removefirstn.md | 1 - query-languages/m/list-removeitems.md | 1 - query-languages/m/list-removelastn.md | 1 - query-languages/m/list-removematchingitems.md | 1 - query-languages/m/list-removenulls.md | 1 - query-languages/m/list-removerange.md | 1 - query-languages/m/list-repeat.md | 1 - query-languages/m/list-replacematchingitems.md | 1 - query-languages/m/list-replacerange.md | 1 - query-languages/m/list-replacevalue.md | 1 - query-languages/m/list-reverse.md | 1 - query-languages/m/list-select.md | 1 - query-languages/m/list-single.md | 1 - query-languages/m/list-singleordefault.md | 1 - query-languages/m/list-skip.md | 1 - query-languages/m/list-sort.md | 1 - query-languages/m/list-split.md | 1 - query-languages/m/list-standarddeviation.md | 1 - query-languages/m/list-sum.md | 1 - query-languages/m/list-times.md | 1 - query-languages/m/list-transform.md | 1 - query-languages/m/list-transformmany.md | 1 - query-languages/m/list-union.md | 1 - query-languages/m/list-zip.md | 1 - query-languages/m/logical-from.md | 1 - query-languages/m/logical-fromtext.md | 1 - query-languages/m/logical-totext.md | 1 - query-languages/m/missingfield-type.md | 1 - query-languages/m/mysql-database.md | 1 - query-languages/m/number-abs.md | 1 - query-languages/m/number-acos.md | 1 - query-languages/m/number-asin.md | 1 - query-languages/m/number-atan.md | 1 - query-languages/m/number-atan2.md | 1 - query-languages/m/number-bitwiseand.md | 1 - query-languages/m/number-bitwisenot.md | 1 - query-languages/m/number-bitwiseor.md | 1 - query-languages/m/number-bitwiseshiftleft.md | 1 - query-languages/m/number-bitwiseshiftright.md | 1 - query-languages/m/number-bitwisexor.md | 1 - query-languages/m/number-combinations.md | 1 - query-languages/m/number-cos.md | 1 - query-languages/m/number-cosh.md | 1 - query-languages/m/number-e.md | 1 - query-languages/m/number-epsilon.md | 1 - query-languages/m/number-exp.md | 1 - query-languages/m/number-factorial.md | 1 - query-languages/m/number-from.md | 1 - query-languages/m/number-fromtext.md | 1 - query-languages/m/number-integerdivide.md | 1 - query-languages/m/number-iseven.md | 1 - query-languages/m/number-isnan.md | 1 - query-languages/m/number-isodd.md | 1 - query-languages/m/number-ln.md | 1 - query-languages/m/number-log.md | 1 - query-languages/m/number-log10.md | 1 - query-languages/m/number-mod.md | 1 - query-languages/m/number-nan.md | 1 - query-languages/m/number-negativeinfinity.md | 1 - query-languages/m/number-permutations.md | 1 - query-languages/m/number-pi.md | 1 - query-languages/m/number-positiveinfinity.md | 1 - query-languages/m/number-power.md | 1 - query-languages/m/number-random.md | 1 - query-languages/m/number-randombetween.md | 1 - query-languages/m/number-round.md | 1 - query-languages/m/number-roundawayfromzero.md | 1 - query-languages/m/number-rounddown.md | 1 - query-languages/m/number-roundtowardzero.md | 1 - query-languages/m/number-roundup.md | 1 - query-languages/m/number-sign.md | 1 - query-languages/m/number-sin.md | 1 - query-languages/m/number-sinh.md | 1 - query-languages/m/number-sqrt.md | 1 - query-languages/m/number-tan.md | 1 - query-languages/m/number-tanh.md | 1 - query-languages/m/number-totext.md | 1 - query-languages/m/occurrence-type.md | 1 - query-languages/m/odata-feed.md | 1 - query-languages/m/odataomitvalues-type.md | 1 - query-languages/m/odbc-datasource.md | 1 - query-languages/m/odbc-inferoptions.md | 1 - query-languages/m/odbc-query.md | 1 - query-languages/m/oledb-datasource.md | 1 - query-languages/m/oledb-query.md | 1 - query-languages/m/oracle-database.md | 1 - query-languages/m/order-type.md | 1 - query-languages/m/pdf-tables.md | 1 - query-languages/m/percentage-from.md | 1 - query-languages/m/percentilemode-type.md | 1 - query-languages/m/postgresql-database.md | 1 - query-languages/m/precision-type.md | 1 - query-languages/m/progress-datasourceprogress.md | 1 - query-languages/m/quotestyle-type.md | 1 - query-languages/m/rankkind-type.md | 1 - query-languages/m/rdata-frombinary.md | 1 - query-languages/m/record-addfield.md | 1 - query-languages/m/record-combine.md | 1 - query-languages/m/record-field.md | 1 - query-languages/m/record-fieldcount.md | 1 - query-languages/m/record-fieldnames.md | 1 - query-languages/m/record-fieldordefault.md | 1 - query-languages/m/record-fieldvalues.md | 1 - query-languages/m/record-fromlist.md | 1 - query-languages/m/record-fromtable.md | 1 - query-languages/m/record-hasfields.md | 1 - query-languages/m/record-removefields.md | 1 - query-languages/m/record-renamefields.md | 1 - query-languages/m/record-reorderfields.md | 1 - query-languages/m/record-selectfields.md | 1 - query-languages/m/record-tolist.md | 1 - query-languages/m/record-totable.md | 1 - query-languages/m/record-transformfields.md | 1 - query-languages/m/relativeposition-type.md | 1 - query-languages/m/replacer-replacetext.md | 1 - query-languages/m/replacer-replacevalue.md | 1 - query-languages/m/roundingmode-type.md | 1 - query-languages/m/rowexpression-column.md | 1 - query-languages/m/rowexpression-from.md | 1 - query-languages/m/rowexpression-row.md | 1 - query-languages/m/salesforce-data.md | 1 - query-languages/m/salesforce-reports.md | 1 - query-languages/m/sapbusinesswarehouse-cubes.md | 1 - query-languages/m/sapbusinesswarehouseexecutionmode-type.md | 1 - query-languages/m/saphana-database.md | 1 - query-languages/m/saphanadistribution-type.md | 1 - query-languages/m/saphanarangeoperator-type.md | 1 - query-languages/m/sharepoint-contents.md | 1 - query-languages/m/sharepoint-files.md | 1 - query-languages/m/sharepoint-tables.md | 1 - query-languages/m/sharpbinary.md | 1 - query-languages/m/sharpdate.md | 1 - query-languages/m/sharpdatetime.md | 1 - query-languages/m/sharpdatetimezone.md | 1 - query-languages/m/sharpduration.md | 1 - query-languages/m/sharptable.md | 1 - query-languages/m/sharptime.md | 1 - query-languages/m/single-from.md | 1 - query-languages/m/soda-feed.md | 1 - query-languages/m/splitter-splitbynothing.md | 1 - query-languages/m/splitter-splittextbyanydelimiter.md | 1 - query-languages/m/splitter-splittextbycharactertransition.md | 1 - query-languages/m/splitter-splittextbydelimiter.md | 1 - query-languages/m/splitter-splittextbyeachdelimiter.md | 1 - query-languages/m/splitter-splittextbylengths.md | 1 - query-languages/m/splitter-splittextbypositions.md | 1 - query-languages/m/splitter-splittextbyranges.md | 1 - query-languages/m/splitter-splittextbyrepeatedlengths.md | 1 - query-languages/m/splitter-splittextbywhitespace.md | 1 - query-languages/m/sql-database.md | 1 - query-languages/m/sql-databases.md | 1 - query-languages/m/sqlexpression-schemafrom.md | 1 - query-languages/m/sqlexpression-toexpression.md | 1 - query-languages/m/sybase-database.md | 1 - query-languages/m/table-addcolumn.md | 1 - query-languages/m/table-addfuzzyclustercolumn.md | 1 - query-languages/m/table-addindexcolumn.md | 1 - query-languages/m/table-addjoincolumn.md | 1 - query-languages/m/table-addkey.md | 1 - query-languages/m/table-addrankcolumn.md | 1 - query-languages/m/table-aggregatetablecolumn.md | 1 - query-languages/m/table-alternaterows.md | 1 - query-languages/m/table-approximaterowcount.md | 1 - query-languages/m/table-buffer.md | 1 - query-languages/m/table-column.md | 1 - query-languages/m/table-columncount.md | 1 - query-languages/m/table-columnnames.md | 1 - query-languages/m/table-columnsoftype.md | 1 - query-languages/m/table-combine.md | 1 - query-languages/m/table-combinecolumns.md | 1 - query-languages/m/table-combinecolumnstorecord.md | 1 - query-languages/m/table-conformtopagereader.md | 1 - query-languages/m/table-contains.md | 1 - query-languages/m/table-containsall.md | 1 - query-languages/m/table-containsany.md | 1 - query-languages/m/table-demoteheaders.md | 1 - query-languages/m/table-distinct.md | 1 - query-languages/m/table-duplicatecolumn.md | 1 - query-languages/m/table-expandlistcolumn.md | 1 - query-languages/m/table-expandrecordcolumn.md | 1 - query-languages/m/table-expandtablecolumn.md | 1 - query-languages/m/table-filldown.md | 1 - query-languages/m/table-fillup.md | 1 - query-languages/m/table-filterwithdatatable.md | 1 - query-languages/m/table-findtext.md | 1 - query-languages/m/table-first.md | 1 - query-languages/m/table-firstn.md | 1 - query-languages/m/table-firstvalue.md | 1 - query-languages/m/table-fromcolumns.md | 1 - query-languages/m/table-fromlist.md | 1 - query-languages/m/table-frompartitions.md | 1 - query-languages/m/table-fromrecords.md | 1 - query-languages/m/table-fromrows.md | 1 - query-languages/m/table-fromvalue.md | 1 - query-languages/m/table-fuzzygroup.md | 1 - query-languages/m/table-fuzzyjoin.md | 1 - query-languages/m/table-fuzzynestedjoin.md | 1 - query-languages/m/table-group.md | 1 - query-languages/m/table-hascolumns.md | 1 - query-languages/m/table-insertrows.md | 1 - query-languages/m/table-isdistinct.md | 1 - query-languages/m/table-isempty.md | 1 - query-languages/m/table-join.md | 1 - query-languages/m/table-keys.md | 1 - query-languages/m/table-last.md | 1 - query-languages/m/table-lastn.md | 1 - query-languages/m/table-matchesallrows.md | 1 - query-languages/m/table-matchesanyrows.md | 1 - query-languages/m/table-max.md | 1 - query-languages/m/table-maxn.md | 1 - query-languages/m/table-min.md | 1 - query-languages/m/table-minn.md | 1 - query-languages/m/table-nestedjoin.md | 1 - query-languages/m/table-partition.md | 1 - query-languages/m/table-partitionvalues.md | 1 - query-languages/m/table-pivot.md | 1 - query-languages/m/table-positionof.md | 1 - query-languages/m/table-positionofany.md | 1 - query-languages/m/table-prefixcolumns.md | 1 - query-languages/m/table-profile.md | 1 - query-languages/m/table-promoteheaders.md | 1 - query-languages/m/table-range.md | 1 - query-languages/m/table-removecolumns.md | 1 - query-languages/m/table-removefirstn.md | 1 - query-languages/m/table-removelastn.md | 1 - query-languages/m/table-removematchingrows.md | 1 - query-languages/m/table-removerows.md | 1 - query-languages/m/table-removerowswitherrors.md | 1 - query-languages/m/table-renamecolumns.md | 1 - query-languages/m/table-reordercolumns.md | 1 - query-languages/m/table-repeat.md | 1 - query-languages/m/table-replaceerrorvalues.md | 1 - query-languages/m/table-replacekeys.md | 1 - query-languages/m/table-replacematchingrows.md | 1 - query-languages/m/table-replacerelationshipidentity.md | 1 - query-languages/m/table-replacerows.md | 1 - query-languages/m/table-replacevalue.md | 1 - query-languages/m/table-reverserows.md | 1 - query-languages/m/table-rowcount.md | 1 - query-languages/m/table-schema.md | 1 - query-languages/m/table-selectcolumns.md | 1 - query-languages/m/table-selectrows.md | 1 - query-languages/m/table-selectrowswitherrors.md | 1 - query-languages/m/table-singlerow.md | 1 - query-languages/m/table-skip.md | 1 - query-languages/m/table-sort.md | 1 - query-languages/m/table-split.md | 1 - query-languages/m/table-splitat.md | 1 - query-languages/m/table-splitcolumn.md | 1 - query-languages/m/table-stopfolding.md | 1 - query-languages/m/table-tocolumns.md | 1 - query-languages/m/table-tolist.md | 1 - query-languages/m/table-torecords.md | 1 - query-languages/m/table-torows.md | 1 - query-languages/m/table-transformcolumnnames.md | 1 - query-languages/m/table-transformcolumns.md | 1 - query-languages/m/table-transformcolumntypes.md | 1 - query-languages/m/table-transformrows.md | 1 - query-languages/m/table-transpose.md | 1 - query-languages/m/table-unpivot.md | 1 - query-languages/m/table-unpivotothercolumns.md | 1 - query-languages/m/table-view.md | 1 - query-languages/m/table-viewerror.md | 1 - query-languages/m/table-viewfunction.md | 1 - query-languages/m/tables-getrelationships.md | 1 - query-languages/m/teradata-database.md | 1 - query-languages/m/text-afterdelimiter.md | 1 - query-languages/m/text-at.md | 1 - query-languages/m/text-beforedelimiter.md | 1 - query-languages/m/text-betweendelimiters.md | 1 - query-languages/m/text-clean.md | 1 - query-languages/m/text-combine.md | 1 - query-languages/m/text-contains.md | 1 - query-languages/m/text-end.md | 1 - query-languages/m/text-endswith.md | 1 - query-languages/m/text-format.md | 1 - query-languages/m/text-from.md | 1 - query-languages/m/text-frombinary.md | 1 - query-languages/m/text-infernumbertype.md | 1 - query-languages/m/text-insert.md | 1 - query-languages/m/text-length.md | 1 - query-languages/m/text-lower.md | 1 - query-languages/m/text-middle.md | 1 - query-languages/m/text-newguid.md | 1 - query-languages/m/text-padend.md | 1 - query-languages/m/text-padstart.md | 1 - query-languages/m/text-positionof.md | 1 - query-languages/m/text-positionofany.md | 1 - query-languages/m/text-proper.md | 1 - query-languages/m/text-range.md | 1 - query-languages/m/text-remove.md | 1 - query-languages/m/text-removerange.md | 1 - query-languages/m/text-repeat.md | 1 - query-languages/m/text-replace.md | 1 - query-languages/m/text-replacerange.md | 1 - query-languages/m/text-reverse.md | 1 - query-languages/m/text-select.md | 1 - query-languages/m/text-split.md | 1 - query-languages/m/text-splitany.md | 1 - query-languages/m/text-start.md | 1 - query-languages/m/text-startswith.md | 1 - query-languages/m/text-tobinary.md | 1 - query-languages/m/text-tolist.md | 1 - query-languages/m/text-trim.md | 1 - query-languages/m/text-trimend.md | 1 - query-languages/m/text-trimstart.md | 1 - query-languages/m/text-upper.md | 1 - query-languages/m/textencoding-type.md | 1 - query-languages/m/time-endofhour.md | 1 - query-languages/m/time-from.md | 1 - query-languages/m/time-fromtext.md | 1 - query-languages/m/time-hour.md | 1 - query-languages/m/time-minute.md | 1 - query-languages/m/time-second.md | 1 - query-languages/m/time-startofhour.md | 1 - query-languages/m/time-torecord.md | 1 - query-languages/m/time-totext.md | 1 - query-languages/m/timezone-current.md | 1 - query-languages/m/tracelevel-type.md | 1 - query-languages/m/type-addtablekey.md | 1 - query-languages/m/type-closedrecord.md | 1 - query-languages/m/type-facets.md | 1 - query-languages/m/type-forfunction.md | 1 - query-languages/m/type-forrecord.md | 1 - query-languages/m/type-functionparameters.md | 1 - query-languages/m/type-functionrequiredparameters.md | 1 - query-languages/m/type-functionreturn.md | 1 - query-languages/m/type-is.md | 1 - query-languages/m/type-isnullable.md | 1 - query-languages/m/type-isopenrecord.md | 1 - query-languages/m/type-listitem.md | 1 - query-languages/m/type-nonnullable.md | 1 - query-languages/m/type-openrecord.md | 1 - query-languages/m/type-recordfields.md | 1 - query-languages/m/type-replacefacets.md | 1 - query-languages/m/type-replacetablekeys.md | 1 - query-languages/m/type-tablecolumn.md | 1 - query-languages/m/type-tablekeys.md | 1 - query-languages/m/type-tablerow.md | 1 - query-languages/m/type-tableschema.md | 1 - query-languages/m/type-union.md | 1 - query-languages/m/uri-buildquerystring.md | 1 - query-languages/m/uri-combine.md | 1 - query-languages/m/uri-escapedatastring.md | 1 - query-languages/m/uri-parts.md | 1 - query-languages/m/value-add.md | 1 - query-languages/m/value-alternates.md | 1 - query-languages/m/value-as.md | 1 - query-languages/m/value-compare.md | 1 - query-languages/m/value-divide.md | 1 - query-languages/m/value-equals.md | 1 - query-languages/m/value-expression.md | 1 - query-languages/m/value-firewall.md | 1 - query-languages/m/value-fromtext.md | 1 - query-languages/m/value-is.md | 1 - query-languages/m/value-lineage.md | 1 - query-languages/m/value-metadata.md | 1 - query-languages/m/value-multiply.md | 1 - query-languages/m/value-nativequery.md | 1 - query-languages/m/value-nullableequals.md | 1 - query-languages/m/value-optimize.md | 1 - query-languages/m/value-removemetadata.md | 1 - query-languages/m/value-replacemetadata.md | 1 - query-languages/m/value-replacetype.md | 1 - query-languages/m/value-subtract.md | 1 - query-languages/m/value-traits.md | 1 - query-languages/m/value-type.md | 1 - query-languages/m/value-versionidentity.md | 1 - query-languages/m/value-versions.md | 1 - query-languages/m/value-viewerror.md | 1 - query-languages/m/value-viewfunction.md | 1 - query-languages/m/variable-value.md | 1 - query-languages/m/web-browsercontents.md | 1 - query-languages/m/web-contents.md | 1 - query-languages/m/web-headers.md | 1 - query-languages/m/web-page.md | 1 - query-languages/m/webaction-request.md | 1 - query-languages/m/webmethod-type.md | 1 - query-languages/m/xml-document.md | 1 - query-languages/m/xml-tables.md | 1 - 693 files changed, 693 deletions(-) diff --git a/query-languages/m/access-database.md b/query-languages/m/access-database.md index de0521251..af89e4749 100644 --- a/query-languages/m/access-database.md +++ b/query-languages/m/access-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Access.Database" title: "Access.Database" -ms.date: 10/7/2022 --- # Access.Database diff --git a/query-languages/m/accesscontrolentry-conditiontoidentities.md b/query-languages/m/accesscontrolentry-conditiontoidentities.md index 5dc58b5f2..d4bb8ce68 100644 --- a/query-languages/m/accesscontrolentry-conditiontoidentities.md +++ b/query-languages/m/accesscontrolentry-conditiontoidentities.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AccessControlEntry.ConditionToIdentities" title: "AccessControlEntry.ConditionToIdentities" -ms.date: 10/7/2022 --- # AccessControlEntry.ConditionToIdentities diff --git a/query-languages/m/accesscontrolkind-type.md b/query-languages/m/accesscontrolkind-type.md index 38e023ceb..b201f03d4 100644 --- a/query-languages/m/accesscontrolkind-type.md +++ b/query-languages/m/accesscontrolkind-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AccessControlKind.Type" title: "AccessControlKind.Type" -ms.date: 10/7/2022 --- # AccessControlKind.Type diff --git a/query-languages/m/activedirectory-domains.md b/query-languages/m/activedirectory-domains.md index 4a063cd0e..258768ffa 100644 --- a/query-languages/m/activedirectory-domains.md +++ b/query-languages/m/activedirectory-domains.md @@ -1,7 +1,6 @@ --- description: "Learn more about: ActiveDirectory.Domains" title: "ActiveDirectory.Domains" -ms.date: 10/7/2022 --- # ActiveDirectory.Domains diff --git a/query-languages/m/adobeanalytics-cubes.md b/query-languages/m/adobeanalytics-cubes.md index b20d0bb16..c7f70d952 100644 --- a/query-languages/m/adobeanalytics-cubes.md +++ b/query-languages/m/adobeanalytics-cubes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AdobeAnalytics.Cubes" title: "AdobeAnalytics.Cubes" -ms.date: 10/7/2022 --- # AdobeAnalytics.Cubes diff --git a/query-languages/m/adodotnet-datasource.md b/query-languages/m/adodotnet-datasource.md index 3ae293996..7e94765f9 100644 --- a/query-languages/m/adodotnet-datasource.md +++ b/query-languages/m/adodotnet-datasource.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AdoDotNet.DataSource" title: "AdoDotNet.DataSource" -ms.date: 10/7/2022 --- # AdoDotNet.DataSource diff --git a/query-languages/m/adodotnet-query.md b/query-languages/m/adodotnet-query.md index 3efc601e6..1e02e9e81 100644 --- a/query-languages/m/adodotnet-query.md +++ b/query-languages/m/adodotnet-query.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AdoDotNet.Query" title: "AdoDotNet.Query" -ms.date: 10/7/2022 --- # AdoDotNet.Query diff --git a/query-languages/m/analysisservices-database.md b/query-languages/m/analysisservices-database.md index 5e0424d39..f6342e395 100644 --- a/query-languages/m/analysisservices-database.md +++ b/query-languages/m/analysisservices-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AnalysisServices.Database" title: "AnalysisServices.Database" -ms.date: 10/7/2022 --- # AnalysisServices.Database diff --git a/query-languages/m/analysisservices-databases.md b/query-languages/m/analysisservices-databases.md index e66c01649..f087cd16f 100644 --- a/query-languages/m/analysisservices-databases.md +++ b/query-languages/m/analysisservices-databases.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AnalysisServices.Databases" title: "AnalysisServices.Databases" -ms.date: 10/7/2022 --- # AnalysisServices.Databases diff --git a/query-languages/m/azurestorage-blobcontents.md b/query-languages/m/azurestorage-blobcontents.md index 90bbd74fd..988d27554 100644 --- a/query-languages/m/azurestorage-blobcontents.md +++ b/query-languages/m/azurestorage-blobcontents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AzureStorage.BlobContents" title: "AzureStorage.BlobContents" -ms.date: 10/7/2022 --- # AzureStorage.BlobContents diff --git a/query-languages/m/azurestorage-blobs.md b/query-languages/m/azurestorage-blobs.md index 1b74c391b..36c6f44dc 100644 --- a/query-languages/m/azurestorage-blobs.md +++ b/query-languages/m/azurestorage-blobs.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AzureStorage.Blobs" title: "AzureStorage.Blobs" -ms.date: 10/7/2022 --- # AzureStorage.Blobs diff --git a/query-languages/m/azurestorage-datalake.md b/query-languages/m/azurestorage-datalake.md index d3706307d..3edb01dca 100644 --- a/query-languages/m/azurestorage-datalake.md +++ b/query-languages/m/azurestorage-datalake.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AzureStorage.DataLake" title: "AzureStorage.DataLake" -ms.date: 10/7/2022 --- # AzureStorage.DataLake diff --git a/query-languages/m/azurestorage-datalakecontents.md b/query-languages/m/azurestorage-datalakecontents.md index b686d1fcb..0051ea59b 100644 --- a/query-languages/m/azurestorage-datalakecontents.md +++ b/query-languages/m/azurestorage-datalakecontents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AzureStorage.DataLakeContents" title: "AzureStorage.DataLakeContents" -ms.date: 10/7/2022 --- # AzureStorage.DataLakeContents diff --git a/query-languages/m/azurestorage-tables.md b/query-languages/m/azurestorage-tables.md index 137d98d2c..20acd7fb5 100644 --- a/query-languages/m/azurestorage-tables.md +++ b/query-languages/m/azurestorage-tables.md @@ -1,7 +1,6 @@ --- description: "Learn more about: AzureStorage.Tables" title: "AzureStorage.Tables" -ms.date: 5/25/2021 --- # AzureStorage.Tables diff --git a/query-languages/m/binary-approximatelength.md b/query-languages/m/binary-approximatelength.md index 784ae682f..3d8ccb16a 100644 --- a/query-languages/m/binary-approximatelength.md +++ b/query-languages/m/binary-approximatelength.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.ApproximateLength" title: "Binary.ApproximateLength" -ms.date: 5/19/2022 --- # Binary.ApproximateLength diff --git a/query-languages/m/binary-buffer.md b/query-languages/m/binary-buffer.md index 2123a2b07..55520e3f0 100644 --- a/query-languages/m/binary-buffer.md +++ b/query-languages/m/binary-buffer.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.Buffer" title: "Binary.Buffer" -ms.date: 3/11/2022 --- # Binary.Buffer diff --git a/query-languages/m/binary-combine.md b/query-languages/m/binary-combine.md index 7c5cc0861..56038484b 100644 --- a/query-languages/m/binary-combine.md +++ b/query-languages/m/binary-combine.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.Combine" title: "Binary.Combine" -ms.date: 10/7/2022 --- # Binary.Combine diff --git a/query-languages/m/binary-compress.md b/query-languages/m/binary-compress.md index 70f34c9d7..08089a5ec 100644 --- a/query-languages/m/binary-compress.md +++ b/query-languages/m/binary-compress.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.Compress" title: "Binary.Compress" -ms.date: 12/19/2022 --- # Binary.Compress diff --git a/query-languages/m/binary-decompress.md b/query-languages/m/binary-decompress.md index 399f58f11..912f5cd41 100644 --- a/query-languages/m/binary-decompress.md +++ b/query-languages/m/binary-decompress.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.Decompress" title: "Binary.Decompress" -ms.date: 12/19/2022 --- # Binary.Decompress diff --git a/query-languages/m/binary-from.md b/query-languages/m/binary-from.md index ddb47b1a8..b3dbf7bf4 100644 --- a/query-languages/m/binary-from.md +++ b/query-languages/m/binary-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.From" title: "Binary.From" -ms.date: 10/7/2022 --- # Binary.From diff --git a/query-languages/m/binary-fromlist.md b/query-languages/m/binary-fromlist.md index 8a26814d0..a2a4dc555 100644 --- a/query-languages/m/binary-fromlist.md +++ b/query-languages/m/binary-fromlist.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.FromList" title: "Binary.FromList" -ms.date: 10/10/2022 --- # Binary.FromList diff --git a/query-languages/m/binary-fromtext.md b/query-languages/m/binary-fromtext.md index 70ea48ea4..2d09cf0b7 100644 --- a/query-languages/m/binary-fromtext.md +++ b/query-languages/m/binary-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.FromText" title: "Binary.FromText" -ms.date: 12/2/2022 --- # Binary.FromText diff --git a/query-languages/m/binary-infercontenttype.md b/query-languages/m/binary-infercontenttype.md index f93baafd5..5733e34d6 100644 --- a/query-languages/m/binary-infercontenttype.md +++ b/query-languages/m/binary-infercontenttype.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.InferContentType" title: "Binary.InferContentType" -ms.date: 10/7/2022 --- # Binary.InferContentType diff --git a/query-languages/m/binary-length.md b/query-languages/m/binary-length.md index f07bb80be..40fcc9397 100644 --- a/query-languages/m/binary-length.md +++ b/query-languages/m/binary-length.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.Length" title: "Binary.Length" -ms.date: 10/7/2022 --- # Binary.Length diff --git a/query-languages/m/binary-range.md b/query-languages/m/binary-range.md index f3c5d69e2..32c8bd5a9 100644 --- a/query-languages/m/binary-range.md +++ b/query-languages/m/binary-range.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.Range" title: "Binary.Range" -ms.date: 3/7/2022 --- # Binary.Range diff --git a/query-languages/m/binary-split.md b/query-languages/m/binary-split.md index 07d9fdc8e..1436b9118 100644 --- a/query-languages/m/binary-split.md +++ b/query-languages/m/binary-split.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.Split" title: "Binary.Split" -ms.date: 2/17/2023 --- # Binary.Split diff --git a/query-languages/m/binary-tolist.md b/query-languages/m/binary-tolist.md index d716a4785..a3218d280 100644 --- a/query-languages/m/binary-tolist.md +++ b/query-languages/m/binary-tolist.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.ToList" title: "Binary.ToList" -ms.date: 10/7/2022 --- # Binary.ToList diff --git a/query-languages/m/binary-totext.md b/query-languages/m/binary-totext.md index 73bbc551f..071e95e9c 100644 --- a/query-languages/m/binary-totext.md +++ b/query-languages/m/binary-totext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.ToText" title: "Binary.ToText" -ms.date: 10/7/2022 --- # Binary.ToText diff --git a/query-languages/m/binary-view.md b/query-languages/m/binary-view.md index e929bcb98..ba511adbb 100644 --- a/query-languages/m/binary-view.md +++ b/query-languages/m/binary-view.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.View" title: "Binary.View" -ms.date: 10/7/2022 --- # Binary.View diff --git a/query-languages/m/binary-viewerror.md b/query-languages/m/binary-viewerror.md index 21d66487a..88c872e90 100644 --- a/query-languages/m/binary-viewerror.md +++ b/query-languages/m/binary-viewerror.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.ViewError" title: "Binary.ViewError" -ms.date: 7/19/2022 --- # Binary.ViewError diff --git a/query-languages/m/binary-viewfunction.md b/query-languages/m/binary-viewfunction.md index b48b0b93a..73b51ad09 100644 --- a/query-languages/m/binary-viewfunction.md +++ b/query-languages/m/binary-viewfunction.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Binary.ViewFunction" title: "Binary.ViewFunction" -ms.date: 10/18/2022 --- # Binary.ViewFunction diff --git a/query-languages/m/binaryencoding-type.md b/query-languages/m/binaryencoding-type.md index c17ee9bfb..9655682e2 100644 --- a/query-languages/m/binaryencoding-type.md +++ b/query-languages/m/binaryencoding-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryEncoding.Type" title: "BinaryEncoding.Type" -ms.date: 10/7/2022 --- # BinaryEncoding.Type diff --git a/query-languages/m/binaryformat-7bitencodedsignedinteger.md b/query-languages/m/binaryformat-7bitencodedsignedinteger.md index 1e983ec17..36b322b0e 100644 --- a/query-languages/m/binaryformat-7bitencodedsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedsignedinteger.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.7BitEncodedSignedInteger" title: "BinaryFormat.7BitEncodedSignedInteger" -ms.date: 10/7/2022 --- # BinaryFormat.7BitEncodedSignedInteger diff --git a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md index 08f3d03c9..167b4b274 100644 --- a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.7BitEncodedUnsignedInteger" title: "BinaryFormat.7BitEncodedUnsignedInteger" -ms.date: 10/7/2022 --- # BinaryFormat.7BitEncodedUnsignedInteger diff --git a/query-languages/m/binaryformat-binary.md b/query-languages/m/binaryformat-binary.md index bc98f4c85..a446e5535 100644 --- a/query-languages/m/binaryformat-binary.md +++ b/query-languages/m/binaryformat-binary.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Binary" title: "BinaryFormat.Binary" -ms.date: 10/7/2022 --- # BinaryFormat.Binary diff --git a/query-languages/m/binaryformat-byte.md b/query-languages/m/binaryformat-byte.md index fbf6fe3d0..00261c535 100644 --- a/query-languages/m/binaryformat-byte.md +++ b/query-languages/m/binaryformat-byte.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Byte" title: "BinaryFormat.Byte" -ms.date: 10/7/2022 --- # BinaryFormat.Byte diff --git a/query-languages/m/binaryformat-byteorder.md b/query-languages/m/binaryformat-byteorder.md index 5cbfe44dc..23a9bd270 100644 --- a/query-languages/m/binaryformat-byteorder.md +++ b/query-languages/m/binaryformat-byteorder.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.ByteOrder" title: "BinaryFormat.ByteOrder" -ms.date: 10/7/2022 --- # BinaryFormat.ByteOrder diff --git a/query-languages/m/binaryformat-choice.md b/query-languages/m/binaryformat-choice.md index 4bdb4050b..094ab9159 100644 --- a/query-languages/m/binaryformat-choice.md +++ b/query-languages/m/binaryformat-choice.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Choice" title: "BinaryFormat.Choice" -ms.date: 3/7/2022 --- # BinaryFormat.Choice diff --git a/query-languages/m/binaryformat-decimal.md b/query-languages/m/binaryformat-decimal.md index d10bfae74..2edb13cad 100644 --- a/query-languages/m/binaryformat-decimal.md +++ b/query-languages/m/binaryformat-decimal.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Decimal" title: "BinaryFormat.Decimal" -ms.date: 10/7/2022 --- # BinaryFormat.Decimal diff --git a/query-languages/m/binaryformat-double.md b/query-languages/m/binaryformat-double.md index 1979515b5..6ba9a960a 100644 --- a/query-languages/m/binaryformat-double.md +++ b/query-languages/m/binaryformat-double.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Double" title: "BinaryFormat.Double" -ms.date: 10/7/2022 --- # BinaryFormat.Double diff --git a/query-languages/m/binaryformat-group.md b/query-languages/m/binaryformat-group.md index 4a53ca126..81057b234 100644 --- a/query-languages/m/binaryformat-group.md +++ b/query-languages/m/binaryformat-group.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Group" title: "BinaryFormat.Group" -ms.date: 5/19/2022 --- # BinaryFormat.Group diff --git a/query-languages/m/binaryformat-length.md b/query-languages/m/binaryformat-length.md index f9777230a..f3c8843c8 100644 --- a/query-languages/m/binaryformat-length.md +++ b/query-languages/m/binaryformat-length.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Length" title: "BinaryFormat.Length" -ms.date: 10/7/2022 --- # BinaryFormat.Length diff --git a/query-languages/m/binaryformat-list.md b/query-languages/m/binaryformat-list.md index ab4f9733a..8e96505a1 100644 --- a/query-languages/m/binaryformat-list.md +++ b/query-languages/m/binaryformat-list.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.List" title: "BinaryFormat.List" -ms.date: 10/7/2022 --- # BinaryFormat.List diff --git a/query-languages/m/binaryformat-null.md b/query-languages/m/binaryformat-null.md index dea172ff9..14e3218fa 100644 --- a/query-languages/m/binaryformat-null.md +++ b/query-languages/m/binaryformat-null.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Null" title: "BinaryFormat.Null" -ms.date: 10/7/2022 --- # BinaryFormat.Null diff --git a/query-languages/m/binaryformat-record.md b/query-languages/m/binaryformat-record.md index 13bc80702..28cbcba51 100644 --- a/query-languages/m/binaryformat-record.md +++ b/query-languages/m/binaryformat-record.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Record" title: "BinaryFormat.Record" -ms.date: 10/7/2022 --- # BinaryFormat.Record diff --git a/query-languages/m/binaryformat-signedinteger16.md b/query-languages/m/binaryformat-signedinteger16.md index e56a0b608..b4017d4cf 100644 --- a/query-languages/m/binaryformat-signedinteger16.md +++ b/query-languages/m/binaryformat-signedinteger16.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.SignedInteger16" title: "BinaryFormat.SignedInteger16" -ms.date: 10/7/2022 --- # BinaryFormat.SignedInteger16 diff --git a/query-languages/m/binaryformat-signedinteger32.md b/query-languages/m/binaryformat-signedinteger32.md index 5d25b8c4c..d33c91142 100644 --- a/query-languages/m/binaryformat-signedinteger32.md +++ b/query-languages/m/binaryformat-signedinteger32.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.SignedInteger32" title: "BinaryFormat.SignedInteger32" -ms.date: 10/7/2022 --- # BinaryFormat.SignedInteger32 diff --git a/query-languages/m/binaryformat-signedinteger64.md b/query-languages/m/binaryformat-signedinteger64.md index 4c8f3d17f..807a05577 100644 --- a/query-languages/m/binaryformat-signedinteger64.md +++ b/query-languages/m/binaryformat-signedinteger64.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.SignedInteger64" title: "BinaryFormat.SignedInteger64" -ms.date: 10/7/2022 --- # BinaryFormat.SignedInteger64 diff --git a/query-languages/m/binaryformat-single.md b/query-languages/m/binaryformat-single.md index 2fec4d1e9..afe19ea56 100644 --- a/query-languages/m/binaryformat-single.md +++ b/query-languages/m/binaryformat-single.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Single" title: "BinaryFormat.Single" -ms.date: 10/7/2022 --- # BinaryFormat.Single diff --git a/query-languages/m/binaryformat-text.md b/query-languages/m/binaryformat-text.md index 18b20a3d7..d752bda91 100644 --- a/query-languages/m/binaryformat-text.md +++ b/query-languages/m/binaryformat-text.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Text" title: "BinaryFormat.Text" -ms.date: 10/7/2022 --- # BinaryFormat.Text diff --git a/query-languages/m/binaryformat-transform.md b/query-languages/m/binaryformat-transform.md index 654757e63..a21f6e0e2 100644 --- a/query-languages/m/binaryformat-transform.md +++ b/query-languages/m/binaryformat-transform.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.Transform" title: "BinaryFormat.Transform" -ms.date: 3/11/2022 --- # BinaryFormat.Transform diff --git a/query-languages/m/binaryformat-unsignedinteger16.md b/query-languages/m/binaryformat-unsignedinteger16.md index cc2ff94ff..6c133ab24 100644 --- a/query-languages/m/binaryformat-unsignedinteger16.md +++ b/query-languages/m/binaryformat-unsignedinteger16.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger16" title: "BinaryFormat.UnsignedInteger16" -ms.date: 10/7/2022 --- # BinaryFormat.UnsignedInteger16 diff --git a/query-languages/m/binaryformat-unsignedinteger32.md b/query-languages/m/binaryformat-unsignedinteger32.md index 379c0fe2d..34ef0186c 100644 --- a/query-languages/m/binaryformat-unsignedinteger32.md +++ b/query-languages/m/binaryformat-unsignedinteger32.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger32" title: "BinaryFormat.UnsignedInteger32" -ms.date: 10/7/2022 --- # BinaryFormat.UnsignedInteger32 diff --git a/query-languages/m/binaryformat-unsignedinteger64.md b/query-languages/m/binaryformat-unsignedinteger64.md index ab4e0ea4b..3ab7d1578 100644 --- a/query-languages/m/binaryformat-unsignedinteger64.md +++ b/query-languages/m/binaryformat-unsignedinteger64.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger64" title: "BinaryFormat.UnsignedInteger64" -ms.date: 10/7/2022 --- # BinaryFormat.UnsignedInteger64 diff --git a/query-languages/m/binaryoccurrence-type.md b/query-languages/m/binaryoccurrence-type.md index cac17a053..e2a63505f 100644 --- a/query-languages/m/binaryoccurrence-type.md +++ b/query-languages/m/binaryoccurrence-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BinaryOccurrence.Type" title: "BinaryOccurrence.Type" -ms.date: 10/7/2022 --- # BinaryOccurrence.Type diff --git a/query-languages/m/buffermode-type.md b/query-languages/m/buffermode-type.md index 99c9661c4..9bd42efdb 100644 --- a/query-languages/m/buffermode-type.md +++ b/query-languages/m/buffermode-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: BufferMode.Type" title: "BufferMode.Type" -ms.date: 10/7/2022 --- # BufferMode.Type diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index 0be8f019d..b5aef69b2 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Byte.From" title: "Byte.From" -ms.date: 12/19/2022 --- # Byte.From diff --git a/query-languages/m/byteorder-type.md b/query-languages/m/byteorder-type.md index dd951bebe..752c58044 100644 --- a/query-languages/m/byteorder-type.md +++ b/query-languages/m/byteorder-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: ByteOrder.Type" title: "ByteOrder.Type" -ms.date: 5/16/2022 --- # ByteOrder.Type diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index fc0b914c7..a91aea845 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cdm.Contents" title: "Cdm.Contents" -ms.date: 10/7/2022 --- # Cdm.Contents diff --git a/query-languages/m/character-fromnumber.md b/query-languages/m/character-fromnumber.md index 7fb706e51..6d4537bfc 100644 --- a/query-languages/m/character-fromnumber.md +++ b/query-languages/m/character-fromnumber.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Character.FromNumber" title: "Character.FromNumber" -ms.date: 10/7/2022 --- # Character.FromNumber diff --git a/query-languages/m/character-tonumber.md b/query-languages/m/character-tonumber.md index eb0e234fe..594245ada 100644 --- a/query-languages/m/character-tonumber.md +++ b/query-languages/m/character-tonumber.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Character.ToNumber" title: "Character.ToNumber" -ms.date: 10/7/2022 --- # Character.ToNumber diff --git a/query-languages/m/combiner-combinetextbydelimiter.md b/query-languages/m/combiner-combinetextbydelimiter.md index 5118adcee..12ab81cf4 100644 --- a/query-languages/m/combiner-combinetextbydelimiter.md +++ b/query-languages/m/combiner-combinetextbydelimiter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByDelimiter" title: "Combiner.CombineTextByDelimiter" -ms.date: 6/15/2023 --- # Combiner.CombineTextByDelimiter diff --git a/query-languages/m/combiner-combinetextbyeachdelimiter.md b/query-languages/m/combiner-combinetextbyeachdelimiter.md index 80af2e97d..7afff1c0b 100644 --- a/query-languages/m/combiner-combinetextbyeachdelimiter.md +++ b/query-languages/m/combiner-combinetextbyeachdelimiter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByEachDelimiter" title: "Combiner.CombineTextByEachDelimiter" -ms.date: 10/7/2022 --- # Combiner.CombineTextByEachDelimiter diff --git a/query-languages/m/combiner-combinetextbylengths.md b/query-languages/m/combiner-combinetextbylengths.md index d80686f3b..a51ab75b5 100644 --- a/query-languages/m/combiner-combinetextbylengths.md +++ b/query-languages/m/combiner-combinetextbylengths.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByLengths" title: "Combiner.CombineTextByLengths" -ms.date: 10/7/2022 --- # Combiner.CombineTextByLengths diff --git a/query-languages/m/combiner-combinetextbypositions.md b/query-languages/m/combiner-combinetextbypositions.md index f56d49ac2..fe4605d4f 100644 --- a/query-languages/m/combiner-combinetextbypositions.md +++ b/query-languages/m/combiner-combinetextbypositions.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByPositions" title: "Combiner.CombineTextByPositions" -ms.date: 10/7/2022 --- # Combiner.CombineTextByPositions diff --git a/query-languages/m/combiner-combinetextbyranges.md b/query-languages/m/combiner-combinetextbyranges.md index 18d458a7b..a1694da53 100644 --- a/query-languages/m/combiner-combinetextbyranges.md +++ b/query-languages/m/combiner-combinetextbyranges.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Combiner.CombineTextByRanges" title: "Combiner.CombineTextByRanges" -ms.date: 10/7/2022 --- # Combiner.CombineTextByRanges diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index c42730135..72e5f5dab 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Comparer.Equals" title: "Comparer.Equals" -ms.date: 10/7/2022 --- # Comparer.Equals diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index 5a42f9d06..c58cc5d9e 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Comparer.FromCulture" title: "Comparer.FromCulture" -ms.date: 10/7/2022 --- # Comparer.FromCulture diff --git a/query-languages/m/comparer-ordinal.md b/query-languages/m/comparer-ordinal.md index 0f513480c..d8318ae12 100644 --- a/query-languages/m/comparer-ordinal.md +++ b/query-languages/m/comparer-ordinal.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Comparer.Ordinal" title: "Comparer.Ordinal" -ms.date: 10/7/2022 --- # Comparer.Ordinal diff --git a/query-languages/m/comparer-ordinalignorecase.md b/query-languages/m/comparer-ordinalignorecase.md index 1a26c44fc..03859bd45 100644 --- a/query-languages/m/comparer-ordinalignorecase.md +++ b/query-languages/m/comparer-ordinalignorecase.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Comparer.OrdinalIgnoreCase" title: "Comparer.OrdinalIgnoreCase" -ms.date: 3/8/2022 --- # Comparer.OrdinalIgnoreCase diff --git a/query-languages/m/compression-type.md b/query-languages/m/compression-type.md index 81ea25073..967e70ec2 100644 --- a/query-languages/m/compression-type.md +++ b/query-languages/m/compression-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Compression.Type" title: "Compression.Type" -ms.date: 5/16/2022 --- # Compression.Type diff --git a/query-languages/m/constants.md b/query-languages/m/constants.md index 326855e2c..01a3a7414 100644 --- a/query-languages/m/constants.md +++ b/query-languages/m/constants.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Constants" title: "Constants" -ms.date: 10/7/2022 --- # Constants diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 43a78567e..a563b3b17 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Csv.Document" title: "Csv.Document" -ms.date: 6/15/2023 --- # Csv.Document diff --git a/query-languages/m/csvstyle-type.md b/query-languages/m/csvstyle-type.md index 76cae9c23..2e04c9023 100644 --- a/query-languages/m/csvstyle-type.md +++ b/query-languages/m/csvstyle-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: CsvStyle.Type" title: "CsvStyle.Type" -ms.date: 10/7/2022 --- # CsvStyle.Type diff --git a/query-languages/m/cube-addandexpanddimensioncolumn.md b/query-languages/m/cube-addandexpanddimensioncolumn.md index 185e0f23a..3ade5d7c1 100644 --- a/query-languages/m/cube-addandexpanddimensioncolumn.md +++ b/query-languages/m/cube-addandexpanddimensioncolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.AddAndExpandDimensionColumn" title: "Cube.AddAndExpandDimensionColumn" -ms.date: 10/7/2022 --- # Cube.AddAndExpandDimensionColumn diff --git a/query-languages/m/cube-addmeasurecolumn.md b/query-languages/m/cube-addmeasurecolumn.md index 113de7ee5..cca1e6968 100644 --- a/query-languages/m/cube-addmeasurecolumn.md +++ b/query-languages/m/cube-addmeasurecolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.AddMeasureColumn" title: "Cube.AddMeasureColumn" -ms.date: 10/7/2022 --- # Cube.AddMeasureColumn diff --git a/query-languages/m/cube-applyparameter.md b/query-languages/m/cube-applyparameter.md index 9e6ff6c44..6824b1a7f 100644 --- a/query-languages/m/cube-applyparameter.md +++ b/query-languages/m/cube-applyparameter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.ApplyParameter" title: "Cube.ApplyParameter" -ms.date: 10/7/2022 --- # Cube.ApplyParameter diff --git a/query-languages/m/cube-attributememberid.md b/query-languages/m/cube-attributememberid.md index e2e7dcd6a..c7c5c99c5 100644 --- a/query-languages/m/cube-attributememberid.md +++ b/query-languages/m/cube-attributememberid.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.AttributeMemberId" title: "Cube.AttributeMemberId" -ms.date: 10/7/2022 --- # Cube.AttributeMemberId diff --git a/query-languages/m/cube-attributememberproperty.md b/query-languages/m/cube-attributememberproperty.md index 79ea69560..6e1d14a31 100644 --- a/query-languages/m/cube-attributememberproperty.md +++ b/query-languages/m/cube-attributememberproperty.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.AttributeMemberProperty" title: "Cube.AttributeMemberProperty" -ms.date: 10/7/2022 --- # Cube.AttributeMemberProperty diff --git a/query-languages/m/cube-collapseandremovecolumns.md b/query-languages/m/cube-collapseandremovecolumns.md index 2f743f44d..dd1c6c877 100644 --- a/query-languages/m/cube-collapseandremovecolumns.md +++ b/query-languages/m/cube-collapseandremovecolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.CollapseAndRemoveColumns" title: "Cube.CollapseAndRemoveColumns" -ms.date: 10/7/2022 --- # Cube.CollapseAndRemoveColumns diff --git a/query-languages/m/cube-dimensions.md b/query-languages/m/cube-dimensions.md index 6fa9c47fb..69d16e4c0 100644 --- a/query-languages/m/cube-dimensions.md +++ b/query-languages/m/cube-dimensions.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.Dimensions" title: "Cube.Dimensions" -ms.date: 10/7/2022 --- # Cube.Dimensions diff --git a/query-languages/m/cube-displayfolders.md b/query-languages/m/cube-displayfolders.md index 0f425109b..3922a2412 100644 --- a/query-languages/m/cube-displayfolders.md +++ b/query-languages/m/cube-displayfolders.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.DisplayFolders" title: "Cube.DisplayFolders" -ms.date: 11/17/2021 --- # Cube.DisplayFolders diff --git a/query-languages/m/cube-measureproperties.md b/query-languages/m/cube-measureproperties.md index 429626b70..5ccfa0552 100644 --- a/query-languages/m/cube-measureproperties.md +++ b/query-languages/m/cube-measureproperties.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.MeasureProperties" title: "Cube.MeasureProperties" -ms.date: 10/7/2022 --- # Cube.MeasureProperties diff --git a/query-languages/m/cube-measureproperty.md b/query-languages/m/cube-measureproperty.md index 5808b685b..7e26bb5a7 100644 --- a/query-languages/m/cube-measureproperty.md +++ b/query-languages/m/cube-measureproperty.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.MeasureProperty" title: "Cube.MeasureProperty" -ms.date: 10/7/2022 --- # Cube.MeasureProperty diff --git a/query-languages/m/cube-measures.md b/query-languages/m/cube-measures.md index 18cac0274..c14b3eb48 100644 --- a/query-languages/m/cube-measures.md +++ b/query-languages/m/cube-measures.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.Measures" title: "Cube.Measures" -ms.date: 10/7/2022 --- # Cube.Measures diff --git a/query-languages/m/cube-parameters.md b/query-languages/m/cube-parameters.md index e565115a7..70b005e0f 100644 --- a/query-languages/m/cube-parameters.md +++ b/query-languages/m/cube-parameters.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.Parameters" title: "Cube.Parameters" -ms.date: 10/7/2022 --- # Cube.Parameters diff --git a/query-languages/m/cube-properties.md b/query-languages/m/cube-properties.md index a3b76441b..315159e57 100644 --- a/query-languages/m/cube-properties.md +++ b/query-languages/m/cube-properties.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.Properties" title: "Cube.Properties" -ms.date: 10/7/2022 --- # Cube.Properties diff --git a/query-languages/m/cube-propertykey.md b/query-languages/m/cube-propertykey.md index d2670ccc2..e2beb19d5 100644 --- a/query-languages/m/cube-propertykey.md +++ b/query-languages/m/cube-propertykey.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.PropertyKey" title: "Cube.PropertyKey" -ms.date: 10/7/2022 --- # Cube.PropertyKey diff --git a/query-languages/m/cube-replacedimensions.md b/query-languages/m/cube-replacedimensions.md index 37522ab73..6b3962bc6 100644 --- a/query-languages/m/cube-replacedimensions.md +++ b/query-languages/m/cube-replacedimensions.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.ReplaceDimensions" title: "Cube.ReplaceDimensions" -ms.date: 1/24/2022 --- # Cube.ReplaceDimensions diff --git a/query-languages/m/cube-transform.md b/query-languages/m/cube-transform.md index 1d59f2c54..bcd42e4a7 100644 --- a/query-languages/m/cube-transform.md +++ b/query-languages/m/cube-transform.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Cube.Transform" title: "Cube.Transform" -ms.date: 10/7/2022 --- # Cube.Transform diff --git a/query-languages/m/culture-current.md b/query-languages/m/culture-current.md index a85a72bcf..3b3138616 100644 --- a/query-languages/m/culture-current.md +++ b/query-languages/m/culture-current.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Culture.Current" title: "Culture.Current" -ms.date: 10/7/2022 --- # Culture.Current diff --git a/query-languages/m/currency-from.md b/query-languages/m/currency-from.md index 1c2393ddb..b2a41ba48 100644 --- a/query-languages/m/currency-from.md +++ b/query-languages/m/currency-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Currency.From" title: "Currency.From" -ms.date: 10/7/2022 --- # Currency.From diff --git a/query-languages/m/date-adddays.md b/query-languages/m/date-adddays.md index 3f853e620..4526284f9 100644 --- a/query-languages/m/date-adddays.md +++ b/query-languages/m/date-adddays.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.AddDays" title: "Date.AddDays" -ms.date: 10/7/2022 --- # Date.AddDays diff --git a/query-languages/m/date-addmonths.md b/query-languages/m/date-addmonths.md index 682da2ae3..28f958cf3 100644 --- a/query-languages/m/date-addmonths.md +++ b/query-languages/m/date-addmonths.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.AddMonths" title: "Date.AddMonths" -ms.date: 10/7/2022 --- # Date.AddMonths diff --git a/query-languages/m/date-addquarters.md b/query-languages/m/date-addquarters.md index 07245dc03..bcca06312 100644 --- a/query-languages/m/date-addquarters.md +++ b/query-languages/m/date-addquarters.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.AddQuarters" title: "Date.AddQuarters" -ms.date: 10/7/2022 --- # Date.AddQuarters diff --git a/query-languages/m/date-addweeks.md b/query-languages/m/date-addweeks.md index f65372b28..cce6b359c 100644 --- a/query-languages/m/date-addweeks.md +++ b/query-languages/m/date-addweeks.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.AddWeeks" title: "Date.AddWeeks" -ms.date: 10/7/2022 --- # Date.AddWeeks diff --git a/query-languages/m/date-addyears.md b/query-languages/m/date-addyears.md index 5c10fbb9e..066f58de8 100644 --- a/query-languages/m/date-addyears.md +++ b/query-languages/m/date-addyears.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.AddYears" title: "Date.AddYears" -ms.date: 10/7/2022 --- # Date.AddYears diff --git a/query-languages/m/date-day.md b/query-languages/m/date-day.md index 5f49ae227..20f54bc47 100644 --- a/query-languages/m/date-day.md +++ b/query-languages/m/date-day.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.Day" title: "Date.Day" -ms.date: 10/7/2022 --- # Date.Day diff --git a/query-languages/m/date-dayofweek.md b/query-languages/m/date-dayofweek.md index 0f2a3eca4..1e204dd15 100644 --- a/query-languages/m/date-dayofweek.md +++ b/query-languages/m/date-dayofweek.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.DayOfWeek" title: "Date.DayOfWeek" -ms.date: 12/19/2022 --- # Date.DayOfWeek diff --git a/query-languages/m/date-dayofweekname.md b/query-languages/m/date-dayofweekname.md index c67da3691..442427bb5 100644 --- a/query-languages/m/date-dayofweekname.md +++ b/query-languages/m/date-dayofweekname.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.DayOfWeekName" title: "Date.DayOfWeekName" -ms.date: 3/11/2022 --- # Date.DayOfWeekName diff --git a/query-languages/m/date-dayofyear.md b/query-languages/m/date-dayofyear.md index ca511c6a0..effb2b43e 100644 --- a/query-languages/m/date-dayofyear.md +++ b/query-languages/m/date-dayofyear.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.DayOfYear" title: "Date.DayOfYear" -ms.date: 11/14/2022 --- # Date.DayOfYear diff --git a/query-languages/m/date-daysinmonth.md b/query-languages/m/date-daysinmonth.md index bdbc72329..d69b7a85a 100644 --- a/query-languages/m/date-daysinmonth.md +++ b/query-languages/m/date-daysinmonth.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.DaysInMonth" title: "Date.DaysInMonth" -ms.date: 3/11/2022 --- # Date.DaysInMonth diff --git a/query-languages/m/date-endofday.md b/query-languages/m/date-endofday.md index e9c1d0301..3a0c447f2 100644 --- a/query-languages/m/date-endofday.md +++ b/query-languages/m/date-endofday.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.EndOfDay" title: "Date.EndOfDay" -ms.date: 11/14/2022 --- # Date.EndOfDay diff --git a/query-languages/m/date-endofmonth.md b/query-languages/m/date-endofmonth.md index 07d6add90..7c33b7a67 100644 --- a/query-languages/m/date-endofmonth.md +++ b/query-languages/m/date-endofmonth.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.EndOfMonth" title: "Date.EndOfMonth" -ms.date: 11/14/2022 --- # Date.EndOfMonth diff --git a/query-languages/m/date-endofquarter.md b/query-languages/m/date-endofquarter.md index ae39da138..932da4624 100644 --- a/query-languages/m/date-endofquarter.md +++ b/query-languages/m/date-endofquarter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.EndOfQuarter" title: "Date.EndOfQuarter" -ms.date: 11/14/2022 --- # Date.EndOfQuarter diff --git a/query-languages/m/date-endofweek.md b/query-languages/m/date-endofweek.md index e99fa1587..c3753fc8e 100644 --- a/query-languages/m/date-endofweek.md +++ b/query-languages/m/date-endofweek.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.EndOfWeek" title: "Date.EndOfWeek" -ms.date: 11/14/2022 --- # Date.EndOfWeek diff --git a/query-languages/m/date-endofyear.md b/query-languages/m/date-endofyear.md index ca6559c89..db3d764e9 100644 --- a/query-languages/m/date-endofyear.md +++ b/query-languages/m/date-endofyear.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.EndOfYear" title: "Date.EndOfYear" -ms.date: 11/14/2022 --- # Date.EndOfYear diff --git a/query-languages/m/date-from.md b/query-languages/m/date-from.md index 4ae97c87d..ce6ae00ba 100644 --- a/query-languages/m/date-from.md +++ b/query-languages/m/date-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.From" title: "Date.From" -ms.date: 5/19/2022 --- # Date.From diff --git a/query-languages/m/date-fromtext.md b/query-languages/m/date-fromtext.md index bc4efeabe..ab4c6bbaa 100644 --- a/query-languages/m/date-fromtext.md +++ b/query-languages/m/date-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.FromText" title: "Date.FromText" -ms.date: 6/24/2022 --- # Date.FromText diff --git a/query-languages/m/date-isincurrentday.md b/query-languages/m/date-isincurrentday.md index 3fb3d7db2..456186538 100644 --- a/query-languages/m/date-isincurrentday.md +++ b/query-languages/m/date-isincurrentday.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentDay" title: "Date.IsInCurrentDay" -ms.date: 3/11/2022 --- # Date.IsInCurrentDay diff --git a/query-languages/m/date-isincurrentmonth.md b/query-languages/m/date-isincurrentmonth.md index 6b262cc99..b1702640f 100644 --- a/query-languages/m/date-isincurrentmonth.md +++ b/query-languages/m/date-isincurrentmonth.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentMonth" title: "Date.IsInCurrentMonth" -ms.date: 3/11/2022 --- # Date.IsInCurrentMonth diff --git a/query-languages/m/date-isincurrentquarter.md b/query-languages/m/date-isincurrentquarter.md index b2676bfea..3c01a7e48 100644 --- a/query-languages/m/date-isincurrentquarter.md +++ b/query-languages/m/date-isincurrentquarter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentQuarter" title: "Date.IsInCurrentQuarter" -ms.date: 3/11/2022 --- # Date.IsInCurrentQuarter diff --git a/query-languages/m/date-isincurrentweek.md b/query-languages/m/date-isincurrentweek.md index 8fea9a311..a47938cda 100644 --- a/query-languages/m/date-isincurrentweek.md +++ b/query-languages/m/date-isincurrentweek.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentWeek" title: "Date.IsInCurrentWeek" -ms.date: 3/11/2022 --- # Date.IsInCurrentWeek diff --git a/query-languages/m/date-isincurrentyear.md b/query-languages/m/date-isincurrentyear.md index bab17cb12..bfa8365db 100644 --- a/query-languages/m/date-isincurrentyear.md +++ b/query-languages/m/date-isincurrentyear.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInCurrentYear" title: "Date.IsInCurrentYear" -ms.date: 3/11/2022 --- # Date.IsInCurrentYear diff --git a/query-languages/m/date-isinnextday.md b/query-languages/m/date-isinnextday.md index 560ac92b8..04f6f3f15 100644 --- a/query-languages/m/date-isinnextday.md +++ b/query-languages/m/date-isinnextday.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextDay" title: "Date.IsInNextDay" -ms.date: 3/11/2022 --- # Date.IsInNextDay diff --git a/query-languages/m/date-isinnextmonth.md b/query-languages/m/date-isinnextmonth.md index e2c58b0d2..66d2e4288 100644 --- a/query-languages/m/date-isinnextmonth.md +++ b/query-languages/m/date-isinnextmonth.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextMonth" title: "Date.IsInNextMonth" -ms.date: 3/22/2022 --- # Date.IsInNextMonth diff --git a/query-languages/m/date-isinnextndays.md b/query-languages/m/date-isinnextndays.md index a01edc599..0495e4027 100644 --- a/query-languages/m/date-isinnextndays.md +++ b/query-languages/m/date-isinnextndays.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextNDays" title: "Date.IsInNextNDays" -ms.date: 3/22/2022 --- # Date.IsInNextNDays diff --git a/query-languages/m/date-isinnextnmonths.md b/query-languages/m/date-isinnextnmonths.md index 253446f2c..ddb9470c7 100644 --- a/query-languages/m/date-isinnextnmonths.md +++ b/query-languages/m/date-isinnextnmonths.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextNMonths" title: "Date.IsInNextNMonths" -ms.date: 3/11/2022 --- # Date.IsInNextNMonths diff --git a/query-languages/m/date-isinnextnquarters.md b/query-languages/m/date-isinnextnquarters.md index b3422a469..05af22d25 100644 --- a/query-languages/m/date-isinnextnquarters.md +++ b/query-languages/m/date-isinnextnquarters.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextNQuarters" title: "Date.IsInNextNQuarters" -ms.date: 3/11/2022 --- # Date.IsInNextNQuarters diff --git a/query-languages/m/date-isinnextnweeks.md b/query-languages/m/date-isinnextnweeks.md index 9bdebb507..e7174d2f0 100644 --- a/query-languages/m/date-isinnextnweeks.md +++ b/query-languages/m/date-isinnextnweeks.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextNWeeks" title: "Date.IsInNextNWeeks" -ms.date: 3/11/2022 --- # Date.IsInNextNWeeks diff --git a/query-languages/m/date-isinnextnyears.md b/query-languages/m/date-isinnextnyears.md index 1f8cee24e..d69daacfa 100644 --- a/query-languages/m/date-isinnextnyears.md +++ b/query-languages/m/date-isinnextnyears.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextNYears" title: "Date.IsInNextNYears" -ms.date: 3/11/2022 --- # Date.IsInNextNYears diff --git a/query-languages/m/date-isinnextquarter.md b/query-languages/m/date-isinnextquarter.md index fea025ed4..214055f97 100644 --- a/query-languages/m/date-isinnextquarter.md +++ b/query-languages/m/date-isinnextquarter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextQuarter" title: "Date.IsInNextQuarter" -ms.date: 3/8/2022 --- # Date.IsInNextQuarter diff --git a/query-languages/m/date-isinnextweek.md b/query-languages/m/date-isinnextweek.md index f6fc83362..105123730 100644 --- a/query-languages/m/date-isinnextweek.md +++ b/query-languages/m/date-isinnextweek.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextWeek" title: "Date.IsInNextWeek" -ms.date: 3/11/2022 --- # Date.IsInNextWeek diff --git a/query-languages/m/date-isinnextyear.md b/query-languages/m/date-isinnextyear.md index bc8225a6a..689d0a9a1 100644 --- a/query-languages/m/date-isinnextyear.md +++ b/query-languages/m/date-isinnextyear.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInNextYear" title: "Date.IsInNextYear" -ms.date: 3/11/2022 --- # Date.IsInNextYear diff --git a/query-languages/m/date-isinpreviousday.md b/query-languages/m/date-isinpreviousday.md index b63b0e75e..1a7e4aa42 100644 --- a/query-languages/m/date-isinpreviousday.md +++ b/query-languages/m/date-isinpreviousday.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousDay" title: "Date.IsInPreviousDay" -ms.date: 3/11/2022 --- # Date.IsInPreviousDay diff --git a/query-languages/m/date-isinpreviousmonth.md b/query-languages/m/date-isinpreviousmonth.md index a916d7845..75f24779b 100644 --- a/query-languages/m/date-isinpreviousmonth.md +++ b/query-languages/m/date-isinpreviousmonth.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousMonth" title: "Date.IsInPreviousMonth" -ms.date: 3/11/2022 --- # Date.IsInPreviousMonth diff --git a/query-languages/m/date-isinpreviousndays.md b/query-languages/m/date-isinpreviousndays.md index 9a0281af1..88dd4fe73 100644 --- a/query-languages/m/date-isinpreviousndays.md +++ b/query-languages/m/date-isinpreviousndays.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNDays" title: "Date.IsInPreviousNDays" -ms.date: 3/22/2022 --- # Date.IsInPreviousNDays diff --git a/query-languages/m/date-isinpreviousnmonths.md b/query-languages/m/date-isinpreviousnmonths.md index 1a1eece8e..6d3c69685 100644 --- a/query-languages/m/date-isinpreviousnmonths.md +++ b/query-languages/m/date-isinpreviousnmonths.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNMonths" title: "Date.IsInPreviousNMonths" -ms.date: 3/11/2022 --- # Date.IsInPreviousNMonths diff --git a/query-languages/m/date-isinpreviousnquarters.md b/query-languages/m/date-isinpreviousnquarters.md index 1533786be..43b6d309d 100644 --- a/query-languages/m/date-isinpreviousnquarters.md +++ b/query-languages/m/date-isinpreviousnquarters.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNQuarters" title: "Date.IsInPreviousNQuarters" -ms.date: 3/11/2022 --- # Date.IsInPreviousNQuarters diff --git a/query-languages/m/date-isinpreviousnweeks.md b/query-languages/m/date-isinpreviousnweeks.md index e71d812a6..034e8db08 100644 --- a/query-languages/m/date-isinpreviousnweeks.md +++ b/query-languages/m/date-isinpreviousnweeks.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNWeeks" title: "Date.IsInPreviousNWeeks" -ms.date: 3/11/2022 --- # Date.IsInPreviousNWeeks diff --git a/query-languages/m/date-isinpreviousnyears.md b/query-languages/m/date-isinpreviousnyears.md index 59c6ad4fd..78f0da6f4 100644 --- a/query-languages/m/date-isinpreviousnyears.md +++ b/query-languages/m/date-isinpreviousnyears.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousNYears" title: "Date.IsInPreviousNYears" -ms.date: 3/11/2022 --- # Date.IsInPreviousNYears diff --git a/query-languages/m/date-isinpreviousquarter.md b/query-languages/m/date-isinpreviousquarter.md index e1239dea7..cf5d7d4b6 100644 --- a/query-languages/m/date-isinpreviousquarter.md +++ b/query-languages/m/date-isinpreviousquarter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousQuarter" title: "Date.IsInPreviousQuarter" -ms.date: 3/11/2022 --- # Date.IsInPreviousQuarter diff --git a/query-languages/m/date-isinpreviousweek.md b/query-languages/m/date-isinpreviousweek.md index 340cdf770..d64a7af37 100644 --- a/query-languages/m/date-isinpreviousweek.md +++ b/query-languages/m/date-isinpreviousweek.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousWeek" title: "Date.IsInPreviousWeek" -ms.date: 3/11/2022 --- # Date.IsInPreviousWeek diff --git a/query-languages/m/date-isinpreviousyear.md b/query-languages/m/date-isinpreviousyear.md index b492fae31..9320fc102 100644 --- a/query-languages/m/date-isinpreviousyear.md +++ b/query-languages/m/date-isinpreviousyear.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInPreviousYear" title: "Date.IsInPreviousYear" -ms.date: 3/11/2022 --- # Date.IsInPreviousYear diff --git a/query-languages/m/date-isinyeartodate.md b/query-languages/m/date-isinyeartodate.md index a79b6a957..e6f46d72e 100644 --- a/query-languages/m/date-isinyeartodate.md +++ b/query-languages/m/date-isinyeartodate.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsInYearToDate" title: "Date.IsInYearToDate" -ms.date: 3/11/2022 --- # Date.IsInYearToDate diff --git a/query-languages/m/date-isleapyear.md b/query-languages/m/date-isleapyear.md index 31db6ffd2..4d07bf348 100644 --- a/query-languages/m/date-isleapyear.md +++ b/query-languages/m/date-isleapyear.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.IsLeapYear" title: "Date.IsLeapYear" -ms.date: 3/11/2022 --- # Date.IsLeapYear diff --git a/query-languages/m/date-month.md b/query-languages/m/date-month.md index 40d4afb14..a187af8a4 100644 --- a/query-languages/m/date-month.md +++ b/query-languages/m/date-month.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.Month" title: "Date.Month" -ms.date: 3/11/2022 --- # Date.Month diff --git a/query-languages/m/date-monthname.md b/query-languages/m/date-monthname.md index 25224ea2a..08cefd91e 100644 --- a/query-languages/m/date-monthname.md +++ b/query-languages/m/date-monthname.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.MonthName" title: "Date.MonthName" -ms.date: 3/11/2022 --- # Date.MonthName diff --git a/query-languages/m/date-quarterofyear.md b/query-languages/m/date-quarterofyear.md index 8026edfa5..f5d3b9a86 100644 --- a/query-languages/m/date-quarterofyear.md +++ b/query-languages/m/date-quarterofyear.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.QuarterOfYear" title: "Date.QuarterOfYear" -ms.date: 3/11/2022 --- # Date.QuarterOfYear diff --git a/query-languages/m/date-startofday.md b/query-languages/m/date-startofday.md index 7d8b80821..ac7faa256 100644 --- a/query-languages/m/date-startofday.md +++ b/query-languages/m/date-startofday.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.StartOfDay" title: "Date.StartOfDay" -ms.date: 11/14/2022 --- # Date.StartOfDay diff --git a/query-languages/m/date-startofmonth.md b/query-languages/m/date-startofmonth.md index 7cbea3b5d..ed551a57b 100644 --- a/query-languages/m/date-startofmonth.md +++ b/query-languages/m/date-startofmonth.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.StartOfMonth" title: "Date.StartOfMonth" -ms.date: 11/14/2022 --- # Date.StartOfMonth diff --git a/query-languages/m/date-startofquarter.md b/query-languages/m/date-startofquarter.md index a3ed23496..8776f28bf 100644 --- a/query-languages/m/date-startofquarter.md +++ b/query-languages/m/date-startofquarter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.StartOfQuarter" title: "Date.StartOfQuarter" -ms.date: 11/14/2022 --- # Date.StartOfQuarter diff --git a/query-languages/m/date-startofweek.md b/query-languages/m/date-startofweek.md index ba372b6ae..ba526548b 100644 --- a/query-languages/m/date-startofweek.md +++ b/query-languages/m/date-startofweek.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.StartOfWeek" title: "Date.StartOfWeek" -ms.date: 11/14/2022 --- # Date.StartOfWeek diff --git a/query-languages/m/date-startofyear.md b/query-languages/m/date-startofyear.md index 18a777f56..891279188 100644 --- a/query-languages/m/date-startofyear.md +++ b/query-languages/m/date-startofyear.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.StartOfYear" title: "Date.StartOfYear" -ms.date: 11/14/2022 --- # Date.StartOfYear diff --git a/query-languages/m/date-torecord.md b/query-languages/m/date-torecord.md index 5b48e0987..7f344b56c 100644 --- a/query-languages/m/date-torecord.md +++ b/query-languages/m/date-torecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.ToRecord" title: "Date.ToRecord" -ms.date: 10/7/2022 --- # Date.ToRecord diff --git a/query-languages/m/date-totext.md b/query-languages/m/date-totext.md index f7f869f94..8f497d5f8 100644 --- a/query-languages/m/date-totext.md +++ b/query-languages/m/date-totext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.ToText" title: "Date.ToText" -ms.date: 7/18/2022 --- # Date.ToText diff --git a/query-languages/m/date-weekofmonth.md b/query-languages/m/date-weekofmonth.md index e5b57dda0..4605f6f8d 100644 --- a/query-languages/m/date-weekofmonth.md +++ b/query-languages/m/date-weekofmonth.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.WeekOfMonth" title: "Date.WeekOfMonth" -ms.date: 11/14/2022 --- # Date.WeekOfMonth diff --git a/query-languages/m/date-weekofyear.md b/query-languages/m/date-weekofyear.md index c7992f7c9..ef35247b5 100644 --- a/query-languages/m/date-weekofyear.md +++ b/query-languages/m/date-weekofyear.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.WeekOfYear" title: "Date.WeekOfYear" -ms.date: 11/14/2022 --- # Date.WeekOfYear diff --git a/query-languages/m/date-year.md b/query-languages/m/date-year.md index a912d1845..7686b69e7 100644 --- a/query-languages/m/date-year.md +++ b/query-languages/m/date-year.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Date.Year" title: "Date.Year" -ms.date: 3/11/2022 --- # Date.Year diff --git a/query-languages/m/datetime-addzone.md b/query-languages/m/datetime-addzone.md index 458f822e2..0829ffc21 100644 --- a/query-languages/m/datetime-addzone.md +++ b/query-languages/m/datetime-addzone.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.AddZone" title: "DateTime.AddZone" -ms.date: 1/18/2023 --- # DateTime.AddZone diff --git a/query-languages/m/datetime-date.md b/query-languages/m/datetime-date.md index f70d04d6e..4708658f2 100644 --- a/query-languages/m/datetime-date.md +++ b/query-languages/m/datetime-date.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.Date" title: "DateTime.Date" -ms.date: 3/11/2022 --- # DateTime.Date diff --git a/query-languages/m/datetime-fixedlocalnow.md b/query-languages/m/datetime-fixedlocalnow.md index 76e111de0..73b427f72 100644 --- a/query-languages/m/datetime-fixedlocalnow.md +++ b/query-languages/m/datetime-fixedlocalnow.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.FixedLocalNow" title: "DateTime.FixedLocalNow" -ms.date: 10/7/2022 --- # DateTime.FixedLocalNow diff --git a/query-languages/m/datetime-from.md b/query-languages/m/datetime-from.md index 005415cc2..a18e9e097 100644 --- a/query-languages/m/datetime-from.md +++ b/query-languages/m/datetime-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.From" title: "DateTime.From" -ms.date: 5/19/2022 --- # DateTime.From diff --git a/query-languages/m/datetime-fromfiletime.md b/query-languages/m/datetime-fromfiletime.md index eeefc244b..f56f6912a 100644 --- a/query-languages/m/datetime-fromfiletime.md +++ b/query-languages/m/datetime-fromfiletime.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.FromFileTime" title: "DateTime.FromFileTime" -ms.date: 3/11/2022 --- # DateTime.FromFileTime diff --git a/query-languages/m/datetime-fromtext.md b/query-languages/m/datetime-fromtext.md index 7eeeef87b..3fd8942a2 100644 --- a/query-languages/m/datetime-fromtext.md +++ b/query-languages/m/datetime-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.FromText" title: "DateTime.FromText" -ms.date: 6/24/2022 --- # DateTime.FromText diff --git a/query-languages/m/datetime-isincurrenthour.md b/query-languages/m/datetime-isincurrenthour.md index fd482b560..66bef53d9 100644 --- a/query-languages/m/datetime-isincurrenthour.md +++ b/query-languages/m/datetime-isincurrenthour.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInCurrentHour" title: "DateTime.IsInCurrentHour" -ms.date: 3/11/2022 --- # DateTime.IsInCurrentHour diff --git a/query-languages/m/datetime-isincurrentminute.md b/query-languages/m/datetime-isincurrentminute.md index b39a2af5c..14add1de1 100644 --- a/query-languages/m/datetime-isincurrentminute.md +++ b/query-languages/m/datetime-isincurrentminute.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInCurrentMinute" title: "DateTime.IsInCurrentMinute" -ms.date: 3/11/2022 --- # DateTime.IsInCurrentMinute diff --git a/query-languages/m/datetime-isincurrentsecond.md b/query-languages/m/datetime-isincurrentsecond.md index 8d9c75952..b1751f389 100644 --- a/query-languages/m/datetime-isincurrentsecond.md +++ b/query-languages/m/datetime-isincurrentsecond.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInCurrentSecond" title: "DateTime.IsInCurrentSecond" -ms.date: 3/11/2022 --- # DateTime.IsInCurrentSecond diff --git a/query-languages/m/datetime-isinnexthour.md b/query-languages/m/datetime-isinnexthour.md index 726ad852d..b934eccb5 100644 --- a/query-languages/m/datetime-isinnexthour.md +++ b/query-languages/m/datetime-isinnexthour.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextHour" title: "DateTime.IsInNextHour" -ms.date: 3/11/2022 --- # DateTime.IsInNextHour diff --git a/query-languages/m/datetime-isinnextminute.md b/query-languages/m/datetime-isinnextminute.md index 7c4019e55..7ca4b971f 100644 --- a/query-languages/m/datetime-isinnextminute.md +++ b/query-languages/m/datetime-isinnextminute.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextMinute" title: "DateTime.IsInNextMinute" -ms.date: 3/11/2022 --- # DateTime.IsInNextMinute diff --git a/query-languages/m/datetime-isinnextnhours.md b/query-languages/m/datetime-isinnextnhours.md index 5ff898cc0..cf46508fb 100644 --- a/query-languages/m/datetime-isinnextnhours.md +++ b/query-languages/m/datetime-isinnextnhours.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextNHours" title: "DateTime.IsInNextNHours" -ms.date: 3/11/2022 --- # DateTime.IsInNextNHours diff --git a/query-languages/m/datetime-isinnextnminutes.md b/query-languages/m/datetime-isinnextnminutes.md index 8d3d94f56..9dbf2d6e4 100644 --- a/query-languages/m/datetime-isinnextnminutes.md +++ b/query-languages/m/datetime-isinnextnminutes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextNMinutes" title: "DateTime.IsInNextNMinutes" -ms.date: 3/11/2022 --- # DateTime.IsInNextNMinutes diff --git a/query-languages/m/datetime-isinnextnseconds.md b/query-languages/m/datetime-isinnextnseconds.md index 18bb8abfe..16588c940 100644 --- a/query-languages/m/datetime-isinnextnseconds.md +++ b/query-languages/m/datetime-isinnextnseconds.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextNSeconds" title: "DateTime.IsInNextNSeconds" -ms.date: 3/11/2022 --- # DateTime.IsInNextNSeconds diff --git a/query-languages/m/datetime-isinnextsecond.md b/query-languages/m/datetime-isinnextsecond.md index 1c6a11b4c..5edf1d100 100644 --- a/query-languages/m/datetime-isinnextsecond.md +++ b/query-languages/m/datetime-isinnextsecond.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInNextSecond" title: "DateTime.IsInNextSecond" -ms.date: 3/11/2022 --- # DateTime.IsInNextSecond diff --git a/query-languages/m/datetime-isinprevioushour.md b/query-languages/m/datetime-isinprevioushour.md index 5dcb96b46..10932cb72 100644 --- a/query-languages/m/datetime-isinprevioushour.md +++ b/query-languages/m/datetime-isinprevioushour.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousHour" title: "DateTime.IsInPreviousHour" -ms.date: 3/11/2022 --- # DateTime.IsInPreviousHour diff --git a/query-languages/m/datetime-isinpreviousminute.md b/query-languages/m/datetime-isinpreviousminute.md index de6031f89..4029ebe19 100644 --- a/query-languages/m/datetime-isinpreviousminute.md +++ b/query-languages/m/datetime-isinpreviousminute.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousMinute" title: "DateTime.IsInPreviousMinute" -ms.date: 3/11/2022 --- # DateTime.IsInPreviousMinute diff --git a/query-languages/m/datetime-isinpreviousnhours.md b/query-languages/m/datetime-isinpreviousnhours.md index ec321c27b..204d7d949 100644 --- a/query-languages/m/datetime-isinpreviousnhours.md +++ b/query-languages/m/datetime-isinpreviousnhours.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousNHours" title: "DateTime.IsInPreviousNHours" -ms.date: 3/11/2022 --- # DateTime.IsInPreviousNHours diff --git a/query-languages/m/datetime-isinpreviousnminutes.md b/query-languages/m/datetime-isinpreviousnminutes.md index e8aa2031d..27cbc6e6e 100644 --- a/query-languages/m/datetime-isinpreviousnminutes.md +++ b/query-languages/m/datetime-isinpreviousnminutes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousNMinutes" title: "DateTime.IsInPreviousNMinutes" -ms.date: 3/11/2022 --- # DateTime.IsInPreviousNMinutes diff --git a/query-languages/m/datetime-isinpreviousnseconds.md b/query-languages/m/datetime-isinpreviousnseconds.md index b8560d73c..04070fcc3 100644 --- a/query-languages/m/datetime-isinpreviousnseconds.md +++ b/query-languages/m/datetime-isinpreviousnseconds.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousNSeconds" title: "DateTime.IsInPreviousNSeconds" -ms.date: 3/11/2022 --- # DateTime.IsInPreviousNSeconds diff --git a/query-languages/m/datetime-isinprevioussecond.md b/query-languages/m/datetime-isinprevioussecond.md index dec1c1543..4843576ed 100644 --- a/query-languages/m/datetime-isinprevioussecond.md +++ b/query-languages/m/datetime-isinprevioussecond.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.IsInPreviousSecond" title: "DateTime.IsInPreviousSecond" -ms.date: 3/11/2021 --- # DateTime.IsInPreviousSecond diff --git a/query-languages/m/datetime-localnow.md b/query-languages/m/datetime-localnow.md index 442bce785..5f465176e 100644 --- a/query-languages/m/datetime-localnow.md +++ b/query-languages/m/datetime-localnow.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.LocalNow" title: "DateTime.LocalNow" -ms.date: 10/7/2022 --- # DateTime.LocalNow diff --git a/query-languages/m/datetime-time.md b/query-languages/m/datetime-time.md index 141df4781..703360749 100644 --- a/query-languages/m/datetime-time.md +++ b/query-languages/m/datetime-time.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.Time" title: "DateTime.Time" -ms.date: 3/11/2022 --- # DateTime.Time diff --git a/query-languages/m/datetime-torecord.md b/query-languages/m/datetime-torecord.md index c1209db0e..2a761cabb 100644 --- a/query-languages/m/datetime-torecord.md +++ b/query-languages/m/datetime-torecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.ToRecord" title: "DateTime.ToRecord" -ms.date: 3/8/2022 --- # DateTime.ToRecord diff --git a/query-languages/m/datetime-totext.md b/query-languages/m/datetime-totext.md index 0223ca4cc..85ef12fe0 100644 --- a/query-languages/m/datetime-totext.md +++ b/query-languages/m/datetime-totext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTime.ToText" title: "DateTime.ToText" -ms.date: 6/24/2022 --- # DateTime.ToText diff --git a/query-languages/m/datetimezone-fixedlocalnow.md b/query-languages/m/datetimezone-fixedlocalnow.md index 861ad4bd7..acfbf1e31 100644 --- a/query-languages/m/datetimezone-fixedlocalnow.md +++ b/query-languages/m/datetimezone-fixedlocalnow.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.FixedLocalNow" title: "DateTimeZone.FixedLocalNow" -ms.date: 10/7/2022 --- # DateTimeZone.FixedLocalNow diff --git a/query-languages/m/datetimezone-fixedutcnow.md b/query-languages/m/datetimezone-fixedutcnow.md index 523732d7e..0cba2ceee 100644 --- a/query-languages/m/datetimezone-fixedutcnow.md +++ b/query-languages/m/datetimezone-fixedutcnow.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.FixedUtcNow" title: "DateTimeZone.FixedUtcNow" -ms.date: 10/7/2022 --- # DateTimeZone.FixedUtcNow diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index e616d82f2..a0ce246b5 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.From" title: "DateTimeZone.From" -ms.date: 6/24/2022 --- # DateTimeZone.From diff --git a/query-languages/m/datetimezone-fromfiletime.md b/query-languages/m/datetimezone-fromfiletime.md index 995ff8bbb..0de8dd6f3 100644 --- a/query-languages/m/datetimezone-fromfiletime.md +++ b/query-languages/m/datetimezone-fromfiletime.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.FromFileTime" title: "DateTimeZone.FromFileTime" -ms.date: 3/11/2022 --- # DateTimeZone.FromFileTime diff --git a/query-languages/m/datetimezone-fromtext.md b/query-languages/m/datetimezone-fromtext.md index 80a9f61c8..da9bccf74 100644 --- a/query-languages/m/datetimezone-fromtext.md +++ b/query-languages/m/datetimezone-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.FromText" title: "DateTimeZone.FromText" -ms.date: 6/24/2022 --- # DateTimeZone.FromText diff --git a/query-languages/m/datetimezone-localnow.md b/query-languages/m/datetimezone-localnow.md index 883ee7e33..cb056cb9a 100644 --- a/query-languages/m/datetimezone-localnow.md +++ b/query-languages/m/datetimezone-localnow.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.LocalNow" title: "DateTimeZone.LocalNow" -ms.date: 10/7/2022 --- # DateTimeZone.LocalNow diff --git a/query-languages/m/datetimezone-removezone.md b/query-languages/m/datetimezone-removezone.md index 54bc474aa..d406b21d3 100644 --- a/query-languages/m/datetimezone-removezone.md +++ b/query-languages/m/datetimezone-removezone.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.RemoveZone" title: "DateTimeZone.RemoveZone" -ms.date: 3/11/2022 --- # DateTimeZone.RemoveZone diff --git a/query-languages/m/datetimezone-switchzone.md b/query-languages/m/datetimezone-switchzone.md index 292a0198e..25554449a 100644 --- a/query-languages/m/datetimezone-switchzone.md +++ b/query-languages/m/datetimezone-switchzone.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.SwitchZone" title: "DateTimeZone.SwitchZone" -ms.date: 3/11/2022 --- # DateTimeZone.SwitchZone diff --git a/query-languages/m/datetimezone-tolocal.md b/query-languages/m/datetimezone-tolocal.md index 1b4c62ce1..d37d265d1 100644 --- a/query-languages/m/datetimezone-tolocal.md +++ b/query-languages/m/datetimezone-tolocal.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.ToLocal" title: "DateTimeZone.ToLocal" -ms.date: 3/11/2022 --- # DateTimeZone.ToLocal diff --git a/query-languages/m/datetimezone-torecord.md b/query-languages/m/datetimezone-torecord.md index c85c950de..f906934fe 100644 --- a/query-languages/m/datetimezone-torecord.md +++ b/query-languages/m/datetimezone-torecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.ToRecord" title: "DateTimeZone.ToRecord" -ms.date: 3/8/2022 --- # DateTimeZone.ToRecord diff --git a/query-languages/m/datetimezone-totext.md b/query-languages/m/datetimezone-totext.md index ad383c65c..26a20e38c 100644 --- a/query-languages/m/datetimezone-totext.md +++ b/query-languages/m/datetimezone-totext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.ToText" title: "DateTimeZone.ToText" -ms.date: 6/24/2022 --- # DateTimeZone.ToText diff --git a/query-languages/m/datetimezone-toutc.md b/query-languages/m/datetimezone-toutc.md index 66f635717..a67714142 100644 --- a/query-languages/m/datetimezone-toutc.md +++ b/query-languages/m/datetimezone-toutc.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.ToUtc" title: "DateTimeZone.ToUtc" -ms.date: 3/11/2022 --- # DateTimeZone.ToUtc diff --git a/query-languages/m/datetimezone-utcnow.md b/query-languages/m/datetimezone-utcnow.md index 878807dc1..eb516f871 100644 --- a/query-languages/m/datetimezone-utcnow.md +++ b/query-languages/m/datetimezone-utcnow.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.UtcNow" title: "DateTimeZone.UtcNow" -ms.date: 10/7/2022 --- # DateTimeZone.UtcNow diff --git a/query-languages/m/datetimezone-zonehours.md b/query-languages/m/datetimezone-zonehours.md index a53f87b5c..c4e79115f 100644 --- a/query-languages/m/datetimezone-zonehours.md +++ b/query-languages/m/datetimezone-zonehours.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.ZoneHours" title: "DateTimeZone.ZoneHours" -ms.date: 10/7/2022 --- # DateTimeZone.ZoneHours diff --git a/query-languages/m/datetimezone-zoneminutes.md b/query-languages/m/datetimezone-zoneminutes.md index 8b691a436..0348a8c48 100644 --- a/query-languages/m/datetimezone-zoneminutes.md +++ b/query-languages/m/datetimezone-zoneminutes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DateTimeZone.ZoneMinutes" title: "DateTimeZone.ZoneMinutes" -ms.date: 10/7/2022 --- # DateTimeZone.ZoneMinutes diff --git a/query-languages/m/day-type.md b/query-languages/m/day-type.md index c96738491..aa9136a2b 100644 --- a/query-languages/m/day-type.md +++ b/query-languages/m/day-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Day.Type" title: "Day.Type" -ms.date: 5/16/2022 --- # Day.Type diff --git a/query-languages/m/db2-database.md b/query-languages/m/db2-database.md index 0551901d0..fa13c11bb 100644 --- a/query-languages/m/db2-database.md +++ b/query-languages/m/db2-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DB2.Database" title: "DB2.Database" -ms.date: 10/7/2022 --- # DB2.Database diff --git a/query-languages/m/decimal-from.md b/query-languages/m/decimal-from.md index f23ea6581..5c42ae315 100644 --- a/query-languages/m/decimal-from.md +++ b/query-languages/m/decimal-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Decimal.From" title: "Decimal.From" -ms.date: 10/7/2022 --- # Decimal.From diff --git a/query-languages/m/deltalake-table.md b/query-languages/m/deltalake-table.md index 11c0abbcd..bb2fa08ff 100644 --- a/query-languages/m/deltalake-table.md +++ b/query-languages/m/deltalake-table.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DeltaLake.Table" title: "DeltaLake.Table" -ms.date: 5/16/2023 --- # DeltaLake.Table diff --git a/query-languages/m/diagnostics-activityid.md b/query-languages/m/diagnostics-activityid.md index 8a8f52958..ff7f693db 100644 --- a/query-languages/m/diagnostics-activityid.md +++ b/query-languages/m/diagnostics-activityid.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Diagnostics.ActivityId" title: "Diagnostics.ActivityId" -ms.date: 10/7/2022 --- # Diagnostics.ActivityId diff --git a/query-languages/m/diagnostics-trace.md b/query-languages/m/diagnostics-trace.md index ef9c0470f..1d0397a17 100644 --- a/query-languages/m/diagnostics-trace.md +++ b/query-languages/m/diagnostics-trace.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Diagnostics.Trace" title: "Diagnostics.Trace" -ms.date: 12/19/2022 --- # Diagnostics.Trace diff --git a/query-languages/m/directquerycapabilities-from.md b/query-languages/m/directquerycapabilities-from.md index dd1cc066a..ed61b189b 100644 --- a/query-languages/m/directquerycapabilities-from.md +++ b/query-languages/m/directquerycapabilities-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: DirectQueryCapabilities.From" title: "DirectQueryCapabilities.From" -ms.date: 10/18/2021 --- # DirectQueryCapabilities.From diff --git a/query-languages/m/double-from.md b/query-languages/m/double-from.md index 1d97b2dce..e1179c605 100644 --- a/query-languages/m/double-from.md +++ b/query-languages/m/double-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Double.From" title: "Double.From" -ms.date: 10/7/2022 --- # Double.From diff --git a/query-languages/m/duration-days.md b/query-languages/m/duration-days.md index ace29fd41..2de3ee0d4 100644 --- a/query-languages/m/duration-days.md +++ b/query-languages/m/duration-days.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.Days" title: "Duration.Days" -ms.date: 1/18/2023 --- # Duration.Days diff --git a/query-languages/m/duration-from.md b/query-languages/m/duration-from.md index 9f00af82e..ff2bad173 100644 --- a/query-languages/m/duration-from.md +++ b/query-languages/m/duration-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.From" title: "Duration.From" -ms.date: 4/13/2022 --- # Duration.From diff --git a/query-languages/m/duration-fromtext.md b/query-languages/m/duration-fromtext.md index c0572398a..9b1822055 100644 --- a/query-languages/m/duration-fromtext.md +++ b/query-languages/m/duration-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.FromText" title: "Duration.FromText" -ms.date: 3/11/2022 --- # Duration.FromText diff --git a/query-languages/m/duration-hours.md b/query-languages/m/duration-hours.md index f490858f4..bf8212cda 100644 --- a/query-languages/m/duration-hours.md +++ b/query-languages/m/duration-hours.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.Hours" title: "Duration.Hours" -ms.date: 7/18/2022 --- # Duration.Hours diff --git a/query-languages/m/duration-minutes.md b/query-languages/m/duration-minutes.md index ec397a5bb..dd50d8e9b 100644 --- a/query-languages/m/duration-minutes.md +++ b/query-languages/m/duration-minutes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.Minutes" title: "Duration.Minutes" -ms.date: 7/18/2022 --- # Duration.Minutes diff --git a/query-languages/m/duration-seconds.md b/query-languages/m/duration-seconds.md index c7db29e52..34c7fc2c0 100644 --- a/query-languages/m/duration-seconds.md +++ b/query-languages/m/duration-seconds.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.Seconds" title: "Duration.Seconds" -ms.date: 7/18/2022 --- # Duration.Seconds diff --git a/query-languages/m/duration-torecord.md b/query-languages/m/duration-torecord.md index 5a919ecb2..8285b94cc 100644 --- a/query-languages/m/duration-torecord.md +++ b/query-languages/m/duration-torecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.ToRecord" title: "Duration.ToRecord" -ms.date: 10/7/2022 --- # Duration.ToRecord diff --git a/query-languages/m/duration-totaldays.md b/query-languages/m/duration-totaldays.md index ec130da27..e305165e6 100644 --- a/query-languages/m/duration-totaldays.md +++ b/query-languages/m/duration-totaldays.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.TotalDays" title: "Duration.TotalDays" -ms.date: 10/7/2022 --- # Duration.TotalDays diff --git a/query-languages/m/duration-totalhours.md b/query-languages/m/duration-totalhours.md index 9b829de21..1372e6635 100644 --- a/query-languages/m/duration-totalhours.md +++ b/query-languages/m/duration-totalhours.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.TotalHours" title: "Duration.TotalHours" -ms.date: 7/18/2022 --- # Duration.TotalHours diff --git a/query-languages/m/duration-totalminutes.md b/query-languages/m/duration-totalminutes.md index 55248bd7e..cce94e57c 100644 --- a/query-languages/m/duration-totalminutes.md +++ b/query-languages/m/duration-totalminutes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.TotalMinutes" title: "Duration.TotalMinutes" -ms.date: 7/18/2022 --- # Duration.TotalMinutes diff --git a/query-languages/m/duration-totalseconds.md b/query-languages/m/duration-totalseconds.md index ef530f67e..cf0366425 100644 --- a/query-languages/m/duration-totalseconds.md +++ b/query-languages/m/duration-totalseconds.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.TotalSeconds" title: "Duration.TotalSeconds" -ms.date: 7/18/2022 --- # Duration.TotalSeconds diff --git a/query-languages/m/duration-totext.md b/query-languages/m/duration-totext.md index c56b8b258..a40c700e5 100644 --- a/query-languages/m/duration-totext.md +++ b/query-languages/m/duration-totext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Duration.ToText" title: "Duration.ToText" -ms.date: 3/8/2022 --- # Duration.ToText diff --git a/query-languages/m/dynamic-values.md b/query-languages/m/dynamic-values.md index a5e60f9f8..3aa33908a 100644 --- a/query-languages/m/dynamic-values.md +++ b/query-languages/m/dynamic-values.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Dynamic values" title: "Dynamic values" -ms.date: 10/7/2022 --- # Dynamic values diff --git a/query-languages/m/embedded-value.md b/query-languages/m/embedded-value.md index bec5f7075..528c19e09 100644 --- a/query-languages/m/embedded-value.md +++ b/query-languages/m/embedded-value.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Embedded.Value" title: "Embedded.Value" -ms.date: 10/7/2022 --- # Embedded.Value diff --git a/query-languages/m/enumerations.md b/query-languages/m/enumerations.md index 5393c589c..a361f3c06 100644 --- a/query-languages/m/enumerations.md +++ b/query-languages/m/enumerations.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Enumerations" title: "Accessing data enumerations" -ms.date: 10/7/2022 --- # Enumerations diff --git a/query-languages/m/error-record.md b/query-languages/m/error-record.md index 3623eb1f0..4201bc641 100644 --- a/query-languages/m/error-record.md +++ b/query-languages/m/error-record.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Error.Record" title: "Error.Record" -ms.date: 10/7/2022 --- # Error.Record diff --git a/query-languages/m/essbase-cubes.md b/query-languages/m/essbase-cubes.md index 20da246d2..d11f1aed7 100644 --- a/query-languages/m/essbase-cubes.md +++ b/query-languages/m/essbase-cubes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Essbase.Cubes" title: "Essbase.Cubes" -ms.date: 10/7/2022 --- # Essbase.Cubes diff --git a/query-languages/m/excel-currentworkbook.md b/query-languages/m/excel-currentworkbook.md index daf7da3d7..996b1da88 100644 --- a/query-languages/m/excel-currentworkbook.md +++ b/query-languages/m/excel-currentworkbook.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Excel.CurrentWorkbook" title: "Excel.CurrentWorkbook" -ms.date: 1/18/2023 --- # Excel.CurrentWorkbook diff --git a/query-languages/m/excel-shapetable.md b/query-languages/m/excel-shapetable.md index 8aeaa1201..81af961ce 100644 --- a/query-languages/m/excel-shapetable.md +++ b/query-languages/m/excel-shapetable.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Excel.ShapeTable" title: "Excel.ShapeTable" -ms.date: 10/7/2022 --- # Excel.ShapeTable diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md index 855498e79..04bd65f2e 100644 --- a/query-languages/m/excel-workbook.md +++ b/query-languages/m/excel-workbook.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Excel.Workbook" title: "Excel.Workbook" -ms.date: 10/7/2022 --- # Excel.Workbook diff --git a/query-languages/m/exchange-contents.md b/query-languages/m/exchange-contents.md index 1f83daa25..9832bc262 100644 --- a/query-languages/m/exchange-contents.md +++ b/query-languages/m/exchange-contents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Exchange.Contents" title: "Exchange.Contents" -ms.date: 10/7/2022 --- # Exchange.Contents diff --git a/query-languages/m/expression-constant.md b/query-languages/m/expression-constant.md index 2c7f16c0a..dfefed8e8 100644 --- a/query-languages/m/expression-constant.md +++ b/query-languages/m/expression-constant.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Expression.Constant" title: "Expression.Constant" -ms.date: 10/7/2022 --- # Expression.Constant diff --git a/query-languages/m/expression-evaluate.md b/query-languages/m/expression-evaluate.md index 9a565c488..1f01d2bfe 100644 --- a/query-languages/m/expression-evaluate.md +++ b/query-languages/m/expression-evaluate.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Expression.Evaluate" title: "Expression.Evaluate" -ms.date: 10/7/2022 --- # Expression.Evaluate diff --git a/query-languages/m/expression-identifier.md b/query-languages/m/expression-identifier.md index c3a15018c..6b217a392 100644 --- a/query-languages/m/expression-identifier.md +++ b/query-languages/m/expression-identifier.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Expression.Identifier" title: "Expression.Identifier" -ms.date: 10/7/2022 --- # Expression.Identifier diff --git a/query-languages/m/extravalues-type.md b/query-languages/m/extravalues-type.md index 2a9fdf240..d2aefad9d 100644 --- a/query-languages/m/extravalues-type.md +++ b/query-languages/m/extravalues-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: ExtraValues.Type" title: "ExtraValues.Type" -ms.date: 5/16/2022 --- # ExtraValues.Type diff --git a/query-languages/m/file-contents.md b/query-languages/m/file-contents.md index fc3402561..2bcf0295e 100644 --- a/query-languages/m/file-contents.md +++ b/query-languages/m/file-contents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: File.Contents" title: "File.Contents" -ms.date: 10/7/2022 --- # File.Contents diff --git a/query-languages/m/folder-contents.md b/query-languages/m/folder-contents.md index 9580e2fb0..e78da4ba5 100644 --- a/query-languages/m/folder-contents.md +++ b/query-languages/m/folder-contents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Folder.Contents" title: "Folder.Contents" -ms.date: 10/7/2022 --- # Folder.Contents diff --git a/query-languages/m/folder-files.md b/query-languages/m/folder-files.md index 3aba96fc0..be0574295 100644 --- a/query-languages/m/folder-files.md +++ b/query-languages/m/folder-files.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Folder.Files" title: "Folder.Files" -ms.date: 10/7/2022 --- # Folder.Files diff --git a/query-languages/m/function-from.md b/query-languages/m/function-from.md index be5585e0d..4e38cbdbf 100644 --- a/query-languages/m/function-from.md +++ b/query-languages/m/function-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Function.From" title: "Function.From" -ms.date: 3/11/2022 --- # Function.From diff --git a/query-languages/m/function-invoke.md b/query-languages/m/function-invoke.md index 5091d126c..1331b80fa 100644 --- a/query-languages/m/function-invoke.md +++ b/query-languages/m/function-invoke.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Function.Invoke" title: "Function.Invoke" -ms.date: 10/7/2022 --- # Function.Invoke diff --git a/query-languages/m/function-invokeafter.md b/query-languages/m/function-invokeafter.md index 5fc049e21..c092f7006 100644 --- a/query-languages/m/function-invokeafter.md +++ b/query-languages/m/function-invokeafter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Function.InvokeAfter" title: "Function.InvokeAfter" -ms.date: 10/7/2022 --- # Function.InvokeAfter diff --git a/query-languages/m/function-isdatasource.md b/query-languages/m/function-isdatasource.md index d36acc4c6..c52a41774 100644 --- a/query-languages/m/function-isdatasource.md +++ b/query-languages/m/function-isdatasource.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Function.IsDataSource" title: "Function.IsDataSource" -ms.date: 10/7/2022 --- # Function.IsDataSource diff --git a/query-languages/m/function-scalarvector.md b/query-languages/m/function-scalarvector.md index 1fa9658f1..ca7a70cbe 100644 --- a/query-languages/m/function-scalarvector.md +++ b/query-languages/m/function-scalarvector.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Function.ScalarVector" title: "Function.ScalarVector" -ms.date: 10/7/2022 --- # Function.ScalarVector diff --git a/query-languages/m/geography-fromwellknowntext.md b/query-languages/m/geography-fromwellknowntext.md index b326a6c3d..2bad7f841 100644 --- a/query-languages/m/geography-fromwellknowntext.md +++ b/query-languages/m/geography-fromwellknowntext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Geography.FromWellKnownText" title: "Geography.FromWellKnownText" -ms.date: 10/7/2022 --- # Geography.FromWellKnownText diff --git a/query-languages/m/geography-towellknowntext.md b/query-languages/m/geography-towellknowntext.md index 5e4f17171..3b9484665 100644 --- a/query-languages/m/geography-towellknowntext.md +++ b/query-languages/m/geography-towellknowntext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Geography.ToWellKnownText" title: "Geography.ToWellKnownText" -ms.date: 10/7/2022 --- # Geography.ToWellKnownText diff --git a/query-languages/m/geographypoint-from.md b/query-languages/m/geographypoint-from.md index 2c805f617..3e2dc626f 100644 --- a/query-languages/m/geographypoint-from.md +++ b/query-languages/m/geographypoint-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: GeographyPoint.From" title: "GeographyPoint.From" -ms.date: 10/7/2022 --- # GeographyPoint.From diff --git a/query-languages/m/geometry-fromwellknowntext.md b/query-languages/m/geometry-fromwellknowntext.md index 12e43d072..4dae92604 100644 --- a/query-languages/m/geometry-fromwellknowntext.md +++ b/query-languages/m/geometry-fromwellknowntext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Geometry.FromWellKnownText" title: "Geometry.FromWellKnownText" -ms.date: 10/7/2022 --- # Geometry.FromWellKnownText diff --git a/query-languages/m/geometry-towellknowntext.md b/query-languages/m/geometry-towellknowntext.md index 131e0f892..eb783b342 100644 --- a/query-languages/m/geometry-towellknowntext.md +++ b/query-languages/m/geometry-towellknowntext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Geometry.ToWellKnownText" title: "Geometry.ToWellKnownText" -ms.date: 10/7/2022 --- # Geometry.ToWellKnownText diff --git a/query-languages/m/geometrypoint-from.md b/query-languages/m/geometrypoint-from.md index 9186a0343..3c91b0e10 100644 --- a/query-languages/m/geometrypoint-from.md +++ b/query-languages/m/geometrypoint-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: GeometryPoint.From" title: "GeometryPoint.From" -ms.date: 10/7/2022 --- # GeometryPoint.From diff --git a/query-languages/m/googleanalytics-accounts.md b/query-languages/m/googleanalytics-accounts.md index 54d9b0f3f..eded6444b 100644 --- a/query-languages/m/googleanalytics-accounts.md +++ b/query-languages/m/googleanalytics-accounts.md @@ -1,7 +1,6 @@ --- description: "Learn more about: GoogleAnalytics.Accounts" title: "GoogleAnalytics.Accounts" -ms.date: 5/16/2023 --- # GoogleAnalytics.Accounts diff --git a/query-languages/m/graph-nodes.md b/query-languages/m/graph-nodes.md index b22d375b4..f71cbf9f3 100644 --- a/query-languages/m/graph-nodes.md +++ b/query-languages/m/graph-nodes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Graph.Nodes" title: "Graph.Nodes" -ms.date: 10/7/2022 --- # Graph.Nodes diff --git a/query-languages/m/groupkind-type.md b/query-languages/m/groupkind-type.md index 1c26a3418..36ff2155f 100644 --- a/query-languages/m/groupkind-type.md +++ b/query-languages/m/groupkind-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: GroupKind.Type" title: "GroupKind.Type" -ms.date: 5/16/2022 --- # GroupKind.Type diff --git a/query-languages/m/guid-from.md b/query-languages/m/guid-from.md index 9d2b20426..6dba9474a 100644 --- a/query-languages/m/guid-from.md +++ b/query-languages/m/guid-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Guid.From" title: "Guid.From" -ms.date: 4/13/2022 --- # Guid.From diff --git a/query-languages/m/hdfs-contents.md b/query-languages/m/hdfs-contents.md index f6149b294..08a3ea8be 100644 --- a/query-languages/m/hdfs-contents.md +++ b/query-languages/m/hdfs-contents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Hdfs.Contents" title: "Hdfs.Contents" -ms.date: 10/7/2022 --- # Hdfs.Contents diff --git a/query-languages/m/hdfs-files.md b/query-languages/m/hdfs-files.md index 30982065e..25743a873 100644 --- a/query-languages/m/hdfs-files.md +++ b/query-languages/m/hdfs-files.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Hdfs.Files" title: "Hdfs.Files" -ms.date: 10/7/2022 --- # Hdfs.Files diff --git a/query-languages/m/hdinsight-containers.md b/query-languages/m/hdinsight-containers.md index d732c1b0c..9371de6b8 100644 --- a/query-languages/m/hdinsight-containers.md +++ b/query-languages/m/hdinsight-containers.md @@ -1,7 +1,6 @@ --- description: "Learn more about: HdInsight.Containers" title: "HdInsight.Containers" -ms.date: 10/7/2022 --- # HdInsight.Containers diff --git a/query-languages/m/hdinsight-contents.md b/query-languages/m/hdinsight-contents.md index 443434022..4f79dc6f9 100644 --- a/query-languages/m/hdinsight-contents.md +++ b/query-languages/m/hdinsight-contents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: HdInsight.Contents" title: "HdInsight.Contents" -ms.date: 10/7/2022 --- # HdInsight.Contents diff --git a/query-languages/m/hdinsight-files.md b/query-languages/m/hdinsight-files.md index 883766ac9..a87933678 100644 --- a/query-languages/m/hdinsight-files.md +++ b/query-languages/m/hdinsight-files.md @@ -1,7 +1,6 @@ --- description: "Learn more about: HdInsight.Files" title: "HdInsight.Files" -ms.date: 10/7/2022 --- # HdInsight.Files diff --git a/query-languages/m/html-table.md b/query-languages/m/html-table.md index 994328afa..71f913d7c 100644 --- a/query-languages/m/html-table.md +++ b/query-languages/m/html-table.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Html.Table" title: "Html.Table" -ms.date: 10/7/2022 --- # Html.Table diff --git a/query-languages/m/identity-from.md b/query-languages/m/identity-from.md index ec7c9aff4..cc2d3be01 100644 --- a/query-languages/m/identity-from.md +++ b/query-languages/m/identity-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Identity.From" title: "Identity.From" -ms.date: 10/7/2022 --- # Identity.From diff --git a/query-languages/m/identity-ismemberof.md b/query-languages/m/identity-ismemberof.md index c95d716b8..7fca22a25 100644 --- a/query-languages/m/identity-ismemberof.md +++ b/query-languages/m/identity-ismemberof.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Identity.IsMemberOf" title: "Identity.IsMemberOf" -ms.date: 10/7/2022 --- # Identity.IsMemberOf diff --git a/query-languages/m/identityprovider-default.md b/query-languages/m/identityprovider-default.md index 8aca4d247..1b9339dd2 100644 --- a/query-languages/m/identityprovider-default.md +++ b/query-languages/m/identityprovider-default.md @@ -1,7 +1,6 @@ --- description: "Learn more about: IdentityProvider.Default" title: "IdentityProvider.Default" -ms.date: 10/7/2022 --- # IdentityProvider.Default diff --git a/query-languages/m/informix-database.md b/query-languages/m/informix-database.md index 140925e6b..b0590b543 100644 --- a/query-languages/m/informix-database.md +++ b/query-languages/m/informix-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Informix.Database" title: "Informix.Database" -ms.date: 10/7/2022 --- # Informix.Database diff --git a/query-languages/m/int16-from.md b/query-languages/m/int16-from.md index fc068858c..cf44bcd51 100644 --- a/query-languages/m/int16-from.md +++ b/query-languages/m/int16-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Int16.From" title: "Int16.From" -ms.date: 10/7/2022 --- # Int16.From diff --git a/query-languages/m/int32-from.md b/query-languages/m/int32-from.md index 34a1586d7..f94935485 100644 --- a/query-languages/m/int32-from.md +++ b/query-languages/m/int32-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Int32.From" title: "Int32.From" -ms.date: 10/7/2022 --- # Int32.From diff --git a/query-languages/m/int64-from.md b/query-languages/m/int64-from.md index c4bb9c157..343502d31 100644 --- a/query-languages/m/int64-from.md +++ b/query-languages/m/int64-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Int64.From" title: "Int64.From" -ms.date: 10/7/2022 --- # Int64.From diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index a1ec43ed1..1e7783953 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Int8.From" title: "Int8.From" -ms.date: 12/19/2022 --- # Int8.From diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index 2e9125f03..adf3b3296 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: ItemExpression.From" title: "ItemExpression.From" -ms.date: 6/15/2023 --- # ItemExpression.From diff --git a/query-languages/m/itemexpression-item.md b/query-languages/m/itemexpression-item.md index 5d29373c2..524e477dc 100644 --- a/query-languages/m/itemexpression-item.md +++ b/query-languages/m/itemexpression-item.md @@ -1,7 +1,6 @@ --- description: "Learn more about: ItemExpression.Item" title: "ItemExpression.Item" -ms.date: 5/16/2023 --- # ItemExpression.Item diff --git a/query-languages/m/joinalgorithm-type.md b/query-languages/m/joinalgorithm-type.md index 1d463b314..d7e06e3ea 100644 --- a/query-languages/m/joinalgorithm-type.md +++ b/query-languages/m/joinalgorithm-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: JoinAlgorithm.Type" title: "JoinAlgorithm.Type" -ms.date: 5/16/2022 --- # JoinAlgorithm.Type diff --git a/query-languages/m/joinkind-type.md b/query-languages/m/joinkind-type.md index 531ab4f7d..614153492 100644 --- a/query-languages/m/joinkind-type.md +++ b/query-languages/m/joinkind-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: JoinKind.Type" title: "JoinKind.Type" -ms.date: 5/16/2022 --- # JoinKind.Type diff --git a/query-languages/m/joinside-type.md b/query-languages/m/joinside-type.md index 51b1afd18..bb697d5aa 100644 --- a/query-languages/m/joinside-type.md +++ b/query-languages/m/joinside-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: JoinSide.Type" title: "JoinSide.Type" -ms.date: 5/16/2022 --- # JoinSide.Type diff --git a/query-languages/m/json-document.md b/query-languages/m/json-document.md index fcae511db..71200540a 100644 --- a/query-languages/m/json-document.md +++ b/query-languages/m/json-document.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Json.Document" title: "Json.Document" -ms.date: 10/7/2022 --- # Json.Document diff --git a/query-languages/m/json-fromvalue.md b/query-languages/m/json-fromvalue.md index 917afbbcc..3b52faa41 100644 --- a/query-languages/m/json-fromvalue.md +++ b/query-languages/m/json-fromvalue.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Json.FromValue" title: "Json.FromValue" -ms.date: 10/7/2022 --- # Json.FromValue diff --git a/query-languages/m/limitclausekind-type.md b/query-languages/m/limitclausekind-type.md index 4e18f7256..73b3e4ecb 100644 --- a/query-languages/m/limitclausekind-type.md +++ b/query-languages/m/limitclausekind-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: LimitClauseKind.Type" title: "LimitClauseKind.Type" -ms.date: 10/7/2022 --- # LimitClauseKind.Type diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index bccf9e22d..020d2ac63 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Lines.FromBinary" title: "Lines.FromBinary" -ms.date: 10/7/2022 --- # Lines.FromBinary diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index 9ff9d9325..30e68fc30 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Lines.FromText" title: "Lines.FromText" -ms.date: 10/7/2022 --- # Lines.FromText diff --git a/query-languages/m/lines-tobinary.md b/query-languages/m/lines-tobinary.md index de2a55ec3..ef8512c65 100644 --- a/query-languages/m/lines-tobinary.md +++ b/query-languages/m/lines-tobinary.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Lines.ToBinary" title: "Lines.ToBinary" -ms.date: 10/7/2022 --- # Lines.ToBinary diff --git a/query-languages/m/lines-totext.md b/query-languages/m/lines-totext.md index f00f78e17..69dccf55b 100644 --- a/query-languages/m/lines-totext.md +++ b/query-languages/m/lines-totext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Lines.ToText" title: "Lines.ToText" -ms.date: 10/7/2022 --- # Lines.ToText diff --git a/query-languages/m/list-accumulate.md b/query-languages/m/list-accumulate.md index fdfe17bb3..7af8eeb2b 100644 --- a/query-languages/m/list-accumulate.md +++ b/query-languages/m/list-accumulate.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Accumulate" title: "List.Accumulate" -ms.date: 10/7/2022 --- # List.Accumulate diff --git a/query-languages/m/list-alltrue.md b/query-languages/m/list-alltrue.md index c77f7b3c6..7102f78f0 100644 --- a/query-languages/m/list-alltrue.md +++ b/query-languages/m/list-alltrue.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.AllTrue" title: "List.AllTrue" -ms.date: 10/7/2022 --- # List.AllTrue diff --git a/query-languages/m/list-alternate.md b/query-languages/m/list-alternate.md index de49a1ba3..e009f9c9f 100644 --- a/query-languages/m/list-alternate.md +++ b/query-languages/m/list-alternate.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Alternate" title: "List.Alternate" -ms.date: 10/7/2022 --- # List.Alternate diff --git a/query-languages/m/list-anytrue.md b/query-languages/m/list-anytrue.md index 7a5a073e5..838b7bffd 100644 --- a/query-languages/m/list-anytrue.md +++ b/query-languages/m/list-anytrue.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.AnyTrue" title: "List.AnyTrue" -ms.date: 10/7/2022 --- # List.AnyTrue diff --git a/query-languages/m/list-average.md b/query-languages/m/list-average.md index 4490efedf..09705675c 100644 --- a/query-languages/m/list-average.md +++ b/query-languages/m/list-average.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Average" title: "List.Average" -ms.date: 10/7/2022 --- # List.Average diff --git a/query-languages/m/list-buffer.md b/query-languages/m/list-buffer.md index 2dc1ad285..91f95bfc8 100644 --- a/query-languages/m/list-buffer.md +++ b/query-languages/m/list-buffer.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Buffer" title: "List.Buffer" -ms.date: 10/7/2022 --- # List.Buffer diff --git a/query-languages/m/list-combine.md b/query-languages/m/list-combine.md index 4370c3139..b482eb92c 100644 --- a/query-languages/m/list-combine.md +++ b/query-languages/m/list-combine.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Combine" title: "List.Combine" -ms.date: 3/8/2022 --- # List.Combine diff --git a/query-languages/m/list-conformtopagereader.md b/query-languages/m/list-conformtopagereader.md index 4ac41e0b8..3d18ce69a 100644 --- a/query-languages/m/list-conformtopagereader.md +++ b/query-languages/m/list-conformtopagereader.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.ConformToPageReader" title: "List.ConformToPageReader" -ms.date: 10/7/2022 --- # List.ConformToPageReader diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index 14bf8c2c3..91874e6d4 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Contains" title: "List.Contains" -ms.date: 10/7/2022 --- # List.Contains diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index 6f342af6a..d7672f9e4 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.ContainsAll" title: "List.ContainsAll" -ms.date: 10/7/2022 --- # List.ContainsAll diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index b15ab4dd3..6e05a1de3 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.ContainsAny" title: "List.ContainsAny" -ms.date: 10/7/2022 --- # List.ContainsAny diff --git a/query-languages/m/list-count.md b/query-languages/m/list-count.md index 5868ea30a..0d32193ae 100644 --- a/query-languages/m/list-count.md +++ b/query-languages/m/list-count.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Count" title: "List.Count" -ms.date: 10/7/2022 --- # List.Count diff --git a/query-languages/m/list-covariance.md b/query-languages/m/list-covariance.md index d359f3009..6fff7d754 100644 --- a/query-languages/m/list-covariance.md +++ b/query-languages/m/list-covariance.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Covariance" title: "List.Covariance" -ms.date: 10/7/2022 --- # List.Covariance diff --git a/query-languages/m/list-dates.md b/query-languages/m/list-dates.md index 1652ded51..27b84218d 100644 --- a/query-languages/m/list-dates.md +++ b/query-languages/m/list-dates.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Dates" title: "List.Dates" -ms.date: 3/8/2022 --- # List.Dates diff --git a/query-languages/m/list-datetimes.md b/query-languages/m/list-datetimes.md index c02e0da89..62ca5f7c9 100644 --- a/query-languages/m/list-datetimes.md +++ b/query-languages/m/list-datetimes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.DateTimes" title: "List.DateTimes" -ms.date: 3/8/2022 --- # List.DateTimes diff --git a/query-languages/m/list-datetimezones.md b/query-languages/m/list-datetimezones.md index 300e0a866..2c7e056d0 100644 --- a/query-languages/m/list-datetimezones.md +++ b/query-languages/m/list-datetimezones.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.DateTimeZones" title: "List.DateTimeZones" -ms.date: 10/7/2022 --- # List.DateTimeZones diff --git a/query-languages/m/list-difference.md b/query-languages/m/list-difference.md index 88ecb63b6..91dd2d5d1 100644 --- a/query-languages/m/list-difference.md +++ b/query-languages/m/list-difference.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Difference" title: "List.Difference" -ms.date: 10/7/2022 --- # List.Difference diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index dc46a468a..5e780b34c 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Distinct" title: "List.Distinct" -ms.date: 10/7/2022 --- # List.Distinct diff --git a/query-languages/m/list-durations.md b/query-languages/m/list-durations.md index 336bf427d..2908c3c36 100644 --- a/query-languages/m/list-durations.md +++ b/query-languages/m/list-durations.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Durations" title: "List.Durations" -ms.date: 3/8/2022 --- # List.Durations diff --git a/query-languages/m/list-findtext.md b/query-languages/m/list-findtext.md index 167378d27..880ee252d 100644 --- a/query-languages/m/list-findtext.md +++ b/query-languages/m/list-findtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.FindText" title: "List.FindText" -ms.date: 10/7/2022 --- # List.FindText diff --git a/query-languages/m/list-first.md b/query-languages/m/list-first.md index 7bc5494e8..74f00c4aa 100644 --- a/query-languages/m/list-first.md +++ b/query-languages/m/list-first.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.First" title: "List.First" -ms.date: 10/7/2022 --- # List.First diff --git a/query-languages/m/list-firstn.md b/query-languages/m/list-firstn.md index 585a6ad68..2d779e366 100644 --- a/query-languages/m/list-firstn.md +++ b/query-languages/m/list-firstn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.FirstN" title: "List.FirstN" -ms.date: 10/7/2022 --- # List.FirstN diff --git a/query-languages/m/list-generate.md b/query-languages/m/list-generate.md index fc12ec89d..756108c81 100644 --- a/query-languages/m/list-generate.md +++ b/query-languages/m/list-generate.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Generate" title: "List.Generate" -ms.date: 10/7/2022 --- # List.Generate diff --git a/query-languages/m/list-insertrange.md b/query-languages/m/list-insertrange.md index 32ad998e8..4229c76c8 100644 --- a/query-languages/m/list-insertrange.md +++ b/query-languages/m/list-insertrange.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.InsertRange" title: "List.InsertRange" -ms.date: 10/7/2022 --- # List.InsertRange diff --git a/query-languages/m/list-intersect.md b/query-languages/m/list-intersect.md index a04041472..1360dd048 100644 --- a/query-languages/m/list-intersect.md +++ b/query-languages/m/list-intersect.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Intersect" title: "List.Intersect" -ms.date: 10/7/2022 --- # List.Intersect diff --git a/query-languages/m/list-isdistinct.md b/query-languages/m/list-isdistinct.md index 4171b5e63..d702ceaf0 100644 --- a/query-languages/m/list-isdistinct.md +++ b/query-languages/m/list-isdistinct.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.IsDistinct" title: "List.IsDistinct" -ms.date: 10/7/2022 --- # List.IsDistinct diff --git a/query-languages/m/list-isempty.md b/query-languages/m/list-isempty.md index 9b86d68ea..4d68b9671 100644 --- a/query-languages/m/list-isempty.md +++ b/query-languages/m/list-isempty.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.IsEmpty" title: "List.IsEmpty" -ms.date: 10/7/2022 --- # List.IsEmpty diff --git a/query-languages/m/list-last.md b/query-languages/m/list-last.md index 7528bdc17..a4d5708c3 100644 --- a/query-languages/m/list-last.md +++ b/query-languages/m/list-last.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Last" title: "List.Last" -ms.date: 10/7/2022 --- # List.Last diff --git a/query-languages/m/list-lastn.md b/query-languages/m/list-lastn.md index 1bc225d9f..e6442d8a1 100644 --- a/query-languages/m/list-lastn.md +++ b/query-languages/m/list-lastn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.LastN" title: "List.LastN" -ms.date: 10/7/2022 --- # List.LastN diff --git a/query-languages/m/list-matchesall.md b/query-languages/m/list-matchesall.md index 14a84112b..f2644a155 100644 --- a/query-languages/m/list-matchesall.md +++ b/query-languages/m/list-matchesall.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.MatchesAll" title: "List.MatchesAll" -ms.date: 10/7/2022 --- # List.MatchesAll diff --git a/query-languages/m/list-matchesany.md b/query-languages/m/list-matchesany.md index e6d8880ef..fc8babded 100644 --- a/query-languages/m/list-matchesany.md +++ b/query-languages/m/list-matchesany.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.MatchesAny" title: "List.MatchesAny" -ms.date: 10/7/2022 --- # List.MatchesAny diff --git a/query-languages/m/list-max.md b/query-languages/m/list-max.md index f2e1ac08d..f1b0b713e 100644 --- a/query-languages/m/list-max.md +++ b/query-languages/m/list-max.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Max" title: "List.Max" -ms.date: 3/11/2022 --- # List.Max diff --git a/query-languages/m/list-maxn.md b/query-languages/m/list-maxn.md index 99261dfc9..9107b8983 100644 --- a/query-languages/m/list-maxn.md +++ b/query-languages/m/list-maxn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.MaxN" title: "List.MaxN" -ms.date: 3/16/2022 --- # List.MaxN diff --git a/query-languages/m/list-median.md b/query-languages/m/list-median.md index ec7ba85c4..65e0c4f11 100644 --- a/query-languages/m/list-median.md +++ b/query-languages/m/list-median.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Median" title: "List.Median" -ms.date: 3/11/2022 --- # List.Median diff --git a/query-languages/m/list-min.md b/query-languages/m/list-min.md index f3c32445c..49bfc0cdb 100644 --- a/query-languages/m/list-min.md +++ b/query-languages/m/list-min.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Min" title: "List.Min" -ms.date: 3/11/2022 --- # List.Min diff --git a/query-languages/m/list-minn.md b/query-languages/m/list-minn.md index 55e4f0aed..b6bceac38 100644 --- a/query-languages/m/list-minn.md +++ b/query-languages/m/list-minn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.MinN" title: "List.MinN" -ms.date: 3/16/2022 --- # List.MinN diff --git a/query-languages/m/list-mode.md b/query-languages/m/list-mode.md index f33feac41..b2103013a 100644 --- a/query-languages/m/list-mode.md +++ b/query-languages/m/list-mode.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Mode" title: "List.Mode" -ms.date: 7/15/2022 --- # List.Mode diff --git a/query-languages/m/list-modes.md b/query-languages/m/list-modes.md index a01139cca..924f4916d 100644 --- a/query-languages/m/list-modes.md +++ b/query-languages/m/list-modes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Modes" title: "List.Modes" -ms.date: 7/15/2022 --- # List.Modes diff --git a/query-languages/m/list-nonnullcount.md b/query-languages/m/list-nonnullcount.md index 2fbe966f4..63751c5b3 100644 --- a/query-languages/m/list-nonnullcount.md +++ b/query-languages/m/list-nonnullcount.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.NonNullCount" title: "List.NonNullCount" -ms.date: 10/7/2022 --- # List.NonNullCount diff --git a/query-languages/m/list-numbers.md b/query-languages/m/list-numbers.md index 35360f026..3b5ed372a 100644 --- a/query-languages/m/list-numbers.md +++ b/query-languages/m/list-numbers.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Numbers" title: "List.Numbers" -ms.date: 10/7/2022 --- # List.Numbers diff --git a/query-languages/m/list-percentile.md b/query-languages/m/list-percentile.md index 700797edf..87a656cf2 100644 --- a/query-languages/m/list-percentile.md +++ b/query-languages/m/list-percentile.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Percentile" title: "List.Percentile" -ms.date: 12/19/2022 --- # List.Percentile diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index 5e848b395..12eddccca 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.PositionOf" title: "List.PositionOf" -ms.date: 10/7/2022 --- # List.PositionOf diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index b0d8c428f..26bbdb16c 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.PositionOfAny" title: "List.PositionOfAny" -ms.date: 3/11/2022 --- # List.PositionOfAny diff --git a/query-languages/m/list-positions.md b/query-languages/m/list-positions.md index 980d227d9..96c2799c0 100644 --- a/query-languages/m/list-positions.md +++ b/query-languages/m/list-positions.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Positions" title: "List.Positions" -ms.date: 3/8/2022 --- # List.Positions diff --git a/query-languages/m/list-product.md b/query-languages/m/list-product.md index 6d6d005fa..acc240b56 100644 --- a/query-languages/m/list-product.md +++ b/query-languages/m/list-product.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Product" title: "List.Product" -ms.date: 3/11/2022 --- # List.Product diff --git a/query-languages/m/list-random.md b/query-languages/m/list-random.md index 697a06ad6..af1fd70aa 100644 --- a/query-languages/m/list-random.md +++ b/query-languages/m/list-random.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Random" title: "List.Random" -ms.date: 3/8/2022 --- # List.Random diff --git a/query-languages/m/list-range.md b/query-languages/m/list-range.md index c23b0e428..79aff23ca 100644 --- a/query-languages/m/list-range.md +++ b/query-languages/m/list-range.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Range" title: "List.Range" -ms.date: 3/9/2022 --- # List.Range diff --git a/query-languages/m/list-removefirstn.md b/query-languages/m/list-removefirstn.md index 0495b0647..c41023505 100644 --- a/query-languages/m/list-removefirstn.md +++ b/query-languages/m/list-removefirstn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.RemoveFirstN" title: "List.RemoveFirstN" -ms.date: 3/9/2022 --- # List.RemoveFirstN diff --git a/query-languages/m/list-removeitems.md b/query-languages/m/list-removeitems.md index e324c0a61..a1dd2d164 100644 --- a/query-languages/m/list-removeitems.md +++ b/query-languages/m/list-removeitems.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.RemoveItems" title: "List.RemoveItems" -ms.date: 3/9/2022 --- # List.RemoveItems diff --git a/query-languages/m/list-removelastn.md b/query-languages/m/list-removelastn.md index 8bf81df9c..83c338e9f 100644 --- a/query-languages/m/list-removelastn.md +++ b/query-languages/m/list-removelastn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.RemoveLastN" title: "List.RemoveLastN" -ms.date: 3/9/2022 --- # List.RemoveLastN diff --git a/query-languages/m/list-removematchingitems.md b/query-languages/m/list-removematchingitems.md index bccb514d2..f2e7877b5 100644 --- a/query-languages/m/list-removematchingitems.md +++ b/query-languages/m/list-removematchingitems.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.RemoveMatchingItems" title: "List.RemoveMatchingItems" -ms.date: 3/9/2022 --- # List.RemoveMatchingItems diff --git a/query-languages/m/list-removenulls.md b/query-languages/m/list-removenulls.md index cdd94f9eb..5bffbad84 100644 --- a/query-languages/m/list-removenulls.md +++ b/query-languages/m/list-removenulls.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.RemoveNulls" title: "List.RemoveNulls" -ms.date: 3/9/2022 --- # List.RemoveNulls diff --git a/query-languages/m/list-removerange.md b/query-languages/m/list-removerange.md index 1d1f65375..6278414d3 100644 --- a/query-languages/m/list-removerange.md +++ b/query-languages/m/list-removerange.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.RemoveRange" title: "List.RemoveRange" -ms.date: 3/9/2022 --- # List.RemoveRange diff --git a/query-languages/m/list-repeat.md b/query-languages/m/list-repeat.md index af3dbe10e..0ebf39f54 100644 --- a/query-languages/m/list-repeat.md +++ b/query-languages/m/list-repeat.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Repeat" title: "List.Repeat" -ms.date: 3/9/2022 --- # List.Repeat diff --git a/query-languages/m/list-replacematchingitems.md b/query-languages/m/list-replacematchingitems.md index 5279ff335..6f536ac1c 100644 --- a/query-languages/m/list-replacematchingitems.md +++ b/query-languages/m/list-replacematchingitems.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.ReplaceMatchingItems" title: "List.ReplaceMatchingItems" -ms.date: 3/9/2022 --- # List.ReplaceMatchingItems diff --git a/query-languages/m/list-replacerange.md b/query-languages/m/list-replacerange.md index 1ba5279db..57e5df408 100644 --- a/query-languages/m/list-replacerange.md +++ b/query-languages/m/list-replacerange.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.ReplaceRange" title: "List.ReplaceRange" -ms.date: 3/9/2022 --- # List.ReplaceRange diff --git a/query-languages/m/list-replacevalue.md b/query-languages/m/list-replacevalue.md index 851e33337..151ce3267 100644 --- a/query-languages/m/list-replacevalue.md +++ b/query-languages/m/list-replacevalue.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.ReplaceValue" title: "List.ReplaceValue" -ms.date: 3/9/2022 --- # List.ReplaceValue diff --git a/query-languages/m/list-reverse.md b/query-languages/m/list-reverse.md index 4cdb4f982..0d46723f9 100644 --- a/query-languages/m/list-reverse.md +++ b/query-languages/m/list-reverse.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Reverse" title: "List.Reverse" -ms.date: 3/9/2022 --- # List.Reverse diff --git a/query-languages/m/list-select.md b/query-languages/m/list-select.md index 9eb3c38bd..ee107008a 100644 --- a/query-languages/m/list-select.md +++ b/query-languages/m/list-select.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Select" title: "List.Select" -ms.date: 3/9/2022 --- # List.Select diff --git a/query-languages/m/list-single.md b/query-languages/m/list-single.md index 7de9567cf..ab663b5f9 100644 --- a/query-languages/m/list-single.md +++ b/query-languages/m/list-single.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Single" title: "List.Single" -ms.date: 3/11/2022 --- # List.Single diff --git a/query-languages/m/list-singleordefault.md b/query-languages/m/list-singleordefault.md index 42c1396fd..a33d6e2ce 100644 --- a/query-languages/m/list-singleordefault.md +++ b/query-languages/m/list-singleordefault.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.SingleOrDefault" title: "List.SingleOrDefault" -ms.date: 3/11/2022 --- # List.SingleOrDefault diff --git a/query-languages/m/list-skip.md b/query-languages/m/list-skip.md index a2472c979..6705a55f4 100644 --- a/query-languages/m/list-skip.md +++ b/query-languages/m/list-skip.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Skip" title: "List.Skip" -ms.date: 3/9/2022 --- # List.Skip diff --git a/query-languages/m/list-sort.md b/query-languages/m/list-sort.md index 947edac66..671bdd603 100644 --- a/query-languages/m/list-sort.md +++ b/query-languages/m/list-sort.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Sort" title: "List.Sort" -ms.date: 10/7/2022 --- # List.Sort diff --git a/query-languages/m/list-split.md b/query-languages/m/list-split.md index adb68412c..99f2dc20c 100644 --- a/query-languages/m/list-split.md +++ b/query-languages/m/list-split.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Split" title: "List.Split" -ms.date: 11/17/2021 --- # List.Split diff --git a/query-languages/m/list-standarddeviation.md b/query-languages/m/list-standarddeviation.md index 397a2be69..45890a214 100644 --- a/query-languages/m/list-standarddeviation.md +++ b/query-languages/m/list-standarddeviation.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.StandardDeviation" title: "List.StandardDeviation" -ms.date: 3/11/2022 --- # List.StandardDeviation diff --git a/query-languages/m/list-sum.md b/query-languages/m/list-sum.md index 152416329..1f8f1ff27 100644 --- a/query-languages/m/list-sum.md +++ b/query-languages/m/list-sum.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Sum" title: "List.Sum" -ms.date: 3/11/2022 --- # List.Sum diff --git a/query-languages/m/list-times.md b/query-languages/m/list-times.md index 97e20bce2..481cae6b0 100644 --- a/query-languages/m/list-times.md +++ b/query-languages/m/list-times.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Times" title: "List.Times" -ms.date: 3/9/2022 --- # List.Times diff --git a/query-languages/m/list-transform.md b/query-languages/m/list-transform.md index 256100489..3ed433a49 100644 --- a/query-languages/m/list-transform.md +++ b/query-languages/m/list-transform.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Transform" title: "List.Transform" -ms.date: 3/9/2022 --- # List.Transform diff --git a/query-languages/m/list-transformmany.md b/query-languages/m/list-transformmany.md index 717264a85..68664ec5a 100644 --- a/query-languages/m/list-transformmany.md +++ b/query-languages/m/list-transformmany.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.TransformMany" title: "List.TransformMany" -ms.date: 1/18/2023 --- # List.TransformMany diff --git a/query-languages/m/list-union.md b/query-languages/m/list-union.md index d306e16d4..e62da6a6e 100644 --- a/query-languages/m/list-union.md +++ b/query-languages/m/list-union.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Union" title: "List.Union" -ms.date: 3/9/2022 --- # List.Union diff --git a/query-languages/m/list-zip.md b/query-languages/m/list-zip.md index 656f74733..97793f901 100644 --- a/query-languages/m/list-zip.md +++ b/query-languages/m/list-zip.md @@ -1,7 +1,6 @@ --- description: "Learn more about: List.Zip" title: "List.Zip" -ms.date: 3/9/2022 --- # List.Zip diff --git a/query-languages/m/logical-from.md b/query-languages/m/logical-from.md index f51755239..365cdf58f 100644 --- a/query-languages/m/logical-from.md +++ b/query-languages/m/logical-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Logical.From" title: "Logical.From" -ms.date: 4/13/2022 --- # Logical.From diff --git a/query-languages/m/logical-fromtext.md b/query-languages/m/logical-fromtext.md index 3133fe386..7f3ae93dc 100644 --- a/query-languages/m/logical-fromtext.md +++ b/query-languages/m/logical-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Logical.FromText" title: "Logical.FromText" -ms.date: 3/11/2022 --- # Logical.FromText diff --git a/query-languages/m/logical-totext.md b/query-languages/m/logical-totext.md index 0cb53412b..962c824a3 100644 --- a/query-languages/m/logical-totext.md +++ b/query-languages/m/logical-totext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Logical.ToText" title: "Logical.ToText" -ms.date: 3/11/2022 --- # Logical.ToText diff --git a/query-languages/m/missingfield-type.md b/query-languages/m/missingfield-type.md index b1d98004a..e09a34ba5 100644 --- a/query-languages/m/missingfield-type.md +++ b/query-languages/m/missingfield-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: MissingField.Type" title: "MissingField.Type" -ms.date: 5/16/2022 --- # MissingField.Type diff --git a/query-languages/m/mysql-database.md b/query-languages/m/mysql-database.md index fa73e7053..68b819dfa 100644 --- a/query-languages/m/mysql-database.md +++ b/query-languages/m/mysql-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: MySQL.Database" title: "MySQL.Database" -ms.date: 10/7/2022 --- # MySQL.Database diff --git a/query-languages/m/number-abs.md b/query-languages/m/number-abs.md index 47c0707bc..aa6c990ac 100644 --- a/query-languages/m/number-abs.md +++ b/query-languages/m/number-abs.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Abs" title: "Number.Abs" -ms.date: 10/10/2022 --- # Number.Abs diff --git a/query-languages/m/number-acos.md b/query-languages/m/number-acos.md index 8f3b843d0..dc4a0debe 100644 --- a/query-languages/m/number-acos.md +++ b/query-languages/m/number-acos.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Acos" title: "Number.Acos" -ms.date: 10/7/2022 --- # Number.Acos diff --git a/query-languages/m/number-asin.md b/query-languages/m/number-asin.md index 51f514258..5f25ba787 100644 --- a/query-languages/m/number-asin.md +++ b/query-languages/m/number-asin.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Asin" title: "Number.Asin" -ms.date: 10/7/2022 --- # Number.Asin diff --git a/query-languages/m/number-atan.md b/query-languages/m/number-atan.md index d1a6a55a3..0018defe2 100644 --- a/query-languages/m/number-atan.md +++ b/query-languages/m/number-atan.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Atan" title: "Number.Atan" -ms.date: 10/7/2022 --- # Number.Atan diff --git a/query-languages/m/number-atan2.md b/query-languages/m/number-atan2.md index 93654035b..72610f7ad 100644 --- a/query-languages/m/number-atan2.md +++ b/query-languages/m/number-atan2.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Atan2" title: "Number.Atan2" -ms.date: 10/10/2022 --- # Number.Atan2 diff --git a/query-languages/m/number-bitwiseand.md b/query-languages/m/number-bitwiseand.md index 4b9a2cf00..ade11c7eb 100644 --- a/query-languages/m/number-bitwiseand.md +++ b/query-languages/m/number-bitwiseand.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.BitwiseAnd" title: "Number.BitwiseAnd" -ms.date: 10/7/2022 --- # Number.BitwiseAnd diff --git a/query-languages/m/number-bitwisenot.md b/query-languages/m/number-bitwisenot.md index 965ccee10..59c93d10b 100644 --- a/query-languages/m/number-bitwisenot.md +++ b/query-languages/m/number-bitwisenot.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.BitwiseNot" title: "Number.BitwiseNot" -ms.date: 10/7/2022 --- # Number.BitwiseNot diff --git a/query-languages/m/number-bitwiseor.md b/query-languages/m/number-bitwiseor.md index 6f3023b93..a9c4665bc 100644 --- a/query-languages/m/number-bitwiseor.md +++ b/query-languages/m/number-bitwiseor.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.BitwiseOr" title: "Number.BitwiseOr" -ms.date: 10/7/2022 --- # Number.BitwiseOr diff --git a/query-languages/m/number-bitwiseshiftleft.md b/query-languages/m/number-bitwiseshiftleft.md index ab533c99d..178a60cfe 100644 --- a/query-languages/m/number-bitwiseshiftleft.md +++ b/query-languages/m/number-bitwiseshiftleft.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.BitwiseShiftLeft" title: "Number.BitwiseShiftLeft" -ms.date: 10/7/2022 --- # Number.BitwiseShiftLeft diff --git a/query-languages/m/number-bitwiseshiftright.md b/query-languages/m/number-bitwiseshiftright.md index 0311603b1..023b4fc14 100644 --- a/query-languages/m/number-bitwiseshiftright.md +++ b/query-languages/m/number-bitwiseshiftright.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.BitwiseShiftRight" title: "Number.BitwiseShiftRight" -ms.date: 10/7/2022 --- # Number.BitwiseShiftRight diff --git a/query-languages/m/number-bitwisexor.md b/query-languages/m/number-bitwisexor.md index 41952c016..ddc8f2e1e 100644 --- a/query-languages/m/number-bitwisexor.md +++ b/query-languages/m/number-bitwisexor.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.BitwiseXor" title: "Number.BitwiseXor" -ms.date: 10/7/2022 --- # Number.BitwiseXor diff --git a/query-languages/m/number-combinations.md b/query-languages/m/number-combinations.md index 9609d7e72..544f2f0ec 100644 --- a/query-languages/m/number-combinations.md +++ b/query-languages/m/number-combinations.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Combinations" title: "Number.Combinations" -ms.date: 10/10/2022 --- # Number.Combinations diff --git a/query-languages/m/number-cos.md b/query-languages/m/number-cos.md index 5dc431212..438096167 100644 --- a/query-languages/m/number-cos.md +++ b/query-languages/m/number-cos.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Cos" title: "Number.Cos" -ms.date: 10/10/2022 --- # Number.Cos diff --git a/query-languages/m/number-cosh.md b/query-languages/m/number-cosh.md index ec174e81f..129f44579 100644 --- a/query-languages/m/number-cosh.md +++ b/query-languages/m/number-cosh.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Cosh" title: "Number.Cosh" -ms.date: 10/7/2022 --- # Number.Cosh diff --git a/query-languages/m/number-e.md b/query-languages/m/number-e.md index 04528334a..dea5969c1 100644 --- a/query-languages/m/number-e.md +++ b/query-languages/m/number-e.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.E" title: "Number.E" -ms.date: 7/31/2019 --- # Number.E diff --git a/query-languages/m/number-epsilon.md b/query-languages/m/number-epsilon.md index f7ff9ce30..9e9aa23d8 100644 --- a/query-languages/m/number-epsilon.md +++ b/query-languages/m/number-epsilon.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Epsilon" title: "Number.Epsilon" -ms.date: 10/7/2022 --- # Number.Epsilon diff --git a/query-languages/m/number-exp.md b/query-languages/m/number-exp.md index de12a59a6..eabf3fbe7 100644 --- a/query-languages/m/number-exp.md +++ b/query-languages/m/number-exp.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Exp" title: "Number.Exp" -ms.date: 10/10/2022 --- # Number.Exp diff --git a/query-languages/m/number-factorial.md b/query-languages/m/number-factorial.md index b0e1f5fea..0b549b410 100644 --- a/query-languages/m/number-factorial.md +++ b/query-languages/m/number-factorial.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Factorial" title: "Number.Factorial" -ms.date: 10/10/2022 --- # Number.Factorial diff --git a/query-languages/m/number-from.md b/query-languages/m/number-from.md index 8c2daa2b4..e9e799f20 100644 --- a/query-languages/m/number-from.md +++ b/query-languages/m/number-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.From" title: "Number.From" -ms.date: 3/20/2023 --- # Number.From diff --git a/query-languages/m/number-fromtext.md b/query-languages/m/number-fromtext.md index c780b3147..3804491ca 100644 --- a/query-languages/m/number-fromtext.md +++ b/query-languages/m/number-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.FromText" title: "Number.FromText" -ms.date: 10/10/2022 --- # Number.FromText diff --git a/query-languages/m/number-integerdivide.md b/query-languages/m/number-integerdivide.md index e6786b7d0..051225ce0 100644 --- a/query-languages/m/number-integerdivide.md +++ b/query-languages/m/number-integerdivide.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.IntegerDivide" title: "Number.IntegerDivide" -ms.date: 3/11/2022 --- # Number.IntegerDivide diff --git a/query-languages/m/number-iseven.md b/query-languages/m/number-iseven.md index 35f3578dc..b33f404da 100644 --- a/query-languages/m/number-iseven.md +++ b/query-languages/m/number-iseven.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.IsEven" title: "Number.IsEven" -ms.date: 3/11/2022 --- # Number.IsEven diff --git a/query-languages/m/number-isnan.md b/query-languages/m/number-isnan.md index 8183593e7..fa90ff635 100644 --- a/query-languages/m/number-isnan.md +++ b/query-languages/m/number-isnan.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.IsNaN" title: "Number.IsNaN" -ms.date: 3/11/2022 --- # Number.IsNaN diff --git a/query-languages/m/number-isodd.md b/query-languages/m/number-isodd.md index 2fc69f9df..848d2a648 100644 --- a/query-languages/m/number-isodd.md +++ b/query-languages/m/number-isodd.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.IsOdd" title: "Number.IsOdd" -ms.date: 3/11/2022 --- # Number.IsOdd diff --git a/query-languages/m/number-ln.md b/query-languages/m/number-ln.md index 83d3674f7..537eb1570 100644 --- a/query-languages/m/number-ln.md +++ b/query-languages/m/number-ln.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Ln" title: "Number.Ln" -ms.date: 3/9/2022 --- # Number.Ln diff --git a/query-languages/m/number-log.md b/query-languages/m/number-log.md index 4f9d030db..6bb2a2ea0 100644 --- a/query-languages/m/number-log.md +++ b/query-languages/m/number-log.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Log" title: "Number.Log" -ms.date: 3/11/2022 --- # Number.Log diff --git a/query-languages/m/number-log10.md b/query-languages/m/number-log10.md index 6beb47485..1f699bf98 100644 --- a/query-languages/m/number-log10.md +++ b/query-languages/m/number-log10.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Log10" title: "Number.Log10" -ms.date: 3/11/2022 --- # Number.Log10 diff --git a/query-languages/m/number-mod.md b/query-languages/m/number-mod.md index ceacef7af..6678fe92e 100644 --- a/query-languages/m/number-mod.md +++ b/query-languages/m/number-mod.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Mod" title: "Number.Mod" -ms.date: 3/11/2022 --- # Number.Mod diff --git a/query-languages/m/number-nan.md b/query-languages/m/number-nan.md index 874142b33..7e2848c32 100644 --- a/query-languages/m/number-nan.md +++ b/query-languages/m/number-nan.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.NaN" title: "Number.NaN" -ms.date: 10/7/2022 --- # Number.NaN diff --git a/query-languages/m/number-negativeinfinity.md b/query-languages/m/number-negativeinfinity.md index 41521e000..0bc6d123d 100644 --- a/query-languages/m/number-negativeinfinity.md +++ b/query-languages/m/number-negativeinfinity.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.NegativeInfinity" title: "Number.NegativeInfinity" -ms.date: 10/7/2022 --- # Number.NegativeInfinity diff --git a/query-languages/m/number-permutations.md b/query-languages/m/number-permutations.md index ede197bf2..93618fdb4 100644 --- a/query-languages/m/number-permutations.md +++ b/query-languages/m/number-permutations.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Permutations" title: "Number.Permutations" -ms.date: 3/11/2022 --- # Number.Permutations diff --git a/query-languages/m/number-pi.md b/query-languages/m/number-pi.md index b66119696..35dc91bfc 100644 --- a/query-languages/m/number-pi.md +++ b/query-languages/m/number-pi.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.PI" title: "Number.PI" -ms.date: 10/7/2022 --- # Number.PI diff --git a/query-languages/m/number-positiveinfinity.md b/query-languages/m/number-positiveinfinity.md index 6b6accbc8..01dc62638 100644 --- a/query-languages/m/number-positiveinfinity.md +++ b/query-languages/m/number-positiveinfinity.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.PositiveInfinity" title: "Number.PositiveInfinity" -ms.date: 10/7/2022 --- # Number.PositiveInfinity diff --git a/query-languages/m/number-power.md b/query-languages/m/number-power.md index f98abbf1f..a7479e035 100644 --- a/query-languages/m/number-power.md +++ b/query-languages/m/number-power.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Power" title: "Number.Power" -ms.date: 10/10/2022 --- # Number.Power diff --git a/query-languages/m/number-random.md b/query-languages/m/number-random.md index bab799054..191e2e966 100644 --- a/query-languages/m/number-random.md +++ b/query-languages/m/number-random.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Random" title: "Number.Random" -ms.date: 3/11/2022 --- # Number.Random diff --git a/query-languages/m/number-randombetween.md b/query-languages/m/number-randombetween.md index 60137633d..6ea5eb066 100644 --- a/query-languages/m/number-randombetween.md +++ b/query-languages/m/number-randombetween.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.RandomBetween" title: "Number.RandomBetween" -ms.date: 3/11/2022 --- # Number.RandomBetween diff --git a/query-languages/m/number-round.md b/query-languages/m/number-round.md index 063a953af..32439e928 100644 --- a/query-languages/m/number-round.md +++ b/query-languages/m/number-round.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Round" title: "Number.Round" -ms.date: 12/19/2022 --- # Number.Round diff --git a/query-languages/m/number-roundawayfromzero.md b/query-languages/m/number-roundawayfromzero.md index 674e9ac42..7b5709099 100644 --- a/query-languages/m/number-roundawayfromzero.md +++ b/query-languages/m/number-roundawayfromzero.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.RoundAwayFromZero" title: "Number.RoundAwayFromZero" -ms.date: 3/11/2022 --- # Number.RoundAwayFromZero diff --git a/query-languages/m/number-rounddown.md b/query-languages/m/number-rounddown.md index 2202e502b..2952b0b33 100644 --- a/query-languages/m/number-rounddown.md +++ b/query-languages/m/number-rounddown.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.RoundDown" title: "Number.RoundDown" -ms.date: 4/13/2022 --- # Number.RoundDown diff --git a/query-languages/m/number-roundtowardzero.md b/query-languages/m/number-roundtowardzero.md index f04f84b48..ec19cd21e 100644 --- a/query-languages/m/number-roundtowardzero.md +++ b/query-languages/m/number-roundtowardzero.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.RoundTowardZero" title: "Number.RoundTowardZero" -ms.date: 3/11/2022 --- # Number.RoundTowardZero diff --git a/query-languages/m/number-roundup.md b/query-languages/m/number-roundup.md index 5701195c2..173fd1bf1 100644 --- a/query-languages/m/number-roundup.md +++ b/query-languages/m/number-roundup.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.RoundUp" title: "Number.RoundUp" -ms.date: 4/13/2022 --- # Number.RoundUp diff --git a/query-languages/m/number-sign.md b/query-languages/m/number-sign.md index 2515f88c6..81b0f44a6 100644 --- a/query-languages/m/number-sign.md +++ b/query-languages/m/number-sign.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Sign" title: "Number.Sign" -ms.date: 3/11/2022 --- # Number.Sign diff --git a/query-languages/m/number-sin.md b/query-languages/m/number-sin.md index b0f5bc543..679cab63c 100644 --- a/query-languages/m/number-sin.md +++ b/query-languages/m/number-sin.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Sin" title: "Number.Sin" -ms.date: 3/11/2022 --- # Number.Sin diff --git a/query-languages/m/number-sinh.md b/query-languages/m/number-sinh.md index 72065d170..016786801 100644 --- a/query-languages/m/number-sinh.md +++ b/query-languages/m/number-sinh.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Sinh" title: "Number.Sinh" -ms.date: 10/7/2022 --- # Number.Sinh diff --git a/query-languages/m/number-sqrt.md b/query-languages/m/number-sqrt.md index 5d3a32f91..e8776dc61 100644 --- a/query-languages/m/number-sqrt.md +++ b/query-languages/m/number-sqrt.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Sqrt" title: "Number.Sqrt" -ms.date: 3/11/2022 --- # Number.Sqrt diff --git a/query-languages/m/number-tan.md b/query-languages/m/number-tan.md index 6cbce802e..454559cf5 100644 --- a/query-languages/m/number-tan.md +++ b/query-languages/m/number-tan.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Tan" title: "Number.Tan" -ms.date: 3/11/2022 --- # Number.Tan diff --git a/query-languages/m/number-tanh.md b/query-languages/m/number-tanh.md index 077a3e769..e6378c7fb 100644 --- a/query-languages/m/number-tanh.md +++ b/query-languages/m/number-tanh.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.Tanh" title: "Number.Tanh" -ms.date: 10/7/2022 --- # Number.Tanh diff --git a/query-languages/m/number-totext.md b/query-languages/m/number-totext.md index 98afa7142..473b3dcdd 100644 --- a/query-languages/m/number-totext.md +++ b/query-languages/m/number-totext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Number.ToText" title: "Number.ToText" -ms.date: 7/18/2023 --- # Number.ToText diff --git a/query-languages/m/occurrence-type.md b/query-languages/m/occurrence-type.md index c4a045599..7050f5b44 100644 --- a/query-languages/m/occurrence-type.md +++ b/query-languages/m/occurrence-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Occurrence.Type" title: "Occurrence.Type" -ms.date: 5/16/2022 --- # Occurrence.Type diff --git a/query-languages/m/odata-feed.md b/query-languages/m/odata-feed.md index 808656736..8a90f91af 100644 --- a/query-languages/m/odata-feed.md +++ b/query-languages/m/odata-feed.md @@ -1,7 +1,6 @@ --- description: "Learn more about: OData.Feed" title: "OData.Feed" -ms.date: 3/16/2022 --- # OData.Feed diff --git a/query-languages/m/odataomitvalues-type.md b/query-languages/m/odataomitvalues-type.md index 617ca4781..a8e858990 100644 --- a/query-languages/m/odataomitvalues-type.md +++ b/query-languages/m/odataomitvalues-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: ODataOmitValues.Type" title: "ODataOmitValues.Type" -ms.date: 6/27/2022 --- # ODataOmitValues.Type diff --git a/query-languages/m/odbc-datasource.md b/query-languages/m/odbc-datasource.md index 828226442..42f76a823 100644 --- a/query-languages/m/odbc-datasource.md +++ b/query-languages/m/odbc-datasource.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Odbc.DataSource" title: "Odbc.DataSource" -ms.date: 10/7/2022 --- # Odbc.DataSource diff --git a/query-languages/m/odbc-inferoptions.md b/query-languages/m/odbc-inferoptions.md index 83cedc1bb..5be1562ac 100644 --- a/query-languages/m/odbc-inferoptions.md +++ b/query-languages/m/odbc-inferoptions.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Odbc.InferOptions" title: "Odbc.InferOptions" -ms.date: 3/14/2022 --- # Odbc.InferOptions diff --git a/query-languages/m/odbc-query.md b/query-languages/m/odbc-query.md index 287ead5f2..4894149e6 100644 --- a/query-languages/m/odbc-query.md +++ b/query-languages/m/odbc-query.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Odbc.Query" title: "Odbc.Query" -ms.date: 10/7/2022 --- # Odbc.Query diff --git a/query-languages/m/oledb-datasource.md b/query-languages/m/oledb-datasource.md index 01310b8c7..835379e4a 100644 --- a/query-languages/m/oledb-datasource.md +++ b/query-languages/m/oledb-datasource.md @@ -1,7 +1,6 @@ --- description: "Learn more about: OleDb.DataSource" title: "OleDb.DataSource" -ms.date: 10/7/2022 --- # OleDb.DataSource diff --git a/query-languages/m/oledb-query.md b/query-languages/m/oledb-query.md index 194913270..fa770a082 100644 --- a/query-languages/m/oledb-query.md +++ b/query-languages/m/oledb-query.md @@ -1,7 +1,6 @@ --- description: "Learn more about: OleDb.Query" title: "OleDb.Query" -ms.date: 10/7/2022 --- # OleDb.Query diff --git a/query-languages/m/oracle-database.md b/query-languages/m/oracle-database.md index e2bf83339..16cd9a4a0 100644 --- a/query-languages/m/oracle-database.md +++ b/query-languages/m/oracle-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Oracle.Database" title: "Oracle.Database" -ms.date: 10/7/2022 --- # Oracle.Database diff --git a/query-languages/m/order-type.md b/query-languages/m/order-type.md index 1c6a101de..76108d9dd 100644 --- a/query-languages/m/order-type.md +++ b/query-languages/m/order-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Order.Type" title: "Order.Type" -ms.date: 5/16/2022 --- # Order.Type diff --git a/query-languages/m/pdf-tables.md b/query-languages/m/pdf-tables.md index 5d374c540..bc8813c4c 100644 --- a/query-languages/m/pdf-tables.md +++ b/query-languages/m/pdf-tables.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Pdf.Tables" title: "Pdf.Tables" -ms.date: 3/14/2022 --- # Pdf.Tables diff --git a/query-languages/m/percentage-from.md b/query-languages/m/percentage-from.md index eea22d858..d39014c3e 100644 --- a/query-languages/m/percentage-from.md +++ b/query-languages/m/percentage-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Percentage.From" title: "Percentage.From" -ms.date: 4/13/2022 --- # Percentage.From diff --git a/query-languages/m/percentilemode-type.md b/query-languages/m/percentilemode-type.md index 896290d7c..149286c21 100644 --- a/query-languages/m/percentilemode-type.md +++ b/query-languages/m/percentilemode-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: PercentileMode.Type" title: "PercentileMode.Type" -ms.date: 5/16/2022 --- # PercentileMode.Type diff --git a/query-languages/m/postgresql-database.md b/query-languages/m/postgresql-database.md index a8367953f..732382af9 100644 --- a/query-languages/m/postgresql-database.md +++ b/query-languages/m/postgresql-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: PostgreSQL.Database" title: "PostgreSQL.Database" -ms.date: 10/7/2022 --- # PostgreSQL.Database diff --git a/query-languages/m/precision-type.md b/query-languages/m/precision-type.md index 5a0742098..9955c8af2 100644 --- a/query-languages/m/precision-type.md +++ b/query-languages/m/precision-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Precision.Type" title: "Precision.Type" -ms.date: 5/16/2022 --- # Precision.Type diff --git a/query-languages/m/progress-datasourceprogress.md b/query-languages/m/progress-datasourceprogress.md index 306a65f28..96f9fceca 100644 --- a/query-languages/m/progress-datasourceprogress.md +++ b/query-languages/m/progress-datasourceprogress.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Progress.DataSourceProgress" title: "Progress.DataSourceProgress" -ms.date: 11/14/2022 --- # Progress.DataSourceProgress diff --git a/query-languages/m/quotestyle-type.md b/query-languages/m/quotestyle-type.md index dc67f1699..73a539e66 100644 --- a/query-languages/m/quotestyle-type.md +++ b/query-languages/m/quotestyle-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: QuoteStyle.Type" title: "QuoteStyle.Type" -ms.date: 5/16/2022 --- # QuoteStyle.Type diff --git a/query-languages/m/rankkind-type.md b/query-languages/m/rankkind-type.md index bdd9f0799..684ed867d 100644 --- a/query-languages/m/rankkind-type.md +++ b/query-languages/m/rankkind-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: RankKind.Type" title: "RankKind.Type" -ms.date: 5/19/2022 --- # RankKind.Type diff --git a/query-languages/m/rdata-frombinary.md b/query-languages/m/rdata-frombinary.md index 8271a8344..b5f683501 100644 --- a/query-languages/m/rdata-frombinary.md +++ b/query-languages/m/rdata-frombinary.md @@ -1,7 +1,6 @@ --- description: "Learn more about: RData.FromBinary" title: "RData.FromBinary" -ms.date: 10/7/2022 --- # RData.FromBinary diff --git a/query-languages/m/record-addfield.md b/query-languages/m/record-addfield.md index 731b5e472..fbaabf8db 100644 --- a/query-languages/m/record-addfield.md +++ b/query-languages/m/record-addfield.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.AddField" title: "Record.AddField" -ms.date: 3/9/2022 --- # Record.AddField diff --git a/query-languages/m/record-combine.md b/query-languages/m/record-combine.md index 2f33ff8be..b72ebe497 100644 --- a/query-languages/m/record-combine.md +++ b/query-languages/m/record-combine.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.Combine" title: "Record.Combine" -ms.date: 3/9/2022 --- # Record.Combine diff --git a/query-languages/m/record-field.md b/query-languages/m/record-field.md index 4e340d489..f57ad3deb 100644 --- a/query-languages/m/record-field.md +++ b/query-languages/m/record-field.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.Field" title: "Record.Field" -ms.date: 3/14/2022 --- # Record.Field diff --git a/query-languages/m/record-fieldcount.md b/query-languages/m/record-fieldcount.md index 510774aa5..ccff2f17f 100644 --- a/query-languages/m/record-fieldcount.md +++ b/query-languages/m/record-fieldcount.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.FieldCount" title: "Record.FieldCount" -ms.date: 3/14/2022 --- # Record.FieldCount diff --git a/query-languages/m/record-fieldnames.md b/query-languages/m/record-fieldnames.md index 131638fd5..b9b87a0da 100644 --- a/query-languages/m/record-fieldnames.md +++ b/query-languages/m/record-fieldnames.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.FieldNames" title: "Record.FieldNames" -ms.date: 3/9/2022 --- # Record.FieldNames diff --git a/query-languages/m/record-fieldordefault.md b/query-languages/m/record-fieldordefault.md index cf16ef837..714ce993c 100644 --- a/query-languages/m/record-fieldordefault.md +++ b/query-languages/m/record-fieldordefault.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.FieldOrDefault" title: "Record.FieldOrDefault" -ms.date: 3/14/2022 --- # Record.FieldOrDefault diff --git a/query-languages/m/record-fieldvalues.md b/query-languages/m/record-fieldvalues.md index 0eb0bf612..03bd9ebcc 100644 --- a/query-languages/m/record-fieldvalues.md +++ b/query-languages/m/record-fieldvalues.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.FieldValues" title: "Record.FieldValues" -ms.date: 3/9/2022 --- # Record.FieldValues diff --git a/query-languages/m/record-fromlist.md b/query-languages/m/record-fromlist.md index 81ccc32bd..e1ee0596a 100644 --- a/query-languages/m/record-fromlist.md +++ b/query-languages/m/record-fromlist.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.FromList" title: "Record.FromList" -ms.date: 3/9/2022 --- # Record.FromList diff --git a/query-languages/m/record-fromtable.md b/query-languages/m/record-fromtable.md index 5a2b78c92..96c5ca015 100644 --- a/query-languages/m/record-fromtable.md +++ b/query-languages/m/record-fromtable.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.FromTable" title: "Record.FromTable" -ms.date: 3/9/2022 --- # Record.FromTable diff --git a/query-languages/m/record-hasfields.md b/query-languages/m/record-hasfields.md index 2634b56c1..36d7427b2 100644 --- a/query-languages/m/record-hasfields.md +++ b/query-languages/m/record-hasfields.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.HasFields" title: "Record.HasFields" -ms.date: 3/14/2022 --- # Record.HasFields diff --git a/query-languages/m/record-removefields.md b/query-languages/m/record-removefields.md index fee0da597..6efdd90b0 100644 --- a/query-languages/m/record-removefields.md +++ b/query-languages/m/record-removefields.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.RemoveFields" title: "Record.RemoveFields" -ms.date: 3/9/2022 --- # Record.RemoveFields diff --git a/query-languages/m/record-renamefields.md b/query-languages/m/record-renamefields.md index d01759b8d..c82944a97 100644 --- a/query-languages/m/record-renamefields.md +++ b/query-languages/m/record-renamefields.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.RenameFields" title: "Record.RenameFields" -ms.date: 3/9/2022 --- # Record.RenameFields diff --git a/query-languages/m/record-reorderfields.md b/query-languages/m/record-reorderfields.md index dfa9e9284..89709a68b 100644 --- a/query-languages/m/record-reorderfields.md +++ b/query-languages/m/record-reorderfields.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.ReorderFields" title: "Record.ReorderFields" -ms.date: 3/9/2022 --- # Record.ReorderFields diff --git a/query-languages/m/record-selectfields.md b/query-languages/m/record-selectfields.md index 38a4a79e0..9c7f8af2c 100644 --- a/query-languages/m/record-selectfields.md +++ b/query-languages/m/record-selectfields.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.SelectFields" title: "Record.SelectFields" -ms.date: 3/9/2022 --- # Record.SelectFields diff --git a/query-languages/m/record-tolist.md b/query-languages/m/record-tolist.md index 796a1ec89..874d6acae 100644 --- a/query-languages/m/record-tolist.md +++ b/query-languages/m/record-tolist.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.ToList" title: "Record.ToList" -ms.date: 3/9/2022 --- # Record.ToList diff --git a/query-languages/m/record-totable.md b/query-languages/m/record-totable.md index f20f40076..da5c4af67 100644 --- a/query-languages/m/record-totable.md +++ b/query-languages/m/record-totable.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.ToTable" title: "Record.ToTable" -ms.date: 3/9/2022 --- # Record.ToTable diff --git a/query-languages/m/record-transformfields.md b/query-languages/m/record-transformfields.md index dafd6eba0..958ca93b8 100644 --- a/query-languages/m/record-transformfields.md +++ b/query-languages/m/record-transformfields.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Record.TransformFields" title: "Record.TransformFields" -ms.date: 5/19/2022 --- # Record.TransformFields diff --git a/query-languages/m/relativeposition-type.md b/query-languages/m/relativeposition-type.md index bde9ea803..599f16b08 100644 --- a/query-languages/m/relativeposition-type.md +++ b/query-languages/m/relativeposition-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: RelativePosition.Type" title: "RelativePosition.Type" -ms.date: 5/16/2022 --- # RelativePosition.Type diff --git a/query-languages/m/replacer-replacetext.md b/query-languages/m/replacer-replacetext.md index 3a4fbc90d..d3ac98ee5 100644 --- a/query-languages/m/replacer-replacetext.md +++ b/query-languages/m/replacer-replacetext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Replacer.ReplaceText" title: "Replacer.ReplaceText" -ms.date: 3/14/2022 --- # Replacer.ReplaceText diff --git a/query-languages/m/replacer-replacevalue.md b/query-languages/m/replacer-replacevalue.md index 25d98568f..2fce61de8 100644 --- a/query-languages/m/replacer-replacevalue.md +++ b/query-languages/m/replacer-replacevalue.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Replacer.ReplaceValue" title: "Replacer.ReplaceValue" -ms.date: 3/14/2022 --- # Replacer.ReplaceValue diff --git a/query-languages/m/roundingmode-type.md b/query-languages/m/roundingmode-type.md index 424fefb0d..1948eb0eb 100644 --- a/query-languages/m/roundingmode-type.md +++ b/query-languages/m/roundingmode-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: RoundingMode.Type" title: "RoundingMode.Type" -ms.date: 5/16/2022 --- # RoundingMode.Type diff --git a/query-languages/m/rowexpression-column.md b/query-languages/m/rowexpression-column.md index f12ae9303..ba2feadaa 100644 --- a/query-languages/m/rowexpression-column.md +++ b/query-languages/m/rowexpression-column.md @@ -1,7 +1,6 @@ --- description: "Learn more about: RowExpression.Column" title: "RowExpression.Column" -ms.date: 3/16/2022 --- # RowExpression.Column diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index ff92c99a8..804a9ad54 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: RowExpression.From" title: "RowExpression.From" -ms.date: 6/15/2023 --- # RowExpression.From diff --git a/query-languages/m/rowexpression-row.md b/query-languages/m/rowexpression-row.md index a5da2ec5e..a47c1bc2c 100644 --- a/query-languages/m/rowexpression-row.md +++ b/query-languages/m/rowexpression-row.md @@ -1,7 +1,6 @@ --- description: "Learn more about: RowExpression.Row" title: "RowExpression.Row" -ms.date: 5/16/2023 --- # RowExpression.Row diff --git a/query-languages/m/salesforce-data.md b/query-languages/m/salesforce-data.md index 7bf00a559..9675e41f1 100644 --- a/query-languages/m/salesforce-data.md +++ b/query-languages/m/salesforce-data.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Salesforce.Data" title: "Salesforce.Data" -ms.date: 10/7/2022 --- # Salesforce.Data diff --git a/query-languages/m/salesforce-reports.md b/query-languages/m/salesforce-reports.md index e04df55dc..939d87f14 100644 --- a/query-languages/m/salesforce-reports.md +++ b/query-languages/m/salesforce-reports.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Salesforce.Reports" title: "Salesforce.Reports" -ms.date: 10/7/2022 --- # Salesforce.Reports diff --git a/query-languages/m/sapbusinesswarehouse-cubes.md b/query-languages/m/sapbusinesswarehouse-cubes.md index e1f626eaa..7f1c17265 100644 --- a/query-languages/m/sapbusinesswarehouse-cubes.md +++ b/query-languages/m/sapbusinesswarehouse-cubes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SapBusinessWarehouse.Cubes" title: "SapBusinessWarehouse.Cubes" -ms.date: 10/7/2022 --- # SapBusinessWarehouse.Cubes diff --git a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md index 5f9190266..c9266f293 100644 --- a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md +++ b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SapBusinessWarehouseExecutionMode.Type" title: "SapBusinessWarehouseExecutionMode.Type" -ms.date: 5/16/2022 --- # SapBusinessWarehouseExecutionMode.Type diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index 676b6bf19..c05ce0d10 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SapHana.Database" title: "SapHana.Database" -ms.date: 11/14/2022 --- # SapHana.Database diff --git a/query-languages/m/saphanadistribution-type.md b/query-languages/m/saphanadistribution-type.md index 5a9abd512..1b34bfcc9 100644 --- a/query-languages/m/saphanadistribution-type.md +++ b/query-languages/m/saphanadistribution-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SapHanaDistribution.Type" title: "SapHanaDistribution.Type" -ms.date: 5/16/2022 --- # SapHanaDistribution.Type diff --git a/query-languages/m/saphanarangeoperator-type.md b/query-languages/m/saphanarangeoperator-type.md index d37f613a4..3547749ee 100644 --- a/query-languages/m/saphanarangeoperator-type.md +++ b/query-languages/m/saphanarangeoperator-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SapHanaRangeOperator.Type" title: "SapHanaRangeOperator.Type" -ms.date: 5/16/2022 --- # SapHanaRangeOperator.Type diff --git a/query-languages/m/sharepoint-contents.md b/query-languages/m/sharepoint-contents.md index 03a5cc834..4228b04c5 100644 --- a/query-languages/m/sharepoint-contents.md +++ b/query-languages/m/sharepoint-contents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SharePoint.Contents" title: "SharePoint.Contents" -ms.date: 10/7/2022 --- # SharePoint.Contents diff --git a/query-languages/m/sharepoint-files.md b/query-languages/m/sharepoint-files.md index 632d0ed73..476fa131e 100644 --- a/query-languages/m/sharepoint-files.md +++ b/query-languages/m/sharepoint-files.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SharePoint.Files" title: "SharePoint.Files" -ms.date: 10/7/2022 --- # SharePoint.Files diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index b055e340d..5639aef2e 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SharePoint.Tables" title: "SharePoint.Tables" -ms.date: 3/15/2023 --- # SharePoint.Tables diff --git a/query-languages/m/sharpbinary.md b/query-languages/m/sharpbinary.md index fdb9dfd16..58f70c834 100644 --- a/query-languages/m/sharpbinary.md +++ b/query-languages/m/sharpbinary.md @@ -1,7 +1,6 @@ --- description: "Learn more about: #binary" title: "#binary" -ms.date: 3/14/2022 --- # #binary ## Syntax diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index 720104f27..ec2f15856 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -1,7 +1,6 @@ --- description: "Learn more about: #date" title: "#date" -ms.date: 10/10/2022 --- # #date diff --git a/query-languages/m/sharpdatetime.md b/query-languages/m/sharpdatetime.md index e3c55fa48..dc659bf25 100644 --- a/query-languages/m/sharpdatetime.md +++ b/query-languages/m/sharpdatetime.md @@ -1,7 +1,6 @@ --- description: "Learn more about: #datetime" title: "#datetime" -ms.date: 11/17/2021 --- # #datetime diff --git a/query-languages/m/sharpdatetimezone.md b/query-languages/m/sharpdatetimezone.md index 1f71981c8..611f0ba69 100644 --- a/query-languages/m/sharpdatetimezone.md +++ b/query-languages/m/sharpdatetimezone.md @@ -1,7 +1,6 @@ --- description: "Learn more about: #datetimezone" title: "#datetimezone" -ms.date: 11/17/2021 --- # #datetimezone diff --git a/query-languages/m/sharpduration.md b/query-languages/m/sharpduration.md index f7a24caca..d5609d0c6 100644 --- a/query-languages/m/sharpduration.md +++ b/query-languages/m/sharpduration.md @@ -1,7 +1,6 @@ --- description: "Learn more about: #duration" title: "#duration" -ms.date: 10/10/2022 --- # #duration diff --git a/query-languages/m/sharptable.md b/query-languages/m/sharptable.md index 86d8c8d92..c574ac547 100644 --- a/query-languages/m/sharptable.md +++ b/query-languages/m/sharptable.md @@ -1,7 +1,6 @@ --- description: "Learn more about: #table" title: "#table" -ms.date: 7/18/2022 --- # #table diff --git a/query-languages/m/sharptime.md b/query-languages/m/sharptime.md index c72bc98e7..def5daa2c 100644 --- a/query-languages/m/sharptime.md +++ b/query-languages/m/sharptime.md @@ -1,7 +1,6 @@ --- description: "Learn more about: #time" title: "#time" -ms.date: 6/21/2021 --- # #time diff --git a/query-languages/m/single-from.md b/query-languages/m/single-from.md index 26d53e37b..04e80afbd 100644 --- a/query-languages/m/single-from.md +++ b/query-languages/m/single-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Single.From" title: "Single.From" -ms.date: 4/13/2022 --- # Single.From diff --git a/query-languages/m/soda-feed.md b/query-languages/m/soda-feed.md index d9737c15e..df8dbdd4a 100644 --- a/query-languages/m/soda-feed.md +++ b/query-languages/m/soda-feed.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Soda.Feed" title: "Soda.Feed" -ms.date: 10/7/2022 --- # Soda.Feed diff --git a/query-languages/m/splitter-splitbynothing.md b/query-languages/m/splitter-splitbynothing.md index db082e395..b2f6ce40c 100644 --- a/query-languages/m/splitter-splitbynothing.md +++ b/query-languages/m/splitter-splitbynothing.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitByNothing" title: "Splitter.SplitByNothing" -ms.date: 10/7/2022 --- # Splitter.SplitByNothing diff --git a/query-languages/m/splitter-splittextbyanydelimiter.md b/query-languages/m/splitter-splittextbyanydelimiter.md index 42e7a3dbc..8901121c9 100644 --- a/query-languages/m/splitter-splittextbyanydelimiter.md +++ b/query-languages/m/splitter-splittextbyanydelimiter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByAnyDelimiter" title: "Splitter.SplitTextByAnyDelimiter" -ms.date: 3/16/2022 --- # Splitter.SplitTextByAnyDelimiter diff --git a/query-languages/m/splitter-splittextbycharactertransition.md b/query-languages/m/splitter-splittextbycharactertransition.md index 36882f8b6..9f27b65ee 100644 --- a/query-languages/m/splitter-splittextbycharactertransition.md +++ b/query-languages/m/splitter-splittextbycharactertransition.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByCharacterTransition" title: "Splitter.SplitTextByCharacterTransition" -ms.date: 3/16/2022 --- # Splitter.SplitTextByCharacterTransition diff --git a/query-languages/m/splitter-splittextbydelimiter.md b/query-languages/m/splitter-splittextbydelimiter.md index dae313509..bbca15ba9 100644 --- a/query-languages/m/splitter-splittextbydelimiter.md +++ b/query-languages/m/splitter-splittextbydelimiter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByDelimiter" title: "Splitter.SplitTextByDelimiter" -ms.date: 3/16/2022 --- # Splitter.SplitTextByDelimiter diff --git a/query-languages/m/splitter-splittextbyeachdelimiter.md b/query-languages/m/splitter-splittextbyeachdelimiter.md index 8217818b4..584f50bdf 100644 --- a/query-languages/m/splitter-splittextbyeachdelimiter.md +++ b/query-languages/m/splitter-splittextbyeachdelimiter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByEachDelimiter" title: "Splitter.SplitTextByEachDelimiter" -ms.date: 3/16/2022 --- # Splitter.SplitTextByEachDelimiter diff --git a/query-languages/m/splitter-splittextbylengths.md b/query-languages/m/splitter-splittextbylengths.md index efb582e60..57c7ff445 100644 --- a/query-languages/m/splitter-splittextbylengths.md +++ b/query-languages/m/splitter-splittextbylengths.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByLengths" title: "Splitter.SplitTextByLengths" -ms.date: 3/16/2022 --- # Splitter.SplitTextByLengths diff --git a/query-languages/m/splitter-splittextbypositions.md b/query-languages/m/splitter-splittextbypositions.md index b9103af72..f320ae462 100644 --- a/query-languages/m/splitter-splittextbypositions.md +++ b/query-languages/m/splitter-splittextbypositions.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByPositions" title: "Splitter.SplitTextByPositions" -ms.date: 3/16/2022 --- # Splitter.SplitTextByPositions diff --git a/query-languages/m/splitter-splittextbyranges.md b/query-languages/m/splitter-splittextbyranges.md index 553920ff5..f8be1b7a5 100644 --- a/query-languages/m/splitter-splittextbyranges.md +++ b/query-languages/m/splitter-splittextbyranges.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByRanges" title: "Splitter.SplitTextByRanges" -ms.date: 5/19/2022 --- # Splitter.SplitTextByRanges diff --git a/query-languages/m/splitter-splittextbyrepeatedlengths.md b/query-languages/m/splitter-splittextbyrepeatedlengths.md index c89a4bffe..3cc87060c 100644 --- a/query-languages/m/splitter-splittextbyrepeatedlengths.md +++ b/query-languages/m/splitter-splittextbyrepeatedlengths.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByRepeatedLengths" title: "Splitter.SplitTextByRepeatedLengths" -ms.date: 3/16/2022 --- # Splitter.SplitTextByRepeatedLengths diff --git a/query-languages/m/splitter-splittextbywhitespace.md b/query-languages/m/splitter-splittextbywhitespace.md index 0feb7d24a..d07985a9e 100644 --- a/query-languages/m/splitter-splittextbywhitespace.md +++ b/query-languages/m/splitter-splittextbywhitespace.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Splitter.SplitTextByWhitespace" title: "Splitter.SplitTextByWhitespace" -ms.date: 3/16/2022 --- # Splitter.SplitTextByWhitespace diff --git a/query-languages/m/sql-database.md b/query-languages/m/sql-database.md index 161c1d9b3..e2ad8295c 100644 --- a/query-languages/m/sql-database.md +++ b/query-languages/m/sql-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Sql.Database" title: "Sql.Database" -ms.date: 2/17/2023 --- # Sql.Database diff --git a/query-languages/m/sql-databases.md b/query-languages/m/sql-databases.md index 0823efe0e..43d91debe 100644 --- a/query-languages/m/sql-databases.md +++ b/query-languages/m/sql-databases.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Sql.Databases" title: "Sql.Databases" -ms.date: 2/17/2023 --- # Sql.Databases diff --git a/query-languages/m/sqlexpression-schemafrom.md b/query-languages/m/sqlexpression-schemafrom.md index 9d3cf664a..43f5c4c1c 100644 --- a/query-languages/m/sqlexpression-schemafrom.md +++ b/query-languages/m/sqlexpression-schemafrom.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SqlExpression.SchemaFrom" title: "SqlExpression.SchemaFrom" -ms.date: 10/18/2021 --- # SqlExpression.SchemaFrom diff --git a/query-languages/m/sqlexpression-toexpression.md b/query-languages/m/sqlexpression-toexpression.md index 17c4def28..5694a8fb5 100644 --- a/query-languages/m/sqlexpression-toexpression.md +++ b/query-languages/m/sqlexpression-toexpression.md @@ -1,7 +1,6 @@ --- description: "Learn more about: SqlExpression.ToExpression" title: "SqlExpression.ToExpression" -ms.date: 10/18/2021 --- # SqlExpression.ToExpression diff --git a/query-languages/m/sybase-database.md b/query-languages/m/sybase-database.md index 7f3a58180..c600d8933 100644 --- a/query-languages/m/sybase-database.md +++ b/query-languages/m/sybase-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Sybase.Database" title: "Sybase.Database" -ms.date: 10/7/2022 --- # Sybase.Database diff --git a/query-languages/m/table-addcolumn.md b/query-languages/m/table-addcolumn.md index 045aa9ceb..4178f7dbe 100644 --- a/query-languages/m/table-addcolumn.md +++ b/query-languages/m/table-addcolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.AddColumn" title: "Table.AddColumn" -ms.date: 1/18/2023 --- # Table.AddColumn diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index 1393cd05c..4354ebffe 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.AddFuzzyClusterColumn" title: "Table.AddFuzzyClusterColumn" -ms.date: 10/18/2022 --- # Table.AddFuzzyClusterColumn diff --git a/query-languages/m/table-addindexcolumn.md b/query-languages/m/table-addindexcolumn.md index 89232bf79..117c54535 100644 --- a/query-languages/m/table-addindexcolumn.md +++ b/query-languages/m/table-addindexcolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.AddIndexColumn" title: "Table.AddIndexColumn" -ms.date: 3/10/2022 --- # Table.AddIndexColumn diff --git a/query-languages/m/table-addjoincolumn.md b/query-languages/m/table-addjoincolumn.md index fc7b819f1..f4bbe53b1 100644 --- a/query-languages/m/table-addjoincolumn.md +++ b/query-languages/m/table-addjoincolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.AddJoinColumn" title: "Table.AddJoinColumn" -ms.date: 10/7/2022 --- # Table.AddJoinColumn diff --git a/query-languages/m/table-addkey.md b/query-languages/m/table-addkey.md index 8e95d0409..b76a7d274 100644 --- a/query-languages/m/table-addkey.md +++ b/query-languages/m/table-addkey.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.AddKey" title: "Table.AddKey" -ms.date: 4/13/2022 --- # Table.AddKey diff --git a/query-languages/m/table-addrankcolumn.md b/query-languages/m/table-addrankcolumn.md index 59aee943a..5009e6472 100644 --- a/query-languages/m/table-addrankcolumn.md +++ b/query-languages/m/table-addrankcolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.AddRankColumn" title: "Table.AddRankColumn" -ms.date: 5/19/2022 --- # Table.AddRankColumn diff --git a/query-languages/m/table-aggregatetablecolumn.md b/query-languages/m/table-aggregatetablecolumn.md index a02c998d6..24d3396c0 100644 --- a/query-languages/m/table-aggregatetablecolumn.md +++ b/query-languages/m/table-aggregatetablecolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.AggregateTableColumn" title: "Table.AggregateTableColumn" -ms.date: 3/10/2022 --- # Table.AggregateTableColumn diff --git a/query-languages/m/table-alternaterows.md b/query-languages/m/table-alternaterows.md index 6bd9d3016..4c4d8b748 100644 --- a/query-languages/m/table-alternaterows.md +++ b/query-languages/m/table-alternaterows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.AlternateRows" title: "Table.AlternateRows" -ms.date: 3/10/2022 --- # Table.AlternateRows diff --git a/query-languages/m/table-approximaterowcount.md b/query-languages/m/table-approximaterowcount.md index 72737c354..771c905ff 100644 --- a/query-languages/m/table-approximaterowcount.md +++ b/query-languages/m/table-approximaterowcount.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ApproximateRowCount" title: "Table.ApproximateRowCount" -ms.date: 3/16/2022 --- # Table.ApproximateRowCount diff --git a/query-languages/m/table-buffer.md b/query-languages/m/table-buffer.md index 0c6dc2058..4a794b5e2 100644 --- a/query-languages/m/table-buffer.md +++ b/query-languages/m/table-buffer.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Buffer" title: "Table.Buffer" -ms.date: 4/13/2022 --- # Table.Buffer diff --git a/query-languages/m/table-column.md b/query-languages/m/table-column.md index e1a0d1849..ede25620e 100644 --- a/query-languages/m/table-column.md +++ b/query-languages/m/table-column.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Column" title: "Table.Column" -ms.date: 3/10/2022 --- # Table.Column diff --git a/query-languages/m/table-columncount.md b/query-languages/m/table-columncount.md index f4480318d..c8e47a8b2 100644 --- a/query-languages/m/table-columncount.md +++ b/query-languages/m/table-columncount.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ColumnCount" title: "Table.ColumnCount" -ms.date: 3/14/2022 --- # Table.ColumnCount diff --git a/query-languages/m/table-columnnames.md b/query-languages/m/table-columnnames.md index 804881397..e7d03d92c 100644 --- a/query-languages/m/table-columnnames.md +++ b/query-languages/m/table-columnnames.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ColumnNames" title: "Table.ColumnNames" -ms.date: 3/10/2022 --- # Table.ColumnNames diff --git a/query-languages/m/table-columnsoftype.md b/query-languages/m/table-columnsoftype.md index 2b313eae6..c04ddb098 100644 --- a/query-languages/m/table-columnsoftype.md +++ b/query-languages/m/table-columnsoftype.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ColumnsOfType" title: "Table.ColumnsOfType" -ms.date: 3/10/2022 --- # Table.ColumnsOfType diff --git a/query-languages/m/table-combine.md b/query-languages/m/table-combine.md index 08565815e..512c3adb0 100644 --- a/query-languages/m/table-combine.md +++ b/query-languages/m/table-combine.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Combine" title: "Table.Combine" -ms.date: 3/10/2022 --- # Table.Combine diff --git a/query-languages/m/table-combinecolumns.md b/query-languages/m/table-combinecolumns.md index 8e27e2334..a6e5ea266 100644 --- a/query-languages/m/table-combinecolumns.md +++ b/query-languages/m/table-combinecolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.CombineColumns" title: "Table.CombineColumns" -ms.date: 3/14/2022 --- # Table.CombineColumns diff --git a/query-languages/m/table-combinecolumnstorecord.md b/query-languages/m/table-combinecolumnstorecord.md index fb73962a0..3b37d8c88 100644 --- a/query-languages/m/table-combinecolumnstorecord.md +++ b/query-languages/m/table-combinecolumnstorecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.CombineColumnsToRecord" title: "Table.CombineColumnsToRecord" -ms.date: 10/7/2022 --- # Table.CombineColumnsToRecord diff --git a/query-languages/m/table-conformtopagereader.md b/query-languages/m/table-conformtopagereader.md index 644c89453..be1a68035 100644 --- a/query-languages/m/table-conformtopagereader.md +++ b/query-languages/m/table-conformtopagereader.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ConformToPageReader" title: "Table.ConformToPageReader" -ms.date: 10/7/2022 --- # Table.ConformToPageReader diff --git a/query-languages/m/table-contains.md b/query-languages/m/table-contains.md index 08385862e..c85c80e82 100644 --- a/query-languages/m/table-contains.md +++ b/query-languages/m/table-contains.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Contains" title: "Table.Contains" -ms.date: 3/14/2022 --- # Table.Contains diff --git a/query-languages/m/table-containsall.md b/query-languages/m/table-containsall.md index 0e12cfdb5..312dbe9d3 100644 --- a/query-languages/m/table-containsall.md +++ b/query-languages/m/table-containsall.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ContainsAll" title: "Table.ContainsAll" -ms.date: 3/14/2022 --- # Table.ContainsAll diff --git a/query-languages/m/table-containsany.md b/query-languages/m/table-containsany.md index 9dfb0a4ab..25fc9d467 100644 --- a/query-languages/m/table-containsany.md +++ b/query-languages/m/table-containsany.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ContainsAny" title: "Table.ContainsAny" -ms.date: 3/14/2022 --- # Table.ContainsAny diff --git a/query-languages/m/table-demoteheaders.md b/query-languages/m/table-demoteheaders.md index 5d63d4aca..72fe65fa6 100644 --- a/query-languages/m/table-demoteheaders.md +++ b/query-languages/m/table-demoteheaders.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.DemoteHeaders" title: "Table.DemoteHeaders" -ms.date: 3/10/2022 --- # Table.DemoteHeaders diff --git a/query-languages/m/table-distinct.md b/query-languages/m/table-distinct.md index 0b2a1c680..167bbeced 100644 --- a/query-languages/m/table-distinct.md +++ b/query-languages/m/table-distinct.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Distinct" title: "Table.Distinct" -ms.date: 9/15/2022 --- # Table.Distinct diff --git a/query-languages/m/table-duplicatecolumn.md b/query-languages/m/table-duplicatecolumn.md index 06ac1035b..48d00f77b 100644 --- a/query-languages/m/table-duplicatecolumn.md +++ b/query-languages/m/table-duplicatecolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.DuplicateColumn" title: "Table.DuplicateColumn" -ms.date: 3/10/2022 --- # Table.DuplicateColumn diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index 1133dde60..b5063e0a1 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ExpandListColumn" title: "Table.ExpandListColumn" -ms.date: 3/10/2022 --- # Table.ExpandListColumn diff --git a/query-languages/m/table-expandrecordcolumn.md b/query-languages/m/table-expandrecordcolumn.md index 2fbe24231..ba35a9736 100644 --- a/query-languages/m/table-expandrecordcolumn.md +++ b/query-languages/m/table-expandrecordcolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ExpandRecordColumn" title: "Table.ExpandRecordColumn" -ms.date: 3/10/2022 --- # Table.ExpandRecordColumn diff --git a/query-languages/m/table-expandtablecolumn.md b/query-languages/m/table-expandtablecolumn.md index 579cebd43..56e6cdb44 100644 --- a/query-languages/m/table-expandtablecolumn.md +++ b/query-languages/m/table-expandtablecolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ExpandTableColumn" title: "Table.ExpandTableColumn" -ms.date: 3/10/2022 --- # Table.ExpandTableColumn diff --git a/query-languages/m/table-filldown.md b/query-languages/m/table-filldown.md index 2205caf1f..66e3293bd 100644 --- a/query-languages/m/table-filldown.md +++ b/query-languages/m/table-filldown.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FillDown" title: "Table.FillDown" -ms.date: 3/10/2022 --- # Table.FillDown diff --git a/query-languages/m/table-fillup.md b/query-languages/m/table-fillup.md index fb368947e..337071b39 100644 --- a/query-languages/m/table-fillup.md +++ b/query-languages/m/table-fillup.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FillUp" title: "Table.FillUp" -ms.date: 3/10/2022 --- # Table.FillUp diff --git a/query-languages/m/table-filterwithdatatable.md b/query-languages/m/table-filterwithdatatable.md index 53481b6ca..1be59afa7 100644 --- a/query-languages/m/table-filterwithdatatable.md +++ b/query-languages/m/table-filterwithdatatable.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FilterWithDataTable" title: "Table.FilterWithDataTable" -ms.date: 5/3/2022 --- # Table.FilterWithDataTable diff --git a/query-languages/m/table-findtext.md b/query-languages/m/table-findtext.md index 88d2c66c0..c1d57e509 100644 --- a/query-languages/m/table-findtext.md +++ b/query-languages/m/table-findtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FindText" title: "Table.FindText" -ms.date: 3/10/2022 --- # Table.FindText diff --git a/query-languages/m/table-first.md b/query-languages/m/table-first.md index 63378a280..7a32b5665 100644 --- a/query-languages/m/table-first.md +++ b/query-languages/m/table-first.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.First" title: "Table.First" -ms.date: 3/10/2022 --- # Table.First diff --git a/query-languages/m/table-firstn.md b/query-languages/m/table-firstn.md index d18e6b85e..b999a11e6 100644 --- a/query-languages/m/table-firstn.md +++ b/query-languages/m/table-firstn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FirstN" title: "Table.FirstN" -ms.date: 5/19/2022 --- # Table.FirstN diff --git a/query-languages/m/table-firstvalue.md b/query-languages/m/table-firstvalue.md index ccba46589..c7b5e42fa 100644 --- a/query-languages/m/table-firstvalue.md +++ b/query-languages/m/table-firstvalue.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FirstValue" title: "Table.FirstValue" -ms.date: 10/7/2022 --- # Table.FirstValue diff --git a/query-languages/m/table-fromcolumns.md b/query-languages/m/table-fromcolumns.md index a2a696454..db91eda52 100644 --- a/query-languages/m/table-fromcolumns.md +++ b/query-languages/m/table-fromcolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FromColumns" title: "Table.FromColumns" -ms.date: 3/10/2022 --- # Table.FromColumns diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index 8499f3701..1b0d25540 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FromList" title: "Table.FromList" -ms.date: 3/10/2022 --- # Table.FromList diff --git a/query-languages/m/table-frompartitions.md b/query-languages/m/table-frompartitions.md index 3c6ea06d4..ba5bc6a3d 100644 --- a/query-languages/m/table-frompartitions.md +++ b/query-languages/m/table-frompartitions.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FromPartitions" title: "Table.FromPartitions" -ms.date: 3/10/2022 --- # Table.FromPartitions diff --git a/query-languages/m/table-fromrecords.md b/query-languages/m/table-fromrecords.md index 0ef1b9e5f..ed437d184 100644 --- a/query-languages/m/table-fromrecords.md +++ b/query-languages/m/table-fromrecords.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FromRecords" title: "Table.FromRecords" -ms.date: 3/10/2022 --- # Table.FromRecords diff --git a/query-languages/m/table-fromrows.md b/query-languages/m/table-fromrows.md index 27ddbed90..88a065cef 100644 --- a/query-languages/m/table-fromrows.md +++ b/query-languages/m/table-fromrows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FromRows" title: "Table.FromRows" -ms.date: 3/10/2022 --- # Table.FromRows diff --git a/query-languages/m/table-fromvalue.md b/query-languages/m/table-fromvalue.md index 729168446..3d4357858 100644 --- a/query-languages/m/table-fromvalue.md +++ b/query-languages/m/table-fromvalue.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FromValue" title: "Table.FromValue" -ms.date: 3/10/2022 --- # Table.FromValue diff --git a/query-languages/m/table-fuzzygroup.md b/query-languages/m/table-fuzzygroup.md index 4b0a2c211..0eb1b57e5 100644 --- a/query-languages/m/table-fuzzygroup.md +++ b/query-languages/m/table-fuzzygroup.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FuzzyGroup" title: "Table.FuzzyGroup" -ms.date: 10/18/2022 --- # Table.FuzzyGroup diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index d4c1db32e..64ef9f520 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FuzzyJoin" title: "Table.FuzzyJoin" -ms.date: 10/18/2022 --- # Table.FuzzyJoin diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index da7ab8889..7705b40e6 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.FuzzyNestedJoin" title: "Table.FuzzyNestedJoin" -ms.date: 10/18/2022 --- # Table.FuzzyNestedJoin diff --git a/query-languages/m/table-group.md b/query-languages/m/table-group.md index e2a3f06a0..7bf62eb0c 100644 --- a/query-languages/m/table-group.md +++ b/query-languages/m/table-group.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Group" title: "Table.Group" -ms.date: 3/10/2022 --- # Table.Group diff --git a/query-languages/m/table-hascolumns.md b/query-languages/m/table-hascolumns.md index 248963ff0..b0a9c2a1c 100644 --- a/query-languages/m/table-hascolumns.md +++ b/query-languages/m/table-hascolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.HasColumns" title: "Table.HasColumns" -ms.date: 9/15/2022 --- # Table.HasColumns diff --git a/query-languages/m/table-insertrows.md b/query-languages/m/table-insertrows.md index 25608041b..dd2919920 100644 --- a/query-languages/m/table-insertrows.md +++ b/query-languages/m/table-insertrows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.InsertRows" title: "Table.InsertRows" -ms.date: 9/15/2022 --- # Table.InsertRows diff --git a/query-languages/m/table-isdistinct.md b/query-languages/m/table-isdistinct.md index d866627a9..495a734b9 100644 --- a/query-languages/m/table-isdistinct.md +++ b/query-languages/m/table-isdistinct.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.IsDistinct" title: "Table.IsDistinct" -ms.date: 3/14/2022 --- # Table.IsDistinct diff --git a/query-languages/m/table-isempty.md b/query-languages/m/table-isempty.md index 1658d9c93..badf07985 100644 --- a/query-languages/m/table-isempty.md +++ b/query-languages/m/table-isempty.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.IsEmpty" title: "Table.IsEmpty" -ms.date: 3/14/2022 --- # Table.IsEmpty diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index 7d5b1b6dd..5e34d3734 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Join" title: "Table.Join" -ms.date: 4/13/2022 --- # Table.Join diff --git a/query-languages/m/table-keys.md b/query-languages/m/table-keys.md index 01b6e9006..a3630daa6 100644 --- a/query-languages/m/table-keys.md +++ b/query-languages/m/table-keys.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Keys" title: "Table.Keys" -ms.date: 4/13/2022 --- # Table.Keys diff --git a/query-languages/m/table-last.md b/query-languages/m/table-last.md index 760ce36a9..28438e1c3 100644 --- a/query-languages/m/table-last.md +++ b/query-languages/m/table-last.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Last" title: "Table.Last" -ms.date: 3/10/2022 --- # Table.Last diff --git a/query-languages/m/table-lastn.md b/query-languages/m/table-lastn.md index 24c0a3fb4..58ec0e9e1 100644 --- a/query-languages/m/table-lastn.md +++ b/query-languages/m/table-lastn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.LastN" title: "Table.LastN" -ms.date: 3/10/2022 --- # Table.LastN diff --git a/query-languages/m/table-matchesallrows.md b/query-languages/m/table-matchesallrows.md index f55e1eee7..048c980b1 100644 --- a/query-languages/m/table-matchesallrows.md +++ b/query-languages/m/table-matchesallrows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.MatchesAllRows" title: "Table.MatchesAllRows" -ms.date: 3/14/2022 --- # Table.MatchesAllRows diff --git a/query-languages/m/table-matchesanyrows.md b/query-languages/m/table-matchesanyrows.md index 90a3cdbf2..1752754a8 100644 --- a/query-languages/m/table-matchesanyrows.md +++ b/query-languages/m/table-matchesanyrows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.MatchesAnyRows" title: "Table.MatchesAnyRows" -ms.date: 3/14/2022 --- # Table.MatchesAnyRows diff --git a/query-languages/m/table-max.md b/query-languages/m/table-max.md index ac8016bc6..74424eea2 100644 --- a/query-languages/m/table-max.md +++ b/query-languages/m/table-max.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Max" title: "Table.Max" -ms.date: 3/10/2022 --- # Table.Max diff --git a/query-languages/m/table-maxn.md b/query-languages/m/table-maxn.md index 1d4d35f59..59521c43e 100644 --- a/query-languages/m/table-maxn.md +++ b/query-languages/m/table-maxn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.MaxN" title: "Table.MaxN" -ms.date: 3/10/2022 --- # Table.MaxN diff --git a/query-languages/m/table-min.md b/query-languages/m/table-min.md index cd77c60e8..9143e552a 100644 --- a/query-languages/m/table-min.md +++ b/query-languages/m/table-min.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Min" title: "Table.Min" -ms.date: 3/10/2022 --- # Table.Min diff --git a/query-languages/m/table-minn.md b/query-languages/m/table-minn.md index 4a11bcee8..2758b5a42 100644 --- a/query-languages/m/table-minn.md +++ b/query-languages/m/table-minn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.MinN" title: "Table.MinN" -ms.date: 3/10/2022 --- # Table.MinN diff --git a/query-languages/m/table-nestedjoin.md b/query-languages/m/table-nestedjoin.md index 758ac2fd6..c4085ce1e 100644 --- a/query-languages/m/table-nestedjoin.md +++ b/query-languages/m/table-nestedjoin.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.NestedJoin" title: "Table.NestedJoin" -ms.date: 4/13/2022 --- # Table.NestedJoin diff --git a/query-languages/m/table-partition.md b/query-languages/m/table-partition.md index 672cc6647..f4935c668 100644 --- a/query-languages/m/table-partition.md +++ b/query-languages/m/table-partition.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Partition" title: "Table.Partition" -ms.date: 10/7/2022 --- # Table.Partition diff --git a/query-languages/m/table-partitionvalues.md b/query-languages/m/table-partitionvalues.md index ffe977733..813fdc1d0 100644 --- a/query-languages/m/table-partitionvalues.md +++ b/query-languages/m/table-partitionvalues.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.PartitionValues" title: "Table.PartitionValues" -ms.date: 9/13/2021 --- # Table.PartitionValues diff --git a/query-languages/m/table-pivot.md b/query-languages/m/table-pivot.md index 0cd879482..c9706551c 100644 --- a/query-languages/m/table-pivot.md +++ b/query-languages/m/table-pivot.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Pivot" title: "Table.Pivot" -ms.date: 10/7/2022 --- # Table.Pivot diff --git a/query-languages/m/table-positionof.md b/query-languages/m/table-positionof.md index 2cb2bde19..63ff1ed99 100644 --- a/query-languages/m/table-positionof.md +++ b/query-languages/m/table-positionof.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.PositionOf" title: "Table.PositionOf" -ms.date: 3/10/2022 --- # Table.PositionOf diff --git a/query-languages/m/table-positionofany.md b/query-languages/m/table-positionofany.md index b985951e5..f0fb28a5e 100644 --- a/query-languages/m/table-positionofany.md +++ b/query-languages/m/table-positionofany.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.PositionOfAny" title: "Table.PositionOfAny" -ms.date: 3/10/2022 --- # Table.PositionOfAny diff --git a/query-languages/m/table-prefixcolumns.md b/query-languages/m/table-prefixcolumns.md index a52598290..1699492b4 100644 --- a/query-languages/m/table-prefixcolumns.md +++ b/query-languages/m/table-prefixcolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.PrefixColumns" title: "Table.PrefixColumns" -ms.date: 3/10/2022 --- # Table.PrefixColumns diff --git a/query-languages/m/table-profile.md b/query-languages/m/table-profile.md index df3ff6da3..379914a0c 100644 --- a/query-languages/m/table-profile.md +++ b/query-languages/m/table-profile.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Profile" title: "Table.Profile" -ms.date: 10/7/2022 --- # Table.Profile diff --git a/query-languages/m/table-promoteheaders.md b/query-languages/m/table-promoteheaders.md index ec0805859..65999da01 100644 --- a/query-languages/m/table-promoteheaders.md +++ b/query-languages/m/table-promoteheaders.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.PromoteHeaders" title: "Table.PromoteHeaders" -ms.date: 3/10/2022 --- # Table.PromoteHeaders diff --git a/query-languages/m/table-range.md b/query-languages/m/table-range.md index cda95ef6f..f190aa45b 100644 --- a/query-languages/m/table-range.md +++ b/query-languages/m/table-range.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Range" title: "Table.Range" -ms.date: 3/10/2022 --- # Table.Range diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index 1d9a033e7..a47b54cad 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.RemoveColumns" title: "Table.RemoveColumns" -ms.date: 6/15/2023 --- # Table.RemoveColumns diff --git a/query-languages/m/table-removefirstn.md b/query-languages/m/table-removefirstn.md index 0d7ef5756..faf8cb99a 100644 --- a/query-languages/m/table-removefirstn.md +++ b/query-languages/m/table-removefirstn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.RemoveFirstN" title: "Table.RemoveFirstN" -ms.date: 3/10/2022 --- # Table.RemoveFirstN diff --git a/query-languages/m/table-removelastn.md b/query-languages/m/table-removelastn.md index 6afa7e128..dafac5f61 100644 --- a/query-languages/m/table-removelastn.md +++ b/query-languages/m/table-removelastn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.RemoveLastN" title: "Table.RemoveLastN" -ms.date: 3/10/2022 --- # Table.RemoveLastN diff --git a/query-languages/m/table-removematchingrows.md b/query-languages/m/table-removematchingrows.md index b04d3e120..419793263 100644 --- a/query-languages/m/table-removematchingrows.md +++ b/query-languages/m/table-removematchingrows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.RemoveMatchingRows" title: "Table.RemoveMatchingRows" -ms.date: 3/10/2022 --- # Table.RemoveMatchingRows diff --git a/query-languages/m/table-removerows.md b/query-languages/m/table-removerows.md index 657dce866..dc2b8d827 100644 --- a/query-languages/m/table-removerows.md +++ b/query-languages/m/table-removerows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.RemoveRows" title: "Table.RemoveRows" -ms.date: 3/10/2022 --- # Table.RemoveRows diff --git a/query-languages/m/table-removerowswitherrors.md b/query-languages/m/table-removerowswitherrors.md index 6ce0de71d..0da9de0fd 100644 --- a/query-languages/m/table-removerowswitherrors.md +++ b/query-languages/m/table-removerowswitherrors.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.RemoveRowsWithErrors" title: "Table.RemoveRowsWithErrors" -ms.date: 3/10/2022 --- # Table.RemoveRowsWithErrors diff --git a/query-languages/m/table-renamecolumns.md b/query-languages/m/table-renamecolumns.md index afda86ae0..0c8a1712a 100644 --- a/query-languages/m/table-renamecolumns.md +++ b/query-languages/m/table-renamecolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.RenameColumns" title: "Table.RenameColumns" -ms.date: 3/10/2022 --- # Table.RenameColumns diff --git a/query-languages/m/table-reordercolumns.md b/query-languages/m/table-reordercolumns.md index 96ba02710..c1b6c3ee4 100644 --- a/query-languages/m/table-reordercolumns.md +++ b/query-languages/m/table-reordercolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ReorderColumns" title: "Table.ReorderColumns" -ms.date: 3/10/2022 --- # Table.ReorderColumns diff --git a/query-languages/m/table-repeat.md b/query-languages/m/table-repeat.md index 05b7c8131..69328d0da 100644 --- a/query-languages/m/table-repeat.md +++ b/query-languages/m/table-repeat.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Repeat" title: "Table.Repeat" -ms.date: 3/10/2022 --- # Table.Repeat diff --git a/query-languages/m/table-replaceerrorvalues.md b/query-languages/m/table-replaceerrorvalues.md index edeffd73f..d5f16724e 100644 --- a/query-languages/m/table-replaceerrorvalues.md +++ b/query-languages/m/table-replaceerrorvalues.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ReplaceErrorValues" title: "Table.ReplaceErrorValues" -ms.date: 3/10/2022 --- # Table.ReplaceErrorValues diff --git a/query-languages/m/table-replacekeys.md b/query-languages/m/table-replacekeys.md index b0d35218a..8b9eab01c 100644 --- a/query-languages/m/table-replacekeys.md +++ b/query-languages/m/table-replacekeys.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ReplaceKeys" title: "Table.ReplaceKeys" -ms.date: 4/13/2022 --- # Table.ReplaceKeys diff --git a/query-languages/m/table-replacematchingrows.md b/query-languages/m/table-replacematchingrows.md index 6ab0f20da..a1054663c 100644 --- a/query-languages/m/table-replacematchingrows.md +++ b/query-languages/m/table-replacematchingrows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ReplaceMatchingRows" title: "Table.ReplaceMatchingRows" -ms.date: 3/10/2022 --- # Table.ReplaceMatchingRows diff --git a/query-languages/m/table-replacerelationshipidentity.md b/query-languages/m/table-replacerelationshipidentity.md index 03fe5c8ff..9c3b42faf 100644 --- a/query-languages/m/table-replacerelationshipidentity.md +++ b/query-languages/m/table-replacerelationshipidentity.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ReplaceRelationshipIdentity" title: "Table.ReplaceRelationshipIdentity" -ms.date: 4/13/2022 --- # Table.ReplaceRelationshipIdentity diff --git a/query-languages/m/table-replacerows.md b/query-languages/m/table-replacerows.md index 463402948..c550293ae 100644 --- a/query-languages/m/table-replacerows.md +++ b/query-languages/m/table-replacerows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ReplaceRows" title: "Table.ReplaceRows" -ms.date: 3/10/2022 --- # Table.ReplaceRows diff --git a/query-languages/m/table-replacevalue.md b/query-languages/m/table-replacevalue.md index aa0c8a3ca..f3dd7b83f 100644 --- a/query-languages/m/table-replacevalue.md +++ b/query-languages/m/table-replacevalue.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ReplaceValue" title: "Table.ReplaceValue" -ms.date: 11/14/2022 --- # Table.ReplaceValue diff --git a/query-languages/m/table-reverserows.md b/query-languages/m/table-reverserows.md index 1830aeb09..95382b817 100644 --- a/query-languages/m/table-reverserows.md +++ b/query-languages/m/table-reverserows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ReverseRows" title: "Table.ReverseRows" -ms.date: 3/10/2022 --- # Table.ReverseRows diff --git a/query-languages/m/table-rowcount.md b/query-languages/m/table-rowcount.md index e2226807d..18437533c 100644 --- a/query-languages/m/table-rowcount.md +++ b/query-languages/m/table-rowcount.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.RowCount" title: "Table.RowCount" -ms.date: 3/14/2022 --- # Table.RowCount diff --git a/query-languages/m/table-schema.md b/query-languages/m/table-schema.md index d1dde740e..3b988af3d 100644 --- a/query-languages/m/table-schema.md +++ b/query-languages/m/table-schema.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Schema" title: "Table.Schema" -ms.date: 10/7/2022 --- # Table.Schema diff --git a/query-languages/m/table-selectcolumns.md b/query-languages/m/table-selectcolumns.md index ed0c404e8..1f04136ef 100644 --- a/query-languages/m/table-selectcolumns.md +++ b/query-languages/m/table-selectcolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.SelectColumns" title: "Table.SelectColumns" -ms.date: 3/10/2022 --- # Table.SelectColumns diff --git a/query-languages/m/table-selectrows.md b/query-languages/m/table-selectrows.md index 3a284395c..798ab4a64 100644 --- a/query-languages/m/table-selectrows.md +++ b/query-languages/m/table-selectrows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.SelectRows" title: "Table.SelectRows" -ms.date: 3/10/2022 --- # Table.SelectRows diff --git a/query-languages/m/table-selectrowswitherrors.md b/query-languages/m/table-selectrowswitherrors.md index 548c47a16..af3ecdd27 100644 --- a/query-languages/m/table-selectrowswitherrors.md +++ b/query-languages/m/table-selectrowswitherrors.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.SelectRowsWithErrors" title: "Table.SelectRowsWithErrors" -ms.date: 3/10/2022 --- # Table.SelectRowsWithErrors diff --git a/query-languages/m/table-singlerow.md b/query-languages/m/table-singlerow.md index 182d311a0..4d24561a9 100644 --- a/query-languages/m/table-singlerow.md +++ b/query-languages/m/table-singlerow.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.SingleRow" title: "Table.SingleRow" -ms.date: 3/10/2022 --- # Table.SingleRow diff --git a/query-languages/m/table-skip.md b/query-languages/m/table-skip.md index b7f8d0738..5b73f0e00 100644 --- a/query-languages/m/table-skip.md +++ b/query-languages/m/table-skip.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Skip" title: "Table.Skip" -ms.date: 3/10/2022 --- # Table.Skip diff --git a/query-languages/m/table-sort.md b/query-languages/m/table-sort.md index f71d84992..ac9af8542 100644 --- a/query-languages/m/table-sort.md +++ b/query-languages/m/table-sort.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Sort" title: "Table.Sort" -ms.date: 3/10/2022 --- # Table.Sort diff --git a/query-languages/m/table-split.md b/query-languages/m/table-split.md index 298330c20..fc62ad6ad 100644 --- a/query-languages/m/table-split.md +++ b/query-languages/m/table-split.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Split" title: "Table.Split" -ms.date: 5/19/2022 --- # Table.Split diff --git a/query-languages/m/table-splitat.md b/query-languages/m/table-splitat.md index 1d3ab6848..820b26991 100644 --- a/query-languages/m/table-splitat.md +++ b/query-languages/m/table-splitat.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.SplitAt" title: "Table.SplitAt" -ms.date: 10/7/2022 --- # Table.SplitAt diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index 95d7cf0ed..748e2086b 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.SplitColumn" title: "Table.SplitColumn" -ms.date: 5/19/2022 --- # Table.SplitColumn diff --git a/query-languages/m/table-stopfolding.md b/query-languages/m/table-stopfolding.md index 297dc8124..4c0a06b8f 100644 --- a/query-languages/m/table-stopfolding.md +++ b/query-languages/m/table-stopfolding.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.StopFolding" title: "Table.StopFolding" -ms.date: 4/13/2022 --- # Table.StopFolding diff --git a/query-languages/m/table-tocolumns.md b/query-languages/m/table-tocolumns.md index 597ee1245..3bcd02f62 100644 --- a/query-languages/m/table-tocolumns.md +++ b/query-languages/m/table-tocolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ToColumns" title: "Table.ToColumns" -ms.date: 3/10/2022 --- # Table.ToColumns diff --git a/query-languages/m/table-tolist.md b/query-languages/m/table-tolist.md index 489eef762..173600fb8 100644 --- a/query-languages/m/table-tolist.md +++ b/query-languages/m/table-tolist.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ToList" title: "Table.ToList" -ms.date: 5/3/2022 --- # Table.ToList diff --git a/query-languages/m/table-torecords.md b/query-languages/m/table-torecords.md index 00f19eff8..c59359c94 100644 --- a/query-languages/m/table-torecords.md +++ b/query-languages/m/table-torecords.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ToRecords" title: "Table.ToRecords" -ms.date: 3/10/2022 --- # Table.ToRecords diff --git a/query-languages/m/table-torows.md b/query-languages/m/table-torows.md index 94c0a1533..b90c3ff0f 100644 --- a/query-languages/m/table-torows.md +++ b/query-languages/m/table-torows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ToRows" title: "Table.ToRows" -ms.date: 10/7/2022 --- # Table.ToRows diff --git a/query-languages/m/table-transformcolumnnames.md b/query-languages/m/table-transformcolumnnames.md index 9c3e1c16e..4934d8fe3 100644 --- a/query-languages/m/table-transformcolumnnames.md +++ b/query-languages/m/table-transformcolumnnames.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.TransformColumnNames" title: "Table.TransformColumnNames" -ms.date: 3/10/2022 --- # Table.TransformColumnNames diff --git a/query-languages/m/table-transformcolumns.md b/query-languages/m/table-transformcolumns.md index a368b4afa..cdcce9631 100644 --- a/query-languages/m/table-transformcolumns.md +++ b/query-languages/m/table-transformcolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.TransformColumns" title: "Table.TransformColumns" -ms.date: 6/24/2022 --- # Table.TransformColumns diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index cc9d10848..3af19ff47 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.TransformColumnTypes" title: "Table.TransformColumnTypes" -ms.date: 3/10/2022 --- # Table.TransformColumnTypes diff --git a/query-languages/m/table-transformrows.md b/query-languages/m/table-transformrows.md index 1f123835f..d2934b70f 100644 --- a/query-languages/m/table-transformrows.md +++ b/query-languages/m/table-transformrows.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.TransformRows" title: "Table.TransformRows" -ms.date: 4/13/2022 --- # Table.TransformRows diff --git a/query-languages/m/table-transpose.md b/query-languages/m/table-transpose.md index c37dc35b2..b7c93b9df 100644 --- a/query-languages/m/table-transpose.md +++ b/query-languages/m/table-transpose.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Transpose" title: "Table.Transpose" -ms.date: 3/10/2022 --- # Table.Transpose diff --git a/query-languages/m/table-unpivot.md b/query-languages/m/table-unpivot.md index 616f484b0..95e2a2f87 100644 --- a/query-languages/m/table-unpivot.md +++ b/query-languages/m/table-unpivot.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.Unpivot" title: "Table.Unpivot" -ms.date: 3/10/2022 --- # Table.Unpivot diff --git a/query-languages/m/table-unpivotothercolumns.md b/query-languages/m/table-unpivotothercolumns.md index 4f96154e9..cea323d26 100644 --- a/query-languages/m/table-unpivotothercolumns.md +++ b/query-languages/m/table-unpivotothercolumns.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.UnpivotOtherColumns" title: "Table.UnpivotOtherColumns" -ms.date: 5/19/2022 --- # Table.UnpivotOtherColumns diff --git a/query-languages/m/table-view.md b/query-languages/m/table-view.md index 39f116f19..a29f07d70 100644 --- a/query-languages/m/table-view.md +++ b/query-languages/m/table-view.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.View" title: "Table.View" -ms.date: 4/13/2022 --- # Table.View diff --git a/query-languages/m/table-viewerror.md b/query-languages/m/table-viewerror.md index d5a4b28be..8ddc2ffd1 100644 --- a/query-languages/m/table-viewerror.md +++ b/query-languages/m/table-viewerror.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ViewError" title: "Table.ViewError" -ms.date: 4/13/2022 --- # Table.ViewError diff --git a/query-languages/m/table-viewfunction.md b/query-languages/m/table-viewfunction.md index 1d5c6d450..bd60ded8b 100644 --- a/query-languages/m/table-viewfunction.md +++ b/query-languages/m/table-viewfunction.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Table.ViewFunction" title: "Table.ViewFunction" -ms.date: 10/18/2022 --- # Table.ViewFunction diff --git a/query-languages/m/tables-getrelationships.md b/query-languages/m/tables-getrelationships.md index 3d0e1a1ce..40a8fc01a 100644 --- a/query-languages/m/tables-getrelationships.md +++ b/query-languages/m/tables-getrelationships.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Tables.GetRelationships" title: "Tables.GetRelationships" -ms.date: 10/7/2022 --- # Tables.GetRelationships diff --git a/query-languages/m/teradata-database.md b/query-languages/m/teradata-database.md index b1e752cf7..f8620e02f 100644 --- a/query-languages/m/teradata-database.md +++ b/query-languages/m/teradata-database.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Teradata.Database" title: "Teradata.Database" -ms.date: 10/7/2022 --- # Teradata.Database diff --git a/query-languages/m/text-afterdelimiter.md b/query-languages/m/text-afterdelimiter.md index bdd0effb0..ae009960b 100644 --- a/query-languages/m/text-afterdelimiter.md +++ b/query-languages/m/text-afterdelimiter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.AfterDelimiter" title: "Text.AfterDelimiter" -ms.date: 3/14/2022 --- # Text.AfterDelimiter diff --git a/query-languages/m/text-at.md b/query-languages/m/text-at.md index 17831322f..9eca747b6 100644 --- a/query-languages/m/text-at.md +++ b/query-languages/m/text-at.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.At" title: "Text.At" -ms.date: 3/14/2022 --- # Text.At diff --git a/query-languages/m/text-beforedelimiter.md b/query-languages/m/text-beforedelimiter.md index 918acdd48..5d3729d65 100644 --- a/query-languages/m/text-beforedelimiter.md +++ b/query-languages/m/text-beforedelimiter.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.BeforeDelimiter" title: "Text.BeforeDelimiter" -ms.date: 3/14/2022 --- # Text.BeforeDelimiter diff --git a/query-languages/m/text-betweendelimiters.md b/query-languages/m/text-betweendelimiters.md index b83df8327..6a1a119ea 100644 --- a/query-languages/m/text-betweendelimiters.md +++ b/query-languages/m/text-betweendelimiters.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.BetweenDelimiters" title: "Text.BetweenDelimiters" -ms.date: 3/14/2022 --- # Text.BetweenDelimiters diff --git a/query-languages/m/text-clean.md b/query-languages/m/text-clean.md index 3c1127a29..f16883a41 100644 --- a/query-languages/m/text-clean.md +++ b/query-languages/m/text-clean.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Clean" title: "Text.Clean" -ms.date: 3/14/2022 --- # Text.Clean diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 22bcb1dda..7c5db8402 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Combine" title: "Text.Combine" -ms.date: 6/15/2023 --- # Text.Combine diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index 2a561d0bd..a5fd01ea7 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Contains" title: "Text.Contains" -ms.date: 3/14/2022 --- # Text.Contains diff --git a/query-languages/m/text-end.md b/query-languages/m/text-end.md index 089fc48e3..f9b666a7b 100644 --- a/query-languages/m/text-end.md +++ b/query-languages/m/text-end.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.End" title: "Text.End" -ms.date: 3/14/2022 --- # Text.End diff --git a/query-languages/m/text-endswith.md b/query-languages/m/text-endswith.md index a0b1caacb..e7fafdb1c 100644 --- a/query-languages/m/text-endswith.md +++ b/query-languages/m/text-endswith.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.EndsWith" title: "Text.EndsWith" -ms.date: 3/14/2022 --- # Text.EndsWith diff --git a/query-languages/m/text-format.md b/query-languages/m/text-format.md index 6f7141d62..c1d172786 100644 --- a/query-languages/m/text-format.md +++ b/query-languages/m/text-format.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Format" title: "Text.Format" -ms.date: 3/14/2022 --- # Text.Format diff --git a/query-languages/m/text-from.md b/query-languages/m/text-from.md index 3b3ab1f31..e3b32b533 100644 --- a/query-languages/m/text-from.md +++ b/query-languages/m/text-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.From" title: "Text.From" -ms.date: 3/14/2022 --- # Text.From diff --git a/query-languages/m/text-frombinary.md b/query-languages/m/text-frombinary.md index a773d70da..36fceaccb 100644 --- a/query-languages/m/text-frombinary.md +++ b/query-languages/m/text-frombinary.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.FromBinary" title: "Text.FromBinary" -ms.date: 10/7/2022 --- # Text.FromBinary diff --git a/query-languages/m/text-infernumbertype.md b/query-languages/m/text-infernumbertype.md index fe55f27e3..de5f29976 100644 --- a/query-languages/m/text-infernumbertype.md +++ b/query-languages/m/text-infernumbertype.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.InferNumberType" title: "Text.InferNumberType" -ms.date: 10/7/2022 --- # Text.InferNumberType diff --git a/query-languages/m/text-insert.md b/query-languages/m/text-insert.md index a2eb7d7a3..202f55c8d 100644 --- a/query-languages/m/text-insert.md +++ b/query-languages/m/text-insert.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Insert" title: "Text.Insert" -ms.date: 3/14/2022 --- # Text.Insert diff --git a/query-languages/m/text-length.md b/query-languages/m/text-length.md index 58d4aee95..8310e7f33 100644 --- a/query-languages/m/text-length.md +++ b/query-languages/m/text-length.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Length" title: "Text.Length" -ms.date: 3/14/2022 --- # Text.Length diff --git a/query-languages/m/text-lower.md b/query-languages/m/text-lower.md index c2000de1b..d9f104f64 100644 --- a/query-languages/m/text-lower.md +++ b/query-languages/m/text-lower.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Lower" title: "Text.Lower" -ms.date: 3/14/2022 --- # Text.Lower diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index 71d2b7cf3..dad3e3d7f 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Middle" title: "Text.Middle" -ms.date: 3/14/2022 --- # Text.Middle diff --git a/query-languages/m/text-newguid.md b/query-languages/m/text-newguid.md index cdb6068ae..f545a004c 100644 --- a/query-languages/m/text-newguid.md +++ b/query-languages/m/text-newguid.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.NewGuid" title: "Text.NewGuid" -ms.date: 10/7/2022 --- # Text.NewGuid diff --git a/query-languages/m/text-padend.md b/query-languages/m/text-padend.md index de2cd4f11..8cafbd25c 100644 --- a/query-languages/m/text-padend.md +++ b/query-languages/m/text-padend.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.PadEnd" title: "Text.PadEnd" -ms.date: 3/14/2022 --- # Text.PadEnd diff --git a/query-languages/m/text-padstart.md b/query-languages/m/text-padstart.md index db680c02b..a44d06d92 100644 --- a/query-languages/m/text-padstart.md +++ b/query-languages/m/text-padstart.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.PadStart" title: "Text.PadStart" -ms.date: 3/14/2022 --- # Text.PadStart diff --git a/query-languages/m/text-positionof.md b/query-languages/m/text-positionof.md index e19094558..fc8d8cf90 100644 --- a/query-languages/m/text-positionof.md +++ b/query-languages/m/text-positionof.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.PositionOf" title: "Text.PositionOf" -ms.date: 3/14/2022 --- # Text.PositionOf diff --git a/query-languages/m/text-positionofany.md b/query-languages/m/text-positionofany.md index 090acb855..45e9ddd19 100644 --- a/query-languages/m/text-positionofany.md +++ b/query-languages/m/text-positionofany.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.PositionOfAny" title: "Text.PositionOfAny" -ms.date: 1/18/2023 --- # Text.PositionOfAny diff --git a/query-languages/m/text-proper.md b/query-languages/m/text-proper.md index 0416efaaa..a36d287fb 100644 --- a/query-languages/m/text-proper.md +++ b/query-languages/m/text-proper.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Proper" title: "Text.Proper" -ms.date: 3/14/2022 --- # Text.Proper diff --git a/query-languages/m/text-range.md b/query-languages/m/text-range.md index b9f6d1158..7320dd7e2 100644 --- a/query-languages/m/text-range.md +++ b/query-languages/m/text-range.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Range" title: "Text.Range" -ms.date: 3/14/2022 --- # Text.Range diff --git a/query-languages/m/text-remove.md b/query-languages/m/text-remove.md index 84d0e8516..026954365 100644 --- a/query-languages/m/text-remove.md +++ b/query-languages/m/text-remove.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Remove" title: "Text.Remove" -ms.date: 3/14/2022 --- # Text.Remove diff --git a/query-languages/m/text-removerange.md b/query-languages/m/text-removerange.md index 6a6f8bc2c..e6a3cc724 100644 --- a/query-languages/m/text-removerange.md +++ b/query-languages/m/text-removerange.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.RemoveRange" title: "Text.RemoveRange" -ms.date: 3/14/2022 --- # Text.RemoveRange diff --git a/query-languages/m/text-repeat.md b/query-languages/m/text-repeat.md index 190502209..59d5734e2 100644 --- a/query-languages/m/text-repeat.md +++ b/query-languages/m/text-repeat.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Repeat" title: "Text.Repeat" -ms.date: 3/14/2022 --- # Text.Repeat diff --git a/query-languages/m/text-replace.md b/query-languages/m/text-replace.md index 2cbc362ca..96bec78d6 100644 --- a/query-languages/m/text-replace.md +++ b/query-languages/m/text-replace.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Replace" title: "Text.Replace" -ms.date: 3/14/2022 --- # Text.Replace diff --git a/query-languages/m/text-replacerange.md b/query-languages/m/text-replacerange.md index fb3e2bed1..bda8ea911 100644 --- a/query-languages/m/text-replacerange.md +++ b/query-languages/m/text-replacerange.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.ReplaceRange" title: "Text.ReplaceRange" -ms.date: 3/14/2022 --- # Text.ReplaceRange diff --git a/query-languages/m/text-reverse.md b/query-languages/m/text-reverse.md index b33cfb775..92046e4a6 100644 --- a/query-languages/m/text-reverse.md +++ b/query-languages/m/text-reverse.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Reverse" title: "Text.Reverse" -ms.date: 3/14/2022 --- # Text.Reverse diff --git a/query-languages/m/text-select.md b/query-languages/m/text-select.md index f689746ff..07ba06d5b 100644 --- a/query-languages/m/text-select.md +++ b/query-languages/m/text-select.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Select" title: "Text.Select" -ms.date: 3/14/2022 --- # Text.Select diff --git a/query-languages/m/text-split.md b/query-languages/m/text-split.md index c34e0887a..875b0599f 100644 --- a/query-languages/m/text-split.md +++ b/query-languages/m/text-split.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Split" title: "Text.Split" -ms.date: 3/11/2022 --- # Text.Split diff --git a/query-languages/m/text-splitany.md b/query-languages/m/text-splitany.md index 8468eea85..07d4d7478 100644 --- a/query-languages/m/text-splitany.md +++ b/query-languages/m/text-splitany.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.SplitAny" title: "Text.SplitAny" -ms.date: 3/11/2022 --- # Text.SplitAny diff --git a/query-languages/m/text-start.md b/query-languages/m/text-start.md index 03d48437e..fa2e42ed0 100644 --- a/query-languages/m/text-start.md +++ b/query-languages/m/text-start.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Start" title: "Text.Start" -ms.date: 3/14/2022 --- # Text.Start diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index 3710b66b3..40cca2116 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.StartsWith" title: "Text.StartsWith" -ms.date: 3/14/2022 --- # Text.StartsWith diff --git a/query-languages/m/text-tobinary.md b/query-languages/m/text-tobinary.md index 2cc03d91d..905a4f533 100644 --- a/query-languages/m/text-tobinary.md +++ b/query-languages/m/text-tobinary.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.ToBinary" title: "Text.ToBinary" -ms.date: 10/7/2022 --- # Text.ToBinary diff --git a/query-languages/m/text-tolist.md b/query-languages/m/text-tolist.md index 5e0edee4e..bf99907f3 100644 --- a/query-languages/m/text-tolist.md +++ b/query-languages/m/text-tolist.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.ToList" title: "Text.ToList" -ms.date: 3/11/2022 --- # Text.ToList diff --git a/query-languages/m/text-trim.md b/query-languages/m/text-trim.md index e8afdc3e2..b4bcc0ff4 100644 --- a/query-languages/m/text-trim.md +++ b/query-languages/m/text-trim.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Trim" title: "Text.Trim" -ms.date: 3/14/2022 --- # Text.Trim diff --git a/query-languages/m/text-trimend.md b/query-languages/m/text-trimend.md index 1763aa9fd..2dc5602f8 100644 --- a/query-languages/m/text-trimend.md +++ b/query-languages/m/text-trimend.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.TrimEnd" title: "Text.TrimEnd" -ms.date: 4/22/2022 --- # Text.TrimEnd diff --git a/query-languages/m/text-trimstart.md b/query-languages/m/text-trimstart.md index f9861bf85..8f0c5870d 100644 --- a/query-languages/m/text-trimstart.md +++ b/query-languages/m/text-trimstart.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.TrimStart" title: "Text.TrimStart" -ms.date: 3/14/2022 --- # Text.TrimStart diff --git a/query-languages/m/text-upper.md b/query-languages/m/text-upper.md index 53744baf2..226a28c03 100644 --- a/query-languages/m/text-upper.md +++ b/query-languages/m/text-upper.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Text.Upper" title: "Text.Upper" -ms.date: 3/14/2022 --- # Text.Upper diff --git a/query-languages/m/textencoding-type.md b/query-languages/m/textencoding-type.md index bb8faf8ff..2ac028afb 100644 --- a/query-languages/m/textencoding-type.md +++ b/query-languages/m/textencoding-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: TextEncoding.Type" title: "TextEncoding.Type" -ms.date: 5/16/2022 --- # TextEncoding.Type diff --git a/query-languages/m/time-endofhour.md b/query-languages/m/time-endofhour.md index 924a0d74a..84d844b25 100644 --- a/query-languages/m/time-endofhour.md +++ b/query-languages/m/time-endofhour.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Time.EndOfHour" title: "Time.EndOfHour" -ms.date: 11/14/2022 --- # Time.EndOfHour diff --git a/query-languages/m/time-from.md b/query-languages/m/time-from.md index 2eded01a5..5b50237f7 100644 --- a/query-languages/m/time-from.md +++ b/query-languages/m/time-from.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Time.From" title: "Time.From" -ms.date: 4/13/2022 --- # Time.From diff --git a/query-languages/m/time-fromtext.md b/query-languages/m/time-fromtext.md index 62ee6947c..b567e8077 100644 --- a/query-languages/m/time-fromtext.md +++ b/query-languages/m/time-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Time.FromText" title: "Time.FromText" -ms.date: 6/24/2022 --- # Time.FromText diff --git a/query-languages/m/time-hour.md b/query-languages/m/time-hour.md index 21dbbfac7..55ef5318f 100644 --- a/query-languages/m/time-hour.md +++ b/query-languages/m/time-hour.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Time.Hour" title: "Time.Hour" -ms.date: 3/14/2022 --- # Time.Hour diff --git a/query-languages/m/time-minute.md b/query-languages/m/time-minute.md index 6ec2aed66..d5142c90b 100644 --- a/query-languages/m/time-minute.md +++ b/query-languages/m/time-minute.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Time.Minute" title: "Time.Minute" -ms.date: 3/14/2022 --- # Time.Minute diff --git a/query-languages/m/time-second.md b/query-languages/m/time-second.md index 4fa41f6e5..2ec5d4d6a 100644 --- a/query-languages/m/time-second.md +++ b/query-languages/m/time-second.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Time.Second" title: "Time.Second" -ms.date: 3/14/2022 --- # Time.Second diff --git a/query-languages/m/time-startofhour.md b/query-languages/m/time-startofhour.md index ce84328e9..aa7bed533 100644 --- a/query-languages/m/time-startofhour.md +++ b/query-languages/m/time-startofhour.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Time.StartOfHour" title: "Time.StartOfHour" -ms.date: 11/14/2022 --- # Time.StartOfHour diff --git a/query-languages/m/time-torecord.md b/query-languages/m/time-torecord.md index e2f5debde..feed7d9d5 100644 --- a/query-languages/m/time-torecord.md +++ b/query-languages/m/time-torecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Time.ToRecord" title: "Time.ToRecord" -ms.date: 3/11/2022 --- # Time.ToRecord diff --git a/query-languages/m/time-totext.md b/query-languages/m/time-totext.md index 9ff6a22b3..bc3c2b2af 100644 --- a/query-languages/m/time-totext.md +++ b/query-languages/m/time-totext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Time.ToText" title: "Time.ToText" -ms.date: 6/24/2022 --- # Time.ToText diff --git a/query-languages/m/timezone-current.md b/query-languages/m/timezone-current.md index c50629c2d..122f27517 100644 --- a/query-languages/m/timezone-current.md +++ b/query-languages/m/timezone-current.md @@ -1,7 +1,6 @@ --- description: "Learn more about: TimeZone.Current" title: "TimeZone.Current" -ms.date: 9/13/2021 --- # TimeZone.Current diff --git a/query-languages/m/tracelevel-type.md b/query-languages/m/tracelevel-type.md index c5aedcda9..8a8873c62 100644 --- a/query-languages/m/tracelevel-type.md +++ b/query-languages/m/tracelevel-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: TraceLevel.Type" title: "TraceLevel.Type" -ms.date: 5/16/2022 --- # TraceLevel.Type diff --git a/query-languages/m/type-addtablekey.md b/query-languages/m/type-addtablekey.md index 0588ca2d8..1c94f033d 100644 --- a/query-languages/m/type-addtablekey.md +++ b/query-languages/m/type-addtablekey.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.AddTableKey" title: "Type.AddTableKey" -ms.date: 10/7/2022 --- # Type.AddTableKey diff --git a/query-languages/m/type-closedrecord.md b/query-languages/m/type-closedrecord.md index c7ba881c8..e4bd3285a 100644 --- a/query-languages/m/type-closedrecord.md +++ b/query-languages/m/type-closedrecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.ClosedRecord" title: "Type.ClosedRecord" -ms.date: 3/14/2022 --- # Type.ClosedRecord diff --git a/query-languages/m/type-facets.md b/query-languages/m/type-facets.md index 6beaa3e9c..b2f2b68fb 100644 --- a/query-languages/m/type-facets.md +++ b/query-languages/m/type-facets.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.Facets" title: "Type.Facets" -ms.date: 10/7/2022 --- # Type.Facets diff --git a/query-languages/m/type-forfunction.md b/query-languages/m/type-forfunction.md index 7fd2d7be2..3d64a619d 100644 --- a/query-languages/m/type-forfunction.md +++ b/query-languages/m/type-forfunction.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.ForFunction" title: "Type.ForFunction" -ms.date: 3/14/2022 --- # Type.ForFunction diff --git a/query-languages/m/type-forrecord.md b/query-languages/m/type-forrecord.md index 0a65a8d2e..882d916c7 100644 --- a/query-languages/m/type-forrecord.md +++ b/query-languages/m/type-forrecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.ForRecord" title: "Type.ForRecord" -ms.date: 10/18/2022 --- # Type.ForRecord diff --git a/query-languages/m/type-functionparameters.md b/query-languages/m/type-functionparameters.md index 2cc18ddc2..fde88721e 100644 --- a/query-languages/m/type-functionparameters.md +++ b/query-languages/m/type-functionparameters.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.FunctionParameters" title: "Type.FunctionParameters" -ms.date: 3/11/2022 --- # Type.FunctionParameters diff --git a/query-languages/m/type-functionrequiredparameters.md b/query-languages/m/type-functionrequiredparameters.md index bf6d29499..5aa3ce98d 100644 --- a/query-languages/m/type-functionrequiredparameters.md +++ b/query-languages/m/type-functionrequiredparameters.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.FunctionRequiredParameters" title: "Type.FunctionRequiredParameters" -ms.date: 3/14/2022 --- # Type.FunctionRequiredParameters diff --git a/query-languages/m/type-functionreturn.md b/query-languages/m/type-functionreturn.md index 191e158a1..6705caa62 100644 --- a/query-languages/m/type-functionreturn.md +++ b/query-languages/m/type-functionreturn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.FunctionReturn" title: "Type.FunctionReturn" -ms.date: 3/14/2022 --- # Type.FunctionReturn diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index 5e242ccbd..d78b22efb 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.Is" title: "Type.Is" -ms.date: 3/14/2022 --- # Type.Is diff --git a/query-languages/m/type-isnullable.md b/query-languages/m/type-isnullable.md index 487432e6a..1ec95c88e 100644 --- a/query-languages/m/type-isnullable.md +++ b/query-languages/m/type-isnullable.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.IsNullable" title: "Type.IsNullable" -ms.date: 3/14/2022 --- # Type.IsNullable diff --git a/query-languages/m/type-isopenrecord.md b/query-languages/m/type-isopenrecord.md index e1aaa1a1f..8bfb061b6 100644 --- a/query-languages/m/type-isopenrecord.md +++ b/query-languages/m/type-isopenrecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.IsOpenRecord" title: "Type.IsOpenRecord" -ms.date: 3/14/2022 --- # Type.IsOpenRecord diff --git a/query-languages/m/type-listitem.md b/query-languages/m/type-listitem.md index 9539b32a5..6c88d2628 100644 --- a/query-languages/m/type-listitem.md +++ b/query-languages/m/type-listitem.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.ListItem" title: "Type.ListItem" -ms.date: 3/14/2022 --- # Type.ListItem diff --git a/query-languages/m/type-nonnullable.md b/query-languages/m/type-nonnullable.md index 742dc72e7..64093ce9b 100644 --- a/query-languages/m/type-nonnullable.md +++ b/query-languages/m/type-nonnullable.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.NonNullable" title: "Type.NonNullable" -ms.date: 3/14/2022 --- # Type.NonNullable diff --git a/query-languages/m/type-openrecord.md b/query-languages/m/type-openrecord.md index e2f94564d..ebdc7fef8 100644 --- a/query-languages/m/type-openrecord.md +++ b/query-languages/m/type-openrecord.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.OpenRecord" title: "Type.OpenRecord" -ms.date: 3/14/2022 --- # Type.OpenRecord diff --git a/query-languages/m/type-recordfields.md b/query-languages/m/type-recordfields.md index c49ce6e91..418b6b0b0 100644 --- a/query-languages/m/type-recordfields.md +++ b/query-languages/m/type-recordfields.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.RecordFields" title: "Type.RecordFields" -ms.date: 3/11/2022 --- # Type.RecordFields diff --git a/query-languages/m/type-replacefacets.md b/query-languages/m/type-replacefacets.md index 531803be2..eade8d9df 100644 --- a/query-languages/m/type-replacefacets.md +++ b/query-languages/m/type-replacefacets.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.ReplaceFacets" title: "Type.ReplaceFacets" -ms.date: 10/7/2022 --- # Type.ReplaceFacets diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 21876f481..2796e9a14 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.ReplaceTableKeys" title: "Type.ReplaceTableKeys" -ms.date: 10/7/2022 --- # Type.ReplaceTableKeys diff --git a/query-languages/m/type-tablecolumn.md b/query-languages/m/type-tablecolumn.md index 5937b5f9a..0b7f2a094 100644 --- a/query-languages/m/type-tablecolumn.md +++ b/query-languages/m/type-tablecolumn.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.TableColumn" title: "Type.TableColumn" -ms.date: 10/7/2022 --- # Type.TableColumn diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index 559b4d51e..f4c9a30fc 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.TableKeys" title: "Type.TableKeys" -ms.date: 10/7/2022 --- # Type.TableKeys diff --git a/query-languages/m/type-tablerow.md b/query-languages/m/type-tablerow.md index 502de33ed..dd9d1e770 100644 --- a/query-languages/m/type-tablerow.md +++ b/query-languages/m/type-tablerow.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.TableRow" title: "Type.TableRow" -ms.date: 3/14/2022 --- # Type.TableRow diff --git a/query-languages/m/type-tableschema.md b/query-languages/m/type-tableschema.md index 8f1191c6f..ad4f627a1 100644 --- a/query-languages/m/type-tableschema.md +++ b/query-languages/m/type-tableschema.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.TableSchema" title: "Type.TableSchema" -ms.date: 4/13/2022 --- # Type.TableSchema diff --git a/query-languages/m/type-union.md b/query-languages/m/type-union.md index 81d76ab72..918974127 100644 --- a/query-languages/m/type-union.md +++ b/query-languages/m/type-union.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Type.Union" title: "Type.Union" -ms.date: 10/7/2022 --- # Type.Union diff --git a/query-languages/m/uri-buildquerystring.md b/query-languages/m/uri-buildquerystring.md index e94220646..d89d90d3d 100644 --- a/query-languages/m/uri-buildquerystring.md +++ b/query-languages/m/uri-buildquerystring.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Uri.BuildQueryString" title: "Uri.BuildQueryString" -ms.date: 3/14/2022 --- # Uri.BuildQueryString diff --git a/query-languages/m/uri-combine.md b/query-languages/m/uri-combine.md index ad48f8c60..e364edd83 100644 --- a/query-languages/m/uri-combine.md +++ b/query-languages/m/uri-combine.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Uri.Combine" title: "Uri.Combine" -ms.date: 10/7/2022 --- # Uri.Combine diff --git a/query-languages/m/uri-escapedatastring.md b/query-languages/m/uri-escapedatastring.md index 523ceac19..e74aafb67 100644 --- a/query-languages/m/uri-escapedatastring.md +++ b/query-languages/m/uri-escapedatastring.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Uri.EscapeDataString" title: "Uri.EscapeDataString" -ms.date: 3/14/2022 --- # Uri.EscapeDataString diff --git a/query-languages/m/uri-parts.md b/query-languages/m/uri-parts.md index 511d8be26..8c57cd485 100644 --- a/query-languages/m/uri-parts.md +++ b/query-languages/m/uri-parts.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Uri.Parts" title: "Uri.Parts" -ms.date: 3/11/2022 --- # Uri.Parts diff --git a/query-languages/m/value-add.md b/query-languages/m/value-add.md index 842b6786c..6695405f3 100644 --- a/query-languages/m/value-add.md +++ b/query-languages/m/value-add.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Add" title: "Value.Add" -ms.date: 10/7/2022 --- # Value.Add diff --git a/query-languages/m/value-alternates.md b/query-languages/m/value-alternates.md index 33e5f585f..31aa7f966 100644 --- a/query-languages/m/value-alternates.md +++ b/query-languages/m/value-alternates.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Alternates" title: "Value.Alternates" -ms.date: 5/12/2022 --- # Value.Alternates diff --git a/query-languages/m/value-as.md b/query-languages/m/value-as.md index f1273924e..46cb5efc5 100644 --- a/query-languages/m/value-as.md +++ b/query-languages/m/value-as.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.As" title: "Value.As" -ms.date: 3/14/2022 --- # Value.As diff --git a/query-languages/m/value-compare.md b/query-languages/m/value-compare.md index 2e094450e..3a3e76995 100644 --- a/query-languages/m/value-compare.md +++ b/query-languages/m/value-compare.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Compare" title: "Value.Compare" -ms.date: 10/7/2022 --- # Value.Compare diff --git a/query-languages/m/value-divide.md b/query-languages/m/value-divide.md index 675631b55..1cd49fcfe 100644 --- a/query-languages/m/value-divide.md +++ b/query-languages/m/value-divide.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Divide" title: "Value.Divide" -ms.date: 10/7/2022 --- # Value.Divide diff --git a/query-languages/m/value-equals.md b/query-languages/m/value-equals.md index 883d0c49d..fe74d91c8 100644 --- a/query-languages/m/value-equals.md +++ b/query-languages/m/value-equals.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Equals" title: "Value.Equals" -ms.date: 10/7/2022 --- # Value.Equals diff --git a/query-languages/m/value-expression.md b/query-languages/m/value-expression.md index da5fcc50b..ed8c06fc5 100644 --- a/query-languages/m/value-expression.md +++ b/query-languages/m/value-expression.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Expression" title: "Value.Expression" -ms.date: 3/16/2022 --- # Value.Expression diff --git a/query-languages/m/value-firewall.md b/query-languages/m/value-firewall.md index b5a6120ca..f7ee9f95d 100644 --- a/query-languages/m/value-firewall.md +++ b/query-languages/m/value-firewall.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Firewall" title: "Value.Firewall" -ms.date: 10/18/2021 --- # Value.Firewall diff --git a/query-languages/m/value-fromtext.md b/query-languages/m/value-fromtext.md index f3787e9ac..dd9554f10 100644 --- a/query-languages/m/value-fromtext.md +++ b/query-languages/m/value-fromtext.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.FromText" title: "Value.FromText" -ms.date: 10/7/2022 --- # Value.FromText diff --git a/query-languages/m/value-is.md b/query-languages/m/value-is.md index 793b75342..bc68933c9 100644 --- a/query-languages/m/value-is.md +++ b/query-languages/m/value-is.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Is" title: "Value.Is" -ms.date: 3/14/2022 --- # Value.Is diff --git a/query-languages/m/value-lineage.md b/query-languages/m/value-lineage.md index f3cfb829a..7c41db96f 100644 --- a/query-languages/m/value-lineage.md +++ b/query-languages/m/value-lineage.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Lineage" title: "Value.Lineage" -ms.date: 10/7/2022 --- # Value.Lineage diff --git a/query-languages/m/value-metadata.md b/query-languages/m/value-metadata.md index 57614df20..cb4d14031 100644 --- a/query-languages/m/value-metadata.md +++ b/query-languages/m/value-metadata.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Metadata" title: "Value.Metadata" -ms.date: 10/7/2022 --- # Value.Metadata diff --git a/query-languages/m/value-multiply.md b/query-languages/m/value-multiply.md index ddd4bf153..524ea169a 100644 --- a/query-languages/m/value-multiply.md +++ b/query-languages/m/value-multiply.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Multiply" title: "Value.Multiply" -ms.date: 10/7/2022 --- # Value.Multiply diff --git a/query-languages/m/value-nativequery.md b/query-languages/m/value-nativequery.md index 2ad9b5fa2..930ea94d9 100644 --- a/query-languages/m/value-nativequery.md +++ b/query-languages/m/value-nativequery.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.NativeQuery" title: "Value.NativeQuery" -ms.date: 11/17/2021 --- # Value.NativeQuery diff --git a/query-languages/m/value-nullableequals.md b/query-languages/m/value-nullableequals.md index f35703cb7..56e34c94e 100644 --- a/query-languages/m/value-nullableequals.md +++ b/query-languages/m/value-nullableequals.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.NullableEquals" title: "Value.NullableEquals" -ms.date: 10/7/2022 --- # Value.NullableEquals diff --git a/query-languages/m/value-optimize.md b/query-languages/m/value-optimize.md index 9e6cb5702..750d67a7e 100644 --- a/query-languages/m/value-optimize.md +++ b/query-languages/m/value-optimize.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Optimize" title: "Value.Optimize" -ms.date: 10/7/2022 --- # Value.Optimize diff --git a/query-languages/m/value-removemetadata.md b/query-languages/m/value-removemetadata.md index ef24d1349..563f16c62 100644 --- a/query-languages/m/value-removemetadata.md +++ b/query-languages/m/value-removemetadata.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.RemoveMetadata" title: "Value.RemoveMetadata" -ms.date: 10/7/2022 --- # Value.RemoveMetadata diff --git a/query-languages/m/value-replacemetadata.md b/query-languages/m/value-replacemetadata.md index c4b1be6ea..cf0eebd96 100644 --- a/query-languages/m/value-replacemetadata.md +++ b/query-languages/m/value-replacemetadata.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.ReplaceMetadata" title: "Value.ReplaceMetadata" -ms.date: 10/7/2022 --- # Value.ReplaceMetadata diff --git a/query-languages/m/value-replacetype.md b/query-languages/m/value-replacetype.md index 5be126d4c..25d763722 100644 --- a/query-languages/m/value-replacetype.md +++ b/query-languages/m/value-replacetype.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.ReplaceType" title: "Value.ReplaceType" -ms.date: 4/13/2022 --- # Value.ReplaceType diff --git a/query-languages/m/value-subtract.md b/query-languages/m/value-subtract.md index 28c8866bb..69490592e 100644 --- a/query-languages/m/value-subtract.md +++ b/query-languages/m/value-subtract.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Subtract" title: "Value.Subtract" -ms.date: 10/7/2022 --- # Value.Subtract diff --git a/query-languages/m/value-traits.md b/query-languages/m/value-traits.md index 9d1891ae2..5a4701097 100644 --- a/query-languages/m/value-traits.md +++ b/query-languages/m/value-traits.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Traits" title: "Value.Traits" -ms.date: 10/7/2022 --- # Value.Traits diff --git a/query-languages/m/value-type.md b/query-languages/m/value-type.md index cfce66563..47345780c 100644 --- a/query-languages/m/value-type.md +++ b/query-languages/m/value-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Type" title: "Value.Type" -ms.date: 10/7/2022 --- # Value.Type diff --git a/query-languages/m/value-versionidentity.md b/query-languages/m/value-versionidentity.md index 7969c93b9..9ada8491f 100644 --- a/query-languages/m/value-versionidentity.md +++ b/query-languages/m/value-versionidentity.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.VersionIdentity" title: "Value.VersionIdentity" -ms.date: 5/19/2022 --- # Value.VersionIdentity diff --git a/query-languages/m/value-versions.md b/query-languages/m/value-versions.md index 3328acfcc..760ad9eb2 100644 --- a/query-languages/m/value-versions.md +++ b/query-languages/m/value-versions.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.Versions" title: "Value.Versions" -ms.date: 5/19/2022 --- # Value.Versions diff --git a/query-languages/m/value-viewerror.md b/query-languages/m/value-viewerror.md index 17d2689e6..440ba9818 100644 --- a/query-languages/m/value-viewerror.md +++ b/query-languages/m/value-viewerror.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.ViewError" title: "Value.ViewError" -ms.date: 10/18/2022 --- # Value.ViewError diff --git a/query-languages/m/value-viewfunction.md b/query-languages/m/value-viewfunction.md index 6305c479b..d4eb7bffb 100644 --- a/query-languages/m/value-viewfunction.md +++ b/query-languages/m/value-viewfunction.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Value.ViewFunction" title: "Value.ViewFunction" -ms.date: 10/18/2022 --- # Value.ViewFunction diff --git a/query-languages/m/variable-value.md b/query-languages/m/variable-value.md index bd56497db..e99c9b770 100644 --- a/query-languages/m/variable-value.md +++ b/query-languages/m/variable-value.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Variable.Value" title: "Variable.Value" -ms.date: 10/18/2021 --- # Variable.Value diff --git a/query-languages/m/web-browsercontents.md b/query-languages/m/web-browsercontents.md index a4ca3fbfd..43e106bf9 100644 --- a/query-languages/m/web-browsercontents.md +++ b/query-languages/m/web-browsercontents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Web.BrowserContents" title: "Web.BrowserContents" -ms.date: 2/17/2023 --- # Web.BrowserContents diff --git a/query-languages/m/web-contents.md b/query-languages/m/web-contents.md index 19ff9b9a9..616b6b05e 100644 --- a/query-languages/m/web-contents.md +++ b/query-languages/m/web-contents.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Web.Contents" title: "Web.Contents" -ms.date: 3/14/2022 --- # Web.Contents diff --git a/query-languages/m/web-headers.md b/query-languages/m/web-headers.md index 097bebda4..24cf8cf68 100644 --- a/query-languages/m/web-headers.md +++ b/query-languages/m/web-headers.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Web.Headers" title: "Web.Headers" -ms.date: 3/14/2022 --- # Web.Headers diff --git a/query-languages/m/web-page.md b/query-languages/m/web-page.md index c2b6ceeb2..7fda906f9 100644 --- a/query-languages/m/web-page.md +++ b/query-languages/m/web-page.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Web.Page" title: "Web.Page" -ms.date: 10/7/2022 --- # Web.Page diff --git a/query-languages/m/webaction-request.md b/query-languages/m/webaction-request.md index 2683795f3..967bec5fa 100644 --- a/query-languages/m/webaction-request.md +++ b/query-languages/m/webaction-request.md @@ -1,7 +1,6 @@ --- description: "Learn more about: WebAction.Request" title: "WebAction.Request" -ms.date: 3/14/2022 --- # WebAction.Request diff --git a/query-languages/m/webmethod-type.md b/query-languages/m/webmethod-type.md index 436dbcda7..f2d5768fe 100644 --- a/query-languages/m/webmethod-type.md +++ b/query-languages/m/webmethod-type.md @@ -1,7 +1,6 @@ --- description: "Learn more about: WebMethod.Type" title: "WebMethod.Type" -ms.date: 5/16/2022 --- # WebMethod.Type diff --git a/query-languages/m/xml-document.md b/query-languages/m/xml-document.md index 0527db651..65dda7e65 100644 --- a/query-languages/m/xml-document.md +++ b/query-languages/m/xml-document.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Xml.Document" title: "Xml.Document" -ms.date: 10/7/2022 --- # Xml.Document diff --git a/query-languages/m/xml-tables.md b/query-languages/m/xml-tables.md index 23fb2525c..660f8f803 100644 --- a/query-languages/m/xml-tables.md +++ b/query-languages/m/xml-tables.md @@ -1,7 +1,6 @@ --- description: "Learn more about: Xml.Tables" title: "Xml.Tables" -ms.date: 3/14/2022 --- # Xml.Tables From 798509753668d63b6416557e13ad1198661b939c Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 29 Aug 2023 11:44:26 -0700 Subject: [PATCH 310/934] Updated docfx with ms.date --- query-languages/m/docfx.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index ef5ce6138..0652aced2 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -44,7 +44,8 @@ "ms.reviewer": "ehvonleh", "author": "dougklopfenstein", "ms.author": "dougklo", - "searchScope": ["Power Query","M formula language"] + "searchScope": ["Power Query","M formula language"], + "ms.date": "7/19/2023" }, "fileMetadata": { }, "template": [], From b9ff8d9ad57554b04cdd784461c64957b4176e90 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 29 Aug 2023 11:54:52 -0700 Subject: [PATCH 311/934] Added custom entry in conceptual articles --- query-languages/m/accessing-data-functions.md | 1 + query-languages/m/binary-functions.md | 1 + query-languages/m/combiner-functions.md | 1 + query-languages/m/comments.md | 1 + query-languages/m/comparer-functions.md | 1 + query-languages/m/date-functions.md | 1 + query-languages/m/datetime-functions.md | 1 + query-languages/m/datetimezone-functions.md | 1 + query-languages/m/duration-functions.md | 1 + query-languages/m/error-handling.md | 1 + query-languages/m/errors.md | 1 + query-languages/m/evaluation-model.md | 1 + query-languages/m/expression-functions.md | 1 + query-languages/m/expressions-values-and-let-expression.md | 1 + query-languages/m/function-values.md | 1 + query-languages/m/index.yml | 1 + query-languages/m/lines-functions.md | 1 + query-languages/m/list-functions.md | 1 + query-languages/m/logical-functions.md | 1 + query-languages/m/m-spec-basic-concepts.md | 1 + query-languages/m/m-spec-conditionals.md | 1 + query-languages/m/m-spec-consolidated-grammar.md | 1 + query-languages/m/m-spec-error-handling.md | 1 + query-languages/m/m-spec-functions.md | 1 + query-languages/m/m-spec-introduction.md | 1 + query-languages/m/m-spec-let.md | 1 + query-languages/m/m-spec-lexical-structure.md | 1 + query-languages/m/m-spec-operators.md | 1 + query-languages/m/m-spec-sections.md | 1 + query-languages/m/m-spec-types.md | 1 + query-languages/m/m-spec-values.md | 1 + query-languages/m/metadata.md | 1 + query-languages/m/number-functions.md | 1 + query-languages/m/operators.md | 1 + query-languages/m/power-query-m-function-reference.md | 1 + query-languages/m/power-query-m-language-specification.md | 1 + query-languages/m/power-query-m-type-system.md | 1 + .../m/quick-tour-of-the-power-query-m-formula-language.md | 1 + query-languages/m/record-functions.md | 1 + query-languages/m/replacer-functions.md | 1 + query-languages/m/splitter-functions.md | 1 + query-languages/m/table-functions.md | 1 + query-languages/m/text-functions.md | 1 + query-languages/m/time-functions.md | 1 + query-languages/m/type-conversion.md | 1 + query-languages/m/type-functions.md | 1 + query-languages/m/understanding-power-query-m-functions.md | 1 + query-languages/m/uri-functions.md | 1 + query-languages/m/value-functions.md | 1 + 49 files changed, 49 insertions(+) diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index 82fccda0d..2099e34ef 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Accessing data functions" title: "Accessing data functions" ms.date: 5/16/2023 +ms.custom: "nonautomated-date" --- # Accessing data functions diff --git a/query-languages/m/binary-functions.md b/query-languages/m/binary-functions.md index 58aface22..f7998796f 100644 --- a/query-languages/m/binary-functions.md +++ b/query-languages/m/binary-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Binary functions" title: "Binary functions" ms.date: 2/17/2023 +ms.custom: "nonautomated-date" --- # Binary functions diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index acff0c1fa..8dc086f16 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Combiner functions" title: "Combiner functions" ms.date: 6/15/2023 +ms.custom: "nonautomated-date" --- # Combiner functions diff --git a/query-languages/m/comments.md b/query-languages/m/comments.md index 8d80e699e..fb58953da 100644 --- a/query-languages/m/comments.md +++ b/query-languages/m/comments.md @@ -3,6 +3,7 @@ description: "Learn more about: Comments" title: "Comments" ms.topic: conceptual ms.date: 10/7/2022 +ms.custom: "nonautomated-date" --- # Comments diff --git a/query-languages/m/comparer-functions.md b/query-languages/m/comparer-functions.md index 287cd6ad7..1e00e8260 100644 --- a/query-languages/m/comparer-functions.md +++ b/query-languages/m/comparer-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Comparer functions" title: "Comparer functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Comparer functions diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index 614e9e99d..b811acf7f 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Date functions" title: "Date functions" ms.date: 11/14/2022 +ms.custom: "nonautomated-date" --- # Date functions diff --git a/query-languages/m/datetime-functions.md b/query-languages/m/datetime-functions.md index 55a97cf4e..0f54044c0 100644 --- a/query-languages/m/datetime-functions.md +++ b/query-languages/m/datetime-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: DateTime functions" title: "DateTime functions" ms.date: 1/18/2023 +ms.custom: "nonautomated-date" --- # DateTime functions diff --git a/query-languages/m/datetimezone-functions.md b/query-languages/m/datetimezone-functions.md index 3b5c68b48..511fd17d7 100644 --- a/query-languages/m/datetimezone-functions.md +++ b/query-languages/m/datetimezone-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: DateTimeZone functions" title: "DateTimeZone functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # DateTimeZone functions diff --git a/query-languages/m/duration-functions.md b/query-languages/m/duration-functions.md index ceeb2213f..adb3e0b63 100644 --- a/query-languages/m/duration-functions.md +++ b/query-languages/m/duration-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Duration functions" title: "Duration functions" ms.date: 7/19/2022 +ms.custom: "nonautomated-date" --- # Duration functions diff --git a/query-languages/m/error-handling.md b/query-languages/m/error-handling.md index 3df90d5d0..442fbe844 100644 --- a/query-languages/m/error-handling.md +++ b/query-languages/m/error-handling.md @@ -2,6 +2,7 @@ description: "Learn more about: Error handling functions" title: "Error handling functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Error handling functions diff --git a/query-languages/m/errors.md b/query-languages/m/errors.md index e9efcffa2..9add5179e 100644 --- a/query-languages/m/errors.md +++ b/query-languages/m/errors.md @@ -3,6 +3,7 @@ description: "Learn more about: Errors" title: "Errors" ms.topic: conceptual ms.date: 10/7/2022 +ms.custom: "nonautomated-date" --- # Errors diff --git a/query-languages/m/evaluation-model.md b/query-languages/m/evaluation-model.md index 41d9aee36..452408b33 100644 --- a/query-languages/m/evaluation-model.md +++ b/query-languages/m/evaluation-model.md @@ -3,6 +3,7 @@ description: "Learn more about: Evaluation model" title: "Evaluation model" ms.topic: conceptual ms.date: 10/7/2022 +ms.custom: "nonautomated-date" --- # Evaluation model diff --git a/query-languages/m/expression-functions.md b/query-languages/m/expression-functions.md index 9604924af..8e2ea377e 100644 --- a/query-languages/m/expression-functions.md +++ b/query-languages/m/expression-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Expression functions" title: "Expression functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Expression functions diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index de1d30c5a..b4c3692a1 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -3,6 +3,7 @@ description: "Learn more about: Expressions, values, and let expression" title: "Expressions, values, and let expression" ms.topic: conceptual ms.date: 10/7/2022 +ms.custom: "nonautomated-date" --- # Expressions, values, and let expression diff --git a/query-languages/m/function-values.md b/query-languages/m/function-values.md index 8d4a4ea05..25b255097 100644 --- a/query-languages/m/function-values.md +++ b/query-languages/m/function-values.md @@ -2,6 +2,7 @@ description: "Learn more about: Function values" title: "Function values" ms.date: 2/17/2023 +ms.custom: "nonautomated-date" --- # Function values diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index 6bfcc363b..ea37aa79b 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -8,6 +8,7 @@ metadata: description: Power Query M is used to filter, combine, and mash-up data from one or more supported data sources. ms.topic: landing-page ms.date: 7/6/2023 +ms.custom: "nonautomated-date" # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new diff --git a/query-languages/m/lines-functions.md b/query-languages/m/lines-functions.md index 8f5454a2c..f082b0ce7 100644 --- a/query-languages/m/lines-functions.md +++ b/query-languages/m/lines-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Lines functions" title: "Lines functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Lines functions diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index 0fe513fe2..bbd082878 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: List functions" title: "List functions" ms.date: 10/7/2022 +ms.custom: "nonautomated-date" --- # List functions diff --git a/query-languages/m/logical-functions.md b/query-languages/m/logical-functions.md index 2525a71aa..2a330ed98 100644 --- a/query-languages/m/logical-functions.md +++ b/query-languages/m/logical-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Logical functions" title: "Logical functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Logical functions diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 2b24d72c6..9273d6770 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -3,6 +3,7 @@ title: M Language basic concepts description: Discusses basic concepts that appear throughout the subsequent sections ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" ms.custom: intro-internal --- diff --git a/query-languages/m/m-spec-conditionals.md b/query-languages/m/m-spec-conditionals.md index 6f7db7f3c..2818131b3 100644 --- a/query-languages/m/m-spec-conditionals.md +++ b/query-languages/m/m-spec-conditionals.md @@ -3,6 +3,7 @@ title: M Language Conditionals description: Describes using conditionals in the Power Query M formula language ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index e897a067b..888f2db5f 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -3,6 +3,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- # Consolidated Grammar diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index 97d333d4f..d1cd3886a 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -3,6 +3,7 @@ title: M Language Error Handling description: Describes error handling in the Power Query M formula language ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- # Error Handling diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 87e661a66..5e0040b81 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -3,6 +3,7 @@ title: M Language Functions description: Describes using functions in the Power Query M formula language ms.topic: conceptual ms.date: 7/7/2023 +ms.custom: "nonautomated-date" --- diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index 85a0881f2..b4c59756c 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -3,6 +3,7 @@ title: Power Query M formula language introduction description: Provides an overview of the Power Query M formula language ms.topic: overview ms.date: 7/21/2023 +ms.custom: "nonautomated-date" --- # Introduction diff --git a/query-languages/m/m-spec-let.md b/query-languages/m/m-spec-let.md index cb7df0740..34ff24c68 100644 --- a/query-languages/m/m-spec-let.md +++ b/query-languages/m/m-spec-let.md @@ -3,6 +3,7 @@ title: M Language Let description: Describes using the let expression in the Power Query M formula language ms.topic: conceptual ms.date: 10/7/2022 +ms.custom: "nonautomated-date" --- diff --git a/query-languages/m/m-spec-lexical-structure.md b/query-languages/m/m-spec-lexical-structure.md index df4ffeea5..c5616ca21 100644 --- a/query-languages/m/m-spec-lexical-structure.md +++ b/query-languages/m/m-spec-lexical-structure.md @@ -3,6 +3,7 @@ title: M Language lexical structure description: Describes the lexical structure of the Power Query M formula language ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 4ff84e52f..96e300c72 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -3,6 +3,7 @@ title: M Language Operators description: Describes using operators in the Power Query M formula language ms.topic: conceptual ms.date: 5/25/2023 +ms.custom: "nonautomated-date" --- # Operator behavior diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index f40cfb87b..752cac618 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -3,6 +3,7 @@ title: M Language Sections description: Describes using sections in the Power Query M formula language ms.topic: conceptual ms.date: 10/7/2022 +ms.custom: "nonautomated-date" --- # Sections diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 0a71022e8..ec4f04383 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -3,6 +3,7 @@ title: M Language types description: Describes using types in the Power Query M formula language ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- # Types diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index 0c7440a82..ba57bfa0a 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -3,6 +3,7 @@ title: M Language values description: Describes using values in the Power Query M formula language ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- # Values diff --git a/query-languages/m/metadata.md b/query-languages/m/metadata.md index 97644e1ec..22f695dc4 100644 --- a/query-languages/m/metadata.md +++ b/query-languages/m/metadata.md @@ -3,6 +3,7 @@ description: "Learn more about: Metadata" title: "Metadata" ms.topic: conceptual ms.date: 10/7/2022 +ms.custom: "nonautomated-date" --- # Metadata diff --git a/query-languages/m/number-functions.md b/query-languages/m/number-functions.md index 5eaf8f115..4f7b5cf78 100644 --- a/query-languages/m/number-functions.md +++ b/query-languages/m/number-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Number functions" title: "Number functions" ms.date: 7/18/2023 +ms.custom: "nonautomated-date" --- # Number functions diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index 6c59b6d68..4bcb34503 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -3,6 +3,7 @@ description: "Learn more about: Operators" title: "Operators" ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- # Operators diff --git a/query-languages/m/power-query-m-function-reference.md b/query-languages/m/power-query-m-function-reference.md index 1cfe5d0d5..129a94a98 100644 --- a/query-languages/m/power-query-m-function-reference.md +++ b/query-languages/m/power-query-m-function-reference.md @@ -2,6 +2,7 @@ description: "Learn more about: Power Query M function reference" title: "Power Query M function reference" ms.date: 9/20/2022 +ms.custom: "nonautomated-date" --- # Power Query M function reference diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index 81777ab56..358ea912e 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -3,6 +3,7 @@ description: "Learn more about: Power Query M language specification" title: "Power Query M language specification" ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- # Power Query M language specification diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index 1256a6dc6..39a4f16ea 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -3,6 +3,7 @@ description: "Learn more about: Types in the Power Query M formula language" title: "Power Query M type system" ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- # Types in the Power Query M formula language diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index 1b26b99bd..21983590e 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -2,6 +2,7 @@ description: "Learn more about: Quick tour of the Power Query M formula language" title: "Quick tour" ms.date: 7/21/2023 +ms.custom: "nonautomated-date" ms.topic: conceptual ms.custom: intro-internal --- diff --git a/query-languages/m/record-functions.md b/query-languages/m/record-functions.md index 9d5305059..c6f00883d 100644 --- a/query-languages/m/record-functions.md +++ b/query-languages/m/record-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Record functions" title: "Record functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Record functions diff --git a/query-languages/m/replacer-functions.md b/query-languages/m/replacer-functions.md index 94bd7efb9..8ce9109fb 100644 --- a/query-languages/m/replacer-functions.md +++ b/query-languages/m/replacer-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Replacer functions" title: "Replacer functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Replacer functions diff --git a/query-languages/m/splitter-functions.md b/query-languages/m/splitter-functions.md index f4fdee98f..9f1ae8768 100644 --- a/query-languages/m/splitter-functions.md +++ b/query-languages/m/splitter-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Splitter functions" title: "Splitter functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Splitter functions diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index 3effd7cff..af20c4cea 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Table functions" title: "Table functions" ms.date: 10/21/2022 +ms.custom: "nonautomated-date" --- # Table functions diff --git a/query-languages/m/text-functions.md b/query-languages/m/text-functions.md index d78d7ba90..1edef4ae3 100644 --- a/query-languages/m/text-functions.md +++ b/query-languages/m/text-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Text functions" title: "Text functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Text functions diff --git a/query-languages/m/time-functions.md b/query-languages/m/time-functions.md index 3094c8e7f..083e39128 100644 --- a/query-languages/m/time-functions.md +++ b/query-languages/m/time-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Time functions" title: "Time functions" ms.date: 11/14/2022 +ms.custom: "nonautomated-date" --- # Time functions diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 1c699bf25..724f0cff8 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -3,6 +3,7 @@ description: "Learn more about: Type conversion" title: "Type conversion" ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- # Type conversion diff --git a/query-languages/m/type-functions.md b/query-languages/m/type-functions.md index 072e9dc43..3e9c1e6e5 100644 --- a/query-languages/m/type-functions.md +++ b/query-languages/m/type-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Type functions" title: "Type functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Type functions diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index f5358f164..8b6b67064 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -3,6 +3,7 @@ description: "Learn more about: Understanding Power Query M functions" title: "Understanding Power Query M functions" ms.topic: conceptual ms.date: 8/2/2022 +ms.custom: "nonautomated-date" --- # Understanding Power Query M functions diff --git a/query-languages/m/uri-functions.md b/query-languages/m/uri-functions.md index 0a2bb72ac..991244e0a 100644 --- a/query-languages/m/uri-functions.md +++ b/query-languages/m/uri-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Uri functions" title: "Uri functions" ms.date: 5/16/2022 +ms.custom: "nonautomated-date" --- # Uri functions diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 24a4f537d..e5572c2fa 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -2,6 +2,7 @@ description: "Learn more about: Value functions" title: "Value functions" ms.date: 11/14/2022 +ms.custom: "nonautomated-date" --- # Value functions From adc7feffeaf1afb5c08d11ee6421633d7b436711 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 29 Aug 2023 12:11:12 -0700 Subject: [PATCH 312/934] Added leading zero to ms.date --- query-languages/m/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 0652aced2..074f11363 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -45,7 +45,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "7/19/2023" + "ms.date": "07/19/2023" }, "fileMetadata": { }, "template": [], From ca5c138dee1c53bc853faf0dbebb60dffe4ca778 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 29 Aug 2023 12:23:50 -0700 Subject: [PATCH 313/934] Fixed custom metadata for multiple entries --- query-languages/m/index.yml | 2 +- query-languages/m/m-spec-basic-concepts.md | 3 +-- .../m/quick-tour-of-the-power-query-m-formula-language.md | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index ea37aa79b..5bb27ea9f 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -8,7 +8,7 @@ metadata: description: Power Query M is used to filter, combine, and mash-up data from one or more supported data sources. ms.topic: landing-page ms.date: 7/6/2023 -ms.custom: "nonautomated-date" + ms.custom: nonautomated-date # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 9273d6770..3fe1ec293 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -3,8 +3,7 @@ title: M Language basic concepts description: Discusses basic concepts that appear throughout the subsequent sections ms.topic: conceptual ms.date: 8/2/2022 -ms.custom: "nonautomated-date" -ms.custom: intro-internal +ms.custom: nonautomated-date, intro-internal --- # Basic concepts diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index 21983590e..d25567fde 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -2,9 +2,8 @@ description: "Learn more about: Quick tour of the Power Query M formula language" title: "Quick tour" ms.date: 7/21/2023 -ms.custom: "nonautomated-date" +ms.custom: nonautomated-date, intro-internal ms.topic: conceptual -ms.custom: intro-internal --- # Quick tour of the Power Query M formula language From 9225037452e464f54cac087370039b6c8fc17b05 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 29 Aug 2023 12:41:51 -0700 Subject: [PATCH 314/934] Removed leading zero in date to test docfx --- query-languages/m/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 074f11363..0652aced2 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -45,7 +45,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "07/19/2023" + "ms.date": "7/19/2023" }, "fileMetadata": { }, "template": [], From 961136b257c4ca1a29aca264acec488d268aa67f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 29 Aug 2023 15:14:36 -0700 Subject: [PATCH 315/934] Added leading zero back in date in docfx --- query-languages/m/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 0652aced2..074f11363 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -45,7 +45,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "7/19/2023" + "ms.date": "07/19/2023" }, "fileMetadata": { }, "template": [], From 68a1df9a89f3d528e1103922edb6e107b6197117 Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Fri, 1 Sep 2023 12:56:23 -0700 Subject: [PATCH 316/934] Update approximate-distinctcount-function-dax.md --- query-languages/dax/approximate-distinctcount-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/approximate-distinctcount-function-dax.md b/query-languages/dax/approximate-distinctcount-function-dax.md index 4dfaef7af..3933a5fb8 100644 --- a/query-languages/dax/approximate-distinctcount-function-dax.md +++ b/query-languages/dax/approximate-distinctcount-function-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # APPROXIMATEDISTINCTCOUNT -Returns an *estimated* count of unique values in a column. This function invokes a corresponding aggregation operation in the data source, which is optimized for query performance, but with slightly reduced accuracy. This function can be used with the following data sources: Azure SQL, Azure SQL Data Warehouse, BigQuery, Databricks, and Snowflake. This function requires DirectQuery mode. Import mode and dual storage mode are not supported. +Returns an *estimated* count of unique values in a column. This function invokes a corresponding aggregation operation in the data source, which is optimized for query performance, but with slightly reduced accuracy. This function can be used with the following data sources: Azure SQL, Azure Synapse dedicated SQL pool, BigQuery, Databricks, and Snowflake. This function requires DirectQuery mode. Import mode and dual storage mode are not supported. ## Syntax From c90e1b755713330c956e164fa7d3b7caa22065c9 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 5 Sep 2023 11:50:36 -0700 Subject: [PATCH 317/934] Update rank-function-dax.md Replacing Default with Keep for RANK Blank sorting behavior. --- query-languages/dax/rank-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 8cc6690f6..5503f3ba1 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -28,7 +28,7 @@ RANK ( [][, ][, ][, ][, ][, If specified, the supported value is either DENSE, or SKIP.
If omitted:
- Defaults to SKIP | |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • KEEP (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | From 87238633a21466a55eb800aeb683a3099c5817c3 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 11 Sep 2023 15:21:30 -0700 Subject: [PATCH 318/934] Added October updates to Power Query M reference --- query-languages/m/comparer-fromculture.md | 6 +++- query-languages/m/comparer-functions.md | 4 +-- query-languages/m/comparer-ordinal.md | 2 ++ .../m/comparer-ordinalignorecase.md | 2 ++ query-languages/m/docfx.json | 2 +- query-languages/m/table-join.md | 36 ++++++++++++++++++- query-languages/m/table-onerror.md | 16 +++++++++ query-languages/m/value-compare.md | 2 +- query-languages/m/value-functions.md | 5 +-- 9 files changed, 67 insertions(+), 8 deletions(-) create mode 100644 query-languages/m/table-onerror.md diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index c58cc5d9e..e1991a906 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -12,7 +12,11 @@ Comparer.FromCulture(culture as text, optional ignoreCase as nulla ## About -Returns a comparer function given the `culture` and a logical value `ignoreCase` for case sensitivity for the comparison. The default value for `ignoreCase` is false. The value for culture are well known text representations of locales used in the .NET framework. +Returns a comparer function that uses the `culture`` and the case-sensitivity specified by `ignoreCase` to perform comparisons. + +A comparer function accepts two arguments and returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second. + +The default value for `ignoreCase` is false. The `culture` should be one of the locales supported by the .NET framework (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/comparer-functions.md b/query-languages/m/comparer-functions.md index 1e00e8260..6b1623b6c 100644 --- a/query-languages/m/comparer-functions.md +++ b/query-languages/m/comparer-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Comparer functions" title: "Comparer functions" -ms.date: 5/16/2022 +ms.date: 9/11/2023 ms.custom: "nonautomated-date" --- # Comparer functions @@ -11,6 +11,6 @@ These functions test equality and determine ordering. |Name|Description| |------------|---------------| |[Comparer.Equals](comparer-equals.md)|Returns a logical value based on the equality check over the two given values.| -|[Comparer.FromCulture](comparer-fromculture.md)|Returns a comparer function given the culture and a logical value for case sensitivity for the comparison. The default value for ignoreCase is false. The value for culture are well known text representations of locales used in the .NET framework.| +|[Comparer.FromCulture](comparer-fromculture.md)|Returns a comparer function based on the specified culture and case-sensitivity.| |[Comparer.Ordinal](comparer-ordinal.md)|Returns a comparer function which uses Ordinal rules to compare values.| |[Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md)|Returns a case-insensitive comparer function which uses Ordinal rules to compare the provided values x and y.| diff --git a/query-languages/m/comparer-ordinal.md b/query-languages/m/comparer-ordinal.md index d8318ae12..004684fa8 100644 --- a/query-languages/m/comparer-ordinal.md +++ b/query-languages/m/comparer-ordinal.md @@ -18,6 +18,8 @@ Returns a comparer function which uses Ordinal rules to compare the provided val Using Ordinal rules, compare if "encyclopædia" and "encyclopaedia" are equivalent. Note these are equivalent using `Comparer.FromCulture("en-US")`. +A comparer function accepts two arguments and returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second. + **Usage** ```powerquery-m diff --git a/query-languages/m/comparer-ordinalignorecase.md b/query-languages/m/comparer-ordinalignorecase.md index 03859bd45..445fc3de4 100644 --- a/query-languages/m/comparer-ordinalignorecase.md +++ b/query-languages/m/comparer-ordinalignorecase.md @@ -14,6 +14,8 @@ Comparer.OrdinalIgnoreCase(x as any, y as any) as number Returns a case-insensitive comparer function which uses Ordinal rules to compare the provided values `x` and `y`. +A comparer function accepts two arguments and returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second. + ## Example 1 Using case-insensitive Ordinal rules, compare "Abc" with "abc". Note "Abc" is less than "abc" using `Comparer.Ordinal`. diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 074f11363..5817ce145 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -45,7 +45,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "07/19/2023" + "ms.date": "09/11/2023" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index 5e34d3734..be13ed442 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -23,7 +23,7 @@ By default, an inner join is performed, however an optional `joinKind` may be in * `JoinKind.LeftAnti` * `JoinKind.RightAnti` -An optional set of `keyEqualityComparers` may be included to specify how to compare the key columns. This feature is currently intended for internal use only. +An optional set of `keyEqualityComparers` may be included to specify how to compare the key columns. This parameter is currently intended for internal use only. ## Example 1 @@ -65,3 +65,37 @@ Table.FromRecords({ [CustomerID = 1, Name = "Bob", Phone = "123-4567", OrderID = 6, Item = "Tackle box", Price = 20] }) ``` + +## Example 2 + +Join two tables that have conflicting column names, using multiple key columns. + +**Usage** + +```powerquery-m +let + customers = Table.FromRecords({ + [TenantID = 1, CustomerID = 1, Name = "Bob", Phone = "123-4567"], + [TenantID = 1, CustomerID = 2, Name = "Jim", Phone = "987-6543"] + }), + orders = Table.FromRecords({ + [TenantID = 1, OrderID = 1, CustomerID = 1, Name = "Fishing rod", Price = 100.0], + [TenantID = 1, OrderID = 2, CustomerID = 1, Name = "1 lb. worms", Price = 5.0], + [TenantID = 1, OrderID = 3, CustomerID = 2, Name = "Fishing net", Price = 25.0] + }) +in + Table.Join( + customers, + {"TenantID", "CustomerID"}, + Table.PrefixColumns(orders, "Order"), + {"Order.TenantID", "Order.CustomerID"} + ) +``` + +```powerquery-m +Table.FromRecords({ + [TenantID = 1, CustomerID = 1, Name = "Bob", Phone = "123-4567", Order.TenantID = 1, Order.OrderID = 1, Order.CustomerID = 1, Order.Name = "Fishing rod", Order.Price = 100], + [TenantID = 1, CustomerID = 1, Name = "Bob", Phone = "123-4567", Order.TenantID = 1, Order.OrderID = 2, Order.CustomerID = 1, Order.Name = "1 lb. worms", Order.Price = 5], + [TenantID = 1, CustomerID = 2, Name = "Jim", Phone = "987-6543", Order.TenantID = 1, Order.OrderID = 3, Order.CustomerID = 2, Order.Name = "Fishing net", Order.Price = 25] +}) +``` diff --git a/query-languages/m/table-onerror.md b/query-languages/m/table-onerror.md new file mode 100644 index 000000000..3712f085e --- /dev/null +++ b/query-languages/m/table-onerror.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Table.OnError" +title: "Table.OnError" +--- + +# Table.OnError + +## Syntax + +
+Table.OnError(table as table, handler as function) as table
+
+ +## About + +This function is intended for internal use only. diff --git a/query-languages/m/value-compare.md b/query-languages/m/value-compare.md index 3a3e76995..86e9b5d3d 100644 --- a/query-languages/m/value-compare.md +++ b/query-languages/m/value-compare.md @@ -12,4 +12,4 @@ Value.Compare(value1 as any, value2 as any, optional precision< ## About -Returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second one. +Returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second. diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index e5572c2fa..25d3e10ce 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value functions" title: "Value functions" -ms.date: 11/14/2022 +ms.date: 9/11/2023 ms.custom: "nonautomated-date" --- # Value functions @@ -11,7 +11,7 @@ These functions evaluate and perform operations on values. |Name|Description| |------------|---------------| |[Value.Alternates](value-alternates.md)|Expresses alternate query plans.| -|[Value.Compare](value-compare.md)|Returns 1, 0, or -1 based on value1 being greater than, equal to, or less than the value2. An optional comparer function can be provided.| +|[Value.Compare](value-compare.md)|Returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second.| |[Value.Equals](value-equals.md)|Returns whether two values are equal.| |[Value.Expression](value-expression.md)|Returns an abstract syntax tree (AST) that represents the value's expression.| |[Value.VersionIdentity](value-versionidentity.md)|Returns the version identity of a value.| @@ -50,6 +50,7 @@ These functions evaluate and perform operations on values. |[Variable.Value](variable-value.md) | This function is intended for internal use only.| |[SqlExpression.SchemaFrom](sqlexpression-schemafrom.md) | This function is intended for internal use only.| |[SqlExpression.ToExpression](sqlexpression-toexpression.md) | This function is intended for internal use only.| +|[Table.OnError](table-onerror.md) | This function is intended for internal use only.| ## Metadata From b63fcc3bbe20d752231bdb47397712f5ac1e1e3c Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 11 Sep 2023 15:32:12 -0700 Subject: [PATCH 319/934] One more update --- query-languages/m/comparer-equals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index 72e5f5dab..55cf76d32 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -14,7 +14,7 @@ Comparer.Equals(comparer as function, x as any, y as any) as logical Returns a `logical` value based on the equality check over the two given values, `x` and `y`, using the provided `comparer`. -`comparer` is a `Comparer` which is used to control the comparison. Comparers can be used to provide case-insensitive or culture and locale-aware comparisons. +`comparer` is a `Comparer` which is used to control the comparison. A comparer is a function that accepts two arguments and returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second. Comparers can be used to provide case-insensitive or culture and locale-aware comparisons. The following built-in comparers are available in the formula language: From 1d418a5101498f5d83c45b88cadba9da2f9c93e0 Mon Sep 17 00:00:00 2001 From: Sergio Oller Date: Wed, 13 Sep 2023 09:30:26 +0200 Subject: [PATCH 320/934] Suggestions from #136 - Reorder examples - Add link to splitter functions --- query-languages/m/table-fromlist.md | 45 +++++++++++++---------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index 6899b0184..d20ac3c04 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -13,69 +13,64 @@ Table.FromList(list as list, optional splitter as nullable functio ## About -Converts a list, `list` into a table by applying the optional splitting function, `splitter`, to each item in the list. By default, the list is assumed to be a list of text values that is split by commas. Optional `columns` may be the number of columns, a list of columns or a TableType. Optional `default` and `extraValues` may also be specified. +Converts a list, `list` into a table by applying the optional [splitting function](splitter-functions.md), `splitter`, to each item in the list. By default, the list is assumed to be a list of text values that is split by commas. Optional `columns` may be the number of columns, a list of columns or a TableType. Optional `default` and `extraValues` may also be specified. ## Example 1 -Create a table from the list with the column named "Letters" using the default splitter. +Create a table from a list containing letters and words separated by a comma. The table will have "Letter" and "Example Word" as column names. **Usage** ```powerquery-m -Table.FromList({"a", "b", "c", "d"}, null, {"Letters"}) +Table.FromList({"a,apple", "b,ball", "c,cookie", "d,door"}, null, {"Letter", "Example Word"}) ``` **Output** ```powerquery-m Table.FromRecords({ - [Letters = "a"], - [Letters = "b"], - [Letters = "c"], - [Letters = "d"] + [Letter = "a", "Example Word" = "apple"], + [Letter = "b", "Example Word" = "ball"], + [Letter = "c", "Example Word" = "cookie"], + [Letter = "d", "Example Word" = "door"] }) ``` ## Example 2 -Create a table from the list using the [Record.FieldValues](record-fieldvalues.md) splitter with the resulting table having "CustomerID" and "Name" as column names. +Create a table with a single column from a List, using a custom splitter. **Usage** ```powerquery-m -Table.FromList( - { - [CustomerID = 1, Name = "Bob"], - [CustomerID = 2, Name = "Jim"] - }, - Record.FieldValues, - {"CustomerID", "Name"} -) +Table.FromList({"a,apple", "b,ball", "c,cookie", "d,door"}, Splitter.SplitByNothing(), {"Letter and Example Word"}) ``` **Output** ```powerquery-m Table.FromRecords({ - [CustomerID = 1, Name = "Bob"], - [CustomerID = 2, Name = "Jim"] + ["Letter and Example Word" = "a,apple"], + ["Letter and Example Word" = "b,ball"], + ["Letter and Example Word" = "c,cookie"], + ["Letter and Example Word" = "d,door"] }) ``` ## Example 3 -Create a table with a single column, from a List that may include commas `,`, where commas should not be treated as a separator character. +Create a table from the list using the [Record.FieldValues](record-fieldvalues.md) splitter with the resulting table having "CustomerID" and "Name" as column names. **Usage** ```powerquery-m Table.FromList( { - "abcd", - ".,!?" + [CustomerID = 1, Name = "Bob"], + [CustomerID = 2, Name = "Jim"] }, - (x) => {x}, - {"SomeStrings"} + Record.FieldValues, + {"CustomerID", "Name"} ) ``` @@ -83,7 +78,7 @@ Table.FromList( ```powerquery-m Table.FromRecords({ - [SomeStrings = "abcd"], - [SomeStrings = ".,!?"] + [CustomerID = 1, Name = "Bob"], + [CustomerID = 2, Name = "Jim"] }) ``` From 3162c2167960ed3df29cb39b5c3e3aff7c9661d7 Mon Sep 17 00:00:00 2001 From: Sergio Oller Date: Thu, 14 Sep 2023 15:59:24 +0200 Subject: [PATCH 321/934] Shorten example description Co-authored-by: Ehren --- query-languages/m/table-fromlist.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index d20ac3c04..3cccbf83c 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -17,7 +17,7 @@ Converts a list, `list` into a table by applying the optional [splitting functio ## Example 1 -Create a table from a list containing letters and words separated by a comma. The table will have "Letter" and "Example Word" as column names. +Create a table from a list using the default splitter. **Usage** From 124aa7dfcb268987e6415e0befd9af43e7b531f1 Mon Sep 17 00:00:00 2001 From: Sergio Oller Date: Thu, 14 Sep 2023 16:00:05 +0200 Subject: [PATCH 322/934] Shorten example description Co-authored-by: Ehren --- query-languages/m/table-fromlist.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index 3cccbf83c..3d6aa74d9 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -38,7 +38,7 @@ Table.FromRecords({ ## Example 2 -Create a table with a single column from a List, using a custom splitter. +Create a table from a list using a custom splitter. **Usage** @@ -59,7 +59,7 @@ Table.FromRecords({ ## Example 3 -Create a table from the list using the [Record.FieldValues](record-fieldvalues.md) splitter with the resulting table having "CustomerID" and "Name" as column names. +Create a table from a list using the [Record.FieldValues](record-fieldvalues.md) splitter. **Usage** From 7a885140ddf8a7c607103490f58d63560c6e94ef Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 15 Sep 2023 12:20:55 -0400 Subject: [PATCH 323/934] Aligning with consolidated grammar --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index ec4f04383..c60ed7d83 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -252,7 +252,7 @@ A _table-type value_ is used to define the structure of a table value. _table-type:_
      `table` _row-type
row-type:_
-      `[` _field-specification-list_ `]` +      `[` _field-specification-list_opt `]` The result of evaluating a _table-type_ is a type value whose base type is `table`. From fa404bd8c3550527f90ce14a1a7fedb79c093fb9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 15 Sep 2023 12:31:14 -0400 Subject: [PATCH 324/934] Formatting Fix --- query-languages/m/m-spec-consolidated-grammar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 888f2db5f..dd0b0b531 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -533,7 +533,7 @@ _list-type:_
_item-type:
      type
function-type:_
-      `function (` _parameter-specification-listopt_ `)` _return-type
+      `function (` _parameter-specification-listopt_ `)` _return-type
parameter-specification-list:
      required-parameter-specification-list
      required-parameter-specification-list_ `,` _optional-parameter-specification-list
From 3d90bcddde6f262e74d29b6568c95d22a5f112d5 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 15 Sep 2023 12:46:39 -0400 Subject: [PATCH 325/934] Grammar adjustment --- query-languages/m/m-spec-consolidated-grammar.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index dd0b0b531..9f5e0d779 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -2,7 +2,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 9/15/2023 ms.custom: "nonautomated-date" --- @@ -449,14 +449,14 @@ fixed-parameter-list:
      parameter
      parameter_ `,` _fixed-parameter-list
parameter:
-      parameter-name parameter-typeopt
+      parameter-name primitive-parameter-typeopt
parameter-name:
      identifier
-parameter-type:
-      assertion
+primitive-parameter-type:
+      primitive-assertion
return-type:
-      assertion
-assertion:_
+      primitive-assertion
+primitive-assertion:_
      `as` _nullable-primitive-type
optional-parameter-list:
      optional-parameter
@@ -550,6 +550,10 @@ optional-parameter-specification:_
      `optional` _parameter-specification
parameter-specification:
      parameter-name parameter-type
+parameter-type:
+      assertion
+assertion:_
+      `as` _type
table-type:_
      `table` _row-type
row-type:_
From 8bddad08e4d0a2a64c0df77fbd1d835754948247 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 15 Sep 2023 12:49:14 -0400 Subject: [PATCH 326/934] Revert "Grammar adjustment" This reverts commit 3d90bcddde6f262e74d29b6568c95d22a5f112d5. --- query-languages/m/m-spec-consolidated-grammar.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 9f5e0d779..dd0b0b531 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -2,7 +2,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual -ms.date: 9/15/2023 +ms.date: 8/2/2022 ms.custom: "nonautomated-date" --- @@ -449,14 +449,14 @@ fixed-parameter-list:
      parameter
      parameter_ `,` _fixed-parameter-list
parameter:
-      parameter-name primitive-parameter-typeopt
+      parameter-name parameter-typeopt
parameter-name:
      identifier
-primitive-parameter-type:
-      primitive-assertion
+parameter-type:
+      assertion
return-type:
-      primitive-assertion
-primitive-assertion:_
+      assertion
+assertion:_
      `as` _nullable-primitive-type
optional-parameter-list:
      optional-parameter
@@ -550,10 +550,6 @@ optional-parameter-specification:_
      `optional` _parameter-specification
parameter-specification:
      parameter-name parameter-type
-parameter-type:
-      assertion
-assertion:_
-      `as` _type
table-type:_
      `table` _row-type
row-type:_
From 96c6faf2efcdcda6650b919ba42bac7d50b46e4d Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 15 Sep 2023 12:52:57 -0400 Subject: [PATCH 327/934] Grammar adjustment --- query-languages/m/m-spec-consolidated-grammar.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 888f2db5f..9192c922f 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -2,7 +2,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 9/15/2023 ms.custom: "nonautomated-date" --- @@ -449,14 +449,14 @@ fixed-parameter-list:
      parameter
      parameter_ `,` _fixed-parameter-list
parameter:
-      parameter-name parameter-typeopt
+      parameter-name primitive-parameter-typeopt
parameter-name:
      identifier
-parameter-type:
-      assertion
+primitive-parameter-type:
+      primitive-assertion
return-type:
-      assertion
-assertion:_
+      primitive-assertion
+primitive-assertion:_
      `as` _nullable-primitive-type
optional-parameter-list:
      optional-parameter
@@ -550,6 +550,10 @@ optional-parameter-specification:_
      `optional` _parameter-specification
parameter-specification:
      parameter-name parameter-type
+parameter-type:
+      assertion
+assertion:_
+      `as` _type
table-type:_
      `table` _row-type
row-type:_
From bf56b923739f72cd14a3d7bad99ab3076d2d56fc Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 15 Sep 2023 12:39:29 -0700 Subject: [PATCH 328/934] Fixed TOC, formatting issues --- query-languages/m/comparer-fromculture.md | 2 +- query-languages/m/table-join.md | 12 ++++++------ query-languages/m/toc.yml | 2 ++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index e1991a906..9a8ed1199 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -12,7 +12,7 @@ Comparer.FromCulture(culture as text, optional ignoreCase as nulla ## About -Returns a comparer function that uses the `culture`` and the case-sensitivity specified by `ignoreCase` to perform comparisons. +Returns a comparer function that uses the `culture` and the case-sensitivity specified by `ignoreCase` to perform comparisons. A comparer function accepts two arguments and returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second. diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index be13ed442..f4175d8cd 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -16,12 +16,12 @@ Joins the rows of `table1` with the rows of `table2` based on the equality of th By default, an inner join is performed, however an optional `joinKind` may be included to specify the type of join. Options include: -* `JoinKind.Inner` -* `JoinKind.LeftOuter` -* `JoinKind.RightOuter` -* `JoinKind.FullOuter` -* `JoinKind.LeftAnti` -* `JoinKind.RightAnti` +* [JoinKind.Inner](joinkind-type.md) +* [JoinKind.LeftOuter](joinkind-type.md) +* [JoinKind.RightOuter](joinkind-type.md) +* [JoinKind.FullOuter](joinkind-type.md) +* [JoinKind.LeftAnti](joinkind-type.md) +* [JoinKind.RightAnti](joinkind-type.md) An optional set of `keyEqualityComparers` may be included to specify how to compare the key columns. This parameter is currently intended for internal use only. diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 88f4ef75f..23dfcb22f 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -1098,6 +1098,8 @@ items: href: table-minn.md - name: Table.NestedJoin href: table-nestedjoin.md + - name: Table.OnError + href: table-onerror.md - name: Table.Partition href: table-partition.md - name: Table.PartitionValues From 252cabd8a0d2aa88621c5d3135b3662ef3ad88e0 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 18 Sep 2023 15:43:23 -0400 Subject: [PATCH 329/934] Update query-languages/m/m-spec-types.md Co-authored-by: Ehren --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index c60ed7d83..047be4a9b 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -252,7 +252,7 @@ A _table-type value_ is used to define the structure of a table value. _table-type:_
      `table` _row-type
row-type:_
-      `[` _field-specification-list_opt `]` +      `[` _field-specification-listopt_ `]` The result of evaluating a _table-type_ is a type value whose base type is `table`. From 2ff34a2eca4f7bb8ec98bc2fbc5b1c9ff7d14e2f Mon Sep 17 00:00:00 2001 From: Guilherme Burgueira Therezan Date: Tue, 19 Sep 2023 05:23:47 -0300 Subject: [PATCH 330/934] Update m-spec-sections.md Just fixing a "comment" typo. --- query-languages/m/m-spec-sections.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index 752cac618..ba9adef03 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -49,7 +49,7 @@ B = 1 + Section2!A; //3 section Section2; A = 2; //2 -B = Section1!A & " world!"; /"Hello, world" +B = Section1!A & " world!"; //"Hello, world" ``` Section members may optionally be declared as `shared`, which omits the requirement to use a _section-access-expression_ when referring to shared members outside of the containing section. Shared members in external sections may be referred to by their unqualified member name so long as no member of the same name is declared in the referring section and no other section has a like-named shared member. From d7f6f68df2975e750e1f89eeff6a21e0fca6118f Mon Sep 17 00:00:00 2001 From: JordanBoltonMN Date: Wed, 20 Sep 2023 12:29:30 -0500 Subject: [PATCH 331/934] initial commit --- query-languages/m/m-spec-consolidated-grammar.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 888f2db5f..5fda4c3b4 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -533,7 +533,7 @@ _list-type:_
_item-type:
      type
function-type:_
-      `function (` _parameter-specification-listopt_ `)` _return-type
+      `function (` _parameter-specification-listopt_ `)` _return-type
parameter-specification-list:
      required-parameter-specification-list
      required-parameter-specification-list_ `,` _optional-parameter-specification-list
@@ -579,7 +579,7 @@ _default-expression_:
_catch-clause:_
      `catch` _catch-function_
_catch-function:_
-      `(`_parameter-name_opt`)` `=>` _function-body_
+      `(`_parameter-nameopt_`)` `=>` _function-body_
### Literal Attributes From b11fb6ccc0e9d2cb277ac452006bdd5bfd440b0a Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 22 Sep 2023 08:52:32 -0400 Subject: [PATCH 332/934] Expounding on type's table keys --- query-languages/m/type-replacetablekeys.md | 64 +++++++++++++++++++++- query-languages/m/type-tablekeys.md | 29 ++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 21876f481..bdf916186 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -13,4 +13,66 @@ Type.ReplaceTableKeys(tableType as type, keys as list) as type ## About -Returns a new table type with all keys replaced by the specified list of keys. +Returns a new table type with all keys replaced by the specified list of keys. + +Each key is defined using a record in the following form: +```powerquery-m +[ + Columns = { text }, // list of column names defining the key + Primary = logical // indicates whether the key is the primary key +] +``` + +The specified list of keys is validated to ensure that no more than one primary key is defined and that all key column names exist on the table type. + +## Example 1 + +Replaces the key information on a table type. + +**Usage** + +```powerquery-m +let + BaseType = type table [ID = number, FirstName = text, LastName = text], + KeysAdded = Type.ReplaceTableKeys( + BaseType, + { + [Columns = {"ID"}, Primary = true], + [Columns = {"FirstName", "LastName"}, Primary = false] + } + ), + DetailsOfKeys = Type.TableKeys(KeysAdded) +in + DetailsOfKeys +``` + +**Output** + +```powerquery-m +{ + [Columns = {"ID"}, Primary = true], + [Columns = {"FirstName", "LastName"}, Primary = false] +} +``` + + +## Example 2 + +Clears the key information previously defined on a table type. + +**Usage** + +```powerquery-m +let + TypeWithKey = Type.AddTableKey(type table [ID = number, Name = text], {"ID"}, true), + KeyRemoved = Type.ReplaceTableKeys(TypeWithKey, {}), + DetailsOfKeys = Type.TableKeys(KeyRemoved) +in + DetailsOfKeys +``` + +**Output** + +```powerquery-m +{} +``` \ No newline at end of file diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index 559b4d51e..4cea56bca 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -14,3 +14,32 @@ Type.TableKeys(tableType as type) as list ## About Returns the possibly empty list of keys for the given table type. + +Each key is described using a record in the following form: +```powerquery-m +[ + Columns = { text }, // list of column names defining the key + Primary = logical // indicates whether the key is the primary key +] +``` + +## Example 1 + +Return the key information for a table type. + +**Usage** + +```powerquery-m +let + BaseType = type table [ID = number, Name = text], + AddKey = Type.AddTableKey(BaseType, {"ID"}, true), + DetailsOfKeys = Type.TableKeys(AddKey) +in + DetailsOfKeys +``` + +**Output** + +```powerquery-m +{[Columns = {"ID"}, Primary = true]} +``` \ No newline at end of file From 998b1df7d8cf4c1b8b26e15407087a806c921123 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 26 Sep 2023 09:56:20 -0700 Subject: [PATCH 333/934] Added custom connector link to Web.Contents article --- query-languages/m/web-contents.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/query-languages/m/web-contents.md b/query-languages/m/web-contents.md index 616b6b05e..0521ba86b 100644 --- a/query-languages/m/web-contents.md +++ b/query-languages/m/web-contents.md @@ -91,3 +91,7 @@ Web.Contents("https://contoso.com/api/customers/get", [ApiKeyName="api_key"]) **Output** `binary` + +## More information + +[Status code handling with Web.Contents in custom connectors](/power-query/handling-status-codes) From 112e46a347c61771ac358929cfdddf39d936b210 Mon Sep 17 00:00:00 2001 From: Francisco Geiman Thiesen Date: Wed, 27 Sep 2023 13:02:32 -0700 Subject: [PATCH 334/934] Update medianx-function-dax.md Typo in the medianx documentation page --- query-languages/dax/medianx-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/medianx-function-dax.md b/query-languages/dax/medianx-function-dax.md index c38768733..6410eb47f 100644 --- a/query-languages/dax/medianx-function-dax.md +++ b/query-languages/dax/medianx-function-dax.md @@ -11,7 +11,7 @@ ms.author: owend recommendations: false --- -# MEDIANX) +# MEDIANX Returns the median number of an expression evaluated for each row in a table. From f2f83f0e8a8cd28417a2433d3f02f0b5de80da2f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 2 Oct 2023 13:53:41 -0400 Subject: [PATCH 335/934] Update query-languages/m/type-replacetablekeys.md Co-authored-by: Ehren --- query-languages/m/type-replacetablekeys.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index bdf916186..3c16e4419 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -58,7 +58,7 @@ in ## Example 2 -Clears the key information previously defined on a table type. +Clear the key information previously defined on a table type. **Usage** From 4f8daaf3c8bf1a1e5e23e74655987f6a7167d0d9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 2 Oct 2023 13:53:51 -0400 Subject: [PATCH 336/934] Update query-languages/m/type-replacetablekeys.md Co-authored-by: Ehren --- query-languages/m/type-replacetablekeys.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 3c16e4419..7bd7edaa0 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -27,7 +27,7 @@ The specified list of keys is validated to ensure that no more than one primary ## Example 1 -Replaces the key information on a table type. +Replace the key information on a table type. **Usage** From ffd21a587120c50e56606d82260425c864948d45 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 2 Oct 2023 14:03:43 -0400 Subject: [PATCH 337/934] Example reformat --- query-languages/m/type-replacetablekeys.md | 8 ++------ query-languages/m/type-tablekeys.md | 10 +++------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 7bd7edaa0..874b32d72 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -16,12 +16,8 @@ Type.ReplaceTableKeys(tableType as type, keys as list) as type Returns a new table type with all keys replaced by the specified list of keys. Each key is defined using a record in the following form: -```powerquery-m -[ - Columns = { text }, // list of column names defining the key - Primary = logical // indicates whether the key is the primary key -] -``` +* `Columns`—a list of the column names that define the key +* `Primary`—`true` if the key is the table's primary key; otherwise, `false` The specified list of keys is validated to ensure that no more than one primary key is defined and that all key column names exist on the table type. diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index 4cea56bca..16abd3995 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -15,13 +15,9 @@ Type.TableKeys(tableType as type) as list Returns the possibly empty list of keys for the given table type. -Each key is described using a record in the following form: -```powerquery-m -[ - Columns = { text }, // list of column names defining the key - Primary = logical // indicates whether the key is the primary key -] -``` +Each key is described by a record in the following form: +* `Columns`—a list of the column names that define the key +* `Primary`—`true` if the key is the table's primary key; otherwise, `false` ## Example 1 From 778017959528c1701f934bbf17800fcf6448dd19 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 3 Oct 2023 10:13:54 -0400 Subject: [PATCH 338/934] Update query-languages/m/type-replacetablekeys.md Co-authored-by: Ehren --- query-languages/m/type-replacetablekeys.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 874b32d72..969f55be8 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -16,7 +16,7 @@ Type.ReplaceTableKeys(tableType as type, keys as list) as type Returns a new table type with all keys replaced by the specified list of keys. Each key is defined using a record in the following form: -* `Columns`—a list of the column names that define the key +* `Columns`: a list of the column names that define the key * `Primary`—`true` if the key is the table's primary key; otherwise, `false` The specified list of keys is validated to ensure that no more than one primary key is defined and that all key column names exist on the table type. From 28367338db365727486c8641c19063b4739b7d52 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 3 Oct 2023 10:14:36 -0400 Subject: [PATCH 339/934] Formatting tweak --- query-languages/m/type-replacetablekeys.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 969f55be8..bcec0c9a9 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -17,7 +17,7 @@ Returns a new table type with all keys replaced by the specified list of keys. Each key is defined using a record in the following form: * `Columns`: a list of the column names that define the key -* `Primary`—`true` if the key is the table's primary key; otherwise, `false` +* `Primary`: `true` if the key is the table's primary key; otherwise, `false` The specified list of keys is validated to ensure that no more than one primary key is defined and that all key column names exist on the table type. @@ -71,4 +71,4 @@ in ```powerquery-m {} -``` \ No newline at end of file +``` From 1ace64626a8073ebe61b3e95208ea04741b5455e Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 3 Oct 2023 10:15:07 -0400 Subject: [PATCH 340/934] Formatting tweaks --- query-languages/m/type-tablekeys.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index 16abd3995..64099dc71 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -16,8 +16,8 @@ Type.TableKeys(tableType as type) as list Returns the possibly empty list of keys for the given table type. Each key is described by a record in the following form: -* `Columns`—a list of the column names that define the key -* `Primary`—`true` if the key is the table's primary key; otherwise, `false` +* `Columns`: a list of the column names that define the key +* `Primary`: `true` if the key is the table's primary key; otherwise, `false` ## Example 1 @@ -38,4 +38,4 @@ in ```powerquery-m {[Columns = {"ID"}, Primary = true]} -``` \ No newline at end of file +``` From 2bf3b933cf1fdab99c8ab9fa8ad3fc9164d2db4f Mon Sep 17 00:00:00 2001 From: Alex Buck Date: Fri, 13 Oct 2023 17:17:28 -0400 Subject: [PATCH 341/934] [BULK] - DocuTune - Rebranding of Azure Active Dir --- query-languages/dax/userobjectid-function-dax.md | 4 ++-- query-languages/m/accessing-data-functions.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/userobjectid-function-dax.md b/query-languages/dax/userobjectid-function-dax.md index f04f613db..17e3acd0d 100644 --- a/query-languages/dax/userobjectid-function-dax.md +++ b/query-languages/dax/userobjectid-function-dax.md @@ -13,7 +13,7 @@ recommendations: false --- # USEROBJECTID -Returns the current user's Object ID from Azure AD or security identifier (SID). +Returns the current user's Object ID from Microsoft Entra ID or security identifier (SID). ## Syntax @@ -27,4 +27,4 @@ This expression has no parameters. ## Return value -The current user's Object ID from Azure AD for Power BI or Azure Analysis Services models or SID for SQL Server Analysis Services models. +The current user's Object ID from Microsoft Entra ID for Power BI or Azure Analysis Services models or SID for SQL Server Analysis Services models. diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index 2099e34ef..33ae4a2f0 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -11,7 +11,7 @@ These functions access data and return table values. Most of these functions ret |Name|Description| |------------|---------------| |[AccessControlEntry.ConditionToIdentities](accesscontrolentry-conditiontoidentities.md)|Returns a list of identities that the condition will accept.| -|[Access.Database](access-database.md)|Returns a structural representation of an Microsoft Access database. | +|[Access.Database](access-database.md)|Returns a structural representation of a Microsoft Access database. | |[ActiveDirectory.Domains](activedirectory-domains.md)|Returns a list of Active Directory domains in the same forest as the specified domain or of the current machine's domain if none is specified.| |[AdobeAnalytics.Cubes](adobeanalytics-cubes.md) | Returns the report suites in Adobe Analytics.| |[AdoDotNet.DataSource](adodotnet-datasource.md)|Returns the schema collection for an ADO.NET data source.| From f0a9ad5c159c21e9504273a936af373051bb205d Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Tue, 17 Oct 2023 13:42:08 -0700 Subject: [PATCH 342/934] Update toc.yml --- query-languages/dax/toc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index d36f319fb..3b7bbe9d4 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -9,7 +9,7 @@ - name: Videos href: dax-learn-videos.md - name: Use DAX in Power BI Desktop Learn path - href: http://aka.ms/learndax + href: https://aka.ms/learndax - name: "Sample model" href: dax-sample-model.md - name: Best practices From 3ff57e0398e55e58338701b4dfe0b498840e2e48 Mon Sep 17 00:00:00 2001 From: Brandon Pires Date: Wed, 18 Oct 2023 11:57:36 -0400 Subject: [PATCH 343/934] Update summarizecolumns-function-dax.md - updated names of columns in an example output to match the names defined in the corresponding example DAX code - changed a call of a DAX function in an example to upper case to match writing style used in that and other examples on this page --- query-languages/dax/summarizecolumns-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index fbcc742aa..2a658a2aa 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -102,14 +102,14 @@ All expression ignored, ```dax SUMMARIZECOLUMNS( Sales[CustomerId], "Blank", - IGNORE( Blank() ), "BlankIfTotalQtyIsNot5", + IGNORE( BLANK() ), "BlankIfTotalQtyIsNot5", IGNORE( IF( SUM( Sales[Qty] )=5, 5 ) ) ) ``` Even though both expressions return blank for some rows, they're included since there are no unignored expressions which return blank. -|CustomerId|TotalQty|BlankIfTotalQtyIsNot3| +|CustomerId|Blank|BlankIfTotalQtyIsNot5| |--------------|------------|-------------------------| |A||5| |B||| From e81c6b0232e7a3eea1b65128f7f4ade453a2fcf0 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Fri, 20 Oct 2023 14:41:51 -0700 Subject: [PATCH 344/934] Revising metadata and freshness review. --- query-languages/dax/abs-function-dax.md | 9 --------- query-languages/dax/accrint-function-dax.md | 8 -------- query-languages/dax/accrintm-function-dax.md | 8 -------- query-languages/dax/acos-function-dax.md | 9 --------- query-languages/dax/acosh-function-dax.md | 9 --------- query-languages/dax/acot-function-dax.md | 9 --------- query-languages/dax/acoth-function-dax.md | 9 --------- query-languages/dax/addcolumns-function-dax.md | 9 --------- query-languages/dax/addmissingitems-function-dax.md | 9 --------- query-languages/dax/aggregation-functions-dax.md | 8 -------- query-languages/dax/all-function-dax.md | 9 --------- .../dax/allcrossfiltered-function-dax.md | 9 --------- query-languages/dax/allexcept-function-dax.md | 9 --------- query-languages/dax/allnoblankrow-function-dax.md | 8 -------- query-languages/dax/allselected-function-dax.md | 9 --------- query-languages/dax/amordegrc-function-dax.md | 8 -------- query-languages/dax/amorlinc-function-dax.md | 8 -------- query-languages/dax/and-function-dax.md | 9 --------- .../dax/approximate-distinctcount-function-dax.md | 9 --------- query-languages/dax/asin-function-dax.md | 9 --------- query-languages/dax/asinh-function-dax.md | 9 --------- query-languages/dax/atan-function-dax.md | 9 --------- query-languages/dax/atanh-function-dax.md | 9 --------- query-languages/dax/average-function-dax.md | 9 --------- query-languages/dax/averagea-function-dax.md | 9 --------- query-languages/dax/averagex-function-dax.md | 9 --------- .../dax-avoid-avoid-filter-as-filter-argument.md | 6 +----- .../best-practices/dax-avoid-converting-blank.md | 6 +----- .../best-practices/dax-column-measure-references.md | 5 ----- query-languages/dax/best-practices/dax-countrows.md | 5 ----- .../best-practices/dax-divide-function-operator.md | 5 ----- .../dax/best-practices/dax-error-functions.md | 5 ----- .../dax/best-practices/dax-selectedvalue.md | 5 ----- .../dax/best-practices/dax-understand-orderby.md | 5 ----- query-languages/dax/best-practices/dax-variables.md | 5 ----- query-languages/dax/beta-dist-function-dax.md | 9 --------- query-languages/dax/beta-inv-function-dax.md | 9 --------- query-languages/dax/bitand-function-dax.md | 9 --------- query-languages/dax/bitlshift-function-dax.md | 9 --------- query-languages/dax/bitor-function-dax.md | 9 --------- query-languages/dax/bitrshift-function-dax.md | 9 --------- query-languages/dax/bitxor-function-dax.md | 9 --------- query-languages/dax/blank-function-dax.md | 9 --------- query-languages/dax/calculate-function-dax.md | 9 --------- query-languages/dax/calculatetable-function-dax.md | 9 --------- query-languages/dax/calendar-function-dax.md | 9 --------- query-languages/dax/calendarauto-function-dax.md | 9 --------- query-languages/dax/ceiling-function-dax.md | 9 --------- query-languages/dax/chisq-dist-function-dax.md | 9 --------- query-languages/dax/chisq-dist-rt-function-dax.md | 8 -------- query-languages/dax/chisq-inv-function-dax.md | 9 --------- query-languages/dax/chisq-inv-rt-function-dax.md | 9 --------- .../dax/closingbalancemonth-function-dax.md | 9 --------- .../dax/closingbalancequarter-function-dax.md | 9 --------- .../dax/closingbalanceyear-function-dax.md | 9 --------- query-languages/dax/coalesce-function-dax.md | 9 --------- .../dax/columnstatistics-function-dax.md | 9 --------- query-languages/dax/combin-function-dax.md | 9 --------- query-languages/dax/combina-function-dax.md | 9 --------- query-languages/dax/combinevalues-function-dax.md | 8 -------- query-languages/dax/concatenate-function-dax.md | 9 --------- query-languages/dax/concatenatex-function-dax.md | 9 --------- query-languages/dax/confidence-norm-function-dax.md | 9 --------- query-languages/dax/confidence-t-function-dax.md | 9 --------- query-languages/dax/contains-function-dax.md | 9 --------- query-languages/dax/containsrow-function-dax.md | 9 --------- query-languages/dax/containsstring-function-dax.md | 9 --------- .../dax/containsstringexact-function-dax.md | 9 --------- query-languages/dax/convert-function-dax.md | 9 --------- query-languages/dax/cos-function-dax.md | 9 --------- query-languages/dax/cosh-function-dax.md | 9 --------- query-languages/dax/cot-function-dax.md | 9 --------- query-languages/dax/coth-function-dax.md | 9 --------- query-languages/dax/count-function-dax.md | 9 --------- query-languages/dax/counta-function-dax.md | 9 --------- query-languages/dax/countax-function-dax.md | 9 --------- query-languages/dax/countblank-function-dax.md | 9 --------- query-languages/dax/countrows-function-dax.md | 9 --------- query-languages/dax/countx-function-dax.md | 9 --------- query-languages/dax/coupdaybs-function-dax.md | 9 --------- query-languages/dax/coupdays-function-dax.md | 9 --------- query-languages/dax/coupdaysnc-function-dax.md | 9 --------- query-languages/dax/coupncd-function-dax.md | 9 --------- query-languages/dax/coupnum-function-dax.md | 9 --------- query-languages/dax/couppcd-function-dax.md | 9 --------- query-languages/dax/crossfilter-function.md | 9 --------- query-languages/dax/crossjoin-function-dax.md | 9 --------- query-languages/dax/cumipmt-function-dax.md | 8 -------- query-languages/dax/cumprinc-function-dax.md | 8 -------- query-languages/dax/currency-function-dax.md | 9 --------- query-languages/dax/currentgroup-function-dax.md | 9 --------- query-languages/dax/customdata-function-dax.md | 9 --------- query-languages/dax/datatable-function.md | 9 --------- query-languages/dax/date-and-time-functions-dax.md | 8 -------- query-languages/dax/date-function-dax.md | 9 --------- query-languages/dax/dateadd-function-dax.md | 9 --------- query-languages/dax/datediff-function-dax.md | 9 --------- query-languages/dax/datesbetween-function-dax.md | 9 --------- query-languages/dax/datesinperiod-function-dax.md | 9 --------- query-languages/dax/datesmtd-function-dax.md | 9 --------- query-languages/dax/datesqtd-function-dax.md | 9 --------- query-languages/dax/datesytd-function-dax.md | 9 --------- query-languages/dax/datevalue-function-dax.md | 9 --------- query-languages/dax/dax-function-reference.md | 9 --------- query-languages/dax/dax-glossary.md | 9 +-------- query-languages/dax/dax-learn-videos.md | 9 +-------- query-languages/dax/dax-operator-reference.md | 10 +--------- query-languages/dax/dax-overview.md | 9 +-------- .../dax/dax-parameter-naming-conventions.md | 9 +-------- query-languages/dax/dax-queries.md | 9 +-------- query-languages/dax/dax-sample-model.md | 6 ------ query-languages/dax/dax-syntax-reference.md | 9 +-------- query-languages/dax/day-function-dax.md | 9 --------- query-languages/dax/db-function-dax.md | 8 -------- query-languages/dax/ddb-function-dax.md | 8 -------- query-languages/dax/define-statement-dax.md | 9 --------- query-languages/dax/degrees-function-dax.md | 9 --------- query-languages/dax/detailrows-function-dax.md | 9 --------- query-languages/dax/disc-function-dax.md | 8 -------- query-languages/dax/distinct-function-dax.md | 9 --------- query-languages/dax/distinct-table-function-dax.md | 9 --------- query-languages/dax/distinctcount-function-dax.md | 9 --------- .../dax/distinctcountnoblank-function-dax.md | 9 --------- query-languages/dax/divide-function-dax.md | 9 --------- query-languages/dax/docfx.json | 13 +++++++++---- query-languages/dax/dollarde-function-dax.md | 8 -------- query-languages/dax/dollarfr-function-dax.md | 8 -------- query-languages/dax/duration-function-dax.md | 8 -------- query-languages/dax/earlier-function-dax.md | 9 --------- query-languages/dax/earliest-function-dax.md | 9 --------- query-languages/dax/edate-function-dax.md | 9 --------- query-languages/dax/effect-function-dax.md | 8 -------- query-languages/dax/endofmonth-function-dax.md | 9 --------- query-languages/dax/endofquarter-function-dax.md | 9 --------- query-languages/dax/endofyear-function-dax.md | 9 --------- query-languages/dax/eomonth-function-dax.md | 9 --------- query-languages/dax/error-function.md | 9 --------- query-languages/dax/evaluate-statement-dax.md | 9 --------- query-languages/dax/evaluateandlog-function-dax.md | 9 --------- query-languages/dax/even-function-dax.md | 9 --------- query-languages/dax/exact-function-dax.md | 9 --------- query-languages/dax/except-function-dax.md | 9 --------- query-languages/dax/exp-function-dax.md | 9 --------- query-languages/dax/expon-dist-function-dax.md | 9 --------- query-languages/dax/fact-function-dax.md | 9 --------- query-languages/dax/false-function-dax.md | 9 --------- query-languages/dax/filter-function-dax.md | 9 --------- query-languages/dax/filter-functions-dax.md | 8 -------- query-languages/dax/filters-function-dax.md | 9 --------- query-languages/dax/financial-functions-dax.md | 8 -------- query-languages/dax/find-function-dax.md | 9 --------- query-languages/dax/firstdate-function-dax.md | 9 --------- query-languages/dax/firstnonblank-function-dax.md | 9 --------- .../dax/firstnonblankvalue-function-dax.md | 8 -------- query-languages/dax/fixed-function-dax.md | 9 --------- query-languages/dax/floor-function-dax.md | 9 --------- query-languages/dax/format-function-dax.md | 9 --------- query-languages/dax/fv-function-dax.md | 8 -------- query-languages/dax/gcd-function-dax.md | 9 --------- query-languages/dax/generate-function-dax.md | 9 --------- query-languages/dax/generateall-function-dax.md | 9 --------- query-languages/dax/generateseries-function.md | 9 --------- query-languages/dax/geomean-function-dax.md | 9 --------- query-languages/dax/geomeanx-function-dax.md | 9 --------- query-languages/dax/groupby-function-dax.md | 9 --------- query-languages/dax/hasonefilter-function-dax.md | 9 --------- query-languages/dax/hasonevalue-function-dax.md | 9 --------- query-languages/dax/hour-function-dax.md | 9 --------- query-languages/dax/if-eager-function-dax.md | 9 --------- query-languages/dax/if-function-dax.md | 9 --------- query-languages/dax/iferror-function-dax.md | 9 --------- query-languages/dax/ignore-function-dax.md | 9 --------- query-languages/dax/index-function-dax.md | 9 --------- query-languages/dax/information-functions-dax.md | 8 -------- query-languages/dax/int-function-dax.md | 9 --------- query-languages/dax/intersect-function-dax.md | 9 --------- query-languages/dax/intrate-function-dax.md | 9 --------- query-languages/dax/ipmt-function-dax.md | 9 --------- query-languages/dax/isafter-function-dax.md | 9 --------- query-languages/dax/isblank-function-dax.md | 9 --------- query-languages/dax/iscrossfiltered-function-dax.md | 9 --------- query-languages/dax/isempty-function-dax.md | 9 --------- query-languages/dax/iserror-function-dax.md | 9 --------- query-languages/dax/iseven-function-dax.md | 9 --------- query-languages/dax/isfiltered-function-dax.md | 9 --------- query-languages/dax/isinscope-function-dax.md | 9 --------- query-languages/dax/islogical-function-dax.md | 9 --------- query-languages/dax/isnontext-function-dax.md | 9 --------- query-languages/dax/isnumber-function-dax.md | 9 --------- query-languages/dax/iso-ceiling-function-dax.md | 9 --------- query-languages/dax/isodd-function-dax.md | 9 --------- query-languages/dax/isonorafter-function-dax.md | 9 --------- query-languages/dax/ispmt-function-dax.md | 8 -------- .../dax/isselectedmeasure-function-dax.md | 9 --------- query-languages/dax/issubtotal-function-dax.md | 9 --------- query-languages/dax/istext-function-dax.md | 9 --------- query-languages/dax/keepfilters-function-dax.md | 9 --------- query-languages/dax/lastdate-function-dax.md | 9 --------- query-languages/dax/lastnonblank-function-dax.md | 9 --------- .../dax/lastnonblankvalue-function-dax.md | 8 -------- query-languages/dax/lcm-function-dax.md | 9 --------- query-languages/dax/left-function-dax.md | 9 --------- query-languages/dax/len-function-dax.md | 9 --------- query-languages/dax/linest-function-dax.md | 6 ------ query-languages/dax/linestx-function-dax.md | 6 ------ query-languages/dax/ln-function-dax.md | 9 --------- query-languages/dax/log-function-dax.md | 9 --------- query-languages/dax/log10-function-dax.md | 9 --------- query-languages/dax/logical-functions-dax.md | 8 -------- query-languages/dax/lookupvalue-function-dax.md | 9 --------- query-languages/dax/lower-function-dax.md | 9 --------- query-languages/dax/matchby-function-dax.md | 7 ------- query-languages/dax/math-and-trig-functions-dax.md | 8 -------- query-languages/dax/max-function-dax.md | 9 --------- query-languages/dax/maxa-function-dax.md | 9 --------- query-languages/dax/maxx-function-dax.md | 9 --------- query-languages/dax/mduration-function-dax.md | 8 -------- query-languages/dax/measure-statement-dax.md | 9 --------- query-languages/dax/median-function-dax.md | 8 -------- query-languages/dax/medianx-function-dax.md | 9 --------- query-languages/dax/mid-function-dax.md | 9 --------- query-languages/dax/min-function-dax.md | 9 --------- query-languages/dax/mina-function-dax.md | 9 --------- query-languages/dax/minute-function-dax.md | 9 --------- query-languages/dax/minx-function-dax.md | 9 --------- query-languages/dax/mod-function-dax.md | 9 --------- query-languages/dax/month-function-dax.md | 9 --------- query-languages/dax/mround-function-dax.md | 9 --------- .../dax/naturalinnerjoin-function-dax.md | 9 --------- .../dax/naturalleftouterjoin-function-dax.md | 9 --------- query-languages/dax/networkdays-dax.md | 8 -------- query-languages/dax/new-dax-functions.md | 8 -------- query-languages/dax/nextday-function-dax.md | 9 --------- query-languages/dax/nextmonth-function-dax.md | 9 --------- query-languages/dax/nextquarter-function-dax.md | 9 --------- query-languages/dax/nextyear-function-dax.md | 9 --------- query-languages/dax/nominal-function-dax.md | 8 -------- query-languages/dax/nonvisual-function-dax.md | 9 --------- query-languages/dax/norm-dist-dax.md | 9 --------- query-languages/dax/norm-inv-dax.md | 9 --------- query-languages/dax/norm-s-dist-dax.md | 9 --------- query-languages/dax/norm-s-inv-dax.md | 9 --------- query-languages/dax/not-function-dax.md | 9 --------- query-languages/dax/now-function-dax.md | 9 --------- query-languages/dax/nper-function-dax.md | 8 -------- query-languages/dax/odd-function-dax.md | 9 --------- query-languages/dax/oddfprice-function-dax.md | 8 -------- query-languages/dax/oddfyield-function-dax.md | 8 -------- query-languages/dax/oddlprice-function-dax.md | 8 -------- query-languages/dax/oddlyield-function-dax.md | 8 -------- query-languages/dax/offset-function-dax.md | 9 --------- .../dax/openingbalancemonth-function-dax.md | 9 --------- .../dax/openingbalancequarter-function-dax.md | 9 --------- .../dax/openingbalanceyear-function-dax.md | 9 --------- query-languages/dax/or-function-dax.md | 9 --------- query-languages/dax/orderby-function-dax.md | 9 --------- query-languages/dax/orderby-statement-dax.md | 9 --------- query-languages/dax/other-functions-dax.md | 8 -------- query-languages/dax/parallelperiod-function-dax.md | 9 --------- .../dax/parent-and-child-functions-dax.md | 8 -------- query-languages/dax/partitionby-function-dax.md | 9 --------- query-languages/dax/path-function-dax.md | 9 --------- query-languages/dax/pathcontains-function-dax.md | 9 --------- query-languages/dax/pathitem-function-dax.md | 9 --------- query-languages/dax/pathitemreverse-function-dax.md | 9 --------- query-languages/dax/pathlength-function-dax.md | 9 --------- query-languages/dax/pduration-function-dax.md | 8 -------- query-languages/dax/percentile-exc-function-dax.md | 9 --------- query-languages/dax/percentile-inc-function-dax.md | 9 --------- query-languages/dax/percentilex-exc-function-dax.md | 9 --------- query-languages/dax/percentilex-inc-function-dax.md | 9 --------- query-languages/dax/permut-function-dax.md | 9 --------- query-languages/dax/pi-function-dax.md | 9 --------- query-languages/dax/pmt-function-dax.md | 8 -------- query-languages/dax/poisson-dist-function-dax.md | 9 --------- query-languages/dax/power-function-dax.md | 9 --------- query-languages/dax/ppmt-function-dax.md | 8 -------- query-languages/dax/previousday-function-dax.md | 10 +--------- query-languages/dax/previousmonth-function-dax.md | 9 --------- query-languages/dax/previousquarter-function-dax.md | 9 --------- query-languages/dax/previousyear-function-dax.md | 9 --------- query-languages/dax/price-function-dax.md | 8 -------- query-languages/dax/pricedisc-function-dax.md | 8 -------- query-languages/dax/pricemat-function-dax.md | 8 -------- query-languages/dax/product-function-dax.md | 9 --------- query-languages/dax/productx-function-dax.md | 9 --------- query-languages/dax/pv-function-dax.md | 8 -------- query-languages/dax/quarter-function-dax.md | 9 --------- query-languages/dax/quotient-function-dax.md | 9 --------- query-languages/dax/radians-function-dax.md | 9 --------- query-languages/dax/rand-function-dax.md | 9 --------- query-languages/dax/randbetween-function-dax.md | 9 --------- query-languages/dax/rank-eq-function-dax.md | 9 --------- query-languages/dax/rank-function-dax.md | 7 ------- query-languages/dax/rankx-function-dax.md | 9 --------- query-languages/dax/rate-function-dax.md | 8 -------- query-languages/dax/received-function-dax.md | 8 -------- query-languages/dax/related-function-dax.md | 9 --------- query-languages/dax/relatedtable-function-dax.md | 9 --------- query-languages/dax/relationship-functions-dax.md | 8 -------- query-languages/dax/removefilters-function-dax.md | 9 --------- query-languages/dax/replace-function-dax.md | 9 --------- query-languages/dax/rept-function-dax.md | 9 --------- query-languages/dax/right-function-dax.md | 9 --------- query-languages/dax/rollup-function-dax.md | 9 --------- .../dax/rollupaddissubtotal-function-dax.md | 9 --------- query-languages/dax/rollupgroup-function-dax.md | 9 --------- .../dax/rollupissubtotal-function-dax.md | 9 --------- query-languages/dax/round-function-dax.md | 9 --------- query-languages/dax/rounddown-function-dax.md | 9 --------- query-languages/dax/roundup-function-dax.md | 9 --------- query-languages/dax/row-function-dax.md | 9 --------- query-languages/dax/rownumber-function-dax.md | 7 ------- query-languages/dax/rri-function-dax.md | 8 -------- .../dax/sameperiodlastyear-function-dax.md | 9 --------- query-languages/dax/sample-function-dax.md | 9 --------- query-languages/dax/search-function-dax.md | 9 --------- query-languages/dax/second-function-dax.md | 9 --------- query-languages/dax/selectcolumns-function-dax.md | 9 --------- query-languages/dax/selectedmeasure-function-dax.md | 9 --------- .../dax/selectedmeasureformatstring-function-dax.md | 9 --------- .../dax/selectedmeasurename-function-dax.md | 9 --------- query-languages/dax/selectedvalue-function.md | 9 --------- query-languages/dax/sign-function-dax.md | 9 --------- query-languages/dax/sin-function-dax.md | 9 --------- query-languages/dax/sinh-function-dax.md | 9 --------- query-languages/dax/sln-function-dax.md | 8 -------- query-languages/dax/sqrt-function-dax.md | 9 --------- query-languages/dax/sqrtpi-function-dax.md | 9 --------- query-languages/dax/startat-statement-dax.md | 9 --------- query-languages/dax/startofmonth-function-dax.md | 9 --------- query-languages/dax/startofquarter-function-dax.md | 9 --------- query-languages/dax/startofyear-function-dax.md | 9 --------- query-languages/dax/statements-dax.md | 8 -------- query-languages/dax/statistical-functions-dax.md | 8 -------- query-languages/dax/stdev-p-function-dax.md | 9 --------- query-languages/dax/stdev-s-function-dax.md | 9 --------- query-languages/dax/stdevx-p-function-dax.md | 9 --------- query-languages/dax/stdevx-s-function-dax.md | 9 --------- query-languages/dax/substitute-function-dax.md | 9 --------- .../dax/substitutewithindex-function-dax.md | 9 --------- query-languages/dax/sum-function-dax.md | 9 --------- query-languages/dax/summarize-function-dax.md | 9 --------- .../dax/summarizecolumns-function-dax.md | 9 --------- query-languages/dax/sumx-function-dax.md | 9 --------- query-languages/dax/switch-function-dax.md | 9 --------- query-languages/dax/syd-function-dax.md | 8 -------- query-languages/dax/t-dist-2t-dax.md | 9 --------- query-languages/dax/t-dist-dax.md | 9 --------- query-languages/dax/t-dist-rt-dax.md | 9 --------- query-languages/dax/t-inv-2t-dax.md | 9 --------- query-languages/dax/t-inv-dax.md | 9 --------- query-languages/dax/table-constructor.md | 9 --------- .../dax/table-manipulation-functions-dax.md | 8 -------- query-languages/dax/tan-function-dax.md | 9 --------- query-languages/dax/tanh-function-dax.md | 9 --------- query-languages/dax/tbilleq-function-dax.md | 8 -------- query-languages/dax/tbillprice-function-dax.md | 8 -------- query-languages/dax/tbillyield-function-dax.md | 8 -------- query-languages/dax/text-functions-dax.md | 8 -------- query-languages/dax/time-function-dax.md | 9 --------- .../dax/time-intelligence-functions-dax.md | 8 -------- query-languages/dax/timevalue-function-dax.md | 9 --------- query-languages/dax/tocsv-function-dax.md | 9 --------- query-languages/dax/today-function-dax.md | 9 --------- query-languages/dax/tojson-function-dax.md | 9 --------- query-languages/dax/topn-function-dax.md | 9 --------- query-languages/dax/totalmtd-function-dax.md | 9 --------- query-languages/dax/totalqtd-function-dax.md | 9 --------- query-languages/dax/totalytd-function-dax.md | 9 --------- query-languages/dax/treatas-function.md | 9 --------- query-languages/dax/trim-function-dax.md | 9 --------- query-languages/dax/true-function-dax.md | 9 --------- query-languages/dax/trunc-function-dax.md | 9 --------- ...functions-for-parent-child-hierarchies-in-dax.md | 9 --------- query-languages/dax/unichar-function-dax.md | 9 --------- query-languages/dax/unicode-function-dax.md | 9 --------- query-languages/dax/union-function-dax.md | 9 --------- query-languages/dax/upper-function-dax.md | 9 --------- query-languages/dax/userculture-function-dax.md | 9 --------- query-languages/dax/userelationship-function-dax.md | 9 --------- query-languages/dax/username-function-dax.md | 9 --------- query-languages/dax/userobjectid-function-dax.md | 9 --------- .../dax/userprincipalname-function-dax.md | 9 --------- query-languages/dax/utcnow-function-dax.md | 9 --------- query-languages/dax/utctoday-function-dax.md | 9 --------- query-languages/dax/value-function-dax.md | 9 --------- query-languages/dax/values-function-dax.md | 8 -------- query-languages/dax/var-dax.md | 9 --------- query-languages/dax/var-p-function-dax.md | 9 --------- query-languages/dax/var-s-function-dax.md | 9 --------- query-languages/dax/varx-p-function-dax.md | 9 --------- query-languages/dax/varx-s-function-dax.md | 9 --------- query-languages/dax/vdb-function-dax.md | 8 -------- query-languages/dax/weekday-function-dax.md | 9 --------- query-languages/dax/weeknum-function-dax.md | 9 --------- query-languages/dax/window-function-dax.md | 9 --------- query-languages/dax/xirr-function-dax.md | 9 --------- query-languages/dax/xnpv-function-dax.md | 9 --------- query-languages/dax/year-function-dax.md | 9 --------- query-languages/dax/yearfrac-function-dax.md | 9 --------- query-languages/dax/yield-function-dax.md | 8 -------- query-languages/dax/yielddisc-function-dax.md | 8 -------- query-languages/dax/yieldmat-function-dax.md | 8 -------- 404 files changed, 19 insertions(+), 3509 deletions(-) diff --git a/query-languages/dax/abs-function-dax.md b/query-languages/dax/abs-function-dax.md index 919b34f6f..fa3e83e14 100644 --- a/query-languages/dax/abs-function-dax.md +++ b/query-languages/dax/abs-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ABS" title: "ABS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/21/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ABS diff --git a/query-languages/dax/accrint-function-dax.md b/query-languages/dax/accrint-function-dax.md index cbc2e6d91..efc800575 100644 --- a/query-languages/dax/accrint-function-dax.md +++ b/query-languages/dax/accrint-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: ACCRINT" title: "ACCRINT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # ACCRINT diff --git a/query-languages/dax/accrintm-function-dax.md b/query-languages/dax/accrintm-function-dax.md index 579bbf6ce..9b1bb2b41 100644 --- a/query-languages/dax/accrintm-function-dax.md +++ b/query-languages/dax/accrintm-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: ACCRINTM" title: "ACCRINTM function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # ACCRINTM diff --git a/query-languages/dax/acos-function-dax.md b/query-languages/dax/acos-function-dax.md index 89ea06947..8b1d008d6 100644 --- a/query-languages/dax/acos-function-dax.md +++ b/query-languages/dax/acos-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ACOS" title: "ACOS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ACOS diff --git a/query-languages/dax/acosh-function-dax.md b/query-languages/dax/acosh-function-dax.md index bc187f1c3..efb43d46d 100644 --- a/query-languages/dax/acosh-function-dax.md +++ b/query-languages/dax/acosh-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ACOSH" title: "ACOSH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ACOSH diff --git a/query-languages/dax/acot-function-dax.md b/query-languages/dax/acot-function-dax.md index c98574d21..4510a711a 100644 --- a/query-languages/dax/acot-function-dax.md +++ b/query-languages/dax/acot-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ACOT" title: "ACOT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ACOT diff --git a/query-languages/dax/acoth-function-dax.md b/query-languages/dax/acoth-function-dax.md index ee586448c..90de2e2bf 100644 --- a/query-languages/dax/acoth-function-dax.md +++ b/query-languages/dax/acoth-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ACOTH" title: "ACOTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/05/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ACOTH diff --git a/query-languages/dax/addcolumns-function-dax.md b/query-languages/dax/addcolumns-function-dax.md index f0f7d64a5..e0d62b6a3 100644 --- a/query-languages/dax/addcolumns-function-dax.md +++ b/query-languages/dax/addcolumns-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ADDCOLUMNS" title: "ADDCOLUMNS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ADDCOLUMNS diff --git a/query-languages/dax/addmissingitems-function-dax.md b/query-languages/dax/addmissingitems-function-dax.md index 4330d6e87..ab1fa4d49 100644 --- a/query-languages/dax/addmissingitems-function-dax.md +++ b/query-languages/dax/addmissingitems-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ADDMISSINGITEMS" title: "ADDMISSINGITEMS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 02/28/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ADDMISSINGITEMS diff --git a/query-languages/dax/aggregation-functions-dax.md b/query-languages/dax/aggregation-functions-dax.md index 80a80e3d2..4bf7de9d2 100644 --- a/query-languages/dax/aggregation-functions-dax.md +++ b/query-languages/dax/aggregation-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Aggregation functions" title: "Aggregation functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 02/27/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Aggregation functions diff --git a/query-languages/dax/all-function-dax.md b/query-languages/dax/all-function-dax.md index 9b31023e6..c313cbd7c 100644 --- a/query-languages/dax/all-function-dax.md +++ b/query-languages/dax/all-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ALL" title: "ALL function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/05/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ALL diff --git a/query-languages/dax/allcrossfiltered-function-dax.md b/query-languages/dax/allcrossfiltered-function-dax.md index 78470bef8..6dfc6aaf2 100644 --- a/query-languages/dax/allcrossfiltered-function-dax.md +++ b/query-languages/dax/allcrossfiltered-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ALLCROSSFILTERED" title: "ALLCROSSFILTERED function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ALLCROSSFILTERED diff --git a/query-languages/dax/allexcept-function-dax.md b/query-languages/dax/allexcept-function-dax.md index aaffb3298..b6eeb5b8b 100644 --- a/query-languages/dax/allexcept-function-dax.md +++ b/query-languages/dax/allexcept-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ALLEXCEPT" title: "ALLEXCEPT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/30/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ALLEXCEPT diff --git a/query-languages/dax/allnoblankrow-function-dax.md b/query-languages/dax/allnoblankrow-function-dax.md index 74b45c707..35823d3fc 100644 --- a/query-languages/dax/allnoblankrow-function-dax.md +++ b/query-languages/dax/allnoblankrow-function-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: ALLNOBLANKROW" title: "ALLNOBLANKROW function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: "owend" - --- # ALLNOBLANKROW diff --git a/query-languages/dax/allselected-function-dax.md b/query-languages/dax/allselected-function-dax.md index 8a66e3f42..d82ce1106 100644 --- a/query-languages/dax/allselected-function-dax.md +++ b/query-languages/dax/allselected-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ALLSELECTED" title: "ALLSELECTED function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ALLSELECTED diff --git a/query-languages/dax/amordegrc-function-dax.md b/query-languages/dax/amordegrc-function-dax.md index 51ec66a86..084766709 100644 --- a/query-languages/dax/amordegrc-function-dax.md +++ b/query-languages/dax/amordegrc-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: AMORDEGRC" title: "AMORDEGRC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # AMORDEGRC diff --git a/query-languages/dax/amorlinc-function-dax.md b/query-languages/dax/amorlinc-function-dax.md index 200fe849a..51a81b87c 100644 --- a/query-languages/dax/amorlinc-function-dax.md +++ b/query-languages/dax/amorlinc-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: AMORLINC" title: "AMORLINC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # AMORLINC diff --git a/query-languages/dax/and-function-dax.md b/query-languages/dax/and-function-dax.md index ad798273f..b0180a359 100644 --- a/query-languages/dax/and-function-dax.md +++ b/query-languages/dax/and-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: AND" title: "AND function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # AND diff --git a/query-languages/dax/approximate-distinctcount-function-dax.md b/query-languages/dax/approximate-distinctcount-function-dax.md index 3933a5fb8..c543b843b 100644 --- a/query-languages/dax/approximate-distinctcount-function-dax.md +++ b/query-languages/dax/approximate-distinctcount-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: APPROXIMATEDISTINCTCOUNT" title: "APPROXIMATEDISTINCTCOUNT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 02/27/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # APPROXIMATEDISTINCTCOUNT diff --git a/query-languages/dax/asin-function-dax.md b/query-languages/dax/asin-function-dax.md index 6e074d00d..104599225 100644 --- a/query-languages/dax/asin-function-dax.md +++ b/query-languages/dax/asin-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ASIN" title: "ASIN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ASIN diff --git a/query-languages/dax/asinh-function-dax.md b/query-languages/dax/asinh-function-dax.md index 514b4d4bb..3544cb99a 100644 --- a/query-languages/dax/asinh-function-dax.md +++ b/query-languages/dax/asinh-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ASINH" title: "ASINH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ASINH diff --git a/query-languages/dax/atan-function-dax.md b/query-languages/dax/atan-function-dax.md index 09c9a1368..3b25a36e6 100644 --- a/query-languages/dax/atan-function-dax.md +++ b/query-languages/dax/atan-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ATAN" title: "ATAN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ATAN diff --git a/query-languages/dax/atanh-function-dax.md b/query-languages/dax/atanh-function-dax.md index 2e44dc233..de8b98fbf 100644 --- a/query-languages/dax/atanh-function-dax.md +++ b/query-languages/dax/atanh-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ATANH" title: "ATANH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ATANH diff --git a/query-languages/dax/average-function-dax.md b/query-languages/dax/average-function-dax.md index ca4d05c83..51825422c 100644 --- a/query-languages/dax/average-function-dax.md +++ b/query-languages/dax/average-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: AVERAGE" title: "AVERAGE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # AVERAGE diff --git a/query-languages/dax/averagea-function-dax.md b/query-languages/dax/averagea-function-dax.md index 434f2555e..7138f0953 100644 --- a/query-languages/dax/averagea-function-dax.md +++ b/query-languages/dax/averagea-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: AVERAGEA" title: "AVERAGEA function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # AVERAGEA diff --git a/query-languages/dax/averagex-function-dax.md b/query-languages/dax/averagex-function-dax.md index 0d1fc420a..f0b767860 100644 --- a/query-languages/dax/averagex-function-dax.md +++ b/query-languages/dax/averagex-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: AVERAGEX" title: "AVERAGEX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # AVERAGEX diff --git a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md index 67d81012b..406c9520a 100644 --- a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md +++ b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md @@ -2,13 +2,9 @@ title: "Avoid using FILTER as a filter argument in DAX" description: Best practices for using the FILTER function as a filter argument. author: peter-myers -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual ms.date: 08/25/2021 -recommendations: false + --- # Avoid using FILTER as a filter argument diff --git a/query-languages/dax/best-practices/dax-avoid-converting-blank.md b/query-languages/dax/best-practices/dax-avoid-converting-blank.md index 183a0bd66..7791e8266 100644 --- a/query-languages/dax/best-practices/dax-avoid-converting-blank.md +++ b/query-languages/dax/best-practices/dax-avoid-converting-blank.md @@ -2,13 +2,9 @@ title: "Avoid converting BLANKs to values in DAX" description: Best practices for converting BLANKs to values. author: peter-myers -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual ms.date: 08/25/2021 -recommendations: false + --- # Avoid converting BLANKs to values diff --git a/query-languages/dax/best-practices/dax-column-measure-references.md b/query-languages/dax/best-practices/dax-column-measure-references.md index b76c52b23..302625797 100644 --- a/query-languages/dax/best-practices/dax-column-measure-references.md +++ b/query-languages/dax/best-practices/dax-column-measure-references.md @@ -2,13 +2,8 @@ title: "Column and measure references in DAX" description: Best practices when referring to columns in measures in your DAX expressions. author: peter-myers -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual ms.date: 08/25/2021 -recommendations: false --- # Column and measure references diff --git a/query-languages/dax/best-practices/dax-countrows.md b/query-languages/dax/best-practices/dax-countrows.md index 54ce99d32..342ee0c0d 100644 --- a/query-languages/dax/best-practices/dax-countrows.md +++ b/query-languages/dax/best-practices/dax-countrows.md @@ -2,13 +2,8 @@ title: "Use COUNTROWS instead of COUNT in DAX" description: Best practices for using the COUNTROWS functions. author: peter-myers -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual ms.date: 08/25/2021 -recommendations: false --- # Use COUNTROWS instead of COUNT diff --git a/query-languages/dax/best-practices/dax-divide-function-operator.md b/query-languages/dax/best-practices/dax-divide-function-operator.md index 0c95a36dc..f22baa174 100644 --- a/query-languages/dax/best-practices/dax-divide-function-operator.md +++ b/query-languages/dax/best-practices/dax-divide-function-operator.md @@ -2,13 +2,8 @@ title: "DIVIDE function vs divide operator (/) in DAX" description: Best practices for using the DAX DIVIDE function. author: peter-myers -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual ms.date: 08/25/2021 -recommendations: false --- # DIVIDE function vs. divide operator (/) diff --git a/query-languages/dax/best-practices/dax-error-functions.md b/query-languages/dax/best-practices/dax-error-functions.md index edd98b8a6..ee5e60ec7 100644 --- a/query-languages/dax/best-practices/dax-error-functions.md +++ b/query-languages/dax/best-practices/dax-error-functions.md @@ -2,13 +2,8 @@ title: "Appropriate use of error functions in DAX" description: Best practices for using the DAX error functions. author: peter-myers -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual ms.date: 08/25/2021 -recommendations: false --- # Appropriate use of error functions diff --git a/query-languages/dax/best-practices/dax-selectedvalue.md b/query-languages/dax/best-practices/dax-selectedvalue.md index ea44ab6fc..a831d0bc1 100644 --- a/query-languages/dax/best-practices/dax-selectedvalue.md +++ b/query-languages/dax/best-practices/dax-selectedvalue.md @@ -2,13 +2,8 @@ title: "Use SELECTEDVALUE instead of VALUES in DAX" description: Best practices for using the SELECTEDVALUE functions. author: peter-myers -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual ms.date: 08/25/2021 -recommendations: false --- # Use SELECTEDVALUE instead of VALUES diff --git a/query-languages/dax/best-practices/dax-understand-orderby.md b/query-languages/dax/best-practices/dax-understand-orderby.md index 05e6d50dc..613dc6b1b 100644 --- a/query-languages/dax/best-practices/dax-understand-orderby.md +++ b/query-languages/dax/best-practices/dax-understand-orderby.md @@ -2,13 +2,8 @@ title: "Understanding ORDERBY, PARTITIONBY, and MATCHBY functions in DAX" description: Best practices for using ORDERBY, PARTITIONBY, and MATCHBY functions. author: jeroenterheerdt -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual ms.date: 07/07/2023 -recommendations: false --- # Understanding ORDERBY, PARTITIONBY, and MATCHBY functions diff --git a/query-languages/dax/best-practices/dax-variables.md b/query-languages/dax/best-practices/dax-variables.md index 3d0702e74..66ed184ff 100644 --- a/query-languages/dax/best-practices/dax-variables.md +++ b/query-languages/dax/best-practices/dax-variables.md @@ -2,13 +2,8 @@ title: "Use variables to improve your DAX formulas" description: Best practices for using variables in DAX expressions. author: peter-myers -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual ms.date: 08/25/2021 -recommendations: false --- # Use variables to improve your DAX formulas diff --git a/query-languages/dax/beta-dist-function-dax.md b/query-languages/dax/beta-dist-function-dax.md index 11e6a67d3..7cbb1cb90 100644 --- a/query-languages/dax/beta-dist-function-dax.md +++ b/query-languages/dax/beta-dist-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: BETA.DIST" title: "BETA.DIST function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # BETA.DIST diff --git a/query-languages/dax/beta-inv-function-dax.md b/query-languages/dax/beta-inv-function-dax.md index 39e5fe807..9ce094224 100644 --- a/query-languages/dax/beta-inv-function-dax.md +++ b/query-languages/dax/beta-inv-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: BETA.INV" title: "BETA.INV function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # BETA.INV diff --git a/query-languages/dax/bitand-function-dax.md b/query-languages/dax/bitand-function-dax.md index 724774957..1a24c2344 100644 --- a/query-languages/dax/bitand-function-dax.md +++ b/query-languages/dax/bitand-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: BITAND" title: "BITAND function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/11/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # BITAND diff --git a/query-languages/dax/bitlshift-function-dax.md b/query-languages/dax/bitlshift-function-dax.md index d02bc287a..072742094 100644 --- a/query-languages/dax/bitlshift-function-dax.md +++ b/query-languages/dax/bitlshift-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: BITLSHIFT" title: "BITLSHIFT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/11/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # BITLSHIFT diff --git a/query-languages/dax/bitor-function-dax.md b/query-languages/dax/bitor-function-dax.md index 70db08619..e72d30d10 100644 --- a/query-languages/dax/bitor-function-dax.md +++ b/query-languages/dax/bitor-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: BITOR" title: "BITOR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/11/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # BITOR diff --git a/query-languages/dax/bitrshift-function-dax.md b/query-languages/dax/bitrshift-function-dax.md index 4c17c6bbb..d9140caf1 100644 --- a/query-languages/dax/bitrshift-function-dax.md +++ b/query-languages/dax/bitrshift-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: BITRSHIFT" title: "BITRSHIFT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/11/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # BITRSHIFT diff --git a/query-languages/dax/bitxor-function-dax.md b/query-languages/dax/bitxor-function-dax.md index e5b9cfbb7..9823b7914 100644 --- a/query-languages/dax/bitxor-function-dax.md +++ b/query-languages/dax/bitxor-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: BITXOR" title: "BITXOR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/11/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # BITXOR diff --git a/query-languages/dax/blank-function-dax.md b/query-languages/dax/blank-function-dax.md index b40473224..0b26950d7 100644 --- a/query-languages/dax/blank-function-dax.md +++ b/query-languages/dax/blank-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: BLANK" title: "BLANK function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/05/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # BLANK diff --git a/query-languages/dax/calculate-function-dax.md b/query-languages/dax/calculate-function-dax.md index 06e839cc4..e6938cc16 100644 --- a/query-languages/dax/calculate-function-dax.md +++ b/query-languages/dax/calculate-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CALCULATE" title: "CALCULATE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/09/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CALCULATE diff --git a/query-languages/dax/calculatetable-function-dax.md b/query-languages/dax/calculatetable-function-dax.md index d3366f9f8..35324baa1 100644 --- a/query-languages/dax/calculatetable-function-dax.md +++ b/query-languages/dax/calculatetable-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CALCULATETABLE" title: "CALCULATETABLE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/09/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CALCULATETABLE diff --git a/query-languages/dax/calendar-function-dax.md b/query-languages/dax/calendar-function-dax.md index b06c55cc3..ae0a27a02 100644 --- a/query-languages/dax/calendar-function-dax.md +++ b/query-languages/dax/calendar-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CALENDAR" title: "CALENDAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/07/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CALENDAR diff --git a/query-languages/dax/calendarauto-function-dax.md b/query-languages/dax/calendarauto-function-dax.md index 129726ab6..bcbc74237 100644 --- a/query-languages/dax/calendarauto-function-dax.md +++ b/query-languages/dax/calendarauto-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CALENDARAUTO" title: "CALENDARAUTO function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 04/19/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CALENDARAUTO diff --git a/query-languages/dax/ceiling-function-dax.md b/query-languages/dax/ceiling-function-dax.md index 9bb7a960a..1b08c679e 100644 --- a/query-languages/dax/ceiling-function-dax.md +++ b/query-languages/dax/ceiling-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CEILING" title: "CEILING function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CEILING diff --git a/query-languages/dax/chisq-dist-function-dax.md b/query-languages/dax/chisq-dist-function-dax.md index 6902b726d..d4f7352b0 100644 --- a/query-languages/dax/chisq-dist-function-dax.md +++ b/query-languages/dax/chisq-dist-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CHISQ.DIST" title: "CHISQ.DIST function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CHISQ.DIST diff --git a/query-languages/dax/chisq-dist-rt-function-dax.md b/query-languages/dax/chisq-dist-rt-function-dax.md index ddf932792..a5a8ef942 100644 --- a/query-languages/dax/chisq-dist-rt-function-dax.md +++ b/query-languages/dax/chisq-dist-rt-function-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: CHISQ.DIST.RT" title: "CHISQ.DIST.RT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # CHISQ.DIST.RT diff --git a/query-languages/dax/chisq-inv-function-dax.md b/query-languages/dax/chisq-inv-function-dax.md index 3f9218456..55436ab0b 100644 --- a/query-languages/dax/chisq-inv-function-dax.md +++ b/query-languages/dax/chisq-inv-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CHISQ.INV" title: "CHISQ.INV function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CHISQ.INV diff --git a/query-languages/dax/chisq-inv-rt-function-dax.md b/query-languages/dax/chisq-inv-rt-function-dax.md index f52f072b0..eeba8561d 100644 --- a/query-languages/dax/chisq-inv-rt-function-dax.md +++ b/query-languages/dax/chisq-inv-rt-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CHISQ.INV.RT" title: "CHISQ.INV.RT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CHISQ.INV.RT diff --git a/query-languages/dax/closingbalancemonth-function-dax.md b/query-languages/dax/closingbalancemonth-function-dax.md index 07785993f..b3630625a 100644 --- a/query-languages/dax/closingbalancemonth-function-dax.md +++ b/query-languages/dax/closingbalancemonth-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CLOSINGBALANCEMONTH" title: "CLOSINGBALANCEMONTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/15/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CLOSINGBALANCEMONTH diff --git a/query-languages/dax/closingbalancequarter-function-dax.md b/query-languages/dax/closingbalancequarter-function-dax.md index 66fa562b0..893efcc38 100644 --- a/query-languages/dax/closingbalancequarter-function-dax.md +++ b/query-languages/dax/closingbalancequarter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CLOSINGBALANCEQUARTER" title: "CLOSINGBALANCEQUARTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CLOSINGBALANCEQUARTER diff --git a/query-languages/dax/closingbalanceyear-function-dax.md b/query-languages/dax/closingbalanceyear-function-dax.md index d665bc4c7..6946229ac 100644 --- a/query-languages/dax/closingbalanceyear-function-dax.md +++ b/query-languages/dax/closingbalanceyear-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CLOSINGBALANCEYEAR" title: "CLOSINGBALANCEYEAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CLOSINGBALANCEYEAR diff --git a/query-languages/dax/coalesce-function-dax.md b/query-languages/dax/coalesce-function-dax.md index 1576339f4..2e7bee2ed 100644 --- a/query-languages/dax/coalesce-function-dax.md +++ b/query-languages/dax/coalesce-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COALESCE" title: "COALESCE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 03/09/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COALESCE diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index 5d221db49..68430658d 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COLUMNSTATISTICS" title: "COLUMNSTATISTICS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/31/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COLUMNSTATISTICS diff --git a/query-languages/dax/combin-function-dax.md b/query-languages/dax/combin-function-dax.md index 679a08863..bb87e7048 100644 --- a/query-languages/dax/combin-function-dax.md +++ b/query-languages/dax/combin-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COMBIN" title: "COMBIN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COMBIN diff --git a/query-languages/dax/combina-function-dax.md b/query-languages/dax/combina-function-dax.md index 30d291435..2cda4a242 100644 --- a/query-languages/dax/combina-function-dax.md +++ b/query-languages/dax/combina-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COMBINA" title: "COMBINA function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COMBINA diff --git a/query-languages/dax/combinevalues-function-dax.md b/query-languages/dax/combinevalues-function-dax.md index b2aa4af94..543112ef3 100644 --- a/query-languages/dax/combinevalues-function-dax.md +++ b/query-languages/dax/combinevalues-function-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: COMBINEVALUES" title: "COMBINEVALUES function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 03/16/2022 -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COMBINEVALUES diff --git a/query-languages/dax/concatenate-function-dax.md b/query-languages/dax/concatenate-function-dax.md index 19d18663b..5a4dba823 100644 --- a/query-languages/dax/concatenate-function-dax.md +++ b/query-languages/dax/concatenate-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CONCATENATE" title: "CONCATENATE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 03/16/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CONCATENATE diff --git a/query-languages/dax/concatenatex-function-dax.md b/query-languages/dax/concatenatex-function-dax.md index 04fa6a889..a78890d17 100644 --- a/query-languages/dax/concatenatex-function-dax.md +++ b/query-languages/dax/concatenatex-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CONCATENATEX" title: "CONCATENATEX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 03/16/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CONCATENATEX diff --git a/query-languages/dax/confidence-norm-function-dax.md b/query-languages/dax/confidence-norm-function-dax.md index ee8ebb22e..27d307472 100644 --- a/query-languages/dax/confidence-norm-function-dax.md +++ b/query-languages/dax/confidence-norm-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CONFIDENCE.NORM" title: "CONFIDENCE.NORM function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CONFIDENCE.NORM diff --git a/query-languages/dax/confidence-t-function-dax.md b/query-languages/dax/confidence-t-function-dax.md index 862050ca6..13e2bbe38 100644 --- a/query-languages/dax/confidence-t-function-dax.md +++ b/query-languages/dax/confidence-t-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CONFIDENCE.T" title: "CONFIDENCE.T function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CONFIDENCE.T diff --git a/query-languages/dax/contains-function-dax.md b/query-languages/dax/contains-function-dax.md index b695e40ba..3d38371ee 100644 --- a/query-languages/dax/contains-function-dax.md +++ b/query-languages/dax/contains-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CONTAINS" title: "CONTAINS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CONTAINS diff --git a/query-languages/dax/containsrow-function-dax.md b/query-languages/dax/containsrow-function-dax.md index f304d27a9..eced43a93 100644 --- a/query-languages/dax/containsrow-function-dax.md +++ b/query-languages/dax/containsrow-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CONTAINSROW function" title: "CONTAINSROW function | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/07/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CONTAINSROW function diff --git a/query-languages/dax/containsstring-function-dax.md b/query-languages/dax/containsstring-function-dax.md index 71494fdbc..fec3dc6ff 100644 --- a/query-languages/dax/containsstring-function-dax.md +++ b/query-languages/dax/containsstring-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CONTAINSSTRING" title: "CONTAINSSTRING function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CONTAINSSTRING diff --git a/query-languages/dax/containsstringexact-function-dax.md b/query-languages/dax/containsstringexact-function-dax.md index c22ef3f7a..e02a5003d 100644 --- a/query-languages/dax/containsstringexact-function-dax.md +++ b/query-languages/dax/containsstringexact-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CONTAINSSTRINGEXACT" title: "CONTAINSSTRINGEXACT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CONTAINSSTRINGEXACT diff --git a/query-languages/dax/convert-function-dax.md b/query-languages/dax/convert-function-dax.md index d401e9827..9351db9f8 100644 --- a/query-languages/dax/convert-function-dax.md +++ b/query-languages/dax/convert-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CONVERT" title: "CONVERT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CONVERT diff --git a/query-languages/dax/cos-function-dax.md b/query-languages/dax/cos-function-dax.md index a990360ee..5bd75e24c 100644 --- a/query-languages/dax/cos-function-dax.md +++ b/query-languages/dax/cos-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COS" title: "COS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COS diff --git a/query-languages/dax/cosh-function-dax.md b/query-languages/dax/cosh-function-dax.md index 8db111eea..152500622 100644 --- a/query-languages/dax/cosh-function-dax.md +++ b/query-languages/dax/cosh-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COSH" title: "COSH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COSH diff --git a/query-languages/dax/cot-function-dax.md b/query-languages/dax/cot-function-dax.md index df56836eb..0b1712cda 100644 --- a/query-languages/dax/cot-function-dax.md +++ b/query-languages/dax/cot-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COT" title: "COT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COT diff --git a/query-languages/dax/coth-function-dax.md b/query-languages/dax/coth-function-dax.md index b4c4f288a..de8b4bfcf 100644 --- a/query-languages/dax/coth-function-dax.md +++ b/query-languages/dax/coth-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COTH" title: "COTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COTH diff --git a/query-languages/dax/count-function-dax.md b/query-languages/dax/count-function-dax.md index 9b1e3671c..5d1c73a4e 100644 --- a/query-languages/dax/count-function-dax.md +++ b/query-languages/dax/count-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUNT" title: "COUNT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/07/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COUNT diff --git a/query-languages/dax/counta-function-dax.md b/query-languages/dax/counta-function-dax.md index 43df23819..6fc0ebbaa 100644 --- a/query-languages/dax/counta-function-dax.md +++ b/query-languages/dax/counta-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUNTA" title: "COUNTA function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/07/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COUNTA diff --git a/query-languages/dax/countax-function-dax.md b/query-languages/dax/countax-function-dax.md index 47c6c4ec3..6e521e4a2 100644 --- a/query-languages/dax/countax-function-dax.md +++ b/query-languages/dax/countax-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUNTAX" title: "COUNTAX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COUNTAX diff --git a/query-languages/dax/countblank-function-dax.md b/query-languages/dax/countblank-function-dax.md index 7aa3dc134..4d6980722 100644 --- a/query-languages/dax/countblank-function-dax.md +++ b/query-languages/dax/countblank-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUNTBLANK" title: "COUNTBLANK function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COUNTBLANK diff --git a/query-languages/dax/countrows-function-dax.md b/query-languages/dax/countrows-function-dax.md index 7160d54c7..08f219ec3 100644 --- a/query-languages/dax/countrows-function-dax.md +++ b/query-languages/dax/countrows-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUNTROWS" title: "COUNTROWS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/13/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COUNTROWS diff --git a/query-languages/dax/countx-function-dax.md b/query-languages/dax/countx-function-dax.md index 70cceb962..d61db29ab 100644 --- a/query-languages/dax/countx-function-dax.md +++ b/query-languages/dax/countx-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUNTX" title: "COUNTX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/14/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # COUNTX diff --git a/query-languages/dax/coupdaybs-function-dax.md b/query-languages/dax/coupdaybs-function-dax.md index 9b762d5ee..b68d226d9 100644 --- a/query-languages/dax/coupdaybs-function-dax.md +++ b/query-languages/dax/coupdaybs-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUPDAYBS" title: "COUPDAYBS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference -author: jajin7 -ms.author: owend -recommendations: false - --- # COUPDAYBS diff --git a/query-languages/dax/coupdays-function-dax.md b/query-languages/dax/coupdays-function-dax.md index 38b0310f6..11e4ac258 100644 --- a/query-languages/dax/coupdays-function-dax.md +++ b/query-languages/dax/coupdays-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUPDAYS" title: "COUPDAYS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference -author: jajin7 -ms.author: owend -recommendations: false - --- # COUPDAYS diff --git a/query-languages/dax/coupdaysnc-function-dax.md b/query-languages/dax/coupdaysnc-function-dax.md index 49e63e091..8df4108a8 100644 --- a/query-languages/dax/coupdaysnc-function-dax.md +++ b/query-languages/dax/coupdaysnc-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUPDAYSNC" title: "COUPDAYSNC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference -author: jajin7 -ms.author: owend -recommendations: false - --- # COUPDAYSNC diff --git a/query-languages/dax/coupncd-function-dax.md b/query-languages/dax/coupncd-function-dax.md index 529c4f760..7329e2270 100644 --- a/query-languages/dax/coupncd-function-dax.md +++ b/query-languages/dax/coupncd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUPNCD" title: "COUPNCD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference -author: jajin7 -ms.author: owend -recommendations: false - --- # COUPNCD diff --git a/query-languages/dax/coupnum-function-dax.md b/query-languages/dax/coupnum-function-dax.md index f6c09c57b..d472e9d20 100644 --- a/query-languages/dax/coupnum-function-dax.md +++ b/query-languages/dax/coupnum-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUPNUM" title: "COUPNUM function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference -author: jajin7 -ms.author: owend -recommendations: false - --- # COUPNUM diff --git a/query-languages/dax/couppcd-function-dax.md b/query-languages/dax/couppcd-function-dax.md index 29512523d..79229b181 100644 --- a/query-languages/dax/couppcd-function-dax.md +++ b/query-languages/dax/couppcd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: COUPPCD" title: "COUPPCD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference -author: jajin7 -ms.author: owend -recommendations: false - --- # COUPPCD diff --git a/query-languages/dax/crossfilter-function.md b/query-languages/dax/crossfilter-function.md index 181bf26f9..ef1026be9 100644 --- a/query-languages/dax/crossfilter-function.md +++ b/query-languages/dax/crossfilter-function.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CROSSFILTER" title: "CROSSFILTER function | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 02/21/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CROSSFILTER diff --git a/query-languages/dax/crossjoin-function-dax.md b/query-languages/dax/crossjoin-function-dax.md index 002cb4c11..4a81260db 100644 --- a/query-languages/dax/crossjoin-function-dax.md +++ b/query-languages/dax/crossjoin-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CROSSJOIN" title: "CROSSJOIN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CROSSJOIN diff --git a/query-languages/dax/cumipmt-function-dax.md b/query-languages/dax/cumipmt-function-dax.md index 92582cc39..b9c8c20e7 100644 --- a/query-languages/dax/cumipmt-function-dax.md +++ b/query-languages/dax/cumipmt-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: CUMIPMT" title: "CUMIPMT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # CUMIPMT diff --git a/query-languages/dax/cumprinc-function-dax.md b/query-languages/dax/cumprinc-function-dax.md index a691e3f73..d58cba910 100644 --- a/query-languages/dax/cumprinc-function-dax.md +++ b/query-languages/dax/cumprinc-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: CUMPRINC" title: "CUMPRINC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # CUMPRINC diff --git a/query-languages/dax/currency-function-dax.md b/query-languages/dax/currency-function-dax.md index a18a439ee..ba6e56eba 100644 --- a/query-languages/dax/currency-function-dax.md +++ b/query-languages/dax/currency-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CURRENCY" title: "CURRENCY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/08/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CURRENCY diff --git a/query-languages/dax/currentgroup-function-dax.md b/query-languages/dax/currentgroup-function-dax.md index 0413838e9..45690b4cd 100644 --- a/query-languages/dax/currentgroup-function-dax.md +++ b/query-languages/dax/currentgroup-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CURRENTGROUP" title: "CURRENTGROUP function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/09/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CURRENTGROUP diff --git a/query-languages/dax/customdata-function-dax.md b/query-languages/dax/customdata-function-dax.md index 06b62f851..dd7ca83bc 100644 --- a/query-languages/dax/customdata-function-dax.md +++ b/query-languages/dax/customdata-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: CUSTOMDATA" title: "CUSTOMDATA function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # CUSTOMDATA diff --git a/query-languages/dax/datatable-function.md b/query-languages/dax/datatable-function.md index 3f37309c0..959795e31 100644 --- a/query-languages/dax/datatable-function.md +++ b/query-languages/dax/datatable-function.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATATABLE" title: "DATATABLE function | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATATABLE diff --git a/query-languages/dax/date-and-time-functions-dax.md b/query-languages/dax/date-and-time-functions-dax.md index d60459222..89f461b17 100644 --- a/query-languages/dax/date-and-time-functions-dax.md +++ b/query-languages/dax/date-and-time-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Date and time functions" title: "Date and time functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Date and time functions diff --git a/query-languages/dax/date-function-dax.md b/query-languages/dax/date-function-dax.md index 6018649b2..fb4837b94 100644 --- a/query-languages/dax/date-function-dax.md +++ b/query-languages/dax/date-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATE" title: "DATE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATE diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index 97d19ca6f..c0d7129de 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATEADD" title: "DATEADD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATEADD diff --git a/query-languages/dax/datediff-function-dax.md b/query-languages/dax/datediff-function-dax.md index 1180d73d4..6a315823f 100644 --- a/query-languages/dax/datediff-function-dax.md +++ b/query-languages/dax/datediff-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATEDIFF" title: "DATEDIFF function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/08/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATEDIFF diff --git a/query-languages/dax/datesbetween-function-dax.md b/query-languages/dax/datesbetween-function-dax.md index 2c00e3d5a..bcd59fda5 100644 --- a/query-languages/dax/datesbetween-function-dax.md +++ b/query-languages/dax/datesbetween-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATESBETWEEN" title: "DATESBETWEEN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/08/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATESBETWEEN diff --git a/query-languages/dax/datesinperiod-function-dax.md b/query-languages/dax/datesinperiod-function-dax.md index 49a157c52..5d9ee2982 100644 --- a/query-languages/dax/datesinperiod-function-dax.md +++ b/query-languages/dax/datesinperiod-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATESINPERIOD" title: "DATESINPERIOD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/06/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATESINPERIOD diff --git a/query-languages/dax/datesmtd-function-dax.md b/query-languages/dax/datesmtd-function-dax.md index 5b415b377..d9d698e05 100644 --- a/query-languages/dax/datesmtd-function-dax.md +++ b/query-languages/dax/datesmtd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATESMTD" title: "DATESMTD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATESMTD diff --git a/query-languages/dax/datesqtd-function-dax.md b/query-languages/dax/datesqtd-function-dax.md index d872260b7..1bebbeb8f 100644 --- a/query-languages/dax/datesqtd-function-dax.md +++ b/query-languages/dax/datesqtd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATESQTD" title: "DATESQTD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATESQTD diff --git a/query-languages/dax/datesytd-function-dax.md b/query-languages/dax/datesytd-function-dax.md index 19b093593..4b82024d8 100644 --- a/query-languages/dax/datesytd-function-dax.md +++ b/query-languages/dax/datesytd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATESYTD" title: "DATESYTD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATESYTD diff --git a/query-languages/dax/datevalue-function-dax.md b/query-languages/dax/datevalue-function-dax.md index 2cd136b0e..9cc703be0 100644 --- a/query-languages/dax/datevalue-function-dax.md +++ b/query-languages/dax/datevalue-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DATEVALUE" title: "DATEVALUE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DATEVALUE diff --git a/query-languages/dax/dax-function-reference.md b/query-languages/dax/dax-function-reference.md index f4c92f264..b803fbbbb 100644 --- a/query-languages/dax/dax-function-reference.md +++ b/query-languages/dax/dax-function-reference.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DAX function reference" title: "DAX function reference | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 12/17/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DAX function reference diff --git a/query-languages/dax/dax-glossary.md b/query-languages/dax/dax-glossary.md index 905e8a8e6..84311a0bb 100644 --- a/query-languages/dax/dax-glossary.md +++ b/query-languages/dax/dax-glossary.md @@ -1,14 +1,7 @@ --- title: "DAX glossary | Microsoft Docs" description: Describes common terms used in the Data Analysis Expressions (DAX) language. -ms.service: powerbi -ms.subservice: dax -ms.date: 09/08/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false +ms.topic: conceptual --- # DAX glossary diff --git a/query-languages/dax/dax-learn-videos.md b/query-languages/dax/dax-learn-videos.md index 8dcd21cbf..6489ed278 100644 --- a/query-languages/dax/dax-learn-videos.md +++ b/query-languages/dax/dax-learn-videos.md @@ -1,14 +1,7 @@ --- title: "Learn DAX videos | Microsoft Docs" description: Describes helpful videos used to learn Data Analysis Expressions (DAX) language. -ms.service: powerbi -ms.subservice: dax -ms.date: 06/14/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false +ms.topic: conceptual --- # Videos diff --git a/query-languages/dax/dax-operator-reference.md b/query-languages/dax/dax-operator-reference.md index 490c90492..04d714705 100644 --- a/query-languages/dax/dax-operator-reference.md +++ b/query-languages/dax/dax-operator-reference.md @@ -1,15 +1,7 @@ --- description: "Learn more about: DAX operators" title: "DAX operators | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 11/09/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - +ms.topic: conceptual --- # DAX operators diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index b005522e8..fd6e91584 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -1,14 +1,7 @@ --- title: "DAX overview | Microsoft Docs" description: Describes the Data Analysis Expressions (DAX) language. -ms.service: powerbi -ms.subservice: dax -ms.date: 12/17/2021 -ms.reviewer: owend -ms.topic: overview -author: minewiskan -ms.author: owend -recommendations: false +ms.topic: conceptual --- # DAX overview diff --git a/query-languages/dax/dax-parameter-naming-conventions.md b/query-languages/dax/dax-parameter-naming-conventions.md index a8a49a70c..53a2f8ece 100644 --- a/query-languages/dax/dax-parameter-naming-conventions.md +++ b/query-languages/dax/dax-parameter-naming-conventions.md @@ -1,14 +1,7 @@ --- description: "Learn more about: DAX parameter-naming conventions" title: "DAX parameter-naming conventions | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 11/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false +ms.topic: conceptual --- # DAX parameter-naming conventions Parameter names are standardized in DAX reference to facilitate the usage and understanding of the functions. diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index af688cb80..7e94afccc 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -1,14 +1,7 @@ --- title: "DAX Queries | Microsoft Docs" description: Describes Data Analysis Expressions (DAX) language queries. -ms.service: powerbi -ms.subservice: dax -ms.date: 06/14/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false +ms.topic: conceptual --- # DAX queries diff --git a/query-languages/dax/dax-sample-model.md b/query-languages/dax/dax-sample-model.md index ec39ae941..a0df83957 100644 --- a/query-languages/dax/dax-sample-model.md +++ b/query-languages/dax/dax-sample-model.md @@ -2,13 +2,7 @@ title: "DAX sample model" description: DAX sample model to support reference articles. author: peter-myers -ms.author: owend -ms.reviewer: owend -ms.service: powerbi -ms.subservice: dax ms.topic: conceptual -ms.date: 08/25/2021 -recommendations: false --- # DAX sample model diff --git a/query-languages/dax/dax-syntax-reference.md b/query-languages/dax/dax-syntax-reference.md index 1c5456e33..3578464cb 100644 --- a/query-languages/dax/dax-syntax-reference.md +++ b/query-languages/dax/dax-syntax-reference.md @@ -1,14 +1,7 @@ --- description: "Learn more about: DAX syntax" title: "DAX syntax | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false +ms.topic: conceptual --- # DAX syntax diff --git a/query-languages/dax/day-function-dax.md b/query-languages/dax/day-function-dax.md index 6c5dad94a..fd5f9448a 100644 --- a/query-languages/dax/day-function-dax.md +++ b/query-languages/dax/day-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DAY" title: "DAY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/05/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DAY diff --git a/query-languages/dax/db-function-dax.md b/query-languages/dax/db-function-dax.md index 5e885b282..6d5242452 100644 --- a/query-languages/dax/db-function-dax.md +++ b/query-languages/dax/db-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: DB" title: "DB function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/06/2021 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # DB diff --git a/query-languages/dax/ddb-function-dax.md b/query-languages/dax/ddb-function-dax.md index 627c57a72..9c2fdf1cd 100644 --- a/query-languages/dax/ddb-function-dax.md +++ b/query-languages/dax/ddb-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: DDB" title: "DDB function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # DDB diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 7f2fe8666..920527504 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DEFINE" title: "DEFINE keyword (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/16/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DEFINE diff --git a/query-languages/dax/degrees-function-dax.md b/query-languages/dax/degrees-function-dax.md index 7a25a730f..5c029c26e 100644 --- a/query-languages/dax/degrees-function-dax.md +++ b/query-languages/dax/degrees-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DEGREES" title: "DEGREES function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DEGREES diff --git a/query-languages/dax/detailrows-function-dax.md b/query-languages/dax/detailrows-function-dax.md index 8dfae16d5..0b7d18774 100644 --- a/query-languages/dax/detailrows-function-dax.md +++ b/query-languages/dax/detailrows-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DETAILROWS" title: "DETAILROWS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/26/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DETAILROWS diff --git a/query-languages/dax/disc-function-dax.md b/query-languages/dax/disc-function-dax.md index a2b2969a8..dc647c164 100644 --- a/query-languages/dax/disc-function-dax.md +++ b/query-languages/dax/disc-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: DISC" title: "DISC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # DISC diff --git a/query-languages/dax/distinct-function-dax.md b/query-languages/dax/distinct-function-dax.md index b6e8a4602..3c2f0fb7d 100644 --- a/query-languages/dax/distinct-function-dax.md +++ b/query-languages/dax/distinct-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DISTINCT (column)" title: "DISTINCT (column) function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DISTINCT (column) diff --git a/query-languages/dax/distinct-table-function-dax.md b/query-languages/dax/distinct-table-function-dax.md index a15b58d1a..dbeb33207 100644 --- a/query-languages/dax/distinct-table-function-dax.md +++ b/query-languages/dax/distinct-table-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DISTINCT (table)" title: "DISTINCT (table) function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DISTINCT (table) diff --git a/query-languages/dax/distinctcount-function-dax.md b/query-languages/dax/distinctcount-function-dax.md index 4f8e3a153..f779e3392 100644 --- a/query-languages/dax/distinctcount-function-dax.md +++ b/query-languages/dax/distinctcount-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DISTINCTCOUNT" title: "DISTINCTCOUNT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/21/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DISTINCTCOUNT diff --git a/query-languages/dax/distinctcountnoblank-function-dax.md b/query-languages/dax/distinctcountnoblank-function-dax.md index fd4edbd2c..b92822986 100644 --- a/query-languages/dax/distinctcountnoblank-function-dax.md +++ b/query-languages/dax/distinctcountnoblank-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DISTINCTCOUNTNOBLANK" title: "DISTINCTCOUNTNOBLANK function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/21/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DISTINCTCOUNTNOBLANK diff --git a/query-languages/dax/divide-function-dax.md b/query-languages/dax/divide-function-dax.md index ad2141b33..879d0e1bc 100644 --- a/query-languages/dax/divide-function-dax.md +++ b/query-languages/dax/divide-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: DIVIDE" title: "DIVIDE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/13/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # DIVIDE diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index 8f5bc814e..926e3fe5c 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -40,10 +40,15 @@ "breadcrumb_path": "/dax/breadcrumb/toc.json", "uhfHeaderId": "MSDocsHeader-DAX", "titleSuffix": "DAX", - "show_latex": true, - "contributors_to_exclude": [ - "mikekinsman" - ] + "ms.service": "powerbi", + "ms.subservice": "dax", + "ms.topic": "reference", + "ms.author": "owend", + "author": "minewiskan", + "recommendations": "false", + "searchScope": ["Power BI", "Analysis Services", "DAX formula language"], + "ms.date": "10/20/2023", + "show_latex": true }, "fileMetadata": {}, "template": [], diff --git a/query-languages/dax/dollarde-function-dax.md b/query-languages/dax/dollarde-function-dax.md index 8417a6a62..0d3cd253e 100644 --- a/query-languages/dax/dollarde-function-dax.md +++ b/query-languages/dax/dollarde-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: DOLLARDE" title: "DOLLARDE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # DOLLARDE diff --git a/query-languages/dax/dollarfr-function-dax.md b/query-languages/dax/dollarfr-function-dax.md index eddf0b141..e5896b8d2 100644 --- a/query-languages/dax/dollarfr-function-dax.md +++ b/query-languages/dax/dollarfr-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: DOLLARFR" title: "DOLLARFR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # DOLLARFR diff --git a/query-languages/dax/duration-function-dax.md b/query-languages/dax/duration-function-dax.md index 614342ced..578bef682 100644 --- a/query-languages/dax/duration-function-dax.md +++ b/query-languages/dax/duration-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: DURATION" title: "DURATION function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # DURATION diff --git a/query-languages/dax/earlier-function-dax.md b/query-languages/dax/earlier-function-dax.md index 30d6a7643..13376bf16 100644 --- a/query-languages/dax/earlier-function-dax.md +++ b/query-languages/dax/earlier-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EARLIER" title: "EARLIER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EARLIER diff --git a/query-languages/dax/earliest-function-dax.md b/query-languages/dax/earliest-function-dax.md index 2513ca959..0d940fea2 100644 --- a/query-languages/dax/earliest-function-dax.md +++ b/query-languages/dax/earliest-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EARLIEST" title: "EARLIEST function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EARLIEST diff --git a/query-languages/dax/edate-function-dax.md b/query-languages/dax/edate-function-dax.md index c95e6ec43..f21020342 100644 --- a/query-languages/dax/edate-function-dax.md +++ b/query-languages/dax/edate-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EDATE" title: "EDATE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EDATE diff --git a/query-languages/dax/effect-function-dax.md b/query-languages/dax/effect-function-dax.md index 0f3d93c65..4746d7dd2 100644 --- a/query-languages/dax/effect-function-dax.md +++ b/query-languages/dax/effect-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: EFFECT" title: "EFFECT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # EFFECT diff --git a/query-languages/dax/endofmonth-function-dax.md b/query-languages/dax/endofmonth-function-dax.md index 83b6b0796..386102b14 100644 --- a/query-languages/dax/endofmonth-function-dax.md +++ b/query-languages/dax/endofmonth-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ENDOFMONTH" title: "ENDOFMONTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ENDOFMONTH diff --git a/query-languages/dax/endofquarter-function-dax.md b/query-languages/dax/endofquarter-function-dax.md index 66833cfc4..d25238308 100644 --- a/query-languages/dax/endofquarter-function-dax.md +++ b/query-languages/dax/endofquarter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ENDOFQUARTER" title: "ENDOFQUARTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ENDOFQUARTER diff --git a/query-languages/dax/endofyear-function-dax.md b/query-languages/dax/endofyear-function-dax.md index 4bdb9ca14..1aa5ea221 100644 --- a/query-languages/dax/endofyear-function-dax.md +++ b/query-languages/dax/endofyear-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ENDOFYEAR" title: "ENDOFYEAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ENDOFYEAR diff --git a/query-languages/dax/eomonth-function-dax.md b/query-languages/dax/eomonth-function-dax.md index 8c4ab24e4..14ad0614b 100644 --- a/query-languages/dax/eomonth-function-dax.md +++ b/query-languages/dax/eomonth-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EOMONTH" title: "EOMONTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EOMONTH diff --git a/query-languages/dax/error-function.md b/query-languages/dax/error-function.md index 252298d9d..2e6a0941c 100644 --- a/query-languages/dax/error-function.md +++ b/query-languages/dax/error-function.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ERROR" title: "ERROR function | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/05/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ERROR diff --git a/query-languages/dax/evaluate-statement-dax.md b/query-languages/dax/evaluate-statement-dax.md index a17658bc2..cee2607a8 100644 --- a/query-languages/dax/evaluate-statement-dax.md +++ b/query-languages/dax/evaluate-statement-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EVALUATE" title: "EVALUATE keyword (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/16/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EVALUATE diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index d5029685e..1b763c046 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EVALUATEANDLOG" title: "EVALUATEANDLOG function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/26/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EVALUATEANDLOG diff --git a/query-languages/dax/even-function-dax.md b/query-languages/dax/even-function-dax.md index 485a7c909..d72a6b400 100644 --- a/query-languages/dax/even-function-dax.md +++ b/query-languages/dax/even-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EVEN" title: "EVEN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EVEN diff --git a/query-languages/dax/exact-function-dax.md b/query-languages/dax/exact-function-dax.md index ebb963ac6..540225681 100644 --- a/query-languages/dax/exact-function-dax.md +++ b/query-languages/dax/exact-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EXACT" title: "EXACT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 03/16/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EXACT diff --git a/query-languages/dax/except-function-dax.md b/query-languages/dax/except-function-dax.md index 24b385522..2f5debaeb 100644 --- a/query-languages/dax/except-function-dax.md +++ b/query-languages/dax/except-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EXCEPT" title: "EXCEPT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EXCEPT diff --git a/query-languages/dax/exp-function-dax.md b/query-languages/dax/exp-function-dax.md index dd9171c4d..5a2291855 100644 --- a/query-languages/dax/exp-function-dax.md +++ b/query-languages/dax/exp-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EXP" title: "EXP function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EXP diff --git a/query-languages/dax/expon-dist-function-dax.md b/query-languages/dax/expon-dist-function-dax.md index 457861903..c0dcdc963 100644 --- a/query-languages/dax/expon-dist-function-dax.md +++ b/query-languages/dax/expon-dist-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: EXPON.DIST" title: "EXPON.DIST function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # EXPON.DIST diff --git a/query-languages/dax/fact-function-dax.md b/query-languages/dax/fact-function-dax.md index f23890e0a..ec2dfdd9e 100644 --- a/query-languages/dax/fact-function-dax.md +++ b/query-languages/dax/fact-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FACT" title: "FACT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FACT diff --git a/query-languages/dax/false-function-dax.md b/query-languages/dax/false-function-dax.md index 2237e1b55..0742ae4b6 100644 --- a/query-languages/dax/false-function-dax.md +++ b/query-languages/dax/false-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FALSE" title: "FALSE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FALSE diff --git a/query-languages/dax/filter-function-dax.md b/query-languages/dax/filter-function-dax.md index e813dea5f..b554c3de6 100644 --- a/query-languages/dax/filter-function-dax.md +++ b/query-languages/dax/filter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FILTER" title: "FILTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/13/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FILTER diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index d20a5fc28..c14d07adf 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Filter functions" title: "Filter functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 11/29/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Filter functions diff --git a/query-languages/dax/filters-function-dax.md b/query-languages/dax/filters-function-dax.md index 695366e74..05407a2f1 100644 --- a/query-languages/dax/filters-function-dax.md +++ b/query-languages/dax/filters-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FILTERS" title: "FILTERS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FILTERS diff --git a/query-languages/dax/financial-functions-dax.md b/query-languages/dax/financial-functions-dax.md index b9b852e33..ed8558256 100644 --- a/query-languages/dax/financial-functions-dax.md +++ b/query-languages/dax/financial-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Financial functions" title: "Financial functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Financial functions diff --git a/query-languages/dax/find-function-dax.md b/query-languages/dax/find-function-dax.md index 09a39a53c..4d56bed89 100644 --- a/query-languages/dax/find-function-dax.md +++ b/query-languages/dax/find-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FIND" title: "FIND function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 02/28/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FIND diff --git a/query-languages/dax/firstdate-function-dax.md b/query-languages/dax/firstdate-function-dax.md index 04d6eea56..b3de6edfa 100644 --- a/query-languages/dax/firstdate-function-dax.md +++ b/query-languages/dax/firstdate-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FIRSTDATE" title: "FIRSTDATE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FIRSTDATE diff --git a/query-languages/dax/firstnonblank-function-dax.md b/query-languages/dax/firstnonblank-function-dax.md index 09006c5e1..37b4399e4 100644 --- a/query-languages/dax/firstnonblank-function-dax.md +++ b/query-languages/dax/firstnonblank-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FIRSTNONBLANK" title: "FIRSTNONBLANK function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FIRSTNONBLANK diff --git a/query-languages/dax/firstnonblankvalue-function-dax.md b/query-languages/dax/firstnonblankvalue-function-dax.md index b88b5ade9..abce4f0de 100644 --- a/query-languages/dax/firstnonblankvalue-function-dax.md +++ b/query-languages/dax/firstnonblankvalue-function-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: FIRSTNONBLANKVALUE" title: "FIRSTNONBLANKVALUE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # FIRSTNONBLANKVALUE diff --git a/query-languages/dax/fixed-function-dax.md b/query-languages/dax/fixed-function-dax.md index 7ad87381a..062e9ce6a 100644 --- a/query-languages/dax/fixed-function-dax.md +++ b/query-languages/dax/fixed-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FIXED" title: "FIXED function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 03/16/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FIXED diff --git a/query-languages/dax/floor-function-dax.md b/query-languages/dax/floor-function-dax.md index 4679bd300..8235eef9d 100644 --- a/query-languages/dax/floor-function-dax.md +++ b/query-languages/dax/floor-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FLOOR" title: "FLOOR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/21/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FLOOR diff --git a/query-languages/dax/format-function-dax.md b/query-languages/dax/format-function-dax.md index e27643dff..af657f8c8 100644 --- a/query-languages/dax/format-function-dax.md +++ b/query-languages/dax/format-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: FORMAT" title: "FORMAT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/18/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # FORMAT diff --git a/query-languages/dax/fv-function-dax.md b/query-languages/dax/fv-function-dax.md index 15bcc13b5..6dfb86590 100644 --- a/query-languages/dax/fv-function-dax.md +++ b/query-languages/dax/fv-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: FV" title: "FV function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # FV diff --git a/query-languages/dax/gcd-function-dax.md b/query-languages/dax/gcd-function-dax.md index 8aa081d43..0f421c165 100644 --- a/query-languages/dax/gcd-function-dax.md +++ b/query-languages/dax/gcd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: GCD" title: "GCD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # GCD diff --git a/query-languages/dax/generate-function-dax.md b/query-languages/dax/generate-function-dax.md index a5bb4343f..79d0944c9 100644 --- a/query-languages/dax/generate-function-dax.md +++ b/query-languages/dax/generate-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: GENERATE" title: "GENERATE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # GENERATE diff --git a/query-languages/dax/generateall-function-dax.md b/query-languages/dax/generateall-function-dax.md index 3e57354bc..cedbfa43a 100644 --- a/query-languages/dax/generateall-function-dax.md +++ b/query-languages/dax/generateall-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: GENERATEALL" title: "GENERATEALL function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # GENERATEALL diff --git a/query-languages/dax/generateseries-function.md b/query-languages/dax/generateseries-function.md index 08607fbe2..ca17c4ce3 100644 --- a/query-languages/dax/generateseries-function.md +++ b/query-languages/dax/generateseries-function.md @@ -1,15 +1,6 @@ --- description: "Learn more about: GENERATESERIES" title: "GENERATESERIES function | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # GENERATESERIES diff --git a/query-languages/dax/geomean-function-dax.md b/query-languages/dax/geomean-function-dax.md index d8d11d63e..c4b992347 100644 --- a/query-languages/dax/geomean-function-dax.md +++ b/query-languages/dax/geomean-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: GEOMEAN" title: "GEOMEAN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # GEOMEAN diff --git a/query-languages/dax/geomeanx-function-dax.md b/query-languages/dax/geomeanx-function-dax.md index 5fbe7be6d..80b5e6902 100644 --- a/query-languages/dax/geomeanx-function-dax.md +++ b/query-languages/dax/geomeanx-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: GEOMEANX" title: "GEOMEANX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # GEOMEANX diff --git a/query-languages/dax/groupby-function-dax.md b/query-languages/dax/groupby-function-dax.md index 369e7e7da..afdd832f6 100644 --- a/query-languages/dax/groupby-function-dax.md +++ b/query-languages/dax/groupby-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: GROUPBY" title: "GROUPBY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/14/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # GROUPBY diff --git a/query-languages/dax/hasonefilter-function-dax.md b/query-languages/dax/hasonefilter-function-dax.md index ee21a80a0..3157081b7 100644 --- a/query-languages/dax/hasonefilter-function-dax.md +++ b/query-languages/dax/hasonefilter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: HASONEFILTER" title: "HASONEFILTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # HASONEFILTER diff --git a/query-languages/dax/hasonevalue-function-dax.md b/query-languages/dax/hasonevalue-function-dax.md index 4cf884421..8f088a333 100644 --- a/query-languages/dax/hasonevalue-function-dax.md +++ b/query-languages/dax/hasonevalue-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: HASONEVALUE" title: "HASONEVALUE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # HASONEVALUE diff --git a/query-languages/dax/hour-function-dax.md b/query-languages/dax/hour-function-dax.md index d2640adaa..e13e6aed0 100644 --- a/query-languages/dax/hour-function-dax.md +++ b/query-languages/dax/hour-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: HOUR" title: "HOUR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # HOUR diff --git a/query-languages/dax/if-eager-function-dax.md b/query-languages/dax/if-eager-function-dax.md index 7da95b4c8..72e3acb69 100644 --- a/query-languages/dax/if-eager-function-dax.md +++ b/query-languages/dax/if-eager-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: IF.EAGER" title: "IF.EAGER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 02/22/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # IF.EAGER diff --git a/query-languages/dax/if-function-dax.md b/query-languages/dax/if-function-dax.md index a0b9823ac..2d155bba5 100644 --- a/query-languages/dax/if-function-dax.md +++ b/query-languages/dax/if-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: IF" title: "IF function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 02/22/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # IF diff --git a/query-languages/dax/iferror-function-dax.md b/query-languages/dax/iferror-function-dax.md index 4569502b0..e5597bdb2 100644 --- a/query-languages/dax/iferror-function-dax.md +++ b/query-languages/dax/iferror-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: IFERROR" title: "IFERROR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/13/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # IFERROR diff --git a/query-languages/dax/ignore-function-dax.md b/query-languages/dax/ignore-function-dax.md index 1d973487a..5b46d549b 100644 --- a/query-languages/dax/ignore-function-dax.md +++ b/query-languages/dax/ignore-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: IGNORE" title: "IGNORE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/01/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # IGNORE diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 45419bfd7..37bb11341 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: INDEX" title: "INDEX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 04/10/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # INDEX diff --git a/query-languages/dax/information-functions-dax.md b/query-languages/dax/information-functions-dax.md index 41aadfcb7..e1f658b1c 100644 --- a/query-languages/dax/information-functions-dax.md +++ b/query-languages/dax/information-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Information functions" title: "Information functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/31/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Information functions diff --git a/query-languages/dax/int-function-dax.md b/query-languages/dax/int-function-dax.md index 90de63f7a..e03e8b40e 100644 --- a/query-languages/dax/int-function-dax.md +++ b/query-languages/dax/int-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: INT" title: "INT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # INT diff --git a/query-languages/dax/intersect-function-dax.md b/query-languages/dax/intersect-function-dax.md index fbd29b8ac..2035e8751 100644 --- a/query-languages/dax/intersect-function-dax.md +++ b/query-languages/dax/intersect-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: INTERSECT" title: "INTERSECT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # INTERSECT diff --git a/query-languages/dax/intrate-function-dax.md b/query-languages/dax/intrate-function-dax.md index 8825594bd..30baed6ae 100644 --- a/query-languages/dax/intrate-function-dax.md +++ b/query-languages/dax/intrate-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: INTRATE" title: "INTRATE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference -author: jajin7 -ms.author: owend -recommendations: false - --- # INTRATE diff --git a/query-languages/dax/ipmt-function-dax.md b/query-languages/dax/ipmt-function-dax.md index 1fcbf3e6f..0d2d63d6b 100644 --- a/query-languages/dax/ipmt-function-dax.md +++ b/query-languages/dax/ipmt-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: IPMT" title: "IPMT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference -author: jajin7 -ms.author: owend -recommendations: false - --- # IPMT diff --git a/query-languages/dax/isafter-function-dax.md b/query-languages/dax/isafter-function-dax.md index 19db33a0a..628aea320 100644 --- a/query-languages/dax/isafter-function-dax.md +++ b/query-languages/dax/isafter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISAFTER" title: "ISAFTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/31/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISAFTER diff --git a/query-languages/dax/isblank-function-dax.md b/query-languages/dax/isblank-function-dax.md index d53e23c4d..9d40df459 100644 --- a/query-languages/dax/isblank-function-dax.md +++ b/query-languages/dax/isblank-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISBLANK" title: "ISBLANK function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/13/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISBLANK diff --git a/query-languages/dax/iscrossfiltered-function-dax.md b/query-languages/dax/iscrossfiltered-function-dax.md index b38392125..3b8c43c94 100644 --- a/query-languages/dax/iscrossfiltered-function-dax.md +++ b/query-languages/dax/iscrossfiltered-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISCROSSFILTERED" title: "ISCROSSFILTERED function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/27/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISCROSSFILTERED diff --git a/query-languages/dax/isempty-function-dax.md b/query-languages/dax/isempty-function-dax.md index 441184a99..652422191 100644 --- a/query-languages/dax/isempty-function-dax.md +++ b/query-languages/dax/isempty-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISEMPTY" title: "ISEMPTY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 04/13/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISEMPTY diff --git a/query-languages/dax/iserror-function-dax.md b/query-languages/dax/iserror-function-dax.md index e2663c53b..70e6979de 100644 --- a/query-languages/dax/iserror-function-dax.md +++ b/query-languages/dax/iserror-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISERROR" title: "ISERROR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISERROR diff --git a/query-languages/dax/iseven-function-dax.md b/query-languages/dax/iseven-function-dax.md index dd406d18b..07a703a56 100644 --- a/query-languages/dax/iseven-function-dax.md +++ b/query-languages/dax/iseven-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISEVEN" title: "ISEVEN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISEVEN diff --git a/query-languages/dax/isfiltered-function-dax.md b/query-languages/dax/isfiltered-function-dax.md index 30130be11..48704b89e 100644 --- a/query-languages/dax/isfiltered-function-dax.md +++ b/query-languages/dax/isfiltered-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISFILTERED" title: "ISFILTERED function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/26/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISFILTERED diff --git a/query-languages/dax/isinscope-function-dax.md b/query-languages/dax/isinscope-function-dax.md index 794bdac4e..61c258191 100644 --- a/query-languages/dax/isinscope-function-dax.md +++ b/query-languages/dax/isinscope-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISINSCOPE" title: "ISINSCOPE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISINSCOPE diff --git a/query-languages/dax/islogical-function-dax.md b/query-languages/dax/islogical-function-dax.md index 60a61ea76..4beb4bda4 100644 --- a/query-languages/dax/islogical-function-dax.md +++ b/query-languages/dax/islogical-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISLOGICAL" title: "ISLOGICAL function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISLOGICAL diff --git a/query-languages/dax/isnontext-function-dax.md b/query-languages/dax/isnontext-function-dax.md index 5857b7168..7d741ff5f 100644 --- a/query-languages/dax/isnontext-function-dax.md +++ b/query-languages/dax/isnontext-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISNONTEXT" title: "ISNONTEXT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISNONTEXT diff --git a/query-languages/dax/isnumber-function-dax.md b/query-languages/dax/isnumber-function-dax.md index a9b5508c8..9801884b7 100644 --- a/query-languages/dax/isnumber-function-dax.md +++ b/query-languages/dax/isnumber-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISNUMBER" title: "ISNUMBER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 12/10/2018 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISNUMBER diff --git a/query-languages/dax/iso-ceiling-function-dax.md b/query-languages/dax/iso-ceiling-function-dax.md index a3ca07051..67e8cd2f9 100644 --- a/query-languages/dax/iso-ceiling-function-dax.md +++ b/query-languages/dax/iso-ceiling-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISO.CEILING" title: "ISO.CEILING function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISO.CEILING diff --git a/query-languages/dax/isodd-function-dax.md b/query-languages/dax/isodd-function-dax.md index 4f3979645..76ada8119 100644 --- a/query-languages/dax/isodd-function-dax.md +++ b/query-languages/dax/isodd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISODD" title: "ISODD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISODD diff --git a/query-languages/dax/isonorafter-function-dax.md b/query-languages/dax/isonorafter-function-dax.md index 8af5f5c39..62d582fde 100644 --- a/query-languages/dax/isonorafter-function-dax.md +++ b/query-languages/dax/isonorafter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISONORAFTER" title: "ISONORAFTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/21/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISONORAFTER diff --git a/query-languages/dax/ispmt-function-dax.md b/query-languages/dax/ispmt-function-dax.md index e0170b57c..4a380ba2f 100644 --- a/query-languages/dax/ispmt-function-dax.md +++ b/query-languages/dax/ispmt-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: ISPMT" title: "ISPMT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # ISPMT diff --git a/query-languages/dax/isselectedmeasure-function-dax.md b/query-languages/dax/isselectedmeasure-function-dax.md index 0c2af739c..3f9282314 100644 --- a/query-languages/dax/isselectedmeasure-function-dax.md +++ b/query-languages/dax/isselectedmeasure-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISSELECTEDMEASURE" title: "ISSELECTEDMEASURE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISSELECTEDMEASURE diff --git a/query-languages/dax/issubtotal-function-dax.md b/query-languages/dax/issubtotal-function-dax.md index f4eb4ea6e..2e02859fc 100644 --- a/query-languages/dax/issubtotal-function-dax.md +++ b/query-languages/dax/issubtotal-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISSUBTOTAL" title: "ISSUBTOTAL function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/09/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISSUBTOTAL diff --git a/query-languages/dax/istext-function-dax.md b/query-languages/dax/istext-function-dax.md index 02c23faa1..0a6ff2659 100644 --- a/query-languages/dax/istext-function-dax.md +++ b/query-languages/dax/istext-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ISTEXT" title: "ISTEXT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ISTEXT diff --git a/query-languages/dax/keepfilters-function-dax.md b/query-languages/dax/keepfilters-function-dax.md index 7b3352685..49f6d5ba1 100644 --- a/query-languages/dax/keepfilters-function-dax.md +++ b/query-languages/dax/keepfilters-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: KEEPFILTERS" title: "KEEPFILTERS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # KEEPFILTERS diff --git a/query-languages/dax/lastdate-function-dax.md b/query-languages/dax/lastdate-function-dax.md index 65d2d5e16..b61c4df30 100644 --- a/query-languages/dax/lastdate-function-dax.md +++ b/query-languages/dax/lastdate-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LASTDATE" title: "LASTDATE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LASTDATE diff --git a/query-languages/dax/lastnonblank-function-dax.md b/query-languages/dax/lastnonblank-function-dax.md index 11512e17e..3ceab8aa4 100644 --- a/query-languages/dax/lastnonblank-function-dax.md +++ b/query-languages/dax/lastnonblank-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LASTNONBLANK" title: "LASTNONBLANK function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LASTNONBLANK diff --git a/query-languages/dax/lastnonblankvalue-function-dax.md b/query-languages/dax/lastnonblankvalue-function-dax.md index 51fd588bf..4b0dcb935 100644 --- a/query-languages/dax/lastnonblankvalue-function-dax.md +++ b/query-languages/dax/lastnonblankvalue-function-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: LASTNONBLANKVALUE" title: "LASTNONBLANKVALUE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # LASTNONBLANKVALUE diff --git a/query-languages/dax/lcm-function-dax.md b/query-languages/dax/lcm-function-dax.md index 8def6f461..b14a481e6 100644 --- a/query-languages/dax/lcm-function-dax.md +++ b/query-languages/dax/lcm-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LCM" title: "LCM function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LCM diff --git a/query-languages/dax/left-function-dax.md b/query-languages/dax/left-function-dax.md index 665b63ad3..4bbf0cd7c 100644 --- a/query-languages/dax/left-function-dax.md +++ b/query-languages/dax/left-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LEFT" title: "LEFT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LEFT diff --git a/query-languages/dax/len-function-dax.md b/query-languages/dax/len-function-dax.md index 9826042ff..73f1627f6 100644 --- a/query-languages/dax/len-function-dax.md +++ b/query-languages/dax/len-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LEN" title: "LEN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/05/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LEN diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index 8b667f065..d4f9e44c3 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -1,14 +1,8 @@ --- description: "Learn more about: LINEST" title: "LINEST function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/18/2023 -ms.topic: reference author: masanto-msft ms.author: masanto -recommendations: false - --- # LINEST diff --git a/query-languages/dax/linestx-function-dax.md b/query-languages/dax/linestx-function-dax.md index b298aefbc..e79c2265b 100644 --- a/query-languages/dax/linestx-function-dax.md +++ b/query-languages/dax/linestx-function-dax.md @@ -1,14 +1,8 @@ --- description: "Learn more about: LINESTX" title: "LINESTX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/18/2023 -ms.topic: reference author: masanto-msft ms.author: masanto -recommendations: false - --- # LINESTX diff --git a/query-languages/dax/ln-function-dax.md b/query-languages/dax/ln-function-dax.md index b5e62a327..da2288fb0 100644 --- a/query-languages/dax/ln-function-dax.md +++ b/query-languages/dax/ln-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LN" title: "LN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LN diff --git a/query-languages/dax/log-function-dax.md b/query-languages/dax/log-function-dax.md index 359bb9207..4f508fb14 100644 --- a/query-languages/dax/log-function-dax.md +++ b/query-languages/dax/log-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LOG" title: "LOG function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LOG diff --git a/query-languages/dax/log10-function-dax.md b/query-languages/dax/log10-function-dax.md index e0b65a60f..6e56c59ae 100644 --- a/query-languages/dax/log10-function-dax.md +++ b/query-languages/dax/log10-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LOG10" title: "LOG10 function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LOG10 diff --git a/query-languages/dax/logical-functions-dax.md b/query-languages/dax/logical-functions-dax.md index ac398751a..32713f7f7 100644 --- a/query-languages/dax/logical-functions-dax.md +++ b/query-languages/dax/logical-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Logical functions" title: "Logical functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/05/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Logical functions diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index 99dbe447d..9f3fbbfe2 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LOOKUPVALUE" title: "LOOKUPVALUE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/17/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LOOKUPVALUE diff --git a/query-languages/dax/lower-function-dax.md b/query-languages/dax/lower-function-dax.md index f28051d93..7419110be 100644 --- a/query-languages/dax/lower-function-dax.md +++ b/query-languages/dax/lower-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: LOWER" title: "LOWER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # LOWER diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md index 7d80f1c05..a654051d2 100644 --- a/query-languages/dax/matchby-function-dax.md +++ b/query-languages/dax/matchby-function-dax.md @@ -1,14 +1,7 @@ --- description: "Learn more about: MATCHBY" title: "MATCHBY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 05/10/2023 -ms.topic: reference author: keshen -ms.author: owend -recommendations: false - --- # MATCHBY diff --git a/query-languages/dax/math-and-trig-functions-dax.md b/query-languages/dax/math-and-trig-functions-dax.md index a9ca491fc..913f3ee0d 100644 --- a/query-languages/dax/math-and-trig-functions-dax.md +++ b/query-languages/dax/math-and-trig-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Math and Trig functions" title: "Math and Trig functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/28/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Math and Trig functions diff --git a/query-languages/dax/max-function-dax.md b/query-languages/dax/max-function-dax.md index 9583e2902..2a564d429 100644 --- a/query-languages/dax/max-function-dax.md +++ b/query-languages/dax/max-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MAX" title: "MAX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MAX diff --git a/query-languages/dax/maxa-function-dax.md b/query-languages/dax/maxa-function-dax.md index 9c273fd46..2e6ac4b59 100644 --- a/query-languages/dax/maxa-function-dax.md +++ b/query-languages/dax/maxa-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MAXA" title: "MAXA function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MAXA diff --git a/query-languages/dax/maxx-function-dax.md b/query-languages/dax/maxx-function-dax.md index 431653cc7..e9b7aee86 100644 --- a/query-languages/dax/maxx-function-dax.md +++ b/query-languages/dax/maxx-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MAXX" title: "MAXX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/20/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MAXX diff --git a/query-languages/dax/mduration-function-dax.md b/query-languages/dax/mduration-function-dax.md index 57d1e4e16..40d86de1f 100644 --- a/query-languages/dax/mduration-function-dax.md +++ b/query-languages/dax/mduration-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: MDURATION" title: "MDURATION function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # MDURATION diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index a56c08000..6c3c35484 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MEASURE" title: "MEASURE keyword (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/16/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MEASURE diff --git a/query-languages/dax/median-function-dax.md b/query-languages/dax/median-function-dax.md index 2567f7e13..cf29c912a 100644 --- a/query-languages/dax/median-function-dax.md +++ b/query-languages/dax/median-function-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: MEDIAN" title: "MEDIAN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/21/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # MEDIAN diff --git a/query-languages/dax/medianx-function-dax.md b/query-languages/dax/medianx-function-dax.md index 6410eb47f..9f588de53 100644 --- a/query-languages/dax/medianx-function-dax.md +++ b/query-languages/dax/medianx-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MEDIANX" title: "MEDIANX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 12/10/2018 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MEDIANX diff --git a/query-languages/dax/mid-function-dax.md b/query-languages/dax/mid-function-dax.md index e83f8d7c4..5abe342e5 100644 --- a/query-languages/dax/mid-function-dax.md +++ b/query-languages/dax/mid-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MID" title: "MID function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 02/11/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MID diff --git a/query-languages/dax/min-function-dax.md b/query-languages/dax/min-function-dax.md index 7dfe0ccb0..0a1012d48 100644 --- a/query-languages/dax/min-function-dax.md +++ b/query-languages/dax/min-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MIN" title: "MIN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MIN diff --git a/query-languages/dax/mina-function-dax.md b/query-languages/dax/mina-function-dax.md index 6c7b9471b..1dc95bab7 100644 --- a/query-languages/dax/mina-function-dax.md +++ b/query-languages/dax/mina-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MINA" title: "MINA function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MINA diff --git a/query-languages/dax/minute-function-dax.md b/query-languages/dax/minute-function-dax.md index 516444b0a..2a8bbf16e 100644 --- a/query-languages/dax/minute-function-dax.md +++ b/query-languages/dax/minute-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MINUTE" title: "MINUTE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MINUTE diff --git a/query-languages/dax/minx-function-dax.md b/query-languages/dax/minx-function-dax.md index 260d345c7..32ca63c34 100644 --- a/query-languages/dax/minx-function-dax.md +++ b/query-languages/dax/minx-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MINX" title: "MINX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/20/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MINX diff --git a/query-languages/dax/mod-function-dax.md b/query-languages/dax/mod-function-dax.md index e2c4ed067..d430711a4 100644 --- a/query-languages/dax/mod-function-dax.md +++ b/query-languages/dax/mod-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MOD" title: "MOD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 12/10/2018 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MOD diff --git a/query-languages/dax/month-function-dax.md b/query-languages/dax/month-function-dax.md index 33b4e48eb..f6779aba8 100644 --- a/query-languages/dax/month-function-dax.md +++ b/query-languages/dax/month-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MONTH" title: "MONTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MONTH diff --git a/query-languages/dax/mround-function-dax.md b/query-languages/dax/mround-function-dax.md index 43f49bc68..a8d4b1836 100644 --- a/query-languages/dax/mround-function-dax.md +++ b/query-languages/dax/mround-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: MROUND" title: "MROUND function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # MROUND diff --git a/query-languages/dax/naturalinnerjoin-function-dax.md b/query-languages/dax/naturalinnerjoin-function-dax.md index cbe050692..8115d8ada 100644 --- a/query-languages/dax/naturalinnerjoin-function-dax.md +++ b/query-languages/dax/naturalinnerjoin-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NATURALINNERJOIN" title: "NATURALINNERJOIN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/08/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NATURALINNERJOIN diff --git a/query-languages/dax/naturalleftouterjoin-function-dax.md b/query-languages/dax/naturalleftouterjoin-function-dax.md index 5981ca354..1da54e385 100644 --- a/query-languages/dax/naturalleftouterjoin-function-dax.md +++ b/query-languages/dax/naturalleftouterjoin-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NATURALLEFTOUTERJOIN" title: "NATURALLEFTOUTERJOIN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/08/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NATURALLEFTOUTERJOIN diff --git a/query-languages/dax/networkdays-dax.md b/query-languages/dax/networkdays-dax.md index fd894fc34..a50cdc3da 100644 --- a/query-languages/dax/networkdays-dax.md +++ b/query-languages/dax/networkdays-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: NETWORKDAYS" title: "NETWORKDAYS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.date: 06/20/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NETWORKDAYS diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index eda0aa937..0dba3fac6 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -1,14 +1,6 @@ --- description: "Learn more about: New DAX functions" title: "New DAX functions | Microsoft Docs" -ms.service: powerbi -ms.date: 02/16/2023 -ms.subservice: dax -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # New DAX functions diff --git a/query-languages/dax/nextday-function-dax.md b/query-languages/dax/nextday-function-dax.md index de2130828..ede670b62 100644 --- a/query-languages/dax/nextday-function-dax.md +++ b/query-languages/dax/nextday-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NEXTDAY" title: "NEXTDAY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NEXTDAY diff --git a/query-languages/dax/nextmonth-function-dax.md b/query-languages/dax/nextmonth-function-dax.md index a45b0efd5..17fce01f5 100644 --- a/query-languages/dax/nextmonth-function-dax.md +++ b/query-languages/dax/nextmonth-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NEXTMONTH" title: "NEXTMONTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NEXTMONTH diff --git a/query-languages/dax/nextquarter-function-dax.md b/query-languages/dax/nextquarter-function-dax.md index efff30c26..288658fbb 100644 --- a/query-languages/dax/nextquarter-function-dax.md +++ b/query-languages/dax/nextquarter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NEXTQUARTER" title: "NEXTQUARTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NEXTQUARTER diff --git a/query-languages/dax/nextyear-function-dax.md b/query-languages/dax/nextyear-function-dax.md index cc691b01d..39b77e891 100644 --- a/query-languages/dax/nextyear-function-dax.md +++ b/query-languages/dax/nextyear-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NEXTYEAR" title: "NEXTYEAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NEXTYEAR diff --git a/query-languages/dax/nominal-function-dax.md b/query-languages/dax/nominal-function-dax.md index 217bdfcd7..f5177686c 100644 --- a/query-languages/dax/nominal-function-dax.md +++ b/query-languages/dax/nominal-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: NOMINAL" title: "NOMINAL function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # NOMINAL diff --git a/query-languages/dax/nonvisual-function-dax.md b/query-languages/dax/nonvisual-function-dax.md index 43f2bcc59..8a4fb5893 100644 --- a/query-languages/dax/nonvisual-function-dax.md +++ b/query-languages/dax/nonvisual-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NONVISUAL" title: "NONVISUAL function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/01/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NONVISUAL diff --git a/query-languages/dax/norm-dist-dax.md b/query-languages/dax/norm-dist-dax.md index a5c248fa9..b05b0c5f5 100644 --- a/query-languages/dax/norm-dist-dax.md +++ b/query-languages/dax/norm-dist-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NORM.DIST" title: "NORM.DIST function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NORM.DIST diff --git a/query-languages/dax/norm-inv-dax.md b/query-languages/dax/norm-inv-dax.md index ed0c2a5ff..3c11dd895 100644 --- a/query-languages/dax/norm-inv-dax.md +++ b/query-languages/dax/norm-inv-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NORM.INV" title: "NORM.INV function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NORM.INV diff --git a/query-languages/dax/norm-s-dist-dax.md b/query-languages/dax/norm-s-dist-dax.md index 48371bafd..cdb151a46 100644 --- a/query-languages/dax/norm-s-dist-dax.md +++ b/query-languages/dax/norm-s-dist-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NORM.S.DIST" title: "NORM.S.DIST function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NORM.S.DIST diff --git a/query-languages/dax/norm-s-inv-dax.md b/query-languages/dax/norm-s-inv-dax.md index 139a82be0..cb7f77510 100644 --- a/query-languages/dax/norm-s-inv-dax.md +++ b/query-languages/dax/norm-s-inv-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NORM.S.INV" title: "NORM.S.INV function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NORM.S.INV diff --git a/query-languages/dax/not-function-dax.md b/query-languages/dax/not-function-dax.md index dca889af3..b93b08aad 100644 --- a/query-languages/dax/not-function-dax.md +++ b/query-languages/dax/not-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NOT" title: "NOT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NOT diff --git a/query-languages/dax/now-function-dax.md b/query-languages/dax/now-function-dax.md index 2b860d9d0..9ee75ddda 100644 --- a/query-languages/dax/now-function-dax.md +++ b/query-languages/dax/now-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: NOW" title: "NOW function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/08/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # NOW diff --git a/query-languages/dax/nper-function-dax.md b/query-languages/dax/nper-function-dax.md index e9b5167d4..489e7d1be 100644 --- a/query-languages/dax/nper-function-dax.md +++ b/query-languages/dax/nper-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: NPER" title: "NPER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # NPER diff --git a/query-languages/dax/odd-function-dax.md b/query-languages/dax/odd-function-dax.md index 04aefc4fc..df65ac8bc 100644 --- a/query-languages/dax/odd-function-dax.md +++ b/query-languages/dax/odd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ODD" title: "ODD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ODD diff --git a/query-languages/dax/oddfprice-function-dax.md b/query-languages/dax/oddfprice-function-dax.md index 0178de7dd..80c6693ef 100644 --- a/query-languages/dax/oddfprice-function-dax.md +++ b/query-languages/dax/oddfprice-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: ODDFPRICE" title: "ODDFPRICE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # ODDFPRICE diff --git a/query-languages/dax/oddfyield-function-dax.md b/query-languages/dax/oddfyield-function-dax.md index dfaae7cbd..03f682f1f 100644 --- a/query-languages/dax/oddfyield-function-dax.md +++ b/query-languages/dax/oddfyield-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: ODDFYIELD" title: "ODDFYIELD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # ODDFYIELD diff --git a/query-languages/dax/oddlprice-function-dax.md b/query-languages/dax/oddlprice-function-dax.md index 2e2869a1c..579b6db6e 100644 --- a/query-languages/dax/oddlprice-function-dax.md +++ b/query-languages/dax/oddlprice-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: ODDLPRICE" title: "ODDLPRICE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # ODDLPRICE diff --git a/query-languages/dax/oddlyield-function-dax.md b/query-languages/dax/oddlyield-function-dax.md index bd158111d..f7ffbb8fd 100644 --- a/query-languages/dax/oddlyield-function-dax.md +++ b/query-languages/dax/oddlyield-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: ODDLYIELD" title: "ODDLYIELD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # ODDLYIELD diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index abead1031..0cf5b4f59 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: OFFSET" title: "OFFSET function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 04/10/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # OFFSET diff --git a/query-languages/dax/openingbalancemonth-function-dax.md b/query-languages/dax/openingbalancemonth-function-dax.md index fba54749a..5d6225c45 100644 --- a/query-languages/dax/openingbalancemonth-function-dax.md +++ b/query-languages/dax/openingbalancemonth-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: OPENINGBALANCEMONTH" title: "OPENINGBALANCEMONTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # OPENINGBALANCEMONTH diff --git a/query-languages/dax/openingbalancequarter-function-dax.md b/query-languages/dax/openingbalancequarter-function-dax.md index cbe63b0ed..0baa00147 100644 --- a/query-languages/dax/openingbalancequarter-function-dax.md +++ b/query-languages/dax/openingbalancequarter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: OPENINGBALANCEQUARTER" title: "OPENINGBALANCEQUARTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # OPENINGBALANCEQUARTER diff --git a/query-languages/dax/openingbalanceyear-function-dax.md b/query-languages/dax/openingbalanceyear-function-dax.md index 7f22aedc5..96f8779f7 100644 --- a/query-languages/dax/openingbalanceyear-function-dax.md +++ b/query-languages/dax/openingbalanceyear-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: OPENINGBALANCEYEAR" title: "OPENINGBALANCEYEAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # OPENINGBALANCEYEAR diff --git a/query-languages/dax/or-function-dax.md b/query-languages/dax/or-function-dax.md index 033b71e7a..62d1fa950 100644 --- a/query-languages/dax/or-function-dax.md +++ b/query-languages/dax/or-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: OR" title: "OR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # OR diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index 4d1f4acb8..b7e22b52e 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ORDERBY" title: "ORDERBY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 04/10/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ORDERBY diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index a0c15d28e..fd581b259 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ORDER BY" title: "ORDER BY keyword (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/16/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ORDER BY diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index 8bc6c173d..a0a394d0f 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Other functions" title: "Other functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/17/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Other functions diff --git a/query-languages/dax/parallelperiod-function-dax.md b/query-languages/dax/parallelperiod-function-dax.md index a6574b531..558109942 100644 --- a/query-languages/dax/parallelperiod-function-dax.md +++ b/query-languages/dax/parallelperiod-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PARALLELPERIOD" title: "PARALLELPERIOD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PARALLELPERIOD diff --git a/query-languages/dax/parent-and-child-functions-dax.md b/query-languages/dax/parent-and-child-functions-dax.md index 2622ddb06..03c5407af 100644 --- a/query-languages/dax/parent-and-child-functions-dax.md +++ b/query-languages/dax/parent-and-child-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Parent and Child functions" title: "Parent and Child functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Parent and Child functions diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index 6aaa4f5ea..8322301c6 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PARTITIONBY" title: "PARTITIONBY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 04/10/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PARTITIONBY diff --git a/query-languages/dax/path-function-dax.md b/query-languages/dax/path-function-dax.md index 3f198faa9..79c24a87f 100644 --- a/query-languages/dax/path-function-dax.md +++ b/query-languages/dax/path-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PATH" title: "PATH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PATH diff --git a/query-languages/dax/pathcontains-function-dax.md b/query-languages/dax/pathcontains-function-dax.md index fe6b81017..10bd57722 100644 --- a/query-languages/dax/pathcontains-function-dax.md +++ b/query-languages/dax/pathcontains-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PATHCONTAINS" title: "PATHCONTAINS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 12/10/2018 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PATHCONTAINS diff --git a/query-languages/dax/pathitem-function-dax.md b/query-languages/dax/pathitem-function-dax.md index 493dade01..181641674 100644 --- a/query-languages/dax/pathitem-function-dax.md +++ b/query-languages/dax/pathitem-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PATHITEM" title: "PATHITEM function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PATHITEM Returns the item at the specified *position* from a string resulting from evaluation of a PATH function. Positions are counted from left to right. diff --git a/query-languages/dax/pathitemreverse-function-dax.md b/query-languages/dax/pathitemreverse-function-dax.md index 2b32bd6fa..ea5149005 100644 --- a/query-languages/dax/pathitemreverse-function-dax.md +++ b/query-languages/dax/pathitemreverse-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PATHITEMREVERSE" title: "PATHITEMREVERSE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PATHITEMREVERSE diff --git a/query-languages/dax/pathlength-function-dax.md b/query-languages/dax/pathlength-function-dax.md index 5db542f5a..c3d9a390c 100644 --- a/query-languages/dax/pathlength-function-dax.md +++ b/query-languages/dax/pathlength-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PATHLENGTH" title: "PATHLENGTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PATHLENGTH Returns the number of parents to the specified item in a given PATH result, including self. diff --git a/query-languages/dax/pduration-function-dax.md b/query-languages/dax/pduration-function-dax.md index 899bcd9fc..99f9525da 100644 --- a/query-languages/dax/pduration-function-dax.md +++ b/query-languages/dax/pduration-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: PDURATION" title: "PDURATION function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # PDURATION diff --git a/query-languages/dax/percentile-exc-function-dax.md b/query-languages/dax/percentile-exc-function-dax.md index 9e9a6cbad..bc1828a14 100644 --- a/query-languages/dax/percentile-exc-function-dax.md +++ b/query-languages/dax/percentile-exc-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PERCENTILE.EXC" title: "PERCENTILE.EXC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PERCENTILE.EXC diff --git a/query-languages/dax/percentile-inc-function-dax.md b/query-languages/dax/percentile-inc-function-dax.md index f56328af2..e706c803a 100644 --- a/query-languages/dax/percentile-inc-function-dax.md +++ b/query-languages/dax/percentile-inc-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PERCENTILE.INC" title: "PERCENTILE.INC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PERCENTILE.INC diff --git a/query-languages/dax/percentilex-exc-function-dax.md b/query-languages/dax/percentilex-exc-function-dax.md index 87c926079..5e6428b3f 100644 --- a/query-languages/dax/percentilex-exc-function-dax.md +++ b/query-languages/dax/percentilex-exc-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PERCENTILEX.EXC" title: "PERCENTILEX.EXC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PERCENTILEX.EXC diff --git a/query-languages/dax/percentilex-inc-function-dax.md b/query-languages/dax/percentilex-inc-function-dax.md index 5fbc1f0f2..e5bf79f03 100644 --- a/query-languages/dax/percentilex-inc-function-dax.md +++ b/query-languages/dax/percentilex-inc-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PERCENTILEX.INC" title: "PERCENTILEX.INC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PERCENTILEX.INC diff --git a/query-languages/dax/permut-function-dax.md b/query-languages/dax/permut-function-dax.md index 12aaf5c46..89f4700f7 100644 --- a/query-languages/dax/permut-function-dax.md +++ b/query-languages/dax/permut-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PERMUT" title: "PERMUT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PERMUT diff --git a/query-languages/dax/pi-function-dax.md b/query-languages/dax/pi-function-dax.md index ecabbb4c1..5af5d6f64 100644 --- a/query-languages/dax/pi-function-dax.md +++ b/query-languages/dax/pi-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PI" title: "PI function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PI diff --git a/query-languages/dax/pmt-function-dax.md b/query-languages/dax/pmt-function-dax.md index db49c518b..a57fede49 100644 --- a/query-languages/dax/pmt-function-dax.md +++ b/query-languages/dax/pmt-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: PMT" title: "PMT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # PMT diff --git a/query-languages/dax/poisson-dist-function-dax.md b/query-languages/dax/poisson-dist-function-dax.md index bda023ea7..151954bbd 100644 --- a/query-languages/dax/poisson-dist-function-dax.md +++ b/query-languages/dax/poisson-dist-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: POISSON.DIST" title: "POISSON.DIST function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # POISSON.DIST diff --git a/query-languages/dax/power-function-dax.md b/query-languages/dax/power-function-dax.md index a4a345031..9985171c1 100644 --- a/query-languages/dax/power-function-dax.md +++ b/query-languages/dax/power-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: POWER" title: "POWER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # POWER diff --git a/query-languages/dax/ppmt-function-dax.md b/query-languages/dax/ppmt-function-dax.md index d936a03f6..c076026a6 100644 --- a/query-languages/dax/ppmt-function-dax.md +++ b/query-languages/dax/ppmt-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: PPMT" title: "PPMT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # PPMT diff --git a/query-languages/dax/previousday-function-dax.md b/query-languages/dax/previousday-function-dax.md index 02bd3e460..20ea6c44b 100644 --- a/query-languages/dax/previousday-function-dax.md +++ b/query-languages/dax/previousday-function-dax.md @@ -1,17 +1,9 @@ --- description: "Learn more about: PREVIOUSDAY" title: "PREVIOUSDAY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PREVIOUSDAY + Returns a table that contains a column of all dates representing the day that is previous to the first date in the **dates** column, in the current context. ## Syntax diff --git a/query-languages/dax/previousmonth-function-dax.md b/query-languages/dax/previousmonth-function-dax.md index 9009d4638..f24fa6855 100644 --- a/query-languages/dax/previousmonth-function-dax.md +++ b/query-languages/dax/previousmonth-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PREVIOUSMONTH" title: "PREVIOUSMONTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PREVIOUSMONTH diff --git a/query-languages/dax/previousquarter-function-dax.md b/query-languages/dax/previousquarter-function-dax.md index 261f5f235..d0e80a302 100644 --- a/query-languages/dax/previousquarter-function-dax.md +++ b/query-languages/dax/previousquarter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PREVIOUSQUARTER" title: "PREVIOUSQUARTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PREVIOUSQUARTER diff --git a/query-languages/dax/previousyear-function-dax.md b/query-languages/dax/previousyear-function-dax.md index f08d84319..36cdebdc7 100644 --- a/query-languages/dax/previousyear-function-dax.md +++ b/query-languages/dax/previousyear-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PREVIOUSYEAR" title: "PREVIOUSYEAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PREVIOUSYEAR diff --git a/query-languages/dax/price-function-dax.md b/query-languages/dax/price-function-dax.md index 325bba1e6..564796152 100644 --- a/query-languages/dax/price-function-dax.md +++ b/query-languages/dax/price-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: PRICE" title: "PRICE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # PRICE diff --git a/query-languages/dax/pricedisc-function-dax.md b/query-languages/dax/pricedisc-function-dax.md index b75098d8f..2bf737118 100644 --- a/query-languages/dax/pricedisc-function-dax.md +++ b/query-languages/dax/pricedisc-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: PRICEDISC" title: "PRICEDISC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # PRICEDISC diff --git a/query-languages/dax/pricemat-function-dax.md b/query-languages/dax/pricemat-function-dax.md index 4a34d7aa5..ab53e3dfd 100644 --- a/query-languages/dax/pricemat-function-dax.md +++ b/query-languages/dax/pricemat-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: PRICEMAT" title: "PRICEMAT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # PRICEMAT diff --git a/query-languages/dax/product-function-dax.md b/query-languages/dax/product-function-dax.md index 9aeba078d..229b62233 100644 --- a/query-languages/dax/product-function-dax.md +++ b/query-languages/dax/product-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PRODUCT" title: "PRODUCT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PRODUCT diff --git a/query-languages/dax/productx-function-dax.md b/query-languages/dax/productx-function-dax.md index a2e1d1e3e..c7153737b 100644 --- a/query-languages/dax/productx-function-dax.md +++ b/query-languages/dax/productx-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: PRODUCTX" title: "PRODUCTX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # PRODUCTX diff --git a/query-languages/dax/pv-function-dax.md b/query-languages/dax/pv-function-dax.md index fedffdcf8..c8bf31453 100644 --- a/query-languages/dax/pv-function-dax.md +++ b/query-languages/dax/pv-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: PV" title: "PV function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # PV diff --git a/query-languages/dax/quarter-function-dax.md b/query-languages/dax/quarter-function-dax.md index 34acd51ba..65bb66642 100644 --- a/query-languages/dax/quarter-function-dax.md +++ b/query-languages/dax/quarter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: QUARTER" title: "QUARTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # QUARTER diff --git a/query-languages/dax/quotient-function-dax.md b/query-languages/dax/quotient-function-dax.md index a8ce71a4c..1ead4d81d 100644 --- a/query-languages/dax/quotient-function-dax.md +++ b/query-languages/dax/quotient-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: QUOTIENT" title: "QUOTIENT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # QUOTIENT diff --git a/query-languages/dax/radians-function-dax.md b/query-languages/dax/radians-function-dax.md index b4fe7bcb1..393c7c9af 100644 --- a/query-languages/dax/radians-function-dax.md +++ b/query-languages/dax/radians-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: RADIANS" title: "RADIANS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # RADIANS diff --git a/query-languages/dax/rand-function-dax.md b/query-languages/dax/rand-function-dax.md index d34d542a7..eb44782a0 100644 --- a/query-languages/dax/rand-function-dax.md +++ b/query-languages/dax/rand-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: RAND" title: "RAND function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # RAND diff --git a/query-languages/dax/randbetween-function-dax.md b/query-languages/dax/randbetween-function-dax.md index ec83b6deb..cd469471e 100644 --- a/query-languages/dax/randbetween-function-dax.md +++ b/query-languages/dax/randbetween-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: RANDBETWEEN" title: "RANDBETWEEN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # RANDBETWEEN diff --git a/query-languages/dax/rank-eq-function-dax.md b/query-languages/dax/rank-eq-function-dax.md index 054a7710e..67d7d4506 100644 --- a/query-languages/dax/rank-eq-function-dax.md +++ b/query-languages/dax/rank-eq-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: RANK.EQ" title: "RANK.EQ function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # RANK.EQ diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 8cc6690f6..54a1a88b9 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -1,14 +1,7 @@ --- description: "Learn more about: RANK" title: "RANK function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 04/10/2023 -ms.topic: reference author: rahulten -ms.author: owend -recommendations: false - --- # RANK diff --git a/query-languages/dax/rankx-function-dax.md b/query-languages/dax/rankx-function-dax.md index 12f6eda20..e3a0c1644 100644 --- a/query-languages/dax/rankx-function-dax.md +++ b/query-languages/dax/rankx-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: RANKX" title: "RANKX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 04/05/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # RANKX diff --git a/query-languages/dax/rate-function-dax.md b/query-languages/dax/rate-function-dax.md index 3c9ed0a8b..9e4ef848f 100644 --- a/query-languages/dax/rate-function-dax.md +++ b/query-languages/dax/rate-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: RATE" title: "RATE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # RATE diff --git a/query-languages/dax/received-function-dax.md b/query-languages/dax/received-function-dax.md index 0bab658a6..44119c97c 100644 --- a/query-languages/dax/received-function-dax.md +++ b/query-languages/dax/received-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: RECEIVED" title: "RECEIVED function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # RECEIVED diff --git a/query-languages/dax/related-function-dax.md b/query-languages/dax/related-function-dax.md index f25ddacee..9b8a21fc8 100644 --- a/query-languages/dax/related-function-dax.md +++ b/query-languages/dax/related-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: RELATED" title: "RELATED function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/14/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # RELATED diff --git a/query-languages/dax/relatedtable-function-dax.md b/query-languages/dax/relatedtable-function-dax.md index cf9d61a68..bdf2abd14 100644 --- a/query-languages/dax/relatedtable-function-dax.md +++ b/query-languages/dax/relatedtable-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: RELATEDTABLE" title: "RELATEDTABLE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # RELATEDTABLE diff --git a/query-languages/dax/relationship-functions-dax.md b/query-languages/dax/relationship-functions-dax.md index ce6566536..0d844b02c 100644 --- a/query-languages/dax/relationship-functions-dax.md +++ b/query-languages/dax/relationship-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Relationship functions" title: "Relationship functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/24/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Relationship functions diff --git a/query-languages/dax/removefilters-function-dax.md b/query-languages/dax/removefilters-function-dax.md index a54181f17..892c7d637 100644 --- a/query-languages/dax/removefilters-function-dax.md +++ b/query-languages/dax/removefilters-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: REMOVEFILTERS" title: "REMOVEFILTERS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # REMOVEFILTERS diff --git a/query-languages/dax/replace-function-dax.md b/query-languages/dax/replace-function-dax.md index 9e7213eca..0ed16c182 100644 --- a/query-languages/dax/replace-function-dax.md +++ b/query-languages/dax/replace-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: REPLACE" title: "REPLACE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # REPLACE diff --git a/query-languages/dax/rept-function-dax.md b/query-languages/dax/rept-function-dax.md index 84404b32d..3b1ff0eb4 100644 --- a/query-languages/dax/rept-function-dax.md +++ b/query-languages/dax/rept-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: REPT" title: "REPT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # REPT diff --git a/query-languages/dax/right-function-dax.md b/query-languages/dax/right-function-dax.md index bb7f27fcb..9bfd5bb6a 100644 --- a/query-languages/dax/right-function-dax.md +++ b/query-languages/dax/right-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: RIGHT" title: "RIGHT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # RIGHT diff --git a/query-languages/dax/rollup-function-dax.md b/query-languages/dax/rollup-function-dax.md index 50801ef22..45e2170dc 100644 --- a/query-languages/dax/rollup-function-dax.md +++ b/query-languages/dax/rollup-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ROLLUP" title: "ROLLUP function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/01/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ROLLUP diff --git a/query-languages/dax/rollupaddissubtotal-function-dax.md b/query-languages/dax/rollupaddissubtotal-function-dax.md index e51b31f23..438063d03 100644 --- a/query-languages/dax/rollupaddissubtotal-function-dax.md +++ b/query-languages/dax/rollupaddissubtotal-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ROLLUPADDISSUBTOTAL" title: "ROLLUPADDISSUBTOTAL function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/09/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ROLLUPADDISSUBTOTAL diff --git a/query-languages/dax/rollupgroup-function-dax.md b/query-languages/dax/rollupgroup-function-dax.md index 8ee046923..8d21b4e0c 100644 --- a/query-languages/dax/rollupgroup-function-dax.md +++ b/query-languages/dax/rollupgroup-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ROLLUPGROUP" title: "ROLLUPGROUP function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/09/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ROLLUPGROUP diff --git a/query-languages/dax/rollupissubtotal-function-dax.md b/query-languages/dax/rollupissubtotal-function-dax.md index 686ce8335..a67b02cd1 100644 --- a/query-languages/dax/rollupissubtotal-function-dax.md +++ b/query-languages/dax/rollupissubtotal-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ROLLUPISSUBTOTAL" title: "ROLLUPISSUBTOTAL function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/09/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ROLLUPISSUBTOTAL diff --git a/query-languages/dax/round-function-dax.md b/query-languages/dax/round-function-dax.md index a75766b1d..0b602b7d0 100644 --- a/query-languages/dax/round-function-dax.md +++ b/query-languages/dax/round-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ROUND" title: "ROUND function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ROUND diff --git a/query-languages/dax/rounddown-function-dax.md b/query-languages/dax/rounddown-function-dax.md index e369e0626..d57797bb3 100644 --- a/query-languages/dax/rounddown-function-dax.md +++ b/query-languages/dax/rounddown-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ROUNDDOWN" title: "ROUNDDOWN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ROUNDDOWN diff --git a/query-languages/dax/roundup-function-dax.md b/query-languages/dax/roundup-function-dax.md index b97d46a88..c84c85bd9 100644 --- a/query-languages/dax/roundup-function-dax.md +++ b/query-languages/dax/roundup-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ROUNDUP" title: "ROUNDUP function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ROUNDUP diff --git a/query-languages/dax/row-function-dax.md b/query-languages/dax/row-function-dax.md index 659dcf0e8..c39fe88df 100644 --- a/query-languages/dax/row-function-dax.md +++ b/query-languages/dax/row-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: ROW function" title: "ROW function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # ROW function diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index c7367be77..6911a5e50 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -1,14 +1,7 @@ --- description: "Learn more about: ROWNUMBER" title: "ROWNUMBER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 04/10/2023 -ms.topic: reference author: rahulten -ms.author: owend -recommendations: false - --- # ROWNUMBER diff --git a/query-languages/dax/rri-function-dax.md b/query-languages/dax/rri-function-dax.md index 166b939f7..06b37945e 100644 --- a/query-languages/dax/rri-function-dax.md +++ b/query-languages/dax/rri-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: RRI" title: "RRI function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # RRI diff --git a/query-languages/dax/sameperiodlastyear-function-dax.md b/query-languages/dax/sameperiodlastyear-function-dax.md index 50ab24b68..31d9241ac 100644 --- a/query-languages/dax/sameperiodlastyear-function-dax.md +++ b/query-languages/dax/sameperiodlastyear-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SAMEPERIODLASTYEAR" title: "SAMEPERIODLASTYEAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SAMEPERIODLASTYEAR diff --git a/query-languages/dax/sample-function-dax.md b/query-languages/dax/sample-function-dax.md index 74061af06..0c85c88d2 100644 --- a/query-languages/dax/sample-function-dax.md +++ b/query-languages/dax/sample-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SAMPLE" title: "SAMPLE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SAMPLE diff --git a/query-languages/dax/search-function-dax.md b/query-languages/dax/search-function-dax.md index e99768ee7..35a94b3c2 100644 --- a/query-languages/dax/search-function-dax.md +++ b/query-languages/dax/search-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SEARCH" title: "SEARCH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 03/14/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SEARCH diff --git a/query-languages/dax/second-function-dax.md b/query-languages/dax/second-function-dax.md index 75ed4d7b6..4c031ca98 100644 --- a/query-languages/dax/second-function-dax.md +++ b/query-languages/dax/second-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SECOND" title: "SECOND function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SECOND diff --git a/query-languages/dax/selectcolumns-function-dax.md b/query-languages/dax/selectcolumns-function-dax.md index 1564ecd35..03a302a4a 100644 --- a/query-languages/dax/selectcolumns-function-dax.md +++ b/query-languages/dax/selectcolumns-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SELECTCOLUMNS" title: "SELECTCOLUMNS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/08/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SELECTCOLUMNS diff --git a/query-languages/dax/selectedmeasure-function-dax.md b/query-languages/dax/selectedmeasure-function-dax.md index 2866b7d01..9593fcbbb 100644 --- a/query-languages/dax/selectedmeasure-function-dax.md +++ b/query-languages/dax/selectedmeasure-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SELECTEDMEASURE" title: "SELECTEDMEASURE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SELECTEDMEASURE diff --git a/query-languages/dax/selectedmeasureformatstring-function-dax.md b/query-languages/dax/selectedmeasureformatstring-function-dax.md index f3067870d..db419b8f7 100644 --- a/query-languages/dax/selectedmeasureformatstring-function-dax.md +++ b/query-languages/dax/selectedmeasureformatstring-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SELECTEDMEASUREFORMATSTRING" title: "SELECTEDMEASUREFORMATSTRING function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SELECTEDMEASUREFORMATSTRING diff --git a/query-languages/dax/selectedmeasurename-function-dax.md b/query-languages/dax/selectedmeasurename-function-dax.md index 758bb208a..22aa03439 100644 --- a/query-languages/dax/selectedmeasurename-function-dax.md +++ b/query-languages/dax/selectedmeasurename-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SELECTEDMEASURENAME" title: "SELECTEDMEASURENAME function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SELECTEDMEASURENAME diff --git a/query-languages/dax/selectedvalue-function.md b/query-languages/dax/selectedvalue-function.md index 3ffb99781..8785af447 100644 --- a/query-languages/dax/selectedvalue-function.md +++ b/query-languages/dax/selectedvalue-function.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SELECTEDVALUE" title: "SELECTEDVALUE function | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SELECTEDVALUE diff --git a/query-languages/dax/sign-function-dax.md b/query-languages/dax/sign-function-dax.md index 73d83304f..34bbe27fa 100644 --- a/query-languages/dax/sign-function-dax.md +++ b/query-languages/dax/sign-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SIGN" title: "SIGN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SIGN diff --git a/query-languages/dax/sin-function-dax.md b/query-languages/dax/sin-function-dax.md index fd7bae895..b86d0045b 100644 --- a/query-languages/dax/sin-function-dax.md +++ b/query-languages/dax/sin-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SIN" title: "SIN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SIN diff --git a/query-languages/dax/sinh-function-dax.md b/query-languages/dax/sinh-function-dax.md index 8258d014d..9a214ab21 100644 --- a/query-languages/dax/sinh-function-dax.md +++ b/query-languages/dax/sinh-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SINH" title: "SINH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SINH diff --git a/query-languages/dax/sln-function-dax.md b/query-languages/dax/sln-function-dax.md index b01343444..44b5e1944 100644 --- a/query-languages/dax/sln-function-dax.md +++ b/query-languages/dax/sln-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: SLN" title: "SLN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # SLN diff --git a/query-languages/dax/sqrt-function-dax.md b/query-languages/dax/sqrt-function-dax.md index 547e750c7..49faa33e5 100644 --- a/query-languages/dax/sqrt-function-dax.md +++ b/query-languages/dax/sqrt-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SQRT" title: "SQRT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SQRT diff --git a/query-languages/dax/sqrtpi-function-dax.md b/query-languages/dax/sqrtpi-function-dax.md index 6fd08fabf..77c37b2f6 100644 --- a/query-languages/dax/sqrtpi-function-dax.md +++ b/query-languages/dax/sqrtpi-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SQRTPI" title: "SQRTPI function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SQRTPI diff --git a/query-languages/dax/startat-statement-dax.md b/query-languages/dax/startat-statement-dax.md index fee060012..e4e647c82 100644 --- a/query-languages/dax/startat-statement-dax.md +++ b/query-languages/dax/startat-statement-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: START AT" title: "START AT keyword (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/16/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # START AT diff --git a/query-languages/dax/startofmonth-function-dax.md b/query-languages/dax/startofmonth-function-dax.md index 81a265c28..afef909d8 100644 --- a/query-languages/dax/startofmonth-function-dax.md +++ b/query-languages/dax/startofmonth-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: STARTOFMONTH" title: "STARTOFMONTH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # STARTOFMONTH Returns the first date of the month in the current context for the specified column of dates. diff --git a/query-languages/dax/startofquarter-function-dax.md b/query-languages/dax/startofquarter-function-dax.md index e8ade03da..a4e2bf999 100644 --- a/query-languages/dax/startofquarter-function-dax.md +++ b/query-languages/dax/startofquarter-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: STARTOFQUARTER" title: "STARTOFQUARTER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # STARTOFQUARTER diff --git a/query-languages/dax/startofyear-function-dax.md b/query-languages/dax/startofyear-function-dax.md index bc9d3330a..3bbd1042e 100644 --- a/query-languages/dax/startofyear-function-dax.md +++ b/query-languages/dax/startofyear-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: STARTOFYEAR" title: "STARTOFYEAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # STARTOFYEAR diff --git a/query-languages/dax/statements-dax.md b/query-languages/dax/statements-dax.md index 905b8dd67..5a7d4f7f1 100644 --- a/query-languages/dax/statements-dax.md +++ b/query-languages/dax/statements-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Statements" title: "Statements(DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/17/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Statements diff --git a/query-languages/dax/statistical-functions-dax.md b/query-languages/dax/statistical-functions-dax.md index 95f09b4d8..06f7f2ff5 100644 --- a/query-languages/dax/statistical-functions-dax.md +++ b/query-languages/dax/statistical-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Statistical functions" title: "Statistical functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/28/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Statistical functions diff --git a/query-languages/dax/stdev-p-function-dax.md b/query-languages/dax/stdev-p-function-dax.md index 38a8d9c62..09c0064ad 100644 --- a/query-languages/dax/stdev-p-function-dax.md +++ b/query-languages/dax/stdev-p-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: STDEV.P" title: "STDEV.P function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # STDEV.P diff --git a/query-languages/dax/stdev-s-function-dax.md b/query-languages/dax/stdev-s-function-dax.md index 6dcb6a019..a2d4da511 100644 --- a/query-languages/dax/stdev-s-function-dax.md +++ b/query-languages/dax/stdev-s-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: STDEV.S" title: "STDEV.S function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # STDEV.S diff --git a/query-languages/dax/stdevx-p-function-dax.md b/query-languages/dax/stdevx-p-function-dax.md index d9d5b8f0c..5e3cf1c41 100644 --- a/query-languages/dax/stdevx-p-function-dax.md +++ b/query-languages/dax/stdevx-p-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: STDEVX.P" title: "STDEVX.P function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # STDEVX.P diff --git a/query-languages/dax/stdevx-s-function-dax.md b/query-languages/dax/stdevx-s-function-dax.md index b4d402833..f80f0d1da 100644 --- a/query-languages/dax/stdevx-s-function-dax.md +++ b/query-languages/dax/stdevx-s-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: STDEVX.S" title: "STDEVX.S function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # STDEVX.S diff --git a/query-languages/dax/substitute-function-dax.md b/query-languages/dax/substitute-function-dax.md index 317160c3b..7a5d37326 100644 --- a/query-languages/dax/substitute-function-dax.md +++ b/query-languages/dax/substitute-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SUBSTITUTE" title: "SUBSTITUTE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SUBSTITUTE diff --git a/query-languages/dax/substitutewithindex-function-dax.md b/query-languages/dax/substitutewithindex-function-dax.md index d352255ac..94c8897de 100644 --- a/query-languages/dax/substitutewithindex-function-dax.md +++ b/query-languages/dax/substitutewithindex-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SUBSTITUTEWITHINDEX" title: "SUBSTITUTEWITHINDEX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SUBSTITUTEWITHINDEX diff --git a/query-languages/dax/sum-function-dax.md b/query-languages/dax/sum-function-dax.md index d89d2f465..0be2a9204 100644 --- a/query-languages/dax/sum-function-dax.md +++ b/query-languages/dax/sum-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SUM" title: "SUM function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SUM diff --git a/query-languages/dax/summarize-function-dax.md b/query-languages/dax/summarize-function-dax.md index 23f045497..e1900f573 100644 --- a/query-languages/dax/summarize-function-dax.md +++ b/query-languages/dax/summarize-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SUMMARIZE" title: "SUMMARIZE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/02/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SUMMARIZE diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index fbcc742aa..b28cbb7f9 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SUMMARIZECOLUMNS" title: "SUMMARIZECOLUMNS function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 09/02/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SUMMARIZECOLUMNS diff --git a/query-languages/dax/sumx-function-dax.md b/query-languages/dax/sumx-function-dax.md index 0c063fbcc..e734c1234 100644 --- a/query-languages/dax/sumx-function-dax.md +++ b/query-languages/dax/sumx-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SUMX" title: "SUMX function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/07/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SUMX diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index 2e7721bd7..4a39640e6 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: SWITCH" title: "SWITCH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/06/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # SWITCH diff --git a/query-languages/dax/syd-function-dax.md b/query-languages/dax/syd-function-dax.md index 85e03f796..d49079b98 100644 --- a/query-languages/dax/syd-function-dax.md +++ b/query-languages/dax/syd-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: SYD" title: "SYD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # SYD diff --git a/query-languages/dax/t-dist-2t-dax.md b/query-languages/dax/t-dist-2t-dax.md index 1a8c77d7c..f85fd7804 100644 --- a/query-languages/dax/t-dist-2t-dax.md +++ b/query-languages/dax/t-dist-2t-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: T.DIST.2T" title: "T.DIST.2T function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # T.DIST.2T diff --git a/query-languages/dax/t-dist-dax.md b/query-languages/dax/t-dist-dax.md index 8f6d27e9e..7e7d87f50 100644 --- a/query-languages/dax/t-dist-dax.md +++ b/query-languages/dax/t-dist-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: T.DIST" title: "T.DIST function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # T.DIST diff --git a/query-languages/dax/t-dist-rt-dax.md b/query-languages/dax/t-dist-rt-dax.md index 217dd9bb5..163a856d4 100644 --- a/query-languages/dax/t-dist-rt-dax.md +++ b/query-languages/dax/t-dist-rt-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: T.DIST.RT" title: "T.DIST.RT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # T.DIST.RT diff --git a/query-languages/dax/t-inv-2t-dax.md b/query-languages/dax/t-inv-2t-dax.md index a2a9fd5e4..a46045792 100644 --- a/query-languages/dax/t-inv-2t-dax.md +++ b/query-languages/dax/t-inv-2t-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: T.INV.2T" title: "T.INV.2T function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # T.INV.2T diff --git a/query-languages/dax/t-inv-dax.md b/query-languages/dax/t-inv-dax.md index 4cba343d6..c97f8f635 100644 --- a/query-languages/dax/t-inv-dax.md +++ b/query-languages/dax/t-inv-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: T.INV" title: "T.INV function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # T.INV diff --git a/query-languages/dax/table-constructor.md b/query-languages/dax/table-constructor.md index d19ddbb4d..d31a1adab 100644 --- a/query-languages/dax/table-constructor.md +++ b/query-languages/dax/table-constructor.md @@ -1,15 +1,6 @@ --- description: "Learn more about: Table constructor" title: "Table constructor | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/23/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # Table constructor diff --git a/query-languages/dax/table-manipulation-functions-dax.md b/query-languages/dax/table-manipulation-functions-dax.md index eec5fd8cb..a5bd6272b 100644 --- a/query-languages/dax/table-manipulation-functions-dax.md +++ b/query-languages/dax/table-manipulation-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Table manipulation functions" title: "Table manipulation functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/26/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Table manipulation functions diff --git a/query-languages/dax/tan-function-dax.md b/query-languages/dax/tan-function-dax.md index fce7b7ed2..5e921ee55 100644 --- a/query-languages/dax/tan-function-dax.md +++ b/query-languages/dax/tan-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TAN" title: "TAN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TAN diff --git a/query-languages/dax/tanh-function-dax.md b/query-languages/dax/tanh-function-dax.md index 7c4f828cd..7d82f5e8c 100644 --- a/query-languages/dax/tanh-function-dax.md +++ b/query-languages/dax/tanh-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TANH" title: "TANH function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TANH diff --git a/query-languages/dax/tbilleq-function-dax.md b/query-languages/dax/tbilleq-function-dax.md index b2edad967..04e69cd29 100644 --- a/query-languages/dax/tbilleq-function-dax.md +++ b/query-languages/dax/tbilleq-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: TBILLEQ" title: "TBILLEQ function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # TBILLEQ diff --git a/query-languages/dax/tbillprice-function-dax.md b/query-languages/dax/tbillprice-function-dax.md index b52ed03e0..13035575c 100644 --- a/query-languages/dax/tbillprice-function-dax.md +++ b/query-languages/dax/tbillprice-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: TBILLPRICE" title: "TBILLPRICE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # TBILLPRICE diff --git a/query-languages/dax/tbillyield-function-dax.md b/query-languages/dax/tbillyield-function-dax.md index be85d3af4..1f901c8f1 100644 --- a/query-languages/dax/tbillyield-function-dax.md +++ b/query-languages/dax/tbillyield-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: TBILLYIELD" title: "TBILLYIELD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # TBILLYIELD diff --git a/query-languages/dax/text-functions-dax.md b/query-languages/dax/text-functions-dax.md index 72c639626..6bccdc3fb 100644 --- a/query-languages/dax/text-functions-dax.md +++ b/query-languages/dax/text-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Text functions" title: "Text functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Text functions diff --git a/query-languages/dax/time-function-dax.md b/query-languages/dax/time-function-dax.md index 8a127e371..2a144919c 100644 --- a/query-languages/dax/time-function-dax.md +++ b/query-languages/dax/time-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TIME" title: "TIME function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TIME diff --git a/query-languages/dax/time-intelligence-functions-dax.md b/query-languages/dax/time-intelligence-functions-dax.md index 65cd2a2fa..34b3fcf0e 100644 --- a/query-languages/dax/time-intelligence-functions-dax.md +++ b/query-languages/dax/time-intelligence-functions-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: Time intelligence functions" title: "Time intelligence functions (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/06/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # Time intelligence functions diff --git a/query-languages/dax/timevalue-function-dax.md b/query-languages/dax/timevalue-function-dax.md index d31bee921..1d4e74bf7 100644 --- a/query-languages/dax/timevalue-function-dax.md +++ b/query-languages/dax/timevalue-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TIMEVALUE" title: "TIMEVALUE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TIMEVALUE diff --git a/query-languages/dax/tocsv-function-dax.md b/query-languages/dax/tocsv-function-dax.md index aa4089b26..5be0c6be2 100644 --- a/query-languages/dax/tocsv-function-dax.md +++ b/query-languages/dax/tocsv-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TOCSV" title: "TOCSV function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/26/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TOCSV diff --git a/query-languages/dax/today-function-dax.md b/query-languages/dax/today-function-dax.md index ae7dcc021..7bfc95de8 100644 --- a/query-languages/dax/today-function-dax.md +++ b/query-languages/dax/today-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TODAY" title: "TODAY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TODAY diff --git a/query-languages/dax/tojson-function-dax.md b/query-languages/dax/tojson-function-dax.md index e645c6d0c..91ea30db1 100644 --- a/query-languages/dax/tojson-function-dax.md +++ b/query-languages/dax/tojson-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TOJSON" title: "TOJSON function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 10/26/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TOJSON diff --git a/query-languages/dax/topn-function-dax.md b/query-languages/dax/topn-function-dax.md index 0ad8d8c1b..eec7b305c 100644 --- a/query-languages/dax/topn-function-dax.md +++ b/query-languages/dax/topn-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TOPN" title: "TOPN function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 02/01/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TOPN diff --git a/query-languages/dax/totalmtd-function-dax.md b/query-languages/dax/totalmtd-function-dax.md index 3077ec9e0..2abc93c0c 100644 --- a/query-languages/dax/totalmtd-function-dax.md +++ b/query-languages/dax/totalmtd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TOTALMTD" title: "TOTALMTD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TOTALMTD diff --git a/query-languages/dax/totalqtd-function-dax.md b/query-languages/dax/totalqtd-function-dax.md index 6e0ccb1fe..87f5de2d4 100644 --- a/query-languages/dax/totalqtd-function-dax.md +++ b/query-languages/dax/totalqtd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TOTALQTD" title: "TOTALQTD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TOTALQTD diff --git a/query-languages/dax/totalytd-function-dax.md b/query-languages/dax/totalytd-function-dax.md index a6022b6ca..447548fee 100644 --- a/query-languages/dax/totalytd-function-dax.md +++ b/query-languages/dax/totalytd-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TOTALYTD" title: "TOTALYTD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TOTALYTD diff --git a/query-languages/dax/treatas-function.md b/query-languages/dax/treatas-function.md index 9174bf6eb..296a57628 100644 --- a/query-languages/dax/treatas-function.md +++ b/query-languages/dax/treatas-function.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TREATAS" title: "TREATAS function | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TREATAS diff --git a/query-languages/dax/trim-function-dax.md b/query-languages/dax/trim-function-dax.md index 47a30d0ec..2b8e5339a 100644 --- a/query-languages/dax/trim-function-dax.md +++ b/query-languages/dax/trim-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TRIM" title: "TRIM function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/10/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TRIM diff --git a/query-languages/dax/true-function-dax.md b/query-languages/dax/true-function-dax.md index 9710c7920..909f18d7e 100644 --- a/query-languages/dax/true-function-dax.md +++ b/query-languages/dax/true-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TRUE" title: "TRUE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 05/03/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TRUE diff --git a/query-languages/dax/trunc-function-dax.md b/query-languages/dax/trunc-function-dax.md index 6349473c2..66a8767af 100644 --- a/query-languages/dax/trunc-function-dax.md +++ b/query-languages/dax/trunc-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: TRUNC" title: "TRUNC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # TRUNC diff --git a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md index 888cc8075..94e8b5f26 100644 --- a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md +++ b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: Understanding functions for parent-child hierarchies in DAX" title: "Understanding functions for parent-child hierarchies in DAX | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/04/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # Understanding functions for parent-child hierarchies in DAX diff --git a/query-languages/dax/unichar-function-dax.md b/query-languages/dax/unichar-function-dax.md index b2422a2a6..0fabdcd71 100644 --- a/query-languages/dax/unichar-function-dax.md +++ b/query-languages/dax/unichar-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: UNICHAR" title: "UNICHAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # UNICHAR diff --git a/query-languages/dax/unicode-function-dax.md b/query-languages/dax/unicode-function-dax.md index 3dd8f00ba..8cf5800e7 100644 --- a/query-languages/dax/unicode-function-dax.md +++ b/query-languages/dax/unicode-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: UNICODE" title: "UNICODE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # UNICODE diff --git a/query-languages/dax/union-function-dax.md b/query-languages/dax/union-function-dax.md index 6c4860b4a..32c342f58 100644 --- a/query-languages/dax/union-function-dax.md +++ b/query-languages/dax/union-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: UNION" title: "UNION function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # UNION diff --git a/query-languages/dax/upper-function-dax.md b/query-languages/dax/upper-function-dax.md index 29026d2e2..f55d52c8d 100644 --- a/query-languages/dax/upper-function-dax.md +++ b/query-languages/dax/upper-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: UPPER" title: "UPPER function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # UPPER diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index a8cf77f45..8c56f9081 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: USERCULTURE" title: "USERCULTURE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/31/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # USERCULTURE diff --git a/query-languages/dax/userelationship-function-dax.md b/query-languages/dax/userelationship-function-dax.md index 569ba0f12..6aab35d69 100644 --- a/query-languages/dax/userelationship-function-dax.md +++ b/query-languages/dax/userelationship-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: USERELATIONSHIP" title: "USERELATIONSHIP function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # USERELATIONSHIP diff --git a/query-languages/dax/username-function-dax.md b/query-languages/dax/username-function-dax.md index 4ca395ce1..56c4a716e 100644 --- a/query-languages/dax/username-function-dax.md +++ b/query-languages/dax/username-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: USERNAME" title: "USERNAME function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # USERNAME diff --git a/query-languages/dax/userobjectid-function-dax.md b/query-languages/dax/userobjectid-function-dax.md index 17e3acd0d..f27a46b14 100644 --- a/query-languages/dax/userobjectid-function-dax.md +++ b/query-languages/dax/userobjectid-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: USEROBJECTID" title: "USEROBJECTID function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # USEROBJECTID diff --git a/query-languages/dax/userprincipalname-function-dax.md b/query-languages/dax/userprincipalname-function-dax.md index f4d9f52a3..dbb95dd2c 100644 --- a/query-languages/dax/userprincipalname-function-dax.md +++ b/query-languages/dax/userprincipalname-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: USERPRINCIPALNAME" title: "USERPRINCIPALNAME function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # USERPRINCIPALNAME diff --git a/query-languages/dax/utcnow-function-dax.md b/query-languages/dax/utcnow-function-dax.md index 0fb65b272..e4e2f04fe 100644 --- a/query-languages/dax/utcnow-function-dax.md +++ b/query-languages/dax/utcnow-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: UTCNOW" title: "UTCNOW function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # UTCNOW diff --git a/query-languages/dax/utctoday-function-dax.md b/query-languages/dax/utctoday-function-dax.md index e1dbc5603..cc7b0742f 100644 --- a/query-languages/dax/utctoday-function-dax.md +++ b/query-languages/dax/utctoday-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: UTCTODAY" title: "UTCTODAY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/06/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # UTCTODAY diff --git a/query-languages/dax/value-function-dax.md b/query-languages/dax/value-function-dax.md index 8bab7f491..bdd56b63d 100644 --- a/query-languages/dax/value-function-dax.md +++ b/query-languages/dax/value-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: VALUE" title: "VALUE function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # VALUE diff --git a/query-languages/dax/values-function-dax.md b/query-languages/dax/values-function-dax.md index e10b0681d..a3928a08d 100644 --- a/query-languages/dax/values-function-dax.md +++ b/query-languages/dax/values-function-dax.md @@ -1,14 +1,6 @@ --- description: "Learn more about: VALUES" title: "VALUES function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 05/03/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false --- # VALUES diff --git a/query-languages/dax/var-dax.md b/query-languages/dax/var-dax.md index 94b65c106..41b48c083 100644 --- a/query-languages/dax/var-dax.md +++ b/query-languages/dax/var-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: VAR" title: "VAR keyword (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/24/2022 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # VAR diff --git a/query-languages/dax/var-p-function-dax.md b/query-languages/dax/var-p-function-dax.md index 901baa86b..2993021ef 100644 --- a/query-languages/dax/var-p-function-dax.md +++ b/query-languages/dax/var-p-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: VAR.P" title: "VAR.P function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # VAR.P diff --git a/query-languages/dax/var-s-function-dax.md b/query-languages/dax/var-s-function-dax.md index 75c4e9747..cbe517e53 100644 --- a/query-languages/dax/var-s-function-dax.md +++ b/query-languages/dax/var-s-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: VAR.S" title: "VAR.S function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # VAR.S diff --git a/query-languages/dax/varx-p-function-dax.md b/query-languages/dax/varx-p-function-dax.md index d397050ff..076ffb44a 100644 --- a/query-languages/dax/varx-p-function-dax.md +++ b/query-languages/dax/varx-p-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: VARX.P" title: "VARX.P function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # VARX.P diff --git a/query-languages/dax/varx-s-function-dax.md b/query-languages/dax/varx-s-function-dax.md index 7041fb100..e8b98a3be 100644 --- a/query-languages/dax/varx-s-function-dax.md +++ b/query-languages/dax/varx-s-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: VARX.S" title: "VARX.S function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # VARX.S diff --git a/query-languages/dax/vdb-function-dax.md b/query-languages/dax/vdb-function-dax.md index 1fbbab7e6..fc4eebec8 100644 --- a/query-languages/dax/vdb-function-dax.md +++ b/query-languages/dax/vdb-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: VDB" title: "VDB function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # VDB diff --git a/query-languages/dax/weekday-function-dax.md b/query-languages/dax/weekday-function-dax.md index 962eccea5..5f79ed67c 100644 --- a/query-languages/dax/weekday-function-dax.md +++ b/query-languages/dax/weekday-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: WEEKDAY" title: "WEEKDAY function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # WEEKDAY diff --git a/query-languages/dax/weeknum-function-dax.md b/query-languages/dax/weeknum-function-dax.md index 33923b88e..42bd5851c 100644 --- a/query-languages/dax/weeknum-function-dax.md +++ b/query-languages/dax/weeknum-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: WEEKNUM" title: "WEEKNUM function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 06/15/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # WEEKNUM diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 9e6998926..e3908f632 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: WINDOW" title: "WINDOW function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/01/2023 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # WINDOW diff --git a/query-languages/dax/xirr-function-dax.md b/query-languages/dax/xirr-function-dax.md index b201a3a2b..cca4c6139 100644 --- a/query-languages/dax/xirr-function-dax.md +++ b/query-languages/dax/xirr-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: XIRR" title: "XIRR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 12/17/2021 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # XIRR diff --git a/query-languages/dax/xnpv-function-dax.md b/query-languages/dax/xnpv-function-dax.md index feff7ef73..ed11203f1 100644 --- a/query-languages/dax/xnpv-function-dax.md +++ b/query-languages/dax/xnpv-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: XNPV" title: "XNPV function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 08/07/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # XNPV diff --git a/query-languages/dax/year-function-dax.md b/query-languages/dax/year-function-dax.md index 4948b2383..22f9deed2 100644 --- a/query-languages/dax/year-function-dax.md +++ b/query-languages/dax/year-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: YEAR" title: "YEAR function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # YEAR diff --git a/query-languages/dax/yearfrac-function-dax.md b/query-languages/dax/yearfrac-function-dax.md index e6fa43b9b..8079d7945 100644 --- a/query-languages/dax/yearfrac-function-dax.md +++ b/query-languages/dax/yearfrac-function-dax.md @@ -1,15 +1,6 @@ --- description: "Learn more about: YEARFRAC" title: "YEARFRAC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/13/2020 -ms.reviewer: owend -ms.topic: reference -author: minewiskan -ms.author: owend -recommendations: false - --- # YEARFRAC diff --git a/query-languages/dax/yield-function-dax.md b/query-languages/dax/yield-function-dax.md index 3c78988a6..bff13bb41 100644 --- a/query-languages/dax/yield-function-dax.md +++ b/query-languages/dax/yield-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: YIELD" title: "YIELD function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # YIELD diff --git a/query-languages/dax/yielddisc-function-dax.md b/query-languages/dax/yielddisc-function-dax.md index 77d71f9e6..e99555ccc 100644 --- a/query-languages/dax/yielddisc-function-dax.md +++ b/query-languages/dax/yielddisc-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: YIELDDISC" title: "YIELDDISC function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 01/06/2021 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # YIELDDISC diff --git a/query-languages/dax/yieldmat-function-dax.md b/query-languages/dax/yieldmat-function-dax.md index 6941be1dc..3c5f66c6f 100644 --- a/query-languages/dax/yieldmat-function-dax.md +++ b/query-languages/dax/yieldmat-function-dax.md @@ -1,15 +1,7 @@ --- description: "Learn more about: YIELDMAT" title: "YIELDMAT function (DAX) | Microsoft Docs" -ms.service: powerbi -ms.subservice: dax -ms.date: 07/02/2020 -ms.reviewer: owend -ms.topic: reference author: jajin7 -ms.author: owend -recommendations: false - --- # YIELDMAT From c9244691f93d25a2952ac700c93c78b18fd09046 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 24 Oct 2023 12:51:50 -0700 Subject: [PATCH 345/934] Added November updates to Power Query M reference --- query-languages/m/action-witherrorcontext.md | 15 +++++++++ query-languages/m/character-fromnumber.md | 32 ++++++++++++++++++- query-languages/m/character-tonumber.md | 18 ++++++++++- .../m/combiner-combinetextbyeachdelimiter.md | 16 +++++++++- .../m/combiner-combinetextbylengths.md | 30 ++++++++++++++++- .../m/combiner-combinetextbypositions.md | 16 +++++++++- .../m/combiner-combinetextbyranges.md | 16 +++++++++- query-languages/m/combiner-functions.md | 14 ++++---- query-languages/m/docfx.json | 2 +- .../m/function-invokewitherrorcontext.md | 15 +++++++++ query-languages/m/sharepoint-tables.md | 1 + query-languages/m/table-fromlist.md | 30 ++++++++++------- query-languages/m/table-onerror.md | 16 ---------- query-languages/m/table-witherrorcontext.md | 15 +++++++++ query-languages/m/text-functions.md | 6 ++-- query-languages/m/type-replacetablekeys.md | 6 ++-- query-languages/m/type-tablekeys.md | 3 +- query-languages/m/value-functions.md | 14 ++++---- 18 files changed, 211 insertions(+), 54 deletions(-) create mode 100644 query-languages/m/action-witherrorcontext.md create mode 100644 query-languages/m/function-invokewitherrorcontext.md delete mode 100644 query-languages/m/table-onerror.md create mode 100644 query-languages/m/table-witherrorcontext.md diff --git a/query-languages/m/action-witherrorcontext.md b/query-languages/m/action-witherrorcontext.md new file mode 100644 index 000000000..3014f292e --- /dev/null +++ b/query-languages/m/action-witherrorcontext.md @@ -0,0 +1,15 @@ +--- +description: "Learn more about: Action.WithErrorContext" +title: "Action.WithErrorContext" +--- +# Action.WithErrorContext + +## Syntax + +
+Action.WithErrorContext(action as action, context as text) as action
+
+ +## About + +This function is intended for internal use only. diff --git a/query-languages/m/character-fromnumber.md b/query-languages/m/character-fromnumber.md index 6d4537bfc..03f8c5659 100644 --- a/query-languages/m/character-fromnumber.md +++ b/query-languages/m/character-fromnumber.md @@ -14,9 +14,11 @@ Character.FromNumber(number as nullable number) as nullable text Returns the character equivalent of the number. +The provided `number` should be a 21-bit Unicode code point. + ## Example 1 -Given the number 9, find the character value. +Convert a number to its equivalent character value. **Usage** @@ -27,3 +29,31 @@ Character.FromNumber(9) **Output** `"#(tab)"` + +## Example 2 + +Convert a character to a number and back again. + +**Usage** + +```powerquery-m +Character.FromNumber(Character.ToNumber("A")) +``` + +**Output** + +`"A"` + +## Example 3 + +Convert the hexadecimal code point for the "grinning face" emoticon to its equivalent UTF-16 surrogate pair. + +**Usage** + +```powerquery-m +Character.FromNumber(0x1F600) +``` + +**Output** + +`"#(0001F600)"` diff --git a/query-languages/m/character-tonumber.md b/query-languages/m/character-tonumber.md index 594245ada..130d18207 100644 --- a/query-languages/m/character-tonumber.md +++ b/query-languages/m/character-tonumber.md @@ -14,9 +14,11 @@ Character.ToNumber(character as nullable text) as nullable number Returns the number equivalent of the character, `character`. +The result will be the 21-bit Unicode code point represented by the provided character or surrogate pair. + ## Example 1 -Given the character "#(tab)" 9, find the number value. +Convert a character to its equivalent number value. **Usage** @@ -27,3 +29,17 @@ Character.ToNumber("#(tab)") **Output** `9` + +## Example 2 + +Convert the UTF-16 surrogate pair for the "grinning face" emoticon to its equivalent hexadecimal code point. + +**Usage** + +```powerquery-m +Number.ToText(Character.ToNumber("#(0001F600)"), "X") +``` + +**Output** + +`"1F600"` diff --git a/query-languages/m/combiner-combinetextbyeachdelimiter.md b/query-languages/m/combiner-combinetextbyeachdelimiter.md index 7afff1c0b..42681fcb1 100644 --- a/query-languages/m/combiner-combinetextbyeachdelimiter.md +++ b/query-languages/m/combiner-combinetextbyeachdelimiter.md @@ -12,4 +12,18 @@ Combiner.CombineTextByEachDelimiter(delimiters as list, optional quote ## About -Returns a function that combines a list of text into a single text using each specified delimiter in sequence. +Returns a function that combines a list of text values into a single text value using a sequence of delimiters. + +## Example 1 + +Combine a list of text values using a sequence of delimiters. + +**Usage** + +```powerquery-m +Combiner.CombineTextByEachDelimiter({"=", "+"})({"a", "b", "c"}) +``` + +**Output** + +`"a=b+c"` diff --git a/query-languages/m/combiner-combinetextbylengths.md b/query-languages/m/combiner-combinetextbylengths.md index a51ab75b5..64cec4df5 100644 --- a/query-languages/m/combiner-combinetextbylengths.md +++ b/query-languages/m/combiner-combinetextbylengths.md @@ -12,4 +12,32 @@ Combiner.CombineTextByLengths(lengths as list, optional template a ## About -Returns a function that combines a list of text into a single text using the specified lengths. +Returns a function that combines a list of text values into a single text value using the specified lengths. + +## Example 1 + +Combine a list of text values by extracting the specified numbers of characters from each input value. + +**Usage** + +```powerquery-m +Combiner.CombineTextByLengths({1, 2, 3})({"aaa", "bbb", "ccc"}) +``` + +**Output** + +`"abbccc"` + +## Example 2 + +Combine a list of text values by extracting the specified numbers of characters, after first pre-filling the result with the template text. + +**Usage** + +```powerquery-m +Combiner.CombineTextByLengths({1, 2, 3}, "*********")({"aaa", "bbb", "ccc"}) +``` + +**Output** + +`"abbccc***"` diff --git a/query-languages/m/combiner-combinetextbypositions.md b/query-languages/m/combiner-combinetextbypositions.md index fe4605d4f..1f6132e9a 100644 --- a/query-languages/m/combiner-combinetextbypositions.md +++ b/query-languages/m/combiner-combinetextbypositions.md @@ -12,4 +12,18 @@ Combiner.CombineTextByPositions(positions as list, optional templateranges as list, optional template as ## About -Returns a function that combines a list of text into a single text using the specified positions and lengths. A null length indicates that the entire text value should be included. +Returns a function that combines a list of text values into a single text value using the specified output positions and lengths. A null length indicates that the entire text value should be included. + +## Example 1 + +Combine a list of text values using the specified output positions and lengths. + +**Usage** + +```powerquery-m +Combiner.CombineTextByRanges({{0, 1}, {3, 2}, {6, null}})({"abc", "def", "ghijkl"}) +``` + +**Output** + +`"a de ghijkl"` diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index 8dc086f16..b77d6e38e 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -1,17 +1,17 @@ --- description: "Learn more about: Combiner functions" title: "Combiner functions" -ms.date: 6/15/2023 +ms.date: 10/19/2023 ms.custom: "nonautomated-date" --- # Combiner functions -These functions are used by other library functions that merge values. For example, `Table.ToList` and `Table.CombineColumns` apply a combiner function to each row in a table to produce a single value for each row. +These functions are used by other library functions that merge values. For example, [Table.ToList](table-tolist.md) and [Table.CombineColumns](table-combinecolumns.md) apply a combiner function to each row in a table to produce a single value for each row. |Name|Description| |------------|---------------| -|[Combiner.CombineTextByDelimiter](combiner-combinetextbydelimiter.md)|Returns a function that combines a list of text values into a single text value using the specified delimiter.| -|[Combiner.CombineTextByEachDelimiter](combiner-combinetextbyeachdelimiter.md)|Returns a function that combines a list of text into a single text using each specified delimiter in sequence.| -|[Combiner.CombineTextByLengths](combiner-combinetextbylengths.md)|Returns a function that combines a list of text into a single text using the specified lengths.| -|[Combiner.CombineTextByPositions](combiner-combinetextbypositions.md)|Returns a function that combines a list of text into a single text using the specified positions.| -|[Combiner.CombineTextByRanges](combiner-combinetextbyranges.md)|Returns a function that combines a list of text into a single text using the specified positions and lengths.| +|[Combiner.CombineTextByDelimiter](combiner-combinetextbydelimiter.md)|Returns a function that combines a list of text using the specified delimiter.| +|[Combiner.CombineTextByEachDelimiter](combiner-combinetextbyeachdelimiter.md)|Returns a function that combines a list of text using a sequence of delimiters.| +|[Combiner.CombineTextByLengths](combiner-combinetextbylengths.md)|Returns a function that combines a list of text using the specified lengths.| +|[Combiner.CombineTextByPositions](combiner-combinetextbypositions.md)|Returns a function that combines a list of text using the specified output positions.| +|[Combiner.CombineTextByRanges](combiner-combinetextbyranges.md)|Returns a function that combines a list of text using the specified positions and lengths.| diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 5817ce145..1dbd4825b 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -45,7 +45,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "09/11/2023" + "ms.date": "10/19/2023" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/function-invokewitherrorcontext.md b/query-languages/m/function-invokewitherrorcontext.md new file mode 100644 index 000000000..6924e002b --- /dev/null +++ b/query-languages/m/function-invokewitherrorcontext.md @@ -0,0 +1,15 @@ +--- +description: "Learn more about: Function.InvokeWithErrorContext" +title: "Function.InvokeWithErrorContext" +--- +# Function.InvokeWithErrorContext + +## Syntax + +
+Function.InvokeWithErrorContext(function as function, context as text) as any
+
+ +## About + +This function is intended for internal use only. diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index 5639aef2e..e41284003 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -17,3 +17,4 @@ Returns a table containing a row for each List item found at the specified Share * `ApiVersion`: A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. * `Implementation`: Optional. Specifies which version of the SharePoint connector to use. Accepted values are "2.0" or null. If the value is "2.0", the 2.0 implementation of the SharePoint connector is used. If the value is null, the original implementation of the SharePoint connector is used. * `ViewMode`: Optional. This option is only valid for implementation 2.0. Accepted values are "All" and "Default". If no value is specified, the value is set to "All". When "All"; is specified, the view includes all user-created and system-defined columns. When "Default" is specified, the view will match what the user sees when looking at the list online in whichever view that user set as Default in their settings. If the user edits their default view to add or remove either user-created or system-defined columns, or by creating a new view and setting it as default, these changes will propagate through the connector. +* `DisableAppendNoteColumns` diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index cc4b78fe4..4b7640bf1 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -21,17 +21,21 @@ Create a table from a list using the default splitter. **Usage** ```powerquery-m -Table.FromList({"a,apple", "b,ball", "c,cookie", "d,door"}, null, {"Letter", "Example Word"}) +Table.FromList( + {"a,apple", "b,ball", "c,cookie", "d,door"}, + null, + {"Letter", "Example Word"} +) ``` **Output** ```powerquery-m Table.FromRecords({ - [Letter = "a", "Example Word" = "apple"], - [Letter = "b", "Example Word" = "ball"], - [Letter = "c", "Example Word" = "cookie"], - [Letter = "d", "Example Word" = "door"] + [Letter = "a", #"Example Word" = "apple"], + [Letter = "b", #"Example Word" = "ball"], + [Letter = "c", #"Example Word" = "cookie"], + [Letter = "d", #"Example Word" = "door"] }) ``` @@ -42,23 +46,27 @@ Create a table from a list using a custom splitter. **Usage** ```powerquery-m -Table.FromList({"a,apple", "b,ball", "c,cookie", "d,door"}, Splitter.SplitByNothing(), {"Letter and Example Word"}) +Table.FromList( + {"a,apple", "b,ball", "c,cookie", "d,door"}, + Splitter.SplitByNothing(), + {"Letter and Example Word"} +) ``` **Output** ```powerquery-m Table.FromRecords({ - ["Letter and Example Word" = "a,apple"], - ["Letter and Example Word" = "b,ball"], - ["Letter and Example Word" = "c,cookie"], - ["Letter and Example Word" = "d,door"] + [#"Letter and Example Word" = "a,apple"], + [#"Letter and Example Word" = "b,ball"], + [#"Letter and Example Word" = "c,cookie"], + [#"Letter and Example Word" = "d,door"] }) ``` ## Example 3 -Create a table from a list using the [Record.FieldValues](record-fieldvalues.md) splitter. +Create a table from the list using the [Record.FieldValues](record-fieldvalues.md) splitter. **Usage** diff --git a/query-languages/m/table-onerror.md b/query-languages/m/table-onerror.md deleted file mode 100644 index 3712f085e..000000000 --- a/query-languages/m/table-onerror.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -description: "Learn more about: Table.OnError" -title: "Table.OnError" ---- - -# Table.OnError - -## Syntax - -
-Table.OnError(table as table, handler as function) as table
-
- -## About - -This function is intended for internal use only. diff --git a/query-languages/m/table-witherrorcontext.md b/query-languages/m/table-witherrorcontext.md new file mode 100644 index 000000000..c3fa19886 --- /dev/null +++ b/query-languages/m/table-witherrorcontext.md @@ -0,0 +1,15 @@ +--- +description: "Learn more about: Table.WithErrorContext" +title: "Table.WithErrorContext" +--- +# Table.WithErrorContext + +## Syntax + +
+Table.WithErrorContext(value as any, context as text) as any
+
+ +## About + +This function is intended for internal use only. diff --git a/query-languages/m/text-functions.md b/query-languages/m/text-functions.md index 1edef4ae3..8f92ebedd 100644 --- a/query-languages/m/text-functions.md +++ b/query-languages/m/text-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text functions" title: "Text functions" -ms.date: 5/16/2022 +ms.date: 10/19/2023 ms.custom: "nonautomated-date" --- # Text functions @@ -19,8 +19,8 @@ These functions create and manipulate text values. |Name|Description| |------------|---------------| -|[Character.FromNumber](character-fromnumber.md)|Returns a number to its character value.| -|[Character.ToNumber](character-tonumber.md)|Returns a character to its number value.| +|[Character.FromNumber](character-fromnumber.md)|Converts a number to a text character.| +|[Character.ToNumber](character-tonumber.md)|Converts a character to a number value.| |[Guid.From](guid-from.md) | Returns a `Guid.Type` value from the given `value`.| |[Json.FromValue](json-fromvalue.md) | Produces a JSON representation of a given value.| |[Text.From](text-from.md)|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration or binary value. If a value is null, **Text.From** returns null. The optional culture parameter is used to format the text value according to the given culture.| diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index bd16c5ebd..4d4e6674d 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -12,9 +12,10 @@ Type.ReplaceTableKeys(tableType as type, keys as list) as type ## About -Returns a new table type with all keys replaced by the specified list of keys. +Returns a new table type with all keys replaced by the specified list of keys. + +Each key is defined using a record in the following form: -Each key is defined using a record in the following form: * `Columns`: a list of the column names that define the key * `Primary`: `true` if the key is the table's primary key; otherwise, `false` @@ -50,7 +51,6 @@ in } ``` - ## Example 2 Clear the key information previously defined on a table type. diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index 786253203..a4e8916bd 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -14,7 +14,8 @@ Type.TableKeys(tableType as type) as list Returns the possibly empty list of keys for the given table type. -Each key is described by a record in the following form: +Each key is described by a record in the following form: + * `Columns`: a list of the column names that define the key * `Primary`: `true` if the key is the table's primary key; otherwise, `false` diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 25d3e10ce..c3269d4de 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value functions" title: "Value functions" -ms.date: 9/11/2023 +ms.date: 10/19/2023 ms.custom: "nonautomated-date" --- # Value functions @@ -38,19 +38,21 @@ These functions evaluate and perform operations on values. |[Value.Is](value-is.md)|Determines whether a value is compatible with the specified type.| |[Value.ReplaceType](value-replacetype.md)|Replaces the value's type.| -|Implementation | Description -|-------------- | ----------- +|Implementation | Description | +|-------------- | ----------- | +|[Action.WithErrorContext](action-witherrorcontext.md) | This function is intended for internal use only.| |[DirectQueryCapabilities.From](directquerycapabilities-from.md) | This function is intended for internal use only.| |[Embedded.Value](embedded-value.md) | Accesses a value by name in an embedded mashup.| |[Excel.ShapeTable](excel-shapetable.md) | This function is intended for internal use only.| +|[Function.InvokeWithErrorContext](function-invokewitherrorcontext.md) | This function is intended for internal use only.| |[Progress.DataSourceProgress](progress-datasourceprogress.md) | This function is intended for internal use only. | +|[SqlExpression.SchemaFrom](sqlexpression-schemafrom.md) | This function is intended for internal use only.| +|[SqlExpression.ToExpression](sqlexpression-toexpression.md) | This function is intended for internal use only.| +|[Table.WithErrorContext](table-witherrorcontext.md) | This function is intended for internal use only.| |[Value.Firewall](value-firewall.md) | This function is intended for internal use only.| |[Value.ViewError](value-viewerror.md) | This function is intended for internal use only.| |[Value.ViewFunction](value-viewfunction.md) | This function is intended for internal use only.| |[Variable.Value](variable-value.md) | This function is intended for internal use only.| -|[SqlExpression.SchemaFrom](sqlexpression-schemafrom.md) | This function is intended for internal use only.| -|[SqlExpression.ToExpression](sqlexpression-toexpression.md) | This function is intended for internal use only.| -|[Table.OnError](table-onerror.md) | This function is intended for internal use only.| ## Metadata From a7a8d55fe6d3358bb3aa380559b1ca7d8677e3eb Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 24 Oct 2023 12:59:32 -0700 Subject: [PATCH 346/934] Added new links to table of contents --- query-languages/m/toc.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 23dfcb22f..4738bea93 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -1098,8 +1098,8 @@ items: href: table-minn.md - name: Table.NestedJoin href: table-nestedjoin.md - - name: Table.OnError - href: table-onerror.md + - name: Table.WithErrorContext + href: table-witherrorcontext.md - name: Table.Partition href: table-partition.md - name: Table.PartitionValues @@ -1388,6 +1388,8 @@ items: items: - name: Value functions overview href: value-functions.md + - name: Action.WithErrorContext + href: action-witherrorcontext.md - name: DirectQueryCapabilities.From href: directquerycapabilities-from.md - name: Embedded.Value @@ -1396,6 +1398,8 @@ items: href: excel-shapetable.md - name: Graph.Nodes href: graph-nodes.md + - name: Function.InvokeWithErrorContext + href: function-invokewitherrorcontext.md - name: Progress.DataSourceProgress href: progress-datasourceprogress.md - name: SqlExpression.SchemaFrom From 572a366996368fd6c92f6189c6984c4a56b1b978 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 24 Oct 2023 13:23:04 -0700 Subject: [PATCH 347/934] Various fixes, mostly involving spacing --- query-languages/m/combiner-combinetextbypositions.md | 4 +++- query-languages/m/combiner-combinetextbyranges.md | 4 +++- query-languages/m/function-values.md | 3 ++- query-languages/m/toc.yml | 4 ++-- query-languages/m/value-functions.md | 1 - 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/query-languages/m/combiner-combinetextbypositions.md b/query-languages/m/combiner-combinetextbypositions.md index 1f6132e9a..1494d02c0 100644 --- a/query-languages/m/combiner-combinetextbypositions.md +++ b/query-languages/m/combiner-combinetextbypositions.md @@ -26,4 +26,6 @@ Combiner.CombineTextByPositions({0, 5, 10})({"abc", "def", "ghi"}) **Output** -`"abc def ghi"` +```powerquery-m +"abc def ghi" +``` diff --git a/query-languages/m/combiner-combinetextbyranges.md b/query-languages/m/combiner-combinetextbyranges.md index 3f3af8881..8e3c8ff8c 100644 --- a/query-languages/m/combiner-combinetextbyranges.md +++ b/query-languages/m/combiner-combinetextbyranges.md @@ -26,4 +26,6 @@ Combiner.CombineTextByRanges({{0, 1}, {3, 2}, {6, null}})({"abc", "def", "ghijkl **Output** -`"a de ghijkl"` +```powerquery-m +"a de ghijkl" +``` diff --git a/query-languages/m/function-values.md b/query-languages/m/function-values.md index 25b255097..b37be3fcb 100644 --- a/query-languages/m/function-values.md +++ b/query-languages/m/function-values.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Function values" title: "Function values" -ms.date: 2/17/2023 +ms.date: 10/24/2023 ms.custom: "nonautomated-date" --- # Function values @@ -13,5 +13,6 @@ These functions create and invoke other M functions. |[Function.From](function-from.md)|Takes a unary function `function` and creates a new function with the type `functionType` that constructs a list out of its arguments and passes it to `function`.| |[Function.Invoke](function-invoke.md)|Invokes the given function using the specified and returns the result.| |[Function.InvokeAfter](function-invokeafter.md)|Returns the result of invoking function after duration delay has passed.| +|[Function.InvokeWithErrorContext](function-invokewitherrorcontext.md) | This function is intended for internal use only.| |[Function.IsDataSource](function-isdatasource.md)|Returns whether or not function is considered a data source.| |[Function.ScalarVector](function-scalarvector.md)|Returns a scalar function of type scalarFunctionType that invokes vectorFunction with a single row of arguments and returns its single output. | diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 4738bea93..78eb9a500 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -604,6 +604,8 @@ items: href: function-invoke.md - name: Function.InvokeAfter href: function-invokeafter.md + - name: Function.InvokeWithErrorContext + href: function-invokewitherrorcontext.md - name: Function.IsDataSource href: function-isdatasource.md - name: Function.ScalarVector @@ -1398,8 +1400,6 @@ items: href: excel-shapetable.md - name: Graph.Nodes href: graph-nodes.md - - name: Function.InvokeWithErrorContext - href: function-invokewitherrorcontext.md - name: Progress.DataSourceProgress href: progress-datasourceprogress.md - name: SqlExpression.SchemaFrom diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index c3269d4de..6d7b6fad1 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -44,7 +44,6 @@ These functions evaluate and perform operations on values. |[DirectQueryCapabilities.From](directquerycapabilities-from.md) | This function is intended for internal use only.| |[Embedded.Value](embedded-value.md) | Accesses a value by name in an embedded mashup.| |[Excel.ShapeTable](excel-shapetable.md) | This function is intended for internal use only.| -|[Function.InvokeWithErrorContext](function-invokewitherrorcontext.md) | This function is intended for internal use only.| |[Progress.DataSourceProgress](progress-datasourceprogress.md) | This function is intended for internal use only. | |[SqlExpression.SchemaFrom](sqlexpression-schemafrom.md) | This function is intended for internal use only.| |[SqlExpression.ToExpression](sqlexpression-toexpression.md) | This function is intended for internal use only.| From d823ee7a082d691ed5dcb7af8232918976e666ab Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 24 Oct 2023 13:42:21 -0700 Subject: [PATCH 348/934] Moved function to correct position in TOC --- query-languages/m/toc.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 78eb9a500..967ed8d8f 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -1100,8 +1100,6 @@ items: href: table-minn.md - name: Table.NestedJoin href: table-nestedjoin.md - - name: Table.WithErrorContext - href: table-witherrorcontext.md - name: Table.Partition href: table-partition.md - name: Table.PartitionValues @@ -1204,6 +1202,8 @@ items: href: table-viewerror.md - name: Table.ViewFunction href: table-viewfunction.md + - name: Table.WithErrorContext + href: table-witherrorcontext.md - name: Tables.GetRelationships href: tables-getrelationships.md - name: '#table' From 24fec0038f1b8b9ff73bfc53bec619736a3a7016 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 24 Oct 2023 14:13:08 -0700 Subject: [PATCH 349/934] Moved new table function to table functions --- query-languages/m/table-functions.md | 1 + query-languages/m/value-functions.md | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index af20c4cea..8342e7b38 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -26,6 +26,7 @@ These functions create and manipulate table values. |[Table.FuzzyJoin](table-fuzzyjoin.md)|Joins the rows from the two tables that fuzzy match based on the given keys.| |[Table.FuzzyNestedJoin](table-fuzzynestedjoin.md)|Performs a fuzzy join between tables on supplied columns and produces the join result in a new column.| |[Table.Split](table-split.md)|Splits the specified table into a list of tables using the specified page size.| +|[Table.WithErrorContext](table-witherrorcontext.md) | This function is intended for internal use only.| |[Table.View](table-view.md)|Creates or extends a table with user-defined handlers for query and action operations.| |[Table.ViewError](table-viewerror.md) | Creates a modified error record which won't trigger a fallback when thrown by a handler defined on a view (via [Table.View](table-view.md)).| |[Table.ViewFunction](table-viewfunction.md) | Creates a function that can be intercepted by a handler defined on a view (via **Table.View**).| diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 6d7b6fad1..96531704e 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -47,7 +47,6 @@ These functions evaluate and perform operations on values. |[Progress.DataSourceProgress](progress-datasourceprogress.md) | This function is intended for internal use only. | |[SqlExpression.SchemaFrom](sqlexpression-schemafrom.md) | This function is intended for internal use only.| |[SqlExpression.ToExpression](sqlexpression-toexpression.md) | This function is intended for internal use only.| -|[Table.WithErrorContext](table-witherrorcontext.md) | This function is intended for internal use only.| |[Value.Firewall](value-firewall.md) | This function is intended for internal use only.| |[Value.ViewError](value-viewerror.md) | This function is intended for internal use only.| |[Value.ViewFunction](value-viewfunction.md) | This function is intended for internal use only.| From 52d88155b2f69773a72ee15a42e3fcbfe38bd75f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 24 Oct 2023 14:52:39 -0700 Subject: [PATCH 350/934] Added redirect for deleted file --- .openpublishing.redirection.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 45105fc79..b9a683c8a 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -44,6 +44,11 @@ "source_path": "query-languages/m/viewfunction-tryinvoke.md", "redirect_url": "/m/function-values", "redirect_document_id": false + }, + { + "source_path": "query-languages/m/table-onerror.md", + "redirect_url": "/m/function-values", + "redirect_document_id": false } ] } From e42f566439bed0430c0e5a9e61ca91975c1287d6 Mon Sep 17 00:00:00 2001 From: alexiftode <71643916+alexiftode@users.noreply.github.com> Date: Fri, 3 Nov 2023 11:21:23 +0000 Subject: [PATCH 351/934] Update table-repeat.md Closing bracket missing when terminating the statement. --- query-languages/m/table-repeat.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/m/table-repeat.md b/query-languages/m/table-repeat.md index 69328d0da..a4d1f42ca 100644 --- a/query-languages/m/table-repeat.md +++ b/query-languages/m/table-repeat.md @@ -27,6 +27,7 @@ Table.Repeat( [a = 3, b = "world"] }), 2 +) ``` From 2c9afa1bf35ed47e2f5569a06ac0976374ce2149 Mon Sep 17 00:00:00 2001 From: Christian Lajouanie <95001399+datastronaut@users.noreply.github.com> Date: Mon, 6 Nov 2023 17:27:06 +0100 Subject: [PATCH 352/934] Update window-function-dax.md --- query-languages/dax/window-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index e3908f632..80cff4443 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -21,7 +21,7 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |from_type |Modifies behavior of the \ parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| |to|Same as \, but indicates the end of the window. The last row is included in the window.| |to_type|Same as \, but modifies the behavior of \.| -|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|relation|(Optional) A table expression from which the output rows are returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| From cc971d0ef3e7d82f014710587cca9502b95648ba Mon Sep 17 00:00:00 2001 From: Francisco Geiman Thiesen Date: Wed, 8 Nov 2023 14:58:35 -0800 Subject: [PATCH 353/934] Update summarizecolumns-function-dax.md Fixing typo --- query-languages/dax/summarizecolumns-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index b28cbb7f9..0b2b1e7f6 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -197,7 +197,7 @@ Returns the following table, ### Example with multiple subtotals ```dax -SUMMARIZECOUMNS ( +SUMMARIZECOLUMNS ( Regions[State], ROLLUPADDISSUBTOTAL ( Sales[CustomerId], "IsCustomerSubtotal" ), ROLLUPADDISSUBTOTAL ( Sales[Date], "IsDateSubtotal"), "Total Qty", SUM( Sales[Qty] ) ) From b8db359a82854b90060af86cbb07e6f122b847b6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 15 Nov 2023 07:53:15 -0800 Subject: [PATCH 354/934] Added December updates to Power Query M reference --- query-languages/m/diagnostics-correlationid.md | 15 +++++++++++++++ query-languages/m/docfx.json | 2 +- query-languages/m/error-handling.md | 3 ++- query-languages/m/sharepoint-tables.md | 2 +- query-languages/m/toc.yml | 2 ++ 5 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 query-languages/m/diagnostics-correlationid.md diff --git a/query-languages/m/diagnostics-correlationid.md b/query-languages/m/diagnostics-correlationid.md new file mode 100644 index 000000000..b579d5971 --- /dev/null +++ b/query-languages/m/diagnostics-correlationid.md @@ -0,0 +1,15 @@ +--- +description: "Learn more about: Diagnostics.CorrelationId" +title: "Diagnostics.CorrelationId" +--- +# Diagnostics.CorrelationId + +## Syntax + +
+Diagnostics.CorrelationId() as nullable text
+
+ +## About + +Returns an opaque identifier to correlate incoming requests with outgoing ones. diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 1dbd4825b..6bc84dd48 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -45,7 +45,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "10/19/2023" + "ms.date": "11/15/2023" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/error-handling.md b/query-languages/m/error-handling.md index 442fbe844..1c1184535 100644 --- a/query-languages/m/error-handling.md +++ b/query-languages/m/error-handling.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Error handling functions" title: "Error handling functions" -ms.date: 5/16/2022 +ms.date: 11/15/2023 ms.custom: "nonautomated-date" --- # Error handling functions @@ -11,5 +11,6 @@ These functions can be used to trace or construct errors. |Name|Description| |------------|---------------| |[Diagnostics.ActivityId](diagnostics-activityid.md)|Returns an opaque identifier for the currently-running evaluation.| +|[Diagnostics.CorrelationId](diagnostics-correlationid.md)|Returns an opaque identifier to correlate incoming requests with outgoing ones.| |[Diagnostics.Trace](diagnostics-trace.md)|Writes a trace message, if tracing is enabled, and returns value.| |[Error.Record](error-record.md)|Returns a record containing fields **Reason**, **Message**, and **Detail** set to the provided values. The record can be used to raise or throw an error.| diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index e41284003..5da3021fd 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -17,4 +17,4 @@ Returns a table containing a row for each List item found at the specified Share * `ApiVersion`: A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. * `Implementation`: Optional. Specifies which version of the SharePoint connector to use. Accepted values are "2.0" or null. If the value is "2.0", the 2.0 implementation of the SharePoint connector is used. If the value is null, the original implementation of the SharePoint connector is used. * `ViewMode`: Optional. This option is only valid for implementation 2.0. Accepted values are "All" and "Default". If no value is specified, the value is set to "All". When "All"; is specified, the view includes all user-created and system-defined columns. When "Default" is specified, the view will match what the user sees when looking at the list online in whichever view that user set as Default in their settings. If the user edits their default view to add or remove either user-created or system-defined columns, or by creating a new view and setting it as default, these changes will propagate through the connector. -* `DisableAppendNoteColumns` +* `DisableAppendNoteColumns`: Prevents the connector from using a separate endpoint for note columns. diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 967ed8d8f..303b92387 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -580,6 +580,8 @@ items: href: error-handling.md - name: Diagnostics.ActivityId href: diagnostics-activityid.md + - name: Diagnostics.CorrelationId + href: diagnostics-correlationid.md - name: Diagnostics.Trace href: diagnostics-trace.md - name: Error.Record From 0e5d00be81b2f727acc0bd5c8a8f53496302b560 Mon Sep 17 00:00:00 2001 From: minewiskan Date: Mon, 27 Nov 2023 11:46:35 -0800 Subject: [PATCH 355/934] Renaming See also to Related content. --- query-languages/dax/abs-function-dax.md | 2 +- query-languages/dax/all-function-dax.md | 2 +- query-languages/dax/allexcept-function-dax.md | 2 +- query-languages/dax/allnoblankrow-function-dax.md | 2 +- query-languages/dax/and-function-dax.md | 2 +- query-languages/dax/atanh-function-dax.md | 2 +- query-languages/dax/averagea-function-dax.md | 2 +- query-languages/dax/averagex-function-dax.md | 2 +- .../best-practices/dax-avoid-avoid-filter-as-filter-argument.md | 2 +- .../dax/best-practices/dax-avoid-converting-blank.md | 2 +- .../dax/best-practices/dax-column-measure-references.md | 2 +- query-languages/dax/best-practices/dax-countrows.md | 2 +- .../dax/best-practices/dax-divide-function-operator.md | 2 +- query-languages/dax/best-practices/dax-error-functions.md | 2 +- query-languages/dax/best-practices/dax-selectedvalue.md | 2 +- query-languages/dax/best-practices/dax-understand-orderby.md | 2 +- query-languages/dax/best-practices/dax-variables.md | 2 +- query-languages/dax/bitand-function-dax.md | 2 +- query-languages/dax/bitlshift-function-dax.md | 2 +- query-languages/dax/bitor-function-dax.md | 2 +- query-languages/dax/bitrshift-function-dax.md | 2 +- query-languages/dax/bitxor-function-dax.md | 2 +- query-languages/dax/blank-function-dax.md | 2 +- query-languages/dax/calculate-function-dax.md | 2 +- query-languages/dax/calculatetable-function-dax.md | 2 +- query-languages/dax/ceiling-function-dax.md | 2 +- query-languages/dax/closingbalancemonth-function-dax.md | 2 +- query-languages/dax/closingbalancequarter-function-dax.md | 2 +- query-languages/dax/closingbalanceyear-function-dax.md | 2 +- query-languages/dax/columnstatistics-function-dax.md | 2 +- query-languages/dax/concatenate-function-dax.md | 2 +- query-languages/dax/containsrow-function-dax.md | 2 +- query-languages/dax/count-function-dax.md | 2 +- query-languages/dax/counta-function-dax.md | 2 +- query-languages/dax/countax-function-dax.md | 2 +- query-languages/dax/countblank-function-dax.md | 2 +- query-languages/dax/countrows-function-dax.md | 2 +- query-languages/dax/countx-function-dax.md | 2 +- query-languages/dax/date-function-dax.md | 2 +- query-languages/dax/dateadd-function-dax.md | 2 +- query-languages/dax/datesbetween-function-dax.md | 2 +- query-languages/dax/datesinperiod-function-dax.md | 2 +- query-languages/dax/datesmtd-function-dax.md | 2 +- query-languages/dax/datesqtd-function-dax.md | 2 +- query-languages/dax/datesytd-function-dax.md | 2 +- query-languages/dax/datevalue-function-dax.md | 2 +- query-languages/dax/dax-function-reference.md | 2 +- query-languages/dax/dax-operator-reference.md | 2 +- query-languages/dax/dax-queries.md | 2 +- query-languages/dax/dax-sample-model.md | 2 +- query-languages/dax/day-function-dax.md | 2 +- query-languages/dax/define-statement-dax.md | 2 +- query-languages/dax/distinct-function-dax.md | 2 +- query-languages/dax/distinct-table-function-dax.md | 2 +- query-languages/dax/distinctcount-function-dax.md | 2 +- query-languages/dax/distinctcountnoblank-function-dax.md | 2 +- query-languages/dax/divide-function-dax.md | 2 +- query-languages/dax/earlier-function-dax.md | 2 +- query-languages/dax/earliest-function-dax.md | 2 +- query-languages/dax/edate-function-dax.md | 2 +- query-languages/dax/endofmonth-function-dax.md | 2 +- query-languages/dax/endofquarter-function-dax.md | 2 +- query-languages/dax/endofyear-function-dax.md | 2 +- query-languages/dax/eomonth-function-dax.md | 2 +- query-languages/dax/evaluate-statement-dax.md | 2 +- query-languages/dax/evaluateandlog-function-dax.md | 2 +- query-languages/dax/exact-function-dax.md | 2 +- query-languages/dax/exp-function-dax.md | 2 +- query-languages/dax/fact-function-dax.md | 2 +- query-languages/dax/false-function-dax.md | 2 +- query-languages/dax/filter-function-dax.md | 2 +- query-languages/dax/find-function-dax.md | 2 +- query-languages/dax/firstdate-function-dax.md | 2 +- query-languages/dax/firstnonblank-function-dax.md | 2 +- query-languages/dax/fixed-function-dax.md | 2 +- query-languages/dax/floor-function-dax.md | 2 +- query-languages/dax/geomean-function-dax.md | 2 +- query-languages/dax/geomeanx-function-dax.md | 2 +- query-languages/dax/groupby-function-dax.md | 2 +- query-languages/dax/hour-function-dax.md | 2 +- query-languages/dax/if-eager-function-dax.md | 2 +- query-languages/dax/if-function-dax.md | 2 +- query-languages/dax/iferror-function-dax.md | 2 +- query-languages/dax/index-function-dax.md | 2 +- query-languages/dax/int-function-dax.md | 2 +- query-languages/dax/isafter-function-dax.md | 2 +- query-languages/dax/isblank-function-dax.md | 2 +- query-languages/dax/iscrossfiltered-function-dax.md | 2 +- query-languages/dax/iserror-function-dax.md | 2 +- query-languages/dax/isfiltered-function-dax.md | 2 +- query-languages/dax/isinscope-function-dax.md | 2 +- query-languages/dax/islogical-function-dax.md | 2 +- query-languages/dax/isnontext-function-dax.md | 2 +- query-languages/dax/isnumber-function-dax.md | 2 +- query-languages/dax/iso-ceiling-function-dax.md | 2 +- query-languages/dax/isonorafter-function-dax.md | 2 +- query-languages/dax/isselectedmeasure-function-dax.md | 2 +- query-languages/dax/istext-function-dax.md | 2 +- query-languages/dax/keepfilters-function-dax.md | 2 +- query-languages/dax/lastdate-function-dax.md | 2 +- query-languages/dax/lastnonblank-function-dax.md | 2 +- query-languages/dax/left-function-dax.md | 2 +- query-languages/dax/linest-function-dax.md | 2 +- query-languages/dax/linestx-function-dax.md | 2 +- query-languages/dax/ln-function-dax.md | 2 +- query-languages/dax/log-function-dax.md | 2 +- query-languages/dax/log10-function-dax.md | 2 +- query-languages/dax/lookupvalue-function-dax.md | 2 +- query-languages/dax/lower-function-dax.md | 2 +- query-languages/dax/matchby-function-dax.md | 2 +- query-languages/dax/max-function-dax.md | 2 +- query-languages/dax/maxa-function-dax.md | 2 +- query-languages/dax/maxx-function-dax.md | 2 +- query-languages/dax/measure-statement-dax.md | 2 +- query-languages/dax/median-function-dax.md | 2 +- query-languages/dax/medianx-function-dax.md | 2 +- query-languages/dax/mid-function-dax.md | 2 +- query-languages/dax/min-function-dax.md | 2 +- query-languages/dax/mina-function-dax.md | 2 +- query-languages/dax/minute-function-dax.md | 2 +- query-languages/dax/minx-function-dax.md | 2 +- query-languages/dax/mod-function-dax.md | 2 +- query-languages/dax/month-function-dax.md | 2 +- query-languages/dax/mround-function-dax.md | 2 +- query-languages/dax/naturalinnerjoin-function-dax.md | 2 +- query-languages/dax/naturalleftouterjoin-function-dax.md | 2 +- query-languages/dax/nextday-function-dax.md | 2 +- query-languages/dax/nextmonth-function-dax.md | 2 +- query-languages/dax/nextquarter-function-dax.md | 2 +- query-languages/dax/nextyear-function-dax.md | 2 +- query-languages/dax/norm-dist-dax.md | 2 +- query-languages/dax/norm-inv-dax.md | 2 +- query-languages/dax/norm-s-dist-dax.md | 2 +- query-languages/dax/norm-s-inv-dax.md | 2 +- query-languages/dax/not-function-dax.md | 2 +- query-languages/dax/now-function-dax.md | 2 +- query-languages/dax/offset-function-dax.md | 2 +- query-languages/dax/openingbalancemonth-function-dax.md | 2 +- query-languages/dax/openingbalancequarter-function-dax.md | 2 +- query-languages/dax/openingbalanceyear-function-dax.md | 2 +- query-languages/dax/or-function-dax.md | 2 +- query-languages/dax/orderby-function-dax.md | 2 +- query-languages/dax/orderby-statement-dax.md | 2 +- query-languages/dax/parallelperiod-function-dax.md | 2 +- query-languages/dax/partitionby-function-dax.md | 2 +- query-languages/dax/percentile-exc-function-dax.md | 2 +- query-languages/dax/percentile-inc-function-dax.md | 2 +- query-languages/dax/percentilex-exc-function-dax.md | 2 +- query-languages/dax/percentilex-inc-function-dax.md | 2 +- query-languages/dax/pi-function-dax.md | 2 +- query-languages/dax/power-function-dax.md | 2 +- query-languages/dax/previousday-function-dax.md | 2 +- query-languages/dax/previousmonth-function-dax.md | 2 +- query-languages/dax/previousquarter-function-dax.md | 2 +- query-languages/dax/previousyear-function-dax.md | 2 +- query-languages/dax/product-function-dax.md | 2 +- query-languages/dax/productx-function-dax.md | 2 +- query-languages/dax/quarter-function-dax.md | 2 +- query-languages/dax/quotient-function-dax.md | 2 +- query-languages/dax/rand-function-dax.md | 2 +- query-languages/dax/randbetween-function-dax.md | 2 +- query-languages/dax/rank-function-dax.md | 2 +- query-languages/dax/related-function-dax.md | 2 +- query-languages/dax/relatedtable-function-dax.md | 2 +- query-languages/dax/replace-function-dax.md | 2 +- query-languages/dax/rept-function-dax.md | 2 +- query-languages/dax/right-function-dax.md | 2 +- query-languages/dax/round-function-dax.md | 2 +- query-languages/dax/rounddown-function-dax.md | 2 +- query-languages/dax/roundup-function-dax.md | 2 +- query-languages/dax/rownumber-function-dax.md | 2 +- query-languages/dax/sameperiodlastyear-function-dax.md | 2 +- query-languages/dax/search-function-dax.md | 2 +- query-languages/dax/second-function-dax.md | 2 +- query-languages/dax/selectedmeasure-function-dax.md | 2 +- query-languages/dax/selectedmeasureformatstring-function-dax.md | 2 +- query-languages/dax/selectedmeasurename-function-dax.md | 2 +- query-languages/dax/sign-function-dax.md | 2 +- query-languages/dax/sqrt-function-dax.md | 2 +- query-languages/dax/startat-statement-dax.md | 2 +- query-languages/dax/startofmonth-function-dax.md | 2 +- query-languages/dax/startofquarter-function-dax.md | 2 +- query-languages/dax/startofyear-function-dax.md | 2 +- query-languages/dax/substitute-function-dax.md | 2 +- query-languages/dax/sum-function-dax.md | 2 +- query-languages/dax/summarize-function-dax.md | 2 +- query-languages/dax/summarizecolumns-function-dax.md | 2 +- query-languages/dax/sumx-function-dax.md | 2 +- query-languages/dax/t-dist-2t-dax.md | 2 +- query-languages/dax/t-dist-dax.md | 2 +- query-languages/dax/t-dist-rt-dax.md | 2 +- query-languages/dax/t-inv-2t-dax.md | 2 +- query-languages/dax/t-inv-dax.md | 2 +- query-languages/dax/time-function-dax.md | 2 +- query-languages/dax/timevalue-function-dax.md | 2 +- query-languages/dax/tocsv-function-dax.md | 2 +- query-languages/dax/today-function-dax.md | 2 +- query-languages/dax/tojson-function-dax.md | 2 +- query-languages/dax/totalmtd-function-dax.md | 2 +- query-languages/dax/totalqtd-function-dax.md | 2 +- query-languages/dax/totalytd-function-dax.md | 2 +- query-languages/dax/treatas-function.md | 2 +- query-languages/dax/trim-function-dax.md | 2 +- query-languages/dax/true-function-dax.md | 2 +- query-languages/dax/trunc-function-dax.md | 2 +- query-languages/dax/upper-function-dax.md | 2 +- query-languages/dax/userculture-function-dax.md | 2 +- query-languages/dax/utcnow-function-dax.md | 2 +- query-languages/dax/utctoday-function-dax.md | 2 +- query-languages/dax/value-function-dax.md | 2 +- query-languages/dax/values-function-dax.md | 2 +- query-languages/dax/var-dax.md | 2 +- query-languages/dax/weekday-function-dax.md | 2 +- query-languages/dax/weeknum-function-dax.md | 2 +- query-languages/dax/window-function-dax.md | 2 +- query-languages/dax/year-function-dax.md | 2 +- query-languages/dax/yearfrac-function-dax.md | 2 +- 217 files changed, 217 insertions(+), 217 deletions(-) diff --git a/query-languages/dax/abs-function-dax.md b/query-languages/dax/abs-function-dax.md index fa3e83e14..2d4d5e2d4 100644 --- a/query-languages/dax/abs-function-dax.md +++ b/query-languages/dax/abs-function-dax.md @@ -35,7 +35,7 @@ The following example returns the absolute value of the difference between the l = ABS([DealerPrice]-[ListPrice]) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [SIGN function](sign-function-dax.md) diff --git a/query-languages/dax/all-function-dax.md b/query-languages/dax/all-function-dax.md index c313cbd7c..23f4008e2 100644 --- a/query-languages/dax/all-function-dax.md +++ b/query-languages/dax/all-function-dax.md @@ -128,7 +128,7 @@ The formula is constructed as follows: 1. For the denominator, you use the function, ALL(Column), to remove the filter on ProductCategoryName and calculate the sum over the remaining rows on the ResellerSales_USD table, after applying the existing context filters from the row labels. The net effect is that, for the denominator, the sum is calculated over the selected Year (the implied context filter) and for all values of ProductCategoryName. -## See also +## Related content [Filter functions](filter-functions-dax.md) [ALL function](all-function-dax.md) diff --git a/query-languages/dax/allexcept-function-dax.md b/query-languages/dax/allexcept-function-dax.md index b6eeb5b8b..5d20c33b5 100644 --- a/query-languages/dax/allexcept-function-dax.md +++ b/query-languages/dax/allexcept-function-dax.md @@ -49,7 +49,7 @@ The following measure formula sums SalesAmount_USD and uses the ALLEXCEPT functi Because the formula uses ALLEXCEPT, whenever any column but CalendarYear from the table DateTime is used to slice a visualization, the formula will remove any slicer filters, providing a value equal to the sum of SalesAmount_USD. However, if the column CalendarYear is used to slice the visualization, the results are different. Because CalendarYear is specified as the argument to ALLEXCEPT, when the data is sliced on the year, a filter will be applied on years at the row level -## See also +## Related content [Filter functions](filter-functions-dax.md) [ALL function](all-function-dax.md) diff --git a/query-languages/dax/allnoblankrow-function-dax.md b/query-languages/dax/allnoblankrow-function-dax.md index 35823d3fc..f262ef820 100644 --- a/query-languages/dax/allnoblankrow-function-dax.md +++ b/query-languages/dax/allnoblankrow-function-dax.md @@ -117,7 +117,7 @@ Create a new PivotTable, and drag the column, datetime.[Calendar Year], to the R Now the two measures have the same results. That is because the ALLNOBLANKROW function does not count truly blank rows in a table, but only handles the blank row that is a special case generated in a parent table, when one or more of the child tables in the relationship contain non-matching values or blank values. -## See also +## Related content [Filter functions](filter-functions-dax.md) [ALL function](all-function-dax.md) diff --git a/query-languages/dax/and-function-dax.md b/query-languages/dax/and-function-dax.md index b0180a359..db0d40e15 100644 --- a/query-languages/dax/and-function-dax.md +++ b/query-languages/dax/and-function-dax.md @@ -95,6 +95,6 @@ Returns |||||||| |Grand Total||||||| -## See also +## Related content [Logical functions](logical-functions-dax.md) diff --git a/query-languages/dax/atanh-function-dax.md b/query-languages/dax/atanh-function-dax.md index de8b98fbf..521299b14 100644 --- a/query-languages/dax/atanh-function-dax.md +++ b/query-languages/dax/atanh-function-dax.md @@ -34,6 +34,6 @@ Returns the inverse hyperbolic tangent of a number. |= ATANH(-0.1)||-0.100335348| |||| -## See also +## Related content [ATAN function](atan-function-dax.md) diff --git a/query-languages/dax/averagea-function-dax.md b/query-languages/dax/averagea-function-dax.md index 7138f0953..5c76279d1 100644 --- a/query-languages/dax/averagea-function-dax.md +++ b/query-languages/dax/averagea-function-dax.md @@ -53,7 +53,7 @@ The following example returns the average of non-blank cells in the referenced c = AVERAGEA([Amount]) ``` -## See also +## Related content [AVERAGE function](average-function-dax.md) [AVERAGEX function](averagex-function-dax.md) diff --git a/query-languages/dax/averagex-function-dax.md b/query-languages/dax/averagex-function-dax.md index f0b767860..616a030fd 100644 --- a/query-languages/dax/averagex-function-dax.md +++ b/query-languages/dax/averagex-function-dax.md @@ -43,7 +43,7 @@ The following example calculates the average freight and tax on each order in th If you use multiple operations in the expression used as the second argument, you must use parentheses to control the order of calculations. For more information, see [DAX Syntax Reference](dax-syntax-reference.md). -## See also +## Related content [AVERAGE function](average-function-dax.md) [AVERAGEA function](averagea-function-dax.md) diff --git a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md index 406c9520a..8860aedd3 100644 --- a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md +++ b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md @@ -74,7 +74,7 @@ Therefore, the FILTER function should only be used when necessary. You can use i - Other columns - Using the [OR](../or-function-dax.md) DAX function, or the OR logical operator (||) -## See also +## Related content - [Filter functions (DAX)](../filter-function-dax.md) - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) diff --git a/query-languages/dax/best-practices/dax-avoid-converting-blank.md b/query-languages/dax/best-practices/dax-avoid-converting-blank.md index 7791e8266..6c4404293 100644 --- a/query-languages/dax/best-practices/dax-avoid-converting-blank.md +++ b/query-languages/dax/best-practices/dax-avoid-converting-blank.md @@ -66,7 +66,7 @@ It's recommended that your measures return BLANK when a meaningful value cannot This design approach is efficient, allowing Power BI to render reports faster. Also, returning BLANK is better because report visuals—by default—eliminate groupings when summarizations are BLANK. -## See also +## Related content - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) diff --git a/query-languages/dax/best-practices/dax-column-measure-references.md b/query-languages/dax/best-practices/dax-column-measure-references.md index 302625797..c98eb15e3 100644 --- a/query-languages/dax/best-practices/dax-column-measure-references.md +++ b/query-languages/dax/best-practices/dax-column-measure-references.md @@ -53,7 +53,7 @@ Here's why: - **Robustness**: Expressions will continue to work, even when you change a measure home table property. - **Readability**: Expressions will be quick and easy to understand—you'll quickly determine that it's a column or measure, based on whether it's fully qualified or not. -## See also +## Related content - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) diff --git a/query-languages/dax/best-practices/dax-countrows.md b/query-languages/dax/best-practices/dax-countrows.md index 342ee0c0d..ac9bf96e1 100644 --- a/query-languages/dax/best-practices/dax-countrows.md +++ b/query-languages/dax/best-practices/dax-countrows.md @@ -38,7 +38,7 @@ There are three reasons why the second measure definition is better: When it's your intention to count table rows, it's recommended you always use the COUNTROWS function. -## See also +## Related content - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) diff --git a/query-languages/dax/best-practices/dax-divide-function-operator.md b/query-languages/dax/best-practices/dax-divide-function-operator.md index f22baa174..0832d9919 100644 --- a/query-languages/dax/best-practices/dax-divide-function-operator.md +++ b/query-languages/dax/best-practices/dax-divide-function-operator.md @@ -51,7 +51,7 @@ In the case that the denominator is a constant value, we recommend that you use Carefully consider whether the DIVIDE function should return an alternate value. For measures, it's usually a better design that they return BLANK. Returning BLANK is better because report visuals—by default—eliminate groupings when summarizations are BLANK. It allows the visual to focus attention on groups where data exists. When necessary, in Power BI, you can configure the visual to display all groups (that return values or BLANK) within the filter context by enabling the [Show items with no data](/power-bi/create-reports/desktop-show-items-no-data) option. -## See also +## Related content - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) diff --git a/query-languages/dax/best-practices/dax-error-functions.md b/query-languages/dax/best-practices/dax-error-functions.md index ee5e60ec7..61d631800 100644 --- a/query-languages/dax/best-practices/dax-error-functions.md +++ b/query-languages/dax/best-practices/dax-error-functions.md @@ -50,7 +50,7 @@ Profit Margin = DIVIDE([Profit], [Sales]) ``` -## See also +## Related content - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) diff --git a/query-languages/dax/best-practices/dax-selectedvalue.md b/query-languages/dax/best-practices/dax-selectedvalue.md index a831d0bc1..439db11a4 100644 --- a/query-languages/dax/best-practices/dax-selectedvalue.md +++ b/query-languages/dax/best-practices/dax-selectedvalue.md @@ -44,7 +44,7 @@ IF( > [!TIP] > It's possible to pass an _alternate result_ value into the SELECTEDVALUE function. The alternate result value is returned when either no filters—or multiple filters—are applied to the column. -## See also +## Related content - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) diff --git a/query-languages/dax/best-practices/dax-understand-orderby.md b/query-languages/dax/best-practices/dax-understand-orderby.md index 613dc6b1b..ab44b499e 100644 --- a/query-languages/dax/best-practices/dax-understand-orderby.md +++ b/query-languages/dax/best-practices/dax-understand-orderby.md @@ -483,7 +483,7 @@ And this expression does indeed return the results we're after: | SO52234 | 1 | 528 | 4.99 | 4.99 | | SO52234 | 2 | 529 | 3.99 | | -## See also +## Related content [ORDERBY](../orderby-function-dax.md) [PARTITIONBY](../partitionby-function-dax.md) diff --git a/query-languages/dax/best-practices/dax-variables.md b/query-languages/dax/best-practices/dax-variables.md index 66ed184ff..ba993eadf 100644 --- a/query-languages/dax/best-practices/dax-variables.md +++ b/query-languages/dax/best-practices/dax-variables.md @@ -95,7 +95,7 @@ RETURN ) + 1 ``` -## See also +## Related content - [VAR](../var-dax.md) DAX article - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) diff --git a/query-languages/dax/bitand-function-dax.md b/query-languages/dax/bitand-function-dax.md index 1a24c2344..40f74ec39 100644 --- a/query-languages/dax/bitand-function-dax.md +++ b/query-languages/dax/bitand-function-dax.md @@ -36,7 +36,7 @@ EVALUATE { BITAND(13, 11) } Returns 9. -## See also +## Related content [BITLSHIFT](bitlshift-function-dax.md) [BITRSHIFT](bitrshift-function-dax.md) diff --git a/query-languages/dax/bitlshift-function-dax.md b/query-languages/dax/bitlshift-function-dax.md index 072742094..225b75da0 100644 --- a/query-languages/dax/bitlshift-function-dax.md +++ b/query-languages/dax/bitlshift-function-dax.md @@ -72,7 +72,7 @@ SUMMARIZECOLUMNS( Shifts left each sales amount with 3 bits and returns the bit-shifted sales amount. -## See also +## Related content [BITRSHIFT](bitrshift-function-dax.md) [BITAND](bitand-function-dax.md) diff --git a/query-languages/dax/bitor-function-dax.md b/query-languages/dax/bitor-function-dax.md index e72d30d10..a4f04da14 100644 --- a/query-languages/dax/bitor-function-dax.md +++ b/query-languages/dax/bitor-function-dax.md @@ -37,7 +37,7 @@ EVALUATE Returns 11. -## See also +## Related content [BITAND](bitand-function-dax.md) [BITXOR](bitxor-function-dax.md) diff --git a/query-languages/dax/bitrshift-function-dax.md b/query-languages/dax/bitrshift-function-dax.md index d9140caf1..c11d76d62 100644 --- a/query-languages/dax/bitrshift-function-dax.md +++ b/query-languages/dax/bitrshift-function-dax.md @@ -72,7 +72,7 @@ SUMMARIZECOLUMNS( Shifts right each sales amount with 3 bits and returns the bit-shifted sales amount. -## See also +## Related content [BITLSHIFT](bitlshift-function-dax.md) [BITAND](bitand-function-dax.md) diff --git a/query-languages/dax/bitxor-function-dax.md b/query-languages/dax/bitxor-function-dax.md index 9823b7914..0ee1aa247 100644 --- a/query-languages/dax/bitxor-function-dax.md +++ b/query-languages/dax/bitxor-function-dax.md @@ -36,7 +36,7 @@ EVALUATE { BITXOR(9, 10) } Returns 3. -## See also +## Related content [BITOR](bitor-function-dax.md) [BITAND](bitand-function-dax.md) diff --git a/query-languages/dax/blank-function-dax.md b/query-languages/dax/blank-function-dax.md index 0b26950d7..96ccc3372 100644 --- a/query-languages/dax/blank-function-dax.md +++ b/query-languages/dax/blank-function-dax.md @@ -42,7 +42,7 @@ The table shows the expected results when this formula is used to create a table In the original data source, the column evaluated by the BLANK function might have included text, empty strings, or nulls. If the original data source was a SQL Server database, nulls and empty strings are different kinds of data. However, for this operation an implicit type cast is performed and DAX treats them as the same. -## See also +## Related content [Text functions](text-functions-dax.md) [ISBLANK function](isblank-function-dax.md) diff --git a/query-languages/dax/calculate-function-dax.md b/query-languages/dax/calculate-function-dax.md index e6938cc16..ba89b7fe7 100644 --- a/query-languages/dax/calculate-function-dax.md +++ b/query-languages/dax/calculate-function-dax.md @@ -144,7 +144,7 @@ IF( In this example, row context is converted to the filter context. It's known as _context transition_. The [ALLEXCEPT](allexcept-function-dax.md) function removes filters from all **Customer** table columns except the **CustomerKey** column. -## See also +## Related content [Filter context](dax-overview.md#filter-context) [Row context](dax-overview.md#row-context) diff --git a/query-languages/dax/calculatetable-function-dax.md b/query-languages/dax/calculatetable-function-dax.md index 35324baa1..22186622f 100644 --- a/query-languages/dax/calculatetable-function-dax.md +++ b/query-languages/dax/calculatetable-function-dax.md @@ -103,7 +103,7 @@ It results in the following table: |2008|$9,041,288.80|$5,681,440.58|1.59| |Grand Total|$26,054,827.45|$5,681,440.58|4.59| -## See also +## Related content - [Filter context](dax-overview.md#filter-context) - [CALCULATE function (DAX)](calculate-function-dax.md) diff --git a/query-languages/dax/ceiling-function-dax.md b/query-languages/dax/ceiling-function-dax.md index 1b08c679e..e961bbe75 100644 --- a/query-languages/dax/ceiling-function-dax.md +++ b/query-languages/dax/ceiling-function-dax.md @@ -54,7 +54,7 @@ The following formula returns similar results as the previous example, but uses = CEILING([ProductPrice],0.05) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [FLOOR function](floor-function-dax.md) diff --git a/query-languages/dax/closingbalancemonth-function-dax.md b/query-languages/dax/closingbalancemonth-function-dax.md index b3630625a..51b34171e 100644 --- a/query-languages/dax/closingbalancemonth-function-dax.md +++ b/query-languages/dax/closingbalancemonth-function-dax.md @@ -50,7 +50,7 @@ The following sample formula creates a measure that calculates the 'Month End In = CLOSINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) diff --git a/query-languages/dax/closingbalancequarter-function-dax.md b/query-languages/dax/closingbalancequarter-function-dax.md index 893efcc38..88053a214 100644 --- a/query-languages/dax/closingbalancequarter-function-dax.md +++ b/query-languages/dax/closingbalancequarter-function-dax.md @@ -50,7 +50,7 @@ The following sample formula creates a measure that calculates the 'Quarter End = CLOSINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) diff --git a/query-languages/dax/closingbalanceyear-function-dax.md b/query-languages/dax/closingbalanceyear-function-dax.md index 6946229ac..0f4d88f66 100644 --- a/query-languages/dax/closingbalanceyear-function-dax.md +++ b/query-languages/dax/closingbalanceyear-function-dax.md @@ -53,7 +53,7 @@ The following sample formula creates a measure that calculates the 'Year End Inv = CLOSINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index 68430658d..cda9824a1 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -58,7 +58,7 @@ Returns a table with statistics regarding all columns from all tables in the mod :::image type="content" source="media/columnstatistics-function-dax/columnstatistics-result-table.png" alt-text="COLUMNSTATISTICS result table"::: -## See also +## Related content [Filter context](dax-overview.md#filter-context) [CALCULATETABLE function](calculatetable-function-dax.md) diff --git a/query-languages/dax/concatenate-function-dax.md b/query-languages/dax/concatenate-function-dax.md index 5a4dba823..9479df008 100644 --- a/query-languages/dax/concatenate-function-dax.md +++ b/query-languages/dax/concatenate-function-dax.md @@ -78,6 +78,6 @@ The CONCATENATE function in DAX accepts only two arguments, whereas the Excel CO = [Product abbreviation] & "-" & [Product number] ``` -## See also +## Related content [CONCATENATEX](concatenatex-function-dax.md) diff --git a/query-languages/dax/containsrow-function-dax.md b/query-languages/dax/containsrow-function-dax.md index eced43a93..152666020 100644 --- a/query-languages/dax/containsrow-function-dax.md +++ b/query-languages/dax/containsrow-function-dax.md @@ -133,7 +133,7 @@ Silver | Silver\Black | White | -## See also +## Related content [IN operator](dax-operator-reference.md#logical-operators) [DAX queries](dax-queries.md) diff --git a/query-languages/dax/count-function-dax.md b/query-languages/dax/count-function-dax.md index 5d1c73a4e..73da9d129 100644 --- a/query-languages/dax/count-function-dax.md +++ b/query-languages/dax/count-function-dax.md @@ -50,7 +50,7 @@ The following example shows how to count the number of values in the column, Shi To count logical values or text, use the COUNTA or COUNTAX functions. -## See also +## Related content [COUNTA function](counta-function-dax.md) [COUNTAX function](countax-function-dax.md) diff --git a/query-languages/dax/counta-function-dax.md b/query-languages/dax/counta-function-dax.md index 6fc0ebbaa..95704b194 100644 --- a/query-languages/dax/counta-function-dax.md +++ b/query-languages/dax/counta-function-dax.md @@ -37,7 +37,7 @@ The following example returns all rows in the `Reseller` table that have any kin = COUNTA(Reseller[Phone]) ``` -## See also +## Related content [COUNT function](count-function-dax.md) [COUNTAX function](countax-function-dax.md) diff --git a/query-languages/dax/countax-function-dax.md b/query-languages/dax/countax-function-dax.md index 6e521e4a2..c4094ee61 100644 --- a/query-languages/dax/countax-function-dax.md +++ b/query-languages/dax/countax-function-dax.md @@ -39,7 +39,7 @@ The following example counts the number of nonblank rows in the column, Phone, u = COUNTAX(FILTER('Reseller',[Status]="Active"),[Phone]) ``` -## See also +## Related content [COUNT function](count-function-dax.md) [COUNTA function](counta-function-dax.md) diff --git a/query-languages/dax/countblank-function-dax.md b/query-languages/dax/countblank-function-dax.md index 4d6980722..3a72507fe 100644 --- a/query-languages/dax/countblank-function-dax.md +++ b/query-languages/dax/countblank-function-dax.md @@ -42,7 +42,7 @@ The following example shows how to count the number of rows in the table Reselle To count logical values or text, use the COUNTA or COUNTAX functions. -## See also +## Related content [COUNT function](count-function-dax.md) [COUNTA function](counta-function-dax.md) diff --git a/query-languages/dax/countrows-function-dax.md b/query-languages/dax/countrows-function-dax.md index 08f219ec3..db7f2c77c 100644 --- a/query-languages/dax/countrows-function-dax.md +++ b/query-languages/dax/countrows-function-dax.md @@ -58,7 +58,7 @@ The following table shows a portion of the expected results: |2|70| |3|394| -## See also +## Related content [COUNT function](count-function-dax.md) [COUNTA function](counta-function-dax.md) diff --git a/query-languages/dax/countx-function-dax.md b/query-languages/dax/countx-function-dax.md index d61db29ab..d6680fb5f 100644 --- a/query-languages/dax/countx-function-dax.md +++ b/query-languages/dax/countx-function-dax.md @@ -49,7 +49,7 @@ The following formula illustrates how to pass a filtered table to COUNTX for the = COUNTX(FILTER(Product,RELATED(ProductSubcategory[EnglishProductSubcategoryName])="Caps"), Product[ListPrice]) ``` -## See also +## Related content [COUNT function](count-function-dax.md) [COUNTA function](counta-function-dax.md) diff --git a/query-languages/dax/date-function-dax.md b/query-languages/dax/date-function-dax.md index fb4837b94..984c42654 100644 --- a/query-languages/dax/date-function-dax.md +++ b/query-languages/dax/date-function-dax.md @@ -78,7 +78,7 @@ If **day** is greater than the number of days in the month specified, **day** ad -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [DAY function](day-function-dax.md) diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index c0d7129de..ac6e3c6a8 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -55,7 +55,7 @@ The following formula calculates dates that are one year before the dates in the = DATEADD(DateTime[DateKey],-1,year) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/datesbetween-function-dax.md b/query-languages/dax/datesbetween-function-dax.md index bcd59fda5..2338a9872 100644 --- a/query-languages/dax/datesbetween-function-dax.md +++ b/query-languages/dax/datesbetween-function-dax.md @@ -65,7 +65,7 @@ CALCULATE( Consider that the earliest date stored in the **Date** table is July 1, 2017. So, when a report filters the measure by the month of June 2020, the DATESBETWEEN function returns a date range from July 1, 2017 until June 30, 2020. -## See also +## Related content - [Time intelligence functions (DAX)](time-intelligence-functions-dax.md) - [Date and time functions (DAX)](date-and-time-functions-dax.md) diff --git a/query-languages/dax/datesinperiod-function-dax.md b/query-languages/dax/datesinperiod-function-dax.md index 5d9ee2982..d23a839d8 100644 --- a/query-languages/dax/datesinperiod-function-dax.md +++ b/query-languages/dax/datesinperiod-function-dax.md @@ -62,7 +62,7 @@ CALCULATE( Consider that the report is filtered by the month of June 2020. The MAX function returns June 30, 2020. The DATESINPERIOD function then returns a date range from July 1, 2019 until June 30, 2020. It's a year of date values starting from June 30, 2020 for the last year. -## See also +## Related content [Time intelligence functions (DAX)](time-intelligence-functions-dax.md) [Date and time functions (DAX)](date-and-time-functions-dax.md) diff --git a/query-languages/dax/datesmtd-function-dax.md b/query-languages/dax/datesmtd-function-dax.md index d9d698e05..b8895f428 100644 --- a/query-languages/dax/datesmtd-function-dax.md +++ b/query-languages/dax/datesmtd-function-dax.md @@ -45,7 +45,7 @@ The following sample formula creates a measure that calculates the 'Month To Dat = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESMTD(DateTime[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/datesqtd-function-dax.md b/query-languages/dax/datesqtd-function-dax.md index 1bebbeb8f..5a832376d 100644 --- a/query-languages/dax/datesqtd-function-dax.md +++ b/query-languages/dax/datesqtd-function-dax.md @@ -45,7 +45,7 @@ The following sample formula creates a measure that calculates the 'Quarterly Ru = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESQTD(DateTime[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/datesytd-function-dax.md b/query-languages/dax/datesytd-function-dax.md index 4b82024d8..05a05912a 100644 --- a/query-languages/dax/datesytd-function-dax.md +++ b/query-languages/dax/datesytd-function-dax.md @@ -59,7 +59,7 @@ The following sample formula creates a measure that calculates the 'Fiscal Year ) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/datevalue-function-dax.md b/query-languages/dax/datevalue-function-dax.md index 9cc703be0..d30e28dd7 100644 --- a/query-languages/dax/datevalue-function-dax.md +++ b/query-languages/dax/datevalue-function-dax.md @@ -46,6 +46,6 @@ The following example returns a different **datetime** value depending on the mo = DATEVALUE("8/1/2009") ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/dax-function-reference.md b/query-languages/dax/dax-function-reference.md index b803fbbbb..2051e7149 100644 --- a/query-languages/dax/dax-function-reference.md +++ b/query-languages/dax/dax-function-reference.md @@ -41,7 +41,7 @@ The DAX function reference provides detailed information including syntax, param [Time intelligence functions](time-intelligence-functions-dax.md) - These functions help you create calculations that use built-in knowledge about calendars and dates. By using time and date ranges in combination with aggregations or calculations, you can build meaningful comparisons across comparable time periods for sales, inventory, and so on. -## See also +## Related content [DAX Syntax Reference](dax-syntax-reference.md) [DAX Operator Reference](dax-operator-reference.md) diff --git a/query-languages/dax/dax-operator-reference.md b/query-languages/dax/dax-operator-reference.md index 04d714705..b5d74c2b5 100644 --- a/query-languages/dax/dax-operator-reference.md +++ b/query-languages/dax/dax-operator-reference.md @@ -157,7 +157,7 @@ The precedence order of operations in DAX formulas is basically the same as that Therefore, whenever you copy and paste formulas from Excel, be sure to review the formula carefully, as some operators or elements in the formulas may not be valid. When there is any doubt about the order in which operations are performed, it's recommended you use parentheses to control the order of operations and remove any ambiguity about the result. -## See also +## Related content [DAX syntax](dax-syntax-reference.md) [DAX parameter-naming](dax-parameter-naming-conventions.md) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 7e94afccc..ca966bdd7 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -193,7 +193,7 @@ Reference XMLA parameters by prefixing the name of the parameter with an `@` cha > Parameters defined in the parameters section and not used in the **\** element generate an error response in XMLA. > Parameters used and not defined in the **\** element generate an error response in XMLA. -## See also +## Related content [DAX statements](statements-dax.md) [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) diff --git a/query-languages/dax/dax-sample-model.md b/query-languages/dax/dax-sample-model.md index a0df83957..5f2983daa 100644 --- a/query-languages/dax/dax-sample-model.md +++ b/query-languages/dax/dax-sample-model.md @@ -37,7 +37,7 @@ The model has seven tables: Download the Power BI Desktop sample model file [here](https://aka.ms/dax-docs-sample-file). -## See also +## Related content - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) diff --git a/query-languages/dax/day-function-dax.md b/query-languages/dax/day-function-dax.md index fd5f9448a..2556f284b 100644 --- a/query-languages/dax/day-function-dax.md +++ b/query-languages/dax/day-function-dax.md @@ -55,7 +55,7 @@ The following expression returns the day that each sales order was placed, and f = IF( DAY([SalesDate])=10,"promotion","") ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [TODAY function](today-function-dax.md) diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 920527504..0dd6a42da 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -43,7 +43,7 @@ Introduces a statement with one or more entity definitions that can be applied t - To learn more about how a DEFINE statement is used, see [DAX queries](dax-queries.md). -## See also +## Related content [EVALUATE](evaluate-statement-dax.md) [VAR](var-dax.md) diff --git a/query-languages/dax/distinct-function-dax.md b/query-languages/dax/distinct-function-dax.md index 3c2f0fb7d..7dae71316 100644 --- a/query-languages/dax/distinct-function-dax.md +++ b/query-languages/dax/distinct-function-dax.md @@ -57,7 +57,7 @@ You cannot paste the list of values that DISTINCT returns directly into a column Also, note that the results are not additive. That is to say, the total number of unique customers in *2007* is not the sum of unique customers of *Accessories*, *Bikes* and *Clothing* for that year. The reason is that a customer can be counted in multiple groups. -## See also +## Related content [Filter functions](filter-functions-dax.md) [FILTER function](filter-function-dax.md) diff --git a/query-languages/dax/distinct-table-function-dax.md b/query-languages/dax/distinct-table-function-dax.md index dbeb33207..01fa8f5a3 100644 --- a/query-languages/dax/distinct-table-function-dax.md +++ b/query-languages/dax/distinct-table-function-dax.md @@ -41,7 +41,7 @@ Returns table: |1 | A | |2 | B | -## See also +## Related content [Filter functions](filter-functions-dax.md) [DISTINCT (column)](distinct-function-dax.md) diff --git a/query-languages/dax/distinctcount-function-dax.md b/query-languages/dax/distinctcount-function-dax.md index f779e3392..8fda42c5d 100644 --- a/query-languages/dax/distinctcount-function-dax.md +++ b/query-languages/dax/distinctcount-function-dax.md @@ -51,7 +51,7 @@ Using the above measure in a table with calendar year in the side and product ca In the above example, note that the rows Grand Total numbers do not add up, this happens because the same order might contain line items, in the same order, from different product categories. -## See also +## Related content [COUNT function](count-function-dax.md) [COUNTA function](counta-function-dax.md) diff --git a/query-languages/dax/distinctcountnoblank-function-dax.md b/query-languages/dax/distinctcountnoblank-function-dax.md index b92822986..799a60a70 100644 --- a/query-languages/dax/distinctcountnoblank-function-dax.md +++ b/query-languages/dax/distinctcountnoblank-function-dax.md @@ -50,6 +50,6 @@ EVALUATE |---------|---------| |2 | 3 | -## See also +## Related content [DISTINCTCOUNT](distinctcount-function-dax.md) diff --git a/query-languages/dax/divide-function-dax.md b/query-languages/dax/divide-function-dax.md index 879d0e1bc..125428cab 100644 --- a/query-languages/dax/divide-function-dax.md +++ b/query-languages/dax/divide-function-dax.md @@ -54,7 +54,7 @@ The following example returns 1. = DIVIDE(5,0,1) ``` -## See also +## Related content [QUOTIENT function](quotient-function-dax.md) [Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/earlier-function-dax.md b/query-languages/dax/earlier-function-dax.md index 13376bf16..ad269cc3c 100644 --- a/query-languages/dax/earlier-function-dax.md +++ b/query-languages/dax/earlier-function-dax.md @@ -114,7 +114,7 @@ The following steps describe the method of calculation in more detail. The **EARLIER** function will always get the value of the column prior to the current table operation. If you need to get a value from the loop before that, set the second argument to 2. -## See also +## Related content [EARLIEST function](earliest-function-dax.md) [Filter functions](filter-functions-dax.md) diff --git a/query-languages/dax/earliest-function-dax.md b/query-languages/dax/earliest-function-dax.md index 0d940fea2..cb0375ee6 100644 --- a/query-languages/dax/earliest-function-dax.md +++ b/query-languages/dax/earliest-function-dax.md @@ -36,7 +36,7 @@ The current sample data does not support this scenario. = EARLIEST() ``` -## See also +## Related content [EARLIER function](earlier-function-dax.md) [Filter functions](filter-functions-dax.md) diff --git a/query-languages/dax/edate-function-dax.md b/query-languages/dax/edate-function-dax.md index f21020342..ffae77a97 100644 --- a/query-languages/dax/edate-function-dax.md +++ b/query-languages/dax/edate-function-dax.md @@ -45,7 +45,7 @@ The following example returns the date three months after the order date, which = EDATE([TransactionDate],3) ``` -## See also +## Related content [EOMONTH function](eomonth-function-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/endofmonth-function-dax.md b/query-languages/dax/endofmonth-function-dax.md index 386102b14..ba08aaf0b 100644 --- a/query-languages/dax/endofmonth-function-dax.md +++ b/query-languages/dax/endofmonth-function-dax.md @@ -41,7 +41,7 @@ The following sample formula creates a measure that returns the end of the month = ENDOFMONTH(DateTime[DateKey]) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [Time intelligence functions](time-intelligence-functions-dax.md) diff --git a/query-languages/dax/endofquarter-function-dax.md b/query-languages/dax/endofquarter-function-dax.md index d25238308..85ab842a9 100644 --- a/query-languages/dax/endofquarter-function-dax.md +++ b/query-languages/dax/endofquarter-function-dax.md @@ -41,7 +41,7 @@ The following sample formula creates a measure that returns the end of the quart = ENDOFQUARTER(DateTime[DateKey]) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [Time intelligence functions](time-intelligence-functions-dax.md) diff --git a/query-languages/dax/endofyear-function-dax.md b/query-languages/dax/endofyear-function-dax.md index 1aa5ea221..2ec834ed0 100644 --- a/query-languages/dax/endofyear-function-dax.md +++ b/query-languages/dax/endofyear-function-dax.md @@ -44,7 +44,7 @@ The following sample formula creates a measure that returns the end of the fisca = ENDOFYEAR(DateTime[DateKey],"06/30/2004") ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [Time intelligence functions](time-intelligence-functions-dax.md) diff --git a/query-languages/dax/eomonth-function-dax.md b/query-languages/dax/eomonth-function-dax.md index 14ad0614b..610c4b017 100644 --- a/query-languages/dax/eomonth-function-dax.md +++ b/query-languages/dax/eomonth-function-dax.md @@ -45,7 +45,7 @@ The following expression returns May 31, 2008, because the **months** argument i = EOMONTH("March 3, 2008",1.5) ``` -## See also +## Related content [EDATE function](edate-function-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/evaluate-statement-dax.md b/query-languages/dax/evaluate-statement-dax.md index cee2607a8..708c5225c 100644 --- a/query-languages/dax/evaluate-statement-dax.md +++ b/query-languages/dax/evaluate-statement-dax.md @@ -37,7 +37,7 @@ EVALUATE Returns all rows and columns from the Internet Sales table, as a table. -## See also +## Related content [ORDER BY](orderby-statement-dax.md) [START AT](startat-statement-dax.md) diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index 1b763c046..b968af224 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -138,7 +138,7 @@ Returns the following DAX Evaluation Log event: ``` -## See also +## Related content [TOCSV](tocsv-function-dax.md) [TOJSON](tojson-function-dax.md) diff --git a/query-languages/dax/exact-function-dax.md b/query-languages/dax/exact-function-dax.md index 540225681..6c4fc2702 100644 --- a/query-languages/dax/exact-function-dax.md +++ b/query-languages/dax/exact-function-dax.md @@ -33,6 +33,6 @@ The following formula used in a calculated column in the Product table checks th = EXACT([Product], [Model]) ``` -## See also +## Related content [Text functions](text-functions-dax.md) diff --git a/query-languages/dax/exp-function-dax.md b/query-languages/dax/exp-function-dax.md index 5a2291855..13db10f30 100644 --- a/query-languages/dax/exp-function-dax.md +++ b/query-languages/dax/exp-function-dax.md @@ -38,7 +38,7 @@ The following formula calculates e raised to the power of the number contained i = EXP([Power]) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [LN function](ln-function-dax.md) diff --git a/query-languages/dax/fact-function-dax.md b/query-languages/dax/fact-function-dax.md index ec2dfdd9e..fec1dee98 100644 --- a/query-languages/dax/fact-function-dax.md +++ b/query-languages/dax/fact-function-dax.md @@ -48,7 +48,7 @@ The following table shows the expected results: |5|120| |170|7.257415615308E+306| -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [TRUNC function](trunc-function-dax.md) diff --git a/query-languages/dax/false-function-dax.md b/query-languages/dax/false-function-dax.md index 0742ae4b6..6bf856277 100644 --- a/query-languages/dax/false-function-dax.md +++ b/query-languages/dax/false-function-dax.md @@ -39,7 +39,7 @@ The following table shows the results when the example formula is used with 'Pro ||FALSE|FALSE|FALSE|FALSE|FALSE|FALSE| |Grand Total|TRUE|TRUE|TRUE|TRUE|FALSE|TRUE| -## See also +## Related content [TRUE function](true-function-dax.md) [NOT function](not-function-dax.md) diff --git a/query-languages/dax/filter-function-dax.md b/query-languages/dax/filter-function-dax.md index b554c3de6..a5d71ab97 100644 --- a/query-languages/dax/filter-function-dax.md +++ b/query-languages/dax/filter-function-dax.md @@ -78,7 +78,7 @@ SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry] ,'InternetSales_USD'[SalesAmount_USD]) ``` -## See also +## Related content [Filter functions](filter-functions-dax.md) [ALL function](all-function-dax.md) diff --git a/query-languages/dax/find-function-dax.md b/query-languages/dax/find-function-dax.md index 4d56bed89..9c7f2ee51 100644 --- a/query-languages/dax/find-function-dax.md +++ b/query-languages/dax/find-function-dax.md @@ -67,7 +67,7 @@ Returns, |Helmets and Cycles |Value Added Reseller| | |Jumbo Bikes |Specialty Bike Shop| 7 | -## See also +## Related content [SEARCH](search-function-dax.md) [Text functions](text-functions-dax.md) diff --git a/query-languages/dax/firstdate-function-dax.md b/query-languages/dax/firstdate-function-dax.md index b3de6edfa..fbb1e3d9b 100644 --- a/query-languages/dax/firstdate-function-dax.md +++ b/query-languages/dax/firstdate-function-dax.md @@ -45,7 +45,7 @@ The following sample formula creates a measure that obtains the first date when = FIRSTDATE('InternetSales_USD'[SaleDateKey]) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [Time intelligence functions](time-intelligence-functions-dax.md) diff --git a/query-languages/dax/firstnonblank-function-dax.md b/query-languages/dax/firstnonblank-function-dax.md index 37b4399e4..3abdca025 100644 --- a/query-languages/dax/firstnonblank-function-dax.md +++ b/query-languages/dax/firstnonblank-function-dax.md @@ -37,7 +37,7 @@ A table containing a single column and single row with the computed first value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [LASTNONBLANK function](lastnonblank-function-dax.md) [Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/fixed-function-dax.md b/query-languages/dax/fixed-function-dax.md index 062e9ce6a..c9503532f 100644 --- a/query-languages/dax/fixed-function-dax.md +++ b/query-languages/dax/fixed-function-dax.md @@ -46,7 +46,7 @@ The following formula used in a calculated column gets the numeric value for the = FIXED([List Price],2,1) ``` -## See also +## Related content [CEILING](ceiling-function-dax.md) [FLOOR](floor-function-dax.md) diff --git a/query-languages/dax/floor-function-dax.md b/query-languages/dax/floor-function-dax.md index 8235eef9d..fd1eb9981 100644 --- a/query-languages/dax/floor-function-dax.md +++ b/query-languages/dax/floor-function-dax.md @@ -49,6 +49,6 @@ The following table shows the expected results for some sample values: |8.0373|8| |2.9733|2.9| -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/geomean-function-dax.md b/query-languages/dax/geomean-function-dax.md index c4b992347..69b8032c5 100644 --- a/query-languages/dax/geomean-function-dax.md +++ b/query-languages/dax/geomean-function-dax.md @@ -40,6 +40,6 @@ The following computes the geometric mean of the Return column in the Investment = GEOMEAN( Investment[Return] ) ``` -## See also +## Related content [GEOMEANX function](geomeanx-function-dax.md) diff --git a/query-languages/dax/geomeanx-function-dax.md b/query-languages/dax/geomeanx-function-dax.md index 80b5e6902..fcaede852 100644 --- a/query-languages/dax/geomeanx-function-dax.md +++ b/query-languages/dax/geomeanx-function-dax.md @@ -41,6 +41,6 @@ The following computes the geometric mean of the ReturnPct column in the Investm = GEOMEANX( Investments, Investments[ReturnPct] + 1 ) ``` -## See also +## Related content [GEOMEAN function](geomean-function-dax.md) diff --git a/query-languages/dax/groupby-function-dax.md b/query-languages/dax/groupby-function-dax.md index afdd832f6..1c2f13674 100644 --- a/query-languages/dax/groupby-function-dax.md +++ b/query-languages/dax/groupby-function-dax.md @@ -74,7 +74,7 @@ Geography[Country], ) ``` -## See also +## Related content [SUMMARIZE function](summarize-function-dax.md) [SUMMARIZECOLUMNS function](summarizecolumns-function-dax.md) diff --git a/query-languages/dax/hour-function-dax.md b/query-languages/dax/hour-function-dax.md index e13e6aed0..ca07cc262 100644 --- a/query-languages/dax/hour-function-dax.md +++ b/query-languages/dax/hour-function-dax.md @@ -44,7 +44,7 @@ The following example returns 15, meaning the hour corresponding to 3 PM in a 24 = HOUR("March 3, 2008 3:00 PM") ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [MINUTE function](minute-function-dax.md) diff --git a/query-languages/dax/if-eager-function-dax.md b/query-languages/dax/if-eager-function-dax.md index 72e3acb69..9be25ce4b 100644 --- a/query-languages/dax/if-eager-function-dax.md +++ b/query-languages/dax/if-eager-function-dax.md @@ -46,7 +46,7 @@ Either **value_if_true**, **value_if_false**, or BLANK. See [IF Examples](if-function-dax.md#examples). -## See also +## Related content [IF function](if-function-dax.md) [Logical functions](logical-functions-dax.md) diff --git a/query-languages/dax/if-function-dax.md b/query-languages/dax/if-function-dax.md index 2d155bba5..1ca698566 100644 --- a/query-languages/dax/if-function-dax.md +++ b/query-languages/dax/if-function-dax.md @@ -77,7 +77,7 @@ IF( > [!TIP] > When you need to nest multiple IF functions, the [SWITCH](switch-function-dax.md) function might be a better option. This function provides a more elegant way to write an expression that returns more than two possible values. -## See also +## Related content [IF.EAGER function](if-eager-function-dax.md) [SWITCH function (DAX)](switch-function-dax.md) diff --git a/query-languages/dax/iferror-function-dax.md b/query-languages/dax/iferror-function-dax.md index e5597bdb2..b3427cada 100644 --- a/query-languages/dax/iferror-function-dax.md +++ b/query-languages/dax/iferror-function-dax.md @@ -47,6 +47,6 @@ The following example returns 9999 if the expression 25/0 evaluates to an error. = IFERROR(25/0,9999) ``` -## See also +## Related content [Logical functions](logical-functions-dax.md) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 37bb11341..2bd9ec7bc 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -120,7 +120,7 @@ Returns the following table: |217 | 11 | 6683.09 | 7767.78 | |217 | 12 | 7767.78 | 7767.78 | -## See also +## Related content [OFFSET](offset-function-dax.md) [ORDERBY](orderby-function-dax.md) diff --git a/query-languages/dax/int-function-dax.md b/query-languages/dax/int-function-dax.md index e03e8b40e..1cada5b64 100644 --- a/query-languages/dax/int-function-dax.md +++ b/query-languages/dax/int-function-dax.md @@ -34,7 +34,7 @@ The following expression rounds the value to 1. If you use the ROUND function, t = INT(1.5) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [ROUND function](round-function-dax.md) diff --git a/query-languages/dax/isafter-function-dax.md b/query-languages/dax/isafter-function-dax.md index 628aea320..09d33e43c 100644 --- a/query-languages/dax/isafter-function-dax.md +++ b/query-languages/dax/isafter-function-dax.md @@ -62,6 +62,6 @@ Returns: |USA|CA|5|500| |USA|WA|10|900| -## See also +## Related content [ISONORAFTER](isonorafter-function-dax.md) \ No newline at end of file diff --git a/query-languages/dax/isblank-function-dax.md b/query-languages/dax/isblank-function-dax.md index 9d40df459..4485ba434 100644 --- a/query-languages/dax/isblank-function-dax.md +++ b/query-languages/dax/isblank-function-dax.md @@ -49,6 +49,6 @@ Result, |2008|$24,542,444.68|$39,248,847.52|-37.47%| |Grand Total|$102,554,625.71||| -## See also +## Related content [Information functions](information-functions-dax.md) diff --git a/query-languages/dax/iscrossfiltered-function-dax.md b/query-languages/dax/iscrossfiltered-function-dax.md index 3b8c43c94..c64b60762 100644 --- a/query-languages/dax/iscrossfiltered-function-dax.md +++ b/query-languages/dax/iscrossfiltered-function-dax.md @@ -30,7 +30,7 @@ TRUE when *ColumnName* or a column of *TableName* is being cross-filtered. Other - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [ISFILTERED function](isfiltered-function-dax.md) [FILTERS function](filters-function-dax.md) diff --git a/query-languages/dax/iserror-function-dax.md b/query-languages/dax/iserror-function-dax.md index 70e6979de..49d50ce62 100644 --- a/query-languages/dax/iserror-function-dax.md +++ b/query-languages/dax/iserror-function-dax.md @@ -43,7 +43,7 @@ The following example calculates the ratio of total Internet sales to total rese ) ``` -## See also +## Related content [Information functions](information-functions-dax.md) [IFERROR function](iferror-function-dax.md) diff --git a/query-languages/dax/isfiltered-function-dax.md b/query-languages/dax/isfiltered-function-dax.md index 48704b89e..c12139fef 100644 --- a/query-languages/dax/isfiltered-function-dax.md +++ b/query-languages/dax/isfiltered-function-dax.md @@ -30,7 +30,7 @@ TRUE when *ColumnName* or a column of *TableName* is being filtered directly. Ot - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [ISCROSSFILTERED function](iscrossfiltered-function-dax.md) [FILTERS function](filters-function-dax.md) diff --git a/query-languages/dax/isinscope-function-dax.md b/query-languages/dax/isinscope-function-dax.md index 61c258191..5f9c68382 100644 --- a/query-languages/dax/isinscope-function-dax.md +++ b/query-languages/dax/isinscope-function-dax.md @@ -80,7 +80,7 @@ Returns, |Bikes | Road Bikes | FALSE | FALSE | 14,520,584.04 | 51.28 | |Bikes | Touring Bikes | FALSE | FALSE | 3,844,801.05 | 13.58 | -## See also +## Related content [SUMMARIZECOLUMNS function](summarizecolumns-function-dax.md) [CALCULATE function](calculate-function-dax.md) diff --git a/query-languages/dax/islogical-function-dax.md b/query-languages/dax/islogical-function-dax.md index 4beb4bda4..8dad12b35 100644 --- a/query-languages/dax/islogical-function-dax.md +++ b/query-languages/dax/islogical-function-dax.md @@ -41,6 +41,6 @@ The following three samples show the behavior of ISLOGICAL. = IF(ISLOGICAL(25), "Is Boolean type or Logical", "Is different type") ``` -## See also +## Related content [Information functions](information-functions-dax.md) diff --git a/query-languages/dax/isnontext-function-dax.md b/query-languages/dax/isnontext-function-dax.md index 7d741ff5f..c73277d2b 100644 --- a/query-languages/dax/isnontext-function-dax.md +++ b/query-languages/dax/isnontext-function-dax.md @@ -43,6 +43,6 @@ The following examples show the behavior of the ISNONTEXT function. = IF(ISNONTEXT(""), "Is Non-Text", "Is Text") ``` -## See also +## Related content [Information functions](information-functions-dax.md) diff --git a/query-languages/dax/isnumber-function-dax.md b/query-languages/dax/isnumber-function-dax.md index 9801884b7..f9ee3e861 100644 --- a/query-languages/dax/isnumber-function-dax.md +++ b/query-languages/dax/isnumber-function-dax.md @@ -41,6 +41,6 @@ The following three samples show the behavior of ISNUMBER. = IF(ISNUMBER("123"), "Is number", "Is Not number") ``` -## See also +## Related content [Information functions](information-functions-dax.md) diff --git a/query-languages/dax/iso-ceiling-function-dax.md b/query-languages/dax/iso-ceiling-function-dax.md index 67e8cd2f9..f01bd5862 100644 --- a/query-languages/dax/iso-ceiling-function-dax.md +++ b/query-languages/dax/iso-ceiling-function-dax.md @@ -59,7 +59,7 @@ The following formula returns the ISO ceiling value of -4.40. = ISO.CEILING(-4.42,0.05) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [FLOOR function](floor-function-dax.md) diff --git a/query-languages/dax/isonorafter-function-dax.md b/query-languages/dax/isonorafter-function-dax.md index 62d582fde..949d4448c 100644 --- a/query-languages/dax/isonorafter-function-dax.md +++ b/query-languages/dax/isonorafter-function-dax.md @@ -63,6 +63,6 @@ Returns: |USA|CA|5|500| |USA|WA|10|900| -## See also +## Related content [ISAFTER](isafter-function-dax.md) \ No newline at end of file diff --git a/query-languages/dax/isselectedmeasure-function-dax.md b/query-languages/dax/isselectedmeasure-function-dax.md index 3f9282314..34f722eaa 100644 --- a/query-languages/dax/isselectedmeasure-function-dax.md +++ b/query-languages/dax/isselectedmeasure-function-dax.md @@ -41,7 +41,7 @@ IF ( ``` -## See also +## Related content [SELECTEDMEASURE](selectedmeasure-function-dax.md) [SELECTEDMEASURENAME](selectedmeasurename-function-dax.md) diff --git a/query-languages/dax/istext-function-dax.md b/query-languages/dax/istext-function-dax.md index 0a6ff2659..6eb420cee 100644 --- a/query-languages/dax/istext-function-dax.md +++ b/query-languages/dax/istext-function-dax.md @@ -44,6 +44,6 @@ The following examples show the behavior of the ISTEXT function. = IF(ISTEXT(BLANK()), "Is Text", "Is Non-Text") ``` -## See also +## Related content [Information functions](information-functions-dax.md) diff --git a/query-languages/dax/keepfilters-function-dax.md b/query-languages/dax/keepfilters-function-dax.md index 49f6d5ba1..bf9cdea4a 100644 --- a/query-languages/dax/keepfilters-function-dax.md +++ b/query-languages/dax/keepfilters-function-dax.md @@ -103,7 +103,7 @@ First, examine the expression, **[$$ in WA and OR ??]**. You might wonder how th Next, examine the expression, **[$$ in WA !!]**. You might wonder how this formula could return the value for sales in Washington and nothing else, since the argument filter includes Oregon and the outer CALCULATE expression includes a filter in Washington and British Columbia. The answer is that KEEPFILTERS modifies the default behavior of CALCULATE and adds an additional filter. Because the intersection of filters is used, now the outer filter **'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")** is added to the filter argument **'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"**,. Because both filters apply to the same column, the resulting filter **'Geography'[State Province Code]="WA"** is the filter that is applied when evaluating the expression. -## See also +## Related content [Filter functions](filter-functions-dax.md) [CALCULATE function](calculate-function-dax.md) diff --git a/query-languages/dax/lastdate-function-dax.md b/query-languages/dax/lastdate-function-dax.md index b61c4df30..0fc38574d 100644 --- a/query-languages/dax/lastdate-function-dax.md +++ b/query-languages/dax/lastdate-function-dax.md @@ -45,7 +45,7 @@ The following sample formula creates a measure that obtains the last date, for t = LASTDATE('InternetSales_USD'[SaleDateKey]) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [Time intelligence functions](time-intelligence-functions-dax.md) diff --git a/query-languages/dax/lastnonblank-function-dax.md b/query-languages/dax/lastnonblank-function-dax.md index 3ceab8aa4..3bd1985e8 100644 --- a/query-languages/dax/lastnonblank-function-dax.md +++ b/query-languages/dax/lastnonblank-function-dax.md @@ -36,7 +36,7 @@ A table containing a single column and single row with the computed last value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [FIRSTNONBLANK function](firstnonblank-function-dax.md) [Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/left-function-dax.md b/query-languages/dax/left-function-dax.md index 4bbf0cd7c..d47d3ca93 100644 --- a/query-languages/dax/left-function-dax.md +++ b/query-languages/dax/left-function-dax.md @@ -39,6 +39,6 @@ The following example returns the first five characters of the company name in t If the **num_chars** argument is a number that is larger than the number of characters available, the function returns the maximum characters available and does not raise an error. For example, the column [GeographyKey] contains numbers such as 1, 12 and 311; therefore the result also has variable length. -## See also +## Related content [Text functions](text-functions-dax.md) diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index d4f9e44c3..97292a944 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -109,7 +109,7 @@ For a given customer, this model predicts total sales by the following formula ( TotalSalesAmount = Slope1 * YearlyIncome + Slope2 * TotalChildren + Slope3 * BirthDate + Intercept ``` -## See also +## Related content [LINESTX](linestx-function-dax.md) [Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/linestx-function-dax.md b/query-languages/dax/linestx-function-dax.md index e79c2265b..1e8d2fe2a 100644 --- a/query-languages/dax/linestx-function-dax.md +++ b/query-languages/dax/linestx-function-dax.md @@ -115,7 +115,7 @@ For a given customer, this model predicts total sales by the following formula: Total Sales = Slope1 * Age + Slope2 * NumOfChildren + Intercept ``` -## See also +## Related content [LINEST](linest-function-dax.md) [Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/ln-function-dax.md b/query-languages/dax/ln-function-dax.md index da2288fb0..9b7737d32 100644 --- a/query-languages/dax/ln-function-dax.md +++ b/query-languages/dax/ln-function-dax.md @@ -34,7 +34,7 @@ The following example returns the natural logarithm of the number in the column, = LN([Values]) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [EXP function](exp-function-dax.md) diff --git a/query-languages/dax/log-function-dax.md b/query-languages/dax/log-function-dax.md index 4f508fb14..037b9a530 100644 --- a/query-languages/dax/log-function-dax.md +++ b/query-languages/dax/log-function-dax.md @@ -39,7 +39,7 @@ The following formulas return the same result, 2. = LOG10(100) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [EXP function](exp-function-dax.md) diff --git a/query-languages/dax/log10-function-dax.md b/query-languages/dax/log10-function-dax.md index 6e56c59ae..6774831c2 100644 --- a/query-languages/dax/log10-function-dax.md +++ b/query-languages/dax/log10-function-dax.md @@ -36,7 +36,7 @@ The following formulas return the same result, 2: = LOG10(100) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [EXP function](exp-function-dax.md) diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index 9f3fbbfe2..f1c760050 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -92,7 +92,7 @@ However, in this case, because there is a relationship between the **Sales Order CHANNEL = RELATED('Sales Order'[Channel]) ``` -## See also +## Related content [RELATED function (DAX)](related-function-dax.md) [Information functions](information-functions-dax.md) diff --git a/query-languages/dax/lower-function-dax.md b/query-languages/dax/lower-function-dax.md index 7419110be..7e72f7032 100644 --- a/query-languages/dax/lower-function-dax.md +++ b/query-languages/dax/lower-function-dax.md @@ -34,6 +34,6 @@ The following formula gets each row in the column, [ProductCode], and converts t = LOWER('New Products'[ProductCode]) ``` -## See also +## Related content [Text functions](text-functions-dax.md) diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md index a654051d2..11b6a49c7 100644 --- a/query-languages/dax/matchby-function-dax.md +++ b/query-languages/dax/matchby-function-dax.md @@ -32,7 +32,7 @@ This function can only be used within a window function expression. See [OFFSET](offset-function-dax.md). -## See also +## Related content [Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) [INDEX](index-function-dax.md) diff --git a/query-languages/dax/max-function-dax.md b/query-languages/dax/max-function-dax.md index 2a564d429..b4c038558 100644 --- a/query-languages/dax/max-function-dax.md +++ b/query-languages/dax/max-function-dax.md @@ -49,7 +49,7 @@ The following example returns the largest value between the result of two expres = Max([TotalSales], [TotalPurchases]) ``` -## See also +## Related content [MAXA function](maxa-function-dax.md) [MAXX function](maxx-function-dax.md) diff --git a/query-languages/dax/maxa-function-dax.md b/query-languages/dax/maxa-function-dax.md index 2e6ac4b59..8f19a6f79 100644 --- a/query-languages/dax/maxa-function-dax.md +++ b/query-languages/dax/maxa-function-dax.md @@ -52,7 +52,7 @@ The following example returns the largest value from a column that contains date = MAXA([TransactionDate]) ``` -## See also +## Related content [MAX function](max-function-dax.md) [MAXX function](maxx-function-dax.md) diff --git a/query-languages/dax/maxx-function-dax.md b/query-languages/dax/maxx-function-dax.md index e9b7aee86..aba73638b 100644 --- a/query-languages/dax/maxx-function-dax.md +++ b/query-languages/dax/maxx-function-dax.md @@ -55,7 +55,7 @@ The following formula first filters the InternetSales table by using a FILTER ex = MAXX(FILTER(InternetSales,[SalesTerritoryCode]="5"), InternetSales[TaxAmt]+ InternetSales[Freight]) ``` -## See also +## Related content [MAX function](max-function-dax.md) [MAXA function](maxa-function-dax.md) diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index 6c3c35484..a81e4a5cd 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -38,7 +38,7 @@ The calculated result of the measure expression. - To learn more about how MEASURE statements are used, see [DAX queries](dax-queries.md). -## See also +## Related content [DEFINE](define-statement-dax.md) [EVALUATE](evaluate-statement-dax.md) diff --git a/query-languages/dax/median-function-dax.md b/query-languages/dax/median-function-dax.md index cf29c912a..4d053f75d 100644 --- a/query-languages/dax/median-function-dax.md +++ b/query-languages/dax/median-function-dax.md @@ -40,6 +40,6 @@ The following computes the median of a column named Age in a table named Custome = MEDIAN( Customers[Age] ) ``` -## See also +## Related content [MEDIANX function](medianx-function-dax.md) diff --git a/query-languages/dax/medianx-function-dax.md b/query-languages/dax/medianx-function-dax.md index 9f588de53..8bde6351d 100644 --- a/query-languages/dax/medianx-function-dax.md +++ b/query-languages/dax/medianx-function-dax.md @@ -45,6 +45,6 @@ The following computes the median age of customers who live in the USA. = MEDIANX( FILTER(Customers, RELATED( Geography[Country]="USA" ) ), Customers[Age] ) ``` -## See also +## Related content [MEDIAN function](median-function-dax.md) diff --git a/query-languages/dax/mid-function-dax.md b/query-languages/dax/mid-function-dax.md index 5abe342e5..302541425 100644 --- a/query-languages/dax/mid-function-dax.md +++ b/query-languages/dax/mid-function-dax.md @@ -45,6 +45,6 @@ MID('Reseller'[ResellerName],1,5)) Returns the same result as `LEFT([ResellerName],5)`. Both expressions return the first 5 letters of column, `[ResellerName]`. -## See also +## Related content [Text functions](text-functions-dax.md) diff --git a/query-languages/dax/min-function-dax.md b/query-languages/dax/min-function-dax.md index 0a1012d48..51a349c95 100644 --- a/query-languages/dax/min-function-dax.md +++ b/query-languages/dax/min-function-dax.md @@ -63,7 +63,7 @@ The following example returns the smallest value from the result of two scalar e = Min([TotalSales], [TotalPurchases]) ``` -## See also +## Related content [MINA function](mina-function-dax.md) [MINX function](minx-function-dax.md) diff --git a/query-languages/dax/mina-function-dax.md b/query-languages/dax/mina-function-dax.md index 1dc95bab7..68a1626d0 100644 --- a/query-languages/dax/mina-function-dax.md +++ b/query-languages/dax/mina-function-dax.md @@ -49,7 +49,7 @@ The following expression returns the minimum value in the column, PostalCode. Be = MINA([PostalCode]) ``` -## See also +## Related content [MIN function](min-function-dax.md) [MINX function](minx-function-dax.md) diff --git a/query-languages/dax/minute-function-dax.md b/query-languages/dax/minute-function-dax.md index 2a8bbf16e..80f82fec0 100644 --- a/query-languages/dax/minute-function-dax.md +++ b/query-languages/dax/minute-function-dax.md @@ -44,7 +44,7 @@ The following example returns 45, which is the number of minutes in the time 1:4 = MINUTE("March 23, 2008 1:45 PM") ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [HOUR function](hour-function-dax.md) diff --git a/query-languages/dax/minx-function-dax.md b/query-languages/dax/minx-function-dax.md index 32ca63c34..08a85efe1 100644 --- a/query-languages/dax/minx-function-dax.md +++ b/query-languages/dax/minx-function-dax.md @@ -52,7 +52,7 @@ The following example uses the same filtered table as in the previous example, b In the first example, the names of the columns are unqualified. In the second example, the column names are fully qualified. -## See also +## Related content [MIN function](min-function-dax.md) [MINA function](mina-function-dax.md) diff --git a/query-languages/dax/mod-function-dax.md b/query-languages/dax/mod-function-dax.md index d430711a4..b5f459334 100644 --- a/query-languages/dax/mod-function-dax.md +++ b/query-languages/dax/mod-function-dax.md @@ -45,7 +45,7 @@ The following formula returns -1, the remainder of 3 divided by 2. Note that the = MOD(-3,-2) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [ROUND function](round-function-dax.md) diff --git a/query-languages/dax/month-function-dax.md b/query-languages/dax/month-function-dax.md index f6779aba8..13cd11fcd 100644 --- a/query-languages/dax/month-function-dax.md +++ b/query-languages/dax/month-function-dax.md @@ -48,7 +48,7 @@ The following expression returns the month from the date in the **TransactionDat = MONTH(Orders[TransactionDate]) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [HOUR function](hour-function-dax.md) diff --git a/query-languages/dax/mround-function-dax.md b/query-languages/dax/mround-function-dax.md index a8d4b1836..181086907 100644 --- a/query-languages/dax/mround-function-dax.md +++ b/query-languages/dax/mround-function-dax.md @@ -51,7 +51,7 @@ The following expression returns an error, because the numbers have different si = MROUND(5,-2) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [ROUND function](round-function-dax.md) diff --git a/query-languages/dax/naturalinnerjoin-function-dax.md b/query-languages/dax/naturalinnerjoin-function-dax.md index 8115d8ada..a06252a1a 100644 --- a/query-languages/dax/naturalinnerjoin-function-dax.md +++ b/query-languages/dax/naturalinnerjoin-function-dax.md @@ -37,6 +37,6 @@ A table which includes only rows for which the values in the common columns spec - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [NATURALLEFTOUTERJOIN](naturalleftouterjoin-function-dax.md) \ No newline at end of file diff --git a/query-languages/dax/naturalleftouterjoin-function-dax.md b/query-languages/dax/naturalleftouterjoin-function-dax.md index 1da54e385..a25f6f21e 100644 --- a/query-languages/dax/naturalleftouterjoin-function-dax.md +++ b/query-languages/dax/naturalleftouterjoin-function-dax.md @@ -37,6 +37,6 @@ A table which includes only rows from RightTable for which the values in the com - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [NATURALINNERJOIN](naturalinnerjoin-function-dax.md) diff --git a/query-languages/dax/nextday-function-dax.md b/query-languages/dax/nextday-function-dax.md index ede670b62..63648bd39 100644 --- a/query-languages/dax/nextday-function-dax.md +++ b/query-languages/dax/nextday-function-dax.md @@ -43,7 +43,7 @@ The following sample formula creates a measure that calculates the 'next day sal = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTDAY('DateTime'[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/nextmonth-function-dax.md b/query-languages/dax/nextmonth-function-dax.md index 17fce01f5..3319f98ea 100644 --- a/query-languages/dax/nextmonth-function-dax.md +++ b/query-languages/dax/nextmonth-function-dax.md @@ -43,7 +43,7 @@ The following sample formula creates a measure that calculates the 'next month s = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTMONTH('DateTime'[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/nextquarter-function-dax.md b/query-languages/dax/nextquarter-function-dax.md index 288658fbb..b76aa7827 100644 --- a/query-languages/dax/nextquarter-function-dax.md +++ b/query-languages/dax/nextquarter-function-dax.md @@ -43,7 +43,7 @@ The following sample formula creates a measure that calculates the 'next quarter = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTQUARTER('DateTime'[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/nextyear-function-dax.md b/query-languages/dax/nextyear-function-dax.md index 39b77e891..4f1bd9ad8 100644 --- a/query-languages/dax/nextyear-function-dax.md +++ b/query-languages/dax/nextyear-function-dax.md @@ -46,7 +46,7 @@ The following sample formula creates a measure that calculates the 'next year sa = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTYEAR('DateTime'[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/norm-dist-dax.md b/query-languages/dax/norm-dist-dax.md index b05b0c5f5..86f2e1421 100644 --- a/query-languages/dax/norm-dist-dax.md +++ b/query-languages/dax/norm-dist-dax.md @@ -42,7 +42,7 @@ Returns |0.908788780274132 | -## See also +## Related content [NORM.S.DIST function](norm-s-dist-dax.md) [NORM.INV function](norm-inv-dax.md) diff --git a/query-languages/dax/norm-inv-dax.md b/query-languages/dax/norm-inv-dax.md index 3c11dd895..1f7483b89 100644 --- a/query-languages/dax/norm-inv-dax.md +++ b/query-languages/dax/norm-inv-dax.md @@ -41,7 +41,7 @@ Returns |---------| |42.00000200956628780274132 | -## See also +## Related content [NORM.S.INV](norm-s-inv-dax.md) [NORM.S.DIST function](norm-s-dist-dax.md) diff --git a/query-languages/dax/norm-s-dist-dax.md b/query-languages/dax/norm-s-dist-dax.md index cdb151a46..cea052387 100644 --- a/query-languages/dax/norm-s-dist-dax.md +++ b/query-languages/dax/norm-s-dist-dax.md @@ -39,7 +39,7 @@ Returns |---------| |0.908788725604095 | -## See also +## Related content [NORM.INV function](norm-inv-dax.md) [NORM.DIST function](norm-dist-dax.md) diff --git a/query-languages/dax/norm-s-inv-dax.md b/query-languages/dax/norm-s-inv-dax.md index cb7f77510..245d39d51 100644 --- a/query-languages/dax/norm-s-inv-dax.md +++ b/query-languages/dax/norm-s-inv-dax.md @@ -38,7 +38,7 @@ Returns |---------| |1.33333467304411 | -## See also +## Related content [NORM.INV](norm-inv-dax.md) [NORM.S.DIST function](norm-s-dist-dax.md) diff --git a/query-languages/dax/not-function-dax.md b/query-languages/dax/not-function-dax.md index b93b08aad..77a66137d 100644 --- a/query-languages/dax/not-function-dax.md +++ b/query-languages/dax/not-function-dax.md @@ -36,7 +36,7 @@ Now create a new calculated column, **Calculated Column2**, and type the followi For each row in **Calculated Column1**, the values "true" and "false" are interpreted as the logical values TRUE or FALSE, and the NOT function returns the logical opposite of that value. -## See also +## Related content [TRUE function](true-function-dax.md) [FALSE function](false-function-dax.md) diff --git a/query-languages/dax/now-function-dax.md b/query-languages/dax/now-function-dax.md index 9ee75ddda..31c4c3fd0 100644 --- a/query-languages/dax/now-function-dax.md +++ b/query-languages/dax/now-function-dax.md @@ -34,7 +34,7 @@ The following example returns the current date and time plus 3.5 days: = NOW()+3.5 ``` -## See also +## Related content [UTCNOW function](utcnow-function-dax.md) [TODAY function](today-function-dax.md) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 0cf5b4f59..f8bbf4521 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -127,7 +127,7 @@ ADDCOLUMNS ( Returns FactInternetSales table with adding a column, which indicates, for each sale, its previous sale's amount, of the same product, in descending order of sales amount, with current sale being identified by its SalesOrderNumber and SalesOrderLineNumber. Without MATCHBY, the query would return an error since there are no key columns in FactInternetSales table. -## See also +## Related content [INDEX](index-function-dax.md) [ORDERBY](orderby-function-dax.md) diff --git a/query-languages/dax/openingbalancemonth-function-dax.md b/query-languages/dax/openingbalancemonth-function-dax.md index 5d6225c45..8c96989bb 100644 --- a/query-languages/dax/openingbalancemonth-function-dax.md +++ b/query-languages/dax/openingbalancemonth-function-dax.md @@ -45,7 +45,7 @@ The following sample formula creates a measure that calculates the 'Month Start = OPENINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` -## See also +## Related content [OPENINGBALANCEYEAR function](openingbalanceyear-function-dax.md) [OPENINGBALANCEQUARTER function](openingbalancequarter-function-dax.md) diff --git a/query-languages/dax/openingbalancequarter-function-dax.md b/query-languages/dax/openingbalancequarter-function-dax.md index 0baa00147..5bb6a2387 100644 --- a/query-languages/dax/openingbalancequarter-function-dax.md +++ b/query-languages/dax/openingbalancequarter-function-dax.md @@ -45,7 +45,7 @@ The following sample formula creates a measure that calculates the 'Quarter Star = OPENINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` -## See also +## Related content [OPENINGBALANCEYEAR function](openingbalanceyear-function-dax.md) [OPENINGBALANCEMONTH function](openingbalancemonth-function-dax.md) diff --git a/query-languages/dax/openingbalanceyear-function-dax.md b/query-languages/dax/openingbalanceyear-function-dax.md index 96f8779f7..bd864dc78 100644 --- a/query-languages/dax/openingbalanceyear-function-dax.md +++ b/query-languages/dax/openingbalanceyear-function-dax.md @@ -48,7 +48,7 @@ The following sample formula creates a measure that calculates the 'Year Start I = OPENINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` -## See also +## Related content [OPENINGBALANCEQUARTER function](openingbalancequarter-function-dax.md) [OPENINGBALANCEMONTH function](openingbalancemonth-function-dax.md) diff --git a/query-languages/dax/or-function-dax.md b/query-languages/dax/or-function-dax.md index 62d1fa950..08560c14e 100644 --- a/query-languages/dax/or-function-dax.md +++ b/query-languages/dax/or-function-dax.md @@ -65,6 +65,6 @@ Returns |Varkey Chudukatil, Ranjit R||||||Circle of Excellence| |Grand Total|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| -## See also +## Related content [Logical functions](logical-functions-dax.md) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index b7e22b52e..c8cf08c7c 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -32,7 +32,7 @@ This function can only be used within a window function expression. See [OFFSET](offset-function-dax.md). -## See also +## Related content [Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) [INDEX](index-function-dax.md) diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index fd581b259..1eddc2d2f 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -28,7 +28,7 @@ The result of an EVALUATE statement in ascending (ASC) or descending (DESC) orde To learn more about how ORDER BY statements are used, see [DAX queries](dax-queries.md). -## See also +## Related content [START AT](startat-statement-dax.md) [EVALUATE](evaluate-statement-dax.md) diff --git a/query-languages/dax/parallelperiod-function-dax.md b/query-languages/dax/parallelperiod-function-dax.md index 558109942..e3f86ccbe 100644 --- a/query-languages/dax/parallelperiod-function-dax.md +++ b/query-languages/dax/parallelperiod-function-dax.md @@ -53,7 +53,7 @@ The following sample formula creates a measure that calculates the previous year = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PARALLELPERIOD(DateTime[DateKey],-1,year)) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index 8322301c6..ccd067235 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -31,7 +31,7 @@ This function can only be used within a window function expression. See [OFFSET](offset-function-dax.md). -## See also +## Related content [Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) [INDEX](index-function-dax.md) diff --git a/query-languages/dax/percentile-exc-function-dax.md b/query-languages/dax/percentile-exc-function-dax.md index bc1828a14..9f23158db 100644 --- a/query-languages/dax/percentile-exc-function-dax.md +++ b/query-languages/dax/percentile-exc-function-dax.md @@ -39,6 +39,6 @@ The k-th percentile of values in a range, where k is in the range 0..1, exclusiv - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [PERCENTILEX.EXC](percentilex-exc-function-dax.md) diff --git a/query-languages/dax/percentile-inc-function-dax.md b/query-languages/dax/percentile-inc-function-dax.md index e706c803a..fd2eb6ffe 100644 --- a/query-languages/dax/percentile-inc-function-dax.md +++ b/query-languages/dax/percentile-inc-function-dax.md @@ -39,6 +39,6 @@ The k-th percentile of values in a range, where k is in the range 0..1, inclusiv - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [PERCENTILEX.INC](percentilex-inc-function-dax.md) diff --git a/query-languages/dax/percentilex-exc-function-dax.md b/query-languages/dax/percentilex-exc-function-dax.md index 5e6428b3f..6588a1149 100644 --- a/query-languages/dax/percentilex-exc-function-dax.md +++ b/query-languages/dax/percentilex-exc-function-dax.md @@ -38,6 +38,6 @@ The percentile number of an expression evaluated for each row in a table. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [PERCENTILE.EXC](percentile-exc-function-dax.md) diff --git a/query-languages/dax/percentilex-inc-function-dax.md b/query-languages/dax/percentilex-inc-function-dax.md index e5bf79f03..f66fec6e0 100644 --- a/query-languages/dax/percentilex-inc-function-dax.md +++ b/query-languages/dax/percentilex-inc-function-dax.md @@ -38,6 +38,6 @@ The percentile number of an expression evaluated for each row in a table. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## See also +## Related content [PERCENTILE.INC](percentile-inc-function-dax.md) diff --git a/query-languages/dax/pi-function-dax.md b/query-languages/dax/pi-function-dax.md index 5af5d6f64..054c56225 100644 --- a/query-languages/dax/pi-function-dax.md +++ b/query-languages/dax/pi-function-dax.md @@ -28,6 +28,6 @@ The following formula calculates the area of a circle given the radius in the co = PI()*([Radius]*2) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/power-function-dax.md b/query-languages/dax/power-function-dax.md index 9985171c1..e0e47fa3a 100644 --- a/query-languages/dax/power-function-dax.md +++ b/query-languages/dax/power-function-dax.md @@ -31,6 +31,6 @@ The following example returns 25. = POWER(5,2) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/previousday-function-dax.md b/query-languages/dax/previousday-function-dax.md index 20ea6c44b..c29b94772 100644 --- a/query-languages/dax/previousday-function-dax.md +++ b/query-languages/dax/previousday-function-dax.md @@ -43,7 +43,7 @@ The following sample formula creates a measure that calculates the 'previous day = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSDAY('DateTime'[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/previousmonth-function-dax.md b/query-languages/dax/previousmonth-function-dax.md index f24fa6855..fab3417e2 100644 --- a/query-languages/dax/previousmonth-function-dax.md +++ b/query-languages/dax/previousmonth-function-dax.md @@ -43,7 +43,7 @@ The following sample formula creates a measure that calculates the 'previous mon = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSMONTH('DateTime'[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/previousquarter-function-dax.md b/query-languages/dax/previousquarter-function-dax.md index d0e80a302..03ce0c63b 100644 --- a/query-languages/dax/previousquarter-function-dax.md +++ b/query-languages/dax/previousquarter-function-dax.md @@ -43,7 +43,7 @@ The following sample formula creates a measure that calculates the 'previous qua = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSQUARTER('DateTime'[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/previousyear-function-dax.md b/query-languages/dax/previousyear-function-dax.md index 36cdebdc7..df8195af5 100644 --- a/query-languages/dax/previousyear-function-dax.md +++ b/query-languages/dax/previousyear-function-dax.md @@ -46,7 +46,7 @@ The following sample formula creates a measure that calculates the previous year = CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSYEAR('DateTime'[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/product-function-dax.md b/query-languages/dax/product-function-dax.md index 229b62233..dc66b6178 100644 --- a/query-languages/dax/product-function-dax.md +++ b/query-languages/dax/product-function-dax.md @@ -40,6 +40,6 @@ The following computes the product of the AdjustedRates column in an Annuity tab = PRODUCT( Annuity[AdjustedRates] ) ``` -## See also +## Related content [PRODUCTX](productx-function-dax.md) diff --git a/query-languages/dax/productx-function-dax.md b/query-languages/dax/productx-function-dax.md index c7153737b..c7c89b080 100644 --- a/query-languages/dax/productx-function-dax.md +++ b/query-languages/dax/productx-function-dax.md @@ -41,6 +41,6 @@ The following computes the future value of an investment: = [PresentValue] * PRODUCTX( AnnuityPeriods, 1+[FixedInterestRate] ) ``` -## See also +## Related content [PRODUCT](product-function-dax.md) diff --git a/query-languages/dax/quarter-function-dax.md b/query-languages/dax/quarter-function-dax.md index 65bb66642..73b6957bc 100644 --- a/query-languages/dax/quarter-function-dax.md +++ b/query-languages/dax/quarter-function-dax.md @@ -65,7 +65,7 @@ Returns: |3/31/2008 | 1 | | 4/1/2008 | 2 | -## See also +## Related content [YEAR](year-function-dax.md) [MONTH](month-function-dax.md) diff --git a/query-languages/dax/quotient-function-dax.md b/query-languages/dax/quotient-function-dax.md index 1ead4d81d..f7824faa8 100644 --- a/query-languages/dax/quotient-function-dax.md +++ b/query-languages/dax/quotient-function-dax.md @@ -41,6 +41,6 @@ The following formulas return the same result, 2. = QUOTIENT(10/2,2) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/rand-function-dax.md b/query-languages/dax/rand-function-dax.md index eb44782a0..a7c7ff5aa 100644 --- a/query-languages/dax/rand-function-dax.md +++ b/query-languages/dax/rand-function-dax.md @@ -56,7 +56,7 @@ INT(RAND()*100) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/randbetween-function-dax.md b/query-languages/dax/randbetween-function-dax.md index cd469471e..125a5f993 100644 --- a/query-languages/dax/randbetween-function-dax.md +++ b/query-languages/dax/randbetween-function-dax.md @@ -35,7 +35,7 @@ The following formula returns a random number between 1 and 10. = RANDBETWEEN(1,10) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 54a1a88b9..5cafdd604 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -66,7 +66,7 @@ ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc Returns a table that ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. Blank \ column values are sorted on the end. -## See also +## Related content [INDEX](index-function-dax.md) [ORDERBY](orderby-function-dax.md) diff --git a/query-languages/dax/related-function-dax.md b/query-languages/dax/related-function-dax.md index 9b8a21fc8..871fc32a3 100644 --- a/query-languages/dax/related-function-dax.md +++ b/query-languages/dax/related-function-dax.md @@ -86,7 +86,7 @@ The following shows what that you might get if you used this measure in a report |2008|$228,159.45|$5,386,558.19|$102,675.04|$5,717,392.68| |Grand Total|$384,639.63|$16,107,890.23|$172,817.81|$16,665,347.67| -## See also +## Related content [RELATEDTABLE](relatedtable-function-dax.md) [Filter functions](filter-functions-dax.md) diff --git a/query-languages/dax/relatedtable-function-dax.md b/query-languages/dax/relatedtable-function-dax.md index bdf2abd14..f83f62e32 100644 --- a/query-languages/dax/relatedtable-function-dax.md +++ b/query-languages/dax/relatedtable-function-dax.md @@ -50,7 +50,7 @@ The following table shows the results: -## See also +## Related content [CALCULATETABLE](calculatetable-function-dax.md) [Filter functions](filter-functions-dax.md) diff --git a/query-languages/dax/replace-function-dax.md b/query-languages/dax/replace-function-dax.md index 0ed16c182..f96b5811f 100644 --- a/query-languages/dax/replace-function-dax.md +++ b/query-languages/dax/replace-function-dax.md @@ -39,7 +39,7 @@ The following formula creates a new calculated column that replaces the first tw = REPLACE('New Products'[Product Code],1,2,"OB") ``` -## See also +## Related content [Text functions](text-functions-dax.md) [SUBSTITUTE function](substitute-function-dax.md) diff --git a/query-languages/dax/rept-function-dax.md b/query-languages/dax/rept-function-dax.md index 3b1ff0eb4..41e542512 100644 --- a/query-languages/dax/rept-function-dax.md +++ b/query-languages/dax/rept-function-dax.md @@ -53,6 +53,6 @@ The following example returns the string in the column, [MyText], repeated for t |Number|0|| |85|3|858585| -## See also +## Related content [Text functions](text-functions-dax.md) diff --git a/query-languages/dax/right-function-dax.md b/query-languages/dax/right-function-dax.md index 9bfd5bb6a..1230681a0 100644 --- a/query-languages/dax/right-function-dax.md +++ b/query-languages/dax/right-function-dax.md @@ -47,7 +47,7 @@ The following formula returns a variable number of digits from the product code = RIGHT('New Products'[ProductCode],[MyCount]) ``` -## See also +## Related content [Text functions](text-functions-dax.md) [LEFT](left-function-dax.md) diff --git a/query-languages/dax/round-function-dax.md b/query-languages/dax/round-function-dax.md index 0b602b7d0..1d69d9437 100644 --- a/query-languages/dax/round-function-dax.md +++ b/query-languages/dax/round-function-dax.md @@ -53,7 +53,7 @@ The following formula rounds 21.5 to one decimal place to the left of the decima = ROUND(21.5,-1) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [ROUND](round-function-dax.md) [ROUNDDOWN](rounddown-function-dax.md) diff --git a/query-languages/dax/rounddown-function-dax.md b/query-languages/dax/rounddown-function-dax.md index d57797bb3..ce5915a55 100644 --- a/query-languages/dax/rounddown-function-dax.md +++ b/query-languages/dax/rounddown-function-dax.md @@ -49,7 +49,7 @@ The following example rounds the value of 31415.92654 down to 2 decimal places t = ROUNDDOWN(31415.92654, -2) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [ROUND](round-function-dax.md) diff --git a/query-languages/dax/roundup-function-dax.md b/query-languages/dax/roundup-function-dax.md index c84c85bd9..12a1f39e5 100644 --- a/query-languages/dax/roundup-function-dax.md +++ b/query-languages/dax/roundup-function-dax.md @@ -67,7 +67,7 @@ When **num_digits** is less than zero, the number of places to the left of the d |1.34|10| |345.01|350| -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [ROUND](round-function-dax.md) diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 6911a5e50..4cc7f1764 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -69,7 +69,7 @@ ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc Returns a table that uniquely ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. -## See also +## Related content [INDEX](index-function-dax.md) [ORDERBY](orderby-function-dax.md) diff --git a/query-languages/dax/sameperiodlastyear-function-dax.md b/query-languages/dax/sameperiodlastyear-function-dax.md index 31d9241ac..66de859d4 100644 --- a/query-languages/dax/sameperiodlastyear-function-dax.md +++ b/query-languages/dax/sameperiodlastyear-function-dax.md @@ -43,7 +43,7 @@ The following sample formula creates a measure that calculates the previous year = CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), SAMEPERIODLASTYEAR(DateTime[DateKey])) ``` -## See also +## Related content [Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions ](date-and-time-functions-dax.md) diff --git a/query-languages/dax/search-function-dax.md b/query-languages/dax/search-function-dax.md index 35a94b3c2..5ff5a417c 100644 --- a/query-languages/dax/search-function-dax.md +++ b/query-languages/dax/search-function-dax.md @@ -71,7 +71,7 @@ Returns, |Helmets and Cycles |Value Added Reseller| 13 | |Jumbo Bikes |Specialty Bike Shop| | -## See also +## Related content [FIND](find-function-dax.md) [REPLACE](replace-function-dax.md) diff --git a/query-languages/dax/second-function-dax.md b/query-languages/dax/second-function-dax.md index 4c031ca98..fcfe5e4b3 100644 --- a/query-languages/dax/second-function-dax.md +++ b/query-languages/dax/second-function-dax.md @@ -48,7 +48,7 @@ The following formula returns 3, which is the number of seconds in the time repr = SECOND("March 3, 2008 12:00:03") ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [HOUR](hour-function-dax.md) diff --git a/query-languages/dax/selectedmeasure-function-dax.md b/query-languages/dax/selectedmeasure-function-dax.md index 9593fcbbb..a727a22ce 100644 --- a/query-languages/dax/selectedmeasure-function-dax.md +++ b/query-languages/dax/selectedmeasure-function-dax.md @@ -45,7 +45,7 @@ SELECTEDMEASURE() < 1000000, "$#,##0,.0 K", //Values between 1000 and 1000000 ) ``` -## See also +## Related content [SELECTEDMEASURENAME](selectedmeasurename-function-dax.md) [ISSELECTEDMEASURE](isselectedmeasure-function-dax.md) diff --git a/query-languages/dax/selectedmeasureformatstring-function-dax.md b/query-languages/dax/selectedmeasureformatstring-function-dax.md index db419b8f7..5f29771dd 100644 --- a/query-languages/dax/selectedmeasureformatstring-function-dax.md +++ b/query-languages/dax/selectedmeasureformatstring-function-dax.md @@ -34,7 +34,7 @@ The following expression is evaluated by the Format String Expression property f SELECTEDVALUE( DimCurrency[FormatString], SELECTEDMEASUREFORMATSTRING() ) ``` -## See also +## Related content [SELECTEDMEASURE](selectedmeasure-function-dax.md) [ISSELECTEDMEASURE](isselectedmeasure-function-dax.md) diff --git a/query-languages/dax/selectedmeasurename-function-dax.md b/query-languages/dax/selectedmeasurename-function-dax.md index 22aa03439..2d449ac57 100644 --- a/query-languages/dax/selectedmeasurename-function-dax.md +++ b/query-languages/dax/selectedmeasurename-function-dax.md @@ -38,7 +38,7 @@ IF ( ) ``` -## See also +## Related content [SELECTEDMEASURE](selectedmeasure-function-dax.md) [ISSELECTEDMEASURE](isselectedmeasure-function-dax.md) diff --git a/query-languages/dax/sign-function-dax.md b/query-languages/dax/sign-function-dax.md index 34bbe27fa..a043adeb5 100644 --- a/query-languages/dax/sign-function-dax.md +++ b/query-languages/dax/sign-function-dax.md @@ -36,6 +36,6 @@ The following formula returns the sign of the result of the expression that calc = SIGN( ([Sale Price] - [Cost]) ) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/sqrt-function-dax.md b/query-languages/dax/sqrt-function-dax.md index 49faa33e5..389652d1c 100644 --- a/query-languages/dax/sqrt-function-dax.md +++ b/query-languages/dax/sqrt-function-dax.md @@ -34,6 +34,6 @@ The following formula, = SQRT(25) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/startat-statement-dax.md b/query-languages/dax/startat-statement-dax.md index e4e647c82..132f6019d 100644 --- a/query-languages/dax/startat-statement-dax.md +++ b/query-languages/dax/startat-statement-dax.md @@ -25,7 +25,7 @@ Introduces a statement that defines the starting value at which the query result - To learn more about how START AT statements are used, see [DAX queries](dax-queries.md). -## See also +## Related content [ORDER BY](orderby-statement-dax.md) [EVALUATE](evaluate-statement-dax.md) diff --git a/query-languages/dax/startofmonth-function-dax.md b/query-languages/dax/startofmonth-function-dax.md index afef909d8..5139a04c2 100644 --- a/query-languages/dax/startofmonth-function-dax.md +++ b/query-languages/dax/startofmonth-function-dax.md @@ -40,7 +40,7 @@ The following sample formula creates a measure that returns the start of the mon = STARTOFMONTH(DateTime[DateKey]) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [Time intelligence functions](time-intelligence-functions-dax.md) diff --git a/query-languages/dax/startofquarter-function-dax.md b/query-languages/dax/startofquarter-function-dax.md index a4e2bf999..d8eb759b8 100644 --- a/query-languages/dax/startofquarter-function-dax.md +++ b/query-languages/dax/startofquarter-function-dax.md @@ -41,7 +41,7 @@ The following sample formula creates a measure that returns the start of the qua = STARTOFQUARTER(DateTime[DateKey]) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [Time intelligence functions](time-intelligence-functions-dax.md) [STARTOFYEAR](startofyear-function-dax.md) diff --git a/query-languages/dax/startofyear-function-dax.md b/query-languages/dax/startofyear-function-dax.md index 3bbd1042e..dca7328ad 100644 --- a/query-languages/dax/startofyear-function-dax.md +++ b/query-languages/dax/startofyear-function-dax.md @@ -42,7 +42,7 @@ The following sample formula creates a measure that returns the start of the yea = STARTOFYEAR(DateTime[DateKey]) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [Time intelligence functions](time-intelligence-functions-dax.md) diff --git a/query-languages/dax/substitute-function-dax.md b/query-languages/dax/substitute-function-dax.md index 7a5d37326..625c7d3ff 100644 --- a/query-languages/dax/substitute-function-dax.md +++ b/query-languages/dax/substitute-function-dax.md @@ -41,7 +41,7 @@ The following formula creates a copy of the column [Product Code] that substitut = SUBSTITUTE([Product Code], "NW", "PA") ``` -## See also +## Related content [Text functions](text-functions-dax.md) [REPLACE](replace-function-dax.md) diff --git a/query-languages/dax/sum-function-dax.md b/query-languages/dax/sum-function-dax.md index 0be2a9204..d423a4ae3 100644 --- a/query-languages/dax/sum-function-dax.md +++ b/query-languages/dax/sum-function-dax.md @@ -34,6 +34,6 @@ The following example adds all the numbers that are contained in the column, Amt = SUM(Sales[Amt]) ``` -## See also +## Related content [SUMX](sumx-function-dax.md) diff --git a/query-languages/dax/summarize-function-dax.md b/query-languages/dax/summarize-function-dax.md index e1900f573..25aebadec 100644 --- a/query-languages/dax/summarize-function-dax.md +++ b/query-languages/dax/summarize-function-dax.md @@ -197,6 +197,6 @@ Returns the following table, |FALSE|TRUE|2007||30543780.84|297538.0745| |TRUE|TRUE|||76494758.25|527507.9262| -## See also +## Related content [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index b28cbb7f9..c6d182169 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -254,6 +254,6 @@ Still grouped by City and State, but rolled together when reporting a subtotal r ||C|FALSE|3||TRUE| |||TRUE|11||TRUE| -## See also +## Related content [SUMMARIZE](summarize-function-dax.md) diff --git a/query-languages/dax/sumx-function-dax.md b/query-languages/dax/sumx-function-dax.md index e734c1234..4eec9f436 100644 --- a/query-languages/dax/sumx-function-dax.md +++ b/query-languages/dax/sumx-function-dax.md @@ -43,7 +43,7 @@ The following example first filters the table, InternetSales, on the expression, If you do not need to filter the column, use the SUM function. The SUM function is similar to the Excel function of the same name, except that it takes a column as a reference. -## See also +## Related content [SUM](sum-function-dax.md) [Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/t-dist-2t-dax.md b/query-languages/dax/t-dist-2t-dax.md index f85fd7804..c7faa369a 100644 --- a/query-languages/dax/t-dist-2t-dax.md +++ b/query-languages/dax/t-dist-2t-dax.md @@ -39,7 +39,7 @@ Returns |---------| |0.054644929975921 | -## See also +## Related content [T.DIST](t-dist-dax.md) [T.DIST.RT](t-dist-rt-dax.md) diff --git a/query-languages/dax/t-dist-dax.md b/query-languages/dax/t-dist-dax.md index 7e7d87f50..5585f923d 100644 --- a/query-languages/dax/t-dist-dax.md +++ b/query-languages/dax/t-dist-dax.md @@ -40,7 +40,7 @@ Returns, |---------| |0.994695326367377 | -## See also +## Related content [T.DIST.2T](t-dist-2t-dax.md) [T.DIST.RT](t-dist-rt-dax.md) diff --git a/query-languages/dax/t-dist-rt-dax.md b/query-languages/dax/t-dist-rt-dax.md index 163a856d4..6e343de4c 100644 --- a/query-languages/dax/t-dist-rt-dax.md +++ b/query-languages/dax/t-dist-rt-dax.md @@ -39,7 +39,7 @@ Returns |---------| |0.0273224649879605 | -## See also +## Related content [T.DIST](t-dist-dax.md) [T.DIST.2T](t-dist-2t-dax.md) diff --git a/query-languages/dax/t-inv-2t-dax.md b/query-languages/dax/t-inv-2t-dax.md index a46045792..930d16d49 100644 --- a/query-languages/dax/t-inv-2t-dax.md +++ b/query-languages/dax/t-inv-2t-dax.md @@ -39,7 +39,7 @@ Returns |---------| |0.606533075825759 | -## See also +## Related content [T.INV](t-inv-dax.md) [T.DIST](t-dist-dax.md) diff --git a/query-languages/dax/t-inv-dax.md b/query-languages/dax/t-inv-dax.md index c97f8f635..dde151510 100644 --- a/query-languages/dax/t-inv-dax.md +++ b/query-languages/dax/t-inv-dax.md @@ -39,7 +39,7 @@ Returns |---------| |0.816496580927726 | -## See also +## Related content [T.INV.2T](t-inv-2t-dax.md) [T.DIST](t-dist-dax.md) diff --git a/query-languages/dax/time-function-dax.md b/query-languages/dax/time-function-dax.md index 2a144919c..1bfa00891 100644 --- a/query-languages/dax/time-function-dax.md +++ b/query-languages/dax/time-function-dax.md @@ -68,7 +68,7 @@ The following example creates a time based on the values in the columns, `intHou = TIME([intHours],[intMinutes],[intSeconds]) ``` -## See also +## Related content [DATE](date-function-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/timevalue-function-dax.md b/query-languages/dax/timevalue-function-dax.md index 1d4e74bf7..187d71aaf 100644 --- a/query-languages/dax/timevalue-function-dax.md +++ b/query-languages/dax/timevalue-function-dax.md @@ -36,6 +36,6 @@ A date (**datetime**). = TIMEVALUE("20:45:30") ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/tocsv-function-dax.md b/query-languages/dax/tocsv-function-dax.md index 5be0c6be2..4d4ae6b01 100644 --- a/query-languages/dax/tocsv-function-dax.md +++ b/query-languages/dax/tocsv-function-dax.md @@ -51,7 +51,7 @@ Returns: 10,10,United Kingdom,United Kingdom,Europe ``` -## See also +## Related content [TOJSON](tojson-function-dax.md) [EVALUATEANDLOG](evaluateandlog-function-dax.md) diff --git a/query-languages/dax/today-function-dax.md b/query-languages/dax/today-function-dax.md index 7bfc95de8..6ba2afaed 100644 --- a/query-languages/dax/today-function-dax.md +++ b/query-languages/dax/today-function-dax.md @@ -34,7 +34,7 @@ If you know that someone was born in 1963, you might use the following formula t This formula uses the TODAY function as an argument for the YEAR function to obtain the current year, and then subtracts 1963, returning the person's age. -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [NOW](now-function-dax.md) diff --git a/query-languages/dax/tojson-function-dax.md b/query-languages/dax/tojson-function-dax.md index 91ea30db1..24dbab0bc 100644 --- a/query-languages/dax/tojson-function-dax.md +++ b/query-languages/dax/tojson-function-dax.md @@ -53,7 +53,7 @@ Returns: } ``` -## See also +## Related content [TOCSV](tocsv-function-dax.md) [EVALUATEANDLOG](evaluateandlog-function-dax.md) diff --git a/query-languages/dax/totalmtd-function-dax.md b/query-languages/dax/totalmtd-function-dax.md index 2abc93c0c..b0076e6e5 100644 --- a/query-languages/dax/totalmtd-function-dax.md +++ b/query-languages/dax/totalmtd-function-dax.md @@ -45,7 +45,7 @@ The following sample formula creates a measure that calculates the 'month runnin = TOTALMTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey]) ``` -## See also +## Related content [ALL](all-function-dax.md) [CALCULATE](calculate-function-dax.md) diff --git a/query-languages/dax/totalqtd-function-dax.md b/query-languages/dax/totalqtd-function-dax.md index 87f5de2d4..637260002 100644 --- a/query-languages/dax/totalqtd-function-dax.md +++ b/query-languages/dax/totalqtd-function-dax.md @@ -45,7 +45,7 @@ The following sample formula creates a measure that calculates the 'quarter runn = TOTALQTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey]) ``` -## See also +## Related content [ALL](all-function-dax.md) [CALCULATE](calculate-function-dax.md) diff --git a/query-languages/dax/totalytd-function-dax.md b/query-languages/dax/totalytd-function-dax.md index 447548fee..9a89a2584 100644 --- a/query-languages/dax/totalytd-function-dax.md +++ b/query-languages/dax/totalytd-function-dax.md @@ -54,7 +54,7 @@ The following sample formula creates a measure that calculates the 'year running = TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey]) ``` -## See also +## Related content [ALL](all-function-dax.md) [CALCULATE](calculate-function-dax.md) diff --git a/query-languages/dax/treatas-function.md b/query-languages/dax/treatas-function.md index 296a57628..bf2d5e6d5 100644 --- a/query-languages/dax/treatas-function.md +++ b/query-languages/dax/treatas-function.md @@ -44,7 +44,7 @@ TREATAS(VALUES(DimProduct1[ProductCategory]), DimProduct2[ProductCategory]) ) ``` -## See also +## Related content [INTERSECT](intersect-function-dax.md) [FILTER](filter-function-dax.md) diff --git a/query-languages/dax/trim-function-dax.md b/query-languages/dax/trim-function-dax.md index 2b8e5339a..b17071ab5 100644 --- a/query-languages/dax/trim-function-dax.md +++ b/query-languages/dax/trim-function-dax.md @@ -44,6 +44,6 @@ You can verify that the formula produces the correct result by checking the leng = LEN([Calculated Column 1]) ``` -## See also +## Related content [Text functions](text-functions-dax.md) diff --git a/query-languages/dax/true-function-dax.md b/query-languages/dax/true-function-dax.md index 909f18d7e..960a9eb7f 100644 --- a/query-languages/dax/true-function-dax.md +++ b/query-languages/dax/true-function-dax.md @@ -39,7 +39,7 @@ The following table shows the results when the example formula is used in a repo ||FALSE|FALSE|FALSE|FALSE|FALSE|FALSE| |Grand Total|TRUE|TRUE|TRUE|TRUE|FALSE|TRUE| -## See also +## Related content [FALSE](false-function-dax.md) [NOT](not-function-dax.md) diff --git a/query-languages/dax/trunc-function-dax.md b/query-languages/dax/trunc-function-dax.md index 66a8767af..40317a230 100644 --- a/query-languages/dax/trunc-function-dax.md +++ b/query-languages/dax/trunc-function-dax.md @@ -43,7 +43,7 @@ The following formula returns -8, the integer part of -8.9. = TRUNC(-8.9) ``` -## See also +## Related content [Math and Trig functions](math-and-trig-functions-dax.md) [ROUND](round-function-dax.md) diff --git a/query-languages/dax/upper-function-dax.md b/query-languages/dax/upper-function-dax.md index f55d52c8d..7a2c80744 100644 --- a/query-languages/dax/upper-function-dax.md +++ b/query-languages/dax/upper-function-dax.md @@ -30,7 +30,7 @@ The following formula converts the string in the column, [ProductCode], to all u = UPPER(['New Products'[Product Code]) ``` -## See also +## Related content [Text functions](text-functions-dax.md) [LOWER function](lower-function-dax.md) diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index 8c56f9081..e75bd8cec 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -57,7 +57,7 @@ Depending on the language setting for the current user, :::no-loc text="USERCULT |ru-RU | :::no-loc text="вторник":::| |uk-UA | :::no-loc text="вівторок":::| -## See also +## Related content [Expression-based titles in Power BI](/power-bi/create-reports/desktop-conditional-format-visual-titles) [USERNAME](username-function-dax.md) diff --git a/query-languages/dax/utcnow-function-dax.md b/query-languages/dax/utcnow-function-dax.md index e4e2f04fe..161cefcc1 100644 --- a/query-languages/dax/utcnow-function-dax.md +++ b/query-languages/dax/utcnow-function-dax.md @@ -34,7 +34,7 @@ Returns: |---------| |2/2/2018 4:48:08 AM | -## See also +## Related content [NOW function](now-function-dax.md) [UTCTODAY function](utctoday-function-dax.md) diff --git a/query-languages/dax/utctoday-function-dax.md b/query-languages/dax/utctoday-function-dax.md index cc7b0742f..e8f51a533 100644 --- a/query-languages/dax/utctoday-function-dax.md +++ b/query-languages/dax/utctoday-function-dax.md @@ -36,7 +36,7 @@ Returns: |---------| |2/2/2018 | -## See also +## Related content [NOW function](now-function-dax.md) [UTCNOW function](utcnow-function-dax.md) diff --git a/query-languages/dax/value-function-dax.md b/query-languages/dax/value-function-dax.md index bdd56b63d..a19e26ef1 100644 --- a/query-languages/dax/value-function-dax.md +++ b/query-languages/dax/value-function-dax.md @@ -38,6 +38,6 @@ The following formula converts the typed string, "3", into the numeric value 3. = VALUE("3") ``` -## See also +## Related content [Text functions](text-functions-dax.md) diff --git a/query-languages/dax/values-function-dax.md b/query-languages/dax/values-function-dax.md index a3928a08d..514ba3a9e 100644 --- a/query-languages/dax/values-function-dax.md +++ b/query-languages/dax/values-function-dax.md @@ -69,7 +69,7 @@ Returns |Clothing|7,461| |Grand Total|27,659| -## See also +## Related content [FILTER function](filter-function-dax.md) [COUNTROWS function](countrows-function-dax.md) diff --git a/query-languages/dax/var-dax.md b/query-languages/dax/var-dax.md index 41b48c083..02c976b43 100644 --- a/query-languages/dax/var-dax.md +++ b/query-languages/dax/var-dax.md @@ -76,7 +76,7 @@ VAR SalesLastYear = By using a variable, you can get the same outcome, but in a more readable way. And because the result of the expression is stored in the variable, the measure's performance can be significantly improved because it doesn't have to be recalculated each time it's used. -## See also +## Related content [Use variables to improve your DAX formulas](best-practices/dax-variables.md) [DAX queries](dax-queries.md) diff --git a/query-languages/dax/weekday-function-dax.md b/query-languages/dax/weekday-function-dax.md index 5f79ed67c..c6596f050 100644 --- a/query-languages/dax/weekday-function-dax.md +++ b/query-languages/dax/weekday-function-dax.md @@ -39,7 +39,7 @@ The following example gets the date from the [HireDate] column, adds 1, and disp = WEEKDAY([HireDate]+1) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [WEEKNUM function](weeknum-function-dax.md) diff --git a/query-languages/dax/weeknum-function-dax.md b/query-languages/dax/weeknum-function-dax.md index 42bd5851c..6c928eb08 100644 --- a/query-languages/dax/weeknum-function-dax.md +++ b/query-languages/dax/weeknum-function-dax.md @@ -64,7 +64,7 @@ The following example returns the week number of the date stored in the column, = WEEKNUM('Employees'[HireDate]) ``` -## See also +## Related content [YEARFRAC function](yearfrac-function-dax.md) [WEEKDAY function](weekday-function-dax.md) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index e3908f632..60aa3d8f7 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -141,7 +141,7 @@ Returns the running sum for Total Sales by Month Number Of Year, restarting for | FY2020 | 11 | $5,151,897 | $47,027,081 | | FY2020 | 12 | $4,851,194 | $51,878,275 | -## See also +## Related content [INDEX](index-function-dax.md) [OFFSET](offset-function-dax.md) diff --git a/query-languages/dax/year-function-dax.md b/query-languages/dax/year-function-dax.md index 22f9deed2..389912baa 100644 --- a/query-languages/dax/year-function-dax.md +++ b/query-languages/dax/year-function-dax.md @@ -50,7 +50,7 @@ The following example returns the year for today's date. = YEAR(TODAY()) ``` -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [HOUR function](hour-function-dax.md) diff --git a/query-languages/dax/yearfrac-function-dax.md b/query-languages/dax/yearfrac-function-dax.md index 8079d7945..83c1bde3b 100644 --- a/query-languages/dax/yearfrac-function-dax.md +++ b/query-languages/dax/yearfrac-function-dax.md @@ -52,7 +52,7 @@ Use four-digit years whenever possible, to avoid getting unexpected results. Whe The second argument, **basis**, has also been omitted. Therefore, the year fraction is calculated according to the US (NASD) 30/360 standard. -## See also +## Related content [Date and time functions](date-and-time-functions-dax.md) [WEEKNUM function](weeknum-function-dax.md) From ccab31c2b3cd2c412a52b2457f0022404265269b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Mouren?= Date: Fri, 1 Dec 2023 00:56:30 +0100 Subject: [PATCH 356/934] Update list-skip.md Modified the description of the optional condition to more accurately reflect the behavior: the returned list starts with the value whose first test condition fails --- query-languages/m/list-skip.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/list-skip.md b/query-languages/m/list-skip.md index 6705a55f4..cb23d2108 100644 --- a/query-languages/m/list-skip.md +++ b/query-languages/m/list-skip.md @@ -15,7 +15,7 @@ List.Skip(list as list, optional countOrCondition as any) as list Returns a list that skips the first element of list `list`. If `list` is an empty list an empty list is returned. This function takes an optional parameter, `countOrCondition`, to support skipping multiple values as listed below. * If a number is specified, up to that many items are skipped. -* If a condition is specified, the returned list begins with the first element in `list` that meets the criteria. Once an item fails the condition, no further items are considered. +* If a condition is specified, the returned list begins with the first element in `list` that doesn't meet the criteria. Once an item fails the condition, no further items are considered. * If this parameter is null, the default behavior is observed. ## Example 1 From 4c2fa7dbc23801f4b6d2dbb7da0a1d7027290ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Mouren?= Date: Fri, 1 Dec 2023 01:13:05 +0100 Subject: [PATCH 357/934] Update list-removefirstn.md Modified the description of the optional condition to more accurately reflect the behavior: the returned list starts with the first value whose test condition fails --- query-languages/m/list-removefirstn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/list-removefirstn.md b/query-languages/m/list-removefirstn.md index c41023505..25154f291 100644 --- a/query-languages/m/list-removefirstn.md +++ b/query-languages/m/list-removefirstn.md @@ -15,7 +15,7 @@ List.RemoveFirstN(list as list, optional countOrCondition as any) Returns a list that removes the first element of list `list`. If `list` is an empty list an empty list is returned. This function takes an optional parameter, `countOrCondition`, to support removing multiple values as listed below. * If a number is specified, up to that many items are removed. -* If a condition is specified, the returned list begins with the first element in `list` that meets the criteria. Once an item fails the condition, no further items are considered. +* If a condition is specified, the returned list begins with the first element in `list` that doesn't meet the criteria. Once an item fails the condition, no further items are considered. * If this parameter is null, the default behavior is observed. ## Example 1 From d519a23617adcec8e16a2357c8508bc952917b17 Mon Sep 17 00:00:00 2001 From: Owen Duncan Date: Wed, 13 Dec 2023 11:22:03 -0800 Subject: [PATCH 358/934] Update new-dax-functions.md --- query-languages/dax/new-dax-functions.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 0dba3fac6..423554c0d 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -20,12 +20,3 @@ While functions and functionality are being updated all the time, only those upd |[ROWNUMBER](rownumber-function-dax.md)|April, 2023|Returns the unique ranking for the current context within the specified partition, sorted by the specified order.| |[LINEST](linest-function-dax.md)|February, 2023|Uses the Least Squares method to calculate a straight line that best fits the given data.| |[LINESTX](linestx-function-dax.md)|February, 2023|Uses the Least Squares method to calculate a straight line that best fits the given data. The data result from expressions evaluated for each row in a table.| -|[INDEX](index-function-dax.md)| December, 2022 | Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| -|[OFFSET](offset-function-dax.md)| December, 2022 | Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset.| -|[ORDERBY](orderby-function-dax.md)| December, 2022 | Defines the columns that determine the sort order within each of a window function’s partitions.| -|[PARTITIONBY](partitionby-function-dax.md)| December, 2022 | Defines the columns that are used to partition a window function’s \ parameter.| -|[WINDOW](window-function-dax.md)| December, 2022 | Returns multiple rows which are positioned within the given interval. | -|[EVALUATEANDLOG](evaluateandlog-function-dax.md)| November, 2022 | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. | -|[TOCSV](tocsv-function-dax.md) | November, 2022 | Returns a table as a string in CSV format. This function applies to Power BI Desktop only. | -|[TOJSON](tojson-function-dax.md) | November, 2022 | Returns a table as a string in JSON format. This function applies to Power BI Desktop only. | -|[NETWORKDAYS](networkdays-dax.md)| July, 2022 | Returns the number of whole workdays between two dates. | From b0af605b95ebacd80615643f144b5724c0e34792 Mon Sep 17 00:00:00 2001 From: "Alex Power[s] BI" <44716363+itsnotaboutthecell@users.noreply.github.com> Date: Wed, 13 Dec 2023 13:22:05 -0600 Subject: [PATCH 359/934] Update csv-document.md Updating example to include a multi character delimiter example. And added that for record only a single character value can be used. --- query-languages/m/csv-document.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index a563b3b17..12836e73c 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -21,7 +21,7 @@ Returns the contents of the CSV document as a table. If a record is specified for `columns` (and `delimiter`, `extraValues`, and `encoding` are null), the following record fields may be provided: -* `Delimiter`: The column delimiter. Default: `","`. +* `Delimiter`: A single character column delimiter. Default: `","`. * `Columns`: Can be null, the number of columns, a list of column names, or a table type. If the number of columns is lower than the number found in the input, the additional columns will be ignored. If the number of columns is higher than the number found in the input, the additional columns will be null. When not specified, the number of columns will be determined by what is found in the input. * `Encoding`: The text encoding of the file. Default: 65001 (UTF-8). * `CsvStyle`: Specifies how quotes are handled. @@ -51,3 +51,24 @@ Table.FromRecords({ [OrderID = "1", Item = "Fishing rod"], [OrderID = "2", Item = "1 lb. worms"] ``` + +## Example 2 + +Process CSV text with multiple delimiter characters. + +**Usage** + +```powerquery-m +let + csv = Text.Combine({"ID#|#Color", "1#|#Red", "2#|#Blue"}, "#(cr)#(lf)") +in + Table.PromoteHeaders(Csv.Document(csv, null, "#|#")) +``` + +**Output** + +```powerquery-m +Table.FromRecords({ + [OrderID = "1", Color = "Red"], + [OrderID = "2", Color = "Blue"] +``` From cf15c18c9ecd97c1d00541cbf9d128ce118bd57b Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 22 Dec 2023 09:51:18 -0800 Subject: [PATCH 360/934] Added no-loc tags to text in tables --- ...r-of-the-power-query-m-formula-language.md | 110 +++++++++--------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index d25567fde..bfbc51314 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -1,78 +1,78 @@ --- description: "Learn more about: Quick tour of the Power Query M formula language" title: "Quick tour" -ms.date: 7/21/2023 +ms.date: 12/22/2023 ms.custom: nonautomated-date, intro-internal ms.topic: conceptual --- # Quick tour of the Power Query M formula language -This quick tour describes creating Power Query M formula language queries. - -> [!NOTE] -> M is a case-sensitive language. - -## Create a query with the Power Query editor +This quick tour describes creating Power Query M formula language queries. + +> [!NOTE] +> M is a case-sensitive language. + +## Create a query with the Power Query editor + +To create an advanced query, you use the [Power Query advanced editor](/power-query/power-query-ui#the-advanced-editor). A mashup query is composed of variables, expressions, and values encapsulated by a `let` expression. A variable can contain spaces by using the # identifier with the name in quotes as in `#"Variable name"`. + +A `let` expression follows this structure: -To create an advanced query, you use the [Power Query advanced editor](/power-query/power-query-ui#the-advanced-editor). A mashup query is composed of variables, expressions, and values encapsulated by a `let` expression. A variable can contain spaces by using the # identifier with the name in quotes as in `#"Variable name"`. - -A `let` expression follows this structure: - ```powerquery-m -let - Variablename = expression, - #"Variable name" = expression2 -in - Variablename +let + Variablename = expression, + #"Variable name" = expression2 +in + Variablename ``` -To create an M query in the advanced editor, you follow this basic process: - -1. Create a series of query formula steps that start with the `let` statement. Each step is defined by a step variable name. An M _variable_ can include spaces by using the # character as `#"Step Name"`. A formula step can be a custom formula. Note that the Power Query formula language is case sensitive. - -2. Each query formula step builds upon a previous step by referring to a step by its variable name. - -3. Output a query formula step using the `in` statement. Generally, the last query step is used as the in final data set result. +To create an M query in the advanced editor, you follow this basic process: -To learn more about expressions and values, go to [Expressions, values, and let expression](expressions-values-and-let-expression.md). - -## Simple Power Query M formula steps +1. Create a series of query formula steps that start with the `let` statement. Each step is defined by a step variable name. An M _variable_ can include spaces by using the # character as `#"Step Name"`. A formula step can be a custom formula. Note that the Power Query formula language is case sensitive. + +2. Each query formula step builds upon a previous step by referring to a step by its variable name. + +3. Output a query formula step using the `in` statement. Generally, the last query step is used as the in final data set result. + +To learn more about expressions and values, go to [Expressions, values, and let expression](expressions-values-and-let-expression.md). + +## Simple Power Query M formula steps Let's assume you created the following transform in the Power Query editor to convert product names to the appropriate case, in this instance, to all initial capitalization. :::image type="content" source="media/mstep1.png" alt-text="Screenshot of the Power Query editor showing the results of converting the Item column entries to initial capitalization."::: - + To begin with, you have a table that looks like this: - -|OrderID|CustomerID|Item|Price| -|-----------|--------------|--------|---------| -|1|1|fishing rod|100| -|2|1|1 lb. worms|5| -|3|2|fishing net|25| - + +|:::no-loc text="OrderID":::|:::no-loc text="CustomerID":::|:::no-loc text="Item":::|:::no-loc text="Price":::| +|-----------|--------------|--------|---------| +|1|1|:::no-loc text="fishing rod":::|100| +|2|1|:::no-loc text="1 lb. worms":::|5| +|3|2|:::no-loc text="fishing net":::|25| + And, you want to capitalize the first letter in each word in the Item column to produce the following table: - -|OrderID|CustomerID|Item|Price| -|-----------|--------------|--------|---------| -|1|1|Fishing Rod|100| -|2|1|1 Lb. Worms|5| -|3|2|Fishing Net|25| - + +|:::no-loc text="OrderID":::|:::no-loc text="CustomerID":::|:::no-loc text="Item":::|:::no-loc text="Price":::| +|-----------|--------------|--------|---------| +|1|1|:::no-loc text="Fishing Rod":::|100| +|2|1|:::no-loc text="1 Lb. Worms":::|5| +|3|2|:::no-loc text="Fishing Net":::|25| + The M formula steps to project the original table into the results table look like this in the Power Query advanced editor: :::image type="content" source="media/madvancededitor.png" alt-text="Screenshot of the Power Query advanced editor with all of the M formula steps to produce the table and capitalize initial letters."::: - + Here's the code you can paste into the Power Query advanced editor: - + ```powerquery-m -let Orders = Table.FromRecords({ - [OrderID = 1, CustomerID = 1, Item = "fishing rod", Price = 100.0], - [OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0], - [OrderID = 3, CustomerID = 2, Item = "fishing net", Price = 25.0]}), - #"Capitalized Each Word" = Table.TransformColumns(Orders, {"Item", Text.Proper}) -in - #"Capitalized Each Word" -``` +let Orders = Table.FromRecords({ + [OrderID = 1, CustomerID = 1, Item = "fishing rod", Price = 100.0], + [OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0], + [OrderID = 3, CustomerID = 2, Item = "fishing net", Price = 25.0]}), + #"Capitalized Each Word" = Table.TransformColumns(Orders, {"Item", Text.Proper}) +in + #"Capitalized Each Word" +``` Let’s review each formula step. @@ -82,8 +82,8 @@ Let’s review each formula step. 3. **in #"Capitalized Each Word"**: Output the table with the first letter of each word capitalized. -## See also +## Related content -[Expressions, values, and let expression](expressions-values-and-let-expression.md) -[Operators](operators.md) -[Type conversion](type-conversion.md) +* [Expressions, values, and let expression](expressions-values-and-let-expression.md) +* [Operators](operators.md) +*[Type conversion](type-conversion.md) From 15f1fb0ada0d306ee9547197345cbf9f5cb0e5ee Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 22 Dec 2023 09:58:01 -0800 Subject: [PATCH 361/934] Minor fix to list --- .../m/quick-tour-of-the-power-query-m-formula-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index bfbc51314..f98cae14d 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -86,4 +86,4 @@ Let’s review each formula step. * [Expressions, values, and let expression](expressions-values-and-let-expression.md) * [Operators](operators.md) -*[Type conversion](type-conversion.md) +* [Type conversion](type-conversion.md) From 10c0cab3d34b5e8ab4f7a96b3562238ffda6ac62 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 2 Jan 2024 12:47:21 -0800 Subject: [PATCH 362/934] Update filter-functions-dax.md --- query-languages/dax/filter-functions-dax.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index c14d07adf..d90cc5d39 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -20,13 +20,17 @@ The filter and value functions in DAX are some of the most complex and powerful, |[EARLIER](earlier-function-dax.md) | Returns the current value of the specified column in an outer evaluation pass of the mentioned column. | |[EARLIEST](earliest-function-dax.md) | Returns the current value of the specified column in an outer evaluation pass of the specified column. | |[FILTER](filter-function-dax.md) | Returns a table that represents a subset of another table or expression. | +|[FIRST](first-function-dax.md) | Used in Visual Caculations only. Retrieves a value in the data grid from the first row of an axis. | |[INDEX](index-function-dax.md)|Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | +|[LAST](last-function-dax.md) | Used in Visual Caculations only. Retrieves a value in the data grid from the last row of an axis. | |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | |[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | +|[NEXT](next-function-dax.md) | Used in Visual Caculations only. retrieves a value in the next row of an axis in the data grid. | |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | -|[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| -|[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a WINDOW function’s \ parameter.| +|[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a window function’s partitions.| +|[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a window function’s \ parameter.| +|[PREVIOUS](previous-function-dax.md)| Used in Visual Caculations only. retrieves a value in the previous row of an axis in the data grid. | |[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | From a024c26c6229f28e0c9e3218f7fbd8c6c90daee6 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:10:49 -0800 Subject: [PATCH 363/934] Create first-function-dax.md --- query-languages/dax/first-function-dax.md | 95 +++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 query-languages/dax/first-function-dax.md diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md new file mode 100644 index 000000000..f77648f64 --- /dev/null +++ b/query-languages/dax/first-function-dax.md @@ -0,0 +1,95 @@ +--- +description: "Learn more about: FIRST" +title: "FIRST function (DAX) | Microsoft Docs" +--- + +# FIRST + +Used in Visual Caculations only. Retrieves a value in the data grid from the first row of an axis. + +## Syntax + +```dax +FIRST ( [, ][, ][, reset] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|expression| The expression to be evaluated.| +|axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| + + +## Return value + +The value of \ evaluated from the first row of the axis. + +## Remarks + +This function can only be used in a Visual Caculation. + +## Example + +With the following DAX query: + +```dax +DEFINE + VAR Core = + SUMMARIZECOLUMNS ( + ROLLUPADDISSUBTOTAL ( + 'DimDate'[Year], + "IsGrandTotalRowTotal", + ROLLUPGROUP ( 'DimDate'[Month], 'DimDate'[MonthNumberOfYear] ), + "IsDM1Total" + ), + ROLLUPADDISSUBTOTAL ( + 'DimProduct'[ProductCategoryName], + "IsGrandTotalColumnTotal", + 'DimProduct'[ProductSubcategoryName], + "IsDM4Total" + ), + "SumSalesAmount", CALCULATE ( SUM ( 'FactInternetSales'[SalesAmount] ) ) + ) + TABLE t = Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] + TOTAL [IsGrandTotalRowTotal] + GROUP + [Month], + [MonthNumberOfYear] + TOTAL [IsDM1Total] + ORDER BY + [Year], + [MonthNumberOfYear] + AXIS COLUMNS + GROUP [ProductCategoryName] + TOTAL [IsGrandTotalColumnTotal] + GROUP [ProductSubcategoryName] + TOTAL [IsDM4Total] + ORDER BY + [ProductCategoryName], + [ProductSubcategoryName] + DENSIFY "isDensified" + COLUMN t[FirstInternetSalesAmount] = + FIRST ( [SumSalesAmount], ROWS, LowestParent ) + +EVALUATE +t +ORDER BY + [ProductCategoryName], + [ProductSubcategoryName], + [YEAR], + [MonthNumberOfYear] +``` + +FirstInternetSalesAmount is added as a Visual Caculation that returns SalesAmount of the first row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of first month of the current year. On Year level, it returns SalesAmount of the first year across all the years. + +## Related content + +[LAST](last-function-dax.md) +[PREVIOUS](previous-function-dax.md) +[NEXT](next-function-dax.md) From 3671538fefccd4bd2afbcc7e69367bbd3849cfe6 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:13:01 -0800 Subject: [PATCH 364/934] Create last-function-dax.md --- query-languages/dax/last-function-dax.md | 95 ++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 query-languages/dax/last-function-dax.md diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md new file mode 100644 index 000000000..dd8e59ec3 --- /dev/null +++ b/query-languages/dax/last-function-dax.md @@ -0,0 +1,95 @@ +--- +description: "Learn more about: LAST" +title: "LAST function (DAX) | Microsoft Docs" +--- + +# FIRST + +Used in Visual Caculations only. Retrieves a value in the data grid from the last row of an axis. + +## Syntax + +```dax +LAST ( [, ][, ][, reset] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|expression| The expression to be evaluated.| +|axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| + + +## Return value + +The value of \ evaluated from the last row of the axis. + +## Remarks + +This function can only be used in a Visual Caculation. + +## Example + +With the following DAX query: + +```dax +DEFINE + VAR Core = + SUMMARIZECOLUMNS ( + ROLLUPADDISSUBTOTAL ( + 'DimDate'[Year], + "IsGrandTotalRowTotal", + ROLLUPGROUP ( 'DimDate'[Month], 'DimDate'[MonthNumberOfYear] ), + "IsDM1Total" + ), + ROLLUPADDISSUBTOTAL ( + 'DimProduct'[ProductCategoryName], + "IsGrandTotalColumnTotal", + 'DimProduct'[ProductSubcategoryName], + "IsDM4Total" + ), + "SumSalesAmount", CALCULATE ( SUM ( 'FactInternetSales'[SalesAmount] ) ) + ) + TABLE t = Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] + TOTAL [IsGrandTotalRowTotal] + GROUP + [Month], + [MonthNumberOfYear] + TOTAL [IsDM1Total] + ORDER BY + [Year], + [MonthNumberOfYear] + AXIS COLUMNS + GROUP [ProductCategoryName] + TOTAL [IsGrandTotalColumnTotal] + GROUP [ProductSubcategoryName] + TOTAL [IsDM4Total] + ORDER BY + [ProductCategoryName], + [ProductSubcategoryName] + DENSIFY "isDensified" + COLUMN t[LastInternetSalesAmount] = + FIRST ( [SumSalesAmount], ROWS, LowestParent ) + +EVALUATE +t +ORDER BY + [ProductCategoryName], + [ProductSubcategoryName], + [YEAR], + [MonthNumberOfYear] +``` + +LastInternetSalesAmount is added as a Visual Caculation that returns SalesAmount of the last row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of last month of the current year. On Year level, it returns SalesAmount of the last year across all the years. + +## Related content + +[FIRST](first-function-dax.md) +[PREVIOUS](previous-function-dax.md) +[NEXT](next-function-dax.md) From 1862fff8d5cf912145d61dc21db48edbc7d88633 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:23:10 -0800 Subject: [PATCH 365/934] Create previous-function-dax.md --- query-languages/dax/previous-function-dax.md | 96 ++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 query-languages/dax/previous-function-dax.md diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md new file mode 100644 index 000000000..e630f35f7 --- /dev/null +++ b/query-languages/dax/previous-function-dax.md @@ -0,0 +1,96 @@ +--- +description: "Learn more about: PREVIOUS" +title: "PREVIOUS function (DAX) | Microsoft Docs" +--- + +# PREVIOUS + +Used in Visual Caculations only. Retrieves a value in the previous row of an axis in the data grid. + +## Syntax + +```dax +PREVIOUS ( [, ][, ][, ][, reset] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|expression| The expression to be evaluated.| +|steps| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, **1** is used (the exactly previous row).| +|axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| + + +## Return value + +The value of \ evaluated from the previous row of the axis. + +## Remarks + +This function can only be used in a Visual Caculation. + +## Example + +With the following DAX query: + +```dax +DEFINE + VAR Core = + SUMMARIZECOLUMNS ( + ROLLUPADDISSUBTOTAL ( + 'DimDate'[Year], + "IsGrandTotalRowTotal", + ROLLUPGROUP ( 'DimDate'[Month], 'DimDate'[MonthNumberOfYear] ), + "IsDM1Total" + ), + ROLLUPADDISSUBTOTAL ( + 'DimProduct'[ProductCategoryName], + "IsGrandTotalColumnTotal", + 'DimProduct'[ProductSubcategoryName], + "IsDM4Total" + ), + "SumSalesAmount", CALCULATE ( SUM ( 'FactInternetSales'[SalesAmount] ) ) + ) + TABLE t = Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] + TOTAL [IsGrandTotalRowTotal] + GROUP + [Month], + [MonthNumberOfYear] + TOTAL [IsDM1Total] + ORDER BY + [Year], + [MonthNumberOfYear] + AXIS COLUMNS + GROUP [ProductCategoryName] + TOTAL [IsGrandTotalColumnTotal] + GROUP [ProductSubcategoryName] + TOTAL [IsDM4Total] + ORDER BY + [ProductCategoryName], + [ProductSubcategoryName] + DENSIFY "isDensified" + COLUMN t[PreviousPreviousInternetSalesAmount] = + PREVIOUS ( [SumSalesAmount], 2, ROWS, LowestParent ) + +EVALUATE +t +ORDER BY + [ProductCategoryName], + [ProductSubcategoryName], + [YEAR], + [MonthNumberOfYear] +``` + +PreviousPreviousInternetSalesAmount is added as a Visual Caculation that returns SalesAmount of the previous previous row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of the previous previous month within the current year; for the first two months of the year, it returns blank. On Year level, it returns SalesAmount of the previous previous year of the current year; for the first two years, it returns blank. + +## Related content + +[FIRST](first-function-dax.md) +[LAST](last-function-dax.md) +[NEXT](next-function-dax.md) From 5c8fd4ef30c2111af4473563d4f821d817edae25 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:23:44 -0800 Subject: [PATCH 366/934] Update last-function-dax.md --- query-languages/dax/last-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index dd8e59ec3..7d7f55f50 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: LAST" title: "LAST function (DAX) | Microsoft Docs" --- -# FIRST +# LAST Used in Visual Caculations only. Retrieves a value in the data grid from the last row of an axis. From bdd64e8f8b780c3fcf664907b4d9b7a8c650f47d Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:24:18 -0800 Subject: [PATCH 367/934] Update filter-functions-dax.md --- query-languages/dax/filter-functions-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index d90cc5d39..29bea0d79 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -26,11 +26,11 @@ The filter and value functions in DAX are some of the most complex and powerful, |[LAST](last-function-dax.md) | Used in Visual Caculations only. Retrieves a value in the data grid from the last row of an axis. | |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | |[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | -|[NEXT](next-function-dax.md) | Used in Visual Caculations only. retrieves a value in the next row of an axis in the data grid. | +|[NEXT](next-function-dax.md) | Used in Visual Caculations only. Retrieves a value in the next row of an axis in the data grid. | |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a window function’s partitions.| |[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a window function’s \ parameter.| -|[PREVIOUS](previous-function-dax.md)| Used in Visual Caculations only. retrieves a value in the previous row of an axis in the data grid. | +|[PREVIOUS](previous-function-dax.md)| Used in Visual Caculations only. Retrieves a value in the previous row of an axis in the data grid. | |[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | From 1d77feb56502283e58937c53fbe1c8b986840b77 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:27:17 -0800 Subject: [PATCH 368/934] Create next-function-dax.md --- query-languages/dax/next-function-dax.md | 96 ++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 query-languages/dax/next-function-dax.md diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md new file mode 100644 index 000000000..5d735d675 --- /dev/null +++ b/query-languages/dax/next-function-dax.md @@ -0,0 +1,96 @@ +--- +description: "Learn more about: NEXT" +title: "NEXT function (DAX) | Microsoft Docs" +--- + +# NEXT + +Used in Visual Caculations only. Retrieves a value in the next row of an axis in the data grid. + +## Syntax + +```dax +NEXT ( [, ][, ][, ][, reset] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|expression| The expression to be evaluated.| +|steps| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| +|axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| + + +## Return value + +The value of \ evaluated from the next row of the axis. + +## Remarks + +This function can only be used in a Visual Caculation. + +## Example + +With the following DAX query: + +```dax +DEFINE + VAR Core = + SUMMARIZECOLUMNS ( + ROLLUPADDISSUBTOTAL ( + 'DimDate'[Year], + "IsGrandTotalRowTotal", + ROLLUPGROUP ( 'DimDate'[Month], 'DimDate'[MonthNumberOfYear] ), + "IsDM1Total" + ), + ROLLUPADDISSUBTOTAL ( + 'DimProduct'[ProductCategoryName], + "IsGrandTotalColumnTotal", + 'DimProduct'[ProductSubcategoryName], + "IsDM4Total" + ), + "SumSalesAmount", CALCULATE ( SUM ( 'FactInternetSales'[SalesAmount] ) ) + ) + TABLE t = Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] + TOTAL [IsGrandTotalRowTotal] + GROUP + [Month], + [MonthNumberOfYear] + TOTAL [IsDM1Total] + ORDER BY + [Year], + [MonthNumberOfYear] + AXIS COLUMNS + GROUP [ProductCategoryName] + TOTAL [IsGrandTotalColumnTotal] + GROUP [ProductSubcategoryName] + TOTAL [IsDM4Total] + ORDER BY + [ProductCategoryName], + [ProductSubcategoryName] + DENSIFY "isDensified" + COLUMN t[NextNextInternetSalesAmount] = + NEXT ( [SumSalesAmount], 2, ROWS, LowestParent ) + +EVALUATE +t +ORDER BY + [ProductCategoryName], + [ProductSubcategoryName], + [YEAR], + [MonthNumberOfYear] +``` + +NextNextInternetSalesAmount is added as a Visual Caculation that returns SalesAmount of the next next row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of the next next month within the current year; for the last two months of the year, it returns blank. On Year level, it returns SalesAmount of the next next year of the current year; for the last two years, it returns blank. + +## Related content + +[FIRST](first-function-dax.md) +[LAST](last-function-dax.md) +[PREVIOUS](PREVIOUS-function-dax.md) From 3c5cb02bddea5b008717423644bb00c02ab07181 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:28:29 -0800 Subject: [PATCH 369/934] Update last-function-dax.md --- query-languages/dax/last-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 7d7f55f50..c8f547c4f 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -75,7 +75,7 @@ DEFINE [ProductSubcategoryName] DENSIFY "isDensified" COLUMN t[LastInternetSalesAmount] = - FIRST ( [SumSalesAmount], ROWS, LowestParent ) + LAST ( [SumSalesAmount], ROWS, LowestParent ) EVALUATE t From b2ec16f9050117b0239d983910f7e851ef0bf212 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:39:04 -0800 Subject: [PATCH 370/934] Update new-dax-functions.md --- query-languages/dax/new-dax-functions.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 423554c0d..3a4e09890 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -15,6 +15,10 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| +|[FIRST](first-function-dax.md)|January, 2024| Used in Visual Caculations only. Retrieves a value in the data grid from the first row of an axis.| +|[LAST](last-function-dax.md)|January, 2024|Used in Visual Caculations only. Retrieves a value in the data grid from the last row of an axis.| +|[NEXT](next-function-dax.md)|January, 2024|Used in Visual Caculations only. Retrieves a value in the next row of an axis in the data grid.| +|[PREVIOUS](previous-function-dax.md)|January, 2024|Used in Visual Caculations only. Retrieves a value in the previous row of an axis in the data grid. | |[MATCHBY](matchby-function-dax.md)|May, 2023|Define the columns that are used to to match data and identify the current row, in a window function expression.| |[RANK](rank-function-dax.md)|April, 2023|Returns the ranking for the current context within the specified partition, sorted by the specified order.| |[ROWNUMBER](rownumber-function-dax.md)|April, 2023|Returns the unique ranking for the current context within the specified partition, sorted by the specified order.| From 034241b0dcbca370419b75a927a1806d23329210 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Thu, 4 Jan 2024 14:40:01 +0800 Subject: [PATCH 371/934] Add lookup function. --- query-languages/dax/lookup-function-dax.md | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 query-languages/dax/lookup-function-dax.md diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md new file mode 100644 index 000000000..ccbb4b95f --- /dev/null +++ b/query-languages/dax/lookup-function-dax.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: LOOKUP" +title: "LOOKUP function (DAX) | Microsoft Docs" +--- +# LOOKUP + +Used in visual calculation only. The Lookup function allows user to retrieve a value in a cell in the visual matrix using absolute navigation. User can specify a value as filter for any axis on the visual matrix and anything not specified will be inferred from the context. If Lookup could not result in single value, it will return an error. + +## Syntax + +```dax +LOOKUP([, [, [, …]]]) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|column| Only column reference is allowed, For example [Sales] is allowed, but [Sales] – [Cost] is not, nor is SUM([Sales]) | +|filter1, filter2,…|(Optional) Filter has to be either: 1. An equality filter. For example [Year]=2019 or [Year]=MAX([Year]). 2. +The Collapse function. For example, LOOKUP([Sales], Collapse([Country])) returns the subtotal value for Sales for all Countries| + +## Return value + +The value of **column** at the row after filters are applied. + +If there isn't a match that satisfies all the search values, an error is returned. + +If multiple rows match the filters, an error is returned. + +## Example 1 + +In this example, LOOKUP retrieves the sum of sale easily when [Year] = 2006, [MonthNumberOfYear] = 1, [Month] = "January". + +```dax +// GB column references +Define +var _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimDate'[Month], 'DimDate'[MonthNumberOfYear], + 'DimProduct'[ProductCategoryName], + 'DimProduct'[ProductSubcategoryName], + "SumOfInternetSales", CALCULATE(SUM('FactInternetSales'[SalesAmount])) + ) +table t = _Core + with visual shape + axis rows + group [Year] + group [Month], [MonthNumberOfYear] + order by [Year], [MonthNumberOfYear] + axis columns + group [ProductCategoryName] + group [ProductSubcategoryName] + order by [ProductCategoryName], [ProductSubcategoryName] + densify "isDensified" + +column t[ccLookup] = +lookup([SumOfInternetSales], [Year] = 2006, [MonthNumberOfYear] = 1, [Month] = "January") + +evaluate selectcolumns( + filter(t, not isblank([SumOfInternetSales])), + [ProductCategoryName], [ProductSubcategoryName], [Year], [MonthNumberOfYear], [SumOfInternetSales], [ccLookup] +) +order by [ProductCategoryName], [ProductSubcategoryName], [Year], [MonthNumberOfYear] +``` From 4f628d688badc695f6300402359e4ead342b7f3e Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Thu, 4 Jan 2024 14:40:01 +0800 Subject: [PATCH 372/934] Add lookup function. --- query-languages/dax/lookup-function-dax.md | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 query-languages/dax/lookup-function-dax.md diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md new file mode 100644 index 000000000..ccbb4b95f --- /dev/null +++ b/query-languages/dax/lookup-function-dax.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: LOOKUP" +title: "LOOKUP function (DAX) | Microsoft Docs" +--- +# LOOKUP + +Used in visual calculation only. The Lookup function allows user to retrieve a value in a cell in the visual matrix using absolute navigation. User can specify a value as filter for any axis on the visual matrix and anything not specified will be inferred from the context. If Lookup could not result in single value, it will return an error. + +## Syntax + +```dax +LOOKUP([, [, [, …]]]) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|column| Only column reference is allowed, For example [Sales] is allowed, but [Sales] – [Cost] is not, nor is SUM([Sales]) | +|filter1, filter2,…|(Optional) Filter has to be either: 1. An equality filter. For example [Year]=2019 or [Year]=MAX([Year]). 2. +The Collapse function. For example, LOOKUP([Sales], Collapse([Country])) returns the subtotal value for Sales for all Countries| + +## Return value + +The value of **column** at the row after filters are applied. + +If there isn't a match that satisfies all the search values, an error is returned. + +If multiple rows match the filters, an error is returned. + +## Example 1 + +In this example, LOOKUP retrieves the sum of sale easily when [Year] = 2006, [MonthNumberOfYear] = 1, [Month] = "January". + +```dax +// GB column references +Define +var _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimDate'[Month], 'DimDate'[MonthNumberOfYear], + 'DimProduct'[ProductCategoryName], + 'DimProduct'[ProductSubcategoryName], + "SumOfInternetSales", CALCULATE(SUM('FactInternetSales'[SalesAmount])) + ) +table t = _Core + with visual shape + axis rows + group [Year] + group [Month], [MonthNumberOfYear] + order by [Year], [MonthNumberOfYear] + axis columns + group [ProductCategoryName] + group [ProductSubcategoryName] + order by [ProductCategoryName], [ProductSubcategoryName] + densify "isDensified" + +column t[ccLookup] = +lookup([SumOfInternetSales], [Year] = 2006, [MonthNumberOfYear] = 1, [Month] = "January") + +evaluate selectcolumns( + filter(t, not isblank([SumOfInternetSales])), + [ProductCategoryName], [ProductSubcategoryName], [Year], [MonthNumberOfYear], [SumOfInternetSales], [ccLookup] +) +order by [ProductCategoryName], [ProductSubcategoryName], [Year], [MonthNumberOfYear] +``` From 0817e0f9f6787e6ca165aee1c0da0a89d6868779 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Thu, 4 Jan 2024 14:59:59 +0800 Subject: [PATCH 373/934] Add more content for lookup. --- query-languages/dax/filter-functions-dax.md | 2 ++ query-languages/dax/new-dax-functions.md | 1 + 2 files changed, 3 insertions(+) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index c14d07adf..ac65c3676 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -22,6 +22,8 @@ The filter and value functions in DAX are some of the most complex and powerful, |[FILTER](filter-function-dax.md) | Returns a table that represents a subset of another table or expression. | |[INDEX](index-function-dax.md)|Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | +|[LOOKUP](lookup-function-dax.md) | +In visual calculation, look up the value when filters are applied.| |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | |[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 423554c0d..865d1bccc 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -15,6 +15,7 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| +|[LOOKUP](lookup-function-dax.md)|January, 2024| Used in Visual Calculations only. Look up the value when filters are applied. | |[MATCHBY](matchby-function-dax.md)|May, 2023|Define the columns that are used to to match data and identify the current row, in a window function expression.| |[RANK](rank-function-dax.md)|April, 2023|Returns the ranking for the current context within the specified partition, sorted by the specified order.| |[ROWNUMBER](rownumber-function-dax.md)|April, 2023|Returns the unique ranking for the current context within the specified partition, sorted by the specified order.| From 24f1631339343ccd6265fb1305d9257f9dc8b52f Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Thu, 4 Jan 2024 15:05:39 +0800 Subject: [PATCH 374/934] Refine content. --- query-languages/dax/lookup-function-dax.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index ccbb4b95f..09d18cac6 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -4,7 +4,7 @@ title: "LOOKUP function (DAX) | Microsoft Docs" --- # LOOKUP -Used in visual calculation only. The Lookup function allows user to retrieve a value in a cell in the visual matrix using absolute navigation. User can specify a value as filter for any axis on the visual matrix and anything not specified will be inferred from the context. If Lookup could not result in single value, it will return an error. +Used in visual calculation only. Lookup function allows user to retrieve a value from a cell in visual matrix using absolute navigation. User can specify a value as filter for any axis on the visual matrix and anything not specified will be inferred from the context. If Lookup could not result in single value, it will return an error. ## Syntax @@ -17,20 +17,19 @@ LOOKUP([, [, [, …]]]) |Term|Definition| |--------|--------------| |column| Only column reference is allowed, For example [Sales] is allowed, but [Sales] – [Cost] is not, nor is SUM([Sales]) | -|filter1, filter2,…|(Optional) Filter has to be either: 1. An equality filter. For example [Year]=2019 or [Year]=MAX([Year]). 2. -The Collapse function. For example, LOOKUP([Sales], Collapse([Country])) returns the subtotal value for Sales for all Countries| +|filter1, filter2,…|(Optional) Filter has to be either: 1. An equality filter. For example [Year]=2019 or [Year]=MAX([Year]). 2.The Collapse function. For example, LOOKUP([Sales], Collapse([Country])) returns the subtotal value for Sales for all Countries| ## Return value The value of **column** at the row after filters are applied. -If there isn't a match that satisfies all the search values, an error is returned. +If there isn't a match, an error is returned. If multiple rows match the filters, an error is returned. ## Example 1 -In this example, LOOKUP retrieves the sum of sale easily when [Year] = 2006, [MonthNumberOfYear] = 1, [Month] = "January". +In this example, LOOKUP retrieves the sum of sale easily for filters: [Year] = 2006, [MonthNumberOfYear] = 1, [Month] = "January". ```dax // GB column references From aaee67686c7e3555b4167206e6db84b653f8155e Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Thu, 4 Jan 2024 16:03:17 +0800 Subject: [PATCH 375/934] Fix problem. --- query-languages/dax/filter-functions-dax.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index ac65c3676..7cfa2282d 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -22,8 +22,7 @@ The filter and value functions in DAX are some of the most complex and powerful, |[FILTER](filter-function-dax.md) | Returns a table that represents a subset of another table or expression. | |[INDEX](index-function-dax.md)|Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | -|[LOOKUP](lookup-function-dax.md) | -In visual calculation, look up the value when filters are applied.| +|[LOOKUP](lookup-function-dax.md) | In visual calculation mode only. Look up the value when filters applied.| |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | |[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | From e923ba8f515bd61e9651f286388f5e304727870c Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 4 Jan 2024 10:50:25 -0500 Subject: [PATCH 376/934] Optional parameters are implicitly nullable --- query-languages/m/m-spec-types.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 047be4a9b..303472be2 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -241,6 +241,13 @@ type function (x as text) as number type function (y as number, optional z as text) as any ``` +Specifying a parameter as optional also makes its type nullable. The following create identical function types: + +```powerquery-m +type function (optional x as text) as any +type function (optional x as nullable text) as any +``` + A function value conforms to a function type if the return type of the function value is compatible with the function type's return type and each parameter specification of the function type is compatible to the positionally corresponding formal parameter of the function. A parameter specification is compatible with a formal parameter if the specified _parameter-type_ type is compatible with the type of the formal parameter and the parameter specification is optional if the formal parameter is optional. Formal parameter names are ignored for the purposes of determining function type conformance. From 8500948e119ae680e81533578115fe8b8f87cf44 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 5 Jan 2024 13:28:30 +0800 Subject: [PATCH 377/934] Fix lookup function. --- query-languages/dax/lookup-function-dax.md | 2 +- query-languages/dax/toc.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 09d18cac6..86ed6acab 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -4,7 +4,7 @@ title: "LOOKUP function (DAX) | Microsoft Docs" --- # LOOKUP -Used in visual calculation only. Lookup function allows user to retrieve a value from a cell in visual matrix using absolute navigation. User can specify a value as filter for any axis on the visual matrix and anything not specified will be inferred from the context. If Lookup could not result in single value, it will return an error. +Used in visual calculations only. Returns a value from a cell in a visual matrix by using absolute navigation. You can specify a value as a filter for any axis on the visual matrix. Anything not specified is inferred from the context. If Lookup can’t result in single value, an error is returned. ## Syntax diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 3b7bbe9d4..f9d4c9b49 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -167,6 +167,8 @@ href: index-function-dax.md - name: KEEPFILTERS href: keepfilters-function-dax.md + - name: LOOKUP + href: lookup-function-dax.md - name: LOOKUPVALUE href: lookupvalue-function-dax.md - name: MATCHBY From 4833efc1c6ff90a852a5547022b82fac334b6d2f Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:16:51 -0800 Subject: [PATCH 378/934] Update filter-functions-dax.md --- query-languages/dax/filter-functions-dax.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 29bea0d79..971cb1fb1 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -20,17 +20,17 @@ The filter and value functions in DAX are some of the most complex and powerful, |[EARLIER](earlier-function-dax.md) | Returns the current value of the specified column in an outer evaluation pass of the mentioned column. | |[EARLIEST](earliest-function-dax.md) | Returns the current value of the specified column in an outer evaluation pass of the specified column. | |[FILTER](filter-function-dax.md) | Returns a table that represents a subset of another table or expression. | -|[FIRST](first-function-dax.md) | Used in Visual Caculations only. Retrieves a value in the data grid from the first row of an axis. | +|[FIRST](first-function-dax.md) | Used in visual calculations only. Retrieves a value in the visual matrix from the first row of an axis. | |[INDEX](index-function-dax.md)|Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order or on the specified axis.| |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | -|[LAST](last-function-dax.md) | Used in Visual Caculations only. Retrieves a value in the data grid from the last row of an axis. | +|[LAST](last-function-dax.md) | Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis. | |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | |[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | -|[NEXT](next-function-dax.md) | Used in Visual Caculations only. Retrieves a value in the next row of an axis in the data grid. | +|[NEXT](next-function-dax.md) | Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix. | |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a window function’s partitions.| |[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a window function’s \ parameter.| -|[PREVIOUS](previous-function-dax.md)| Used in Visual Caculations only. Retrieves a value in the previous row of an axis in the data grid. | +|[PREVIOUS](previous-function-dax.md)| Used in visual calculations only. Retrieves a value in the previous row of an axis in the visual matrix. | |[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | From 36ac8b834b43e6c2a8fc674076e9b9ed7c135f95 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:19:09 -0800 Subject: [PATCH 379/934] Update first-function-dax.md --- query-languages/dax/first-function-dax.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index f77648f64..8904822bd 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -5,7 +5,7 @@ title: "FIRST function (DAX) | Microsoft Docs" # FIRST -Used in Visual Caculations only. Retrieves a value in the data grid from the first row of an axis. +Used in visual calculations only. Retrieves a value in the visual matrix from the first row of an axis. ## Syntax @@ -29,7 +29,7 @@ The value of \ evaluated from the first row of the axis. ## Remarks -This function can only be used in a Visual Caculation. +This function can only be used in a visual calculation. ## Example @@ -86,7 +86,7 @@ ORDER BY [MonthNumberOfYear] ``` -FirstInternetSalesAmount is added as a Visual Caculation that returns SalesAmount of the first row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of first month of the current year. On Year level, it returns SalesAmount of the first year across all the years. +FirstInternetSalesAmount is added as a visual calculation that returns SalesAmount of the first row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of first month of the current year. On Year level, it returns SalesAmount of the first year across all the years. ## Related content From 48c279eb872e0dbc7d8a79023d2bac30250a27e6 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:20:15 -0800 Subject: [PATCH 380/934] Update last-function-dax.md --- query-languages/dax/last-function-dax.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index c8f547c4f..9751ae5ba 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -5,7 +5,7 @@ title: "LAST function (DAX) | Microsoft Docs" # LAST -Used in Visual Caculations only. Retrieves a value in the data grid from the last row of an axis. +Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis. ## Syntax @@ -29,7 +29,7 @@ The value of \ evaluated from the last row of the axis. ## Remarks -This function can only be used in a Visual Caculation. +This function can only be used in a visual calculation. ## Example @@ -86,7 +86,7 @@ ORDER BY [MonthNumberOfYear] ``` -LastInternetSalesAmount is added as a Visual Caculation that returns SalesAmount of the last row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of last month of the current year. On Year level, it returns SalesAmount of the last year across all the years. +LastInternetSalesAmount is added as a visual calculation that returns SalesAmount of the last row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of last month of the current year. On Year level, it returns SalesAmount of the last year across all the years. ## Related content From f994a820db124bfed5133ff2a7d334afc06fc912 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:21:09 -0800 Subject: [PATCH 381/934] Update new-dax-functions.md --- query-languages/dax/new-dax-functions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 3a4e09890..4e3b339e2 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -15,10 +15,10 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| -|[FIRST](first-function-dax.md)|January, 2024| Used in Visual Caculations only. Retrieves a value in the data grid from the first row of an axis.| -|[LAST](last-function-dax.md)|January, 2024|Used in Visual Caculations only. Retrieves a value in the data grid from the last row of an axis.| -|[NEXT](next-function-dax.md)|January, 2024|Used in Visual Caculations only. Retrieves a value in the next row of an axis in the data grid.| -|[PREVIOUS](previous-function-dax.md)|January, 2024|Used in Visual Caculations only. Retrieves a value in the previous row of an axis in the data grid. | +|[FIRST](first-function-dax.md)|January, 2024| Used in visual calculations only. Retrieves a value in the visual matrix from the first row of an axis.| +|[LAST](last-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis.| +|[NEXT](next-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix.| +|[PREVIOUS](previous-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the previous row of an axis in the visual matrix. | |[MATCHBY](matchby-function-dax.md)|May, 2023|Define the columns that are used to to match data and identify the current row, in a window function expression.| |[RANK](rank-function-dax.md)|April, 2023|Returns the ranking for the current context within the specified partition, sorted by the specified order.| |[ROWNUMBER](rownumber-function-dax.md)|April, 2023|Returns the unique ranking for the current context within the specified partition, sorted by the specified order.| From 66ec73f2260c85712e0d53ec7ff478c5860161f0 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:25:00 -0800 Subject: [PATCH 382/934] Update next-function-dax.md --- query-languages/dax/next-function-dax.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 5d735d675..a0ef9f6c4 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -5,7 +5,7 @@ title: "NEXT function (DAX) | Microsoft Docs" # NEXT -Used in Visual Caculations only. Retrieves a value in the next row of an axis in the data grid. +Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix. ## Syntax @@ -30,7 +30,7 @@ The value of \ evaluated from the next row of the axis. ## Remarks -This function can only be used in a Visual Caculation. +This function can only be used in a visual calculation. ## Example @@ -75,8 +75,8 @@ DEFINE [ProductCategoryName], [ProductSubcategoryName] DENSIFY "isDensified" - COLUMN t[NextNextInternetSalesAmount] = - NEXT ( [SumSalesAmount], 2, ROWS, LowestParent ) + COLUMN t[NextInternetSalesAmount] = + NEXT ( [SumSalesAmount], ROWS, LowestParent ) EVALUATE t @@ -87,7 +87,7 @@ ORDER BY [MonthNumberOfYear] ``` -NextNextInternetSalesAmount is added as a Visual Caculation that returns SalesAmount of the next next row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of the next next month within the current year; for the last two months of the year, it returns blank. On Year level, it returns SalesAmount of the next next year of the current year; for the last two years, it returns blank. +NextInternetSalesAmount is added as a visual calculation that returns the SalesAmount of the next row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of the next month within the current year; for the last month of the year, it returns blank. On Year level, it returns the SalesAmount of the next year of the current year; for the last year, it returns blank. ## Related content From 09d65a03b3bc8dcb739812194c2e10f380270bc9 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 5 Jan 2024 12:27:08 -0800 Subject: [PATCH 383/934] Update previous-function-dax.md --- query-languages/dax/previous-function-dax.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index e630f35f7..54b518ec7 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -5,7 +5,7 @@ title: "PREVIOUS function (DAX) | Microsoft Docs" # PREVIOUS -Used in Visual Caculations only. Retrieves a value in the previous row of an axis in the data grid. +Used in visual calculations only. Retrieves a value in the previous row of an axis in the visual matrix. ## Syntax @@ -30,7 +30,7 @@ The value of \ evaluated from the previous row of the axis. ## Remarks -This function can only be used in a Visual Caculation. +This function can only be used in a visual calculation. ## Example @@ -75,8 +75,8 @@ DEFINE [ProductCategoryName], [ProductSubcategoryName] DENSIFY "isDensified" - COLUMN t[PreviousPreviousInternetSalesAmount] = - PREVIOUS ( [SumSalesAmount], 2, ROWS, LowestParent ) + COLUMN t[PreviousInternetSalesAmount] = + PREVIOUS ( [SumSalesAmount], ROWS, LowestParent ) EVALUATE t @@ -87,7 +87,7 @@ ORDER BY [MonthNumberOfYear] ``` -PreviousPreviousInternetSalesAmount is added as a Visual Caculation that returns SalesAmount of the previous previous row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of the previous previous month within the current year; for the first two months of the year, it returns blank. On Year level, it returns SalesAmount of the previous previous year of the current year; for the first two years, it returns blank. +PreviousInternetSalesAmount is added as a visual calculation that returns the SalesAmount of the previous row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of the previous month within the current year; for the first month of the year, it returns blank. On Year level, it returns the SalesAmount of the previous year of the current year; for the first year, it returns blank. ## Related content From 50b367f6742afac8ce1e4883a21f52ed3ddd8fa8 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:31:46 -0800 Subject: [PATCH 384/934] Update first-function-dax.md --- query-languages/dax/first-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 8904822bd..9a39dbf42 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -86,7 +86,7 @@ ORDER BY [MonthNumberOfYear] ``` -FirstInternetSalesAmount is added as a visual calculation that returns SalesAmount of the first row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of first month of the current year. On Year level, it returns SalesAmount of the first year across all the years. +FirstInternetSalesAmount is added as a visual calculation that returns SalesAmount of the first row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of first month of the current year. On Year level, it returns the SalesAmount of the first year across all the years. ## Related content From 11d2278da30ac32f7a10be11a5fab6f9372f2d18 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:32:03 -0800 Subject: [PATCH 385/934] Update last-function-dax.md --- query-languages/dax/last-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 9751ae5ba..2046f8f66 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -86,7 +86,7 @@ ORDER BY [MonthNumberOfYear] ``` -LastInternetSalesAmount is added as a visual calculation that returns SalesAmount of the last row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of last month of the current year. On Year level, it returns SalesAmount of the last year across all the years. +LastInternetSalesAmount is added as a visual calculation that returns SalesAmount of the last row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of last month of the current year. On Year level, it returns the SalesAmount of the last year across all the years. ## Related content From 6722071ad1bf17f104c128519c23abe7b9121449 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:32:45 -0800 Subject: [PATCH 386/934] Update new-dax-functions.md --- query-languages/dax/new-dax-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 4e3b339e2..6814254f5 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -15,7 +15,7 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| -|[FIRST](first-function-dax.md)|January, 2024| Used in visual calculations only. Retrieves a value in the visual matrix from the first row of an axis.| +|[FIRST](first-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the visual matrix from the first row of an axis.| |[LAST](last-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis.| |[NEXT](next-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix.| |[PREVIOUS](previous-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the previous row of an axis in the visual matrix. | From 25b9c561cfd5230af8d93524301ce8731a7e1ae0 Mon Sep 17 00:00:00 2001 From: Mike Kinsman <32281167+mikekinsman@users.noreply.github.com> Date: Wed, 10 Jan 2024 12:14:08 -0800 Subject: [PATCH 387/934] Update docfx.json exclude my account --- query-languages/dax/docfx.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index 926e3fe5c..a7445c59d 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -48,7 +48,9 @@ "recommendations": "false", "searchScope": ["Power BI", "Analysis Services", "DAX formula language"], "ms.date": "10/20/2023", - "show_latex": true + "show_latex": true, + "contributors_to_exclude": [ "mikekinsman" ] + }, "fileMetadata": {}, "template": [], From fac3f78695d43ec4f3b0cc271cb448530f5a7eed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Wed, 20 Dec 2023 17:56:29 -0800 Subject: [PATCH 388/934] adding Reset parameter to window functions: WINDOW,OFFSET,INDEX,RANK,ROWNUMBER --- query-languages/dax/index-function-dax.md | 37 ++++++++++++++++++- query-languages/dax/offset-function-dax.md | 5 ++- query-languages/dax/rank-function-dax.md | 4 +- query-languages/dax/rownumber-function-dax.md | 5 ++- query-languages/dax/window-function-dax.md | 35 +++++++++++++++++- 5 files changed, 81 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 2bd9ec7bc..e8a54b45d 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -10,7 +10,7 @@ Returns a row at an absolute position, specified by the position parameter, with ## Syntax ```dax -INDEX([, ][, ][, ][, ][, ]) +INDEX([, ][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -23,6 +23,7 @@ INDEX([, ][, ][, ][, ][, This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -54,6 +55,8 @@ An empty table is returned if: If INDEX is used within a calculated column defined on the same table as \ and \ is omitted, an error is returned. +\ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. + ## Example 1 The following DAX query: @@ -120,6 +123,38 @@ Returns the following table: |217 | 11 | 6683.09 | 7767.78 | |217 | 12 | 7767.78 | 7767.78 | +## Example 3 + +The following Visual Calculation DAX query: + +```dax +DEFINE +VAR _Core = SUMMARIZECOLUMNS( + ROLLUPADDISSUBTOTAL( + 'DimDate'[Year], "IsYearTotal", + 'DimDate'[Quarter], "IsQuarterTotal", + 'DimDate'[MonthNumberOfYear], "IsMonthTotal" + ), + "SumSalesAmount", CALCULATE(SUM('FactInternetSales'[SalesAmount])) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] TOTAL [IsYearTotal] + GROUP [Quarter] TOTAL [IsQuarterTotal] + GROUP [MonthNumberOfYear] TOTAL [IsMonthTotal] + ORDER BY [Year], [Quarter], [MonthNumberOfYear] + DENSIFY "isDensified" +COLUMN t[SalesComparedToBeginningOfYear] = [SumSalesAmount] - CALCULATE(SUM([SumSalesAmount]), INDEX(1, ROWS, HIGHESTPARENT)) +COLUMN t[SalesComparedToBeginningOfQuarter] = [SumSalesAmount] - CALCULATE(SUM([SumSalesAmount]), INDEX(1, , -1)) +EVALUATE t +``` + +Returns a table containing, for each month: +
- the total sales amount; +
- the difference to the first month of the respective year; +
- and the difference to the first month of the respective quarter. + ## Related content [OFFSET](offset-function-dax.md) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index f8bbf4521..d70fc75b9 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -10,7 +10,7 @@ Returns a single row that is positioned either before or after the *current row* ## Syntax ```dax -OFFSET ( [, ][, ][, ][, ][, ] ) +OFFSET ( [, ][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -23,6 +23,7 @@ OFFSET ( [, ][, ][, ][, ][, This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -55,6 +56,8 @@ An empty table is returned if: If OFFSET is used within a calculated column defined on the same table as \, and \ is omitted, an error is returned. +\ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. + ## Example 1 The following DAX query: diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 1098e5915..cb9d5a9cd 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -11,7 +11,7 @@ Returns the ranking for the current context within the specified partition, sort ## Syntax ```dax -RANK ( [][, ][, ][, ][, ][, ] ) +RANK ( [][, ][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -24,6 +24,7 @@ RANK ( [][, ][, ][, ][, ][, The supported values are:
  • KEEP (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -42,6 +43,7 @@ The rank number for the current context. - If the columns specified within \ and \ cannot uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. - RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. - RANK does not compare to RANKX as SUM compares to SUMX. +- \ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. ## Example diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 4cc7f1764..a2e4f9bca 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -10,7 +10,7 @@ Returns the unique ranking for the current context within the specified partitio ## Syntax ```dax -ROWNUMBER ( [][, ][, ][, ][, ] ) +ROWNUMBER ( [][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -22,6 +22,7 @@ ROWNUMBER ( [][, ][, ][, ][, ] |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -48,6 +49,8 @@ If the columns specified within \ and \ cannot uniquely id - Sort each partition using this new set of orderBy columns. - If such columns cannot be found and the function detects a tie at runtime, an error is returned. +\ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. + ## Example The following DAX query: diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 132fe4d9d..e673d480f 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -10,7 +10,7 @@ Returns multiple rows which are positioned within the given interval. ## Syntax ```dax -WINDOW ( from[, from_type], to[, to_type][, ][, ][, ][, ][, ] ) +WINDOW ( from[, from_type], to[, to_type][, ][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -26,6 +26,7 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -59,6 +60,8 @@ If WINDOW is used within a calculated column defined on the same table as \ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. + ## Example 1 The following measure: @@ -141,6 +144,36 @@ Returns the running sum for Total Sales by Month Number Of Year, restarting for | FY2020 | 11 | $5,151,897 | $47,027,081 | | FY2020 | 12 | $4,851,194 | $51,878,275 | +## Example 3 + +The following Visual Calculation DAX query: + +```dax +DEFINE +VAR _Core = SUMMARIZECOLUMNS( + ROLLUPADDISSUBTOTAL( + 'DimDate'[Year], "IsYearTotal", + 'DimDate'[Quarter], "IsQuarterTotal", + 'DimDate'[MonthNumberOfYear], "IsMonthTotal" + ), + "SumSalesAmount", CALCULATE(SUM('FactInternetSales'[SalesAmount])) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] TOTAL [IsYearTotal] + GROUP [Quarter] TOTAL [IsQuarterTotal] + GROUP [MonthNumberOfYear] TOTAL [IsMonthTotal] + ORDER BY [Year], [Quarter], [MonthNumberOfYear] + DENSIFY "isDensified" +COLUMN t[TotalSalesRunningSumByYear] = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SumSalesAmount]) +COLUMN t[TotalSalesRunningSumByQuarter] = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SumSalesAmount]) +EVALUATE t +``` + +Returns a table with the cumulative total sales by month, calculated along each year and along each quarter. +In the definition of the TotalSalesRunningSumByYear column, the values 1 and -2 could be used instead of HIGHESTPARENT, with the same results. + ## Related content [INDEX](index-function-dax.md) From dc4a8d65cc28da4f413ce442c9405510503edb1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Wed, 20 Dec 2023 18:04:54 -0800 Subject: [PATCH 389/934] fixing some random errors I found elsewhere --- query-languages/dax/summarizecolumns-function-dax.md | 4 ++-- query-languages/dax/toc.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index 6d4e4b20f..a2c5f1e7c 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -75,7 +75,7 @@ SUMMARIZECOLUMNS( This rolls up the Sales[CustomerId] column, creating a subtotal for all customers in the given grouping. Without [IGNORE](ignore-function-dax.md), the result is: -|CustomerId|TotalQty|BlankIfTotalQtyIsNot3| +|CustomerId|Total Qty|BlankIfTotalQtyIsNot3| |--------------|------------|-------------------------| |A|5|| |B|3|3| @@ -83,7 +83,7 @@ This rolls up the Sales[CustomerId] column, creating a subtotal for all customer With [IGNORE](ignore-function-dax.md), -|CustomerId|TotalQty|BlankIfTotalQtyIsNot3| +|CustomerId|Total Qty|BlankIfTotalQtyIsNot3| |--------------|------------|-------------------------| |B|3|3| |C|3|3| diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 3b7bbe9d4..e8d1bdf37 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -671,11 +671,11 @@ href: naturalleftouterjoin-function-dax.md - name: ROLLUP href: rollup-function-dax.md - - name: ROLLUPADDISUBTOTAL + - name: ROLLUPADDISSUBTOTAL href: rollupaddissubtotal-function-dax.md - name: ROLLUPGROUP href: rollupgroup-function-dax.md - - name: ROLLUPISUBTOTAL + - name: ROLLUPISSUBTOTAL href: rollupissubtotal-function-dax.md - name: ROW href: row-function-dax.md From 91c119374949b27a4b7cc3e9dfa64ed5329b22f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Tue, 16 Jan 2024 16:56:27 -0800 Subject: [PATCH 390/934] de-capitalizing "visual calculations" --- query-languages/dax/index-function-dax.md | 4 ++-- query-languages/dax/offset-function-dax.md | 2 +- query-languages/dax/rank-function-dax.md | 2 +- query-languages/dax/rownumber-function-dax.md | 2 +- query-languages/dax/window-function-dax.md | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index e8a54b45d..560671583 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -55,7 +55,7 @@ An empty table is returned if: If INDEX is used within a calculated column defined on the same table as \ and \ is omitted, an error is returned. -\ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. ## Example 1 @@ -125,7 +125,7 @@ Returns the following table: ## Example 3 -The following Visual Calculation DAX query: +The following visual calculation DAX query: ```dax DEFINE diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index d70fc75b9..5f382e61c 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -56,7 +56,7 @@ An empty table is returned if: If OFFSET is used within a calculated column defined on the same table as \, and \ is omitted, an error is returned. -\ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. ## Example 1 diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index cb9d5a9cd..0de3bad98 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -43,7 +43,7 @@ The rank number for the current context. - If the columns specified within \ and \ cannot uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. - RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. - RANK does not compare to RANKX as SUM compares to SUMX. -- \ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +- \ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. ## Example diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index a2e4f9bca..b0c3f0eda 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -49,7 +49,7 @@ If the columns specified within \ and \ cannot uniquely id - Sort each partition using this new set of orderBy columns. - If such columns cannot be found and the function detects a tie at runtime, an error is returned. -\ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. ## Example diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index e673d480f..0b0490d06 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -60,7 +60,7 @@ If WINDOW is used within a calculated column defined on the same table as \ can be used in Visual Calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. ## Example 1 @@ -146,7 +146,7 @@ Returns the running sum for Total Sales by Month Number Of Year, restarting for ## Example 3 -The following Visual Calculation DAX query: +The following visual calculation DAX query: ```dax DEFINE From 490eb0bbb0ec5e1a5c3a662820c9e58d76623b57 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 17 Jan 2024 08:48:03 -0800 Subject: [PATCH 391/934] Added February updates to Power Query M reference --- query-languages/m/docfx.json | 2 +- query-languages/m/list-removefirstn.md | 2 +- query-languages/m/list-removelastn.md | 2 +- query-languages/m/list-skip.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 6bc84dd48..ede122399 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -45,7 +45,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "11/15/2023" + "ms.date": "1/17/2024" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/list-removefirstn.md b/query-languages/m/list-removefirstn.md index 25154f291..b4e0c3a99 100644 --- a/query-languages/m/list-removefirstn.md +++ b/query-languages/m/list-removefirstn.md @@ -15,7 +15,7 @@ List.RemoveFirstN(list as list, optional countOrCondition as any) Returns a list that removes the first element of list `list`. If `list` is an empty list an empty list is returned. This function takes an optional parameter, `countOrCondition`, to support removing multiple values as listed below. * If a number is specified, up to that many items are removed. -* If a condition is specified, the returned list begins with the first element in `list` that doesn't meet the criteria. Once an item fails the condition, no further items are considered. +* If a condition is specified, any consecutive matching items at the start of `list` are removed. * If this parameter is null, the default behavior is observed. ## Example 1 diff --git a/query-languages/m/list-removelastn.md b/query-languages/m/list-removelastn.md index 83c338e9f..3dd377a05 100644 --- a/query-languages/m/list-removelastn.md +++ b/query-languages/m/list-removelastn.md @@ -15,7 +15,7 @@ List.RemoveLastN(list as list, optional countOrCondition as any) a Returns a list that removes the last `countOrCondition` elements from the end of list `list`. If `list` has less than `countOrCondition` elements, an empty list is returned. * If a number is specified, up to that many items are removed. -* If a condition is specified, the returned list ends with the first element from the bottom in `list` that meets the criteria. Once an item fails the condition, no further items are considered. +* If a condition is specified, any consecutive matching items at the end of `list` are removed. * If this parameter is null, only one item is removed. ## Example 1 diff --git a/query-languages/m/list-skip.md b/query-languages/m/list-skip.md index cb23d2108..dd4651542 100644 --- a/query-languages/m/list-skip.md +++ b/query-languages/m/list-skip.md @@ -15,7 +15,7 @@ List.Skip(list as list, optional countOrCondition as any) as list Returns a list that skips the first element of list `list`. If `list` is an empty list an empty list is returned. This function takes an optional parameter, `countOrCondition`, to support skipping multiple values as listed below. * If a number is specified, up to that many items are skipped. -* If a condition is specified, the returned list begins with the first element in `list` that doesn't meet the criteria. Once an item fails the condition, no further items are considered. +* If a condition is specified, any consecutive matching items at the start of `list` are skipped. * If this parameter is null, the default behavior is observed. ## Example 1 From 954f4d79d02cfffd07d69c267cb0921dd78dd4b5 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 17 Jan 2024 09:08:48 -0800 Subject: [PATCH 392/934] Added kfollis as author in DAX --- query-languages/dax/docfx.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index a7445c59d..b5e2bc3ec 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -43,8 +43,8 @@ "ms.service": "powerbi", "ms.subservice": "dax", "ms.topic": "reference", - "ms.author": "owend", - "author": "minewiskan", + "ms.author": "kfollis", + "author": "kfollis", "recommendations": "false", "searchScope": ["Power BI", "Analysis Services", "DAX formula language"], "ms.date": "10/20/2023", From 6efedfbd36c5cdfa1133dcf01da542794b539144 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 17 Jan 2024 09:14:42 -0800 Subject: [PATCH 393/934] Added kfollis to DAX index.yml file --- query-languages/dax/index.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/index.yml b/query-languages/dax/index.yml index 371b4c146..0ea5ef215 100644 --- a/query-languages/dax/index.yml +++ b/query-languages/dax/index.yml @@ -9,8 +9,8 @@ metadata: ms.service: powerbi ms.topic: landing-page ms.collection: - author: minewiskan - ms.author: owend + author: kfollis + ms.author: kfollis ms.date: 07/27/2020 # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new From d3ba731c7b2f7488648b0a2923b7f35ea8935da2 Mon Sep 17 00:00:00 2001 From: pohuan <104555661+pohuan@users.noreply.github.com> Date: Tue, 23 Jan 2024 14:43:50 -0800 Subject: [PATCH 394/934] Update lookup-function-dax.md Remove collapse and go to discuss with PM --- query-languages/dax/lookup-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 86ed6acab..db70e9b84 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -17,7 +17,7 @@ LOOKUP([, [, [, …]]]) |Term|Definition| |--------|--------------| |column| Only column reference is allowed, For example [Sales] is allowed, but [Sales] – [Cost] is not, nor is SUM([Sales]) | -|filter1, filter2,…|(Optional) Filter has to be either: 1. An equality filter. For example [Year]=2019 or [Year]=MAX([Year]). 2.The Collapse function. For example, LOOKUP([Sales], Collapse([Country])) returns the subtotal value for Sales for all Countries| +|filter1, filter2,…|(Optional) Filter has to be an equality filter. For example [Year]=2019 or [Year]=MAX([Year]).| ## Return value From b95b0daf74b6f26c238a935ef81c0366e6bd48b6 Mon Sep 17 00:00:00 2001 From: James Jin Date: Fri, 26 Jan 2024 16:59:45 -0800 Subject: [PATCH 395/934] Add remark --- query-languages/dax/columnstatistics-function-dax.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index cda9824a1..72afdacf6 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -33,6 +33,8 @@ A table of statistics. Each row of this table represents a different column in t - If a filter from the filter context is applied to COLUMNSTATISTICS(), an error is returned. +- For binary-typed columns, the Min and Max statistics will have BLANK values. + ## Example From c4032b863d90146b44de69f712c95015cb3dfcd0 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 31 Jan 2024 15:57:48 -0500 Subject: [PATCH 396/934] Update query-languages/m/m-spec-types.md Co-authored-by: Ehren --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 303472be2..c602aa024 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -241,7 +241,7 @@ type function (x as text) as number type function (y as number, optional z as text) as any ``` -Specifying a parameter as optional also makes its type nullable. The following create identical function types: +Specifying a parameter as optional implicitly makes its type nullable. The following create identical function types: ```powerquery-m type function (optional x as text) as any From 0db5051827fc289de94780d869209d972a5decb9 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 31 Jan 2024 15:58:45 -0500 Subject: [PATCH 397/934] Reordering --- query-languages/m/m-spec-types.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index c602aa024..05b3a6d6f 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -2,7 +2,7 @@ title: M Language types description: Describes using types in the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 1/31/2024 ms.custom: "nonautomated-date" --- @@ -241,6 +241,10 @@ type function (x as text) as number type function (y as number, optional z as text) as any ``` +A function value conforms to a function type if the return type of the function value is compatible with the function type's return type and each parameter specification of the function type is compatible to the positionally corresponding formal parameter of the function. A parameter specification is compatible with a formal parameter if the specified _parameter-type_ type is compatible with the type of the formal parameter and the parameter specification is optional if the formal parameter is optional. + +Formal parameter names are ignored for the purposes of determining function type conformance. + Specifying a parameter as optional implicitly makes its type nullable. The following create identical function types: ```powerquery-m @@ -248,10 +252,6 @@ type function (optional x as text) as any type function (optional x as nullable text) as any ``` -A function value conforms to a function type if the return type of the function value is compatible with the function type's return type and each parameter specification of the function type is compatible to the positionally corresponding formal parameter of the function. A parameter specification is compatible with a formal parameter if the specified _parameter-type_ type is compatible with the type of the formal parameter and the parameter specification is optional if the formal parameter is optional. - -Formal parameter names are ignored for the purposes of determining function type conformance. - ## Table types A _table-type value_ is used to define the structure of a table value. From 103c9a2b9022b238b95f0144051948838e0979ae Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 2 Feb 2024 10:15:40 -0500 Subject: [PATCH 398/934] Adding missing line return --- query-languages/m/m-spec-consolidated-grammar.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index cc21b7dd9..102c842ce 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -2,7 +2,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual -ms.date: 9/15/2023 +ms.date: 2/2/24 ms.custom: "nonautomated-date" --- @@ -16,7 +16,8 @@ lexical-elements:
      lexical-element lexical-elementsopt
lexical-element:
      whitespace
-      token comment_ +      token
+      comment_ ### White space From 357fabb7dcada593a04217a06ab43f6f5f9156c8 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 2 Feb 2024 10:20:52 -0500 Subject: [PATCH 399/934] Removing duplicate definition of `field-name` --- query-languages/m/m-spec-consolidated-grammar.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index cc21b7dd9..f58cb51e1 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -2,7 +2,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual -ms.date: 9/15/2023 +ms.date: 2/2/24 ms.custom: "nonautomated-date" --- @@ -384,9 +384,6 @@ _field-list:
      field_ `,` _field-list
field:
      field-name_ `=` _expression
-field-name:
-      generalized-identifier
-      quoted-identifier_
#### Item access expression From 57eaca7483714000f6643aa21263e1a30cc6bd4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Mon, 5 Feb 2024 17:58:09 -0800 Subject: [PATCH 400/934] addressing PR comments --- query-languages/dax/index-function-dax.md | 13 +++--- query-languages/dax/offset-function-dax.md | 41 ++++++++++++++++--- query-languages/dax/rank-function-dax.md | 36 ++++++++++++++-- query-languages/dax/rownumber-function-dax.md | 36 ++++++++++++++-- query-languages/dax/window-function-dax.md | 13 +++--- 5 files changed, 113 insertions(+), 26 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 560671583..b9a44e92d 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -10,7 +10,7 @@ Returns a row at an absolute position, specified by the position parameter, with ## Syntax ```dax -INDEX([, ][, ][, ][, ][, ][, ] ) +INDEX([, or ][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -19,11 +19,12 @@ INDEX([, ][, ][, ][, ][, - \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| |relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. +|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -55,9 +56,9 @@ An empty table is returned if: If INDEX is used within a calculated column defined on the same table as \ and \ is omitted, an error is returned. -\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. -## Example 1 +## Example 1 - calculated column The following DAX query: @@ -71,7 +72,7 @@ Returns the following table: |---------| | 2005 | -## Example 2 +## Example 2 - calculated column The following DAX query: @@ -123,7 +124,7 @@ Returns the following table: |217 | 11 | 6683.09 | 7767.78 | |217 | 12 | 7767.78 | 7767.78 | -## Example 3 +## Example 3 - visual calculation The following visual calculation DAX query: diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 5f382e61c..f6a88fc94 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -10,7 +10,7 @@ Returns a single row that is positioned either before or after the *current row* ## Syntax ```dax -OFFSET ( [, ][, ][, ][, ][, ][, ] ) +OFFSET ( [, or ][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -19,11 +19,12 @@ OFFSET ( [, ][, ][, ][, ][, If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -56,9 +57,9 @@ An empty table is returned if: If OFFSET is used within a calculated column defined on the same table as \, and \ is omitted, an error is returned. -\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. -## Example 1 +## Example 1 - calculated column The following DAX query: @@ -88,7 +89,7 @@ ADDCOLUMNS ( Returns a table that summarizes the total sales for each product category and calendar year, as well as the total sales for that category in the previous year. -## Example 2 +## Example 2 - measure The following DAX query: @@ -106,7 +107,7 @@ SUMMARIZECOLUMNS ( Uses OFFSET() in a measure to return a table that summarizes the total sales for each calendar year and the total sales for the previous year. -## Example 3 +## Example 3 - calculated column The following DAX query: @@ -130,6 +131,34 @@ ADDCOLUMNS ( Returns FactInternetSales table with adding a column, which indicates, for each sale, its previous sale's amount, of the same product, in descending order of sales amount, with current sale being identified by its SalesOrderNumber and SalesOrderLineNumber. Without MATCHBY, the query would return an error since there are no key columns in FactInternetSales table. +## Example 4 - visual calculation + +The following visual calculation DAX query: + +```dax +DEFINE +VAR _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimDate'[Quarter], + 'DimDate'[MonthNumberOfYear], + "SumSalesAmount", CALCULATE(SUM('FactInternetSales'[SalesAmount])) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] + GROUP [Quarter] + GROUP [MonthNumberOfYear] + ORDER BY [Year], [Quarter], [MonthNumberOfYear] + DENSIFY "isDensified" +COLUMN t[SalesRelativeToPreviousMonth] = [SumSalesAmount] - CALCULATE(SUM([SumSalesAmount]), OFFSET(-1, ROWS, PARTITIONBY([Year]))) +EVALUATE t +``` + +Returns a table containing, for each month: +
- the total sales amount; +
- the difference to the previous month within the same year; + ## Related content [INDEX](index-function-dax.md) diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 0de3bad98..d87f53502 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -11,7 +11,7 @@ Returns the ranking for the current context within the specified partition, sort ## Syntax ```dax -RANK ( [][, ][, ][, ][, ][, ][, ] ) +RANK ( [][, or ][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -20,11 +20,12 @@ RANK ( [][, ][, ][, ][, ][, If specified, the supported value is either DENSE, or SKIP.
If omitted:
- Defaults to SKIP | |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • KEEP (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -43,9 +44,9 @@ The rank number for the current context. - If the columns specified within \ and \ cannot uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. - RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. - RANK does not compare to RANKX as SUM compares to SUMX. -- \ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +- \ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. -## Example +## Example 1 - calculated column The following DAX query: @@ -68,6 +69,33 @@ ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc Returns a table that ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. Blank \ column values are sorted on the end. +## Example 2 - visual calculation + +The following visual calculation DAX query: + +```dax +DEFINE +VAR _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimDate'[Quarter], + 'DimDate'[MonthNumberOfYear], + "SumSalesAmount", CALCULATE(SUM('FactInternetSales'[SalesAmount])) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] + GROUP [Quarter] + GROUP [MonthNumberOfYear] + ORDER BY [Year], [Quarter], [MonthNumberOfYear] + DENSIFY "isDensified" +column t[SalesRankWithinYear] = RANK(DENSE, ROWS, ORDERBY([SumSalesAmount], DESC), PARTITIONBY(t[Year])) +column t[SalesRankAllHistory] = RANK(DENSE, ROWS, ORDERBY([SumSalesAmount], DESC)) +EVALUATE t +``` + +Returns a table that ranks each month by the total sales, both within each year, and the entire history. + ## Related content [INDEX](index-function-dax.md) diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index b0c3f0eda..7c9a36461 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -10,7 +10,7 @@ Returns the unique ranking for the current context within the specified partitio ## Syntax ```dax -ROWNUMBER ( [][, ][, ][, ][, ][, ] ) +ROWNUMBER ( [ or ][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -18,11 +18,12 @@ ROWNUMBER ( [][, ][, ][, ][, ][ |Term|Definition| |--------|--------------| |relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. |orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -49,9 +50,9 @@ If the columns specified within \ and \ cannot uniquely id - Sort each partition using this new set of orderBy columns. - If such columns cannot be found and the function detects a tie at runtime, an error is returned. -\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. -## Example +## Example 1 - calculated column The following DAX query: @@ -72,6 +73,33 @@ ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc Returns a table that uniquely ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. +## Example 2 - visual calculation + +The following visual calculation DAX query: + +```dax +DEFINE +VAR _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimDate'[Quarter], + 'DimDate'[MonthNumberOfYear], + "SumSalesAmount", CALCULATE(SUM('FactInternetSales'[SalesAmount])) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] + GROUP [Quarter] + GROUP [MonthNumberOfYear] + ORDER BY [Year], [Quarter], [MonthNumberOfYear] + DENSIFY "isDensified" +column t[SalesRankWithinYear] = ROWNUMBER(ROWS, ORDERBY([SumSalesAmount], DESC), PARTITIONBY(t[Year])) +column t[SalesRankAllHistory] = ROWNUMBER(ROWS, ORDERBY([SumSalesAmount], DESC)) +EVALUATE t +``` + +Returns a table that uniquely ranks each month by the total sales, both within each year, and the entire history. + ## Related content [INDEX](index-function-dax.md) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 0b0490d06..0af656043 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -10,7 +10,7 @@ Returns multiple rows which are positioned within the given interval. ## Syntax ```dax -WINDOW ( from[, from_type], to[, to_type][, ][, ][, ][, ][, ][, ] ) +WINDOW ( from[, from_type], to[, to_type][, or ][, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -22,11 +22,12 @@ WINDOW ( from[, from_type], to[, to_type][, ][, ][, ] |to|Same as \, but indicates the end of the window. The last row is included in the window.| |to_type|Same as \, but modifies the behavior of \.| |relation|(Optional) A table expression from which the output rows are returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. |orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| |matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -60,9 +61,9 @@ If WINDOW is used within a calculated column defined on the same table as \ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ must either be omitted or be a visual shape's axis. +\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. -## Example 1 +## Example 1 - measure The following measure: @@ -83,7 +84,7 @@ AVERAGEX( Returns the 3-day average of unit prices for each product. Note the 3-day window consists of three days in which the product has sales, not necessarily three consecutive calendar days. -## Example 2 +## Example 2 - measure The following measure: @@ -144,7 +145,7 @@ Returns the running sum for Total Sales by Month Number Of Year, restarting for | FY2020 | 11 | $5,151,897 | $47,027,081 | | FY2020 | 12 | $4,851,194 | $51,878,275 | -## Example 3 +## Example 3 - visual calculation The following visual calculation DAX query: From 307e7c8196b7ef00a71c33578b8b5420ca131647 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 7 Feb 2024 08:43:25 -0500 Subject: [PATCH 401/934] Update datetime-date.md --- query-languages/m/datetime-date.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/datetime-date.md b/query-languages/m/datetime-date.md index 4708658f2..bef12c0e6 100644 --- a/query-languages/m/datetime-date.md +++ b/query-languages/m/datetime-date.md @@ -12,7 +12,7 @@ DateTime.Date(dateTime as any) as nullable date ## About -Returns the date component of `dateTime`, the given `date`, `datetime`, or `datetimezone` value. +Returns the date component of value `dateTime`, if that input is a `date`, `datetime`, or `datetimezone` value. If, instead, `null` is input, `null` is returned. ## Example 1 From 3a897fd327cf841a05df7d93a1a8452d1f3f36f2 Mon Sep 17 00:00:00 2001 From: SB Date: Mon, 12 Feb 2024 20:40:10 +0530 Subject: [PATCH 402/934] Update weekday-function-dax.md There is an error in the number range that is returned by the Return Type 3. It should be 0 to 6, instead of 1 to 7. --- query-languages/dax/weekday-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/weekday-function-dax.md b/query-languages/dax/weekday-function-dax.md index c6596f050..a9880030a 100644 --- a/query-languages/dax/weekday-function-dax.md +++ b/query-languages/dax/weekday-function-dax.md @@ -17,7 +17,7 @@ WEEKDAY(, ) |Term|Definition| |--------|--------------| |date|A date in **datetime** format.

Dates should be entered by using the DATE function, by using expressions that result in a date, or as the result of other formulas.| -|return_type|A number that determines the Return value:

Return type: **1**, week begins on Sunday (1) and ends on Saturday (7). numbered 1 through 7.

Return type: **2**, week begins on Monday (1) and ends on Sunday (7).

Return type: **3**, week begins on Monday (0) and ends on Sunday (6).numbered 1 through 7.| +|return_type|A number that determines the Return value:

Return type: **1**, week begins on Sunday (1) and ends on Saturday (7). numbered 1 through 7.

Return type: **2**, week begins on Monday (1) and ends on Sunday (7).

Return type: **3**, week begins on Monday (0) and ends on Sunday (6).numbered 0 through 6.| ## Return value From c42546fec718ca456d245460e3e84d2cea5e579e Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Tue, 13 Feb 2024 17:22:18 -0800 Subject: [PATCH 403/934] Update docfx.json --- query-languages/m/docfx.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index ede122399..e56ec42e4 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -36,6 +36,9 @@ "externalReference": [], "globalMetadata": { "feedback_system": "Standard", + "feedback_product_url": "/power-query/feedback", + "feedback_help_link_url": "https://learn.microsoft.com/power-query/feedback", + "feedback_help_link_type": "ask-the-community", "breadcrumb_path": "/powerquery-m/breadcrumb/toc.json", "uhfHeaderId": "MSDocsHeader-PowerQueryM", "titleSuffix": "PowerQuery M", From da05507bc743e600fa540a2e424deb1f2037ece5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Tue, 13 Feb 2024 18:15:27 -0800 Subject: [PATCH 404/934] improving visual calc examples: shortening formulas and adding screenshots --- query-languages/dax/index-function-dax.md | 31 ++++---------- .../dax-queries/dax-visualcalc-index.png | Bin 0 -> 61806 bytes .../dax-queries/dax-visualcalc-offset.png | Bin 0 -> 53404 bytes .../media/dax-queries/dax-visualcalc-rank.png | Bin 0 -> 102150 bytes .../dax-queries/dax-visualcalc-rownumber.png | Bin 0 -> 102161 bytes .../dax-queries/dax-visualcalc-window.png | Bin 0 -> 67680 bytes query-languages/dax/offset-function-dax.md | 26 +++--------- query-languages/dax/rank-function-dax.md | 29 ++++--------- query-languages/dax/rownumber-function-dax.md | 29 ++++--------- query-languages/dax/window-function-dax.md | 39 ++++++++---------- 10 files changed, 50 insertions(+), 104 deletions(-) create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-index.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-offset.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-rank.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-rownumber.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-window.png diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index b9a44e92d..b31d6ab6a 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -126,36 +126,23 @@ Returns the following table: ## Example 3 - visual calculation -The following visual calculation DAX query: +The following visual calculation DAX queries: ```dax -DEFINE -VAR _Core = SUMMARIZECOLUMNS( - ROLLUPADDISSUBTOTAL( - 'DimDate'[Year], "IsYearTotal", - 'DimDate'[Quarter], "IsQuarterTotal", - 'DimDate'[MonthNumberOfYear], "IsMonthTotal" - ), - "SumSalesAmount", CALCULATE(SUM('FactInternetSales'[SalesAmount])) -) -TABLE t = _Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year] TOTAL [IsYearTotal] - GROUP [Quarter] TOTAL [IsQuarterTotal] - GROUP [MonthNumberOfYear] TOTAL [IsMonthTotal] - ORDER BY [Year], [Quarter], [MonthNumberOfYear] - DENSIFY "isDensified" -COLUMN t[SalesComparedToBeginningOfYear] = [SumSalesAmount] - CALCULATE(SUM([SumSalesAmount]), INDEX(1, ROWS, HIGHESTPARENT)) -COLUMN t[SalesComparedToBeginningOfQuarter] = [SumSalesAmount] - CALCULATE(SUM([SumSalesAmount]), INDEX(1, , -1)) -EVALUATE t +SalesComparedToBeginningOfYear = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, ROWS, HIGHESTPARENT)) + +SalesComparedToBeginningOfQuarter = [SalesAmount] - CALCULATE(SUM([SalesAmount]), INDEX(1, , -1)) ``` -Returns a table containing, for each month: +Enhance a table so it contains, for each month:
- the total sales amount;
- the difference to the first month of the respective year;
- and the difference to the first month of the respective quarter. +The screenshot below shows the visual matrix and the first visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-index.png) + ## Related content [OFFSET](offset-function-dax.md) diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-index.png b/query-languages/dax/media/dax-queries/dax-visualcalc-index.png new file mode 100644 index 0000000000000000000000000000000000000000..0fd4ccb5a979d7113ae69f4581f4a37f84dd405b GIT binary patch literal 61806 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%0DL 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 C_@JNw literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-offset.png b/query-languages/dax/media/dax-queries/dax-visualcalc-offset.png new file mode 100644 index 0000000000000000000000000000000000000000..fb66bacf56abd2bfb84bd4215542ef13018362c6 GIT binary patch literal 53404 zcmcG#bx>SS*Dgv3Btb&(!3hu`ID$0fNK8;7)+R;O+xVV1he? z>*4**`+L7z_ujAS{Byc$@7=4dcJ*Gp*6Mzq9j&S?_ZpK769on3^+$PWbrck|NfeZ4 zoUdLym1M+iJv=?0xvR@bqJYOJcAf+@n-5AKP*5O=Sa)XVPcp`5c|CU&6k_^+UC%zM zzdL>^w6N3E_0Vv(`>bT;VPoF|tq>q5K)8S@iLU^5^@GLc+4VSIi+P6YpN3hImLGy{A_{%<^_V za^v+*lSLhe!-rN@tzBGPyq&jJGQ9CK2yyZLoxU54lRo1AMNeHw^C2k}tJr1RT=PNM!v{%c%Oo6IOu7?Ev9sv)-VS$zDt{~4%h zAt(8th6B%EO#YLP5;4V%|3~LOn9JjTJ zjOM|zM}I&-0(s#M!m1EI^U)>t(mAIN-^h|I`p1lVu{!#ysrUH85pUHBr17SI;3C4q z{?Zc9Lawo+?akHFPt*-x8H8ot1Vp~2IqX3Ddb{A=FGh}^ry*tR8zqEJ{kCkh{wnE2 zpB00Y7bRLoI@4cH_QwNzE=~_uW+W=+N@9cGEYpiYwl!{w=&xRmoli$TBOO< zN00%nSdMyc20M$Lyt)q`q~>bIPrMjVy#v{PgP=D^(6_L=nbOzz>+KSTTo1di5>PNk25riME3N&QSaZZ#3 zaM<*NRTukhli0I+fWflH?^nqgl0PZ|YHAvR9NmM#Hwu5bOPMTdfE=xoobS|VXACLC zIj*B6U(iby2*s}370vKJx1sL~?bs|^b?6__#b4;4R^*@YsCi{if*g3c6(pgQNOb#q z+s;4l%^ba?rv@NO0JY7cmL^Zd6 zJIhThbIb?>(3DphGp{ipjHD_Y+lBU1jQbyrUCTNtnuxOAeC3HmS^751t$Ov?-Fx3b$?Kq+7MSA<2szVv}#Y(cP{z<8**cnxw~=iroTk+I&qp;e#pToVuG zqKHvTl)bJ)J?#0mmLD}<53;eoo;h|q>U;_*0!>3K6;BS@qIv`N*@nH>NNi`j*#Jl; zGOzJEhm7y<&)df-_XVn_AGk9vt1HG^9?4;syqzy$_e_=Wx?ca@2Dnhc z&Z7FZL5cer^8ssNuKsn!!(S~cVDSzDCcv0Ij@2haYMrq^gzJ(p!XzAmTw!aGeV=kqt$mbAYs1pKt&}u70>4H+}PNB@NG7uw`U#AcUAz`fXKMf zHBFF#Mn~Q(&aJ1+MH8_5Zl(3=Av-Xc)v7jjaP}xX7BO>iRnKwcMA9`mXI0g;IF?)u zZM%d*+TgPDUBa~HD`1do-I4$GedD6eTSCY`LaMbar(jTH1qGu>3e`Uw0&N6rn8-L3-a08NW{#q}Pl)vhhbrc}{b0udb zFwXp&-RG!{qgf9x8v6n7Zg8^kbzq-t)|@HL0tpM_L*3r`DTch}+PfDnoccD~Ow@dQ zw=`=FJ+J_jfNw-tHtiut^M?V<`gjb|H|q`6OSj$V5bveixt$K9F+km|_X;Yel>{97 z(F{SgC6RDB0%+UNsmN>nig(oFtuJ)9?qNpJ%bpAEj~y>`IUfFXq(doYL8e)^lG|uc zT59FA)i7vpJVPt>;?B}%l_xm9sgV~hGG%x7s%&Ic!@9Df2bxw8b(0kJ)V^on*1LWIcdN!7!7QY? z=?l|yV?e6y4>eenJCw^4hts%z%~h~WRX8=)=PMJK`5MP6EO%9gx3J7^Y3OKao9TH&y_>s`{SqIdV41yZ(XAf=(C=^Y&=?9waBAIPshdcJbj%P4a&E0Rs*ji`rG46 z1p6?`QDAbOT$#HK-C`aeJS{U2GthX{kJR09Q>ik$zr9o|(1X3=Vra3L1fW;hDuM54 zR|yWt6i?CkRalBXDXsb34g(lG=gG7gkYpelllz7HX0tC()r82fE1M*79E%)jJ|n|Q z276iBft$Ry=oRzrFpfQh5x8nT3PI1$a68c!uwV5)05G+y;2nDqIypD)Fx@e` zcKi8!kpe#7sRcTrY+f?y7i(ZY8Wn4FTlOA-Q4~z$rmOAKCi{2I^&9HY^t7<5wCip^#P$mko|SK9W$<&2)PYb z(R|Shz40tS#KEg|;vTzXo9PPgCrjVY{~o0qo9E6<5=fhg6Sh2i-)u{UIl@dg&U%Pk2wc?yO-a_tvy0(E2kTU zQ#^%F_alT(Crc!MyCn?wI{+Sk2hX~l=uhl~a0Zb>V^%)iowl`-aAX3CV#N}x+Q#Hs z=!Y5_g3N!Q)xMC`Me8NYLmfU>|rmB^8&m)k(h9&|srgq<4_) zbpg0lcXcH~i<;>Z-i4{}VFr>Sz4e$$)z#F}i10-`y4CFxE6Gc2o~&jx*C+2iw8q1{ zE!rQ1bt7Bh4oaqzmyW&r#eh!4?}a2CZDH<6y&-w{7mfST^-gmnQf7eaxQk zRy_|qXdy9acDyF@-t`7Pw)w|in?P(UZ{QNV)w$O#13#!-bdWctpRy5J`Hb9q6^~_I z2S&?x%LSMCWuy$a`E8S$fi^Iqmv*O3u6G@AOs=l&!>uDfk}b)sH)Nl$@_rG7nLig_MxL$`V&gQ9EXe?FA7lYfdG}B!X43sovznqK~qfW7UDn0)!+KgeaEGQJJ&O<~~u#68+U% zeoN7X7g!tTs{}LN0PN`(TFgt@ww`@Hycc7(76Ic}+%vA}jATSI*N#5mf-KK~>e5fP z(na$?mE?emtU#P+VOPV;Tp!tuDUV89aecLPtl=6adio9iWwG-R`cEYZ*I@2<--uX< zLIy~@+heWOiB2n5O=_UQvBFBaU!~uZ+gV+RXSbV*#9@R_=T9E>uUt$ZNYVwd%88T{ z)SDv-yx=Rmj)E;j1Egp==Wj%Gpul;*ZNh zdLdQ>42m^b9MjYE&z}}*6D~6i+b7!B@6ZdHq{4-279~B+PDDX+`NX(fZO=NrZJzcGWKOR+*P-~ zPQ5Rn>oSgpG*xXwi;i{t@4n2+-LH7Hy|sz(O+NRA**FsF8}E#}Jl=1k%%zPP6pP3D zcbSnxC@!F#n|t0gw+lC7px{FOukQRafk3@^8!@T?@zwabP|%!Xf<|S7GnNFFmRiry z%0Rl%DTOGheW10;$DuQt)^qho98uixxAiTaALB_q)x?v53i=><8P{zWzSQwp0U!DM zX_mYdAo;>QcUBiS$;!{69jB4t%9h#7KQl(V44vcm;B%KQlMFIgn*o^BW&LO8k_Nnw z(39s3v;Q=c59&ACTCQG^aLJ^0AbAl}9>?Dpn1DTn-*=O%f&~xJ+XQFJTJiP9?!sct z)06||NoC)%BY<@<}Lnc$6^C~iC+AvljyR=!k_M| zB=Yhd+@!DoL{=F(Y*2GT{X^|yJ7VHVySc42b1%@2Un2XLUDiCv?;Ud;Q zKQ!!4nNKg@k65Kabn71%{NGv$rX*~95MH0cMM$vO5C#L{jqH7#<&5}STV2^a5_ov+ zcJ=+LZx}0Fa~93N-{h4GTPgni#>m#)9GYTKjn_JH)DXAxo{ z7e^sDB}ByG%>G^McAvZLI+pn3&S}bIp&c2W-EO;F03t!x4!@lc?;)@_iajHL8hSF4yrb4hd;35w+GDsj$+C z)IpsYpFhWCTqPRNaHpbC!^s)8cOvx+5Rc?qfAX&%b{Aat*^9Qd-xAMGmEr&DzV6WN zRHtNIyEqR+|Fe}vcE0fMuX?BpIT~}7*|Mt05cFLc-xn?6xVTimi;Yvv%6n2hfk zvIdV3AEAduljrt)_ria6UPwjEZ}|QSOHLaZUy06moB0_a?-$|zV-N+k!G5+@8FZM9 zFI|^I&GCXPiinR$pUykAUeSHOaWf@!Z~(bcSCf1*7HJV!BOT4PJ7>}8;VoYn9?z?j zoJH(D2Tr=-_IL4!j{SV{Gf-!Re*7@tX@BQlDDRz7Z<060MwE3olwVvQRqM6G^K#^c zHv~iEswS~xbAopcWTC3udZ!21IDm(6O$5hk>*Q{OqWVv4F9qMd-+EiqPQi$0B;<(# zzL2c{?3p%(rChaH=@{a@I@SHb4&B!8uH}vPu+4R#U3Zjo>H4q1C@fOyPAoTil#Y0I z!KrZQ@@_A%E5YI+=h?vfmY9M+>lx&`kNlqVbg*+hw}XWwc4^x*~vq|s|u+~Jn#+}}sRiLB4D(#eGcu$lj$JIt%d zm^799=Aa=g0~-0)DP4vx_*QkM(slKVWtcn@=l2Q5_Uuewq;MIZXF9JraRiZD1l(M? z|JiMV&bq}QPY#*8GMk`nX_egq85icJ)}*$-9@;reQaItqK!rkga8FXiuLw`mXB|$D zW`CIZyJ9=4x37?ZnkpjO6nfGAjo0bJ)OTrk8y`wss4) z=K+0oX?LXqgXvKiS745F1a{ym60;{g@pv-p`xN>P*R6?#gOFL!y(@lrfWrhE-mFdR zz`d2QpjS~UNEgJO^WW?zHz*izNMd}|${S-u zuhm2b98WAgEg$d#{gakQk2^bpMa_L{#Pag`R(r<@U9jxQz-Bh1$dq+apo-mo7&w@s)Tdq<+( z6&SGh_W9|8(c4jciR29tbQt~%x+YB?{qu!b{WM9ut0KIgwN9ys5PFj=BZqpDgT}Ip zm_vKr=U7=j$Yk>K@%>K`zAJBAM*k`&9jz}BTl5RyG z)09`}xnp1(GgIR|Z4?fhh@R&dNjnmm8+AFqKXMqn>YwvAI~1afH?$M;aa$4WFxNzR z+2l_3n&VS;tF({8LCK;l{kgPs9biRiDF3vQanR&vXLo$(yQMjduGy2$!4tj$q1E}J z_g^ns60=EenTNQnW&l@yQg_ho==ldH~PSNt5r_;pOukDuX(v;N561h0Nd zFTahOdaHR@%3Su772*(Iylde`w8Pv?-_2FJrwhw&oodkVtr~cJiCy%SY}d6ubP+Up zjyUeO`5ULLdvaQ=%*yHPDA<(5?adOuFPr7jn*w)gs+#nt2~GKJ={z&c=wbBEVQE0v z(nN%A{(1Dbb6%vox4BppvCh+X|8l-WGEvP(7DSmUp}+ic!VtZa75R=M(*s$LHbkMf zsW34*^_u4avl|zH4)5zL90l0S9e$O~<$%SsIlrLnJIr>Qq<>C!#XL9#}r|j0$FXu}Q5mzakhPK+^XNJ3E7*_43*-YKa<*>a%)i z!Ljpc zpWpnItOQUm>?@|rIQsHogRdzA%j+3f_lA80>Q49~M_zvHF*uX`^eT)sg$SIS&6IWC`^`CKJ|a_6V6~(N$1g703g^Mv?h1F2Rp8m+H*?87Hsz_tc<%|8IC|{Q)+s7dVXKG}UIoiubGLf* zI}Z!cMIVbKpUJz~J@O~qO18Xj8JXz{uO%^ZsV#u~RdjED?xI|KCvv0h**<*~QZXl5 z4U!ck1wHEWRN%1|8h-gS{9ZJ~(vnEV9js|4{4J?^Bz42U)*e=*mjj?IS(PmN)6U-d zvky%R=iJjdz}@LU?>>WEYn;5|dgyGRBvDBE!jB35t@5EsHC93*<6jZ2wuJ_bnZ_c$6#GyJtYuH{bS^w2M}7 zW0OZdS8?1q*6yKuqtP*HS4#Iw$5TNo!DwgpR(JiwOg(oOy_YPXn_1}CT*uhavfaEE zUo_8zPbax8*k1Z#?5DEF7<My6|Xo0Rwxp z0EcCZo48D+LNWf!eL046W7YtGGPEvpeRQRdq<}eQI232WgM&+j9_M2$M%LtprJyLY zk@Q&J2lh-jkb8OPIjYiCfGRTTo-m8Y}{pWjbL_a{lCdp_aPmyuZyIn@L zp3{t3O9Q=xBagAvMh+PLLF!Ig!R9i3D@#cmp2!9c_y$_W5@wY4(V}*E&uXW9dqSrE zT&vw?dPAzwNtxyrOrB2$NX+^R{!Y~E@Dp$mY_^ra(VSinm+W`}6 z;Rv1lg$zQZADeME;QZCiOrq5u8Hl0*QK$;|SgBYKQya9u#HmCT_ z4VPLrA92GJ=bw|FuML!)(QE6a8wORv~lEQc!$DWm0uR&Z}Yr~oIBSU_Og6DhO9W;CZ1G!@?=Z5 zddwhzZDQ@K&W8C&gS0z8W=Wfxu!S_&-v`TQoqM}ZvGt7NQNfHLJkg@_#V2&!yczw! zQ2j+_9PuA@94?VX$pF#_0!i@<=!4qQqgz6K<8Y_g**Wo|= zH`qFIMR(9f0A$4Ce4Ky6sJE`u-_tB~m5aQ1n11D+sp+1_I4HkhTu>dS?3^bX(w<74 zvv(#_7WAUvuAD@{=MW@lBrnS&p{e2d?i~$DL4wLhAG*R5j%p|_hs^vFNDd=JYFzZG zXc>8`@)|w??W0PitKvXkV$Mw;-21ngB`BGF1h0SgWw?%wxdt}D_3lz_w}6sj9T|(8u2Bg4j43>H^Fc9_c|RX zAc-mf)yh6X3A<4g-OJ+pgV?O*IYBe!&-2qyBLW7P0ec=^8PI`Gr?tD2<#`vTimZMO zWDFoD!h6GT<8RANH^P2Xg|X0Ri8DS~ji%8&B|@v0TRxpFKlXJi!OzIWBk8+WBm40` z<|!i}jog;x|Dt8&`uuT18P(Q&=yw2zSUm_(y+O5oqCrd>aa$duWGq7{r6r#Hi0q*U z#kaRyhn>AX?$-IP)0_R={}3ZiwPy?pWOzx4=h>z*`>QEzzdtD$FJ{R|mVj#k1nnP6 zhbV>`R)I_tub$zHsm8uUlqIlH+gVp%Y@2i5E^{!$@X))e1y;7{|Bx~cuc@SC%MR0B ziRELd*(My@Y=qp1BnWCNt-d|;S&;-W{=>0oMp)n;VDiOL6T4rJP@vk;^;di6@l4yu zzI7T)e)9vv`zwd{Gaf7j2OhmKF8!^xqs|Iyf`7l2+Vb&#@fKvOd(wxxf&6cS@#HJi zeOR>7uc(u!5Acq+jD-1Z-m3n7w3 zIu;#YF`2@KOJ?pM>7O~ofAN1vocV7?O{g?O-_uylg0MbED2WjBO z=NkX_8_K*6wH?RB_zx-Q`w@vW-9Phk8vGpVKSZMcnJx4`(un?VRj4pTHQJE4wa?-! zaFC7XeVf2rob|$%`j?5urFwHV@~ZE+skU(Tl%*e8A}=DC7~n;ZrU65v&ATyntJjM! zInIifQ8_tLRLMZ|t?XBC@wN5kJSB2Uiq+f zJ?i2;g&B<4RN~e&<%=BZ>;5z4x8>)0zF32M|(0&&c2B2#2pY#9z z!g~aejd6nPD~-+973#zy(_yuJ=$zGTHmCE*p$g&j_RNxt(=W#? zMl_5g;9~7$h*o~dqJqr;%UsNYz1AxeH|jh#NA4EWN*M^)bufl6k#G;Zx}!5oNzn z`0~CuPB;FH4Mryr3gpONJHe%2dud(Zx>IYr?7|Cfr;OWt-fzCz{9tQ*sI_l2L*S{P zBYos)6JM0~6ZR@+1>LhNVGE$nlti=Gdadie^yP3Y{ybffZR87nq;fSh_`=A1pFQZR zKbNGF{lTad3NYLAEl}TC+7=Z?8;s$X?s7!}ttEtKhJvWGHYl+C3}6*WrLxk0-FqfzFW&&5wI~iUnR$E%PD@q?}X78&(Y!O;vZgi+CS<9oAGIS8A*ly7~(^s z-$5O>1|HfM_||!9xqofJyF@H+Jrd2B3)y=|TOeQ+Gm_I$Y({jaB^v^;tO@@wDl9`NQuqlCLMZ?<&yoFKnF7SpX~NFKGTk$y&PHC6H+TT78q42*C5>$!o|dQz%(3eu`8PTL~v2lt`hx zEANZ2F~sd|fVgVjVhBydKPnahkC8bw6wnXw06A1l;UO+2mWQKw4MMS`sS3)slR zd&F*=N;bMyM4Z%?BNSKxQ>5^<94V1UEAXm935(B*UjOQ53c$+XLVWlM$j_`JUz zZSc+OE|Lf?-C!I#zP{TRQm&r@pl)Ln9NgH`k!Zaf5FlK;T*4z)m{_X@qoX)-;h^id zja~mzw94vgvO~AxY>?NWZe9AS@MrWExAF} zc1fA@BL<4I8QQ1<1{oAGzBgzW2Yobr3ymkNMvQoPeQcK>c9C&}`4u$g0mreD zdd-`az?D5jFpFIr4kVRGYY63Z+Yjd*ksB9eD!2-{Xb8b#UU-+?P7+dfz*10ihDd9F zb+1h~qJ^^Fc=MfPay3(@@bdw?Zu3#&-cTvz^<2AL|r z6tRuMa05M#j!nl($yZJ#Axow=Vtlh;Xbdk*!$ zDO*k@%SWB7xZi6f-#_q71|Ay9@Kh#2(-9#;*4B%g%W7NNh(qo*|0rL-?2NQwHJ4)F zc8m@M@;%RUN}(#~b#v_yZd_nMXt2yZ&^eOdjAtGixk;ai(h7O0WCHnQL=z_Hx9mV9>W)1d~4$Ur{g(`*mgu#t*%p z;3(p%dt5OW(X&JDQ$XrIoxHfxOwH@erS#$wR4Yv@+FVNtrMu1M>%VO1;FR&lD!B@GIxP={eD=M%|4$ z92-GFte&&8IXj8(^_Y*CUz@3N7<->H*4iwK>2TwrDjff4Trt!ug za#`Q_fSbd|FIR>^51%P@)-&4*pgZ)H^ZLNv&baBI1yQztVU^cRez!L1M4>M{!te&% zM&Z+WZ@kAf;@si3|8(xm?+0|v`Fnn8QCFqYsPy3_qE+wW0Hw{nFS2$t?Z0g0U%n{f z&L9rHQtJCZ>JR-C9HlWI=l|p`ocL>gYd#&vAzZRHagKAy)~wP zbnh-t6!))hNfJKop?_zcSWYs7bFwa!H_9HQxmqOjR%-xe8tYAuZ;<7&$L!tP4Q!+# zY%mjXBECeIuzr)40f?)!*b8M$xq}QpS4}64#Gd{;+w~LN2E^J$e#fpG4QYAGh!ZQq zxE%GvdvK#yWE0U#IkCf|<0{0&dC4+K>&_1$ZR;N&!Y^)IGPg81w0FzIs}&pAOj@ep z(Y-fS&_KoSzvLCf!;}pW1?Q`Jl^JbRgJk^D;WPcLFW3C~3-tSBNxa{Q+F$YpX%gl^s-^Yu+kXMXx7JO@$o*y#UkVHo13MU)bACDovUYy zCa={X&081DEm(uzwS<0eDuUDja>5<(jrO>!+)6>;+#W6pml@ea(8DWA!Z>>=E%bqt zum%KzPxza^_6AwJjBY3U%~dWxShSW}4LWjbRMS00yWa2X5zvKKY=|K(-0^7h!(}54 z&uzaPA`!+yu45s!DfHfgu(0ftwsd$KR*gqt+napm4EMGlI<{W*l-0@NBR z9VqQ$TlC-p|Fw?>o;JbHq!;(xDCFWAGs@E=;qC@5XoY65QOUaD(fY4HFd=3207 zp|th(zRkPsCnRqZTT0=vPWOG6t6SY~-5H(8P8`{yRhlo?7K22#tB)-l)W3l`x6GOI zA3KA@)h`;QXLls}I%{2Kf!p5l0h@0)e=XGtUx1(fD_D=4tePI&uwqkmu{yF@`l}!r zgC(9x?C7@L8@Q#TQT-HzG(|Y_Tfb+&>CS?yjJnI)eipYZEvx)1E@(MY^Y?M^sChqN zy127tR!Aso&S2Veh5vxkxWBJQl z2W3OB_|3lCd`_lId9r9zSy%5@CZF0N>uM|g&xX0AFpJxa!wMg(J0%|j4%e|ltHJ8i z9cGQ+O?H*N6$r(XZ+pG4^MwHIeB_7gEHM(BES7=3E$+>h5vKJEeD1*eQ?26^DP&A}xpS{{ujn&-IWv5-7U!9!W|iK1?RjCaNDR9-^%ny` zlUK!G&)$-b(|P)LmX+%#I*H}TkB^sBV$V~pavkK%O=!wr*gUKkgOUSzDeFX?tJ+tr z0niM3{+TA5IMN7V*twvNSGl10_y$q!jN8cG6TsM+yhPmQK4VG| z>2v#F@1CIB$#Kq4G;?j~H*%0y*~t;4kw)z}XX*bUO|T`7BCQc-Vcc}@5}8qPI@84U zD?slwMZp$Y4gr@-X=g|_I_peV7t>GQWaxv2oQ4dnN(T>17O(D^Dgx6E5~?F@MxY8M z)N~0BI`E)v=IIbR9J$T!q^og&1VADE}9U^)^>Up{4mT{y{l3g+#%7+A0z)XTWC0; z6(~OAzs#>>Bkec8YX5xYX`jeECoJ0Ozj{`xD*kHcpp}_k%DExCa;p-d%tjT4!tb3@ zkO&QpnmWM+_^-f;P`?S+vVZm}IL^7Me|SIT9oq}}Jf+@%PTT}BTU89xvJYeC^L}s& zKhh1?+q##C=_11>7W2N24u8#Vt;Fc8%2Bxt}4sH1Fk$be2tkpRDnw zw~W7OfHydeW?}ZRpjEif+z+_FW=1bNmy@T)MO!(n`9O)bK;_=@eC858EH~l(hmpK| z+NB1s@5u@|p$EH+QVaFeYs&%CFM(Phkt+OkNI6C33i{LURO%WEXH+dzP2?QEa*0IE zZl@g|?g!(Esb4Npn?%<=(Mei6b=!2DeBNQA6@I{pq~n(RpyiAztn4!>G#0M8ds*@! zhLd&0b{g|)lE(2t8=O&2`|GN5^^n^|`dlPSYkd2G(Fk2ZQ+oa=_>Zf&xg!16UNvSo zh2OI;CSHC|yBg9XwKCBqBCi|En?W?XY5=ABNhtqKJf9bSC)vBLuuy^P*j)X2Yf9 zO*L64Eyo6N%U}X57;JzBo|{XUq9C~$$k(o}HzLJHxb5VIJV0D7;H(CA)F<_Sy(#Y^d=5Jp3V={ z7v8QxCaciPqu)*Ea$3xqw#%r2x7Mcd^i1F}DS(eoEKJABK&wcfUDincF@l1QM!;+A zZn>udF@goYP^txNaCs6W_z6Jo?9ZjUP@%x{*mSBeT7HT*qDVfOJBL*1QH{st&OMR= zENSPUl3^!$(Wyaj9h$p~;UoYV`9iB+9AwE1BM_c(fU3ZB`V6U5250;Z1U7{(^9zS< zv@kX!(@c1B{npBud!34g;+aiGpt(jBlPayRny@A3J#l8qO&S;b53tnN41=|OC@*3& z$;P!goV4L-H;j5G#3UN?)WSC@GM!UwK!2b2J%+!--#8hDaPAB-txP%oWCp~&D8Fg+ zsH^xag?k6*q0;{;Uz{N6`L1(YmHA!ZherZ0mi5tdn}L!9EBJ0{GGS@%>=>7)i&Rr^MsCB67?uYG&!Q|O-agj2wlUrbJQ8L1i# zM4BSSj*iIX;nzJ$6P`=P%gSq!F{6G3&|`=#OB1yH4}2lpduT&*#q&=u`QXojjrg{F z5}l5>L%b9bvs*pi%O&VM4wtB>Uk>EFnKyi4%$j5+=X@>|P5YJIfcVR~Pp@{Nl<5b} zU6JR0F7HB3!a>_7eY$aW998*-oXlvz_@@(^gqO%bEa>L__f?%a=Ob7crTtDwOA+mc zu*s!&?YmBDmQH_0HN7CscPz`eY?xtYL!Soe2@@!h5i~poelr)eDs##BRRPHh)URdF zSKO5Wb?Mj_a{SK2`x zxrvgHA8_BF_I%W^IThJ1Wuu87wRZy>7wceOuJ&wFfd^G158Xf#$`Xph!>n8RmdU zE2x^zv$)U8URQ=Xb4vX)y>1I-Zr*}7g|om#P8MvMG_MKQSDGcDrTeIkR(+Pm_d-Espp*u6=U$(A_BN%^8y zsAd6>5+;aNBi3z570;`)=q| zOFGuyEd5lfROni=CXgyypZU6VoR**g$=d4Q4mvT<6Ho|ey`J%e=Z1dvfi1oV+@aR) z%|VF8?u{9h!ciU2Uetg#~^8SwAJ1m|c3!-?lDb373BoDom!Kzu(LT4>kCz3wlax3wTM%sGG z0ZfNz5fGaFN}j??@9iW&!ss3`NuoteQ{E+Jk8%wGk772Jc^Bub|~%LldrP#r$C(D4Op5%l8+KtG1k#)c^_M z4t#5ky<(ydE0(O9Tk1}G$1z`DmH*u|Jd>%Fs3*q_v&`}!@$r)lM zz1ck^GHjvacDCqs)0*3?2wl2~2#zgtcAEKwmtaMHssEf1*xjW_i6)WCIBgjB1JI~> zuN~I=XyKl~YlbrvX?jF+Th!YG?&;a4fNMhxK);1C4t3+DBTUb>$%1PZ@2h-RHHgxd z4I(*_u&7^|^X$2^D=YW#nxjsVPR|bKjGd(EqZZ+Z_ZloHYq5d9Bl5H@@^9E)d)b!# zJr_fURB!2x9G~m=BgI^;AIK}S;+WX=St6=5yCS`v0^bDOcX$a$nYCKxM$L1sLk%{g% zC}>0|Uf2gAYrYw{j-dP~;e+rzz{;f?KY8TlB47TcT=%w6K*NJy#vChI1h}C@8u-=4 z7tP!D<)b_IWV5f|h`vLmyDva<&x`aKZ+stiOYDp+*U0bS1a63I*Q33n6Is}7)97G> zMUrU{K^O*GIU;&D$=CxeE@-%eH zjn-5Csve|iOA%)Izo>ibs3_ZTZ`4LbQRzmyqy?l!>5%SHU__*(8x*9wySoNy7)n%X zK#&}|duSL2hWc)N-+lJp=dAOs{rz{&{Nr-Lti|&@_kCTzy6)!`lVgpIqJTTs*fRU` zmxh@%zJayO`)EpWzGH5CXN5*^)>su9oHwGklyZBG(XB%-%`@Q#Vr)xd{TCqlWJ!pjJv~+)b7RcvCzRiMC!`98ZNqjzP*~Bb-(xy|w!B%f<(%pIth+dRh{r zg9t5~=f4u?#qXx5kkO||S>{}n9Tze>;Zymqm(di5cL!@pPFl`uk5%xwad1=hSmc+? z{*-;mmH{^+TF8DDWP>|VvGK)w+Hm9eTenG)AhF2so+HGGwsBD&zNWL0oM~ao7HoGr zJD#QUeG!rk$=kam#niZ8EBJ=I;Znr8vs{%{y}prhu|;vk*5gezB{`27gB#Nv~ViXternIjO3D5;r5J?>2CdOz|!X~t>)bdpwOU55$VDu6OS z`AkS4yvb@*9%FoZ>PpzdN8|QUf>Z);z31>3oDC4XW|ld0$*X2*d6Qvk4V8N$C5@|z zJ@d~#a6&`{6JTKwx1^&)++?hCLWd)Ll_ptK zT85~5~fx0%k2??>%|< z*n!zCHU?FQM((j%>)m)%ahUcC-!qGqR(1qsEgwywIlI%(^M}2Mt9PwTG$hq%5l!P+ zLNZoQlYBklLCt`T@#`fVijuy`cp&5^d1AK_N0+{Ie_*vE_$$*_e&ZM=COYnMcBB`P zAf^}LrI9_-)aR?EGT)PzXgE(y*tN%!;aMlh*ICvH=OC9l-Y*GTN3P~bC!K1GD2MCR zc$jIBj3qoENWN9Pkx>`j)_P&OInGUW&e9ybi0sIACKE7XG&$JQQn5HzwLE=C%<{{D zEBz0A_w$i9TG3m*+lvrshSutokbjU$w(5nyiKm$TN#oOJcVkv+ zrMK6-e%q?Y|6;wjsg07MpxScdm8irs;d-0Z;GQnpvT`Vqv^zrlL1!oMWGp3{hBQ7j z_b`U+rJZ8rdyWng1ZT;m)ff64GLkQn?$+M@)3Ov_gX4aDI+L*G?>=arG@IF97Y<== zG3;@fVq^!1dP0qFzVUk7_l|d%G0Q1H4=;!UTjcrQxhbB;f1SBBJf;4Yk4Z~G42^B4 zYr8GpRKU1iCv}PP`T=@}_PJMj``_LXq!7H97?^%*I<1Put-LYJ)UWaF4FA^S$0@cr z|E4|mlRD!+NZ|J@g)i5m64_6Zk3uD<(UT_gDj7U^|E54xo*BzO|BrMC&7(2g|BRpf zPfvRJ|HwCdC4SbWD0GAZZzxVP0(T0D*a~NSXv;3`l#LL6z26iW(>w2({Fq_{w!wkNU!T6 z=A0=*C7xBk{xRlo-3pzCDKM?PAo$ zh*ntMm&mQjJ@ZZ_6+WiBR2tAw?~4;Go_r-~cr0^TJi$KZ$8Bs**L}KN#RMF1AwI3G zt$W4IJqa8p8^g@U+mkj?j7pRWDWW%v)C%|v^XdWY^a8~+339Us^Cr9-ac#j+OpSd6_$KF zd)w(wa|Dr*+YS^)U-#hMW4#s6l$8(@JX>F362+y)&~)yEqhaeAN_sXhBt|yxjs&di$lU1o-Emz3gs&#g|cY)aJh6nMxJ&let+^aAV)dt zRo7;Mj+UUeKAKju+|bWyYcj`bvQ{SbMUdgBilsqSVqfmABQhY~?>mm7zmzT|c z#ihyY1~5}$o+|wShxMuPZNXnr`XPnEWkoI(*$f(O&sW@(pg}F0LyUvyC}eJ>I7A^& zE`GOO^FE>KvF2%r=MDc?_(D*k4N=($#PEB|X#Oj%Cr1 zn?-#?b&%OSMW)y+40o$_kk54u! zJ>~jorPsVLIGGEflPwXn>(rMDiwo2@I+oKg+(VX=4HVj%B$SO=Pd5bx;dSKL#xOAH z=LT}|+f~}k^qufoPq$F4^RagXC&YE#YI zZs0bD3A|S=T!F`7Gb*JGH{AG&KX&sDjzrb_-;u(S_eJ_C)++_f_f6HI`t3#E^Xj$g zKRubIGk^`tNq$|EowJpR=gxnq|DD{y zx-E+gI>$O%Omm)TlV?sVm;5!|=v?7-9ziVTMLtn|B4JQ>Oj7P59eo(Ed3S&Sr16iO zwx;}yyiQ2ACTgVbKjOc~X4*(kG>D$%kVcM{MX_kGEE4Rr4?F6Vr;9jd+sN9n`*K-M z!!*2!2rDncsf6-x-Uz^mcgT^*AD^EhwGf>e?ga;aP3Icd}&Wf4HEh zox`-6Vj|(3G}*_!1y7TwnkiUm`(s%P*pu%gUG20M!L`Yx3*Sz6??Y|mVz1JsU~>VG z;s%qISCLhptynZmJRH%|uK$z;)rOI^DZ+^59y6{^3MgNkqa&G37!=Zl+nEQdY2}eY zAw(P-Ux#W9q?bu0r4nLLgf5J&6XCMN{9Zm#3Cv)$My-xiE;b9^*Cy8kQhQpN?Ct9} z@2s&ak5`%TufQ0B8Y~dSMRi3oQ9s6xdpHtB%)$-0ZEf0rIqD4N$_|vBt_oWDD|ntB z4Y3*M)_n{jU~NH^DSX|$Y2M6GHf8GY{Sk}CkI*EZfl5jF((_p`U^}Se97FG>*)B!G zU@9S}V*^bU*t4A$EL5(zaR-NV$uU!&E|)trkg4TBFpwdqpo>Y#ZZ+GzZd;UK3Lvh- zP1kupqFvd^TEPOv?&!Qfjao|2HR7HZeG`ZdPN9z+YE+_{cKjA!Tu3q2I;;I-9AFJD zx5Ez}r_*)Bf4o0i(}Nt-YRtyrlgc+my>cZ*QV+@Ah89=5!i7wcOF?*JO|CIG66TQHEL_+HxsBKAcMMP zAWzPulAW9W5mDsZaIlhN7sqnEl45hnl)8XHA?xi>EI5}aA_gzsdnhFTpPnAHknt~> zbCL7o#RxZ@Y%>+h*mv13dkby=4E-K0`_*!Su`q!8`6cx$+6e!K5I<4T2TAc5hHi_| z(ov!`KWqXgSPl(QVR^1sdur@xz23UaeLYzQS#X>BDZ9;ST^}?$tQYG^RNKt+sP>*o9^6Po3D2Dhl(D}$Aj6g_wRHI_GlGmV$nvW z27~3(F;Qa?nkRe;dTJE)>pKO6N#_pr|La;h9HUWES-TKc6(H{Ua z4XpNXI7;fm)Le0i5D?WQtBGooiv~|JfU*V;qUqf!yNz7LA1Ta@sph?H^SS%r!Eo6y zrEs83=9|N3L1Ekq$0v{hHr&Md#jj*rk{vf#M9Cc@4>6P>T zl5BA#Wk}Xf{~U`t>o>mFW!|Oi=f%FTUwN<%W9sV95G%*tsx}`Ywg-v&H61zun~rd@ zfLz(=x1gJiLVchzPYc{?Hts%r*q$_05Z16lH#%8sHR9T6x>RdEl)w0!pH?Z@rsU<9 z8oD()2nk>7BYZ2U|fTVjD|C`_R9ony`tjj(c9DQCFRYe%R9bn<^+0>#3deu zCfGtCiIB=J^U-dthWt<=;C+}?|3=ENV!Or z{>UCohq(F6*kQIN>(;M@l%??76eE32VEcqRe)2GqGVO*NC;O|NDK<@6tFo;A^s}A; zmEz*ZnS)p=#h<} z9I3MHc0>6_jy)CG?ZG7WY3<97Nt^E7Hgr3*NZiVDfCUR%hdi^g+|t`;n%yfb(AKx^ z#J|l;?0S54eVj4zP1mpA-rFcCC$XQF54_r<9`W_9#=^Cd*P)Vw#pVEEV%%O*_UxR6M^X@TyF~U83^!`o znDR$k^`HW)O(WrN7k&k$K^0A-<;;uKITq0(?ws!rKM1=WKh}a8w(Tu;R=mBqk(RNR z^GHl$kwLKx!7#|Zv>1WR{xDz+%S-jM>|c-!+0*rZAo!VXXZ_*&ASeh@=k-(WJ36yw zBgGopl}kcrL>E*5ss^^=T>1e@^!BJ!N048286M||d~wf1F^QYx<}iJ-`Ui*@fK^Ej zyeTi<-B8#NinfY=nnOpDaN>*gP^vFg0A=^;=y!JvBNu=H!pA$;FWh&jF6xfF-7@{} zpvW@cmn9q4Y}2|W|I#F3$ayPA@@e}_KqGx-p#1#ofMcz^PpMmEti;*I!j;|^lpr-} zqesmr?=?k~=!Us_qc*Yck%QVeOghF$*DG^!_ljKDz69&)ZRGG@>8E zYiH&>HO2+=_7v18%gAlu5E%@JgNT%C( zPYz;nj(M0UWX6X>{vwmr#_pj?)q6z`eYA$Z&r6@hhl!KN+5gt>5VMuuPpqEz9Hf zwA&9oRokr`mU`peNa|5CZ|MlikuPjL7m?P6(ej0|Lkz{nI$flnqdmDDH`Gf{=dl!$ zg>UOry$`EFa*r3Nj?Xr`*Wp;h?YLcDB1f$bKR*s%TJft^)vNySR-9Q; zW@GUguE>^g$%7b83(#kNROa=3TIw>w)bMNQC>Jcp`yqTuYOE0gUyHxB7o>jVk3$iBxITEQ-c3gn z%(2p!mLq+-i70QKoDl==KF`=nI%o>%I-okYcjGZ0c4bLO+zWHqioKQ`D%=YO097_k z{+?89oaWFFZd3N>tHY^6DqRre+UG!~tOn21TFNl3JETu(vd22NQ$feQr~YcA@2d4m z#Qv$E|9?4B`M=FV^#(~v>~(}85n<92OJVm;qfN4t!}*sRUQ0-rvN|R|@1Uj0PW%bv zxc~T2at2|U6A?0oP5JPkkAgG92Mq^wUGyDM zInrEaN0ye8wFH;v=!}!pGUe-_WrzpkGl$Y|bLV2Bo+dA9BTkWSjtoTmEI23@5#I+TrRtB7n3Z)k+lSRJN760kY|Zv zRAT4*RfaY|eNZmbqa{+iUR4a9Bwv{TwbMy(| z{!*uap*Mk^k}aRm_X4O~UfXi*!Bj8GPA{6>wJYrCjSJ;qQ6IWvCfJi0xwvORjn3Oo zGv89@YOQ`)Yf-K?pO(^U(HC&sz!yaxlCT@r&*87>)>%`8pP`6?@!5P?h{o3k+H%l$4jWy!j}3FSvQkC1bMAIt#Qv z7xn@BLX{jC^f{%l%Ux_j_Lu9bdAld8Mo$|OzEp!kVcc;@lE~{G-}5q|>=eCYvi2uS zyY)i)xn`V={B3pk@Xr98`BtpU_0?LyK>e9x7}u9A5YRA*Al&s61k|wo^Ou{S3_Vvs z!P~Gq?n`SNJ3Za`FkYEAxf8plv%AxJx$$(MH;KpL^M@bD_pE(CXpJ;H*Gp?<)q?&4 z3n;9@q*LJbKoeWQ)IZNb4xTn{zp`dks8dCFpNPE_-pbi*>2$fdhNvr_}zp?JJ<4_pHRsLjW_{X#Cb-zbe(zbn@-P9t}!3rsXl< zFq=(@>Pi^|foD^$xZ6bst{bt;T?rgifF*nZL(e$?I5O!J1Y`*dQu8|1o97K05d5=aP)MGMtSEg8)Uum+Y+@f1;sJ$wPSi=KYOjdYQ-C*co&fX+|Fy-Rm-SMv$%BDyM)_xz{)*fdKMFA(ul zzdZ~Ly3z#fM-yL5C`|x;a~ECF8pUJwhVIR#VErOIo=xx5#<1*jtBKykMIC>H;SgIh z&{^L1+A8V>oF5J;!Lqehrnx)xcO=oCxi@rjWmJUGsprcHt*v5)vT3??YrFo{A5!?X z$cBsbh;HAw5!wKi?TI@%SjpBv^1)IM{i{L43!qYNbfU=BAaD$6y})2!39~7D8BfC| z3~9Jyt_`3p5Cc#H_h;JQ9@ERma~j$*w3P`tZ)X~{dL09-7|CxV3X}vFJsel}7L1)$ zjaffsQ#`dV#v`w^Os!pS{M?afV7d{#rfC9|K#{VuT;WPfW6+M$No8>v`6z*U9nTGs z%he>PGx4TUBj^q2nCgmuR)c-tnrg%RZqFavHb6+-xR; z2MKIO{RKRhc4(ML__Rni<5Sn$huB~UM#A4RuPE#MhbrR#1 z;(|N6rYAPJAq)Nwkt)9fM&H@)i4J16Q`UzL_jRfuyg;1k2`A;1b6)IC=G}+nO~!3H zn~$t+eP&fPKbO?dHF8I3OmD&CJ#4hf4btmNydL+EPP;Siuk0${1Xgc+yKZU z_HB1s4`s6(jrm~i+Mkx2cwM;dJl)asY6O}2$48Sp%GDpZ9*}SoXLw1t=BkJ~B4BPc}%pq}pFRAxLt-Pr!M_^Q z)f+l+@rykAQhC)3guTKzqZ(ierdLNq<8_?XqX08)$6C33s?YTDW!>ZMmdNHI-L>A#j#M7-PciQ zilAGG*CZd@w;o(#hWP~+EG+~)q8iPC!13|bJ75v;SXV7ADM)l@45L!VQRLQGqcg|* z-qfr{Z=HCcwfRhJ`vRj1>cwvG%Tjh6=6UL*(ZHU~vXvCt@Fdsx8Nt%8etIX2CHKS{ zcDLHxMe}K-%KadwBNvu{ujQ*H90<+9!P=Ql)HgR2DY!4#_A7n9OBJymR=D5f(`o!F za(QfK7>objl6P0PF@T4IZdOKAv$C?PbHkbKVeus1sV#jkgEf5@?=Eu7r2!cT}8D;r+vG;5fS&?{DP&!2A7u*!)ona{!>VN%GgAW^Y+Wtajp*1->Gk$QDkUDcpX zK59X72_7f!tYMcr<8^A)+;pZ__*T5>cp(Hl?7{QZPLvppQOlW3LZ9fE6MEZ#T=1B2 zf2rFywn&x4K8FFea{$@`wW;*oWL}H#=S6B{_98L*uc1dO0K7zLS_LTVkIl}`PM~^h z@84w#RA*MBG4T(@G(0nt*BzLC^r%x$z>e5{Q?|X{Qdwtnrbcbmu8My8C3<_ZK(Au2 z1^H3&KEilW81S~m9slIZ}l!g(R1sEIe; zz?7@jj2V#2V^wQ*qgn)jw!^5C(wv&6OvbQ(-z~Rcimu27;KIW#1Q8%X1C!4#afn}B zbF@H+4`fS*(g!iYJeUJaBfr2Lk!uo{gfr>oE&6)XKrdKjJ=KX@-cOF*8eH~5)>^?v zzCm8%YC(w0=L6Tw+pd}}F_8wnzP~AzunVW4!`j^Qhw4QBT2Otic!q4ob%;jN#-R=) zaIy*U7(M+m_$8C{&)sh4O{073_r zi9j^BIE&X6ZQ$x055ntoyw)9!{j7F|adS!_Rf7NyaJ4qVLP#<3g?QbE5Q};A&f?U` zL02L(Eg)*QO`tsTs(=%dnQUE-ZdlD6BBdO*hwmvS^MyHlze%$n#<3jf5Rss7R(sGS zV&vISD+ff)mM5I=r?k%}hHY9#A((2Ld{=T}f5az=!)h7R=*b8mpML+plkBj|)o{Az zM-LuIwE5f)6WH^uP6V!y@L;}TKz^~YETHf*7Q7^T^}u$pwvQGGQ7w=)0VhEP3s?d; z3e@#dfcWMCuyR{crpf*)1?!Z*#%46r^dJ-HoY(*IX{ON{n_1DBnpb#(o=mpUbnJ~E zaDi}rd3MUdZqQVS^?xY`_%`2!7^7@(Rh_}OOm_V*ASU3G{m(KrD_4iK$Yn}>O)Nkf zgp&N#1@JBYXW#v=r2l{ON~WvSit+TCO3pV61p6Y%)v-G&KYoHm^zY~I8>3Ww_SObo zpZ$~b2=;J2c-pBq4mPxFZ@LH>dV7X99@tzzOu6TQ&2U`(8VeZOSP#jDrGs$45c4_Q z1!lI%GYA9Q$Wp3PD$Hr!#~r;*B0nC3l1J9Y13?QchYo!-ko$6aLc2!IksBi=#C(>8 zGb@1LXWQoZ-yLr;Xe}24Y6DfiQiea5i4>Xrrij-Wv0k0^2r}9c4r2_ZiU4$(4mxi_bo`ApDBZt+|9!|^S$g)Hf7WBGvNYCJH5}d&1+h>s_rEMN zDCwE%>N49JsbU1e|J?E3VuwDBopc|bfYGz%loDC^E29KQN%#w9q{q3?6CE992(-k} zjRgykk&XQwOUB7j_y99&P@u6IjU)Big3gRMy?jY+iC`ro-f>bx((DVbb1+>bV;fZF$`%-wlWgQsB$b8)&%{NnAk zVhwPtdQUy9laz>T2OKfnkrK)p&rCC+-8)tG$*UgeJ#h&Mi$u; z#cU`iYHT8EttJJx+_6u*CTlE8T04_?%-TS2aq$b(KLLp+RM>5;>l>|?7i4&h3g3wx z)9~=sM++bZQJJS^6hbrxu$TE^I$7I`r4< zUcnds+SDc-&o)bO`UIlwY`2nYUU(co&i6Wh$o;;TxU4cdkZDvFKnSKR5bzuVDILZ3 z5CYz!5JeOAfvR`MPBF|V;ze0uAiz+lojPqPoS&k2MLdqbKmWKSGt`$R6sEN`-RzDS z&a*db4rMGhHpeU+^eZ;lwOADcc$j|&g-rT5Qu+?&bq=feYLS(dmH%(HgLl7wJSD6`*sTr7jFE6T<_3HN4g{DTjA~4T*K@zMh z(d6joBeBH&)gBA9NS8?x8gz{?ffYMP_)<5<9xSTfM2nrPXbs`-lq43-!pG}&5=%*W zy?g3>_iPg4xK-dCU2p;|;kdX;Q5(3vO`53Z#NoTVN1L@gf)IK@g-t-Ml=}my($_ls zm9Mb5L1(KVCa-#jbzHExIQN%+BWvkn;<~>|M^KR{(J&g^UDl@(_=vyKn-+58_Ki@j zshD^jJjPH28~i>IvvIHE&i=AItVaLSCk+cEJ9WluU57$BsyFGv=Dl%*RCNx>z`UOL z9HYzYG8yb?d%+^>c5dtY5RLcER&`31?|%n_a|9RvW?IYu1A1Kq^e_-cBD3$Eaanw5 z>Up5p*czv4PcIky%f5fyXhpUsX4rgit~Y6@gM7W#QMbP*dfCw=yg{E$z5bgu2@|A* z*6}>hruCGNSuO8JCrXrW1y@D={A4xb7=;M?FkD~JNr;+ZXDu_KD(WVhiH(b(I;rjJ zlF^}I^DuJX;*IrgZQ|m0`{zbo;npVBjaTxpClGk-z+cg%hoiN$agzK58Q8NeQ@b4y zu&A$1JkyKG=js&s&makN=2CDIdaA+RG2!)kGMxdr$h}9GkI>t*T9Yv&iFo2H?&Zbn zv5Jq&KF!l4azl!@;dIxToJ}Y5gphGPS`Nzt3mM)QZDo^n&6u-oI@twkWpi5D=)mnt zKzaOe*0I_z@X$u1HJ+S@xU93HLBm4KdMd^y|HjtOUNnUykMo z0BEVvB`sjQ0en`X;w!ygAR%;^D@$Jp?5KD1KW-;-ncUf)+M7~Uj~|K~?ZWMgdS~4Y?-X&V3RtN1{JU&noTkmIRm${}*F;`7$kk^9p-0iv z(wx4k_hgBcyLqMhRquIcx-*o@>*SWL1hOk-610-TI-one(FnJ7bmMs5faR&649o0 zCrfxBgn%P3+xJD4UViPI+j5OF0}s+u8%DvSi`52%S<7CK_w&2e0f-Sq>{s0y_e$u<6u$IOeQq(@>$b<>tVzae`I)Pj#`W^T6TDh7 z_)%_SKcm&;LV%-KwrRKO+H?tHap`k19`!gu5L;B{d`?h&XOmi_8)>17s;U4Slt zI#Evd{rO9c4bijR*BT@xD{9}RZ^%C+eg54@Iy_V7;62b!+KBc{K@>&)G@$6QD9!KM5FI*SCR^*xuepHYWjT>c}Zgg~>w3E0I30eS* zMmP7(Jk@8Dq9z!JG)A^cG%d|e zw?M1w0fUEfQFLcKq~#eac={%6YLIA)0+1)AU7fT+j^;*RDjch7%8f_y8;K&Xf+C+) zaysAsnQPN-eE-mEx_&@=unGh&pC)0#m{h9^xfow5#K%cUaD@SrLr&R}V{U0dG1^6* zJ-a=G2q}~-fq!`=0W<=$SL-FEv9e1bcfX65O{s>zyIiKcU(ACP$Vx77pXC9VI%kFP<3^&gl!JCqVX zTV9NFf-W4vCXmaU>W~+mf(3#zqXhDkZI3LwThc`=2z6^eK#w4528I)NS{>e6t~`)= z-MY^6enVKMQV|GukJR$L!e(pF{6TnN?d25kruMGd8`hgo2VN3ODMsGs8g-k8`H&=z z9vJN^G&Tt9Xs5GisK6w*G&XY*i%R{KvU241M+^|n7YWeTC3XhZGO^EeaMywZ zDa7rT=HMPJ3-gpm+a%EiMBK`JcH$xRH+*8zV7ELdj(Ht$`6FGVHAib_rrukO92oc` zIloR`-OwBi&eaA%qvl$=Z}ep^uY?2uK0y9KR@oAyYCziNnLiF$ICL6D-H<}~j$8X> zYm2AjoV+e-q!5ehz1f^evV0wHIfAYfY^Wc(z-*|{jDJR%PL?{y(Wi@$;vkJo<6 zjh-{dELFsen#YM222Rv`+)zOUcJY|stNk}Z15Jq9gXk!!=DIuqM(hAWo=Za$F7v%R zrr>*XBYJoD-O|nOKwzcJcMZ@A)+L$r)Fm=q?MytdGY^L&?`P|G0rQu>499Mz7Z{X% z?wdYrv{G`*TtMUMAm5RBL$!Xf_(Cy7l%iduUEx2HEHhD=8FbVAnD?5%HIAT4amYi7 z@rpR%3CE6-Z0l-ux%a1wV5jg~b@V1xIehLhsAIiXE34HD=)^*b`Os9YzU%IsSo3D{ zDLPc352Ql9TLx%(i&C z;kSNY_#!AS@I=IwoAdk8)}#aawI09C%r9UxI^34C%Wt41pzD^5*U+f6TLs5KqQXts zpZ2JiYTM>2T^6S=*#eLk+Pd3E<$d-ASXpZ-i>i5Y5b$fU07x!(K&KlkjLJIWJw`Q3 zG}rrCd`atRT<7CCjG&Et-F8t?qx6FWRbX>PG0eqp7hPP8JGSr_X-^7zo!#;}SteR? z5yDa}3AWAp;b*X|=I!l0t;_i|Gt;mmMPE^Z4#A$)wXhlhsMS#7Vme2UlvLjV*!@|` zSwGwixKuRdK3}dHd38{2=$0xZJ&iDUl}9jjaqc|_qMPEy2}XQim;7@(u6(*%uXR6n zb)|}(?RdlN*n`Tk9+7?p0#%l=-+d;%@Ym^h?L>ol(l81>%RkrT6P~p-9IWoP)>sVe z4dDoyh0}G`Ru@M80;!h6KW*d!b$Qq-F&$ywKtv_&*Tsl-UmJZ}1(-^3YCzh5dzRo{1GOq(lhma5>V)t2LO-kR%uz!KMjAwgcA z5jC5RjXiWSZ#~nLg^pUR2Gw`kPmTQa)P|y0(0jhA2a@+Jj_|`EubghQUz$(=NC&<< z+8lQiy2{q)E2gZ`&470lu((DCc8QRfdt6eT?rDaT%Or8<0Vre>{}5ZKq)}Zy$(Y*J zIN%{g_G-5)2S5FiaI44ieNp6aH@jGNT`uI?gU7VX@ug~`Y!GyUCni%eB%Vp9@~dH= z2FZKdy#+~fK@Vcr{UyiA;=V~xgVtpK3cn9ppXo#{wBr*Cn|`C5FE^O1ec^U^mqFnS z&isz=iHJ_LNr_p%q0Hq+w@_k%S6F{)El(ci$;FKdz$_bI%auUo6WFh8b<7kcpCz%~ z3fvD=&5c`^69W$j47=nE;x zeGiG3kCy4Kd(z4_ulA)C*vB-`igy7*vQBPV89`nEqL}(yKjq!V!K}qxY;nEUM3!$4 z1ZcgX|sG$}ft0*)>+DL09^;S*tlMkh%?A5jNg`dX0wrjvtjUgvK5txk%URv@-=wTPP{g&QjHKPfgJ zO*_vT59R-U;faY&XUxd6TZR`xff{eYTapiKYb}D#!+o)mS7LMl_=F!%u%qqR&9Sg42EUS#PpP&$4Lkry3FP9z)@) zG|u+4Sf@Nkv*|Nge6eW|XUmZa`vtV;KLtuu2HUQSKTZy`Pk&y1TSq8jrsSgO?t#C@ zPin)1S)=k6F5{c*go7iu_7Qh^oodT<)zVX2ioOywo?VMKh-cchoY#77hsSOSId6XN z)!}i}Ii0fa&ytDC{xDKWZ&$okoqF05uh z*NabcpHb(zH+U_NIUi^ZiD*>pw})`Fd=TaqIs#*JqfI1$Ko%e@s54ftv`8NGRTya0 zO4npBTT<{d!;(#bLXyuH-#b?$W+Ml`0IuV5-qyE}RPAzyyE|`<5+JN*cG`RcifPVh zoeJg3AQ|1Qt!HOEx`kVD_nY`Z;rGR%m_W8xm3Ho@r;VUpwl*|Gl)75Tx$M49w|w*L zuesDKVJ!%^F4{34`<8_n3kcms=aJV=V@PNYUZ2HAQKw-@M zSwO)FusyPYzOymbBBR94cC=RqBpAT8N!?0aZknpGU?hERnd$pB{#tS*y3rk+(%Z}H zx|787K2vS=&1j`&Uk{krS{UjVEUxq{smR@d#BeO93;pvjBqVJABKpTO9tVo0x()Y1 zz+rI6d6rGwKa>PzF}QCDqKcykFp9AS-Vab^_VchkQ~#+^i$`~&{Go$@>jIso$7M70 zt>eZN$u!InvD$xmfxfxYmvUuk%?kvKUh9mYk_JeO%j5Wy0rNq-2@0Lx88HA;Bs;5~ zXVfsC3G3rIq>QNm!ca7hgX~iU z!<6UdxPTLeM@CX;7r{gH8|=vBVGIO~=CdBYRmDEf%4irA5(5Ey$(D^_z@We^$ZfG= zc)nkCa?B|0AkAyhon zK=mI0J3XNoIbGN8z3Ilfld}YS44HV0 z7~xk9BL(aoXNibiUpt|5pHeklHYtf3sG8AGFaSda?9hP-R*mAXVPxLzXD8T)N3tg% zdj3Ga=AQ70D&L9jcEf`F_>x6~v;;ol?|JcVQsg2|3R=0j#su2Jk2#v&Zp$&pF|M-= zuf!-tZY(FDgsItL{U4B&-eenWSBpRJyS1cSYnjKYSZTNpJpj{T*{|AzF^)yTTbGNE z&d1Vby=Q&FBhV3p8aChIHtQ>;l2?{yfk=mw4_xOgnvz4%udC8eCvq3}CyKZ`HJ1v3 z`_AvQJyArZg_*mFLi;&No;0Ipq?3n>P-g~0&LB|Ih^bIN&OOxtZ2@KGdLG8FeDX8m z&|(1~{SMl-^O0{Vw9TQG5$Y1N97dEjMevgP>=vx?)~F~#%6C`sIEXKtrV*nz?O16k zu+$axxi$)#~5^WQ6|s%&Nrp20{h3 zCf$Sdn2Jr`+Kg(+iE49{{Yk0o!3wG#C!2A(AjA6yP=*{oGq5ldMl&cD_ax4}JviZ5 zb!hQ8*|j#eceZ8L%JXoPhO^#-2l)GM*i~Ck!@xH686Wgh8>QyI>2|c4*JI-Ph`B$v zw>P$1f4hOkn*$lYuMRJBLv0`l8v$-Fon)LAiXcCc7dxu4+|Qe`?@XxdM%YCJGC{Ah zD@ye8*re;+n(II11P8nUsrys0SPE1m@9aE-6OuD33YW#BC8)&RUZhWag$I8aNM}*=8>ffL{{PZr@KoSoV(L z&Ds655odCebqqb*5uNf8$b4VxV?M;7-C*p;+aIMLD0@xO$7r!L44ga> zqra<|`r-)~2dZ7URZ&`^R?vUNWJDsET4L_URXapx4$o1){`PSM46Y$^LzdSDOq9zF zMd%{3G^GY7-cBA_VJfP-BIgo?8i5iCdOwuv3h`=fKg->xXY2l&kwJA8g{}FB7!X)#GX`aD#6C7#sFOXtv}sQxM{jHzHNx+eF@6X*dLSKzFwl*&9g zA0sFdX1{Ra3a1n)7OSiN5Jl(^6%}vDYcVp|Q?7^h-Ht{9f4~u;YhFgZqmyR`F)=r< zd6K&-`}R{R%cAKxn8cYs-DyQ2BS#rYc#?g6vtNF>rjX99;mjs~nCh816u;T&i}jn} z(>P-AqlBF_{P(RS({K0g;XZEH!aa^VkkWM#xP!`(gGY!oIwL#5k{-GVtv9yzJF41t zVqbj+MiRE}%zdkVOt?N+@YBJuPuKc_*J_ZMda_Q>=B$BcIVNv8F;=gZZOgK!#)2QZ z2v&MW)!mj@#g=$?!hinxw;8%^$XG`K`nMjOu`~pv<@~-yYS#=nn59aHx?i_M8Wr;U z%S|j;Zv}&ZB3)gOgKW$hRdkLiaLwEd4u(y1>Tc1FUe@ORm##{?rg39HvFyrdS z-x|gZj6PTfLAi>V;=yQN1z13Ejs z{W?lhBiE|i0<@l?o`iB`N^GKMFTsEwm)r0MkHdLsO4fsY*fahQf8J93O64&N$1$W3 zbWl!!m~@2JxGT8|YqPPIcVF44Vbv3n=+ZNlWv1JY=`v#T+~d@%>7!ukAM--vWLp?X z!v65>y%-o$@DVVPiWr>kZkML={8~C*xzQP(JF*EZf?_Ip*8~n5(etr|&Gn%U+QI|p zNJ{PRb_YAVM&4N|g0q(PJc7}79Vy#k=$+}hTE2sSs#*JguV!grn0>Sn2GH}MtNc>7 z!Ztpl(D3!_bS%71eaRq9Voe5?>xe0hY4J^aVQZYWsrl+*If=pKo09vdzf;ns3xLE6 zg6lr*A%rEte;8pkUv7zmEPNS@gk#0qHji^*zOF(SfL_|2*bH@a*a~woO_@9 z_#WTy=P;j_(Anw?8!nrQ(q=X;H21w;&tt?;Fn@n%ecRkb-k`~S^o?eTw(?+f3lbcp znqT6#5r|lR#;26HcxPLF1_;ki0*^sc*y<17Hly>7QA)IuT%7t$L-bO{gP#PkQs?Ti zK!Wb_Xk6+ShYlnEKG;|P`|+Nc7jzq9qc6GQ)+?$Swc=W_;)0DMw5fF;jEn2?PjW80 zgUedFGtFl?d&e`x?#;`RlC0JL~B_eqVa_5P%yYSMi?T>G{p1$Yz^Jut) zF+-KD*k!%hlDwEsD9-fw&eXR-%=zx${a<=NK-gnN)KyMXZgSun{e07oFiJ@u_6$R( zq|iz60iAPHrv<#QCrE1SX6ph$ zknP+N&^sb{i=6nGE-2n~mptbqmEJ*WKG=+n{B0149LZHN6-H;DcK#f-h`2rFe|wJZ zbX$(Oo=d?H5DiKUzt`H&1o&PDl3b0%R@D`$=U`iDmX)R{_LhK_@Mh<>+|cj{!E#nO zv%c)JnD-gC@lXZ@2Ou^XG7_}HzY&|nk;z4Ts^Y<4| zBav8zZ~ny#BNZ~t=fyuqMimBR?;dx#L%%1ZGM>QQ{BG6nN%x%F;vo9@p3vFC^8nmq zHmml{GT9Y%&tZBJdUH*yC*PZ$?^eSx!qjt>EZMTy4I19x*ysgJ;Za9V4Gtpv?-=*c z8~2L*vYuK|1V`6HC`x%(B`nx7=aU(KsQ#hWTnG_8`^Uxgw;j^VM@AV+-52dK{ z&~&22^))D{&mAX5pPC)Jzd z5^l7`IRBt`e9Y$Lug1Ow+`C~-4m0IWdE3Y0@CZ4FjifR_fyQMm>0faZb>F`YO841u zb<7F3y__z;-qJ3{>L@q8T-%vGHf*!SkKq4L9JLD%X@GlRt$c*Z>|#ZjupYMRNa`G2 znhttIYn@4a_9N*2aye@I__p{{rK`j&dVOSuvV>HH(XBST0XhWJaQs zh16AmRQ_DYi|$$Nt81^zoSuihcU%b?E#{eFt(+^SzfQnE5S&n=kXMurAaw# zT;U1DlAYIY=sI^dOHorRG?Txgg3Yq(BBbnti#@BS*%cG?`0|TY(WEm^Wn>VS zAh+NmK!g7FWluL-q1RVj+M#qG^zb<@fA~YJYo2f`mQ`7Ht@%1yb2waU$ye+W-?y+i zviZvP;EgpqFVkjrpHsCr!Fv|H;yNRhfrH1_Ct}{{yC86jFnCBee#Vl;jq}f{VEUGg z8(pE)!=qdK_cV%18lW<3A}%YpwkiijM~O{fk&|_fPabg?;eP+F1k1J_e250eRZFVKQE;{DaI;645>~=O+q`*|htu;hRH+ zT8eNs@=xGEwW%=8kmi-iq8&9RSf}u{Gxl}qrEQg4#Dq!gcAWZp)$LX@XV7oZy`>u~ z58L<|)w8hB*;g_IL|6KmpZU)vMZ`Z;;hil74<2j(^I=SR89iPJF;WpA$aS0!1s3bW^r@j;IY6yY0_pnu|raM{rF zlZ&$P1XZ2~DU+|+3~)Hx|CyLpDiM;!bCT9VNPsj6CS^6r<0@iW8)SBLpYWHMU1J`Zetp zcHj*M=}1${%un*Sq+%zG>kn4O%_DAyhh0-f+8FCi_6YoW87og}v6%*3xoS^#iF6gY zn6mV0Ewg%!>)%*TRrs@;f|gxjud0AWPH{BX;P~-fQp!Wns2mGN{x(Sfpd}CK9&+6s zhP0}2^G~44AOMP*`a5}2dh-OhrFzZ(c<#vRA-WvaQ5=G9htX{1qE$syExj-qbNstM zaRvh$I;pF#^&Cz!!&dV1Q}L!LZy69jJemw%fx1nGLAn-tNvFUFtk2=vK*w*1_~Xc4 zf(Lzm4BVNz`gUg$%u2)@3E%D`d*h6;a{T${U=(wWzQ(H$2-Nq$rloUasxy+Sn8)mw z<&41@Jshe(a6;6tpMT&L#QXBM-NmOW#snVA3MyXJ9<)dn3l$MAqla2*mGFmA5f?xg zmHu!GZ33As95L)mH#jrKq~Tmj9n7j*kq&?(6MqOQY}M)Ir!%dv%63 zV~!NJp)@g@Dk(yyOKoM&?IZh56)I;TmE#^}?l|tO2P?e27d?MzS70+p&n#m_7Q)k_ zGz}(L(wZGIBuIqbC2J%o!0*r1`53NFM=io{ueF1mio;Fn4*DCwosq1~B!F>)40zvJ zzd1;7>U5`zN$_wo^M$MT0K+OGGcy%w5I>8pdE zn|%3_8O(+Pn=$IKvay@Nt0@HL`F?ji-t)frveq5_4kK?+X5|dVo8BG$XrVS7&=tO; zxN-Jh>Bu7OGiOjpxHZdm)Jy-DUe^Eiqb|1G0^O6lWB=-&`2B4IyuPRZpZSCj{(l)m zs8&oaV)f|VpJ{X9zrzj{-2SRq|FjkMK_+v58aVSgU3wnDS;#+8*qi@jShZmUa+DS8 z^G7I4svqbHW?9Fv*SYSbqWbmd(cPc?u<(~g@hG3VZd35syjZxL;rwrpYi+wDOt|*3 zh{qS;k0N#19Fy5L5QyZkr>e3W#|F-U$sG%t|6-=O$m?=?9^1@*^PGIi4BNk;Z+5Ea z-!}pobE&T5Kks&)0HRwMXjrPuutyh7xT5kC7g9Bfx&J}GMMfjRn;r^)GV8Whlcgm_ zX<6V|^?En`xyOvT&`Rw^l6}*=v#G|p6N%&QPkYNE+Yf1jNI{Ubbhg>|G4P&Gn5QL= z#<2K)`s;(04PJxC09BO(6OZD(d2cM46RpKX67>!psF5wUdz!)DN=cQ|MKbrfjZ0Gb z19KTTZZCpR&D)<}X^ecYT#^M{u)(hAXZ*YGuMM>Mys(@{Z8id@xs2Y&pGkv0OCjbJ zE)~~pl>gO;?!W!71#ACL|10m2K4{diJ8z7Uay0J;8Eu0H3CYuRv4Nr+1<$Y1v7Fse=|&@!k7COmVbUE+ z3A@KL0-El7|HG9lHnIb*RyBG@;*NP?;>?M57Ec-P{-6`)bIZQxL;NiSvy~jY&x$8J6FKU&V7eVWOHc*H>6;gLGa~CpzrL zGN4iF0I+3MJG)Fq?nv`SRZs=qn5+$%bgvm#{X}~G?zj3YeF`?N5C;$9_tIdfSn-B5eiJV zp>$a~+Q8q=3}%SB!$5Z~`n;S6y!pTcDIqDT?2k>z!)AzRi4f3uxOZAN(HRCFIZ^a|X~mkR>=Pxu{Tmtl@Wl zq!ed6uPEAyqMRLVdfOnp&MG)3v&D20xONgX{U_s>6U~Ky?cBUJ1*I|T9XLE4B2V=m%FX_xtC}A)86<^Tb^en z9J;hahv5AsbLyL++cC_0$2JN|{E&L!N^FXi3|sMvt5E4t!a17(8f8LHobQ4&z|xtP zR(AFDEcjgXAKI;}=Qg;*k_27Ol{l7_MOxG+szB3{J&V;$$jsC18!OV-xkmw&pxjPg zi2>%R49x;{H(<8|lrZ~-J#=b=4-(a zVfO<)eXe?Qu3y8;vK`S~gshr($^@&#BZzFl8}L1WJJ02W&NX|yeMZ1(3GjaqGo!wj^o?~U@PJqJeG$(75gR& zz4qRKmj+UE^rm=+F3-P9U^oKX?QET6YrLY=Fw$DUOi?fH>T*<-QNM;_|93B-M&8(h zv)2;Hs=MqExYDw)lmWup=54X!iwBf~UO{G{CDA}2z?77;)g8;51THA*fCBOgzb@+! zCiaE?WiGxS`dTUqO2sTE#VLn)0Ky77I>|ZYdCs~Z#ef8anu)nP;g>E_X_b-nkEz0( zOibLkHSkOn!DuUq<{m)4CS|7W);2^n`>O_FV+nec!1KZ8wztZ_+loV zRtISSuNoigQ`?d;%dLuwJrXC$Z?TCkwj}04bL9_q34bG479XKJ)(A{`iM9 zI;FFM95ZJJ#32Haic!$a-dv6gquBZ!=7pLVo#^iD<8{J0Wqy>S-+(rV-ME)VKdSQ- zbeH$u4b-OCy;r239UR2>rF!-XKtK(3ndWLf<5C8IqY;Ty!@&<6jztt|?Pzmy4|Fm~ zoj%-Xk~$+d2+ewu z2)Wqv+U&2I69$p7WPnH64x%!L_9_0iW6aE6SRR?P_+Gmf&xiu9)6ut6D)9D%0lr1m zb)!u$_z5+ox%@Tw6@$SMVkt5yJ;ON%PDB@0qF{qcBDk$6^$gqv{0o&7L|5tYXMb?p zA>j8Y`3!u+>23vYzDf>Bo~$txx~)@U#VReu`F#@B73&16Sv0(us zLD=nnU?i$tVDCVAJPv?^Ae9DO&lw2`Sg3A|2xC6$xz`yTFm9FJ_<-g|Bqo|^QiJQ; zxA|1#l^{g_cB(MOFnu`Ao8t*a%~kfjksRf`lf11-fIxbEUS%0CVjbIQ_f2X=#JD$O z?TeM}Iu27XIGYEiig=`(w93Q_Sl2YIQ#aqE)Jl0hm^#-H1-wP%es5PE)|*zp>9@LS z)vJ49awXYIlgq>|ck)p!OLje2rc;6XLA!mF5a8ho3og>K4MWqHN#vZMgk9k0tXF=| z=DUz7jYA>qc0ZViP3Bb~K?lo&?Bs~-X#xsn~JNoW*)w;XN_o+}5$ zV23d7Y(YaGs?<>hd?O-sta~G8gIs3LX&TCp*t8!3_h2=BORT~MOMx*b!=CFyP0zh{ z;v;d<(rjPeMmu*COM#^xMGk4`CQ(HhUEO$vv{N-l(#GIUzcPo;g;CEU$X3y$zk03| z|4eO1b*hX2N+|$?+qu^Q?_neBgZ7a8SV;ndXuJ8ydmd53(lBe4WpL!27xY;9vW+e3 zut@E^IZp|y_z8Z>09?wCR^x>z0!bYh*dj0S8t8{=O(;I)HIC=; zWtdT;=km3;{6}v>T|?+a4PDI03I}v@=6Y@T$(1ltk;w%w>l-QnCmrGShLp?f1)=ez zd%Ka(8KDSsDirw+TK@rx73F+W5wQxg?Ctnsm+AVkz?CarOLY>v+!RN&)_l{1_1OC~ za_+4=?Tye5H8nMahGs^@Cl8pF^Wl=PFopDPEfypB6%N0QQ}g4|x%#=ioZ`cduoR&P zK10E|oY5MF5Ae{PIF4|fLR?{=t(X7%(n+%iSq!H7_b2h0{_fK~-+u6IM9m=T(jqol zq$b)KgAsIeQ&%_-_V2gb0~?I&Kytmq^{jjN+$Yef&cV7Tm&a^G6xGsPTPStBHmtF_ zR1xy~H_Khd`rg{*uuG!rCJX$Eri5|R`^t90@-2#@Wpr*@)ama_8I2Im@?y0Sb`e;3 zTc4YK-_7;35w3GFZwkAz_W?rapr7wXEORV%A}c?v?N0U0U!yL-Y#50w5Qkk{gSz1S z0{dpr+gwj?R=yMjIYs8-l3aHJ;iR%*g5hCaDlyMZECy*^Q-wQ{yQFi9ossi%o(OXT zGxIi(U^#03C%uPSa)kBK)!=5Dvuz#UJ(nt1mhrA!*(y&7B4jCLE-2doI*;@dV9_Ob zG1cUqq;b*;VuwrMX(#xUN*AJpz*oSdKI`vJnK77(UL1Cvkr70O1n)vh~6pFVw}2B!& zw1FLQd;C8jyuE^=J8DW1LW$)3c4Oha087E*aHupz^d`0G4$qsmCj@UJKimd;U=F$^ zX!`#Ed`3=?jhy4nU$#hz5OlF>EQU6vp{Q_H^}unu(UXKrOM3vUz#*W}+CZ+H$m&Te zipw(_gf&ZZ$-e^Hdz{OC>%O&N1hO@zNas-Q9nNo#7GT!f9R`3;$LQRNeF^3qVD={l zL5E7rOz6u)fV6X7++OK^cy5n%k1YS2^hD7~d9`^!2$aDRFYNlN*27Cji$HZ#d;wIH z0C$Z6uI$9Qs9^ZuLASHjC*Z)Ml^=m_R9=4omCS}(X%eq>Xo~X+w z>TG?i2J~O=q3V9LF4NBIjxWDj$D7>nP>hCPnW#Os=Bog);{$kJRNc{}?1VP0vf)FT&A%bS>3 zsMV@ao}Qf*><`ZhvVpQ5!ScHzNAd9JER?+PGMQIDuX%0s8-4{jdO1jU2qGMp1GW>5 ztKOKfbE+Bc1G9GkLD|S8f0+SKKnpZ7%i29Wmb?{~){zDZMt| z7%ybc4nmuNLS(m&Z3K`tL+K`x-`Eq?Ey=mu?!N;^0dyMzR*#*=lOaG%7h(M1&pMeY z?UXF$IuO5X16=p{T17S6n16lP<3Gk(bewP57I^V$#c*^Vn0k)N`Yfa9fPyAXIp(07 zCG^y8i-h8tgSc2+v+dmPhgvkOCX?0j2!Vk#F=H*k)q)_Kc%R32jd-nQNx+(NM$|(u zr1f085IODfUK8}niRq469TUP?>SzG=!aPxceVE;?v4ybdUI+oHCVOLSt>I#|#(?Qk zzIPWIFiDl9(|9KFJ>*YzBz4Qg2^mR~LVK{i4AQ~O?; zyRq`S`Uv}rGwI}7*s=)-PoDa;pVR@Ho{INyy%Vv>m-jhzWgO-?PZSeoGbFJLxAp1( zK9r;m9A*2`_*H%B@2(Itso(C`uW~+D0zpB*bwjaRP^>zDS{8_E89?Fkh;UH2JTuKY zK+D^NV}QR6b>4wL2);Pl93;{MVh$_qtSb1V!w^szva6&%%aFyRqg8mD&0BnX$c#rB za|lGlAOHQjk2Vo5J5)P*8F$xv;Lqd4&I z7n=vZ9p(R>u$PR|7ia5y=G>&D=HtI|2+$XdHX6$9Xrvb_+L49WNld$8$%h61bUwAu*xTl^iXToY} zSHK6hyJg)^L4;!BWk!v=pg3Dw1q`MC11Zmg6vzFh8SgOwuyKC{x)@YrGr~NH*B1CO zxycmWWox`aFXLyU1wVaA+Iv(M!;S6-cuSw^cn5$%5U8pdRcrIu&r@g>-X>RsfCo#* z09YkX6G{}?GqJ$Hr`Bl2J9c$y+E7g8340#nUAfvfvE#V2ZHS690oSAiDq})NOQCh) zGf}MTu@HJL<%}E6Wa|$3dGtTeQe|ZNa zB1$RisS3JFRNyAjeDIn`Jx|3}_=(4P`w4ZTW|hbBMj%KlE^Vg>-C=xrXMHqB@;`vR zHX!mowK`;^q__dI739vn)J2RN4%HP_y7q`re&@6@@Z1HPB#v|t(RbjC3jg}`DXYO( zh}*V62&o8}eS=Awl5F5;N7BYM5Je|X}RjUgY*6ScelOvM;)4>#_WTRd3)=P1d=vUHKB(^+tn!di!D@d9yI@ z{hrt5og+j{yK1TUR!|o6_J=R&jLd{58$*RIV-pkOAF~Lnw-FAnDeIV348ZOjgkCgp z#Drm+;_{J^G4nk-&Qgol35DHL@mqn>RW}OR1I^pYX!3e5aP6Ia~aj!f_maO%C2J~3&N2rKLKsP67>0; zB?5=f32Z5JYHb%}xV^mcm6K|K%$YStq79m^iEAQ(K_qo}+;sGx{r!jk%sB3UD`f~z z8$ujyLhAug!jvx698;bL;zkGy)5vc|hcu|k<5T4~lXm!xJb5mgueu}J^QsJ?nflf~ zHa2#{2y%1p`*8iraj5A;TFT^~5Bu&$b+6FI^VR%-w?!o*!(?S`P3|5UAAEzURD5U& zIt`4=P_zjUa^y*~CMPHN*etP_V_?=UmOC;qEO1^Qf%yV^TK9AJ`9Cu?@-az`jg4EK zS|;3YPKQ1}_L4(yCS@E1*gp(`V{q%!)oT^SnkKIDL9gdU_K#AsaJhKl$;nD3`qe7j zKaq7j;OT9(&?It?O88}z?zB_Uuf_CjX)f^;Zcn0nV6cImi4;zL`zLXH zU(fw%3BJx}pbtr5X3o#gYvw2r%Il36EK30EOm5c~xk8;XDr8@R#(--Lj6(EyC}W}f zY}dL>x02p=wki;|;-+}b23zT(SzQ6l+Iy5-aM9~iQ)Gi;w~zk;U zD5xi{7FW*5TgJ2X1K%3kV8UoARfDa{9*oqU_=pH`E^A2;VNb943Gile zVJN2M=QCoTKanGS?-TK+2VPyx%WFFgS4k6P-}tXg0Z; zT95dap-ZskGnz-fH%*!^-qJxYpWLPQ9w$Tg#^ixSk$IKQFGZG1*|K?|uiEd`zzk-ZwZRCIJ|>s;nzY=fGG zFXhjrWn>rN%^XGuxprGy?nBY#Wrv-rFI{(nf`g+KVu1Hiy&#sucY3np#^>ETq#3s5 zd7F{;&Rqye$0UbFo^lpoJ@>#5`yAR=Dd{>K{PPQx+>5hJ*%C$PJ{M}1CewdUqhi=~ zSMag1NrsMAS8+b8B)QJyJOcvwVdvxLhu0T77H3UpkOl?0Otkk?znb2H2Vy$H#V{Xm z$yRFLKA7XnOe2Fdhzh@0X&dQKCeK+_e*OBRN4SZwa-`U#o!vdl#TK+j6covpbQlb) zbqEtM_d~OHSgkP6*%4^PreWTy-#cuO014Fd?wg?}Q+@x6|IO`6!6X1PLoX6lCDRqZE|=&U#ru%)HmCdSV< zHGRF73S$+m{aN>nxggo|99yvT)iQP@`7r<5aO>v{?dAE05Vv|^;ilNSkz#jlG65@S zO0xrvG64%W$Nta5XQjSlrIc3Q_a$*kGbgnXs?D)$C8h z^V0R>=3kgM!dIRcm;XKdb;6 znc0h}W@Fz#WnSxNL-6isOJre8LFekYUu$b?4ovxk*O733r+G)~W+XgMe($1b{15bCAbf0!+Af69oXvCW(+o;ehj#G5oTbxsRj;)YkFqcu;O7%V!~G( z1kq=`1f>$o()us_F(LM3QEwrywCjf1_(y(|pAhbo3BS~?LOdc<&_}0#^}LY~)ccczzu80#h=ot zjq^8$K<0T+cionNz<4G|mgeyFV!q$<*U?(Wz;qjGk9oUr?}A;DmQ6%u#DPx#$JK?p ze|ixZE5*gQGS29ExJH96nW_yGfnfCu*S*8G)JBhyy7J|<>7z|`-f}S3!}1y+-iZ@# zbqAImK6}t?x~ekWXrZd$XKQVJM0EuU_jSLCT;&;_Ksr$$5ZYU_gmFnr zj;Af)uKU6rKb4+5m8*BKo6t75fdR6+vAbFZnk5w#b}QA^VDUC|nd-`QsZCdzpev{H z=r&RRde&!5p_IrYPsFbK_0;*Em_&V=UdJA$xJAPn|?MFe7o^LGbZ#;Fu`XU(x> z)84ravS<_(Z-K%C@BQ)d7P{*jU4fp!)LHlaE(;-U;iop^6@*~I9O=4RZhLu#doWSe zyM8@vJiLrhaz6DWK3m2uSUhy8PW_39k#|^8C-6^50Jl)2W!5zLiA`{mqa^9Bw}gnN z57Q`(d&WZ?}}rW=Z?i0cCgi^Y!trFSs{EBOGje z0YPz$?9EB2JFLjuG9ixO;luR|m1YT3ksZ@|+O4k0))mcf?*f|4l4qAVZVjXgDe}YJ zUUeO`tuzl_vW*T}kHge!A&>^$e=ZanRoR-Et+~GuDP)SGY(TsGHJz?JSJ88dlb&Bp zvge8Go2}ifIKd&^tcC_9=aXr^J@6OaTKEPzNBu4K>KAv`=SBa_8+u%aP>JXr|MIpC zn(oTHC0xQS;^WO5|MkEX`=3W%@pHGl&F<|h)egh&nX}264btT(vY?0MuKLTsgeDqj~=Et=$BLm>{QanoFl9Rmf9Yz!cJuA=-NmI zPq*kcwS^{Q`K2#_hm}ZlaVGB~sno|N==7UMIZZT0B~3u`iA;!+Eqy;a^JDXi&^7X& zbT&020uTB?-^l2u%cM7%`wCWaMv7GF|&L;I?^rdowvqvXgOp;A)lVX&svi zQ*Vvd;tPz!6ucWmiDM>rC-;`e5L%mKPOCm91~hw{6UH%40^)!ikdefnWtnrMpzCk< z^XspI)j=(nCMWOp5Bu|Nb75Ix;gngAed1|wvO-7?M5c&T3tldNKvp1oyE-id!9l%? z*^^=>=%wy(k5*B3+5-ma)>e*Q>z;%Iw*Av-zx~1(x=VA3?OFR#;457_uijKoag}io z6&=m(S;7QO8^zEVK0ZD!N~eBR>-FwshMtSlFE#cvD#3BA^!WJrg?|i$Mzx+Dp$feS|EV>61RUsXpUeVTXlTAyFv@4b8r!Z2tH*UIaKPTFOsDWjRXL3G z0vvAMZL2St0e1rQdTq(p#3Z9)iA$Bux6oaI0X`^Z{Q0V+jZSsY$IRZoj6WcOAiA2} zpiVrg)+X1^@SBJZ9hpZyT1ydXrI?ZH(hb)M(h3VF^Vyv0l71=61Bu06|HQmJ2Jhpk zRZ@0QwCg_=P6VOR!pNtuAECJr|3=@;8H-E?i ziDkiiLWYM&ni`FPbwi`U48VACmM+N|pB|j-IXXFIf#b4X<(qqduyNs^e(pYa(w!j_ zItG1oawOom^sGd$60DhNsNVn>LL{FVij}8FMirm>?D?-a4h<0SFo*P<9*wJEX4CYX z?Qi0rFXLM+>KPk-tHD+-lJLjwNv|UNqm4P@rIMV#HI#wwJ$_QegRYo*t9Sg3SI{Q> zBycd;bnojhWl2h+>=s6XV() zm+jdE>_?1@Ga=qK9tm{Ar!YYimzbOjAJK*X!2$q(Hj^@JNG#yeR!cxAN{nUSS_fp+g|=Z;IR6uuwx2 zbp;+lT4r}O->IaJf320hbq{_+X@S&st8!MOXH9jQ5aPDUH zv2JJ_@d@}UI{2dkXw)+;&MJ`6_)+j*$ot8=;H5<^aXK>aCH{Vh6GfoD2V z_lK^yDi8QGH!m9_^4*N$+&{0E;W7{Z`(HpRPVeK@l0tcGfiQMM%*R(+WNe1?4cFy;vXq})@b=xI81lTmq zd`q1@cNae(V%`RXhYNqsNc!ga1RDoO<7D8=&a(HR2p<$GHOC_D?9Ah?nk;v;`K{-Q z;u{g$xtfvc8y>QIYzAM&cbvchsIwlR1CO@Hxko39+Hc+f40zZ6720W8_l6T34wqul z77jMvXx9XTkYG7z+jzFbFuSLDyIP>9|#T?UG*Mq>jx}3+)a@(F>>o53p zw0$@|bqh452tVb#OawzpSj#xMZ!Qn;mE)gMO}axO*j8TLa+r8P0-+}V72Nq<5;NM{ z#S`Gq9wK|wR53dP?*@)l>TtMly!UOke9lxmW3++E-Hwg`lL$t8v{(uN70LN{r+IyJ zdya{D1Jg29w12lgtllLUln^RW>x~{KxnSee_#t)|)Rao#@SiTR(~z}&hWpsGbjLvN z>nl<3-S3}QL@Wt(_4InY0RvSN(~-&Kd6ivE(4}c0K6n=42Q8%qmEcudul4x zz7Kh&SW9yXXIfTUn-r4!nRb*Km^GLKFaydr7Yj6cC!?x|S3k=S_c|#Vfpf2dqZ9Gm zuPFy~UDcbf(brO3vE>PDz_=G4_x(p!lTD3VdErc*oO}W0EiK~vsn0%O;!{bq+XNTr z2f}_=r31T+#`WddIGZK#yhH#Gh%#93Iok?et99PU9>V>DgDfBjj}+@xcIUoTbJ=-B zQHxJ0C>7n%xDGy*$Gztf^5%=mMk54be}@4qvOa&ylqt zBy;%D_4BLNkQ6ajmC^L3qBnp^kqAa_ST|tai%L6ZMCa^}AI{{_lBpt zyL%({kV4+Q|oEJqf^{^cpG1qGxAUnM;iPd#yP|^TH@a`AD+v$tx&~PzXB94Hy%5>RMPZ zxEmRws3;Aq6EEgR!3bFyBgJ!XP^;ZmTD=Xa%xGgh!>m!7su%;Y+p~#>kiG@La_Xkl zVXvsH)TkxN#id^dNA<%$wSL(@dPocskU(Vgp3lMp#68)$M1j=8(}VM)u{y_xuu?<) zxkBUp=n##shrbkR&X354^zCyRFAD+dmXKZj6D@6Nq5jA;;LH2_`;SagrEbLbCBTvy zdg?nn+M*^GX{ubTA-pjA?0Hj?&Lx-4Nwp6jF$xqX**CP`->{pC$qI*h4Q|g7=xkY! zy{OIAbOhbd&) zln#z(>@~m)YUHI$43kE{7JO6Crv$O|+SL4pQV6}k_XbV<0WKth67|q}^rZT@Zb0Rceye> ztL3K7YeUb^>m)zp`ZXPv${I3|TW|7cq^5rMmu5ezwWzBd`FM6f_o2gYJ?{C*GvOSU z%TIR?f%7pc=R-mE`qhI+Qu@AEF~V>sE*=-0#pbr3gAYz_<+ILtR9ka6n$5l_Nz+J)tB@8UkkYBK=XWBh+4Lm!<|5ea}Huv>p+WWitt~ zpfH+VH3M{ZbmneBB1HcAb;->S_{%O!kid$nPLA9k1k7M)%oE5fA7-6Gseyq39=q9R zf?lV-@Jk-hGho}^dq_maEaF*bPsacAx6DjKe#?q{^dVm!-d(&5u&g5TEX4e-I!2aX z65PKpZfCcn20UeBB?-%^5)CA`I-z!n{h=+DRdDCnLMO%Z&*d^ZyqTGN zd;lS-6v%Ly(_-KJCo_iSDu;IA#YpeiGEk#QIIh)4GXl1Haawk1Ids|dUdy?;J@YrN zmr&`s0nggs5b%_JO75lBrQ8w6u1h=m2%I?-e1eIiHP{%)K!)M$j4cXB3G$S~fR1n2 zGYVRa+D9y9CTXAKEJ+YE)V_ZGdTqA8vVy>(Xrjcjdn5-n@^8Avo7~;~US?h0GnXAW zb15)g_VNs16Ef%PS9Wx+GFOGA2%78qcTiARjbQuw);lU$jbt;i=~l!yUA;+%rf{{c zKI?SF^WK-YC``wdt9};Crj{B^Ot3axy@{i0%3I;YO4W*JjLr| zxK>*2Pg0$WQrnL<^C&dfd}>!E=H8=eS!ldaoeFKiI^0pEN=*e>^T*wy=kXpCreMY8 zfDlp6wvg}jEl@%doGGQrn0AK7keFcmY$u5IMUY}vSH|<94p0BwEElK1B^AbIHimi^^*`p2wq)WdA^4X_dnu9rRY;$YFBLqxSHP$-(FiM!(K^@AGW>p3^2E z5f1?)0{p}JDK5)I0&V4Tyaazir|~Ni{c$YFAO{Z*T)62vsJNt<&ZIq%1)S)seh!Am za_AqAG(F?t3vk?8q_Up&J`?P-=)mV0o=K{~xINUg;2U=p@}0#AObifj$`@BcgE*lM zWbvVwXBy|}V5*I1e|v0=njH*Qp>!7lIcN*r6>vwcy$r_0yA0s7pHg~AAEH`f2e{<3 zW(f@Vpaa1pX`T=r{jeT^P>7iZ>nHnlp;UJiJwxa-HQ(J9G?@L?wS=Ew9D@CDSoX1+ zoSa;uk4y;5h8tuSjORUH3g&>S<$AJi3-AFh5*c_R;V38cZ9MDnNRStKf5Wv+(}k01 zHqo`fRhDyzwOq#!2vmhRZ8ZW-O;KN$+6a9upL!$0HG?Qcy`;P~^>QgXBl=#)vtNJA z)GC@-+1^%p?t6O}*#E~p50^LiQ}NDqPgDzPoNVRsXmcU&1)hV$Yab?mBNC@6*@OMu zZJfcVem%_>*LV%>z5C)IFf|yyU6Qh&CM02GfmPf(!|56uOtwe%z0mEr`%JO7;gEU{ z{eMwHG$8)E>EHOYl zxjH*o9WGAbHc#9Dl#mdkq1zDZZ>ZX&Plj{m^$0XB&n36B-|;a$omw{m-8dWM)wWxZ z8VC}oiygSfJg3n~cdRC1NOE>`Y4yVj)U0}`wqBC^XDZ8cxghgsV?3JtCbcQ=zRn8= zIt(3IhlMiY?|#y$K31lt(TNR9wxgis0;=s1S~0PT+S<532#~s@W4T-xx_R(Kwp;Wv zI*w$xPZi;qR2Cz8)dbp$-6lx7@o=UzU8!N68%?Wb-=><{ z2u=lv`0ev|WhA}->@fr~br+?s^SS9BpOEoJZA2Z0+SPwn+asXMZ@AmviUzt9LCkhu zX-42-tEmb4(MH$53j;y(Xaq3g*8z>QLK%#ry3UNqlIZ;@QpT<}{B4YBc-w-LHv;Zs8K@l^$6y+=+cMjEwr zuo^EbK~s;*T=B7Km?^doN3!+ggr^F~PR21W>QyJ3r4f5CK(70r5jiL=V$Xm{v-$dI zhMjN?QB___3Nv!!gP$=h4CC4BkfXKgILeGtS7O)m7Po%jtH&y=ap$+@z=PNPu)#t+G6$%JJBeOJy@ z@A{Y!(uY$9J#oBv$7A!;6`-DXxW?aZ8yJ%bz@XJOQ|hFQ+FB=2-S7Q>8c*KtMtna6 z1J0vfET>)m92C1qCgaI3+qM)mLJKeAVb)ekG8lCM5ZVNVZWcGL(l5(}W#Custp^9k zFJ8H-d7x$9732imXmM9B*K!o2%z_XP=q_@b_tImE#FV~wJ{Gl!KNJ})RXS%5Lx*r+ zmDzOz(h#t0BGRC5lt{#$mzoMU9Y-*2hLl-=Nyw650)Wub=_U8{?!h3ee_6zl*4@KP z8KAZz{51d_FOn-Kac7bXRo8v>blqW|GGMg}N! zC@QBnKeea`K@5q1h=qkkCT4QWPz_T*3p6w|7*t0VEC%EVY`1GIYJo`zU}DF?K?oY} zZf9bHf68INSxjE+l)kL03NJ!B78#gJb3=C`#LEiHR6H_nVPRz;z{!$2}4DGL2 z5@G9bG=77>S^263A1Hn~wEll*j>@ cdN_Q8=5i=Gbp1KM0`-Etw2D-z#H)}03mSV3j{pDw literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-rank.png b/query-languages/dax/media/dax-queries/dax-visualcalc-rank.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc38b632decd8d5162c3dfe152a133731dea3e1 GIT binary patch literal 102150 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

1#zcRic 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

mJ4;(v+Mas)k-b@;4@0Yojwr0JH)3WBjZd4AN z8V?>>rT~sFHZy8eAfd6NuY@-wQ|QFa%bDH3wqDGKNK6e_?YeGU+uEAyGo0Tt8GSnK z1Q#BU{S=*@$V@&L`Im^W3tCsS7kuf@s;ZvP9dBA8M>Ky^oT3N%Wt3iUZVZ3+%m0<4 zHyt57Pfd@$>uJ z0;2&ZwK4#5-JLb+ak=IKW&DsKyz$TD1y9Ep#X4_O$7Pn1yp7Cg%b;F9bmY6Y*>j>= zh|#fgS=q_xYnC8Jfj?`2!X+=jp5uOt*;A?Y_w_E3=0ParUT68t>!OB3L8Vgx_IC+w ze9JDNis+<_+o6%xV-1ZPVx!Ar9{9`f5hg`~J6u1@dD3XJT3EoCWSX}Xz3bQO(yh?f zT=@)#T(WcG(j{%#J@4JvMDkM0Zz_B|#@8as2PN-hVBw2Ohvocnp3>Xa{0wKo{fyOC z=k~7bi}mA`quaK%<|^CoQ}m#2LZNXEtzWcg4_MT!s`8}n;b*PxV{Pd7CkjbIU$OXG z!E+_WFR!mD+jodMcxSF6y(p&T%+YZIkSAH|BVSYZ_L~iE)SFwf&S?Â^6#=1?w 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 z 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-window.png b/query-languages/dax/media/dax-queries/dax-visualcalc-window.png new file mode 100644 index 0000000000000000000000000000000000000000..d1c2711c5aeb1f332325ae0836fc9a72377e797a GIT binary patch literal 67680 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 - the total sales amount; -
- the difference to the previous month within the same year; +Returns the difference in total sales between each month and the previous one within the same year. + +The screenshot below shows the visual matrix and the visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-offset.png) ## Related content diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index d87f53502..2b7678724 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -71,30 +71,19 @@ Returns a table that ranks each geography with the same EnglishCountryRegionName ## Example 2 - visual calculation -The following visual calculation DAX query: +The following visual calculation DAX queries: ```dax -DEFINE -VAR _Core = SUMMARIZECOLUMNS( - 'DimDate'[Year], - 'DimDate'[Quarter], - 'DimDate'[MonthNumberOfYear], - "SumSalesAmount", CALCULATE(SUM('FactInternetSales'[SalesAmount])) -) -TABLE t = _Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year] - GROUP [Quarter] - GROUP [MonthNumberOfYear] - ORDER BY [Year], [Quarter], [MonthNumberOfYear] - DENSIFY "isDensified" -column t[SalesRankWithinYear] = RANK(DENSE, ROWS, ORDERBY([SumSalesAmount], DESC), PARTITIONBY(t[Year])) -column t[SalesRankAllHistory] = RANK(DENSE, ROWS, ORDERBY([SumSalesAmount], DESC)) -EVALUATE t +SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear])) + +SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC)) ``` -Returns a table that ranks each month by the total sales, both within each year, and the entire history. +Create two columns that rank each month by the total sales, both within each year, and the entire history. + +The screenshot below shows the visual matrix and the first visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-rank.png) ## Related content diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 7c9a36461..9ec1cf831 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -75,30 +75,19 @@ Returns a table that uniquely ranks each geography with the same EnglishCountryR ## Example 2 - visual calculation -The following visual calculation DAX query: +The following visual calculation DAX queries: ```dax -DEFINE -VAR _Core = SUMMARIZECOLUMNS( - 'DimDate'[Year], - 'DimDate'[Quarter], - 'DimDate'[MonthNumberOfYear], - "SumSalesAmount", CALCULATE(SUM('FactInternetSales'[SalesAmount])) -) -TABLE t = _Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year] - GROUP [Quarter] - GROUP [MonthNumberOfYear] - ORDER BY [Year], [Quarter], [MonthNumberOfYear] - DENSIFY "isDensified" -column t[SalesRankWithinYear] = ROWNUMBER(ROWS, ORDERBY([SumSalesAmount], DESC), PARTITIONBY(t[Year])) -column t[SalesRankAllHistory] = ROWNUMBER(ROWS, ORDERBY([SumSalesAmount], DESC)) -EVALUATE t +SalesRankWithinYear = ROWNUMBER(ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear])) + +SalesRankAllHistory = ROWNUMBER(ORDERBY([SalesAmount], DESC)) ``` -Returns a table that uniquely ranks each month by the total sales, both within each year, and the entire history. +Create two columns that uniquely rank each month by the total sales, both within each year, and the entire history. + +The screenshot below shows the visual matrix and the first visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-rownumber.png) ## Related content diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 0af656043..d6c98994f 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -150,30 +150,25 @@ Returns the running sum for Total Sales by Month Number Of Year, restarting for The following visual calculation DAX query: ```dax -DEFINE -VAR _Core = SUMMARIZECOLUMNS( - ROLLUPADDISSUBTOTAL( - 'DimDate'[Year], "IsYearTotal", - 'DimDate'[Quarter], "IsQuarterTotal", - 'DimDate'[MonthNumberOfYear], "IsMonthTotal" - ), - "SumSalesAmount", CALCULATE(SUM('FactInternetSales'[SalesAmount])) -) -TABLE t = _Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year] TOTAL [IsYearTotal] - GROUP [Quarter] TOTAL [IsQuarterTotal] - GROUP [MonthNumberOfYear] TOTAL [IsMonthTotal] - ORDER BY [Year], [Quarter], [MonthNumberOfYear] - DENSIFY "isDensified" -COLUMN t[TotalSalesRunningSumByYear] = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SumSalesAmount]) -COLUMN t[TotalSalesRunningSumByQuarter] = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SumSalesAmount]) -EVALUATE t +TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount]) ``` -Returns a table with the cumulative total sales by month, calculated along each year and along each quarter. -In the definition of the TotalSalesRunningSumByYear column, the values 1 and -2 could be used instead of HIGHESTPARENT, with the same results. +Returns the cumulative total sales by month, calculated along each year. The values 1 and -2 could be used instead of HIGHESTPARENT, with the same results. + +The screenshot below shows the visual matrix and the visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-window.png) + +## Example 4 - visual calculation + +The following visual calculation DAX query: + +```dax +TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount]) +``` + +Returns the cumulative total sales by month, calculated along each quarter. + ## Related content From 9e62fca4df2d3886e95a4996d4d80c033f3808fd Mon Sep 17 00:00:00 2001 From: Mario da Silva Date: Tue, 17 Jan 2023 17:50:02 -0800 Subject: [PATCH 405/934] adding documentation for Range, RunningSum and MovingAverage window functions --- query-languages/dax/filter-functions-dax.md | 1 + .../dax/movingaverage-function-dax.md | 106 +++++++++++++++++ query-languages/dax/other-functions-dax.md | 2 + query-languages/dax/range-function-dax.md | 110 ++++++++++++++++++ .../dax/runningsum-function-dax.md | 74 ++++++++++++ query-languages/dax/toc.yml | 6 + query-languages/dax/window-function-dax.md | 1 + 7 files changed, 300 insertions(+) create mode 100644 query-languages/dax/movingaverage-function-dax.md create mode 100644 query-languages/dax/range-function-dax.md create mode 100644 query-languages/dax/runningsum-function-dax.md diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index c14d07adf..20d2f4409 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -27,6 +27,7 @@ The filter and value functions in DAX are some of the most complex and powerful, |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| |[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a WINDOW function’s \ parameter.| +|[RANGE](range-function-dax.md)|Returns an interval of rows within the given axis, relative to the current row. A shortcut for WINDOW.| |[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md new file mode 100644 index 000000000..c26d3959b --- /dev/null +++ b/query-languages/dax/movingaverage-function-dax.md @@ -0,0 +1,106 @@ +--- +description: "Learn more about: MOVINGAVERAGE" +title: "MOVINGAVERAGE function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 01/17/2023 +ms.topic: reference +author: masanto-msft +ms.author: masanto +recommendations: false + +--- + +# MOVINGAVERAGE + +Returns a moving average calculated along the given axis of the Visual Calculation data grid. That is, the average of the given column calculated over the last \ rows. + +## Syntax + +```dax +MOVINGAVERAGE ( , [, ][, ][, ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|column|The column that provides the value for each row.| +|windowSize|The number of rows before the current row to include in the calculation. Must be a constant value.| +|includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| +|axis|(Optional) An axis reference, the direction along which the moving average will be calculated.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| + +## Return value + +A scalar value, the moving average at the current row. + +## Remarks + +This function can be used in Visual Calculations only. + +The \, \ and \ parameters can be omitted. + +## Example 1 + +The following DAX query: + +```dax +DEFINE +VAR _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimDate'[MonthNumberOfYear], + 'DimProduct'[ProductCategoryName], + "CurrentMonthSales", SUM('FactInternetSales'[SalesAmount]) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year], [MonthNumberOfYear] + ORDER BY [Year], [MonthNumberOfYear] + AXIS COLUMNS + GROUP [ProductCategoryName] + ORDER BY [ProductCategoryName] + DENSIFY "isDensified" +COLUMN t[AvgSalesLast6Months] = MOVINGAVERAGE([CurrentMonthSales], 5, Rows) +EVALUATE t +ORDER BY t[ProductCategoryName] ASC, t[Year] ASC, t[MonthNumberOfYear] ASC +``` + +Returns a table that summarizes the total sales for each product category and calendar month, as well as the average of total sales for that category in the last 6 months. + +## Example 2 + +The following DAX query: + +```dax +DEFINE +VAR _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimDate'[MonthNumberOfYear], + 'DimProduct'[ProductCategoryName], + "CurrentMonthSales", SUM('FactInternetSales'[SalesAmount]) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year], [MonthNumberOfYear] + ORDER BY [Year], [MonthNumberOfYear] + AXIS COLUMNS + GROUP [ProductCategoryName] + ORDER BY [ProductCategoryName] + DENSIFY "isDensified" +COLUMN t[AvgSalesPrev12Months] = MOVINGAVERAGE([CurrentMonthSales], 12, FALSE, Rows, KEEP) +EVALUATE t +ORDER BY t[ProductCategoryName] ASC, t[Year] ASC, t[MonthNumberOfYear] ASC +``` + +Returns a table that summarizes the total sales for each product category and calendar month, as well as the average of total sales for that category in the previous 12 months (not including the current month). + +## See also + +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[RUNNINGSUM](runningsum-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index a0a394d0f..36dccdec8 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -13,5 +13,7 @@ These functions perform unique actions that cannot be defined by any of the cate |[BLANK](blank-function-dax.md) | Returns a blank. | |[ERROR](error-function.md) | Raises an error with an error message. | |[EVALUATEANDLOG](evaluateandlog-function-dax.md) | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. | +|[MOVINGAVERAGE](movingaverage-function-dax.md)|Returns a moving average calculated along the given axis of the Visual Calculation data grid.| +|[RUNNINGSUM](runningsum-function-dax.md)|Returns a running sum calculated along the given axis of the Visual Calculation data grid.| |[TOCSV](tocsv-function-dax.md) | Returns a table as a string in CSV format. | |[TOJSON](tojson-function-dax.md) | Returns a table as a string in JSON format. | diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md new file mode 100644 index 000000000..8ff1ca7d4 --- /dev/null +++ b/query-languages/dax/range-function-dax.md @@ -0,0 +1,110 @@ +--- +description: "Learn more about: RANGE" +title: "RANGE function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 01/17/2023 +ms.topic: reference +author: masanto-msft +ms.author: masanto +recommendations: false + +--- + +# RANGE + +Returns an interval of rows within the given axis, relative to the current row. This interval will be comprised of either the last \ rows before the current one, or the first \ rows after the current one. + +## Syntax + +```dax +RANGE ( [, ][, ][, ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|step|The number of rows before (negative value) or after (positive value) the current row to include in the range. Must be a constant value.
- If negative, the window will contain the last -step rows before the current row.
- Otherwise, the window will contain the first step rows after the current row.| +|includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| +|axis|(Optional) An axis reference, the direction along which the interval will be created.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| + +## Return value + +An interval of data rows. + +## Remarks + +This function can be used in Visual Calculations only. + +The \, \ and \ parameters can be omitted. + +## Example 1 + +The following DAX query: + +```dax +DEFINE +VAR _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimDate'[MonthNumberOfYear], + 'DimProduct'[ProductCategoryName], + "CurrentMonthSales", SUM('FactInternetSales'[SalesAmount]) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year], [MonthNumberOfYear] + ORDER BY [Year], [MonthNumberOfYear] + AXIS COLUMNS + GROUP [ProductCategoryName] + ORDER BY [ProductCategoryName] + DENSIFY "isDensified" +COLUMN t[TotalSalesLast6Months] = CALCULATE( + SUM([CurrentMonthSales]), + RANGE(-5, Rows) +) +EVALUATE t +ORDER BY t[ProductCategoryName] ASC, t[Year] ASC, t[MonthNumberOfYear] ASC +``` + +Returns a table that summarizes the total sales for each product category and month, as well as the total sales in the last 6 months. + +## Example 2 + +The following DAX query: + +```dax +DEFINE +VAR _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimDate'[MonthNumberOfYear], + 'DimProduct'[ProductCategoryName], + "CurrentMonthSales", SUM('FactInternetSales'[SalesAmount]) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year], [MonthNumberOfYear] + ORDER BY [Year], [MonthNumberOfYear] + AXIS COLUMNS + GROUP [ProductCategoryName] + ORDER BY [ProductCategoryName] + DENSIFY "isDensified" +COLUMN t[TotalSalesFollowingYear] = CALCULATE( + SUM([CurrentMonthSales]), + RANGE(12, FALSE, Rows, KEEP) +) +EVALUATE t +ORDER BY t[ProductCategoryName] ASC, t[Year] ASC, t[MonthNumberOfYear] ASC +``` + +Returns a table that summarizes the total sales for each product category and month, as well as the total sales in the following 12 months, not including the current month. + +## See also + +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md new file mode 100644 index 000000000..8b810feab --- /dev/null +++ b/query-languages/dax/runningsum-function-dax.md @@ -0,0 +1,74 @@ +--- +description: "Learn more about: RUNNINGSUM" +title: "RUNNINGSUM function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 01/17/2023 +ms.topic: reference +author: masanto-msft +ms.author: masanto +recommendations: false + +--- + +# RUNNINGSUM + +Returns a running sum calculated along the given axis of the Visual Calculation data grid. That is, the sum of the given column calculated over all rows up to the current row. + +## Syntax + +```dax +RUNNINGSUM ( [, ][, ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|column|The column that provides the value for each row.| +|axis|(Optional) An axis reference, the direction along which the running sum will be calculated.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| + +## Return value + +A scalar value, the running sum up to the current row. + +## Remarks + +This function can be used in Visual Calculations only. + +The \ and \ parameters can be omitted. + +## Example + +The following DAX query: + +```dax +VAR _Core = SUMMARIZECOLUMNS( + 'DimDate'[Year], + 'DimProduct'[ProductCategoryName], + "CurrentYearSales", SUM('FactInternetSales'[SalesAmount]) +) +TABLE t = _Core + WITH VISUAL SHAPE + AXIS ROWS + GROUP [Year] + ORDER BY [Year] + AXIS COLUMNS + GROUP [ProductCategoryName] + ORDER BY [ProductCategoryName] + DENSIFY "isDensified" +COLUMN t[SalesUpToDate] = RUNNINGSUM([CurrentYearSales], Rows) +EVALUATE t +ORDER BY t[ProductCategoryName] ASC, t[Year] ASC +``` + +Returns a table that summarizes the total sales for each product category and calendar year, as well as the total sales for that category up to a given year. + +## See also + +[INDEX](index-function-dax.md) +[MOVINGAVERAGE](movingaverage-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index e8d1bdf37..4e022be6b 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -177,6 +177,8 @@ href: orderby-function-dax.md - name: PARTITIONBY href: partitionby-function-dax.md + - name: RANGE + href: range-function-dax.md - name: RANK href: rank-function-dax.md - name: REMOVEFILTERS @@ -507,6 +509,10 @@ href: error-function.md - name: EVALUATEANDLOG href: evaluateandlog-function-dax.md + - name: MOVINGAVERAGE + href: movingaverage-function-dax.md + - name: RUNNINGSUM + href: runningsum-function-dax.md - name: TOCSV href: tocsv-function-dax.md - name: TOJSON diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index d6c98994f..f6c138817 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -176,5 +176,6 @@ Returns the cumulative total sales by month, calculated along each quarter. [OFFSET](offset-function-dax.md) [ORDERBY](orderby-function-dax.md) [PARTITIONBY](partitionby-function-dax.md) +[RANGE](range-function-dax.md) [RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) From 996eb04efdd825586b7b1a11363a1b4cf5c0b5f1 Mon Sep 17 00:00:00 2001 From: Mario da Silva Date: Wed, 18 Jan 2023 11:27:24 -0800 Subject: [PATCH 406/934] changing functions' category from "other" to "filter" --- query-languages/dax/filter-functions-dax.md | 2 ++ query-languages/dax/other-functions-dax.md | 2 -- query-languages/dax/toc.yml | 8 ++++---- query-languages/dax/window-function-dax.md | 2 ++ 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 20d2f4409..5536636cc 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -24,6 +24,7 @@ The filter and value functions in DAX are some of the most complex and powerful, |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | |[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | +|[MOVINGAVERAGE](movingaverage-function-dax.md)|Returns a moving average calculated along the given axis of the Visual Calculation data grid.| |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| |[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a WINDOW function’s \ parameter.| @@ -31,5 +32,6 @@ The filter and value functions in DAX are some of the most complex and powerful, |[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | +|[RUNNINGSUM](runningsum-function-dax.md)|Returns a running sum calculated along the given axis of the Visual Calculation data grid.| |[SELECTEDVALUE](selectedvalue-function.md) | Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. | |[WINDOW](window-function-dax.md)| Returns multiple rows which are positioned within the given interval. | diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index 36dccdec8..a0a394d0f 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -13,7 +13,5 @@ These functions perform unique actions that cannot be defined by any of the cate |[BLANK](blank-function-dax.md) | Returns a blank. | |[ERROR](error-function.md) | Raises an error with an error message. | |[EVALUATEANDLOG](evaluateandlog-function-dax.md) | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. | -|[MOVINGAVERAGE](movingaverage-function-dax.md)|Returns a moving average calculated along the given axis of the Visual Calculation data grid.| -|[RUNNINGSUM](runningsum-function-dax.md)|Returns a running sum calculated along the given axis of the Visual Calculation data grid.| |[TOCSV](tocsv-function-dax.md) | Returns a table as a string in CSV format. | |[TOJSON](tojson-function-dax.md) | Returns a table as a string in JSON format. | diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 4e022be6b..b5fc667d5 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -171,6 +171,8 @@ href: lookupvalue-function-dax.md - name: MATCHBY href: matchby-function-dax.md + - name: MOVINGAVERAGE + href: movingaverage-function-dax.md - name: OFFSET href: offset-function-dax.md - name: ORDERBY @@ -185,6 +187,8 @@ href: removefilters-function-dax.md - name: ROWNUMBER href: rownumber-function-dax.md + - name: RUNNINGSUM + href: runningsum-function-dax.md - name: SELECTEDVALUE href: selectedvalue-function.md - name: WINDOW @@ -509,10 +513,6 @@ href: error-function.md - name: EVALUATEANDLOG href: evaluateandlog-function-dax.md - - name: MOVINGAVERAGE - href: movingaverage-function-dax.md - - name: RUNNINGSUM - href: runningsum-function-dax.md - name: TOCSV href: tocsv-function-dax.md - name: TOJSON diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index f6c138817..16fab7850 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -173,9 +173,11 @@ Returns the cumulative total sales by month, calculated along each quarter. ## Related content [INDEX](index-function-dax.md) +[MOVINGAVERAGE](movingaverage-function-dax.md) [OFFSET](offset-function-dax.md) [ORDERBY](orderby-function-dax.md) [PARTITIONBY](partitionby-function-dax.md) [RANGE](range-function-dax.md) [RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) +[RUNNINGSUM](runningsum-function-dax.md) From d64bef859cd0ce41a2a753dd6e2374b8b7de8174 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Tue, 16 Jan 2024 16:03:27 -0800 Subject: [PATCH 407/934] de-capitalizing "visual calculations" --- query-languages/dax/filter-functions-dax.md | 4 ++-- query-languages/dax/movingaverage-function-dax.md | 4 ++-- query-languages/dax/range-function-dax.md | 2 +- query-languages/dax/runningsum-function-dax.md | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 5536636cc..700542579 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -24,7 +24,7 @@ The filter and value functions in DAX are some of the most complex and powerful, |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | |[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | -|[MOVINGAVERAGE](movingaverage-function-dax.md)|Returns a moving average calculated along the given axis of the Visual Calculation data grid.| +|[MOVINGAVERAGE](movingaverage-function-dax.md)|Returns a moving average calculated along the given axis of the visual calculation data grid.| |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a WINDOW function’s partitions.| |[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a WINDOW function’s \ parameter.| @@ -32,6 +32,6 @@ The filter and value functions in DAX are some of the most complex and powerful, |[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | -|[RUNNINGSUM](runningsum-function-dax.md)|Returns a running sum calculated along the given axis of the Visual Calculation data grid.| +|[RUNNINGSUM](runningsum-function-dax.md)|Returns a running sum calculated along the given axis of the visual calculation data grid.| |[SELECTEDVALUE](selectedvalue-function.md) | Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. | |[WINDOW](window-function-dax.md)| Returns multiple rows which are positioned within the given interval. | diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index c26d3959b..2c1f8af67 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -13,7 +13,7 @@ recommendations: false # MOVINGAVERAGE -Returns a moving average calculated along the given axis of the Visual Calculation data grid. That is, the average of the given column calculated over the last \ rows. +Returns a moving average calculated along the given axis of the visual calculation data grid. That is, the average of the given column calculated over the last \ rows. ## Syntax @@ -37,7 +37,7 @@ A scalar value, the moving average at the current row. ## Remarks -This function can be used in Visual Calculations only. +This function can be used in visual calculations only. The \, \ and \ parameters can be omitted. diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 8ff1ca7d4..3f3460ffe 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -36,7 +36,7 @@ An interval of data rows. ## Remarks -This function can be used in Visual Calculations only. +This function can be used in visual calculations only. The \, \ and \ parameters can be omitted. diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 8b810feab..dc92e35c5 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -13,7 +13,7 @@ recommendations: false # RUNNINGSUM -Returns a running sum calculated along the given axis of the Visual Calculation data grid. That is, the sum of the given column calculated over all rows up to the current row. +Returns a running sum calculated along the given axis of the visual calculation data grid. That is, the sum of the given column calculated over all rows up to the current row. ## Syntax @@ -35,7 +35,7 @@ A scalar value, the running sum up to the current row. ## Remarks -This function can be used in Visual Calculations only. +This function can be used in visual calculations only. The \ and \ parameters can be omitted. From 25e066844158927953ecb35a181bb411e779a150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Tue, 6 Feb 2024 16:18:26 -0800 Subject: [PATCH 408/934] adding reset parameter --- query-languages/dax/movingaverage-function-dax.md | 5 +++-- query-languages/dax/range-function-dax.md | 5 +++-- query-languages/dax/runningsum-function-dax.md | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 2c1f8af67..e43abad9b 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -18,7 +18,7 @@ Returns a moving average calculated along the given axis of the visual calculati ## Syntax ```dax -MOVINGAVERAGE ( , [, ][, ][, ] ) +MOVINGAVERAGE ( , [, ][, ][, ][, ] ) ``` ### Parameters @@ -30,6 +30,7 @@ MOVINGAVERAGE ( , [, ][, ][, ] |includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |axis|(Optional) An axis reference, the direction along which the moving average will be calculated.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| +|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -39,7 +40,7 @@ A scalar value, the moving average at the current row. This function can be used in visual calculations only. -The \, \ and \ parameters can be omitted. +The \, \, \ and \ parameters can be omitted. ## Example 1 diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 3f3460ffe..731d8da20 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -18,7 +18,7 @@ Returns an interval of rows within the given axis, relative to the current row. ## Syntax ```dax -RANGE ( [, ][, ][, ] ) +RANGE ( [, ][, ][, ][, ] ) ``` ### Parameters @@ -29,6 +29,7 @@ RANGE ( [, ][, ][, ] ) |includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |axis|(Optional) An axis reference, the direction along which the interval will be created.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| +|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -38,7 +39,7 @@ An interval of data rows. This function can be used in visual calculations only. -The \, \ and \ parameters can be omitted. +The \, \, \ and \ parameters can be omitted. ## Example 1 diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index dc92e35c5..264bb5020 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -18,7 +18,7 @@ Returns a running sum calculated along the given axis of the visual calculation ## Syntax ```dax -RUNNINGSUM ( [, ][, ] ) +RUNNINGSUM ( [, ][, ][, ] ) ``` ### Parameters @@ -28,6 +28,7 @@ RUNNINGSUM ( [, ][, ] ) |column|The column that provides the value for each row.| |axis|(Optional) An axis reference, the direction along which the running sum will be calculated.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| +|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -37,7 +38,7 @@ A scalar value, the running sum up to the current row. This function can be used in visual calculations only. -The \ and \ parameters can be omitted. +The \, \ and \ parameters can be omitted. ## Example From 61962f9b82e9221b416d3c2442aaef48270805fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Wed, 14 Feb 2024 15:56:28 -0800 Subject: [PATCH 409/934] improving visual calc examples: shortening formulas and adding screenshots --- .../dax-visualcalc-movingaverage.png | Bin 0 -> 61829 bytes .../dax-queries/dax-visualcalc-range.png | Bin 0 -> 62313 bytes .../dax-queries/dax-visualcalc-runningsum.png | Bin 0 -> 30804 bytes .../dax/movingaverage-function-dax.md | 52 +++------------- query-languages/dax/range-function-dax.md | 56 +++--------------- .../dax/runningsum-function-dax.md | 24 ++------ 6 files changed, 20 insertions(+), 112 deletions(-) create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-movingaverage.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-range.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-runningsum.png diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-movingaverage.png b/query-languages/dax/media/dax-queries/dax-visualcalc-movingaverage.png new file mode 100644 index 0000000000000000000000000000000000000000..9a0eb4de19ade71895e9d28e30482558eab7376d GIT binary patch literal 61829 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

)+hUDn}k=Br`ii)(hAAi2b~E&ap&Ks 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 KWVQJB!2bor#{rB0 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-range.png b/query-languages/dax/media/dax-queries/dax-visualcalc-range.png new file mode 100644 index 0000000000000000000000000000000000000000..8965ea0c8d2ca76a7c538115dd75c530239abbe2 GIT binary patch literal 62313 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 E1NvqObpQYW literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-runningsum.png b/query-languages/dax/media/dax-queries/dax-visualcalc-runningsum.png new file mode 100644 index 0000000000000000000000000000000000000000..1d5ad4b6fe6aa2b7e15cd31ebf3256c77161ed54 GIT binary patch literal 30804 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index e43abad9b..62832b860 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -26,7 +26,7 @@ MOVINGAVERAGE ( , [, ][, ][, ] |Term|Definition| |--------|--------------| |column|The column that provides the value for each row.| -|windowSize|The number of rows before the current row to include in the calculation. Must be a constant value.| +|windowSize|The number of rows to include in the calculation. Must be a constant value.| |includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |axis|(Optional) An axis reference, the direction along which the moving average will be calculated.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| @@ -44,60 +44,24 @@ The \, \, \ and \ parameters can be omitted ## Example 1 -The following DAX query: +Given a table that summarizes the total sales for each product category and calendar month, the following DAX query adds a column with the average of total sales for that category in the last 6 months: ```dax -DEFINE -VAR _Core = SUMMARIZECOLUMNS( - 'DimDate'[Year], - 'DimDate'[MonthNumberOfYear], - 'DimProduct'[ProductCategoryName], - "CurrentMonthSales", SUM('FactInternetSales'[SalesAmount]) -) -TABLE t = _Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year], [MonthNumberOfYear] - ORDER BY [Year], [MonthNumberOfYear] - AXIS COLUMNS - GROUP [ProductCategoryName] - ORDER BY [ProductCategoryName] - DENSIFY "isDensified" -COLUMN t[AvgSalesLast6Months] = MOVINGAVERAGE([CurrentMonthSales], 5, Rows) -EVALUATE t -ORDER BY t[ProductCategoryName] ASC, t[Year] ASC, t[MonthNumberOfYear] ASC +AvgSalesLast6Months = MOVINGAVERAGE([SalesAmount], 6, Rows) ``` -Returns a table that summarizes the total sales for each product category and calendar month, as well as the average of total sales for that category in the last 6 months. +The screenshot below shows the visual matrix and the visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-movingaverage.png) ## Example 2 -The following DAX query: +Given the same table, the following DAX query adds a column with the average of total sales for that category in the previous 12 months (not including the current month): ```dax -DEFINE -VAR _Core = SUMMARIZECOLUMNS( - 'DimDate'[Year], - 'DimDate'[MonthNumberOfYear], - 'DimProduct'[ProductCategoryName], - "CurrentMonthSales", SUM('FactInternetSales'[SalesAmount]) -) -TABLE t = _Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year], [MonthNumberOfYear] - ORDER BY [Year], [MonthNumberOfYear] - AXIS COLUMNS - GROUP [ProductCategoryName] - ORDER BY [ProductCategoryName] - DENSIFY "isDensified" -COLUMN t[AvgSalesPrev12Months] = MOVINGAVERAGE([CurrentMonthSales], 12, FALSE, Rows, KEEP) -EVALUATE t -ORDER BY t[ProductCategoryName] ASC, t[Year] ASC, t[MonthNumberOfYear] ASC +AvgSalesPrev12Months = MOVINGAVERAGE([SalesAmount], 12, FALSE, Rows, KEEP) ``` -Returns a table that summarizes the total sales for each product category and calendar month, as well as the average of total sales for that category in the previous 12 months (not including the current month). - ## See also [INDEX](index-function-dax.md) diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 731d8da20..6cc53c6b1 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -43,66 +43,24 @@ The \, \, \ and \ parameters can be omitted ## Example 1 -The following DAX query: +Given a table that summarizes the total sales for each product category and month, the following DAX query adds a column with the total sales in the last 6 months: ```dax -DEFINE -VAR _Core = SUMMARIZECOLUMNS( - 'DimDate'[Year], - 'DimDate'[MonthNumberOfYear], - 'DimProduct'[ProductCategoryName], - "CurrentMonthSales", SUM('FactInternetSales'[SalesAmount]) -) -TABLE t = _Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year], [MonthNumberOfYear] - ORDER BY [Year], [MonthNumberOfYear] - AXIS COLUMNS - GROUP [ProductCategoryName] - ORDER BY [ProductCategoryName] - DENSIFY "isDensified" -COLUMN t[TotalSalesLast6Months] = CALCULATE( - SUM([CurrentMonthSales]), - RANGE(-5, Rows) -) -EVALUATE t -ORDER BY t[ProductCategoryName] ASC, t[Year] ASC, t[MonthNumberOfYear] ASC +TotalSalesLast6Months = CALCULATE(SUM([SalesAmount]), RANGE(-5, Rows)) ``` -Returns a table that summarizes the total sales for each product category and month, as well as the total sales in the last 6 months. +The screenshot below shows the visual matrix and the visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-range.png) ## Example 2 -The following DAX query: +Given the same table, the following DAX query adds a column with the total sales in the following 12 months, not including the current month: ```dax -DEFINE -VAR _Core = SUMMARIZECOLUMNS( - 'DimDate'[Year], - 'DimDate'[MonthNumberOfYear], - 'DimProduct'[ProductCategoryName], - "CurrentMonthSales", SUM('FactInternetSales'[SalesAmount]) -) -TABLE t = _Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year], [MonthNumberOfYear] - ORDER BY [Year], [MonthNumberOfYear] - AXIS COLUMNS - GROUP [ProductCategoryName] - ORDER BY [ProductCategoryName] - DENSIFY "isDensified" -COLUMN t[TotalSalesFollowingYear] = CALCULATE( - SUM([CurrentMonthSales]), - RANGE(12, FALSE, Rows, KEEP) -) -EVALUATE t -ORDER BY t[ProductCategoryName] ASC, t[Year] ASC, t[MonthNumberOfYear] ASC +TotalSalesFollowingYear = CALCULATE(SUM([SalesAmount]), RANGE(12, FALSE, Rows, KEEP)) ``` -Returns a table that summarizes the total sales for each product category and month, as well as the total sales in the following 12 months, not including the current month. - ## See also [INDEX](index-function-dax.md) diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 264bb5020..e8c658916 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -42,29 +42,15 @@ The \, \ and \ parameters can be omitted. ## Example -The following DAX query: +Given a table that summarizes the total sales for each product category and calendar year, the following DAX query adds a column with the total sales for that category up to a given year. ```dax -VAR _Core = SUMMARIZECOLUMNS( - 'DimDate'[Year], - 'DimProduct'[ProductCategoryName], - "CurrentYearSales", SUM('FactInternetSales'[SalesAmount]) -) -TABLE t = _Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year] - ORDER BY [Year] - AXIS COLUMNS - GROUP [ProductCategoryName] - ORDER BY [ProductCategoryName] - DENSIFY "isDensified" -COLUMN t[SalesUpToDate] = RUNNINGSUM([CurrentYearSales], Rows) -EVALUATE t -ORDER BY t[ProductCategoryName] ASC, t[Year] ASC +SalesUpToDate = RUNNINGSUM([SalesAmount], Rows) ``` -Returns a table that summarizes the total sales for each product category and calendar year, as well as the total sales for that category up to a given year. +The screenshot below shows the visual matrix and the visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-runningsum.png) ## See also From 296d2a296438bfab1883433bb3adf18b0fe7f25f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 16 Feb 2024 14:18:21 -0500 Subject: [PATCH 410/934] Update table-expandlistcolumn.md --- query-languages/m/table-expandlistcolumn.md | 24 +++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index b5063e0a1..baa028bf2 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -12,7 +12,7 @@ Table.ExpandListColumn(table as table, column as text) as table ## About -Given a `table`, where a `column` is a list of values, splits the list into a row for each value. Values in the other columns are duplicated in each new row created. +Given a `table`, when `column` contains a list of values, splits the list into a row for each value. If, instead, `column` contains a nested table, treats the nested table as though it were a list of records, which it then splits into a row for each value. Values in the other columns are duplicated in each new row created. ## Example 1 @@ -27,12 +27,28 @@ Table.ExpandListColumn( ) ``` +## Example 1 + +Split the nested table column [Components] in the table. + +**Usage** + +```powerquery-m +Table.ExpandListColumn( + #table( + {"Part", "Components"}, + { + {"Tool", #table({"Name", "Quantity"}, {{"Thingamajig", 2}, {"Widget", 3}})} + } + ), + "Components" +) +``` **Output** ```powerquery-m Table.FromRecords({ - [Name = "Bob", Discount = 0.15], - [Name = "Jim", Discount = 0.15], - [Name = "Paul", Discount = 0.15] + [Part = "Tool", [Name = "Thingamajig", Quantity = 2], + [Part = "Tool", [Name = "Widget", Quantity = 3] }) ``` From 403db3eca1cbcdd67e427e2741909bd2760c46ed Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 16 Feb 2024 18:44:31 -0800 Subject: [PATCH 411/934] Update docfx.json --- query-languages/m/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index e56ec42e4..5bf1afea9 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -37,7 +37,7 @@ "globalMetadata": { "feedback_system": "Standard", "feedback_product_url": "/power-query/feedback", - "feedback_help_link_url": "https://learn.microsoft.com/power-query/feedback", + "feedback_help_link_url": "https://community.fabric.microsoft.com/t5/Power-Query/bd-p/power-bi-services", "feedback_help_link_type": "ask-the-community", "breadcrumb_path": "/powerquery-m/breadcrumb/toc.json", "uhfHeaderId": "MSDocsHeader-PowerQueryM", From 720f357a9d9501f87d6c57a05c81bc1c554a4a70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Tue, 20 Feb 2024 17:26:20 -0800 Subject: [PATCH 412/934] break lines in 'See Also' section in visual calc shortcut functions' docs --- query-languages/dax/movingaverage-function-dax.md | 10 +++++----- query-languages/dax/range-function-dax.md | 8 ++++---- query-languages/dax/runningsum-function-dax.md | 10 +++++----- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 62832b860..5034f7604 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -64,8 +64,8 @@ AvgSalesPrev12Months = MOVINGAVERAGE([SalesAmount], 12, FALSE, Rows, KEEP) ## See also -[INDEX](index-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[RUNNINGSUM](runningsum-function-dax.md) -[WINDOW](window-function-dax.md) +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[RUNNINGSUM](runningsum-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 6cc53c6b1..ddb69d08a 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -63,7 +63,7 @@ TotalSalesFollowingYear = CALCULATE(SUM([SalesAmount]), RANGE(12, FALSE, Rows, K ## See also -[INDEX](index-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index e8c658916..b09025558 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -54,8 +54,8 @@ The screenshot below shows the visual matrix and the visual calculation expressi ## See also -[INDEX](index-function-dax.md) -[MOVINGAVERAGE](movingaverage-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) +[INDEX](index-function-dax.md) +[MOVINGAVERAGE](movingaverage-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) From d02f3d1feec4750d994bf6aac574285f55824f51 Mon Sep 17 00:00:00 2001 From: Jeffrey Wang Date: Wed, 21 Feb 2024 17:50:06 -0800 Subject: [PATCH 413/934] EXPAND & COLLAPSE --- query-languages/dax/collapse-function-dax.md | 76 +++++++++++++++++ .../dax/collapseall-function-dax.md | 66 +++++++++++++++ query-languages/dax/expand-function-dax.md | 77 ++++++++++++++++++ query-languages/dax/expandall-function-dax.md | 67 +++++++++++++++ .../dax-queries/dax-visualcalc-collapse.png | Bin 0 -> 148302 bytes .../dax-visualcalc-collapseall.png | Bin 0 -> 103144 bytes .../dax-queries/dax-visualcalc-expand.png | Bin 0 -> 153174 bytes .../dax-queries/dax-visualcalc-expandall.png | Bin 0 -> 96404 bytes 8 files changed, 286 insertions(+) create mode 100644 query-languages/dax/collapse-function-dax.md create mode 100644 query-languages/dax/collapseall-function-dax.md create mode 100644 query-languages/dax/expand-function-dax.md create mode 100644 query-languages/dax/expandall-function-dax.md create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-collapse.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-collapseall.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-expand.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-expandall.png diff --git a/query-languages/dax/collapse-function-dax.md b/query-languages/dax/collapse-function-dax.md new file mode 100644 index 000000000..6f1086668 --- /dev/null +++ b/query-languages/dax/collapse-function-dax.md @@ -0,0 +1,76 @@ +--- +description: "Learn more about: COLLAPSE" +title: "COLLAPSE function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 02/20/2024 +ms.topic: reference +author: jewang-msft +ms.author: jewang +recommendations: false + +--- + +# COLLAPSE + +Retrieves a context at a higher level compared to the current context. If an expression is provided, returns its value in the new context, allowing for navigation in hierarchies and calculation at a higher level. + +## Syntax + +The syntaxes that perform both navigation and calculation. +```dax +COLLAPSE ( , [, N] ) +COLLAPSE ( , [, ] ... ) +``` + +The syntaxes that perform navigation only. +```dax +COLLAPSE ( [, N] ) +COLLAPSE ( [, ] ... ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|expression|The expression to be evaluated in the new context.| +|axis|An axis reference.| +|column|A column in the data grid.| +|N|(Optional) The number of levels to collapse. If omitted, the default value is 1.| + +## Return value + +For versions that perform both navigation and calculation, the function returns the value of the expression in the new context after navigating to a new level. +For versions that perform navigation only, the function modifies the evaluation context by navigating to a new level. + +## Remarks + +* This function can be used only in visual calculations. +* The navigation-only versions of the function can be used inside the CALCULATE function. +* The levels of the hierarchy are determined by all columns in each axis referenced by the axis reference. +* When columns are specified, the axes are determined by including each column's axis the first time it is encountered. +* When N is specified, the function navigates up the hierarchy N levels from the current level or the topmost level, whichever comes first. +* When multiple columns are specified, the function navigates up the hierarchy until it reaches the first level at which none of the specified columns is present. +* Navigation begins at the current cell in the data matrix, ascending up the hierarchy. If a specified column is at a level lower than the current cell, it will be disregarded. + +## Example + +Given a table that summarizes the total sales for a hierarchy with levels for total, year, quarter and month, the following DAX calculations fetch the value of [SalesAmount] at the parent level, the grandparent level, and the year or self level, respectively. + +```dax +ParentValue = COLLAPSE([SalesAmount], ROWS) +GrandParentValue = COLLAPSE([SalesAmount], ROWS, 2) +YearOrSelfValue = COLLAPSE([SalesAmount], [Month]) +``` + +The screenshot below shows the matrix with the three visual calculations. + +![DAX visual calculation](media/dax-queries/dax-visualcalc-collapse.png) + +## See also + +[EXPAND](expand-function-dax.md) +[EXPANDALL](expandall-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) + + diff --git a/query-languages/dax/collapseall-function-dax.md b/query-languages/dax/collapseall-function-dax.md new file mode 100644 index 000000000..0ab059bd4 --- /dev/null +++ b/query-languages/dax/collapseall-function-dax.md @@ -0,0 +1,66 @@ +--- +description: "Learn more about: COLLAPSEALL" +title: "COLLAPSEALL function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 02/20/2024 +ms.topic: reference +author: jewang-msft +ms.author: jewang +recommendations: false + +--- + +# COLLAPSEALL + +Retrieves a context at the highest level compared to the current context. If an expression is provided, returns its value in the new context, allowing for navigation in hierarchies and calculation at the highest level. + +## Syntax + +The syntax that performs both navigation and calculation. +```dax +COLLAPSEALL ( , ) +``` + +The syntax that performs navigation only. +```dax +COLLAPSEALL ( ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|expression|The expression to be evaluated in the new context.| +|axis|An axis reference.| + +## Return value + +For the version that performs both navigation and calculation, the function returns the value of the expression in the new context after navigating to the highest level. +For the version that performs navigation only, the function modifies the evaluation context by navigating to the highest level. + +## Remarks + +* This function can be used only in visual calculations. +* The navigation-only versions of the function can be used inside the CALCULATE function. +* The levels of the hierarchy are determined by all columns in each axis referenced by the axis reference. + +## Example + +Given a table that summarizes the total sales for a hierarchy with levels for total, year, quarter and month, the following DAX calculation fetches the value of [SalesAmount] at the highest level, total. + +```dax +TotalValue = COLLAPSEALL([SalesAmount], ROWS) +``` + +The screenshot below shows the matrix with the visual calculation. + +![DAX visual calculation](media/dax-queries/dax-visualcalc-collapseall.png) + +## See also + +[EXPAND](expand-function-dax.md) +[EXPANDALL](expandall-function-dax.md) +[COLLAPSE](collapse-function-dax.md) + + diff --git a/query-languages/dax/expand-function-dax.md b/query-languages/dax/expand-function-dax.md new file mode 100644 index 000000000..b2e247e00 --- /dev/null +++ b/query-languages/dax/expand-function-dax.md @@ -0,0 +1,77 @@ +--- +description: "Learn more about: EXPAND" +title: "EXPAND function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 02/20/2024 +ms.topic: reference +author: jewang-msft +ms.author: jewang +recommendations: false + +--- + +# EXPAND + +Retrieves a context with added levels of detail compared to the current context. If an expression is provided, returns its value in the new context, allowing for navigation in hierarchies and calculation at a more detailed level. + +## Syntax + +The syntaxes that perform both navigation and calculation. +```dax +EXPAND ( , [, N] ) +EXPAND ( , [, ] ... ) +``` + +The syntaxes that perform navigation only. +```dax +EXPAND ( [, N] ) +EXPAND ( [, ] ... ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|expression|The expression to be evaluated in the new context.| +|axis|An axis reference.| +|column|A column in the data grid.| +|N|(Optional) The number of levels to expand. If omitted, the default value is 1.| + +## Return value + +For versions that perform both navigation and calculation, the function returns the value of the expression in the new context after navigating to a new level. +For versions that perform navigation only, the function modifies the evaluation context by navigating to a new level. + +## Remarks + +* This function can be used only in visual calculations. +* The navigation-only versions of the function can be used inside the CALCULATE function. +* The levels of the hierarchy are determined by all columns in each axis referenced by the axis reference. +* When columns are specified, the axes are determined by including each column's axis the first time it is encountered. +* When N is specified, the function navigates down the hierarchy N levels from the current level or the bottom level, whichever comes first. +* When multiple columns are specified, the function navigates down the hierarchy until it reaches the first level at which all the specified columns are present. +* Navigation begins at the current cell in the data matrix, descending down the hierarchy. If a specified column is at a level higher than the current cell, it will be disregarded. +* Often, there are multiple descendent cells at a lower level; therefore, some form of aggregation is required for the expression argument. + +## Example + +Given a table that summarizes the total sales for a hierarchy with levels for total, year, quarter and month, the following DAX calculations calculate the maximum value of [SalesAmount] at the child level, the grandchildren level, and the month level, respectively. + +```dax +MaxOfChildren = EXPAND(MAX([SalesAmount]), ROWS) +MaxOfGrandChildren = EXPAND(MAX([SalesAmount]), ROWS, 2) +MaxOfMonthChildren = EXPAND(MAX([SalesAmount]), [Month]) +``` + +The screenshot below shows the matrix with the three visual calculations. + +![DAX visual calculation](media/dax-queries/dax-visualcalc-expand.png) + +## See also + +[EXPANDALL](expandall-function-dax.md) +[COLLAPSE](collapse-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) + + diff --git a/query-languages/dax/expandall-function-dax.md b/query-languages/dax/expandall-function-dax.md new file mode 100644 index 000000000..7c400e9be --- /dev/null +++ b/query-languages/dax/expandall-function-dax.md @@ -0,0 +1,67 @@ +--- +description: "Learn more about: EXPANDALL" +title: "EXPANDALL function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 02/21/2024 +ms.topic: reference +author: jewang-msft +ms.author: jewang +recommendations: false + +--- + +# EXPANDALL + +Retrieves a context at the most detailed level. If an expression is provided, returns its value in the new context, allowing for navigation in hierarchies and calculation at the most detailed level. + +## Syntax + +The syntax that performs both navigation and calculation. +```dax +EXPANDALL ( , ) +``` + +The syntax that performs navigation only. +```dax +EXPANDALL ( ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|expression|The expression to be evaluated in the new context.| +|axis|An axis reference.| + +## Return value + +For the version that performs both navigation and calculation, the function returns the value of the expression in the new context after navigating to the lowest level of the hierarchy. +For the version that performs navigation only, the function modifies the evaluation context by navigating to the lowest level of the hierarchy. + +## Remarks + +* This function can be used only in visual calculations. +* The navigation-only version of the function can be used inside the CALCULATE function. +* The levels of the hierarchy are determined by all columns in each axis referenced by the axis reference. +* Often, there are multiple descendent cells at a lower level; therefore, some form of aggregation is required for the expression argument. + +## Example + +Given a table that summarizes the total sales for a hierarchy with levels for total, year, quarter and month, the following DAX calculation calculates the maximum value of [SalesAmount] at the lowest level, [Month]. + +```dax +MaxOfLeafLevel = EXPANDALL(MAX([SalesAmount]), ROWS) +``` + +The screenshot below shows the matrix with the visual calculation. + +![DAX visual calculation](media/dax-queries/dax-visualcalc-expandall.png) + +## See also + +[EXPAND](expand-function-dax.md) +[COLLAPSE](collapse-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) + + diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-collapse.png b/query-languages/dax/media/dax-queries/dax-visualcalc-collapse.png new file mode 100644 index 0000000000000000000000000000000000000000..a3921778779a4ec373eedd358ac018c10558ee12 GIT binary patch literal 148302 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

$8D7+`oYFtC+>g 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

PxXvAfP(t3#!|M!&J;F@Jo_wZV$84~ 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�{G^v2@tK}A?UG$UG7KRa(Psd5f2=!$ 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

Y<@3Iw^%TAr3W3%{m)1W@WcvfXk9fE&mVh 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

JB!vc7)n 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

-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 bf1Z(R4(ubHDX$Na5RZz2rhL7uW%z#q*gdza literal 0 HcmV?d00001 From 0353f3b466d5bdc657ef89fba362c833f616d107 Mon Sep 17 00:00:00 2001 From: Jeffrey Wang Date: Thu, 22 Feb 2024 10:44:51 -0800 Subject: [PATCH 414/934] Fix linebreaks in See Also section --- query-languages/dax/collapse-function-dax.md | 6 +++--- query-languages/dax/collapseall-function-dax.md | 6 +++--- query-languages/dax/expand-function-dax.md | 6 +++--- query-languages/dax/expandall-function-dax.md | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/query-languages/dax/collapse-function-dax.md b/query-languages/dax/collapse-function-dax.md index 6f1086668..bb7a87577 100644 --- a/query-languages/dax/collapse-function-dax.md +++ b/query-languages/dax/collapse-function-dax.md @@ -69,8 +69,8 @@ The screenshot below shows the matrix with the three visual calculations. ## See also -[EXPAND](expand-function-dax.md) -[EXPANDALL](expandall-function-dax.md) -[COLLAPSEALL](collapseall-function-dax.md) +[EXPAND](expand-function-dax.md) +[EXPANDALL](expandall-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) diff --git a/query-languages/dax/collapseall-function-dax.md b/query-languages/dax/collapseall-function-dax.md index 0ab059bd4..95d601048 100644 --- a/query-languages/dax/collapseall-function-dax.md +++ b/query-languages/dax/collapseall-function-dax.md @@ -59,8 +59,8 @@ The screenshot below shows the matrix with the visual calculation. ## See also -[EXPAND](expand-function-dax.md) -[EXPANDALL](expandall-function-dax.md) -[COLLAPSE](collapse-function-dax.md) +[EXPAND](expand-function-dax.md) +[EXPANDALL](expandall-function-dax.md) +[COLLAPSE](collapse-function-dax.md) diff --git a/query-languages/dax/expand-function-dax.md b/query-languages/dax/expand-function-dax.md index b2e247e00..018885d3c 100644 --- a/query-languages/dax/expand-function-dax.md +++ b/query-languages/dax/expand-function-dax.md @@ -70,8 +70,8 @@ The screenshot below shows the matrix with the three visual calculations. ## See also -[EXPANDALL](expandall-function-dax.md) -[COLLAPSE](collapse-function-dax.md) -[COLLAPSEALL](collapseall-function-dax.md) +[EXPANDALL](expandall-function-dax.md) +[COLLAPSE](collapse-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) diff --git a/query-languages/dax/expandall-function-dax.md b/query-languages/dax/expandall-function-dax.md index 7c400e9be..7c1772be6 100644 --- a/query-languages/dax/expandall-function-dax.md +++ b/query-languages/dax/expandall-function-dax.md @@ -60,8 +60,8 @@ The screenshot below shows the matrix with the visual calculation. ## See also -[EXPAND](expand-function-dax.md) -[COLLAPSE](collapse-function-dax.md) -[COLLAPSEALL](collapseall-function-dax.md) +[EXPAND](expand-function-dax.md) +[COLLAPSE](collapse-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) From 24945018b297c9a35110ab63fa80a662ba8ddb33 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:02:52 -0800 Subject: [PATCH 415/934] Update first-function-dax.md --- query-languages/dax/first-function-dax.md | 54 ++--------------------- 1 file changed, 4 insertions(+), 50 deletions(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 9a39dbf42..fc46b9166 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -33,60 +33,14 @@ This function can only be used in a visual calculation. ## Example -With the following DAX query: +The following visual calculation returns the sales amount of the first row on ROWS axis, that resets on the lowest parent. ```dax -DEFINE - VAR Core = - SUMMARIZECOLUMNS ( - ROLLUPADDISSUBTOTAL ( - 'DimDate'[Year], - "IsGrandTotalRowTotal", - ROLLUPGROUP ( 'DimDate'[Month], 'DimDate'[MonthNumberOfYear] ), - "IsDM1Total" - ), - ROLLUPADDISSUBTOTAL ( - 'DimProduct'[ProductCategoryName], - "IsGrandTotalColumnTotal", - 'DimProduct'[ProductSubcategoryName], - "IsDM4Total" - ), - "SumSalesAmount", CALCULATE ( SUM ( 'FactInternetSales'[SalesAmount] ) ) - ) - TABLE t = Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year] - TOTAL [IsGrandTotalRowTotal] - GROUP - [Month], - [MonthNumberOfYear] - TOTAL [IsDM1Total] - ORDER BY - [Year], - [MonthNumberOfYear] - AXIS COLUMNS - GROUP [ProductCategoryName] - TOTAL [IsGrandTotalColumnTotal] - GROUP [ProductSubcategoryName] - TOTAL [IsDM4Total] - ORDER BY - [ProductCategoryName], - [ProductSubcategoryName] - DENSIFY "isDensified" - COLUMN t[FirstInternetSalesAmount] = - FIRST ( [SumSalesAmount], ROWS, LowestParent ) +FirstInternetSalesAmount = FIRST ( [Sum of SalesAmount], ROWS, LowestParent ) -EVALUATE -t -ORDER BY - [ProductCategoryName], - [ProductSubcategoryName], - [YEAR], - [MonthNumberOfYear] -``` +The screenshot below shows the visual matrix and the visual calculation expression: -FirstInternetSalesAmount is added as a visual calculation that returns SalesAmount of the first row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of first month of the current year. On Year level, it returns the SalesAmount of the first year across all the years. +![DAX visual calculation](media/dax-queries/dax-visualcalc-first.png) ## Related content From f2645d446fb3558caefff39dc7ac2fd5b7d61b0d Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:04:42 -0800 Subject: [PATCH 416/934] Add files via upload --- .../dax/media/dax-queries/dax-visualcalc-.png | Bin 0 -> 48899 bytes .../media/dax-queries/dax-visualcalc-first.png | Bin 0 -> 38465 bytes .../media/dax-queries/dax-visualcalc-last.png | Bin 0 -> 32667 bytes .../media/dax-queries/dax-visualcalc-next.png | Bin 0 -> 45880 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-first.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-last.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-next.png diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-.png b/query-languages/dax/media/dax-queries/dax-visualcalc-.png new file mode 100644 index 0000000000000000000000000000000000000000..26f9dd948e0383dda46059028e3c7bd55537e489 GIT binary patch literal 48899 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 c(sug0wCm0Px# literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-last.png b/query-languages/dax/media/dax-queries/dax-visualcalc-last.png new file mode 100644 index 0000000000000000000000000000000000000000..c39329ca74da1a0dbefe1f63aa780421e0e24edf GIT binary patch literal 32667 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

||{|6->8)9Il`Hi51^ zb-d_DKcXO;1}r5J~v?p(_v(*x_1_Q z38Eju(E5zifc!sdLpN7Ib{@HFuuDfwcc!o|H&jtU@mwf77D`cSH?Z?`1wi!{s7b}I z!qv_tg8lrk>AvaHk_oTvmyZc}|0h*XtrlSN+ysqu>-@fpZ=Ls~uYimMxGCN!373Y1 z%Nh1zp3@R6-?I%mNm+fKlL+UwIQ?9YlkC)uZ>by?ee98j7xlgSx=zSW7=2Q@epmn} z?N-PdFr4NoSmtjGZU=om|MG;gKvN~UN}6C4dZ4jW=bO2h{<%^BiZO)Y2iG3+>-&N< zOECMwbWF=stV@aDiH1@(QcUG*tL0NI3G!q9luTZ$jU)Tpd_&ZNc55e6$ppi-E1;<& z{&UD#7x!@cqdV;DAn7Q|=JNG=Vx{^EKBR6^)Aa0M>B7jHutR}v%MSXkDdKW38f-E~ z4QR>uNp&Z!FV$8z{y{KIf+WWgBrexL+W|ZCm_i0JTi_^&h3Z+=;1eA?$dXsni$4gH zMPGmSI!b<0BS=&qUmg*XtyY02PaN@l>XQD3mG}1JG;JR41xI!; zWSHJ(mQoxGbz132?5*X7qim8>zI_>aI0rBF+?G3$_4$k|?nI|xy~X8Vc$v5Z5A{*u zz?Cy!KdlmidA$e3N%CXfGG}6DJGd_-szxDiZ7LlF?+ROXragIvGzI|tGKuy+`qDop zy3Y|wWUKkkB5l~J^@;Pb`0ym7_`v-0OW3L5brA~k(wFvqYV{>w(1CqY^c z!i9OnE`O{i-=btwlh0}BgbZ?FdGZNrVz3>vZh#DqTnRNNHHmI?1bU(4SZcB{PZ12K zJX5{4xn5uTqRkBenOWIgEOKD=$AcWXk3fx#sN&iikf@u~w!j;U;usO_rQBuYe=`JbGM zHB&#^9`%UEJS}%;!_3n1vlu90vVSiSa(ZWSULR}??cQ6OUaxg~_BrDu#pd$G%@fqY zL4|W~emXBflXjU2WG;N@PL+Rmk&XTfjd>VMgOmPN%6?|ZajsF~ZXQc8c;~6VL*NV# zLCB-xKj*;zXEQHlJU+^c=;jkh*y1s}B+xzstjFXCu<>)@SNp+zO<)G5fD6w8G^XG` z(3tneqofw^RY_8YU(>UEZN~dIkGrqbHmaU!xbe*gx%X(cA!|x5;z!(mExbYG&j7m* zwi2G75Q3JBVC-UG%MjEhb6&3Vm$BvIeU(&BYsj1L34tj@yyzU$$@aR=U#pORwp)!d zTE*ppQLz?tf4naHtFGM;SUbh@nHT>(33o$_@5cB&FU5#GoLxZH5jbW95EH2GGRcrH>D}qj5{(b06Cln>6t){B! zWY?Sp#b3o5`O9b+JI*-%zckgTI*=d2_K(40^j zy4b%loJqD-v~TgpQ=D2@|DtX(9U@wC{6xxuXhvx#c&6WU*hyQ{*z)>UobG1)kS`Rn zaBpQ5PLHpaO3Fs)(XiDJqQLm)c$!{+rZ|VLND^$DQY~}+S|Y9d`!hRL-yG6oCU~^3 zqwICDy}5pzG550G1))lld9 z18i{8{N~|usp5mKze^sr4GOVWP@fbREIJM}GGWwpFTxidpeT{@O&cf}PiNMtZ71D{ z;j)J)oQ10WkzOX5naTS%AKD&edℜ_D&0kn>{AqFe!(vEUJ8WtWeT~St}++=|c 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 literal 0 HcmV?d00001 From 311304804cf895b38208ad83a836a1491cfabeec Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:06:16 -0800 Subject: [PATCH 417/934] Update first-function-dax.md --- query-languages/dax/first-function-dax.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index fc46b9166..7c666aa72 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -37,6 +37,7 @@ The following visual calculation returns the sales amount of the first row on RO ```dax FirstInternetSalesAmount = FIRST ( [Sum of SalesAmount], ROWS, LowestParent ) +``` The screenshot below shows the visual matrix and the visual calculation expression: From d4ca294093434ce2878c61037cd32c70f724d66d Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:07:06 -0800 Subject: [PATCH 418/934] Update last-function-dax.md --- query-languages/dax/last-function-dax.md | 55 +++--------------------- 1 file changed, 5 insertions(+), 50 deletions(-) diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 2046f8f66..89c40a16d 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -33,60 +33,15 @@ This function can only be used in a visual calculation. ## Example -With the following DAX query: +The following visual calculation returns the sales amount of the last row on ROWS axis, that resets on the lowest parent. ```dax -DEFINE - VAR Core = - SUMMARIZECOLUMNS ( - ROLLUPADDISSUBTOTAL ( - 'DimDate'[Year], - "IsGrandTotalRowTotal", - ROLLUPGROUP ( 'DimDate'[Month], 'DimDate'[MonthNumberOfYear] ), - "IsDM1Total" - ), - ROLLUPADDISSUBTOTAL ( - 'DimProduct'[ProductCategoryName], - "IsGrandTotalColumnTotal", - 'DimProduct'[ProductSubcategoryName], - "IsDM4Total" - ), - "SumSalesAmount", CALCULATE ( SUM ( 'FactInternetSales'[SalesAmount] ) ) - ) - TABLE t = Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year] - TOTAL [IsGrandTotalRowTotal] - GROUP - [Month], - [MonthNumberOfYear] - TOTAL [IsDM1Total] - ORDER BY - [Year], - [MonthNumberOfYear] - AXIS COLUMNS - GROUP [ProductCategoryName] - TOTAL [IsGrandTotalColumnTotal] - GROUP [ProductSubcategoryName] - TOTAL [IsDM4Total] - ORDER BY - [ProductCategoryName], - [ProductSubcategoryName] - DENSIFY "isDensified" - COLUMN t[LastInternetSalesAmount] = - LAST ( [SumSalesAmount], ROWS, LowestParent ) - -EVALUATE -t -ORDER BY - [ProductCategoryName], - [ProductSubcategoryName], - [YEAR], - [MonthNumberOfYear] +LastInternetSalesAmount = LAST ( [Sum of SalesAmount], ROWS, LowestParent ) ``` -LastInternetSalesAmount is added as a visual calculation that returns SalesAmount of the last row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of last month of the current year. On Year level, it returns the SalesAmount of the last year across all the years. +The screenshot below shows the visual matrix and the visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-last.png) ## Related content From 5485dfcff1f5deee9dbc104069dfce429366cd22 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:08:13 -0800 Subject: [PATCH 419/934] Update previous-function-dax.md --- query-languages/dax/previous-function-dax.md | 55 ++------------------ 1 file changed, 5 insertions(+), 50 deletions(-) diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index 54b518ec7..dbe1cbb6c 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -34,60 +34,15 @@ This function can only be used in a visual calculation. ## Example -With the following DAX query: +The following visual calculation returns the sales amount of the previous row on ROWS axis, that resets on the lowest parent. ```dax -DEFINE - VAR Core = - SUMMARIZECOLUMNS ( - ROLLUPADDISSUBTOTAL ( - 'DimDate'[Year], - "IsGrandTotalRowTotal", - ROLLUPGROUP ( 'DimDate'[Month], 'DimDate'[MonthNumberOfYear] ), - "IsDM1Total" - ), - ROLLUPADDISSUBTOTAL ( - 'DimProduct'[ProductCategoryName], - "IsGrandTotalColumnTotal", - 'DimProduct'[ProductSubcategoryName], - "IsDM4Total" - ), - "SumSalesAmount", CALCULATE ( SUM ( 'FactInternetSales'[SalesAmount] ) ) - ) - TABLE t = Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year] - TOTAL [IsGrandTotalRowTotal] - GROUP - [Month], - [MonthNumberOfYear] - TOTAL [IsDM1Total] - ORDER BY - [Year], - [MonthNumberOfYear] - AXIS COLUMNS - GROUP [ProductCategoryName] - TOTAL [IsGrandTotalColumnTotal] - GROUP [ProductSubcategoryName] - TOTAL [IsDM4Total] - ORDER BY - [ProductCategoryName], - [ProductSubcategoryName] - DENSIFY "isDensified" - COLUMN t[PreviousInternetSalesAmount] = - PREVIOUS ( [SumSalesAmount], ROWS, LowestParent ) - -EVALUATE -t -ORDER BY - [ProductCategoryName], - [ProductSubcategoryName], - [YEAR], - [MonthNumberOfYear] +PreviousInternetSalesAmount = PREVIOUS ( [Sum of SalesAmount], ROWS, LowestParent ) ``` -PreviousInternetSalesAmount is added as a visual calculation that returns the SalesAmount of the previous row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of the previous month within the current year; for the first month of the year, it returns blank. On Year level, it returns the SalesAmount of the previous year of the current year; for the first year, it returns blank. +The screenshot below shows the visual matrix and the visual calculation expression: + +![DAX visual calculation](media/dax-queries/dax-visualcalc-previous.png) ## Related content From 952886b46d79f6436cc4c73716900b20eafae880 Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:09:00 -0800 Subject: [PATCH 420/934] Rename dax-visualcalc-.png to dax-visualcalc-previous.png --- ...-visualcalc-.png => dax-visualcalc-previous.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename query-languages/dax/media/dax-queries/{dax-visualcalc-.png => dax-visualcalc-previous.png} (100%) diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-.png b/query-languages/dax/media/dax-queries/dax-visualcalc-previous.png similarity index 100% rename from query-languages/dax/media/dax-queries/dax-visualcalc-.png rename to query-languages/dax/media/dax-queries/dax-visualcalc-previous.png From 654000d9e6cf293d5071b0ec75f8e921ac14c7ae Mon Sep 17 00:00:00 2001 From: keshen-msft <53491277+keshen-msft@users.noreply.github.com> Date: Thu, 22 Feb 2024 13:10:33 -0800 Subject: [PATCH 421/934] Update next-function-dax.md --- query-languages/dax/next-function-dax.md | 54 ++---------------------- 1 file changed, 4 insertions(+), 50 deletions(-) diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index a0ef9f6c4..dd05c6cc7 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -34,61 +34,15 @@ This function can only be used in a visual calculation. ## Example -With the following DAX query: +The following visual calculation returns the sales amount of the next row on ROWS axis, that resets on the lowest parent. ```dax -DEFINE - VAR Core = - SUMMARIZECOLUMNS ( - ROLLUPADDISSUBTOTAL ( - 'DimDate'[Year], - "IsGrandTotalRowTotal", - ROLLUPGROUP ( 'DimDate'[Month], 'DimDate'[MonthNumberOfYear] ), - "IsDM1Total" - ), - ROLLUPADDISSUBTOTAL ( - 'DimProduct'[ProductCategoryName], - "IsGrandTotalColumnTotal", - 'DimProduct'[ProductSubcategoryName], - "IsDM4Total" - ), - "SumSalesAmount", CALCULATE ( SUM ( 'FactInternetSales'[SalesAmount] ) ) - ) - TABLE t = Core - WITH VISUAL SHAPE - AXIS ROWS - GROUP [Year] - TOTAL [IsGrandTotalRowTotal] - GROUP - [Month], - [MonthNumberOfYear] - TOTAL [IsDM1Total] - ORDER BY - [Year], - [MonthNumberOfYear] - AXIS COLUMNS - GROUP [ProductCategoryName] - TOTAL [IsGrandTotalColumnTotal] - GROUP [ProductSubcategoryName] - TOTAL [IsDM4Total] - ORDER BY - [ProductCategoryName], - [ProductSubcategoryName] - DENSIFY "isDensified" - COLUMN t[NextInternetSalesAmount] = - NEXT ( [SumSalesAmount], ROWS, LowestParent ) - -EVALUATE -t -ORDER BY - [ProductCategoryName], - [ProductSubcategoryName], - [YEAR], - [MonthNumberOfYear] +NextInternetSalesAmount = NEXT ( [Sum of SalesAmount], ROWS, LowestParent ) ``` -NextInternetSalesAmount is added as a visual calculation that returns the SalesAmount of the next row on ROWS axis, that resets on the lowest parent. On Year and Month level, it returns the SalesAmount of the next month within the current year; for the last month of the year, it returns blank. On Year level, it returns the SalesAmount of the next year of the current year; for the last year, it returns blank. +The screenshot below shows the visual matrix and the visual calculation expression: +![DAX visual calculation](media/dax-queries/dax-visualcalc-next.png) ## Related content [FIRST](first-function-dax.md) From 59a827acd332a3a0b17b267123b873b93f4e0924 Mon Sep 17 00:00:00 2001 From: Jeffrey Wang Date: Sat, 24 Feb 2024 14:40:41 -0800 Subject: [PATCH 422/934] ISATLEVEL --- query-languages/dax/isatlevel-function-dax.md | 66 ++++++++++++++++++ .../dax-queries/dax-visualcalc-isatlevel.png | Bin 0 -> 89482 bytes 2 files changed, 66 insertions(+) create mode 100644 query-languages/dax/isatlevel-function-dax.md create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-isatlevel.png diff --git a/query-languages/dax/isatlevel-function-dax.md b/query-languages/dax/isatlevel-function-dax.md new file mode 100644 index 000000000..1174b4699 --- /dev/null +++ b/query-languages/dax/isatlevel-function-dax.md @@ -0,0 +1,66 @@ +--- +description: "Learn more about: ISATLEVEL" +title: "ISATLEVEL function (DAX) | Microsoft Docs" +ms.service: powerbi +ms.subservice: dax +ms.date: 02/20/2024 +ms.topic: reference +author: jewang-msft +ms.author: jewang +recommendations: false + +--- + +# ISATLEVEL + +Reports whether the column is present at the current level. + +## Syntax + +```dax +ISATLEVEL ( ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|column|A grouping column in the data grid.| + +## Return value + +TRUE or FALSE that indicates whether the grouping column is at the current level in the context. + +## Remarks + +* This function can be used only in visual calculations. +* Unlike other functions with similar functionality, such as ISINSCOPE, ISFILTERED, HASONEVALUE, and so on, ISATLEVEL is a function specialized for visual calculations, therefore it is guaranteed to be compatible with functions that navigate the levels of a hierarchy in the data matrix, such as EXPAND and COLLAPSE. +* A hierarchy level can contain more than one column. For example, in a [Year], [Quarter], [Month] hierarchy, the level that contains the [Quarter] column also includes the [Year] column at the same level. + +## Example + +Consider a table that includes a hierarchy with levels for total, year, quarter, and month. The following DAX calculations can be used to determine whether a specific column is at the current level in the original context or at the new level after a navigation operation. + +```dax +IsYearLevel = ISATLEVEL([Fiscal Year]) +IsQuarterLevel = ISATLEVEL([Fiscal Quarter]) +IsMonthLevel = ISATLEVEL([Month]) +IsQuarterLevelAfterExpand = EXPAND(ISATLEVEL([Fiscal Quarter]), ROWS) +IsQuarterLevelAfterCollapse = COLLAPSE(ISATLEVEL([Fiscal Quarter]), ROWS) +``` + +The screenshot below shows the matrix with the five visual calculations. + +![DAX visual calculation](media/dax-queries/dax-visualcalc-isatlevel.png) + +## See also + +[EXPAND](expand-function-dax.md) +[EXPANDALL](expandall-function-dax.md) +[COLLAPSE](collapse-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) +[ISINSCOPE](isinscope-function-dax.md) +[ISFILTERED](isfiltered-function-dax.md) +[HASONEVALUE](hasonevalue-function-dax.md) + + diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-isatlevel.png b/query-languages/dax/media/dax-queries/dax-visualcalc-isatlevel.png new file mode 100644 index 0000000000000000000000000000000000000000..f67ceabbb120eb1df0130998b9ae6294fbeaf3b6 GIT binary patch literal 89482 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

Qm;A-Mc9S~;ZOeJ|ysz_P=( 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 PncCJXSU>cjZ*J&g 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

+vTLFRxHEuFX$kd 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 G1^h2iPO)|X literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-rownumber.png b/query-languages/dax/media/dax-queries/dax-visualcalc-rownumber.png new file mode 100644 index 0000000000000000000000000000000000000000..b2a6dc8e0c6475098d9fab68d0b9460135e262f3 GIT binary patch literal 102161 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 Date: Wed, 28 Feb 2024 11:04:05 -0800 Subject: [PATCH 423/934] ms dax copilot 2 redo --- query-languages/dax/dax-copilot.md | 118 +++++++++++++++++++++++++++++ query-languages/dax/toc.yml | 2 + 2 files changed, 120 insertions(+) create mode 100644 query-languages/dax/dax-copilot.md diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md new file mode 100644 index 000000000..fd08b40f7 --- /dev/null +++ b/query-languages/dax/dax-copilot.md @@ -0,0 +1,118 @@ +--- +title: "Write DAX with Copilot | Microsoft Docs" +description: Use Copilot to create a DAX query. Type what you're looking for in a DAX query, and Copilot can create it. +ms.service: powerbi +ms.date: 02/28/2024 +ms.reviewer: +ms.topic: how-to +author: maggieMSFT +ms.author: maggies +--- +# Write DAX with Copilot + +Try using Copilot to create a DAX query. Type what you're looking for in a DAX query and select **Send** or press Enter. To run what is returned, select **Keep it** to add it to query tab. Then select **Run** or press F5 to see the results of the DAX query. + +## DAX features in Copilot + +Let’s look at what Copilot can help you with in the DAX query view: + +- **Natural language to DAX query**. Just ask for what you want from your semantic model and have the DAX query generated by Copilot. +- **DAX query to natural language**. Ask Copilot to explain what any DAX query is doing. +- **DAX functions help Copilot**. Maybe you heard about a certain DAX function or need to find the right DAX function for job, Copilot can help you here too. + +## Enable Copilot for DAX + +In Power BI Desktop, in the **Preview features** section of the **Options**, enable **DAX query view with Copilot**. + +Check to make sure you meet the [Fabric Copilot requirements](/fabric/get-started/copilot-fabric-overview#enable-copilot). + +Then navigate to the DAX query view and select the **Copilot** button or CTRL+I to launch the in-line Copilot. + +Let’s try some Copilot prompts, using sample data in Power BI Desktop, with some additional measures. + +## Sample prompts for writing DAX + +Here is a collection of sample prompts to illustrate how to get Copilot to write the DAX you want. + +- [List products and show the last three months' profit compared to the previous three months](#list-products-and-show-the-last-three-months-profit-compared-to-the-previous-three-months). +- [Add a column to show the difference](#add-a-column-to-show-the-difference). +- [Explain what this query does](#explain-what-this-query-does). +- [What is SUMMARIZECOLUMNS used for](#what-is-summarizecolumns-used-for). + +### List products and show the last three months' profit compared to the previous three months + +In a blank query tab, invoke Copilot with CTRL+I and enter this request: + +"list the products and show the last 3 months profit compared to the 3 months before." + +:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="list products and show last 3 months profit compared to the 3 months before."::: + +After a few moments I get a detailed DAX query. + +:::image type="content" source="media/dax-copilot/dax-query-list-products.png" alt-text="DAX query generated by Fabric Copilot."::: + +I select **Keep it** and then **Run** the query. + +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Run DAX query generated by Fabric Copilot."::: + +Let's see the difference between the last three months and the previous three months. Select the query and start Copilot again with CTRL+I, or select the ribbon button. + +### Add a column to show the difference + +This time my selection is showing fitted to the text and the background shading highlights what is being sent with my request to Copilot. + +:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Run the query that calculated the profit."::: + +Now the diff styling in the DAX query editor shows exactly what Copilot has changed. + +:::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Diff styling shows what Copilot has changed."::: + +I select **Keep it** and **Run** it again. + +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Run the query and see the results, with the Profit Difference column."::: + +I see the DAX query, and I can see the requests I sent to Copilot at the top of the query. Each main block of the query is also commented, explaining what it’s doing in each part. + +Maybe those comments aren't working for me. Let’s get a full explanation. + +### Explain what this query does + +Again, highlight the whole query and invoke Copilot with my request: + +"Explain to me what this query does." + +:::image type="content" source="media/dax-copilot/dax-copilot-explain-query.png" alt-text="Explain to me what this query does."::: + +Now, instead of writing DAX queries, it’s responding in the in-line window. + +:::image type="content" source="media/dax-copilot/dax-copilot-query-explanation.png" alt-text="brief explanation of the query."::: + +Copilot generates a few lines. I select **Show more** to see the full explanation. + +:::image type="content" source="media/dax-copilot/dax-copilot-explain-query-more.png" alt-text="a long explanation of what the query does."::: + +Now I understand each part and the DAX functions used. + +### What is SUMMARIZECOLUMNS used for? + +Speaking of these DAX functions, it would be great to get an explanation of those too. Let’s try Copilot to get some more information about a specific DAX function. + + In this request, let’s find out what the SUMMARIZECOLUMNS does. + +:::image type="content" source="media/dax-copilot/dax-copilot-explain-summarize-columns.png" alt-text="an explanation of what the SUMMARIZECOLUMNS does."::: + +Again, Copilot generates brief description: + +:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="a brief description of the SUMMARIZECOLUMNS DAX funtion."::: + +I select **Show more**. + +:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-more.png" alt-text="Copilot generates a much more in-depth description."::: + +Because I asked Copilot in the context of a DAX query that I highlighted, it gave me the response in the context of that query as well. + +## Learn more with these resources + +- [Overview of Copilot in Fabric and Power BI](/fabric/get-started/copilot-fabric-overview#enable-copilot) +- [DAX query view](/power-bi/transform-model/dax-query-view) +- [DAX queries](https://aka.ms/dax-queries) \ No newline at end of file diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index b5fc667d5..726006b42 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -12,6 +12,8 @@ href: https://aka.ms/learndax - name: "Sample model" href: dax-sample-model.md + - name: "Write DAX with Copilot" + href: dax-copilot.md - name: Best practices items: - name: "Understanding ORDERBY, PARTITIONBY, and MATCHBY functions" From e8605733330b8b50c05cbdd7d156eda7ba530b29 Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Wed, 28 Feb 2024 11:09:48 -0800 Subject: [PATCH 424/934] ms dax copilot, add images --- .../dax-copilot-explain-query-more.png | Bin 0 -> 152780 bytes .../dax-copilot/dax-copilot-explain-query.png | Bin 0 -> 116547 bytes .../dax-copilot-explain-summarize-columns.png | Bin 0 -> 122537 bytes .../dax-copilot/dax-copilot-highlight-deff.png | Bin 0 -> 69627 bytes .../dax-copilot-query-explanation.png | Bin 0 -> 39278 bytes .../dax-copilot/dax-copilot-show-diff.png | Bin 0 -> 93535 bytes .../dax-copilot-summarize-columns-brief.png | Bin 0 -> 47944 bytes .../dax-copilot-summarize-columns-more.png | Bin 0 -> 111363 bytes .../dax-copilot/dax-copilot-updated-query.png | Bin 0 -> 112372 bytes .../media/dax-copilot/dax-list-products.png | Bin 0 -> 54089 bytes .../dax-copilot/dax-query-list-products.png | Bin 0 -> 124229 bytes .../media/dax-copilot/dax-query-results.png | Bin 0 -> 92788 bytes 12 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-explain-query-more.png create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-explain-query.png create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-explain-summarize-columns.png create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-highlight-deff.png create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-query-explanation.png create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-show-diff.png create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-summarize-columns-brief.png create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-summarize-columns-more.png create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-updated-query.png create mode 100644 query-languages/dax/media/dax-copilot/dax-list-products.png create mode 100644 query-languages/dax/media/dax-copilot/dax-query-list-products.png create mode 100644 query-languages/dax/media/dax-copilot/dax-query-results.png diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-explain-query-more.png b/query-languages/dax/media/dax-copilot/dax-copilot-explain-query-more.png new file mode 100644 index 0000000000000000000000000000000000000000..1d0a351ea8c87ce4198cf5a740966df3752af5c8 GIT binary patch literal 152780 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
kyZQ4caxKTV&W79JD%gV} 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 z zqOj250y@RP&3Mh9;=WU-7<78btkpD13Q-AiF|Y&V`Ovo`P7>;k=fjEu^+8kKiM(3Q zNKviPI6{K}L{H^jZ`r<=`K#;RG>?)IiuyzX4*3djHyNu5%mG(jc33&uD9FRyKm!2rIfoJx2HHW?%pDZU??8^y0;ZgQG27kEuf%kXlBC z52j0u3^OCrp~?W?^6#`YrSpnGr$blEEMIFBQZlk{{#o2pEkWubXJqo}hsC;~I)gl{ zBjZ^gDmj)R+t>k!-sB4}ixsYPP#VbW-_-<4@6Y4%q zp3=AD@T8i)z|V4n&{y*(3_Pe#*!<~Jr(|{*bni@<%0@g&v_?W=%WPT6Ddji?|Kta^ z@m_P!YP4)@I73XYjD`VqeGR{AaKt#DuoL{2ulJ05Av=rrs9Cd%b_~CMApno)&qUjn z46qCQzfC;gv?_!%HM+)=K;+*}W?CBKLT8mD8)&T5W?PwdS4G7&%>1TuzsZ;>kw0|M zsZyZ+=6fXy3{T?Ep;mN_L$KPT6yQ^O>NeCqu+53uN|CO0AcmbuPuPz{D21UM0!uDC zZUrxaE_?uJp}`iECr_!&p7us((1@b!>FC9HBebi~PyUO_+^-G)kC><%(#S5z9ZYM@1s=u4ge3M=6*@FCqh zSzk41Qsb!WCSz|Aq5gFBGp-j@2ed<-V98))&5M=k&@zsX+ly>YCMzMtH(cRJ7j4DI+^zV{c|G7;@b{6>5%-9aCPOC-dVJ`fCBz%~KVcqi$r z#?+twdZOgo$C*z1XNG!4#h7@}or0Ay?;}fP>~vK{YFlw_19#H&0+Ax=T7fVSG1w?b z6N*);*ArUqeqiqOs<>!S9*uA1W}_5OdNiQz4djgC%cZ%T0&Pp$hlRzdxve!3?sMnC z3yUUHnmo)s5IS(3zqvH~?AK%TG=*s#$-u=dQsyD6@D~7_j3y=w^QiZotk|$srPlDi zYz1t(*tMhMJ8lExo}FiuKXS-$ofU^|}{<7EnkfFO>L7xL1OLNwWs zYB3U^g4%$PmFC$~^z=NTwh3skqeIH2h-H&~Yjthd~{(9hn2=H76ATC%Xy4zj(1r==>oWA!^W%eDp!I z{CpVEFq@eL%pI{7sEAOW#ZUEw33@YLq?2RFpDNQ@z4> z$Cm5R&Y=ttRTzgVGaZ;~+{{u*p(bCm9DN0TYCd1SGlVG(7o8W4K@jZ-VZq3k$EKyl z&uh`VIl|r60>Vme4=@B`NicgPdDKT>ue`1Z|@BsmAe0V?2r1*Rs%;L zn4xm}bajg%2m3c`)xXap?}yFK4r|=F>yq5>@ufD6p-#-)BhH-~Jl$Axr>BqS;Q4y( zR3_>f4A@@vBDbobckPSscULw!<=IE;p$aTgQyWsoP?P!F#BhUj*;8ni}NY{h!Dc1D~w?uzCaoAYzi9 zuD-N*&y{!2J#f-0IzzUkZm^?i=P^mi!X2|4s*)bS`qdl0!pg_AuYVA{OznsGswWR0 zns+P+W&kt@ac4PB-|?5MO&M@aBV2f;IFLyrt*$JwU(_^X<*4N=R!pW_V5wLc z*y!m*v%~=XsFhSe55*UV%89ZZ#S&=?#PY8#+%+ijSzutfL0|uenVBj{QLS4g{L9Ot zXkwa?7Zr{k3ACgI(R=`YRb5V~S^v7RW_ncVADjmuqafStxT#Jh=id32S6-k)1Eds} zsGwZb2w;(bD$#J#JX4v^w2mNXM_1R-D_3e4n?0C0$bI4N&gNt1#kY^=NUV4@@X$nYp4(zDl7Us--Zu+ zUc*p?@u*IWmYZrM@3U&6xyPq`+N$h=HkT|%J65dnLosC=NjL(5k&AtC(?4GrlSMX4AxxGfG>K1aOGA zZ{J?gu2bPquXHn{c&RQ{#t?uRBD>_9zTn ziL8t?Ibn#^zHNpFFTCvjQS0)AP5n==$HOCMJrywj%Yq|*Cy_Jo*! zq7Cas_eIL?b#T;sg#{2fB0r_Ep@(VcLjz80@%KHYS4(^K>Lpq9Iyz=~UZhzumsGr} zV@^Y$+<^)6pBYNgFHn786P8JkEZW8`)RitJ_oA+W#O&@Yphx1LCy?i+SaXb9nAnk?FVyoZU8`WEr_GU z_Aj&Z*`h=s@QMqsFMlYs1%IQ*(=XvJYxH}dEuG|Y-o3!&Y=gELo-igqZNfZITi&=a&RLYt6Ti6hZ_ zLBt}VutaF?v~CDG4&05h<0%xS!k789YsJaT2>`gs!K)+KgA7D{aU9ZuikR}if_Nyg zGMk#3Vi5p=%X8LX}3p#RwTq4r1>YII>dh6MMsw+#+ zcXMxX4|Bi3Gh{vU#{+VRW?eyNTK@UryBFZ3mk7M9tiz0pFw&mFCZn4GB_r((O$RLV zF=W}fg?7mszBjXM9MGYfuZwakGeJup6%!M}kxoBbm6H~k?xyRo7-829&O~`+M@OVw zcYO5D1+^}aoW$NRBcurh8keNgjL2b>L&!a3WHR6mf>5z&lvHhWJ@k<$<$vfD^%_8!U>&KeLx6tVM%Gwm$ zaIXm@p#Ssq{mCc#dIb*f1?ZE(WPms+i9g@h`Y6Fd0FtWDUnC}G_e_t>9>s{ooT$d6 zt7NX~PX$a(8B?i@E|a@zg@XekA_0>R#zdwW=GpHl_G!VS zNkEVfr119Hq=+q2Zh2 z9{=*rhxLXsYJ|$%n`fn|`TTm2#IjYF=L4nsa4AvS^%!Z++W2mz}(0-($S0lm1o*d$zHQ#w4K zv*$5-8e)F?PM9D`jwr4M4806JxpU+gxZuL}*KoR-T#VcBodv6QP^L>@HiDKC!Z&u_ z+67fKcq>O?m)SxY%AKWHTy~#$h?0^Lb2?o)I#(3@&~8MTAvv=oDS>*Z9eyuG6iFO( zgB+3w2d37ZJ9`#?q{-!%Akq8^l|FqYZoC1PO36(Sy(jCf zg92yDnMM)>?gy1aGtWQkpjS7a0-a`7BD6|NZQM?f@$f4T86^M!D>HPfE^9Lf#)Nc^7`;GXfmFjO1I?oCoDCmg6V;-WKi zN(>jTD|@k5uR%`KO%E3|#Kp!!=5J$~%H{9pSS!rdz(F(TeF*h6be_P+pnZ}tvb+1% z#6%s5VGEsad~4F2BK3=?BC;%cZS(X*ls@TvHit~VrFS_qX#z}db~$w9$bp}{BH`XX z93`5Xnnb~3@0+uv%`kO!2A20GM1vR4L#MSwH{|fv72xD_NXX=aw}C$h0j{YHd+vPc zd#BgoRAoqJA7*7uTe$Gxvr9~_L1{7icn3;yoe5eVe%jcq#7-X&pu}bhi-`CQwRQ9+ zy$viwu#VRpo2NX=W-N1=x^_DsN75xsBGQN>C7l|%673Ct1MOV&rAt4aW`EaVTB>hA zK)~g8d0m%>o{Em{*plg01KyNYT*#ld{c+hutc`+vg1gq;bG~MDB}S}0q_0rR<-b1z z{gHad?%usIC(8c`jn8eYa;A8ZWyYm7#h*89s*JHn^*N-~`ds?E7X6wne$n1FGCa?? zRYl81&)^1q4%w{uqVdCzyCN%~)gt>gi?-bsgx_9g(QI1~UZ^Ug=rsXGzlD`DPMHkw zhbuI<6-cP4&cK+fJ(+=h=FFLb)2rRcdozCfE|KO*0(5{-vhY(-E>M#Z2G+=B{c@RnM{XBI57d{1wY5HiPRY&%er7lT z)8TGP1P{fFqobpMkYb4g8%1^a8dgQLe+>2j zhZ9G(qnq1X04YcsI%M$xQ`v#`%upQ|kGzm|DKb51FHEhV;6v)mn4*h?KxE<=CnO^l zD1kEo-sk2TO`RU`q)bX$6M;1!%E|<0MCh`yt|A@%!ETaS8wV(-`T4bH2E|Ms9Wx}r zVEu3cGmlFgtP++=&BS!Y3aDcQpzU1-F3g9R0nuIo^}{?4#sVn91tEu)aU)@9i)dPb zqNdN9b&~-Zfc`l6*YeSBe%k=eYXKK5>Lut0syl}(^H$07OCGm!v&2k&cJ9z=_4d}O z<{Q@k)5?1=GIV3LxZ^WudGS9KQO#K5@kXQd8E9M%eYUR*Cqh>zW^S;p7^p27S;)_B zECd3V1^1{R=0d|_NT;??gN79^j?`+9E78g(oM+;9g&ksE(=qa5_fTGrfQH~qY~7(l zw^DmG29MB=Qb$qb@t-K{YW2mN>v!;lz!ZQ>irXK@V=7Aq!B;VOco@cDx+qEjJ+2AKqyzo3 z>hPHMe5`HGL~LF_wJ$l@*`1I%QZb`X!Qw#GQ`p8R|`BEqH&?#onV(lZ1Kt zhd%Nzglg>TuRuQubju2q?vQ$q7?EvgiqX)(^DGVjWpXbynw0ACld0+z>@ zsz?8p|J(EbBnf<4N#(@X# zEudo=9pH=0M<5DR&SGuW3}}CL;p#>2%myA_F9@n6gtE(kV5e!Kt z5qdjzwB*@K3oFblClLK=bX;69dlMxB0epYGvg`Ezk9#zEaPHLoI}RM^40=P~LcHEi zYE?X{NDDiZs7{d4N+kdMCRQ;R#D`Z7j-}DVCn(bq>7A6pOgMtiYwL;_JRvV$EDax_ z-X+c3@VtI@K@*x}%E&2mOtLGv$SVpWji-699T4mj8}%f+DY8Kou`PpIW< zTra7f*O~y|WULs3{NVvFPSvk%z|wu?#?QO9X-;|G$Rf0|95q9xZ_a`0xuNrqU0TNV z5_k~w|FF854;d(IHLi1VxjWJSU#E1M0bU^odd3}Z7|2x`Eqs1>QytJmuMswrK|2k$+Aa~=~#VKL=5 z>O_dIxDiXy9m!xYUB-;b7(Q-aPFdIipM(J)dBzYc}4*nzQ~3pnkov;-H6s@*ldPLee)UnW@fUisPYUrI|$rL7t>W})qz zIWPoO>wo;&^jgAF{lS8}3s(=>r-JDfeG3ZEspEE#e@L$(x%mPk2(PZvinQDKm`x8BxiAtN_vNc#@pz+~KAfRzBk62M50 z&R2phiHn8Kj&hOkUy1?VsH2OE2u8#dLV=IV3ttSYL6YGlt^^wN>({SR-ofBTSwB#= zwX?gztv&T4p^PKZ0JJ6~RI~`dI=(G0LQrzJNFqE98YM5%K6@K=n&tt4GSL~sJOP!IiTP84M<8uOAAYTD;ITt8NCNNxnPO%o}D|*0d#Se`^!`< z3DKvPAYyja@}MTv4E~7G42CCqK{f--^A;&WI$T4Mz7{h$`MaGHZMf@6%lgdlJ0%ca z>dzUoW|3J3+H`)kMlEA^iVhq+NJ?wh^wVMAyQLZZGX$%sL^&Xf6JY|!ER3-{`NnHu zn1p$_Y3}yF4f{{uWSLaXaV)|bDi~Dt!^#x|qX@|~QthaOyoxq~MxLbWeKm;;=!SSf zyE790v(d<`(-9G~GeR)h8c<(>-=5N!kpR+yp!9;DXe9BlopdF>a5J54DM7Rq64b_(0 z(~3F7IVWxe7e2*t$cwG;AOIP5bs%SsFgd+-{Y)Ydm+c4BpwZ%xYNn9OjA1{_WPlJQ zv&R07#~q^|O(wLlC>k39Xz{w%JmGu$9h!OXv$}EZUob07Z3(&DH5v7pOuc}9Teu|t;?IWHec-sqj`1Of z-?J?5dG7nzj2+>6?)ayK0ip%be4-keqs>ebwlNjQ0V{N)cQ@*vAkW? zRi^Z4yd3n4)ZCHrHurua6nVx*I)>S|16D2h`85Fi{nFGJ>;1FMZc@77+0U;6BzdD* zdw#?TP9JIqt6KZ|T$CmNIaNm+RZfF;U^HjEmEkE zOq0wJRPaPXPf$~A!n}Ocu&Vb z&NHNQlsk#hc|u=FXMI z=_H{l+=e?{n++Q_td{2jeZXRoFRHKJ+#r)6*awpLg4*sCgH-BMH#urO`t!br0XOz$ z*B_IDdp#(dl06ng+mUnKH1CvQvw-zlYqM=uujXzED>?Rkz&CUfKIpu5K2?Z!4*8P( z@mTKN0iT9N#l>0EHB2mCb4_F_h&3A_p|!Xd-LS~3Fe-b+?1m*E07OzY(Ts4tvc$vm z>m?5L#1K}k)c|*oHdul8?74S-{f4`gOP!tdtd;b<^(uTH3}S*eDe5S$nrg;mgq=B4 zZ|i^+V|1lnJ!-?w4a?@vb$r?gYm2F19Rs^GUyJlzM1>7}VxfiCeR;Zg>;2EVT*np- ze_b*GDz^90ez7|K&NGMGw3!}X#(S;zi|cHb>q5GLBmd1SRCMiI^5iEnNFX(0qLv=V zl*>y>`eQOFD%yq;VhytnX^jp2|ch3-VwM9iID;^z4%7?)F|>F z6W@qXCI|L~Weij9)7$}Xu_389WbRUz(^KN90<`5cLmxOuRdqM(#Mh3Flg7V-P)f#v z=%KQbcHGU)jeqC_XpRD$(h|;dA8QbstIxEM6pnkQ`V9?&ViN>`D@K%AjKU)UICHWL zD3^hd_=#Z{*-)9(cNOdPbRC{w+yy3zqv<*tR7ou7V4+8Jt}2a4rrjXvjSPUm%^5>4EZ1(uc%=O{yglp4-f>A?;&kj4OT1Mwp#fE7E#s`3)`CNp{30DZ#qqg!ME(5w?h zuugKiOC1B^_#rwS9ut7@o?c{pzk}KgsY?aKlfbv76)o7QO{Evqs^liCXwb=Velpv z56A=s;cLEt%Rhw5kJG<+t$PoMPO*7V1PHCkx_|7p#4ZU7ykyOjEKKXj57~(&l_(k! zdxHPdL`9K%NNpzAm(+z6(o6%uiZ3-guH4jT&yGPxzL+%!P+7_b8Q;ee;<_tr`i+WH zh&}3I{}U(3oU+{elJF(z zH~45acY3(2KQ4_9+!XO6mgvLyWlR3-u=vkEqsjP1k}3x>sd&8mXlQo`v$YkeKkXw_ zk{#c?v?@7YFgh;#Tx!GQkW86D7lU73ns;s%hec1m6!&dq#{skX+vAfvX~WS9O)Q>V zj`B%n!xl!TD;HsJd5M(MDxEk|IXyV9C|_987YIYl z7r+gR$0&-vjbPr0Quu0dAb{Pk1QG-~C32{ROV2&*3XAbww(?*lEfH>>y8c>P+IFeE zwtx{#XsC0Rtw)xf!HgNLX@y<_#=XJfgK&@#Jg=Fdq7)V|l}RTRgq(tw3(z(|ZOF zLpkqlT-%AM4wT-ae-~*loiHaj6q5i19G-6^<5E&J!Br?P_}S?oed}u99JxZX0k~N* zFSdE}f4RokDs+Fu`%Bmu7oPAvus32~WXXy=PDDVmQKT3`8-bFHOG}d75SPpGg(inU zx{>%gkQP56GjRP?4|jGI=z?@oTumJITuY#W+o&jIei?Rqehf)qI}zh6NRrcuLHq-m z)W!wkTMP8!%S32S7N~{KVY)wd@r_VR#6O_D-42Cx94wAz|27RQN`Bzw7qcQKd@Je4 zfpV`r45CJmMK>Y=tC7owLz;mxfStS|C07D-z*Bc=4&dIPu9H!cR0=YAjG~Z#AaRdT z;N9pGd6tZK=n=8VCU_7E4lU&2>u``__iD|_S9qDbni|^msR#1bR$^dDMS%9sM&(4% zFn*huO;wj(m0yB%N`@gKE0&_3(t*L>ecnGovpkA>1q5;{1TwN4jx%Z!QCUe;ro-m% zlK(G1rx7Ywy(iYdsqdU#K%YdxNpbMq0^tyRnj;tIirIqujYy=Hq4wanxJB#wfjtwA zulyy7R~QnqjZ?M)Zvk1OH=q$A1I^3xuE?Yq3_G(_yAHhd`QD>t$&2kxZvZQG0K;an zG28C@pW7FJ&a-00+bHlfFfEv}3_#}m2Df5DGn0`RpZT}e$)Nvf0U*X#yKSU;5J6FZ zRyW==AdGdaHW<2%)okY8fwqWy2Eql<2wY8ybm$IXY{qwRLJkB>L2bj$t(q1law|-D zg*3f^k5`Uz0>CGuW7d=@GQvyFaGHK3`&_F)&_{^nrm>t#u9u+d4AcbE7>&&l3@JO=HED@B&T{piq68~970Vsxv#$?jy{COyZrpd8uT6FKi$#EiA~xV%$)Lz zG+qfiAqut#;RaR~viW4b$I%-xnW|;WmUJ>G&$6%1DXH@E z-oAYl!;eG_PLL*r9RjDV)VXt^j3K3dX{^Lc5mTfDFX8AYqtGB*Xngr%5qv^mV!x!_ zM(BT#3t^;_#L*K)Co&ktHEKuhN}Q+obB##*<+CHTYyAuE70o=KhqFecA`)>WlpRxy z;0ZBfk~9l7$MyO0!-w7UBuAczn#9GWOYTM;?k1Z=&B2{Ya zfpcKaXx#6W7t?bRW^jP>lKn7=3II9@XK7G+eX|Ugt@F>0`JVUZViYn?>`}3?(kISl zS3kM&aiNA@uhd*ZpvtZ;=%4YHOoRW`a2yz^~ zcoP;rM<6QWoZMXBZy#14KY%TSrFAO0bJwm@iBzCD)wyGwT{A$U`Ib*Q`Q`Ku8FJ#_ zkWPmorA5ulrtN!An8lee@W6~GuUKhTnw{c8nYo2ow@uc09}SBYS2yfZR=86?Ps z5%$d{*{xm;Rp-eM0HCH)BManjC1zIbre*CskO|%s`lCrN8GGdRO5i!vnxcL>bjXPo zedInzFbK}okw?wU;npag<`bJp!N|>LWygukOyc8ey@zyZ!)HPM-N>rgX4R@|&z>3A zsj4n$ENRD}7F0K$h|14r%V=(X0e^(WETZ0Ci35_Zt5q4Z0Z&o zb$THz81I5J24hO}PW$R;5(ADHX^O9hMnLWq?jCSA0A@AEvugdRW-y0bIlso9n2YroL$%&;jUF->L36^JiCIvYMHjnK^G^Qhu&$#Mp)| z*C*dVeg?TWuWsqS&MF?K&gCHMG>~<Y;7YG^n+wtEW!xt@&p9r*9x)ox68m zm31Et0wJRrum9b!)uv>(cj>n#O#`&no_~6>iD#yIiPEHTt)S4HTHir(Z*4tjy(XyR zU>m{!Z4GCHK04W}bIPi+Z&$SRrcYj+|NIa8FtAnl%b42d>_U`q9J(@a33E>c>`3O5 zCo41E!PUi-iFXyyh{11InP3{$=h>-2ye({>U+g%i?Bm&G6wIK-U`pY6U><~t*P5&b7nMsP^T4GTZF;%TMQ zBZR(!B>O2&`SOUD|Kok1N0Hm?M;*I4O1w7E#9zB7tMpkIm`vO}pSJl+8sWl62Qyc7 z$^VFIm~M|OVoq2|9Y%w0sy#iSZ5YQ7O%gO@1Cn@u+O(MDyDLY5!)v&gpIDV+mb4M7 zV;ctsh=!<01#+ONMopwG;4||+DjGX ze%dGE4eim`2aLelmUzAqRL3DJQO@CIDpMMob+L4xuH!YsR>A&wUb5ekXF!F`Pos z?)()g%$)pjVAD!#>+B*o^WcKu1s;~8dWbzkU!MgR<<&C(lJa%UfbxH%TVMauoPJfL zLS&_-W@UYi|D4Nyb=kdbTT|F9 z@WXlGuhyb~sFzDD3rabpiyRQ_^d{*IerF*n(5L#;3~^wBKq_g{o!k?G+gz?2O7 zXVxdD2G2FRb!^9u9o{N~yHCBo@q_vt>KS4|_%4}fKrt&riMYAQ6CY&X3k+fL?A|WF zFw94ep7&dtW?w5gDN^P0*}f;epRYIj%@ewW?I<-arzVE2CKLhC9e{%4Dzhj`#Ai${ zP6~$=C1L2l|IXalb|&;x(O%uRbjR@bz-)l_D7MAPCfx(c!JtVrENsq!Nh&Uu5I16t z)c#fyq7&~DHv4!QT6mdXDjGO=2_P;}%IWLxc=r28Vj`$?ti)6A(2 z9K~ZuI4w_x%2EhVOeaii`)4=md_V_8t}Dj$L}74Y?ex2E)=;0xP$L1)c=w8%hBs5# zOPabg%bW?wZ8Aq@2qv!I;VKv=Y5|0zV7SVdtduP{<*mx z0R>u`=MYaJwZ92&9n+M+@nxdB8JQ=FENpPUK0Yu%Bm;v;9a->Mt3Wh0+f_ihnb{dh{H-3^O8X(4C0cXGzF#z-?g+ zhDn{U{L(rP*nEA!)5jpMP0ndfg^SSb;Che@V{Z8|WL=6j7aB8J>=S7(Gj>0QgrlOO z=XFmds6hfI)^zuysw`V`v~dm0TR|lLC*g7hz=D(uXPpRSVWdrs_cU@W6vL4RIY`?% z>UOw2ke*6pn`DXsBtvdr7BOcTyd92eAYTL!!NHIHdjyRd-^ycVk4&Fw6zMDKDx7nf zoLHFT0Cg3P!3bQQ(>svEz{4l3OF06T?C7kQjLZOHyc6m{w7B_l7NM{}G9nG%0AgW{ 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 T=ak;i;2#x5b%k{Kb2t7EF@93e literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-explain-query.png b/query-languages/dax/media/dax-copilot/dax-copilot-explain-query.png new file mode 100644 index 0000000000000000000000000000000000000000..87df97f0979cc6e9e60c2c3e63c7ffbe01bc16ac GIT binary patch literal 116547 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⪑>GTMG8fA}>Nw`J#_)|J;jbRsW=o~x` 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 E58yaC-2eap literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-explain-summarize-columns.png b/query-languages/dax/media/dax-copilot/dax-copilot-explain-summarize-columns.png new file mode 100644 index 0000000000000000000000000000000000000000..51449c4d4d85c36a6188d853f77a2bcc4a1612ef GIT binary patch literal 122537 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

-)iVOVJ9 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ශTQ>9Dmk0hm4g3(nzdmmr5l02&gMj)xE2 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-summarize-columns-more.png b/query-languages/dax/media/dax-copilot/dax-copilot-summarize-columns-more.png new file mode 100644 index 0000000000000000000000000000000000000000..89b2e847e8123dbb0547363a236449f91da78073 GIT binary patch literal 111363 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 MwEYoJx7W>r?rTvT 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 SRyt3?KO+Nk{kwWj7yb{R@!J9b literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-updated-query.png b/query-languages/dax/media/dax-copilot/dax-copilot-updated-query.png new file mode 100644 index 0000000000000000000000000000000000000000..eb772ba3f442ff2e99accd68d489b37d856409b5 GIT binary patch literal 112372 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 Y!sQndJxa{~Bf=kj9i!zpmfHRKKZyXTtpET3 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-list-products.png b/query-languages/dax/media/dax-copilot/dax-list-products.png new file mode 100644 index 0000000000000000000000000000000000000000..1138c441e39532d074792200add2f2197b96c417 GIT binary patch literal 54089 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-query-list-products.png b/query-languages/dax/media/dax-copilot/dax-query-list-products.png new file mode 100644 index 0000000000000000000000000000000000000000..69e68064d8687a7fedb049c2c4fb6c5c4c4a6c82 GIT binary patch literal 124229 zcmX_n1yJ0*^Ed9U*W&K(UfiAHc2J;K+#QNLhr1Ln#ogWYiWGM(#ogiMX@CDWGvB$H zPd3SBZzZycP*agbM|qC|1qFpJFDIn|1qI{q_CX^dydfjDfkSUU$PRLP&QMSUH2;0j z@*31Pu|Jh)DP3KD%3I?XxFin>7JyJ2zlPpI%Z{NwkNFICS*2gXs=y% zoGWfo(w!ufuL&_kQV!7K*pNfPkb9l(XO%uaJ9fk1a55NZUA~kLNN<=C2Y zBdy;iW5ImYeC;ww(g1|^1i&Iz+hz_#5#ok!wq+nFd(+7=ocrcJp0t4<9=uLk4_W6b z3`#ERcq4#-`i6$7rKQomiA>j*pWMfMv@)`?T7Y0U;0HWu`XZI*g9KYG26%pwFniF|C_A@7K1n03I0BUMsZMWW)!$)``?yd1 z>h_v({q|f0Opd0C=wJoY;% zSNy!EG<@CT!S@J6f~M4vqv&Q|b86w>^B%E=WfLf>Rz@A-UO!Cw{I^ev^Ui3-Ki+M3 zVZu?)ZfQ17|wgfy)Dl@=6H36P2E|Ldp5h0KVpD@7HekM$x``wzib8(`N!Qqvk9Q zzOm;0&Rs#YK1%#3%_KPu0NDI{oQ=ad&)2_m1D!Ua^5&sXs43J~&$Cvx?7fdvR6vH! zwc*uiv(O`$n3xcL?Y&GZ9#PJ1j+ma-2qgF5o5uV~7D{b{2wHqHTR#+bz9KhSZ4c?{ zy0+_V^+ff*?cF{ST$G!3b3lvI)WipSvg#PSVu~%+lJcQBFo)gT=yzUkKo&%@dJL#3D6nv?1skIO>0aBWEl(Z>CT87ra_ZvEA6{WdAGb1EpQ(>eR%9e7 zDJ7}Bm z9`X_j5xZgLiDKQas#=%AgMXWYcfQ_2BQs74{D<*apkj3efPpSFQX(Jo;)C8ljZtG2 z{K{pUcoXXuOCqFTWJJ=}*XNNV%bO{U6kxHKQTqj2@cD&N~>94;TM)Oxfh7a-R!Ykx(9~k);&WKe>y@G~_ zhl2>z3aOE*`MA0#C`xS%yMHy@0l-dI|IMS*40h&;e7!MA57%y#R9~$-iWHkSm2lt=LC>u&Mg{7s)4Ajp16GeG> z&MGA*Wltlm~a9xol2iHk!>LCHkejeZYM&|8nT;&u{LnS&; z*Jt!}saW3nQq+$+@k$!Gyc*nfw~P6%(}tmL0?q&K^7QgJrmVC&?7oDMY=G#rPn{LB zt23tkMTJ;M++>-;?@ESDxd3M0_tqHopAAH_3hp@6vEG;BIq!}4a4Iu0GM=ZVDX2JbRB!7i*>zN+RSXlKE9a5y1B<$4bex_`5oVG zr%coYK`wVYBDI9Y8G+LaPw#JM?Wx{H74**Et;AQ5)4+tp(T2oMh>1M0NpZ>mg>&b& zm+zcx<&1^Jdmpal!7ljOe|^O1*C>>Y!ni^WhA)^Tlw!%Mg_KK6%QfRGh0Vt#$GFPh zp(`pXnDuId=^rL&e>o^QZ++B9Va>PCHrK01ySXUJeL3vEWr^GxiCWUGMCOr+hySL= z$k&ukUhH6LO5&z+rf00Ho3ypj8F~cD~oAv-_sRfZ;vNUNIZ-s-BK!t5*1nU^cY*b{j_K%6*KFfvqp@@*!WL{-y*E(|6d(I7r^rW#p*EuB;EhS=G*-n>M!5i z$FMU03$GwD_S0qeJU{w7Q5Uy8KZ30e<*0u#@4evHwxq$qjr)CPvBQ7u>fMLoVfl;j zQY?UabJ87cT1etpJI0ALe)B;D6y1%Gr}BSG6O3k4D60(Gj*gD{rltZlq%}b-b$T^+ z+a+#BCMM**GZN+Uzhh*$VM7}-6BINyrobX%vU}gy^pf|pqv4?x;YlC`V+8}llMqO< zkF}JmwkCy6sIyf}T9ah;+&boz2DTQpQU_UA-TqB{&5D&Dce*g7xtw6Y@=`q1p_MhmVf9F4R zLo*w+MmJc`Z?&?jiap~oX;*$)ss}}*fzOt#ms=kGl*t!q5DU2_t*sgNo=w9$Xb2j* z{i2o0Tn4mA1#I;MA%g7fhic2^a}mWq=;^()p0DhnUjFr$&$hTIqL3ft$qMS)+M$^f z38~}eGQZG%{P+PNCZ>KvH8do|#i6saNv>{gjHji9N_|G5*V|ltk1QuLr1kU`Jz+VL zH27nkM;goi3fhf=5N#tE3yEQ&<P)~I<$lpq(O=DzcF08ITODH$^H}@t-bsmQRGInci9)m_hW!l8u5JD5v zy6^S?UDWUcPWyL1cgIPvi9vL4Wzu%0*tOl^VySqb(mynwa+1S{iQEBY1 zRT8}}S|&f^Ko=SMr{i5htc?GKe^`4`(@!qJ>_{M6YnscIx_;aUL)N*(e^q}C!ukd8$A@a4d#AZ_y_iF<_PZ_A^7PLVB=6pB z{yMIz^_;QPC>8$m=g;rcQ#!N)cdFplG}W|AhXg)39lKc5))<`cIf_`PqBiy9h|*-=2&w!53Mq=Syc zf#jy9re9@AJ>kY`0f66D+O7?L*K`|#fr(5sEu~ji&{O|u$Z@t~4-{+WM6J_+!rpie z7e{FoC6a{CI^>ykxZ`Mz8#(|hE;Y5+byYF<;kM;xaGqH}91a7Wu~)pe5p!U~>%b1A z{&w)d8CvPn;fQ|_7u~VZ+Dp<{PI8Vr(`i=rp!~836Rt^Qz2SIG%Yrp%S~TlHDf@xB zDNu8{Ica{sExv@65&iV`V&As#baf$j-IB=aA_uByt!wDXR#1q|F*ar>wPt%gglv*zY`^y&O^{I-r9YY#Vy5uzk=&{yS_gbkUOK;yHT0~9&er;^K zt^8h5F~F^?Q98T)V2ssz6-zu+PmDu3*5{qmr!rB@Y>5TL(gcw%KMHf|P1HB1x1DDV zaM~oHgeOs3F1B>1txSxkP`bA#_j21XL+1sifv`inPSEjN&{$dT7W{vZt7-Z?+?1j9 z<1J74y1lect`6GQW+fpUxL~fD>s@Tit4$@1W#cs2+>m(3%!m4DrzGP_S;gjo1YO*_ zdYoM=n15u1g+Dblo%VL~Qi}s}+-X3yBpX%6 zUV$yY%INEM4%#oZhyGmY7s{`2pTm*`OHob=1C$)?ATQ%JxWr}N;jbl~e3kLr!LmbxY%gL+C4lj<(PA2z0!)sz+-c22+Uc4k8B;RP8Xq)@ngVXsV{e$`G)d`RLAu=M3|piC zs*Mjbyq#T#*r65a<;+aIxs>Zlqw@+vPexzVKWUQAzZB#HPpdu z8qy`I`c8vWcuC%$mr{&ih}*or>11Q7*iBn|B81&z?D_5*BC)~GwD$qTcf!`mFMOj$Tm90h_o_P_t3kezRT{*SCzSp{?VQua#y#NFG z(QZk0M$E&~by|=#?-EBNP&>z8+yjIJdoMA?hD@H0xzLmxjdW97*M!v9F~+Jvr=tBY zez~AhE!N+hwyoZ=)lF<;^;%z?&S>ErOFi5m;QO{?%(E&X|9&v$FG`lM!sF`G4cMo1 zR4^AS4*!?nN8@|aWiKu*ebRN$`*qJetMFiul0uLfd5M;XA`ne;2w-6L)>&fhth2SOpQnl zSz@R4!kziV)AQx}X4@m_*7}V|Pt7K?<4k{C0#b;rAb;^lw<(=+!FF147XM(&1{);S zJV&7ph$SPcou6QkYN8U6NBf0{nqy2HDFg>cU;wum3qhNE65{@vaC+nuoJ+PaX-Ysm z*295DNp872SqfaBK3;JYN+u9Hqh~P~RF2{WZf(JnN?VLITdyfBJ+_@E@prVdh)1l{ zB=-harw>$cq~e};t9vOVqijnW(wlGSEZ%;6LkA5OZz{CTwp4;_>$>#bv zBx+I?5tdJ|5g-8Wp+Hw0FM3dCo_0o9*ujBy3D;qsTKSKb*lYORS@bJ&IoPD$j|i!3 ztr9Y{bdJ{C$!o0*;jN*(hr zdtXX~9^W4jEALOH$DhtiKD!Y$w1>MOuBlFW{(!L4RG3Oe}_9?CZVv+5(G~{ zqwyh_+%9`@sBjnROTLonmOiI?4?p@UogCs;J5lo1tW%5ia1xGY_ehTA!wS||T*>8E z&_auoJ*C+D>3+`19j+Pnnw|T+Aa3H7O$5K{O9q*mI0vN<-^&R&apX31hJsaG~QUyu0Gi()+&0+@wy9z=~(mdm6qDV z0E=bfAO4{w;JN)1s@_jF<(Y#$(9C`P+{{W8YC9*WSjt(CrKeaL`qak&iJg$YmuJ>&fNce52mO|9CvWrC{SNGE*q#__Y+ zN<@K`+yT!qPjh?;KtJ=oO9p&P?U~knTATlyF$P&=w0MVs%uoVA{M0N=gypJ+eH!mu z+8zEZF!IzGvO<;}+H1i;xljBcG6%GP?qw zCpfV(-;k-FX4matr^|7WaPuoeY%JJR>fI+F(WVK;jq?YDleN2dk$u`H%QZ0*O!gMy zIsHP1rL(*?f$LB=&3sK{RlpXG|SG2&Ez|+L=$P?{!tR_qW_=_1;t4=Hzy%z<^1<`<^*{FX?w(O)tDM zZ8vAxgH(8eq$HrAOr5pSiv<8CiC1jO_q2@B5V?0ipA>LeX zKEtukx1xS-pV(@8i^{)qVljR|3b5txr?b4I~H{}uxYg* z<`h^HbgOB^oozs9C_jpZM3-Qd?x?R~XLa~>XUw{45F5G;EDEXSNd3`I4<=rg2i{v& zW^knDbQU~4{nq{yir8YWBj-BhBwF_wp>g=)YIDf*{5N}4nOHBKC4`blsggzcku_6i zWfBFaKi`7BB&~k`EuM2Qg;F_-H!F9SU9;766eO0V_(e*?<1oNq)488(DT-K@C#kYN zAbqhxyyYYPM!|BQYQ!4Fr0qB{eh(M#{?NQ!ym1y$A-w4J)vYAtwWT0}$GOTXBGJsn z2UBe2nk&?2;F!tY?4x+J(NNRnCwH!4Ja@KNKwTojnx2scTAyWoS3oZ5GT5rA*$(f4Yuc84>8FGGfZ5C!l1 zS0q%pZFhgg!=8D5Z6!fX6cj*7_iq4mw0Lnp`awFZ#yzexV|guH2;F(T%Z; zc7{GIznqd}F*@Wj4>i==0}Tk6r5#k11Gtg7VB58BInmAgcJM2=%9!{ZzXOSc+Lq3x zGRk=}z2^<11pER`h<%dt9I{f#$t?lhJNhJ=8HHg69#_B1qNR8ht&ApO>X_u0u)T>) zitBh39nbYojB9e@JNtxPY!Im`AxC;THN6KVZrxicA5(D&NvqoLQDE<#TWY)n^~9P; zW~u@2zU&anHmdVYk93{h3(TMrUf$pHEXee0HejA#)SyNEsN7BoiTZsi*v}Sw`ic8W zPwWt(QA;N~^%e>Zh*f8X8_?3768Ml9=Gl6PRPe4D^ovecCqdPB%r57%sElc<)AF=6 zhphXB!LDj~&sUfVMN?P8Dj`RzUz@9w)&L;CT3bsijYx{zwk=o<4%Og?%rC3*}DvPml zPEX+|%2=dhtt$~5uS=YpVeOBsH)jyN-jR4pDx@GkT@12GB1&DG3^nsGy)}1vz;p!>~6eKh)5!2~eG6+!edAFXD5d zSL%QF-gbA}`h;@k1 zp=zfm*UQO&T|NDFq4{<;CE&D!M5mfl*x8xW7l!G4cLsdBNnrC@?X8x>F~(Lq7Mk7f!WvI$VX;4GA@%m zDc*wMK+?vXg&su~d(J(kB#rUhmWcJPBd&f#YtQd_0l~=@v*5e&R*1T=S1{rs7`OGf z-Jv#zW$a{gaN2C`==0!6?g&W~FZEWhKw7lz~<6;^cx81+%Sf@ZRVMG!sm zT4LTMm)-A--xD8v?vc!?1PS1up@7WpM11^*65qs5;*dzZh7oh$sW{Q}RK&NUy14Kh?ClpXc z{!zEjioj?jAs^qzZ?&Yw;sj=#zEDg^;idkgkLQb%u|RDUv;}($D}EsTxAyND8TmNH zsoI*!(W-b`f6BX!Hh~Vmwuru?$$roLuIHeYA$udLBz}(2+47)&5iI-bO4-M2O<^vj zVvp(YWaHw13xcvnJBKgDoZ}16H>o@F=SSJy!{D;6riL8WolCP`rLGrOYC5!P_Gh!t zXYAlvo{QudlZ_v`8IL!eC^9x0;w-_^X~!EQ#gaCL7kZ)@c)}h>?3K%XmlLuJ&1bBl zdV125CWOlvB9oJwc>cA!ms*8H_xDqM#I_z0B+mq|_ZLDf#pUk<%sw~Aw7wV<&*ayg z!il7ReVKfIl6^)#F?L6EXVr~hSE@Affjx{ObYAUMJ-hyBkQSf1BQ;hg{Bw5T`0!+B zo9o9}zG)=N_i#B~8{;d-&YBy9SQ7u7jvze*M2w3sT|@JHE3xwpQNA77!VUY5N7H3@ zK@EIrxQZLfQ}slA%5J2-5h4ZfKDL)uy4q=BWYTvp?2Mw>-a1CIiZj;r=(moql_u)C zZY2Ibi$kR%4|vN>oE?KKPXTna@zw1R%-50Qt()Ja(*>k z9%Rs@1z%YXvMbIzoaQGV@wX=TjPqlj_-3Tni4MNjexd@OdZ%osBY8*O29(Kz!y?I1 z7?^YV_;^_n6J(^<1$(H5Xvk`Rz_J< ziJzv-JlQ$uW1GRjt8v;x3v|xlM(-;uYl;o6AK2(d=A1UGE{R8U7wav1ruA>%MV$?{ zefr&P4ATUzn2>G$vMW-~`QZ6*r#{Eh9!q4!YU#X-@8i3ATu#r@k6DZMC`xAFhsdMO zSJlXk8{6Q#9`J0~az${WUk$)U*cTxtn*QWa9g!;dc=z-G;S^c!ouShYukElA^9)oT z6CGfgDVbVw4jfwdNJ!kn>Ga)Q{n?ai@{43BDNv1}{U_CNTXTS{;{lGSkw|87qu?~Q zlp84@OGm)Ofb)HSVCMawNNa`&4hD}P!^1wJuw0A7>Ipu+^_~VUEA#Kzel3@NQeUY2 zopwt;i=4xN=gA5xZ>b}OcPBbUadIFpYi@spFsAU5&*_Nl3Oj*Bhz~<@)ML%A*V#Uu zmK>@_{*j%--|`AlB=w@iR_;Kfz0iV)-X5RU6AMQxcfdL(V{=QXi_1n3SnsAfyK@pB zzY!S)I5mNM79F<$6}mNn_)OYR4jbLjZ;e`z7CVoRh>x(hR`+b~5JEl)4>62l%t1 zQUw@N+QXKH<`Bwd;Yy7QCp;fuvhU-tZMB-%QyZhu;_e^3&!p#-80;MZrS?()Lyv6N z#7%zoU8I+(Ngf}O91eo~-XCD7XQYxJB8;=;(e|n5l(MqK0YM3czHXnRdt4HUV5}q3z z8zQ9(qR$3JW`@I2W-3dW7AoAEup|@sI;;*Yv7&(K^PYs{%&fglPw+vS&~e0 zbcUq%S&6LTz|k&OAlHL(@FCLdPphErG2Z#qpI=H4HY@SGPoF%XfaA25*`>BZb?yQh z05otTm0WF$8G`h=#FvD7?r1b8*Sr`8r7dl=Wu#$*#7D+p;0GWOKA9ydlN>KMt65 zjSS_j)$tE*fP)e}qmcv548yVnhC_ny&g>zg6MHQ>IAA(mgPLH;j$`gSUuNcxgxcUB z^E9cq}-!e$lTtD_ymgQ$u$?>NwFLo1B)c+V*fCA+z$XOxllw=vj%u$m${hgmXi1tX5<`6*dmoicYDcD0-#8`bI-Q43{ViL=9pb~0R1 zPmhKw$SCW#z4`XjvfO}qd4=Jm^~5S#a!Re!pv5?Y{1gGCUg0~oFlXv)3 zNYpe8+^okRSEPwYwcq08>3zMqQ?yz0Kt(PISDqR3sBDUnCOX;7IFa0mf$VUNHL_=& zK(67N%&5yXcayp~o#su(UBc4|0{mYj0|HcS-BFqL)+esgda8|7Y_6zfYZ*GZtw|%= zshLnN1o(f-Tgan3qoRdQbBwl!pLZ9K8~31pRAgWpwlbz1yVK1O-G&ph7M6(LjK@b2 zL&0{#J}hP_CQpH^>i9yN*M~fMEi=fq_h2HzYB5d@e?|>uw$Ss0Pj@?PN1U3O|7EaO zxz3|5HFsUoP9I3#+}-`P6dCw+d8qP+c21k^LollX0I4aLZ|S|RK?nQoqSiXi{5}#e zfz)P0hvd1OnfY6zeYmtmNVo^S#UA~mYU4%!+NrY^^LAUN{l=;BJv2+Y^P`BAu6AT0 zmJ1ktYGtZB;GCPIk38H*=ILu?fZ)x|4Yo5%sa#5J^95&T?VifZuAto^4-Og^ZLyd)NL%eC3;{h*%% zksqB8r@@z{@TpuZ2i3R3b;7?$&KrL5X@cZe*eN4nYJneq-#C8jN=%oYi4Pb{OYMoG z?4>8q03d(Y;^u(S#FADs(w&UB>8tnN0HbqlAtXLz(c=RL$8^>3_IrYa&O(&qNNJcf zlvInqAD(<@c_u!>{9c+BPh|0(l5;zI7M*@nag0tTHLMxvFef(`Q6CH)A1Sx1EE$P5 z6p8>KJ1!hRO*c^s?g#dh6|#toCUq22N;Aisw!iWS_NFt_1AtaKR6L&2!HkqBuvt?EWhy6P)wt1s5#6k{O;MSGGZqty?_WO|PV@eh=Z$MocVML4wm9oW61y4+rYM3B zVGhT?sDbA@pBOvcB|5B}J87Kv~_s~^hqu-M= z;bJ@!m|gF!&(}*@;!ugc=Hg!%X`F+->+P0`yYU^AZS`z9#-fTh)pn#=6&d1>#|W=A zN3$|S>+9j>Xr=8F z?#OVT4wkg&yLFmq%G!V^hRbjy5D{5k%{JB};u6R1{WY5UP67P}(fl*ANrq77qq~@_ zs%d^N^FjC6t|nw)l*zL3>N^>LJoDrm3rTI|7i1BmM}d=Zi@IN}xW;JBQXu@}|H&^~K=3;!vX&o8RM>?_%^Kde&bQ?vY#8r^n|*O+(` za3|h`9W12dmsP~klbLNxzrDhwf)yf~bGrQ?YPXSy4D=EgaD`Qd6Cci7qg6mDNz@WG z?^OIw+1@=Cv!IP*pr8`%vcZ(zMqBXJQA`p``cC{qIA!8QHE`4RsqfmIbN1rBYP|~% zA4Dt_1}Q(hn`A@omVbbT3tK(Kku8WU^eq>f9Cv(zt+28wo1J)9?Uw%I%pMjTRkYW3 zv?oYrRq2E{azzPXCDYGX7``dJ%^ibIJ}?VZ4IVgpg2Bixx1i>f1Ea+?Uh4g(fB)ch zR@YG<-NwvXNqt=G7zD+4b_N6fzyKEsHSlvoUVnwsk_Pr==w_%i$CIjQA|nXJ$;dkJ zr-ctC#Jdyha#1R$RrB2k)YVlqoV>%R18 zi}z)_NB?D4NA~wS7lA2`!DxXQdiku8&*@5`T8z?9w#7O~11D5sn-eb3?&XHE0I#&- zzLB|kPv7pX*kqz`iPI-2l^vMsxfcYt+pLY4N!)VXGvrF<3;y(o^WE#F>el>F&RwVP zB{`CkqD{7~L796j->SBuj`Nd}cWJC-fD9q^8cF)BU4pGK9Aaj(=nGnP@r%eogevU{ zW51C`Jb0}4%FSFs2|BSIO137rwxCq$0WJ`cOq>@pO-39ad-Ky=f zsJ(=nXJpz1fWFZ&o9d}2JapRaX)#-Rt@KAp5Hm$&9&b%lQlVLKQft=f ziFIV;dx#!)czYBzK!fqhtXQbn{%jv?w+YPYgegK>TQV0Hc@sihxixHbYO8%Pehq{q z%I+XX6bawB9$T5rtJmHro#?s=ga)HnXOW%yXB_hRMP%smm%f^u0OVlogXijp5+e1! z57TJH)oy1I^N;qtSo*A+-dyc6v$1=2xbi(NVPLcA4H+rwa0;)enBbW|UwM870~gS4 z=FiDwo2E7~W;o^~9eohWe(WcnlvAExU@MI?fFm~*2CUY`y@;% zbOrZ_(Dr-mYD=>_Vao|4+anwC{hH})+Tc*CP2nu(up+_Kly_X}+uchPoHOcJ#Ow|f zrv^Jq@=(uBcKehz7`rN;k>Dp!v96%As5w=3v;jloY50O>s=+EIwS|RQl|8JCW2tI3#UN7oI-51G6dHUso_0A~ zd(@#JsuVm`*(@Uxa%#7oiw>K}fS0Cbs1>{a@U~jIzPdf#ynlebN}p-An!q1+VOz}``12zj4YLt@ z5q~x*Sp!Q^W4%ZPTer<-U?*lsh~2V$SaQ6j=X1bwHym#Ugmzp#^wopGoNW%g@HKGop+iwILj3%*kn+G5yah82 z{XjVm? zo*n1XYe%5XGl$S$AFadhm4&rl1v@{E_C6iVYE2Gw=O)Px{2o3V0GIiN?d0s>he!{c z-V~SMg-{qHaV&Q`!=f#Bdm!#bMC5aHK3+8;l~ioscyhhF_AyK88GFpN_--nYo6Z-+ zaavJQ$X*yg^eH@8IsQ2A#z?7;9Lf3DehN1-6&VE!Gxny8sUj?&1NOeuAxbqm)4Wm~ zXz$fyQ?K(W-oBREBJO4oIaqR(Q~r^)5rm8IZZHT-@_pKLcY4jeM@=AutWY4kGIJn!JCc!t03Di{2K%2P$8upC>;&Y%i2D{ib2~xz zXtcyMV8YGdIb{fgvdzpO^(ST|IRW|JpA!?fE*K0>B&9Q*s?+k6AH%tAVu`(jhxDml z&ZwHqgF(f=i=iaUP#nF!Bxq6v7G1o%guTe72L8rIj))ZI44}kU#0nwBZaK|aZ7RghHM%e~=G2$47!Vyh=X#y)DlWjaMK`w+It~hO2 z(caZDyARX15U4T^fo}wEC<{A83=e_f8bLs;gc}iNCY6=APrk3^J}KhEhBMDvZ`q5; z@2+bB(}SE&yGmH_av<{L4E_{a^AkY8C<*3emZj88^o;9;fS=26>Mr-yR0cOZDT+=Q zYYk&{0B7nRHY9tv37P^y!?Tb|JbLyn%0wOo%Jh;~3Or2uQ7vif^BjC8s>p0OY7 zr0KhW5N*jtoh6JWu|hAAKYYhp{EiN|ccEv8F&M7SC&a|yJvub6i(FFFbN+gn2MK=dOV1_iB}ax?jpTH-Njrw9Wa zD~r{;y}{c-Pd=vGj+OGq1b$-%l^pA%=20j08pB!Uh*~*?qYhj+`LDmbuV!xi{E4yP z5o@f*>W5Es%^@lw=_{6_X~wEQ41A zai@bb^eqnymEkJFNk0$k^RXs|goX-&CStQfHg`&JqS6yTrD4up13cgJF+x> zdN3i!6&Li(MTX{4L`3)OOYE-i9)Y7f8M&WVb|(Cf>uetqW4>t+|V*Tg|EY>itabNp-~k zggRY{=fv$Zc-|eE625k4g-OpZDtFq?HWP6MfN+pnuv7;4h z39Gxd0q{}EzXN?(A%n*kC|fv~Jk%y|hgKu*Ptl``bOgCJSVTdo46I zJZL5ysov;%``Ewq;d) z{{lm>X@2YI8d7w#s2KZdBcjQ$?6lBu%4Y+ayY!xC9l9PPv~a=orHv8uv#Z*X$_3;8 zN~A9TYSQsU|1t4&W3RLUZ^)KTaNYa<*GW|3pMIE=>w=w_>dRr=0uBe23##p3Vw|jK zzJnjYQ>4(6auOu@*9Uqq#`xIJqvs9ZdQ~>SG74fMOKNyjj1=&TP5~bPv$ULd1=^MK zKQDKK!f)u`TP6h0HUm8@AXdb5Tb|NgU#e0(jaWW&OGpt!el8XB^EInfs!V~rM=zKJ zsyjUMeIczO{Bszcq)tA`$JwB}vzoLsF2T{-p~U^bvu0IH;ehpBje;Y++gwya@*5mT z2*v4r@Ou}|NRV@gxjq9N7NhUSaVuf-^Wy=cmq*q;V*Zy0!1*DrbBJ?;&m0mQQX2i$ z&7m~&hOum6(l#;ATAIB_%pev)!$=E~Ou>ht{=dcW*{*;zFsBi}VwWx9Ueg5xaX#coWv&{8>Cnbo6)Z-(4IWn7}C%!~2^*zu9+mH<@^ z-?TWZv!O@;&7Iv&5?ZET(c}fEv}G&0nYwP;D>(j@R53#4xA$OK>>foLe|X@#I;iP$ zNy5B;qbg~Srzu_FogM`QKobuM*hA9=fAhEJc?1i3P>gp0Dh;B9X6W5jM}xwka}FEjmHV%Ix0CgiMeUmtYF_>;o=toP0^Uj>7D zu!CMi5&MuAUZ;s)u8Ft+qcTGh-1^8EmFXk%uj|spBpeR)6FOaY+MQQFT@sQ5OFA2q zNMxCLpT01d_Rz;HQmqGBsv=dD?`6ljFd= zJc>#^FLd`cPrBWUvH{nYtNO{biE=$01>dKGTb(IF)`E6>I@vZbP>&!CgJkPxo}@WJ zvvd@J`p1v17%Zq#j603)?vAhMeNQv{r#oSoO%9Mx1MT>*K7Ta5&tVYfagP`k2+EJP zHFH;@4h7KA7j^3%nqPgF9vB>ns z9iU#=@P9V1N3ij%jPJTP!C}Ha+k~9ZX<}EOASyq_SSO?%od?{K^q`?Rc}DD`Ug+V< z%KMacM-IRe>+^;DM2^SN2;FiQv)=P3sf}l`5WUDTMiXxje*e!bk}rP1s3^QWIbUd; zSnKd!?D7{It27EFyYr|F!wM|P^~-P(jM08S!_B`i)pMj*w;q0O!tG|~n|^xgdY_4C zKLkUooHJfHk_b&t5cT%x8I0U~De*NCX#@}``IxAsdeH-6x4MVQy`Ncylg_M%FG}cH z*$omtOMiy5K-CNYxY|@JDRbgeqGF|>XAqF~EjI+8hz9ZIjg$_<+#=>KDCU_0P$Gi= zFBia!0k>%TEa!hJ&SZt}Ac3S%gd-^_DaRn-bwz)mm64J{fY$e|wKXF)HfTJHBk17) zAql0%77=pmNbJp>G_VVqJZ8IW3FEsQc|0lXYD#sHWZ{XxO&z=x7KV5$+j>*+8t`eE zyK`Sos|=9&RTAC)KbpQVI)OA1(A0NN0s?x&I z@lzG&Y>8s-6sG#=koe8l_*Gfi{3F)Z;tXq5Cx**uHC2gXA2K{AzHF+bVME~IVFN+1 zSx=u^y;e{H=#bp6JxI$Hfy&uB2h#G9$IHm{L((FDF!*d`w%QXYViMAHtc%Oi~g=^9crJt9j=DA-ezjt~6SU z@erUCg~!G7;nC&kZuX`3mwjiv-gqoT31Xi!<%L%u*(;C+Sa!R{-Hyc!qH;LDo)u{hT?*P9ZqI`eMWc?y{3oB zM*teyUs&?qf#DFJphS{v5(6fFXXjRxYmaz+X1lacOJ+Bz=H6+;}(@$ou3z2rx~Wt?#uv(A*z(IF5;YloO^ ziAF~({>D54laJoRV=<`@KsL1vi1G|l{)>pPK?FXvE+MxSI6PIHotL|w8%w@io34X7 zH3nTdcK_z z;QOMLrYg~w_ErBv)S!j6LeeNnfN<~F=AV1FA-(Sms zwAxf&U12<15+m^NWCCU+=NH6J-hx@cW-~?7(4BEs`~n}Z4hY^Pt^wamM?;AC-KOT| z`u3(looV<0#-i0;OdWSeyBE8;OmIwRJ~fHC+T=98);wbv61>|f%^BE`4UL@_^7Yi; zd5b+kjSVGg4IC#lnP8K#MtB`;bhlSfDB3;I>bN5Ld7LAPZTgHG%!$E6cJ&$Nl_`|O z!++)JOUi7T*>FRWr-h$uZDOjW{I&T)pCh<3j^eU8t^+)EnshqWhZkKQ-=PZ{`Fg^T zsuEzQEd^bImHfI$#W5*_GlUI?{teh*2d1FG@p08jsyi#L%0X`W_4Xy$mGZ7#)B7&5 zf-D@K;8RLuJwizUVp3x)qvQnNokn{U+2|Rss$-jd|JhTsQC@kTzCMy_-Afp9`yrFx6s$=DsMYKVL#7Fuex=%>RgN2ZpMa*mM9rG#2i^( z_*w=y9VwA5`Y+6Cr41$5DO{TjhDBcyBM6eO#bfMvm&EcK zdQb!t6)0aG1SWvC} z9SHy$U(wME1p{2bH$<8jCYkgixhN$oWCU>CM*;Wspg1?tvNP^wC6ku6zb*&L7HhWE z&j>b+OrlFJoPu{HX9l2;mPK{eu%Kxk7z{x8v6rEHBST{p&rzu67#Lr0Xaq#SD4|e7 z6o()2#jE0+Phn)R{RP5GfYFk{9Be2!3{Lj`TqHdsW8@|Ni@znq(}m-f?dsq`I4&Y0 z!t;&yaHv7s#&*>l%(xXXZJpAdU0v;+AmU%L(K6vTfZVhI|6Vp~D1D+^R^zZkPESDl zA0@77xqVd>3MC*^B2f z%CX?%OXolAP=k-l5^6>5W;x}HyLr(02*$f`d*AMN*jjr()J+?{O&Xt^(Hf~UJt10~ znFIYPTwTh1)ZBw69EzFxE|{^NZR7Fh_7i*QMldBMAI;U?f(4#3j^yt!ExtFV4L(=8 z=N^D>=Q-~mflQs%%RS&9nYFE8ivla{yLK1Z1#lK`@Ay3K z+Q#`;mMb-VCjRlo%0MsN!fph|<3wB7aSD~a$Bj>Mz>k8+&>x(X;@@OJDl^lq3Dj*5 z7`Q3ze%ILz6!NHq>!2FG2g72j+jq}q$EPLsSIbRUzBlA|*$xJ4?E#eW*{fbBjIZ>N z?A`Kq%_>IH@B71khlj)F?|B_5zYgQDU67-y;56!r9nz<&3+T=UWGA4-&$k27M5~1#qEWZ5hBI8A&B9ZpnPq(Z4 zFAs^$+Rs;knM1e|`YX>iT&Sq5#rEj#&EvhKhOg>%RnSC|3pdUmXgRBrTXMVa63wc` z-#mWY)*KI^%&g_F!RUXGI2cw%n1aUirPw zd>r5He5HRNhCr+1CugNb4OQm2etjJ7uGF7U3!DBF{Hrn z?@j)K+)eZlT3dy)H8DrQr<;TQAo^(NVc~?zD=JA z3$f_T<+Q$KCLBIP@w3XoW%^q*3-my6X1FV649x1}lpM9a+Kv|%;oBbuXsLSIj!*KQ z;A`$a*oPR2sNc(7q&EdOow#juY@yoQT8q&g(cKl$SvY&iQwneX$uTZZ3tJE#t>=Ao zc5m$EHh5=*F;euHrK?ifO?`sgPm)pG-yOX)12)HnaoJJOMtZy7E0*OpB)(WMlHJM5 zWqUI=b4?m6uZwMPe<-ZjoWjqQKiZl4)CZgUZ2}-G6Fuh}cONb#mP*ERV%5)%NX&Nw z8VQG6Z3S9lESdy{nd4x*O_$qP{&HWh6RjddhCLmme$iTaP^bVq;a36T?PeE@3^myU zk+k%!4jb|uRCZ#5Vuw=P+)e8Ni@yUn*L$(xxUM?nPg_l)z+XWJzY*!j0N=m5k2?!vV zj-4w^KrV1@?8RohF{z3hA;}1nmzxs1$@?73falpHgJ=xKR$99Nt6gj_PtUDSy{@Rj ztIRw&=ClMU-p0di%U)%DjklZQf{h42WnmcFA_wFck3k|fF*6XHDYq>y2awt+B?Cu> z6pQ^2o#Jv8nv;2~Vj7xcr?3r6kbXa^lxi)wc;EiMtcPgtEn&2rM>^BsIH zeUmS?-GpkdzOyNW@=;5t7)ZECK$$UfZ|gJDQiSY~>iqp|giq_;B_%}}{oBim$T*#o zA)75K_8oA**_3d)Hasf%$kKeiK2~jaU}tCN?Y_wrN^k9P3NG8)0LQo0fP(pw>VHD% z=tcRo6kQ}3b5xRpu;|U##yP8Im)cRBpV6&LnD#;k=Di*6<1~4E@Gi4Ez?k(U1_NNc zh}unR)2ZeHTV~M9$P=e#nacgl48tY)F7rOYKAoe`-7LIIUnIb2r1 z%8Ex6NP|Jl_q9GPph1V0(DFtuZf=48jabGz6qI`BeK@OOWK}SkcIh1l?04UWI(ExY zjM(s9?~ZgEKL@%AJvLF^5v@&j884~Dk1+CjuBkKV0Fw0m{0zvjAohZ0z0-r=}l zy<&Jai!8V(!^`#Jk6)pk=VMp~vVf4Fys@{+(N<-WYAY>s+p`{-+tZjkc4x=rXh%vJ zJn4vxwPD5k0V4sT#&d1lYC`*@pwB+9Q`8w{B{TM0f33K0yZ0Y&{VqH{#f%tLSgFLaZEwNQ@1gf(?KKXq-D3Zm##a`NJ#~JZymY9;} zN)X_br1LSwmrl8B$H#^3IBH`p(kIz1k9olfUq5%n_?4ZtE!$!O^+ z-(IN98YVf7R(RZC8e{vX#UNC%kA|#))Q$09m9BI{;XeO%^MK!FU_~_f7ZNfNr&*FO z?n_u4iV|}piAG(_<-YAWZN z$xuP37EJr6{KWg0?d$C(8|!K%Y;(|DMrFekm8=*DYEI#~=i1_VBV#sR^e#3kPut~q z;3|vw@9in1*K-&C;bI)e%`?vyb>7a7b8O$1M$B2Otso=^%A{XK3sSLfS8Vc8g6~*dho<55_#5h%ao!>HR&Z8SgnwB9jFUUdQ!xgxC zvHfsB7a2fBDel{FpnOugIg!oCiS-ttiiZI0t7+PzCbBZ$U`j{hDZ#)lTDLYSGAy2s zdOwU9J)Lf;A_JX}!KFjo-4DV+)Q~<&1Rp!nq5u(0x|n2G+F9eWsli&3t#n#z3|gwc zGHEkkY0@@cS!PC*k{p%t#iSypfJ&z{O_>lKtwJ*S19kLePFbqe#Uf~Iy7;2fNaavs zg!nV+G+=aExs=`?RMjxU^kCnd4da9#^`W7`;=_+D^89@ILrLI;F+l9Y6aSERdrPr2bd@FT8NCgye6l{>+St`0$D zrR9Rfrx;R{MzLeotzRp?O`THFC&x0QdMVS zVc#o)C}I=nWHuNZhh$C<4v{hWfkp8{)65=KocZ5(N51atdaMbHe-jOE{B99V1greY zA|77nOx-+KrWy#s#ZI)aVMZJnJ$j05wurWoENmcNwBQKCToj2N7nNTcjBv_oMJ}|O zDEI~a^R5OT+hySCK_Xdk_bI*a=xN{)vjQy`_gpouscH)7@ijF z!E8^cb^FLkqRwzfCWUPP-`Jcx!Ux73$n@SPdFx|x3Fm+ zilVA`DuBF>^P(t)6$i~@nZ-t69D)b@P%w^!dFM?pL(RLCb1mZ>`| zZ(VG&lUm6a9*jKlgHmR?>QI+Fx<#H@Xt|ESG>JX8`Y-LK z!C&Xkui)hWal^cM;E=QGzEW<=#+y3yu42RkvD`8H)b%mwij1kERjzqEYxDF#u3A?4 z+2dMR<7QK+EAXPdr2hNW&SKi__@$i5y@|{7P8yD?lHo`aWtK_i+0t@vm)%jXbF}g{ z=DG0+E={e?6bx;Gza8RV$r0O2dev_tX!VsA!II5)b?=%9P`$*EM|ceN<@}TGi^SX8 zZxS=U5zIpMVe`HCoGd+q#2dX2fh7xpP;W49D4yx&SOa8t*w2B36A)kQq{M^`PxFm@ z+dFcr-Y8Mc-e?X>1HHS=4*g|mpvB+`A+n)h+>rkSXNmS9M40I;DcseLJw5!(3PiNB zwcZ`WFd<=e{WPO@9gpFNw8Xmsy}#XkMm7Xe!J!i7m6nE`oLGN47|Rfskmx7i>j9<7 z={QC=@JBWBvybT!-`osX<+gm_MGNifdlGNL)GRkU)(Y#Q(`y8Q>=xsYLwpCkv zY$>EF+`!Kd&rl&_7dw5EoDDY7(`veV{(*|4sjfFnqOUR8Bsl2N-fQtQTY7k&p_+Zk z`&Xa8itX_PtL~37*=1e!%A95m9)ae+pEh}cZ@dl2E6?>u)>h!;X2 z)vr8S^HUX>8=hYb+!Cv*@)qcSo2zh=q$e2a_+{v#)mO8RHk@$G0+D~-Pp6g4A&dkLFuVS ziv9F&))fXVl%|?+lWgmqQyKV~vW0lP)J?zs^rKDH}h$f)zeU#NW24Tt*arTTv}pb5zCqK z-AeU~&1dY^)0N}oQC@So@&OXu1G9{Sfdvk)2b5Yro;|-#3$EjCq4%?L-v@acvP+u{ zK0h|@pW?6mq3C1#F#=Qi2S>32xt;kL$)z-AlJG^{9gAGQTX=>(HUy%ZixP>}d0|hj zp9^6cc~sCssdWfKl7sC7I&>Zr9t)owlFT(~ElZ%WFE=9p+hp}T%n;PYAdafKkH&?k zPQO%qjZeks@As{C4BDPZK|ydw_~>^y0@^w{R(5tUA~Mo0F6@nsX>3=ud1rLhZSS~U zFWYLq*SaDmFUlppb7xgF4`}z&e-+A2NPa^tVT3TeMe#^p{WW4c`s%uLX-** zLJ=T=Ztprq&laBHpa_aVRpke#dyS>U#nGWbE?AbO1XifIJs`1^CK#W4&cg`HVeAKk zy?v#H@5)xW&zoGv4yk;U&Y?OwG!6mky|by5a)whG27W?A8LQzCiq!~D0|oMpgnUn8 znUeC2m~QbkWK20n=K@EmZ3(r!GdaGMh$w;g0hmzq3X z);vFaFElAUPRenT*&I)9UZ1}-x$J4Ucskp_NWYkhl0%m%O=r6IK?t!fV;a1M!EIXhA5P+E$Ui$*7f0BUHKcx32*V z>o6n%C0np9baWawoP2k@Y&$NCuhQ*R)20?00asXNCE_6oW3`6Q-qm`nxi%UN>@|(3 zM4@%}j9~AP>L9YW*5S`VjcV#Rbxm7HbT$vI@SamFGr;#)_G4(V>so%H%3!ef^GC4X z`=Ota%qUhWgI46F*Wp_E0)7=BK~8_HwVf(B#c=zMmch=-)Kix6TveyFv+<&cE!7OH z-y2|;Yf#{|>5e!2m>_MzfpqVxc68fY2EZnavIM8tuRy2I0DG1wUUG9a{oeu7?jb7 z+GNF6%oV^0NU681l#M5#y%~MeYFCSd`?9!=3rxa9vkbOURyB~<^TBR(#hx>ztCirq zhP3{#O(hPG5H1)V=>fcsD-n>KKOJ-;+^XE(d<_Uu9*71PKgV=CWSc> zhP7=xaQS{D<$_Bt*{TzhJYPZZ=3=$ri&PHiJL%RTnA8P`m0qf21F_vv={&~ zsGeHd!n?si$(eFDrdT`3N`@_!LQR>lrl6EXPI?9n8W9bcSc(=(VFn-kX;Gtv4j3n> z&7}qmtf`fcU@ZK4VP=qDOaaJ0qHXxJ%7F$3dQr$j;LC`H*Fe+i>^uWx;1fgh_UN(V z8<1@g-phI=W>Q=9!&8-8!T&EW-4jlwfhy+h`Y^9tC2m`oXkE%UL5TLRYVXqTG~u-s zNSaqs5eWq1gP{XzfG8ZM9i)%9uG?uilD>L7;-?`fEW~FG2ZjSqa%c|;q|am_82DIG z)Dtk((iGi=TVpCB<%TiY!i`ldYSF>eNVwQEuc|-VQL&#Lb=Rl6-f7J`M4S>Cxzwozd|Ix#a|;Wne5M5@h?|^afQTk=!mg zr~z09HccQa4(+fSeU^XciRyst7T6QsVxOU7-x)zJ88=-$0`80Oza9a#zUzE+^p%?R zrmS6W=PvL7trkZJ5DYWHK(r*ebdZj#^23}27c;o}xV2-7-7$kkbDr?nroa2jsgh0+ zUFk(2^4~_?PHhD3jj)LGtLwtEzktRbdOb1HfRwOE;Go2A`?D)%!Gi#cXMEfiEpWvUqmRVoJ zFM;9Q_ct#8y1KMnFuf9si+f+)ex7Iu{o zOqioMKWd4Om$PJ}m8ZhH_i2BVQ%O>=B)q+I9=?9dp3%2%(5FL>5kIw*D5}x$rO}NsKx91b|WZ6-x`0tz3!r6f&VElz9-E|1FH^k(v$7aXnZZFAS7K68y z#q{}wfkaB#r+(&~t?IUoft5z)xZ;dJdWTCL4R>nAGa^uOU?`ApqtlRX*N$EkP1nhV zj~beX%68ql?zbdMxoF)lJ!PYwzcDyaH1>Lg#_-+wZ&c!zsT0xd3L(&{-79Gfe35|* z<$$P6j!ZXM^9clL8_nkBB3C!5>)PR3rLo*<-p&epY0cjw1-hjzcD_S~&D}0-$cTs{ zCRCi<%xboqrp}}!p0f(s`RPfa7R`9c1;!NYk*8mR=co+t=?K(GoOg94oRqFk(-@oq zMTwCF)d=NmM(f|A{-pX_acD8^-P})mM74h{`Pom){RZ>i*{NKnxHOPm{Ce03=ou!|0Pl9jsVS2r_#-dV< zg|x`h3$`3IHZfH&%vHZ}uk&5v`u}!dcyS-0=rrL)d&EoGq>dpB6LB6P zZLMeltY|&lsw67D*BN&f6l~Yb0s8wqSF+V@QciYNsjrv7Sf^Yn48zN`9q}6^y4nLqur`Z{-M`ycwFqA<4 zDX7YD0U{WfvuuHf2fK zvah4@GydLj-2*~TOF=@aNr9i_^Z7BXFq!g4FlEb95!z7k88o+*h0JT)Wb2J9N=jtd zixpI@)fzahMm!xcfIl#1A}noFq1Y=pRjoNWz$KxDr+mXV-=Kba!6U9EFFBUk*wk;T zTuZS73da#?N`uUee9;kOs!q1!2l9;J!*31TFv+*D=Klxpa*5!n^dB{4`{71>5CA7U zLM`;}RKLvdxb99;t#eRm@J3gCdb7{$m*IN4;Bq_8J-xIvMDjLGqC$tgS$1uJWv|(k znA#)|1f}P_TW9gS_i}0U{`x$Y!43z2)@icMud7RtPNIT{m!e?04re9=favK*I!mZf z%szX=;HlQOi5F!0sF)4QddY3Lb$o$=SQtFDmeCT8pDU85c>y^oQxr7CT?Pt_Ytn+Q zU{+D3wNt}*Is)z5C>9%Gp8`nL&_WX^m5|UNY*&n?+@V*@VHt8t$m#PTzm1|Jy162j zFfDor25PwBj%C0t1BTg|Gm%kxIM4Bkayn0FDU)Rb8#CoAP&Dgl@~T90afX(#9G}X> z_ltyV0WEhKPXFb9H^#D*K`^2s5)v?*&kufR(173OjjTL8QeYUKD4OHh5-S}YeR+9x zNn2Z{Dci8%<66+6r$*M73ajM?uDO{N!<)A>w`l`-tC}AJgdBu}fNX^%g;M5gDQ04A zaWXrwWp5%*WYEta!iEk3NDs0GSji$obm+mt!NP=o>h+gXAs>NU&qI5of`fzRmR~eQ z%HzO_g0!;yrG)mhrJ0A7?xv=J&oX1>Y^n)TjyM)SG)meK12w2|RI^T(k~VB*H^2PK zs=ymTbT+Hanr6cOO@EMBbT*kC&S~5w;;6=H z2%K7IKjg{{ThR2jQJPMloh!e&v7jXx8E)@`B11$oSPuTN-h!C&=RTcP!VK=aB(;m z>FF@07U_9XG3OR6@hdpUf+y@F94yT_tb!q%8IA~Wl7lRTwdD~RbWGwZNSi6(i>Q+P zRiyJ!5$q^PBO44VQV=~NWS(wlcY9ue3VWmI zc59%qC`&x12jUE#ylRTMUZ!*Ek5#e7;(j(jx{0y-j99Ku3;DAqBukxIwyKG;m5WM_ z)_uaB2c7_rNU+6Nw5dJYV?))n$p>PVrELgNu<jtdk*OX9ePO;1!Uk{p^l+(nGj6PG!2dRPUps8If*FR3ey|Y*XyBd1-M*c2 zBvWK5xI5xTIW$&kh)6QJiB);MPN*koG^hN{rOM@X?Q4Q<56jQ!LtXaH=V}Qv*)M*t za6!SLq&ydm*CnJ)Z2u-iR{@MYmyaW@Z`ES}IN$qDBSCahOR1&6_wG*M6q101G3oH2&GA? z-{8WNOfGTr#V<=SpKA1NXcdfmRxYN9_`w$+!HpnD0Hv5e>bzD@Zus=pC}yq(pU7a( zzhL&DzUPM==4y*Tmk0Bgzb`M~Mg~PH<+6gwQITkaT}{|PBuq5?5H#h35X|$qoLTC? z7h>+a7-8;Cu&jgdmz%Gh+&*iqqAUxOm2VI6GoP@x=vnqM(mp{c0*b;1CErHTZ%y>PVcx~T-`GrAcykf(%Jnsp)8-kJX0!UKgQW_m&}#qrX}Xp}-NI-q2Wz zvH=FZmKlZ9z!GgyP)NF&F1IgIW+a;264P^62o%$zw_^Cc2tWS5Pp2|M7&A@0_~O?s zyZJ;b=}r;@xoR~&ls8$&6eog&@nG4dVu)*ew!$mT)50_wQ0;FjmUX1zT#ywH4++~; zWpb|Z5wuQ#YC^3riAhxqu`imlbOkx+9bnfd_TTc!h)iV8^_~6wh78zfM?ZLj?9zH+ z+w^oIP`tR{8^=kJqpFF#)2g9%6PvEnx>?`Ul%gIH{X64er@usAE(2m$J(`M$U!NXR*DLRZ}IM`+0QlD;LX_I z?`bn^xj~pTBk@RS)@zJhBk-#jTB^AI&w@0`oDo(53>5~OB0#PD(dG3J+}4t^H}9;! zvvj_sY9azhzik4Lz`j`?F$`2odB1tCBK`RM!_AsEC8 zv!6KWB7Cvk$|(^VCO*;`%VrS_+#rto6ktY!g~Pt#%RHMVSCTxQoueN}LuFEL%*IZS z)wOoRCiGCLjq$&#v7q_zBhx)D6R*vJgP~1zqGG!%#Qm@(@AJ`gVRUpfxV;k*5fQkF z8`wmCO6PMuQE$%rnGYS1XBOGL{RQPuJ%Al~I2LtSr&=A^odB!2dz-TZSuG?yLo*Q#$H_0AD6#nBz`mEUTx#>L?Q9WOL$I_Yc~xP ze(5rguf}Kz7-$f|hYf}ZATfl1A{RP$SG!FkvE6Dj*ywG3FO2)RFKukU$@G124?%_> zwh&^^5Ud0*?PQoCH0O@IUqs;4*&Koi`qyfIbQ^v4b25{Ydk+Y_)s zuC~CTYF36|G8_}5CoUf&ZzlFNAUehpN`GOtVN*q(PUk?R%ltjjTIhXwSa%WsYKWXS zwZnq#vXg&&gx~t<)qu<8EfIP(_jJ2C6Fc|a8;M?p=|kA-l1OjSb@SQxVWV^{7B!v} z#N<{Nu9imGD%E5w>9&KjTDQwnH#otQku1F-%f^2F^LOH7;&3!|gkZ$^*ZO(0%F&a= zdCJH{smKmYL#S|ldw#pi$3X~wDKQ-B##=2UBv8j;PRC^{!BW>P{pRMmJ1Ut9Mp0gC zKfo-z-CUhE00D&@UAKWu(cK~gqN?R+g{t#roJwsFzDxJ~c6d^5r!dXp>8OVLdeDz0 zBIG=>^pbB#VRe7iPXO<53*KFrU4~1r&f3s~tU=XKK^5xdr`JyH$x_&jd0QOCzmY|d zcmg99iO!(Y5Pn)}@jR{f`R0cOzd<^8TC2+;Wc=v9rJbGNS%55Vt`Z*3_)L5IY>yMn ztVPHkm>_W;`ED-mMdMj0$@arD9D`6{C5`H0$}k*-Tb9Vm+5xM91HXi`zp6>B_<63z zi(#4B^F%s~#8s;E&5A@e%0z5)#4<9co2dvLv+N3aaHle?zAyOGD7xAR!021TJTT1u z(pYgmAU3|oHXyF#1TPxO$WTc{LnCE^xVJ<2JfFk(x2<#}OZX%abg7~;8ip+;O$wRX zH*`XV+rrhC@^Y7BBJ45cP>^Li$PiB)7dJTaXk&X;L*?~uutV*nek{`%Jp`7@v=^@- z-t>$Ed-AYWcosL9Qi&>}oC-WO?Xyz$HPXL-Rf)JiivA4?#hrB6bkh9$V-c)b=56D0Rv$&VF}$XFtk)-(Z(pUK~7Qb z-Uteu5KJsEE0Y%=#^m6#1P7CId&u*E;fc4vKL_EXI1*~Gl$}DX9rRd<16lHoJkhC` zi^Z6bKg#g%qiI|R$V&IFi{PjtF)b! zvo5KWigchIZ0Tm$(NxOmN*EPY`8T(34Xh6`H*>}$zZB7WVxj~gGGI;{5SPS{K*Dlo z7Vkd4JdGTF1PGGjOnBH&1pgb&DEDc8*IzaT7lZIIPwk3lj$H)rTE?tx@?6}hC(lmI z`V%E|m-XG{6jE42y@ldV|2Ukqi*B*%o>8XxoXWF@pnX;T+Ne#LIiB+lgUMq6=4jAL z(53XW^FlN@O;95gur2jIQA(KCAKW~n3+iE1D!c6Ogs1*#@$c@PN)OZ1OPqL1?2a^? zXb(4+t+lQ)?y`8gq69GVb|0ag@zE^*kyK7)X+v+aRcUWo-pO-lxj6AZXy92RzemHD z&NjK8skUoq7%Q1(+x@~y_#spTf(FK%(%EY2l-L_F8nkuBiUrA62yeA&jA-8DxE$_h zteCU6&Kqq$U{q?PI-L@x>T8OR)ZAk-%G>P-_R_U8rk$L9Mq=U?sZwzw2I%-;oSxKe;1v=R)0_0Z zS9`^$^b2%(O{?=fQA?!}#<3dmCMIL%E+%ey0*Byd@FGxAMljNq2GvVbNs|(T^8v^l z`JrkufN%$u9+9|8atn(Y+t%Ab+9mYZa0c*7*VW4xS!Z4-v!cWAV+bYuwzK@ zlNqI318Jt914NNTSFr0|BU!Ia21tXAW+xpAXKJ%#h3lYeyltlw(I7L!2lf4eozKOD z*xi{rQ6omg*RK68N;T8F9sEvZPRb~4nyIsKF~DO3K*8&XV1WhUq3-nbg(%=lzc3Oh zJZefdV&Ja6*HdfZogVEPdKvDQt76=QCdD{4jKkDx>Kzp`o6A z_Szn{za8sDi~s;&TTgN)fIq68M9`7^eZ&1bvl_rDMFK5*5b&Zx)VQlJC-6TmT90vA>ivPdjZLCZruS0rrjTpDZb`0IhkZ+^fwJY)c?L&tAf z@a8&}7H~wkw2K}<+6>SR6U&48?2~#9zzhkVPOrQ$?JpYG3LBK~v!qLT`XddUU#^1s zleHAfRNAA@xZ=qN*mnb4T&xF#?_ zG2koKvrNIdg)u=h;Gg|{30DUDtz?yrXnpEk&7_D85&gK1>IN3TFw+#p0!W#nW^*Wb z`>W}@Q9i(l%dj8+olE;Ax!3^+h<6&YS9StnmWZlsK_&}*MA?UXP1L&2f8Mj7iN5u1`VVG+Yf_ zTjCov+q0VVIyppXB429DPtkG6oruc3l>)1&bM3a?fwAc2SQ-+!2;jA;AL3n*ekX<& z^Ex|P39?|A^ZIzF1Z)$@8-wzf>s`1X+dD(xHkJmUPTlIdJZvY_%GJo=6Zg(%$w;$< zG%oo;T^sCDRHaHrAeYZ~E-#8dTb~0&BNIT4#vP4ofI`&TdYnHN$ppSL;uXt)+*o%H zz#!LwcxJu7oc7fbqgTsg2x3O`SGut2e1)8ix}X(XMk@`Kiweh0`Hr>sBw}JMtv+J* zogzW=rTv}F->zJGHTO4Hm=gHfgepxS-1vpMK|B+wVr$1BFwV6;L27B&e&Cx;v|3Af zlFm0Vu|0(Eoz~Y!qgLrdVbV7!T`yW4)aJAY~F z;xh4Ui5hqD8wN%gU0ju4PIj-*1P^Q$qv0t|)Vg@QO07|c#GpUve$SO?zl#k6Btik5 zhkb{HviL+OBLO2{SRZTEEb8Y<+cMq3v&XFN^{WVNTM5>InHBtMOynaOWZOByUm?C5D8 zW_rn$`C_2jz=^lvv23*O*1yomCET$&0Oe*|>tR$`RHvVW9r?we-q8j4m$3c1V!Y%n zP;8>srlX%(gP!oQ@6lL?i=ThdNvXkcJ?j{H(5e|8A~n=N=-}!JKZHoi*SBVrz$-64 zaK2`B?IT)Va&t-3#_qyb*~u`ie=@hZ&X)b6u}&qjL$O1I#}m&bwHf{IuFb$xXTFaz zIv>noA6Q3Z>*BN+o?&fmVJx2JL`bs8pjX2H?RNzi~D;~ z7#vBIut8e<;Kk|oK`sglmVf0AD~_(pBpmZt-}w}>Wnl)FO)x$4QE7b2ogMMcbeN=N zc3R0xivIg?SVwqP!HVimPVR%_i(t@GYLSCQLhdFfXg3bk`Lv5SG# z*uKLnJQ5Aw&N63ua{mj;Y&;uvc@|f&{?J^UzHC!_ki4RUWbyemY8Hza-LJf{@yRZb zaLtMWuL||grReU#9rCCe!?IJ(@As&?74Ay?o?<;O(S3BHGeVvi8d-}9QPnJ-C$`@? z+J1TMq7eH&8RdB2NP`J`y-3XMAWTJp?tc%sUFWLcu{(qQbnO-SxcBvnKuW!+i^ za;)<#(VL~DayfqW>m2S~nZ^Id0+?3osM6*oY%P&ei%$EKaTE-eTR@;L|_3b01^t^HHPsE1M(8ayV4*_yIXa;+Zukjt7MGLyCi0ZT* z^zZ_kzV+UO0A}$~RQd`){gI@56aY0qT`xvu+aFC1JEm#`1*{OXEx171B+h&F;oeGY zS)6ZkWVk13$aLct%#llV@)$+P2AvzFf5x{jFPop9s0GXy1_JvBNwI%6g!yDc$#of{ z_f+Qm$bL4Hf001(e&arYrw^qGJfNjzdR8LZ{QE$$7Sk)x)!$nK%`rX_k4JkmDSS4d zsKddfH8)3tpJ{ty&8Q-CJ2bBMLjotsEF{x+MO<3ywZeQjOy?=4(nW3bZ+u}aOLB50 z9ZnioV3Q{v(}$tp=6eSYpZ=xA?tA=>vgK{8eirBY!pyCYQUWT;SNSf zxa~Jm4Qt3Me@}MvqqufHlteL|B4eKsN5U}6X`<&{wO5cePp72ES{j*@8QUI`R(%G~ z_uNKk#b2um_9LF&e|Q!DA5-rb9!VE&4Nq(*6Qg6>wl%SBb7Djo_A!xPQ;ezZH$kKhzYZ`W{2>zaFKgxF(z|JKW=po*Q z6qaZ(>v1lX*g-!-aVHvm;bWQUhS4!jE(k6kiRD)x79MH;Ym2*ip+yND^sN6o0toxX z9X|Pd5Ozhi*^E4G+Kjiqvca8Js;9ohxj}FN=S+IKreVJDK!DBQoXN&C#6etV`e_%w zT?OrBUn2>DKE!q|c^jKC2YsgLYoULS_IdU7q44=Q`xO=tV283^?K=RI>$L`-SV z_n$(G&DrgT#2j{$ZNR0E` zgF{jQy+3|es6Fm)$q?dB6aj)7t>|IHWC8A8;q!iAzfaedOLd$&4kidLRS9a}wFou! zvVcO$e-bUDr7?eyXf?TnKomI(8lKu#epak%W8y@Opk_9VnIjGrC52gpUwxu(_UGAS zxu`bkwUSO(uUiY=jeCEem78yJj=(m&ng1>gHtR@WUT&j|@m^OgmM`yv->N@A2W=YQ zm?SS4Z5nw?_9AK&ov^I*mBi=hog$UL6H>qU@I+)JH@{ycXGszRu+ODOL4F^b%gaYJ zj%aJK-6(STf>MR~b%7o;(2r(WBk z;h7`z^3N{r(`>9!st-t>?kwED`#wMzze(-!j%xD`ChoWa%iTN!dK()kg?tJr;+ z6dndHDmVZOQo_LhLHh{_a&6`1YX|9jtN z!*l1mz0o%YR0|+*Pe=KT}WXQ;`p1ok84|E!!M!^5!gE7y)R{G-| zuU7lG(Ns6GASmGnf}Z<7K3~8AQK_yW;nB?Iv-75(dF|IAIiB8JUcti2q91cV7iuW8 zy-Z$k9g6c1(suRwDa-kR_xGvbOWjJuN9eWVKjRNTaF5==}ONTu3l&r_`EII#9Vg%R7?c2`~#`{R#EN0Xv1Vf zc31uj`z4A4SlD4>sFelAPi|sL>1LS7j=fU&c^1`W)tt`RO}8;B!J{(E%sdq9Y}_#d ziW%~-!A}LJ!Ktk5OE`Ly%p3OeKiGXQSN#NiYGxe`@EZPEhwJ7wYB{&e=KBJEn-)#q z^O0XUKZ{VpJ7?j`Xp~#?+~xTj{M< z32lt{nuf{n8bSPZ4@Tr?f>Xr+q!LUha`lPaA4mXz)e5jEC7Fwy{3Ctd@ed^aFiWTs z5{SfoOzLNY6cgOmCsHSD6U=58if{8tA^yr|G%(P&SQyk{>>e|DD}^8O1EY=jGN82S zqTMWLFT*%oNu1Fp!K^4B`}(K!l}rqhJL}Ex%u92I%}E~{)aS(ezN0gC81Wk5-0f3D zzbwT-)6+N?liTXTvh=>@sf2Bl^%S$Z7k{J2mlb%QcKpI7(&@-|qwE+^kmklN?|YB# zd%5Z$TFPjj_n^%cTosFt539Jer?+KbHjtFEw`b_kyHdbrg$x2ZHKgl3)r9N)|G><| z`_xJEl>a)mY;%9*&`;3~*ngqky0b#7ZIs%3!xP%f=o-wP)Y1G-9cjF8QiB#fHc$bE z*N!DOh!hi~(N73VBr|HUD=0R2I;VlU%rFTxZPtwC7%|8+3=>5#Yl7&`XQ0TgJgLrc zbC+m^atckq(#*+Yo{W^C10L(JH>61+m05~ORxOnTYk3xr)@V(ZCC>FFt}-o7Dg|q1 zQb?Pu0~?9SiNICh#tvFq>#R88ZmKY>DAR9?6+6M7A5dema7^q}V^KI5;nHPFE7E{^ zyYlhDVvXr)iyE9}0;|y82Z0whhVf(c7`sgf01Ip!#&762! z&Bp(xBD9lDy-uJ9ZO z77nP=_@Is9X(B{Lcpa^>i!Jj36`L!vchGnIrt9LSM7e_2}g>Q-*F(~h&^Hko+k@VyX&g13(R z@jV*bvcWGnx5diFS-Y7%97{5#Dxva+d}WiO6R3y8)?F7$=;yQygN&MnrC2kW!kNw- zh_%Y$d?|tJiz$a~PJ=8y)zuwW#WbDV*gwukpOH^_!yXEq{cjXg?!+=el8m2WYdFTt;9loLRWtHC474 z`b$XvezQz(<0zixyATP2{pgb)LH?*@l+OAfaR4IpZuHkS zu{S?F`*NiSwFoZ-u$YTI)%h+lCDo+dmP5#(FYV}Fupdg{a>?>wuKL@r%2AYqdp?>- zQ{bzyBtCe+#clI&1EdJYOpR(9NotgP&wC|h6nQY&n^(y_$4czdU74mYq;=&X<~LXZ zAn5}Tn^(YvpgoS~;`R|j1ZQLh5y&cD(2rs&&}KEIN-3W6g&oo`nq7k^!u&Ib5TCUG zdKC;Kh#16IZG|#M4Oe17m>V{YJu-kg+>rj&j1=Gfk9zxz$Jc(Ipb{u|27AEY;3OX@ zHhMoqz+=hpZ^!)4)Ya+26ZzA#M!RGXU0vgAGq!vr-)P*N4YmiaSrp@!n+~aY4!-8& zLALm0TCs}MiuN8bH8-4SHL*Ztg(SY);H^RU;WoKx5ujhkco48{094Q4p1?XmQBFo* zb0Dxm1m3a6Ywre$*orxw-lhz=GdesnS)Ci4)Q_$-gD^LK`V?34X646>IQWagcJM+Z+&kTURz zski1?owXT4AWNyZ8SC4Uv)+dnbe-nUVOHA7jZ)-g0d@7%K}9xw5{}aeG=Q9!evzd; zet>#pD~uDqm4r8VeMv<+OcJ@ii5o;dNj(b%AMI|#|A|n5YMfddB_-F3svB`)qBjZ3 zub{>vyNhkfXlv)3#T3OWl#No*b%~LkUU&^QySyEm>%)UKmqEU&HQ)3f|C1?Up-@@) z$ZbxkqI!WhXm8Wsz#h(+m;ldZj;7WPcNEpj1BsL0YmzxC3b7CpPG=t4D9w}P(jmHG zQ=EX~1P5oCTb!yf*hOT@J~+Ybct=_sc~clTmqRY|sVR=Hps&D}zD(DQe6s_?lQ=4F z)X|Kk_si8vJd;_t6k*AX1b&xib=@jRRA)CD^-ufOfk*VU} zVaoz54#QX*hX|(ggOsV8c#CgqZ6?@0a|NdYW+-qhCxg0Jg~$Cl8q~vLlQZe3=;mU^ zW8yBv|H=7xkCae({<#YieLnCaile*rst4AHXt3#i* zhr?rX(P2EBAj^nRT9x=+J;07|@Q-|j>`5Fs0x}ZsDM@OQWc01)!|kol$%TE3r{#TQ z2j4TxtsXxJh`fQ8!|64U5Hk&U>P_e;IQc!sE%og5;YTa?JPxm0PBZsfTP&aEE-?0d z6;SMoS0rpyMzEB9%E~BCZ$uF0j8zr~b>&?B;$c2AD~F|-CaUM>{nF3?ukQX}`m-BM z4%hbZtN~t)g;TLOUabhv#IIA;9b8(M5rjzHhy(ozY~K+PC!1zQI#$pqvrSo22K`2ljKqb?3HBTf#CfD~;A~jHf52Rqm zv_%o2EbDly<9m4>l3?|UJQBxzZoPjF=*qz-wl*J&uIotI^MOtwcTWlW`S4myQI4#! z*03$Mb^v+!GM>8t;g;H<5>@sWHP___d8yW-x8)^@fgqUa|9%JF;+iwI;Uzzh+fJrG@o^vypH z9LtiCI3(e=Qpn52t#Co6^3a>V@_MkMH~?uBHxM!%tn$n3cO_8RiS7_jJxjoNN4f?6 zZ42=M>^|;DYosJ)U?Yj5&c1YT1LS7j^?vFnecx9uWizo{dVAb&ow$U!;l#aHfGQ=^ z{-KKN0BmaK=X4K0+DYC21p%QkUKlhUy@q(uF>LI>0`>MpqULVfkEqTY; z`N(VS3&#Bm>~sTkT@+$s%Bqf9ta5A%44KW;X3kCfuP1i29B9OP#T7*9S5&D(r+b`v zTifFt*!27bylSvcko+%!!5LV09rqkUog*dgp|g)CwnTng=F`9TJ%lckZ!x*v2QAi1 zh|=5oV?Da2x|S?K_IjS%rbnf?24CP^D@gSh`1VxOAC2^<*R}Pl6MMz<-Fe2JpTu1< ztHm@h0PKLyP+M$nH3(S#*k%fAE(4#UH@WxCkKp%L;+fwXI5C*qwc>Ahh6t=QH~jS> zzq|BAU;wR{Aq&cQV@2>;bpfTx&CR&$oWp(ZMhO?}>50?_s`>W&?`NFG-}1^#Y0#i_ zU^`bHU7w?qgkI`Y>wlpFC~C>dQ%Kch4`6R9!`89gZ=m>q_OnND%sFd0)2MLiX&q1+ z0yos5j_;K2+9D5CX@&4X>}c5@m-|yak2@W+RalQ5j_HCP2t%H<69_gUcl;{n>q4a*$rKcM_m z)oc&XhvTmH+fsYIyKw~SHE5xTIh~@GQ4&Se=Tvyvo~W`mY5(hJqVzm$uJ(WjmUIWr z`)MWU3q!}IPN@V&*%c6w#Exqauq?S`4egx($Xn zwYq2~g@?Rout5}6cHLiaAPks$vD6X{h*ky#OD5*(lU8!S_=h!0)+15Mu==LvdS>sJ zcmB2C7s)+SofHwyacvij*PjZ2nOvAf-voou+2P|fQScl1lR9EFwmHrk>r`yp!`(tO z*=hG=H4SGTj6H%YeMatRDoIM|+V)s0<9H~xhbf)J*Rk=+WsuOzwW>8!+RH%Sv+FJJ zFL%9hAP9#aR*gqm`R>ndyo}jRD{wud^SD%VosOd| z3`WUreS8q#P3lJp{oB#Z*x8%wv4!#2dN|#$Ysr3V*urr9mICDo(iLg(w~5TJlC7v;*68 zSaRthW)v6a31+3CzIF{3C&-ay#;-8G$LmRaE7H9W&cwh73^SgP#+%M37XFQ~;`=OE zI;uKwWHGC(Bx8&7#Flhf88@qpmg>0BT8rgl*4Rs)-gn~Co6JeOs~2r-8=WAgfRa2Y z?9$f_51rSoaNC3t__m$7p;zMEsp|kv;5HY*?;;$zMS1I4=8~BM&rl5011Qo_e&7$- zXdz`e124NZv<1$t{_C%K%-S3bmreT*c^$pk^njlJs3Wi5TPoG|CkQX(>a&wxAl>^; ze#?CUWq$t7R=5n!aKU|kSpRA>W1gJ*wF7N0FM*A~XP7a6AvGzY=%6x&1lsFAO2H0K z-q_lxp&cr}k^&Qgv{w0&fSYdyjWwX90!9)lEi_Y%6Fow7L~SBzk9xir0yc}|KIylW z8eQO@@nmZo8}ICse=}0Buzm`#V?~TD1dNX7~Kh1ZXG#o)!*_1%GQE#_n`w^9_Y8pwF-6x z1}X8XCR}`1c(4Z3yJBQ_E|MK#LZfzC?f_?LS=>^NfyrFcYmpJ)shE(|+(PX<#dw~7 z&~`OSK1>`3>}XXrzl9=fclj^WC_M8b+}*(F=HF4q`_&N-5x+&?TCpiMy|KE6A~yJ| zHyoUou>du)$`6pF>=)Om>}`087mAd(QWMhZ{R#;3?pwwvec{YFx;|3jw~)V)@XBR| zMpGg9Z&ZYl06HV_ax@1mC$RK1H{QOSSGV)Ch>g?F<6PX*gmr2C`D+`&FL?M6wG7%{ zb||wB5GO{$oh-rMNhG!&hZ>+5>+6c9NzlU7$MG9-lA5q`eUSG`OI_e z@WKZc1TnDrn7IPLs@39#iR%dP{B@ML?KVAtHL`jo zr+DQLEV!H14Sz5z0A+Vx%Hb!&YY+g`zfNKDD+`rSr7+Mg3ewv-=&yw*%LCk)pqNba zN81JzB|3hb{QNxN!e{9ftg*5^_4+fTJMrxJN~f{w50X<88w_)E%EHsj5q>67H9!`j zIw7UgN4A@Yh?_C<2h|wkWNwmX*=VbB-}qq0F#6(X;dhvZmn+jE9iNo1b9$ zFx5gV9IA|;6+^jJ;t<$YWMf`Vm|5u!P;d7U#4J|vLH5Jb8%9p*c&6-RKLYVA`LG9n z3*g{_y>a}(I+fkOzha*cc+=C*yl$F@qS2=5 z@uM_mbMvqUj|v(yS?%uGYQH#U9~z{1_15fOfca0(N1Bwk0|%U4?N7M zCZw^tri;Ae7H6p(z8`!w?~jHpEHqF9kSlqShz83b<*?=TS&7yd+jh*|&}P`{JD08& zyXFrX;5G&;RCsR>);~$o!MQp1adU(0X`tZhaNB2Hh3_HVV}=d8^MDZzTv)W##jRofF z)Z$4L7BlOyE={Ygb?lgN=%kM~6N^n>GThI=uXfm~*xCw|wWS>LGlxE~oVg+o6C z`s7%c z#Y~|~zv+>yIW0gwFWY?J0<&fMyN^cf-PEMS7!SQ}9*{xZ>$De*v)e#)m0RAnrJuU8 zB-jpzI-eYdaYoDqpVE1{WO41^n$4Z7#lp_Y@cX?btH*%bF=K|JX>9CuI54Co1X5H+ zs?5wM-E3MhR3FrblxlMC8j-`t)CfM_z(Nz~`6Y9im4h`Y_kgtzfgN_SV{toZA<-#v zKOarz-9?efJKbH8l}i}4VU2d5g|u90WTeJyuOluC@BI(TJ(<0Qli(t?*aivYJG1Z1 z*Lwa3=W2H%k7VSPVfqCK*9i}{f&G95rMgLG2eyGhu*Ou8jqCh@1z-a~qbiN2WyNLm z?N4H0le3Et7n(8DLl+jV)jJSz zZ#^j4`lczWU%H><6OD=ClU3;r6DacA=ET&AK1N`-!RU2Vj1;2}BE$cA9k#&p`Dw8) z9(mG%w1M-rl$@7MTF%Z~6Vx%-cmJYqv#yctdjIhyXRv-;%KaY~V8;Q??O(NT%hd1r zW`*enr(U_gO%&;nd1j~!RG;7&*fW3$-+hB zM8zA26AhxnnwEQq*@=i4-Eg#jPnpbeQv{HTEptiB?UlbcvwWA8p`h%P{v-PW9tJpcx6Orp1EI61=j9k`mV9Se z%IV>iLe(jPaOPUSGeMBy{EP8>AT|!YE~+OU6SK3+Pq#m}YikiFfRz5$L!_mo?{8f@ zd;4)UOH1rV`4e3v!r_2a*_%=m|54#`(;9ZU5uTtQu%M74?Qplv!qal-zmzNP(St8t z_98gLvr_YDV)TfIuF+z3JZ46*0%btKUqyzl{JeMLE3^BmO(*qjb@*hXuflP>T*F}& zm?N%y>^p#=AMw+0uESP@@ncoWuAdZBJx=gFn@<2rWibEKUtt9UE|8Q<4Fki89Hn9k z%X~jCBU#XFMCiGSB3I|eo1J67o1IHVN|JMJ3B-QVQX5CObsrb~UHiugJxi?X<8Ox< z)v(1syGkuL{1p%f|3;+a1A?O(Y$TLUxjZW1sEZoOp-qm!260^Jq@iM+;nX-y4@Orcg7sCp$bf2)Y_i+_T#21C zqV}B~0|F`ud;7~DMBKqFjyw3+K6}Wl7w$yoL3~oMG>N8AG_s?lwHUOU**D+7i^!T2 zxMk6LP_owJ!$tO}5$r`p?G>@d`CVayT*&;)gB@3!7tEczlp1qku0?Z`} z7daD(VaBPV2(<2mHYO~f#*T;MK%U9Nqd}$g+)M=+mQEO{gn?;yMdEpQ9|Xxs zb5D}1mtULOZH`93`%}-G;()RVg(7NzdJ)eZJ1XIw@H+j%8m;{K1!1kS|Xj)kZLOh ze3BKVr9FYB%%_F}(fJ7pH^(3l`I%)DCxpEn9o+C2b3|Lpck85yrvFi8fZlm3!^~j+ zIcI|iU}q@4>44$_)*Mq04?Hd`iXZX+yO9T6Bp8<@u-A{j!<@M2@Xt0fBBF9lo+$XI zepCt`)^W#Ut9iFGv&5*vAQ1@P290ZIbcnbJ&6V1Nt7$((6u0{!DT6{G{uQjFPR3S& zxL>bbIn-)@HlOZ0FAVJ~W z#)kJ=pbt|aq?JINu+@K>3ecS9iz7dT!@Hl=G-d@W$L$~_@qP-JV zSv0QV9<`mM-};6>pXw_7@5Ro7E>>7>(oArb^|g2w8$Q&PJKHt9nY0py%Jn{(;eEq$ zRhg+EM_d`>Kfwa}&Mi6g)*CKaIke!a-#;YA3<24S!Wn(nyZ`qz3^RuVeKZ06(jnX! z`V~-=jpH21&LVPwnytdaS6qOlHJnI3M!^1d1c^hcWl|Dow`Y3LRAm$)i5#Xbe#5<` zwfqzFJCYPujP4UFXn^_eHQ{+=)_=X7Ysr}Tb`3(BDrD19Yo=t-T&)GMb#^#l+12ai z)P~qrSI)&9^9B%LSQ0{1G0=BP#3{vPutoe_@Y51*h(Ih{O5qlrkw$v@^UGenaM5yf z06l@+J`B-uLInlp)ouKT><~4<(Vn!(Z!%IsbnD>r;)Y1-SHXxjiyb&XLrH%;vKI_F z%_b$Rfav`UJ5h-mHJAuy+{e`(HRxVAI*d~K*M!(`2d%rYuhHiIC{!zwd7CRuzg%p*-SH&X{H`0mq>)f z5C$iAK@QbZFDEcuu1a_0zu(6S1Xq@)luj7_FkaRPeVY+D>Go0Tc?mgCt>Rcg!&)@QiB~a<%&oFESNlY|WeIfVPNaFfCzY z1+99P>}$Izba(lYjYAEsw)tHbk z)Su$m>!I*BBTHneo~5|`FA5`o{KzG&!5108&OU8I>lZ?WaxEqErf{aM-;{yFH>{fb zCOm3zuLmHv(AsP8i@&MSB-$Sd0&|;gj{?{HjmDa$kc@(<0!zQR_p;8=?dyQ5%eAZK zSX#=)?UM23ao_g36RAkQ?Tz7zh1wZo4!l{iofK5~iv#)r5yrBwty_+>ldNgE&;T?Q zDNL%D@u17%RB@kZL!+G~z2Z3P_`9~*caNtsx#5S^h#)L*U5pFC-bgW1RjrNXi1gTq z2v07T54iUJ!=+3NU)x28e+a49^S#-JWlWbKQ_!uMQq>_%e#GJwtLs7((aCylzbg`{ zGQYp3l(On^xn}}ni8O64b{aka_UiinzN;6Q-j27j_e(k=bz>PMv}2wPpI}Tnzex zwy z6Nr3G<*;gW2L0+Q1cZjEkAZX^62%4&?PsN3U06UmUMN)g`=`;*4f)v=U*;ezmJteG zyThRqlq`xSJg7Lo-4e`jn6%sefv`2dAdech78Y88Ka7Y#BWwe$ZsB{pbx*2cGX2+a zM(Ah34+aST&O_X|?_w%pkp;Ghak+b2YC*Jgl3UDZ)FDfZwOFPOXlGDh_nVwfQuZ-3 z1B`Pqna}hr?hu>hdbTN|6BF+W+x-dP1(`TI+(PTG)QkSV+F8;^bd6-WosP9XjaSLu zFQ16#bDx=yj;<8}#fnogXk7LnQ}eC*L~z9I;XG~C)>3tP4N1G>9`%(*>*4X3>q9CZ z4`c0RoX$9xri)9y@UnICnK~(`Fwj3mfqq*U!`07AnS|V#&EJ?om(6xPCsS^!p4L`a z8hvHtC-!IU6ej)#*PPWk+jlJ%S4YblUGg+EGHaX%Wa1*n&cM&>7gkI(wA&rww?(1X zWTAjE7C-xHMHAChB?xA8jy$Q=?!RLu`6hfz>^2cxiv z_eX6Ys8YzOZ*M;B-RQqi@onsL_6n1wqzR`95BGz+UgxI!M*WrnyX&8-csdT2iFrqf zVoG{K>qcxywYd56Qvm({gZQqWMGgg#+CLw?;( z#}rY8kyuCyn0Gzz7yTIgyRHNRJCZ)?zl_o*l~$1`NBLgo_fOW@+~XqOQH$cHC;pMY z%@X{k;~JRk@fol&_0lIK3zmAhYOwSw`C^||kG76F14Tbc6|4OEx5V#Y=!Rjst<+>W zu@@H_eG7gqiZ8c%M$9{&mfXe7z9ez72jGmCcRlY$R&?tdL*esiv~16pV4#b@dh`5q zDn~#pFj86z(Y#Uv;A#jaCfJ-voMIO15YhXg(DcL1^4WUkxYNt|clt=IoYfK(%&fx+ zuqjuXwVq@X*3H7a0>8ftmp+u%CVTwA zIHLi7M>Wrmlvn!Wnbd);7J=*?A;7VtjnY=xf_k&B%Nc^N+{S65oWDAjk`GrZo4`F@SL+Fc6888ey4 zh~B<8*k2IykGbmm+{C_Wl{obJJn$fw!r(B*B-|cWOAoJYctp4rq+`zzk*8@*9sI=+ z_;`EWpRc*VS7NKP5acK&&*3lzAW_HPoX%r&v-^fASpH0sXEe8V|22~*;QRa{cY%j% ztbOQ$zJrQF?3rh3y3Oz5jZd*YdRM$RZmQ(m{JW{s3vM|qtN;!<$2*QVe`E495wLNd zzF_s%z4eM1pU2bxIj_3ad~;ZBZ8ehX{3<0b-rd)JMelUK$@lV3cy1M8EnN|mRqCU2 zJKl2X_K1SMH^-Ay(ASoo%lEV1a+YW&hi52}Olqyk62<4~0ssoAX?i{H95{V(CipQT zaIZu23YKNT%<24#AMPq!D8JC-2&PpOm8(iRlSPBEJ2u9Z`cRV;OW_Ua&GrrMVN$hDviH+6PAKLb>4i z+oEoM-hsI}aKjwfwAN=0*{m3F+EBn5DB#X>^;?03U zFOS=XC-tp0CkR8mXSfwEP7G*9O9a)e#tZ-BBN(qn4^$9;VE5WD5ky;@!RAXtpTV6h znG0MTLB~%Q8dGVDCngjcZdly(a$Y!izIx|h|Fq`^LDh}P##7^oG;yv!T~M*tyiZwL z6-HiiHw7iUtYCzAwiS2+(xj9wjSm}@T$3|RXKzTTX83364)MNjuV#PXc}7wx<&!z! zU|SY|i!zK0OkSDmKcZi0dkgh--+lkb?1jlmd|hG2iNoWpQRYJ2zOb(@Uv>Y7aF-7ocfKGeSpZww_O#+~8VZ_t@J7l$`X z+^=pZU9&`gy52mR{Ex(ZTWd0jFTHYPsP;lJl-NwFk6jTqUfMpgBRIDDsj%xz?Wges z`>sSBZ0*JN*)oOX6fU8!9HnnA8U&>KhJ~)Y!$#A(URu<-j6*)LZkrI{vGr8o;# z9sdlZ@#gV&<_7?}(c2|Pa-LLr8?EH7g>fMIYnUMyDnD{4zEApfi`GLa9&~5xu7ir|?n#Q&)His=sBX*eZ6!e0f zFA&wWwgoHF%CrhjM#b3$I>F&ePs{~8DS9v>2kx3Rn3N)~h(ecwAvG|VqT$sTPQXe& zp3Y~U&udM|m%Xfb*4^^5QCajw`@g2{OIj2;bW6G;c!d8XIv0aIb+9mwz-ucZpJtO{ zAqRigdeO)|T2tEcIZ4Xp5DF-++Z?nWzYbRx6y1NbTv(*9(H+xAaQr>afST_2dtFVJ zQ)asmV1O_&FxkPbzB{@tw+eviWO*y4`RmT#d<^aHf9E_C!*sa15^&?oJ0ho%PaM|F zCGrvEkMfuLwy2@}e*B(LpciYXQM!s^Y%-ZtO z1{^zpnVp-{H>@?yM_Xe%u-6QWDlW$;0B)suM@h<^V_6chq>#V~4ei>pmJbXju%KYj ziBhmQ%j`6{!umL`M8WrM&LC}9&o5LOLsU;}pOX!y;!xhBi7WTW)i!<4i%1mDbKUhq zM(O@+S?-qqS$(FKU)+vu-0dIpn^f7$MEFW0pKDCkKm6DC11MkrTyYFu(-8uwI_Vvn z1a~L^xB{NE8bz%v*Nw7gkQ~p=tr#)a4a+n+Tvgg~O`Ef!99Cbqfs`uXXtLYR7{?@w zS9L@ts`j@`ati+qM0n%%Aq+&Xv zOz^@P;AcaeZ{P)?<8Ek7LCo~vuIjNum%m%$iO-^Fm!#Vid z>ho=$aRr00EAt}htDs?paW;AfQ71#)kL0}C#& z=K>EhMAjJ9#kV<^q?mPd66|%5zMAgzmI3f(=qhtL9A}6bIqAYicF_nj2AM z+|zXENxV9YzX!s^-<`E^B@LTCsi@MD!1D8>?LiC1oy@6ii+KAcI5QOs^2zHg&#Mp) z-Rf=i525&WlZY2EGviPr?bFJL%7T|T`JqtV%s~(vimWp<`JVwhd?fk<0{&+Eo=6i0 zxC1XSCrWr~3_DX06(3A9X*Q~=w5*nI_DhIMyv-x*hiS@Cl%FP2{7?*O6I?8St%~KC zSr#Oy%_Vp|S#pO6GGA-dl9j>G^Rpc)K`Q<^+hV|ufc@pI3v|#b#^JCtIw+d}e@}`} z(b=R?IDk?~-=5He-u6IV6Gb=f`3IXLSiVkI;Cftv9jBbSI@Yb{yF#pci|JkhvJYRt zOrTzWnMQ5@qk#O-@##3jL*;kD78|U*fRaEA(ZX;+m^Tk6JC}%bXhql6sCZ{Xpv&L%3gO6d{a~t&^2p!T;VE(OC6JZOFn6v#m(m*7i!P7 zK;4*=H{~P-%%zWju{+xkSv4aji!-y{>%876cqr%mHD<2wu=j_deYg=F__gu96GRwyEKWB~9-68$kbX43 z)&7m@9TPHf)0E6KpF6#@2m3Lw=lRcI0^GTy3a3mxxn9b~dxgDsjIY z=CFt~3t}LL>1@5b&kKIQqLS_co5V{i^eMU^J~wStpc}ITfqK3X_(E82xz1 zzP{a+kX$0S90m*TVsf=^Gk6cTe1M4M(7OZycSmIYbN=Y6im%-nbe8>n<68~cHccMy zD}iOx;e{Ob%MudtQE97JO6knaL%($=W#`<*>r|T_a(t=wt}}$X4y@=99pe31Vi`C0 zGEmw9a@+3ciemEYe0QL25s5EY^lC4e%rMJwrfi z2OG(Xwx5|L%r_rIpJzt_7M}<4&W^TN62vA8CsbYe#n$^UuSU8^5&>5zwm~GYgpEg} z3-a^mO3E(LIGqyf6yQhff#sUu+9)7ExF$Y5qNr2RM@;4 z5gSWn8uQ{SfFMUw*Gq9MQ8A!pVTObii%ME3{1AeMVhL>*k-b6^qr3{Ts63g-1bbb3 z8o0#F_zz^!qy}Cah1i9hj&%!83~E}h3$=(PdAB20oiUTmmZeNQ3dhkXis4XKPzsW} zxRym>29O<{94T0tCZt@gUKoyD;h+CQ|)y;B^b6&5Ze z4lyd``#m+FqE!W_krjf&wSLZ85yj-=(^6)7;bNnkX)nJ;fhW=q?ZyY?6uSABpu z_=$wnDl_kT+`Eg-s)C>l9}-rBu<$D5i(AB#H~dH_I#Ob*q;}P&#)uJ0pG8Dvt`kDr z-Oh+9tw8kzC6DKlz`{#S+R`}&II%Yt9u_<`B4l-m6ecsbh9yW|&H z)V9iq^CV`qrs@xHEN`(alPJlg z6@F1HdlL}mDde&Z*Y1&2MYreXqDYMEfvMZZINSzX;)Iov_0-A2q%t-UEK(s?t?Ejc zE;_ZOQcV&fo)=JFo*+z9oIs6Lh$=l0+W&ZeiIWibe_VhM8Y~0!DSw`mH~w7^<~C08 z0jiZO^ZM#`cJXoV;oG39TmgAaF~p$W`Do!)l?S-`Ot*-4$V=LoX(w~EY{#j@9Mh_{!8?LN__ zrg#pO+V?1NNmnMrJ~1#l!ZRNouDva> zig9ntU-lCR{4yzg;mCyUK&LR`N_-frd}6}0?7&LwNY#9b%v$pMe`_GR)f39FXJ#zA z{!}384xzL$Np0T+KU!V5QCjHhCDpK0LZ zgIozz$#Z7X13x+PJPVpsvD6gEh5<;Uvq+rP-(yoe~?884mv@bO8yTvQN*4*Frs#JrtU`W7q5nr z=@+vPl5W=Xk8E*l=0p!_GHbchZgu@)+d>sX6`HNzjch9kd$a$x5q3P6GD~F;;mnyJ zL0*&zx1uVo{#dRSG=<@o;-E3SIqr^EjlrBWemLzv3XM#*I6^nE_YDyRC3*H_w_Z$n!I-tB5S#qAmc?Ca<9FWuf4uj|OB+eLIjH=YoS16VAIrWqDf5wizo(DK6hhemc zsdqU4!;FoJE%hZKabLv$=HdJ2MMF)@RD&_y_h{oyO(vnOKA7pd@m&3W!}r@7c{FA9 znzh#^B;POW`*KHE&)4v_Tf<&wIx%gDO2zt*0Q*1T@l%I$2y(BBeZ7fx-#WXCKQU== z@9O?Pn%*%=lBVk#p0;hEM|3p`3bxmDi3QobwSVMi#)@=`nI>T&!B8sK{6!B~Sc>3!#MC z&lBB5XJu10=N88Tb=8B8A}NR?E<*lY1BHvog(>I4iBxJK>5m}f()?18w1wx`)6Nb( zF~y)^Dlw)~Irt2Z$-3V*x3Bl)%|71`&9ELx|85Qae$LJ^pkb?6IoXoVBsNDE*dS5C zI1Ff&56?rQ>m(mV!|`^Kc^!?SL`c9soc+kY!<1m<(a&>SXy{d`7KQ?hhdtxuy9n!B z^nf9$8f~72;_LL?{pA2zEF`4$h^so};ot1iP3(gk4q2jj(w5Q^OUs^G)>WKb+=H^! zY0AZef11s?TrW|Ji;HvkeX}YnsmLiPu&}X-Q>6?w*RJAR*=U$3Nh>#@*nf(!Iz3{v zwOs$5m++>~CV`1LDajZS8^aTuiqKeDG-+tuK8-3C#xXU$~JHi@wq5RfVOBi#{223Vm zTZ8QT7zLfZ>7wECe;P~kO^l(p7@jr)72z>R33O9_Q;*V!gL~Rd7#k5!??UDOmBkj= zI(WRZ=R!=wu_XCE5E%m6sYvMu?zY)x@67?LqiAe|wFD618WI zzKXc|E9hAZXZ0mqoO`*at?mfHu8!x847p%Bc)!b)kDsk&%yO^i=GN8QP!no9 zd&%2ot?f3;UfDI+2r`r3-xn~SKHW1Df25%Vl48*sj~IO|&H1mAF!w)Z{8VIeMB|yt zy%>IDh842 za4=H}lOqT*kCSj1Porr0r%ONd4f6Qj?ExArxIZADZL7{s9WcYtohP@fqeqS(V{C^^ z`8CFRYo=s}SJxK!)oN$e?(_z-(0*YCdOGG)aGk!UAcpkQzqtz7l})S_?+0CDSvRp& zZ>aoM@(s=P8q0dauw@Uxpcz1QlQp^ubl?@*gnHo$S1eh<$OHr@A)G*S^XZh-3qxYzjT*~|%-0JoTL zHvlW;92>XXpL)76P%?>bRV5Q+RJT)S%rVEB^9nk!da=bVqboA|Et`U`uiq5og5`;m zx$5nvKHo?a#RH}N>C5>^6W8jzlDPi|V*LHF-Y>xXmf&D`IvO=sQ;oBf^4;MMPS(dW zQF0TC3WA@EqhLQ2lJM?rL^eBn%Z7Jne;3Sgfpir(>ug=Y^_Vt3R`Y9;B8gJKg!Ih8 zs!B$me}Cn7WLg<&_3yB8dHKc|V$rSBms8Sm1bIgT!r_%n)-xR#-S_8GJUd;ba7D_8 zDUD3TQHi#gXcNY>#3nkYcU}>@90qzjL2h_~Id58RJ?TD%X@)r&l{W^HB$ysL52K=i|nl9lRj#0D>|3biF6QP>YE$|Bvf2*7NXZ0J0p)nT=OM(Cm~$3 zQE_lT!J@jrtvgNs0}b9(LP+2u1%ROgxZ1O?=)vg)_$H@!lv&w1_EV)<*H($4m2L25 znkza3Z3<}eG=@<}_(3R>{AaB#g1ibCWI8)RVDuA(zl(w7`D!sUj# zI$qicRS+g5wc0|3jYH$gre{1FD7J>yN!utdtfU;Cn!%uj;1Xn*F|JrdN;~1x+Eo~- z7E7L4#0jY%72@Dz=CfMXEpaj{nfNJ3ZEYsgRR@AmuHh~#_Z6&m{m%a%mPwwvGdQP7{U13XDAx7i0sB2>iE9jaormR#- zX|bLYjgLuNgbfZ^1)FRe2(^ZigSJv-d$N%mCxhu-&MWWf3}d8~Lk`opKU{`M+WJOa zZc+pn#!!OO|ECxZZ%C^`KiD7LR)lA}i${{8I)Ik3K%ReXDWycG=2(Z_ z7()g!2#3@wx{*begg>%M#hJKKiGhv4#S%g~P+Kl42+pi12uW}$U>tUaAdbjJf(9ul zK2wLb+bRzuM)jZ+fo_DUNrC`(2uUo$BxaE^B^MPRt8S;45k*=8_bdI$DZ(kbNb1n5 z1kNXr=lt9KM#}8Eh?n^OufQlVFMN*MGXp}SAdSv6C?z6)KzezKEp(wvNMfi zQXWR#{~$621N`VheS{;d_=r|U-`Fbkud@iFuh7R$3aq3?bi+$mC6efWbG1F`axUy! zM*`k13WPx$MYBi&pw2zv`Hn5CI|4}ql?FK;{FVLymSS0aH(G0K^1fiIfUF2|uB1c) z#$_1Dw4}{=?{}AE86qUb(DBMU3-@SNZi|S5c}jAdx%~0b_lpp)wmUn6j=H|Spb}kF z#rS{=igu>$20GD{Ww7K}enoqV{-11nU?4$tyrL3CBq-?8nGz)kdw-iD)dzKztd%GM z+4qqDXZr%I-~N1wfnITi5DRLkI1y$|*HmseDlki7G)DKT%?Ndo!i5l_ZHr7-#*qZ3 zlqk1ivHx!B>HQ6S%NH!1^lO|%bL;VARv#l!3ID|4k^0${uP9-N(6WWedsx^c^nXv{ zK@kDEjWh7-TavO)9(YHlBa2ZL0ethr7lF71?T9Bi8hVLx!wD#70XTQ%ooi9Ye1i{1 z<5&a){cFn}-iQX8Q604nv(Y??bka!qmFQ)tm|;Wg)cyLLszJ6i$ZbQ+bFZ$A2wO@L zKwXNS-;c2!ZZb$LG~*1~9Q6 zPPm_nCNB*Oh_8i_K(MsoFHC$ADqu{G@?HzY-K}3%uDCAK?cg*KMb_giQp|v2kyZ)a z?xQc53$ta&3W)`Jt%0X3W6R?$NmNH0bRVDPcMUUG=g%E`2@rLK)~EWd`FJfCTq#I| zR-=d1&?9;KGTn9!S@_VCr2@N*Qm4_AsF`G3O1({XD9*?ZRY$EPbgcU*2+Ai3Gd zr)!|6&C{m=>fd_VO$o?7-<>cR`23Rt?%9w$W}iUNimkGPLpMOT1|ihEYO2)U``p6> z%^73ojDQr9ysF8ZO)(W)SA*QCh-NsBv1-A8qwbB-{-OX>H*ee`Q zWv7X;4{O2MW^@#VxTSPF&idkZ>5{iV1zg&)zri)B+wO&Vgw1fh8u6#WJYVPzH8sf+ zc__!^PBAvF6v({}#-g$=WuptX5RCH(j@O@a@=Rb|QYuPfK=i*IpuufHUBvlH?;i|S>@2IQ79fE77yy*pm{=_g=StJReg{De5DosnYQLnKN-@3AGUg)2b%0r#l~-= z=hS-(I5!pLV1P1-%7BbR%taF`M(Xk~#ML(_K`rnOE;=W9;()M{ae4_Kt-&MgVSo~a z5P1lRdPn}^p0_X=M~y}YtI4gu|CU1X0;aB$(|0IRXY?-~5@~qt7@Jy6$VR{BEMdwF zWrGsMbP#Pqr5dDyfyZ0tEFbJ*1Hy|?@<~w=rj+GT@3fS5m<;J z1(~VNrQn%*xrH@?1gYoH;NEOvPxvq>1w)!e450eq;kQp6y}C?XbQ7sGxAJJf&?SWv zuvV}pU}F)#l^GYRm$y!rm#`nT^PRZ*W)Ho$;BNIUkirbIQsEG%LW3Y0OAeb6JX}T$ zm?KZv!R6p73qqTAvB_=JorSXLPHz zxtJM+bY0olnxp>6%gH6lkV}#x*DpS$>g*W31Q9|~rcc{@;X4BwHol!ipBhlwa> zdCgtz_#89V6BiImBMjc{`r-;RMot!tC1fT6AoG3u3&Fd_0ENX_s$2)Hxd>|B<)T7u z;u$R*nnWVbI#&i(?oDcmuz7{1BrKmEX9KCZTE*$JAjtah^)U{(Q5iOOkrLRLBx(65 zi3J3}1o)t#gCHJ%o+AtM5zacMb1pGBN5b8k9CT#Pno?;YrEAHh!c2-Zw&7S32!{gz zBMd|YZ`1o(yZhhn|2>j@+(lz{mlpjjo8D-PGVW+uQ8@<7%UmZu`EZ|Npr;#E;@CK% zf(QypwCjT3QLQ$VnxsMrB1SN;$wz2nsB} z4{mT3l#%8r;HMm*i+D^rI@cY@e5pxEU!#sqlWO;I+~0b7#V_$v?5-$ z#^7_N^fec-JS8$YXPn?CGN&}(qsURGDa6?*CQ(6*A)DBut}?R+A8?YG;Ql}E?Z!2H zqv`^@5qD)3jcG_Hf&X{3mv`QRZu3lb>kd$zu$<(GK@o_kfyxw6-wr?F*v?z4m39zz zD5P$%h?2ElG6cZYmPKnv(8eJBmz$5 z0z0_MclMieBFC4Xoq2uyr=k)0x!f8}zf71xVrLINdruWNbH*cJam3Q!onER6g)9aL zHvV_*de+SYDmgSMhZGLxq;i?Gt>@-44rdjA5ku|^Pq6|~I!f{giBfvjCwiWIVIDR; z)Sdsp-w{7p~yRk~a3gKX-@uFY+1_8=ELWS||4r=Z=&* z;Oly@r!9m;9MaVwv~To-5j{O0r=I<-bs|_=w-p)-iN+V2(!7~Bk3>Olr;|~Ay=uc+ zi3CdDmxQU*bJ^_@O(cwA!GeR$DmxRy9rQqCWC6i@zRay&ukbYaLtdK)xKJv9TH%m5>|E2rGD=krgK} zUH~k4%>Um(hDlSuG_`Es{}Yg{A4sFYQgnUFh}!oQeW}% zKmJ2Rc_|npSD|ia?!%YJi3|_vKYwY(#ZcRb7HqQ%)ALQvUh@n}yg^yvPH4!*bU(cC zwgnBeflH}x?Q}6P>T>bIo4Z+Z@a`kWkHLT_%-T_q1Ls#NNv^-g@01 z$~_(j)WUQa&w3>O7bUo32NY_kPnmhRjZc3q4$nI>D=R`>JW~n?cqHA~dWQP%dcHuL zE7GES>#G`i@G#aS?2;t;|1lwy6&(t=(WY(7O9l=p!7ATy(#_oj$BVH-MYe^wAvwptCJ*fXNO2FWdf0*sRHlLSF_s~K1A_DP+ zSME&Ekl8==(ereQ$rs2swOOH1SFz|CSum*BBRUGORg2oa(lW&fSTP&>tvJWCvgava zeXA`!qjbH;JL3OIAky>Yl4bvI=NHAeFfx-6)fv;m*?t)CG~%%{J;Ohf6gnR0m{`vg zolrxm5)4Mb7$~qZ0u+c5lQxgD=myRe|1lyFaL=j3ZUg9>Zp7IzhjANSb zQiNT=SWY=%8Ybvh8Lr2^UOdkxS|+iK+ZC^`;8A;@nvpLZtc+9-msO5c*Wic-#n~6N zpY4N@PyI7Bi#jUqVEWH8aY>;fZTN9HZ`!WTtpC4Ybhod9aC<-RjMY7zfrnvbT;AhF z_qmf~ed|KEhKa%>{G&NZBGEjJ>~10h2lNSqQ85nPpZXak-XrESC|@t@S{Ivq zvyJ!!D(JQQPV)?_%A$$+|D3ZdK}!W6Y5KRMatk4Im<<2R*5BGb_=ere{$a-p7am8!=2OUtG~q)!#^>4!{1;)*I|>e{QLE!v}4B z`%&!qhvsyr5o3D?<;X{<80s`Oc1A`fKSPX0L}c0STmJt$7*TZG(K&wwAyNr;D_~0( z_m*ZtpfI)JUYmx>93M=NlJ}W9C{vt- zna}homw)^_-*sNtLF!nq5*1Xupv*4Z`wxE0V65MZUrI)bQAVh7|A5Q|p!1A>m`5nt zpF>m_kT^q9rlJ-UI`V`mN6#yU1+^ZIhmTOF&o@TP2>o-kCMr2+=)EA>^bEZarS=R$XTn({jTFlo;xHu zb;5k&^o~9I)*CeNT40V9xfB}Y4Q>6b9Uf(y7x!Wiguc%p3~=n29A}TvZ)ghjFn9)E}wQ` z>n>?BoK`Q-M7Dcw2Vw1jz^^ilma zktr!)Xqv?1ZJPL}lld=!XSu5k=S;5uB?0QNHuL{Y=6}8O@Kq>5mkz{@?p_p5mWX>C zP9PE|5+=_sX{g6f#XU|8Hs|Cyc<#5s)ztMn4GROxtv6m=k@bpU{O7 zL4g2^T{W@?MMQ}nZIKoB{nPxqtLTP%miwZ-dT~056`TV^j7SKDj2cX;R0M2GRwt{; zZaVpBg}3%udr~s5=X>?7cGYU*Nw+wjBqL>1mH{G>XaFpU2s`l$0t@q3FqTXlhYRtH zV#oih1*qB-@JfIfPyoe@@tezZHuLK0zI>_m{=DJ%MvinYSfzdl2HwQ}?FrrqMKo)2@^%)P@vt^ zEvv+Apv88*X?Z^;7o4ZyJj}+w8b`>fDF-7NYW%RdYpb#@SH5O+O&rEl7rl^`yCrS2 zrBq;NNY?*-;nbvx{^uY;eQzeYrahB~LRvXk)VEmV^&fEdF72VpCas2&m{wzT*ED3hE!{Hznk)vL8}X}k2XO3A5YWW%lJn~f;zwFTDN zIER>RcFT>BcQ?Il?*P+g1|oCH23+Q zzY|9Pk*2!1xEO4rotm1O3q%f<9K17H;E|xFVrnJS2euSDe5r%c3b3_S04^Cr4pI>B zJ^1=XD{UN65k&+GruS>IM6806LpIi`O3Un+8=ZJ_UO+ZTd&$Yec^X;`f$V+Lbp3EY zw^gxz&0sUh1RzV;P#t8V6=0JwAqpg=f}v5uiX?DC+*DAhW3Q-wkdY;UL`C7Kd#Z1j zE5tA~sV1M_0%huRrjzCLV$hMcFu2-?A=rh5DoT(nS<%pJOQ>(6p;y+h)-K)!4?3a| zgqbPg&%F-1p-b2)^3%buiZz`fH2l4Y?fbcm2t=gl{PMNF*!@mK`T1OU>R=)7K)0QL z6??L1i^6LMGVkJ?kM)JK-^9!{@(PF$K81{fdknS zXrkK`honrEo9%y$$M-nht})tgc9~m!>)tEtKVQl~HfP%p30P2%$sukipo$AAzphR- zBlWlG{%7%A}o?7+>SNkW*^22Cpx+-F{K%Zz7G4%B##)1LCFmV*U(bod1}0 zF=!hhZh4)Ey!OL-f(dBp02E#_C<2__uQz<6)+NaUtYC#_@mQO@7!uQC4X`bD2i^x8 zRdB+GnBac<1TYEEkw=(sb@BDUO=^5x=FFFP65*pd5s)ovjum|5r+kDj1EXJ`Vl>;y zJ6Z&wA%dRtyPkPjk9;ZqE)$K5(61(UIcgoH7TLd%E08_=S^Aj9bC7D;%47_tpS#n} zq9Y@@SQ>#a0F=sNAqgE;8A&{XHIdlP&=(R_FnM_P)$r}ODT;&#UZc78m zS&2d1%>$p95|fsq+wlY>nQi7O^chB?_Q=jAd5})(yx>AwVSWOjW<sYgM}9{y??=p4TTL*!0t)Qrw_2p z1}zBKN(FV?cPWpK^e~KoZ*y8$S{Amor2*(>hH=$G<6y|MKJ}rd8kPV zgbNYHmek8TuVN|C=9>(bFZF_=SfkB0Kmj4iOY_yf8`ubDddmz++cDBaQH<_dbEh1Bq4oJeN<}k7IrU zC58uQ-hbE+S-RWMYvp`;u_ZXM@gTPuz4)duI)F0L$PI-GDHnj1;>P|KxiL(JkUxX& zX1J-R;An97#1Hm}-W+>9V@^?|(VcIwkHqm0rcN_QATD8nP_cQr39mZ2@3?sgqoIn_wumPT)d*HSyBVIR!A$!CR2zV1+To7JhiGw zCjNeC4jtGq*7Df`trgcXY0Z*Ogoua|O3!ola8jKPU*Fi#Krlhl(hFV+-+%Hn6+JRJ z;G0Kwcb7q;+`v0}62Q0Q0uF!6*+L78|xdI}nm6 z>~@TQc4#C>3;KtTJ2_-|p_)iN{CX!9eqrIX*|cn|Gc=4=kV=e`9-wvJjN^fF zMK{T`%*EZNvoVTyHa<>|vGN=VX*FZQ=*rtjGlcrHOkhKyX%JZ#7VC^3In zf+=adG!nx|y|+K)j%mf*ULPhzK#nhQl_D*2p+pj>c$)M}ezetiWY{YXLNTzRW({Io z%aGE7_jOwUI+)+ZMnJI9*^sC zC6+sX`7AIo5$Mo!g4`|)s^M#P2SVuS&hHi)%fE==dB1Ia<{t*ehRbn@^(=Glhem}Z z(PXsuM9u4^l06Sz%|2Zp`KruHDX*~&?S0=6eZU5;Yaa*laKHZv_Jz$38tUUk*j^o% zW`K8kjpz1sTZI(c3y-)IjDXpzp3rqhWBm=M_cWPf;gezzHr1RQ zZ1t_t(>A$HLiNtSI@Z6t9;RYB-{G0b6}ULYkcTb6le{_w!uK%=FweU^I%{`rGE5g| zHr~ghci4;P?)+&K0;X}&K5>Ght;rScG-WOmkk8_58p!qcrI7DmlB*+TIfa;EWDVsH zMzfZwvO=3(jcRHs^GzQmsn1}QhqT->YcvW5;3K0W^qC=f1(~aJ*6h+)?$|w!fCpot zu+rIU)$AHJI7g52$!nwp@X?W5yGdPIp{ceV*S5n>RS92C89Z%HButyJ*4k&+Y+4xb zl=q=;wQQ_*W$G0t%Fks)_%DIPAR16>{Oy@_#*u|pf1E&p*G3SW3xvCp&C|18+@zZ@ zW4ob4N9Z+jFeslSsmCE5!$cX7!MyhOV*@mPvM|_130D{c7)B+dsoxIaP9hMabUpF? zTH?bxEnUtK_udDIqLu{XJ9r)aDFnK^!{dIr$R~>5UZ0d=gm=8Q$>Do@L7rf47!E{1 z0NxiL-*eY~2Jrkc05CJ_Dy{UMk8jgRev#KTWE$f+Sr*Ex9pP~(nnb3Xb9jFYfE2w( zKY@9SaP~fWle_&M%^#(-)NCH{NpNm_(hRcwa5P-At1%*n!+8C;VVk?{s4w6Ns$^Y7 z@#6SrR78bb?rs)lCm?cNUw&>+dODhiDd}Z{Ck~`^un~_ur>|jGN=$>+DzDJ5Uv8d}QZ9$3AR_izr)uzY`J*b&l}^tiXJ)_3Pu+I=!JC zG4mR`?e;_z8jVJ$6B!P>&Hk#o{>dNn{Qo|s_4Rk(-arHn+dXD;;?^A(#+p&0u}TVj zM1x7DreAXetci3n_m4PWyrmhAj_Ae43EKXfvAU+qtb;{GOD01m;hS10!+$-_U*Ihy z6jf)Qp1Qph(u68YH2-CS^S5zIHhNscm%B(%-77-35M?lPjGC&eJpQd$X?$PBfB75M zAv#(#-SljGeOea|QBmP+QNvML*O{1jYzt<9=ZvO-1F3=6a!`7BA4Du((Oe)!E3>1)^U8~`+%p+*<5gI5@1H0Zf zI6PxrR%&=eOP+KVF_V~txq_qbTRB@26IzefsZVlfeg*;gi=p<5Xw8$!| zoN6{GGa4clOH}OV9Xt%I9?X(ftROLC5CRvDz~a9oV{?+PzsKY5C?6{wk2K_nNKdt?6i#Fos5!DOh1cGWMC;NO*DPm82- zv#e;Tk-dh zNUXCGPLq$!eGjc#@V2+c*4gq@1k7iLw1*47+IJR3ilz*OgGE(aC7(>ftDsSej~(}X z@gh!HPe@3%-PIAO4GVmNlW693?yAuOoie&?==rqSm0@Qb&$6vRBUPewG_zc$ghHci z$j2Y4k~7XAqnO7j%+?NL7dOSKe2KYJ z(`rsAr}x&)){rjGbey&yE@^by08$9)3?^f63|$u_>2!M2i=|SN=0C629|RsD0RwzW zIs+Cg`m&XX`$Uy*3<5v zvc3w;zO{#8-x4=^)uA1IeK)hy2$AFGyNTT9M%dZN<_U9Cum30ur|<9cr)QnAMxS!a zzudqt_YpFN~tuEQSEkY9>zTN=8IY8g6$&TMz{-jzsfEI;Gg(9&&jSoTQWAy&2q6pmlvq+Q zNSm@k!i1s9<{+`I(_AoE%K`v-s&IwCD@Rre8|Uaj3x;z$>`LBOwuT z5r?dhM#hu`C7G%f-0M)N*eoAHi!FObVpioWRvv9Q?l3}SG-jr9E|mqDI`y|f%p)m~ ze)C`Ys!5eiQ1b}}t|bRfg{&V%V(XfYq=X6JshWchR3)^AP9EBkK8g$7wGvcU4i`=vXdUUlGEjvP)F66A?mn zLni9hkp(4|d)mah`9>E*pvmME?-S!R89XFH>eIjK>tCo+groAzX6JZ=OD87q5vcDa z+1ZT#ko6$>KR=O6nzL+_Ve$kqfTlruTy>^yzuU_{9#7GQh?$H^-#nb3?x?V_v+x-2 z=Z<}!g=RrzdO^aVwulu8VIMnD$#`Zt8XFnSabe^DS}_d`r2%BQL0i)|_P3^lGf(GZ z-#xDTgjYP^lP1h6s;Y{bnv(SC#Z66*=kcbRcds;W3k7TvA_>(E_g>H~u+nAf9$)o$ zZ3pWcE9%m;;srjjXVziS(4hmkbbZTlC2hM#V@=e3Pw6NV6$uWw@0(h|ClXb-!E5c} z_eoGq!y;ch{VoZ)DJ4}hhnTSr3VV>gz3w$2ofg3#$gGz zkR2D%_-N?IKq5nd!$DQdvij)*6P8M00~1!4N)7!x1DtbAPRC(YY?KCnk^&g^_MLBF zL+{7sYA}8S8vL-9ZdHE`iw>5&zxMamkF<6 z2KtHBGaBG}pQXXf1>juXolbJJJ-OX6#`kx|?hK>?A`b^zGVM+Wg2JCvzqZcb4(_iyQU?ahy)hE=C& zPm`rkZFab2Hv!V>1&*+eFE0heOVT?JrvS3jp4iWP>c`ORt4cX28M5;~>cr=16DWAIO?E+0?~$j0`v@o2VS0ht+w}% zq)WB~x=05g2jSS3DX6@7$VhVfmN;;0h52#|3lujZov@RWKzuK0?N4)j@4MCQtLyVd?wVjs*NCi;dGqr+LUI z{AXM+4c6BZSi`X_7!0_N=IfhmgzUW&#r?c8?tW_0!TR;aM`g+FkUzYAUfer7_#ta2 zSI8}@Am0~Xw>%Cjg=WfNIrNeZ*V7E)@f<7}sBElpuVN;C@iv%-eBN0c?cL%Ze=w}E zlu|DN<6F@H*fOHS1>d8>Jh_H~NxrUrEYDI~!7k5K8?Kp?>8`{q?CB2TENUF%U<@|k zhig9xHAR_igBT?)fd#&v{7=^?+>$0Y%CRT4P^>1O!C*Qri={Q142YG&H-sOi(|TE1 zWlh|~^431V6B4p|gLg`nR7royz-V3{cF)0WC7OZ?R9%k+ISMm5+sTPc&D5ewqN$xTiuz2Jgb2Ok5EB|28ld2z#K-)l z?yeg)&LvsWeD`lpC}N1A1i<0VmCH|lLW2f_9VSea$N{Njh^&9?I6xHsy)J3Zh>V_W zPRax})7O$Tub)kZNG^?D2KAKHsjhPWK+{Z08WA#E1ZHUimI<9)r4=5HUdH4TiXLQ> zDyh20N%othRMM~_S6756T|QG(!%1?L+#=6{2sYTdPhpyDnJ&e+(Zeoj2vX-UlA2y0 z(8j5>3UxXsSCm@TG*(o@J$R@|6;w3TKz6dq{-bUmMj=(b8mp@Hb%@zVOu|JhwsZg^TQWIylO&`_MWr&UiseF3 z6ZPl{6!!EnDn|}Gib@19jr)y>*RqS!<8L_dSiw!kO3g$^LRhd$=GhUk(dP?5DOW{7 zX_FXBp%#m)-GHbpwy8C`ta1rTf{WZ-|MG+iy74*Vmj0IL^3uD6>&vBm?SO>lOit>M z3gcN6G=DFz$YMHeCug*xl8lbV7#zWTVk=moVUvSlSWAG(TuIZI+3pZ6RV7pkp|YWp zvR$5&EUYxshT8Zoe#b|ZTToA+>Mf&b6^I1=rwiOVt=yqugNG2f{co1LOR2g}-dNj! z)W%GIMd(5{(^YiSRQTxA5+>eIW|I~=>wQw)pgt}3I}}>I%~&Mta%|V7-{9XieqXBC zb-i($Ryb&sDjFu!VIr*hZcyp7H3NLHI83l2J_3Z8t%s>f$4;g?ODd7L-M=ZY*BTrk zUZ0-(-1xcgl&0W9m$DcIeowD~(01Hfoyt`RU)t1+Afhabd)$E zt4abdet$3c$cvv*Kv!>?9S1H+p~Tn$viH-Vd$GcuOSpLIzqeE?A7%)dxjv=TFvFdqL-bUdGziw4WVY4;1H*I335*>4nksaj>2rh34n1A09#Cp z+WS?@p)KLV{br*ZmWeLux91cwDWQnMDBkbl@q2W=sd`-&Jer9lSMt0zc_SH_nNA}1 z{W+3Gpx0f(klzrZ@UU)-h*~oBHpJG@L(UnpbfG2=9l^fuNYpHFtme$;?pYOoi9{el zkh)w_b*h##A6$9)F^;g&r|^mxk&`NC3Izx+V1%uPl7{DWEyF_1{?!02ksnRP;u2sF zr?}iP7`ulT7)s?yve8S$Dw+`sKk5#1uBK{;d9*M!8fI;@1!}v@AN0h?eJIU#* z85O7p@I>(T_i(hr4K`R!Y`$I>B9;o{TUbo0Sub-Vu6Pxm0S4#00c@rbALdm2!=TGZa|hIKWoSyub|{4L0+(C77U)K~CF3-@nz83Il=2D*b{6sG_i*QUZN4faB0cLP;W``{IXM9*g;#(1L!ppFpyT!qZP&ZQ z8cq%)=wt}4IgYv-_c%K_Zt+6gM-97DhHJB~G`a-K>;sY#!ix#VOrj-D%Nxm9wIJaO4GC9XYXrEZ6i##PCt%?D0*xfX`G(@PfIvt5~Td(g7KucPj{#y(GuLhbp zY8^VMGP2{Btlje%A#9+)aigU(zHP2e4xT#*QewvUu)yZ{&ODk#Dd|!J6?}`+r!~U; z`L6A=H}-VG`6B%LW&|v&?{Td#Kpf3e3YJw`Rv1>+QO4yhCy81^w5#9^V8aTMq35a%xhw?k)HGax%CAp=CdE|Z!f+K4c?qn z|8`nT>3-&i8J_H`*PhPPKq%Z_ha7Qn$35>TJ`F{JTfj#3;$QlHZ7~^e&e!@cPu&Py zof7=}_p9HBD?T?76L>plNLjHPKBT~VoKWD~6GKF3XX8Aa?1BaGN~k0W`2j#7ZJ(cTXSl8uFVzfS2q4*z_ZKdwefk{L7k(WZNb{m2Lt zoH+6u<5bDYS_&AHzjg9>R*fE4*T%&~#?0HVJhR33-#r~Xla(T`@g6+ARRu@W^tdz( zhgiqXDBQmQ413NU9$?4-(`?@9=d~~{XWih?>g`%Bw9OwMVA$C8jvo}Nl6S*n)_6@C z%?A*shqTsf_AEJBCGS|ov5WNbcsvXcovyGIu14mg5)l#^jvB+u_s~@~9K`XU^t5Oz zWv=zKO`V1#XnTZ_AHdxDtQhKc6Nc~iLEyPPLtZo42oFm#HdwONZi!XoZ^dxON(ERB z80bgV`GsaO8ZyrB`I-|5boWO4e~g3hHdg+oCQ4M=M=xeebs!e0{~3U67x2jFJ8Vp2 zX(L%I1if~74EF*jV)v4XL z*N5JF0uvv)^m5EvPoX|7Ww;bt-nKa29{YWM&_r+JwS4V}SpIQj4$@f{>9EjP$pr@A7jCGG;d{LUujXZh6?&@&9UwiCF=5i$t z=4qq(Q_Ej4pX*aEdUT+8Ufz+uULf}!uZ&3+WuJf1XxDnHqa@YPA&_;SI(X9M+Q%?i zIQ{HcsjO6}D;5@VMp($D#k-Ed;kwjirEkgomiw#uEsw+gc4z*+_Qaq1HwW+Syk1X4 z`fpw&mA8g@daB0-<(=Pa0buH?_lwdfJ?|zI41E_z&~Mvxt}}M5P$^<04Kd4}Sgb=0 zl+xL}ANH@0(-=`-e-O-wQ{*c>X3iODQI>g`Y{)@9JcZ&R`ah}SnUUD;e6OLx`qlJwbS9ZpS$iK*)wZc)1#1&77gJ&V!0h;`)|fo~ zZ{4#l0F-4OXYy{rV|{(C!JE;~Iv%xJ>S;S>n6H0^#2ribYmVn&gOq|{k7lZTrQ9j9 zzao>{+8A!ZWOqE4Nf$8w8^U)ajjJu*bxku}a_op*4F{LFkcuiS^ND%*W;8fGCX=!B z4>)^id;I&J9^*X&$cgIb!rW?FUY1bl^gCcn9%WFNSUI!U=|k-KAClebwqqciUtSu` z=kc|)wJoi#ifU`))YjGlzKp#)m=iu1*6znfjd2oanR=j&k&^PMqD-`R{yO53A~{ zHCJKOm}8J7>37$8I!KopUn5Fr#urhu153kQi4v&gOz}rW(@wrWLV<;0RBhVbKHw!^ zZG-zDQjn99_iT#U8nAY@5HaC&w$~8DR@jK)fpqg~@#*zY6O!guXk`?TUxvVkbM?_Q z`~T4Sp6~{Rb0YWy(TT!%)nWB^Bm#mG386e@pE=k)Ni!RA*8jt}uBGe=|sH(G`~ zFq2Qx*qF*eK2O5aLx@~o2Iz(z3nzi$$foj)hjguKEME=ey>C>p?;~!<5d}XyKANIK zx!7-~nan+pO0Sxbt;v;l(~ATxzPOPzlMFx*BlTWaH)w~TK3h*C~Z+!243McSUy zUW2wSVWFwM#|S)(+L^~$yEX@5m8?zG7yI+4vhO>sl=pYud3-mQA`~NOSulH@q)6D) zLwrpjDN}lSzT5+%T_824p581BsgqjbXe)uq>mMlk2_48%`{_a&n`kIE^mF2~zV2HG zIu@221ng`WWbO^`&#|Yx+3{lz=-Rwv~g;(S#Q;o$D9Tw=Aw-CH3`*{~=u1 zPY`4M;e?G!pvJyf6B4G4r6SR%TzfEMnzcicZf6W@fHQ8&OBDwBQbLL4Fm7)8X$Wk@ zUIVSO6MhSmk-y~f^6s2dv1RUJ*fe1kAr4oh>f1T6q1uC;m<5XF4^Xq{lQ7#WJokX- z@L?)#t;^J_CTH0c`o#)P3e45Xhv|Y&yodO02epEeRV5f=eo*pMB5wA>^B)T|2!5Gn zzNBQ4turs6)NXjsy5JglgCq&8(ZSsk_jNoj9sWeP~XFbcj-#3yLd_Nu+u zZA#4m^89&J#1u%$GHU^P?TxBCMGY!+v|nuz>1(ODDn8u7jFFPYMc z8b(y~uBdz7f0w)vA{l&F_QT?R1pGZv+Sf77-k{rWUirU(Fl_5DgW$IJ@K9!x@*6AI zXOrPYNFt9#_k7QoDFziU^8q`vcsvURSH6PaFCwMSShXXAZ=D$Fm$jAn`Q1F-eT(w>w2%= z{wIAb2oA6S|HQqPaC2U;#-WA=jR^K-D zALqT&r=jC^wWO8W7m5FbyKKC@o?eY{7EF;FU=i^dWYmvoE-!1H z>-#5<;R4>37uqGuUh$fYwphlgE%*vT0*gawFom?=v9Dtl!ET#BsAA@JIm@=Jg88mf zZ>4JD5TQS09oIs^g}S!!e2sZvvNoQiffIpoCXoi9b+?A9yL$T5oHH3uVGg?37hCrY zo*sk~R-_B$2cuSY0WJVa=DQWsMWsp>qN*H?C-N2}RgqKa9Enlcp*K)e|1&ew%`(yq zHv<|#(3Q5ESd8WRQQGbR$ZarInSMSz!2iv{w1$(FfrfWHrT~L^&aB#@9A664^RSlw z)k>mYp1xkS79g#{!eS;FI|76hgG%R?Nkk3W0TYqP`C%#MQA@5}V^tGZVH7`F&xZJX zRn%Wi9pl#vVs1Cp;na{-#T4S@hq0&k2ji%(H|?X&asw9DEHXDwBC)r7)ku^ zFI9d{A>X0Y(b4F0bAII1CqSj8Dk06|TAeVAu~hc&y_UX#jK=ziP)-!wez2?_GRqG; zN+B`WQ_3;%#S~C%AgsSz1XgEBo~3fOZmCECA<;MdR=N@`*XHE2lgwx2!{uWY{0#$7 zHINe1pwslUWj5&UZqb9A?CA3==qXn-t#FfWD)z4+>ddUU!tliQi0V|aeDVxq)0xx8 z*((3kInNvf5(|#SJ-GI`PLppfoM-(cE=PSr)nl*EsH9qA>7^A@p=fh>GIK5=D%8DuSR@o=k|-R15$aOK8cSC@ZO>9QCR`LB_^kT8f}ZdXQaHa*;%q@P^K=<+W41D znk03w;>c)@yFHd9hgkc8@m`~d=<;9=sF6$Ih4w;fWApwVCssb}G<_iI6>2jU53S>k zl`F|@(3n=!l(dyT7yybk0+Dm_ph*tLJCR<{M}IOIEKK$h6FPYs5)}@U6`)tmMo( z2`*Ao1t)F@O_`du36&gubjKxvHs7u6?tPJKt~m)Td?$N$yE4fasI-!ZNR9(O`K`6c zX#wrK)z&w(NUK;L8HfUmVHFHP1#(CO7Wg}OT=lYlg?WL6_I6djAudi`c5SAKzwWT? zzRUvOq~l%dj*(Ubd=ljRzYxr>P{pitcD!?ZuD54m13b~wlxCIrc@+ItCaLQXWl+OR zdxTny>uqoFa?c-Lb0!5vixVmAM|H|TsALxRrfZ6eeb;czACBD8xRYv3{a9gDT8ZVt zo=WPt&$zf2+c*w)H@W%POL+m&W@H%(y76=f{tiEeZb2Mc8@M0lOEp6%aXE&tjtHa_ zOdTv2j;@^q`Y?rWG;y)EvdK?z4E!#RDC()rT9&MnA;M5#!yZOmvB=S(cYJtAKZ^E;-k;%84FJXis~Y@60-4rEmUo1th8hA@tVQo}Ora zj5y-e(nVkfKllIrv!V?|-NO=-y)OI7-Jwr>?pDTeeP+2gw$Vt~pWB@5`2v+yAtRSfMb&a4`&{i^>v{@pO;#=*W*$sYa5FlW8W1h4n@|44KB!Y zqry5MBqr1gS}0s(E(7`Eedh!mL1kxa?m_qW_vrkN|1>?F0R!YW9;`>#Lh}&MM5IN5 zG<^sV+)4w2c(JI^0E`#xGNK}A`bBWe1G+~d!53J>QBfE{<1!&;6g|9zuz{34FX#v$ zGZ&Z+T*!Bmj6I)1#_9SK6CLRS*pJ(@7ID@9V=I0GXrlizQWO*LVqW5P~nMpeh}jM?A7 ze{lzNMUD7K!iti=_Hn#nlSmHso!Va!dQJbGvb~XRzQ3!6Z-&9MZ2Ix|?kGM^W=t!e z5d+)>!6FbQ5ZB-mwhEkC1+`0(hV#S|pwU7R zEW|2WxnV5j1i`YGAfhx>%nF{h6m9McwIOmMl= z{kB`2-klQV8vw|$$3+`w{=AQk{7<|lIEvso8e4}TRfps9)DR{)hif;RbJ;$5Y(t&`47Ta6BoSoHevgITfTgW7en7B zIxFJ;en1JYwKh_oHq>HY#a1pIAPol*?0QJ*51jD7_BO)$C@_ghBS!yk0KpCiCIej- ze0|UPH+(o9$!DL|-8RSYn^Q^=@#rQJ`anj>Am94F26|)y?!F$sx3OdAZ}bLT>7Yz` zzTwCg+Y0LMntWo}PnGlX)6B#_iK%wN{l8cD?+3B%+0fC6JjS{wr2QUkc@jyV6W(mG>lUS_{GVbE z&^-)HG-%@tA&j@ClF&e5WW)!$_nSR1MdJK;L%wx?CP6q|BIH;D8N^uI+428-?v?rh z6@((|vjqBZ{|Ppyeq6`beSgl&-Px90QfCIA@u^=Yhd_KU?+?j=5kwes027C1j-xy( z8`D2N$Bv{*$tiJ!%<_imbdZ=``5^m=s| ze2wvh5Tvbo9#BZ-=uDGS8Ep0TZ+@9~ufsB7ms)H&Vv(dhoSnZd|LM)$CHOf%ZP1P~{QjywZ)9#5W*Bo#S9>eDieJPD-o zVa*Y?!Hz9+~NaDgtC{u?M1*tsx_ zx1K)FiW--A2V8>QJm`y=T%0X+C6yqp#{JJ9y*=+}SgR#*L?$@UC9g9~spgObT3o4l zTY1F=GlMg!FAtAUxqfYNO1_8onUkU&ySYPywY*#RFnm^i)|^5C%+ti50a;~q2P!>ofg`yQH9 z`k|-^^toKowT9j4OtY26y{&n!3&x(F5!cra-abCKI5_#GrKe}Jp6a+o%1t+AWOWhFt|VU!L3FI>BU%#DfkFJ{^f}cZREVA1iuvZ#oVA9{twBB&Lwkabti7K({l` zv6-u4>TBKql$C?@W)pN31KEnc36bbEJL53M-5-9k_CC^OeOqh&CG_@m1(V<1opW+x z0g?(a@bFWyibB9D6mu#nr%7S=;P=c3|C~kQ|8o7U$Z#L$=cV|yEZD(2acOwE=;TY5 zBbH+}tsc9iK0KX(N6Ha4r&Th(u8Ne6pJQ4{#tn2u`pCO5_M;Rp|NAN%Sz$!{|} zs351Aulw?-*O@DPbA3c^%|6qoBj3WD?-7ES@8>Ga%ZZ^wDV=HE{ztc69Xi1-|3F&6 zDOxOY6E{unrJU+K9+&=~W?WdPf`z7*8JEj)@6T;v#CesIMq=VZ&W$0|{}#62wTRI( zPVGJzIu?tjESR~}PRCy&Rr4W^`9!6g?t2jd%uVIyM7#DUBU6nM=^B;x(&XVO&`B}J z)i{>I*3GXRlBG!K|1m2SZ6W|l% z%rOg?<{R*s6qWTQL;pHEv|FiENEa1LQxuG>N0ClZBkTQNMn>q)fKwqQyH@?%an7k6 z-K95Vu7+~w?~Bs}#?Y!)%g`i%i&CJfkO2T}l{Agw>NJbslj>&rwST`#Adiy*bDrus zUd)64QmRDu=xE&AlxuSAQ9^8y=X2HjiJl7f&{f&teB&Ep|fJ{j0C}zl}Huu#=3n>oQBwHwIv&(MGRv0486LP9QDWh*P&F>REHEy@^G8tJzf3fHSy^yEk8(t_>tuxwe*{m zfnZR${I@L5H?++rSkZXpi`8WqygEdDIoY7OQPq8gfSPK5D)hh~ZMde?#}jZj%Rg+#RVRj&}8KI)gNnTsT*oa>O1k4sB6d*qFo1-Sa|3Zi2G{D`Ere5cC> zfP|P?BuA6-s@Dp05$Wi*W`fM)X8nNnsuWHqTQ7(x$SbyP?$}!L12_GPQ@=p#wwGf# zgG-^ojB}ZgI@AjJ8#5+^+!54<3h{Infw)RXfc9L=dhkoC`99}p&L~{ z8B&@Qiwrt-gVmQWc_z~Nz|pk>{-{-6f081ZEoXpG_uom>q`P%G#8YfTOGAz0sczar zw3OMG1Af5+w~34)(M7)X>B+*h^yf#VHZBJeY&`nKVUB8wfK~iFs*ph2jv;w$IlMD2 z<1TjaRprS1(JoHh+aF||z_*nU0#OfROF46}81 zI}<>(?MAK3lwoalb@uECcFEntMb0d_j(WOIx>$EuL)iZB-oCp)wk9RSf~Gqc-_eNH zAYIi!Rj}Yi1T_QWtDMZ-gQ4S}B@_E@rSb9cs?-<`CJ+IvVdn{X?R{KvLLw3)3E+r> z1>Bp%Tyew&cLM}tqA1bHh;_4ce=}Dj(fiKvqQ!;od4)b-l9)6ZhWZI!72^&e8_NH&} zVE|ySi?K2MC^}b_1=_41hyS+Wfl)QE9liHzF+SksWXk)ZBDx|X!Im?g)XbwSO2Jte z;vlr6Nh3l-oH{n0G>vZC7#&%@VRFpDU=*cf0@i1|xm#2CBTkZRdJ9flh` z?9}6NjkqRbGV<8pnx-SQ;O<#-c=2A>3Nz~Z?WcX--Q#fJ|K|c2SKCZh)YlzgobvHF ze-hLr_t)!-`=?Xj^M3Ek%vKAq>NP?w{@62Y<4tXgq?+GWs!% zwzc5=IHEh2NB2;DFc6$ThY&kDD91c>uZEXV);>CNgkeI?v0OlKip7u5N`VF#8{?j+ z+t#jhY>cifaR067%3A0%aL7Y7lOJcZjCZQfALC_oTHUu>MS1OiC2FXDSn#aPWja!7 zT1*e?W^Y-YoNbt5ikH!w23}$Jj7yLAv1&ZEBv7*aJScCJN`KT>0VoWl@H@Zb^K)>@ zDbU|Vy$Kr`rjFuoCL+R_viT9i;{xMnje(bVqBHCVL|Lo1Y}aLi67aP(h#`~MR9$>! zO?Ns_(S?K456X(ET^G-?y!inFQnW#>To}OVQ3Z$N>rOXkD_$F*k=;Y8OC9G6c=Pp1 zymcwtykdpqK=0mIY2jcKL)_(>T`RCVT%w?B6(hsTs|3uMv8MIU4OetqTxkg7ea3ODk%vfX~euA{6Jc#Q~{jai(_{qEEXNQX^GA&x2C#!MdT(8 z`(1GEhl8=ujZ7UdpN_o2O=C0z`qliAjk$3)Oj}Z4mBip2U`hH6eCau7fA*T3q)d@|02m0SuJR9!`SzIy zkrkK=Ope}N;Z9167)mT@#D_3fyN99etkX`(QSRg1Pw>4uG)V9F{8UtoEF7zYC`=Fa z_E(Cm&~#l%kRTJRDNKton5f|c9Iq>7Vx=Ue7$@%s_=$-*R1caIY>c zw-`G1%MBHgJlNB(ws1TteT7Ks5brwN(}uEJoNltdEib?&hK<8ue^lan%;m3{c;2_HElS)AN1 z@tb#gCU-&$(dCBLg73u|4#%1WQaw$5W=?U;YKZhRNwKF9GI_wl97KR`rfTz8-P9lK zB&IlLCySsBGcpmcpwo`{+rk|pn?(+_lpk~g24^>g#VwI{!z>N;I`X7-u;-a)2hKgx z_WZ&1vOC4>cXWlWh;cvDCRz0K@&&bnNs(geEfbY+hVK!s5=( ztn+j0l9Cb}kR3#h;vx5pQuW2O@*X%X&hhu2MX$K$D<5Jvi->^%Y7}4&0%4cs?weH| zMnBy(87b11QKC@5r;pwG9o_p%V5fFoL*e0+3y|cfl_q4!Y z=O7UDyZ=sPW;%9$H6ZAajcC)^DbCQkv@^Yw@`OY@%D!1UF4sGy)bcbvqeFN!d)R(@ zI;1w89?7~cf%tT|fAIk;dTHp;D#KWJW4|CyibwZ;d^Wq#QgB4Sy4m;i1?7we`T;rD zA_~uaty00~8+so%iK`>jlm(_dzLB#%Z?`vtD~!TNp| zdK^X>h@^T+yu%reP-$2b>fFCxNyM&sMXmh(eN*OBYrIp#2=A}ur_5@7ruwt0hP@~y zinq&yU%%@J6+L?U5-N_LN}%60hq74^!w2-ZcI^U?m7w?o&e^9G_+&7oJiQ)RRb94y zJ3G@LE|86|nSh3QUxJ4^2dNnNHd#1?d^21=-gVVzQXQRZTOG;SuM*(Q!=X-*8P!K*8)b|=LEH4}`-hBa?E>p{Gg<1k`9ylv#q2N2A4#J9=iCpL^7P3??6|}!yP;VR z;QOt)D}7i&eziM8^x~E8#{q~jvln>{w6o)j;PVL-5_n}Vv1jR2{?l9n0;SYaij997 z;GAw*p(G;&`?do4!#AFsj$RD!xcolIgRP0$T@yD~w`cnH(0xmR{5ooF>|B%E_%{@` zhN^o-?8-afrBb|S=>#Kj$8$f-R2|5+(}?%)>T&4s0I_ z_}*_X#U4OnXN6Y}sf$~kC6Q8!zG;Q32qDI})<;$fH7Q^;3a-r4`)s2)XvlsLqh~e_~tsk)v$$HwBPIp3Woq)QG0tkGh0=Q zVU$-U0mq2QMW#EZo=*tzMapZ3xcw2dBWE7g48%zBAXkuhZWcw>v`OZ#?H!cOhIVep zI9CU{P8SybVvze>O~17tNv{WIh_@BRp3k@j@t7^%o-4qCH z)@KN-?OhFcqNK0)*>rdNXEq>w@8Xp13XpWimE7-QcYv3ME(tzanO@}=ERwQlay|Dt zf=Ec6FAo5*%c}M1Uj+ZyiM2YBcbSZ}v<2PH5PY3B4ZKUd&xrVk$zfJ^#{FV-*HwDsm9Blc_!g3ga|PvHfSs?JH?MBjO1%7AesKx# z<>G9Hybluor#10)q}HlG=~A&rQwRi}aXv%SAz?oN)=M6!!% zXO(K6uLs{Rr>@>NeT1e*Judq>G0Y7cEk6X_KLzp%>Kn#FLqm&?OH-57?@!j(y-~id zdzk7(Qap`)gOoAXcD$K-U1m>T7J7V010tn(`Ce}W4NpC8zSOH;Nr`Uw`Vl_-eBbA= zUk|R|%A4(c3DFEvY35`P&sb4B_$NCUi1$6N|3N<6>nU+I<{IvJ6Z18^y}TDF-POnH zqS`bMwvMP~eq`-T^Xa-P-=_t*`uP^O{aUqrA$H&GA2P!R%2qk@+@>hm0tNleCq*18 z*Jsll-q=x^s)rGx)-2eFdp|(@&uhY%_$Np6s^HODL?z9C=7V}`2ZEe%|$eZAK`DHtEPoSZj907{Qqq2GzULtGnq6pIgvpUa)S zeZd^iU#{1XJy=WToOj2d2m00u&qIhen;*u=$1T9U78GDA#Lb`aM2xNkdwY-jUpKD= z_-dgpKm_VvVR0EUe{EY_zD{z6VsAUTCTS6+i~g?FTVTViUXNtm99(Yk|CqD;v9A+go+tk=uHp zrim8I+8w^>IXonfPQ%5yI@Q%5)n2WO_StBecYAf}IPtAg_ooUoR+&M$r<#4o{;cu{ z63BWsJ)fZcWu`n~%D6HW*kN(d4*hg$!@clIeOiKH*nSiJo+Wm3XmTUd5k-NhcfAYz z+0$^tSQ5^JTFEzL*}65-ztR0ZV&6N^xdA$~Ng!6{DiOS6^tNA+kdawZhf{tuiqTVt zzi|?oNh#nlb?t0Rm47=vd6_Cu0&c<}&#(IgC2v!Cd0Pa&aS|HoZXI2m#wC?+PfBqT z8`;_r5^vlIUfVhxtv3pV4f*>&3*?=uR@-_W4NPL(IaQPA@x5HUKMCZWJe7EFbmktM z+4VteI+*5gOt;SVgfMT9po9^J}eTY+v+0)Ts@7PSwz54Zf& z)zz09&Cyqzt&RR4-Yvg&{U0&oM|c0YYo?Z$!a%RLI0$KINs>9K<(9s|taV&}d#Zqg zt`J0M!4(T_l*jNxYl${pA42l1I1GP(%s4&I$_p_k<`^6>xEFJhNB9oNcp_hSMe;v0 zPR9yU4)Go@(1z_QrV?4Kt1oUp8ZHjZX^6^MU$vPQarvP4rtI6pEU1nQg<%q0PHu=>4r;^ zA}Qd6;4GA|U|H6vn9P=Z*g5vI6X5A*eM@diHY(s(nu_>&(>9fMN&|xl30~aKqEA3m z2_U;_+)K5VK7kcQvDT5kN`9V9Ne#z-k&~TxM5_913k%UP#a}jOGo-`YLR4rO@6zn= z2^2~cMuo)0>SleNGfZLw6}g6NN^XR9-R$F0Qq)Rozdk5rTZ(huCqmrxsbSU-n*`eP z%JoEJfq;qwQLccetyWLtrucT{1L;6)+k1z#WbL@Xq_I)&52&SDW3@b94S<7mOZiZp8;7!yNt;I<#o}Vm8^f{Kk=|OH5`kebYqnVza$6z z_H>dPAMO$b9KiUSIc;D(_CH9Sg61D5ONq^pulYd~q_qtG!0q1tPFwKL+dH9CTY+tE zfM3pK7;OG8Bgm(H?dQ9<8HyM;PALV5O_AU}8O?R>`i{EoXSW_LS52 zW0rpwSln#P6Rzu~7RHHiOhq{GCqeLy#i>f1xu-wN)pq`184j`&NJ`BzqqPy(+2j+1 zrI!r8oN0&og^MvLaCx%ARD)N&@a}Z>Wc=!Wi0@)vl6yOL0EyfZl64QUZLVRpj$;GA z#mGN9Id~`ZtWRcV;gC1sw-r)M$1C}VABtgfb8rijuq|l?rM)TLPd7?&>!yz;LJz8L zXJ--Z-A|b_%EuQB@>`CKXlwQ+^DdfnWK$txx^X-nVRv{HHRi~%B^O<+0%!C9>B~a} zB{`SB))l6@`c*sc%avN|({E1auigJ)oiG>WE7KfU$7%>76!TX<@~!8VlM?DqUNP{s z6Fh9%GgMz{q$gKnN(UEcork%vh2fZ)F6o-CSFo;H6zn*;XvhZf*Rbm>~l zwPL2c0u8n5?L>%dK_a!#Z2P<-BSVa%Ls#^?2~>!geND#GCpOPUKw@M=xEBO^>yQ7gu2y_5MFs`F=#8!H>*f-Y&&vg>7f4fwY5$0`{-U*G^b|N1L|*pGf6F5)3| zFQN;tuy7{9VUvOg>yff%!WpETlTFLG+l6=Tg$bwUOgDa~f5y4QJ!9*ibQod^3N3N@ zuA#&Ro*8m3Y$Qh&PjKW>bjbpG*|_;0|In~4N)n~v4HBak^1-7FLh=3BiaDAiDMzqo zoZ6ldArKI7V54>#^j_!z(d?^smi8rKRhuIPCxlz8U7x(W3L(PO@z?c0*J-3hw)Mf( zVJ|F;Fm8Qi0-LRGsr;eJKWV1fSX;+FKsy}!NXS8#MJq5{7kgLayn}VRQ(QU#i>9_% zXo8xo3#c~-6LvxfxpE3W{I>^#zR~(;sOV$UAQDG3DoAo&L~u z5L3IS_cmt-7ot9d0!xR}SFnZ3PV!@MUgn=9N?uMkZ1hoXQ)UnG0kIPNF(Sl9zK zr@^eL-9`YGL#D5`rSW9JmJ${H0?*&8m1@mSQ45-T%HuZ)&i&%T83_tq9Pm^PZuo0c z2izNr%=+Se4DwB#Q4R6sR)Js&^$iiyocFn5&>*8s`)NL&HSgasAi*+6QfB3tDI`{A zA;sM(?siW+xjNd%SmDawL7F9KYSgbpuMy0P;9Fa)gBE*x36$!mLoZ86;#}KpNlSyt zJ3T9Q_h+A*?2q-4E@K6z{vZX%{5O?4VQ0NF+2NTKwq)U8yWJo7PjU&VD)9R+!PaaP zJ!2<8+COY7dwbD03LEFjcW(Tx+3a#`X25%D0)bi}+f_UfZkd(UYD*7O zwn3LP>M?eY+U?nuOx~K9Jo6ZwYML|&r3T8yu^B*h`X_Tv<083=tyW&OrI-RBx7@%6 z@9A#etSV4OMM2R<;xnXWgpQ>oC^P$5N=2o0HP@-ow>b%a6qx=yxKVE)ja{HI44w-iE4 zo?&CIAUY?w5u3c-Pvt=*9Ab{j$x$wew}@MW3b{i+8r~tjQY8{1ad1cZS3i724?%-l z=4OjM!)#KPxb66+rRgr8MpsFUJ`6jos&+T#yP~s$bBaLL?s%sT{%unc&8Da>uTSta zg8Be+QL#T8hjScyVK*WsR+&Pplg|YuB^DD4`bfL&w&03oqn*{-l+Nnu*2}jr-N6z) zhL+=n1p6QO9!^`3_U*h$C3^c1r#R38!BpG=hJB9cUB6b}*0UQDEVA7=s+UFxQdB|) zjFlF>p)HwM)i_^@yKjuec*SfvrB=;QsuetLYut3l$s6see;GNJV3T#m#@nySF(w+@ zUTC20b7PlKNf+yArzx7O(Qp=-J}4R%(4*UptyDh*qN4@>b{Vv!;daW@qyCG7-{3}W ziksQ^$PJKSRG-b1M{;h?E>G}mh~!{VSbabpn5yGcmE%pcP~eTW*D_0PZsN2vQ?k#D zn|FDbjVG(t(Lo!>bfydmgq3STX(mHcSkeOPiKy?j7ixBobXgR$v)`KSIpNe%ktwn8 z;o)_S1g!AA4xJFHy|cQtYp6`k3$Q8v*zwIl$tG2h4TXz~b!F}1o+aEA>?34oPSF&Y zv+k=$XFt}_PPR4jv!`P?_rBipgq4b)XJHvQdAvE=w#|ZTDk9w!H|38sAF-a``0in1 zS7vR}!`|oEBPv&tk*O8bA&@4vSmoAzFJSMP4q}>_GY^7{q{d zL4#Gxd;oWC$2V5eA!&n7qtnoAMxT|QRl?F5)~%p`IOS?;=5aS4`&Oo4QGfjRodu6V zk8_EGmE9*pM##v|0x3f)Xhn|=ca!qO!m7&JG~hxK+Jg5y6W5%vX{}AiA2prYdz6od zk4GAHv+wk2J3PAArZHGjIy%#g0slhBYMi4%PsFsZ-*!fI!z)DUu zI|ms5&PLBV4vnWub8yF-nFOt$3}Hm6omE4XGuA+<8g8p&mi*Xsgjb#t=ILICp0m++ z`n(lb9E@pSUei=mcLkqjDK)-ywTHfmvNy6|CnKjAr)TD941T`UNco)%1A1LeVEP=d z>E5bpU3iAt+4~ayKZn*t1^hcv3Hy%7$8{aV0%cl~9BWfmQAgjGA7Za83l41d^-CzIP?>#2Dv@&;I{Z65L^}<3Gl?j z;~IGqR^8M#LPr4j^*dpR0b3Oo{8;sY4kt`(q2W$l%kSWEGCiylV?yjOoCvBHe1ODZ zm?d-sVIn2y+oG$C4weWG>K~dnb33{~TO2uaKX`xK#h66q*oxWgum(d>QpakXI8wME zc+g>p*&eM#j048*xB}CX15X2hBx=$Ue40A9KxrWzWq`Zr8o|Io>Lrrlj8oN?YfO<& z#63lvgS&?!bjKu9#)CzN*~BcPg=OCB`&h20s=wia1W^qEZxE_%i#RyK0!h(pQ-C=@ z?$DVo`ltENWm;JXsVE-#B{y`3_a(H55(nO-Yn?KNU$2cidQcnYV8XI_chZe%I&uvL z#yhJJ545UVE>Cax;+`tcW9!OsC!rOQFp0ISxK~8d!v!A#8c9Rll%J8BGEn;Ur zo^(}?K}F{G)uo^5b)SX4$4?*f*cLP}q%3@K%0$JLANn7OaypFQ66;K=+6_ch^7w|Y zR_vI)LCkhZC1PdZqJ0Rm)C`g9PV`^~S_K3z%jsSKIXfCF*Z$|43xrq_i*~sJbasE` z0#wK$dKe+<@9@!W*2+2!tlP>nm)vm}FCw8PWfji*sq+gX`gk6LjuBswJi0y4CK`4$ zg9#XOElGQ44 z4i4u*;s!)(fSKL+BmI9aK#4JG2)vwZlt^eg<|tZ_uos2^%AjjqXvvw+ng(KlAFar5 zc6t>+G-Z(%jk?F5=!7IIjsKWmDj(R93}e+b#_hgS`V_^8i<76YAKW!oiF~8$~bcOT93w^ z_3vt@8Gk>}>9t2{J(RyM{IHPrMS_NBkZ-z&Wsyn8(h0}-U=0Ke*(1!-6^4Y`;-+-p zN43|{T9U#|7Id-asUKIx7!OIOQ|4D_eBn<$;)x8%82y1u`>S5@&j`m5p0t5pXray# zDY(Hf_3QX;n3LRC>%&i2XGkIWk7kE=yj36PHb`G~c{e7c`@7swBrD67-hT*MN3rUA z@>pG@7>!oNw<$e%WONn`N}0dXqz`*>V69cgQCz&ebAxR?OwLz{jlVQTl9GB78((Jd zT2_`(#V4u1e{aQEPWS#vTiqH)ow~9K8(4CwnQ)-fr!2C3WA^GdWGh8SOtn4%vEEEq z#hiJ2s?qifYJ${GtMS)3D{$p40%X{=Wd~?{6$c*ciWK!pYz?RpCPeQvf9utuGqE5n z`5v9pwi@+q^YgqEWa;+)6!LeKA@Dn|{V{jx zyUdqxZ=Bu9-h+wPvRlKhYgKpY**V#GB)1S%zMW#WcT3G_eO1Z-{GG~7*G!qfQtn@npv`Cj##dpkb-L+Ru3 z-jFwI-|ug6qs2V_HDx4O@{+?mL&ZF5cg;~qn{#;Ffa~m)&kt#j#-9?wj&mynH50of{zDb;E~> z2Ab4Mx9j!%>(Qb|>%rVd3!$WhMEO`VUQzeGocUb@CIZFFD_PtOk2)4C)OS zvJjlJ+dxyPBwsY=ZfmcAvfn_vt=SYsqZrrwzM!Zc*kpro)5&Hu%Nt4u882kAsJX!J zDb=^3GyNXX-iu0H4Wo8lDW9PWBS7ASO7^(Ffo{d~+q0c2v z&;KeJJCf!w?5_B~l*=FfiEYR9jipDgnysune}C z{_A^VGSdRBP${y|x+|gdGq~@!1Y0i5LqCJ+jlmwl^47lT`$326h!W@)`ie+c{bj>5 z7G^E5p0FnM?G9a|f<#6NTzBuVq0{61;fP;Fk`DiBwKd01wGwZeV113EuqbgO^IJqj zL`1|dIJcYv7qcx06u#1Et$;Ki+Ow8#J@E`@S~K*_RoE&8o3`&{{g&+joH=ubrluwu z8yf*I&9|W2w4kIkANz2H`gWJc9<_Oh#>?QFPIEpmi+RkE2O0$2q9F}CCG3o zceoV_9(mqk`yQXBI0RnRq}w+rdD(-;R?Rj?5ZIcy30?rEDX4^yPG|@r)ZkcxKwqz1 zE$8eOEamPNP%cU8)`kSLCRSZYVZfy5ftggSZ-B1uss%0G7Vwo%YYx9?@_+w#lXpGf zanELjAFQmzL@+#Vky*Eh)NlPVc|=4+L`1}E;g(xM1;DhBKy1kyfA@g{{BIw=le-(^ zv^CVRt09G9nAoUczk-V z;;ENRJfX4e>IQ>ltC($Tdd{27xFPSoEkG-7Hpaal>V8MrXeW=U>TQ#$J zD0<*kpmlvnep)hDf?{5hYYzGCFP8cEE_mz-i@>;E;5C|<3trg-5v`p@L_|bHygj(( zEO4_^BmC%GA3gap-#K=Q&)&I{OnHib>Y2bVRd~-`2icfhxrXLA&RZWsM1Uco|Dws^ zmrQgZ*}lhT&qhTuAM(P}7MF7ZyD4DL8hHFlbvLCYArS{tfVM$OFoY(X(p>B_a5Eua z{IE}b4C<7mtIr@A*OW?d+Z{g7f6L+0gut0Mc#j5sR;X-^Ngaod)&;dzTmEdKK7)=lm^oPsWdh5s`b%zAeK_Bt5dwx3x+3n z`U#sEsVUBCe(AkFMkrXFk+Gs+&yE>hKGwuyID`=y;UXd;A|l=f+;X{4{Ysh9#R{%# zQ>l35(n-wFV|bxVHk+Z=zFtvNN+E=J-8)g==v=7zV339U1XBwZT54JvG={2%>6n=o zECjHoK_eBEJg}_l(xVQ+4+KJ1!-)t1VE~>lkk(ST5e+Etmd=v~SO$1yfi^T=QBY7- zjb96>Noh(&LCLQ!jY<>hGa4Pj?4rO61g@*er8KSs`8mP(q9C18bD1El zp1=A$s4l%4;+hYgSh6TCmxCLZ6{1=Xx_aKSPu%iO(N`Kq)zbM=LKt3O=c{4bKKbFb z{J-C5M5#L_|bHMEv4%%Ppb4-O*a(hu15E!75$jl?sd2To)Qc>t*Fn z+~C+XmX$lLVYLo)qi8BhU4I^c3RfQ2`uaBCsI1ly1S>!5Rb^J6zud0Xb-o&Y#Uj}< z%s>C?B)$*?TH>&@YvL!MU-5TDL_|bH#LXm9;NDgU&<0Yzal;l_nW|R1z?T@Vj|i)I z{a#ZlEg=xM=suu`h=_=Yx0XnOdz+vMv2+fKP*Yd`23%2~b-5h0+jMR`q4R&bS&v3Sx1&!k#Atc;%2n zQC)Q_6IwA}nq_EV7Egf?0>fOY*ZdjnfdaxnQ>?re&$lXCgK0}#S6nruNg*kf7Z_TY zW-+KLbK(YnewvS5L_|bHM8uoLEvdjQ=JQ;cUR>ee9+XR5nO@*VUQdIAgDfm8+^pu^ zRGgSe_cLSs!G9VdbWBVMeko+Azd~yQ5Uwi3MUK}5y7-~!bi!(l#d&=}r1lS3QT)O_% zI+mq%xh=0$^aR9{CX?MW{FjF&F&yKn@+qWPv0K$#QWOPX$0YwBd+!}(*KytHepPkC zjeR?3bU+4($N=W3Yz0fQ6)ah_WXm2u*?wcsv-~WNXY6r!vpmn9XImOevaL~~C`yz> zF$aJFB)|*;AV8!B&;Ys{o#V|XRJ}h=H)4YVC6b_o`>oXr-3L|Y)JeB~ckf+$j~$q1 z+x8N%ltM{RLNT2k;_-ct@{JukKsptvR-rO6nVans^a7bO7OUlw5+BMCOZqH#i$7!j8+BzE} z1qoLX*9r+31ZA&GRbn9@S$!pV1;VK;U-_#c(krT%7|zqOvW8E8v>M|X0zc%~U`T71 zi(`Rp!LdUnf|x~jn@zbKRc;vSE75zn%tTHijG z^!G7lQq;RermC@hhE8ZU~hrOOH#C_1U(}@mw$2r zpV=U}>)sp(o*(DF-DUpfpO)h6AK^d$^BC(}3=i%o@~3~j6z`=$zPL@}`-bW103#qQ zhZKqy-e`^=+@IwW|MwCuZ!rvwhtw>q<)g=DcxEicAN)ZB`3av=*4w=r45@O8RE%9k|psF>O~ z-S;>>CQ%fT9EZd>X$o$%ZvC{6iiuZkyrJ z2PQb0GbEFeQYqlj_8GqW-~>G-Lvv@GOt#FA@0(_@ufXA94~?L%+2zR28TRy)n8|6x zJa2_iHt}$Z&wt`i`SK5UlSsxY3mYm_s8FH81w;MW7ryY9Z}vfrF&J~wo%v=mGCD+$ z=hB(6*nMo2bf$*uF6m-=xSywvPICR_tGS}7>a;#mO48{xj^n(hWBGoW>D(x(2 zCxjpjLrSF*$z<|p-rsCRQA*)B1|6lv5CSlSfuN=>MomiM`3B)ybT`{l>~tyQ6Hl_15Z3W#V9r(`L#w`>m4#q$mUH2mT#zH z-Ksc?yHnJsi`R%8yjDT(M6RQCd&s-tHfXoxCsS;rtC%TL}S2>D_jc#0}?|ar@;~= z5;AhZmJOaC2{ktnwe>wsseJZ%D=WrC-*&!rsGpBqc_WR=Mp;oVwsJwAaJ3o)$)v48J8b1K7eGc`%$bH9r{_w_k;#y^P-?NDyZX4pGzw#@y{4@xfoJDV_T_sdRD)v=BXy7O7C7LWK$!h>C!#@TQ}+kDYGh zqnEx9twX%fpSN7qg(A=aZOyB>wQW6ufP(LV5wtAr0v%E+1+(H-%$7BK>x{iZg1LFLSr!0#g?LkbH;M03KcGHDgy32FviSQ z4)_Jb7=&%3ECog&q$bRHoHG&Hc_9!o$}M-n5mDXN6JwDI6;tSf_c~1jb1u~LL&jrB zM`223!jccl!b-*n^Lfl%_@A6zH8M9qp-@R1t~RTixqPq@bHRr z4c~agY#izv`TB|3)#@h7?t^Vh6oyh@Ui(=JiK`S|;Ggrkjzrrp;OB3J3O^$i0e2qk z*|Uen#zq<%8ZPuuURQ)|;~nZ{dLV}@1?7@U&Gp@ppwj`m6#NuoPNRdUfc&c=<8h=T zAq)xgCC&w#>x}h zHaIruP*C!~b_}5xRqSwGg9!wonC*LtMlpcv7;GuX7Xb-z*Pv#_j?qx^1VS0&b|f~m z7L>~8zNC)jFg|&d2|v!F`Z_{=hWlMwP@3W36OU8y60~2vo~n$46*I`F055*Y5c-_A z7Eq2LKj^b#i;vx)SahvJ(lPA4yNKQ8(7jR-dVps3Ih!4d?T|gZi~b!)aXXjNwQez- zaL2zo20_x1cz%fgQ|M2vqiZ<#`UxpW*%Coi1tsrm97o|`$a$KWtFTP;`}w}=T5BNs za%5YA2w~Qk>@#q+Bi&hHu??t)CX*y7)bN=>NfUOg{G_19$I3X5!?x?O|r` z7}7aK-%E)~C$KUJq$Q)T-cq5e5?EC+gaqNn5rq+sePa`0x)wX>aMqM8B1_-YV^4DY zOLsAJ?~4S&K5Oz2mP0Udl;H=r5;{rzzC#S%wH4pkNZUrGlUV8a?4&7BaR(KTV^t-P zN?_HdDeicQ{(JXhH`SryE_z~w!5{7-OsBCkvwdg9nUzVRlFqynrf_Wh{yql3avy_V zxtozk4}fJOltRT_R5EtrxEPS`?EVr_-ar|T;q~n1=xsZ2*R3SpoCX9kW)VzJp#y^u z61ySJ@Es2^(Obr?Pa_=*T^yzV-yUIV*FpNey#=G3^A^>PYZ&j7{P;1O`<}DNdf>)j z;+W!|r!C5WZ9#5K^3nl`ktYR1%!U45iyu8=^XLwR@5BDR7ULy|S#a>6MPC*QW0LI$ zB%D%u%(b9rzr`clCDH*=7Cio}&0U*qe!SV{?x$=9rapz+;cRykC*baqfP706H zuD`Si^2fRN<>x6#ClZ2Zwox|z_#g+L>La;u0j{eMXbx^F^4#qOp7~*s$w`Cd2&|aE zjtOFEiQ|Y_1J0$T@c>6zeo$zY!%h%HM}V%PYZd=lhKE_iC zheJK1+_`^><|>DTEh*EM3Ip(SvN-*~3Ez z2DoC)a;jDIEi)RYVQ_GeR4PR>nLLrt?R;FSZ}~*NMpM?4h)gZ%wXMV#HIrFf&+ylN zOm-qk-Bk!!hJt!L(mC&^~h)U0m8_$NiOip44HdzzmA`8b)IZ=m$d!yNj? z4jMoHF62}%qd$CtnSB$ui#o6n&y*->&Y^I_+20}pL-$<~BqMiuw%RBX5`K=`v(87dc={=q{Uyy!muON+Lnb-D#VKwnp4t5vVf7l`(Y=6@@1NC1C`C9u#%RA` z$p@|^E^4@kCJ zBrKTd^*OjRWaazf)YeK|%h0>kBafu*5}RZ~Fw^I=>%J1by90upA?HC&gTP7E;>J8i z`X*^xvl7KmzGp&8VqTel+T2fldmT%X65oI=1%pFbetckp9n&F;Yhom9$;e2SA03#W zH>+7(>u_vnnmcxlv2DsHSM(_$X-`>bsc3UG-+N)0u7%Yc+11Ct9w_tPB~^Uqkscl| z+x*(942O?Sa@XET`pbr84GAVE^6VVWv$KDOT~i@TYh7MBI?nfBnP6{DGg>GUk30C; z0!Jq`hi3Bh77R;jT^wWBeQc744$d$d2o`3XdEB}NtT@Z66Fji%SsEIa(BO)B>kP-O zT9laQ3t@!{7cm!|1+J;Nlee$xV#CS>2(Q3s-cZ-v&L^&2O>^?3#cAixojmZs18mx~ zi5)w3uyyNJHg4R=#*G`9oSeLXXYl%AJP*~mh?ZYkOXiYQG+nz0<9W!Ki(FH!!vFvv z07*naRCE<5{B%;|P5Z=FuOwDI!?AzggpN6ke)AzFC*o9H)lM)|K*rO=yIZgutBEh` zB;HzsFlV~^3?PYhw-aB|gjH3IwB}h|CN!arlfHH-Q=6ZlU^=P&<>mNC4|4RMp2Bo3 zM&$=M^0lpK>C^uY-yt_1Lzxl!zxOn%xrJC~Jyvr)iRB$Q)p4){<=&U@O#(CA$G`(U zNR#8}mo{M*EhW(vC!8st?fx|eq$IXx3AI<;MBTOZ6#It=CI;#K^V`W&iz*Fr{JxzO z_w429cV8iX<#I|}o~D1}UJAPoFuCO*{{90De{CZ(J=2I}ibQ8MV|P8x%!r4yEZhZ6 zIL*~KovkF6w4jtmST(eK>{_apbkO{v%aEaWUhY#@3bt;usK3PLmQ^9EmV~s{X(oph zSx58Xt3vi4R0s>Cg4ij>4?7TSeNl1Q29Il3hOAf`Qk#rKp_;Y+IF7-Vr}UkBR4l`A zpTcSlc-Kn9{vL^nX%=^Bmb4mL8w{%#Y0@r8WvH*!v^E%;stxk&rvM=>%K0Jo&PdiT z=qB*Xyc$M_gk?X9&(h%5Dmt!mxb!_S2tslN!^_{wvVBWHW4B<}{RKwH0-pa?4lkp~ zSRq^P$TND}XaAEP*`biV_ZHc|)5l0bZKuV^t|I&Q1SlJvw4|m@lBiWQEV9VdN{j&= z285n}-mdNw<42Hi6qcC176P;%PznTBcULoUbd1~fWr+u6{`slnr0dcwjl*1|G=1DDDff?&TtX@Uz=r}XmcM`NV(e&;sk%Jk={@VlOjxWSr zzJU67-GDt9GJan_s;QO4l4f#F6;;=*LT5|(y=Cm~%W3|^jrjMDGqZgd6I({S#%1R5 z?btW2C$l_`3FaBIV^iF+jXr0JnIj=>AG;b++=p}dY8pSV4yVvTO;Iy?$M=bCxQ>Qv zFC$hO3LPj?YnKsg@0|@?QY2O`#BHs^Ub%$K<&F5$ zg-DPTX010qM3z&7ux!$4hr&z&U!P&Q5+FUnL>W434W*Kx>__g?qem1|Xs&HGJo%_% zxB%8EorQqV6BG;3TnB}cz|-KElm9>W?|k7-t`hY0N=!PSAuiamS8@HNA#nkI2%(0u z2bKX#!u}qM`#eLsMswYo5T#ESaY9OR(^Gg>74=DrAb7PD(P!K<3&N?8U3cW^@qAjZ zP0-aOcqOA){+<|1*DC53yUZLeGp;08zb#IpWYP0?S*Gn2*MCwnoiA|Ntx4*nq3l6T zw@vdxMM;7VAy#YAyhw3m1QuNCKtU7uz&uHw4T4lUf%ZxiO2PRpj51)wENn}&bGU#G zG{gBaI4RoFiYE_EQnj#}u9!tSZm}%mFl8LB?npCJ2*4N)_D}KHkt|-!p;5q=vSQ_; zIQ#bGxZ#o%`-jRrf5>BXdm}e5uc0cNENijY&{fNOm(`FvHo`L@b7tOk$^?-6XwboBN5hY9ji01*|nMEiY5k~QMx=;d{z;dHyfF=ykMIRw0#t$(fK>J06v`@sR2^@@9MwbJGG=!l| z`xib*_pR%g_}2aO-G3CBI$Ok=Fhtc=<1SuE+h^WO?b2#=IRIOu3nh$naGR>I(lLw) z0Yx|yAk$S4dg!u`@qKjBi^Qsu2v>nr$aEZOfi8t;Sw{Ol(zRxnHlBTdq-|3g>F0-E zdz$eQSo4@RLf6pf!lA>8SW=U4LHLrMqmr>H$#cDusTs-MqXJujl#q-Y5;21lGbEGn z@*zPwWr$mm)y*qMixyHbC>O!8A}iNi-&DdtS#YplGB~W*H4H;Tik=aPGn?=DREv}s z!sY9Ie)m^A-nSt*OT3*pUnMc-WPRN8#sHQe-JeSbGAOr8h#xJo53TB^J$2HjB&GbBYnlGsAOy;S=_j7ycsPKmZKn2yE>zmZ?>$b|OrS-y z=x=KKicyBR9^%OV7m~StJ&CvtVm3vG5TGnfInUVU=a5;2y}FrrOFUW)dM4Uncej(del>b( zny}!{nxp1o`ZQr7p!TL~nYnE<$G&om;*lAeKlFA~=$*K>09Y1!e1zdmFHqcbknqkY za6fQ4sfBe^UDn3XkME;z=n|@~T|>OaL7$;qlx3r{!~FH1{6G9r_gDFi>l&FUoDvsi zpcEKxy3ym#2W-B6ze9Bb7G_{vYd-yVRS@s?`9htSidIZJvaM& z{ZX55lqEGTtX&ndVU_0jtrmlOz)x$|w`pc36eA;&dmguOBrI?Ren#`VAM~hk1SwCk zeZS<2E`1{1#vHbS7x!3v*E84&!=+0@TzR@>&x8S0HH}p1-SkhFSW{zBJkwfx4vYqw z5VWjwXsdxz$)MHgWAF=_%p!;O8lSCS%@PwKb(hC!ZxRH@&B?YBgm2itvB;4fA>ok{ zwP``eQj4lChvdc_oBu7xf^{~X%jWr56_Qv|@$f(V3nQz4ncKd6D{^M$EGwoI09f@ zRV;Bd-`<-g3^n6ck`Hvc{CFrz!%`Jj_;H0F2rgey%lGz-@x>>K92yV!;D#3L{*g%R zGWS{;JR?}qmgcKFhxxKy=DO}`92E)Rxkuc#Br}sap6DxJEX{_dG#UF`sZ9iyE^%lq zOWlGsC=)_FM%aId&;R~+`1_6Pc<=I9CG@RAg?YH>irMFKGaSqM=+LJa7`mGphy{7} zO%zGF7Ws0>!sa?^+>;-|p68*ILaEnQ{PO3qn7vSfU}Bo`(NVM)K&G11@^&cCkbk)k z+1QL#WnouWp$n4~_Vh!lj?}6)gy%=%Bs)!hPamSDmc*hK#A!kI0thJX>m!&cW3_jX zT#`ZO%BRn)QV>pM(bB=La={pascA%24OUnnyS*1tUr%afJLL0}Ckt4$)rg>gUkI@? zDU@U39Uq|BJAvKZL9EWjn5YQR7bkwF*z(|wXspmRAw zUt-rJBbTQT7_Wq%^{{KJ5JbXI#2kX*;}i~zVlV0<(N={n2be+uzie=7qXjJ{pC!M4 z2pO|5WsTL{Myw_V!cg3I7(WZK6`eQ|qx zfaMy3oaDfOM8*sqb%wGJRjFuy+7nEbArmtUj!AOmNME-#YwA*vpAz&8N@6KZXOkhO z;Ao#@!h=N}nzRk2qF``bkS#@`zA0l+7E~o8OP5y^WXn)rV<;B{#Sk*dC=pB{FE~CS z@B)DwH*_><<||C*+Ago`dxXssF@E#v8&E-+GbNm`UA&{O@WQ~ZP-TDz6>7#-I|MG?ZN$HYz^C$nuwUlzj zv(8mw7|D7J<^z0fs87dOTH`P@RiHPg=}0*^j-WPfF)~%8ciN|+Cc%=7O)=28N<`ad z0-9^%G+Bn-Vo@XDlYO9(gTj zNGh@gA1y7?uEdsxzVRXh1xLu0^#Cy`x1&%7#S^Ng88sBrOe(FwRW zlb=TchXG+*2uDRTo(|DvAE7LSYe5i3)-gW-X+^F+qcO9A<57QwaH6)_n=kQ}K)N=l zCQ`Xx|5+kV>F~NYDt|M%WVL`Iyik zEg1<@%R&f)@k4~|ARHNu9Kl3M*H(miJ3FA$8;q40eWs_tyDhPKl^Z5Jrm_Z0ls-*;~aary054f~c($vyTv< zRFp%`5FNu0&S7W~3YQW;dhP)-?bq_Qjuy(n>E|qL7ytNvwtRIX4cBd;`-)Yhs%(Ue zgxIOqQQ1*qUVZwlL^%RsBA4mh0s>_Tw0|=HzjDN!rwf;cMV4z57&I37{vM7z zzJ=qtYHs@7kCJdbcHH?eFXd8v?ALF?4NCK_wlsii$rEnFAT)T|;3$bDAeddj?}rA< zk~k7VZSZDyW*}-SqrSf3gzM4^G=Tv}2|{gVEn<-i-46|xiiB<$8p@$TDS-mK&|s-3 zdGDMt*qI%p7if$SNFw*DtpsM)%{q4;erWLZ+2Tz|h4iMlecRKlT7Dy!)g>t#fteZR zTeojv)eSds&AK{@1)rMOqKbg4P~i+J0`3ju=Tg8`_&Gq}#2gfwV(HxC?H36tEp(74 zTQ*cB5*TyFL@oqqpX|T@g{+}^VF$7JnbylU2cZq!!&k$>FrK-LPj7HivFiA)XlNZERf6iIA=L9s;>Liqsa~{{8es^_-UTb?X2O72eLKk(3lsW;vsPH` z`xIt#*j@DE4WiYic8mr`oFd);4CUhN^L^Tdnv2M*P@w`;1YCs*6@E_8CVchz+Ze*~ zTS3@HE24w&{K{ut)EGnX6TA}wLDuVsc{2sRc^C|~jFEOaFX%WbRG6b8;4XGftfZWa zfqR2Kn8X{r{|mu|J|`g%LPYL)V~7&K@e?YUi_@(dzexAvH4=plm{*yK#cWb%^SWB| z=4z(Sd4YvEkJ~VNubHh5bD@#v$OHIB5t!0X-FNPB|LKM+5VOySK_f2wrLR!o1Q%r< zxYx?$U6k1}Q-v#nK ze-v@s!V(hZwu$rYd-jhpprnI3WgitPyj8d;pGF-9%#=@eZ}`4X_8cn^4;?zh#Kgp# zF|;=o8H-We{w#<8^XlJMRg$o07yJLq4=DLEO62MY^1BXD7%L+kg>YTMp4}Y! z$43}@_+buy>0xv%ao!WVRNzR+7X&9XBPTE02_ePVp-ak&E>X51@J{AzJ&m*aoq-|h zXEYRw(HJ}*vPFTOO#xW)qQ6V8R80os?4)0>i-+!G0TeedQ zq9na0fYMB~`qYk{JYgZu7It%DZ?27PLC?lKkA5@Hz9&6=DX=`v#($jRK(EGi1kx7d z2Yd#417s|+x+z;R-E)AKzxGX@yK4*Dc@6hWM2UE(NUU=bf#-*K9wkpW@gZeJuX^XDQxs2mOy2 z7JvD}#6k~mYzC1`q2dx<3XyReJ(DBE!b;hgz-Q|IXUNyAAo0ni2s@6>=O|717|#O_ zq$@FDln*VK%z+z6x$-Rcn~b>>pL?ET-`_>5GeyaBY5e%xNw>s7Ny6zFw2YzR5`;p8 z9{yAjRg*ywqN>x(Jhhn|3%KNO--nnQCz#4&GA*><+Js|8sU}2NWc1EQP}jbj_;oFq zxP=Kl$`g5vPU6o9unn9?*qD$&QF7l?789YNuF7!DWdThYc;QKh`}V_ceZ*ryHEesv zVP7HS<2MDA$^vPFHz|2&tHrc!XsR__yIAw&3yKXlc(mA(A3kEU_8K3**J6J$5(sUWDh0${i?}5i8J*#t!#So3KF#%2d}d88-+HWv;o3(2+hs}q;_ib~ zceU}kbs1&~9@D;|HesPdjTQn&7$!?0Dc3?_C=?3Z_2Mw^xOyR%)PUsma>8a(Hmvp`MY9JLVyn(1c`@$Fg^36V| znayPsi^t#WLlcCCMV(!|V`VjWKJqM$T}!EpDb_Ao#5HIDnxSXl`(>tcqok6lpLyIu2*NO=R4TnrwO9ov@bRhy zsY^OYt>~s^-2$XH!^m?zH2n6hG+tN5vA??;cf(~AA9$2w8+YRE*u&`aqol4~MzDW3 z1K)a@?9=-x#~Mf^Cphwz&7?N0#Sv2+{nA6IB}*|!_cQR_C(xNjGE15f$}suJ(~La0 zo$06dqLWP|n>>zv`ElGemmmgv=)3a}sT&rOd+bSu@7+fJ@F;RY3$e6wc05ujh_7Bs z!!KQnx92Iw4+-k7?80~_t*kO;QQXnP&`X0PmNrv5dYIgRL-oxIn7(@>W1IFewWSBS zcrljl63$SEK1wB-!@6QI^@v*dYJO@BaHoc z4|I2uNaX1M_l;zq-_OLJA(Csm@pkNH?4E6S6J<p{(K3rJ5iV2nGJMWcvYy1Z0(AVT<9CrJ7v71+5{Ux*;GT1e>>5tiIOg zleYx4*G4s0&rUw35T$V*I&gp+*W5(2bEepseO_#f;_)Mljc69EUx+jT-grpQ;gB0X zm!UZo^5i#)bYJJNJ?B42Az1*d~9tK}5v*$67$q7SoC`893wXG6i6y@P#3?DDC;L?>y{gczj z*p_17;Rz<3IDh?)1sp#x%ss;)S7kK+W%F?kPL_CL{{(s4WlfFbzHNg%b|lA(Lq*ni zqxA@VX5jGtwvZggnV_cD+D)60cL+lvN@l=0_OFPpX zIyl5LgK$-Qj2~|8V?Y+`YgY&0V~16l+D9? zUZk~kIkmQhqw0S03sa%Oo4`fqLQSVL)Wt2zQ&UW7o3yK_t*$0xO9m&VDcEtU6ikj! z(AU?;z`y|GK?@z`(!&o_GEQwcpYhjYy=3w`8zWRk+oOD85Px^mGnya0b=h zfLr5GJh%_iopgNR7;)x3G9fxhP<_K<#_qYFu&#sZ)iq4r z|2Sg@13Lfqv(#VZGI+-pLeC@n$}rWR`Tz~<(u_W|i|P-(gW9*RCGqx~Y5&vrky)5T z7d(u1Y5eSmNVRLmo*E+bMi_o{7pV`to7VSVijtZ$Q2wIo1@Na(uHyq&jz5B76Yp|-5$aoy5A%i4DHn!398`t3% z#|TRraB29^FOj)=A(>x!7Yjc3UJ}(7#)=VdtHDagi8UoSQ7L>bNPZrKgrFeVKLA&( z))0V<84_{LaGyfggnam_fI~+VWdoLq5X(&x828ys@MMzKvH)e3%D3R}+(bckM zw5w~FIkWXS^jGKQuLDDkxJy+!A9hz%@Kh32# zTD(UJnK4dXeVtcK27m!Mc?_n5~!R=4rnD>CFu9xv`4<;7{qe|%dzjfE`V+?8Wh zt-~wFCJ95sbH`?=&csM0Tz+d^1F3??xDP2|`2O<)1ohSY*S9U8zA(dG`||`|z-TtW zmM}V9B4-4HgOl8U+~dQSw(^edB-$7hn(YV2`O3Bl8ft3fQ~&@V07*naRN68$#Y57` zB$vcPzPxRM^-CK_`vt!F^ayR8jr`YJ+88@J#-oEJrl$%_sRVy?V>9946bDKcpT4w# ztLtKXa$OsrU0X-eGL-y~OkIZmbaeyS!AS;khMr^NJU<1Wx~i2MTH^%gFs+4wN20o& z_N3zI_%!xB?)C~5E)*B#(`bql{PmsBbH!y>uxPfLePR44UwC*o@4fyCsst=uv4Wd# zzM1Q;yNpq4fePb;jhHY^k1PnD4|2dNa&b&<9Jlc3|%??vx;ik`ptCi#I9 z(w^s$H3nhXIL$3oEv+H@$|1rtBUX$-&y`&4vl}fIPzHm>1Ui~5wT>p#&=6aK^fzwj@E7kV zD1tbv8n-|=P=4tp2LJIMf`%1zerz2SJYp+4u^d7Ax~pitshMKW42fk65Jr;jUO@Ti z6z#($r}o;)<(3oxUDwn7-YI^96!X5Nfur1kZzT9UhUG>r9c~u zj;cMV*&3}z6N%F~W&5fNiUpRfuq=7bMFp;cy@S(y<=H{PhH5^$u9iYMWNBT3j<}+^ zqn6)VQ_ZolJi~dPZ*CuE&~nMdC9Aq>s1AId?42SnU9Rg$P!2TOL=_jT*~%h=1;eW5 z1fj54)8sNXQ9>vYRcla!gslkukY$S-`RKwJ|MKWzzWnkOhG=m`+)=D*t)f&Yv1g)) z7LxVdwQT69VnLO~?ui@*#pU%ejN`DR%A!B(;W#drw#Be4LB@{iRR;HemiBK(=*L9%}-9&?Y%e_URn;hkE~+M zmv1L)d=}Dj@Dd5!n1w{*4aE@|*#u`45L!H+qDOCM>?5B+$0U9BbnK%$X+LR^Gk;ui z3M}D1$ps<0~CcAmri<#*wZ>TK1XgwRHR$I*FP_oIWerw#svG1`^380hWbyB~ITE z#?)C%`0o$kb)Kf{KudDEu@PmFcu@!c-1(Gz>t0Ilo`az!ryX+!lRX}#Y2vy8(k5p! zbfgNqx1ZjsHqz#oBHTFc;Fxf^E_lGtCWzxCRi>Ev}-gB!HjVp zrDI)+5$vtj@cSi>om@tUWB{13prqJi&P10nxg)2_8sGr1v>LT zA7SZz5ppvGt^;;lVw=fe%#2Ag#~HY-HeFqkmIEewu8*uVL1IW^4oR$dvg}B(W62(= z=1{U@gapEwf}UoFXwR9cy3P|b=!Or`-^_RJ{Tu#N*+C?HZj%lHL@kd=MVWkcX(v}{TD9#F!mF8#lltR`lDdpbrVdB03OGl_K z7sm%&KvI|&;hJ=PWmuG3)Hc#6($XoZBHi5~Eg&G>Al=<94bm~vf=EguA>G1&bjQ%0 zQtzJgUhl8(`pzFYFtg`*)?Vvg_r2Dd{Y;>5i3N{}XVrg`XJd>-BO<_Yq%g@8_ZF-9 z&Mo6`gwq#cWFa0Y^_%7sV}N3h9rjrAb+Aa4zVdmueD+SV1;2qaKL*CU?mmhc&6LY$Z zT#!;iNDC&o-8CB26Oxsbj}Ou+*7*ucO7JmJMgO#k9NMjP(5|{O_VEgwQB8DGa$&?% zgsh$=#AOYCb-h}D^M*Ews@FyDr;$Kn68bM24}8Dc&r-v(juI?wKe<{fK1gkOo)V@} zlV>eW*W>!t;*U?qleo$0a-{`UrY*rdaQ0FO7JS|&uDQCBlz1%aCgi9Tnvn0*f_qH5%-{ko+5&; z>n&2!o`u_>^ZjsrD8-vL6dMQJ5QxdU4`W^po)$g_+pF?2Im zoN0*ize1DHy%jG~YkZl+8IQiTxPtwk}L zwMTNUd(&32(T<6V*?+oGjYEGBn+~BD-Y$)YtC}DOU$6hTJM&mJI=ScNV3F39@_(Qo8Q~jl(o8E3K5ZYc_8@k_7(j}T<(Pge)l>LvY+BGhS3})C1Rg*qzPLsQ!oo% z{j&m>E;`hR8EwJ-yb5Hm9r2nFRFd$*n&qvyof|VWE>v&RyHzt*B=lxfr3vV7Juo0O z@Xw&0`?;EG!U${-+W(Y9!vm|Taz2ksuzON%hd?f?PPS!s(Yof_ONdJR(}@X@j-&XC zs#^Nd{8uQx0?R5siX8RSF^0*Fsj_;!jdt%*9VRbNEnKom@LigmG}7aqBoFVinbHa@ zs--2}p*P`Dk@ye%of9dG5MtO0m8WB_sqOj_#w}n3XdpL^c!)u%kCh9t?0NPnd)}7BugHqwCe>v85rw_-s7ZP&anZ)n`6+wL zUTJ(xmE(s?qmqx*fjBJo3-T8i)4pwHTLaEX>f6Y7a=iRqO$n5_o4KQUA7#VTM($o_Zf<1mIhVQ%xuzO3tzTW=n{RJ?G+T4^OK~ z!iUIBBz#dDq@~(lE9+Szh1%W}%jE#yx+de@`9%_M>v#Y7Qq^ASKp#ohcI9n|0rR1G?-&Xn8@#=;StL7v-$f zjt7Y(qO{Zr$~6UOx!rY7o?}8fgl+utf)4Rl80IhJu|spoSx4)Vb%bAuZ=>Gd8kjqn zi%$FBJo$Y{?bF}@yCEWLg6(;5+GyaMQT$@3GukFaO$xnrPk7BGu1eHB_R#=c{148I z{b^qv<7UR*OLS7w;sfX6Wadl;^le1gFx^Ea!?6wGP|Ef5AaftbEl$~Y!Ob$i-JNg; zpii#3f;Q>Sbh;$Nz)w5x?wUK?h4rvq^;e+C705^#`)|Kv;KfCZ{lUrYcBOv;3E%VP zqeS*4m0%d!l0POJfQ_HhiA#35j|n|mjwY($r;j!@anrbRSteL6El73#sXkedb~Q(J9GsG}B6a_nh7{qG@yqii&Av;G14Jme3Ts|@pFW8^(8QCHs19^vS$h9C;ZH zhc|QbXGtm3Q51@AT2J(Ow-1Fz68+uw5sjjWT zx3*j;^oY=XR4rZTx-Czx^<+U)5m5q)5rK*4gny-vmkr^1kB-^;HNVkfx!5+OK_-nO4pb$&w_r`UlNjd~ z# zK9g2@yh2Y$-(0DB$@bx4+d_{RRA@~&Lt|R{ID-6z=PU4%LCxK=XDfw2`FxvGMGr)k zpsLPHW4XD?e<_4|=4jnqvtY%2XlQ7nlt?#EqYR0Kt|D|ac*3KQMHFEu(%>r8DqOYn z5vG^^D!Qp4LKep!^}u%=F|d`O=+~Hdi%NI5&BEQw)p5qe#J!u9c9(iNj%sLE3kyBZ zRFn#a{H|Vwfh7o}Z#J6m)CTB3Xb8n=_8_RaQ_hOnOqz-tu<)91;yGOKH5Z_u@p)gf zDZPDr?JEMlm-wx;l!lfTDX_@}mXwp@r!xqV+g8lbRats7t?I?``v+8HJ5&tZ-sgP1 zor-1z`=wxN{B)rYpfuTui1^t5q;?SgIIv5O=3=a5p3@Wbq zmmn0h?!iR0_vcSyEPJg|U6?w!&M)7GHAy-&sYE*}8GPI9wOY-4QDLr1}Ef=H{-;6pCXkx2)G%>EePb)GfQ> zha{E0#LTXxhYM8&34N0K@9p!%k{&mG@;83>qmW3kC|oGP0o=vmY?Nk@S&I zCN2K-Sp1(a<$PxeY{~Z`O_g&T^Ft%n%A`*HlYGYY8g6B0O|>TrJq#!kR@9;&%M{Tm z#-Qlt*a;~PM)a;Y19ne;VzU$NW~`NZ-NUzg^K$`WW3(JE^2-HDLzC?S>F zt{P-?9P~oh9o{_=DF+P<3C2aO&kU}Gq|s9Uc^dKSz?R5R)Zc9EIebKB9oTs^OVt!n z-Ojh7-Mw@Y#Bz|Q3;!+u4lI9VY-NSsz8pUWyIpys5QHNj5s6#(ZB3E<(qB~Y_RNEY zG1PxaAL8I+X?LJM4c}dY&2=U2pa3f6Y(8-#Pc4 zNy>VLOyS#n_f6>x{xQ-`m=(>K3t|Cedsov?HY;^@d&~x9s#t8X%)9n6dzsV`qmke2 zw0}=-e5qdF7Gt0>ruNi6S~BNgr1gIje^`qyDV^m=F|2s5mQF86HZ?@lKGWMvrD7W3 zkev{tDpZ>jLHTWS<4y8)50oV4b*w3}?cpPra?0tvv{a~8I6kP?wx9dvpGW-hbu#xx7)o8=(+oeCH--WEX&0gyodc8<5GQw1 zrFRwFdDR@Nst+yxDRtf7PVt=O;WeGID+I55Ci}b8t{pSN9^&>ul>+ zWd_N@16!X;kJt4o>Uq^jO_5rzXu3iVa&*0^b?co;;BU2@FKKjEn2n)`2|9m&$MVL) zKn0ORbgHm{zx!`mG;T#-{-z}IJyr>p#d_s4P7j?oD7aBRqjJ=E?PKd3K|%)QgT-bN zf(1|Ky&RQZEZ<&{_&StqWctKae-je_J^4oyv*f?f`~pG~se@t-0$J*89B?T`*A=Q; z#o@FZvn*Tc7U9hp$>euo;Ite?Ug-!z`ts$As;cU7=OwN9w2&`qV})G38&n)U3WhxM z?>E!=Y)QI-MfEu4;l|gX$#F!y=TR@FclIs{*4GmCrYSJb`s{j`y-lc!NO**ij=n9u z81R$5y>G+~+QyieAhp;E7D$bw7^_slIvINWEB2C<;Xv|yNcF$)I&I!9Q$6tf0uioF z?949(>YE?)!ljV0v%2@AfBhbpu1e0xK3G@OSkF_l?%$oI!faAqo{?S_u(_&*dnQvms)&fh{un8B4o{O{E-OShn+;2 z!1oE$@V_{HxwCw8+0gD&>hapV=E{_fpn0;TxPFVcoo}+IaDx0&lNY!D)oPG5XS!~Z ziVpI`%diEGS^|Ba76W#|=tPi2w~DC(;9=udn6nNI4lndjhhr^^yf(TU08?pM`k$p4y#5-n)W zuhA{mOAQ@bn;Ff})|2xU5r-y{*B=cS_1W~q=uZxRwrLTQ2v9&3t{5qw{UtXq`=?(T zUrV37@;^u6V(0r4Fo2eHEJQSxY-SGO{C+3RDF2r&vp)7srvowZT#q%fg+K_GH1B#Q zYKWvj#w;P901Mu8N1@|ey11es7Isq+p%EJ1c^VNjYPTp$>u!7jiDcwpmhjb}l2w`$ z5+fZ_iEJMXZhezpOk0(t6w_4(OmfznCWa0-arBV=4k=gTZyCh@xx-WEsk$ICtSLk) z3)Lm;P9C?=V>y+y#`;`a7=u)eFxd)U@T#?9h%s4UULI#!5B|1DJeOfj1@sJg0y-M= zjM0%isyHWrnRiE=dIJYxzp*o8@num*^6@zA^8J4w;M}x}*r=c^C-iEpTfs7z!Rzl# zE3GU7$xQ_E)xHji9I8=i(MF3URuKV=s!%Hqa}k-;gfI9GS>A#`RHv^HZm=#51P@$! zj7AaP@J?CCGtCwGXDR|jM!H>eaWSg{Dh4mgDsFJMzfmg#B)Oq`518=A93E?`g1b2G zDeb6E5k`pk_aK@U3MIYBA%=vBg5~lig!zA-iJoRCgC~0=ayOkm*l*x0tS<*p*r;b} zIals=WfthZ0_lIl`dMI!dZFF~2u0-?R88=7t3O8V>gN=?J6sPm^+0s0&@ZWx-jL4t8?wae2@1 zkO)%*(Pl0`iMC*287C@Q+#n6C43;noa>-#dvy$xJ_#twMH>;dZgu4sqiCgfI+=X$V z2tL*(2HeOqJ}5p{@;E^~yBP@>Ue#70o=1UT{cvMjVQ%B?Pumi3o7 z!yM@UkR<|5_qZUhx0d~d!wkl{RB^N6Hpg(E(#)%``&+$!j!;2nIh6RZ&3_LM>tMOd zVLo`_V{ZJbSeMs=A)VAgVk^!BSLC^G{bK*?Q)K!EmA39y{FJKCx6(fWP zLL<<2_9IT4aG%~G?htin;%R)y*oc3|S)uJ{1w&wM`=bP*Fxn*+eeps(xR^RXIaJ^!YYV_I$RV?+;)1Sw0tzy19Bcgzqk z&hPc^CGqBU(po|p^jj29mRt7=m)#M*;_n4CJ683P8#iotSZ|Ri`EUFuf>k}3-bpr? zoi4C-rVs3q`FO2X$&1gZxaW#X>jY+xQwX_6jIKU%W6d{}r^&%{D@!v-OhaQ-UH3f# zY~9QE0jy9wq@B4?iP;#|eoJRHLIg(T?61FmQ9#CI_4O%YV`I%MED+iJ{+&-Qr)6e1 zzRF4)GaNz7a6I`ffPuZWklvH*@nRyaYA4|QU9EQ|8anK z20y<91dTpJd`|bREq?PyW>TbJr%mzl^uFw@&*{(TOjt4#vqLn!gRLfIKd9!nP`-rr z{V-%&;Y4A%T5`(9SK^-(neT`T!Wk+dyEFFVUA|K$;okc=Grz+)%`xjlJviO=zW@8< z`0y)MxyHUQW~%TEaJKv>^Pc6{lCPy{k2jMzkH@0Dr~ed`TC2K@Pd2DKWpYlLt&SWW z@so-L@cS6k3qxSrm{M*+uS9Lt1^!DkCV-4*+ixRei+IPdB+45jKP?{3FDj1CiNHD? zrVQy5X-JQWiP<=9R(5b;<>%+$*xEu|0R&(7<_S*e&91nZb_8$k-WF9HLw^SO*553S z0cLb|YgNWX+L>zy3NANYjURg!yBE^FUYe+ji#+uuPD6`ctyApXKd`qrd9?~!mU|M9 z4U*N-DI%L%n~LHId6mt)QC%3W`7@8TJtZksDwItpF8#yHd~{m+wkjXY$<_Uw+Aeu7 z$_=0O?b0pZja&WmXgEGwWQbEJQ_8}jb`6?+VZK+-7jQCy!AwcNz3+N#`A^5qGWajA ziSI-8%k73J2BGdEk~AH-n}`qsiH7yH_JrVZY)?tZee8#swU|BbcbDiuc`1aO^%;Y@P@aV?Mt4`*~~pct%d&+)!01mAIuX4Dz9#sAs28 zE@o&KY})Z{e4cn(_t)+kVON#dGq`5b^8@!)@uT`PqyNooNb{l0xfHAZ33>1+PM-i8 z$+o=&L7cI&zhk#Rs=2YwU-Q=|5JqI})ChE|4WeseV%HP-H2f0NbknEAoP(xS%M2{f z3H9+;WdlAH1(K7iaQJ-`AlX4}dVl)cWsy%|f|!>@Of}@{b95nXHDa*t;Sj8sU8MP+ zuwoxAu7|w#z^7rWNd^}^fm)7R&)rfMhHWQB!vtN?w4V5f>J*s4_E&R#>_urEWT@}; zZ?Ro#&;vPoE-TYF?eL%^4KOV6#3p2A3I_>!)Z znXdG7>wPE~+q9gH5@*LI8T+Eyo!Kh9NemsS!Nbg=()=Q!j84K)QVF>Smisf*Bs9;* zl2h2BctR}(Mh#?NcP)RKsdZ1YA>Xn9;jvxb66jB9FZbI{2KR1uB+pWT7=#t87Vta&aW!JEGLXnIz z2mY;i{_Y~0Ku1Hl%y{y7ogF*x8CY5(DBUF=VZTBXt9L}ocoJpR5ZVyR3WA5s28$b%Iz0JKPHcVcu34kM_6M|yVjvX?+_lV zu}sbl&mHf&;QaudB*?3@4J@yc6k08=7i?XYT2KN{J&n)ZW9K`*ybMDST%CaMeYYj$ zEA9*Auj!ab#>8r-{TpWHpm#R>FC2R~2z^SQr(sb;vR-B7otq1sVnOtFDFByy<)n}H zO20KeJqX{*bE5ZxxzO{Kg!F7Td)Ez35HimISLpN}>1Il;AC`Qjo^_e2;;=~~=i z%}DFNJoqFfs3j7!OT}Gg6=mL_<7!+`5>78aJ8!C&lEYJg+Lt#mPglUd@Hk?79r#~C zLb~bqHv~Af1ht8$1&DnA?+ZT>Ctgt(b)N|djVUNaT&R`wz^U&S4?N4_Ok9bt)})!m zMI!27JODF=tTwaM+pRZuK_yGk42T-ADXAQ~aqBC5aqnI;y?RaMle$V-^8THxe!w)EG*n~ZI~-NDyX=;itgmy{ zn=3v&D=GYja7Yo3)F_(fM@CNG%{8K+{Tgnt!4LU8wYXPZTalJP)`^T z`qWiJ(WAekV(8)^n`Ra#rlb^6zJ$LeII_pY)!jV_0s#es(KDfoQ8gJ*-6lDjg1R;` z;)vPXAJV@``;T73u5O=1$`k;)l6$4^dg=2H#pUy-;R_KAnkqZpI#IaOvwSvUi(KbR zYat$dA%Wru%k#d0?>W_%FG~hwo*y;=6&dfCm?EA0M42XZoQuRz@6jJ+KWB)z?TKK^lKQRBuqVciBBY_=#Lq zKJvyt?pjW|x*wm}Wj*YBrP{-_E^MRIqQajvlL|A60GVEv75A!#fM9z6cBHP+T zE)V8C#;@>WWo||s{3YGoxKBLq@{f)rY#bb5KN^;rspsb!9H{Q^?~i=E#?Guheaf${ zJ_+7`yx(_NZu2`59MaI#l(w@wxczwfCr?u7YQbfu{$A~~=d4v`@0VBV>715WN=iz1 z2g?s{SzC{TN$bR#n840G@qB+OYVd#`d+=jBGko1k3Q?Sakg&F7i(uLRvVq)6=#ePh zIf57R zh1Qai2z*9my<=xCF0NKs^$|D#Z*+9@S&isW4WI8dTS6;~&()#d@*V>o29LwiUEApF z>@5jHk=f(JJ^VNv$isOF6_e*3_1Xy^IBFL;Y1*zYj)KTs)Y9j$3C6_CjJ%RznfqjA zd%QqPQB%Xl=FL2?&xww%E?J3kj<@07^yK89zkg9X;wS{S4-Wj6Z|&{vw^FnWRz2Ep zDcT?Jk61tACx9#bGc^@fY`s5Iz3zuLCmTn;x-pP^)TAdXi$=z4Z?@FxwcY%n7VR@T zoGVQBie5$JhAv+ClDI?#vUT)uc;vYnM#OT9ZLpavjp9fors?xWH;#${C+@2aX>+mD z$o12QJxH#}K~TeWXSB-MY{2~yxwSo?r9KUEo+|pZn@*cA|9WpMQW9%uYAPXK6f(F8 z%d@Q!Oiawezcw~D>rJrSg5qLS8svpva#7YI)Z`G`PTCZh0>by z%ggs#S`p?twDlCRGNq-ZpvKFjS-iSVOir%&)>4NMtTt1xM2E)@YvtkQ9-o{0{3Yr9 z+_mt_$CM4D%4aoNQFgs885~jH|HZ`xZLsSrdOtruS6A1;nOYN}B1@$uR9<>umw;j`#-dOywl_U+q?roCp34LlPnCjVRxJBREh3grPb<3;zR^Etf?xX=pd;cYv4 zo|%<(bKCytW8ixtJ*6hzM6E&A_{^wpXZ`%SbQE&%OogQU2c9>UtQ%A75g6BZR{r9; zhOBOj6pB=u?xX*@k_p<6e?Mc^t_sY}rNkoV3tT?3+?gnv1i=V}c5zSZb)D}(gEm+% z!SyY9@4ej`%^6Chl|8=k%@%O`oMqn}rQ)}%ZaY&&^I}6U;Qpf2?TP=x83g}nSY+S2 zc4|*SyvX2cSHx_+9hrIw_~v`Qbh&;@s;AH>829E~bj5es8eT0*Gsw@&dje3>*0$SC z|KUvZF?s5{R&ruuCu_is!eQe&mLhZmJK!3r(E!cuhu%ANbeiW-3pKoH&W-?_DY z+l|HR*RMSZP%b!BZDlzyym|A+O&JP>@`D%ET8;_vc`A$Kh^!s;OQBeqhFA#NJ+j$Y_s3CW|TJ0ux z*C!fU;H<1QsSg!;^1#R-@XycB9bq{hc=3H+V7&|>FAk8`*1_H@=}&8Z{{SdX4^%}o z=joScPoKVrb=EMKm6h?i?Gk8eYHn<9R@*NMgyN(Z4+vi^Nb2aEwtTIuj4vyD9o$I` ze8bepC@{^?pQMWo1g-Cmg5es-IkvMkDAR5vy!PY`3(g9kh%vg@tZZxwnwm0zZ^oh1 z`FML@52*P6E|gFHR#s**oX(zJEDz{bywE8+@Z%DQKj}~nF)^{x&FQ9Mu22TtkrXqz zqMDlp2w4q=yQA>I{hI>h)2X!>A0O`=Vr^GsCZrV<%>R2RPb~SZvXV7rWT3y_2=EbL zXc-w)ur1F7Jr3!B#rmiMveBq~6SNHdQbN$M;Q*4!ZR2^p8X>Qs&{c1TiiV~>AJ=07 z01Je=cD*f$&EInHlpuTK*&1`-Ll=nYKoUKZ*+--7}$ zV9TD*FVJZ~x-h=jor1p!5IQwY%^t9aO<-W3>GkV1Kt%*$A6qJh(%DVZ*^CiE8iSu| z4E!s9oXPOtL>io9Miag@0S;LHvF`PYR`FBwc55gD$Vu;6`;7q(PE5R~^xD7$JO{M$ zeb>pBzqYmI#>HWQOY6Vz z-?RuS|MZK!X}H6JHOI;{zso5o6#V!R`%1kS0F(1!`{RSgF>00j!N+2ytX{3Q(-!~| z2Ef-AqKd7BPP*}hZZ?u_=j&s^XX{OG#t9y-wA~&S)YqrN-2p_FnvPBs%!@CsOW$L$ z$MEsO(B=Br7(g+w87h2yq0Fhz=?_ohvj=+@i*=RY??h8C;8!^#cYMe1ygjcML|C|@~jIkEsr z37i@R5B6jg5qT{wBCyrqMY-Uzs=Y5h)q_}k>4L7Rqcd>0*fP##*L}~C4Vdu5?ag_K zsFJ!mKAhP0^z^`^TG;0@AuTPVffBrc-x(Og{BiJ7j zP7B3d+12T`OK!l2tgNk9f&73&I2xs=kyMx8eEq9epreOI2{+U_oPUFa(R#C$wcyl8 zp_n6(LS*0>RHTsRydKL7$7=(>3r#|1?GE4yjo>3^TD>?=Jjtisnr;tUtO0`ue1E|U zmILawr)$xyxo6q>%FPv~I)tF$m&p(%1yrf}tQ?f9a>m_%urC6%fCA;E3&haFhmk$; zpib9|xd+=43UO300YxTe6O+{zG)J*rq6=_>KMJ_~>rQNcF_2H=*0ay5vWlauGfOez z`eI0s=t8L5msNmCfdI2zY)%2}C6!qxX|4_C1!7iJLjzgNzh&FS$-F&GbB%wT*L?m4Bs5SZbZ;7_6Uq`W4 zePGLa)K!Fgz-?v-xV;9q-o^Iq+cyMikf>9HiMc-!AfTY2&>9dnSDb-BciH|!^KfDK zm;w}}vx|#*Us6T}JSl+K1VBg{2;2!^Q3j74DG*NurKM5x_ARl~h5-~b@Cc-hGi`h~ zcGjwK$x86lm>3msbsz|8K*)lJ+-WyDu14+^?+E~@y8Lk2&{#2)M6UoahF&2Rj!FL4 zT~svzkN$;UV0PEp5Xcyun!!Y_`2SYu3%>LO_Z&kZNEn!ugjZ8jlkgr?b%3Vmc3YhE zdh_a4UP%dB7h5`)_4`kLV`qTcmHPSQrp;{~YeyzCD475-y4zqBHSP+3PCKV(ZfRLE z>IUqa3tPRqRll;-)t!&LeK+j}a3|FqH@+|NeKBG}?NJ7R7+0x3%OHRrai27m)#%mSRiD#uJ{ zx;32fv#zda)Y9KyBu~{!N@wiw3l|$(!ao|ePm|wV<}P!7*(xh5@23A=WdmMues$#n zND}<`)?k!p{lmlL)ei>^%kaDa=QgtOluCYwe9F7p5uB0=2Ig3!dw-}e$m|s?a@dJ+hKq@$H z^y3Z=4XIC+B5+y^uf*~$!SlpO7H@J+&dBeuXZ-$me2gl&W*~d-&o{&a6-3@=e0zC7 zF6{kfaPVDCZ7m51l)b+{z@av|KvQZU%s`=VbqI2aIgmZHh>c)^rtk|;T`q9$7bxIs z3!r1{j9A#4D~rbtlvWbKr#XEaXE{u(Mj!DS)m4Lsid$l6qHA*fsMAn z`fDE<@i2f$1A~MX;4(`0wE@tc!Nx2P7n=4LThhd+#XxmwY6_U)Rid2Z`L-I6v3%g( z0eezba(-TT2w7bxA8nH=P;+*61}>*aan|N{3(~N1*+SPISp3dkR9IM;i*6!R-LW`rg1m83^Z`M}X^9ez%vCewwPP zVjvZRw@>w2UlTJAtpO@YJJ+F<&KC5Xj0Y%r70_sei!s2y0FAD-o96*lLV)^tfJ04T zIX2!ETbt+*`nN+sQh`hL3jLO2p?D*<^rxiCxk3XgD=U#TfUW_7)9p5`-v?YGL(qf8 zv^T~WP;S6C;eZ5WsjSd^o+{JS2M0iX;nfQuz^cJ#6)R?NnCR$F^8@(?V2{?H4%h?4 zCx*t@8WcbJ#L`4I-g*`4$Aot7}#a^Q>2H-|P zji`*M9OhMOqz>hRkF5cQOc`Gi+_Y*z2$a|3{S|a-iaY;@t`H?`GtICVASxj8835#f z#$jS%u>e{ZaG%dM6-}t~_3F2zfX?qtSC#-j{Gr>xVLnKJ*(IkR4}9k7vu8~px5J4v zkThHCYm=qwW|o%8si`u+oT3jW@i%<|cd~#hKOSR0CX{ijeTjefINH#Dzo_sFYDVjg z-nLG(*VpMNvzKFfh1sBwE0KM6yp!3xv8Famr8OE9{?T^Ybm*iju;b@j5pJi~k3avh zMz#)liiI1qx$kSc>X($4$AF;Zv774#DH%>MKp&J`)IS^S%s=yrJpl=HxTSy&oSmHo zp+XxIN7kP{z4LogsoM|-+}yt9pk5ejm~;W-08Ion zV>#{SxGGu>1*kJl;B^scX=&o{&Y#v$88bn|AhELQ+hZ@PLtzrEhzt(%r#m}4pi~hA zo_7l1N_GL1zS+T|6B83NKuUuswRpI@0rgk7Ho^%8su33}f?X*Y7#%oma4~&tlf$nI z!WQ>~m*iM3fQaWnby>lGDfAS=-mbgSqV@}X#VU}|Jjn=n3V|a7C`XpQo?JEU2f_qy z`#2PkE?)v};N}mVm;ex921NYNh6WcPUE}yf!4~zN3B^$g55g-ifUP^}r`_H80^ItJrQoV?(VYxf3-Hn6;1f{Zz=@K2Ki$^anhomx zp!z2bj0selOPN4>V~4CNuXm<3iZ#`*}x41XW%ZdQNJ+` zfw&Os%+Rh?T+x_N9MI3fK?I|>I1)-lMbxNh|5$H+BIUx?ypqcIv#$)U@kkCcGUVvs zJc=^4i%SU*3j`Wu9UYyc=A4`<#!`C+dd}>9k{$Vhd<^_o!=6`eEZp<;H$ANWos!tX zuF9G*`Mw10*FCI_o2j~^7%xSX;lNDh(AsJEuxV&;2zq^Nxv&$^nMekwaohj8_y89u z`RW5c@^pBBVI2sK(YdpG*YxlUCg&`gbc_QF2 zI^hP&MHYHRBEK5^$vi;ehF6mMVko!So$Ec><9Mks)Vesi5XuFWzm*jjnS7`3@o`F7 zy~JMsCVeJ#TP{`lT|QPWbyNsgwJ8whf4NPyQSsz60|xp_jN9AHL<@w&+CB%5Y6#5Z zZ9mhbl1I56W8a+n(%xbty%Lnqb^A|hu8sTx1X%n!sLkjq3xp!P@lxp_d6(%8>O8Y; zel5QIgjD>cK`r*RpH{#(Xd`12NcpNMIUg1{MUlh%c%{?l*BkIx{}DbHnx{^TbR9pE?dDIP5`c9j z7SuT+#nHh}CeeuqjNljO)je{7_~7NCGbVH$81UEFvg56U;!-t7|KBVCcoj`OF-cf6 z&`QgD`qwEj`9ZOY2(Q3v@0ybl8n7sp)+Z+UEE#0~5Tx9iV;Oe+v?~3!Rvm{{ZEHs8 z0M=Za&PHw&+&J+hj%GO>e)J6rnw9?})Zv%3!i?WOJ*F_`7rVUV;;4T%$?uSK%_ITI zXYv%H#Oz8?g@1_cOAJR3Fu!DxwjLuzgq{|zc9gc;u($R`-g~R~=0MovAr)PJdeNwe zX|PyXwY=>0tZnM}xZ366;u{)e_?=1Nt^5^N*Jz#d`)F1cUSZu}Aa%c){z3@~hVj-x zz4v#$U9SH>>&yLF5H*J!WPU}_#n#`-K9`mGUbQTndwQmi`EGHh7f0nYot6>9??*C8 z?OQvI?L0%;5Kung$>?Sr0|2M{0sH_z!C`H?ehGw+Np++#@rHBL^QrWmW@Qlw41Ctw zp5Y^yFFA>I@C{jAHEu{f@~1?93BOB}D{Hrjzxhm0GbAX7>R(;l3=o_WC?+S29bK}| zZ+oA~B>Gm%Wrzlv&oez`+S~Uju_nFo&4t(e^_rZ+K$XB|ZxjY{ic`qcGuBqeAEln| zsX2lkrzw@bVPe!(#UBpc=XDGWw#FXs#!Ab|)^uA`IF=%6>`wzlRDezc-HO>*_xGmZgG!NyhJn{$QT zV(%JZLiOf(Ona4F+)DVB(?g)C(gjWigxoH`tgNgYZH5qhMW}$S!opC%Sc(I@W$~na zIiPPYLWs=VUG2{45S%GKG5^~ng@)@$qlNU_|D42fJt8kLt>G$~_Gj6M<$*oI5- zNOrdVtq!1vnA1b(6GswQHWn{3>!rP@zba`+ZTHzRmFTUx|Ab3oz}eu{I6;`~yx^=R zv_soA5pv?cYe>{y^Hnz2n3pkl^IGOCjI;qU{{ft&-b7Dmra59-@HUFV2;QsE6{L_MX zh4uz(z?BXb_W`x~aPq4y{-yfl$Mf@}#6eh8u{v`(ojlR$x82@Ma|Hzjd4^;Jf~P2$ zU5;ox2%r=PCe6TvgQK#Ykq~7`Q`1fT5U4ICk66f;K&=``_}_qQjKoetXprZUHWo=K z6wwpc|3*H<=4J7So1Z~I`PC}ZcXMXl_Y;h=IN50;jGXGbgPEZp=lwIzyDJa>&PUHZ zZiZxbEZzfZ2Vy2B0;OcV>i+%-#OP9UmQh7E5?u)`-Va_MKYWmRoq|}Q^ae~E%m+ND z&QVtX__4XdO+ehi4brR&x&{C=heU;`@FE7!Bb8EVnHzQ^nuu>{3D zu_Y#sETuEX%GPefyEXIR<}_E4vCRzmwqq?;M=$rJDp5x}EZ+Et_YjDNNQAdvRj~7Y zfWe5Q*j4cJnaglPL^YtY1aeUQXIV#Tm_67!2M3=f%9%;-Rg{-++})f_U;1cL3F}Xv zlz%!r*xNG&(iVWJwag0;F+5_33k>5LFCZ0Xl>w*1CK&{edsh#y0z57_MiO6BekV4dN$xN&e_Q_%%hrJ=S6)r$eXo}23Ekr%6kgEB zTE-nSL*Evl)Z8SJ^wZ1Dkx(OeI2iNq&z(E4D*N0V^qOzJzVzESu%)J%3@W1cT=jMZ zOi#fO213PD2fwksFqqgN$2yy;^iQb_xZeZqxwDlJYz{uYevh^@3Q!Q?2Ze&`E#CG4 zKziXcU>FIWU2PMP8i4RxUWI_+*b3xXSWzj{p7Pjy1%* zG@0i~wW}>@!;LRKdAMe~cTxX>5{&H1%EObHkEc}0){ss8%_pizz191I!(U%^T4<)c z5_PDC8Av>!joTmg+P79CsNA!Zxs}!dvF?MNfdYJ8-p%ai9yr6l>!iAS0@~ZkB{#LA zx13-n_(8h~^z+~#CG>E;P8?o+c<~IL+ek4SvpP^c-eJ$zgD@_dmeu-1`9kQs0Ywqh z7f-*#8kYg&M=&|^;>0%d)CkNGHFgf83YCS+PE|e8zuml5o+evD@UX9k1I&@%k ztf&O^r;YJM4VX<5db~UH{I&EPt=yzqPEr!d@yCZlb;v&gpu<*NAh+aWLT8vkVqyli ztiXJ}av*Vc*4QZyNh}v;uo6hqSQ0dGaR!YQI9$g*N6=etm}kcf0oByD%eu<@L30sX zXz`hsrsmCQTDu~^Z7@n8Mom3Z4EH1k5RO>%22_+vv>Ebw-?9V)bRHzRUd`1%FBbQr z_LLo3{()nzLkN1dJ1POBP%ipbI2p>4LR_HWzzosnzPKwXY3qJ-pLSeE>YGkltEAD| z<^Y+W4s(P2(w(fg!?6GFQ`A4CCVTwiOft{VPF3XN>Lpn`SYDE5-oqYX1Q4EahEZ*=wL=50UrRc<1l4WDX^j?I!L$=lc^7;Jd;b zf!z2!p^6R;Ek5!~-PGWR{~vk#U&4mr2(Bm;M>htU5Bwt$`BnyT0d;`xvqa>4B8FBN z4%G`l84Jr^!wcYlDIT3ZXkNrEufS*2>iLg!el7C6kk+aFanWWiG41AYLpJTkyHKtt zOgSd(XSB3;P?>gynnY%u8D6$@FN)1OpC)({V>h4We#Cdx`D0KT`g1u=Ut7LV&iV$8M&Z-wZGg>r9Tb8S?`y3iY%p9_ac?1COc-=Vw`oRy|xc%9H56u zfYFVFo*wDmzCO?;4kWYBv74(upfs)4)^iaWZFZ=Somwr|X0Eu&vCbrjmUeC;-`v~; z>d#!K_2RFt@4hJ&Ejd;t{|6Z7-!iRO{`U4+=fDI78xli zF92_9t|%zmRf_MLWwmVi9>3XZu0=JrTjO&03a0Jt?QLam&p?jV0&yE$nqAtp0bSSd zhzKyA;#PSvbv629u;-Oz$*|V4mgQJ3Fg%zftJ%tI_dIzC%J?9?g5Jfq@^aUqnVWK# zxB%}HW(Vv`+~b?;$&g#m#)Btc_RMWb8B*;Q&q)<6YXQw;Zm+vSpj497)YwYKs80#2 zdNR_K7A-B5iCX6E=k9cyc4S%q1Vyog`~yV;;Qk?(eF5jP0p1O~-Uqs`u91RTe(lV2 zU?O#~fx!)`YhFO2Kn?KW@SC=qIyVBWs(9zb0Hxi!((IWpb1xOjrsgJJ3s%x@85`^ zuK{QjN5%#yEgt$@-TAkZ$$j|nq2HnwOw54DO&)MOS(8ppOPd8_H3MczKze{t88w11 ziM)=51#)n{=(n;#@B^5*0p(@z&h4Y45^ZMih2W?j6RH`RYHc%X>!^VN`I=egL^?8O-(_vh7*uHRU>2Lppz3P z1TY(+qo)TanZT^@UM%1vAhCe>1snP6*Dv_9h|0>e4Gb*68>*|>!Ec)@IC**dfNg`s z0#%tp&2>Qk1JF6pT>r0e16~I@q@WK51`@s&7Iq8&Pi7DLJA#oKlu^ zB-v@AL`Q|Jrz9%tDU5wdDJis4M-v7K>+}BJ_nKm{K=Vvd7$v~TFi^rZ#d8|h|HKQEhAi|RMMOnKg_nB; zjMriQkWgTZ!6 zmiN$E;gp*kRV&L!t{ahXjeFFXgH7DFPe%t!nXOISmnKujMJB#|dFF?@kCr)War_o5>CoA|(*%Xe3 zm6>RnU5+Y40K#w8Vis4%kM6jm!;Wy$aT>S*ClqVmMa!bS!IqY!VQm*C_4LJy2|wQ2 zsgI&BXIpV0)<}lv=!~@o_6WUgcWwC7K=jRjNv!`Yq zP6wN{f$)f2*Z)U>{&bWRR8HL;5Q(5-ChCrprSa^grSVI|BoS^WOjD}vr4Au~BnC>+ z;vxwdk2@}E@VUGC=HskGGSR1A#c;Lm#SG6V=mx#7~jTHD9Kq_{8m=5;rw~*fSn=}cJHQx zp&`-_@r?#;awt0ojt4ehkpumhX3DYK;uw>kTyxBTe!=;d`~CMG7u^L3O8UB+)kIeL z`rd=@h-o!D7)GjW41Jfjb}c+{b{^8WkKkkoEY!{I7W4<^i8pWFBv!&xN`v9@*ye>h zhJ~iH^9bst%}ppE-S6}D?HkT{ zIcJf2puK%4T#2H^KMowg!DbADU3OiD?fyr-Nzc zCrW*n=;h3-85{m9n_;Mfu_a~_@OH6GmeSz7dSO5wmMr%;Ye;?R_=9SEFb-^0 zp*tQ2YA6$pB^&7#A0K}!GE!MXW8gzqALpE?0r5iOZ{LE}Na+~CxkL)%Y>EG9ZuXDU z6iv^epqj==yx z0tB%Sa5Q9rn3x!@6af;EZ&Q3W13|>Xg)hYM7#%r+#p=pwaq_&DaT2naKkRLvH_TI5 zTQ32Wv4_u+$xQcT!H8GBetx_5>@il|=tp;g1~4))0d%|{r-hXUi#^O=_8m(*yRq<@ z$w_aTUHPHl;3bMHbAZ#>+G+>{9d}>u#!E;^I5Pk)djRa(i}PVR>Z@%GY#M$tgm>{4 zmZ~v-7&n$nm=2(=*sIcNdaRpe8IK|!o!=Hz^T(Rqt%*2}1}^KVi23>y5+ z;V`H77I)(mf2LlfrB01^P}p*b1g*~K>yb#^DqZa$>Zd%V@H3(A&E_Sy9e#=5{IQXV z2kIy#-irRcH`dk!o$*DN&MlH|f2HOTIaUyfhKj8i^GZn&((;S%r*>NXfOKL#q(}R*o{3bx;kK7RP@x_a6ci=^ zMNJZr43IjgfK1C97j%xGe!`j}P%EsO!#S03yOWM7{B5}H1L+~!4GcH`QayyP1Oh-f zyG*7Dn9T=HyEHVQD^i|35lpPFfocP3Vw~ZT@s9q5(?4ZxAsQCYaV}zi#G1Q@(qLEN zuL$!PHxTlioa9+?T3byYacz=uy{2buuZXPYi|JL)iZ#$#VR|c2!+%|y1Zj*2{o5p? zUB?V7_!cw+j7oG?fg}?@zk=uS7)3kT4rkn>_rd1DOCb^1m}8=LLV3@>menDKNGPU8 zGW)gTWyA%6_18#8k@RGuz2XiK1G#M?*ueqeNi+=hyJpLRNRn7e>+ur=CdB949gy>H z9hJ$0$YG*-3G&H{-6VfkmTjo9-&ORkRVxRr9D^}IueeHBzbIUorUvZ(;!A;Nh+(U+ z?&3cS9=XTr+?~gUhPr`TQc35UMmK#xC_|Eo3(`s=sFcw+Zw_c^%HMcN@TUh4uEyq> z48TA+tixbWyQ;2`JM$}-+A6niUV~~`1>f%-aHu{SYhJ`boG;VzETcU7P#U|-ABHoU zpze+wrp`H%B;@Jf(2)0dbwx#m8teVyV%dTOJ&)c0y}#d?z|19sr_3NfajaOBxZLRd zQkw@~4mZw?o%b*o`^nq!k5xx>r<4qudviL1;vZz4l^kW$-L^&^ZGLF{M*bn6#aFpc z(+hcjQ50y~4)%G!zxvX*z~A#p@P=^rukp&?q zAp5Yf^+S)cW&TTxZIy@LO1*yeVa7>R&uvfB)u1aj)0Yu8SewCG!NqWZWF{CwH+A~Q zd>0Hw5KJWupb>KEBo+#e?WAIA!q8N0cZ6n@0jcFZJF%)rsQ`+HMQBf9VX8S-N5aEaR z#mwyU2UWP==zJg(9F--AGAk$AjR_?|e3J(j(L4}nYUL$eEbdR9JSi?Xsivkjwtr`0 zeSYwQKb9{{;K^$R0Aj6KV^5KR^GV=65La;E2Km%7__9DyU<(Uy)VqdPi5&V%wHB77 zK3W7G9v(q6A&?YgOYyk4_V4LPtkl{My5#rqCVDHgOt&%*ks#&#p$f zhtlhYE`*%R3mCTpYKE;a zzo5+n*NFo}!4n99vyA$HKfx%5Q1y^@=yrj5mu}IOj9R}Y0t3_}@IlCt(5j@i`cd3z ztik}|aWBw(Sy)8dygG68=pPDVJqQ@+KolXvG;>HBBq!v3lBrxnLqiB_*e`B)cxZ_2 z9YoBDDHMCOmWVpnB|{(UtXe%)kL=Uhl6{vyX{Xzpbx4e)C~iI-5G?H>JR4o-tjTU- z=FZqIcCnw=?UW^2rgGyQJ?fgtF&C}=<@SIl zrIFf+ax*z!w%a{i<+u9z@?^Qe(y>V1DfFw_0%4&G`6`DRzC0TxZKkd}pIy{T0ezoNoI!p((`(&NjSW3&0-|1qR+{}6>?=T>KG-}b8CJ>>L ztP(>9B-!pz?v?HVMCp!2hWOVqN@#zMFSzEEgNO2W zeMVh6VM}IedGU#AUha@jgpU0e-6On!ohh8eX3^)R{0UzonsVXI7x4i)~orUkj_~-n7v2A`Uc5{&R2PG>@uh0}_b+Oc> z!;`Xb-<2-L&s%QCpAK7dV%RR=`~&wMGc`fFzRxn>=@j|j44P9YS_H7X2p-?aL&u7 zM&7#B@afZ#dLmhDK-d)RZ(!hDWRX{XPqD3a`@xUxKxzF3xJ^VHoeGB!@PaJpLE#+UbN!KTzQ+AgV znBAG3b!h9|Q_jxeaC=MpxLFmNw{|c&BSp(9=TfevKW1gj{$oaqT2YXjQ~%9tIPvHx zFTX}feSEXqNgKX_0H(`**Y7?vqq-!HljN7d6Pz?-_V*v{3s*oq$JF~@>VB`^p&1c3=Slrk8W+C`8>bnK z{)xMcE%wvUICeoz>2P2hg*vv&BtUSr2luuY!66(*|C>LgE;&D`V~C0O%QMMGGMdM(zSq-CL%yu5e{K3v~R64X5Zi~ZaZe1HhM=1_L6=6!DH)(x2z!Z^vVzj$LsQK`S1COS^p1& z<3C-1x(6dXF1<}Q2$mgB?F{WwBl=jelM90~TQ$*yQmszYcX?NKD+YF>uJR zy}aXR;t;MqcRu{##pS9mQWeaiBaZVkm*zzZw$BD#B7BQ2V+r`Wqt}c%F`Yq)FCzIb z&S~U)y%HcZHm&&Y$EwxVdQZ|SH`L}CDbUkN=DCmR+tLlH^4_`#^iIlDBt>~%4~U*M zCk&46qlU$9deCnUM>@1TK+K27gb=>Gx7L|9({ literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-query-results.png b/query-languages/dax/media/dax-copilot/dax-query-results.png new file mode 100644 index 0000000000000000000000000000000000000000..d164ac77bea2f4bd3c6bf73ae781180b324505c0 GIT binary patch literal 92788 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

Ocmin%%-JF7tMu$*chNblv9B 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 z z5-&Wi3S#N>07~26pj+Cu_JBy}awkGVPtO;dvAFzcNK;!IIt0c2!^3M)2$FxdgOO`0 z0wD)9BW|1NYv~VI8~g{>#mYmzwvA4B zg6L~of5Fur{ve~goEV}2A_kBXgb$+7%<0Q()*QR!AV1yHgAI%_Q-Kx<8gUf~0zyKt zblsN-fh@=W%lrIN&lhQ6M1k`_;YoqE1w0*y8Tf@VFoBj{{}Ro7;7S?myhB4nv>{FJ z?{o7wE@Oix8yt*Tpi|ujEl1`yHp?LIkUeui)fs~)!vQ%&2dchUpzox3A8ItsvjBAg z4GRvPW8!7`(UjTBxi|Qgf zL~cF>wDy|)Ys8vcSX`%LK#n2J1@r-J$7CW)w*3`7|)=dwcz z1erCoK+<7s;Qc`Fqq~>7e2=KAfww>l72xZ24+{Yngy|0wRA%Ppki`PUhWiH>N%1)~ z2ki(LA`cl3=pSw{v5-K*b^h*lGqdyXbU>9O;Dz7whYj$H-bt4lsCs~epe^&jVzq!5 zY5Z{zQMO!^H@<=r45puDuEao8G+~7er4U{Gz}BwupDu>ZmkF}++}zk`b0KpG?r;7+{D0Ck>Q$2x z4Jyg1LU)O&y=h=Jz}~O9aru<{T23|$Ow#IA3Alcm0&U@ow}Z`A#>N4l<3egsq?r#7 zJUTXpiHZWBVB_R$ZS==5|EIEElU@!|G^rRgF>�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 Date: Wed, 28 Feb 2024 12:09:15 -0800 Subject: [PATCH 425/934] ms dax copilot 2 add missing image --- query-languages/dax/dax-copilot.md | 14 +++++++------- .../dax-copilot/dax-copilot-highlight-diff.png | Bin 0 -> 69627 bytes query-languages/dax/toc.yml | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-highlight-diff.png diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index fd08b40f7..6e4a98d24 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -1,6 +1,6 @@ --- -title: "Write DAX with Copilot | Microsoft Docs" -description: Use Copilot to create a DAX query. Type what you're looking for in a DAX query, and Copilot can create it. +title: "Write DAX queries with Copilot | Microsoft Docs" +description: Use Copilot to create a DAX queries query. Type what you're looking for in a DAX query, and Copilot can create it. ms.service: powerbi ms.date: 02/28/2024 ms.reviewer: @@ -8,11 +8,11 @@ ms.topic: how-to author: maggieMSFT ms.author: maggies --- -# Write DAX with Copilot +# Write DAX queries with Copilot Try using Copilot to create a DAX query. Type what you're looking for in a DAX query and select **Send** or press Enter. To run what is returned, select **Keep it** to add it to query tab. Then select **Run** or press F5 to see the results of the DAX query. -## DAX features in Copilot +## DAX query features in Copilot Let’s look at what Copilot can help you with in the DAX query view: @@ -20,7 +20,7 @@ Let’s look at what Copilot can help you with in the DAX query view: - **DAX query to natural language**. Ask Copilot to explain what any DAX query is doing. - **DAX functions help Copilot**. Maybe you heard about a certain DAX function or need to find the right DAX function for job, Copilot can help you here too. -## Enable Copilot for DAX +## Enable Copilot for DAX queries In Power BI Desktop, in the **Preview features** section of the **Options**, enable **DAX query view with Copilot**. @@ -30,9 +30,9 @@ Then navigate to the DAX query view and select the **Copilot** button or CT Let’s try some Copilot prompts, using sample data in Power BI Desktop, with some additional measures. -## Sample prompts for writing DAX +## Sample prompts for writing DAX queries -Here is a collection of sample prompts to illustrate how to get Copilot to write the DAX you want. +Here is a collection of sample prompts to illustrate how to get Copilot to write the DAX queries you want. - [List products and show the last three months' profit compared to the previous three months](#list-products-and-show-the-last-three-months-profit-compared-to-the-previous-three-months). - [Add a column to show the difference](#add-a-column-to-show-the-difference). diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-highlight-diff.png b/query-languages/dax/media/dax-copilot/dax-copilot-highlight-diff.png new file mode 100644 index 0000000000000000000000000000000000000000..92caf02a6dca8d89af4e14ff8afc3718ec9992b4 GIT binary patch literal 69627 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

$8D7+`oYFtC+>g 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 Date: Wed, 20 Mar 2024 10:16:09 -0700 Subject: [PATCH 437/934] removing mistake in COUNTROWS --- query-languages/dax/countrows-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/countrows-function-dax.md b/query-languages/dax/countrows-function-dax.md index db7f2c77c..3cf746587 100644 --- a/query-languages/dax/countrows-function-dax.md +++ b/query-languages/dax/countrows-function-dax.md @@ -26,7 +26,7 @@ A whole number. - This function can be used to count the number of rows in a base table, but more often is used to count the number of rows that result from filtering a table, or applying context to a table. -- Whenever there are no rows to aggregate, the function returns a blank. However, if there are rows, but none of them meet the specified criteria, the function returns 0. Microsoft Excel also returns a zero if no rows are found that meet the conditions. +- When the table argument contains no rows, the function returns BLANK. - To learn more about best practices when using COUNT and COUNTROWS, see [Use COUNTROWS instead of COUNT in DAX](best-practices/dax-countrows.md). From db522cf3b9596053d185af45ccb8cb694ef22c05 Mon Sep 17 00:00:00 2001 From: pfohl Date: Thu, 21 Mar 2024 18:23:49 -0500 Subject: [PATCH 438/934] Update var-dax.md adjusted formatting of the final DAX codeblock for readability. --- query-languages/dax/var-dax.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/var-dax.md b/query-languages/dax/var-dax.md index 02c976b43..bdc8c2847 100644 --- a/query-languages/dax/var-dax.md +++ b/query-languages/dax/var-dax.md @@ -66,12 +66,13 @@ Sum of SalesAmount YoY%: = By using a variable, you can create a single measure that calculates the same result: ```dax -YoY% = VAR Sales = SUM(SalesTable[SalesAmount]) +YoY% = + VAR Sales = + SUM(SalesTable[SalesAmount]) + VAR SalesLastYear = + CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) ) -VAR SalesLastYear = - CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) ) - - return if(Sales, DIVIDE(Sales – SalesLastYear, Sales)) + return if(Sales, DIVIDE(Sales – SalesLastYear, Sales)) ``` By using a variable, you can get the same outcome, but in a more readable way. And because the result of the expression is stored in the variable, the measure's performance can be significantly improved because it doesn't have to be recalculated each time it's used. From 30b425b8ac3a35c4d234a4a63f4f087d63864c06 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 26 Mar 2024 14:34:56 -0400 Subject: [PATCH 439/934] Update query-languages/m/datetime-date.md Co-authored-by: Ehren --- query-languages/m/datetime-date.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/datetime-date.md b/query-languages/m/datetime-date.md index bef12c0e6..e8fc8e8eb 100644 --- a/query-languages/m/datetime-date.md +++ b/query-languages/m/datetime-date.md @@ -12,7 +12,7 @@ DateTime.Date(dateTime as any) as nullable date ## About -Returns the date component of value `dateTime`, if that input is a `date`, `datetime`, or `datetimezone` value. If, instead, `null` is input, `null` is returned. +Returns the date component of the `dateTime` parameter if the parameter is a `date`, `datetime`, or `datetimezone` value, or `null` if the parameter `null`. ## Example 1 From 3618a276699a5eae77040295538e4701a33351b1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 26 Mar 2024 12:23:40 -0700 Subject: [PATCH 440/934] Fixed ms.date --- query-languages/m/m-spec-consolidated-grammar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 102c842ce..77820bdb1 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -2,7 +2,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual -ms.date: 2/2/24 +ms.date: 2/2/2024 ms.custom: "nonautomated-date" --- From e87bd5e59b6f242516851654dd2c03b4138a8993 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 26 Mar 2024 12:52:13 -0700 Subject: [PATCH 441/934] Fixed grammar --- query-languages/m/datetime-date.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/datetime-date.md b/query-languages/m/datetime-date.md index e8fc8e8eb..ee37a3a85 100644 --- a/query-languages/m/datetime-date.md +++ b/query-languages/m/datetime-date.md @@ -12,7 +12,7 @@ DateTime.Date(dateTime as any) as nullable date ## About -Returns the date component of the `dateTime` parameter if the parameter is a `date`, `datetime`, or `datetimezone` value, or `null` if the parameter `null`. +Returns the date component of the `dateTime` parameter if the parameter is a `date`, `datetime`, or `datetimezone` value, or `null` if the parameter is `null`. ## Example 1 From 1cc9d2e696511c46778d277f78b9759b861ad416 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Tue, 26 Mar 2024 18:14:37 -0700 Subject: [PATCH 442/934] replacing "visual calculation data grid" with "visual matrix" --- query-languages/dax/filter-functions-dax.md | 4 ++-- query-languages/dax/movingaverage-function-dax.md | 2 +- query-languages/dax/runningsum-function-dax.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 22d1aa71c..b3f145caf 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -26,7 +26,7 @@ The filter and value functions in DAX are some of the most complex and powerful, |[LAST](last-function-dax.md) | Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis. | |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | |[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | -|[MOVINGAVERAGE](movingaverage-function-dax.md)|Returns a moving average calculated along the given axis of the visual calculation data grid.| +|[MOVINGAVERAGE](movingaverage-function-dax.md)|Returns a moving average calculated along the given axis of the visual matrix.| |[NEXT](next-function-dax.md) | Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix. | |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a window function’s partitions.| @@ -36,6 +36,6 @@ The filter and value functions in DAX are some of the most complex and powerful, |[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | -|[RUNNINGSUM](runningsum-function-dax.md)|Returns a running sum calculated along the given axis of the visual calculation data grid.| +|[RUNNINGSUM](runningsum-function-dax.md)|Returns a running sum calculated along the given axis of the visual matrix.| |[SELECTEDVALUE](selectedvalue-function.md) | Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. | |[WINDOW](window-function-dax.md)| Returns multiple rows which are positioned within the given interval. | diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 5034f7604..41be7800c 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -13,7 +13,7 @@ recommendations: false # MOVINGAVERAGE -Returns a moving average calculated along the given axis of the visual calculation data grid. That is, the average of the given column calculated over the last \ rows. +Returns a moving average calculated along the given axis of the visual matrix. That is, the average of the given column calculated over the last \ rows. ## Syntax diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index b09025558..051f9fb04 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -13,7 +13,7 @@ recommendations: false # RUNNINGSUM -Returns a running sum calculated along the given axis of the visual calculation data grid. That is, the sum of the given column calculated over all rows up to the current row. +Returns a running sum calculated along the given axis of the visual matrix. That is, the sum of the given column calculated over all rows up to the current row. ## Syntax From 42250d97e31f9083e748a2a5bb100dbe9caf295f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 27 Mar 2024 10:42:29 -0400 Subject: [PATCH 443/934] Update m-spec-consolidated-grammar.md --- query-languages/m/m-spec-consolidated-grammar.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 9a8e0b550..77a3b4dab 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -384,6 +384,9 @@ _field-list:
      field_ `,` _field-list
field:
      field-name_ `=` _expression
+field-name:
+      generalized-identifier
+      quoted-identifier_
#### Item access expression @@ -413,9 +416,6 @@ required-field-selector:_
      `[` _field-name_ `]`
_optional-field-selector:_
      `[` _field-name_ `] ?`
-_field-name:
-      generalized-identifier
-      quoted-identifier
implicit-target-field-selection:
      field-selector
projection:
From 0565175f84cba43a801cf9d5c5402675ecd162f3 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 27 Mar 2024 10:45:15 -0400 Subject: [PATCH 444/934] Removing superfluous "in the table" clauses --- query-languages/m/table-expandlistcolumn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index 9b27f3a81..03cdfd875 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -16,7 +16,7 @@ Given a `table`, when `column` contains a list of values, splits the list into a ## Example 1 -Split the list column [Name] in the table. +Split the list column [Name]. **Usage** @@ -29,7 +29,7 @@ Table.ExpandListColumn( ## Example 2 -Split the nested table column [Components] in the table. +Split the nested table column [Components]. **Usage** From b123d13d871b2e553309d87d32d68e31e1c2b13f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 27 Mar 2024 10:47:07 -0400 Subject: [PATCH 445/934] Update query-languages/m/table-expandlistcolumn.md Co-authored-by: Ehren --- query-languages/m/table-expandlistcolumn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index 03cdfd875..b2c2e38dd 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -12,7 +12,7 @@ Table.ExpandListColumn(table as table, column as text) as table ## About -Given a `table`, when `column` contains a list of values, splits the list into a row for each value. If, instead, `column` contains a nested table, treats the nested table as though it were a list of records, which it then splits into a row for each value. Values in the other columns are duplicated in each new row created. +Given a `table` where `column` contains a list of values, splits the list into a row for each value. Values in the other columns are duplicated in each new row created. This function can also expand nested tables by treating them as lists of records. ## Example 1 From e3a16fa9c45c9b0702fe80f5e3b35c9a5d713c74 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 27 Mar 2024 15:18:16 -0700 Subject: [PATCH 446/934] Updated and freshened M files --- query-languages/m/date-functions.md | 2 +- query-languages/m/index.yml | 29 +++++++++++-------- query-languages/m/m-spec-conditionals.md | 4 +-- .../m/power-query-m-function-reference.md | 2 +- query-languages/m/text-functions.md | 28 +++++++++--------- 5 files changed, 35 insertions(+), 30 deletions(-) diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index b811acf7f..e783babd0 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date functions" title: "Date functions" -ms.date: 11/14/2022 +ms.date: 3/27/2024 ms.custom: "nonautomated-date" --- # Date functions diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index 5bb27ea9f..bd170f6b5 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -1,13 +1,13 @@ ### YamlMime:Landing title: Power Query M formula language -summary: Microsoft Power Query provides a powerful data import experience that encompasses many features. Power Query works with Analysis Services, Excel, and Power BI workbooks. A core capability of Power Query is to filter and combine, that is, to mash-up data from one or more of a rich collection of supported data sources. Any such data mashup is expressed using the Power Query M formula language. It's a functional, case sensitive language similar to F#. +summary: Microsoft Power Query provides a powerful data import experience that encompasses many features. Power Query works with desktop Analysis Services, Excel, and Power BI workbooks, in addition to many online services, such as Fabric, Power BI service, Power Apps, Microsoft 365 Customer Insights, and more. A core capability of Power Query is to filter and combine, that is, to mash-up data from one or more of a rich collection of supported data sources. Any such data mashup is expressed using the Power Query M formula language. The M language is a functional, case sensitive language similar to F#. metadata: title: Power Query M formula language reference description: Power Query M is used to filter, combine, and mash-up data from one or more supported data sources. ms.topic: landing-page - ms.date: 7/6/2023 + ms.date: 3/27/2024 ms.custom: nonautomated-date # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new @@ -32,16 +32,6 @@ landingContent: links: - text: Power Query documentation url: /power-query - - # Card - - title: Functions - linkLists: - - linkListType: reference - links: - - text: Power Query M function reference - url: power-query-m-function-reference.md - - linkListType: overview - links: - text: Understanding Power Query M functions url: understanding-power-query-m-functions.md @@ -54,3 +44,18 @@ landingContent: url: power-query-m-language-specification.md - text: Power Query M type system url: power-query-m-type-system.md + + # Card + - title: Reference + linkLists: + - linkListType: reference + links: + - text: Power Query M function reference + url: power-query-m-function-reference.md + - text: Power Query M enumeration reference + url: enumerations.md + - text: Power Query M constant reference + url: constants.md + - text: Power Query M dynamic value reference + url: dynamic-values.md + diff --git a/query-languages/m/m-spec-conditionals.md b/query-languages/m/m-spec-conditionals.md index 2818131b3..16711684f 100644 --- a/query-languages/m/m-spec-conditionals.md +++ b/query-languages/m/m-spec-conditionals.md @@ -2,7 +2,7 @@ title: M Language Conditionals description: Describes using conditionals in the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 3/27/2024 ms.custom: "nonautomated-date" --- @@ -37,4 +37,4 @@ The following holds when evaluating an _if-expression_: * The result of the _if-expression_ is the value of the _true-expression_ if the _if-condition_ is `true`, and the value of the _false-expression_ if the _if-condition_ is `false`. -* Errors raised during the evaluation of the _if-condition_, _true-expression_, or _falseexpression_ are propagated. +* Errors raised during the evaluation of the _if-condition_, _true-expression_, or _false-expression_ are propagated. diff --git a/query-languages/m/power-query-m-function-reference.md b/query-languages/m/power-query-m-function-reference.md index 129a94a98..276863929 100644 --- a/query-languages/m/power-query-m-function-reference.md +++ b/query-languages/m/power-query-m-function-reference.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Power Query M function reference" title: "Power Query M function reference" -ms.date: 9/20/2022 +ms.date: 3/27/2024 ms.custom: "nonautomated-date" --- # Power Query M function reference diff --git a/query-languages/m/text-functions.md b/query-languages/m/text-functions.md index 8f92ebedd..45df2b4b7 100644 --- a/query-languages/m/text-functions.md +++ b/query-languages/m/text-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text functions" title: "Text functions" -ms.date: 10/19/2023 +ms.date: 3/27/2024 ms.custom: "nonautomated-date" --- # Text functions @@ -21,14 +21,14 @@ These functions create and manipulate text values. |------------|---------------| |[Character.FromNumber](character-fromnumber.md)|Converts a number to a text character.| |[Character.ToNumber](character-tonumber.md)|Converts a character to a number value.| -|[Guid.From](guid-from.md) | Returns a `Guid.Type` value from the given `value`.| +|[Guid.From](guid-from.md) | Returns a GUID value from the given value.| |[Json.FromValue](json-fromvalue.md) | Produces a JSON representation of a given value.| -|[Text.From](text-from.md)|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration or binary value. If a value is null, **Text.From** returns null. The optional culture parameter is used to format the text value according to the given culture.| +|[Text.From](text-from.md)|Creates a text value from the given value.| |[Text.FromBinary](text-frombinary.md)|Decodes data from a binary value in to a text value using an encoding.| -|[Text.NewGuid](text-newguid.md)|Returns a Guid value as a text value.| +|[Text.NewGuid](text-newguid.md)|Returns a GUID value as a text value.| |[Text.ToBinary](text-tobinary.md)|Encodes a text value into binary value using an encoding.| |[Text.ToList](text-tolist.md)|Returns a list of characters from a text value.| -|[Value.FromText](value-fromtext.md)|Decodes a value from a textual representation, value, and interprets it as a value with an appropriate type. Value.FromText takes a text value and returns a number, a logical value, a null value, a DateTime value, a Duration value, or a text value. The empty text value is interpreted as a null value.| +|[Value.FromText](value-fromtext.md)|Creates a strongly-typed value from a textual representation.| ## Extraction @@ -44,8 +44,8 @@ These functions create and manipulate text values. |Name|Description| |------------|---------------| -|[Text.Insert](text-insert.md)|Returns a text value with newValue inserted into a text value starting at a zero-based offset.| -|[Text.Remove](text-remove.md)|Removes all occurrences of a character or list of characters from a text value. The removeChars parameter can be a character value or a list of character values.| +|[Text.Insert](text-insert.md)|Inserts one text value into another at a given position.| +|[Text.Remove](text-remove.md)|Removes all occurrences of the given character or list of characters from the input text value.| |[Text.RemoveRange](text-removerange.md)|Removes count characters at a zero-based offset from a text value.| |[Text.Replace](text-replace.md)|Replaces all occurrences of a substring with a new text value.| |[Text.ReplaceRange](text-replacerange.md)|Replaces length characters in a text value starting at a zero-based offset with the new text value.| @@ -57,8 +57,8 @@ These functions create and manipulate text values. |------------|---------------| |[Text.Contains](text-contains.md)|Returns true if a text value substring was found within a text value string; otherwise, false.| |[Text.EndsWith](text-endswith.md)|Returns a logical value indicating whether a text value substring was found at the end of a string.| -|[Text.PositionOf](text-positionof.md)|Returns the first occurrence of substring in a string and returns its position starting at startOffset.| -|[Text.PositionOfAny](text-positionofany.md)|Returns the first occurrence of a text value in list and returns its position starting at startOffset.| +|[Text.PositionOf](text-positionof.md)|Returns the first position of the value (-1 if not found).| +|[Text.PositionOfAny](text-positionofany.md)|Returns the first position in the text value of any listed character (-1 if not found).| |[Text.StartsWith](text-startswith.md)|Returns a logical value indicating whether a text value substring was found at the beginning of a string.| ## Transformations @@ -71,14 +71,14 @@ These functions create and manipulate text values. |[Text.Clean](text-clean.md)|Returns the original text value with non-printable characters removed.| |[Text.Combine](text-combine.md)|Returns a text value that is the result of joining all text values with each value separated by a separator.| |[Text.Lower](text-lower.md)|Returns the lowercase of a text value.| -|[Text.PadEnd](text-padend.md)|Returns a text value padded at the end with pad to make it at least length characters.| -|[Text.PadStart](text-padstart.md)|Returns a text value padded at the beginning with pad to make it at least length characters. If pad is not specified, whitespace is used as pad.| +|[Text.PadEnd](text-padend.md)|Returns text of a specified length by padding the end of the given text.| +|[Text.PadStart](text-padstart.md)|Returns text of a specified length by padding the start of the given text.| |[Text.Proper](text-proper.md)|Returns a text value with first letters of all words converted to uppercase.| |[Text.Repeat](text-repeat.md)|Returns a text value composed of the input text value repeated a number of times.| |[Text.Reverse](text-reverse.md)|Reverses the provided text.| |[Text.Split](text-split.md)|Returns a list containing parts of a text value that are delimited by a separator text value.| |[Text.SplitAny](text-splitany.md)|Returns a list containing parts of a text value that are delimited by any separator text values.| -|[Text.Trim](text-trim.md)|Removes any occurrences of characters in trimChars from text.| -|[Text.TrimEnd](text-trimend.md)|Removes any occurrences of the characters specified in trimChars from the end of the original text value.| -|[Text.TrimStart](text-trimstart.md)|Removes any occurrences of the characters in trimChars from the start of the original text value.| +|[Text.Trim](text-trim.md)|Removes all leading and trailing whitespace.| +|[Text.TrimEnd](text-trimend.md)|Removes all trailing whitespace.| +|[Text.TrimStart](text-trimstart.md)|Removes all leading whitespace.| |[Text.Upper](text-upper.md)|Returns the uppercase of a text value.| From cb5611fd50e5d18bcd6139621eb1478b62eadf08 Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Thu, 28 Mar 2024 13:28:49 -0700 Subject: [PATCH 447/934] ms dax copilot v2 --- query-languages/dax/dax-copilot.md | 118 +++++++++++++++++++++++++++++ query-languages/dax/toc.yml | 2 + 2 files changed, 120 insertions(+) create mode 100644 query-languages/dax/dax-copilot.md diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md new file mode 100644 index 000000000..7ef424402 --- /dev/null +++ b/query-languages/dax/dax-copilot.md @@ -0,0 +1,118 @@ +--- +title: "Write DAX queries with Copilot | Microsoft Docs" +description: Use Copilot to create a DAX queries query. Type in a prompt to describe what DAX query you would like generated, and Copilot can create it. +ms.service: powerbi +ms.date: 03/28/2024 +ms.reviewer: +ms.topic: how-to +author: maggieMSFT +ms.author: maggies +--- +# Write DAX queries with Copilot + +Try using Copilot to create a DAX query. Type in a prompt to describe what DAX query you would like generated and select **Send** or press Enter. To run what is returned, select **Keep it** to add it to query tab. Then select **Run** or press F5 to see the results of the DAX query. + +## DAX query features in Copilot + +Let’s look at what Copilot can help you with in [DAX query view](/power-bi/transform-model/dax-query-view): + +- **Natural language to DAX query**. Just ask for what you want from your semantic model and have the DAX query generated by Copilot. +- **DAX query to natural language**. Ask Copilot to explain what any DAX query is doing. +- **DAX functions help Copilot**. Maybe you heard about a certain DAX function or need to find the right DAX function for job, Copilot can help you here too. + +## Enable Copilot for DAX queries + +In Power BI Desktop, in the **Preview features** section of the **Options**, enable **DAX query view with Copilot**. + +Check to make sure you meet the [Fabric Copilot requirements](/fabric/get-started/copilot-fabric-overview#enable-copilot). + +Then navigate to the **DAX query view** and select the **Copilot** button or CTRL+I to launch the in-line Copilot. + +Let’s try some Copilot prompts, using sample data in Power BI Desktop, with some additional measures. + +## Sample prompts for writing DAX queries + +Here is a collection of sample prompts to illustrate how to get Copilot to write the DAX queries you want. + +- [List products and show the last three months' profit compared to the previous three months](#list-products-and-show-the-last-three-months-profit-compared-to-the-previous-three-months). +- [Add a column to show the difference](#add-a-column-to-show-the-difference). +- [Explain what this query does](#explain-what-this-query-does). +- [What is SUMMARIZECOLUMNS used for](#what-is-summarizecolumns-used-for). + +### List products and show the last three months' profit compared to the previous three months + +In a blank query tab, invoke Copilot with CTRL+I and enter this request: + +"list the products and show the last 3 months profit compared to the 3 months before." + +:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="Screenshot showing list products and show last 3 months profit compared to the 3 months before." lightbox="media/dax-copilot/dax-list-products.png"::: + +After a few moments I get a detailed DAX query. + +:::image type="content" source="media/dax-copilot/dax-query-list-products.png" alt-text="Screenshot showing DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-query-list-products.png"::: + +I select **Keep it** and then **Run** the query. + +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: + +Let's see the difference between the last three months and the previous three months. Select the query and start Copilot again with CTRL+I, or select the ribbon button. + +### Add a column to show the difference + +This time the selection is showing fitted to the text and the background shading highlights what is being sent with the request to Copilot. + +:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Screenshot showing Run the query that calculated the profit." lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: + +Now the diff styling in the DAX query editor shows exactly what Copilot has changed. + +:::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Screenshot showing Diff styling shows what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: + +I select **Keep it** and **Run** it again. + +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run the query and see the results, with the Profit Difference column." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: + +I see the DAX query, and I can see the requests I sent to Copilot at the top of the query. Each main block of the query is also commented, explaining what it’s doing in each part. + +Maybe those comments aren't working for me. Let’s get a full explanation. + +### Explain what this query does + +Again, highlight the whole query and invoke Copilot with this request: + +"Explain to me what this query does." + +:::image type="content" source="media/dax-copilot/dax-copilot-explain-query.png" alt-text="Screenshot showing Explain to me what this query does." lightbox="media/dax-copilot/dax-copilot-explain-query.png"::: + +Now, instead of writing DAX queries, it’s responding in the in-line window. + +:::image type="content" source="media/dax-copilot/dax-copilot-query-explanation.png" alt-text="Screenshot showing brief explanation of the query."::: + +Copilot generates a few lines. I select **Show more** to see the full explanation. + +:::image type="content" source="media/dax-copilot/dax-copilot-explain-query-more.png" alt-text="Screenshot showing a long explanation of what the query does."::: + +Now I understand each part and the DAX functions used. + +### What is SUMMARIZECOLUMNS used for? + +Speaking of these DAX functions, it would be great to get an explanation of those too. Let’s try Copilot to get some more information about a specific DAX function. + + In this request, let’s find out what the SUMMARIZECOLUMNS does. + +:::image type="content" source="media/dax-copilot/dax-copilot-explain-summarize-columns.png" alt-text="Screenshot showing an explanation of what the SUMMARIZECOLUMNS does." lightbox="media/dax-copilot/dax-copilot-explain-summarize-columns.png"::: + +Again, Copilot generates brief description: + +:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="Screenshot showing a brief description of the SUMMARIZECOLUMNS DAX funtion."::: + +I select **Show more**. + +:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-more.png" alt-text="Screenshot showing Copilot generates a much more in-depth description."::: + +Because I asked Copilot in the context of a DAX query that I highlighted, it gave me the response in the context of that query as well. + +## Learn more with these resources + +- [Overview of Copilot in Fabric and Power BI](/fabric/get-started/copilot-fabric-overview#enable-copilot) +- [DAX query view](/power-bi/transform-model/dax-query-view) +- [DAX queries](https://aka.ms/dax-queries) \ No newline at end of file diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index b5fc667d5..91a54c0a3 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -10,6 +10,8 @@ href: dax-learn-videos.md - name: Use DAX in Power BI Desktop Learn path href: https://aka.ms/learndax + - name: Write DAX queries with Copilot + href: dax-copilot.md - name: "Sample model" href: dax-sample-model.md - name: Best practices From 6eaa86070598bd566809b1f2101a6691679d3835 Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Thu, 28 Mar 2024 19:16:09 -0700 Subject: [PATCH 448/934] ms dax copilot, feedback --- query-languages/dax/dax-copilot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 7ef424402..75789039c 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -18,7 +18,7 @@ Let’s look at what Copilot can help you with in [DAX query view](/power-bi/tra - **Natural language to DAX query**. Just ask for what you want from your semantic model and have the DAX query generated by Copilot. - **DAX query to natural language**. Ask Copilot to explain what any DAX query is doing. -- **DAX functions help Copilot**. Maybe you heard about a certain DAX function or need to find the right DAX function for job, Copilot can help you here too. +- **Understand DAX concepts**. Maybe you heard about a certain DAX function or need to find the right DAX function for the job. Copilot can help you here too. ## Enable Copilot for DAX queries From a3bc46b5d379fa3083a64bec495fcba00267904a Mon Sep 17 00:00:00 2001 From: Jon Burchel Date: Fri, 29 Mar 2024 17:17:08 -0400 Subject: [PATCH 449/934] Update freshness --- query-languages/m/power-query-m-function-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/power-query-m-function-reference.md b/query-languages/m/power-query-m-function-reference.md index 129a94a98..d39fad7fd 100644 --- a/query-languages/m/power-query-m-function-reference.md +++ b/query-languages/m/power-query-m-function-reference.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Power Query M function reference" title: "Power Query M function reference" -ms.date: 9/20/2022 +ms.date: 03/29/2024 ms.custom: "nonautomated-date" --- # Power Query M function reference From 26e22f77581caa5d23ca3bfb43f2c9c5a2c308b5 Mon Sep 17 00:00:00 2001 From: Jon Burchel Date: Fri, 29 Mar 2024 18:04:50 -0400 Subject: [PATCH 450/934] Update m-spec-conditionals.md --- query-languages/m/m-spec-conditionals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-conditionals.md b/query-languages/m/m-spec-conditionals.md index 2818131b3..75c74d3f9 100644 --- a/query-languages/m/m-spec-conditionals.md +++ b/query-languages/m/m-spec-conditionals.md @@ -2,7 +2,7 @@ title: M Language Conditionals description: Describes using conditionals in the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 03/29/2024 ms.custom: "nonautomated-date" --- From f3e8c78523be8bf92e4588dafc49510da8d525f9 Mon Sep 17 00:00:00 2001 From: Jon Burchel Date: Fri, 29 Mar 2024 18:06:24 -0400 Subject: [PATCH 451/934] Update freshness --- query-languages/m/operators.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index 4bcb34503..d159d0b8f 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -2,7 +2,7 @@ description: "Learn more about: Operators" title: "Operators" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 03/29/2024 ms.custom: "nonautomated-date" --- @@ -142,4 +142,4 @@ The meaning of an operator can vary depending on the type of operand values. The |Function|Equals| |------------|----------| |1 + "2"|Error: adding number and text is not supported| - \ No newline at end of file + From 27f78f2e03264890e6e40b871a042014f4305daf Mon Sep 17 00:00:00 2001 From: Jon Burchel Date: Fri, 29 Mar 2024 18:09:51 -0400 Subject: [PATCH 452/934] Update date-functions.md --- query-languages/m/date-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index b811acf7f..c6261f278 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date functions" title: "Date functions" -ms.date: 11/14/2022 +ms.date: 03/29/2024 ms.custom: "nonautomated-date" --- # Date functions From 6a344ee1e9911218907ff2ec32af94d871a2714f Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Fri, 29 Mar 2024 17:24:05 -0700 Subject: [PATCH 453/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 75789039c..609ce251b 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -7,6 +7,8 @@ ms.reviewer: ms.topic: how-to author: maggieMSFT ms.author: maggies +no-loc: [CoPilot] +#customer intent: As a DAX query writer, I want to use Copilot to help me write queries. --- # Write DAX queries with Copilot @@ -115,4 +117,4 @@ Because I asked Copilot in the context of a DAX query that I highlighted, it gav - [Overview of Copilot in Fabric and Power BI](/fabric/get-started/copilot-fabric-overview#enable-copilot) - [DAX query view](/power-bi/transform-model/dax-query-view) -- [DAX queries](https://aka.ms/dax-queries) \ No newline at end of file +- [DAX queries](https://aka.ms/dax-queries) From f23abb6e280017c12d2b44b3b4d872980db7e767 Mon Sep 17 00:00:00 2001 From: Kate Follis <28766705+kfollis@users.noreply.github.com> Date: Tue, 2 Apr 2024 13:47:59 -0700 Subject: [PATCH 454/934] Update sumx-function-dax.md --- query-languages/dax/sumx-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/sumx-function-dax.md b/query-languages/dax/sumx-function-dax.md index f6a029604..1abde17a8 100644 --- a/query-languages/dax/sumx-function-dax.md +++ b/query-languages/dax/sumx-function-dax.md @@ -27,7 +27,7 @@ A decimal number. - The SUMX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers you want to sum, or an expression that evaluates to a column. -- The SUMX is an iterator function. Iterator functions loop through all the rows in the input table and save the expression result in a temporary memory storage. They then apply aggregation to the temporary storage results, freeing up memory usage and visualizing the calculation result. +- The SUMX is an [iterator function](dax-glossary.md#iterator-function). - Only the numbers in the column are counted. Blanks, logical values, and text are ignored. From 9060c7b13122ae286cb0fba98c8c079bc565121c Mon Sep 17 00:00:00 2001 From: Anthony Date: Wed, 10 Apr 2024 11:54:09 +1000 Subject: [PATCH 455/934] Update addcolumns-function-dax.md Incorrect DAX --- query-languages/dax/addcolumns-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/addcolumns-function-dax.md b/query-languages/dax/addcolumns-function-dax.md index e0d62b6a3..75ffc7c78 100644 --- a/query-languages/dax/addcolumns-function-dax.md +++ b/query-languages/dax/addcolumns-function-dax.md @@ -33,7 +33,7 @@ A table with all its original columns and the added ones. The following example returns an extended version of the Product Category table that includes total sales values from the reseller channel and the internet sales. ```dax -ADDCOLUMNS(ProductCategory, +ADDCOLUMNS(ProductCategory , "Internet Sales", SUMX(RELATEDTABLE(InternetSales_USD), InternetSales_USD[SalesAmount_USD]) , "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])) ``` From d78cd8165c9a266852585ea52b4226dae75d009e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Nyffenegger?= Date: Mon, 15 Apr 2024 19:26:40 +0200 Subject: [PATCH 456/934] Change **argname** to argname Some function signatures had their argument names placed between two stars on either side. This commit changes them to ... to align them with those found in the majority of *.md files. --- query-languages/m/cube-addandexpanddimensioncolumn.md | 3 ++- query-languages/m/cube-addmeasurecolumn.md | 2 +- query-languages/m/cube-collapseandremovecolumns.md | 2 +- query-languages/m/cube-dimensions.md | 2 +- query-languages/m/cube-displayfolders.md | 2 +- query-languages/m/cube-measures.md | 2 +- query-languages/m/date-dayofweekname.md | 2 +- query-languages/m/saphana-database.md | 2 +- 8 files changed, 9 insertions(+), 8 deletions(-) diff --git a/query-languages/m/cube-addandexpanddimensioncolumn.md b/query-languages/m/cube-addandexpanddimensioncolumn.md index 3ade5d7c1..f7277d4f9 100644 --- a/query-languages/m/cube-addandexpanddimensioncolumn.md +++ b/query-languages/m/cube-addandexpanddimensioncolumn.md @@ -6,7 +6,8 @@ title: "Cube.AddAndExpandDimensionColumn" ## Syntax -

Cube.AddAndExpandDimensionColumn(**cube** as table, **dimensionSelector** as any, **attributeNames** as list, optional **newColumnNames** as any) as table
+
+Cube.AddAndExpandDimensionColumn(cube as table, dimensionSelector as any, attributeNames as list, optional newColumnNames as any) as table
 
## About diff --git a/query-languages/m/cube-addmeasurecolumn.md b/query-languages/m/cube-addmeasurecolumn.md index cca1e6968..777b8ef62 100644 --- a/query-languages/m/cube-addmeasurecolumn.md +++ b/query-languages/m/cube-addmeasurecolumn.md @@ -7,7 +7,7 @@ title: "Cube.AddMeasureColumn" ## Syntax
-Cube.AddMeasureColumn(**cube** as table, **column** as text, **measureSelector** as any) as table
+Cube.AddMeasureColumn(cube as table, column as text, measureSelector as any) as table
 
## About diff --git a/query-languages/m/cube-collapseandremovecolumns.md b/query-languages/m/cube-collapseandremovecolumns.md index dd1c6c877..9da814f58 100644 --- a/query-languages/m/cube-collapseandremovecolumns.md +++ b/query-languages/m/cube-collapseandremovecolumns.md @@ -7,7 +7,7 @@ title: "Cube.CollapseAndRemoveColumns" ## Syntax
-Cube.CollapseAndRemoveColumns(**cube** as table, **columnNames** as list) as table
+Cube.CollapseAndRemoveColumns(cube as table, columnNames as list) as table
 
## About diff --git a/query-languages/m/cube-dimensions.md b/query-languages/m/cube-dimensions.md index 69d16e4c0..3805c6444 100644 --- a/query-languages/m/cube-dimensions.md +++ b/query-languages/m/cube-dimensions.md @@ -7,7 +7,7 @@ title: "Cube.Dimensions" ## Syntax
-Cube.Dimensions(**cube** as table) as table
+Cube.Dimensions(cube as table) as table
 
## About diff --git a/query-languages/m/cube-displayfolders.md b/query-languages/m/cube-displayfolders.md index 3922a2412..23e0a83be 100644 --- a/query-languages/m/cube-displayfolders.md +++ b/query-languages/m/cube-displayfolders.md @@ -7,7 +7,7 @@ title: "Cube.DisplayFolders" ## Syntax
-Cube.DisplayFolders(**cube** as table) as table
+Cube.DisplayFolders(cube as table) as table
 
## About diff --git a/query-languages/m/cube-measures.md b/query-languages/m/cube-measures.md index c14b3eb48..28dd7b1a0 100644 --- a/query-languages/m/cube-measures.md +++ b/query-languages/m/cube-measures.md @@ -7,7 +7,7 @@ title: "Cube.Measures" ## Syntax
-Cube.Measures(**cube** as any) as table
+Cube.Measures(cube as any) as table
 
## About diff --git a/query-languages/m/date-dayofweekname.md b/query-languages/m/date-dayofweekname.md index 442427bb5..d18dea746 100644 --- a/query-languages/m/date-dayofweekname.md +++ b/query-languages/m/date-dayofweekname.md @@ -7,7 +7,7 @@ title: "Date.DayOfWeekName" ## Syntax
-Date.DayOfWeekName(date as any, optional culture as nullable text)
+Date.DayOfWeekName(date as any, optional culture as nullable text) as any
 
## About diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index c05ce0d10..66efa5f69 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -7,7 +7,7 @@ title: "SapHana.Database" ## Syntax
-SapHana.Database(**server** as text, optional **options** as nullable record) as table
+SapHana.Database(server as text, optional options as nullable record) as table
 
## About From 4fa138747ec515a63d3bb70a0646a3bed0995a4d Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 15 Apr 2024 11:11:35 -0700 Subject: [PATCH 457/934] Fixed return value in Date.DayOfWeekName --- query-languages/m/date-dayofweekname.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/query-languages/m/date-dayofweekname.md b/query-languages/m/date-dayofweekname.md index d18dea746..5234aabc4 100644 --- a/query-languages/m/date-dayofweekname.md +++ b/query-languages/m/date-dayofweekname.md @@ -7,7 +7,8 @@ title: "Date.DayOfWeekName" ## Syntax
-Date.DayOfWeekName(date as any, optional culture as nullable text) as any
+Date.DayOfWeekName(date as any, optional culture as nullable text) as nullable text
+
 
## About From 89fc042e6a17254e6f141f29defca68a0defa681 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 22 Apr 2024 09:41:41 -0700 Subject: [PATCH 458/934] renaming some files to align to naming conventions, plus updating TOC in prep of applies-to automation --- ...ilter-function.md => crossfilter-function-dax.md} | 0 ...tatable-function.md => datatable-function-dax.md} | 0 .../dax/{error-function.md => error-function-dax.md} | 0 ...es-function.md => generateseries-function-dax.md} | 0 ...lue-function.md => selectedvalue-function-dax.md} | 0 query-languages/dax/toc.yml | 12 ++++++------ .../{treatas-function.md => treatas-function-dax.md} | 0 7 files changed, 6 insertions(+), 6 deletions(-) rename query-languages/dax/{crossfilter-function.md => crossfilter-function-dax.md} (100%) rename query-languages/dax/{datatable-function.md => datatable-function-dax.md} (100%) rename query-languages/dax/{error-function.md => error-function-dax.md} (100%) rename query-languages/dax/{generateseries-function.md => generateseries-function-dax.md} (100%) rename query-languages/dax/{selectedvalue-function.md => selectedvalue-function-dax.md} (100%) rename query-languages/dax/{treatas-function.md => treatas-function-dax.md} (100%) diff --git a/query-languages/dax/crossfilter-function.md b/query-languages/dax/crossfilter-function-dax.md similarity index 100% rename from query-languages/dax/crossfilter-function.md rename to query-languages/dax/crossfilter-function-dax.md diff --git a/query-languages/dax/datatable-function.md b/query-languages/dax/datatable-function-dax.md similarity index 100% rename from query-languages/dax/datatable-function.md rename to query-languages/dax/datatable-function-dax.md diff --git a/query-languages/dax/error-function.md b/query-languages/dax/error-function-dax.md similarity index 100% rename from query-languages/dax/error-function.md rename to query-languages/dax/error-function-dax.md diff --git a/query-languages/dax/generateseries-function.md b/query-languages/dax/generateseries-function-dax.md similarity index 100% rename from query-languages/dax/generateseries-function.md rename to query-languages/dax/generateseries-function-dax.md diff --git a/query-languages/dax/selectedvalue-function.md b/query-languages/dax/selectedvalue-function-dax.md similarity index 100% rename from query-languages/dax/selectedvalue-function.md rename to query-languages/dax/selectedvalue-function-dax.md diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 91a54c0a3..84c7b46c2 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -192,7 +192,7 @@ - name: RUNNINGSUM href: runningsum-function-dax.md - name: SELECTEDVALUE - href: selectedvalue-function.md + href: selectedvalue-function-dax.md - name: WINDOW href: window-function-dax.md - name: Financial functions @@ -512,7 +512,7 @@ - name: BLANK href: blank-function-dax.md - name: ERROR - href: error-function.md + href: error-function-dax.md - name: EVALUATEANDLOG href: evaluateandlog-function-dax.md - name: TOCSV @@ -540,7 +540,7 @@ - name: Relationship functions href: relationship-functions-dax.md - name: CROSSFILTER - href: crossfilter-function.md + href: crossfilter-function-dax.md - name: RELATED href: related-function-dax.md - name: RELATEDTABLE @@ -650,7 +650,7 @@ - name: CURRENTGROUP href: currentgroup-function-dax.md - name: DATATABLE - href: datatable-function.md + href: datatable-function-dax.md - name: DETAILROWS href: detailrows-function-dax.md - name: DISTINCT (column) @@ -666,7 +666,7 @@ - name: GENERATEALL href: generateall-function-dax.md - name: GENERATESERIES - href: generateseries-function.md + href: generateseries-function-dax.md - name: GROUPBY href: groupby-function-dax.md - name: IGNORE @@ -700,7 +700,7 @@ - name: TOPN href: topn-function-dax.md - name: TREATAS - href: treatas-function.md + href: treatas-function-dax.md - name: UNION href: union-function-dax.md - name: VALUES diff --git a/query-languages/dax/treatas-function.md b/query-languages/dax/treatas-function-dax.md similarity index 100% rename from query-languages/dax/treatas-function.md rename to query-languages/dax/treatas-function-dax.md From 2b2e75875a907dd6c1889c5ceaff33894e35e415 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 22 Apr 2024 13:39:06 -0700 Subject: [PATCH 459/934] taking care of broken links --- query-languages/dax/best-practices/dax-selectedvalue.md | 2 +- query-languages/dax/calculate-function-dax.md | 2 +- query-languages/dax/calculatetable-function-dax.md | 2 +- query-languages/dax/dax-queries.md | 2 +- query-languages/dax/filter-functions-dax.md | 2 +- query-languages/dax/other-functions-dax.md | 2 +- query-languages/dax/relationship-functions-dax.md | 2 +- query-languages/dax/table-manipulation-functions-dax.md | 6 +++--- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/query-languages/dax/best-practices/dax-selectedvalue.md b/query-languages/dax/best-practices/dax-selectedvalue.md index 439db11a4..34947aaec 100644 --- a/query-languages/dax/best-practices/dax-selectedvalue.md +++ b/query-languages/dax/best-practices/dax-selectedvalue.md @@ -29,7 +29,7 @@ The use of the HASONEVALUE is a defensive technique. It's required because it's ## Recommendation -It's recommended that you use the [SELECTEDVALUE](../selectedvalue-function.md) function. It achieves the same outcome as the pattern described in this article, yet more efficiently and elegantly. +It's recommended that you use the [SELECTEDVALUE](../selectedvalue-function-dax.md) function. It achieves the same outcome as the pattern described in this article, yet more efficiently and elegantly. Using the SELECTEDVALUE function, the example measure definition is now rewritten. diff --git a/query-languages/dax/calculate-function-dax.md b/query-languages/dax/calculate-function-dax.md index ba89b7fe7..6b2274037 100644 --- a/query-languages/dax/calculate-function-dax.md +++ b/query-languages/dax/calculate-function-dax.md @@ -68,7 +68,7 @@ Filter modifier functions allow you to do more than simply add filters. They pro |[ALL](all-function-dax.md) 1, [ALLEXCEPT](allexcept-function-dax.md), [ALLNOBLANKROW](allnoblankrow-function-dax.md)|Remove filters from one or more columns, or from all columns of a single table.| |[KEEPFILTERS](keepfilters-function-dax.md)|Add filter without removing existing filters on the same columns.| |[USERELATIONSHIP](userelationship-function-dax.md)|Engage an inactive relationship between related columns, in which case the active relationship will automatically become inactive.| -|[CROSSFILTER](crossfilter-function.md)|Modify filter direction (from both to single, or from single to both) or disable a relationship.| +|[CROSSFILTER](crossfilter-function-dax.md)|Modify filter direction (from both to single, or from single to both) or disable a relationship.| 1 The ALL function and its variants behave as both filter modifiers and as functions that return table objects. If the REMOVEFILTERS function is supported by your tool, it's better to use it to remove filters. diff --git a/query-languages/dax/calculatetable-function-dax.md b/query-languages/dax/calculatetable-function-dax.md index 22186622f..d0f908df8 100644 --- a/query-languages/dax/calculatetable-function-dax.md +++ b/query-languages/dax/calculatetable-function-dax.md @@ -61,7 +61,7 @@ Filter modifier functions allow you to do more than simply add filters. They pro |[ALL](all-function-dax.md) 1, [ALLEXCEPT](allexcept-function-dax.md), [ALLNOBLANKROW](allnoblankrow-function-dax.md)|Remove filters from one or more columns, or from all columns of a single table.| |[KEEPFILTERS](keepfilters-function-dax.md)|Add filter without removing existing filters on the same columns.| |[USERELATIONSHIP](userelationship-function-dax.md)|Engage an inactive relationship between related columns, in which case the active relationship will automatically become inactive.| -|[CROSSFILTER](crossfilter-function.md)|Modify filter direction (from both to single, or from single to both) or disable a relationship.| +|[CROSSFILTER](crossfilter-function-dax.md)|Modify filter direction (from both to single, or from single to both) or disable a relationship.| 1 The ALL function and its variants behave as both filter modifiers and as functions that return table objects. If the REMOVEFILTERS function is supported by your tool, it's better to use it to remove filters. diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index ca966bdd7..ce4a2b7a2 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -197,5 +197,5 @@ Reference XMLA parameters by prefixing the name of the parameter with an `@` cha [DAX statements](statements-dax.md) [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) -[TREATAS](treatas-function.md) +[TREATAS](treatas-function-dax.md) [FILTER](filter-function-dax.md) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index b3f145caf..f2119ba69 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -37,5 +37,5 @@ The filter and value functions in DAX are some of the most complex and powerful, |[REMOVEFILTERS](removefilters-function-dax.md)|Clears filters from the specified tables or columns.| |[ROWNUMBER](rownumber-function-dax.md)| Returns the unique ranking of a row within the given interval. | |[RUNNINGSUM](runningsum-function-dax.md)|Returns a running sum calculated along the given axis of the visual matrix.| -|[SELECTEDVALUE](selectedvalue-function.md) | Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. | +|[SELECTEDVALUE](selectedvalue-function-dax.md) | Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. | |[WINDOW](window-function-dax.md)| Returns multiple rows which are positioned within the given interval. | diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index a0a394d0f..d457ff4de 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -11,7 +11,7 @@ These functions perform unique actions that cannot be defined by any of the cate |Function |Description | |---------|---------| |[BLANK](blank-function-dax.md) | Returns a blank. | -|[ERROR](error-function.md) | Raises an error with an error message. | +|[ERROR](error-function-dax.md) | Raises an error with an error message. | |[EVALUATEANDLOG](evaluateandlog-function-dax.md) | Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. | |[TOCSV](tocsv-function-dax.md) | Returns a table as a string in CSV format. | |[TOJSON](tojson-function-dax.md) | Returns a table as a string in JSON format. | diff --git a/query-languages/dax/relationship-functions-dax.md b/query-languages/dax/relationship-functions-dax.md index 0d844b02c..2071e416e 100644 --- a/query-languages/dax/relationship-functions-dax.md +++ b/query-languages/dax/relationship-functions-dax.md @@ -10,7 +10,7 @@ Functions in this category are for managing and utilizing relationships between |Function |Description | |---------|---------| -|[CROSSFILTER ](crossfilter-function.md) | Specifies the cross-filtering direction to be used in a calculation for a relationship that exists between two columns. | +|[CROSSFILTER ](crossfilter-function-dax.md) | Specifies the cross-filtering direction to be used in a calculation for a relationship that exists between two columns. | |[RELATED](related-function-dax.md) | Returns a related value from another table. | |[RELATEDTABLE](relatedtable-function-dax.md) | Evaluates a table expression in a context modified by the given filters. | |[USERELATIONSHIP](userelationship-function-dax.md) | Specifies the relationship to be used in a specific calculation as the one that exists between columnName1 and columnName2. | diff --git a/query-languages/dax/table-manipulation-functions-dax.md b/query-languages/dax/table-manipulation-functions-dax.md index a5bd6272b..068c2c915 100644 --- a/query-languages/dax/table-manipulation-functions-dax.md +++ b/query-languages/dax/table-manipulation-functions-dax.md @@ -14,7 +14,7 @@ These functions return a table or manipulate existing tables. |[ADDMISSINGITEMS](addmissingitems-function-dax.md) | Adds combinations of items from multiple columns to a table if they do not already exist. | |[CROSSJOIN](crossjoin-function-dax.md) | Returns a table that contains the Cartesian product of all rows from all tables in the arguments. | |[CURRENTGROUP](currentgroup-function-dax.md) | Returns a set of rows from the table argument of a GROUPBY expression. | -|[DATATABLE](datatable-function.md) | Provides a mechanism for declaring an inline set of data values. | +|[DATATABLE](datatable-function-dax.md) | Provides a mechanism for declaring an inline set of data values. | |[DETAILROWS](detailrows-function-dax.md) | Evaluates a Detail Rows Expression defined for a measure and returns the data. | |[DISTINCT column](distinct-function-dax.md) | Returns a one-column table that contains the distinct values from the specified column. | |[DISTINCT table](distinct-table-function-dax.md) | Returns a table by removing duplicate rows from another table or expression. | @@ -22,7 +22,7 @@ These functions return a table or manipulate existing tables. |[FILTERS](filters-function-dax.md) | Returns a table of values directly applied as filters to *columnName*. | |[GENERATE](generate-function-dax.md) | Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. | |[GENERATEALL](generateall-function-dax.md) | Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. | -|[GENERATESERIES](generateseries-function.md) | Returns a single column table containing the values of an arithmetic series. | +|[GENERATESERIES](generateseries-function-dax.md) | Returns a single column table containing the values of an arithmetic series. | |[GROUPBY](groupby-function-dax.md) | Similar to the SUMMARIZE function, GROUPBY does not do an implicit CALCULATE for any extension columns that it adds. | |[IGNORE](ignore-function-dax.md) | Modifies SUMMARIZECOLUMNS by omitting specific expressions from the BLANK/NULL evaluation. | |[INTERSECT](intersect-function-dax.md) | Returns the row intersection of two tables, retaining duplicates. | @@ -39,6 +39,6 @@ These functions return a table or manipulate existing tables. |[SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) | Returns a summary table over a set of groups. | |[Table Constructor](table-Constructor.md) | Returns a table of one or more columns. | |[TOPN](topn-function-dax.md) | Returns the top N rows of the specified table. | -|[TREATAS](treatas-function.md) | Applies the result of a table expression as filters to columns from an unrelated table. | +|[TREATAS](treatas-function-dax.md) | Applies the result of a table expression as filters to columns from an unrelated table. | |[UNION](union-function-dax.md) | Creates a union (join) table from a pair of tables. | |[VALUES](values-function-dax.md) | Returns a one-column table that contains the distinct values from the specified table or column. | From c4f0e1d3a7a25ac2ea72d310551629fceb571d97 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 22 Apr 2024 13:43:17 -0700 Subject: [PATCH 460/934] adding redirects to remove errors --- .openpublishing.redirection.json | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index b9a683c8a..7666acb28 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -49,6 +49,36 @@ "source_path": "query-languages/m/table-onerror.md", "redirect_url": "/m/function-values", "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/crossfilter-function.md", + "redirect_url": "/dax/containsrow-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/datatable-function.md", + "redirect_url": "/dax/datatable-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/error-function.md", + "redirect_url": "/dax/error-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/generateseries-function.md", + "redirect_url": "/dax/generateseries-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/selectedvalue-function.md", + "redirect_url": "/dax/selectedvalue-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/treatas-function.md", + "redirect_url": "/dax/treatas-function-dax", + "redirect_document_id": false } ] } From 351294b4ef614256cfe2e40dd60abc58ff6313e9 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 22 Apr 2024 13:20:38 -0700 Subject: [PATCH 461/934] First version of applies-to header handling --- .../dax/__actions/applies-to-status.csv | 434 ++++++++++++++++++ query-languages/dax/__actions/applies-to.py | 108 +++++ ...-tables-visual-calculations-discouraged.md | 4 + ...ures-columns-tables-visual-calculations.md | 1 + .../applies-to-measures-columns-tables.md | 1 + .../applies-to-visual-calculations.md | 1 + .../dax/includes/media/discouraged.png | Bin 0 -> 612 bytes query-languages/dax/includes/media/no.png | Bin 0 -> 874 bytes query-languages/dax/includes/media/yes.png | Bin 0 -> 614 bytes 9 files changed, 549 insertions(+) create mode 100644 query-languages/dax/__actions/applies-to-status.csv create mode 100644 query-languages/dax/__actions/applies-to.py create mode 100644 query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md create mode 100644 query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md create mode 100644 query-languages/dax/includes/applies-to-measures-columns-tables.md create mode 100644 query-languages/dax/includes/applies-to-visual-calculations.md create mode 100644 query-languages/dax/includes/media/discouraged.png create mode 100644 query-languages/dax/includes/media/no.png create mode 100644 query-languages/dax/includes/media/yes.png diff --git a/query-languages/dax/__actions/applies-to-status.csv b/query-languages/dax/__actions/applies-to-status.csv new file mode 100644 index 000000000..efbe69be9 --- /dev/null +++ b/query-languages/dax/__actions/applies-to-status.csv @@ -0,0 +1,434 @@ +FunctionName,AppliesToStatus +ABS,ALL +ACCRINT,ALL +ACCRINTM,ALL +ACOS,ALL +ACOSH,ALL +ACOT,ALL +ACOTH,ALL +ADDCOLUMNS,ALL +ADDMISSINGITEMS,MCT +ALL,ALL +ALLCROSSFILTERED,ALL +ALLEXCEPT,MCT +ALLNOBLANKROW,ALL +ALLSELECTED,ALL +AMORDEGRC,ALL +AMORLINC,ALL +AND,ALL +APPROXIMATEDISTINCTCOUNT,MCT +ASIN,ALL +ASINH,ALL +ATAN,ALL +ATANH,ALL +AVERAGE,ALL +AVERAGEA,ALL +AVERAGEX,ALL +BETA.DIST,ALL +BETA.INV,ALL +BITAND,ALL +BITLSHIFT,ALL +BITOR,ALL +BITRSHIFT,ALL +BITXOR,ALL +BLANK,ALL +CALCULATE,ALL +CALCULATETABLE,ALL +CALENDAR,ALL +CALENDARAUTO,DISCOURAGE +CEILING,ALL +CHISQ.DIST,ALL +CHISQ.DIST.RT,ALL +CHISQ.INV,ALL +CHISQ.INV.RT,ALL +CLOSINGBALANCEMONTH,DISCOURAGE +CLOSINGBALANCEQUARTER,DISCOURAGE +CLOSINGBALANCEYEAR,DISCOURAGE +COALESCE,ALL +COLLAPSE,VC +COLLAPSEALL,VC +COLUMNSTATISTICS,DISCOURAGE +COMBIN,ALL +COMBINA,ALL +COMBINEVALUES,ALL +CONCATENATE,ALL +CONCATENATEX,ALL +CONFIDENCE.NORM,ALL +CONFIDENCE.T,ALL +CONTAINS,ALL +CONTAINSROW,ALL +CONTAINSSTRING,ALL +CONTAINSSTRINGEXACT,ALL +CONVERT,ALL +COS,ALL +COSH,ALL +COT,ALL +COTH,ALL +COUNT,ALL +COUNTA,ALL +COUNTAX,ALL +COUNTBLANK,ALL +COUNTROWS,ALL +COUNTX,ALL +COUPDAYBS,ALL +COUPDAYS,ALL +COUPDAYSNC,ALL +COUPNCD,ALL +COUPNUM,ALL +COUPPCD,ALL +CROSSFILTER,MCT +CROSSJOIN,ALL +CUMIPMT,ALL +CUMPRINC,ALL +CURRENCY,ALL +CURRENTGROUP,DISCOURAGE +CUSTOMDATA,ALL +DATATABLE,ALL +DATE,ALL +DATEADD,DISCOURAGE +DATEDIFF,ALL +DATESBETWEEN,DISCOURAGE +DATESINPERIOD,DISCOURAGE +DATESMTD,DISCOURAGE +DATESQTD,DISCOURAGE +DATESYTD,DISCOURAGE +DATEVALUE,ALL +DAY,ALL +DB,ALL +DDB,ALL +DEGREES,ALL +DETAILROWS,MCT +DISC,ALL +DISTINCT,ALL +DISTINCTCOUNT,ALL +DISTINCTCOUNTNOBLANK,ALL +DIVIDE,ALL +DOLLARDE,ALL +DOLLARFR,ALL +DURATION,ALL +EARLIER,MCT +EARLIEST,MCT +EDATE,ALL +EFFECT,ALL +ENDOFMONTH,DISCOURAGE +ENDOFQUARTER,DISCOURAGE +ENDOFYEAR,DISCOURAGE +EOMONTH,ALL +ERROR,ALL +EVALUATEANDLOG,ALL +EVEN,ALL +EXACT,ALL +EXCEPT,ALL +EXP,ALL +EXPAND,VC +EXPANDALL,VC +EXPON.DIST,ALL +FACT,ALL +FILTER,ALL +FILTERS,ALL +FIND,ALL +FIRST,VC +FIRSTDATE,DISCOURAGE +FIRSTNONBLANK,DISCOURAGE +FIRSTNONBLANKVALUE,DISCOURAGE +FIXED,ALL +FLOOR,ALL +FORMAT,ALL +FV,ALL +GCD,ALL +GENERATE,ALL +GENERATEALL,ALL +GENERATESERIES,ALL +GEOMEAN,ALL +GEOMEANX,ALL +GROUPBY,DISCOURAGE +HASONEFILTER,ALL +HASONEVALUE,ALL +HOUR,ALL +IF,ALL +IF.EAGER,ALL +IFERROR,ALL +IGNORE,MCT +INDEX,ALL +INFO.ALTERNATEOFDEFINITIONS,DISCOURAGE +INFO.ANNOTATIONS,DISCOURAGE +INFO.ATTRIBUTEHIERARCHIES,DISCOURAGE +INFO.ATTRIBUTEHIERARCHYSTORAGES,DISCOURAGE +INFO.CALCULATIONGROUPS,DISCOURAGE +INFO.CALCULATIONITEMS,DISCOURAGE +INFO.CHANGEDPROPERTIES,DISCOURAGE +INFO.COLUMNPARTITIONSTORAGES,DISCOURAGE +INFO.COLUMNPERMISSIONS,DISCOURAGE +INFO.COLUMNS,DISCOURAGE +INFO.COLUMNSTORAGES,DISCOURAGE +INFO.CULTURES,DISCOURAGE +INFO.DATACOVERAGEDEFINITIONS,DISCOURAGE +INFO.DATASOURCES,DISCOURAGE +INFO.DELTATABLEMETADATASTORAGES,DISCOURAGE +INFO.DETAILROWSDEFINITIONS,DISCOURAGE +INFO.DICTIONARYSTORAGES,DISCOURAGE +INFO.EXCLUDEDARTIFACTS,DISCOURAGE +INFO.EXPRESSIONS,DISCOURAGE +INFO.EXTENDEDPROPERTIES,DISCOURAGE +INFO.FORMATSTRINGDEFINITIONS,DISCOURAGE +INFO.FUNCTIONS,DISCOURAGE +INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES,DISCOURAGE +INFO.GROUPBYCOLUMNS,DISCOURAGE +INFO.HIERARCHIES,DISCOURAGE +INFO.HIERARCHYSTORAGES,DISCOURAGE +INFO.KPIS,DISCOURAGE +INFO.LEVELS,DISCOURAGE +INFO.LINGUISTICMETADATA,DISCOURAGE +INFO.MEASURES,DISCOURAGE +INFO.MODEL,DISCOURAGE +INFO.OBJECTTRANSLATIONS,DISCOURAGE +INFO.PARQUETFILESTORAGES,DISCOURAGE +INFO.PARTITIONS,DISCOURAGE +INFO.PARTITIONSTORAGES,DISCOURAGE +INFO.PERSPECTIVECOLUMNS,DISCOURAGE +INFO.PERSPECTIVEHIERARCHIES,DISCOURAGE +INFO.PERSPECTIVEMEASURES,DISCOURAGE +INFO.PERSPECTIVES,DISCOURAGE +INFO.PERSPECTIVETABLES,DISCOURAGE +INFO.QUERYGROUPS,DISCOURAGE +INFO.REFRESHPOLICIES,DISCOURAGE +INFO.RELATEDCOLUMNDETAILS,DISCOURAGE +INFO.RELATIONSHIPINDEXSTORAGES,DISCOURAGE +INFO.RELATIONSHIPS,DISCOURAGE +INFO.RELATIONSHIPSTORAGES,DISCOURAGE +INFO.ROLEMEMBERSHIPS,DISCOURAGE +INFO.ROLES,DISCOURAGE +INFO.SEGMENTMAPSTORAGES,DISCOURAGE +INFO.SEGMENTSTORAGES,DISCOURAGE +INFO.STORAGEFILES,DISCOURAGE +INFO.STORAGEFOLDERS,DISCOURAGE +INFO.TABLEPERMISSIONS,DISCOURAGE +INFO.TABLES,DISCOURAGE +INFO.TABLESTORAGES,DISCOURAGE +INFO.VARIATIONS,DISCOURAGE +INT,ALL +INTERSECT,ALL +INTRATE,ALL +IPMT,ALL +ISAFTER,ALL +ISATLEVEL,VC +ISBLANK,ALL +ISCROSSFILTERED,ALL +ISEMPTY,ALL +ISERROR,ALL +ISEVEN,ALL +ISFILTERED,ALL +ISINSCOPE,ALL +ISLOGICAL,ALL +ISNONTEXT,ALL +ISNUMBER,ALL +ISO.CEILING,ALL +ISODD,ALL +ISONORAFTER,ALL +ISPMT,ALL +ISSELECTEDMEASURE,MCT +ISSUBTOTAL,MCT +ISTEXT,ALL +KEEPFILTERS,ALL +LAST,VC +LASTDATE,DISCOURAGE +LASTNONBLANK,DISCOURAGE +LASTNONBLANKVALUE,DISCOURAGE +LCM,ALL +LEFT,ALL +LEN,ALL +LINEST,ALL +LINESTX,ALL +LN,ALL +LOG,ALL +LOG10,ALL +LOOKUP,VC +LOOKUPVALUE,ALL +LOWER,ALL +MATCHBY,ALL +MAX,ALL +MAXA,ALL +MAXX,ALL +MDURATION,ALL +MEDIAN,ALL +MEDIANX,ALL +MID,ALL +MIN,ALL +MINA,ALL +MINUTE,ALL +MINX,ALL +MOD,ALL +MONTH,ALL +MOVINGAVERAGE,VC +MROUND,ALL +NAMEOF,ALL +NATURALINNERJOIN,ALL +NATURALLEFTOUTERJOIN,ALL +NETWORKDAYS,ALL +NEXT,VC +NEXTDAY,DISCOURAGE +NEXTMONTH,DISCOURAGE +NEXTQUARTER,DISCOURAGE +NEXTYEAR,DISCOURAGE +NOMINAL,ALL +NONVISUAL,MCT +NORM.DIST,ALL +NORM.INV,ALL +NORM.S.DIST,ALL +NORM.S.INV,ALL +NOT,ALL +NOW,ALL +NPER,ALL +ODD,ALL +ODDFPRICE,ALL +ODDFYIELD,ALL +ODDLPRICE,ALL +ODDLYIELD,ALL +OFFSET,ALL +OPENINGBALANCEMONTH,DISCOURAGE +OPENINGBALANCEQUARTER,DISCOURAGE +OPENINGBALANCEYEAR,DISCOURAGE +OR,ALL +ORDERBY,ALL +PARALLELPERIOD,DISCOURAGE +PARTITIONBY,ALL +PATH,ALL +PATHCONTAINS,ALL +PATHITEM,ALL +PATHITEMREVERSE,ALL +PATHLENGTH,ALL +PDURATION,ALL +PERCENTILE.EXC,ALL +PERCENTILE.INC,ALL +PERCENTILEX.EXC,ALL +PERCENTILEX.INC,ALL +PERMUT,ALL +PI,ALL +PMT,ALL +POISSON.DIST,ALL +POWER,ALL +PPMT,ALL +PREVIOUS,VC +PREVIOUSDAY,DISCOURAGE +PREVIOUSMONTH,DISCOURAGE +PREVIOUSQUARTER,DISCOURAGE +PREVIOUSYEAR,DISCOURAGE +PRICE,ALL +PRICEDISC,ALL +PRICEMAT,ALL +PRODUCT,ALL +PRODUCTX,ALL +PV,ALL +QUARTER,ALL +QUOTIENT,ALL +RADIANS,ALL +RAND,ALL +RANDBETWEEN,ALL +RANGE,VC +RANK,ALL +RANK.EQ,ALL +RANKX,ALL +RATE,ALL +RECEIVED,ALL +RELATED,MCT +RELATEDTABLE,MCT +REMOVEFILTERS,ALL +REPLACE,ALL +REPT,ALL +RIGHT,ALL +ROLLUP,MCT +ROLLUPADDISSUBTOTAL,MCT +ROLLUPGROUP,MCT +ROLLUPISSUBTOTAL,MCT +ROUND,ALL +ROUNDDOWN,ALL +ROUNDUP,ALL +ROW,ALL +ROWNUMBER,ALL +RRI,ALL +RUNNINGSUM,VC +SAMEPERIODLASTYEAR,DISCOURAGE +SAMPLE,ALL +SAMPLEAXISWITHLOCALMINMAX,DISCOURAGE +SAMPLECARTESIANPOINTSBYCOVER,DISCOURAGE +SEARCH,ALL +SECOND,ALL +SELECTCOLUMNS,ALL +SELECTEDMEASURE,MCT +SELECTEDMEASUREFORMATSTRING,MCT +SELECTEDMEASURENAME,MCT +SELECTEDVALUE,ALL +SIGN,ALL +SIN,ALL +SINH,ALL +SLN,ALL +SQRT,ALL +SQRTPI,ALL +STARTOFMONTH,DISCOURAGE +STARTOFQUARTER,DISCOURAGE +STARTOFYEAR,DISCOURAGE +STDEV.P,ALL +STDEV.S,ALL +STDEVX.P,ALL +STDEVX.S,ALL +SUBSTITUTE,ALL +SUBSTITUTEWITHINDEX,MCT +SUM,ALL +SUMMARIZE,ALL +SUMMARIZECOLUMNS,MCT +SUMX,ALL +SWITCH,ALL +SYD,ALL +T.DIST,ALL +T.DIST.2T,ALL +T.DIST.RT,ALL +T.INV,ALL +T.INV.2T,ALL +TAN,ALL +TANH,ALL +TBILLEQ,ALL +TBILLPRICE,ALL +TBILLYIELD,ALL +TIME,ALL +TIMEVALUE,ALL +TOCSV,ALL +TODAY,ALL +TOJSON,ALL +TOPN,ALL +TOPNSKIP,MCT +TOTALMTD,DISCOURAGE +TOTALQTD,DISCOURAGE +TOTALYTD,DISCOURAGE +TREATAS,ALL +TRIM,ALL +TRUNC,ALL +UNICHAR,ALL +UNICODE,ALL +UNION,ALL +UPPER,ALL +USERCULTURE,ALL +USERELATIONSHIP,MCT +USERNAME,ALL +USEROBJECTID,ALL +USERPRINCIPALNAME,ALL +UTCNOW,ALL +UTCTODAY,ALL +VALUE,ALL +VALUES,ALL +VAR.P,ALL +VAR.S,ALL +VARX.P,ALL +VARX.S,ALL +VDB,ALL +WEEKDAY,ALL +WEEKNUM,ALL +WINDOW,ALL +XIRR,ALL +XNPV,ALL +YEAR,ALL +YEARFRAC,ALL +YIELD,ALL +YIELDDISC,ALL +YIELDMAT,ALL +FALSE,ALL +TRUE,ALL diff --git a/query-languages/dax/__actions/applies-to.py b/query-languages/dax/__actions/applies-to.py new file mode 100644 index 000000000..fa40a5726 --- /dev/null +++ b/query-languages/dax/__actions/applies-to.py @@ -0,0 +1,108 @@ +from os import listdir +from os.path import isfile, join +import csv + +DEBUG = False +VERBOSE = False + +MDPath = "..//" +functionFileTail = "-function-dax.md" +appliesToPath = "..//includes//" +functionNameStartString = "# " +appliesToStartString = "[!INCLUDE[applies-to-" +appliesToStatusFile = "applies-to-status.csv" +appliesToStatusFileColumns = ("FunctionName","AppliesToStatus") +appliesToAllFlag = "ALL" +appliesToMCTFlag = "MCT" +appliesToVCFlag = "VC" +appliesToDiscourageFlag = "DISCOURAGE" +appliesToPathNoRelative = "includes/" + +# Paths to applies to include files +appliesToAllFile = "applies-to-measures-columns-tables-visual-calculations" #status in CSV: ALL +appliesToAll = appliesToPath+appliesToAllFile+".md" +appliesToMeasuresColumnsTablesFile = "applies-to-measures-columns-tables" #status in CSV: MCT +appliesToMeasuresColumnsTables = appliesToPath+appliesToMeasuresColumnsTablesFile+".md" +appliesToVisualCalculationsFile = "applies-to-visual-calculations" #status in CSV: VC +appliesToVisualCalculations = appliesToPath+appliesToVisualCalculationsFile+".md" +appliesToDiscouragedForVisualCalculationsFile = "applies-to-measures-columns-tables-visual-calculations-discouraged" #DISCOURAGE +appliesToDiscouragedForVisualCalculations = appliesToPath+appliesToDiscouragedForVisualCalculationsFile+".md" + +# load AppliesToStatusFile +appliesToFileContents = None +with open(appliesToStatusFile, 'r') as atsfile: + appliesToFileContents = dict(csv.reader(atsfile)) + # capitalize everything just in case + appliesToFileContents = {k.upper(): v.upper() for k, v + in appliesToFileContents.items()} +if DEBUG: + print(appliesToFileContents["ABS"]) + +# iterate over the function files +thefunctions = [f[0:f.index(functionFileTail)] for f in listdir(MDPath) if isfile(join(MDPath, f)) and + f.endswith(functionFileTail)] +if DEBUG: + print(thefunctions) + print(len(thefunctions)) + +for func in thefunctions: + if DEBUG: + print(func) + funcfile = MDPath+func+functionFileTail + lines = None + with open(funcfile, 'r', encoding='utf-8') as f: + # find the applies to status for this function + appliesToStatus = None + try: + # find the status and load the content + # can be ALL, MCT, VC, DISCOURAGE #[func.upper() + appliesToStatus = appliesToFileContents[func.upper()] + appliesToStatusContent = None + if DEBUG: + print(appliesToStatus) + if appliesToStatus == appliesToAllFlag: + appliesToStatusContent = "[!INCLUDE["+appliesToAllFile+"]("+appliesToPathNoRelative+appliesToAllFile+".md)]" + elif appliesToStatus == appliesToVCFlag: + appliesToStatusContent = "[!INCLUDE["+appliesToVisualCalculationsFile+"]("+appliesToPathNoRelative+appliesToVisualCalculationsFile+".md)]" + elif appliesToStatus == appliesToDiscourageFlag: + appliesToStatusContent = "[!INCLUDE["+appliesToDiscouragedForVisualCalculationsFile+"]("+appliesToPathNoRelative+appliesToDiscouragedForVisualCalculationsFile+".md)]" + elif appliesToStatus == appliesToMCTFlag: + appliesToStatusContent = "[!INCLUDE["+appliesToMeasuresColumnsTablesFile+"]("+appliesToPathNoRelative+appliesToMeasuresColumnsTablesFile+".md)]" + #if appliesToStatusContent is None: + # raise ValueError + # read the file + lines = f.readlines() + # find title line + ind = 0 + for l in lines: + if l.startswith(functionNameStartString): + break + ind = ind+1 + # if line above title contains applies to string, replace if doesn't match, + # otherwise, insert + if lines[ind+2].startswith(appliesToStartString): + if lines[ind+2].strip() == appliesToStatusContent: + if VERBOSE: + print("Applies to line present for {0} and the same. No action needed.".format(func.upper())) + else: + if VERBOSE: + print("Applies to line present for {0} but not the same. Replacing.".format(func.upper())) + # do replace here + lines[ind+2] = appliesToStatusContent + lines.insert(ind+3, "\n") + else: + # insert applies to + if VERBOSE: + print("Applies to line missing for {0}. Inserting.".format(func.upper())) + lines.insert(ind+1, "\n") + lines.insert(ind+2, appliesToStatusContent) + lines.insert(ind+3, "\n") + + if DEBUG: + print(lines) + except (KeyError): + print("KeyError: {0} not found in applies-to file.".format(func.upper())) + + if lines is not None: + with open(funcfile, 'w', encoding='utf8') as fout: + fout.writelines(lines) diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md new file mode 100644 index 000000000..44ac80ab3 --- /dev/null +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md @@ -0,0 +1,4 @@ +**Applies to:** :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="yes" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="discouraged" source="media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) + +> [!NOTE] +> This function is discouraged for use in [visual calculations](/power-bi/transform-model/desktop-visual-calculations-overview) as it likely returns meaningless results. \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md new file mode 100644 index 000000000..90007a718 --- /dev/null +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md @@ -0,0 +1 @@ +**Applies to:** :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated column](power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated table](power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="yes" source="media/yes.png":::[Measure](power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="yes" source="media/yes.png":::[Visual calculation](power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables.md b/query-languages/dax/includes/applies-to-measures-columns-tables.md new file mode 100644 index 000000000..21a09299f --- /dev/null +++ b/query-languages/dax/includes/applies-to-measures-columns-tables.md @@ -0,0 +1 @@ +**Applies to:** :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated column](power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated table](power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="yes" source="media/yes.png":::[Measure](power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="no" source="media/no.png":::[Visual calculation](power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-visual-calculations.md b/query-languages/dax/includes/applies-to-visual-calculations.md new file mode 100644 index 000000000..525f29ec5 --- /dev/null +++ b/query-languages/dax/includes/applies-to-visual-calculations.md @@ -0,0 +1 @@ +**Applies to:** :::image type="icon" alt-text="no" source="media/no.png":::[Calculated column](power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="no" source="media/no.png":::[Calculated table](power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="no" source="media/no.png":::[Measure](power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="yes" source="media/yes.png":::[Visual calculation](power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file diff --git a/query-languages/dax/includes/media/discouraged.png b/query-languages/dax/includes/media/discouraged.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ce9dbc5f270771a764f4fc250ce307adf3c402 GIT binary patch literal 612 zcmV-q0-ODbP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGh)&Kwv)&Y=jd7J7sU}#Jr8ld4v5E3m+t5cIIqOu0gUSO@ycDG3r3I=nwjg7SN~MBl$@T zawXGbQ7ZWBWB3}iT6!XKLa0FLT;v-XM>CigbfJ`JQ>xR)4x)FcO4p2Po^qED{AK*l zmW(4bf~Lxi-TOuI9KA(FL#?p(rAW(rk(w7aFH(udP_LVn5M@f04TK>?StaOBR^1n= zdnj_N(eG>qeZe8}@7dIdt+WfZ+pvs;@=n;jh1PS|G7Q>f%I2qy4+B? yl4%OPl!hzMP&d+xpZ=bHLHhlF#B75YK;#rQIDQhJ{uToO00001D+=^TCDiFvbv#PS{_?BS{~Hb)mp=v5JDn;p0srp zDBgaW-85T$xMZegr&Ez=(t>Ey}+rZ+~|$YN#|mt~xI#DM*RC1^}GS&Ol&CvNL58mSw8<`_Yj=Sus;0jgQ;anX**WR8^qo z!zlEI6Xk~wOloK@0FDs|c7az*3xk0BemZ5p zjtJ`U`t0HIYnvwcd45-~uA9K~|2CI5q&^}j=W^>fmpdpo@%1}K$7cZm1$j9T(lqo- zD;NlAE&y;ixwWXF)~)TqKWm$=fS#PwK{Yl50H`P_L}f)WYN{%Bn#-^p1h&}h;M|_6 zsG(k;PdPsOP3!af0RW6h2#TU`t+WW2&z}LXcg8}R1|t%IqISA>L^Hi$wr({A8Advh znp(TgD!)wp4on-P*&22V8O^rc_nG+x>kCEi-6M}dLI~Pk4?I*)YBzZP|D#Z=GuU2s z54MK$i3&;x!LwIAWgWdrt;u5Zhl6c9IP&J>=weG}-~EF;qQ2Sypi!<6CnX$zBw@ux zu@W{-!ZJym%VTqLt~Ce8Ef~$V$Mto!=7Z}00)LUfCpD&o@&Et;07*qoM6N<$f~ppT Awg3PC literal 0 HcmV?d00001 diff --git a/query-languages/dax/includes/media/yes.png b/query-languages/dax/includes/media/yes.png new file mode 100644 index 0000000000000000000000000000000000000000..d2285c5c46cfb8c983a2a725f4ff13e241a5f319 GIT binary patch literal 614 zcmV-s0-61ZP)Mxgdo$d#k7bF$_Of$yBR1%&{?RX(S-St3z34+VrXLUxEO`o(2VC^ z&+dKC``+ikIsC3rO5tTmTbu{3118W0ECLx|N?K~XR#&)%N?U}1$3VPBECs}*rB?S1 zmA1GByabvx;(1^|T58NQRNA5u$N~}VQ$hi_EG_lbY5H7zU_=M#69$IQzbk`4QrhBx zYpAqE6u6_4?QTsFyE=~F2=7`QK(A})PI1q5ZRg z^H1P-gUOB71V0No-put^_M={)ZBB8!{R91Gn!^WM00`C{)YRo0a`@ zUZ9IkkzRO6sJ@B5s7*s4!p)1LGzL!cc0SJf@3}quy3mYMgz(MDvjB-=e++ih~EgalK(_1H>BM+G@)tWBhcwIC%->I;N$c9E4Ear zT6YO}<}}<)q!wTX2x%S^KmlFSQfa5DJ&~lPz5(}vzb=4}DuLkbFLMD%0_`e6c&_{XFn7~=ecbB33Xr4+-ZB*-T1Bh3d_?=3=T>t<807*qoM6N<$f|?{1 AbN~PV literal 0 HcmV?d00001 From 648e7c7fc686389b162f93a828a4a1dceb2ad39a Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 22 Apr 2024 14:01:53 -0700 Subject: [PATCH 462/934] testing github action for applies to --- query-languages/dax/__actions/test.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 query-languages/dax/__actions/test.txt diff --git a/query-languages/dax/__actions/test.txt b/query-languages/dax/__actions/test.txt new file mode 100644 index 000000000..72a99c19f --- /dev/null +++ b/query-languages/dax/__actions/test.txt @@ -0,0 +1 @@ +this is just a test \ No newline at end of file From 6c3c7ea0c508c699312117b81bbca2a6c48bf230 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 22 Apr 2024 14:10:55 -0700 Subject: [PATCH 463/934] debugging applies to --- query-languages/dax/__actions/applies-to.py | 5 +++-- query-languages/dax/__actions/test.txt | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 query-languages/dax/__actions/test.txt diff --git a/query-languages/dax/__actions/applies-to.py b/query-languages/dax/__actions/applies-to.py index fa40a5726..f4215274e 100644 --- a/query-languages/dax/__actions/applies-to.py +++ b/query-languages/dax/__actions/applies-to.py @@ -1,10 +1,11 @@ -from os import listdir +from os import listdir, getcwd from os.path import isfile, join import csv DEBUG = False VERBOSE = False +cwd = getcwd() MDPath = "..//" functionFileTail = "-function-dax.md" appliesToPath = "..//includes//" @@ -30,7 +31,7 @@ # load AppliesToStatusFile appliesToFileContents = None -with open(appliesToStatusFile, 'r') as atsfile: +with open(join(cwd, appliesToStatusFile), 'r') as atsfile: appliesToFileContents = dict(csv.reader(atsfile)) # capitalize everything just in case appliesToFileContents = {k.upper(): v.upper() for k, v diff --git a/query-languages/dax/__actions/test.txt b/query-languages/dax/__actions/test.txt deleted file mode 100644 index 72a99c19f..000000000 --- a/query-languages/dax/__actions/test.txt +++ /dev/null @@ -1 +0,0 @@ -this is just a test \ No newline at end of file From c72f1dfeeeed52746eaa43905ffc67a33e4ffe75 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 22 Apr 2024 14:12:59 -0700 Subject: [PATCH 464/934] debugging applies to --- query-languages/dax/__actions/applies-to.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/__actions/applies-to.py b/query-languages/dax/__actions/applies-to.py index f4215274e..fa40a5726 100644 --- a/query-languages/dax/__actions/applies-to.py +++ b/query-languages/dax/__actions/applies-to.py @@ -1,11 +1,10 @@ -from os import listdir, getcwd +from os import listdir from os.path import isfile, join import csv DEBUG = False VERBOSE = False -cwd = getcwd() MDPath = "..//" functionFileTail = "-function-dax.md" appliesToPath = "..//includes//" @@ -31,7 +30,7 @@ # load AppliesToStatusFile appliesToFileContents = None -with open(join(cwd, appliesToStatusFile), 'r') as atsfile: +with open(appliesToStatusFile, 'r') as atsfile: appliesToFileContents = dict(csv.reader(atsfile)) # capitalize everything just in case appliesToFileContents = {k.upper(): v.upper() for k, v From 74f8692f645afd6318bc0cfcb94568ad62716e3f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 24 Apr 2024 09:25:57 -0700 Subject: [PATCH 465/934] Added May updates to Power Query M reference --- query-languages/m/docfx.json | 2 +- query-languages/m/module-versions.md | 15 +++++++++++++++ query-languages/m/value-functions.md | 7 ++++--- 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 query-languages/m/module-versions.md diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 36f06daee..0049030a8 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "2/17/2024" + "ms.date": "4/24/2024" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/module-versions.md b/query-languages/m/module-versions.md new file mode 100644 index 000000000..c016254ba --- /dev/null +++ b/query-languages/m/module-versions.md @@ -0,0 +1,15 @@ +--- +description: "Learn more about: Module.Versions" +title: "Module.Versions" +--- +# Module.Versions + +## Syntax + +
+Module.Versions() as record
+
+ +## About + +Returns a record of module versions for the current module and its dependencies. diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 96531704e..914d88272 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value functions" title: "Value functions" -ms.date: 10/19/2023 +ms.date: 4/24/2024 ms.custom: "nonautomated-date" --- # Value functions @@ -17,8 +17,8 @@ These functions evaluate and perform operations on values. |[Value.VersionIdentity](value-versionidentity.md)|Returns the version identity of a value.| |[Value.Versions](value-versions.md)|Returns a navigation table containing the available versions of a value.| |[Value.NativeQuery](value-nativequery.md) | Evaluates a query against a target.| -|[Value.NullableEquals](value-nullableequals.md)|Returns a logical value or null based on two values .| -|[Value.Optimize](value-optimize.md)|If value represents a query that can be optimized, returns the optimized query. Otherwise returns value. +|[Value.NullableEquals](value-nullableequals.md)|Returns a logical value or null based on two values.| +|[Value.Optimize](value-optimize.md)|If value represents a query that can be optimized, returns the optimized query. Otherwise returns value.| |[Value.Type](value-type.md) | Returns the type of the given value.| ## Arithmetic operations @@ -44,6 +44,7 @@ These functions evaluate and perform operations on values. |[DirectQueryCapabilities.From](directquerycapabilities-from.md) | This function is intended for internal use only.| |[Embedded.Value](embedded-value.md) | Accesses a value by name in an embedded mashup.| |[Excel.ShapeTable](excel-shapetable.md) | This function is intended for internal use only.| +|[Module.Versions](module-versions.md) | Returns a record of module versions for the current module and its dependencies.| |[Progress.DataSourceProgress](progress-datasourceprogress.md) | This function is intended for internal use only. | |[SqlExpression.SchemaFrom](sqlexpression-schemafrom.md) | This function is intended for internal use only.| |[SqlExpression.ToExpression](sqlexpression-toexpression.md) | This function is intended for internal use only.| From ea1b404a321215d22b229181d848ea7b208af551 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 24 Apr 2024 09:32:28 -0700 Subject: [PATCH 466/934] Added new function to toc --- query-languages/m/toc.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 303b92387..2d1c6237b 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -1402,6 +1402,8 @@ items: href: excel-shapetable.md - name: Graph.Nodes href: graph-nodes.md + - name: Module.Versions + href: module-versions.md - name: Progress.DataSourceProgress href: progress-datasourceprogress.md - name: SqlExpression.SchemaFrom From d1fc0b7e5b3c9a1367a0e6d261f847bfc591fbcc Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 10:48:45 -0700 Subject: [PATCH 467/934] removing __ from folder name --- .../dax/{__actions => actions-code}/applies-to-status.csv | 0 query-languages/dax/{__actions => actions-code}/applies-to.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename query-languages/dax/{__actions => actions-code}/applies-to-status.csv (100%) rename query-languages/dax/{__actions => actions-code}/applies-to.py (100%) diff --git a/query-languages/dax/__actions/applies-to-status.csv b/query-languages/dax/actions-code/applies-to-status.csv similarity index 100% rename from query-languages/dax/__actions/applies-to-status.csv rename to query-languages/dax/actions-code/applies-to-status.csv diff --git a/query-languages/dax/__actions/applies-to.py b/query-languages/dax/actions-code/applies-to.py similarity index 100% rename from query-languages/dax/__actions/applies-to.py rename to query-languages/dax/actions-code/applies-to.py From 29cf4aa074ff566195c963cbb27eb1b270a84c06 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 13:04:56 -0700 Subject: [PATCH 468/934] removing applies-to code as github actions didn't work. Will run and store code separately --- .../dax/actions-code/applies-to-status.csv | 434 ------------------ .../dax/actions-code/applies-to.py | 108 ----- 2 files changed, 542 deletions(-) delete mode 100644 query-languages/dax/actions-code/applies-to-status.csv delete mode 100644 query-languages/dax/actions-code/applies-to.py diff --git a/query-languages/dax/actions-code/applies-to-status.csv b/query-languages/dax/actions-code/applies-to-status.csv deleted file mode 100644 index efbe69be9..000000000 --- a/query-languages/dax/actions-code/applies-to-status.csv +++ /dev/null @@ -1,434 +0,0 @@ -FunctionName,AppliesToStatus -ABS,ALL -ACCRINT,ALL -ACCRINTM,ALL -ACOS,ALL -ACOSH,ALL -ACOT,ALL -ACOTH,ALL -ADDCOLUMNS,ALL -ADDMISSINGITEMS,MCT -ALL,ALL -ALLCROSSFILTERED,ALL -ALLEXCEPT,MCT -ALLNOBLANKROW,ALL -ALLSELECTED,ALL -AMORDEGRC,ALL -AMORLINC,ALL -AND,ALL -APPROXIMATEDISTINCTCOUNT,MCT -ASIN,ALL -ASINH,ALL -ATAN,ALL -ATANH,ALL -AVERAGE,ALL -AVERAGEA,ALL -AVERAGEX,ALL -BETA.DIST,ALL -BETA.INV,ALL -BITAND,ALL -BITLSHIFT,ALL -BITOR,ALL -BITRSHIFT,ALL -BITXOR,ALL -BLANK,ALL -CALCULATE,ALL -CALCULATETABLE,ALL -CALENDAR,ALL -CALENDARAUTO,DISCOURAGE -CEILING,ALL -CHISQ.DIST,ALL -CHISQ.DIST.RT,ALL -CHISQ.INV,ALL -CHISQ.INV.RT,ALL -CLOSINGBALANCEMONTH,DISCOURAGE -CLOSINGBALANCEQUARTER,DISCOURAGE -CLOSINGBALANCEYEAR,DISCOURAGE -COALESCE,ALL -COLLAPSE,VC -COLLAPSEALL,VC -COLUMNSTATISTICS,DISCOURAGE -COMBIN,ALL -COMBINA,ALL -COMBINEVALUES,ALL -CONCATENATE,ALL -CONCATENATEX,ALL -CONFIDENCE.NORM,ALL -CONFIDENCE.T,ALL -CONTAINS,ALL -CONTAINSROW,ALL -CONTAINSSTRING,ALL -CONTAINSSTRINGEXACT,ALL -CONVERT,ALL -COS,ALL -COSH,ALL -COT,ALL -COTH,ALL -COUNT,ALL -COUNTA,ALL -COUNTAX,ALL -COUNTBLANK,ALL -COUNTROWS,ALL -COUNTX,ALL -COUPDAYBS,ALL -COUPDAYS,ALL -COUPDAYSNC,ALL -COUPNCD,ALL -COUPNUM,ALL -COUPPCD,ALL -CROSSFILTER,MCT -CROSSJOIN,ALL -CUMIPMT,ALL -CUMPRINC,ALL -CURRENCY,ALL -CURRENTGROUP,DISCOURAGE -CUSTOMDATA,ALL -DATATABLE,ALL -DATE,ALL -DATEADD,DISCOURAGE -DATEDIFF,ALL -DATESBETWEEN,DISCOURAGE -DATESINPERIOD,DISCOURAGE -DATESMTD,DISCOURAGE -DATESQTD,DISCOURAGE -DATESYTD,DISCOURAGE -DATEVALUE,ALL -DAY,ALL -DB,ALL -DDB,ALL -DEGREES,ALL -DETAILROWS,MCT -DISC,ALL -DISTINCT,ALL -DISTINCTCOUNT,ALL -DISTINCTCOUNTNOBLANK,ALL -DIVIDE,ALL -DOLLARDE,ALL -DOLLARFR,ALL -DURATION,ALL -EARLIER,MCT -EARLIEST,MCT -EDATE,ALL -EFFECT,ALL -ENDOFMONTH,DISCOURAGE -ENDOFQUARTER,DISCOURAGE -ENDOFYEAR,DISCOURAGE -EOMONTH,ALL -ERROR,ALL -EVALUATEANDLOG,ALL -EVEN,ALL -EXACT,ALL -EXCEPT,ALL -EXP,ALL -EXPAND,VC -EXPANDALL,VC -EXPON.DIST,ALL -FACT,ALL -FILTER,ALL -FILTERS,ALL -FIND,ALL -FIRST,VC -FIRSTDATE,DISCOURAGE -FIRSTNONBLANK,DISCOURAGE -FIRSTNONBLANKVALUE,DISCOURAGE -FIXED,ALL -FLOOR,ALL -FORMAT,ALL -FV,ALL -GCD,ALL -GENERATE,ALL -GENERATEALL,ALL -GENERATESERIES,ALL -GEOMEAN,ALL -GEOMEANX,ALL -GROUPBY,DISCOURAGE -HASONEFILTER,ALL -HASONEVALUE,ALL -HOUR,ALL -IF,ALL -IF.EAGER,ALL -IFERROR,ALL -IGNORE,MCT -INDEX,ALL -INFO.ALTERNATEOFDEFINITIONS,DISCOURAGE -INFO.ANNOTATIONS,DISCOURAGE -INFO.ATTRIBUTEHIERARCHIES,DISCOURAGE -INFO.ATTRIBUTEHIERARCHYSTORAGES,DISCOURAGE -INFO.CALCULATIONGROUPS,DISCOURAGE -INFO.CALCULATIONITEMS,DISCOURAGE -INFO.CHANGEDPROPERTIES,DISCOURAGE -INFO.COLUMNPARTITIONSTORAGES,DISCOURAGE -INFO.COLUMNPERMISSIONS,DISCOURAGE -INFO.COLUMNS,DISCOURAGE -INFO.COLUMNSTORAGES,DISCOURAGE -INFO.CULTURES,DISCOURAGE -INFO.DATACOVERAGEDEFINITIONS,DISCOURAGE -INFO.DATASOURCES,DISCOURAGE -INFO.DELTATABLEMETADATASTORAGES,DISCOURAGE -INFO.DETAILROWSDEFINITIONS,DISCOURAGE -INFO.DICTIONARYSTORAGES,DISCOURAGE -INFO.EXCLUDEDARTIFACTS,DISCOURAGE -INFO.EXPRESSIONS,DISCOURAGE -INFO.EXTENDEDPROPERTIES,DISCOURAGE -INFO.FORMATSTRINGDEFINITIONS,DISCOURAGE -INFO.FUNCTIONS,DISCOURAGE -INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES,DISCOURAGE -INFO.GROUPBYCOLUMNS,DISCOURAGE -INFO.HIERARCHIES,DISCOURAGE -INFO.HIERARCHYSTORAGES,DISCOURAGE -INFO.KPIS,DISCOURAGE -INFO.LEVELS,DISCOURAGE -INFO.LINGUISTICMETADATA,DISCOURAGE -INFO.MEASURES,DISCOURAGE -INFO.MODEL,DISCOURAGE -INFO.OBJECTTRANSLATIONS,DISCOURAGE -INFO.PARQUETFILESTORAGES,DISCOURAGE -INFO.PARTITIONS,DISCOURAGE -INFO.PARTITIONSTORAGES,DISCOURAGE -INFO.PERSPECTIVECOLUMNS,DISCOURAGE -INFO.PERSPECTIVEHIERARCHIES,DISCOURAGE -INFO.PERSPECTIVEMEASURES,DISCOURAGE -INFO.PERSPECTIVES,DISCOURAGE -INFO.PERSPECTIVETABLES,DISCOURAGE -INFO.QUERYGROUPS,DISCOURAGE -INFO.REFRESHPOLICIES,DISCOURAGE -INFO.RELATEDCOLUMNDETAILS,DISCOURAGE -INFO.RELATIONSHIPINDEXSTORAGES,DISCOURAGE -INFO.RELATIONSHIPS,DISCOURAGE -INFO.RELATIONSHIPSTORAGES,DISCOURAGE -INFO.ROLEMEMBERSHIPS,DISCOURAGE -INFO.ROLES,DISCOURAGE -INFO.SEGMENTMAPSTORAGES,DISCOURAGE -INFO.SEGMENTSTORAGES,DISCOURAGE -INFO.STORAGEFILES,DISCOURAGE -INFO.STORAGEFOLDERS,DISCOURAGE -INFO.TABLEPERMISSIONS,DISCOURAGE -INFO.TABLES,DISCOURAGE -INFO.TABLESTORAGES,DISCOURAGE -INFO.VARIATIONS,DISCOURAGE -INT,ALL -INTERSECT,ALL -INTRATE,ALL -IPMT,ALL -ISAFTER,ALL -ISATLEVEL,VC -ISBLANK,ALL -ISCROSSFILTERED,ALL -ISEMPTY,ALL -ISERROR,ALL -ISEVEN,ALL -ISFILTERED,ALL -ISINSCOPE,ALL -ISLOGICAL,ALL -ISNONTEXT,ALL -ISNUMBER,ALL -ISO.CEILING,ALL -ISODD,ALL -ISONORAFTER,ALL -ISPMT,ALL -ISSELECTEDMEASURE,MCT -ISSUBTOTAL,MCT -ISTEXT,ALL -KEEPFILTERS,ALL -LAST,VC -LASTDATE,DISCOURAGE -LASTNONBLANK,DISCOURAGE -LASTNONBLANKVALUE,DISCOURAGE -LCM,ALL -LEFT,ALL -LEN,ALL -LINEST,ALL -LINESTX,ALL -LN,ALL -LOG,ALL -LOG10,ALL -LOOKUP,VC -LOOKUPVALUE,ALL -LOWER,ALL -MATCHBY,ALL -MAX,ALL -MAXA,ALL -MAXX,ALL -MDURATION,ALL -MEDIAN,ALL -MEDIANX,ALL -MID,ALL -MIN,ALL -MINA,ALL -MINUTE,ALL -MINX,ALL -MOD,ALL -MONTH,ALL -MOVINGAVERAGE,VC -MROUND,ALL -NAMEOF,ALL -NATURALINNERJOIN,ALL -NATURALLEFTOUTERJOIN,ALL -NETWORKDAYS,ALL -NEXT,VC -NEXTDAY,DISCOURAGE -NEXTMONTH,DISCOURAGE -NEXTQUARTER,DISCOURAGE -NEXTYEAR,DISCOURAGE -NOMINAL,ALL -NONVISUAL,MCT -NORM.DIST,ALL -NORM.INV,ALL -NORM.S.DIST,ALL -NORM.S.INV,ALL -NOT,ALL -NOW,ALL -NPER,ALL -ODD,ALL -ODDFPRICE,ALL -ODDFYIELD,ALL -ODDLPRICE,ALL -ODDLYIELD,ALL -OFFSET,ALL -OPENINGBALANCEMONTH,DISCOURAGE -OPENINGBALANCEQUARTER,DISCOURAGE -OPENINGBALANCEYEAR,DISCOURAGE -OR,ALL -ORDERBY,ALL -PARALLELPERIOD,DISCOURAGE -PARTITIONBY,ALL -PATH,ALL -PATHCONTAINS,ALL -PATHITEM,ALL -PATHITEMREVERSE,ALL -PATHLENGTH,ALL -PDURATION,ALL -PERCENTILE.EXC,ALL -PERCENTILE.INC,ALL -PERCENTILEX.EXC,ALL -PERCENTILEX.INC,ALL -PERMUT,ALL -PI,ALL -PMT,ALL -POISSON.DIST,ALL -POWER,ALL -PPMT,ALL -PREVIOUS,VC -PREVIOUSDAY,DISCOURAGE -PREVIOUSMONTH,DISCOURAGE -PREVIOUSQUARTER,DISCOURAGE -PREVIOUSYEAR,DISCOURAGE -PRICE,ALL -PRICEDISC,ALL -PRICEMAT,ALL -PRODUCT,ALL -PRODUCTX,ALL -PV,ALL -QUARTER,ALL -QUOTIENT,ALL -RADIANS,ALL -RAND,ALL -RANDBETWEEN,ALL -RANGE,VC -RANK,ALL -RANK.EQ,ALL -RANKX,ALL -RATE,ALL -RECEIVED,ALL -RELATED,MCT -RELATEDTABLE,MCT -REMOVEFILTERS,ALL -REPLACE,ALL -REPT,ALL -RIGHT,ALL -ROLLUP,MCT -ROLLUPADDISSUBTOTAL,MCT -ROLLUPGROUP,MCT -ROLLUPISSUBTOTAL,MCT -ROUND,ALL -ROUNDDOWN,ALL -ROUNDUP,ALL -ROW,ALL -ROWNUMBER,ALL -RRI,ALL -RUNNINGSUM,VC -SAMEPERIODLASTYEAR,DISCOURAGE -SAMPLE,ALL -SAMPLEAXISWITHLOCALMINMAX,DISCOURAGE -SAMPLECARTESIANPOINTSBYCOVER,DISCOURAGE -SEARCH,ALL -SECOND,ALL -SELECTCOLUMNS,ALL -SELECTEDMEASURE,MCT -SELECTEDMEASUREFORMATSTRING,MCT -SELECTEDMEASURENAME,MCT -SELECTEDVALUE,ALL -SIGN,ALL -SIN,ALL -SINH,ALL -SLN,ALL -SQRT,ALL -SQRTPI,ALL -STARTOFMONTH,DISCOURAGE -STARTOFQUARTER,DISCOURAGE -STARTOFYEAR,DISCOURAGE -STDEV.P,ALL -STDEV.S,ALL -STDEVX.P,ALL -STDEVX.S,ALL -SUBSTITUTE,ALL -SUBSTITUTEWITHINDEX,MCT -SUM,ALL -SUMMARIZE,ALL -SUMMARIZECOLUMNS,MCT -SUMX,ALL -SWITCH,ALL -SYD,ALL -T.DIST,ALL -T.DIST.2T,ALL -T.DIST.RT,ALL -T.INV,ALL -T.INV.2T,ALL -TAN,ALL -TANH,ALL -TBILLEQ,ALL -TBILLPRICE,ALL -TBILLYIELD,ALL -TIME,ALL -TIMEVALUE,ALL -TOCSV,ALL -TODAY,ALL -TOJSON,ALL -TOPN,ALL -TOPNSKIP,MCT -TOTALMTD,DISCOURAGE -TOTALQTD,DISCOURAGE -TOTALYTD,DISCOURAGE -TREATAS,ALL -TRIM,ALL -TRUNC,ALL -UNICHAR,ALL -UNICODE,ALL -UNION,ALL -UPPER,ALL -USERCULTURE,ALL -USERELATIONSHIP,MCT -USERNAME,ALL -USEROBJECTID,ALL -USERPRINCIPALNAME,ALL -UTCNOW,ALL -UTCTODAY,ALL -VALUE,ALL -VALUES,ALL -VAR.P,ALL -VAR.S,ALL -VARX.P,ALL -VARX.S,ALL -VDB,ALL -WEEKDAY,ALL -WEEKNUM,ALL -WINDOW,ALL -XIRR,ALL -XNPV,ALL -YEAR,ALL -YEARFRAC,ALL -YIELD,ALL -YIELDDISC,ALL -YIELDMAT,ALL -FALSE,ALL -TRUE,ALL diff --git a/query-languages/dax/actions-code/applies-to.py b/query-languages/dax/actions-code/applies-to.py deleted file mode 100644 index fa40a5726..000000000 --- a/query-languages/dax/actions-code/applies-to.py +++ /dev/null @@ -1,108 +0,0 @@ -from os import listdir -from os.path import isfile, join -import csv - -DEBUG = False -VERBOSE = False - -MDPath = "..//" -functionFileTail = "-function-dax.md" -appliesToPath = "..//includes//" -functionNameStartString = "# " -appliesToStartString = "[!INCLUDE[applies-to-" -appliesToStatusFile = "applies-to-status.csv" -appliesToStatusFileColumns = ("FunctionName","AppliesToStatus") -appliesToAllFlag = "ALL" -appliesToMCTFlag = "MCT" -appliesToVCFlag = "VC" -appliesToDiscourageFlag = "DISCOURAGE" -appliesToPathNoRelative = "includes/" - -# Paths to applies to include files -appliesToAllFile = "applies-to-measures-columns-tables-visual-calculations" #status in CSV: ALL -appliesToAll = appliesToPath+appliesToAllFile+".md" -appliesToMeasuresColumnsTablesFile = "applies-to-measures-columns-tables" #status in CSV: MCT -appliesToMeasuresColumnsTables = appliesToPath+appliesToMeasuresColumnsTablesFile+".md" -appliesToVisualCalculationsFile = "applies-to-visual-calculations" #status in CSV: VC -appliesToVisualCalculations = appliesToPath+appliesToVisualCalculationsFile+".md" -appliesToDiscouragedForVisualCalculationsFile = "applies-to-measures-columns-tables-visual-calculations-discouraged" #DISCOURAGE -appliesToDiscouragedForVisualCalculations = appliesToPath+appliesToDiscouragedForVisualCalculationsFile+".md" - -# load AppliesToStatusFile -appliesToFileContents = None -with open(appliesToStatusFile, 'r') as atsfile: - appliesToFileContents = dict(csv.reader(atsfile)) - # capitalize everything just in case - appliesToFileContents = {k.upper(): v.upper() for k, v - in appliesToFileContents.items()} -if DEBUG: - print(appliesToFileContents["ABS"]) - -# iterate over the function files -thefunctions = [f[0:f.index(functionFileTail)] for f in listdir(MDPath) if isfile(join(MDPath, f)) and - f.endswith(functionFileTail)] -if DEBUG: - print(thefunctions) - print(len(thefunctions)) - -for func in thefunctions: - if DEBUG: - print(func) - funcfile = MDPath+func+functionFileTail - lines = None - with open(funcfile, 'r', encoding='utf-8') as f: - # find the applies to status for this function - appliesToStatus = None - try: - # find the status and load the content - # can be ALL, MCT, VC, DISCOURAGE #[func.upper() - appliesToStatus = appliesToFileContents[func.upper()] - appliesToStatusContent = None - if DEBUG: - print(appliesToStatus) - if appliesToStatus == appliesToAllFlag: - appliesToStatusContent = "[!INCLUDE["+appliesToAllFile+"]("+appliesToPathNoRelative+appliesToAllFile+".md)]" - elif appliesToStatus == appliesToVCFlag: - appliesToStatusContent = "[!INCLUDE["+appliesToVisualCalculationsFile+"]("+appliesToPathNoRelative+appliesToVisualCalculationsFile+".md)]" - elif appliesToStatus == appliesToDiscourageFlag: - appliesToStatusContent = "[!INCLUDE["+appliesToDiscouragedForVisualCalculationsFile+"]("+appliesToPathNoRelative+appliesToDiscouragedForVisualCalculationsFile+".md)]" - elif appliesToStatus == appliesToMCTFlag: - appliesToStatusContent = "[!INCLUDE["+appliesToMeasuresColumnsTablesFile+"]("+appliesToPathNoRelative+appliesToMeasuresColumnsTablesFile+".md)]" - #if appliesToStatusContent is None: - # raise ValueError - # read the file - lines = f.readlines() - # find title line - ind = 0 - for l in lines: - if l.startswith(functionNameStartString): - break - ind = ind+1 - # if line above title contains applies to string, replace if doesn't match, - # otherwise, insert - if lines[ind+2].startswith(appliesToStartString): - if lines[ind+2].strip() == appliesToStatusContent: - if VERBOSE: - print("Applies to line present for {0} and the same. No action needed.".format(func.upper())) - else: - if VERBOSE: - print("Applies to line present for {0} but not the same. Replacing.".format(func.upper())) - # do replace here - lines[ind+2] = appliesToStatusContent - lines.insert(ind+3, "\n") - else: - # insert applies to - if VERBOSE: - print("Applies to line missing for {0}. Inserting.".format(func.upper())) - lines.insert(ind+1, "\n") - lines.insert(ind+2, appliesToStatusContent) - lines.insert(ind+3, "\n") - - if DEBUG: - print(lines) - except (KeyError): - print("KeyError: {0} not found in applies-to file.".format(func.upper())) - - if lines is not None: - with open(funcfile, 'w', encoding='utf8') as fout: - fout.writelines(lines) From a42551d7a5d357435ce34e65fe5d20a0ba95b172 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 13:08:24 -0700 Subject: [PATCH 469/934] bulk update of DAX docs for applies-to header --- query-languages/dax/abs-function-dax.md | 2 ++ query-languages/dax/accrint-function-dax.md | 2 ++ query-languages/dax/accrintm-function-dax.md | 2 ++ query-languages/dax/acos-function-dax.md | 2 ++ query-languages/dax/acosh-function-dax.md | 2 ++ query-languages/dax/acot-function-dax.md | 2 ++ query-languages/dax/acoth-function-dax.md | 2 ++ query-languages/dax/addcolumns-function-dax.md | 2 ++ query-languages/dax/addmissingitems-function-dax.md | 2 ++ query-languages/dax/all-function-dax.md | 2 ++ query-languages/dax/allcrossfiltered-function-dax.md | 2 ++ query-languages/dax/allexcept-function-dax.md | 2 ++ query-languages/dax/allnoblankrow-function-dax.md | 2 ++ query-languages/dax/allselected-function-dax.md | 2 ++ query-languages/dax/amordegrc-function-dax.md | 2 ++ query-languages/dax/amorlinc-function-dax.md | 2 ++ query-languages/dax/and-function-dax.md | 2 ++ query-languages/dax/asin-function-dax.md | 2 ++ query-languages/dax/asinh-function-dax.md | 2 ++ query-languages/dax/atan-function-dax.md | 2 ++ query-languages/dax/atanh-function-dax.md | 2 ++ query-languages/dax/average-function-dax.md | 2 ++ query-languages/dax/averagea-function-dax.md | 2 ++ query-languages/dax/averagex-function-dax.md | 2 ++ query-languages/dax/bitand-function-dax.md | 2 ++ query-languages/dax/bitlshift-function-dax.md | 2 ++ query-languages/dax/bitor-function-dax.md | 2 ++ query-languages/dax/bitrshift-function-dax.md | 2 ++ query-languages/dax/bitxor-function-dax.md | 2 ++ query-languages/dax/blank-function-dax.md | 2 ++ query-languages/dax/calculate-function-dax.md | 2 ++ query-languages/dax/calculatetable-function-dax.md | 2 ++ query-languages/dax/calendar-function-dax.md | 2 ++ query-languages/dax/calendarauto-function-dax.md | 2 ++ query-languages/dax/ceiling-function-dax.md | 2 ++ query-languages/dax/closingbalancemonth-function-dax.md | 2 ++ query-languages/dax/closingbalancequarter-function-dax.md | 2 ++ query-languages/dax/closingbalanceyear-function-dax.md | 2 ++ query-languages/dax/coalesce-function-dax.md | 2 ++ query-languages/dax/collapse-function-dax.md | 2 ++ query-languages/dax/collapseall-function-dax.md | 2 ++ query-languages/dax/columnstatistics-function-dax.md | 2 ++ query-languages/dax/combin-function-dax.md | 2 ++ query-languages/dax/combina-function-dax.md | 2 ++ query-languages/dax/combinevalues-function-dax.md | 2 ++ query-languages/dax/concatenate-function-dax.md | 2 ++ query-languages/dax/concatenatex-function-dax.md | 2 ++ query-languages/dax/contains-function-dax.md | 2 ++ query-languages/dax/containsrow-function-dax.md | 2 ++ query-languages/dax/containsstring-function-dax.md | 2 ++ query-languages/dax/containsstringexact-function-dax.md | 2 ++ query-languages/dax/convert-function-dax.md | 2 ++ query-languages/dax/cos-function-dax.md | 2 ++ query-languages/dax/cosh-function-dax.md | 2 ++ query-languages/dax/cot-function-dax.md | 2 ++ query-languages/dax/coth-function-dax.md | 2 ++ query-languages/dax/count-function-dax.md | 2 ++ query-languages/dax/counta-function-dax.md | 2 ++ query-languages/dax/countax-function-dax.md | 2 ++ query-languages/dax/countblank-function-dax.md | 2 ++ query-languages/dax/countrows-function-dax.md | 2 ++ query-languages/dax/countx-function-dax.md | 2 ++ query-languages/dax/coupdaybs-function-dax.md | 2 ++ query-languages/dax/coupdays-function-dax.md | 2 ++ query-languages/dax/coupdaysnc-function-dax.md | 2 ++ query-languages/dax/coupncd-function-dax.md | 2 ++ query-languages/dax/coupnum-function-dax.md | 2 ++ query-languages/dax/couppcd-function-dax.md | 2 ++ query-languages/dax/crossfilter-function-dax.md | 2 ++ query-languages/dax/crossjoin-function-dax.md | 2 ++ query-languages/dax/cumipmt-function-dax.md | 2 ++ query-languages/dax/cumprinc-function-dax.md | 2 ++ query-languages/dax/currency-function-dax.md | 2 ++ query-languages/dax/currentgroup-function-dax.md | 2 ++ query-languages/dax/customdata-function-dax.md | 2 ++ query-languages/dax/datatable-function-dax.md | 2 ++ query-languages/dax/date-function-dax.md | 2 ++ query-languages/dax/dateadd-function-dax.md | 2 ++ query-languages/dax/datediff-function-dax.md | 2 ++ query-languages/dax/datesbetween-function-dax.md | 2 ++ query-languages/dax/datesinperiod-function-dax.md | 2 ++ query-languages/dax/datesmtd-function-dax.md | 2 ++ query-languages/dax/datesqtd-function-dax.md | 2 ++ query-languages/dax/datesytd-function-dax.md | 2 ++ query-languages/dax/datevalue-function-dax.md | 2 ++ query-languages/dax/day-function-dax.md | 2 ++ query-languages/dax/db-function-dax.md | 2 ++ query-languages/dax/ddb-function-dax.md | 2 ++ query-languages/dax/degrees-function-dax.md | 2 ++ query-languages/dax/detailrows-function-dax.md | 2 ++ query-languages/dax/disc-function-dax.md | 2 ++ query-languages/dax/distinct-function-dax.md | 2 ++ query-languages/dax/distinctcount-function-dax.md | 2 ++ query-languages/dax/distinctcountnoblank-function-dax.md | 2 ++ query-languages/dax/divide-function-dax.md | 2 ++ query-languages/dax/dollarde-function-dax.md | 2 ++ query-languages/dax/dollarfr-function-dax.md | 2 ++ query-languages/dax/duration-function-dax.md | 2 ++ query-languages/dax/earlier-function-dax.md | 2 ++ query-languages/dax/earliest-function-dax.md | 2 ++ query-languages/dax/edate-function-dax.md | 2 ++ query-languages/dax/effect-function-dax.md | 2 ++ query-languages/dax/endofmonth-function-dax.md | 2 ++ query-languages/dax/endofquarter-function-dax.md | 2 ++ query-languages/dax/endofyear-function-dax.md | 2 ++ query-languages/dax/eomonth-function-dax.md | 2 ++ query-languages/dax/error-function-dax.md | 2 ++ query-languages/dax/evaluateandlog-function-dax.md | 2 ++ query-languages/dax/even-function-dax.md | 2 ++ query-languages/dax/exact-function-dax.md | 2 ++ query-languages/dax/except-function-dax.md | 2 ++ query-languages/dax/exp-function-dax.md | 2 ++ query-languages/dax/expand-function-dax.md | 2 ++ query-languages/dax/expandall-function-dax.md | 2 ++ query-languages/dax/fact-function-dax.md | 2 ++ query-languages/dax/false-function-dax.md | 2 ++ query-languages/dax/filter-function-dax.md | 2 ++ query-languages/dax/filters-function-dax.md | 2 ++ query-languages/dax/find-function-dax.md | 2 ++ query-languages/dax/first-function-dax.md | 2 ++ query-languages/dax/firstdate-function-dax.md | 2 ++ query-languages/dax/firstnonblank-function-dax.md | 2 ++ query-languages/dax/firstnonblankvalue-function-dax.md | 2 ++ query-languages/dax/fixed-function-dax.md | 2 ++ query-languages/dax/floor-function-dax.md | 2 ++ query-languages/dax/format-function-dax.md | 2 ++ query-languages/dax/fv-function-dax.md | 2 ++ query-languages/dax/gcd-function-dax.md | 2 ++ query-languages/dax/generate-function-dax.md | 2 ++ query-languages/dax/generateall-function-dax.md | 2 ++ query-languages/dax/generateseries-function-dax.md | 2 ++ query-languages/dax/geomean-function-dax.md | 2 ++ query-languages/dax/geomeanx-function-dax.md | 2 ++ query-languages/dax/groupby-function-dax.md | 2 ++ query-languages/dax/hasonefilter-function-dax.md | 2 ++ query-languages/dax/hasonevalue-function-dax.md | 2 ++ query-languages/dax/hour-function-dax.md | 2 ++ query-languages/dax/if-function-dax.md | 2 ++ query-languages/dax/iferror-function-dax.md | 2 ++ query-languages/dax/ignore-function-dax.md | 2 ++ query-languages/dax/index-function-dax.md | 2 ++ query-languages/dax/int-function-dax.md | 2 ++ query-languages/dax/intersect-function-dax.md | 2 ++ query-languages/dax/intrate-function-dax.md | 2 ++ query-languages/dax/ipmt-function-dax.md | 2 ++ query-languages/dax/isafter-function-dax.md | 2 ++ query-languages/dax/isatlevel-function-dax.md | 2 ++ query-languages/dax/isblank-function-dax.md | 2 ++ query-languages/dax/iscrossfiltered-function-dax.md | 2 ++ query-languages/dax/isempty-function-dax.md | 2 ++ query-languages/dax/iserror-function-dax.md | 2 ++ query-languages/dax/iseven-function-dax.md | 2 ++ query-languages/dax/isfiltered-function-dax.md | 2 ++ query-languages/dax/isinscope-function-dax.md | 2 ++ query-languages/dax/islogical-function-dax.md | 2 ++ query-languages/dax/isnontext-function-dax.md | 2 ++ query-languages/dax/isnumber-function-dax.md | 2 ++ query-languages/dax/isodd-function-dax.md | 2 ++ query-languages/dax/isonorafter-function-dax.md | 2 ++ query-languages/dax/ispmt-function-dax.md | 2 ++ query-languages/dax/isselectedmeasure-function-dax.md | 2 ++ query-languages/dax/issubtotal-function-dax.md | 2 ++ query-languages/dax/istext-function-dax.md | 2 ++ query-languages/dax/keepfilters-function-dax.md | 2 ++ query-languages/dax/last-function-dax.md | 2 ++ query-languages/dax/lastdate-function-dax.md | 2 ++ query-languages/dax/lastnonblank-function-dax.md | 2 ++ query-languages/dax/lastnonblankvalue-function-dax.md | 2 ++ query-languages/dax/lcm-function-dax.md | 2 ++ query-languages/dax/left-function-dax.md | 2 ++ query-languages/dax/len-function-dax.md | 2 ++ query-languages/dax/linest-function-dax.md | 2 ++ query-languages/dax/linestx-function-dax.md | 2 ++ query-languages/dax/ln-function-dax.md | 2 ++ query-languages/dax/log-function-dax.md | 2 ++ query-languages/dax/log10-function-dax.md | 2 ++ query-languages/dax/lookupvalue-function-dax.md | 2 ++ query-languages/dax/lower-function-dax.md | 2 ++ query-languages/dax/matchby-function-dax.md | 2 ++ query-languages/dax/max-function-dax.md | 2 ++ query-languages/dax/maxa-function-dax.md | 2 ++ query-languages/dax/maxx-function-dax.md | 2 ++ query-languages/dax/mduration-function-dax.md | 2 ++ query-languages/dax/median-function-dax.md | 2 ++ query-languages/dax/medianx-function-dax.md | 2 ++ query-languages/dax/mid-function-dax.md | 2 ++ query-languages/dax/min-function-dax.md | 2 ++ query-languages/dax/mina-function-dax.md | 2 ++ query-languages/dax/minute-function-dax.md | 2 ++ query-languages/dax/minx-function-dax.md | 2 ++ query-languages/dax/mod-function-dax.md | 2 ++ query-languages/dax/month-function-dax.md | 2 ++ query-languages/dax/movingaverage-function-dax.md | 2 ++ query-languages/dax/mround-function-dax.md | 2 ++ query-languages/dax/naturalinnerjoin-function-dax.md | 2 ++ query-languages/dax/naturalleftouterjoin-function-dax.md | 2 ++ query-languages/dax/next-function-dax.md | 2 ++ query-languages/dax/nextday-function-dax.md | 2 ++ query-languages/dax/nextmonth-function-dax.md | 2 ++ query-languages/dax/nextquarter-function-dax.md | 2 ++ query-languages/dax/nextyear-function-dax.md | 2 ++ query-languages/dax/nominal-function-dax.md | 2 ++ query-languages/dax/nonvisual-function-dax.md | 2 ++ query-languages/dax/not-function-dax.md | 2 ++ query-languages/dax/now-function-dax.md | 2 ++ query-languages/dax/nper-function-dax.md | 2 ++ query-languages/dax/odd-function-dax.md | 2 ++ query-languages/dax/oddfprice-function-dax.md | 2 ++ query-languages/dax/oddfyield-function-dax.md | 2 ++ query-languages/dax/oddlprice-function-dax.md | 2 ++ query-languages/dax/oddlyield-function-dax.md | 2 ++ query-languages/dax/offset-function-dax.md | 2 ++ query-languages/dax/openingbalancemonth-function-dax.md | 2 ++ query-languages/dax/openingbalancequarter-function-dax.md | 2 ++ query-languages/dax/openingbalanceyear-function-dax.md | 2 ++ query-languages/dax/or-function-dax.md | 2 ++ query-languages/dax/orderby-function-dax.md | 2 ++ query-languages/dax/parallelperiod-function-dax.md | 2 ++ query-languages/dax/partitionby-function-dax.md | 2 ++ query-languages/dax/path-function-dax.md | 2 ++ query-languages/dax/pathcontains-function-dax.md | 2 ++ query-languages/dax/pathitem-function-dax.md | 2 ++ query-languages/dax/pathitemreverse-function-dax.md | 2 ++ query-languages/dax/pathlength-function-dax.md | 2 ++ query-languages/dax/pduration-function-dax.md | 2 ++ query-languages/dax/permut-function-dax.md | 2 ++ query-languages/dax/pi-function-dax.md | 2 ++ query-languages/dax/pmt-function-dax.md | 2 ++ query-languages/dax/power-function-dax.md | 2 ++ query-languages/dax/ppmt-function-dax.md | 2 ++ query-languages/dax/previous-function-dax.md | 2 ++ query-languages/dax/previousday-function-dax.md | 2 ++ query-languages/dax/previousmonth-function-dax.md | 2 ++ query-languages/dax/previousquarter-function-dax.md | 2 ++ query-languages/dax/previousyear-function-dax.md | 2 ++ query-languages/dax/price-function-dax.md | 2 ++ query-languages/dax/pricedisc-function-dax.md | 2 ++ query-languages/dax/pricemat-function-dax.md | 2 ++ query-languages/dax/product-function-dax.md | 2 ++ query-languages/dax/productx-function-dax.md | 2 ++ query-languages/dax/pv-function-dax.md | 2 ++ query-languages/dax/quarter-function-dax.md | 2 ++ query-languages/dax/quotient-function-dax.md | 2 ++ query-languages/dax/radians-function-dax.md | 2 ++ query-languages/dax/rand-function-dax.md | 2 ++ query-languages/dax/randbetween-function-dax.md | 2 ++ query-languages/dax/range-function-dax.md | 2 ++ query-languages/dax/rank-function-dax.md | 2 ++ query-languages/dax/rankx-function-dax.md | 2 ++ query-languages/dax/rate-function-dax.md | 2 ++ query-languages/dax/received-function-dax.md | 2 ++ query-languages/dax/related-function-dax.md | 2 ++ query-languages/dax/relatedtable-function-dax.md | 2 ++ query-languages/dax/removefilters-function-dax.md | 2 ++ query-languages/dax/replace-function-dax.md | 2 ++ query-languages/dax/rept-function-dax.md | 2 ++ query-languages/dax/right-function-dax.md | 2 ++ query-languages/dax/rollup-function-dax.md | 2 ++ query-languages/dax/rollupaddissubtotal-function-dax.md | 2 ++ query-languages/dax/rollupgroup-function-dax.md | 2 ++ query-languages/dax/rollupissubtotal-function-dax.md | 2 ++ query-languages/dax/round-function-dax.md | 2 ++ query-languages/dax/rounddown-function-dax.md | 2 ++ query-languages/dax/roundup-function-dax.md | 2 ++ query-languages/dax/row-function-dax.md | 2 ++ query-languages/dax/rownumber-function-dax.md | 2 ++ query-languages/dax/rri-function-dax.md | 2 ++ query-languages/dax/runningsum-function-dax.md | 2 ++ query-languages/dax/sameperiodlastyear-function-dax.md | 2 ++ query-languages/dax/sample-function-dax.md | 2 ++ query-languages/dax/search-function-dax.md | 2 ++ query-languages/dax/second-function-dax.md | 2 ++ query-languages/dax/selectcolumns-function-dax.md | 2 ++ query-languages/dax/selectedmeasure-function-dax.md | 2 ++ query-languages/dax/selectedmeasureformatstring-function-dax.md | 2 ++ query-languages/dax/selectedmeasurename-function-dax.md | 2 ++ query-languages/dax/selectedvalue-function-dax.md | 2 ++ query-languages/dax/sign-function-dax.md | 2 ++ query-languages/dax/sin-function-dax.md | 2 ++ query-languages/dax/sinh-function-dax.md | 2 ++ query-languages/dax/sln-function-dax.md | 2 ++ query-languages/dax/sqrt-function-dax.md | 2 ++ query-languages/dax/sqrtpi-function-dax.md | 2 ++ query-languages/dax/startofmonth-function-dax.md | 2 ++ query-languages/dax/startofquarter-function-dax.md | 2 ++ query-languages/dax/startofyear-function-dax.md | 2 ++ query-languages/dax/substitute-function-dax.md | 2 ++ query-languages/dax/substitutewithindex-function-dax.md | 2 ++ query-languages/dax/sum-function-dax.md | 2 ++ query-languages/dax/summarize-function-dax.md | 2 ++ query-languages/dax/summarizecolumns-function-dax.md | 2 ++ query-languages/dax/sumx-function-dax.md | 2 ++ query-languages/dax/switch-function-dax.md | 2 ++ query-languages/dax/syd-function-dax.md | 2 ++ query-languages/dax/tan-function-dax.md | 2 ++ query-languages/dax/tanh-function-dax.md | 2 ++ query-languages/dax/tbilleq-function-dax.md | 2 ++ query-languages/dax/tbillprice-function-dax.md | 2 ++ query-languages/dax/tbillyield-function-dax.md | 2 ++ query-languages/dax/time-function-dax.md | 2 ++ query-languages/dax/timevalue-function-dax.md | 2 ++ query-languages/dax/tocsv-function-dax.md | 2 ++ query-languages/dax/today-function-dax.md | 2 ++ query-languages/dax/tojson-function-dax.md | 2 ++ query-languages/dax/topn-function-dax.md | 2 ++ query-languages/dax/totalmtd-function-dax.md | 2 ++ query-languages/dax/totalqtd-function-dax.md | 2 ++ query-languages/dax/totalytd-function-dax.md | 2 ++ query-languages/dax/treatas-function-dax.md | 2 ++ query-languages/dax/trim-function-dax.md | 2 ++ query-languages/dax/true-function-dax.md | 2 ++ query-languages/dax/trunc-function-dax.md | 2 ++ query-languages/dax/unichar-function-dax.md | 2 ++ query-languages/dax/unicode-function-dax.md | 2 ++ query-languages/dax/union-function-dax.md | 2 ++ query-languages/dax/upper-function-dax.md | 2 ++ query-languages/dax/userculture-function-dax.md | 2 ++ query-languages/dax/userelationship-function-dax.md | 2 ++ query-languages/dax/username-function-dax.md | 2 ++ query-languages/dax/userobjectid-function-dax.md | 2 ++ query-languages/dax/userprincipalname-function-dax.md | 2 ++ query-languages/dax/utcnow-function-dax.md | 2 ++ query-languages/dax/utctoday-function-dax.md | 2 ++ query-languages/dax/value-function-dax.md | 2 ++ query-languages/dax/values-function-dax.md | 2 ++ query-languages/dax/vdb-function-dax.md | 2 ++ query-languages/dax/weekday-function-dax.md | 2 ++ query-languages/dax/weeknum-function-dax.md | 2 ++ query-languages/dax/window-function-dax.md | 2 ++ query-languages/dax/xirr-function-dax.md | 2 ++ query-languages/dax/xnpv-function-dax.md | 2 ++ query-languages/dax/year-function-dax.md | 2 ++ query-languages/dax/yearfrac-function-dax.md | 2 ++ query-languages/dax/yield-function-dax.md | 2 ++ query-languages/dax/yielddisc-function-dax.md | 2 ++ query-languages/dax/yieldmat-function-dax.md | 2 ++ 336 files changed, 672 insertions(+) diff --git a/query-languages/dax/abs-function-dax.md b/query-languages/dax/abs-function-dax.md index 2d4d5e2d4..d35bc1abc 100644 --- a/query-languages/dax/abs-function-dax.md +++ b/query-languages/dax/abs-function-dax.md @@ -5,6 +5,8 @@ title: "ABS function (DAX) | Microsoft Docs" # ABS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the absolute value of a number. ## Syntax diff --git a/query-languages/dax/accrint-function-dax.md b/query-languages/dax/accrint-function-dax.md index efc800575..8fed16a0f 100644 --- a/query-languages/dax/accrint-function-dax.md +++ b/query-languages/dax/accrint-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # ACCRINT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the accrued interest for a security that pays periodic interest. ## Syntax diff --git a/query-languages/dax/accrintm-function-dax.md b/query-languages/dax/accrintm-function-dax.md index 9b1bb2b41..03c07fac1 100644 --- a/query-languages/dax/accrintm-function-dax.md +++ b/query-languages/dax/accrintm-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # ACCRINTM +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the accrued interest for a security that pays interest at maturity. ## Syntax diff --git a/query-languages/dax/acos-function-dax.md b/query-languages/dax/acos-function-dax.md index 8b1d008d6..66ac8feba 100644 --- a/query-languages/dax/acos-function-dax.md +++ b/query-languages/dax/acos-function-dax.md @@ -4,6 +4,8 @@ title: "ACOS function (DAX) | Microsoft Docs" --- # ACOS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the arccosine, or inverse cosine, of a number. The arccosine is the angle whose cosine is *number*. The returned angle is given in radians in the range 0 (zero) to pi. ## Syntax diff --git a/query-languages/dax/acosh-function-dax.md b/query-languages/dax/acosh-function-dax.md index efb43d46d..ab349f354 100644 --- a/query-languages/dax/acosh-function-dax.md +++ b/query-languages/dax/acosh-function-dax.md @@ -4,6 +4,8 @@ title: "ACOSH function (DAX) | Microsoft Docs" --- # ACOSH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the inverse hyperbolic cosine of a number. The number must be greater than or equal to 1. The inverse hyperbolic cosine is the value whose hyperbolic cosine is *number*, so ACOSH(COSH(number)) equals number. ## Syntax diff --git a/query-languages/dax/acot-function-dax.md b/query-languages/dax/acot-function-dax.md index 4510a711a..2403cbeed 100644 --- a/query-languages/dax/acot-function-dax.md +++ b/query-languages/dax/acot-function-dax.md @@ -4,6 +4,8 @@ title: "ACOT function (DAX) | Microsoft Docs" --- # ACOT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the principal value of the arccotangent, or inverse cotangent of a number. ## Syntax diff --git a/query-languages/dax/acoth-function-dax.md b/query-languages/dax/acoth-function-dax.md index 90de2e2bf..5112d6d61 100644 --- a/query-languages/dax/acoth-function-dax.md +++ b/query-languages/dax/acoth-function-dax.md @@ -4,6 +4,8 @@ title: "ACOTH function (DAX) | Microsoft Docs" --- # ACOTH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the inverse hyperbolic cotangent of a number. ## Syntax diff --git a/query-languages/dax/addcolumns-function-dax.md b/query-languages/dax/addcolumns-function-dax.md index 75ffc7c78..bbbef0f54 100644 --- a/query-languages/dax/addcolumns-function-dax.md +++ b/query-languages/dax/addcolumns-function-dax.md @@ -4,6 +4,8 @@ title: "ADDCOLUMNS function (DAX) | Microsoft Docs" --- # ADDCOLUMNS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Adds calculated columns to the given table or table expression. ## Syntax diff --git a/query-languages/dax/addmissingitems-function-dax.md b/query-languages/dax/addmissingitems-function-dax.md index ab1fa4d49..32c53091e 100644 --- a/query-languages/dax/addmissingitems-function-dax.md +++ b/query-languages/dax/addmissingitems-function-dax.md @@ -4,6 +4,8 @@ title: "ADDMISSINGITEMS function (DAX) | Microsoft Docs" --- # ADDMISSINGITEMS +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Adds rows with empty values to a table returned by [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md). ## Syntax diff --git a/query-languages/dax/all-function-dax.md b/query-languages/dax/all-function-dax.md index 23f4008e2..837d3b2dc 100644 --- a/query-languages/dax/all-function-dax.md +++ b/query-languages/dax/all-function-dax.md @@ -4,6 +4,8 @@ title: "ALL function (DAX) | Microsoft Docs" --- # ALL +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns all the rows in a table, or all the values in a column, ignoring any filters that might have been applied. This function is useful for clearing filters and creating calculations on all the rows in a table. ## Syntax diff --git a/query-languages/dax/allcrossfiltered-function-dax.md b/query-languages/dax/allcrossfiltered-function-dax.md index 6dfc6aaf2..23b0a64e1 100644 --- a/query-languages/dax/allcrossfiltered-function-dax.md +++ b/query-languages/dax/allcrossfiltered-function-dax.md @@ -4,6 +4,8 @@ title: "ALLCROSSFILTERED function (DAX) | Microsoft Docs" --- # ALLCROSSFILTERED +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Clear all filters which are applied to a table. ## Syntax diff --git a/query-languages/dax/allexcept-function-dax.md b/query-languages/dax/allexcept-function-dax.md index 5d20c33b5..c3855f2db 100644 --- a/query-languages/dax/allexcept-function-dax.md +++ b/query-languages/dax/allexcept-function-dax.md @@ -4,6 +4,8 @@ title: "ALLEXCEPT function (DAX) | Microsoft Docs" --- # ALLEXCEPT +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Removes all context filters in the table except filters that have been applied to the specified columns. ## Syntax diff --git a/query-languages/dax/allnoblankrow-function-dax.md b/query-languages/dax/allnoblankrow-function-dax.md index f262ef820..f052ef506 100644 --- a/query-languages/dax/allnoblankrow-function-dax.md +++ b/query-languages/dax/allnoblankrow-function-dax.md @@ -4,6 +4,8 @@ title: "ALLNOBLANKROW function (DAX) | Microsoft Docs" --- # ALLNOBLANKROW +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + From the parent table of a relationship, returns all rows but the blank row, or all distinct values of a column but the blank row, and disregards any context filters that might exist. ## Syntax diff --git a/query-languages/dax/allselected-function-dax.md b/query-languages/dax/allselected-function-dax.md index d82ce1106..959e646a7 100644 --- a/query-languages/dax/allselected-function-dax.md +++ b/query-languages/dax/allselected-function-dax.md @@ -4,6 +4,8 @@ title: "ALLSELECTED function (DAX) | Microsoft Docs" --- # ALLSELECTED +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Removes context filters from columns and rows in the current query, while retaining all other context filters or explicit filters. The ALLSELECTED function gets the context that represents all rows and columns in the query, while keeping explicit filters and contexts other than row and column filters. This function can be used to obtain visual totals in queries. diff --git a/query-languages/dax/amordegrc-function-dax.md b/query-languages/dax/amordegrc-function-dax.md index 084766709..931401fa6 100644 --- a/query-languages/dax/amordegrc-function-dax.md +++ b/query-languages/dax/amordegrc-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # AMORDEGRC +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the depreciation for each accounting period. This function is provided for the French accounting system. If an asset is purchased in the middle of the accounting period, the prorated depreciation is taken into account. The function is similar to AMORLINC, except that a depreciation coefficient is applied in the calculation depending on the life of the assets. ## Syntax diff --git a/query-languages/dax/amorlinc-function-dax.md b/query-languages/dax/amorlinc-function-dax.md index 51a81b87c..b0e59f62d 100644 --- a/query-languages/dax/amorlinc-function-dax.md +++ b/query-languages/dax/amorlinc-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # AMORLINC +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the depreciation for each accounting period. This function is provided for the French accounting system. If an asset is purchased in the middle of the accounting period, the prorated depreciation is taken into account. ## Syntax diff --git a/query-languages/dax/and-function-dax.md b/query-languages/dax/and-function-dax.md index db0d40e15..f96769cf6 100644 --- a/query-languages/dax/and-function-dax.md +++ b/query-languages/dax/and-function-dax.md @@ -4,6 +4,8 @@ title: "AND function (DAX) | Microsoft Docs" --- # AND +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks whether both arguments are TRUE, and returns TRUE if both arguments are TRUE. Otherwise returns false. ## Syntax diff --git a/query-languages/dax/asin-function-dax.md b/query-languages/dax/asin-function-dax.md index 104599225..320f7031f 100644 --- a/query-languages/dax/asin-function-dax.md +++ b/query-languages/dax/asin-function-dax.md @@ -4,6 +4,8 @@ title: "ASIN function (DAX) | Microsoft Docs" --- # ASIN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the arcsine, or inverse sine, of a number. The arcsine is the angle whose sine is *number*. The returned angle is given in radians in the range -pi/2 to pi/2. ## Syntax diff --git a/query-languages/dax/asinh-function-dax.md b/query-languages/dax/asinh-function-dax.md index 3544cb99a..baddfd0b0 100644 --- a/query-languages/dax/asinh-function-dax.md +++ b/query-languages/dax/asinh-function-dax.md @@ -4,6 +4,8 @@ title: "ASINH function (DAX) | Microsoft Docs" --- # ASINH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the inverse hyperbolic sine of a number. The inverse hyperbolic sine is the value whose hyperbolic sine is *number*, so ASINH(SINH(number)) equals *number*. ## Syntax diff --git a/query-languages/dax/atan-function-dax.md b/query-languages/dax/atan-function-dax.md index 3b25a36e6..170bfb9a7 100644 --- a/query-languages/dax/atan-function-dax.md +++ b/query-languages/dax/atan-function-dax.md @@ -4,6 +4,8 @@ title: "ATAN function (DAX) | Microsoft Docs" --- # ATAN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the arctangent, or inverse tangent, of a number. The arctangent is the angle whose tangent is *number*. The returned angle is given in radians in the range -pi/2 to pi/2. ## Syntax diff --git a/query-languages/dax/atanh-function-dax.md b/query-languages/dax/atanh-function-dax.md index 521299b14..b87e98d4e 100644 --- a/query-languages/dax/atanh-function-dax.md +++ b/query-languages/dax/atanh-function-dax.md @@ -4,6 +4,8 @@ title: "ATANH function (DAX) | Microsoft Docs" --- # ATANH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the inverse hyperbolic tangent of a number. Number must be between -1 and 1 (excluding -1 and 1). The inverse hyperbolic tangent is the value whose hyperbolic tangent is *number*, so ATANH(TANH(number)) equals *number*. ## Syntax diff --git a/query-languages/dax/average-function-dax.md b/query-languages/dax/average-function-dax.md index 51825422c..817d8888a 100644 --- a/query-languages/dax/average-function-dax.md +++ b/query-languages/dax/average-function-dax.md @@ -4,6 +4,8 @@ title: "AVERAGE function (DAX) | Microsoft Docs" --- # AVERAGE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the average (arithmetic mean) of all the numbers in a column. ## Syntax diff --git a/query-languages/dax/averagea-function-dax.md b/query-languages/dax/averagea-function-dax.md index 5c76279d1..9d61d26dc 100644 --- a/query-languages/dax/averagea-function-dax.md +++ b/query-languages/dax/averagea-function-dax.md @@ -4,6 +4,8 @@ title: "AVERAGEA function (DAX) | Microsoft Docs" --- # AVERAGEA +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the average (arithmetic mean) of the values in a column. Handles text and non-numeric values. ## Syntax diff --git a/query-languages/dax/averagex-function-dax.md b/query-languages/dax/averagex-function-dax.md index 616a030fd..cc4cb852c 100644 --- a/query-languages/dax/averagex-function-dax.md +++ b/query-languages/dax/averagex-function-dax.md @@ -4,6 +4,8 @@ title: "AVERAGEX function (DAX) | Microsoft Docs" --- # AVERAGEX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Calculates the average (arithmetic mean) of a set of expressions evaluated over a table. ## Syntax diff --git a/query-languages/dax/bitand-function-dax.md b/query-languages/dax/bitand-function-dax.md index 40f74ec39..b6a65ddff 100644 --- a/query-languages/dax/bitand-function-dax.md +++ b/query-languages/dax/bitand-function-dax.md @@ -4,6 +4,8 @@ title: "BITAND function (DAX) | Microsoft Docs" --- # BITAND +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a bitwise AND of two numbers. ## Syntax diff --git a/query-languages/dax/bitlshift-function-dax.md b/query-languages/dax/bitlshift-function-dax.md index 225b75da0..fecbb6fa1 100644 --- a/query-languages/dax/bitlshift-function-dax.md +++ b/query-languages/dax/bitlshift-function-dax.md @@ -4,6 +4,8 @@ title: "BITLSHIFT function (DAX) | Microsoft Docs" --- # BITLSHIFT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a number shifted left by the specified number of bits. ## Syntax diff --git a/query-languages/dax/bitor-function-dax.md b/query-languages/dax/bitor-function-dax.md index a4f04da14..52b01312b 100644 --- a/query-languages/dax/bitor-function-dax.md +++ b/query-languages/dax/bitor-function-dax.md @@ -4,6 +4,8 @@ title: "BITOR function (DAX) | Microsoft Docs" --- # BITOR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a bitwise OR of two numbers. ## Syntax diff --git a/query-languages/dax/bitrshift-function-dax.md b/query-languages/dax/bitrshift-function-dax.md index c11d76d62..f164315e9 100644 --- a/query-languages/dax/bitrshift-function-dax.md +++ b/query-languages/dax/bitrshift-function-dax.md @@ -4,6 +4,8 @@ title: "BITRSHIFT function (DAX) | Microsoft Docs" --- # BITRSHIFT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a number shifted right by the specified number of bits. ## Syntax diff --git a/query-languages/dax/bitxor-function-dax.md b/query-languages/dax/bitxor-function-dax.md index 0ee1aa247..bdd4e2565 100644 --- a/query-languages/dax/bitxor-function-dax.md +++ b/query-languages/dax/bitxor-function-dax.md @@ -4,6 +4,8 @@ title: "BITXOR function (DAX) | Microsoft Docs" --- # BITXOR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a bitwise XOR of two numbers. ## Syntax diff --git a/query-languages/dax/blank-function-dax.md b/query-languages/dax/blank-function-dax.md index 96ccc3372..90d0a851a 100644 --- a/query-languages/dax/blank-function-dax.md +++ b/query-languages/dax/blank-function-dax.md @@ -4,6 +4,8 @@ title: "BLANK function (DAX) | Microsoft Docs" --- # BLANK +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a blank. ## Syntax diff --git a/query-languages/dax/calculate-function-dax.md b/query-languages/dax/calculate-function-dax.md index 6b2274037..b295bae86 100644 --- a/query-languages/dax/calculate-function-dax.md +++ b/query-languages/dax/calculate-function-dax.md @@ -4,6 +4,8 @@ title: "CALCULATE function (DAX) | Microsoft Docs" --- # CALCULATE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Evaluates an expression in a modified filter context. > [!NOTE] diff --git a/query-languages/dax/calculatetable-function-dax.md b/query-languages/dax/calculatetable-function-dax.md index d0f908df8..d8c077b4f 100644 --- a/query-languages/dax/calculatetable-function-dax.md +++ b/query-languages/dax/calculatetable-function-dax.md @@ -4,6 +4,8 @@ title: "CALCULATETABLE function (DAX) | Microsoft Docs" --- # CALCULATETABLE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Evaluates a table expression in a modified filter context. > [!NOTE] diff --git a/query-languages/dax/calendar-function-dax.md b/query-languages/dax/calendar-function-dax.md index ae0a27a02..7d02ee456 100644 --- a/query-languages/dax/calendar-function-dax.md +++ b/query-languages/dax/calendar-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: CALENDAR" title: "CALENDAR function (DAX) | Microsoft Docs" --- # CALENDAR + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is from the specified start date to the specified end date, inclusive of those two dates. diff --git a/query-languages/dax/calendarauto-function-dax.md b/query-languages/dax/calendarauto-function-dax.md index bcbc74237..208fd0583 100644 --- a/query-languages/dax/calendarauto-function-dax.md +++ b/query-languages/dax/calendarauto-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: CALENDARAUTO" title: "CALENDARAUTO function (DAX) | Microsoft Docs" --- # CALENDARAUTO + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is calculated automatically based on data in the model. diff --git a/query-languages/dax/ceiling-function-dax.md b/query-languages/dax/ceiling-function-dax.md index e961bbe75..537b7a67a 100644 --- a/query-languages/dax/ceiling-function-dax.md +++ b/query-languages/dax/ceiling-function-dax.md @@ -4,6 +4,8 @@ title: "CEILING function (DAX) | Microsoft Docs" --- # CEILING +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Rounds a number up, to the nearest integer or to the nearest multiple of significance. ## Syntax diff --git a/query-languages/dax/closingbalancemonth-function-dax.md b/query-languages/dax/closingbalancemonth-function-dax.md index 51b34171e..6f54462d8 100644 --- a/query-languages/dax/closingbalancemonth-function-dax.md +++ b/query-languages/dax/closingbalancemonth-function-dax.md @@ -4,6 +4,8 @@ title: "CLOSINGBALANCEMONTH function (DAX) | Microsoft Docs" --- # CLOSINGBALANCEMONTH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates the **expression** at the last date of the month in the current context. ## Syntax diff --git a/query-languages/dax/closingbalancequarter-function-dax.md b/query-languages/dax/closingbalancequarter-function-dax.md index 88053a214..f3b431218 100644 --- a/query-languages/dax/closingbalancequarter-function-dax.md +++ b/query-languages/dax/closingbalancequarter-function-dax.md @@ -4,6 +4,8 @@ title: "CLOSINGBALANCEQUARTER function (DAX) | Microsoft Docs" --- # CLOSINGBALANCEQUARTER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates the **expression** at the last date of the quarter in the current context. ## Syntax diff --git a/query-languages/dax/closingbalanceyear-function-dax.md b/query-languages/dax/closingbalanceyear-function-dax.md index 0f4d88f66..385d4f56f 100644 --- a/query-languages/dax/closingbalanceyear-function-dax.md +++ b/query-languages/dax/closingbalanceyear-function-dax.md @@ -4,6 +4,8 @@ title: "CLOSINGBALANCEYEAR function (DAX) | Microsoft Docs" --- # CLOSINGBALANCEYEAR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates the **expression** at the last date of the year in the current context. ## Syntax diff --git a/query-languages/dax/coalesce-function-dax.md b/query-languages/dax/coalesce-function-dax.md index 2e7bee2ed..4dad54ce6 100644 --- a/query-languages/dax/coalesce-function-dax.md +++ b/query-languages/dax/coalesce-function-dax.md @@ -4,6 +4,8 @@ title: "COALESCE function (DAX) | Microsoft Docs" --- # COALESCE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the first expression that does not evaluate to BLANK. If all expressions evaluate to BLANK, BLANK is returned. ## Syntax diff --git a/query-languages/dax/collapse-function-dax.md b/query-languages/dax/collapse-function-dax.md index 89517f479..81587af99 100644 --- a/query-languages/dax/collapse-function-dax.md +++ b/query-languages/dax/collapse-function-dax.md @@ -13,6 +13,8 @@ recommendations: false # COLLAPSE +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Retrieves a context at a higher level compared to the current context. If an expression is provided, returns its value in the new context, allowing for navigation in hierarchies and calculation at a higher level. ## Syntax diff --git a/query-languages/dax/collapseall-function-dax.md b/query-languages/dax/collapseall-function-dax.md index 95d601048..a1c9d84f7 100644 --- a/query-languages/dax/collapseall-function-dax.md +++ b/query-languages/dax/collapseall-function-dax.md @@ -13,6 +13,8 @@ recommendations: false # COLLAPSEALL +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Retrieves a context at the highest level compared to the current context. If an expression is provided, returns its value in the new context, allowing for navigation in hierarchies and calculation at the highest level. ## Syntax diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index cda9824a1..f6e87d43b 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -4,6 +4,8 @@ title: "COLUMNSTATISTICS function (DAX) | Microsoft Docs" --- # COLUMNSTATISTICS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table of statistics regarding every column in every table in the model. ## Syntax diff --git a/query-languages/dax/combin-function-dax.md b/query-languages/dax/combin-function-dax.md index bb87e7048..09f688ae6 100644 --- a/query-languages/dax/combin-function-dax.md +++ b/query-languages/dax/combin-function-dax.md @@ -5,6 +5,8 @@ title: "COMBIN function (DAX) | Microsoft Docs" # COMBIN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of combinations for a given number of items. Use COMBIN to determine the total possible number of groups for a given number of items. ## Syntax diff --git a/query-languages/dax/combina-function-dax.md b/query-languages/dax/combina-function-dax.md index 2cda4a242..3bd73269f 100644 --- a/query-languages/dax/combina-function-dax.md +++ b/query-languages/dax/combina-function-dax.md @@ -5,6 +5,8 @@ title: "COMBINA function (DAX) | Microsoft Docs" # COMBINA +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of combinations (with repetitions) for a given number of items. ## Syntax diff --git a/query-languages/dax/combinevalues-function-dax.md b/query-languages/dax/combinevalues-function-dax.md index 543112ef3..00bde7b91 100644 --- a/query-languages/dax/combinevalues-function-dax.md +++ b/query-languages/dax/combinevalues-function-dax.md @@ -5,6 +5,8 @@ title: "COMBINEVALUES function (DAX) | Microsoft Docs" # COMBINEVALUES +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Joins two or more text strings into one text string. The primary purpose of this function is to support multi-column relationships in DirectQuery models. See **Remarks** for details. ## Syntax diff --git a/query-languages/dax/concatenate-function-dax.md b/query-languages/dax/concatenate-function-dax.md index 9479df008..ddfccf928 100644 --- a/query-languages/dax/concatenate-function-dax.md +++ b/query-languages/dax/concatenate-function-dax.md @@ -4,6 +4,8 @@ title: "CONCATENATE function (DAX) | Microsoft Docs" --- # CONCATENATE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Joins two text strings into one text string. ## Syntax diff --git a/query-languages/dax/concatenatex-function-dax.md b/query-languages/dax/concatenatex-function-dax.md index a78890d17..450fa9641 100644 --- a/query-languages/dax/concatenatex-function-dax.md +++ b/query-languages/dax/concatenatex-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: CONCATENATEX" title: "CONCATENATEX function (DAX) | Microsoft Docs" --- # CONCATENATEX + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Concatenates the result of an expression evaluated for each row in a table. diff --git a/query-languages/dax/contains-function-dax.md b/query-languages/dax/contains-function-dax.md index 3d38371ee..d5f718396 100644 --- a/query-languages/dax/contains-function-dax.md +++ b/query-languages/dax/contains-function-dax.md @@ -4,6 +4,8 @@ title: "CONTAINS function (DAX) | Microsoft Docs" --- # CONTAINS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns true if values for all referred columns exist, or are contained, in those columns; otherwise, the function returns false. ## Syntax diff --git a/query-languages/dax/containsrow-function-dax.md b/query-languages/dax/containsrow-function-dax.md index 152666020..c01390ee4 100644 --- a/query-languages/dax/containsrow-function-dax.md +++ b/query-languages/dax/containsrow-function-dax.md @@ -4,6 +4,8 @@ title: "CONTAINSROW function | Microsoft Docs" --- # CONTAINSROW function +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns TRUE if there exists at least one row where all columns have specified values. ## Syntax diff --git a/query-languages/dax/containsstring-function-dax.md b/query-languages/dax/containsstring-function-dax.md index fec3dc6ff..9561fff02 100644 --- a/query-languages/dax/containsstring-function-dax.md +++ b/query-languages/dax/containsstring-function-dax.md @@ -4,6 +4,8 @@ title: "CONTAINSSTRING function (DAX) | Microsoft Docs" --- # CONTAINSSTRING +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns TRUE or FALSE indicating whether one string contains another string. ## Syntax diff --git a/query-languages/dax/containsstringexact-function-dax.md b/query-languages/dax/containsstringexact-function-dax.md index e02a5003d..ac299c257 100644 --- a/query-languages/dax/containsstringexact-function-dax.md +++ b/query-languages/dax/containsstringexact-function-dax.md @@ -4,6 +4,8 @@ title: "CONTAINSSTRINGEXACT function (DAX) | Microsoft Docs" --- # CONTAINSSTRINGEXACT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns TRUE or FALSE indicating whether one string contains another string. ## Syntax diff --git a/query-languages/dax/convert-function-dax.md b/query-languages/dax/convert-function-dax.md index 9351db9f8..b839c66df 100644 --- a/query-languages/dax/convert-function-dax.md +++ b/query-languages/dax/convert-function-dax.md @@ -4,6 +4,8 @@ title: "CONVERT function (DAX) | Microsoft Docs" --- # CONVERT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts an expression of one data type to another. ## Syntax diff --git a/query-languages/dax/cos-function-dax.md b/query-languages/dax/cos-function-dax.md index 5bd75e24c..edc69380b 100644 --- a/query-languages/dax/cos-function-dax.md +++ b/query-languages/dax/cos-function-dax.md @@ -4,6 +4,8 @@ title: "COS function (DAX) | Microsoft Docs" --- # COS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the cosine of the given angle. ## Syntax diff --git a/query-languages/dax/cosh-function-dax.md b/query-languages/dax/cosh-function-dax.md index 152500622..fcaa61bd2 100644 --- a/query-languages/dax/cosh-function-dax.md +++ b/query-languages/dax/cosh-function-dax.md @@ -4,6 +4,8 @@ title: "COSH function (DAX) | Microsoft Docs" --- # COSH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the hyperbolic cosine of a number. ## Syntax diff --git a/query-languages/dax/cot-function-dax.md b/query-languages/dax/cot-function-dax.md index 0b1712cda..76b213a42 100644 --- a/query-languages/dax/cot-function-dax.md +++ b/query-languages/dax/cot-function-dax.md @@ -4,6 +4,8 @@ title: "COT function (DAX) | Microsoft Docs" --- # COT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the cotangent of an angle specified in radians. ## Syntax diff --git a/query-languages/dax/coth-function-dax.md b/query-languages/dax/coth-function-dax.md index de8b4bfcf..9daeb2cca 100644 --- a/query-languages/dax/coth-function-dax.md +++ b/query-languages/dax/coth-function-dax.md @@ -4,6 +4,8 @@ title: "COTH function (DAX) | Microsoft Docs" --- # COTH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the hyperbolic cotangent of a hyperbolic angle. ## Syntax diff --git a/query-languages/dax/count-function-dax.md b/query-languages/dax/count-function-dax.md index 73da9d129..8b000f33a 100644 --- a/query-languages/dax/count-function-dax.md +++ b/query-languages/dax/count-function-dax.md @@ -4,6 +4,8 @@ title: "COUNT function (DAX) | Microsoft Docs" --- # COUNT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Counts the number of rows in the specified column that contain non-blank values. ## Syntax diff --git a/query-languages/dax/counta-function-dax.md b/query-languages/dax/counta-function-dax.md index 95704b194..293ef8c29 100644 --- a/query-languages/dax/counta-function-dax.md +++ b/query-languages/dax/counta-function-dax.md @@ -4,6 +4,8 @@ title: "COUNTA function (DAX) | Microsoft Docs" --- # COUNTA +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Counts the number of rows in the specified column that contain non-blank values. ## Syntax diff --git a/query-languages/dax/countax-function-dax.md b/query-languages/dax/countax-function-dax.md index c4094ee61..9d9ce0106 100644 --- a/query-languages/dax/countax-function-dax.md +++ b/query-languages/dax/countax-function-dax.md @@ -4,6 +4,8 @@ title: "COUNTAX function (DAX) | Microsoft Docs" --- # COUNTAX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + The COUNTAX function counts non-blank results when evaluating the result of an expression over a table. That is, it works just like the COUNTA function, but is used to iterate through the rows in a table and count rows where the specified expressions results in a non-blank result. ## Syntax diff --git a/query-languages/dax/countblank-function-dax.md b/query-languages/dax/countblank-function-dax.md index 3a72507fe..6cffdb7cb 100644 --- a/query-languages/dax/countblank-function-dax.md +++ b/query-languages/dax/countblank-function-dax.md @@ -4,6 +4,8 @@ title: "COUNTBLANK function (DAX) | Microsoft Docs" --- # COUNTBLANK +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Counts the number of blank cells in a column. ## Syntax diff --git a/query-languages/dax/countrows-function-dax.md b/query-languages/dax/countrows-function-dax.md index 3cf746587..f92de2b71 100644 --- a/query-languages/dax/countrows-function-dax.md +++ b/query-languages/dax/countrows-function-dax.md @@ -4,6 +4,8 @@ title: "COUNTROWS function (DAX) | Microsoft Docs" --- # COUNTROWS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + The COUNTROWS function counts the number of rows in the specified table, or in a table defined by an expression. ## Syntax diff --git a/query-languages/dax/countx-function-dax.md b/query-languages/dax/countx-function-dax.md index d6680fb5f..7e4121025 100644 --- a/query-languages/dax/countx-function-dax.md +++ b/query-languages/dax/countx-function-dax.md @@ -4,6 +4,8 @@ title: "COUNTX function (DAX) | Microsoft Docs" --- # COUNTX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Counts the number of rows that contain a non-blank value or an expression that evaluates to a non-blank value, when evaluating an expression over a table. ## Syntax diff --git a/query-languages/dax/coupdaybs-function-dax.md b/query-languages/dax/coupdaybs-function-dax.md index b68d226d9..c1ba6399b 100644 --- a/query-languages/dax/coupdaybs-function-dax.md +++ b/query-languages/dax/coupdaybs-function-dax.md @@ -5,6 +5,8 @@ title: "COUPDAYBS function (DAX) | Microsoft Docs" # COUPDAYBS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of days from the beginning of a coupon period until its settlement date. ## Syntax diff --git a/query-languages/dax/coupdays-function-dax.md b/query-languages/dax/coupdays-function-dax.md index 11e4ac258..a5e3d8341 100644 --- a/query-languages/dax/coupdays-function-dax.md +++ b/query-languages/dax/coupdays-function-dax.md @@ -5,6 +5,8 @@ title: "COUPDAYS function (DAX) | Microsoft Docs" # COUPDAYS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of days in the coupon period that contains the settlement date. ## Syntax diff --git a/query-languages/dax/coupdaysnc-function-dax.md b/query-languages/dax/coupdaysnc-function-dax.md index 8df4108a8..c65223d2f 100644 --- a/query-languages/dax/coupdaysnc-function-dax.md +++ b/query-languages/dax/coupdaysnc-function-dax.md @@ -5,6 +5,8 @@ title: "COUPDAYSNC function (DAX) | Microsoft Docs" # COUPDAYSNC +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of days from the settlement date to the next coupon date. ## Syntax diff --git a/query-languages/dax/coupncd-function-dax.md b/query-languages/dax/coupncd-function-dax.md index 7329e2270..9ca63d193 100644 --- a/query-languages/dax/coupncd-function-dax.md +++ b/query-languages/dax/coupncd-function-dax.md @@ -5,6 +5,8 @@ title: "COUPNCD function (DAX) | Microsoft Docs" # COUPNCD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the next coupon date after the settlement date. ## Syntax diff --git a/query-languages/dax/coupnum-function-dax.md b/query-languages/dax/coupnum-function-dax.md index d472e9d20..253f2216b 100644 --- a/query-languages/dax/coupnum-function-dax.md +++ b/query-languages/dax/coupnum-function-dax.md @@ -5,6 +5,8 @@ title: "COUPNUM function (DAX) | Microsoft Docs" # COUPNUM +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of coupons payable between the settlement date and maturity date, rounded up to the nearest whole coupon. ## Syntax diff --git a/query-languages/dax/couppcd-function-dax.md b/query-languages/dax/couppcd-function-dax.md index 79229b181..895929c28 100644 --- a/query-languages/dax/couppcd-function-dax.md +++ b/query-languages/dax/couppcd-function-dax.md @@ -5,6 +5,8 @@ title: "COUPPCD function (DAX) | Microsoft Docs" # COUPPCD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the previous coupon date before the settlement date. ## Syntax diff --git a/query-languages/dax/crossfilter-function-dax.md b/query-languages/dax/crossfilter-function-dax.md index ef1026be9..c4305e872 100644 --- a/query-languages/dax/crossfilter-function-dax.md +++ b/query-languages/dax/crossfilter-function-dax.md @@ -4,6 +4,8 @@ title: "CROSSFILTER function | Microsoft Docs" --- # CROSSFILTER +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Specifies the cross-filtering direction to be used in a calculation for a relationship that exists between two columns. ## Syntax diff --git a/query-languages/dax/crossjoin-function-dax.md b/query-languages/dax/crossjoin-function-dax.md index 4a81260db..547abde4f 100644 --- a/query-languages/dax/crossjoin-function-dax.md +++ b/query-languages/dax/crossjoin-function-dax.md @@ -4,6 +4,8 @@ title: "CROSSJOIN function (DAX) | Microsoft Docs" --- # CROSSJOIN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a table that contains the Cartesian product of all rows from all tables in the arguments. The columns in the new table are all the columns in all the argument tables. ## Syntax diff --git a/query-languages/dax/cumipmt-function-dax.md b/query-languages/dax/cumipmt-function-dax.md index b9c8c20e7..b7b11bcd8 100644 --- a/query-languages/dax/cumipmt-function-dax.md +++ b/query-languages/dax/cumipmt-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # CUMIPMT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the cumulative interest paid on a loan between start_period and end_period. ## Syntax diff --git a/query-languages/dax/cumprinc-function-dax.md b/query-languages/dax/cumprinc-function-dax.md index d58cba910..11cfa0713 100644 --- a/query-languages/dax/cumprinc-function-dax.md +++ b/query-languages/dax/cumprinc-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # CUMPRINC +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the cumulative principal paid on a loan between start_period and end_period. ## Syntax diff --git a/query-languages/dax/currency-function-dax.md b/query-languages/dax/currency-function-dax.md index ba6e56eba..122597a13 100644 --- a/query-languages/dax/currency-function-dax.md +++ b/query-languages/dax/currency-function-dax.md @@ -4,6 +4,8 @@ title: "CURRENCY function (DAX) | Microsoft Docs" --- # CURRENCY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Evaluates the argument and returns the result as currency data type. ## Syntax diff --git a/query-languages/dax/currentgroup-function-dax.md b/query-languages/dax/currentgroup-function-dax.md index 45690b4cd..b3605cda7 100644 --- a/query-languages/dax/currentgroup-function-dax.md +++ b/query-languages/dax/currentgroup-function-dax.md @@ -4,6 +4,8 @@ title: "CURRENTGROUP function (DAX) | Microsoft Docs" --- # CURRENTGROUP +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a set of rows from the table argument of a [GROUPBY](groupby-function-dax.md) expression that belong to the current row of the [GROUPBY](groupby-function-dax.md) result. ## Syntax diff --git a/query-languages/dax/customdata-function-dax.md b/query-languages/dax/customdata-function-dax.md index dd7ca83bc..47f42cd8a 100644 --- a/query-languages/dax/customdata-function-dax.md +++ b/query-languages/dax/customdata-function-dax.md @@ -4,6 +4,8 @@ title: "CUSTOMDATA function (DAX) | Microsoft Docs" --- # CUSTOMDATA +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the content of the **CustomData** property in the connection string. ## Syntax diff --git a/query-languages/dax/datatable-function-dax.md b/query-languages/dax/datatable-function-dax.md index 959795e31..8cc2f8e0b 100644 --- a/query-languages/dax/datatable-function-dax.md +++ b/query-languages/dax/datatable-function-dax.md @@ -4,6 +4,8 @@ title: "DATATABLE function | Microsoft Docs" --- # DATATABLE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Provides a mechanism for declaring an inline set of data values. ## Syntax diff --git a/query-languages/dax/date-function-dax.md b/query-languages/dax/date-function-dax.md index 984c42654..02f0579f0 100644 --- a/query-languages/dax/date-function-dax.md +++ b/query-languages/dax/date-function-dax.md @@ -4,6 +4,8 @@ title: "DATE function (DAX) | Microsoft Docs" --- # DATE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the specified date in **datetime** format. ## Syntax diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index ac6e3c6a8..ae0a39f3f 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -4,6 +4,8 @@ title: "DATEADD function (DAX) | Microsoft Docs" --- # DATEADD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of dates, shifted either forward or backward in time by the specified number of intervals from the dates in the current context. ## Syntax diff --git a/query-languages/dax/datediff-function-dax.md b/query-languages/dax/datediff-function-dax.md index 6a315823f..62a04578f 100644 --- a/query-languages/dax/datediff-function-dax.md +++ b/query-languages/dax/datediff-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: DATEDIFF" title: "DATEDIFF function (DAX) | Microsoft Docs" --- # DATEDIFF + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the number of interval boundaries between two dates. diff --git a/query-languages/dax/datesbetween-function-dax.md b/query-languages/dax/datesbetween-function-dax.md index 2338a9872..6e1f12c69 100644 --- a/query-languages/dax/datesbetween-function-dax.md +++ b/query-languages/dax/datesbetween-function-dax.md @@ -4,6 +4,8 @@ title: "DATESBETWEEN function (DAX) | Microsoft Docs" --- # DATESBETWEEN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of dates that begins with a specified start date and continues until a specified end date. This function is suited to pass as a filter to the [CALCULATE](calculate-function-dax.md) function. Use it to filter an expression by a custom date range. diff --git a/query-languages/dax/datesinperiod-function-dax.md b/query-languages/dax/datesinperiod-function-dax.md index d23a839d8..d81450470 100644 --- a/query-languages/dax/datesinperiod-function-dax.md +++ b/query-languages/dax/datesinperiod-function-dax.md @@ -4,6 +4,8 @@ title: "DATESINPERIOD function (DAX) | Microsoft Docs" --- # DATESINPERIOD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of dates that begins with a specified start date and continues for the specified number and type of date intervals. This function is suited to pass as a filter to the [CALCULATE](calculate-function-dax.md) function. Use it to filter an expression by standard date intervals such as days, months, quarters, or years. diff --git a/query-languages/dax/datesmtd-function-dax.md b/query-languages/dax/datesmtd-function-dax.md index b8895f428..d098860dc 100644 --- a/query-languages/dax/datesmtd-function-dax.md +++ b/query-languages/dax/datesmtd-function-dax.md @@ -4,6 +4,8 @@ title: "DATESMTD function (DAX) | Microsoft Docs" --- # DATESMTD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of the dates for the month to date, in the current context. ## Syntax diff --git a/query-languages/dax/datesqtd-function-dax.md b/query-languages/dax/datesqtd-function-dax.md index 5a832376d..00ee40b3f 100644 --- a/query-languages/dax/datesqtd-function-dax.md +++ b/query-languages/dax/datesqtd-function-dax.md @@ -4,6 +4,8 @@ title: "DATESQTD function (DAX) | Microsoft Docs" --- # DATESQTD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of the dates for the quarter to date, in the current context. ## Syntax diff --git a/query-languages/dax/datesytd-function-dax.md b/query-languages/dax/datesytd-function-dax.md index 05a05912a..ae7e98794 100644 --- a/query-languages/dax/datesytd-function-dax.md +++ b/query-languages/dax/datesytd-function-dax.md @@ -4,6 +4,8 @@ title: "DATESYTD function (DAX) | Microsoft Docs" --- # DATESYTD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of the dates for the year to date, in the current context. ## Syntax diff --git a/query-languages/dax/datevalue-function-dax.md b/query-languages/dax/datevalue-function-dax.md index d30e28dd7..faf61b860 100644 --- a/query-languages/dax/datevalue-function-dax.md +++ b/query-languages/dax/datevalue-function-dax.md @@ -4,6 +4,8 @@ title: "DATEVALUE function (DAX) | Microsoft Docs" --- # DATEVALUE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts a date in text format to a date in datetime format. ## Syntax diff --git a/query-languages/dax/day-function-dax.md b/query-languages/dax/day-function-dax.md index 2556f284b..ac0f2809f 100644 --- a/query-languages/dax/day-function-dax.md +++ b/query-languages/dax/day-function-dax.md @@ -4,6 +4,8 @@ title: "DAY function (DAX) | Microsoft Docs" --- # DAY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the day of the month, a number from 1 to 31. ## Syntax diff --git a/query-languages/dax/db-function-dax.md b/query-languages/dax/db-function-dax.md index 6d5242452..d4edb5460 100644 --- a/query-languages/dax/db-function-dax.md +++ b/query-languages/dax/db-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # DB +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the depreciation of an asset for a specified period using the fixed-declining balance method. ## Syntax diff --git a/query-languages/dax/ddb-function-dax.md b/query-languages/dax/ddb-function-dax.md index 9c2fdf1cd..8108b6af5 100644 --- a/query-languages/dax/ddb-function-dax.md +++ b/query-languages/dax/ddb-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # DDB +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the depreciation of an asset for a specified period using the double-declining balance method or some other method you specify. ## Syntax diff --git a/query-languages/dax/degrees-function-dax.md b/query-languages/dax/degrees-function-dax.md index 5c029c26e..df15856f0 100644 --- a/query-languages/dax/degrees-function-dax.md +++ b/query-languages/dax/degrees-function-dax.md @@ -4,6 +4,8 @@ title: "DEGREES function (DAX) | Microsoft Docs" --- # DEGREES +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts radians into degrees. ## Syntax diff --git a/query-languages/dax/detailrows-function-dax.md b/query-languages/dax/detailrows-function-dax.md index 0b7d18774..a7331eda9 100644 --- a/query-languages/dax/detailrows-function-dax.md +++ b/query-languages/dax/detailrows-function-dax.md @@ -4,6 +4,8 @@ title: "DETAILROWS function (DAX) | Microsoft Docs" --- # DETAILROWS +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Evaluates a Detail Rows Expression defined for a measure and returns the data. ## Syntax diff --git a/query-languages/dax/disc-function-dax.md b/query-languages/dax/disc-function-dax.md index dc647c164..69baadbe9 100644 --- a/query-languages/dax/disc-function-dax.md +++ b/query-languages/dax/disc-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # DISC +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the discount rate for a security. ## Syntax diff --git a/query-languages/dax/distinct-function-dax.md b/query-languages/dax/distinct-function-dax.md index 7dae71316..086b64b2b 100644 --- a/query-languages/dax/distinct-function-dax.md +++ b/query-languages/dax/distinct-function-dax.md @@ -4,6 +4,8 @@ title: "DISTINCT (column) function (DAX) | Microsoft Docs" --- # DISTINCT (column) +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a one-column table that contains the distinct values from the specified column. In other words, duplicate values are removed and only unique values are returned. > [!NOTE] diff --git a/query-languages/dax/distinctcount-function-dax.md b/query-languages/dax/distinctcount-function-dax.md index 8fda42c5d..044d432c5 100644 --- a/query-languages/dax/distinctcount-function-dax.md +++ b/query-languages/dax/distinctcount-function-dax.md @@ -4,6 +4,8 @@ title: "DISTINCTCOUNT function (DAX) | Microsoft Docs" --- # DISTINCTCOUNT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Counts the number of distinct values in a column. ## Syntax diff --git a/query-languages/dax/distinctcountnoblank-function-dax.md b/query-languages/dax/distinctcountnoblank-function-dax.md index 799a60a70..cd2bd41ad 100644 --- a/query-languages/dax/distinctcountnoblank-function-dax.md +++ b/query-languages/dax/distinctcountnoblank-function-dax.md @@ -4,6 +4,8 @@ title: "DISTINCTCOUNTNOBLANK function (DAX) | Microsoft Docs" --- # DISTINCTCOUNTNOBLANK +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Counts the number of distinct values in a column. ## Syntax diff --git a/query-languages/dax/divide-function-dax.md b/query-languages/dax/divide-function-dax.md index 125428cab..4687d7f15 100644 --- a/query-languages/dax/divide-function-dax.md +++ b/query-languages/dax/divide-function-dax.md @@ -4,6 +4,8 @@ title: "DIVIDE function (DAX) | Microsoft Docs" --- # DIVIDE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Performs division and returns alternate result or BLANK() on division by 0. ## Syntax diff --git a/query-languages/dax/dollarde-function-dax.md b/query-languages/dax/dollarde-function-dax.md index 0d3cd253e..ec1f9226a 100644 --- a/query-languages/dax/dollarde-function-dax.md +++ b/query-languages/dax/dollarde-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # DOLLARDE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts a dollar price expressed as an integer part and a fraction part, such as 1.02, into a dollar price expressed as a decimal number. Fractional dollar numbers are sometimes used for security prices. ## Syntax diff --git a/query-languages/dax/dollarfr-function-dax.md b/query-languages/dax/dollarfr-function-dax.md index e5896b8d2..6409ad363 100644 --- a/query-languages/dax/dollarfr-function-dax.md +++ b/query-languages/dax/dollarfr-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # DOLLARFR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts a dollar price expressed as a decimal number into a dollar price expressed as an integer part and a fraction part, such as 1.02. Fractional dollar numbers are sometimes used for security prices. ## Syntax diff --git a/query-languages/dax/duration-function-dax.md b/query-languages/dax/duration-function-dax.md index 578bef682..1027ba96a 100644 --- a/query-languages/dax/duration-function-dax.md +++ b/query-languages/dax/duration-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # DURATION +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the Macauley duration for an assumed par value of \\$100. Duration is defined as the weighted average of the present value of cash flows, and is used as a measure of a bond price's response to changes in yield. ## Syntax diff --git a/query-languages/dax/earlier-function-dax.md b/query-languages/dax/earlier-function-dax.md index ad269cc3c..dfa4e4779 100644 --- a/query-languages/dax/earlier-function-dax.md +++ b/query-languages/dax/earlier-function-dax.md @@ -4,6 +4,8 @@ title: "EARLIER function (DAX) | Microsoft Docs" --- # EARLIER +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Returns the current value of the specified column in an outer evaluation pass of the mentioned column. EARLIER is useful for nested calculations where you want to use a certain value as an input and produce calculations based on that input. In Microsoft Excel, you can do such calculations only within the context of the current row; however, in DAX you can store the value of the input and then make calculation using data from the entire table. diff --git a/query-languages/dax/earliest-function-dax.md b/query-languages/dax/earliest-function-dax.md index cb0375ee6..deb35212b 100644 --- a/query-languages/dax/earliest-function-dax.md +++ b/query-languages/dax/earliest-function-dax.md @@ -4,6 +4,8 @@ title: "EARLIEST function (DAX) | Microsoft Docs" --- # EARLIEST +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Returns the current value of the specified column in an outer evaluation pass of the specified column. ## Syntax diff --git a/query-languages/dax/edate-function-dax.md b/query-languages/dax/edate-function-dax.md index ffae77a97..cd291fc9d 100644 --- a/query-languages/dax/edate-function-dax.md +++ b/query-languages/dax/edate-function-dax.md @@ -4,6 +4,8 @@ title: "EDATE function (DAX) | Microsoft Docs" --- # EDATE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the date that is the indicated number of months before or after the start date. Use EDATE to calculate maturity dates or due dates that fall on the same day of the month as the date of issue. ## Syntax diff --git a/query-languages/dax/effect-function-dax.md b/query-languages/dax/effect-function-dax.md index 4746d7dd2..96ba3d74b 100644 --- a/query-languages/dax/effect-function-dax.md +++ b/query-languages/dax/effect-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # EFFECT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the effective annual interest rate, given the nominal annual interest rate and the number of compounding periods per year. ## Syntax diff --git a/query-languages/dax/endofmonth-function-dax.md b/query-languages/dax/endofmonth-function-dax.md index ba08aaf0b..e80d8609f 100644 --- a/query-languages/dax/endofmonth-function-dax.md +++ b/query-languages/dax/endofmonth-function-dax.md @@ -4,6 +4,8 @@ title: "ENDOFMONTH function (DAX) | Microsoft Docs" --- # ENDOFMONTH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns the last date of the month in the current context for the specified column of dates. ## Syntax diff --git a/query-languages/dax/endofquarter-function-dax.md b/query-languages/dax/endofquarter-function-dax.md index 85ab842a9..4359691c6 100644 --- a/query-languages/dax/endofquarter-function-dax.md +++ b/query-languages/dax/endofquarter-function-dax.md @@ -4,6 +4,8 @@ title: "ENDOFQUARTER function (DAX) | Microsoft Docs" --- # ENDOFQUARTER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns the last date of the quarter in the current context for the specified column of dates. ## Syntax diff --git a/query-languages/dax/endofyear-function-dax.md b/query-languages/dax/endofyear-function-dax.md index 2ec834ed0..e741e352c 100644 --- a/query-languages/dax/endofyear-function-dax.md +++ b/query-languages/dax/endofyear-function-dax.md @@ -4,6 +4,8 @@ title: "ENDOFYEAR function (DAX) | Microsoft Docs" --- # ENDOFYEAR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns the last date of the year in the current context for the specified column of dates. ## Syntax diff --git a/query-languages/dax/eomonth-function-dax.md b/query-languages/dax/eomonth-function-dax.md index 610c4b017..1a59a8fa1 100644 --- a/query-languages/dax/eomonth-function-dax.md +++ b/query-languages/dax/eomonth-function-dax.md @@ -4,6 +4,8 @@ title: "EOMONTH function (DAX) | Microsoft Docs" --- # EOMONTH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the date in **datetime** format of the last day of the month, before or after a specified number of months. Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month. ## Syntax diff --git a/query-languages/dax/error-function-dax.md b/query-languages/dax/error-function-dax.md index 2e6a0941c..1996dcf2c 100644 --- a/query-languages/dax/error-function-dax.md +++ b/query-languages/dax/error-function-dax.md @@ -4,6 +4,8 @@ title: "ERROR function | Microsoft Docs" --- # ERROR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Raises an error with an error message. ## Syntax diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index b968af224..fec993218 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -4,6 +4,8 @@ title: "EVALUATEANDLOG function (DAX) | Microsoft Docs" --- # EVALUATEANDLOG +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. This function is fully functional in Power BI Desktop only. It acts as a simple passthrough function in other environments. ## Syntax diff --git a/query-languages/dax/even-function-dax.md b/query-languages/dax/even-function-dax.md index d72a6b400..c07aa315e 100644 --- a/query-languages/dax/even-function-dax.md +++ b/query-languages/dax/even-function-dax.md @@ -4,6 +4,8 @@ title: "EVEN function (DAX) | Microsoft Docs" --- # EVEN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns number rounded up to the nearest even integer. You can use this function for processing items that come in twos. For example, a packing crate accepts rows of one or two items. The crate is full when the number of items, rounded up to the nearest two, matches the crate's capacity. ## Syntax diff --git a/query-languages/dax/exact-function-dax.md b/query-languages/dax/exact-function-dax.md index 6c4fc2702..280bf2ede 100644 --- a/query-languages/dax/exact-function-dax.md +++ b/query-languages/dax/exact-function-dax.md @@ -4,6 +4,8 @@ title: "EXACT function (DAX) | Microsoft Docs" --- # EXACT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Compares two text strings and returns TRUE if they are exactly the same, otherwise returns FALSE. EXACT is case-sensitive but ignores formatting differences. EXACT is case-sensitive ## Syntax diff --git a/query-languages/dax/except-function-dax.md b/query-languages/dax/except-function-dax.md index 2f5debaeb..99f80bbe3 100644 --- a/query-languages/dax/except-function-dax.md +++ b/query-languages/dax/except-function-dax.md @@ -4,6 +4,8 @@ title: "EXCEPT function (DAX) | Microsoft Docs" --- # EXCEPT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the rows of the first table in the expression which do not appear in the second table. ## Syntax diff --git a/query-languages/dax/exp-function-dax.md b/query-languages/dax/exp-function-dax.md index 13db10f30..feb735f6c 100644 --- a/query-languages/dax/exp-function-dax.md +++ b/query-languages/dax/exp-function-dax.md @@ -4,6 +4,8 @@ title: "EXP function (DAX) | Microsoft Docs" --- # EXP +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns e raised to the power of a given number. The constant e equals 2.71828182845904, the base of the natural logarithm. ## Syntax diff --git a/query-languages/dax/expand-function-dax.md b/query-languages/dax/expand-function-dax.md index 018885d3c..3fb6cbbaa 100644 --- a/query-languages/dax/expand-function-dax.md +++ b/query-languages/dax/expand-function-dax.md @@ -13,6 +13,8 @@ recommendations: false # EXPAND +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Retrieves a context with added levels of detail compared to the current context. If an expression is provided, returns its value in the new context, allowing for navigation in hierarchies and calculation at a more detailed level. ## Syntax diff --git a/query-languages/dax/expandall-function-dax.md b/query-languages/dax/expandall-function-dax.md index 7c1772be6..b0f01cea9 100644 --- a/query-languages/dax/expandall-function-dax.md +++ b/query-languages/dax/expandall-function-dax.md @@ -13,6 +13,8 @@ recommendations: false # EXPANDALL +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Retrieves a context at the most detailed level. If an expression is provided, returns its value in the new context, allowing for navigation in hierarchies and calculation at the most detailed level. ## Syntax diff --git a/query-languages/dax/fact-function-dax.md b/query-languages/dax/fact-function-dax.md index fec1dee98..dee4423ed 100644 --- a/query-languages/dax/fact-function-dax.md +++ b/query-languages/dax/fact-function-dax.md @@ -4,6 +4,8 @@ title: "FACT function (DAX) | Microsoft Docs" --- # FACT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the factorial of a number, equal to the series 1*2\*3\*...\* , ending in the given number. ## Syntax diff --git a/query-languages/dax/false-function-dax.md b/query-languages/dax/false-function-dax.md index 6bf856277..6453606e6 100644 --- a/query-languages/dax/false-function-dax.md +++ b/query-languages/dax/false-function-dax.md @@ -4,6 +4,8 @@ title: "FALSE function (DAX) | Microsoft Docs" --- # FALSE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the logical value FALSE. ## Syntax diff --git a/query-languages/dax/filter-function-dax.md b/query-languages/dax/filter-function-dax.md index a5d71ab97..19e4448fe 100644 --- a/query-languages/dax/filter-function-dax.md +++ b/query-languages/dax/filter-function-dax.md @@ -4,6 +4,8 @@ title: "FILTER function (DAX) | Microsoft Docs" --- # FILTER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a table that represents a subset of another table or expression. ## Syntax diff --git a/query-languages/dax/filters-function-dax.md b/query-languages/dax/filters-function-dax.md index 05407a2f1..061aed0f7 100644 --- a/query-languages/dax/filters-function-dax.md +++ b/query-languages/dax/filters-function-dax.md @@ -4,6 +4,8 @@ title: "FILTERS function (DAX) | Microsoft Docs" --- # FILTERS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the values that are directly applied as filters to *columnName*. ## Syntax diff --git a/query-languages/dax/find-function-dax.md b/query-languages/dax/find-function-dax.md index 9c7f2ee51..8784032eb 100644 --- a/query-languages/dax/find-function-dax.md +++ b/query-languages/dax/find-function-dax.md @@ -4,6 +4,8 @@ title: "FIND function (DAX) | Microsoft Docs" --- # FIND +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the starting position of one text string within another text string. FIND is case-sensitive. ## Syntax diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 7c666aa72..3043d696d 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -5,6 +5,8 @@ title: "FIRST function (DAX) | Microsoft Docs" # FIRST +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Used in visual calculations only. Retrieves a value in the visual matrix from the first row of an axis. ## Syntax diff --git a/query-languages/dax/firstdate-function-dax.md b/query-languages/dax/firstdate-function-dax.md index fbb1e3d9b..0e066dc58 100644 --- a/query-languages/dax/firstdate-function-dax.md +++ b/query-languages/dax/firstdate-function-dax.md @@ -4,6 +4,8 @@ title: "FIRSTDATE function (DAX) | Microsoft Docs" --- # FIRSTDATE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns the first date in the current context for the specified column of dates. ## Syntax diff --git a/query-languages/dax/firstnonblank-function-dax.md b/query-languages/dax/firstnonblank-function-dax.md index 3abdca025..e6c39b340 100644 --- a/query-languages/dax/firstnonblank-function-dax.md +++ b/query-languages/dax/firstnonblank-function-dax.md @@ -4,6 +4,8 @@ title: "FIRSTNONBLANK function (DAX) | Microsoft Docs" --- # FIRSTNONBLANK +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns the first value in the column, **column**, filtered by the current context, where the expression is not blank. ## Syntax diff --git a/query-languages/dax/firstnonblankvalue-function-dax.md b/query-languages/dax/firstnonblankvalue-function-dax.md index abce4f0de..bfce0c200 100644 --- a/query-languages/dax/firstnonblankvalue-function-dax.md +++ b/query-languages/dax/firstnonblankvalue-function-dax.md @@ -4,6 +4,8 @@ title: "FIRSTNONBLANKVALUE function (DAX) | Microsoft Docs" --- # FIRSTNONBLANKVALUE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates an expression filtered by the sorted values of a column and returns the first value of the expression that is not blank. ## Syntax diff --git a/query-languages/dax/fixed-function-dax.md b/query-languages/dax/fixed-function-dax.md index c9503532f..b7f3935ec 100644 --- a/query-languages/dax/fixed-function-dax.md +++ b/query-languages/dax/fixed-function-dax.md @@ -4,6 +4,8 @@ title: "FIXED function (DAX) | Microsoft Docs" --- # FIXED +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Rounds a number to the specified number of decimals and returns the result as text. You can specify that the result be returned with or without commas. ## Syntax diff --git a/query-languages/dax/floor-function-dax.md b/query-languages/dax/floor-function-dax.md index fd1eb9981..2aa9fdb04 100644 --- a/query-languages/dax/floor-function-dax.md +++ b/query-languages/dax/floor-function-dax.md @@ -4,6 +4,8 @@ title: "FLOOR function (DAX) | Microsoft Docs" --- # FLOOR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Rounds a number down, toward zero, to the nearest multiple of significance. ## Syntax diff --git a/query-languages/dax/format-function-dax.md b/query-languages/dax/format-function-dax.md index af657f8c8..ff036df2d 100644 --- a/query-languages/dax/format-function-dax.md +++ b/query-languages/dax/format-function-dax.md @@ -4,6 +4,8 @@ title: "FORMAT function (DAX) | Microsoft Docs" --- # FORMAT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts a value to text according to the specified format. ## Syntax diff --git a/query-languages/dax/fv-function-dax.md b/query-languages/dax/fv-function-dax.md index 6dfb86590..95ab2bfbb 100644 --- a/query-languages/dax/fv-function-dax.md +++ b/query-languages/dax/fv-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # FV +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Calculates the future value of an investment based on a constant interest rate. You can use FV with either periodic, constant payments, and/or a single lump sum payment. ## Syntax diff --git a/query-languages/dax/gcd-function-dax.md b/query-languages/dax/gcd-function-dax.md index 0f421c165..35b5e42af 100644 --- a/query-languages/dax/gcd-function-dax.md +++ b/query-languages/dax/gcd-function-dax.md @@ -4,6 +4,8 @@ title: "GCD function (DAX) | Microsoft Docs" --- # GCD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the greatest common divisor of two or more integers. The greatest common divisor is the largest integer that divides both number1 and number2 without a remainder. ## Syntax diff --git a/query-languages/dax/generate-function-dax.md b/query-languages/dax/generate-function-dax.md index 79d0944c9..9bd95e546 100644 --- a/query-languages/dax/generate-function-dax.md +++ b/query-languages/dax/generate-function-dax.md @@ -4,6 +4,8 @@ title: "GENERATE function (DAX) | Microsoft Docs" --- # GENERATE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. ## Syntax diff --git a/query-languages/dax/generateall-function-dax.md b/query-languages/dax/generateall-function-dax.md index cedbfa43a..88a6dda69 100644 --- a/query-languages/dax/generateall-function-dax.md +++ b/query-languages/dax/generateall-function-dax.md @@ -4,6 +4,8 @@ title: "GENERATEALL function (DAX) | Microsoft Docs" --- # GENERATEALL +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. ## Syntax diff --git a/query-languages/dax/generateseries-function-dax.md b/query-languages/dax/generateseries-function-dax.md index ca17c4ce3..e585181ef 100644 --- a/query-languages/dax/generateseries-function-dax.md +++ b/query-languages/dax/generateseries-function-dax.md @@ -4,6 +4,8 @@ title: "GENERATESERIES function | Microsoft Docs" --- # GENERATESERIES +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a single column table containing the values of an arithmetic series, that is, a sequence of values in which each differs from the preceding by a constant quantity. The name of the column returned is Value. ## Syntax diff --git a/query-languages/dax/geomean-function-dax.md b/query-languages/dax/geomean-function-dax.md index 69b8032c5..4fb7a635f 100644 --- a/query-languages/dax/geomean-function-dax.md +++ b/query-languages/dax/geomean-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: GEOMEAN" title: "GEOMEAN function (DAX) | Microsoft Docs" --- # GEOMEAN + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the geometric mean of the numbers in a column. diff --git a/query-languages/dax/geomeanx-function-dax.md b/query-languages/dax/geomeanx-function-dax.md index fcaede852..605092515 100644 --- a/query-languages/dax/geomeanx-function-dax.md +++ b/query-languages/dax/geomeanx-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: GEOMEANX" title: "GEOMEANX function (DAX) | Microsoft Docs" --- # GEOMEANX + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the geometric mean of an expression evaluated for each row in a table. diff --git a/query-languages/dax/groupby-function-dax.md b/query-languages/dax/groupby-function-dax.md index 1c2f13674..63bce958f 100644 --- a/query-languages/dax/groupby-function-dax.md +++ b/query-languages/dax/groupby-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: GROUPBY" title: "GROUPBY function (DAX) | Microsoft Docs" --- # GROUPBY + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] The GROUPBY function is similar to the [SUMMARIZE](summarize-function-dax.md) function. However, GROUPBY does not do an implicit [CALCULATE](calculate-function-dax.md) for any extension columns that it adds. GROUPBY permits a new function, [CURRENTGROUP](currentgroup-function-dax.md), to be used inside aggregation functions in the extension columns that it adds. GROUPBY is used to perform multiple aggregations in a single table scan. diff --git a/query-languages/dax/hasonefilter-function-dax.md b/query-languages/dax/hasonefilter-function-dax.md index 3157081b7..65cd7d1de 100644 --- a/query-languages/dax/hasonefilter-function-dax.md +++ b/query-languages/dax/hasonefilter-function-dax.md @@ -4,6 +4,8 @@ title: "HASONEFILTER function (DAX) | Microsoft Docs" --- # HASONEFILTER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns **TRUE** when the number of directly filtered values on *columnName* is one; otherwise returns **FALSE**. ## Syntax diff --git a/query-languages/dax/hasonevalue-function-dax.md b/query-languages/dax/hasonevalue-function-dax.md index 8f088a333..39c37d8ac 100644 --- a/query-languages/dax/hasonevalue-function-dax.md +++ b/query-languages/dax/hasonevalue-function-dax.md @@ -4,6 +4,8 @@ title: "HASONEVALUE function (DAX) | Microsoft Docs" --- # HASONEVALUE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns **TRUE** when the context for *columnName* has been filtered down to one distinct value only. Otherwise is **FALSE**. ## Syntax diff --git a/query-languages/dax/hour-function-dax.md b/query-languages/dax/hour-function-dax.md index ca07cc262..51aea3098 100644 --- a/query-languages/dax/hour-function-dax.md +++ b/query-languages/dax/hour-function-dax.md @@ -4,6 +4,8 @@ title: "HOUR function (DAX) | Microsoft Docs" --- # HOUR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.). ## Syntax diff --git a/query-languages/dax/if-function-dax.md b/query-languages/dax/if-function-dax.md index 1ca698566..3b0b49312 100644 --- a/query-languages/dax/if-function-dax.md +++ b/query-languages/dax/if-function-dax.md @@ -4,6 +4,8 @@ title: "IF function (DAX) | Microsoft Docs" --- # IF +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks a condition, and returns one value when it's TRUE, otherwise it returns a second value. ## Syntax diff --git a/query-languages/dax/iferror-function-dax.md b/query-languages/dax/iferror-function-dax.md index b3427cada..77558d8b8 100644 --- a/query-languages/dax/iferror-function-dax.md +++ b/query-languages/dax/iferror-function-dax.md @@ -4,6 +4,8 @@ title: "IFERROR function (DAX) | Microsoft Docs" --- # IFERROR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Evaluates an expression and returns a specified value if the expression returns an error; otherwise returns the value of the expression itself. ## Syntax diff --git a/query-languages/dax/ignore-function-dax.md b/query-languages/dax/ignore-function-dax.md index 5b46d549b..5e66159c7 100644 --- a/query-languages/dax/ignore-function-dax.md +++ b/query-languages/dax/ignore-function-dax.md @@ -4,6 +4,8 @@ title: "IGNORE function (DAX) | Microsoft Docs" --- # IGNORE +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Modifies the behavior of the [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) function by omitting specific expressions from the BLANK/NULL evaluation. Rows for which all expressions not using IGNORE return BLANK/NULL will be excluded independent of whether the expressions which do use IGNORE evaluate to BLANK/NULL or not. This function can only be used within a [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression. ## Syntax diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index b31d6ab6a..952d697d8 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -5,6 +5,8 @@ title: "INDEX function (DAX) | Microsoft Docs" # INDEX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order. If the current partition can't be deduced to a single partition, multiple rows may be returned. ## Syntax diff --git a/query-languages/dax/int-function-dax.md b/query-languages/dax/int-function-dax.md index 1cada5b64..0974bad6f 100644 --- a/query-languages/dax/int-function-dax.md +++ b/query-languages/dax/int-function-dax.md @@ -4,6 +4,8 @@ title: "INT function (DAX) | Microsoft Docs" --- # INT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Rounds a number down to the nearest integer. ## Syntax diff --git a/query-languages/dax/intersect-function-dax.md b/query-languages/dax/intersect-function-dax.md index 2035e8751..714c4a730 100644 --- a/query-languages/dax/intersect-function-dax.md +++ b/query-languages/dax/intersect-function-dax.md @@ -4,6 +4,8 @@ title: "INTERSECT function (DAX) | Microsoft Docs" --- # INTERSECT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the row intersection of two tables, retaining duplicates. ## Syntax diff --git a/query-languages/dax/intrate-function-dax.md b/query-languages/dax/intrate-function-dax.md index 30baed6ae..f39520be2 100644 --- a/query-languages/dax/intrate-function-dax.md +++ b/query-languages/dax/intrate-function-dax.md @@ -5,6 +5,8 @@ title: "INTRATE function (DAX) | Microsoft Docs" # INTRATE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the interest rate for a fully invested security. ## Syntax diff --git a/query-languages/dax/ipmt-function-dax.md b/query-languages/dax/ipmt-function-dax.md index 0d2d63d6b..ab77838be 100644 --- a/query-languages/dax/ipmt-function-dax.md +++ b/query-languages/dax/ipmt-function-dax.md @@ -5,6 +5,8 @@ title: "IPMT function (DAX) | Microsoft Docs" # IPMT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the interest payment for a given period for an investment based on periodic, constant payments and a constant interest rate. ## Syntax diff --git a/query-languages/dax/isafter-function-dax.md b/query-languages/dax/isafter-function-dax.md index 09d33e43c..5cbe9c1eb 100644 --- a/query-languages/dax/isafter-function-dax.md +++ b/query-languages/dax/isafter-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: ISAFTER" title: "ISAFTER function (DAX) | Microsoft Docs" --- # ISAFTER + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] A boolean function that emulates the behavior of a 'Start At' clause and returns true for a row that meets all of the condition parameters. diff --git a/query-languages/dax/isatlevel-function-dax.md b/query-languages/dax/isatlevel-function-dax.md index 1174b4699..99f4439b2 100644 --- a/query-languages/dax/isatlevel-function-dax.md +++ b/query-languages/dax/isatlevel-function-dax.md @@ -13,6 +13,8 @@ recommendations: false # ISATLEVEL +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Reports whether the column is present at the current level. ## Syntax diff --git a/query-languages/dax/isblank-function-dax.md b/query-languages/dax/isblank-function-dax.md index 4485ba434..3d87f395d 100644 --- a/query-languages/dax/isblank-function-dax.md +++ b/query-languages/dax/isblank-function-dax.md @@ -4,6 +4,8 @@ title: "ISBLANK function (DAX) | Microsoft Docs" --- # ISBLANK +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks whether a value is blank, and returns TRUE or FALSE. ## Syntax diff --git a/query-languages/dax/iscrossfiltered-function-dax.md b/query-languages/dax/iscrossfiltered-function-dax.md index c64b60762..15805690b 100644 --- a/query-languages/dax/iscrossfiltered-function-dax.md +++ b/query-languages/dax/iscrossfiltered-function-dax.md @@ -4,6 +4,8 @@ title: "ISCROSSFILTERED function (DAX) | Microsoft Docs" --- # ISCROSSFILTERED +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns TRUE when the specified table or column is cross-filtered. ## Syntax diff --git a/query-languages/dax/isempty-function-dax.md b/query-languages/dax/isempty-function-dax.md index 652422191..e64c0cffe 100644 --- a/query-languages/dax/isempty-function-dax.md +++ b/query-languages/dax/isempty-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: ISEMPTY" title: "ISEMPTY function (DAX) | Microsoft Docs" --- # ISEMPTY + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Checks if a table is empty. diff --git a/query-languages/dax/iserror-function-dax.md b/query-languages/dax/iserror-function-dax.md index 49d50ce62..666ad2484 100644 --- a/query-languages/dax/iserror-function-dax.md +++ b/query-languages/dax/iserror-function-dax.md @@ -4,6 +4,8 @@ title: "ISERROR function (DAX) | Microsoft Docs" --- # ISERROR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks whether a value is an error, and returns TRUE or FALSE. ## Syntax diff --git a/query-languages/dax/iseven-function-dax.md b/query-languages/dax/iseven-function-dax.md index 07a703a56..3ff1849af 100644 --- a/query-languages/dax/iseven-function-dax.md +++ b/query-languages/dax/iseven-function-dax.md @@ -4,6 +4,8 @@ title: "ISEVEN function (DAX) | Microsoft Docs" --- # ISEVEN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns TRUE if number is even, or FALSE if number is odd. ## Syntax diff --git a/query-languages/dax/isfiltered-function-dax.md b/query-languages/dax/isfiltered-function-dax.md index c12139fef..b23e2c32a 100644 --- a/query-languages/dax/isfiltered-function-dax.md +++ b/query-languages/dax/isfiltered-function-dax.md @@ -4,6 +4,8 @@ title: "ISFILTERED function (DAX) | Microsoft Docs" --- # ISFILTERED +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns TRUE when the specified table or column is being filtered directly. ## Syntax diff --git a/query-languages/dax/isinscope-function-dax.md b/query-languages/dax/isinscope-function-dax.md index 5f9c68382..7f781e735 100644 --- a/query-languages/dax/isinscope-function-dax.md +++ b/query-languages/dax/isinscope-function-dax.md @@ -4,6 +4,8 @@ title: "ISINSCOPE function (DAX) | Microsoft Docs" --- # ISINSCOPE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns true when the specified column is the level in a hierarchy of levels. ## Syntax diff --git a/query-languages/dax/islogical-function-dax.md b/query-languages/dax/islogical-function-dax.md index 8dad12b35..1b9df3f23 100644 --- a/query-languages/dax/islogical-function-dax.md +++ b/query-languages/dax/islogical-function-dax.md @@ -4,6 +4,8 @@ title: "ISLOGICAL function (DAX) | Microsoft Docs" --- # ISLOGICAL +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks whether a value is a logical value, (TRUE or FALSE), and returns TRUE or FALSE. ## Syntax diff --git a/query-languages/dax/isnontext-function-dax.md b/query-languages/dax/isnontext-function-dax.md index c73277d2b..9e0d6aa6b 100644 --- a/query-languages/dax/isnontext-function-dax.md +++ b/query-languages/dax/isnontext-function-dax.md @@ -4,6 +4,8 @@ title: "ISNONTEXT function (DAX) | Microsoft Docs" --- # ISNONTEXT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks if a value is not text (blank cells are not text), and returns TRUE or FALSE. ## Syntax diff --git a/query-languages/dax/isnumber-function-dax.md b/query-languages/dax/isnumber-function-dax.md index f9ee3e861..d538edb4f 100644 --- a/query-languages/dax/isnumber-function-dax.md +++ b/query-languages/dax/isnumber-function-dax.md @@ -4,6 +4,8 @@ title: "ISNUMBER function (DAX) | Microsoft Docs" --- # ISNUMBER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks whether a value is a number, and returns TRUE or FALSE. ## Syntax diff --git a/query-languages/dax/isodd-function-dax.md b/query-languages/dax/isodd-function-dax.md index 76ada8119..bf0ac3ff4 100644 --- a/query-languages/dax/isodd-function-dax.md +++ b/query-languages/dax/isodd-function-dax.md @@ -4,6 +4,8 @@ title: "ISODD function (DAX) | Microsoft Docs" --- # ISODD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns TRUE if number is odd, or FALSE if number is even. ## Syntax diff --git a/query-languages/dax/isonorafter-function-dax.md b/query-languages/dax/isonorafter-function-dax.md index 949d4448c..47dd4ce75 100644 --- a/query-languages/dax/isonorafter-function-dax.md +++ b/query-languages/dax/isonorafter-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: ISONORAFTER" title: "ISONORAFTER function (DAX) | Microsoft Docs" --- # ISONORAFTER + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] A boolean function that emulates the behavior of a Start At clause and returns true for a row that meets all of the condition parameters. diff --git a/query-languages/dax/ispmt-function-dax.md b/query-languages/dax/ispmt-function-dax.md index 4a380ba2f..5faff021f 100644 --- a/query-languages/dax/ispmt-function-dax.md +++ b/query-languages/dax/ispmt-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # ISPMT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Calculates the interest paid (or received) for the specified period of a loan (or investment) with even principal payments. ## Syntax diff --git a/query-languages/dax/isselectedmeasure-function-dax.md b/query-languages/dax/isselectedmeasure-function-dax.md index 34f722eaa..6b7ecd211 100644 --- a/query-languages/dax/isselectedmeasure-function-dax.md +++ b/query-languages/dax/isselectedmeasure-function-dax.md @@ -4,6 +4,8 @@ title: "ISSELECTEDMEASURE function (DAX) | Microsoft Docs" --- # ISSELECTEDMEASURE +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Used by expressions for calculation items to determine the measure that is in context is one of those specified in a list of measures. ## Syntax diff --git a/query-languages/dax/issubtotal-function-dax.md b/query-languages/dax/issubtotal-function-dax.md index 2e02859fc..1875dfde7 100644 --- a/query-languages/dax/issubtotal-function-dax.md +++ b/query-languages/dax/issubtotal-function-dax.md @@ -4,6 +4,8 @@ title: "ISSUBTOTAL function (DAX) | Microsoft Docs" --- # ISSUBTOTAL +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Creates another column in a [SUMMARIZE](summarize-function-dax.md) expression that returns True if the row contains subtotal values for the column given as argument, otherwise returns False. ## Syntax diff --git a/query-languages/dax/istext-function-dax.md b/query-languages/dax/istext-function-dax.md index 6eb420cee..002bfbf7e 100644 --- a/query-languages/dax/istext-function-dax.md +++ b/query-languages/dax/istext-function-dax.md @@ -4,6 +4,8 @@ title: "ISTEXT function (DAX) | Microsoft Docs" --- # ISTEXT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks if a value is text, and returns TRUE or FALSE. ## Syntax diff --git a/query-languages/dax/keepfilters-function-dax.md b/query-languages/dax/keepfilters-function-dax.md index bf9cdea4a..fcb30f112 100644 --- a/query-languages/dax/keepfilters-function-dax.md +++ b/query-languages/dax/keepfilters-function-dax.md @@ -4,6 +4,8 @@ title: "KEEPFILTERS function (DAX) | Microsoft Docs" --- # KEEPFILTERS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. ## Syntax diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 89c40a16d..932f36d78 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -5,6 +5,8 @@ title: "LAST function (DAX) | Microsoft Docs" # LAST +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis. ## Syntax diff --git a/query-languages/dax/lastdate-function-dax.md b/query-languages/dax/lastdate-function-dax.md index 0fc38574d..7a9258609 100644 --- a/query-languages/dax/lastdate-function-dax.md +++ b/query-languages/dax/lastdate-function-dax.md @@ -4,6 +4,8 @@ title: "LASTDATE function (DAX) | Microsoft Docs" --- # LASTDATE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns the last date in the current context for the specified column of dates. ## Syntax diff --git a/query-languages/dax/lastnonblank-function-dax.md b/query-languages/dax/lastnonblank-function-dax.md index 3bd1985e8..a3ece8eb7 100644 --- a/query-languages/dax/lastnonblank-function-dax.md +++ b/query-languages/dax/lastnonblank-function-dax.md @@ -4,6 +4,8 @@ title: "LASTNONBLANK function (DAX) | Microsoft Docs" --- # LASTNONBLANK +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns the last value in the column, **column**, filtered by the current context, where the expression is not blank. ## Syntax diff --git a/query-languages/dax/lastnonblankvalue-function-dax.md b/query-languages/dax/lastnonblankvalue-function-dax.md index 4b0dcb935..460c25d45 100644 --- a/query-languages/dax/lastnonblankvalue-function-dax.md +++ b/query-languages/dax/lastnonblankvalue-function-dax.md @@ -4,6 +4,8 @@ title: "LASTNONBLANKVALUE function (DAX) | Microsoft Docs" --- # LASTNONBLANKVALUE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates an expression filtered by the sorted values of a column and returns the last value of the expression that is not blank. ## Syntax diff --git a/query-languages/dax/lcm-function-dax.md b/query-languages/dax/lcm-function-dax.md index b14a481e6..e48adfb04 100644 --- a/query-languages/dax/lcm-function-dax.md +++ b/query-languages/dax/lcm-function-dax.md @@ -4,6 +4,8 @@ title: "LCM function (DAX) | Microsoft Docs" --- # LCM +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the least common multiple of integers. The least common multiple is the smallest positive integer that is a multiple of all integer arguments number1, number2, and so on. Use LCM to add fractions with different denominators. ## Syntax diff --git a/query-languages/dax/left-function-dax.md b/query-languages/dax/left-function-dax.md index d47d3ca93..549479667 100644 --- a/query-languages/dax/left-function-dax.md +++ b/query-languages/dax/left-function-dax.md @@ -4,6 +4,8 @@ title: "LEFT function (DAX) | Microsoft Docs" --- # LEFT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the specified number of characters from the start of a text string. ## Syntax diff --git a/query-languages/dax/len-function-dax.md b/query-languages/dax/len-function-dax.md index 73f1627f6..d9ad01ba5 100644 --- a/query-languages/dax/len-function-dax.md +++ b/query-languages/dax/len-function-dax.md @@ -4,6 +4,8 @@ title: "LEN function (DAX) | Microsoft Docs" --- # LEN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of characters in a text string. ## Syntax diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index 97292a944..e19c80113 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -7,6 +7,8 @@ ms.author: masanto # LINEST +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Uses the Least Squares method to calculate a straight line that best fits the given data, then returns a table describing the line. The equation for the line is of the form: y = **Slope1**\*x1 + **Slope2**\*x2 + ... + **Intercept**. ## Syntax diff --git a/query-languages/dax/linestx-function-dax.md b/query-languages/dax/linestx-function-dax.md index 1e8d2fe2a..9e587b3e6 100644 --- a/query-languages/dax/linestx-function-dax.md +++ b/query-languages/dax/linestx-function-dax.md @@ -7,6 +7,8 @@ ms.author: masanto # LINESTX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Uses the Least Squares method to calculate a straight line that best fits the given data, then returns a table describing the line. The data result from expressions evaluated for each row in a table. The equation for the line is of the form: y = **Slope1**\*x1 + **Slope2**\*x2 + ... + **Intercept**. ## Syntax diff --git a/query-languages/dax/ln-function-dax.md b/query-languages/dax/ln-function-dax.md index 9b7737d32..0a26a797e 100644 --- a/query-languages/dax/ln-function-dax.md +++ b/query-languages/dax/ln-function-dax.md @@ -4,6 +4,8 @@ title: "LN function (DAX) | Microsoft Docs" --- # LN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the natural logarithm of a number. Natural logarithms are based on the constant e (2.71828182845904). ## Syntax diff --git a/query-languages/dax/log-function-dax.md b/query-languages/dax/log-function-dax.md index 037b9a530..532f287a2 100644 --- a/query-languages/dax/log-function-dax.md +++ b/query-languages/dax/log-function-dax.md @@ -4,6 +4,8 @@ title: "LOG function (DAX) | Microsoft Docs" --- # LOG +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the logarithm of a number to the base you specify. ## Syntax diff --git a/query-languages/dax/log10-function-dax.md b/query-languages/dax/log10-function-dax.md index 6774831c2..832950a83 100644 --- a/query-languages/dax/log10-function-dax.md +++ b/query-languages/dax/log10-function-dax.md @@ -4,6 +4,8 @@ title: "LOG10 function (DAX) | Microsoft Docs" --- # LOG10 +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the base-10 logarithm of a number. ## Syntax diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index f1c760050..3bddc0c14 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -4,6 +4,8 @@ title: "LOOKUPVALUE function (DAX) | Microsoft Docs" --- # LOOKUPVALUE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the value for the row that meets all criteria specified by one or more search conditions. ## Syntax diff --git a/query-languages/dax/lower-function-dax.md b/query-languages/dax/lower-function-dax.md index 7e72f7032..4f365d7e2 100644 --- a/query-languages/dax/lower-function-dax.md +++ b/query-languages/dax/lower-function-dax.md @@ -4,6 +4,8 @@ title: "LOWER function (DAX) | Microsoft Docs" --- # LOWER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts all letters in a text string to lowercase. ## Syntax diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md index 11b6a49c7..de9859b59 100644 --- a/query-languages/dax/matchby-function-dax.md +++ b/query-languages/dax/matchby-function-dax.md @@ -6,6 +6,8 @@ author: keshen # MATCHBY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + In window functions, defines the columns that are used to determine how to match data and identify the current row. ## Syntax diff --git a/query-languages/dax/max-function-dax.md b/query-languages/dax/max-function-dax.md index b4c038558..d86decb47 100644 --- a/query-languages/dax/max-function-dax.md +++ b/query-languages/dax/max-function-dax.md @@ -4,6 +4,8 @@ title: "MAX function (DAX) | Microsoft Docs" --- # MAX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the largest value in a column, or between two scalar expressions. ## Syntax diff --git a/query-languages/dax/maxa-function-dax.md b/query-languages/dax/maxa-function-dax.md index 8f19a6f79..f834346b1 100644 --- a/query-languages/dax/maxa-function-dax.md +++ b/query-languages/dax/maxa-function-dax.md @@ -4,6 +4,8 @@ title: "MAXA function (DAX) | Microsoft Docs" --- # MAXA +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the largest value in a column. ## Syntax diff --git a/query-languages/dax/maxx-function-dax.md b/query-languages/dax/maxx-function-dax.md index aba73638b..eaf4fdf79 100644 --- a/query-languages/dax/maxx-function-dax.md +++ b/query-languages/dax/maxx-function-dax.md @@ -4,6 +4,8 @@ title: "MAXX function (DAX) | Microsoft Docs" --- # MAXX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the highest value that results from evaluating an expression for each row of a table. ## Syntax diff --git a/query-languages/dax/mduration-function-dax.md b/query-languages/dax/mduration-function-dax.md index 40d86de1f..e9c359cd1 100644 --- a/query-languages/dax/mduration-function-dax.md +++ b/query-languages/dax/mduration-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # MDURATION +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the modified Macauley duration for a security with an assumed par value of \\$100. ## Syntax diff --git a/query-languages/dax/median-function-dax.md b/query-languages/dax/median-function-dax.md index 4d053f75d..f7461740b 100644 --- a/query-languages/dax/median-function-dax.md +++ b/query-languages/dax/median-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: MEDIAN" title: "MEDIAN function (DAX) | Microsoft Docs" --- # MEDIAN + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the median of numbers in a column. diff --git a/query-languages/dax/medianx-function-dax.md b/query-languages/dax/medianx-function-dax.md index 8bde6351d..6a336b7f5 100644 --- a/query-languages/dax/medianx-function-dax.md +++ b/query-languages/dax/medianx-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: MEDIANX" title: "MEDIANX function (DAX) | Microsoft Docs" --- # MEDIANX + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the median number of an expression evaluated for each row in a table. diff --git a/query-languages/dax/mid-function-dax.md b/query-languages/dax/mid-function-dax.md index 302541425..135faa063 100644 --- a/query-languages/dax/mid-function-dax.md +++ b/query-languages/dax/mid-function-dax.md @@ -4,6 +4,8 @@ title: "MID function (DAX) | Microsoft Docs" --- # MID +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a string of characters from the middle of a text string, given a starting position and length. ## Syntax diff --git a/query-languages/dax/min-function-dax.md b/query-languages/dax/min-function-dax.md index 51a349c95..62482a331 100644 --- a/query-languages/dax/min-function-dax.md +++ b/query-languages/dax/min-function-dax.md @@ -4,6 +4,8 @@ title: "MIN function (DAX) | Microsoft Docs" --- # MIN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the smallest value in a column, or between two scalar expressions. ## Syntax diff --git a/query-languages/dax/mina-function-dax.md b/query-languages/dax/mina-function-dax.md index 68a1626d0..e779b817a 100644 --- a/query-languages/dax/mina-function-dax.md +++ b/query-languages/dax/mina-function-dax.md @@ -4,6 +4,8 @@ title: "MINA function (DAX) | Microsoft Docs" --- # MINA +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the smallest value in a column. ## Syntax diff --git a/query-languages/dax/minute-function-dax.md b/query-languages/dax/minute-function-dax.md index 80f82fec0..14978ad47 100644 --- a/query-languages/dax/minute-function-dax.md +++ b/query-languages/dax/minute-function-dax.md @@ -4,6 +4,8 @@ title: "MINUTE function (DAX) | Microsoft Docs" --- # MINUTE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the minute as a number from 0 to 59, given a date and time value. ## Syntax diff --git a/query-languages/dax/minx-function-dax.md b/query-languages/dax/minx-function-dax.md index 08a85efe1..907e3c756 100644 --- a/query-languages/dax/minx-function-dax.md +++ b/query-languages/dax/minx-function-dax.md @@ -4,6 +4,8 @@ title: "MINX function (DAX) | Microsoft Docs" --- # MINX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the lowest value that results from evaluating an expression for each row of a table. ## Syntax diff --git a/query-languages/dax/mod-function-dax.md b/query-languages/dax/mod-function-dax.md index b5f459334..7acce0228 100644 --- a/query-languages/dax/mod-function-dax.md +++ b/query-languages/dax/mod-function-dax.md @@ -4,6 +4,8 @@ title: "MOD function (DAX) | Microsoft Docs" --- # MOD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the remainder after a number is divided by a divisor. The result always has the same sign as the divisor. ## Syntax diff --git a/query-languages/dax/month-function-dax.md b/query-languages/dax/month-function-dax.md index 13cd11fcd..00233002e 100644 --- a/query-languages/dax/month-function-dax.md +++ b/query-languages/dax/month-function-dax.md @@ -4,6 +4,8 @@ title: "MONTH function (DAX) | Microsoft Docs" --- # MONTH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the month as a number from 1 (January) to 12 (December). ## Syntax diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 41be7800c..9e2436e7b 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -13,6 +13,8 @@ recommendations: false # MOVINGAVERAGE +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Returns a moving average calculated along the given axis of the visual matrix. That is, the average of the given column calculated over the last \ rows. ## Syntax diff --git a/query-languages/dax/mround-function-dax.md b/query-languages/dax/mround-function-dax.md index 181086907..4632406f6 100644 --- a/query-languages/dax/mround-function-dax.md +++ b/query-languages/dax/mround-function-dax.md @@ -4,6 +4,8 @@ title: "MROUND function (DAX) | Microsoft Docs" --- # MROUND +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a number rounded to the desired multiple. ## Syntax diff --git a/query-languages/dax/naturalinnerjoin-function-dax.md b/query-languages/dax/naturalinnerjoin-function-dax.md index a06252a1a..0a7debf64 100644 --- a/query-languages/dax/naturalinnerjoin-function-dax.md +++ b/query-languages/dax/naturalinnerjoin-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: NATURALINNERJOIN" title: "NATURALINNERJOIN function (DAX) | Microsoft Docs" --- # NATURALINNERJOIN + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Performs an inner join of a table with another table. diff --git a/query-languages/dax/naturalleftouterjoin-function-dax.md b/query-languages/dax/naturalleftouterjoin-function-dax.md index a25f6f21e..afab8875d 100644 --- a/query-languages/dax/naturalleftouterjoin-function-dax.md +++ b/query-languages/dax/naturalleftouterjoin-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: NATURALLEFTOUTERJOIN" title: "NATURALLEFTOUTERJOIN function (DAX) | Microsoft Docs" --- # NATURALLEFTOUTERJOIN + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Performs a join of the LeftTable with the RightTable by using the Left Outer Join semantics. diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index dd05c6cc7..95fd81ccb 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -5,6 +5,8 @@ title: "NEXT function (DAX) | Microsoft Docs" # NEXT +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix. ## Syntax diff --git a/query-languages/dax/nextday-function-dax.md b/query-languages/dax/nextday-function-dax.md index 63648bd39..b8435d786 100644 --- a/query-languages/dax/nextday-function-dax.md +++ b/query-languages/dax/nextday-function-dax.md @@ -4,6 +4,8 @@ title: "NEXTDAY function (DAX) | Microsoft Docs" --- # NEXTDAY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of all dates from the next day, based on the first date specified in the **dates** column in the current context. ## Syntax diff --git a/query-languages/dax/nextmonth-function-dax.md b/query-languages/dax/nextmonth-function-dax.md index 3319f98ea..8932d99ab 100644 --- a/query-languages/dax/nextmonth-function-dax.md +++ b/query-languages/dax/nextmonth-function-dax.md @@ -4,6 +4,8 @@ title: "NEXTMONTH function (DAX) | Microsoft Docs" --- # NEXTMONTH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of all dates from the next month, based on the first date in the **dates** column in the current context. ## Syntax diff --git a/query-languages/dax/nextquarter-function-dax.md b/query-languages/dax/nextquarter-function-dax.md index b76aa7827..bf43161a4 100644 --- a/query-languages/dax/nextquarter-function-dax.md +++ b/query-languages/dax/nextquarter-function-dax.md @@ -4,6 +4,8 @@ title: "NEXTQUARTER function (DAX) | Microsoft Docs" --- # NEXTQUARTER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of all dates in the next quarter, based on the first date specified in the **dates** column, in the current context. ## Syntax diff --git a/query-languages/dax/nextyear-function-dax.md b/query-languages/dax/nextyear-function-dax.md index 4f1bd9ad8..22b6a4847 100644 --- a/query-languages/dax/nextyear-function-dax.md +++ b/query-languages/dax/nextyear-function-dax.md @@ -4,6 +4,8 @@ title: "NEXTYEAR function (DAX) | Microsoft Docs" --- # NEXTYEAR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of all dates in the next year, based on the first date in the **dates** column, in the current context. ## Syntax diff --git a/query-languages/dax/nominal-function-dax.md b/query-languages/dax/nominal-function-dax.md index f5177686c..afc36801a 100644 --- a/query-languages/dax/nominal-function-dax.md +++ b/query-languages/dax/nominal-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # NOMINAL +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the nominal annual interest rate, given the effective rate and the number of compounding periods per year. ## Syntax diff --git a/query-languages/dax/nonvisual-function-dax.md b/query-languages/dax/nonvisual-function-dax.md index 8a4fb5893..04cec2280 100644 --- a/query-languages/dax/nonvisual-function-dax.md +++ b/query-languages/dax/nonvisual-function-dax.md @@ -4,6 +4,8 @@ title: "NONVISUAL function (DAX) | Microsoft Docs" --- # NONVISUAL +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Marks a value filter in a [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression as non-visual. This function can only be used within a [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression. ## Syntax diff --git a/query-languages/dax/not-function-dax.md b/query-languages/dax/not-function-dax.md index 77a66137d..82a89233e 100644 --- a/query-languages/dax/not-function-dax.md +++ b/query-languages/dax/not-function-dax.md @@ -4,6 +4,8 @@ title: "NOT function (DAX) | Microsoft Docs" --- # NOT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Changes FALSE to TRUE, or TRUE to FALSE. ## Syntax diff --git a/query-languages/dax/now-function-dax.md b/query-languages/dax/now-function-dax.md index 31c4c3fd0..b84203e50 100644 --- a/query-languages/dax/now-function-dax.md +++ b/query-languages/dax/now-function-dax.md @@ -4,6 +4,8 @@ title: "NOW function (DAX) | Microsoft Docs" --- # NOW +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the current date and time in **datetime** format. The NOW function is useful when you need to display the current date and time on a worksheet or calculate a value based on the current date and time, and have that value updated each time you open the worksheet. diff --git a/query-languages/dax/nper-function-dax.md b/query-languages/dax/nper-function-dax.md index 489e7d1be..67d952956 100644 --- a/query-languages/dax/nper-function-dax.md +++ b/query-languages/dax/nper-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # NPER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of periods for an investment based on periodic, constant payments and a constant interest rate. ## Syntax diff --git a/query-languages/dax/odd-function-dax.md b/query-languages/dax/odd-function-dax.md index df65ac8bc..ef18d55aa 100644 --- a/query-languages/dax/odd-function-dax.md +++ b/query-languages/dax/odd-function-dax.md @@ -4,6 +4,8 @@ title: "ODD function (DAX) | Microsoft Docs" --- # ODD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns number rounded up to the nearest odd integer. ## Syntax diff --git a/query-languages/dax/oddfprice-function-dax.md b/query-languages/dax/oddfprice-function-dax.md index 80c6693ef..4b30b2dc7 100644 --- a/query-languages/dax/oddfprice-function-dax.md +++ b/query-languages/dax/oddfprice-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # ODDFPRICE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the price per \\$100 face value of a security having an odd (short or long) first period. ## Syntax diff --git a/query-languages/dax/oddfyield-function-dax.md b/query-languages/dax/oddfyield-function-dax.md index 03f682f1f..96c43bae6 100644 --- a/query-languages/dax/oddfyield-function-dax.md +++ b/query-languages/dax/oddfyield-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # ODDFYIELD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the yield of a security that has an odd (short or long) first period. ## Syntax diff --git a/query-languages/dax/oddlprice-function-dax.md b/query-languages/dax/oddlprice-function-dax.md index 579b6db6e..2d2070625 100644 --- a/query-languages/dax/oddlprice-function-dax.md +++ b/query-languages/dax/oddlprice-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # ODDLPRICE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the price per \\$100 face value of a security having an odd (short or long) last coupon period. ## Syntax diff --git a/query-languages/dax/oddlyield-function-dax.md b/query-languages/dax/oddlyield-function-dax.md index f7ffbb8fd..224b670e6 100644 --- a/query-languages/dax/oddlyield-function-dax.md +++ b/query-languages/dax/oddlyield-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # ODDLYIELD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the yield of a security that has an odd (short or long) last period. ## Syntax diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 9fa6e4f1c..03d13d59f 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -5,6 +5,8 @@ title: "OFFSET function (DAX) | Microsoft Docs" # OFFSET +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. If the current row cannot be deduced to a single row, multiple rows may be returned. ## Syntax diff --git a/query-languages/dax/openingbalancemonth-function-dax.md b/query-languages/dax/openingbalancemonth-function-dax.md index 8c96989bb..cbfe832c9 100644 --- a/query-languages/dax/openingbalancemonth-function-dax.md +++ b/query-languages/dax/openingbalancemonth-function-dax.md @@ -4,6 +4,8 @@ title: "OPENINGBALANCEMONTH function (DAX) | Microsoft Docs" --- # OPENINGBALANCEMONTH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates the **expression** at the first date of the month in the current context. ## Syntax diff --git a/query-languages/dax/openingbalancequarter-function-dax.md b/query-languages/dax/openingbalancequarter-function-dax.md index 5bb6a2387..992798fec 100644 --- a/query-languages/dax/openingbalancequarter-function-dax.md +++ b/query-languages/dax/openingbalancequarter-function-dax.md @@ -4,6 +4,8 @@ title: "OPENINGBALANCEQUARTER function (DAX) | Microsoft Docs" --- # OPENINGBALANCEQUARTER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates the **expression** at the first date of the quarter, in the current context. ## Syntax diff --git a/query-languages/dax/openingbalanceyear-function-dax.md b/query-languages/dax/openingbalanceyear-function-dax.md index bd864dc78..5e7760e03 100644 --- a/query-languages/dax/openingbalanceyear-function-dax.md +++ b/query-languages/dax/openingbalanceyear-function-dax.md @@ -4,6 +4,8 @@ title: "OPENINGBALANCEYEAR function (DAX) | Microsoft Docs" --- # OPENINGBALANCEYEAR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates the **expression** at the first date of the year in the current context. ## Syntax diff --git a/query-languages/dax/or-function-dax.md b/query-languages/dax/or-function-dax.md index 08560c14e..ba6a33201 100644 --- a/query-languages/dax/or-function-dax.md +++ b/query-languages/dax/or-function-dax.md @@ -5,6 +5,8 @@ title: "OR function (DAX) | Microsoft Docs" # OR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks whether one of the arguments is TRUE to return TRUE. The function returns FALSE if both arguments are FALSE. ## Syntax diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index c8cf08c7c..29aab5c28 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -5,6 +5,8 @@ title: "ORDERBY function (DAX) | Microsoft Docs" # ORDERBY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Defines the expressions that determine the sort order within each of a window function’s partitions. ## Syntax diff --git a/query-languages/dax/parallelperiod-function-dax.md b/query-languages/dax/parallelperiod-function-dax.md index e3f86ccbe..35e2c4911 100644 --- a/query-languages/dax/parallelperiod-function-dax.md +++ b/query-languages/dax/parallelperiod-function-dax.md @@ -4,6 +4,8 @@ title: "PARALLELPERIOD function (DAX) | Microsoft Docs" --- # PARALLELPERIOD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of dates that represents a period parallel to the dates in the specified **dates** column, in the current context, with the dates shifted a number of intervals either forward in time or back in time. ## Syntax diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index ccd067235..ff89d95a6 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -5,6 +5,8 @@ title: "PARTITIONBY function (DAX) | Microsoft Docs" # PARTITIONBY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Defines the columns that are used to partition a window function’s \ parameter. ## Syntax diff --git a/query-languages/dax/path-function-dax.md b/query-languages/dax/path-function-dax.md index 79c24a87f..0682169a4 100644 --- a/query-languages/dax/path-function-dax.md +++ b/query-languages/dax/path-function-dax.md @@ -4,6 +4,8 @@ title: "PATH function (DAX) | Microsoft Docs" --- # PATH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a delimited text string with the identifiers of all the parents of the current identifier, starting with the oldest and continuing until current. ## Syntax diff --git a/query-languages/dax/pathcontains-function-dax.md b/query-languages/dax/pathcontains-function-dax.md index 10bd57722..8c7ab38d6 100644 --- a/query-languages/dax/pathcontains-function-dax.md +++ b/query-languages/dax/pathcontains-function-dax.md @@ -4,6 +4,8 @@ title: "PATHCONTAINS function (DAX) | Microsoft Docs" --- # PATHCONTAINS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns **TRUE** if the specified *item* exists within the specified *path*. ## Syntax diff --git a/query-languages/dax/pathitem-function-dax.md b/query-languages/dax/pathitem-function-dax.md index 181641674..d1163ce76 100644 --- a/query-languages/dax/pathitem-function-dax.md +++ b/query-languages/dax/pathitem-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: PATHITEM" title: "PATHITEM function (DAX) | Microsoft Docs" --- # PATHITEM + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the item at the specified *position* from a string resulting from evaluation of a PATH function. Positions are counted from left to right. ## Syntax diff --git a/query-languages/dax/pathitemreverse-function-dax.md b/query-languages/dax/pathitemreverse-function-dax.md index ea5149005..45f1c21bb 100644 --- a/query-languages/dax/pathitemreverse-function-dax.md +++ b/query-languages/dax/pathitemreverse-function-dax.md @@ -4,6 +4,8 @@ title: "PATHITEMREVERSE function (DAX) | Microsoft Docs" --- # PATHITEMREVERSE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the item at the specified *position* from a string resulting from evaluation of a PATH function. Positions are counted backwards from right to left. ## Syntax diff --git a/query-languages/dax/pathlength-function-dax.md b/query-languages/dax/pathlength-function-dax.md index c3d9a390c..a884cc693 100644 --- a/query-languages/dax/pathlength-function-dax.md +++ b/query-languages/dax/pathlength-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: PATHLENGTH" title: "PATHLENGTH function (DAX) | Microsoft Docs" --- # PATHLENGTH + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the number of parents to the specified item in a given PATH result, including self. ## Syntax diff --git a/query-languages/dax/pduration-function-dax.md b/query-languages/dax/pduration-function-dax.md index 99f9525da..1a8835461 100644 --- a/query-languages/dax/pduration-function-dax.md +++ b/query-languages/dax/pduration-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # PDURATION +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of periods required by an investment to reach a specified value. ## Syntax diff --git a/query-languages/dax/permut-function-dax.md b/query-languages/dax/permut-function-dax.md index 89f4700f7..4ec608c13 100644 --- a/query-languages/dax/permut-function-dax.md +++ b/query-languages/dax/permut-function-dax.md @@ -4,6 +4,8 @@ title: "PERMUT function (DAX) | Microsoft Docs" --- # PERMUT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of permutations for a given number of objects that can be selected from number objects. A permutation is any set or subset of objects or events where internal order is significant. Permutations are different from combinations, for which the internal order is not significant. Use this function for lottery-style probability calculations. ## Syntax diff --git a/query-languages/dax/pi-function-dax.md b/query-languages/dax/pi-function-dax.md index 054c56225..2bf7ed3d2 100644 --- a/query-languages/dax/pi-function-dax.md +++ b/query-languages/dax/pi-function-dax.md @@ -4,6 +4,8 @@ title: "PI function (DAX) | Microsoft Docs" --- # PI +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the value of Pi, 3.14159265358979, accurate to 15 digits. ## Syntax diff --git a/query-languages/dax/pmt-function-dax.md b/query-languages/dax/pmt-function-dax.md index a57fede49..61a1856f3 100644 --- a/query-languages/dax/pmt-function-dax.md +++ b/query-languages/dax/pmt-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # PMT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Calculates the payment for a loan based on constant payments and a constant interest rate. ## Syntax diff --git a/query-languages/dax/power-function-dax.md b/query-languages/dax/power-function-dax.md index e0e47fa3a..d4e3b13ad 100644 --- a/query-languages/dax/power-function-dax.md +++ b/query-languages/dax/power-function-dax.md @@ -4,6 +4,8 @@ title: "POWER function (DAX) | Microsoft Docs" --- # POWER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the result of a number raised to a power. ## Syntax diff --git a/query-languages/dax/ppmt-function-dax.md b/query-languages/dax/ppmt-function-dax.md index c076026a6..a734214e3 100644 --- a/query-languages/dax/ppmt-function-dax.md +++ b/query-languages/dax/ppmt-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # PPMT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the payment on the principal for a given period for an investment based on periodic, constant payments and a constant interest rate. ## Syntax diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index dbe1cbb6c..92e1d71bc 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -5,6 +5,8 @@ title: "PREVIOUS function (DAX) | Microsoft Docs" # PREVIOUS +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Used in visual calculations only. Retrieves a value in the previous row of an axis in the visual matrix. ## Syntax diff --git a/query-languages/dax/previousday-function-dax.md b/query-languages/dax/previousday-function-dax.md index c29b94772..a229a1892 100644 --- a/query-languages/dax/previousday-function-dax.md +++ b/query-languages/dax/previousday-function-dax.md @@ -4,6 +4,8 @@ title: "PREVIOUSDAY function (DAX) | Microsoft Docs" --- # PREVIOUSDAY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of all dates representing the day that is previous to the first date in the **dates** column, in the current context. ## Syntax diff --git a/query-languages/dax/previousmonth-function-dax.md b/query-languages/dax/previousmonth-function-dax.md index fab3417e2..15c536fb7 100644 --- a/query-languages/dax/previousmonth-function-dax.md +++ b/query-languages/dax/previousmonth-function-dax.md @@ -4,6 +4,8 @@ title: "PREVIOUSMONTH function (DAX) | Microsoft Docs" --- # PREVIOUSMONTH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of all dates from the previous month, based on the first date in the **Dates** column, in the current context. ## Syntax diff --git a/query-languages/dax/previousquarter-function-dax.md b/query-languages/dax/previousquarter-function-dax.md index 03ce0c63b..f553c9356 100644 --- a/query-languages/dax/previousquarter-function-dax.md +++ b/query-languages/dax/previousquarter-function-dax.md @@ -4,6 +4,8 @@ title: "PREVIOUSQUARTER function (DAX) | Microsoft Docs" --- # PREVIOUSQUARTER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of all dates from the previous quarter, based on the first date in the **dates** column, in the current context. ## Syntax diff --git a/query-languages/dax/previousyear-function-dax.md b/query-languages/dax/previousyear-function-dax.md index df8195af5..e84694b1c 100644 --- a/query-languages/dax/previousyear-function-dax.md +++ b/query-languages/dax/previousyear-function-dax.md @@ -4,6 +4,8 @@ title: "PREVIOUSYEAR function (DAX) | Microsoft Docs" --- # PREVIOUSYEAR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of all dates from the previous year, given the last date in the **dates** column, in the current context. ## Syntax diff --git a/query-languages/dax/price-function-dax.md b/query-languages/dax/price-function-dax.md index 564796152..8e6122425 100644 --- a/query-languages/dax/price-function-dax.md +++ b/query-languages/dax/price-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # PRICE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the price per \\$100 face value of a security that pays periodic interest. ## Syntax diff --git a/query-languages/dax/pricedisc-function-dax.md b/query-languages/dax/pricedisc-function-dax.md index 2bf737118..235993eb1 100644 --- a/query-languages/dax/pricedisc-function-dax.md +++ b/query-languages/dax/pricedisc-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # PRICEDISC +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the price per \\$100 face value of a discounted security. ## Syntax diff --git a/query-languages/dax/pricemat-function-dax.md b/query-languages/dax/pricemat-function-dax.md index ab53e3dfd..44afa70c9 100644 --- a/query-languages/dax/pricemat-function-dax.md +++ b/query-languages/dax/pricemat-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # PRICEMAT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the price per \\$100 face value of a security that pays interest at maturity. ## Syntax diff --git a/query-languages/dax/product-function-dax.md b/query-languages/dax/product-function-dax.md index dc66b6178..319f5a5b2 100644 --- a/query-languages/dax/product-function-dax.md +++ b/query-languages/dax/product-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: PRODUCT" title: "PRODUCT function (DAX) | Microsoft Docs" --- # PRODUCT + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the product of the numbers in a column. diff --git a/query-languages/dax/productx-function-dax.md b/query-languages/dax/productx-function-dax.md index c7c89b080..f60cf01e9 100644 --- a/query-languages/dax/productx-function-dax.md +++ b/query-languages/dax/productx-function-dax.md @@ -4,6 +4,8 @@ title: "PRODUCTX function (DAX) | Microsoft Docs" --- # PRODUCTX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the product of an expression evaluated for each row in a table. ## Syntax diff --git a/query-languages/dax/pv-function-dax.md b/query-languages/dax/pv-function-dax.md index c8bf31453..f0021f6b3 100644 --- a/query-languages/dax/pv-function-dax.md +++ b/query-languages/dax/pv-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # PV +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Calculates the present value of a loan or an investment, based on a constant interest rate. You can use PV with either periodic, constant payments (such as a mortgage or other loan), and/or a future value that's your investment goal. ## Syntax diff --git a/query-languages/dax/quarter-function-dax.md b/query-languages/dax/quarter-function-dax.md index 73b6957bc..10bd89c9f 100644 --- a/query-languages/dax/quarter-function-dax.md +++ b/query-languages/dax/quarter-function-dax.md @@ -5,6 +5,8 @@ title: "QUARTER function (DAX) | Microsoft Docs" # QUARTER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the quarter as a number from 1 (January – March) to 4 (October – December). ## Syntax diff --git a/query-languages/dax/quotient-function-dax.md b/query-languages/dax/quotient-function-dax.md index f7824faa8..5fd196a5f 100644 --- a/query-languages/dax/quotient-function-dax.md +++ b/query-languages/dax/quotient-function-dax.md @@ -4,6 +4,8 @@ title: "QUOTIENT function (DAX) | Microsoft Docs" --- # QUOTIENT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Performs division and returns only the integer portion of the division result. Use this function when you want to discard the remainder of division. ## Syntax diff --git a/query-languages/dax/radians-function-dax.md b/query-languages/dax/radians-function-dax.md index 393c7c9af..e5b1684b7 100644 --- a/query-languages/dax/radians-function-dax.md +++ b/query-languages/dax/radians-function-dax.md @@ -4,6 +4,8 @@ title: "RADIANS function (DAX) | Microsoft Docs" --- # RADIANS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts degrees to radians. ## Syntax diff --git a/query-languages/dax/rand-function-dax.md b/query-languages/dax/rand-function-dax.md index a7c7ff5aa..7999b21e7 100644 --- a/query-languages/dax/rand-function-dax.md +++ b/query-languages/dax/rand-function-dax.md @@ -4,6 +4,8 @@ title: "RAND function (DAX) | Microsoft Docs" --- # RAND +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a random number greater than or equal to 0 and less than 1, evenly distributed. The number that is returned changes each time the cell containing this function is recalculated. ## Syntax diff --git a/query-languages/dax/randbetween-function-dax.md b/query-languages/dax/randbetween-function-dax.md index 125a5f993..4f4a38e67 100644 --- a/query-languages/dax/randbetween-function-dax.md +++ b/query-languages/dax/randbetween-function-dax.md @@ -4,6 +4,8 @@ title: "RANDBETWEEN function (DAX) | Microsoft Docs" --- # RANDBETWEEN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a random number in the range between two numbers you specify. ## Syntax diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index ddb69d08a..9cae4fde4 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -13,6 +13,8 @@ recommendations: false # RANGE +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Returns an interval of rows within the given axis, relative to the current row. This interval will be comprised of either the last \ rows before the current one, or the first \ rows after the current one. ## Syntax diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 2b7678724..29be25d54 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -6,6 +6,8 @@ author: rahulten # RANK +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then then rank is blank. ## Syntax diff --git a/query-languages/dax/rankx-function-dax.md b/query-languages/dax/rankx-function-dax.md index e3a0c1644..bb818d82d 100644 --- a/query-languages/dax/rankx-function-dax.md +++ b/query-languages/dax/rankx-function-dax.md @@ -4,6 +4,8 @@ title: "RANKX function (DAX) | Microsoft Docs" --- # RANKX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the ranking of a number in a list of numbers for each row in the *table* argument. ## Syntax diff --git a/query-languages/dax/rate-function-dax.md b/query-languages/dax/rate-function-dax.md index 9e4ef848f..8309b0d22 100644 --- a/query-languages/dax/rate-function-dax.md +++ b/query-languages/dax/rate-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # RATE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the interest rate per period of an annuity. RATE is calculated by iteration and can have zero or more solutions. If the successive results of RATE do not converge to within 0.0000001 after 20 iterations, an error is returned. ## Syntax diff --git a/query-languages/dax/received-function-dax.md b/query-languages/dax/received-function-dax.md index 44119c97c..b9405ca5b 100644 --- a/query-languages/dax/received-function-dax.md +++ b/query-languages/dax/received-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # RECEIVED +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the amount received at maturity for a fully invested security. ## Syntax diff --git a/query-languages/dax/related-function-dax.md b/query-languages/dax/related-function-dax.md index 871fc32a3..2bcb3d434 100644 --- a/query-languages/dax/related-function-dax.md +++ b/query-languages/dax/related-function-dax.md @@ -4,6 +4,8 @@ title: "RELATED function (DAX) | Microsoft Docs" --- # RELATED +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Returns a related value from another table. ## Syntax diff --git a/query-languages/dax/relatedtable-function-dax.md b/query-languages/dax/relatedtable-function-dax.md index f83f62e32..0340b0f02 100644 --- a/query-languages/dax/relatedtable-function-dax.md +++ b/query-languages/dax/relatedtable-function-dax.md @@ -4,6 +4,8 @@ title: "RELATEDTABLE function (DAX) | Microsoft Docs" --- # RELATEDTABLE +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Evaluates a table expression in a context modified by the given filters. ## Syntax diff --git a/query-languages/dax/removefilters-function-dax.md b/query-languages/dax/removefilters-function-dax.md index 892c7d637..3d13a5445 100644 --- a/query-languages/dax/removefilters-function-dax.md +++ b/query-languages/dax/removefilters-function-dax.md @@ -4,6 +4,8 @@ title: "REMOVEFILTERS function (DAX) | Microsoft Docs" --- # REMOVEFILTERS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Clear filters from the specified tables or columns. ## Syntax diff --git a/query-languages/dax/replace-function-dax.md b/query-languages/dax/replace-function-dax.md index f96b5811f..94ea2303c 100644 --- a/query-languages/dax/replace-function-dax.md +++ b/query-languages/dax/replace-function-dax.md @@ -4,6 +4,8 @@ title: "REPLACE function (DAX) | Microsoft Docs" --- # REPLACE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + REPLACE replaces part of a text string, based on the number of characters you specify, with a different text string. ## Syntax diff --git a/query-languages/dax/rept-function-dax.md b/query-languages/dax/rept-function-dax.md index 41e542512..bab08ac84 100644 --- a/query-languages/dax/rept-function-dax.md +++ b/query-languages/dax/rept-function-dax.md @@ -4,6 +4,8 @@ title: "REPT function (DAX) | Microsoft Docs" --- # REPT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Repeats text a given number of times. Use REPT to fill a cell with a number of instances of a text string. ## Syntax diff --git a/query-languages/dax/right-function-dax.md b/query-languages/dax/right-function-dax.md index 1230681a0..762d0be6b 100644 --- a/query-languages/dax/right-function-dax.md +++ b/query-languages/dax/right-function-dax.md @@ -4,6 +4,8 @@ title: "RIGHT function (DAX) | Microsoft Docs" --- # RIGHT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + RIGHT returns the last character or characters in a text string, based on the number of characters you specify. ## Syntax diff --git a/query-languages/dax/rollup-function-dax.md b/query-languages/dax/rollup-function-dax.md index 45e2170dc..3016dae12 100644 --- a/query-languages/dax/rollup-function-dax.md +++ b/query-languages/dax/rollup-function-dax.md @@ -4,6 +4,8 @@ title: "ROLLUP function (DAX) | Microsoft Docs" --- # ROLLUP +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Modifies the behavior of the [SUMMARIZE](summarize-function-dax.md) function by adding rollup rows to the result on columns defined by the groupBy_columnName parameter. This function can only be used within a [SUMMARIZE](summarize-function-dax.md) expression. ## Syntax diff --git a/query-languages/dax/rollupaddissubtotal-function-dax.md b/query-languages/dax/rollupaddissubtotal-function-dax.md index 438063d03..06c88021d 100644 --- a/query-languages/dax/rollupaddissubtotal-function-dax.md +++ b/query-languages/dax/rollupaddissubtotal-function-dax.md @@ -4,6 +4,8 @@ title: "ROLLUPADDISSUBTOTAL function (DAX) | Microsoft Docs" --- # ROLLUPADDISSUBTOTAL +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Modifies the behavior of the [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) function by adding rollup/subtotal rows to the result based on the groupBy_columnName columns. This function can only be used within a [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression. ## Syntax diff --git a/query-languages/dax/rollupgroup-function-dax.md b/query-languages/dax/rollupgroup-function-dax.md index 8d21b4e0c..26f2a1466 100644 --- a/query-languages/dax/rollupgroup-function-dax.md +++ b/query-languages/dax/rollupgroup-function-dax.md @@ -4,6 +4,8 @@ title: "ROLLUPGROUP function (DAX) | Microsoft Docs" --- # ROLLUPGROUP +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Modifies the behavior of the [SUMMARIZE](summarize-function-dax.md) and [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) functions by adding rollup rows to the result on columns defined by the the groupBy_columnName parameter. This function can only be used within a [SUMMARIZE](summarize-function-dax.md) or [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression. ## Syntax diff --git a/query-languages/dax/rollupissubtotal-function-dax.md b/query-languages/dax/rollupissubtotal-function-dax.md index a67b02cd1..a665d27d6 100644 --- a/query-languages/dax/rollupissubtotal-function-dax.md +++ b/query-languages/dax/rollupissubtotal-function-dax.md @@ -4,6 +4,8 @@ title: "ROLLUPISSUBTOTAL function (DAX) | Microsoft Docs" --- # ROLLUPISSUBTOTAL +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Pairs rollup groups with the column added by [ROLLUPADDISSUBTOTAL](rollupaddissubtotal-function-dax.md). This function can only be used within an [ADDMISSINGITEMS](addmissingitems-function-dax.md) expression. ## Syntax diff --git a/query-languages/dax/round-function-dax.md b/query-languages/dax/round-function-dax.md index 1d69d9437..aeed68187 100644 --- a/query-languages/dax/round-function-dax.md +++ b/query-languages/dax/round-function-dax.md @@ -4,6 +4,8 @@ title: "ROUND function (DAX) | Microsoft Docs" --- # ROUND +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Rounds a number to the specified number of digits. ## Syntax diff --git a/query-languages/dax/rounddown-function-dax.md b/query-languages/dax/rounddown-function-dax.md index ce5915a55..37558ce55 100644 --- a/query-languages/dax/rounddown-function-dax.md +++ b/query-languages/dax/rounddown-function-dax.md @@ -4,6 +4,8 @@ title: "ROUNDDOWN function (DAX) | Microsoft Docs" --- # ROUNDDOWN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Rounds a number down, toward zero. ## Syntax diff --git a/query-languages/dax/roundup-function-dax.md b/query-languages/dax/roundup-function-dax.md index 12a1f39e5..e62318c79 100644 --- a/query-languages/dax/roundup-function-dax.md +++ b/query-languages/dax/roundup-function-dax.md @@ -4,6 +4,8 @@ title: "ROUNDUP function (DAX) | Microsoft Docs" --- # ROUNDUP +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Rounds a number up, away from 0 (zero). ## Syntax diff --git a/query-languages/dax/row-function-dax.md b/query-languages/dax/row-function-dax.md index c39fe88df..39816bfb2 100644 --- a/query-languages/dax/row-function-dax.md +++ b/query-languages/dax/row-function-dax.md @@ -4,6 +4,8 @@ title: "ROW function (DAX) | Microsoft Docs" --- # ROW function +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a table with a single row containing values that result from the expressions given to each column. ## Syntax diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 9ec1cf831..b533849c4 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -5,6 +5,8 @@ author: rahulten --- # ROWNUMBER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the unique ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then then rownumber is blank. ## Syntax diff --git a/query-languages/dax/rri-function-dax.md b/query-languages/dax/rri-function-dax.md index 06b37945e..3d377b529 100644 --- a/query-languages/dax/rri-function-dax.md +++ b/query-languages/dax/rri-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # RRI +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns an equivalent interest rate for the growth of an investment. ## Syntax diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 051f9fb04..e04676ec3 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -13,6 +13,8 @@ recommendations: false # RUNNINGSUM +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + Returns a running sum calculated along the given axis of the visual matrix. That is, the sum of the given column calculated over all rows up to the current row. ## Syntax diff --git a/query-languages/dax/sameperiodlastyear-function-dax.md b/query-languages/dax/sameperiodlastyear-function-dax.md index 66de859d4..a4012a5c1 100644 --- a/query-languages/dax/sameperiodlastyear-function-dax.md +++ b/query-languages/dax/sameperiodlastyear-function-dax.md @@ -4,6 +4,8 @@ title: "SAMEPERIODLASTYEAR function (DAX) | Microsoft Docs" --- # SAMEPERIODLASTYEAR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns a table that contains a column of dates shifted one year back in time from the dates in the specified **dates** column, in the current context. ## Syntax diff --git a/query-languages/dax/sample-function-dax.md b/query-languages/dax/sample-function-dax.md index 0c85c88d2..e5c31c223 100644 --- a/query-languages/dax/sample-function-dax.md +++ b/query-languages/dax/sample-function-dax.md @@ -4,6 +4,8 @@ title: "SAMPLE function (DAX) | Microsoft Docs" --- # SAMPLE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a sample of N rows from the specified table. ## Syntax diff --git a/query-languages/dax/search-function-dax.md b/query-languages/dax/search-function-dax.md index 5ff5a417c..4e38e9eaf 100644 --- a/query-languages/dax/search-function-dax.md +++ b/query-languages/dax/search-function-dax.md @@ -4,6 +4,8 @@ title: "SEARCH function (DAX) | Microsoft Docs" --- # SEARCH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of the character at which a specific character or text string is first found, reading left to right. Search is case-insensitive and accent sensitive. ## Syntax diff --git a/query-languages/dax/second-function-dax.md b/query-languages/dax/second-function-dax.md index fcfe5e4b3..bf0c0d902 100644 --- a/query-languages/dax/second-function-dax.md +++ b/query-languages/dax/second-function-dax.md @@ -4,6 +4,8 @@ title: "SECOND function (DAX) | Microsoft Docs" --- # SECOND +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the seconds of a time value, as a number from 0 to 59. ## Syntax diff --git a/query-languages/dax/selectcolumns-function-dax.md b/query-languages/dax/selectcolumns-function-dax.md index 03a302a4a..7c7f8c986 100644 --- a/query-languages/dax/selectcolumns-function-dax.md +++ b/query-languages/dax/selectcolumns-function-dax.md @@ -4,6 +4,8 @@ title: "SELECTCOLUMNS function (DAX) | Microsoft Docs" --- # SELECTCOLUMNS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a table with selected columns from the table and new columns specified by the DAX expressions. ## Syntax diff --git a/query-languages/dax/selectedmeasure-function-dax.md b/query-languages/dax/selectedmeasure-function-dax.md index a727a22ce..3c057ff83 100644 --- a/query-languages/dax/selectedmeasure-function-dax.md +++ b/query-languages/dax/selectedmeasure-function-dax.md @@ -4,6 +4,8 @@ title: "SELECTEDMEASURE function (DAX) | Microsoft Docs" --- # SELECTEDMEASURE +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Used by expressions for calculation items or dynamic format strings to reference the measure that is in context. ## Syntax diff --git a/query-languages/dax/selectedmeasureformatstring-function-dax.md b/query-languages/dax/selectedmeasureformatstring-function-dax.md index 5f29771dd..48cdc4929 100644 --- a/query-languages/dax/selectedmeasureformatstring-function-dax.md +++ b/query-languages/dax/selectedmeasureformatstring-function-dax.md @@ -4,6 +4,8 @@ title: "SELECTEDMEASUREFORMATSTRING function (DAX) | Microsoft Docs" --- # SELECTEDMEASUREFORMATSTRING +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Used by expressions for calculation items to retrieve the format string of the measure that is in context. ## Syntax diff --git a/query-languages/dax/selectedmeasurename-function-dax.md b/query-languages/dax/selectedmeasurename-function-dax.md index 2d449ac57..3d08c54f7 100644 --- a/query-languages/dax/selectedmeasurename-function-dax.md +++ b/query-languages/dax/selectedmeasurename-function-dax.md @@ -4,6 +4,8 @@ title: "SELECTEDMEASURENAME function (DAX) | Microsoft Docs" --- # SELECTEDMEASURENAME +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Used by expressions for calculation items to determine the measure that is in context by name. ## Syntax diff --git a/query-languages/dax/selectedvalue-function-dax.md b/query-languages/dax/selectedvalue-function-dax.md index 8785af447..a6f0ac21b 100644 --- a/query-languages/dax/selectedvalue-function-dax.md +++ b/query-languages/dax/selectedvalue-function-dax.md @@ -4,6 +4,8 @@ title: "SELECTEDVALUE function | Microsoft Docs" --- # SELECTEDVALUE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. ## Syntax diff --git a/query-languages/dax/sign-function-dax.md b/query-languages/dax/sign-function-dax.md index a043adeb5..ae3d434af 100644 --- a/query-languages/dax/sign-function-dax.md +++ b/query-languages/dax/sign-function-dax.md @@ -4,6 +4,8 @@ title: "SIGN function (DAX) | Microsoft Docs" --- # SIGN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Determines the sign of a number, the result of a calculation, or a value in a column. The function returns 1 if the number is positive, 0 (zero) if the number is zero, or -1 if the number is negative. ## Syntax diff --git a/query-languages/dax/sin-function-dax.md b/query-languages/dax/sin-function-dax.md index b86d0045b..7e170e694 100644 --- a/query-languages/dax/sin-function-dax.md +++ b/query-languages/dax/sin-function-dax.md @@ -4,6 +4,8 @@ title: "SIN function (DAX) | Microsoft Docs" --- # SIN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the sine of the given angle. ## Syntax diff --git a/query-languages/dax/sinh-function-dax.md b/query-languages/dax/sinh-function-dax.md index 9a214ab21..c06f94f7f 100644 --- a/query-languages/dax/sinh-function-dax.md +++ b/query-languages/dax/sinh-function-dax.md @@ -4,6 +4,8 @@ title: "SINH function (DAX) | Microsoft Docs" --- # SINH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the hyperbolic sine of a number. ## Syntax diff --git a/query-languages/dax/sln-function-dax.md b/query-languages/dax/sln-function-dax.md index 44b5e1944..03c701d7c 100644 --- a/query-languages/dax/sln-function-dax.md +++ b/query-languages/dax/sln-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # SLN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the straight-line depreciation of an asset for one period. ## Syntax diff --git a/query-languages/dax/sqrt-function-dax.md b/query-languages/dax/sqrt-function-dax.md index 389652d1c..69011314a 100644 --- a/query-languages/dax/sqrt-function-dax.md +++ b/query-languages/dax/sqrt-function-dax.md @@ -4,6 +4,8 @@ title: "SQRT function (DAX) | Microsoft Docs" --- # SQRT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the square root of a number. ## Syntax diff --git a/query-languages/dax/sqrtpi-function-dax.md b/query-languages/dax/sqrtpi-function-dax.md index 77c37b2f6..8addd7290 100644 --- a/query-languages/dax/sqrtpi-function-dax.md +++ b/query-languages/dax/sqrtpi-function-dax.md @@ -4,6 +4,8 @@ title: "SQRTPI function (DAX) | Microsoft Docs" --- # SQRTPI +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the square root of (number * pi). ## Syntax diff --git a/query-languages/dax/startofmonth-function-dax.md b/query-languages/dax/startofmonth-function-dax.md index 5139a04c2..567d76d91 100644 --- a/query-languages/dax/startofmonth-function-dax.md +++ b/query-languages/dax/startofmonth-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: STARTOFMONTH" title: "STARTOFMONTH function (DAX) | Microsoft Docs" --- # STARTOFMONTH + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] Returns the first date of the month in the current context for the specified column of dates. ## Syntax diff --git a/query-languages/dax/startofquarter-function-dax.md b/query-languages/dax/startofquarter-function-dax.md index d8eb759b8..ac06e3d34 100644 --- a/query-languages/dax/startofquarter-function-dax.md +++ b/query-languages/dax/startofquarter-function-dax.md @@ -4,6 +4,8 @@ title: "STARTOFQUARTER function (DAX) | Microsoft Docs" --- # STARTOFQUARTER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns the first date of the quarter in the current context for the specified column of dates. ## Syntax diff --git a/query-languages/dax/startofyear-function-dax.md b/query-languages/dax/startofyear-function-dax.md index dca7328ad..c1bf85cf1 100644 --- a/query-languages/dax/startofyear-function-dax.md +++ b/query-languages/dax/startofyear-function-dax.md @@ -4,6 +4,8 @@ title: "STARTOFYEAR function (DAX) | Microsoft Docs" --- # STARTOFYEAR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Returns the first date of the year in the current context for the specified column of dates. ## Syntax diff --git a/query-languages/dax/substitute-function-dax.md b/query-languages/dax/substitute-function-dax.md index 625c7d3ff..5f2ef712a 100644 --- a/query-languages/dax/substitute-function-dax.md +++ b/query-languages/dax/substitute-function-dax.md @@ -4,6 +4,8 @@ title: "SUBSTITUTE function (DAX) | Microsoft Docs" --- # SUBSTITUTE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Replaces existing text with new text in a text string. ## Syntax diff --git a/query-languages/dax/substitutewithindex-function-dax.md b/query-languages/dax/substitutewithindex-function-dax.md index 94c8897de..5df45a8f8 100644 --- a/query-languages/dax/substitutewithindex-function-dax.md +++ b/query-languages/dax/substitutewithindex-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: SUBSTITUTEWITHINDEX" title: "SUBSTITUTEWITHINDEX function (DAX) | Microsoft Docs" --- # SUBSTITUTEWITHINDEX + +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Returns a table which represents a left semijoin of the two tables supplied as arguments. The semijoin is performed by using common columns, determined by common column names and common data type . The columns being joined on are replaced with a single column in the returned table which is of type integer and contains an index. The index is a reference into the right join table given a specified sort order. diff --git a/query-languages/dax/sum-function-dax.md b/query-languages/dax/sum-function-dax.md index d423a4ae3..0160b3fd7 100644 --- a/query-languages/dax/sum-function-dax.md +++ b/query-languages/dax/sum-function-dax.md @@ -4,6 +4,8 @@ title: "SUM function (DAX) | Microsoft Docs" --- # SUM +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Adds all the numbers in a column. ## Syntax diff --git a/query-languages/dax/summarize-function-dax.md b/query-languages/dax/summarize-function-dax.md index 25aebadec..2968bb4d3 100644 --- a/query-languages/dax/summarize-function-dax.md +++ b/query-languages/dax/summarize-function-dax.md @@ -4,6 +4,8 @@ title: "SUMMARIZE function (DAX) | Microsoft Docs" --- # SUMMARIZE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a summary table for the requested totals over a set of groups. ## Syntax diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index a2c5f1e7c..5f33a4e5d 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -4,6 +4,8 @@ title: "SUMMARIZECOLUMNS function (DAX) | Microsoft Docs" --- # SUMMARIZECOLUMNS +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Returns a summary table over a set of groups. ## Syntax diff --git a/query-languages/dax/sumx-function-dax.md b/query-languages/dax/sumx-function-dax.md index 1abde17a8..a6f080807 100644 --- a/query-languages/dax/sumx-function-dax.md +++ b/query-languages/dax/sumx-function-dax.md @@ -4,6 +4,8 @@ title: "SUMX function (DAX) | Microsoft Docs" --- # SUMX +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the sum of an expression evaluated for each row in a table. ## Syntax diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index 4a39640e6..4ca1ed632 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -4,6 +4,8 @@ title: "SWITCH function (DAX) | Microsoft Docs" --- # SWITCH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Evaluates an expression against a list of values and returns one of multiple possible result expressions. This function can be used to avoid having multiple nested [IF](if-function-dax.md) statements. ## Syntax diff --git a/query-languages/dax/syd-function-dax.md b/query-languages/dax/syd-function-dax.md index d49079b98..7c41f97f8 100644 --- a/query-languages/dax/syd-function-dax.md +++ b/query-languages/dax/syd-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # SYD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the sum-of-years' digits depreciation of an asset for a specified period. ## Syntax diff --git a/query-languages/dax/tan-function-dax.md b/query-languages/dax/tan-function-dax.md index 5e921ee55..c57770fd1 100644 --- a/query-languages/dax/tan-function-dax.md +++ b/query-languages/dax/tan-function-dax.md @@ -4,6 +4,8 @@ title: "TAN function (DAX) | Microsoft Docs" --- # TAN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the tangent of the given angle. ## Syntax diff --git a/query-languages/dax/tanh-function-dax.md b/query-languages/dax/tanh-function-dax.md index 7d82f5e8c..cc6003235 100644 --- a/query-languages/dax/tanh-function-dax.md +++ b/query-languages/dax/tanh-function-dax.md @@ -4,6 +4,8 @@ title: "TANH function (DAX) | Microsoft Docs" --- # TANH +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the hyperbolic tangent of a number. ## Syntax diff --git a/query-languages/dax/tbilleq-function-dax.md b/query-languages/dax/tbilleq-function-dax.md index 04e69cd29..5cbced722 100644 --- a/query-languages/dax/tbilleq-function-dax.md +++ b/query-languages/dax/tbilleq-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # TBILLEQ +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the bond-equivalent yield for a Treasury bill. ## Syntax diff --git a/query-languages/dax/tbillprice-function-dax.md b/query-languages/dax/tbillprice-function-dax.md index 13035575c..d3354e558 100644 --- a/query-languages/dax/tbillprice-function-dax.md +++ b/query-languages/dax/tbillprice-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # TBILLPRICE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the price per \\$100 face value for a Treasury bill. ## Syntax diff --git a/query-languages/dax/tbillyield-function-dax.md b/query-languages/dax/tbillyield-function-dax.md index 1f901c8f1..477930600 100644 --- a/query-languages/dax/tbillyield-function-dax.md +++ b/query-languages/dax/tbillyield-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # TBILLYIELD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the yield for a Treasury bill. ## Syntax diff --git a/query-languages/dax/time-function-dax.md b/query-languages/dax/time-function-dax.md index 1bfa00891..e13e3b287 100644 --- a/query-languages/dax/time-function-dax.md +++ b/query-languages/dax/time-function-dax.md @@ -4,6 +4,8 @@ title: "TIME function (DAX) | Microsoft Docs" --- # TIME +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts hours, minutes, and seconds given as numbers to a time in **datetime** format. ## Syntax diff --git a/query-languages/dax/timevalue-function-dax.md b/query-languages/dax/timevalue-function-dax.md index 187d71aaf..b6831d78d 100644 --- a/query-languages/dax/timevalue-function-dax.md +++ b/query-languages/dax/timevalue-function-dax.md @@ -4,6 +4,8 @@ title: "TIMEVALUE function (DAX) | Microsoft Docs" --- # TIMEVALUE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts a time in text format to a time in datetime format. ## Syntax diff --git a/query-languages/dax/tocsv-function-dax.md b/query-languages/dax/tocsv-function-dax.md index 4d4ae6b01..5fd9ce0a3 100644 --- a/query-languages/dax/tocsv-function-dax.md +++ b/query-languages/dax/tocsv-function-dax.md @@ -4,6 +4,8 @@ title: "TOCSV function (DAX) | Microsoft Docs" --- # TOCSV +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a table as a string in CSV format. ## Syntax diff --git a/query-languages/dax/today-function-dax.md b/query-languages/dax/today-function-dax.md index 6ba2afaed..5cefa725d 100644 --- a/query-languages/dax/today-function-dax.md +++ b/query-languages/dax/today-function-dax.md @@ -4,6 +4,8 @@ title: "TODAY function (DAX) | Microsoft Docs" --- # TODAY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the current date. ## Syntax diff --git a/query-languages/dax/tojson-function-dax.md b/query-languages/dax/tojson-function-dax.md index 24dbab0bc..617814a52 100644 --- a/query-languages/dax/tojson-function-dax.md +++ b/query-languages/dax/tojson-function-dax.md @@ -4,6 +4,8 @@ title: "TOJSON function (DAX) | Microsoft Docs" --- # TOJSON +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a table as a string using JSON format. ## Syntax diff --git a/query-languages/dax/topn-function-dax.md b/query-languages/dax/topn-function-dax.md index eec7b305c..8dcfb63dd 100644 --- a/query-languages/dax/topn-function-dax.md +++ b/query-languages/dax/topn-function-dax.md @@ -4,6 +4,8 @@ title: "TOPN function (DAX) | Microsoft Docs" --- # TOPN +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the top N rows of the specified table. ## Syntax diff --git a/query-languages/dax/totalmtd-function-dax.md b/query-languages/dax/totalmtd-function-dax.md index b0076e6e5..3c75e402d 100644 --- a/query-languages/dax/totalmtd-function-dax.md +++ b/query-languages/dax/totalmtd-function-dax.md @@ -4,6 +4,8 @@ title: "TOTALMTD function (DAX) | Microsoft Docs" --- # TOTALMTD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates the value of the **expression** for the month to date, in the current context. ## Syntax diff --git a/query-languages/dax/totalqtd-function-dax.md b/query-languages/dax/totalqtd-function-dax.md index 637260002..111ba5ff5 100644 --- a/query-languages/dax/totalqtd-function-dax.md +++ b/query-languages/dax/totalqtd-function-dax.md @@ -4,6 +4,8 @@ title: "TOTALQTD function (DAX) | Microsoft Docs" --- # TOTALQTD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates the value of the **expression** for the dates in the quarter to date, in the current context. ## Syntax diff --git a/query-languages/dax/totalytd-function-dax.md b/query-languages/dax/totalytd-function-dax.md index 9a89a2584..b0ed56313 100644 --- a/query-languages/dax/totalytd-function-dax.md +++ b/query-languages/dax/totalytd-function-dax.md @@ -4,6 +4,8 @@ title: "TOTALYTD function (DAX) | Microsoft Docs" --- # TOTALYTD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + Evaluates the year-to-date value of the **expression** in the current context. ## Syntax diff --git a/query-languages/dax/treatas-function-dax.md b/query-languages/dax/treatas-function-dax.md index bf2d5e6d5..330c169d4 100644 --- a/query-languages/dax/treatas-function-dax.md +++ b/query-languages/dax/treatas-function-dax.md @@ -4,6 +4,8 @@ title: "TREATAS function | Microsoft Docs" --- # TREATAS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Applies the result of a table expression as filters to columns from an unrelated table. ## Syntax diff --git a/query-languages/dax/trim-function-dax.md b/query-languages/dax/trim-function-dax.md index b17071ab5..d596fdf80 100644 --- a/query-languages/dax/trim-function-dax.md +++ b/query-languages/dax/trim-function-dax.md @@ -4,6 +4,8 @@ title: "TRIM function (DAX) | Microsoft Docs" --- # TRIM +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Removes all spaces from text except for single spaces between words. ## Syntax diff --git a/query-languages/dax/true-function-dax.md b/query-languages/dax/true-function-dax.md index 960a9eb7f..be7f55b57 100644 --- a/query-languages/dax/true-function-dax.md +++ b/query-languages/dax/true-function-dax.md @@ -4,6 +4,8 @@ title: "TRUE function (DAX) | Microsoft Docs" --- # TRUE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the logical value TRUE. ## Syntax diff --git a/query-languages/dax/trunc-function-dax.md b/query-languages/dax/trunc-function-dax.md index 40317a230..50f1f5200 100644 --- a/query-languages/dax/trunc-function-dax.md +++ b/query-languages/dax/trunc-function-dax.md @@ -4,6 +4,8 @@ title: "TRUNC function (DAX) | Microsoft Docs" --- # TRUNC +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Truncates a number to an integer by removing the decimal, or fractional, part of the number. ## Syntax diff --git a/query-languages/dax/unichar-function-dax.md b/query-languages/dax/unichar-function-dax.md index 0fabdcd71..47b8575dd 100644 --- a/query-languages/dax/unichar-function-dax.md +++ b/query-languages/dax/unichar-function-dax.md @@ -4,6 +4,8 @@ title: "UNICHAR function (DAX) | Microsoft Docs" --- # UNICHAR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the Unicode character referenced by the numeric value. ## Syntax diff --git a/query-languages/dax/unicode-function-dax.md b/query-languages/dax/unicode-function-dax.md index 8cf5800e7..9ff1c5327 100644 --- a/query-languages/dax/unicode-function-dax.md +++ b/query-languages/dax/unicode-function-dax.md @@ -4,6 +4,8 @@ title: "UNICODE function (DAX) | Microsoft Docs" --- # UNICODE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number (code point) corresponding to the first character of the text. ## Syntax diff --git a/query-languages/dax/union-function-dax.md b/query-languages/dax/union-function-dax.md index 32c342f58..944c6aa03 100644 --- a/query-languages/dax/union-function-dax.md +++ b/query-languages/dax/union-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: UNION" title: "UNION function (DAX) | Microsoft Docs" --- # UNION + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Creates a union (join) table from a pair of tables. diff --git a/query-languages/dax/upper-function-dax.md b/query-languages/dax/upper-function-dax.md index 7a2c80744..6fa30456e 100644 --- a/query-languages/dax/upper-function-dax.md +++ b/query-languages/dax/upper-function-dax.md @@ -4,6 +4,8 @@ title: "UPPER function (DAX) | Microsoft Docs" --- # UPPER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts a text string to all uppercase letters. ## Syntax diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index e75bd8cec..e63d3e411 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: USERCULTURE" title: "USERCULTURE function (DAX) | Microsoft Docs" --- # USERCULTURE + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the locale \(language code-country code) for the current user, determined by the operating system, browser settings, or Power BI service. diff --git a/query-languages/dax/userelationship-function-dax.md b/query-languages/dax/userelationship-function-dax.md index 6aab35d69..dfa794265 100644 --- a/query-languages/dax/userelationship-function-dax.md +++ b/query-languages/dax/userelationship-function-dax.md @@ -4,6 +4,8 @@ title: "USERELATIONSHIP function (DAX) | Microsoft Docs" --- # USERELATIONSHIP +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Specifies the relationship to be used in a specific calculation as the one that exists between columnName1 and columnName2. ## Syntax diff --git a/query-languages/dax/username-function-dax.md b/query-languages/dax/username-function-dax.md index 56c4a716e..e7fe90888 100644 --- a/query-languages/dax/username-function-dax.md +++ b/query-languages/dax/username-function-dax.md @@ -4,6 +4,8 @@ title: "USERNAME function (DAX) | Microsoft Docs" --- # USERNAME +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the domain name and username from the credentials given to the system at connection time. ## Syntax diff --git a/query-languages/dax/userobjectid-function-dax.md b/query-languages/dax/userobjectid-function-dax.md index f27a46b14..8453fac3f 100644 --- a/query-languages/dax/userobjectid-function-dax.md +++ b/query-languages/dax/userobjectid-function-dax.md @@ -4,6 +4,8 @@ title: "USEROBJECTID function (DAX) | Microsoft Docs" --- # USEROBJECTID +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the current user's Object ID from Microsoft Entra ID or security identifier (SID). ## Syntax diff --git a/query-languages/dax/userprincipalname-function-dax.md b/query-languages/dax/userprincipalname-function-dax.md index dbb95dd2c..854841d00 100644 --- a/query-languages/dax/userprincipalname-function-dax.md +++ b/query-languages/dax/userprincipalname-function-dax.md @@ -4,6 +4,8 @@ title: "USERPRINCIPALNAME function (DAX) | Microsoft Docs" --- # USERPRINCIPALNAME +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the user principal name. ## Syntax diff --git a/query-languages/dax/utcnow-function-dax.md b/query-languages/dax/utcnow-function-dax.md index 161cefcc1..dda20f699 100644 --- a/query-languages/dax/utcnow-function-dax.md +++ b/query-languages/dax/utcnow-function-dax.md @@ -4,6 +4,8 @@ title: "UTCNOW function (DAX) | Microsoft Docs" --- # UTCNOW +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the current UTC date and time. ## Syntax diff --git a/query-languages/dax/utctoday-function-dax.md b/query-languages/dax/utctoday-function-dax.md index e8f51a533..01186cd74 100644 --- a/query-languages/dax/utctoday-function-dax.md +++ b/query-languages/dax/utctoday-function-dax.md @@ -4,6 +4,8 @@ title: "UTCTODAY function (DAX) | Microsoft Docs" --- # UTCTODAY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the current UTC date. ## Syntax diff --git a/query-languages/dax/value-function-dax.md b/query-languages/dax/value-function-dax.md index a19e26ef1..682c93472 100644 --- a/query-languages/dax/value-function-dax.md +++ b/query-languages/dax/value-function-dax.md @@ -4,6 +4,8 @@ title: "VALUE function (DAX) | Microsoft Docs" --- # VALUE +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Converts a text string that represents a number to a number. ## Syntax diff --git a/query-languages/dax/values-function-dax.md b/query-languages/dax/values-function-dax.md index 514ba3a9e..dfc32a2f1 100644 --- a/query-languages/dax/values-function-dax.md +++ b/query-languages/dax/values-function-dax.md @@ -4,6 +4,8 @@ title: "VALUES function (DAX) | Microsoft Docs" --- # VALUES +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + When the input parameter is a column name, returns a one-column table that contains the distinct values from the specified column. Duplicate values are removed and only unique values are returned. A BLANK value can be added. When the input parameter is a table name, returns the rows from the specified table. Duplicate rows are preserved. A BLANK row can be added. > [!NOTE] diff --git a/query-languages/dax/vdb-function-dax.md b/query-languages/dax/vdb-function-dax.md index fc4eebec8..644bdc943 100644 --- a/query-languages/dax/vdb-function-dax.md +++ b/query-languages/dax/vdb-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # VDB +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the depreciation of an asset for any period you specify, including partial periods, using the double-declining balance method or some other method you specify. VDB stands for variable declining balance. ## Syntax diff --git a/query-languages/dax/weekday-function-dax.md b/query-languages/dax/weekday-function-dax.md index c6596f050..7bfe46e9c 100644 --- a/query-languages/dax/weekday-function-dax.md +++ b/query-languages/dax/weekday-function-dax.md @@ -4,6 +4,8 @@ title: "WEEKDAY function (DAX) | Microsoft Docs" --- # WEEKDAY +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a number from 1 to 7 identifying the day of the week of a date. By default the day ranges from 1 (Sunday) to 7 (Saturday). ## Syntax diff --git a/query-languages/dax/weeknum-function-dax.md b/query-languages/dax/weeknum-function-dax.md index 6c928eb08..2c051d4a2 100644 --- a/query-languages/dax/weeknum-function-dax.md +++ b/query-languages/dax/weeknum-function-dax.md @@ -4,6 +4,8 @@ title: "WEEKNUM function (DAX) | Microsoft Docs" --- # WEEKNUM +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the week number for the given date according to the **return_type** value. The week number indicates where the week falls numerically within a year. There are two *systems* used for this function: diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 16fab7850..baaef553a 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -5,6 +5,8 @@ title: "WINDOW function (DAX) | Microsoft Docs" # WINDOW +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns multiple rows which are positioned within the given interval. ## Syntax diff --git a/query-languages/dax/xirr-function-dax.md b/query-languages/dax/xirr-function-dax.md index f6ade053b..f34e2a055 100644 --- a/query-languages/dax/xirr-function-dax.md +++ b/query-languages/dax/xirr-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: XIRR" title: "XIRR function (DAX) | Microsoft Docs" --- # XIRR + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the internal rate of return for a schedule of cash flows that is not necessarily periodic. diff --git a/query-languages/dax/xnpv-function-dax.md b/query-languages/dax/xnpv-function-dax.md index ed11203f1..3b2fcb959 100644 --- a/query-languages/dax/xnpv-function-dax.md +++ b/query-languages/dax/xnpv-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: XNPV" title: "XNPV function (DAX) | Microsoft Docs" --- # XNPV + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the present value for a schedule of cash flows that is not necessarily periodic. diff --git a/query-languages/dax/year-function-dax.md b/query-languages/dax/year-function-dax.md index 389912baa..73f2c9cc9 100644 --- a/query-languages/dax/year-function-dax.md +++ b/query-languages/dax/year-function-dax.md @@ -4,6 +4,8 @@ title: "YEAR function (DAX) | Microsoft Docs" --- # YEAR +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the year of a date as a four digit integer in the range 1900-9999. ## Syntax diff --git a/query-languages/dax/yearfrac-function-dax.md b/query-languages/dax/yearfrac-function-dax.md index 83c1bde3b..c577466b2 100644 --- a/query-languages/dax/yearfrac-function-dax.md +++ b/query-languages/dax/yearfrac-function-dax.md @@ -4,6 +4,8 @@ title: "YEARFRAC function (DAX) | Microsoft Docs" --- # YEARFRAC +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Calculates the fraction of the year represented by the number of whole days between two dates. Use the YEARFRAC worksheet function to identify the proportion of a whole year's benefits or obligations to assign to a specific term. ## Syntax diff --git a/query-languages/dax/yield-function-dax.md b/query-languages/dax/yield-function-dax.md index bff13bb41..57439e15e 100644 --- a/query-languages/dax/yield-function-dax.md +++ b/query-languages/dax/yield-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # YIELD +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the yield on a security that pays periodic interest. Use YIELD to calculate bond yield. ## Syntax diff --git a/query-languages/dax/yielddisc-function-dax.md b/query-languages/dax/yielddisc-function-dax.md index e99555ccc..ac3a9a997 100644 --- a/query-languages/dax/yielddisc-function-dax.md +++ b/query-languages/dax/yielddisc-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # YIELDDISC +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the annual yield for a discounted security. ## Syntax diff --git a/query-languages/dax/yieldmat-function-dax.md b/query-languages/dax/yieldmat-function-dax.md index 3c5f66c6f..43a1a667b 100644 --- a/query-languages/dax/yieldmat-function-dax.md +++ b/query-languages/dax/yieldmat-function-dax.md @@ -6,6 +6,8 @@ author: jajin7 # YIELDMAT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the annual yield of a security that pays interest at maturity. ## Syntax From fe813a1e7557041ec6c4d45d9a2f0884514db8a0 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 13:21:18 -0700 Subject: [PATCH 470/934] trying to get rid of invalid links in applies-to-measures-columns-tables --- .../dax/includes/applies-to-measures-columns-tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables.md b/query-languages/dax/includes/applies-to-measures-columns-tables.md index 21a09299f..0f609b909 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated column](power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated table](power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="yes" source="media/yes.png":::[Measure](power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="no" source="media/no.png":::[Visual calculation](power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="yes" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="no" source="media/no.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file From e9b899ea5af0dfdca33ac1337d9c153325cf8848 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 13:34:44 -0700 Subject: [PATCH 471/934] working on link errors --- ...o-measures-columns-tables-visual-calculations-discouraged.md | 2 +- .../applies-to-measures-columns-tables-visual-calculations.md | 2 +- .../dax/includes/applies-to-measures-columns-tables.md | 2 +- query-languages/dax/includes/applies-to-visual-calculations.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md index 44ac80ab3..f2aa4dc12 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md @@ -1,4 +1,4 @@ -**Applies to:** :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="yes" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="discouraged" source="media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) +**Applies to:** :::image type="icon" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) > [!NOTE] > This function is discouraged for use in [visual calculations](/power-bi/transform-model/desktop-visual-calculations-overview) as it likely returns meaningless results. \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md index 90007a718..2d6d588f1 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated column](power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated table](power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="yes" source="media/yes.png":::[Measure](power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="yes" source="media/yes.png":::[Visual calculation](power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables.md b/query-languages/dax/includes/applies-to-measures-columns-tables.md index 0f609b909..fb7b9457a 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="yes" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="yes" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="no" source="media/no.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/no.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-visual-calculations.md b/query-languages/dax/includes/applies-to-visual-calculations.md index 525f29ec5..2d3d600cd 100644 --- a/query-languages/dax/includes/applies-to-visual-calculations.md +++ b/query-languages/dax/includes/applies-to-visual-calculations.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" alt-text="no" source="media/no.png":::[Calculated column](power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" alt-text="no" source="media/no.png":::[Calculated table](power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" alt-text="no" source="media/no.png":::[Measure](power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" alt-text="yes" source="media/yes.png":::[Visual calculation](power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="media/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file From 2090abee0c27882152b2b2d6049d0f5eab6630c5 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 13:39:44 -0700 Subject: [PATCH 472/934] fixing images --- ...o-measures-columns-tables-visual-calculations-discouraged.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md index f2aa4dc12..a0b15003f 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md @@ -1,4 +1,4 @@ -**Applies to:** :::image type="icon" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) +**Applies to:** :::image type="icon" source="includes/media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="includes/media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="includes/media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="includes/media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) > [!NOTE] > This function is discouraged for use in [visual calculations](/power-bi/transform-model/desktop-visual-calculations-overview) as it likely returns meaningless results. \ No newline at end of file From e33008939ddaa51e149796c80bef4c993dcf4003 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 13:42:26 -0700 Subject: [PATCH 473/934] broken images again --- ...o-measures-columns-tables-visual-calculations-discouraged.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md index a0b15003f..cc7761cec 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md @@ -1,4 +1,4 @@ -**Applies to:** :::image type="icon" source="includes/media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="includes/media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="includes/media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="includes/media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) +**Applies to:** :::image type="icon" source="./includes/media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="./includes/media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="./includes/media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="./includes/media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) > [!NOTE] > This function is discouraged for use in [visual calculations](/power-bi/transform-model/desktop-visual-calculations-overview) as it likely returns meaningless results. \ No newline at end of file From 907aefd37129d861181a4a1e308e3a7df9e4e7f4 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 13:45:50 -0700 Subject: [PATCH 474/934] broken images again --- ...olumns-tables-visual-calculations-discouraged.md | 2 +- .../{includes/media => media/icons}/discouraged.png | Bin .../dax/{includes/media => media/icons}/no.png | Bin .../dax/{includes/media => media/icons}/yes.png | Bin 4 files changed, 1 insertion(+), 1 deletion(-) rename query-languages/dax/{includes/media => media/icons}/discouraged.png (100%) rename query-languages/dax/{includes/media => media/icons}/no.png (100%) rename query-languages/dax/{includes/media => media/icons}/yes.png (100%) diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md index cc7761cec..9b29fd9b3 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md @@ -1,4 +1,4 @@ -**Applies to:** :::image type="icon" source="./includes/media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="./includes/media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="./includes/media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="./includes/media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) +**Applies to:** :::image type="icon" source="media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="includes/media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) > [!NOTE] > This function is discouraged for use in [visual calculations](/power-bi/transform-model/desktop-visual-calculations-overview) as it likely returns meaningless results. \ No newline at end of file diff --git a/query-languages/dax/includes/media/discouraged.png b/query-languages/dax/media/icons/discouraged.png similarity index 100% rename from query-languages/dax/includes/media/discouraged.png rename to query-languages/dax/media/icons/discouraged.png diff --git a/query-languages/dax/includes/media/no.png b/query-languages/dax/media/icons/no.png similarity index 100% rename from query-languages/dax/includes/media/no.png rename to query-languages/dax/media/icons/no.png diff --git a/query-languages/dax/includes/media/yes.png b/query-languages/dax/media/icons/yes.png similarity index 100% rename from query-languages/dax/includes/media/yes.png rename to query-languages/dax/media/icons/yes.png From 77be0274bed54fd64137a7234ce20af66c647a5b Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 14:02:30 -0700 Subject: [PATCH 475/934] broken images again --- ...o-measures-columns-tables-visual-calculations-discouraged.md | 2 +- .../applies-to-measures-columns-tables-visual-calculations.md | 2 +- .../dax/includes/applies-to-measures-columns-tables.md | 2 +- query-languages/dax/includes/applies-to-visual-calculations.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md index 9b29fd9b3..58d1c10a2 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md @@ -1,4 +1,4 @@ -**Applies to:** :::image type="icon" source="media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="includes/media/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) +**Applies to:** :::image type="icon" source="media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/icons/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) > [!NOTE] > This function is discouraged for use in [visual calculations](/power-bi/transform-model/desktop-visual-calculations-overview) as it likely returns meaningless results. \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md index 2d6d588f1..313c7cf48 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables.md b/query-languages/dax/includes/applies-to-measures-columns-tables.md index fb7b9457a..b8fd8f336 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" source="media/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/no.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/icons/no.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-visual-calculations.md b/query-languages/dax/includes/applies-to-visual-calculations.md index 2d3d600cd..d417a2f1f 100644 --- a/query-languages/dax/includes/applies-to-visual-calculations.md +++ b/query-languages/dax/includes/applies-to-visual-calculations.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" source="media/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="media/icons/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file From 52d820bc5de8703047f617914598de6cc288ede7 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 14:48:29 -0700 Subject: [PATCH 476/934] images links again --- query-languages/dax/includes/applies-to-visual-calculations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/includes/applies-to-visual-calculations.md b/query-languages/dax/includes/applies-to-visual-calculations.md index d417a2f1f..125800c24 100644 --- a/query-languages/dax/includes/applies-to-visual-calculations.md +++ b/query-languages/dax/includes/applies-to-visual-calculations.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" source="media/icons/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="query-languages/dax/media/icons/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="query-languages/dax/media/icons/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="query-languages/dax/media/icons/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="query-languages/dax/media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file From f6e0f2a5c5247e79b5a6e5d8f296682d572421f9 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 14:51:36 -0700 Subject: [PATCH 477/934] images links again --- query-languages/dax/includes/applies-to-visual-calculations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/includes/applies-to-visual-calculations.md b/query-languages/dax/includes/applies-to-visual-calculations.md index 125800c24..6d22a8a3f 100644 --- a/query-languages/dax/includes/applies-to-visual-calculations.md +++ b/query-languages/dax/includes/applies-to-visual-calculations.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" source="query-languages/dax/media/icons/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="query-languages/dax/media/icons/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="query-languages/dax/media/icons/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="query-languages/dax/media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="/query-languages/dax/media/icons/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="/query-languages/dax/media/icons/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="/query-languages/dax/media/icons/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="/query-languages/dax/media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file From 17a9871f47c17b18bd3fcf04d999dfbc34455b51 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 14:53:54 -0700 Subject: [PATCH 478/934] images links again --- query-languages/dax/includes/applies-to-visual-calculations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/includes/applies-to-visual-calculations.md b/query-languages/dax/includes/applies-to-visual-calculations.md index 6d22a8a3f..4dcb3614a 100644 --- a/query-languages/dax/includes/applies-to-visual-calculations.md +++ b/query-languages/dax/includes/applies-to-visual-calculations.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" source="/query-languages/dax/media/icons/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="/query-languages/dax/media/icons/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="/query-languages/dax/media/icons/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="/query-languages/dax/media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source=../media/icons/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="../media/icons/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="../media/icons/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="../media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file From e764613b176bae893cf29b05177065599b5bfd39 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 14:55:50 -0700 Subject: [PATCH 479/934] images links again --- query-languages/dax/includes/applies-to-visual-calculations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/includes/applies-to-visual-calculations.md b/query-languages/dax/includes/applies-to-visual-calculations.md index 4dcb3614a..81f92b244 100644 --- a/query-languages/dax/includes/applies-to-visual-calculations.md +++ b/query-languages/dax/includes/applies-to-visual-calculations.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" source=../media/icons/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="../media/icons/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="../media/icons/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="../media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="../media/icons/no.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="../media/icons/no.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="../media/icons/no.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="../media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file From a203fcefda389dd871aeb2eac5a2b7195525e4df Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 15:00:09 -0700 Subject: [PATCH 480/934] final links fix? --- ...o-measures-columns-tables-visual-calculations-discouraged.md | 2 +- .../applies-to-measures-columns-tables-visual-calculations.md | 2 +- .../dax/includes/applies-to-measures-columns-tables.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md index 58d1c10a2..112c4b6db 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md @@ -1,4 +1,4 @@ -**Applies to:** :::image type="icon" source="media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/icons/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) +**Applies to:** :::image type="icon" source="../media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="../media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="../media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="../media/icons/discouraged.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) > [!NOTE] > This function is discouraged for use in [visual calculations](/power-bi/transform-model/desktop-visual-calculations-overview) as it likely returns meaningless results. \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md index 313c7cf48..3a89b6c87 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables-visual-calculations.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" source="media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="../media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="../media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="../media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="../media/icons/yes.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file diff --git a/query-languages/dax/includes/applies-to-measures-columns-tables.md b/query-languages/dax/includes/applies-to-measures-columns-tables.md index b8fd8f336..772c3c6da 100644 --- a/query-languages/dax/includes/applies-to-measures-columns-tables.md +++ b/query-languages/dax/includes/applies-to-measures-columns-tables.md @@ -1 +1 @@ -**Applies to:** :::image type="icon" source="media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="media/icons/no.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file +**Applies to:** :::image type="icon" source="../media/icons/yes.png":::[Calculated column](/power-bi/transform-model/desktop-calculations-options#calculated-column-dax) :::image type="icon" source="../media/icons/yes.png":::[Calculated table](/power-bi/transform-model/desktop-calculations-options#calculated-table) :::image type="icon" source="../media/icons/yes.png":::[Measure](/power-bi/transform-model/desktop-calculations-options#measures) :::image type="icon" source="../media/icons/no.png":::[Visual calculation](/power-bi/transform-model/desktop-calculations-options#visual-calculation) \ No newline at end of file From 51a568e668749a56376df74266586ddb04094d48 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 24 Apr 2024 15:40:28 -0700 Subject: [PATCH 481/934] finishing up the applies-to bulk updates --- query-languages/dax/approximate-distinctcount-function-dax.md | 2 ++ query-languages/dax/beta-dist-function-dax.md | 2 ++ query-languages/dax/beta-inv-function-dax.md | 2 ++ query-languages/dax/chisq-dist-function-dax.md | 2 ++ query-languages/dax/chisq-dist-rt-function-dax.md | 2 ++ query-languages/dax/chisq-inv-function-dax.md | 2 ++ query-languages/dax/chisq-inv-rt-function-dax.md | 2 ++ query-languages/dax/confidence-norm-function-dax.md | 2 ++ query-languages/dax/confidence-t-function-dax.md | 2 ++ query-languages/dax/distinct-table-function-dax.md | 2 ++ query-languages/dax/expon-dist-function-dax.md | 2 ++ query-languages/dax/if-eager-function-dax.md | 2 ++ query-languages/dax/iso-ceiling-function-dax.md | 2 ++ query-languages/dax/percentile-exc-function-dax.md | 2 ++ query-languages/dax/percentile-inc-function-dax.md | 2 ++ query-languages/dax/percentilex-exc-function-dax.md | 2 ++ query-languages/dax/percentilex-inc-function-dax.md | 2 ++ query-languages/dax/poisson-dist-function-dax.md | 2 ++ query-languages/dax/rank-eq-function-dax.md | 2 ++ query-languages/dax/stdev-p-function-dax.md | 2 ++ query-languages/dax/stdev-s-function-dax.md | 2 ++ query-languages/dax/stdevx-p-function-dax.md | 2 ++ query-languages/dax/stdevx-s-function-dax.md | 2 ++ query-languages/dax/var-p-function-dax.md | 2 ++ query-languages/dax/var-s-function-dax.md | 2 ++ query-languages/dax/varx-p-function-dax.md | 2 ++ query-languages/dax/varx-s-function-dax.md | 2 ++ 27 files changed, 54 insertions(+) diff --git a/query-languages/dax/approximate-distinctcount-function-dax.md b/query-languages/dax/approximate-distinctcount-function-dax.md index c543b843b..5548f731a 100644 --- a/query-languages/dax/approximate-distinctcount-function-dax.md +++ b/query-languages/dax/approximate-distinctcount-function-dax.md @@ -4,6 +4,8 @@ title: "APPROXIMATEDISTINCTCOUNT function (DAX) | Microsoft Docs" --- # APPROXIMATEDISTINCTCOUNT +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Returns an *estimated* count of unique values in a column. This function invokes a corresponding aggregation operation in the data source, which is optimized for query performance, but with slightly reduced accuracy. This function can be used with the following data sources: Azure SQL, Azure Synapse dedicated SQL pool, BigQuery, Databricks, and Snowflake. This function requires DirectQuery mode. Import mode and dual storage mode are not supported. ## Syntax diff --git a/query-languages/dax/beta-dist-function-dax.md b/query-languages/dax/beta-dist-function-dax.md index 7cbb1cb90..79bdb6fff 100644 --- a/query-languages/dax/beta-dist-function-dax.md +++ b/query-languages/dax/beta-dist-function-dax.md @@ -4,6 +4,8 @@ title: "BETA.DIST function (DAX) | Microsoft Docs" --- # BETA.DIST +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the beta distribution. The beta distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television. ## Syntax diff --git a/query-languages/dax/beta-inv-function-dax.md b/query-languages/dax/beta-inv-function-dax.md index 9ce094224..ec4916854 100644 --- a/query-languages/dax/beta-inv-function-dax.md +++ b/query-languages/dax/beta-inv-function-dax.md @@ -4,6 +4,8 @@ title: "BETA.INV function (DAX) | Microsoft Docs" --- # BETA.INV +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the inverse of the beta cumulative probability density function (BETA.DIST). If probability = BETA.DIST(x,...TRUE), then BETA.INV(probability,...) = x. The beta distribution can be used in project planning to model probable completion times given an expected completion time and variability. diff --git a/query-languages/dax/chisq-dist-function-dax.md b/query-languages/dax/chisq-dist-function-dax.md index d4f7352b0..874515ad3 100644 --- a/query-languages/dax/chisq-dist-function-dax.md +++ b/query-languages/dax/chisq-dist-function-dax.md @@ -4,6 +4,8 @@ title: "CHISQ.DIST function (DAX) | Microsoft Docs" --- # CHISQ.DIST +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the chi-squared distribution. The chi-squared distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television. diff --git a/query-languages/dax/chisq-dist-rt-function-dax.md b/query-languages/dax/chisq-dist-rt-function-dax.md index a5a8ef942..3149f9ceb 100644 --- a/query-languages/dax/chisq-dist-rt-function-dax.md +++ b/query-languages/dax/chisq-dist-rt-function-dax.md @@ -4,6 +4,8 @@ title: "CHISQ.DIST.RT function (DAX) | Microsoft Docs" --- # CHISQ.DIST.RT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the right-tailed probability of the chi-squared distribution. The chi-squared distribution is associated with a chi-squared test. Use the chi-squared test to compare observed and expected values. For example, a genetic experiment might hypothesize that the next generation of plants will exhibit a certain set of colors. By comparing the observed results with the expected ones, you can decide whether your original hypothesis is valid. diff --git a/query-languages/dax/chisq-inv-function-dax.md b/query-languages/dax/chisq-inv-function-dax.md index 55436ab0b..5dc688ad8 100644 --- a/query-languages/dax/chisq-inv-function-dax.md +++ b/query-languages/dax/chisq-inv-function-dax.md @@ -4,6 +4,8 @@ title: "CHISQ.INV function (DAX) | Microsoft Docs" --- # CHISQ.INV +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the inverse of the left-tailed probability of the chi-squared distribution. The chi-squared distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television. diff --git a/query-languages/dax/chisq-inv-rt-function-dax.md b/query-languages/dax/chisq-inv-rt-function-dax.md index eeba8561d..f9f925ed7 100644 --- a/query-languages/dax/chisq-inv-rt-function-dax.md +++ b/query-languages/dax/chisq-inv-rt-function-dax.md @@ -4,6 +4,8 @@ title: "CHISQ.INV.RT function (DAX) | Microsoft Docs" --- # CHISQ.INV.RT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the inverse of the right-tailed probability of the chi-squared distribution. If probability = CHISQ.DIST.RT(x,...), then CHISQ.INV.RT(probability,...) = x. Use this function to compare observed results with expected ones in order to decide whether your original hypothesis is valid. diff --git a/query-languages/dax/confidence-norm-function-dax.md b/query-languages/dax/confidence-norm-function-dax.md index 27d307472..a9a8e8cdf 100644 --- a/query-languages/dax/confidence-norm-function-dax.md +++ b/query-languages/dax/confidence-norm-function-dax.md @@ -4,6 +4,8 @@ title: "CONFIDENCE.NORM function (DAX) | Microsoft Docs" --- # CONFIDENCE.NORM +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + The confidence interval is a range of values. Your sample mean, x, is at the center of this range and the range is x ± CONFIDENCE.NORM. For example, if x is the sample mean of delivery times for products ordered through the mail, x ± CONFIDENCE.NORM is a range of population means. For any population mean, μ0, in this range, the probability of obtaining a sample mean further from μ0 than x is greater than alpha; for any population mean, μ0, not in this range, the probability of obtaining a sample mean further from μ0 than x is less than alpha. In other words, assume that we use x, standard_dev, and size to construct a two-tailed test at significance level alpha of the hypothesis that the population mean is μ0. Then we will not reject that hypothesis if μ0 is in the confidence interval and will reject that hypothesis if μ0 is not in the confidence interval. The confidence interval does not allow us to infer that there is probability 1 – alpha that our next package will take a delivery time that is in the confidence interval. ## Syntax diff --git a/query-languages/dax/confidence-t-function-dax.md b/query-languages/dax/confidence-t-function-dax.md index 13e2bbe38..8c182bf9f 100644 --- a/query-languages/dax/confidence-t-function-dax.md +++ b/query-languages/dax/confidence-t-function-dax.md @@ -4,6 +4,8 @@ title: "CONFIDENCE.T function (DAX) | Microsoft Docs" --- # CONFIDENCE.T +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the confidence interval for a population mean, using a Student's t distribution. ## Syntax diff --git a/query-languages/dax/distinct-table-function-dax.md b/query-languages/dax/distinct-table-function-dax.md index 01fa8f5a3..3d6a6ee1f 100644 --- a/query-languages/dax/distinct-table-function-dax.md +++ b/query-languages/dax/distinct-table-function-dax.md @@ -4,6 +4,8 @@ title: "DISTINCT (table) function (DAX) | Microsoft Docs" --- # DISTINCT (table) +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns a table by removing duplicate rows from another table or expression. ## Syntax diff --git a/query-languages/dax/expon-dist-function-dax.md b/query-languages/dax/expon-dist-function-dax.md index c0dcdc963..d4dabf1c4 100644 --- a/query-languages/dax/expon-dist-function-dax.md +++ b/query-languages/dax/expon-dist-function-dax.md @@ -4,6 +4,8 @@ title: "EXPON.DIST function (DAX) | Microsoft Docs" --- # EXPON.DIST +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the exponential distribution. Use EXPON.DIST to model the time between events, such as how long an automated bank teller takes to deliver cash. For example, you can use EXPON.DIST to determine the probability that the process takes at most 1 minute. ## Syntax diff --git a/query-languages/dax/if-eager-function-dax.md b/query-languages/dax/if-eager-function-dax.md index 9be25ce4b..db9ff8fd8 100644 --- a/query-languages/dax/if-eager-function-dax.md +++ b/query-languages/dax/if-eager-function-dax.md @@ -4,6 +4,8 @@ title: "IF.EAGER function (DAX) | Microsoft Docs" --- # IF.EAGER +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Checks a condition, and returns one value when TRUE, otherwise it returns a second value. It uses an *eager* execution plan which always executes the branch expressions regardless of the condition expression. ## Syntax diff --git a/query-languages/dax/iso-ceiling-function-dax.md b/query-languages/dax/iso-ceiling-function-dax.md index f01bd5862..cb906cff3 100644 --- a/query-languages/dax/iso-ceiling-function-dax.md +++ b/query-languages/dax/iso-ceiling-function-dax.md @@ -4,6 +4,8 @@ title: "ISO.CEILING function (DAX) | Microsoft Docs" --- # ISO.CEILING +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Rounds a number up, to the nearest integer or to the nearest multiple of significance. ## Syntax diff --git a/query-languages/dax/percentile-exc-function-dax.md b/query-languages/dax/percentile-exc-function-dax.md index 9f23158db..045affc08 100644 --- a/query-languages/dax/percentile-exc-function-dax.md +++ b/query-languages/dax/percentile-exc-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: PERCENTILE.EXC" title: "PERCENTILE.EXC function (DAX) | Microsoft Docs" --- # PERCENTILE.EXC + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the k-th percentile of values in a range, where k is in the range 0..1, exclusive. diff --git a/query-languages/dax/percentile-inc-function-dax.md b/query-languages/dax/percentile-inc-function-dax.md index fd2eb6ffe..e3b64cdf0 100644 --- a/query-languages/dax/percentile-inc-function-dax.md +++ b/query-languages/dax/percentile-inc-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: PERCENTILE.INC" title: "PERCENTILE.INC function (DAX) | Microsoft Docs" --- # PERCENTILE.INC + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the k-th percentile of values in a range, where k is in the range 0..1, inclusive. diff --git a/query-languages/dax/percentilex-exc-function-dax.md b/query-languages/dax/percentilex-exc-function-dax.md index 6588a1149..a4e2b6090 100644 --- a/query-languages/dax/percentilex-exc-function-dax.md +++ b/query-languages/dax/percentilex-exc-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: PERCENTILEX.EXC" title: "PERCENTILEX.EXC function (DAX) | Microsoft Docs" --- # PERCENTILEX.EXC + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the percentile number of an expression evaluated for each row in a table. diff --git a/query-languages/dax/percentilex-inc-function-dax.md b/query-languages/dax/percentilex-inc-function-dax.md index f66fec6e0..3a6739ec7 100644 --- a/query-languages/dax/percentilex-inc-function-dax.md +++ b/query-languages/dax/percentilex-inc-function-dax.md @@ -3,6 +3,8 @@ description: "Learn more about: PERCENTILEX.INC" title: "PERCENTILEX.INC function (DAX) | Microsoft Docs" --- # PERCENTILEX.INC + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the percentile number of an expression evaluated for each row in a table. diff --git a/query-languages/dax/poisson-dist-function-dax.md b/query-languages/dax/poisson-dist-function-dax.md index 151954bbd..e77567397 100644 --- a/query-languages/dax/poisson-dist-function-dax.md +++ b/query-languages/dax/poisson-dist-function-dax.md @@ -4,6 +4,8 @@ title: "POISSON.DIST function (DAX) | Microsoft Docs" --- # POISSON.DIST +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the Poisson distribution. A common application of the Poisson distribution is predicting the number of events over a specific time, such as the number of cars arriving at a toll plaza in 1 minute. ## Syntax diff --git a/query-languages/dax/rank-eq-function-dax.md b/query-languages/dax/rank-eq-function-dax.md index 67d7d4506..8bac76034 100644 --- a/query-languages/dax/rank-eq-function-dax.md +++ b/query-languages/dax/rank-eq-function-dax.md @@ -4,6 +4,8 @@ title: "RANK.EQ function (DAX) | Microsoft Docs" --- # RANK.EQ +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the ranking of a number in a list of numbers. ## Syntax diff --git a/query-languages/dax/stdev-p-function-dax.md b/query-languages/dax/stdev-p-function-dax.md index 09c0064ad..55ee2d57b 100644 --- a/query-languages/dax/stdev-p-function-dax.md +++ b/query-languages/dax/stdev-p-function-dax.md @@ -4,6 +4,8 @@ title: "STDEV.P function (DAX) | Microsoft Docs" --- # STDEV.P +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the standard deviation of the entire population. ## Syntax diff --git a/query-languages/dax/stdev-s-function-dax.md b/query-languages/dax/stdev-s-function-dax.md index a2d4da511..3d30892e9 100644 --- a/query-languages/dax/stdev-s-function-dax.md +++ b/query-languages/dax/stdev-s-function-dax.md @@ -4,6 +4,8 @@ title: "STDEV.S function (DAX) | Microsoft Docs" --- # STDEV.S +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the standard deviation of a sample population. ## Syntax diff --git a/query-languages/dax/stdevx-p-function-dax.md b/query-languages/dax/stdevx-p-function-dax.md index 5e3cf1c41..a9b70db0c 100644 --- a/query-languages/dax/stdevx-p-function-dax.md +++ b/query-languages/dax/stdevx-p-function-dax.md @@ -4,6 +4,8 @@ title: "STDEVX.P function (DAX) | Microsoft Docs" --- # STDEVX.P +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the standard deviation of the entire population. ## Syntax diff --git a/query-languages/dax/stdevx-s-function-dax.md b/query-languages/dax/stdevx-s-function-dax.md index f80f0d1da..186ea672b 100644 --- a/query-languages/dax/stdevx-s-function-dax.md +++ b/query-languages/dax/stdevx-s-function-dax.md @@ -4,6 +4,8 @@ title: "STDEVX.S function (DAX) | Microsoft Docs" --- # STDEVX.S +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the standard deviation of a sample population. ## Syntax diff --git a/query-languages/dax/var-p-function-dax.md b/query-languages/dax/var-p-function-dax.md index 2993021ef..e54d41fa1 100644 --- a/query-languages/dax/var-p-function-dax.md +++ b/query-languages/dax/var-p-function-dax.md @@ -4,6 +4,8 @@ title: "VAR.P function (DAX) | Microsoft Docs" --- # VAR.P +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the variance of the entire population. ## Syntax diff --git a/query-languages/dax/var-s-function-dax.md b/query-languages/dax/var-s-function-dax.md index cbe517e53..390ff20d5 100644 --- a/query-languages/dax/var-s-function-dax.md +++ b/query-languages/dax/var-s-function-dax.md @@ -4,6 +4,8 @@ title: "VAR.S function (DAX) | Microsoft Docs" --- # VAR.S +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the variance of a sample population. ## Syntax diff --git a/query-languages/dax/varx-p-function-dax.md b/query-languages/dax/varx-p-function-dax.md index 076ffb44a..77be3f8f9 100644 --- a/query-languages/dax/varx-p-function-dax.md +++ b/query-languages/dax/varx-p-function-dax.md @@ -4,6 +4,8 @@ title: "VARX.P function (DAX) | Microsoft Docs" --- # VARX.P +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the variance of the entire population. ## Syntax diff --git a/query-languages/dax/varx-s-function-dax.md b/query-languages/dax/varx-s-function-dax.md index e8b98a3be..6d9960fc7 100644 --- a/query-languages/dax/varx-s-function-dax.md +++ b/query-languages/dax/varx-s-function-dax.md @@ -4,6 +4,8 @@ title: "VARX.S function (DAX) | Microsoft Docs" --- # VARX.S +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the variance of a sample population. ## Syntax From 14fcbc41774c9c233cd6232d0ccc0455b1faa933 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Thu, 25 Apr 2024 19:19:48 -0700 Subject: [PATCH 482/934] Fix doc --- query-languages/dax/lookup-function-dax.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index db70e9b84..64011f8b6 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -9,19 +9,20 @@ Used in visual calculations only. Returns a value from a cell in a visual matrix ## Syntax ```dax -LOOKUP([, [, [, …]]]) +LOOKUP(|, , |[, , |]...) ``` ### Parameters |Term|Definition| |--------|--------------| -|column| Only column reference is allowed, For example [Sales] is allowed, but [Sales] – [Cost] is not, nor is SUM([Sales]) | -|filter1, filter2,…|(Optional) Filter has to be an equality filter. For example [Year]=2019 or [Year]=MAX([Year]).| +|scalar/colref| The expression or value from column that we wants to get. | +|colref|(Optional) The column to be filtered. For example, when we want [Year] = 2019, we put [Year] here.| +|scalar/colref|(Optional) The value to filter. In above example, put 2019 here.| ## Return value -The value of **column** at the row after filters are applied. +The value of **column** or **expression** after filters are applied. If there isn't a match, an error is returned. @@ -54,7 +55,7 @@ table t = _Core densify "isDensified" column t[ccLookup] = -lookup([SumOfInternetSales], [Year] = 2006, [MonthNumberOfYear] = 1, [Month] = "January") +lookup([SumOfInternetSales], [Year], 2006, [MonthNumberOfYear], 1, [Month], "January") evaluate selectcolumns( filter(t, not isblank([SumOfInternetSales])), From 648843cfbebd7f07c5c73b6bdc10278bde170043 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 29 Apr 2024 16:02:03 -0700 Subject: [PATCH 483/934] Fixed broken Table.ExpandListColumn examples --- query-languages/m/table-expandlistcolumn.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index b2c2e38dd..4a4adb046 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -27,6 +27,16 @@ Table.ExpandListColumn( ) ``` +**Output** + +```powerquery-m +Table.FromRecords({ + [Name = "Bob", Discount = 0.15], + [Name = "Jim", Discount = 0.15], + [Name = "Paul", Discount = 0.15] +}) +``` + ## Example 2 Split the nested table column [Components]. @@ -44,11 +54,12 @@ Table.ExpandListColumn( "Components" ) ``` + **Output** ```powerquery-m Table.FromRecords({ - [Part = "Tool", [Name = "Thingamajig", Quantity = 2], - [Part = "Tool", [Name = "Widget", Quantity = 3] + [Part = "Tool"], [Name = "Thingamajig", Quantity = 2], + [Part = "Tool"], [Name = "Widget", Quantity = 3] }) ``` From 30d1f951c151ac2d5ba3d9dafea07cc595a0a561 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 30 Apr 2024 09:07:26 -0400 Subject: [PATCH 484/934] Type.Is Nullable Type Rule Clarification --- query-languages/m/type-is.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index d78b22efb..7c9a38270 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -12,7 +12,9 @@ Type.Is(type1 as type, type2 as type) as logical ## About -Determines if a value of `type1` is always compatible with `type2`. +Determines if a value of `type1` is always compatible with `type2`. + +Parameter `type2` is expected to be a nullable primitive type. When this requirement is not met, this function's behavior is undefined and so should not be relied on. ## Example 1 From 2edab2be429187d96a84496a0333778a89dcbfa2 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 30 Apr 2024 08:10:59 -0700 Subject: [PATCH 485/934] Made changes per review --- query-languages/m/table-expandlistcolumn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index 4a4adb046..654f69ef9 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -59,7 +59,7 @@ Table.ExpandListColumn( ```powerquery-m Table.FromRecords({ - [Part = "Tool"], [Name = "Thingamajig", Quantity = 2], - [Part = "Tool"], [Name = "Widget", Quantity = 3] + [Part = "Tool", Components = [Name = "Thingamajig", Quantity = 2]], + [Part = "Tool", Components = [Name = "Widget", Quantity = 3]] }) ``` From 1a1d30e514e7207ac476ef40edeec7141a2eba52 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 3 May 2024 16:39:05 -0700 Subject: [PATCH 486/934] Address review comments. --- query-languages/dax/lookup-function-dax.md | 44 ++++++---------------- query-languages/dax/new-dax-functions.md | 2 +- 2 files changed, 13 insertions(+), 33 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 64011f8b6..ee5d2d51e 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -4,7 +4,9 @@ title: "LOOKUP function (DAX) | Microsoft Docs" --- # LOOKUP -Used in visual calculations only. Returns a value from a cell in a visual matrix by using absolute navigation. You can specify a value as a filter for any axis on the visual matrix. Anything not specified is inferred from the context. If Lookup can’t result in single value, an error is returned. +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + +Returns a value from a cell in a visual matrix by absolute navigation. You can specify a value as a filter for any axis on the visual matrix. Anything not specified is inferred from the context. If Lookup can’t result in single value, an error is returned. ## Syntax @@ -17,8 +19,8 @@ LOOKUP(|, , |[, , | Date: Fri, 3 May 2024 16:39:25 -0700 Subject: [PATCH 487/934] Address review comments. --- .../media/dax-queries/dax-visualcalc-lookup.png | Bin 0 -> 17119 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-lookup.png diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-lookup.png b/query-languages/dax/media/dax-queries/dax-visualcalc-lookup.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1747d5f542dfd83255f5eebcdf7d31cf336c6f GIT binary patch literal 17119 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 literal 0 HcmV?d00001 From 9316b572ec687cf1250cda35a29722fb397676f8 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 3 May 2024 16:46:28 -0700 Subject: [PATCH 488/934] Update picture. --- .../dax-queries/dax-visualcalc-lookup.png | Bin 17119 -> 13260 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-lookup.png b/query-languages/dax/media/dax-queries/dax-visualcalc-lookup.png index 5d1747d5f542dfd83255f5eebcdf7d31cf336c6f..d7ab8c8b54f0f7c771075143bd13ef227bc04ef5 100644 GIT binary patch literal 13260 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 C(9sM4 literal 17119 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 From 3138d4c48d0cb9ac551beadcbe4375df6490bfb6 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 7 May 2024 10:42:23 -0700 Subject: [PATCH 489/934] Updating VC docs: clarify expression vs column parameters --- query-languages/dax/first-function-dax.md | 8 ++++---- query-languages/dax/last-function-dax.md | 8 ++++---- query-languages/dax/movingaverage-function-dax.md | 4 ++-- query-languages/dax/next-function-dax.md | 8 ++++---- query-languages/dax/previous-function-dax.md | 8 ++++---- query-languages/dax/runningsum-function-dax.md | 6 +++--- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 3043d696d..c32df00ca 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -7,19 +7,19 @@ title: "FIRST function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Used in visual calculations only. Retrieves a value in the visual matrix from the first row of an axis. +Used in visual calculations only. Retrieves a value in the visual matrix from the first element of an axis. ## Syntax ```dax -FIRST ( [, ][, ][, reset] ) +FIRST ( [, ][, ][, reset] ) ``` ### Parameters |Term|Definition| |--------|--------------| -|expression| The expression to be evaluated.| +|column|The column to be retrieved.| |axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| @@ -27,7 +27,7 @@ FIRST ( [, ][, ][, reset] ) ## Return value -The value of \ evaluated from the first row of the axis. +The value of \ from the first element of the axis. ## Remarks diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 932f36d78..056e21a9d 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -7,19 +7,19 @@ title: "LAST function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis. +Used in visual calculations only. Retrieves a value in the visual matrix from the last element of an axis. ## Syntax ```dax -LAST ( [, ][, ][, reset] ) +LAST ( [, ][, ][, reset] ) ``` ### Parameters |Term|Definition| |--------|--------------| -|expression| The expression to be evaluated.| +|column|The column to be retrieved.| |axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| @@ -27,7 +27,7 @@ LAST ( [, ][, ][, reset] ) ## Return value -The value of \ evaluated from the last row of the axis. +The value of \ from the last element of the axis. ## Remarks diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 9e2436e7b..81fe5eac3 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -27,7 +27,7 @@ MOVINGAVERAGE ( , [, ][, ][, ] |Term|Definition| |--------|--------------| -|column|The column that provides the value for each row.| +|column|The column that provides the value for each element.| |windowSize|The number of rows to include in the calculation. Must be a constant value.| |includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |axis|(Optional) An axis reference, the direction along which the moving average will be calculated.| @@ -36,7 +36,7 @@ MOVINGAVERAGE ( , [, ][, ][, ] ## Return value -A scalar value, the moving average at the current row. +A scalar value, the moving average at the current element of the axis. ## Remarks diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 95fd81ccb..193bf4d85 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -7,19 +7,19 @@ title: "NEXT function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix. +Used in visual calculations only. Retrieves a value in the next element of an axis in the visual matrix. ## Syntax ```dax -NEXT ( [, ][, ][, ][, reset] ) +NEXT ( [, ][, ][, ][, reset] ) ``` ### Parameters |Term|Definition| |--------|--------------| -|expression| The expression to be evaluated.| +|column|The column to be retrieved.| |steps| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| |axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| @@ -28,7 +28,7 @@ NEXT ( [, ][, ][, ][, reset] ) ## Return value -The value of \ evaluated from the next row of the axis. +The value of \ from the next element of the axis. ## Remarks diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index 92e1d71bc..f5ae11141 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -7,19 +7,19 @@ title: "PREVIOUS function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Used in visual calculations only. Retrieves a value in the previous row of an axis in the visual matrix. +Used in visual calculations only. Retrieves a value in the previous element of an axis in the visual matrix. ## Syntax ```dax -PREVIOUS ( [, ][, ][, ][, reset] ) +PREVIOUS ( [, ][, ][, ][, reset] ) ``` ### Parameters |Term|Definition| |--------|--------------| -|expression| The expression to be evaluated.| +|column|The column to be retrieved.| |steps| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, **1** is used (the exactly previous row).| |axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| @@ -28,7 +28,7 @@ PREVIOUS ( [, ][, ][, ][, reset] ) ## Return value -The value of \ evaluated from the previous row of the axis. +The value of \ from the previous element of the axis. ## Remarks diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index e04676ec3..12e937589 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -15,7 +15,7 @@ recommendations: false [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns a running sum calculated along the given axis of the visual matrix. That is, the sum of the given column calculated over all rows up to the current row. +Returns a running sum calculated along the given axis of the visual matrix. That is, the sum of the given column calculated over all elements up to the current element of an axis. ## Syntax @@ -27,14 +27,14 @@ RUNNINGSUM ( [, ][, ][, ] ) |Term|Definition| |--------|--------------| -|column|The column that provides the value for each row.| +|column|The column that provides the value for each element.| |axis|(Optional) An axis reference, the direction along which the running sum will be calculated.| |blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| |reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value -A scalar value, the running sum up to the current row. +A scalar value, the running sum up to the current element of the axis. ## Remarks From 7d4e13283d1ae90dc2c3239f66f396e7bed6aa2e Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Tue, 7 May 2024 10:47:51 -0700 Subject: [PATCH 490/934] Fix. --- query-languages/dax/lookup-function-dax.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index ee5d2d51e..e22d22f34 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -43,3 +43,10 @@ Lookup Example 2 = LOOKUP([Sales Amount], [Category], "Bikes") The screenshot below shows the matrix with the three visual calculations. ![DAX visual calculation](media/dax-queries/dax-visualcalc-lookup.png) + +## Related content + +[FIRST](first-function-dax.md) +[LAST](last-function-dax.md) +[PREVIOUS](previous-function-dax.md) +[NEXT](next-function-dax.md) From 52d39c355ce31b911ff44bfb8b237c656a57b065 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Tue, 7 May 2024 10:49:30 -0700 Subject: [PATCH 491/934] Fix formatting --- query-languages/dax/lookup-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index e22d22f34..9dc2dbe7d 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -46,7 +46,7 @@ The screenshot below shows the matrix with the three visual calculations. ## Related content -[FIRST](first-function-dax.md) +[FIRST](first-function-dax.md) [LAST](last-function-dax.md) [PREVIOUS](previous-function-dax.md) [NEXT](next-function-dax.md) From dd87d014fa2d6521b250f713517107ee5534d9cf Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Tue, 7 May 2024 11:47:11 -0700 Subject: [PATCH 492/934] Fix doc to use expression for first argument --- query-languages/dax/lookup-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 9dc2dbe7d..5c08daaf6 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -11,14 +11,14 @@ Returns a value from a cell in a visual matrix by absolute navigation. You can s ## Syntax ```dax -LOOKUP(|, , |[, , |]...) +LOOKUP(, , |[, , |]...) ``` ### Parameters |Term|Definition| |--------|--------------| -|scalar/colref| The expression or value from column that we wants to get. | +|expression| The expression or value from column that we wants to get. | |colref|(Optional) The column to be filtered. For example, when we want [Category] = "Bikes", we put [Category] here.| |scalar/colref|(Optional) The value to filter. In above example, put "Bikes" here.| From 7a4459fb96e2383804a3480f103aa902ade73685 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Tue, 7 May 2024 11:50:12 -0700 Subject: [PATCH 493/934] Fix the doc more --- query-languages/dax/lookup-function-dax.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 5c08daaf6..da0bbcf14 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -18,13 +18,13 @@ LOOKUP(, , |[, , |].. |Term|Definition| |--------|--------------| -|expression| The expression or value from column that we wants to get. | +|expression| The expression that we wants to get. | |colref|(Optional) The column to be filtered. For example, when we want [Category] = "Bikes", we put [Category] here.| |scalar/colref|(Optional) The value to filter. In above example, put "Bikes" here.| ## Return value -The value of **column** or **expression** after filters are applied. +The value of **expression** after filters are applied. If there isn't a match, an error is returned. @@ -33,7 +33,7 @@ If multiple rows match the filters, an error is returned. ## Example 1 In this example, LOOKUP retrieves the sum of sale for filters: [Category] = "Bikes". -The first argument could be a column or an expression. +The first argument could be a column or a scalar expression. ```dax Lookup Example 1 = LOOKUP(SUM([Sales Amount]), [Category], "Bikes") From 72fdaedf5af98011ecf69762062667570fa59374 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Tue, 7 May 2024 13:33:35 -0700 Subject: [PATCH 494/934] Fix --- query-languages/dax/lookup-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index da0bbcf14..da810dff0 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -11,7 +11,7 @@ Returns a value from a cell in a visual matrix by absolute navigation. You can s ## Syntax ```dax -LOOKUP(, , |[, , |]...) +LOOKUP(, , [, , ]...) ``` ### Parameters @@ -20,7 +20,7 @@ LOOKUP(, , |[, , |].. |--------|--------------| |expression| The expression that we wants to get. | |colref|(Optional) The column to be filtered. For example, when we want [Category] = "Bikes", we put [Category] here.| -|scalar/colref|(Optional) The value to filter. In above example, put "Bikes" here.| +|expression|(Optional) The value to filter. In above example, put "Bikes" here.| ## Return value From 212c44c7856d761291b77b8f02fc45fdb77114dd Mon Sep 17 00:00:00 2001 From: pohuan <104555661+pohuan@users.noreply.github.com> Date: Wed, 15 May 2024 13:47:39 -0700 Subject: [PATCH 495/934] Update lookup-function-dax.md --- query-languages/dax/lookup-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index da810dff0..ae997baa1 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -40,7 +40,7 @@ Lookup Example 1 = LOOKUP(SUM([Sales Amount]), [Category], "Bikes") Lookup Example 2 = LOOKUP([Sales Amount], [Category], "Bikes") ``` -The screenshot below shows the matrix with the three visual calculations. +The screenshot below shows the matrix with two visual calculations. ![DAX visual calculation](media/dax-queries/dax-visualcalc-lookup.png) From 77b37735caf064b7a362f0f3380d3f36f9974e8b Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 15 May 2024 14:29:48 -0700 Subject: [PATCH 496/934] adding applies to header to some functions that were missing. Also updating TOC for when function page names have changed. --- ...ays-dax.md => networkdays-function-dax.md} | 2 ++ ...-dist-dax.md => norm-dist-function-dax.md} | 2 ++ ...rm-inv-dax.md => norm-inv-function-dax.md} | 2 ++ ...ist-dax.md => norm-s-dist-function-dax.md} | 2 ++ ...-inv-dax.md => norm-s-inv-function-dax.md} | 2 ++ ...st-2t-dax.md => t-dist-2t-function-dax.md} | 2 ++ .../{t-dist-dax.md => t-dist-function-dax.md} | 2 ++ ...st-rt-dax.md => t-dist-rt-function-dax.md} | 2 ++ ...inv-2t-dax.md => t-inv-2t-function-dax.md} | 2 ++ .../{t-inv-dax.md => t-inv-function-dax.md} | 2 ++ query-languages/dax/toc.yml | 20 +++++++++---------- 11 files changed, 30 insertions(+), 10 deletions(-) rename query-languages/dax/{networkdays-dax.md => networkdays-function-dax.md} (95%) rename query-languages/dax/{norm-dist-dax.md => norm-dist-function-dax.md} (89%) rename query-languages/dax/{norm-inv-dax.md => norm-inv-function-dax.md} (88%) rename query-languages/dax/{norm-s-dist-dax.md => norm-s-dist-function-dax.md} (89%) rename query-languages/dax/{norm-s-inv-dax.md => norm-s-inv-function-dax.md} (87%) rename query-languages/dax/{t-dist-2t-dax.md => t-dist-2t-function-dax.md} (86%) rename query-languages/dax/{t-dist-dax.md => t-dist-function-dax.md} (88%) rename query-languages/dax/{t-dist-rt-dax.md => t-dist-rt-function-dax.md} (86%) rename query-languages/dax/{t-inv-2t-dax.md => t-inv-2t-function-dax.md} (87%) rename query-languages/dax/{t-inv-dax.md => t-inv-function-dax.md} (87%) diff --git a/query-languages/dax/networkdays-dax.md b/query-languages/dax/networkdays-function-dax.md similarity index 95% rename from query-languages/dax/networkdays-dax.md rename to query-languages/dax/networkdays-function-dax.md index a50cdc3da..9ab757194 100644 --- a/query-languages/dax/networkdays-dax.md +++ b/query-languages/dax/networkdays-function-dax.md @@ -5,6 +5,8 @@ title: "NETWORKDAYS function (DAX) | Microsoft Docs" # NETWORKDAYS +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the number of whole workdays between two dates (inclusive). Parameters specify which and how many days are weekend days. Weekend days and days specified as holidays are not considered as workdays. ## Syntax diff --git a/query-languages/dax/norm-dist-dax.md b/query-languages/dax/norm-dist-function-dax.md similarity index 89% rename from query-languages/dax/norm-dist-dax.md rename to query-languages/dax/norm-dist-function-dax.md index 86f2e1421..9ad7b62a3 100644 --- a/query-languages/dax/norm-dist-dax.md +++ b/query-languages/dax/norm-dist-function-dax.md @@ -4,6 +4,8 @@ title: "NORM.DIST function (DAX) | Microsoft Docs" --- # NORM.DIST +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the normal distribution for the specified mean and standard deviation. ## Syntax diff --git a/query-languages/dax/norm-inv-dax.md b/query-languages/dax/norm-inv-function-dax.md similarity index 88% rename from query-languages/dax/norm-inv-dax.md rename to query-languages/dax/norm-inv-function-dax.md index 1f7483b89..5d75ea57f 100644 --- a/query-languages/dax/norm-inv-dax.md +++ b/query-languages/dax/norm-inv-function-dax.md @@ -4,6 +4,8 @@ title: "NORM.INV function (DAX) | Microsoft Docs" --- # NORM.INV +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + The inverse of the normal cumulative distribution for the specified mean and standard deviation. diff --git a/query-languages/dax/norm-s-dist-dax.md b/query-languages/dax/norm-s-dist-function-dax.md similarity index 89% rename from query-languages/dax/norm-s-dist-dax.md rename to query-languages/dax/norm-s-dist-function-dax.md index cea052387..9614b38d4 100644 --- a/query-languages/dax/norm-s-dist-dax.md +++ b/query-languages/dax/norm-s-dist-function-dax.md @@ -4,6 +4,8 @@ title: "NORM.S.DIST function (DAX) | Microsoft Docs" --- # NORM.S.DIST +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the standard normal distribution (has a mean of zero and a standard deviation of one). ## Syntax diff --git a/query-languages/dax/norm-s-inv-dax.md b/query-languages/dax/norm-s-inv-function-dax.md similarity index 87% rename from query-languages/dax/norm-s-inv-dax.md rename to query-languages/dax/norm-s-inv-function-dax.md index 245d39d51..a710fd3b8 100644 --- a/query-languages/dax/norm-s-inv-dax.md +++ b/query-languages/dax/norm-s-inv-function-dax.md @@ -4,6 +4,8 @@ title: "NORM.S.INV function (DAX) | Microsoft Docs" --- # NORM.S.INV +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the inverse of the standard normal cumulative distribution. The distribution has a mean of zero and a standard deviation of one. ## Syntax diff --git a/query-languages/dax/t-dist-2t-dax.md b/query-languages/dax/t-dist-2t-function-dax.md similarity index 86% rename from query-languages/dax/t-dist-2t-dax.md rename to query-languages/dax/t-dist-2t-function-dax.md index c7faa369a..a17022b71 100644 --- a/query-languages/dax/t-dist-2t-dax.md +++ b/query-languages/dax/t-dist-2t-function-dax.md @@ -4,6 +4,8 @@ title: "T.DIST.2T function (DAX) | Microsoft Docs" --- # T.DIST.2T +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the two-tailed Student's t-distribution. ## Syntax diff --git a/query-languages/dax/t-dist-dax.md b/query-languages/dax/t-dist-function-dax.md similarity index 88% rename from query-languages/dax/t-dist-dax.md rename to query-languages/dax/t-dist-function-dax.md index 5585f923d..20867877c 100644 --- a/query-languages/dax/t-dist-dax.md +++ b/query-languages/dax/t-dist-function-dax.md @@ -4,6 +4,8 @@ title: "T.DIST function (DAX) | Microsoft Docs" --- # T.DIST +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the Student's left-tailed t-distribution. ## Syntax diff --git a/query-languages/dax/t-dist-rt-dax.md b/query-languages/dax/t-dist-rt-function-dax.md similarity index 86% rename from query-languages/dax/t-dist-rt-dax.md rename to query-languages/dax/t-dist-rt-function-dax.md index 6e343de4c..e0701b9c6 100644 --- a/query-languages/dax/t-dist-rt-dax.md +++ b/query-languages/dax/t-dist-rt-function-dax.md @@ -4,6 +4,8 @@ title: "T.DIST.RT function (DAX) | Microsoft Docs" --- # T.DIST.RT +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the right-tailed Student's t-distribution. ## Syntax diff --git a/query-languages/dax/t-inv-2t-dax.md b/query-languages/dax/t-inv-2t-function-dax.md similarity index 87% rename from query-languages/dax/t-inv-2t-dax.md rename to query-languages/dax/t-inv-2t-function-dax.md index 930d16d49..816b0fd72 100644 --- a/query-languages/dax/t-inv-2t-dax.md +++ b/query-languages/dax/t-inv-2t-function-dax.md @@ -4,6 +4,8 @@ title: "T.INV.2T function (DAX) | Microsoft Docs" --- # T.INV.2T +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the two-tailed inverse of the Student's t-distribution. ## Syntax diff --git a/query-languages/dax/t-inv-dax.md b/query-languages/dax/t-inv-function-dax.md similarity index 87% rename from query-languages/dax/t-inv-dax.md rename to query-languages/dax/t-inv-function-dax.md index dde151510..1f471a746 100644 --- a/query-languages/dax/t-inv-dax.md +++ b/query-languages/dax/t-inv-function-dax.md @@ -4,6 +4,8 @@ title: "T.INV function (DAX) | Microsoft Docs" --- # T.INV +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + Returns the left-tailed inverse of the Student's t-distribution. ## Syntax diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 84c7b46c2..17b325cde 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -116,7 +116,7 @@ - name: MONTH href: month-function-dax.md - name: NETWORKDAYS - href: networkdays-dax.md + href: networkdays-function-dax.md - name: NOW href: now-function-dax.md - name: QUARTER @@ -586,13 +586,13 @@ - name: MEDIANX href: medianx-function-dax.md - name: NORM.DIST - href: norm-dist-dax.md + href: norm-dist-function-dax.md - name: NORM.INV - href: norm-inv-dax.md + href: norm-inv-function-dax.md - name: NORM.S.DIST - href: norm-s-dist-dax.md + href: norm-s-dist-function-dax.md - name: NORM.S.INV - href: norm-s-inv-dax.md + href: norm-s-inv-function-dax.md - name: PERCENTILE.EXC href: percentile-exc-function-dax.md - name: PERCENTILE.INC @@ -620,15 +620,15 @@ - name: STDEVX.P href: stdevx-p-function-dax.md - name: T.DIST - href: t-dist-dax.md + href: t-dist-function-dax.md - name: T.DIST.2T - href: t-dist-2t-dax.md + href: t-dist-2t-function-dax.md - name: T.DIST.RT - href: t-dist-rt-dax.md + href: t-dist-rt-function-dax.md - name: T.INV - href: t-inv-dax.md + href: t-inv-function-dax.md - name: T.INV.2T - href: t-inv-2t-dax.md + href: t-inv-2t-function-dax.md - name: VAR.S href: var-s-function-dax.md - name: VAR.P From 5606902b0ee0e40baf4e644b0a5f9a3646f2458e Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 15 May 2024 14:45:32 -0700 Subject: [PATCH 497/934] adding redirects and fixing broken links --- .../dax/date-and-time-functions-dax.md | 2 +- query-languages/dax/norm-dist-function-dax.md | 6 +++--- query-languages/dax/norm-inv-function-dax.md | 6 +++--- .../dax/norm-s-dist-function-dax.md | 6 +++--- query-languages/dax/norm-s-inv-function-dax.md | 6 +++--- .../dax/statistical-functions-dax.md | 18 +++++++++--------- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/query-languages/dax/date-and-time-functions-dax.md b/query-languages/dax/date-and-time-functions-dax.md index 89f461b17..10d32ecaa 100644 --- a/query-languages/dax/date-and-time-functions-dax.md +++ b/query-languages/dax/date-and-time-functions-dax.md @@ -21,7 +21,7 @@ These functions help you create calculations based on dates and time. Many of th |[HOUR](hour-function-dax.md) | Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.). | |[MINUTE](minute-function-dax.md) | Returns the minute as a number from 0 to 59, given a date and time value. | |[MONTH](month-function-dax.md) | Returns the month as a number from 1 (January) to 12 (December). | -|[NETWORKDAYS](networkdays-dax.md)| Returns the number of whole workdays between two dates. | +|[NETWORKDAYS](networkdays-function-dax.md)| Returns the number of whole workdays between two dates. | |[NOW](now-function-dax.md) | Returns the current date and time in datetime format. | |[QUARTER](quarter-function-dax.md) | Returns the quarter as a number from 1 to 4. | |[SECOND](second-function-dax.md) | Returns the seconds of a time value, as a number from 0 to 59. | diff --git a/query-languages/dax/norm-dist-function-dax.md b/query-languages/dax/norm-dist-function-dax.md index 9ad7b62a3..9db31c585 100644 --- a/query-languages/dax/norm-dist-function-dax.md +++ b/query-languages/dax/norm-dist-function-dax.md @@ -46,6 +46,6 @@ Returns ## Related content -[NORM.S.DIST function](norm-s-dist-dax.md) -[NORM.INV function](norm-inv-dax.md) -[NORM.S.INV](norm-s-inv-dax.md) +[NORM.S.DIST function](norm-s-dist-function-dax.md) +[NORM.INV function](norm-inv-function-dax.md) +[NORM.S.INV](norm-s-inv-function-dax.md) diff --git a/query-languages/dax/norm-inv-function-dax.md b/query-languages/dax/norm-inv-function-dax.md index 5d75ea57f..3ad42b1f9 100644 --- a/query-languages/dax/norm-inv-function-dax.md +++ b/query-languages/dax/norm-inv-function-dax.md @@ -45,6 +45,6 @@ Returns ## Related content -[NORM.S.INV](norm-s-inv-dax.md) -[NORM.S.DIST function](norm-s-dist-dax.md) -[NORM.DIST function](norm-dist-dax.md) +[NORM.S.INV](norm-s-inv-function-dax.md) +[NORM.S.DIST function](norm-s-dist-function-dax.md) +[NORM.DIST function](norm-dist-function-dax.md) diff --git a/query-languages/dax/norm-s-dist-function-dax.md b/query-languages/dax/norm-s-dist-function-dax.md index 9614b38d4..9b921617b 100644 --- a/query-languages/dax/norm-s-dist-function-dax.md +++ b/query-languages/dax/norm-s-dist-function-dax.md @@ -43,6 +43,6 @@ Returns ## Related content -[NORM.INV function](norm-inv-dax.md) -[NORM.DIST function](norm-dist-dax.md) -[NORM.S.INV](norm-s-inv-dax.md) +[NORM.INV function](norm-inv-function-dax.md) +[NORM.DIST function](norm-dist-function-dax.md) +[NORM.S.INV](norm-s-inv-function-dax.md) diff --git a/query-languages/dax/norm-s-inv-function-dax.md b/query-languages/dax/norm-s-inv-function-dax.md index a710fd3b8..3f77d9745 100644 --- a/query-languages/dax/norm-s-inv-function-dax.md +++ b/query-languages/dax/norm-s-inv-function-dax.md @@ -42,6 +42,6 @@ Returns ## Related content -[NORM.INV](norm-inv-dax.md) -[NORM.S.DIST function](norm-s-dist-dax.md) -[NORM.DIST function](norm-dist-dax.md) +[NORM.INV](norm-inv-function-dax.md) +[NORM.S.DIST function](norm-s-dist-function-dax.md) +[NORM.DIST function](norm-dist-function-dax.md) diff --git a/query-languages/dax/statistical-functions-dax.md b/query-languages/dax/statistical-functions-dax.md index 06f7f2ff5..b6f9d4792 100644 --- a/query-languages/dax/statistical-functions-dax.md +++ b/query-languages/dax/statistical-functions-dax.md @@ -27,10 +27,10 @@ Statistical functions calculate values related to statistical distributions and |[LINESTX](linestx-function-dax.md)|Uses the Least Squares method to calculate a straight line that best fits the given data. The data result from expressions evaluated for each row in a table.| |[MEDIAN](median-function-dax.md) | Returns the median of numbers in a column. | |[MEDIANX](medianx-function-dax.md) | Returns the median number of an expression evaluated for each row in a table. | -|[NORM.DIST](norm-dist-dax.md) | Returns the normal distribution for the specified mean and standard deviation. | -|[NORM.INV](norm-inv-dax.md) | The inverse of the normal cumulative distribution for the specified mean and standard deviation. | -|[NORM.S.DIST](norm-s-dist-dax.md) | Returns the standard normal distribution (has a mean of zero and a standard deviation of one). | -|[NORM.S.INV](norm-s-inv-dax.md) | Returns the inverse of the standard normal cumulative distribution. | +|[NORM.DIST](norm-dist-function-dax.md) | Returns the normal distribution for the specified mean and standard deviation. | +|[NORM.INV](norm-inv-function-dax.md) | The inverse of the normal cumulative distribution for the specified mean and standard deviation. | +|[NORM.S.DIST](norm-s-dist-function-dax.md) | Returns the standard normal distribution (has a mean of zero and a standard deviation of one). | +|[NORM.S.INV](norm-s-inv-function-dax.md) | Returns the inverse of the standard normal cumulative distribution. | |[PERCENTILE.EXC](percentile-exc-function-dax.md) | Returns the k-th percentile of values in a range, where k is in the range 0..1, exclusive. | |[PERCENTILE.INC](percentile-inc-function-dax.md) | Returns the k-th percentile of values in a range, where k is in the range 0..1, inclusive. | |[PERCENTILEX.EXC](percentilex-exc-function-dax.md) | Returns the percentile number of an expression evaluated for each row in a table. | @@ -44,11 +44,11 @@ Statistical functions calculate values related to statistical distributions and |[STDEV.S](stdev-s-function-dax.md) | Returns the standard deviation of a sample population. | |[STDEVX.P](stdevx-p-function-dax.md) | Returns the standard deviation of the entire population. | |[STDEVX.S](stdevx-s-function-dax.md) | Returns the standard deviation of a sample population. | -|[T.DIST](t-dist-dax.md) | Returns the Student's left-tailed t-distribution. | -|[T.DIST.2T](t-dist-2t-dax.md) | Returns the two-tailed Student's t-distribution. | -|[T.DIST.RT](t-dist-rt-dax.md) | Returns the right-tailed Student's t-distribution. | -|[T.INV](t-inv-dax.md) | Returns the left-tailed inverse of the Student's t-distribution. | -|[T.INV.2t](t-inv-2t-dax.md) | Returns the two-tailed inverse of the Student's t-distribution. | +|[T.DIST](t-dist-function-dax.md) | Returns the Student's left-tailed t-distribution. | +|[T.DIST.2T](t-dist-2t-function-dax.md) | Returns the two-tailed Student's t-distribution. | +|[T.DIST.RT](t-dist-rt-function-dax.md) | Returns the right-tailed Student's t-distribution. | +|[T.INV](t-inv-function-dax.md) | Returns the left-tailed inverse of the Student's t-distribution. | +|[T.INV.2t](t-inv-2t-function-dax.md) | Returns the two-tailed inverse of the Student's t-distribution. | |[VAR.P](var-p-function-dax.md) | Returns the variance of the entire population. | |[VAR.S](var-s-function-dax.md) | Returns the variance of a sample population. | |[VARX.P](varx-p-function-dax.md) | Returns the variance of the entire population. | From b90b475b14325d094fc4cc45fbf6f759a0f393ba Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 15 May 2024 14:50:12 -0700 Subject: [PATCH 498/934] updating links once more --- .openpublishing.redirection.json | 25 +++++++++++++++++++ query-languages/dax/t-dist-2t-function-dax.md | 8 +++--- query-languages/dax/t-dist-function-dax.md | 8 +++--- query-languages/dax/t-dist-rt-function-dax.md | 8 +++--- query-languages/dax/t-inv-2t-function-dax.md | 8 +++--- 5 files changed, 41 insertions(+), 16 deletions(-) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 7666acb28..97d29a945 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -79,6 +79,31 @@ "source_path": "query-languages/dax/treatas-function.md", "redirect_url": "/dax/treatas-function-dax", "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/networkdays-dax.md", + "redirect_url": "/dax/networkdays-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/norm-dist-dax.md", + "redirect_url": "/dax/norm-dist-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/norm-inv-dax.md", + "redirect_url": "/dax/norm-inv-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/norm-s-dist-dax.md", + "redirect_url": "/dax/norm-s-dist-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/norm-s-inv-dax.md", + "redirect_url": "/dax/norm-s-inv-function-dax", + "redirect_document_id": false } ] } diff --git a/query-languages/dax/t-dist-2t-function-dax.md b/query-languages/dax/t-dist-2t-function-dax.md index a17022b71..472bf80d9 100644 --- a/query-languages/dax/t-dist-2t-function-dax.md +++ b/query-languages/dax/t-dist-2t-function-dax.md @@ -43,8 +43,8 @@ Returns ## Related content -[T.DIST](t-dist-dax.md) -[T.DIST.RT](t-dist-rt-dax.md) -[T.INV](t-inv-dax.md) -[T.INV.2t](t-inv-2t-dax.md) +[T.DIST](t-dist-function-dax.md) +[T.DIST.RT](t-dist-rt-function-dax.md) +[T.INV](t-inv-function-dax.md) +[T.INV.2t](t-inv-2t-function-dax.md) diff --git a/query-languages/dax/t-dist-function-dax.md b/query-languages/dax/t-dist-function-dax.md index 20867877c..1b8c43a1a 100644 --- a/query-languages/dax/t-dist-function-dax.md +++ b/query-languages/dax/t-dist-function-dax.md @@ -44,8 +44,8 @@ Returns, ## Related content -[T.DIST.2T](t-dist-2t-dax.md) -[T.DIST.RT](t-dist-rt-dax.md) -[T.INV](t-inv-dax.md) -[T.INV.2t](t-inv-2t-dax.md) +[T.DIST.2T](t-dist-2t-function-dax.md) +[T.DIST.RT](t-dist-rt-function-dax.md) +[T.INV](t-inv-function-dax.md) +[T.INV.2t](t-inv-2t-function-dax.md) diff --git a/query-languages/dax/t-dist-rt-function-dax.md b/query-languages/dax/t-dist-rt-function-dax.md index e0701b9c6..57281aa42 100644 --- a/query-languages/dax/t-dist-rt-function-dax.md +++ b/query-languages/dax/t-dist-rt-function-dax.md @@ -43,7 +43,7 @@ Returns ## Related content -[T.DIST](t-dist-dax.md) -[T.DIST.2T](t-dist-2t-dax.md) -[T.INV](t-inv-dax.md) -[T.INV.2t](t-inv-2t-dax.md) +[T.DIST](t-dist-function-dax.md) +[T.DIST.2T](t-dist-2t-function-dax.md) +[T.INV](t-inv-function-dax.md) +[T.INV.2t](t-inv-2t-function-dax.md) diff --git a/query-languages/dax/t-inv-2t-function-dax.md b/query-languages/dax/t-inv-2t-function-dax.md index 816b0fd72..928ab42d1 100644 --- a/query-languages/dax/t-inv-2t-function-dax.md +++ b/query-languages/dax/t-inv-2t-function-dax.md @@ -43,7 +43,7 @@ Returns ## Related content -[T.INV](t-inv-dax.md) -[T.DIST](t-dist-dax.md) -[T.DIST.2T](t-dist-2t-dax.md) -[T.DIST.RT](t-dist-rt-dax.md) +[T.INV](t-inv-function-dax.md) +[T.DIST](t-dist-function-dax.md) +[T.DIST.2T](t-dist-2t-function-dax.md) +[T.DIST.RT](t-dist-rt-function-dax.md) From 23a82abe52e1455f4da71617dbd13ee4b2887b1c Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 15 May 2024 14:54:04 -0700 Subject: [PATCH 499/934] final time? --- .openpublishing.redirection.json | 25 +++++++++++++++++++++++ query-languages/dax/t-inv-function-dax.md | 8 ++++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json index 97d29a945..5c085450a 100644 --- a/.openpublishing.redirection.json +++ b/.openpublishing.redirection.json @@ -104,6 +104,31 @@ "source_path": "query-languages/dax/norm-s-inv-dax.md", "redirect_url": "/dax/norm-s-inv-function-dax", "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/t-dist-2t-dax.md", + "redirect_url": "/dax/t-dist-2t-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/t-dist-dax.md", + "redirect_url": "/dax/t-dist-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/t-dist-rt-dax.md", + "redirect_url": "/dax/t-dist-rt-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/t-inv-2t-dax.md", + "redirect_url": "/dax/t-inv-2t-function-dax", + "redirect_document_id": false + }, + { + "source_path": "query-languages/dax/t-inv-dax.md", + "redirect_url": "/dax/t-inv-function-dax", + "redirect_document_id": false } ] } diff --git a/query-languages/dax/t-inv-function-dax.md b/query-languages/dax/t-inv-function-dax.md index 1f471a746..1069b45c0 100644 --- a/query-languages/dax/t-inv-function-dax.md +++ b/query-languages/dax/t-inv-function-dax.md @@ -43,7 +43,7 @@ Returns ## Related content -[T.INV.2T](t-inv-2t-dax.md) -[T.DIST](t-dist-dax.md) -[T.DIST.2T](t-dist-2t-dax.md) -[T.DIST.RT](t-dist-rt-dax.md) +[T.INV.2T](t-inv-2t-function-dax.md) +[T.DIST](t-dist-function-dax.md) +[T.DIST.2T](t-dist-2t-function-dax.md) +[T.DIST.RT](t-dist-rt-function-dax.md) From b3a2ff26fc76e17c708eb359c5226babda5c9601 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Thu, 16 May 2024 14:46:05 -0700 Subject: [PATCH 500/934] Adding missing info about BLANKS for MOVINGAVERAGE/RANGE/RUNNINGSUM --- query-languages/dax/movingaverage-function-dax.md | 2 +- query-languages/dax/range-function-dax.md | 2 +- query-languages/dax/runningsum-function-dax.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 81fe5eac3..84239b595 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -31,7 +31,7 @@ MOVINGAVERAGE ( , [, ][, ][, ] |windowSize|The number of rows to include in the calculation. Must be a constant value.| |includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |axis|(Optional) An axis reference, the direction along which the moving average will be calculated.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 9cae4fde4..e69038715 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -30,7 +30,7 @@ RANGE ( [, ][, ][, ][, ] ) |step|The number of rows before (negative value) or after (positive value) the current row to include in the range. Must be a constant value.
- If negative, the window will contain the last -step rows before the current row.
- Otherwise, the window will contain the first step rows after the current row.| |includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |axis|(Optional) An axis reference, the direction along which the interval will be created.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 12e937589..aa21cbd6c 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -29,7 +29,7 @@ RUNNINGSUM ( [, ][, ][, ] ) |--------|--------------| |column|The column that provides the value for each element.| |axis|(Optional) An axis reference, the direction along which the running sum will be calculated.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.| +|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value From 32dbf5f89f219e951f723ae5472a246bb2e9fe70 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 20 May 2024 10:37:50 -0400 Subject: [PATCH 501/934] Placeholder --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 05b3a6d6f..7383ac6fd 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -363,7 +363,7 @@ Value.Type( Value.ReplaceType( {1}, type {number} ) Type equivalence is not defined in M. An M implementation may optionally choose to use its own rules to perform equality comparisons between type values. Comparing two type values for equality should evaluate to `true` if they are considered identical by the implementation, and `false` otherwise. In either case, the response returned must be consistent if the same two values are repeatedly compared. Note that within a given implementation, comparing some identical type values (such as `(type text) = (type text)`) may return `true`, while comparing others (such as `(type [a = text]) = (type [a = text])`) may not. -Compatibility between a given type and a nullable primitive type can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a nullable primitive type value as its second argument: +Compatibility between a given type and a ? type can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a ? type value as its second argument: ```powerquery-m Type.Is(type text, type nullable text) // true From 6b6bf3d34ee11ea01c12c5478bc85c31d28720fe Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Thu, 23 May 2024 15:06:34 -0700 Subject: [PATCH 502/934] fixing small typo in rankx function doc. --- query-languages/dax/rankx-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rankx-function-dax.md b/query-languages/dax/rankx-function-dax.md index bb818d82d..113f2e996 100644 --- a/query-languages/dax/rankx-function-dax.md +++ b/query-languages/dax/rankx-function-dax.md @@ -55,7 +55,7 @@ The rank number of *value* among all possible values of *expression* evaluated f - Optional arguments might be skipped by placing an empty comma (,) in the argument list, i.e. RANKX(Inventory, [InventoryCost],,,"Dense") -- Equality related comparisons (=, \< \>, \>= and \<=) between values with the *Decimal Number* data type can potentialy return unexpected results when using RANKX function. Incorrect results can occur because values with *Decimal Number* data type are stored as IEEE Standard 754 floating point numbers and have inherent limitations in their precision. To avoid unexpected results, change the data type to *Fixed Decimal Number* or do a forced rounding using [ROUND](/dax/round-function-dax). +- Equality related comparisons (=, \< \>, \>= and \<=) between values with the *Decimal Number* data type can potentially return unexpected results when using RANKX function. Incorrect results can occur because values with *Decimal Number* data type are stored as IEEE Standard 754 floating point numbers and have inherent limitations in their precision. To avoid unexpected results, change the data type to *Fixed Decimal Number* or do a forced rounding using [ROUND](/dax/round-function-dax). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] From 98910a0008b8f3447fb4a2ef83e24fcf329355ed Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Tue, 28 May 2024 12:09:03 -0700 Subject: [PATCH 503/934] Apply suggestions from code review Committing the suggested fixes --- query-languages/m/csv-document.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 12836e73c..9301502dc 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -54,13 +54,13 @@ Table.FromRecords({ ## Example 2 -Process CSV text with multiple delimiter characters. +Process CSV text with multiple delimiter characters. In this example, the 3rd parameter specifies the delimiter pattern `#|#` to use instead of the default. **Usage** ```powerquery-m let - csv = Text.Combine({"ID#|#Color", "1#|#Red", "2#|#Blue"}, "#(cr)#(lf)") + csv = Text.Combine({"OrderID#|#Color", "1#|#Red", "2#|#Blue"}, "#(cr)#(lf)") in Table.PromoteHeaders(Csv.Document(csv, null, "#|#")) ``` From 96101d582ac2a61c21b428d3236c36953c5f4a3d Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 4 Jun 2024 09:59:01 -0700 Subject: [PATCH 504/934] Added closing brackets to return examples --- query-languages/m/csv-document.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 9301502dc..2e4e04659 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -50,6 +50,7 @@ in Table.FromRecords({ [OrderID = "1", Item = "Fishing rod"], [OrderID = "2", Item = "1 lb. worms"] +}) ``` ## Example 2 @@ -71,4 +72,5 @@ in Table.FromRecords({ [OrderID = "1", Color = "Red"], [OrderID = "2", Color = "Blue"] +}) ``` From 30337987e1cb3222da42ce963ef7377d0526c098 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 4 Jun 2024 13:13:39 -0700 Subject: [PATCH 505/934] Minor fix --- query-languages/m/csv-document.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 2e4e04659..e35a6e169 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -55,7 +55,7 @@ Table.FromRecords({ ## Example 2 -Process CSV text with multiple delimiter characters. In this example, the 3rd parameter specifies the delimiter pattern `#|#` to use instead of the default. +Process CSV text with multiple delimiter characters. In this example, the third parameter specifies the delimiter pattern `#|#` to use instead of the default. **Usage** From b32eef351c6548de34ccef1be3e519354e764307 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 4 Jun 2024 17:53:11 -0700 Subject: [PATCH 506/934] fixing mistakes in openbalanceX functions descriptions --- query-languages/dax/openingbalancemonth-function-dax.md | 2 +- query-languages/dax/openingbalancequarter-function-dax.md | 2 +- query-languages/dax/openingbalanceyear-function-dax.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/openingbalancemonth-function-dax.md b/query-languages/dax/openingbalancemonth-function-dax.md index cbfe832c9..9596b5fb9 100644 --- a/query-languages/dax/openingbalancemonth-function-dax.md +++ b/query-languages/dax/openingbalancemonth-function-dax.md @@ -6,7 +6,7 @@ title: "OPENINGBALANCEMONTH function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the **expression** at the first date of the month in the current context. +Evaluates the **expression** at the date corresponding to the end of the previous month in the current context. ## Syntax diff --git a/query-languages/dax/openingbalancequarter-function-dax.md b/query-languages/dax/openingbalancequarter-function-dax.md index 992798fec..a3b849494 100644 --- a/query-languages/dax/openingbalancequarter-function-dax.md +++ b/query-languages/dax/openingbalancequarter-function-dax.md @@ -6,7 +6,7 @@ title: "OPENINGBALANCEQUARTER function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the **expression** at the first date of the quarter, in the current context. +Evaluates the **expression** at the date corresponding to the end of the previous quarter in the current context. ## Syntax diff --git a/query-languages/dax/openingbalanceyear-function-dax.md b/query-languages/dax/openingbalanceyear-function-dax.md index 5e7760e03..f7fa73d36 100644 --- a/query-languages/dax/openingbalanceyear-function-dax.md +++ b/query-languages/dax/openingbalanceyear-function-dax.md @@ -6,7 +6,7 @@ title: "OPENINGBALANCEYEAR function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the **expression** at the first date of the year in the current context. +Evaluates the **expression** at the date corresponding to the end of the previous year in the current context. ## Syntax From a657ae7456b2bd1ac2937ace81cb42867aa9a39c Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Thu, 13 Jun 2024 09:33:54 -0700 Subject: [PATCH 507/934] Update dax-copilot.md fix author name --- query-languages/dax/dax-copilot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 609ce251b..041bd9c1b 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -5,7 +5,7 @@ ms.service: powerbi ms.date: 03/28/2024 ms.reviewer: ms.topic: how-to -author: maggieMSFT +author: maggiesMSFT ms.author: maggies no-loc: [CoPilot] #customer intent: As a DAX query writer, I want to use Copilot to help me write queries. From a4149bb8d57029054022af913fcf67f51de64d24 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 13 Jun 2024 17:05:20 -0400 Subject: [PATCH 508/934] Update m-spec-consolidated-grammar.md --- .../m/m-spec-consolidated-grammar.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index d6bf65e73..02ef665ea 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -259,15 +259,13 @@ logical-and-expression:
_is-expression:
      as-expression
-      is-expression_ `is` _nullable-primitive-type
-nullable-primitive-type:_
-      `nullable`_opt primitive-type_ +      is-expression_ `is` _non-custom-type_ #### As expression _as-expression:
      equality-expression
-      as-expression_ `as` _nullable-primitive-type_ +      as-expression_ `as` _non-custom-type_ #### Equality expression @@ -447,15 +445,15 @@ fixed-parameter-list:
      parameter
      parameter_ `,` _fixed-parameter-list
parameter:
-      parameter-name primitive-parameter-typeopt
+      parameter-name parameter-typeopt
parameter-name:
      identifier
-primitive-parameter-type:
-      primitive-assertion
+parameter-type:
+      non-custom-type-assertion
return-type:
-      primitive-assertion
-primitive-assertion:_
-      `as` _nullable-primitive-type
+      non-custom-type-assertion
+non-custom-type-assertion:_
+      `as` _non-custom-type
optional-parameter-list:
      optional-parameter
      optional-parameter_ `,` _optional-parameter-list
@@ -509,7 +507,9 @@ primary-type:
      nullable-type
primitive-type:_ one of
      `any anynonnull binary date datetime datetimezone duration function`
-      `list logical none null number record table text time type`
+      `list logical none null number record table text time type`
+_non-custom-type:_
+      `nullable`_opt primitive-type_
_record-type:_
      `[` _open-record-marker_ `]`
      `[` _field-specification-listopt_ `]`
From e8175a22fe7bd4d3fecf517d124897826b31630b Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 13 Jun 2024 17:06:07 -0400 Subject: [PATCH 509/934] Update m-spec-operators.md --- query-languages/m/m-spec-operators.md | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 96e300c72..4b6fccb20 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -132,12 +132,12 @@ The following table summarizes the M operators, listing the operator categories

u%x5nEo`PJGf0PoGTN!lCO>&-Q?B4d&Z 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 Date: Wed, 28 Feb 2024 12:26:50 -0800 Subject: [PATCH 426/934] ms dax copilot, add lightboxes --- query-languages/dax/dax-copilot.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 6e4a98d24..965feb914 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -26,7 +26,7 @@ In Power BI Desktop, in the **Preview features** section of the **Options**, ena Check to make sure you meet the [Fabric Copilot requirements](/fabric/get-started/copilot-fabric-overview#enable-copilot). -Then navigate to the DAX query view and select the **Copilot** button or CTRL+I to launch the in-line Copilot. +Then navigate to the **DAX query view** and select the **Copilot** button or CTRL+I to launch the in-line Copilot. Let’s try some Copilot prompts, using sample data in Power BI Desktop, with some additional measures. @@ -45,15 +45,15 @@ In a blank query tab, invoke Copilot with CTRL+I and enter this reque "list the products and show the last 3 months profit compared to the 3 months before." -:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="list products and show last 3 months profit compared to the 3 months before."::: +:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="list products and show last 3 months profit compared to the 3 months before." lightbox="media/dax-copilot/dax-list-products.png"::: After a few moments I get a detailed DAX query. -:::image type="content" source="media/dax-copilot/dax-query-list-products.png" alt-text="DAX query generated by Fabric Copilot."::: +:::image type="content" source="media/dax-copilot/dax-query-list-products.png" alt-text="DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-query-list-products.png"::: I select **Keep it** and then **Run** the query. -:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Run DAX query generated by Fabric Copilot."::: +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: Let's see the difference between the last three months and the previous three months. Select the query and start Copilot again with CTRL+I, or select the ribbon button. @@ -61,15 +61,15 @@ Let's see the difference between the last three months and the previous three mo This time my selection is showing fitted to the text and the background shading highlights what is being sent with my request to Copilot. -:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Run the query that calculated the profit."::: +:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Run the query that calculated the profit." lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: Now the diff styling in the DAX query editor shows exactly what Copilot has changed. -:::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Diff styling shows what Copilot has changed."::: +:::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Diff styling shows what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: I select **Keep it** and **Run** it again. -:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Run the query and see the results, with the Profit Difference column."::: +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Run the query and see the results, with the Profit Difference column." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: I see the DAX query, and I can see the requests I sent to Copilot at the top of the query. Each main block of the query is also commented, explaining what it’s doing in each part. @@ -81,15 +81,15 @@ Again, highlight the whole query and invoke Copilot with my request: "Explain to me what this query does." -:::image type="content" source="media/dax-copilot/dax-copilot-explain-query.png" alt-text="Explain to me what this query does."::: +:::image type="content" source="media/dax-copilot/dax-copilot-explain-query.png" alt-text="Explain to me what this query does." lightbox="media/dax-copilot/dax-copilot-explain-query.png"::: Now, instead of writing DAX queries, it’s responding in the in-line window. -:::image type="content" source="media/dax-copilot/dax-copilot-query-explanation.png" alt-text="brief explanation of the query."::: +:::image type="content" source="media/dax-copilot/dax-copilot-query-explanation.png" alt-text="brief explanation of the query." lightbox="media/dax-copilot/dax-copilot-query-explanation.png"::: Copilot generates a few lines. I select **Show more** to see the full explanation. -:::image type="content" source="media/dax-copilot/dax-copilot-explain-query-more.png" alt-text="a long explanation of what the query does."::: +:::image type="content" source="media/dax-copilot/dax-copilot-explain-query-more.png" alt-text="a long explanation of what the query does." lightbox="media/dax-copilot/dax-copilot-explain-query-more.png"::: Now I understand each part and the DAX functions used. @@ -99,15 +99,15 @@ Speaking of these DAX functions, it would be great to get an explanation of thos In this request, let’s find out what the SUMMARIZECOLUMNS does. -:::image type="content" source="media/dax-copilot/dax-copilot-explain-summarize-columns.png" alt-text="an explanation of what the SUMMARIZECOLUMNS does."::: +:::image type="content" source="media/dax-copilot/dax-copilot-explain-summarize-columns.png" alt-text="an explanation of what the SUMMARIZECOLUMNS does." lightbox="media/dax-copilot/dax-copilot-explain-summarize-columns.png"::: Again, Copilot generates brief description: -:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="a brief description of the SUMMARIZECOLUMNS DAX funtion."::: +:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="a brief description of the SUMMARIZECOLUMNS DAX funtion." lightbox="media/dax-copilot/dax-copilot-summarize-columns-brief.png"::: I select **Show more**. -:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-more.png" alt-text="Copilot generates a much more in-depth description."::: +:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-more.png" alt-text="Copilot generates a much more in-depth description." lightbox="media/dax-copilot/dax-copilot-summarize-columns-more.png"::: Because I asked Copilot in the context of a DAX query that I highlighted, it gave me the response in the context of that query as well. From f0d8a8e406caa1919176233054218ccf8bb72bf6 Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Wed, 28 Feb 2024 12:30:56 -0800 Subject: [PATCH 427/934] link to dax query view --- query-languages/dax/dax-copilot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 965feb914..3222d6a40 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -14,7 +14,7 @@ Try using Copilot to create a DAX query. Type what you're looking for in a DAX q ## DAX query features in Copilot -Let’s look at what Copilot can help you with in the DAX query view: +Let’s look at what Copilot can help you with in [DAX query view](/power-bi/transform-model/dax-query-view): - **Natural language to DAX query**. Just ask for what you want from your semantic model and have the DAX query generated by Copilot. - **DAX query to natural language**. Ask Copilot to explain what any DAX query is doing. From a5397e3e3132c58d9b2d2ff56120e707e57a01f3 Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Wed, 28 Feb 2024 12:38:06 -0800 Subject: [PATCH 428/934] ms dax copilot 2, fixed alt text --- query-languages/dax/dax-copilot.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 3222d6a40..3e1611f15 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -45,15 +45,15 @@ In a blank query tab, invoke Copilot with CTRL+I and enter this reque "list the products and show the last 3 months profit compared to the 3 months before." -:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="list products and show last 3 months profit compared to the 3 months before." lightbox="media/dax-copilot/dax-list-products.png"::: +:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="Screenshot showing list products and show last 3 months profit compared to the 3 months before." lightbox="media/dax-copilot/dax-list-products.png"::: After a few moments I get a detailed DAX query. -:::image type="content" source="media/dax-copilot/dax-query-list-products.png" alt-text="DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-query-list-products.png"::: +:::image type="content" source="media/dax-copilot/dax-query-list-products.png" alt-text="Screenshot showing DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-query-list-products.png"::: I select **Keep it** and then **Run** the query. -:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: Let's see the difference between the last three months and the previous three months. Select the query and start Copilot again with CTRL+I, or select the ribbon button. @@ -61,15 +61,15 @@ Let's see the difference between the last three months and the previous three mo This time my selection is showing fitted to the text and the background shading highlights what is being sent with my request to Copilot. -:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Run the query that calculated the profit." lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Screenshot showing Run the query that calculated the profit." lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: Now the diff styling in the DAX query editor shows exactly what Copilot has changed. -:::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Diff styling shows what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Screenshot showing Diff styling shows what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: I select **Keep it** and **Run** it again. -:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Run the query and see the results, with the Profit Difference column." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run the query and see the results, with the Profit Difference column." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: I see the DAX query, and I can see the requests I sent to Copilot at the top of the query. Each main block of the query is also commented, explaining what it’s doing in each part. @@ -81,15 +81,15 @@ Again, highlight the whole query and invoke Copilot with my request: "Explain to me what this query does." -:::image type="content" source="media/dax-copilot/dax-copilot-explain-query.png" alt-text="Explain to me what this query does." lightbox="media/dax-copilot/dax-copilot-explain-query.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-explain-query.png" alt-text="Screenshot showing Explain to me what this query does." lightbox="media/dax-copilot/dax-copilot-explain-query.png"::: Now, instead of writing DAX queries, it’s responding in the in-line window. -:::image type="content" source="media/dax-copilot/dax-copilot-query-explanation.png" alt-text="brief explanation of the query." lightbox="media/dax-copilot/dax-copilot-query-explanation.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-query-explanation.png" alt-text="Screenshot showing brief explanation of the query."::: Copilot generates a few lines. I select **Show more** to see the full explanation. -:::image type="content" source="media/dax-copilot/dax-copilot-explain-query-more.png" alt-text="a long explanation of what the query does." lightbox="media/dax-copilot/dax-copilot-explain-query-more.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-explain-query-more.png" alt-text="Screenshot showing a long explanation of what the query does."::: Now I understand each part and the DAX functions used. @@ -99,15 +99,15 @@ Speaking of these DAX functions, it would be great to get an explanation of thos In this request, let’s find out what the SUMMARIZECOLUMNS does. -:::image type="content" source="media/dax-copilot/dax-copilot-explain-summarize-columns.png" alt-text="an explanation of what the SUMMARIZECOLUMNS does." lightbox="media/dax-copilot/dax-copilot-explain-summarize-columns.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-explain-summarize-columns.png" alt-text="Screenshot showing an explanation of what the SUMMARIZECOLUMNS does." lightbox="media/dax-copilot/dax-copilot-explain-summarize-columns.png"::: Again, Copilot generates brief description: -:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="a brief description of the SUMMARIZECOLUMNS DAX funtion." lightbox="media/dax-copilot/dax-copilot-summarize-columns-brief.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="Screenshot showing a brief description of the SUMMARIZECOLUMNS DAX funtion."::: I select **Show more**. -:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-more.png" alt-text="Copilot generates a much more in-depth description." lightbox="media/dax-copilot/dax-copilot-summarize-columns-more.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-more.png" alt-text="Screenshot showing Copilot generates a much more in-depth description."::: Because I asked Copilot in the context of a DAX query that I highlighted, it gave me the response in the context of that query as well. From a1d65876c8b41776cbc9db7069d4f9b0b0abcfbf Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Wed, 28 Feb 2024 14:04:24 -0800 Subject: [PATCH 429/934] ms copilot tweak wording --- query-languages/dax/dax-copilot.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 3e1611f15..cf980f2c2 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -59,7 +59,7 @@ Let's see the difference between the last three months and the previous three mo ### Add a column to show the difference -This time my selection is showing fitted to the text and the background shading highlights what is being sent with my request to Copilot. +This time the selection is showing fitted to the text and the background shading highlights what is being sent with the request to Copilot. :::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Screenshot showing Run the query that calculated the profit." lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: @@ -77,7 +77,7 @@ Maybe those comments aren't working for me. Let’s get a full explanation. ### Explain what this query does -Again, highlight the whole query and invoke Copilot with my request: +Again, highlight the whole query and invoke Copilot with this request: "Explain to me what this query does." From b4b40818ed6d958fb46899bc0c1396fd0721803b Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Wed, 28 Feb 2024 15:18:54 -0800 Subject: [PATCH 430/934] ms dax copilot, feedback --- query-languages/dax/dax-copilot.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index cf980f2c2..8340f435c 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -1,6 +1,6 @@ --- title: "Write DAX queries with Copilot | Microsoft Docs" -description: Use Copilot to create a DAX queries query. Type what you're looking for in a DAX query, and Copilot can create it. +description: Use Copilot to create a DAX queries query. Type in a prompt to describe what DAX query you would like generated, and Copilot can create it. ms.service: powerbi ms.date: 02/28/2024 ms.reviewer: @@ -10,7 +10,7 @@ ms.author: maggies --- # Write DAX queries with Copilot -Try using Copilot to create a DAX query. Type what you're looking for in a DAX query and select **Send** or press Enter. To run what is returned, select **Keep it** to add it to query tab. Then select **Run** or press F5 to see the results of the DAX query. +Try using Copilot to create a DAX query. Type in a prompt to describe what DAX query you would like generated and select **Send** or press Enter. To run what is returned, select **Keep it** to add it to query tab. Then select **Run** or press F5 to see the results of the DAX query. ## DAX query features in Copilot From 418462e48f598561ef2b88c13714c4ca62932755 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 29 Feb 2024 13:00:09 -0800 Subject: [PATCH 431/934] Added March updates to Power Query M reference --- query-languages/m/docfx.json | 2 +- query-languages/m/joinkind-type.md | 6 ++++-- query-languages/m/table-fuzzyjoin.md | 14 ++++++++------ query-languages/m/table-fuzzynestedjoin.md | 14 ++++++++------ query-languages/m/table-join.md | 2 ++ 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index ede122399..ff7b00f33 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -45,7 +45,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "1/17/2024" + "ms.date": "2/17/2024" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/joinkind-type.md b/query-languages/m/joinkind-type.md index 614153492..903620445 100644 --- a/query-languages/m/joinkind-type.md +++ b/query-languages/m/joinkind-type.md @@ -16,8 +16,10 @@ Specifies the kind of join operation. |**JoinKind.LeftOuter**|1| A left outer join ensures that all rows of the first table appear in the result.| |**JoinKind.RightOuter**|2| A right outer join ensures that all rows of the second table appear in the result.| |**JoinKind.FullOuter**|3| A full outer join ensures that all rows of both tables appear in the result. Rows that did not have a match in the other table are joined with a default row containing null values for all of its columns.| -|**JoinKind.LeftAnti**|4| A left anti join returns that all rows from the first table which do not have a match in the second table.| -|**JoinKind.RightAnti**|5| A right anti join returns that all rows from the second table which do not have a match in the first table.| +|**JoinKind.LeftAnti**|4| A left anti join returns all rows from the first table that do not have a match in the second table.| +|**JoinKind.RightAnti**|5| A right anti join returns all rows from the second table that do not have a match in the first table.| +|**JoinKind.LeftSemi**|6| A left semi join returns all rows from the first table that have a match in the second table.| +|**JoinKind.RightSemi**|7| A right semi join returns all rows from the second table that have a match in the first table.| ## Remarks diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index 64ef9f520..ca4ec0985 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -18,12 +18,14 @@ Fuzzy matching is a comparison based on similarity of text rather than equality By default, an inner join is performed, however an optional `joinKind` may be included to specify the type of join. Options include: -* `JoinKind.Inner` -* `JoinKind.LeftOuter` -* `JoinKind.RightOuter` -* `JoinKind.FullOuter` -* `JoinKind.LeftAnti` -* `JoinKind.RightAnti` +* [JoinKind.Inner](joinkind-type.md) +* [JoinKind.LeftOuter](joinkind-type.md) +* [JoinKind.RightOuter](joinkind-type.md) +* [JoinKind.FullOuter](joinkind-type.md) +* [JoinKind.LeftAnti](joinkind-type.md) +* [JoinKind.RightAnti](joinkind-type.md) +* [JoinKind.LeftSemi](joinkind-type.md) +* [JoinKind.RightSemi](joinkind-type.md) An optional set of `joinOptions` may be included to specify how to compare the key columns. Options include: diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index 7705b40e6..6ac445875 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -18,12 +18,14 @@ Fuzzy matching is a comparison based on similarity of text rather than equality The optional `joinKind` specifies the kind of join to perform. By default, a left outer join is performed if a `joinKind` is not specified. Options include: -* `JoinKind.Inner` -* `JoinKind.LeftOuter` -* `JoinKind.RightOuter` -* `JoinKind.FullOuter` -* `JoinKind.LeftAnti` -* `JoinKind.RightAnti` +* [JoinKind.Inner](joinkind-type.md) +* [JoinKind.LeftOuter](joinkind-type.md) +* [JoinKind.RightOuter](joinkind-type.md) +* [JoinKind.FullOuter](joinkind-type.md) +* [JoinKind.LeftAnti](joinkind-type.md) +* [JoinKind.RightAnti](joinkind-type.md) +* [JoinKind.LeftSemi](joinkind-type.md) +* [JoinKind.RightSemi](joinkind-type.md) An optional set of `joinOptions` may be included to specify how to compare the key columns. Options include: diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index f4175d8cd..45084b347 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -22,6 +22,8 @@ By default, an inner join is performed, however an optional `joinKind` may be in * [JoinKind.FullOuter](joinkind-type.md) * [JoinKind.LeftAnti](joinkind-type.md) * [JoinKind.RightAnti](joinkind-type.md) +* [JoinKind.LeftSemi](joinkind-type.md) +* [JoinKind.RightSemi](joinkind-type.md) An optional set of `keyEqualityComparers` may be included to specify how to compare the key columns. This parameter is currently intended for internal use only. From d10833904777176009cb269100c0ff520b9a4537 Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:50:14 -0800 Subject: [PATCH 432/934] ms delete dax --- query-languages/dax/dax-copilot.md | 118 ----------------------------- query-languages/dax/toc.yml | 2 - 2 files changed, 120 deletions(-) delete mode 100644 query-languages/dax/dax-copilot.md diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md deleted file mode 100644 index 8340f435c..000000000 --- a/query-languages/dax/dax-copilot.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: "Write DAX queries with Copilot | Microsoft Docs" -description: Use Copilot to create a DAX queries query. Type in a prompt to describe what DAX query you would like generated, and Copilot can create it. -ms.service: powerbi -ms.date: 02/28/2024 -ms.reviewer: -ms.topic: how-to -author: maggieMSFT -ms.author: maggies ---- -# Write DAX queries with Copilot - -Try using Copilot to create a DAX query. Type in a prompt to describe what DAX query you would like generated and select **Send** or press Enter. To run what is returned, select **Keep it** to add it to query tab. Then select **Run** or press F5 to see the results of the DAX query. - -## DAX query features in Copilot - -Let’s look at what Copilot can help you with in [DAX query view](/power-bi/transform-model/dax-query-view): - -- **Natural language to DAX query**. Just ask for what you want from your semantic model and have the DAX query generated by Copilot. -- **DAX query to natural language**. Ask Copilot to explain what any DAX query is doing. -- **DAX functions help Copilot**. Maybe you heard about a certain DAX function or need to find the right DAX function for job, Copilot can help you here too. - -## Enable Copilot for DAX queries - -In Power BI Desktop, in the **Preview features** section of the **Options**, enable **DAX query view with Copilot**. - -Check to make sure you meet the [Fabric Copilot requirements](/fabric/get-started/copilot-fabric-overview#enable-copilot). - -Then navigate to the **DAX query view** and select the **Copilot** button or CTRL+I to launch the in-line Copilot. - -Let’s try some Copilot prompts, using sample data in Power BI Desktop, with some additional measures. - -## Sample prompts for writing DAX queries - -Here is a collection of sample prompts to illustrate how to get Copilot to write the DAX queries you want. - -- [List products and show the last three months' profit compared to the previous three months](#list-products-and-show-the-last-three-months-profit-compared-to-the-previous-three-months). -- [Add a column to show the difference](#add-a-column-to-show-the-difference). -- [Explain what this query does](#explain-what-this-query-does). -- [What is SUMMARIZECOLUMNS used for](#what-is-summarizecolumns-used-for). - -### List products and show the last three months' profit compared to the previous three months - -In a blank query tab, invoke Copilot with CTRL+I and enter this request: - -"list the products and show the last 3 months profit compared to the 3 months before." - -:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="Screenshot showing list products and show last 3 months profit compared to the 3 months before." lightbox="media/dax-copilot/dax-list-products.png"::: - -After a few moments I get a detailed DAX query. - -:::image type="content" source="media/dax-copilot/dax-query-list-products.png" alt-text="Screenshot showing DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-query-list-products.png"::: - -I select **Keep it** and then **Run** the query. - -:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: - -Let's see the difference between the last three months and the previous three months. Select the query and start Copilot again with CTRL+I, or select the ribbon button. - -### Add a column to show the difference - -This time the selection is showing fitted to the text and the background shading highlights what is being sent with the request to Copilot. - -:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Screenshot showing Run the query that calculated the profit." lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: - -Now the diff styling in the DAX query editor shows exactly what Copilot has changed. - -:::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Screenshot showing Diff styling shows what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: - -I select **Keep it** and **Run** it again. - -:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run the query and see the results, with the Profit Difference column." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: - -I see the DAX query, and I can see the requests I sent to Copilot at the top of the query. Each main block of the query is also commented, explaining what it’s doing in each part. - -Maybe those comments aren't working for me. Let’s get a full explanation. - -### Explain what this query does - -Again, highlight the whole query and invoke Copilot with this request: - -"Explain to me what this query does." - -:::image type="content" source="media/dax-copilot/dax-copilot-explain-query.png" alt-text="Screenshot showing Explain to me what this query does." lightbox="media/dax-copilot/dax-copilot-explain-query.png"::: - -Now, instead of writing DAX queries, it’s responding in the in-line window. - -:::image type="content" source="media/dax-copilot/dax-copilot-query-explanation.png" alt-text="Screenshot showing brief explanation of the query."::: - -Copilot generates a few lines. I select **Show more** to see the full explanation. - -:::image type="content" source="media/dax-copilot/dax-copilot-explain-query-more.png" alt-text="Screenshot showing a long explanation of what the query does."::: - -Now I understand each part and the DAX functions used. - -### What is SUMMARIZECOLUMNS used for? - -Speaking of these DAX functions, it would be great to get an explanation of those too. Let’s try Copilot to get some more information about a specific DAX function. - - In this request, let’s find out what the SUMMARIZECOLUMNS does. - -:::image type="content" source="media/dax-copilot/dax-copilot-explain-summarize-columns.png" alt-text="Screenshot showing an explanation of what the SUMMARIZECOLUMNS does." lightbox="media/dax-copilot/dax-copilot-explain-summarize-columns.png"::: - -Again, Copilot generates brief description: - -:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="Screenshot showing a brief description of the SUMMARIZECOLUMNS DAX funtion."::: - -I select **Show more**. - -:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-more.png" alt-text="Screenshot showing Copilot generates a much more in-depth description."::: - -Because I asked Copilot in the context of a DAX query that I highlighted, it gave me the response in the context of that query as well. - -## Learn more with these resources - -- [Overview of Copilot in Fabric and Power BI](/fabric/get-started/copilot-fabric-overview#enable-copilot) -- [DAX query view](/power-bi/transform-model/dax-query-view) -- [DAX queries](https://aka.ms/dax-queries) \ No newline at end of file diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 6a02994ce..b5fc667d5 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -12,8 +12,6 @@ href: https://aka.ms/learndax - name: "Sample model" href: dax-sample-model.md - - name: "Write DAX queries with Copilot" - href: dax-copilot.md - name: Best practices items: - name: "Understanding ORDERBY, PARTITIONBY, and MATCHBY functions" From c726be0271b3a7ba4dd5d239c2ae778d878426be Mon Sep 17 00:00:00 2001 From: Jak Koke Date: Thu, 7 Mar 2024 14:24:16 -0800 Subject: [PATCH 433/934] Update query-languages/m/m-spec-consolidated-grammar.md --- query-languages/m/m-spec-consolidated-grammar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index f58cb51e1..d7f14e142 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -2,7 +2,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual -ms.date: 2/2/24 +ms.date: 0202/2024 ms.custom: "nonautomated-date" --- From d2c023495c72975f0317aa844c00237481ed12d9 Mon Sep 17 00:00:00 2001 From: Jak Koke Date: Thu, 7 Mar 2024 14:24:59 -0800 Subject: [PATCH 434/934] Update query-languages/m/m-spec-consolidated-grammar.md --- query-languages/m/m-spec-consolidated-grammar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index d7f14e142..9a8e0b550 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -2,7 +2,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual -ms.date: 0202/2024 +ms.date: 02/02/2024 ms.custom: "nonautomated-date" --- From 5a04895892cd1b67c08f7d7aa598759210a9025b Mon Sep 17 00:00:00 2001 From: Jak Koke Date: Thu, 7 Mar 2024 14:30:21 -0800 Subject: [PATCH 435/934] Update table-expandlistcolumn.md --- query-languages/m/table-expandlistcolumn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index baa028bf2..9b27f3a81 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -27,7 +27,7 @@ Table.ExpandListColumn( ) ``` -## Example 1 +## Example 2 Split the nested table column [Components] in the table. From e4f9c8bc45a4dbf53126e3a90d40301186c412b2 Mon Sep 17 00:00:00 2001 From: Jeffrey Wang Date: Mon, 11 Mar 2024 15:20:59 -0700 Subject: [PATCH 436/934] Fix error in COLLAPSE example --- query-languages/dax/collapse-function-dax.md | 2 +- .../dax-queries/dax-visualcalc-collapse.png | Bin 148302 -> 140791 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/collapse-function-dax.md b/query-languages/dax/collapse-function-dax.md index bb7a87577..89517f479 100644 --- a/query-languages/dax/collapse-function-dax.md +++ b/query-languages/dax/collapse-function-dax.md @@ -60,7 +60,7 @@ Given a table that summarizes the total sales for a hierarchy with levels for to ```dax ParentValue = COLLAPSE([SalesAmount], ROWS) GrandParentValue = COLLAPSE([SalesAmount], ROWS, 2) -YearOrSelfValue = COLLAPSE([SalesAmount], [Month]) +QuarterOrSelfValue = COLLAPSE([SalesAmount], [Month]) ``` The screenshot below shows the matrix with the three visual calculations. diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-collapse.png b/query-languages/dax/media/dax-queries/dax-visualcalc-collapse.png index a3921778779a4ec373eedd358ac018c10558ee12..9d08ce44f3e4d71b958b5200856576608a84ca32 100644 GIT binary patch literal 140791 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 literal 148302 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

u%x5nEo`PJGf0PoGTN!lCO>&-Q?B4d&Z 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-query-explanation.png b/query-languages/dax/media/dax-copilot/dax-copilot-query-explanation.png new file mode 100644 index 0000000000000000000000000000000000000000..f79a3dfec0601a93b2e0a442cd5c4abf9b46f58e GIT binary patch literal 39278 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 HEC2it{zD=< literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-show-diff.png b/query-languages/dax/media/dax-copilot/dax-copilot-show-diff.png new file mode 100644 index 0000000000000000000000000000000000000000..0e35e629a26a2fbe1951a61e6c1e7fdb435a4116 GIT binary patch literal 93535 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

- + - + @@ -1252,21 +1252,21 @@ The type compatibility operator `x is y` is defined for the following types of | X | Y | Result | | --- | --- | --- | -| `type any` | _nullable-primitive-type_ | `type logical` | +| `type any` | _non-custom-type_ | `type logical` | -The expression `x is y` returns `true` if the ascribed type of `x` is compatible with `y`, and returns `false` if the ascribed type of `x` is incompatible with `y`. `y` must be a _nullable-primitivetype_. +The expression `x is y` returns `true` if the ascribed type of `x` is compatible with `y`, and returns `false` if it is not compatible. `y` must be a _non-custom-type_. _is-expression:
      as-expression
-      is-expression_ `is` _nullable-primitive-type
-nullable-primitive-type:_
-      `nullable`_opt primitive-type_ +      is-expression_ `is` _non-custom-type
+non-custom-type:_
+      `nullable`_opt primitive-type_
Type compatibility, as supported by the `is` operator, is a subset of [general type compatibility](m-spec-types.md) and is defined using the following rules: * If `x` is null then it is compatible if `y` is the type `any`, the type `null`, or a nullable type. -* If `x` is non-null then if it is a compatible if the the primitive type of `x` is the same as `y`. +* If `x` is non-null then it is a compatible if the primitive type of `x` is the same as `y`. The following holds when evaluating the expression `x is y`: @@ -1278,13 +1278,15 @@ The type assertion operator `x as y` is defined for the following types of value | X | Y | Result | | --- | --- | --- | -| `type any` | _nullable-primitive-type_ | `type any` | +| `type any` | _non-custom-type_ | `type any` | -The expression `x as y` asserts that the value `x` is compatible with `y` as per the `is` operator. If it is not compatible, an error is raised. `y` must be a _nullable-primitive-type_. +The expression `x as y` asserts that the value `x` is compatible with `y` as per the `is` operator. If it is not compatible, an error is raised. `y` must be a _non-custom-type_. _as-expression:
      equality-expression
-      as-expression_ `as` _nullable-primitive-type_ +      as-expression_ `as` _non-custom-type
+non-custom-type:_
+      `nullable`_opt primitive-type_ The expression `x as y` is evaluated as follows: From 0e71cc1dcac0f7d616e8b4b990f72dea8e1d4ca4 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 13 Jun 2024 17:06:21 -0400 Subject: [PATCH 510/934] Update m-spec-functions.md --- query-languages/m/m-spec-functions.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 5e0040b81..e4945a68a 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -16,7 +16,7 @@ A _function_ is a value that represents a mapping from a set of argument values Functions are written using a _function-expression_: _function-expression:_
-      `(` _parameter-listopt_ `)` _function-return-typeopt_ `=>` _function-body
+      `(` _parameter-listopt_ `)` _return-typeopt_ `=>` _function-body
function-body:
      expression
parameter-list:
@@ -25,24 +25,24 @@ parameter-list:
      optional-parameter-list
fixed-parameter-list:
      parameter
-      parameter_ `,` _fixed-parameter-list
+      parameter_ `,` _fixed-parameter-list
parameter:
      parameter-name parameter-typeopt
parameter-name:
      identifier
parameter-type:
-      assertion
-function-return-type:
-      assertion
-assertion:_
-      `as` _nullable-primiitve-type
+      non-custom-type-assertion
+return-type:
+      non-custom-type-assertion
+non-custom-type-assertion:_
+      `as` _non-custom-type
optional-parameter-list:
      optional-parameter
      optional-parameter_ `,` _optional-parameter-list
optional-parameter:_
-      `optional` _parameter
-nullable-primitve-type
-      `nullable`_opt _primitive-type_ +      `optional` _parameter_
+_non-custom-type:_
+      `nullable`_opt primitive-type_ The following is an example of a function that requires exactly two values `x` and `y`, and produces the result of applying the `+` operator to those values. The `x` and `y` are _parameters_ that are part of the _parameter-list_ of the function, and the `x + y` is the _function-body_: From a479ed49e866c9205a35853498d8c6f6a2c39b32 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 13 Jun 2024 17:07:07 -0400 Subject: [PATCH 511/934] Update m-spec-types.md --- query-languages/m/m-spec-types.md | 38 ++++++++++++++++--------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 7383ac6fd..c89d907d1 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -26,24 +26,26 @@ A _type value_ is a value that _classifies_ other values. A value that is classi The set of _primitive types_ includes the types of primitive values, and a number of _abstract types_, which are types that do not uniquely classify any values: `function`, `table`, `any`, `anynonnull` and `none`. All function values conform to the abstract type `function`, all table values to the abstract type `table`, all values to the abstract type `any`, all non-null values to the abstract type `anynonnull`, and no values to the abstract type `none`. An expression of type `none` must raise an error or fail to terminate since no value could be produced that conforms to type `none`. Note that the primitive types `function` and `table` are abstract because no function or table is directly of those types, respectively. The primitive types `record` and `list` are non-abstract because they represent an open record with no defined fields and a list of type any, respectively. -All types that are not members of the closed set of primitive types plus their nullable counterparts are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: +The set of _primitive types_ plus their nullable counterparts are known as _non-custom types_. + +_primitive-type:_ one of
+      `any anynonnull binary date datetime datetimezone duration function list logical`
+      `none null number record table text time type`
+_non-custom-type:_
+      `nullable`_opt primitive-type_
+ +All other types are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: _type-expression:
      primary-expression_
      `type` _primary-type
-type:
-      primary-expression
-      primary-type
primary-type:
      primitive-type
      record-type
      list-type
      function-type
      table-type
-      nullable-type
-primitive-type:_ one of
-      `any anynonnull binary date datetime datetimezone duration function list logical`
-      `none null number record table text time type` +      nullable-type_ The _primitive-type_ names are _contextual keywords_ recognized only in a _type_ context. The use of parentheses in a _type_ context moves the grammar back to a regular expression context, requiring the use of the type keyword to move back into a type context. For example, to invoke a function in a _type_ context, parentheses can be used: @@ -94,7 +96,7 @@ Value.Type( 1 as number ) // type number {2} as text // error, type mismatch ``` -Note that the `is` and `as` operators only accept nullable primitive types as their right operand. M does not provide means to check values for conformance to custom types. +Note that the `is` and `as` operators only accept a _non-custom type_ as their right operand. M does not provide means to check values for conformance to custom types. A type `X` is _compatible_ with a type `Y` if and only if all values that conform to `X` also conform to `Y`. All types are compatible with type `any` and no types (but `none` itself) are compatible with type `none`. The following graph shows the compatibility relation. (Type compatibility is reflexive and transitive. It forms a lattice with type `any` as the top and type `none` as the bottom value.) The names of abstract types are set in _italics_. @@ -209,28 +211,28 @@ A conforming value may contain field names not listed in the field specification Any function value conforms to the primitive type `function`, which does not place any restrictions on the types of the function's formal parameters or the function's return value. A custom _function-type value_ is used to place type restrictions on the signatures of conformant function values. -_function-type:_
-      `function (` _parameter-specification-listopt_ `)` _function-return-type
+function-type:_
+      `function (` _parameter-specification-listopt_ `)` _return-type
parameter-specification-list:
      required-parameter-specification-list
      required-parameter-specification-list_ `,` _optional-parameter-specification-list
      optional-parameter-specification-list
required-parameter-specification-list:
      required-parameter-specification
-      required-parameter-specification_ `,` _required-parameter-specification-list
+      required-parameter-specification_ `,` _required-parameter-specification-list
required-parameter-specification:
      parameter-specification
optional-parameter-specification-list:
      optional-parameter-specification
-      optional-parameter-specification_ `,` _optional-parameter-specification-list
+      optional-parameter-specification_ `,` _optional-parameter-specification-list
optional-parameter-specification:_
-      `optional` _parameter-specification
+      `optional` _parameter-specification
parameter-specification:
-      parameter-name parameter-type
-function-return-type:
+      parameter-name parameter-type
+parameter-type:
      assertion
assertion:_
-      `as` _nullable-primitive-type_ +      `as` _type_ The result of evaluating a _function-type_ is a type value whose base type is `function`. @@ -363,7 +365,7 @@ Value.Type( Value.ReplaceType( {1}, type {number} ) Type equivalence is not defined in M. An M implementation may optionally choose to use its own rules to perform equality comparisons between type values. Comparing two type values for equality should evaluate to `true` if they are considered identical by the implementation, and `false` otherwise. In either case, the response returned must be consistent if the same two values are repeatedly compared. Note that within a given implementation, comparing some identical type values (such as `(type text) = (type text)`) may return `true`, while comparing others (such as `(type [a = text]) = (type [a = text])`) may not. -Compatibility between a given type and a ? type can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a ? type value as its second argument: +Compatibility between a given type and a _non-custom type_ can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a _non-custom type_ value as its second argument: ```powerquery-m Type.Is(type text, type nullable text) // true From 4679c05cd85cd2811a273af19bcaeec9e7f86d8b Mon Sep 17 00:00:00 2001 From: yichai-msft Date: Mon, 17 Jun 2024 15:33:39 -0700 Subject: [PATCH 512/934] Update summarizecolumns-function-dax.md with contextual SC introduction --- .../dax/summarizecolumns-function-dax.md | 106 +++++++++++++++++- 1 file changed, 105 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index 5f33a4e5d..65a26792a 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -255,7 +255,111 @@ Still grouped by City and State, but rolled together when reporting a subtotal r ||B|FALSE|3||TRUE| ||C|FALSE|3||TRUE| |||TRUE|11||TRUE| - + +## Contextual SummarizeColumns ## +### Background +Until February 2023, SUMMARIZECOLUMNS did not support evaluation within a context transition at all. In products released before that month, this limitation made SUMMARIZECOLUMNS not useful in most of the measures – it was not possible to call a measure SUMMARIZECOLUMNS in any case of context transition, including other SUMMARIZECOLUMNS statements. + +From February 2023, the context transition was supported in a few scenario, but not in all the conditions. The supported and restricted cases are as below: + +| SummarizeColumns Type | External Filter with single column | External Filter with more than one column | External GroupBy Columns | +| -------- | ------- | ------- | ------- | +| SummarizeColumns with GroupBy only | OK | OK | OK | +| SummarizeColumns with Filters/Measures | OK | ERROR | ERROR | + +From June 2024, we are enabling contextual SummarizeColumns which allows SummarizeColumns to be evaluated in any context transition, SummarizeColumns in measure is now fully supported: + +| SummarizeColumns Type | External Filter with single column | External Filter with more than one column | External GroupBy Columns | +| -------- | ------- | ------- | ------- | +| SummarizeColumns with GroupBy only | OK | OK | OK | +| SummarizeColumns with Filters/Measures | OK | OK | OK | + +However, this update also includes changes to the behavior of SummarizeColumns, which may alter the results of existing expressions: + +### SelfValue Semantics for external filters ### +We are introducing a semantic concept named SelfValue, which alters how filters from external tables interact with GroupBy columns in SummarizeColumns. This change disallows filters from a different table to affect the GroupBy columns, even if the tables are related through a filter-by relationship. +An example illustrating the impact of this change involves the following expression: + +``` +CalculateTable( + SummarizeColumns( + 'Reseller Sales'[ResellerKey], + 'Reseller Sales'[ProductKey] + ), + Treatas({(229)}, 'Product'[Product Key]) +) +``` + +Before this update, the TreatAs filter would apply to the GroupBy operation within SummarizeColumns, leveraging the relationship between 'Product'[Product Key] and 'Reseller Sales'[ProductKey]. Consequently, the query results would only include rows where 'Reseller Sales'[ProductKey] equals 229. +However, after the update, GroupBy columns within SummarizeColumns will no longer be filtered by columns from external tables, even if a relationship exists between them. Therefore, in the example above, the GroupBy column 'Reseller Sales'[ProductKey] will not be filtered by the 'Product'[ProductKey] column. As a result, the query will include rows where 'Reseller Sales'[ProductKey] is not equal to 229. + +If you prefer to retain the previous behavior, you can rewrite the expression using AddColumns or SelectColumns instead of SummarizeColumns, as shown below: +``` +CalculateTable( + Filter( + SelectColumns( + 'Reseller Sales', + "ResellerKey", + [ResellerKey], + "ProductKey", + [ProductKey] + ), + And(Not IsBlank([ResellerKey]), Not IsBlank([ProductKey])) + ), + Treatas({(229)}, 'Product'[Product Key]) +) +``` +This rewritten expression preserves the original semantics where the GroupBy operation is not affected by the SelfValue restriction introduced by the update. + +### Row validation for groupby Columns Fully Coverred by Treatas ### + +Prior to this update, within a SummarizeColumns function, if all GroupBy columns from a specific table were fully covered by a single Treatas filter from that same table, as shown below: + +``` +SummarizeColumns( + Geography[Country], + Geography[State], + Treatas( + {("United States", "Alberta")}, + Geography[Country], + Geography[State] + ) +) +``` +The result of the above query would include whatever rows were specified in the Treatas filter, regardless of whether they were valid or not. For instance, the result would be a single-row table ("United States", "Alberta"), even if no such row with [Country] = "United States" and [State] = "Alberta" existed in the 'Geography' table. + +This issue was known and has been addressed by the update.After the update, such invalid rows will be filtered out, and only valid rows from the GroupBy table will be returned. Therefore, the result for the query above would be empty, as there are no valid rows matching the specified [Country] and [State] values in the 'Geography' table. + +### Disallow mixed Keepfilters/overriddefilters on same table/cluster ### + +The recent update has introduced a temporary restriction that triggers an error message stating: +``` +"SummarizeColumns filters with keepfilters behavior and overridefilters behavior are mixed within one cluster, which is not allowed. Consider adding keepfilters() to all filters of summarizecolumns." +``` +This error occurs when both normal filters (which override existing filters) and filters with KeepFilters specified are present within the same table/cluster. For example: +``` +Evaluate CalculateTable( + SummarizeColumns( + Product[Color], + KeepFilters( + TreatAs( + {( "Washington")} + , Geography[State] + ) + ), + TreatAs( + {("United States"), ("Canada")} + , Geography[Country] + ) + ) + ,TreatAs({("Alberta")}, Geography[State]) + ,TreatAs({("Canada")}, Geography[Country]) +) +``` +In the above expression, there are two filters on the 'Geography' table: one with KeepFilters specified and one without. These filters overlap with external filters on different columns. Currently, this configuration is not allowed because internally, the two filters are clustered into one, and the system cannot determine the correct filter overriding behavior for the clustered filter overall in such cases. + +Please note that this restriction is temporary. We are actively developing solutions to remove this limitation in future updates. If you encounter this error, we advise adjusting the filters within SummarizeColumns by adding or removing KeepFilters as necessary to ensure consistent overriding behavior on each table. + ## Related content [SUMMARIZE](summarize-function-dax.md) From 12906ec3ee4f123d56ca36cacce433bd32232418 Mon Sep 17 00:00:00 2001 From: Miguel Escobar <95775753+ptyx507x@users.noreply.github.com> Date: Tue, 18 Jun 2024 11:38:41 -0500 Subject: [PATCH 513/934] Update text-middle.md --- query-languages/m/text-middle.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index dad3e3d7f..6cf26e7fb 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -41,3 +41,17 @@ Text.Middle("Hello World", 6, 20) **Output** `"World"` + +## Example 3 + +Find the substring from the text "Hello World" starting at index 0 through 2. + +**Usage** + +```powerquery-m +Text.Middle("Hello World", 0, 2) +``` + +**Output** + +`"Hello"` From 35a10f6bb222a231e80d39eb1378406dcd7f7ac6 Mon Sep 17 00:00:00 2001 From: Miguel Escobar <95775753+ptyx507x@users.noreply.github.com> Date: Tue, 18 Jun 2024 11:40:02 -0500 Subject: [PATCH 514/934] Update text-middle.md --- query-languages/m/text-middle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index 6cf26e7fb..c4cd36dd5 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -54,4 +54,4 @@ Text.Middle("Hello World", 0, 2) **Output** -`"Hello"` +`"He"` From ab80c42eef1f7e74bce97020572f79f41b31d3e2 Mon Sep 17 00:00:00 2001 From: Miguel Escobar <95775753+ptyx507x@users.noreply.github.com> Date: Tue, 18 Jun 2024 13:11:18 -0500 Subject: [PATCH 515/934] Update query-languages/m/text-middle.md Co-authored-by: Ehren --- query-languages/m/text-middle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index c4cd36dd5..e183a2780 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -44,7 +44,7 @@ Text.Middle("Hello World", 6, 20) ## Example 3 -Find the substring from the text "Hello World" starting at index 0 through 2. +Find the substring from the text "Hello World" starting at index 0 spanning 2 characters. **Usage** From c56001dd3ed6067a39dfee7f03ea929cf4e795e1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 19 Jun 2024 13:53:36 -0700 Subject: [PATCH 516/934] Added July update to Power Query M reference --- query-languages/m/docfx.json | 2 +- query-languages/m/value-removemetadata.md | 32 +++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 0049030a8..c8972f8bf 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "4/24/2024" + "ms.date": "6/19/2024" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/value-removemetadata.md b/query-languages/m/value-removemetadata.md index 563f16c62..d0b6df7f4 100644 --- a/query-languages/m/value-removemetadata.md +++ b/query-languages/m/value-removemetadata.md @@ -13,3 +13,35 @@ Value.RemoveMetadata(value as any, optional metaValue as any) as a ## About Strips the input of metadata. + +## Example 1 + +Remove all metadata from a text value. + +**Usage** + +```powerquery-m +Value.Metadata( + Value.RemoveMetadata("abc" meta [a = 1, b = 2]) +) +``` + +**Output** + +`[]` + +## Example 2 + +Remove only one field of metadata from a text value. + +**Usage** + +```powerquery-m +Value.Metadata( + Value.RemoveMetadata("abc" meta [a = 1, b = 2], {"a"}) +) +``` + +**Output** + +`[b = 2]` From 3157fd7b346f14a8567e6cdfc6d589d89333d7f6 Mon Sep 17 00:00:00 2001 From: Richard Perry <14273214+rpln@users.noreply.github.com> Date: Mon, 24 Jun 2024 13:24:54 +0100 Subject: [PATCH 517/934] Remove unnecessary parenthesis --- .../best-practices/dax-avoid-avoid-filter-as-filter-argument.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md index 8860aedd3..530642a2b 100644 --- a/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md +++ b/query-languages/dax/best-practices/dax-avoid-avoid-filter-as-filter-argument.md @@ -57,7 +57,7 @@ CALCULATE( [Sales], FILTER( VALUES('Date'[Month]), - [Profit] > 0) + [Profit] > 0 ) ) ``` From ebf10bc8c62f8e0ed845d8c16239e656978ff542 Mon Sep 17 00:00:00 2001 From: Courtney Wales <62625502+Court72@users.noreply.github.com> Date: Tue, 25 Jun 2024 09:17:02 -0600 Subject: [PATCH 518/934] apply suggestions from PR review --- query-languages/dax/summarizecolumns-function-dax.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index 65a26792a..0d7dcca6a 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -260,7 +260,7 @@ Still grouped by City and State, but rolled together when reporting a subtotal r ### Background Until February 2023, SUMMARIZECOLUMNS did not support evaluation within a context transition at all. In products released before that month, this limitation made SUMMARIZECOLUMNS not useful in most of the measures – it was not possible to call a measure SUMMARIZECOLUMNS in any case of context transition, including other SUMMARIZECOLUMNS statements. -From February 2023, the context transition was supported in a few scenario, but not in all the conditions. The supported and restricted cases are as below: +From February 2023, the context transition was supported in a few scenarios, but not in all the conditions. The supported and restricted cases are as follows: | SummarizeColumns Type | External Filter with single column | External Filter with more than one column | External GroupBy Columns | | -------- | ------- | ------- | ------- | @@ -276,7 +276,7 @@ From June 2024, we are enabling contextual SummarizeColumns which allows Summari However, this update also includes changes to the behavior of SummarizeColumns, which may alter the results of existing expressions: -### SelfValue Semantics for external filters ### +### SelfValue semantics for external filters ### We are introducing a semantic concept named SelfValue, which alters how filters from external tables interact with GroupBy columns in SummarizeColumns. This change disallows filters from a different table to affect the GroupBy columns, even if the tables are related through a filter-by relationship. An example illustrating the impact of this change involves the following expression: @@ -311,7 +311,7 @@ CalculateTable( ``` This rewritten expression preserves the original semantics where the GroupBy operation is not affected by the SelfValue restriction introduced by the update. -### Row validation for groupby Columns Fully Coverred by Treatas ### +### Row validation for groupby columns fully covered by Treatas ### Prior to this update, within a SummarizeColumns function, if all GroupBy columns from a specific table were fully covered by a single Treatas filter from that same table, as shown below: @@ -328,7 +328,7 @@ SummarizeColumns( ``` The result of the above query would include whatever rows were specified in the Treatas filter, regardless of whether they were valid or not. For instance, the result would be a single-row table ("United States", "Alberta"), even if no such row with [Country] = "United States" and [State] = "Alberta" existed in the 'Geography' table. -This issue was known and has been addressed by the update.After the update, such invalid rows will be filtered out, and only valid rows from the GroupBy table will be returned. Therefore, the result for the query above would be empty, as there are no valid rows matching the specified [Country] and [State] values in the 'Geography' table. +This issue was known and has been addressed by the update. After the update, such invalid rows will be filtered out, and only valid rows from the GroupBy table will be returned. Therefore, the result for the query above would be empty, as there are no valid rows matching the specified [Country] and [State] values in the 'Geography' table. ### Disallow mixed Keepfilters/overriddefilters on same table/cluster ### From 656f922aaa2e2f67ff0bc479ef1fa6d6279a39b3 Mon Sep 17 00:00:00 2001 From: funkydbt <151091354+funkydbt@users.noreply.github.com> Date: Thu, 27 Jun 2024 00:36:33 +0100 Subject: [PATCH 519/934] Update combinevalues-function-dax.md Removed duplicated "be" in the description for "expression" for the COMBINEVALUES DAX function. --- query-languages/dax/combinevalues-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/combinevalues-function-dax.md b/query-languages/dax/combinevalues-function-dax.md index 00bde7b91..8a9bd7fd5 100644 --- a/query-languages/dax/combinevalues-function-dax.md +++ b/query-languages/dax/combinevalues-function-dax.md @@ -20,7 +20,7 @@ COMBINEVALUES(, , [, ]…) |Term|Definition| |--------|--------------| |delimiter|A separator to use during concatenation. Must be a constant value.| -|expression|A DAX expression whose value will be be joined into a single text string.| +|expression|A DAX expression whose value will be joined into a single text string.| ## Return value From a7e5165866e0ca5fd908cb6bf4e27822b6100bdf Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 3 Jul 2024 13:05:12 -0700 Subject: [PATCH 520/934] Fixed usage sample in Table.SplitColumn --- query-languages/m/table-splitcolumn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index 748e2086b..1f8fbedbc 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -29,7 +29,7 @@ let [CustomerID = 4, Name = "Cristina", Phone = "232-1550"] }) in - Table.SplitColumn(Customers, "Name", Splitter.SplitTextByDelimiter("i"), 2 + Table.SplitColumn(Customers, "Name", Splitter.SplitTextByDelimiter("i"), 2) ``` **Output** From 97cb7088585de279376700a59dea729af13395f8 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 9 Jul 2024 07:29:58 -0700 Subject: [PATCH 521/934] Added columns example to Text.Combine --- query-languages/m/text-combine.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 7c5db8402..eb59f41ed 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -55,3 +55,31 @@ Text.Combine({"Seattle", null, "WA"}, ", ") **Output** `"Seattle, WA"` + +## Example 4 + +**Usage** + +Combine the first name, middle initial (if included), and last name into the individual’s full name. + +```powerquery-m +let + Source = Table.FromRecords({ + [First Name = "Doug", Middle Initial = "J", Last Name = "Elis"], + [First Name = "Anna", Middle Initial = "M", Last Name = "Jorayew"], + [First Name = "Rada", Middle Initial = null, Last Name = "Mihaylova"] + }), + FullName = Table.AddColumn(Source, "Full Name", each Text.Combine({[First Name], [Middle Initial], [Last Name]}, " ")) +in + FullName +``` + +**Output** + +```powerquery-m +Table.FromRecords({ + [First Name = "Doug", Middle Initial = "J", Last Name = "Elis", Full Name = "Doug J Elis"], + [First Name = "Anna", Middle Initial = "M", Last Name = "Jorayew", Full Name = "Anna M Jorayew"], + [First Name = "Rada", Middle Initial = null, Last Name = "Mihaylova", Full Name = "Rada Mihaylova"] +}) +``` From c46d0e74fb65e482b5d41e99ad8822e4642b3566 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 9 Jul 2024 10:50:10 -0700 Subject: [PATCH 522/934] Update per dev review Co-authored-by: Ehren --- query-languages/m/text-combine.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index eb59f41ed..35e491b29 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -60,7 +60,7 @@ Text.Combine({"Seattle", null, "WA"}, ", ") **Usage** -Combine the first name, middle initial (if included), and last name into the individual’s full name. +Combine the first name, middle initial (if present), and last name into the individual’s full name. ```powerquery-m let From ded77a96cad316a0bf9b87c12c649043c04ff1f1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 9 Jul 2024 15:03:49 -0700 Subject: [PATCH 523/934] Fixed broken link, updated for freshness --- .../expressions-values-and-let-expression.md | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index b4c3692a1..5272f4dd6 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -2,14 +2,14 @@ description: "Learn more about: Expressions, values, and let expression" title: "Expressions, values, and let expression" ms.topic: conceptual -ms.date: 10/7/2022 +ms.date: 7/9/2024 ms.custom: "nonautomated-date" --- # Expressions, values, and let expression A Power Query M formula language query is composed of formula **expression** steps that create a mashup query. A formula expression can be evaluated (computed), yielding a value. The **let** expression encapsulates a set of values to be computed, assigned names, and then used in a subsequent expression that follows the **in** statement. For example, a let expression could contain a **Source** variable that equals the value of **Text.Proper()** and yields a text value in proper case. -##
Let expression +## Let expression ```powerquery-m let @@ -18,13 +18,13 @@ in Source ``` -In the example above, Text.Proper("hello world") is evaluated to "Hello World". +In the example above, `Text.Proper("hello world")` is evaluated to `Hello World`. The next sections describe value types in the language. -## Primitive value +## Primitive value -A **primitive** value is single-part value, such as a number, logical, text, or null. A null value can be used to indicate the absence of any data. +A *primitive* value is single-part value, such as a number, logical, text, or null. A null value can be used to indicate the absence of any data. |Type|Example value| |--------|-----------------| @@ -39,9 +39,9 @@ A **primitive** value is single-part value, such as a number, logical, text, or |Text|"abc"| |Time|12:34:12 PM| -## Function value +## Function value -A **Function** is a value that, when invoked with arguments, produces a new value. Functions are written by listing the function’s **parameters** in parentheses, followed by the goes-to symbol =>, followed by the expression defining the function. For example, to create a function called “MyFunction” that has two parameters and performs a calculation on parameter1 and parameter2: +A *Function* is a value that, when invoked with arguments, produces a new value. Functions are written by listing the function's *parameters* in parentheses, followed by the goes-to symbol =>, followed by the expression defining the function. For example, to create a function called **MyFunction** that has two parameters and performs a calculation on parameter1 and parameter2: ```powerquery-m let @@ -50,7 +50,7 @@ in MyFunction ``` -Calling the MyFunction() returns the result: +Calling MyFunction() returns the result: ```powerquery-m let @@ -61,7 +61,7 @@ in This code produces the value of 3. -## Structured data values +## Structured data values The M language supports the following structured data values: @@ -71,19 +71,19 @@ The M language supports the following structured data values: - [Table](#table) -- [Additional structured data examples](#additional) +- [Additional structured data examples](#additional-structured-data-examples) > [!NOTE] -> Structured data can contain any M value. To see a couple of examples, see [Additional structured data examples](#additional). +> Structured data can contain any M value. To see a couple of examples, go to [Additional structured data examples](#additional-structured-data-examples). -### List +### List -A List is a zero-based ordered sequence of values enclosed in curly brace characters { }. The curly brace characters { } are also used to retrieve an item from a List by index position. See \[List value](#_List_value). +A *List* is a zero-based ordered sequence of values enclosed in curly brace characters { }. The curly brace characters { } are also used to retrieve an item from a List by index position. For more information, go to [List values](m-spec-values.md#list). > [!NOTE] > Power Query M supports an infinite list size, but if a list is written as a literal, the list has a fixed length. For example, {1, 2, 3} has a fixed length of 3. -The following are some **List** examples. +The following are some List examples. |Value|Type| |---------|--------| @@ -94,9 +94,9 @@ The following are some **List** examples. |{123, true, "A"}{0}|Get the value of the first item in a List. This expression returns the value 123.| |{
    {1, 2, 3},
    {4, 5, 6}
}{0}{1}|Get the value of the second item from the first List element. This expression returns the value 2.| -### Record +### Record -A **Record** is a set of fields. A **field** is a name/value pair where the name is a text value that is unique within the field’s record. The syntax for record values allows the names to be written without quotes, a form also referred to as **identifiers**. An identifier can take the following two forms: +A *Record* is a set of fields. A *field* is a name/value pair where the name is a text value that is unique within the field's record. The syntax for record values allows the names to be written without quotes, a form also referred to as *identifiers*. An identifier can take the following two forms: - identifier_name such as OrderID. @@ -117,7 +117,7 @@ let Source = in Source ``` -To get the value of an Item, you use square brackets as Source[Item]: +To get the value of an Item, you use square brackets as `Source[Item]`: ```powerquery-m let Source = @@ -130,9 +130,9 @@ let Source = in Source[Item] //equals "Fishing rod" ``` -### Table +### Table -A **Table** is a set of values organized into named columns and rows. The column type can be implicit or explicit. You can use #table to create a list of column names and list of rows. A **Table** of values is a List in a **List**. The curly brace characters { } are also used to retrieve a row from a **Table** by index position (go to [Example 3 – Get a row from a table by index position](#tableIndex)). +A *Table* is a set of values organized into named columns and rows. The column type can be implicit or explicit. You can use [#table](sharptable.md) to create a list of column names and list of rows. A *Table* of values is a List in a [List](#list). The curly brace characters { } are also used to retrieve a row from a **Table** by index position (go to [Example 3 - Get a row from a table by index position](#example-3---get-a-row-from-a-table-by-index-position)). #### Example 1 - Create a table with implicit column types @@ -148,7 +148,7 @@ in Source ``` -#### Example 2 – Create a table with explicit column types +#### Example 2 - Create a table with explicit column types ```powerquery-m let @@ -163,14 +163,14 @@ in Source ``` -Both of the examples above creates a table with the following shape: +Both of the previous examples creates a table with the following shape: |OrderID|CustomerID|Item|Price| |-----------|--------------|--------|---------| |1|1|Fishing rod|100.00| |2|1|1 lb. worms|5.00| -#### Example 3 – Get a row from a table by index position +#### Example 3 - Get a row from a table by index position ```powerquery-m let @@ -194,7 +194,7 @@ This expression returns the follow record: |**Item**|1 lb. worms| |**Price**|5| -### Additional structured data examples +### Additional structured data examples Structured data can contain any M value. Here are some examples: @@ -215,9 +215,9 @@ in Evaluating this expression can be visualized as: -![List Example 1](media/list-example-1.png "List Example 1") +:::image type="content" source="media/list-example-1.png" alt-text="Diagram of a table that visualizes the expression with a primitive value, a function, and a record."::: -### Example 2 - Record containing Primitive values and nested Records +### Example 2 - Record containing primitive values and nested records ```powerquery-m let @@ -232,12 +232,12 @@ in Evaluating this expression can be visualized as: -![List Example 2](media/list-example-2.png "List Example 2") +:::image type="content" source="media/list-example-2.png" alt-text="Diagram of a table that visualizes the expression with several primitive values and nested records."::: > [!NOTE] -> Although many values can be written literally as an expression, a value is not an expression. For example, the expression 1 evaluates to the value 1; the expression 1+1 evaluates to the value 2. This distinction is subtle, but important. Expressions are recipes for evaluation; values are the results of evaluation. +> Although many values can be written literally as an expression, a value isn't an expression. For example, the expression 1 evaluates to the value 1; the expression 1+1 evaluates to the value 2. This distinction is subtle, but important. Expressions are recipes for evaluation; values are the results of evaluation. -### If expression +### If expression The **if** expression selects between two expressions based on a logical condition. For example: From 824577f6133c276944b66071cea5340189c76e94 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 9 Jul 2024 15:16:18 -0700 Subject: [PATCH 524/934] Updated more formatting --- query-languages/m/expressions-values-and-let-expression.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index 5272f4dd6..7f3360446 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -50,7 +50,7 @@ in MyFunction ``` -Calling MyFunction() returns the result: +Calling **MyFunction** returns the result: ```powerquery-m let @@ -132,7 +132,7 @@ in Source[Item] //equals "Fishing rod" ### Table -A *Table* is a set of values organized into named columns and rows. The column type can be implicit or explicit. You can use [#table](sharptable.md) to create a list of column names and list of rows. A *Table* of values is a List in a [List](#list). The curly brace characters { } are also used to retrieve a row from a **Table** by index position (go to [Example 3 - Get a row from a table by index position](#example-3---get-a-row-from-a-table-by-index-position)). +A *Table* is a set of values organized into named columns and rows. The column type can be implicit or explicit. You can use [#table](sharptable.md) to create a list of column names and list of rows. A Table of values is a List in a [List](#list). The curly brace characters { } are also used to retrieve a row from a Table by index position (go to [Example 3 - Get a row from a table by index position](#example-3---get-a-row-from-a-table-by-index-position)). #### Example 1 - Create a table with implicit column types From 4f00583d74783615ebd0062a2c43e75b89b89b6c Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 9 Jul 2024 15:22:43 -0700 Subject: [PATCH 525/934] Fixed one more format issue --- query-languages/m/expressions-values-and-let-expression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index 7f3360446..bd750de04 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -7,7 +7,7 @@ ms.custom: "nonautomated-date" --- # Expressions, values, and let expression -A Power Query M formula language query is composed of formula **expression** steps that create a mashup query. A formula expression can be evaluated (computed), yielding a value. The **let** expression encapsulates a set of values to be computed, assigned names, and then used in a subsequent expression that follows the **in** statement. For example, a let expression could contain a **Source** variable that equals the value of **Text.Proper()** and yields a text value in proper case. +A Power Query M formula language query is composed of formula **expression** steps that create a mashup query. A formula expression can be evaluated (computed), yielding a value. The **let** expression encapsulates a set of values to be computed, assigned names, and then used in a subsequent expression that follows the **in** statement. For example, a let expression could contain a **Source** variable that equals the value of [Text.Proper](text-proper.md) and yields a text value in proper case. ## Let expression From 4d90559c0e3c11c7117d83251dfd7d68ccbd366e Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 9 Jul 2024 15:51:09 -0700 Subject: [PATCH 526/934] Update per dev review Co-authored-by: Ehren --- query-languages/m/expressions-values-and-let-expression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index bd750de04..f63bfd083 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -18,7 +18,7 @@ in Source ``` -In the example above, `Text.Proper("hello world")` is evaluated to `Hello World`. +In the example above, `Text.Proper("hello world")` is evaluated to `"Hello World"`. The next sections describe value types in the language. From 49c79dbb86ca2afee6939616952c706d85644904 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 9 Jul 2024 16:02:53 -0700 Subject: [PATCH 527/934] One more minor fix from customer verbatim --- query-languages/m/expressions-values-and-let-expression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index bd750de04..2bddb149c 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -102,7 +102,7 @@ A *Record* is a set of fields. A *field* is a name/value pair where the name is - \#"identifier name" such as #"Today's data is: ". -The following is a record containing fields named "OrderID", "CustomerID", "Item", and "Price" with values 1, 1, "Fishing rod", and 100.00. Square brace characters [ ] denote the beginning and end of a record expression, and are used to get a field value from a record. The follow examples show a record and how to get the Item field value. +The following is a record containing fields named "OrderID", "CustomerID", "Item", and "Price" with values 1, 1, "Fishing rod", and 100.00. Square brace characters [ ] denote the beginning and end of a record expression, and are used to get a field value from a record. The following examples show a record and how to get the Item field value. Here's an example record: From 818b510b1146bb9ac6f2a3d1ee51342949d9991c Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 15 Jul 2024 12:54:31 -0700 Subject: [PATCH 528/934] Added August update to Power Query M reference --- query-languages/m/docfx.json | 2 +- query-languages/m/error-handling.md | 4 ++-- query-languages/m/error-record.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index c8972f8bf..b8f9fe8cf 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "6/19/2024" + "ms.date": "7/15/2024" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/error-handling.md b/query-languages/m/error-handling.md index 1c1184535..f89ee7ee4 100644 --- a/query-languages/m/error-handling.md +++ b/query-languages/m/error-handling.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Error handling functions" title: "Error handling functions" -ms.date: 11/15/2023 +ms.date: 7/15/2024 ms.custom: "nonautomated-date" --- # Error handling functions @@ -13,4 +13,4 @@ These functions can be used to trace or construct errors. |[Diagnostics.ActivityId](diagnostics-activityid.md)|Returns an opaque identifier for the currently-running evaluation.| |[Diagnostics.CorrelationId](diagnostics-correlationid.md)|Returns an opaque identifier to correlate incoming requests with outgoing ones.| |[Diagnostics.Trace](diagnostics-trace.md)|Writes a trace message, if tracing is enabled, and returns value.| -|[Error.Record](error-record.md)|Returns a record containing fields **Reason**, **Message**, and **Detail** set to the provided values. The record can be used to raise or throw an error.| +|[Error.Record](error-record.md)|Returns an error record from the provided text values for reason, message, detail, and error code.| diff --git a/query-languages/m/error-record.md b/query-languages/m/error-record.md index 4201bc641..e0faca0d4 100644 --- a/query-languages/m/error-record.md +++ b/query-languages/m/error-record.md @@ -7,9 +7,9 @@ title: "Error.Record" ## Syntax
-Error.Record(reason as text, optional message as nullable text, optional detail as any, optional parameters as nullable list) as record
+Error.Record(reason as text, optional message as nullable text, optional detail as any, optional parameters as nullable list, optional errorCode as nullable text) as record
 
## About -Returns an error record from the provided text values for reason, message and detail. +Returns an error record from the provided text values for reason, message, detail, and error code. From 85045372e597afc0f557ea68a61ddb62b42b047b Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 16 Jul 2024 10:26:43 -0700 Subject: [PATCH 529/934] first draft of TOPNSKIP docs --- query-languages/dax/topnskip-function-dax.md | 60 ++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 query-languages/dax/topnskip-function-dax.md diff --git a/query-languages/dax/topnskip-function-dax.md b/query-languages/dax/topnskip-function-dax.md new file mode 100644 index 000000000..634adc536 --- /dev/null +++ b/query-languages/dax/topnskip-function-dax.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: TOPNSKIP" +title: "TOPNSKIP function (DAX) | Microsoft Docs" +--- +# TOPNSKIP + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + +Returns the top N rows of the specified table, skipping a number of rows. + +## Syntax + +```dax +TOPNSKIP(, ,
Type assertion x as yIs compatible nullable-primitive type or errorIs compatible with non-custom type or error
Type conformance x is yTest if compatible nullable-primitive typeTest if compatible with non-custom type
Logical AND
, , [[, , []]…]) +``` + +### Parameters + +|Parameter|Definition| +|-------------|--------------| +|N_Value|The number of rows to return. Any DAX expression that returns a scalar value, where the expression is to be evaluated multiple times (for each row/context). See Remarks to better understand when the number of rows returned could be larger than *n_value*. | +|Skip_Rows_Value|The numner of rows to skip. Any DAX expression that returns a scalar value, where the expression is to be evaluated multiple times (for each row/context)| +|Table|Any DAX expression that returns a table of data from where to extract the top 'n' rows. See Remarks to better understand when an empty table is returned. | +|OrderBy_Expression|(Optional) Any DAX expression where the result value is used to sort the table and evaluated for each row of *table*. | +|Order|(Optional) A value that specifies how to sort *OrderBy_Expression* values:

- **0** (zero) or **FALSE**. Sorts in descending order of values of *Order*. Default when *Order* parameter is omitted.

- **1** or **TRUE**. Ranks in ascending order of *OrderBy*.| + +## Return value + +A table with the top N rows of *Table* or an empty table if *N_Value* is 0 (zero) or less. Rows are not sorted in any particular order. + +## Remarks + +- If there is a tie, in *Order_By* values, at the N-th row of the table, then all tied rows are returned. Then, when there are ties at the N-th row the function might return more than n rows. + +- If N_Value is 0 (zero) or less, TOPNSKIP returns an empty table. + +- TOPNSKIP does not guarantee any sort order for the results. + +- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] + +## Example + +The following measure formula returns the top 10 sold products by sales amount, skipping one row. + +```dax += SUMX( + TOPNSKIP( + 10, + 1, + SUMMARIZE( + InternetSales, + InternetSales[ProductKey], + "TotalSales", SUM(InternetSales[SalesAmount]) + ), + [TotalSales], DESC + ), + [TotalSales] +) + +``` From 95d484d0c7f5f3f5ccd808e462cf15cf55e110ba Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 16 Jul 2024 11:33:05 -0700 Subject: [PATCH 530/934] docs for SAMPLECARTESIANPOINTSBYCOVER --- ...mplecartesianpointsbycover-function-dax.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 query-languages/dax/samplecartesianpointsbycover-function-dax.md diff --git a/query-languages/dax/samplecartesianpointsbycover-function-dax.md b/query-languages/dax/samplecartesianpointsbycover-function-dax.md new file mode 100644 index 000000000..cd00d06b0 --- /dev/null +++ b/query-languages/dax/samplecartesianpointsbycover-function-dax.md @@ -0,0 +1,57 @@ +--- +description: "Learn more about: SAMPLESCARTESIANPOINTSBYCOVER" +title: "SAMPLESCARTESIANPOINTSBYCOVER function (DAX) | Microsoft Docs" +author: jajin7 +--- + +# SAMPLESCARTESIANPOINTSBYCOVER + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + +Returns a sample subset from a Table that is obtained by plotting the rows as points in 2D space and removing overlapping points. + +## Syntax + +```dax +SAMPLECARTESIANPOINTSBYCOVER(,
, , [, ] [, ] [, ] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|Size|Number of rows in the sample to return| +|Table|Any DAX expression that returns a table of data from where to return a sample subset from.| +|XAxis|The numerical XAxis column from the Table.| +|YAxis|The numerical YAxis column from the Table.| +|Radius|(Optional) The numerical Radius column from the Table.| +|MaxMinRatio|(Optional) When Radius is specified, MaxMinRatio has to be specified and defines the ratio between the maximum and the minimum radiuses of drawn points. See remarks for more details.| +|MaxBlankRatio|(Optional) When Radius is specified, MaxBlankRatio has to be specified and defines the ratio between the maximum and blank radiuses of the drawn points. See remarks for more details. | + +## Return Value + +The sample from Table consisting of Size number of rows. + +## Remarks +- if Size is less than or equal to 0, SAMPLECARTESIANPOINTSBYCOVER returns an empty table +- if Radius is specified, MaxMinRatio and MaxBlankRatio need to be specified and set to a value larger than 1. If not, SAMPLECARTESIANPOINTSBYCOVER returns an error +- Set MaxMinRatio to the maximum of Radius divided by the minimum of Radius. For example, if the minimum Radius is 20 and the maximum Radius is 60, the MaxMinRatio parameter should be set to 60/20 = 3. +- Set MaxBlankRatio to the maximum of Radius divided by the Radius for blank values. For example, if the maximum Radius is 60 and the Radius for blank values is 6, then MaxBlankRatio should be set to 60/6 = 10. + +- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] + +## Example + +The following DAX query: + +```dax +EVALUATE +SAMPLECARTESIANPOINTSBYCOVER ( + 1000, + SELECTCOLUMNS ( Sales, "x", [Unit Price], "y", [Sales Amount] ), + [x], + [y] +) +``` + +Returns a 1000 row sample from unique points from the Sales table in a 2D space defined by Unit Price as the X axis and Sales Amount as the Y axis. \ No newline at end of file From db2a212f8f06501e96128b0b3aebeb5faf6b85cd Mon Sep 17 00:00:00 2001 From: James Jin Date: Tue, 16 Jul 2024 13:44:02 -0700 Subject: [PATCH 531/934] Make fix --- query-languages/dax/weeknum-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/weeknum-function-dax.md b/query-languages/dax/weeknum-function-dax.md index 2c051d4a2..acfdcb911 100644 --- a/query-languages/dax/weeknum-function-dax.md +++ b/query-languages/dax/weeknum-function-dax.md @@ -35,7 +35,7 @@ An integer number. - By default, the WEEKNUM function uses a calendar convention in which the week containing January 1 is considered to be the first week of the year. However, the ISO 8601 calendar standard, widely used in Europe, defines the first week as the one with the majority of days (four or more) falling in the new year. This means that if **return_type** is any valid value other than 21, for any years in which there are three days or less in the first week of January, the WEEKNUM function returns week numbers that are different from the ISO 8601 definition. -- For **return_type**, except for 21, the following valid values may not be supported by some DirectQuery data sources: +- For **return_type**, the following valid values may not be supported by some DirectQuery data sources: |return_type |Week begins on |System | |---------|---------|---------| From d58c4a552fd024f6ee4eb0aeb12d47ddf0658565 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 16 Jul 2024 14:25:01 -0700 Subject: [PATCH 532/934] first draft --- .../sampleaxiswithlocalminmax-function-dax | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 query-languages/dax/sampleaxiswithlocalminmax-function-dax diff --git a/query-languages/dax/sampleaxiswithlocalminmax-function-dax b/query-languages/dax/sampleaxiswithlocalminmax-function-dax new file mode 100644 index 000000000..02b16f250 --- /dev/null +++ b/query-languages/dax/sampleaxiswithlocalminmax-function-dax @@ -0,0 +1,60 @@ +--- +description: "Learn more about: SAMPLEAXISWITHLOCALMINMAX" +title: "SAMPLEAXISWITHLOCALMINMAX function (DAX) | Microsoft Docs" +author: jterh +--- + +# SAMPLEAXISWITHLOCALMINMAX + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + +Returns a sample subset from a Table that is obtained by binning the primary X-axis into equal-sized bins and preserving the local min/max for each bin across different series. + +## Syntax + +```dax +SAMPLEAXISWITHLOCALMINMAX(,
, , , [ [, ...] ], [, [, ] [, ] [, ]) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|Size|Number of rows in the sample to return| +|Table|Any DAX expression that returns a table of data from where to return a sample subset from.| +|Axis|The numerical or datetime column from Table to be binned.| +|Measure| Column reference from Table to be sampled. At least one Measure is required, but you can specify multiple.| +|MinResolution| Minimum number of selected rows that spans the full non-empty range of X| +|DynamicSeries| (Optional) Column to be used as series. You can specify zero, or or multiple.| +|DynamicSeriesSelectionCriteria| (Optional) Decides which series values to retain if not all DynamicSeries can be preserved. Valid values are NONE or ALPHABETICAL| +|DynamicSeriesSelectionOrder| (Optional) Decides to use ascending or descending sorting on the criteria identified by DynamicSeriesSelectionCriteria. Valid values are ASC or DESC.| +|MaxResolution| Maximum number of selected rows for a line that spans the full non-empty range of X| +|MaxDynamicSeries|Maximum allowed DynamicSeries. If the number of DynamicSeries is higher than MaxDynamicSeries remove DynamicSeries based on DynamicSeriesSelectionCriteria.| +|MaxIterations|Maximum number of iterations to try to reach the Size number of rows. + +## Return Value + +The sample from Table consisting of Size number of rows. + +## Remarks +- if the number of rows in Table are less than the specified Size, then no binning will occur and all rows will be returned. +- The selected bin-sizes will be less than MinResolution +- SAMPLEAXISWITHLOCALMINMAX is used by Power BI to reduce the number of points in a line chart with a continuous (numeric) X-axis. +- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] + +## Example + +The following DAX query: + +```dax +EVALUATE +SAMPLEAXISWITHLOCALMINMAX( + 10, + SELECTCOLUMNS ( Sales, "x", [Unit Price], "y", [Sales Amount] ), + [x], + [y], + 10 + ) +``` + +Returns a 10 row (or less) sample subset of Table that is binned by Unit Price and sampled on Sales Amount. \ No newline at end of file From 1aa1f9c55f59957505a0ca815a22eb620536bee2 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 17 Jul 2024 09:38:22 -0700 Subject: [PATCH 533/934] Added new example and usage info to Text.Contains --- query-languages/m/text-contains.md | 42 ++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index a5fd01ea7..0a62549aa 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -20,6 +20,10 @@ The optional argument `comparer` can be used to specify case-insensitive or cult * [Comparer.OrdinalIgnoreCase](/powerquery-m/comparer-ordinalignorecase): Used to perform a case-insensitive ordinal comparison * [Comparer.FromCulture](/powerquery-m/comparer-fromculture): Used to perform a culture-aware comparison +If the first argument is null, this function returns null. + +All characters are treated literally. For example, because of the spaces in "DR", " DR", "DR ", and " DR ", these text strings aren't considered equal to each other. + ## Example 1 Find if the text "Hello World" contains "Hello". @@ -61,3 +65,41 @@ Text.Contains("Hello World", "hello", Comparer.OrdinalIgnoreCase) **Output** `true` + +## Example 4 + +Find the rows in the provided table where the account codes contain an "A-", a "7", or both. + +**Usage** + +```powerquery-m +let + // Sample input table + TableSource = #table(type table [Account Code = text, Posted Date = date, Sales = number], + { + {"US-2004", #date(2023,1,20), 580}, + {"CA-8843", #date(2023,7,18), 280}, + {"PA-1274", #date(2022,1,12), 90}, + {"PA-4323", #date(2023,4,14), 187}, + {"US-1200", #date(2022,12,14), 350}, + {"PTY-507", #date(2023,6,4), 110} + }), + #"Filtered rows" = Table.SelectRows( + TableSource, + each Text.Contains([Account Code], "A-") or + Text.Contains([Account Code], "7")) +in + #"Filtered rows" +``` + +**Output** + +```powerquery-m +#table(type table [Account Code = text, Posted Date = date, Sales = number], + { + {"CA-8843", #date(2023,7,18), 280}, + {"PA-1274", #date(2022,1,12), 90}, + {"PA-4323", #date(2023,4,14), 187}, + {"PTY-507", #date(2023,6,4), 110} + }) +``` From 962a01a6d02d481c503a5129bed042d68066e361 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 17 Jul 2024 11:00:20 -0700 Subject: [PATCH 534/934] Updated per dev review --- query-languages/m/text-contains.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index 0a62549aa..737a9499b 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -22,7 +22,7 @@ The optional argument `comparer` can be used to specify case-insensitive or cult If the first argument is null, this function returns null. -All characters are treated literally. For example, because of the spaces in "DR", " DR", "DR ", and " DR ", these text strings aren't considered equal to each other. +All characters are treated literally. For example, "DR", " DR", "DR ", and " DR " aren't considered equal to each other. ## Example 1 From fbd7e102df8747941c12b8d2fd1bd5345441db65 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 17 Jul 2024 12:35:13 -0700 Subject: [PATCH 535/934] Updated per tech review 2 --- query-languages/m/text-contains.md | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index 737a9499b..c393ca22d 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -68,14 +68,13 @@ Text.Contains("Hello World", "hello", Comparer.OrdinalIgnoreCase) ## Example 4 -Find the rows in the provided table where the account codes contain an "A-", a "7", or both. +Find the rows in a table that contain either "A-" or "7" in the account code. **Usage** ```powerquery-m let - // Sample input table - TableSource = #table(type table [Account Code = text, Posted Date = date, Sales = number], + Source = #table(type table [Account Code = text, Posted Date = date, Sales = number], { {"US-2004", #date(2023,1,20), 580}, {"CA-8843", #date(2023,7,18), 280}, @@ -85,7 +84,7 @@ let {"PTY-507", #date(2023,6,4), 110} }), #"Filtered rows" = Table.SelectRows( - TableSource, + Source, each Text.Contains([Account Code], "A-") or Text.Contains([Account Code], "7")) in @@ -96,10 +95,10 @@ in ```powerquery-m #table(type table [Account Code = text, Posted Date = date, Sales = number], - { - {"CA-8843", #date(2023,7,18), 280}, - {"PA-1274", #date(2022,1,12), 90}, - {"PA-4323", #date(2023,4,14), 187}, - {"PTY-507", #date(2023,6,4), 110} - }) +{ + {"CA-8843", #date(2023,7,18), 280}, + {"PA-1274", #date(2022,1,12), 90}, + {"PA-4323", #date(2023,4,14), 187}, + {"PTY-507", #date(2023,6,4), 110} +}) ``` From f7e78e4ce027bd9f04d6629bd1fd6b94860c698e Mon Sep 17 00:00:00 2001 From: yichai-msft Date: Fri, 19 Jul 2024 11:21:35 -0700 Subject: [PATCH 536/934] Update summarizecolumns-function-dax.md CalculateTable( SUMMARIZE( 'Reseller Sales', [ResellerKey], [ProductKey] ), Treatas({(229)}, 'Product'[Product Key]) ) --- .../dax/summarizecolumns-function-dax.md | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index 0d7dcca6a..2effa6271 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -293,18 +293,13 @@ CalculateTable( Before this update, the TreatAs filter would apply to the GroupBy operation within SummarizeColumns, leveraging the relationship between 'Product'[Product Key] and 'Reseller Sales'[ProductKey]. Consequently, the query results would only include rows where 'Reseller Sales'[ProductKey] equals 229. However, after the update, GroupBy columns within SummarizeColumns will no longer be filtered by columns from external tables, even if a relationship exists between them. Therefore, in the example above, the GroupBy column 'Reseller Sales'[ProductKey] will not be filtered by the 'Product'[ProductKey] column. As a result, the query will include rows where 'Reseller Sales'[ProductKey] is not equal to 229. -If you prefer to retain the previous behavior, you can rewrite the expression using AddColumns or SelectColumns instead of SummarizeColumns, as shown below: +If you prefer to retain the previous behavior, you can rewrite the expression using Summarize instead of SummarizeColumns, as shown below: ``` CalculateTable( - Filter( - SelectColumns( - 'Reseller Sales', - "ResellerKey", - [ResellerKey], - "ProductKey", - [ProductKey] - ), - And(Not IsBlank([ResellerKey]), Not IsBlank([ProductKey])) + SUMMARIZE( + 'Reseller Sales', + [ResellerKey], + [ProductKey] ), Treatas({(229)}, 'Product'[Product Key]) ) From ecffac54f1ec6c2a4e7011f21374b7db8206d859 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 23 Jul 2024 15:20:48 -0700 Subject: [PATCH 537/934] Added new example to Text.Start function article --- query-languages/m/text-start.md | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/query-languages/m/text-start.md b/query-languages/m/text-start.md index fa2e42ed0..0afae49ee 100644 --- a/query-languages/m/text-start.md +++ b/query-languages/m/text-start.md @@ -27,3 +27,41 @@ Text.Start("Hello, World", 5) **Output** `"Hello"` + +## Example 2 + +Get the first four characters of the first name and the first three characters of the last name to create an individual's username that also includes the company website. + +**Usage** + +```powerquery-m +let + Source = #table(type table [First Name = text, Last Name = text], + { + {"Douglas", "Elis"}, + {"Ana", "Jorayew"}, + {"Rada", "Mihaylova"} + }), + Username = Table.AddColumn( + Source, + "Username", + each Text.Combine({ + Text.Start([First Name], 4), + Text.Start([Last Name], 3), + "@contoso.com" + }) + ) +in + Username +``` + +**Output** + +```powerquery-m +#table(type table [First Name = text, Last Name = text, Username = text], +{ + {"Doug", "J", "Elis", "DougEli@contoso.com"}, + {"Anna", "M", "Jorayew", "AnaJor@contoso.com"}, + {"Rada", null, "Mihaylova", "RadaMih@contoso.com"} +}) +``` From 8bc565937329b145296eefd161b207f2f720bf3f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 23 Jul 2024 15:31:54 -0700 Subject: [PATCH 538/934] Updated per dev review --- query-languages/m/text-start.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/text-start.md b/query-languages/m/text-start.md index 0afae49ee..01850deaf 100644 --- a/query-languages/m/text-start.md +++ b/query-languages/m/text-start.md @@ -42,9 +42,9 @@ let {"Ana", "Jorayew"}, {"Rada", "Mihaylova"} }), - Username = Table.AddColumn( + EmailAddress = Table.AddColumn( Source, - "Username", + "Email Address", each Text.Combine({ Text.Start([First Name], 4), Text.Start([Last Name], 3), @@ -52,13 +52,13 @@ let }) ) in - Username + EmailAddress ``` **Output** ```powerquery-m -#table(type table [First Name = text, Last Name = text, Username = text], +#table(type table [First Name = text, Last Name = text, Email Address = text], { {"Doug", "J", "Elis", "DougEli@contoso.com"}, {"Anna", "M", "Jorayew", "AnaJor@contoso.com"}, From 6b4a6f5b306149a082b8f0b51a340e8290693eda Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 29 Jul 2024 08:56:52 -0700 Subject: [PATCH 539/934] Added second example to Text.Start --- query-languages/m/text-start.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/text-start.md b/query-languages/m/text-start.md index 01850deaf..1e3bda842 100644 --- a/query-languages/m/text-start.md +++ b/query-languages/m/text-start.md @@ -30,7 +30,7 @@ Text.Start("Hello, World", 5) ## Example 2 -Get the first four characters of the first name and the first three characters of the last name to create an individual's username that also includes the company website. +Use the first four characters of the first name and the first three characters of the last name to create an individual's email address. **Usage** @@ -60,8 +60,8 @@ in ```powerquery-m #table(type table [First Name = text, Last Name = text, Email Address = text], { - {"Doug", "J", "Elis", "DougEli@contoso.com"}, - {"Anna", "M", "Jorayew", "AnaJor@contoso.com"}, - {"Rada", null, "Mihaylova", "RadaMih@contoso.com"} + {"Douglas", "Elis", "DougEli@contoso.com"}, + {"Ana", "Jorayew", "AnaJor@contoso.com"}, + {"Rada", "Mihaylova", "RadaMih@contoso.com"} }) ``` From 9410ec33d2798a6c18b474fc4ca84018b48d6055 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 29 Jul 2024 15:37:03 -0700 Subject: [PATCH 540/934] Added missing end bracket in Function.Invoke example --- query-languages/m/function-invoke.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/function-invoke.md b/query-languages/m/function-invoke.md index 1331b80fa..11d42db95 100644 --- a/query-languages/m/function-invoke.md +++ b/query-languages/m/function-invoke.md @@ -21,7 +21,7 @@ Invokes [Record.FieldNames](record-fieldnames.md) with one argument [A=1,B=2] **Usage** ```powerquery-m -Function.Invoke(Record.FieldNames, {[A = 1, B = 2]} +Function.Invoke(Record.FieldNames, {[A = 1, B = 2]}) ``` **Output** From adacde309cf40e361bc103149a7b96bac75143e9 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 31 Jul 2024 08:23:15 -0700 Subject: [PATCH 541/934] Minor formatting updates to Operators article --- query-languages/m/m-spec-operators.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 96e300c72..c0510c8eb 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -2,7 +2,7 @@ title: M Language Operators description: Describes using operators in the Power Query M formula language ms.topic: conceptual -ms.date: 5/25/2023 +ms.date: 7/31/2024 ms.custom: "nonautomated-date" --- @@ -364,7 +364,7 @@ The form `[[y1],[y2],...]` and `[[y1],[y2],...]?` are also supported as a shorth _[[A],[B]] ``` -The shorthand form is particularly useful in combination with the `each` shorthand, a way to introduce a function of a single parameter named `_` (for details, see [Simplified declarations](m-spec-functions.md#simplified-declarations). Together, the two shorthands simplify common higher-order functional expressions: +The shorthand form is particularly useful in combination with the `each` shorthand, a way to introduce a function of a single parameter named `_` (for details, see [Simplified declarations](m-spec-functions.md#simplified-declarations)). Together, the two shorthands simplify common higher-order functional expressions: ```powerquery-m List.Select( {[a=1, b=1], [a=2, b=4]}, each [a] = [b]) @@ -594,7 +594,7 @@ _relational-expression:
      additive-expression_ `<` _relational-expression
      additive-expression_ `>` _relational-expression
      additive-expression_ `<=` _relational-expression
-      additive-expression `>=` _relational-expression_ +      additive-expression_ `>=` _relational-expression_ These operators are used to determine the relative ordering relationship between two values, as shown in the following table: From 012238bf0f0c165251677e9a05775bc2df30c085 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 31 Jul 2024 14:17:28 -0700 Subject: [PATCH 542/934] Fixed substring definition, added example --- query-languages/m/text-startswith.md | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index 40cca2116..b0cca57ae 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -14,17 +14,17 @@ Text.StartsWith(text as nullable text, substring as text, optional Returns true if text value `text` starts with text value `substring`. -* `text`: A `text` value which is to be searched -* `substring`: A `text` value which is the substring to be searched for in `substring` -* `comparer`: *[Optional]* A `Comparer` used for controlling the comparison. For example, `Comparer.OrdinalIgnoreCase` may be used to perform case-insensitive searches +* `text`: A `text` value which is to be searched. +* `substring`: A `text` value which is the substring to be searched for in `text`. +* `comparer`: *[Optional]* A `Comparer` used for controlling the comparison. For example, `Comparer.OrdinalIgnoreCase` may be used to perform case-insensitive searches. `comparer` is a `Comparer` which is used to control the comparison. Comparers can be used to provide case-insensitive or culture and locale-aware comparisons. The following built-in comparers are available in the formula language: -* `Comparer.Ordinal`: Used to perform an exact ordinal comparison -* `Comparer.OrdinalIgnoreCase`: Used to perform an exact ordinal case-insensitive comparison -* `Comparer.FromCulture`: Used to perform a culture-aware comparison +* `Comparer.Ordinal`: Used to perform an exact ordinal comparison. +* `Comparer.OrdinalIgnoreCase`: Used to perform an exact ordinal case-insensitive comparison. +* `Comparer.FromCulture`: Used to perform a culture-aware comparison. ## Example 1 @@ -53,3 +53,16 @@ Text.StartsWith("Hello, World", "Hello") **Output** `true` + +## Example 3 + +Ignoring case, check if the text "Hello, World" starts with the text "hello". + +**Usage** + +```powerquery-m +Text.StartsWith("Hello, World", "hello", Comparer.OrdinalIgnoreCase) + +**Output** + +`true` From b9446c01b7e06bab22a92fe8f03c8fae6575488f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 31 Jul 2024 14:21:07 -0700 Subject: [PATCH 543/934] Fixed code block --- query-languages/m/text-startswith.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index b0cca57ae..157dee3f7 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -62,6 +62,7 @@ Ignoring case, check if the text "Hello, World" starts with the text "hello". ```powerquery-m Text.StartsWith("Hello, World", "hello", Comparer.OrdinalIgnoreCase) +``` **Output** From c9f3d2734597c1e99256ccb3b793239c068f9c87 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 31 Jul 2024 14:30:19 -0700 Subject: [PATCH 544/934] Added links to Comparer functions --- query-languages/m/text-startswith.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index 157dee3f7..835521401 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -16,15 +16,15 @@ Returns true if text value `text` starts with text value `substring`. * `text`: A `text` value which is to be searched. * `substring`: A `text` value which is the substring to be searched for in `text`. -* `comparer`: *[Optional]* A `Comparer` used for controlling the comparison. For example, `Comparer.OrdinalIgnoreCase` may be used to perform case-insensitive searches. +* `comparer`: *[Optional]* A `Comparer` used for controlling the comparison. For example, [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) may be used to perform case-insensitive searches. `comparer` is a `Comparer` which is used to control the comparison. Comparers can be used to provide case-insensitive or culture and locale-aware comparisons. The following built-in comparers are available in the formula language: -* `Comparer.Ordinal`: Used to perform an exact ordinal comparison. +* [Comparer.Ordinal](comparer-ordinal.md): Used to perform an exact ordinal comparison. * `Comparer.OrdinalIgnoreCase`: Used to perform an exact ordinal case-insensitive comparison. -* `Comparer.FromCulture`: Used to perform a culture-aware comparison. +* [Comparer.FromCulture](comparer-fromculture.md): Used to perform a culture-aware comparison. ## Example 1 From 58a8bd7f2e4bf0698d28f5e8879438b4ba8e9862 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 2 Aug 2024 08:04:36 -0700 Subject: [PATCH 545/934] Update List.Range with customer feedback --- query-languages/m/list-range.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/list-range.md b/query-languages/m/list-range.md index 79aff23ca..a434b8e81 100644 --- a/query-languages/m/list-range.md +++ b/query-languages/m/list-range.md @@ -12,7 +12,7 @@ List.Range(list as list, offset as number, optional count a ## About -Returns a subset of the list beginning at the offset `list`. An optional parameter, `offset`, sets the maximum number of items in the subset. +Returns a subset of `list` beginning at `offset`. An optional parameter, `count`, sets the maximum number of items in the subset. ## Example 1 From 4b4991d7544d3ce89ee825ae0613c3ad8df9f30d Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 2 Aug 2024 08:19:48 -0700 Subject: [PATCH 546/934] Added new example to List.Contains --- query-languages/m/list-contains.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index 91874e6d4..f09d6323a 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -41,3 +41,20 @@ List.Contains({1, 2, 3, 4, 5}, 6) **Output** `false` + +## Example 3 + +Ignoring case, find if the list contains "rhubarb". + +**Usage** + +```powerquery-m +List.Contains({"Pears", "Bananas", "Rhubarb", "Peaches"}, + "rhubarb", + Comparer.OrdinalIgnoreCase +) +``` + +**Output** + +`true` From a91be400fd7e97359af1a68b2fa4beea98c6cd32 Mon Sep 17 00:00:00 2001 From: Kate Follis <28766705+kfollis@users.noreply.github.com> Date: Fri, 9 Aug 2024 11:36:24 -0700 Subject: [PATCH 547/934] Update selectcolumns-function-dax.md left square bracket missing from SELECTCOLUMNS syntax --- query-languages/dax/selectcolumns-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/selectcolumns-function-dax.md b/query-languages/dax/selectcolumns-function-dax.md index 7c7f8c986..cbd150f50 100644 --- a/query-languages/dax/selectcolumns-function-dax.md +++ b/query-languages/dax/selectcolumns-function-dax.md @@ -11,7 +11,7 @@ Returns a table with selected columns from the table and new columns specified b ## Syntax ```dax -SELECTCOLUMNS(
, [], , ], …) +SELECTCOLUMNS(
, [], , [], …) ``` ### Parameters From 193297cc3d54daf519bce160d2a7a6d87e93a16c Mon Sep 17 00:00:00 2001 From: Sean Tang Date: Fri, 9 Aug 2024 17:28:06 -0700 Subject: [PATCH 548/934] Add documentation for a few features around proxy model (DirectQuery to AS) 1. GroupCrossApply function family and a few filter context manipulation functions that can be used with it 2. New EVALUATE constructs like virtual table and virtual column --- .../dax/allselectedapply-function-dax.md | 35 ++++++++ .../dax/allselectedremove-function-dax.md | 38 +++++++++ .../dax/alwaysapply-function-dax.md | 35 ++++++++ query-languages/dax/dax-queries.md | 2 +- query-languages/dax/define-statement-dax.md | 8 +- .../dax/filtercluster-function-dax.md | 38 +++++++++ .../dax/groupcrossapply-function-dax.md | 55 ++++++++++++ .../dax/groupcrossapplytable-function-dax.md | 57 +++++++++++++ query-languages/dax/nonfilter-function-dax.md | 35 ++++++++ .../dax/shadowcluster-function-dax.md | 36 ++++++++ .../dax/virtual-column-statement-dax.md | 47 ++++++++++ .../dax/virtual-table-statement-dax.md | 85 +++++++++++++++++++ 12 files changed, 469 insertions(+), 2 deletions(-) create mode 100644 query-languages/dax/allselectedapply-function-dax.md create mode 100644 query-languages/dax/allselectedremove-function-dax.md create mode 100644 query-languages/dax/alwaysapply-function-dax.md create mode 100644 query-languages/dax/filtercluster-function-dax.md create mode 100644 query-languages/dax/groupcrossapply-function-dax.md create mode 100644 query-languages/dax/groupcrossapplytable-function-dax.md create mode 100644 query-languages/dax/nonfilter-function-dax.md create mode 100644 query-languages/dax/shadowcluster-function-dax.md create mode 100644 query-languages/dax/virtual-column-statement-dax.md create mode 100644 query-languages/dax/virtual-table-statement-dax.md diff --git a/query-languages/dax/allselectedapply-function-dax.md b/query-languages/dax/allselectedapply-function-dax.md new file mode 100644 index 000000000..265de8f8d --- /dev/null +++ b/query-languages/dax/allselectedapply-function-dax.md @@ -0,0 +1,35 @@ +--- +description: "Learn more about: ALLSELECTEDAPPLY" +title: "ALLSELECTEDAPPLY function (DAX) | Microsoft Docs" +--- +# ALLSELECTEDAPPLY + +Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. + +## Syntax + +```dax +ALLSELECTEDAPPLY(
) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|table expression|Any table expression.| + +## Return value + +A table of values. + +## Remarks + +- You use ALLSELECTEDAPPLY within the context GROUPCROSSAPPLY and GROUPCROSSAPPLYTABLE functions, to override the standard behavior of those functions. + +- When a filter is specified as ALLSELECTEDAPPLY, it is initially hidden in the filter context. Upon an ALLSELECTED inside CALCULATE or CALCULATETABLE, this table expression is enabled in fliter context. + +## Related content + +[Filter functions](filter-functions-dax.md) +[GROUPCROSSAPPLY function](groupcrossapply-function-dax.md) +[GROUPCROSSAPPLYTABLE function](groupcrossapplytable-function-dax.md) diff --git a/query-languages/dax/allselectedremove-function-dax.md b/query-languages/dax/allselectedremove-function-dax.md new file mode 100644 index 000000000..a19fc2c7e --- /dev/null +++ b/query-languages/dax/allselectedremove-function-dax.md @@ -0,0 +1,38 @@ +--- +description: "Learn more about: ALLSELECTEDREMOVE" +title: "ALLSELECTEDREMOVE function (DAX) | Microsoft Docs" +--- +# ALLSELECTEDREMOVE + +Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. + +## Syntax + +```dax +ALLSELECTEDREMOVE(
[, [, [,…]]]) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|table expression|Any table expression.| +|column|Column in the table expression.| + +## Return value + +A table of values. + +## Remarks + +- You use ALLSELECTEDREMOVE within the context GROUPCROSSAPPLY and GROUPCROSSAPPLYTABLE functions, to override the standard behavior of those functions. + +- When doing ALLSELECTED on a column that appears on the list of ALLSELECTEDREMOVE column parameter, then this column from this table expression will not participate in the filter context. The same column from other table expression in the filter context is not changed. + +- It is possible to specify a subset of columns of the table expression. When no column is supplied, then it's equivalent to supplying all columns of the table expression to ALLSELECTEDREMOVE + +## Related content + +[Filter functions](filter-functions-dax.md) +[GROUPCROSSAPPLY function](groupcrossapply-function-dax.md) +[GROUPCROSSAPPLYTABLE function](groupcrossapplytable-function-dax.md) diff --git a/query-languages/dax/alwaysapply-function-dax.md b/query-languages/dax/alwaysapply-function-dax.md new file mode 100644 index 000000000..726c40f6d --- /dev/null +++ b/query-languages/dax/alwaysapply-function-dax.md @@ -0,0 +1,35 @@ +--- +description: "Learn more about: ALWAYSAPPLY" +title: "ALWAYSAPPLY function (DAX) | Microsoft Docs" +--- +# ALWAYSAPPLY + +Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. + +## Syntax + +```dax +ALWAYSAPPLY(
) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|table expression|Any table expression.| + +## Return value + +A table of values. + +## Remarks + +- You use ALWAYSAPPLY within the context GROUPCROSSAPPLY and GROUPCROSSAPPLYTABLE functions, to override the standard behavior of those functions. + +- By default, a value filter does not affect measure if it doesn't change filter context. This behavior can be controlled by ALWAYSAPPLY function so that an empty table can still affect measure even if it doesn't change filter context. + +## Related content + +[Filter functions](filter-functions-dax.md) +[GROUPCROSSAPPLY function](groupcrossapply-function-dax.md) +[GROUPCROSSAPPLYTABLE function](groupcrossapplytable-function-dax.md) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index ce4a2b7a2..0ba25dc09 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -122,7 +122,7 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit ( (MEASURE
[] = ) | (VAR =
) | - (TABLE
=
) | + (TABLE
= ) | (COLUMN
[] = ) | ) + ] diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 0dd6a42da..15394cef4 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -13,7 +13,7 @@ Introduces a statement with one or more entity definitions that can be applied t ( (MEASURE
[] = ) | (VAR =
) | - (TABLE
=
) | + (TABLE
= ) | (COLUMN
[] = ) | ) + ] @@ -43,9 +43,15 @@ Introduces a statement with one or more entity definitions that can be applied t - To learn more about how a DEFINE statement is used, see [DAX queries](dax-queries.md). +- To learn more about virtual column, see [Virtual Column](virtual-column-statement-dax.md) + +- To learn more about virtual table, see [Virtual Table](virtual-table-statement-dax.md) + ## Related content [EVALUATE](evaluate-statement-dax.md) [VAR](var-dax.md) [MEASURE](measure-statement-dax.md) +[Virtual Column](virtual-column-statement-dax.md) +[Virtual Table](virtual-table-statement-dax.md) [DAX queries](dax-queries.md) diff --git a/query-languages/dax/filtercluster-function-dax.md b/query-languages/dax/filtercluster-function-dax.md new file mode 100644 index 000000000..b13b64354 --- /dev/null +++ b/query-languages/dax/filtercluster-function-dax.md @@ -0,0 +1,38 @@ +--- +description: "Learn more about: FILTERCLUSTER" +title: "FILTERCLUSTER function (DAX) | Microsoft Docs" +--- +# FILTERCLUSTER + +Returns a correlated join table over a set of groups. + +## Syntax + +```dax +FILTERCLUSTER( [, < groupBy_columnName >]…, []… [, , …] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|groupBy_columnName|A fully qualified column reference (Table[Column]) to a base table for which the distinct values are included in the returned table. Each groupBy_columnName column is cross-joined (different tables) or auto-existed (same table) with the subsequent specified columns.| +|filterTable|A table expression participating in the join.| +|separator|A string literal which serves no purpose other than separating filterTable parameter with tableScan parameter| +|tableScan|A table scan that joins with filterTable parameters, applying autoexist semantics, and returns columns specified in groupBy_columnName| + +## Return value + +A table which includes combinations of values from the supplied columns based on the grouping specified. The column only includes column specified by groupBy_columnName parameter. + +## Remarks + +- FILTERCLUSTER function can only be used inside GROUPCROSSAPPLY and GROUPCROSSAPPLYTABLE functions. + +- FILTERCLUSTER is semantically equivalent to a natural join across all filterTable and tableScan parameters, and then group by columns specified by groupBy_columnName parameters. Group by columns must come from tableScan parameters. + +- tableScan parameters are evaluated in the context of filterTable + +[SUMMARIZE](summarize-function-dax.md) +[GROUPCROSSAPPLY function](groupcrossapply-function-dax.md) +[GROUPCROSSAPPLYTABLE function](groupcrossapplytable-function-dax.md) diff --git a/query-languages/dax/groupcrossapply-function-dax.md b/query-languages/dax/groupcrossapply-function-dax.md new file mode 100644 index 000000000..6a9d59fa4 --- /dev/null +++ b/query-languages/dax/groupcrossapply-function-dax.md @@ -0,0 +1,55 @@ +--- +description: "Learn more about: GROUPCROSSAPPLY" +title: "GROUPCROSSAPPLY function (DAX) | Microsoft Docs" +--- +# GROUPCROSSAPPLY + +Returns a summary table over a set of groups. + +## Syntax + +```dax +GROUPCROSSAPPLY( [, < groupBy_columnName >]…, []…[, , ]…) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|groupBy_columnName|A fully qualified column reference (Table[Column]) to a base table for which the distinct values are included in the returned table.| +|filterTable|A table expression which is added to the filter context of all columns specified as groupBy_columnName arguments.| +|name|A string representing the column name to use for the subsequent expression specified.| +|expression|Any DAX expression that returns a single value (not a table).| + +## Return value + +A table which includes combinations of values from the supplied columns based on the grouping specified. Only rows for which at least one of the supplied expressions return a non-blank value are included in the table returned. If all expressions evaluate to BLANK/NULL for a row, that row is not included in the table returned. + +## Remarks + +- GROUPCROSSAPPLY is similar to SUMMARIZECOLUMNS function, but it does not apply implicit autoexist. All filterTable parameters are cross-join. FILTERCLUSTER function can be used to perform natural joins of filter tables or group by columns if needed. + +- You can modify filtering behavior of filterTable by using the following functions: + + - ALLSELECTEDAPPLY + + - ALLSELECTEDREMOVE + + - ALWAYSAPPLY + + - KEEPFILTERS + + - SHADOWCLUSTER + + - NONFILTER + +## Related content + +[ALLSELECTEDAPPLY function](allselectedapply-function-dax.md) +[ALLSELECTEDREMOVE function](allselectedremove-function-dax.md) +[ALWAYSAPPLY function](alwaysapply-function-dax.md) +[KEEPFILTERS function](keepfilters-function-dax.md) +[SHADOWCLUSTER function](shadowcluster-function-dax.md) +[NONFILTER function](nonfilter-function-dax.md) +[FILTERCLUSTER function](filtercluster-function-dax.md) +[GROUPCROSSAPPLYTABLE function](groupcrossapplytable-function-dax.md) diff --git a/query-languages/dax/groupcrossapplytable-function-dax.md b/query-languages/dax/groupcrossapplytable-function-dax.md new file mode 100644 index 000000000..4f05f7717 --- /dev/null +++ b/query-languages/dax/groupcrossapplytable-function-dax.md @@ -0,0 +1,57 @@ +--- +description: "Learn more about: GROUPCROSSAPPLYTABLE" +title: "GROUPCROSSAPPLYTABLE function (DAX) | Microsoft Docs" +--- +# GROUPCROSSAPPLYTABLE + +Returns a summary table over a set of groups. + +## Syntax + +```dax +GROUPCROSSAPPLYTABLE( [, < groupBy_columnName >]…, []… [, ,
] ) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|groupBy_columnName|A fully qualified column reference (Table[Column]) to a base table for which the distinct values are included in the returned table.| +|filterTable|A table expression which is added to the filter context of all columns specified as groupBy_columnName arguments. The values present in the filter table are used to filter before cross-join/auto-exist is performed.| +|separator|A string literal which serves no purpose other than separating filterTable parameter with table expression parameter| +|table expression|A table expression that is evaluated under filter context of filterTable parameters and returned as a part of the join in the return value| + +## Return value + +A table which includes combinations of values from the supplied columns based on the grouping specified. + +## Remarks + +- GROUPCROSSAPPLYTABLE is similar to GROUPCROSSJOIN function. All filterTable parameters are cross-join. FILTERCLUSTER function can be used to perform natural joins of filter tables or group by columns if needed. + +- The table expression parameter is evaluated in the filter context containing all filterTable parameters. + +- You can modify filtering behavior of filterTable by using the following functions: + + - ALLSELECTEDAPPLY + + - ALLSELECTEDREMOVE + + - ALWAYSAPPLY + + - KEEPFILTERS + + - SHADOWCLUSTER + + - NONFILTER + +## Related content + +[ALLSELECTEDAPPLY function](allselectedapply-function-dax.md) +[ALLSELECTEDREMOVE function](allselectedremove-function-dax.md) +[ALWAYSAPPLY function](alwaysapply-function-dax.md) +[KEEPFILTERS function](keepfilters-function-dax.md) +[SHADOWCLUSTER function](shadowcluster-function-dax.md) +[NONFILTER function](nonfilter-function-dax.md) +[FILTERCLUSTER function](filtercluster-function-dax.md) +[GROUPCROSSAPPLY function](groupcrossapply-function-dax.md) diff --git a/query-languages/dax/nonfilter-function-dax.md b/query-languages/dax/nonfilter-function-dax.md new file mode 100644 index 000000000..3ee7989a2 --- /dev/null +++ b/query-languages/dax/nonfilter-function-dax.md @@ -0,0 +1,35 @@ +--- +description: "Learn more about: NONFILTER" +title: "NONFILTER function (DAX) | Microsoft Docs" +--- +# NONFILTER + +Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. + +## Syntax + +```dax +NONFILTER(
) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|table expression|Any table expression.| + +## Return value + +A table of values. + +## Remarks + +- You use NONFILTER within the context GROUPCROSSAPPLY and GROUPCROSSAPPLYTABLE functions, to override the standard behavior of those functions. + +- A NONFILTER makes the table expression permanently hidden from the filter context even if its columns may have lineage. Those columns with lineage act as if they are extension columns. + +## Related content + +[Filter functions](filter-functions-dax.md) +[GROUPCROSSAPPLY function](groupcrossapply-function-dax.md) +[GROUPCROSSAPPLYTABLE function](groupcrossapplytable-function-dax.md) diff --git a/query-languages/dax/shadowcluster-function-dax.md b/query-languages/dax/shadowcluster-function-dax.md new file mode 100644 index 000000000..ad58d1b46 --- /dev/null +++ b/query-languages/dax/shadowcluster-function-dax.md @@ -0,0 +1,36 @@ +--- +description: "Learn more about: SHADOWCLUSTER" +title: "ALLSELECTEDAPPLY function (DAX) | Microsoft Docs" +--- +# SHADOWCLUSTER + +Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. + +## Syntax + +```dax +SHADOWCLUSTER(
) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|table expression|Any table expression.| + +## Return value + +A table of values. + +## Remarks + +- You use SHADOWCLUSTER within the context GROUPCROSSAPPLY and GROUPCROSSAPPLYTABLE functions, to override the standard behavior of those functions. + +- When a table is marked as SHADOWCLUSTER, it is marked internally as a "shadow" table expression so that it is only enabled in an ALLSELECTED context. + + +## Related content + +[Filter functions](filter-functions-dax.md) +[GROUPCROSSAPPLY function](groupcrossapply-function-dax.md) +[GROUPCROSSAPPLYTABLE function](groupcrossapplytable-function-dax.md) diff --git a/query-languages/dax/virtual-column-statement-dax.md b/query-languages/dax/virtual-column-statement-dax.md new file mode 100644 index 000000000..bb3a3b295 --- /dev/null +++ b/query-languages/dax/virtual-column-statement-dax.md @@ -0,0 +1,47 @@ +--- +description: "Learn more about: MEASURE" +title: "Virtual Column (DAX) | Microsoft Docs" +--- +# Virtual Column + +Introduces a virtual column definition in a DEFINE statement of a [DAX query](dax-queries.md). + +## Syntax + +```dax +[DEFINE + ( + COLUMN
[] = + ) + +] + +(EVALUATE
) + +``` + +### Parameters + +Scalar expression defines the content of virtual column. The expression is evaluated row by row on the table. The virtual column is only defined in the scope of current query. + +## Return value + +A virtual column is defined + +## Remarks + +- Virtual column is computed on-demand even for import model. This behavior is different from calculated column which is processed during refresh time. + +- For DirectQuery table, the scalar expression is subject to data source capability. The limitation is the same as DirectQuery calculated column. + +- Please carefully evaluate performance impact when defining a virtual column on a table with huge number of rows. + +- When defining virtual column over a virtual table with visual shape, this virtual column is considered a visual calculation, and subject to visual calculation limitations. + +- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] + +## Related content + +[DEFINE](define-statement-dax.md) +[EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[Virtual Table](virtual-table-statement-dax.md) +[DAX queries](dax-queries.md) diff --git a/query-languages/dax/virtual-table-statement-dax.md b/query-languages/dax/virtual-table-statement-dax.md new file mode 100644 index 000000000..d94222036 --- /dev/null +++ b/query-languages/dax/virtual-table-statement-dax.md @@ -0,0 +1,85 @@ +--- +description: "Learn more about: Virtual Table" +title: "Virtual Table (DAX) | Microsoft Docs" +--- +# Virtual Table + +Introduces a virtual table definition in a DEFINE statement of a [DAX query](dax-queries.md). + +## Syntax + +```dax +[DEFINE + ( + TABLE
=
+ [WITH VISUAL SHAPE + (AXIS + (GROUP [, ] + TOTAL ) + + ORDER BY [, ] + + ) + + [DENSIFY ] + ] + ) + +] + +(EVALUATE
) + +``` + +### Parameters + +Table expression defines the content of the virtual table. The virtual table is only defined in the scope of current query. + +Optionally a visual shape can be defined on the virtual table. Visual shape is used for visual calculation. A visual shape consists of axes with optionally a Boolean DENSIFY column. + +Axis is defined to be a list of rollup groups followed by a list of order by columns to specify how the axis is ordered. A rollup group consists of one or more group by columns and then one Boolean TOTAL column indicating whether each row is subtotal of the current rollup group. FALSE value indicates that current row is detail row (grouping by current rollup group). TRUE value indicates current row is rolled up (not grouping by current rollup group). + +If DENSIFY column is requested, then the visual shape performs a densification. This means in addition to the rows from original table expression, we also add combination of axes values that do not exist in the original table expression. In other words, we do a left outer join from the cross join of axes with the original table expression. A TRUE value in DENSIFY column indicates the current row is not in the original table expression and added by the densification process. Such row should have empty value in all measure columns (columns outside axes definitions). A FALSE value in DENSIFY column indicates the current row is from the original table expression. + +## Return value + +A virtual table is defined + +## Remark + +Unlike variables, virtual table has lineage of its own, and does not carry the lineage from the table expression it's defined from. + +## Example + +Assume a table T has following rows: +|Year|Product|SalesAmount| +|----------|---------|---------| +|2000|Apple|$ 10.1| +|2000|Banana|$ 10.2| +|2001|Apple|$ 20.3| + +```dax +DEFINE TABLE data = SUMMARIZECOLUMNS(ROLLUPADDISSUBTOTAL(T[Year], "IsYearTotal"), ROLLUPADDISSUBTOTAL(T[Product], "IsProductTotal"), "Meausre", SUM(T[SalesAmount])) + WITH VISUAL SHAPE + AXIS ROWS GROUP [Year] TOTAL [IsYearTotal] ORDER BY [Year] + AXIS COLUMNS GROUP [Product] TOTAL [IsProductTotal] ORDER BY [Product] + DENSIFY "IsDensified" +EVALUATE data +``` + +The returned result is + +|data[Year]|data[Product]|data[IsYearTotal]|data[IsProductTotal]|data[Measure]|data[IsDensified]| +|----------|---------|---------|---------|---------|---------| +|||true|true|$ 40.6|false| +|2000||false|true|$ 20.3|false| +|2001||false|true|$ 20.3|false| +||Apple|true|false|$ 30.4|false| +|2000|Apple|false|false|$ 10.1|false| +|2001|Apple|false|false|$ 20.3|false| +||Banana|true|false|$ 10.2|false| +|2000|Banana|false|false|$ 10.2|false| +|2001|Banana|false|false||true| + + +## Related content + +[DEFINE](define-statement-dax.md) +[EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[Virtual Column](virtual-column-statement-dax.md) +[DAX queries](dax-queries.md) From 126a5a93500e209314323ad76194bb13b281a6a6 Mon Sep 17 00:00:00 2001 From: Sean Tang Date: Fri, 9 Aug 2024 17:42:31 -0700 Subject: [PATCH 549/934] fix --- query-languages/dax/shadowcluster-function-dax.md | 2 +- query-languages/dax/virtual-column-statement-dax.md | 2 +- query-languages/dax/virtual-table-statement-dax.md | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/shadowcluster-function-dax.md b/query-languages/dax/shadowcluster-function-dax.md index ad58d1b46..f9e24dd39 100644 --- a/query-languages/dax/shadowcluster-function-dax.md +++ b/query-languages/dax/shadowcluster-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SHADOWCLUSTER" -title: "ALLSELECTEDAPPLY function (DAX) | Microsoft Docs" +title: "SHADOWCLUSTER function (DAX) | Microsoft Docs" --- # SHADOWCLUSTER diff --git a/query-languages/dax/virtual-column-statement-dax.md b/query-languages/dax/virtual-column-statement-dax.md index bb3a3b295..776f5e738 100644 --- a/query-languages/dax/virtual-column-statement-dax.md +++ b/query-languages/dax/virtual-column-statement-dax.md @@ -1,5 +1,5 @@ --- -description: "Learn more about: MEASURE" +description: "Learn more about: Virtual Column" title: "Virtual Column (DAX) | Microsoft Docs" --- # Virtual Column diff --git a/query-languages/dax/virtual-table-statement-dax.md b/query-languages/dax/virtual-table-statement-dax.md index d94222036..9bcc752da 100644 --- a/query-languages/dax/virtual-table-statement-dax.md +++ b/query-languages/dax/virtual-table-statement-dax.md @@ -46,6 +46,7 @@ Unlike variables, virtual table has lineage of its own, and does not carry the l ## Example Assume a table T has following rows: + |Year|Product|SalesAmount| |----------|---------|---------| |2000|Apple|$ 10.1| From e1d628a9a8d13a1d4367f77aeca1c53e0ef1516f Mon Sep 17 00:00:00 2001 From: Predrag Zugic <103694055+c0deb00k@users.noreply.github.com> Date: Sun, 11 Aug 2024 05:38:31 +0200 Subject: [PATCH 550/934] Update counta-function-dax.md COUNTA is not returning rows, it returns the number of rows... --- query-languages/dax/counta-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/counta-function-dax.md b/query-languages/dax/counta-function-dax.md index 293ef8c29..b52f916dc 100644 --- a/query-languages/dax/counta-function-dax.md +++ b/query-languages/dax/counta-function-dax.md @@ -33,7 +33,7 @@ A whole number. ## Example -The following example returns all rows in the `Reseller` table that have any kind of value in the column that stores phone numbers. +The following example returns the number of all rows in the `Reseller` table that have any kind of value in the column that stores phone numbers. ```dax = COUNTA(Reseller[Phone]) From b3b4663cbbeb50e4753faf65c96eb17efbcc29cd Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 12 Aug 2024 07:26:34 -0700 Subject: [PATCH 551/934] Adding standard and custom date and time information --- .../m/custum date and time format strings.md | 1368 +++++++++++++++++ .../standard-date-and-time-format-strings.md | 601 ++++++++ .../m/standard-timespan-format-strings.md | 112 ++ .../~$andard-date-and-time-format-strings.md | Bin 0 -> 162 bytes 4 files changed, 2081 insertions(+) create mode 100644 query-languages/m/custum date and time format strings.md create mode 100644 query-languages/m/standard-date-and-time-format-strings.md create mode 100644 query-languages/m/standard-timespan-format-strings.md create mode 100644 query-languages/m/~$andard-date-and-time-format-strings.md diff --git a/query-languages/m/custum date and time format strings.md b/query-languages/m/custum date and time format strings.md new file mode 100644 index 000000000..58345afb9 --- /dev/null +++ b/query-languages/m/custum date and time format strings.md @@ -0,0 +1,1368 @@ +--- +title: "Custom date and time format strings" +description: Learn to use custom date and time format strings to convert DateTime or DateTimeOffset values into text representations, or to parse strings for dates & times. +author: DougKlopfenstein +ms.author: dougklo +ms.date: 8/9/2024 +ms.topic: reference +--- + +# Custom date and time format strings + +A date and time format string defines the text representation of a [Date](date-functions.md), [DateTime](datetime-functions.md), [DateTimeZone](datetimezone-functions.md), or [Time](time-functions.md) value that results from a formatting operation. It can also define the representation of a date and time value that is required in a parsing operation in order to successfully convert the string to a date and time. A custom format string consists of one or more custom date and time format specifiers. Any string that is not a [standard date and time format string](standard-date-and-time-format-strings.md) is interpreted as a custom date and time format string. + + + +In formatting operations, custom date and time format strings can be used with the `ToText` method of a date and time and timezone instance. The following example illustrates its uses. + +```powerquery-m +let + dateValue1 = #date(2011, 6, 10), + thisDate = Text.From("Today is " & Date.ToText(dateValue1, [Format = "MMMM dd yyyy"]) & "."), + dateValue2 = #datetimezone(2011, 6, 10, 15, 24, 16, 0, 0), + currentDate = Text.Format("The current date and time: #{0}", {DateTimeZone.ToText(dateValue2, [Format = "MM/dd/yy H:mm:ss zzz"])}), + dates = thisDate & "#(cr,lf)" & currentDate +in + dates + +// The example displays the following output: +// Today is June 10, 2011. +// The current date and time: 06/10/11 15:24:16 +00:00 +``` + + + + The following table describes the custom date and time format specifiers and displays a result string produced by each format specifier. By default, result strings reflect the formatting conventions of the en-US culture. If a particular format specifier produces a localized result string, the example also notes the culture to which the result string applies. For more information about using custom date and time format strings, go to the [Notes](#notes) section. + +| Format specifier | Description | Examples | +|--|--|--| +| "d" | The day of the month, from 1 to 31.

More information: [The "d" Custom Format Specifier](#dSpecifier). | 2009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 15 | +| "dd" | The day of the month, from 01 to 31.

More information: [The "dd" Custom Format Specifier](#ddSpecifier). | 2009-06-01T13:45:30 -> 01

2009-06-15T13:45:30 -> 15 | +| "ddd" | The abbreviated name of the day of the week.

More information: [The "ddd" Custom Format Specifier](#dddSpecifier). | 2009-06-15T13:45:30 -> Mon (en-US)

2009-06-15T13:45:30 -> Пн (ru-RU)

2009-06-15T13:45:30 -> lun. (fr-FR) | +| "dddd" | The full name of the day of the week.

More information: [The "dddd" Custom Format Specifier](#ddddSpecifier). | 2009-06-15T13:45:30 -> Monday (en-US)

2009-06-15T13:45:30 -> понедельник (ru-RU)

2009-06-15T13:45:30 -> lundi (fr-FR) | +| "f" | The tenths of a second in a date and time value.

More information: [The "f" Custom Format Specifier](#fSpecifier). | 2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.05 -> 0 | +| "ff" | The hundredths of a second in a date and time value.

More information: [The "ff" Custom Format Specifier](#ffSpecifier). | 2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> 00 | +| "fff" | The milliseconds in a date and time value.

More information: [The "fff" Custom Format Specifier](#fffSpecifier). | 6/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> 000 | +| "ffff" | The ten thousandths of a second in a date and time value.

More information: [The "ffff" Custom Format Specifier](#ffffSpecifier). | 2009-06-15T13:45:30.6175000 -> 6175

2009-06-15T13:45:30.0000500 -> 0000 | +| "fffff" | The hundred thousandths of a second in a date and time value.

More information: [The "fffff" Custom Format Specifier](#fffffSpecifier). | 2009-06-15T13:45:30.6175400 -> 61754

6/15/2009 13:45:30.000005 -> 00000 | +| "ffffff" | The millionths of a second in a date and time value.

More information: [The "ffffff" Custom Format Specifier](#ffffffSpecifier). | 2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> 000000 | +| "fffffff" | The ten millionths of a second in a date and time value.

More information: [The "fffffff" Custom Format Specifier](#fffffffSpecifier). | 2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 0001150 | +| "F" | If non-zero, the tenths of a second in a date and time value.

More information: [The "F" Custom Format Specifier](#F_Specifier). | 2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.0500000 -> (no output) | +| "FF" | If non-zero, the hundredths of a second in a date and time value.

More information: [The "FF" Custom Format Specifier](#FF_Specifier). | 2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> (no output) | +| "FFF" | If non-zero, the milliseconds in a date and time value.

More information: [The "FFF" Custom Format Specifier](#FFF_Specifier). | 2009-06-15T13:45:30.6170000 -> 617

2009-06-15T13:45:30.0005000 -> (no output) | +| "FFFF" | If non-zero, the ten thousandths of a second in a date and time value.

More information: [The "FFFF" Custom Format Specifier](#FFFF_Specifier). | 2009-06-15T13:45:30.5275000 -> 5275

2009-06-15T13:45:30.0000500 -> (no output) | +| "FFFFF" | If non-zero, the hundred thousandths of a second in a date and time value.

More information: [The "FFFFF" Custom Format Specifier](#FFFFF_Specifier). | 2009-06-15T13:45:30.6175400 -> 61754

2009-06-15T13:45:30.0000050 -> (no output) | +| "FFFFFF" | If non-zero, the millionths of a second in a date and time value.

More information: [The "FFFFFF" Custom Format Specifier](#FFFFFF_Specifier). | 2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> (no output) | +| "FFFFFFF" | If non-zero, the ten millionths of a second in a date and time value.

More information: [The "FFFFFFF" Custom Format Specifier](#FFFFFFF_Specifier). | 2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 000115 | +| "g", "gg" | The period or era.

More information: [The "g" or "gg" Custom Format Specifier](#gSpecifier). | 2009-06-15T13:45:30.6170000 -> A.D. | +| "h" | The hour, using a 12-hour clock from 1 to 12.

More information: [The "h" Custom Format Specifier](#hSpecifier). | 2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 1 | +| "hh" | The hour, using a 12-hour clock from 01 to 12.

More information: [The "hh" Custom Format Specifier](#hhSpecifier). | 2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 01 | +| "H" | The hour, using a 24-hour clock from 0 to 23.

More information: [The "H" Custom Format Specifier](#H_Specifier). | 2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 13 | +| "HH" | The hour, using a 24-hour clock from 00 to 23.

More information: [The "HH" Custom Format Specifier](#HH_Specifier). | 2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 13 | +| "K" | Time zone information.

More information: [The "K" Custom Format Specifier](#KSpecifier). | With values:

2009-06-15T13:45:30, Kind Unspecified ->

2009-06-15T13:45:30, Kind Utc -> Z

2009-06-15T13:45:30, Kind Local -> -07:00 (depends on local computer settings)

With values:

2009-06-15T01:45:30-07:00 --> -07:00

2009-06-15T08:45:30+00:00 --> +00:00 | +| "m" | The minute, from 0 to 59.

More information: [The "m" Custom Format Specifier](#mSpecifier). | 2009-06-15T01:09:30 -> 9

2009-06-15T13:29:30 -> 29 | +| "mm" | The minute, from 00 to 59.

More information: [The "mm" Custom Format Specifier](#mmSpecifier). | 2009-06-15T01:09:30 -> 09

2009-06-15T01:45:30 -> 45 | +| "M" | The month, from 1 to 12.

More information: [The "M" Custom Format Specifier](#M_Specifier). | 2009-06-15T13:45:30 -> 6 | +| "MM" | The month, from 01 to 12.

More information: [The "MM" Custom Format Specifier](#MM_Specifier). | 2009-06-15T13:45:30 -> 06 | +| "MMM" | The abbreviated name of the month.

More information: [The "MMM" Custom Format Specifier](#MMM_Specifier). | 2009-06-15T13:45:30 -> Jun (en-US)

2009-06-15T13:45:30 -> juin (fr-FR)

2009-06-15T13:45:30 -> Jun (zu-ZA) | +| "MMMM" | The full name of the month.

More information: [The "MMMM" Custom Format Specifier](#MMMM_Specifier). | 2009-06-15T13:45:30 -> June (en-US)

2009-06-15T13:45:30 -> juni (da-DK)

2009-06-15T13:45:30 -> uJuni (zu-ZA) | +| "s" | The second, from 0 to 59.

More information: [The "s" Custom Format Specifier](#sSpecifier). | 2009-06-15T13:45:09 -> 9 | +| "ss" | The second, from 00 to 59.

More information: [The "ss" Custom Format Specifier](#ssSpecifier). | 2009-06-15T13:45:09 -> 09 | +| "t" | The first character of the AM/PM designator.

More information: [The "t" Custom Format Specifier](#tSpecifier). | 2009-06-15T13:45:30 -> P (en-US)

2009-06-15T13:45:30 -> 午 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR) | +| "tt" | The AM/PM designator.

More information: [The "tt" Custom Format Specifier](#ttSpecifier). | 2009-06-15T13:45:30 -> PM (en-US)

2009-06-15T13:45:30 -> 午後 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR) | +| "y" | The year, from 0 to 99.

More information: [The "y" Custom Format Specifier](#ySpecifier). | 0001-01-01T00:00:00 -> 1

0900-01-01T00:00:00 -> 0

1900-01-01T00:00:00 -> 0

2009-06-15T13:45:30 -> 9

2019-06-15T13:45:30 -> 19 | +| "yy" | The year, from 00 to 99.

More information: [The "yy" Custom Format Specifier](#yySpecifier). | 0001-01-01T00:00:00 -> 01

0900-01-01T00:00:00 -> 00

1900-01-01T00:00:00 -> 00

2019-06-15T13:45:30 -> 19 | +| "yyy" | The year, with a minimum of three digits.

More information: [The "yyy" Custom Format Specifier](#yyySpecifier). | 0001-01-01T00:00:00 -> 001

0900-01-01T00:00:00 -> 900

1900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 2009 | +| "yyyy" | The year as a four-digit number.

More information: [The "yyyy" Custom Format Specifier](#yyyySpecifier). | 0001-01-01T00:00:00 -> 0001

0900-01-01T00:00:00 -> 0900

1900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 2009 | +| "yyyyy" | The year as a five-digit number.

More information: [The "yyyyy" Custom Format Specifier](#yyyyySpecifier). | 0001-01-01T00:00:00 -> 00001

2009-06-15T13:45:30 -> 02009 | +| "z" | Hours offset from UTC, with no leading zeros.

More information: [The "z" Custom Format Specifier](#zSpecifier). | 2009-06-15T13:45:30-07:00 -> -7 | +| "zz" | Hours offset from UTC, with a leading zero for a single-digit value.

More information: [The "zz" Custom Format Specifier](#zzSpecifier). | 2009-06-15T13:45:30-07:00 -> -07 | +| "zzz" | Hours and minutes offset from UTC.

More information: [The "zzz" Custom Format Specifier](#zzzSpecifier). | 2009-06-15T13:45:30-07:00 -> -07:00 | +| ":" | The time separator.

More information: [The ":" Custom Format Specifier](#timeSeparator). | 2009-06-15T13:45:30 -> : (en-US)

2009-06-15T13:45:30 -> . (it-IT)

2009-06-15T13:45:30 -> : (ja-JP) | +| "/" | The date separator.

More Information: [The "/" Custom Format Specifier](#dateSeparator). | 2009-06-15T13:45:30 -> / (en-US)

2009-06-15T13:45:30 -> - (ar-DZ)

2009-06-15T13:45:30 -> . (tr-TR) | +| "*string*"

'*string*' | Literal string delimiter.

More information: [Character literals](#Literals). | 2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P | +| % | Defines the following character as a custom format specifier.

More information: [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers). | 2009-06-15T13:45:30 (%h) -> 1 | +| \ | The escape character.

More information: [Character literals](#Literals) and [Using the Escape Character](#escape). | 2009-06-15T13:45:30 (h \h) -> 1 h | +| Any other character | The character is copied to the result string unchanged.

More information: [Character literals](#Literals). | 2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A | + +The following sections provide additional information about each custom date and time format specifier. Unless otherwise noted, each specifier produces an identical string representation regardless of whether it's used with a **Date**, **DateTime**, **DateTimeZone**, or **Time** value. + +## Day "d" format specifier + +### The "d" custom format specifier + +The "d" custom format specifier represents the day of the month as a number from 1 to 31. A single-digit day is formatted without a leading zero. + +If the "d" format specifier is used without other custom format specifiers, it's interpreted as the "d" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "d" custom format specifier in several format strings. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15), + +DateTimeExample1 = DateTime.ToText(Source, "d, M"), +// displays 29, 8 + +DateTimeExample2 = DateTime.ToText(Source, "d, MMMM", "en-US"), +// displays 29, August + +DateTimeExample3 = DateTime.ToText(Source, "d, MMMM", "es-MX") +// displays 29, agosto +``` + +[Back to table](#table) + +### The "dd" custom format specifier + +The "dd" custom format string represents the day of the month as a number from 01 to 31. A single-digit day is formatted with a leading zero. + +The following example includes the "dd" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 1, 2, 6, 30, 15), + +DateTimeExample1 = DateTime.ToText(Source, "dd, MM") +// displays 02, 01 +``` + +[Back to table](#table) + +### The "ddd" custom format specifier + +The "ddd" custom format specifier represents the abbreviated name of the day of the week. The localized abbreviated name of the day of the week is retrieved from the current or specified culture. + +The following example includes the "ddd" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15), + +DateTimeExample1 = DateTime.ToText(Source, "ddd d MMM", "en-US"), +// displays Thu 29 Aug + +DateTimeExample2 = DateTime.ToText(Source, "ddd d MMM", "fr-FR") +// displays jeu. 29 août +``` + +[Back to table](#table) + +### The "dddd" custom format specifier + +The "dddd" custom format specifier (plus any number of additional "d" specifiers) represents the full name of the day of the week. The localized name of the day of the week is retrieved from the current or specified culture. + +The following example includes the "dddd" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15), + +DateTimeExample1 = DateTime.ToText(Source, "dddd dd MMMM", "en-US"), +// displays Thursday 29 August + +DateTimeExample2 = DateTime.ToText(Source, "dddd dd MMMM", "it-IT") +// displays giovedì 29 agosto +``` + +[Back to table](#table) + +## Lowercase seconds "f" fraction specifier + +### The "f" custom format specifier + +The "f" custom format specifier represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value. + +If the "f" format specifier is used without other format specifiers, it's interpreted as the "f" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + + + +The following example includes the "f" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15.018), + +DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), +// Displays 07:27:15:0 + +DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), +// Displays 07:27:15: + +DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), +// Displays 07:27:15:01 + +DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), +// Displays 07:27:15:01 + +DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), +// Displays 07:27:15:018 + +DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") +// Displays 07:27:15:018 +``` + +[Back to table](#table) + +### The "ff" custom format specifier + +The "ff" custom format specifier represents the two most significant digits of the seconds fraction; that is, it represents the hundredths of a second in a date and time value. + +following example includes the "ff" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15.018), + +DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), +// Displays 07:27:15:0 + +DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), +// Displays 07:27:15: + +DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), +// Displays 07:27:15:01 + +DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), +// Displays 07:27:15:01 + +DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), +// Displays 07:27:15:018 + +DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") +// Displays 07:27:15:018 +``` + +[Back to table](#table) + +### The "fff" custom format specifier + +The "fff" custom format specifier represents the three most significant digits of the seconds fraction; that is, it represents the milliseconds in a date and time value. + +The following example includes the "fff" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15.018), + +DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), +// Displays 07:27:15:0 + +DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), +// Displays 07:27:15: + +DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), +// Displays 07:27:15:01 + +DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), +// Displays 07:27:15:01 + +DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), +// Displays 07:27:15:018 + +DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") +// Displays 07:27:15:018 +``` + +[Back to table](#table) + +### The "ffff" custom format specifier + +The "ffff" custom format specifier represents the four most significant digits of the seconds fraction; that is, it represents the ten thousandths of a second in a date and time value. + +Although it's possible to display the ten thousandths of a second component of a time value, that value might not be meaningful. The precision of date and time values depends on the resolution of the system clock. On the Windows Server 2019 and Windows 11 operating systems, the clock's resolution is approximately 1 millisecond. + +[Back to table](#table) + +### The "fffff" custom format specifier + +The "fffff" custom format specifier represents the five most significant digits of the seconds fraction; that is, it represents the hundred thousandths of a second in a date and time value. + +Although it's possible to display the hundred thousandths of a second component of a time value, that value might not be meaningful. The precision of date and time values depends on the resolution of the system clock. On the Windows Server 2019 and Windows 11 operating systems, the clock's resolution is approximately 1 millisecond. + +[Back to table](#table) + +### The "ffffff" custom format specifier + +The "ffffff" custom format specifier represents the six most significant digits of the seconds fraction; that is, it represents the millionths of a second in a date and time value. + +Although it's possible to display the millionths of a second component of a time value, that value might not be meaningful. The precision of date and time values depends on the resolution of the system clock. On the Windows Server 2019 and Windows 11 operating systems, the clock's resolution is approximately 1 millisecond. + +[Back to table](#table) + +### The "fffffff" custom format specifier + +The "fffffff" custom format specifier represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value. + +Although it's possible to display the ten millionths of a second component of a time value, that value might not be meaningful. The precision of date and time values depends on the resolution of the system clock. On the Windows Server 2019 and Windows 11 operating systems, the clock's resolution is approximately 1 millisecond. + +[Back to table](#table) + +## Uppercase seconds "F" fraction specifier + +### The "F" custom format specifier + +The "F" custom format specifier represents the most significant digit of the seconds fraction; that is, it represents the tenths of a second in a date and time value. Nothing is displayed if the digit is zero, and the decimal point that follows the number of seconds is also not displayed. + +If the "F" format specifier is used without other format specifiers, it's interpreted as the "F" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + + + +The following example includes the "F" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15.018), + +DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), +// Displays 07:27:15:0 + +DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), +// Displays 07:27:15: + +DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), +// Displays 07:27:15:01 + +DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), +// Displays 07:27:15:01 + +DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), +// Displays 07:27:15:018 + +DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") +// Displays 07:27:15:018 +``` + +[Back to table](#table) + +### The "FF" custom format specifier + +The "FF" custom format specifier represents the two most significant digits of the seconds fraction; that is, it represents the hundredths of a second in a date and time value. Trailing zeros aren't displayed. Nothing is displayed if the two significant digits are zero, and in that case the decimal point that follows the number of seconds is also not displayed. + +The following example includes the "FF" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15.018), + +DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), +// Displays 07:27:15:0 + +DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), +// Displays 07:27:15: + +DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), +// Displays 07:27:15:01 + +DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), +// Displays 07:27:15:01 + +DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), +// Displays 07:27:15:018 + +DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") +// Displays 07:27:15:018 +``` + +[Back to table](#table) + +### The "FFF" custom format specifier + +The "FFF" custom format specifier represents the three most significant digits of the seconds fraction; that is, it represents the milliseconds in a date and time value. Trailing zeros aren't displayed. Nothing is displayed if the three significant digits are zero, and in that case the decimal point that follows the number of seconds is also not displayed. + +The following example includes the "FFF" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15.018), + +DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), +// Displays 07:27:15:0 + +DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), +// Displays 07:27:15: + +DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), +// Displays 07:27:15:01 + +DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), +// Displays 07:27:15:01 + +DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), +// Displays 07:27:15:018 + +DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") +// Displays 07:27:15:018 +``` + +[Back to table](#table) + +### The "FFFF" custom format specifier + +The "FFFF" custom format specifier represents the four most significant digits of the seconds fraction; that is, it represents the ten thousandths of a second in a date and time value. Trailing zeros aren't displayed. Nothing is displayed if the four significant digits are zero, and in that case the decimal point that follows the number of seconds is also not displayed. + +Although it's possible to display the ten thousandths of a second component of a time value, that value might not be meaningful. The precision of date and time values depends on the resolution of the system clock. On the Windows Server 2019 and Windows 11 operating systems, the clock's resolution is approximately 1 millisecond. + +[Back to table](#table) + +### The "FFFFF" custom format specifier + +The "FFFFF" custom format specifier represents the five most significant digits of the seconds fraction; that is, it represents the hundred thousandths of a second in a date and time value. Trailing zeros aren't displayed. Nothing is displayed if the five significant digits are zero, and in that case the decimal point that follows the number of seconds is also not displayed. + +Although it's possible to display the hundred thousandths of a second component of a time value, that value might not be meaningful. The precision of date and time values depends on the resolution of the system clock. On the Windows Server 2019 and Windows 11 operating systems, the clock's resolution is approximately 1 millisecond. + +[Back to table](#table) + +### The "FFFFFF" custom format specifier + +The "FFFFFF" custom format specifier represents the six most significant digits of the seconds fraction; that is, it represents the millionths of a second in a date and time value. Trailing zeros aren't displayed. Nothing is displayed if the six significant digits are zero, and in that case the decimal point that follows the number of seconds is also not displayed. + +Although it's possible to display the millionths of a second component of a time value, that value might not be meaningful. The precision of date and time values depends on the resolution of the system clock. On the Windows Server 2019 and Windows 11 operating systems, the clock's resolution is approximately 1 millisecond. + +[Back to table](#table) + +### The "FFFFFFF" custom format specifier + +The "FFFFFFF" custom format specifier represents the seven most significant digits of the seconds fraction; that is, it represents the ten millionths of a second in a date and time value. Trailing zeros aren't displayed. Nothing is displayed if the seven significant digits are zero, and in that case the decimal point that follows the number of seconds is also not displayed. + +Although it's possible to display the ten millionths of a second component of a time value, that value might not be meaningful. The precision of date and time values depends on the resolution of the system clock. On the Windows Server 2019 and Windows 11 operating systems, the clock's resolution is approximately 1 millisecond. + +[Back to table](#table) + +## Era "g" format specifier + +### The "g" or "gg" custom format specifier + +The "g" or "gg" custom format specifiers (plus any number of additional "g" specifiers) represents the period or era, such as A.D. The formatting operation ignores this specifier if the date to be formatted doesn't have an associated period or era string. + +If the "g" format specifier is used without other custom format specifiers, it's interpreted as the "g" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "g" custom format specifier in a custom format string. + +```powerquery-m +Source = #date(70, 08, 04), + +DateExample1 = Date.ToText(Source, [Format = "MM/dd/yyyy g"]), +// Displays 08/04/0070 A.D. + +DateExample2 = Date.ToText(Source, [Format = "MM/dd/yyyy g", Culture = "fr-FR"]) +// Displays 08/04/0070 ap. J.-C. +``` + +[Back to table](#table) + +## Lowercase hour "h" format specifier + +### The "h" custom format specifier + +The "h" custom format specifier represents the hour as a number from 1 to 12; that is, the hour is represented by a 12-hour clock that counts the whole hours since midnight or noon. A particular hour after midnight is indistinguishable from the same hour after noon. The hour isn't rounded, and a single-digit hour is formatted without a leading zero. For example, given a time of 5:43 in the morning or afternoon, this custom format specifier displays "5". + +If the "h" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws an expression error. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "h" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #datetime(2024, 1, 1, 18, 9, 1), + +DateTimeExample1 = DateTime.ToText(Source1, "h:m:s.F t"), +// Displays 6:9:1 P + +DateTimeExample2 = DateTime.ToText(Source1, "h:m:s.F t", "el-GR"), +// Displays 6:9:1 μ + +Source2 = #datetime(2024, 1, 1, 8, 18, 1.500), + +DateTimeExample3 = DateTime.ToText(Source2, "h:m:s.F t"), +// Displays 9:18:1.5 A + +DateTimeExample4 = DateTime.ToText(Source2, "h:m:s.F t", "el-GR") +// Displays 9:18:1.5 π +``` + +[Back to table](#table) + +### The "hh" custom format specifier + +The "hh" custom format specifier (plus any number of additional "h" specifiers) represents the hour as a number from 01 to 12; that is, the hour is represented by a 12-hour clock that counts the whole hours since midnight or noon. A particular hour after midnight is indistinguishable from the same hour after noon. The hour isn't rounded, and a single-digit hour is formatted with a leading zero. For example, given a time of 5:43 in the morning or afternoon, this format specifier displays "05". + +The following example includes the "hh" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #datetime(2024, 1, 1, 18, 9, 1), + +DateTimeExample1 = DateTime.ToText(Source1, "hh:mm:ss tt"), +// Displays 06:09:01 PM + +DateTimeExample2 = DateTime.ToText(Source1, "hh:mm:ss tt", "hu-HU"), +// Displays 06:09:01 du. + +Source2 = #datetime(2024, 1, 1, 9, 18, 1.500), + +DateTimeExample3 = DateTime.ToText(Source2, "hh:mm:ss.ff tt"), +// Displays 09:18:01.50 AM + +DateTimeExample4 = DateTime.ToText(Source2, "hh:mm:ss.ff tt", "hu-HU") +// Displays 09:18:01.50 de. +``` + +[Back to table](#table) + +## Uppercase hour "H" format specifier + +### The "H" custom format specifier + +The "H" custom format specifier represents the hour as a number from 0 to 23; that is, the hour is represented by a zero-based 24-hour clock that counts the hours since midnight. A single-digit hour is formatted without a leading zero. + +If the "H" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws an expression error. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "H" custom format specifier in a custom format string. + +```powerquery-m + Source = #datetime(2024, 1, 1, 6, 9, 1), + + DateTimeExample1 = DateTime.ToText(Source, "H:mm:ss") +// Displays 6:09:01 +``` + +[Back to table](#table) + +### The "HH" custom format specifier + +The "HH" custom format specifier (plus any number of additional "H" specifiers) represents the hour as a number from 00 to 23; that is, the hour is represented by a zero-based 24-hour clock that counts the hours since midnight. A single-digit hour is formatted with a leading zero. + +The following example includes the "HH" custom format specifier in a custom format string. + +```powerquery-m + Source = #datetime(2024, 1, 1, 6, 9, 1), + + DateTimeExample1 = DateTime.ToText(Source, "HH:mm:ss") +// Displays 06:09:01 +``` + +[Back to table](#table) + +## Time zone "K" format specifier + +### The "K" custom format specifier + +The "K" custom format specifier represents the time zone information of a date and time value. When this format specifier is used with **DateTimeZone** values, the result string is defined as: + +- For the local time zone, this specifier produces a result string containing the local offset from Coordinated Universal Time (UTC); for example, "-07:00". + + +- For a time from an unspecified time zone, the result is empty. + + +If the "K" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws an expression error. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example displays the string that results from using the "K" custom format specifier with various values on a system in the U.S. Pacific Time zone. + +```powerquery-m +zoneOutput1 = DateTimeZone.ToText(DateTimeZone.LocalNow(),[Format="%K"]), +// Displays -07:00 + +zoneOutput2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="%K"]) +// Displays +00:00 + +zoneOutput3 = Text.Format("'#{0}'", {DateTime.ToText(DateTime.LocalNow(),[Format="%K"])}) +// Displays '' +``` + +> [!NOTE] +>The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `-7:00` because it's reading the time set on your local machine. However, Power Query Online returns `+00:00` because it's reading the time set on the cloud virtual machines, which are set to UTC. + + + +[Back to table](#table) + +## Minute "m" format specifier + +### The "m" custom format specifier + +The "m" custom format specifier represents the minute as a number from 0 to 59. The minute represents whole minutes that have passed since the last hour. A single-digit minute is formatted without a leading zero. + +If the "m" format specifier is used without other custom format specifiers, it's interpreted as the "m" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "m" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #datetime(2024, 1, 1, 18, 9, 1), + +DateTimeExample1 = DateTime.ToText(Source1, "h:m:s.F t"), +// Displays 6:9:1 P + +DateTimeExample2 = DateTime.ToText(Source1, "h:m:s.F t", "el-GR"), +// Displays 6:9:1 μ + +Source2 = #datetime(2024, 1, 1, 8, 18, 1.500), + +DateTimeExample3 = DateTime.ToText(Source2, "h:m:s.F t"), +// Displays 9:18:1.5 A + +DateTimeExample4 = DateTime.ToText(Source2, "h:m:s.F t", "el-GR") +// Displays 9:18:1.5 π +``` + +[Back to table](#table) + +### The "mm" custom format specifier + +The "mm" custom format specifier (plus any number of additional "m" specifiers) represents the minute as a number from 00 to 59. The minute represents whole minutes that have passed since the last hour. A single-digit minute is formatted with a leading zero. + +The following example includes the "mm" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #datetime(2024, 1, 1, 18, 9, 1), + +DateTimeExample1 = DateTime.ToText(Source1, "hh:mm:ss tt"), +// Displays 06:09:01 PM + +DateTimeExample2 = DateTime.ToText(Source1, "hh:mm:ss tt", "hu-HU"), +// Displays 06:09:01 du. + +Source2 = #datetime(2024, 1, 1, 9, 18, 1.500), + +DateTimeExample3 = DateTime.ToText(Source2, "hh:mm:ss.ff tt"), +// Displays 09:18:01.50 AM + +DateTimeExample4 = DateTime.ToText(Source2, "hh:mm:ss.ff tt", "hu-HU") +// Displays 09:18:01.50 de. +``` + +[Back to table](#table) + +## Month "M" format specifier + +### The "M" custom format specifier + +The "M" custom format specifier represents the month as a number from 1 to 12 (or from 1 to 13 for calendars that have 13 months). A single-digit month is formatted without a leading zero. + +If the "M" format specifier is used without other custom format specifiers, it's interpreted as the "M" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "M" custom format specifier in a custom format string. + +```powerquery-m +Source = #date(2024, 8, 18), + +DateExample1 = Date.ToText(Source, "(M) MMM, MMMM", "en-US"), +// Displays (8) Aug, August + +DateExample2 = Date.ToText(Source, "(M) MMM, MMMM", "nl-NL"), +// Displays (8) aug, augustus + +DateExample3 = Date.ToText(Source, "(M) MMM, MMMM", "lv-LV"), +// Displays (8) aug., augusts +``` + +[Back to table](#table) + +### The "MM" custom format specifier + +The "MM" custom format specifier represents the month as a number from 01 to 12 (or from 1 to 13 for calendars that have 13 months). A single-digit month is formatted with a leading zero. + +The following example includes the "MM" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 1, 2, 6, 30, 15), + +DateTimeExample1 = DateTime.ToText(Source, "dd, MM") +// Displays 02, 01 +``` + +[Back to table](#table) + +### The "MMM" custom format specifier + +The "MMM" custom format specifier represents the abbreviated name of the month. The localized abbreviated name of the month is retrieved from the current or specified culture. + +The following example includes the "MMM" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15), + +DateTimeExample1 = DateTime.ToText(Source, "ddd d MMM", "en-US"), +// Displays Thu 29 Aug + +DateTimeExample2 = DateTime.ToText(Source, "ddd d MMM", "fr-FR") +// Displays jeu. 29 août +``` + +[Back to table](#table) + +### The "MMMM" custom format specifier + +The "MMMM" custom format specifier represents the full name of the month. The localized name of the month is retrieved from the current or specified culture. + +The following example includes the "MMMM" custom format specifier in a custom format string. + +```powerquery-m +Source = #datetime(2024, 8, 29, 19, 27, 15), + +DateTimeExample1 = DateTime.ToText(Source, "dddd dd MMMM", "en-US"), +// Displays Thursday 29 August + +DateTimeExample2 = DateTime.ToText(Source, "dddd dd MMMM", "it-IT") +// Displays giovedì 29 agosto +``` + +[Back to table](#table) + +## Seconds "s" format specifier + +### The "s" custom format specifier + +The "s" custom format specifier represents the seconds as a number from 0 to 59. The result represents whole seconds that have passed since the last minute. A single-digit second is formatted without a leading zero. + +If the "s" format specifier is used without other custom format specifiers, it's interpreted as the "s" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "s" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #datetime(2024, 1, 1, 18, 9, 1), + +DateTimeExample1 = DateTime.ToText(Source1, "h:m:s.F t"), +// Displays 6:9:1 P + +DateTimeExample2 = DateTime.ToText(Source1, "h:m:s.F t", "el-GR"), +// Displays 6:9:1 μ + +Source2 = #datetime(2024, 1, 1, 8, 18, 1.500), + +DateTimeExample3 = DateTime.ToText(Source2, "h:m:s.F t"), +// Displays 9:18:1.5 A + +DateTimeExample4 = DateTime.ToText(Source2, "h:m:s.F t", "el-GR") +// Displays 9:18:1.5 π +``` + +[Back to table](#table) + +### The "ss" custom format specifier + +The "ss" custom format specifier (plus any number of additional "s" specifiers) represents the seconds as a number from 00 to 59. The result represents whole seconds that have passed since the last minute. A single-digit second is formatted with a leading zero. + +The following example includes the "ss" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #datetime(2024, 1, 1, 18, 9, 1), + +DateTimeExample1 = DateTime.ToText(Source1, "hh:mm:ss tt"), +// Displays 06:09:01 PM + +DateTimeExample2 = DateTime.ToText(Source1, "hh:mm:ss tt", "hu-HU"), +// Displays 06:09:01 du. + +Source2 = #datetime(2024, 1, 1, 9, 18, 1.500), + +DateTimeExample3 = DateTime.ToText(Source2, "hh:mm:ss.ff tt"), +// Displays 09:18:01.50 AM + +DateTimeExample4 = DateTime.ToText(Source2, "hh:mm:ss.ff tt", "hu-HU") +// Displays 09:18:01.50 de. +``` + +[Back to table](#table) + +## Meridiem "t" format specifier + +### The "t" custom format specifier + +The "t" custom format specifier represents the first character of the AM/PM designator. The appropriate localized designator is retrieved from the current or specific culture. The AM designator is used for all times from 0:00:00 (midnight) to 11:59:59.999. The PM designator is used for all times from 12:00:00 (noon) to 23:59:59.999. + +If the "t" format specifier is used without other custom format specifiers, it's interpreted as the "t" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "t" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #datetime(2024, 1, 1, 18, 9, 1), + +DateTimeExample1 = DateTime.ToText(Source1, "h:m:s.F t"), +// Displays 6:9:1 P + +DateTimeExample2 = DateTime.ToText(Source1, "h:m:s.F t", "el-GR"), +// Displays 6:9:1 μ + +Source2 = #datetime(2024, 1, 1, 8, 18, 1.500), + +DateTimeExample3 = DateTime.ToText(Source2, "h:m:s.F t"), +// Displays 9:18:1.5 A + +DateTimeExample4 = DateTime.ToText(Source2, "h:m:s.F t", "el-GR") +// Displays 9:18:1.5 π +``` + +[Back to table](#table) + +### The "tt" custom format specifier + +The "tt" custom format specifier (plus any number of additional "t" specifiers) represents the entire AM/PM designator. The appropriate localized designator is retrieved from the current or specific culture. The AM designator is used for all times from 0:00:00 (midnight) to 11:59:59.999. The PM designator is used for all times from 12:00:00 (noon) to 23:59:59.999. + +Make sure to use the "tt" specifier for languages for which it's necessary to maintain the distinction between AM and PM. An example is Japanese, for which the AM and PM designators differ in the second character instead of the first character. + +The following example includes the "tt" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #datetime(2024, 1, 1, 18, 9, 1), + +DateTimeExample1 = DateTime.ToText(Source1, "hh:mm:ss tt"), +// Displays 06:09:01 PM + +DateTimeExample2 = DateTime.ToText(Source1, "hh:mm:ss tt", "hu-HU"), +// Displays 06:09:01 du. + +Source2 = #datetime(2024, 1, 1, 9, 18, 1.500), + +DateTimeExample3 = DateTime.ToText(Source2, "hh:mm:ss.ff tt"), +// Displays 09:18:01.50 AM + +DateTimeExample4 = DateTime.ToText(Source2, "hh:mm:ss.ff tt", "hu-HU") +// Displays 09:18:01.50 de. +``` + +[Back to table](#table) + +## Year "y" format specifier + +### The "y" custom format specifier + +The "y" custom format specifier represents the year as a one-digit or two-digit number. If the year has more than two digits, only the two low-order digits appear in the result. If the first digit of a two-digit year begins with a zero (for example, 2008), the number is formatted without a leading zero. + +If the "y" format specifier is used without other custom format specifiers, it's interpreted as the "y" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "y" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #date(1, 12, 1), +Source2 = #date(2024, 1, 1), + +DateExample1 = Date.ToText(Source1, "%y"), +// Displays 1 + +DateExample2 = Date.ToText(Source1, "yy"), +// Displays 01 + +DateExample3 = Date.ToText(Source1, "yyy"), +// Displays 001 + +DateExample4 = Date.ToText(Source1, "yyyy"), +// Displays 0001 + +DateExample5 = Date.ToText(Source1, "yyyyy"), +// Displays 00001 + +DateExample6 = Date.ToText(Source2, "%y"), +// Displays 24 + +DateExample7 = Date.ToText(Source2, "yy"), +// Displays 24 + +DateExample8 = Date.ToText(Source2, "yyy"), +// Displays 2024 + +DateExample9 = Date.ToText(Source2, "yyyy"), +// Displays 2024 + +DateExample10 = Date.ToText(Source2, "yyyyy") +// Displays 02024 +``` + +[Back to table](#table) + +### The "yy" custom format specifier + +The "yy" custom format specifier represents the year as a two-digit number. If the year has more than two digits, only the two low-order digits appear in the result. If the two-digit year has fewer than two significant digits, the number is padded with leading zeros to produce two digits. + + +The following example includes the "yy" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #date(1, 12, 1), +Source2 = #date(2024, 1, 1), + +DateExample1 = Date.ToText(Source1, "%y"), +// Displays 1 + +DateExample2 = Date.ToText(Source1, "yy"), +// Displays 01 + +DateExample3 = Date.ToText(Source1, "yyy"), +// Displays 001 + +DateExample4 = Date.ToText(Source1, "yyyy"), +// Displays 0001 + +DateExample5 = Date.ToText(Source1, "yyyyy"), +// Displays 00001 + +DateExample6 = Date.ToText(Source2, "%y"), +// Displays 24 + +DateExample7 = Date.ToText(Source2, "yy"), +// Displays 24 + +DateExample8 = Date.ToText(Source2, "yyy"), +// Displays 2024 + +DateExample9 = Date.ToText(Source2, "yyyy"), +// Displays 2024 + +DateExample10 = Date.ToText(Source2, "yyyyy") +// Displays 02024 +``` + +[Back to table](#table) + +### The "yyy" custom format specifier + +The "yyy" custom format specifier represents the year with a minimum of three digits. If the year has more than three significant digits, they are included in the result string. If the year has fewer than three digits, the number is padded with leading zeros to produce three digits. + +> [!NOTE] +> For the Thai Buddhist calendar, which can have five-digit years, this format specifier displays all significant digits. + +The following example includes the "yyy" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #date(1, 12, 1), +Source2 = #date(2024, 1, 1), + +DateExample1 = Date.ToText(Source1, "%y"), +// Displays 1 + +DateExample2 = Date.ToText(Source1, "yy"), +// Displays 01 + +DateExample3 = Date.ToText(Source1, "yyy"), +// Displays 001 + +DateExample4 = Date.ToText(Source1, "yyyy"), +// Displays 0001 + +DateExample5 = Date.ToText(Source1, "yyyyy"), +// Displays 00001 + +DateExample6 = Date.ToText(Source2, "%y"), +// Displays 24 + +DateExample7 = Date.ToText(Source2, "yy"), +// Displays 24 + +DateExample8 = Date.ToText(Source2, "yyy"), +// Displays 2024 + +DateExample9 = Date.ToText(Source2, "yyyy"), +// Displays 2024 + +DateExample10 = Date.ToText(Source2, "yyyyy") +// Displays 02024 +``` + +[Back to table](#table) + +### The "yyyy" custom format specifier + +The "yyyy" custom format specifier represents the year with a minimum of four digits. If the year has more than four significant digits, they are included in the result string. If the year has fewer than four digits, the number is padded with leading zeros to produce four digits. + +> [!NOTE] +> For the Thai Buddhist calendar, which can have five-digit years, this format specifier displays a minimum of four digits. + +The following example includes the "yyyy" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #date(1, 12, 1), +Source2 = #date(2024, 1, 1), + +DateExample1 = Date.ToText(Source1, "%y"), +// Displays 1 + +DateExample2 = Date.ToText(Source1, "yy"), +// Displays 01 + +DateExample3 = Date.ToText(Source1, "yyy"), +// Displays 001 + +DateExample4 = Date.ToText(Source1, "yyyy"), +// Displays 0001 + +DateExample5 = Date.ToText(Source1, "yyyyy"), +// Displays 00001 + +DateExample6 = Date.ToText(Source2, "%y"), +// Displays 24 + +DateExample7 = Date.ToText(Source2, "yy"), +// Displays 24 + +DateExample8 = Date.ToText(Source2, "yyy"), +// Displays 2024 + +DateExample9 = Date.ToText(Source2, "yyyy"), +// Displays 2024 + +DateExample10 = Date.ToText(Source2, "yyyyy") +// Displays 02024 +``` + +[Back to table](#table) + +### The "yyyyy" custom format specifier + +The "yyyyy" custom format specifier (plus any number of additional "y" specifiers) represents the year with a minimum of five digits. If the year has more than five significant digits, they are included in the result string. If the year has fewer than five digits, the number is padded with leading zeros to produce five digits. + +If there are additional "y" specifiers, the number is padded with as many leading zeros as necessary to produce the number of "y" specifiers. + +The following example includes the "yyyyy" custom format specifier in a custom format string. + +```powerquery-m +Source1 = #date(1, 12, 1), +Source2 = #date(2024, 1, 1), + +DateExample1 = Date.ToText(Source1, "%y"), +// Displays 1 + +DateExample2 = Date.ToText(Source1, "yy"), +// Displays 01 + +DateExample3 = Date.ToText(Source1, "yyy"), +// Displays 001 + +DateExample4 = Date.ToText(Source1, "yyyy"), +// Displays 0001 + +DateExample5 = Date.ToText(Source1, "yyyyy"), +// Displays 00001 + +DateExample6 = Date.ToText(Source2, "%y"), +// Displays 24 + +DateExample7 = Date.ToText(Source2, "yy"), +// Displays 24 + +DateExample8 = Date.ToText(Source2, "yyy"), +// Displays 2024 + +DateExample9 = Date.ToText(Source2, "yyyy"), +// Displays 2024 + +DateExample10 = Date.ToText(Source2, "yyyyy") +// Displays 02024 +``` + +[Back to table](#table) + +## Offset "z" format specifier + +### The "z" custom format specifier + +With **DateTimeZone** values, the "z" custom format specifier represents the signed offset of the specified time zone from Coordinated Universal Time (UTC), measured in hours. The offset is always displayed with a leading sign. A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. A single-digit offset is formatted *without* a leading zero. + +The following table shows how the offset value changes depending on the **DateTimeZone** function. + +| DateTimeZone value | Offset value | +| - | - | +| [DateTimeZone.LocalNow](datetimezone-localnow.md) | The signed offset of the local operating system's time zone from UTC. | +| [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns`+0`. | + + +If the "z" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws an expression error. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. + +The following example includes the "z" custom format specifier in a custom format string. + +```powerquery-m +DateTimeZoneExample1 = DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}, {0:zz}, {0:zzz}"]), +// Displays {0:-7}, {0:-07}, {0:-07:00} in Pacific Time zone + +DateTimeZoneExample2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}, {0:zz}, {0:zzz}"]), +// Displays {0:+0}, {0:+00}, {0:+00:00} + +DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( + #datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6), + [Format = "{0:%z}, {0:zz}, {0:zzz}"] +) +// Displays {0:+6}, {0:+06}, {0:+06:00} +``` + +> [!NOTE] +>The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `-7:00` because it's reading the time set on your local machine. However, Power Query Online returns `+00:00` because it's reading the time set on the cloud virtual machines, which are set to UTC. + +[Back to table](#table) + +### The "zz" custom format specifier + +With **DateTimeZone** values, the "zz" custom format specifier represents the signed offset of the specified time zone from UTC, measured in hours. The offset is always displayed with a leading sign. A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. A single-digit offset is formatted *with* a leading zero. + +The following table shows how the offset value changes depending on the **DateTimeZone** function. + +| DateTimeZone value | Offset value | +| - | - | +| [DateTimeZone.LocalNow](datetimezone-localnow.md) | The signed offset of the local operating system's time zone from UTC. | +| [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+00`. | + + +The following example includes the "zz" custom format specifier in a custom format string. + +```powerquery-m +DateTimeZoneExample1 = DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}, {0:zz}, {0:zzz}"]), +// Displays {0:-7}, {0:-07}, {0:-07:00} in Pacific Time zone + +DateTimeZoneExample2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}, {0:zz}, {0:zzz}"]), +// Displays {0:+0}, {0:+00}, {0:+00:00} + +DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( + #datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6), + [Format = "{0:%z}, {0:zz}, {0:zzz}"] +) +// Displays {0:+6}, {0:+06}, {0:+06:00} +``` + +> [!NOTE] +>The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `-7:00` because it's reading the time set on your local machine. However, Power Query Online returns `+00:00` because it's reading the time set on the cloud virtual machines, which are set to UTC. + +[Back to table](#table) + +### The "zzz" custom format specifier + +With **DateTimeZone** values, the "zzz" custom format specifier represents the signed offset of the specified time zone from UTC, measured in hours and minutes. The offset is always displayed with a leading sign. A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. A single-digit offset is formatted with a leading zero. + +The following table shows how the offset value changes depending on the **DateTimeZone** function. + +| DateTimeZoneValue value | Offset value | +| - | - | +| [DateTimeZone.LocalNow](datetimezone-localnow.md) | The signed offset of the local operating system's time zone from UTC. | +| [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+00:00`. | + + +The following example includes the "zzz" custom format specifier in a custom format string. + +```powerquery-m +DateTimeZoneExample1 = DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}, {0:zz}, {0:zzz}"]), +// Displays {0:-7}, {0:-07}, {0:-07:00} in Pacific Time zone + +DateTimeZoneExample2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}, {0:zz}, {0:zzz}"]), +// Displays {0:+0}, {0:+00}, {0:+00:00} + +DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( + #datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6), + [Format = "{0:%z}, {0:zz}, {0:zzz}"] +) +// Displays {0:+6}, {0:+06}, {0:+06:00} +``` + +> [!NOTE] +>The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `-7:00` because it's reading the time set on your local machine. However, Power Query Online returns `+00:00` because it's reading the time set on the cloud virtual machines, which are set to UTC. + +[Back to table](#table) + + +## Character literals + +The following characters in a custom date and time format string are reserved and are always interpreted as formatting characters or, in the case of `"`, `'`, `/`, and `\`, as special characters. + +- `F` +- `H` +- `K` +- `M` +- `d` +- `f` +- `g` +- `h` +- `m` +- `s` +- `t` +- `y` +- `z` +- `%` +- `:` +- `/` +- `"` +- `'` +- `\` + +All other characters are always interpreted as character literals and, in a formatting operation, are included in the result string unchanged. In a parsing operation, they must match the characters in the input string exactly; the comparison is case-sensitive. + +The following example includes the literal characters "PST" (for Pacific Standard Time) and "PDT" (for Pacific Daylight Time) to represent the local time zone in a format string. Note that the string is included in the result string, and that a string that includes the local time zone string also parses successfully. + +```powerquery-m +let + DateFormat = {"dd MMM yyyy hh:mm tt PST", "dd MMM yyyy hh:mm tt PDT"}, + DayAndTime = #datetime(2024, 8, 18, 16, 50, 0), + ExampleResult1 = DateTime.ToText(DayAndTime, DateFormat{1}), + NewDayAndTime = "25 Dec 2023 12:00 pm PST", + ExampleResult2 = try DateTime.ToText(DateTime.FromText(NewDayAndTime, [Format = DateFormat{0}])) otherwise "Unable to parse '" & NewDayAndTime & "'", + ResultList = ExampleResult1 & "#(cr,lf)" & ExampleResult2 + +in + ResultList + +// The example displays the following output text: +// 18 Aug 2016 04:50 PM PDT +// 12/25/2016 12:00:00 PM +``` + +There are two ways to indicate that characters are to be interpreted as literal characters and not as reserve characters, so that they can be included in a result string or successfully parsed in an input string: + +- By escaping each reserved character. For more information, go to [Using the escape sequence](#escape). + +The following example includes the literal characters "pst" (for Pacific Standard time) to represent the local time zone in a format string. Because both "s" and "t" are custom format strings, both characters must be escaped to be interpreted as character literals. + +```powerquery-m +let + DateFormat = "dd MMM yyyy hh:mm tt p\s\t", + DayAndTime = #datetime(2024, 8, 18, 16, 50, 0), + ExampleResult1 = DateTime.ToText(DayAndTime, DateFormat), + NewDayAndTime = "25 Dec 2023 12:00 pm pst", + ExampleResult2 = try DateTime.ToText(DateTime.FromText(NewDayAndTime, [Format = DateFormat])) otherwise "Unable to parse '" & NewDayAndTime & "'", + ResultList = ExampleResult1 & "#(cr,lf)" & ExampleResult2 + +in + ResultList + +// The example displays the following output text: +// 18 Aug 2016 04:50 PM pst +// Unable to parse '25 Dec 2023 12:00 pm pst' +``` + +- By enclosing the entire literal string in quotation marks or apostrophes. The following example is like the previous one, except that "pst" is enclosed in quotation marks to indicate that the entire delimited string should be interpreted as character literals. + +```powerquery-m +let + DateFormat = "dd MMM yyyy hh:mm tt ""pst""", + DayAndTime = #datetime(2024, 8, 18, 16, 50, 0), + ExampleResult1 = DateTime.ToText(DayAndTime, DateFormat), + NewDayAndTime = "25 Dec 2023 12:00 pm pst", + ExampleResult2 = try DateTime.ToText(DateTime.FromText(NewDayAndTime, [Format = DateFormat])) otherwise "Unable to parse '" & NewDayAndTime & "'", + ResultList = ExampleResult1 & "#(cr,lf)" & ExampleResult2 + +in + ResultList + +// The example displays the following output text: +// 18 Aug 2016 04:50 PM pst +// Unable to parse '25 Dec 2023 12:00 pm pst' +``` + +## Notes + +### Using single custom format specifiers + +A custom date and time format string consists of two or more characters. Date and time formatting methods interpret any single-character string as a standard date and time format string. If they don't recognize the character as a valid format specifier, they throw a . For example, a format string that consists only of the specifier "h" is interpreted as a standard date and time format string. However, in this particular case, an exception is thrown because there is no "h" standard date and time format specifier. + +To use any of the custom date and time format specifiers as the only specifier in a format string (that is, to use the "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" custom format specifier by itself), include a space before or after the specifier, or include a percent ("%") format specifier before the single custom date and time specifier. + +For example, "`%h"` is interpreted as a custom date and time format string that displays the hour represented by the current date and time value. You can also use the " h" or "h " format string, although this includes a space in the result string along with the hour. The following example illustrates these three format strings. + +[!code-csharp-interactive[Formatting.DateAndTime.Custom#16](~/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/literal1.cs#16)] +[!code-vb[Formatting.DateAndTime.Custom#16](~/samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/literal1.vb#16)] + + + +#### Using the escape sequence + +The "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" characters in a format string are interpreted as custom format specifiers rather than as literal characters. To prevent a character from being interpreted as a format specifier, you can use an escape sequence. The backslash (\) in front of a character is one type of escape sequence. A double quote escape sequence in a text literal is one other type of escape sequence. The escape sequence signifies that the following character or surrounded character is a text literal that should be included in the result string unchanged. + + +The following example uses different escape sequences to prevent the formatting operation from interpreting the "h" and "m" characters as format specifiers. + +```powerquery-m +let + date = #datetime(2024, 6, 15, 13, 45, 30.90), + format1 = "h \h m \m", + format2 = "h ""h"" m ""m""", + + formattedDate1 = DateTime.ToText(date, format1), + formattedDate2 = DateTime.ToText(date, format2), + output1 = Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format1, formattedDate1}), + output2 = Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format2, formattedDate2}), + result = output1 & "#(cr,lf) & output2 +in + result + +// The example displays the following output text: +// 6/15/2024 1:45:30 PM (h \h m \m) -> 1 h 45 m +// 6/15/2024 1:45:30 PM (h "h" m "m") -> 1 h 45 m +``` + + diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md new file mode 100644 index 000000000..28537f63d --- /dev/null +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -0,0 +1,601 @@ +--- +title: "Standard date and time format strings" +description: Learn how to use a standard date and time format string to define the text representation of a date and time value in .NET. +author: DougKlopfenstein +ms-author: dougklo +ms.date: 8/11/2024 +ms.topic: reference +--- +# Standard date and time format strings + + +A standard date and time format string uses a single character as the format specifier to define the text representation of a time and date value. Any date and time format string that contains more than one character, including white space, is interpreted as a [custom date and time format string](custom-date-and-time-format-strings.md). A standard or custom format string can be used in two ways: + +- To define the text representation that results from a formatting operation. + +- To define the text representation of a date and time value that can be converted to a or value by a parsing operation. + + +## Table of format specifiers + + The following table describes the standard date and time format specifiers. + +|Format specifier|Description|Examples| +|----------------------|-----------------|--------------| +|"d"|Short date pattern.

More information: [The short date ("d") format specifier](#ShortDate).|2009-06-15T13:45:30 -> 6/15/2009 (en-US)

2009-06-15T13:45:30 -> 15/06/2009 (fr-FR)

2009-06-15T13:45:30 -> 2009/06/15 (ja-JP)| +|"D"|Long date pattern.

More information: [The long date ("D") format specifier](#LongDate).|2009-06-15T13:45:30 -> Monday, June 15, 2009 (en-US)

2009-06-15T13:45:30 -> понедельник, 15 июня 2009 г. (ru-RU)

2009-06-15T13:45:30 -> Montag, 15. Juni 2009 (de-DE)| +|"f"|Full date/time pattern (short time).

More information: [The full date short time ("f") format specifier](#FullDateShortTime).|2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45 PM (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 13:45 (sv-SE)

2009-06-15T13:45:30 -> Δευτέρα, 15 Ιουνίου 2009 1:45 μμ (el-GR)| +|"F"|Full date/time pattern (long time).

More information: [The full date long time ("F") format specifier](#FullDateLongTime).|2009-06-15T13:45:30 -> Monday, June 15, 2009 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 13:45:30 (sv-SE)

2009-06-15T13:45:30 -> Δευτέρα, 15 Ιουνίου 2009 1:45:30 μμ (el-GR)| +|"g"|General date/time pattern (short time).

More information: [The general date short time ("g") format specifier](#GeneralDateShortTime).|2009-06-15T13:45:30 -> 6/15/2009 1:45 PM (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45 (zh-CN)| +|"G"|General date/time pattern (long time).

More information: [The general date long time ("G") format specifier](#GeneralDateLongTime).|2009-06-15T13:45:30 -> 6/15/2009 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45:30 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45:30 (zh-CN)| +|"M", "m"|Month/day pattern.

More information: [The month ("M", "m") format specifier](#MonthDay).|2009-06-15T13:45:30 -> June 15 (en-US)

2009-06-15T13:45:30 -> 15. juni (da-DK)

2009-06-15T13:45:30 -> 15 Juni (id-ID)| +|"O", "o"|round-trip date/time pattern.

More information: [The round-trip ("O", "o") format specifier](#Roundtrip).| values:

2009-06-15T13:45:30 (DateTimeKind.Local) --> 2009-06-15T13:45:30.0000000-07:00

2009-06-15T13:45:30 (DateTimeKind.Utc) --> 2009-06-15T13:45:30.0000000Z

2009-06-15T13:45:30 (DateTimeKind.Unspecified) --> 2009-06-15T13:45:30.0000000

values:

2009-06-15T13:45:30-07:00 --> 2009-06-15T13:45:30.0000000-07:00| +|"R", "r"|RFC1123 pattern.

More information: [The RFC1123 ("R", "r") format specifier](#RFC1123).| input: 2009-06-15T13:45:30 -> Mon, 15 Jun 2009 20:45:30 GMT
input: 2009-06-15T13:45:30 -> Mon, 15 Jun 2009 13:45:30 GMT | +|"s"|Sortable date/time pattern.

More information: [The sortable ("s") format specifier](#Sortable).|2009-06-15T13:45:30 (DateTimeKind.Local) -> 2009-06-15T13:45:30

2009-06-15T13:45:30 (DateTimeKind.Utc) -> 2009-06-15T13:45:30| +|"t"|Short time pattern.

More information: [The short time ("t") format specifier](#ShortTime).|2009-06-15T13:45:30 -> 1:45 PM (en-US)

2009-06-15T13:45:30 -> 13:45 (hr-HR)

2009-06-15T13:45:30 -> 01:45 م (ar-EG)| +|"T"|Long time pattern.

More information: [The long time ("T") format specifier](#LongTime).|2009-06-15T13:45:30 -> 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> 13:45:30 (hr-HR)

2009-06-15T13:45:30 -> 01:45:30 م (ar-EG)| +|"u"|Universal sortable date/time pattern.

More information: [The universal sortable ("u") format specifier](#UniversalSortable).|With a value: 2009-06-15T13:45:30 -> 2009-06-15 13:45:30Z

With a value: 2009-06-15T13:45:30 -> 2009-06-15 20:45:30Z| +|"U"|Universal full date/time pattern.

More information: [The universal full ("U") format specifier](#UniversalFull).|2009-06-15T13:45:30 -> Monday, June 15, 2009 8:45:30 PM (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 20:45:30 (sv-SE)

2009-06-15T13:45:30 -> Δευτέρα, 15 Ιουνίου 2009 8:45:30 μμ (el-GR)| +|"Y", "y"|Year month pattern.

More information: [The year month ("Y") format specifier](#YearMonth).|2009-06-15T13:45:30 -> June 2009 (en-US)

2009-06-15T13:45:30 -> juni 2009 (da-DK)

2009-06-15T13:45:30 -> Juni 2009 (id-ID)| +|Any other single character|Unknown specifier.|Throws a run-time .| + +## How standard format strings work + +In a formatting operation, a standard format string is simply an alias for a custom format string. The advantage of using an alias to refer to a custom format string is that, although the alias remains invariant, the custom format string itself can vary. This is important because the string representations of date and time values typically vary by culture. For example, the "d" standard format string indicates that a date and time value is to be displayed using a short date pattern. For the invariant culture, this pattern is "MM/dd/yyyy". For the fr-FR culture, it is "dd/MM/yyyy". For the ja-JP culture, it is "yyyy/MM/dd". + +If a standard format string in a formatting operation maps to a particular culture's custom format string, your application can define the specific culture whose custom format strings are used in one of these ways: + +- You can use the default (or current) culture. The following example displays a date using the current culture's short date format. In this case, the current culture is en-US. + +```powerquery -m +thisDate = #date(2024, 3, 15), +resultDate = Date.ToText(thisDate, [Format = "d"]) +//Displays 3/15/2024 +``` + +- You can pass a culture used to format the date according to the rules of that specific culture. The following example displays a date using the short date format of the pt-BR culture. + +```powerquery-m +thisDate = #date(2024, 3, 15), +resultDate = Date.ToText(thisDate, [Format = "d", Culture = "pt-BR"]) +//Displays 15/03/2024 +``` + + +- You can pass a object that provides formatting information to a method that has an parameter. The following example displays a date using the short date format from a object for the hr-HR culture. + + [!code-csharp[System.DateTime.Conceptual.Formatting#3](../../../samples/snippets/csharp/VS_Snippets_CLR_System/system.DateTime.Conceptual.Formatting/cs/StandardFormats1.cs#3)] + [!code-vb[System.DateTime.Conceptual.Formatting#3](../../../samples/snippets/visualbasic/VS_Snippets_CLR_System/system.DateTime.Conceptual.Formatting/vb/StandardFormats1.vb#3)] +--> + +In some cases, the standard format string serves as a convenient abbreviation for a longer custom format string that is invariant. Four standard format strings fall into this category: "O" (or "o"), "R" (or "r"), "s", and "u". These strings correspond to custom format strings defined by the invariant culture. They produce string representations of date and time values that are intended to be identical across cultures. The following table provides information on these four standard date and time format strings. + +|Standard format string|Custom format string| +|----------------------------|------------------------------------| +|"O" or "o"|yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK| +|"R" or "r"|ddd, dd MMM yyyy HH':'mm':'ss 'GMT'| +|"s"|yyyy'-'MM'-'dd'T'HH':'mm':'ss| +|"u"|yyyy'-'MM'-'dd HH':'mm':'ss'Z'| + + +The following sections describe the standard format specifiers for [Date](date-functions.md), [DateTime](datetime-functions.md), [DateTimeZone](datetimezone-functions.md), and [Time](time-functions.md) values. + +## Date formats + +This group includes the following formats: + +- [The short date ("d") format specifier](#the-short-date-d-format-specifier) +- [The long date ("D") format specifier](#the-long-date-d-format-specifier) + + + +### The short date ("d") format specifier + + +The "d" standard format specifier represents a custom date format defined by a specific culture. For example, the custom format text returned by the invariant culture is "MM/dd/yyyy". + + +The following example uses the "d" format specifier to display a date value. + +```powerquery-m +date1 = #date(2024, 4, 10), +resultDate1 = Date.ToText(date1, [Format = "d"]), +// Displays 04/10/2024 +resultDate2 = Date.ToText(date1, [Format = "d", Culture = "en-US"]), +// Displays 4/10/2024 +resultDate3 = Date.ToText(date1, [Format = "d", Culture = "en-NZ"]), +// Displays 10/4/2024 +resultDate4 = Date.ToText(date1, [Format = "d", Culture = "de-DE"]) +// Displays 10.4.2024 +``` + +[Back to table](#table) + + + +### The long date ("D") format specifier + +The "D" standard format specifier represents a custom date format defined by a specific culture. For example, the custom format string for the invariant culture is "dddd, dd MMMM yyyy". + + +The following example uses the "D" format specifier to display a date and time value. + +```powerquery-m +date1 = #date(2024, 4, 10), +resultDate1 = Date.ToText(date1, [Format = "D", Culture = "en-US"]), +// Displays Wednesday, April 10, 2024 +resultDate2 = Date.ToText(date1, [Format = "D", Culture = "pt-BR"]), +// Displays quarta-feira, 10 de abril de 2024 +resultDate3 = Date.ToText(date1, [Format = "D", Culture = "es-MX"]) +// Displays miércoles, 10 de abril de 2024 +``` + +[Back to table](#table) + +## Date and time formats + +This group includes the following formats: + +- [The full date short time ("f") format specifier](#the-full-date-short-time-f-format-specifier) +- [The full date long time ("F") format specifier](#the-full-date-long-time-f-format-specifier) +- [The general date short time ("g") format specifier](#the-general-date-short-time-g-format-specifier) +- [The general date long time ("G") format specifier](#the-general-date-long-time-g-format-specifier) +- [The round-trip ("O", "o") format specifier](#the-round-trip-o-o-format-specifier) +- [The RFC1123 ("R", "r") format specifier](#the-rfc1123-r-r-format-specifier) +- [The sortable ("s") format specifier](#the-sortable-s-format-specifier) +- [The universal sortable ("u") format specifier](#the-universal-sortable-u-format-specifier) +- [The universal full ("U") format specifier](#the-universal-full-u-format-specifier) + + + +### The full date short time ("f") format specifier + +The "f" standard format specifier represents a combination of the long date ("D") and short time ("t") patterns, separated by a space. + + +The following example uses the "f" format specifier to display a date and time value. + +```powerquery-m +date1 = #datetime(2024, 4, 10, 6, 30, 0), +resultDateTime1 = DateTime.ToText(date1, [Format = "f", Culture = "en-US"]), +// Displays Wednesday, April 10, 2024 6:30 AM +resultDateTime2 = DateTime.ToText(date1, [Format = "f", Culture = "fr-FR"]) +// Displays mercredi 10 avril 2024 06:30 +``` + +[Back to table](#table) + + + +### The full date long time ("F") format specifier + +The "F" standard format specifier represents a custom date and time format defined by a specific culture. For example, the custom format string for the invariant culture is "dddd, dd MMMM yyyy HH:mm:ss". + + +The following example uses the "F" format specifier to display a date and time value. + +```powerquery-m +date1 = #datetime(2024, 4, 10, 6, 30, 0), +resultDateTime1 = DateTime.ToText(date1, [Format = "F", Culture = "en-US"]), +// Displays Wednesday, April 10, 2024 6:30:00 AM +resultDateTime2 = DateTime.ToText(date1, [Format = "F", Culture = "fr-FR"]), +// Displays mercredi 10 avril 2024 06:30:00 +``` + +[Back to table](#table) + + + +### The general date short time ("g") format specifier + +The "g" standard format specifier represents a combination of the short date ("d") and short time ("t") patterns, separated by a space. The resulting text is affected by the formatting information of a specific culture. + + +The following example uses the "g" format specifier to display a date and time value. + +```powerquery-m +date1 = #datetime(2024, 4, 10, 6, 30, 0), +resultDateTime1 = DateTime.ToText(date1, [Format = "g"]), +// Displays 4/10/2024 6:30 AM +resultDateTime2 = DateTime.ToText(date1, [Format = "g", Culture = "en-US"]), +// Displays 4/10/2024 6:30 AM +resultDateTime3 = DateTime.ToText(date1, [Format = "g", Culture = "fr-BE"]) +// Displays 10-04-24 06:30 +``` + +[Back to table](#table) + + + +### The general date long time ("G") format specifier + +The "G" standard format specifier represents a combination of the short date ("d") and long time ("T") patterns, separated by a space. The resulting text is affected by the formatting information of a specific culture. + + +The following example uses the "G" format specifier to display a date and time value. + +```powerquery-m +date1 = #datetime(2024, 4, 10, 6, 30, 0), +resultDateTime1 = DateTime.ToText(date1, [Format = "G"]), +// Displays 4/10/2024 6:30:00 AM +resultDateTime2 = DateTime.ToText(date1, [Format = "G", Culture = "en-US"]), +// Displays 4/10/2024 6:30:00 AM +resultDateTime3 = DateTime.ToText(date1, [Format = "G", Culture = "nl-BE"]) +// Displays 10/04/2024 6:30:00 +``` + +[Back to table](#table) + + + +### The round-trip ("O", "o") format specifier + +The "O" or "o" standard format specifier represents a custom date and time format string using a pattern that preserves time zone information and emits a result string that complies with ISO 8601. For **DateTimeZone** values, this format specifier is designed to preserve date, time, and timezone values in text. + +The "O" or "o" standard format specifier corresponds to the "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" custom format string for **DateTimeZone** values. In this text, the pairs of single quotation marks that delimit individual characters, such as the hyphens, the colons, and the letter "T", indicate that the individual character is a literal that can't be changed. The apostrophes don't appear in the output string. + +The "O" or "o" standard format specifier (and the "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" custom format) takes advantage of the three ways that ISO 8601 represents time zone information to preserve the **DateTimeZone** values: + +- The time zone component of [DateTimeZone.ToLocal](datetimezone-tolocal.md) date and time values is an offset from UTC (for example, +01:00, -07:00). + +- The time zone component of [DateTimeZone.ToUtc](datetimezone-toutc.md) date and time values uses +00.00 to represent UTC. + + +- Unspecified date and time values have no time zone information. + +Because the "O" or "o" standard format specifier conforms to an international standard, the formatting or parsing operation that uses the specifier always uses the invariant culture and the Gregorian calendar. + + +The following example uses the "o" format specifier to display a series of **DateTimeZone** values on a system in the U.S. Pacific Time zone. + + +```powerquery-m +let + date1 = #datetimezone(2024, 6, 15, 13, 45, 30, 0, 0), + resultDateTime1 = Text.Format("#{0} (Unspecified) --> #{1}", {date1, DateTimeZone.ToText(date1, [Format = "O"])}), + resultDateTime2 = Text.Format("#{0} (Utc) --> #{1}", {date1, DateTimeZone.ToText(DateTimeZone.ToUtc(date1), [Format = "O"])}), + resultDateTime3 = Text.Format("#{0} (Local) --> #{1}", {date1, DateTimeZone.ToText(DateTimeZone.ToLocal(date1), [Format = "O"])}), + result = resultDateTime1 & "#(cr,lf)" & resultDateTime2 & "#(cr,lf)" & resultDateTime3 +in + result + +// The example displays the following output: +// 6/15/2024 1:45:30 PM +00:00 (Unspecified) --> 2024-06-15T13:45:30.0000000+00:00 +// 6/15/2024 1:45:30 PM +00:00 (Utc) --> 2024-06-15T13:45:30.0000000+00:00 +// 6/15/2024 1:45:30 PM +00:00 (Local) --> 2024-06-15T08:45:30.0000000-07:00 +``` + + + +[Back to table](#table) + + + +### The RFC1123 ("R", "r") format specifier + +The "R" or "r" standard format specifier represents a custom date and time format string that's not defined by a specific culture. It is always the same, regardless of the culture used or the format provider supplied. The custom format string is "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'". When this standard format specifier is used, the formatting or parsing operation always uses the invariant culture. + + + +Although the RFC 1123 standard expresses a time as Coordinated Universal Time (UTC), the formatting operation doesn't modify the value of the date and time that's being formatted. Therefore, you must convert the value to UTC by calling the method before you perform the formatting operation. In contrast, values perform this conversion automatically; there's no need to call the method before the formatting operation. + +The following example uses the "r" format specifier to display a time and date value on a system in the U.S. Pacific Time zone (seven hours behind UTC). + + +```powerquery-m +date1 = #datetimezone(2024, 4, 10, 6, 30, 0, -7, 0), +dateOffset = DateTimeZone.ToLocal(date1), +resultDateTime1 = DateTimeZone.ToText(date1, [Format = "r"]), +// Displays Wed, 10 Apr 2024 13:30:00 GMT +resultDateTime2 = DateTimeZone.ToText(dateOffset, [Format = "r"]), +// Displays Wed, 10 Apr 2024 13:30:00 GMT +``` + +[Back to table](#table) + + + +### The sortable ("s") format specifier + +The "s" standard format specifier represents a custom date and time format string that reflects a defined standard (ISO 8601), and is read-only. Therefore, it is always the same, regardless of the culture used or the format provider supplied. The custom format string is "yyyy'-'MM'-'dd'T'HH':'mm':'ss". + + +The purpose of the "s" format specifier is to produce result strings that sort consistently in ascending or descending order based on date and time values. As a result, although the "s" standard format specifier represents a date and time value in a consistent format, the formatting operation does not modify the value of the date and time object that is being formatted to reflect its property or its value. For example, the result strings produced by formatting the date and time values 2014-11-15T18:32:17+00:00 and 2014-11-15T18:32:17+08:00 are identical. + +When this standard format specifier is used, the formatting or parsing operation always uses the invariant culture. + +The following example uses the "s" format specifier to display a date and time value on a system in the U.S. Pacific Time zone. + +```powerquery-m +date1 = #datetime(2024, 4, 10, 6, 30, 0), +resultDate1 = DateTime.ToText(date1, [Format = "s", Culture = "en-US"]), +// Displays 2024-04-10T06:30:00 +``` + +[Back to table](#table) + + + +### The universal sortable ("u") format specifier + +The "u" standard format specifier represents a custom date and time format string that is always the same, regardless of the culture used or the format provider supplied. The custom format string is "yyyy'-'MM'-'dd HH':'mm':'ss'Z'". When this standard format specifier is used, the formatting or parsing operation always uses the invariant culture. + +Although the result string should express a time as Coordinated Universal Time (UTC), no conversion of the original **DateTimeZon** value is performed during the formatting operation. Therefore, you must convert a **DateTimeZone** value to UTC by calling the [DateTimeZone.ToUtc](datetimeformat-toutc.md) function before formatting it. + +The following example uses the "u" format specifier to display a date and time value. + +```powerquery-m + date1 = #datetimezone(2024, 4, 10, 6, 30, 0, -7, 0), + dateOffset = DateTimeZone.ToUtc(date1), + resultDate1 = DateTimeZone.ToText(dateOffset, [Format = "u"]), + // Displays 2024-04-10 13:30:00Z +``` + +[Back to table](#table) + + + + +### The universal full ("U") format specifier + +The "U" standard format specifier represents a custom date and time format string that is defined by the specific culture. The pattern is the same as the "F" pattern. However, the **DateTimeZone** value is automatically converted to UTC before it's formatted. + + +The following example uses the "U" format specifier to display a date and time value. + +```powerquery-m +date1 = #datetimezone(2024, 4, 10, 6, 30, 0, 0, 0), +resultDate1 = DateTimeZone.ToText(date1, [Format = "U", Culture = "en-US"]), +// Displays +resultDate2 = DateTimeZone.ToText(date1, [Format = "U", Culture = "sv-FI"]), +// Displays +``` + +[Back to table](#table) + +## Time formats + +This group includes the following formats: + +- [The short time ("t") format specifier](#the-short-time-t-format-specifier) +- [The long time ("T") format specifier](#the-long-time-t-format-specifier) + + + +### The short time ("t") format specifier + +The "t" standard format specifier represents a custom date and time format string that is defined by the current property. For example, the custom format string for the invariant culture is "HH:mm". + + +The following example uses the "t" format specifier to display a date and time value. + +```powerquery-m +date1 = #datetime(2024, 4, 10, 6, 30, 0), +resultDate1 = DateTime.ToText(date1, [Format = "t", Culture = "en-US"]), +// Displays 6:30 AM +resultDate2 = DateTime.ToText(date1, [Format = "t", Culture = "es-ES"]), +// Displays 6:30 +``` + +[Back to table](#table) + + + +### The long time ("T") format specifier + +The "T" standard format specifier represents a custom date and time format string that is defined by the specific culture. For example, the custom format string for the invariant culture is "HH:mm:ss". + + +The following example uses the "T" format specifier to display a date and time value. + +```powerquery-m +date1 = #datetime(2024, 4, 10, 6, 30, 0), +resultDate1 = DateTime.ToText(date1, [Format = "T", Culture = "en-US"]), +// Displays 6:30:00 AM +resultDate2 = DateTime.ToText(date1, [Format = "T", Culture = "es-ES"]), +// Displays 6:30:00 +``` +[Back to table](#table) + +## Partial date formats + +This group includes the following formats: + +- [The month ("M", "m") format specifier](#the-month-m-m-format-specifier) +- [The year month ("Y", "y") format specifier](#the-year-month-y-y-format-specifier) + + + +### The month ("M", "m") format specifier + +The "M" or "m" standard format specifier represents a custom date and time format string that is defined by the specific culture. For example, the custom format string for the invariant culture is "MMMM dd". + + +The following example uses the "m" format specifier to display a date and time value. + +```powerquery-m +date1 = #datetime(2024, 4, 10, 6, 30, 0), +resultDate1 = DateTime.ToText(date1, [Format = "m", Culture = "en-US"]), +// Displays April 10 +resultDate2 = DateTime.ToText(date1, [Format = "m", Culture = "ms-MY"]), +// Displays 10 April +``` + +[Back to table](#table) + + + +### The year month ("Y", "y") format specifier + +The "Y" or "y" standard format specifier represents a custom date format string that is defined by a specific culture. For example, the custom format string for the invariant culture is "yyyy MMMM". + + +The following example uses the "y" format specifier to display a date and time value. + +```powerquery-m +date1 = #datetime(2024, 4, 10 6, 30, 0), +resultDate1 = DateTime.ToText(date1, [Format = "Y", Culture = "en-US"]), +// Displays April 2024 +resultDate2 = DateTime.ToText(date1, [Format = "y", Culture = "af-ZA"]) +// Displays April 2024 +``` + +[Back to table](#table) + + \ No newline at end of file diff --git a/query-languages/m/standard-timespan-format-strings.md b/query-languages/m/standard-timespan-format-strings.md new file mode 100644 index 000000000..0d77c8f10 --- /dev/null +++ b/query-languages/m/standard-timespan-format-strings.md @@ -0,0 +1,112 @@ +--- +title: "Standard TimeSpan format strings" +description: Review standard TimeSpan format strings, which use a single format specifier to define the text representation of a TimeSpan value in .NET. +author: DougKlopfenstein +ms.author: dougklo +ms.date: "03/30/2017" +ms.topic: reference +--- +# Standard TimeSpan format strings + +A standard format string uses a single format specifier to define the text representation of a value that results from a formatting operation. Any format string that contains more than one character, including white space, is interpreted as a custom format string. For more information, see [Custom TimeSpan format strings](custom-timespan-format-strings.md). + + The string representations of values are produced by calls to the overloads of the method, as well as by methods that support composite formatting, such as . For more information, see [Formatting Types](formatting-types.md) and [Composite Formatting](composite-formatting.md). The following example illustrates the use of standard format strings in formatting operations. + + [!code-csharp[Conceptual.TimeSpan.Standard#2](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.timespan.standard/cs/formatexample1.cs#2)] + [!code-vb[Conceptual.TimeSpan.Standard#2](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.timespan.standard/vb/formatexample1.vb#2)] + + Standard format strings are also used by the and methods to define the required format of input strings for parsing operations. (Parsing converts the string representation of a value to that value.) The following example illustrates the use of standard format strings in parsing operations. + + [!code-csharp[Conceptual.TimeSpan.Standard#3](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.timespan.standard/cs/parseexample1.cs#3)] + [!code-vb[Conceptual.TimeSpan.Standard#3](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.timespan.standard/vb/parseexample1.vb#3)] + +The following table lists the standard time interval format specifiers. + +|Format specifier|Name|Description|Examples| +|----------------------|----------|-----------------|--------------| +|"c"|Constant (invariant) format|This specifier is not culture-sensitive. It takes the form `[-][d'.']hh':'mm':'ss['.'fffffff]`.

(The "t" and "T" format strings produce the same results.)

More information: [The Constant ("c") Format Specifier](#the-constant-c-format-specifier).|`TimeSpan.Zero` -> 00:00:00

`New TimeSpan(0, 0, 30, 0)` -> 00:30:00

`New TimeSpan(3, 17, 25, 30, 500)` -> 3.17:25:30.5000000| +|"g"|General short format|This specifier outputs only what is needed. It is culture-sensitive and takes the form `[-][d':']h':'mm':'ss[.FFFFFFF]`.

More information: [The General Short ("g") Format Specifier](#the-general-short-g-format-specifier).|`New TimeSpan(1, 3, 16, 50, 500)` -> 1:3:16:50.5 (en-US)

`New TimeSpan(1, 3, 16, 50, 500)` -> 1:3:16:50,5 (fr-FR)

`New TimeSpan(1, 3, 16, 50, 599)` -> 1:3:16:50.599 (en-US)

`New TimeSpan(1, 3, 16, 50, 599)` -> 1:3:16:50,599 (fr-FR)| +|"G"|General long format|This specifier always outputs days and seven fractional digits. It is culture-sensitive and takes the form `[-]d':'hh':'mm':'ss.fffffff`.

More information: [The General Long ("G") Format Specifier](#the-general-long-g-format-specifier).|`New TimeSpan(18, 30, 0)` -> 0:18:30:00.0000000 (en-US)

`New TimeSpan(18, 30, 0)` -> 0:18:30:00,0000000 (fr-FR)| + +## The Constant ("c") Format Specifier + +The "c" format specifier returns the string representation of a value in the following form: + +`[-][d.]hh:mm:ss[.fffffff]` + +Elements in square brackets ([ and ]) are optional. The period (.) and colon (:) are literal symbols. The following table describes the remaining elements. + +|Element|Description| +|-------------|-----------------| +|*-*|An optional negative sign, which indicates a negative time interval.| +|*d*|The optional number of days, with no leading zeros.| +|*hh*|The number of hours, which ranges from "00" to "23".| +|*mm*|The number of minutes, which ranges from "00" to "59".| +|*ss*|The number of seconds, which ranges from "0" to "59".| +|*fffffff*|The optional fractional portion of a second. Its value can range from "0000001" (one tick, or one ten-millionth of a second) to "9999999" (9,999,999 ten-millionths of a second, or one second less one tick).| + + Unlike the "g" and "G" format specifiers, the "c" format specifier is not culture-sensitive. It produces the string representation of a value that is invariant and that's common to versions prior to .NET Framework 4. "c" is the default format string; the method formats a time interval value by using the "c" format string. + +> [!NOTE] +> also supports the "t" and "T" standard format strings, which are identical in behavior to the "c" standard format string. + + The following example instantiates two objects, uses them to perform arithmetic operations, and displays the result. In each case, it uses composite formatting to display the value by using the "c" format specifier. + + [!code-csharp[Conceptual.TimeSpan.Standard#1](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.timespan.standard/cs/standardc1.cs#1)] + [!code-vb[Conceptual.TimeSpan.Standard#1](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.timespan.standard/vb/standardc1.vb#1)] + +## The General Short ("g") Format Specifier + +The "g" format specifier returns the string representation of a value in a compact form by including only the elements that are necessary. It has the following form: + +`[-][d:]h:mm:ss[.FFFFFFF]` + +Elements in square brackets ([ and ]) are optional. The colon (:) is a literal symbol. The following table describes the remaining elements. + +|Element|Description| +|-------------|-----------------| +|*-*|An optional negative sign, which indicates a negative time interval.| +|*d*|The optional number of days, with no leading zeros.| +|*h*|The number of hours, which ranges from "0" to "23", with no leading zeros.| +|*mm*|The number of minutes, which ranges from "00" to "59".| +|*ss*|The number of seconds, which ranges from "00" to "59".| +|*.*|The fractional seconds separator. It is equivalent to the specified culture's property without user overrides.| +|*FFFFFFF*|The fractional seconds. As few digits as possible are displayed.| + + Like the "G" format specifier, the "g" format specifier is localized. Its fractional seconds separator is based on either the current culture or a specified culture's property. + + The following example instantiates two objects, uses them to perform arithmetic operations, and displays the result. In each case, it uses composite formatting to display the value by using the "g" format specifier. In addition, it formats the value by using the formatting conventions of the current system culture (which, in this case, is English - United States or en-US) and the French - France (fr-FR) culture. + + [!code-csharp[Conceptual.TimeSpan.Standard#4](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.timespan.standard/cs/standardshort1.cs#4)] + [!code-vb[Conceptual.TimeSpan.Standard#4](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.timespan.standard/vb/standardshort1.vb#4)] + +## The General Long ("G") Format Specifier + +The "G" format specifier returns the string representation of a value in a long form that always includes both days and fractional seconds. The string that results from the "G" standard format specifier has the following form: + +`[-]d:hh:mm:ss.fffffff` + +Elements in square brackets ([ and ]) are optional. The colon (:) is a literal symbol. The following table describes the remaining elements. + +|Element|Description| +|-------------|-----------------| +|*-*|An optional negative sign, which indicates a negative time interval.| +|*d*|The number of days, with no leading zeros.| +|*hh*|The number of hours, which ranges from "00" to "23".| +|*mm*|The number of minutes, which ranges from "00" to "59".| +|*ss*|The number of seconds, which ranges from "00" to "59".| +|*.*|The fractional seconds separator. It is equivalent to the specified culture's property without user overrides.| +|*fffffff*|The fractional seconds.| + + Like the "G" format specifier, the "g" format specifier is localized. Its fractional seconds separator is based on either the current culture or a specified culture's property. + + The following example instantiates two objects, uses them to perform arithmetic operations, and displays the result. In each case, it uses composite formatting to display the value by using the "G" format specifier. In addition, it formats the value by using the formatting conventions of the current system culture (which, in this case, is English - United States or en-US) and the French - France (fr-FR) culture. + + [!code-csharp[Conceptual.TimeSpan.Standard#5](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.timespan.standard/cs/standardlong1.cs#5)] + [!code-vb[Conceptual.TimeSpan.Standard#5](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.timespan.standard/vb/standardlong1.vb#5)] + +## See also + +- [Formatting Types](formatting-types.md) +- [Custom TimeSpan Format Strings](custom-timespan-format-strings.md) +- [Parsing Strings](parsing-strings.md) \ No newline at end of file diff --git a/query-languages/m/~$andard-date-and-time-format-strings.md b/query-languages/m/~$andard-date-and-time-format-strings.md new file mode 100644 index 0000000000000000000000000000000000000000..1ff677496edb670dab1e81d374cfeaeb5600cb49 GIT binary patch literal 162 zcmWf1$uCV;@XpCENK4HtE=kSIV;}+uGPp40Gn6u;0GzbofqG!+}y@02e=d Date: Mon, 12 Aug 2024 12:29:19 -0700 Subject: [PATCH 552/934] Updated sample, fixed notes in standard format --- .../m/custum date and time format strings.md | 24 ++-- .../standard-date-and-time-format-strings.md | 2 +- .../m/standard-timespan-format-strings.md | 112 ------------------ .../~$andard-date-and-time-format-strings.md | Bin 162 -> 0 bytes 4 files changed, 12 insertions(+), 126 deletions(-) delete mode 100644 query-languages/m/standard-timespan-format-strings.md delete mode 100644 query-languages/m/~$andard-date-and-time-format-strings.md diff --git a/query-languages/m/custum date and time format strings.md b/query-languages/m/custum date and time format strings.md index 58345afb9..2786ae5f2 100644 --- a/query-languages/m/custum date and time format strings.md +++ b/query-languages/m/custum date and time format strings.md @@ -575,9 +575,7 @@ zoneOutput3 = Text.Format("'#{0}'", {DateTime.ToText(DateTime.LocalNow(),[Format ``` > [!NOTE] ->The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `-7:00` because it's reading the time set on your local machine. However, Power Query Online returns `+00:00` because it's reading the time set on the cloud virtual machines, which are set to UTC. - - +>The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `-07:00` because it's reading the time set on your local machine. However, Power Query Online returns `+00:00` because it's reading the time set on the cloud virtual machines, which are set to UTC. [Back to table](#table) @@ -1070,18 +1068,18 @@ The following table shows how the offset value changes depending on the **DateTi | DateTimeZone value | Offset value | | - | - | | [DateTimeZone.LocalNow](datetimezone-localnow.md) | The signed offset of the local operating system's time zone from UTC. | -| [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns`+0`. | +| [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+0`. | If the "z" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws an expression error. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. -The following example includes the "z" custom format specifier in a custom format string. +The following example includes the "z" custom format specifier in a custom format string on a system in the U.S. Pacific Time zone. ```powerquery-m DateTimeZoneExample1 = DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}, {0:zz}, {0:zzz}"]), -// Displays {0:-7}, {0:-07}, {0:-07:00} in Pacific Time zone +// Displays {0:-7}, {0:-07}, {0:-07:00} DateTimeZoneExample2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}, {0:zz}, {0:zzz}"]), // Displays {0:+0}, {0:+00}, {0:+00:00} @@ -1094,7 +1092,7 @@ DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( ``` > [!NOTE] ->The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `-7:00` because it's reading the time set on your local machine. However, Power Query Online returns `+00:00` because it's reading the time set on the cloud virtual machines, which are set to UTC. +>The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `{0:-7}` because it's reading the time set on your local machine. However, Power Query Online returns `{0:+0}` because it's reading the time set on the cloud virtual machines, which are set to UTC. [Back to table](#table) @@ -1112,11 +1110,11 @@ The following table shows how the offset value changes depending on the **DateTi -The following example includes the "zz" custom format specifier in a custom format string. +The following example includes the "zz" custom format specifier in a custom format string on a system in the U.S. Pacific Time zone. ```powerquery-m DateTimeZoneExample1 = DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}, {0:zz}, {0:zzz}"]), -// Displays {0:-7}, {0:-07}, {0:-07:00} in Pacific Time zone +// Displays {0:-7}, {0:-07}, {0:-07:00} DateTimeZoneExample2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}, {0:zz}, {0:zzz}"]), // Displays {0:+0}, {0:+00}, {0:+00:00} @@ -1129,7 +1127,7 @@ DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( ``` > [!NOTE] ->The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `-7:00` because it's reading the time set on your local machine. However, Power Query Online returns `+00:00` because it's reading the time set on the cloud virtual machines, which are set to UTC. +>The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `{0:-07}` because it's reading the time set on your local machine. However, Power Query Online returns `{0:+00}` because it's reading the time set on the cloud virtual machines, which are set to UTC. [Back to table](#table) @@ -1147,11 +1145,11 @@ The following table shows how the offset value changes depending on the **DateTi -The following example includes the "zzz" custom format specifier in a custom format string. +The following example includes the "zzz" custom format specifier in a custom format string on a system in the U.S. Pacific Time zone. ```powerquery-m DateTimeZoneExample1 = DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}, {0:zz}, {0:zzz}"]), -// Displays {0:-7}, {0:-07}, {0:-07:00} in Pacific Time zone +// Displays {0:-7}, {0:-07}, {0:-07:00} DateTimeZoneExample2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}, {0:zz}, {0:zzz}"]), // Displays {0:+0}, {0:+00}, {0:+00:00} @@ -1164,7 +1162,7 @@ DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( ``` > [!NOTE] ->The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `-7:00` because it's reading the time set on your local machine. However, Power Query Online returns `+00:00` because it's reading the time set on the cloud virtual machines, which are set to UTC. +>The value returned by [DateTimeZone.LocalNow](datetimezone-localnow.md) depends on whether you're running Power Query on a local machine or online. For example, in the sample above on a system in the U.S. Pacific Time zone, Power Query Desktop returns `{0:-07:00}` because it's reading the time set on your local machine. However, Power Query Online returns `{0:+00:00}` because it's reading the time set on the cloud virtual machines, which are set to UTC. [Back to table](#table) diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index 28537f63d..a21e4588c 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -467,7 +467,7 @@ This group includes the following formats: ### The short time ("t") format specifier -The "t" standard format specifier represents a custom date and time format string that is defined by the current property. For example, the custom format string for the invariant culture is "HH:mm". +The "t" standard format specifier represents a custom date and time format string that is defined by the specified culture. For example, the custom format string for the invariant culture is "HH:mm". + + The following table describes the custom numeric format specifiers and displays sample output produced by each format specifier. Go to the [Notes](#NotesCustomFormatting) section for additional information about using custom numeric format strings, and the [Example](#example) section for a comprehensive illustration of their use. + +|Format specifier|Name|Description|Examples| +|----------------------|----------|-----------------|--------------| +|"0"|Zero placeholder|Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

More information: [The "0" Custom Specifier](#the-o-custom-specifier).|1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| +|"#"|Digit placeholder|Replaces the "#" symbol with the corresponding digit if one is present; otherwise, no digit appears in the result string.

Note that no digit appears in the result string if the corresponding digit in the input string is a non-significant 0. For example, 0003 ("####") -> 3.

More information: [The "#" Custom Specifier](#SpecifierD).|1234.5678 ("#####") -> 1235

0.45678 ("#.##", en-US) -> .46

0.45678 ("#.##", fr-FR) -> ,46| +|"."|Decimal point|Determines the location of the decimal separator in the result string.

More information: [The "." Custom Specifier](#SpecifierPt).|0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| +|","|Group separator and number scaling|Serves as both a group separator and a number scaling specifier. As a group separator, it inserts a localized group separator character between each group. As a number scaling specifier, it divides a number by 1000 for each comma specified.

More information: [The "," Custom Specifier](#SpecifierTh).|Group separator specifier:

2147483647 ("##,#", en-US) -> 2,147,483,647

2147483647 ("##,#", es-ES) -> 2.147.483.647

Scaling specifier:

2147483647 ("#,#,,", en-US) -> 2,147

2147483647 ("#,#,,", es-ES) -> 2.147| +|"%"|Percentage placeholder|Multiplies a number by 100 and inserts a localized percentage symbol in the result string.

More information: [The "%" Custom Specifier](#SpecifierPct).|0.3697 ("%#0.00", en-US) -> %36.97

0.3697 ("%#0.00", el-GR) -> %36,97

0.3697 ("##.0 %", en-US) -> 37.0 %

0.3697 ("##.0 %", el-GR) -> 37,0 %| +|"‰"|Per mille placeholder|Multiplies a number by 1000 and inserts a localized per mille symbol in the result string.

More information: [The "‰" Custom Specifier](#SpecifierPerMille).|0.03697 ("#0.00‰", en-US) -> 36.97‰

0.03697 ("#0.00‰", ru-RU) -> 36,97‰| +|"E0"

"E+0"

"E-0"

"e0"

"e+0"

"e-0"|Exponential notation|If followed by at least one 0 (zero), formats the result using exponential notation. The case of "E" or "e" indicates the case of the exponent symbol in the result string. The number of zeros following the "E" or "e" character determines the minimum number of digits in the exponent. A plus sign (+) indicates that a sign character always precedes the exponent. A minus sign (-) indicates that a sign character precedes only negative exponents.

More information: [The "E" and "e" Custom Specifiers](#SpecifierExponent).|987654 ("#0.0e0") -> 98.8e4

1503.92311 ("0.0##e+00") -> 1.504e+03

1.8901385E-16 ("0.0e+00") -> 1.9e-16| +|"\\"|Escape character|Causes the next character to be interpreted as a literal rather than as a custom format specifier.

More information: [The "\\" Escape Character](#SpecifierEscape).|987654 ("\\###00\\#") -> #987654#| +|'*string*'

"*string*"|Literal string delimiter|Indicates that the enclosed characters should be copied to the result string unchanged.

More information: [Character literals](#character-literals).|68 ("# 'degrees'") -> 68 degrees

68 ("#' degrees'") -> 68 degrees| +|;|Section separator|Defines sections with separate format strings for positive, negative, and zero numbers.

More information: [The ";" Section Separator](#SectionSeparator).|12.345 ("#0.0#;(#0.0#);-\0-") -> 12.35

0 ("#0.0#;(#0.0#);-\0-") -> -0-

-12.345 ("#0.0#;(#0.0#);-\0-") -> (12.35)

12.345 ("#0.0#;(#0.0#)") -> 12.35

0 ("#0.0#;(#0.0#)") -> 0.0

-12.345 ("#0.0#;(#0.0#)") -> (12.35)| +|Other|All other characters|The character is copied to the result string unchanged.

More information: [Character literals](#character-literals).|68 ("# °") -> 68 °| + +The following sections provide detailed information about each of the custom numeric format specifiers. + + + +## The "0" custom specifier + +The "0" custom format specifier serves as a zero-placeholder symbol. If the value that is being formatted has a digit in the position where the zero appears in the format string, that digit is copied to the result string; otherwise, a zero appears in the result string. The position of the leftmost zero before the decimal point and the rightmost zero after the decimal point determines the range of digits that are always present in the result string. + +The "00" specifier causes the value to be rounded to the nearest digit preceding the decimal, where rounding away from zero is always used. For example, formatting 34.5 with "00" would result in the value 35. + +The following example displays several values that are formatted by using custom format strings that include zero placeholders. + +```powerquery-m +value = Double.From(123), +result1 = Number.ToText(value, "00000"), +// Displays 00123 + +value2 = Double.From(1.2), +result2 = Number.ToText(value2, "0.00"), +// Displays 1.20 + +result3 = Number.ToText(value2, "00.00"), +// Displays 01.20 + +culturedaDK = "da-DK", +result4 = Number.ToText(value2, "00.00", culturedaDK), +// Displays 01,20 + +value3 = Double.From(.56), +result5 = Number.ToText(value3, "0.0"), +// Displays 0.6 + +value4 = Double.From(1234567890), +result6 = Number.ToText(value4, "0,0"), +// Displays 1,234,567,890 + +cultureelGR = "el-GR", +result7 = Number.ToText(value4, "0,0", cultureelGR), +// Displays 1.234.567.890 + +value5 = Double.From(1234567890.123456), +result8 = Number.ToText(value5, "0,0.0"), +// Displays 1,234,567,890.1 + +value6 = Double.From(1234.567890), +result9 = Number.ToText(value6, "0,0.00"), +// Displays 1,234.57 +``` + +[Back to table](#table) + + + +## The "#" custom specifier + +The "#" custom format specifier serves as a digit-placeholder symbol. If the value that is being formatted has a digit in the position where the "#" symbol appears in the format string, that digit is copied to the result string. Otherwise, nothing is stored in that position in the result string. + +Note that this specifier never displays a zero that is not a significant digit, even if zero is the only digit in the string. It will display zero only if it is a significant digit in the number that is being displayed. + +The "##" format string causes the value to be rounded to the nearest digit preceding the decimal, where rounding away from zero is always used. For example, formatting 34.5 with "##" would result in the value 35. + +The following example displays several values that are formatted by using custom format strings that include digit placeholders. + +```powerquery-m +value1 = Double.From(1.2), +result1 = Number.ToText(value1, "#.##"), +// Displays 1.2 + +value2 = Double.From(123), +result2 = Number.ToText(value2, "#####"), +// Displays 123 + +value3 = Double.From(123456), +result3 = Number.ToText(value3, "[##-##-##]"), +// Displays [12-34-56] + +value4 = Double.From(1234567890), +result4 = Number.ToText(value4, "#"), +// Displays 1234567890 + +result5 = Number.ToText(value4, "(###) ###-####"), +// Displays (123) 456-7890 +``` + +To return a result string in which absent digits or leading zeroes are replaced by spaces, use the [Text.PadStart](text-padstart.md) and specify a field width, as the following example illustrates. + +```powerquery-m +let + value = Double.From(.324), + result = Text.Format("The value is: '#{0}'", {Text.PadStart(Number.ToText(value, "#.###"), 5)}) + +in + result + +// The example displays the following output if the current culture +// is en-US: +// The value is: ' .324' +``` + +[Back to table](#table) + + + +## The "." custom specifier + +The "." custom format specifier inserts a localized decimal separator into the result string. The first period in the format string determines the location of the decimal separator in the formatted value; any additional periods are ignored. If the format specifier ends with a "." only the significant digits are formatted into the result string. + +The character that is used as the decimal separator in the result string is not always a period; it is determined by the culture that controls formatting. + +The following example uses the "." format specifier to define the location of the decimal point in several result strings. + +```powerquery-m +value1 = Double.From(1.2), +result1 = Number.ToText(value1, "0.00"), +// Displays 1.20 + +result2 = Number.ToText(value1, "00.00"), +// Displays 01.20 + +result3 = Number.ToText(value1, "00.00", "da-DK"), +// Displays 01,20 + +value2 = Double.From(.086), +result4 = Number.ToText(value2, "#0.##%"), +// Displays 8.6% + +value3 = Double.From(86000), +result5 = Number.ToText(value3, "0.###E+0"), +// Displays 8.6E+4 +``` + +[Back to table](#table) + + + +## The "," custom specifier + +The "," character serves as both a group separator and a number scaling specifier. + +- Group separator: If one or more commas are specified between two digit placeholders (0 or #) that format the integral digits of a number, a group separator character is inserted between each number group in the integral part of the output. + + The culture determines the character used as the number group separator and the size of each number group. For example, if the string "#,#" and the invariant culture are used to format the number 1000, the output is "1,000". + +- Number scaling specifier: If one or more commas are specified immediately to the left of the explicit or implicit decimal point, the number to be formatted is divided by 1000 for each comma. For example, if the string "0,," is used to format the number 100 million, the output is "100". + +You can use group separator and number scaling specifiers in the same format string. For example, if the string "#,0,," and the invariant culture are used to format the number one billion, the output is "1,000". + +The following example illustrates the use of the comma as a group separator. + +```powerquery-m +value = Double.From(1234567890), +result1 = Number.ToText(value, "#,#"), +// Displays 1,234,567,890 + +result2 = Number.ToText(value, "#,##0,,"), +// Displays, 1,235 +``` + +The following example illustrates the use of the comma as a specifier for number scaling. + +```powerquery-m +value = Double.From(1234567890), +result1 = Number.ToText(value, "#,,"), +// Displays 1235 + +result2 = Number.ToText(value, "#,,,"), +// Displays 1 + +result3 = Number.ToText(value, "#,##0,,"), +// Displays 1,235 +``` + +[Back to table](#table) + + + +## The "%" custom specifier + +A percent sign (%) in a format string causes a number to be multiplied by 100 before it is formatted. The localized percent symbol is inserted in the number at the location where the % appears in the format string. The percent character used is defined by the culture. + +The following example defines several custom format strings that include the "%" custom specifier. + +```powerquery-m +value = Double.From(.086), +result = Number.ToText(value, "#0.##%"), +// Displays 8.6% +``` + +[Back to table](#table) + + + +## The "‰" custom specifier + +A per mille character (‰ or \u2030) in a format string causes a number to be multiplied by 1000 before it is formatted. The appropriate per mille symbol is inserted in the returned string at the location where the ‰ symbol appears in the format string. The per mille character used is defined by the culture, which provides culture-specific formatting information. + +The following example defines a custom format string that includes the "‰" custom specifier. + +```powerquery-m +value = Double.From(.00354), +perMilleFmt = "#0.##" & Character.FromNumber(0x2030), +result = Number.ToText(value, perMilleFmt) +// Displays 3.54‰ +``` + +[Back to table](#table) + + + +## The "E" and "e" custom specifiers + +If any of the strings "E", "E+", "E-", "e", "e+", or "e-" are present in the format string and are followed immediately by at least one zero, the number is formatted by using scientific notation with an "E" or "e" inserted between the number and the exponent. The number of zeros following the scientific notation indicator determines the minimum number of digits to output for the exponent. The "E+" and "e+" formats indicate that a plus sign or minus sign should always precede the exponent. The "E", "E-", "e", or "e-" formats indicate that a sign character should precede only negative exponents. + +The following example formats several numeric values using the specifiers for scientific notation. + +```powerquery-m +value = Double.From(86000), +result1 = Number.ToText(value, "0.###E+0"), +// Displays 8.6E+4 + +result2 = Number.ToText(value, "0.###E+000"), +// Displays 8.6E+004 + +result3 = Number.ToText(value, "0.###E-000"), +// Displays 8.6E004 +``` + +[Back to table](#table) + + + +## The "\\" escape character + +The "#", "0", ".", ",", "%", and "‰" symbols in a format string are interpreted as format specifiers rather than as literal characters. Depending on their position in a custom format string, the uppercase and lowercase "E" as well as the + and - symbols may also be interpreted as format specifiers. + +To prevent a character from being interpreted as a format specifier, you can precede it with a backslash, which is the escape character. The escape character signifies that the following character is a character literal that should be included in the result string unchanged. + +To include a backslash in a result string, you must escape it with another backslash (`\\`). + +> [!NOTE] +> Some compilers, such as the C++ and C# compilers, may also interpret a single backslash character as an escape character. To ensure that a string is interpreted correctly when formatting, you can use the verbatim string literal character (the @ character) before the string in C#, or add another backslash character before each backslash in C# and C++. The following C# example illustrates both approaches. + +The following example uses the escape character to prevent the formatting operation from interpreting the "#", "0", and "\\" characters as either escape characters or format specifiers. The C# examples uses an additional backslash to ensure that a backslash is interpreted as a literal character. + +```powerquery-m +value = 123, +result1 = Number.ToText(value, "\#\#\# ##0 dollars and \0\0 cents \#\#\#"), +// Displays ### 123 dollars and 00 cents ### + +result2 = Number.ToText(value, """###"" ##0 dollars and ""00"" cents ""###"""), +// Displays ### 123 dollars and 00 cents ### + +result3 = Number.ToText(value, "\\\\\\ ##0 dollars and \0\0 cents \\\\\\"), +// Displays \\\ 123 dollars and 00 cents \\\ + +result4 = Number.ToText(value, """\\\"" ##0 dollars and ""00"" cents ""\\\"""), +// Displays \\\ 123 dollars and 00 cents \\\ +``` + +[Back to table](#table) + + + +## The ";" section separator + +The semicolon (;) is a conditional format specifier that applies different formatting to a number depending on whether its value is positive, negative, or zero. To produce this behavior, a custom format string can contain up to three sections separated by semicolons. These sections are described in the following table. + +|Number of sections|Description| +|------------------------|-----------------| +|One section|The format string applies to all values.| +|Two sections|The first section applies to positive values and zeros, and the second section applies to negative values.

If the number to be formatted is negative, but becomes zero after rounding according to the format in the second section, the resulting zero is formatted according to the first section.| +|Three sections|The first section applies to positive values, the second section applies to negative values, and the third section applies to zeros.

The second section can be left empty (by having nothing between the semicolons), in which case the first section applies to all nonzero values.

If the number to be formatted is nonzero, but becomes zero after rounding according to the format in the first or second section, the resulting zero is formatted according to the third section.| + +Section separators ignore any preexisting formatting associated with a number when the final value is formatted. For example, negative values are always displayed without a minus sign when section separators are used. If you want the final formatted value to have a minus sign, you should explicitly include the minus sign as part of the custom format specifier. + +The following example uses the ";" format specifier to format positive, negative, and zero numbers differently. + +```powerquery-m +posValue = Double.From(1234), +negValue = Double.From(-1234), +zeroValue = Double.From(0), + +format1 = "##;(##)", +format2 = "##;(##);**Zero**", + +result1 = Number.ToText(posValue, format1), +// Displays 1234 + +result2 = Number.ToText(negValue, format1), +// Displays (1234) + +result3 = Number.ToText(zeroValue, format2), +// Displays **Zero** +``` + +[Back to table](#table) + +## Character literals + +Format specifiers that appear in a custom numeric format string are always interpreted as formatting characters and never as literal characters. This includes the following characters: + +- [0](#Specifier0) +- [\#](#SpecifierD) +- [%](#SpecifierPct) +- [‰](#SpecifierPerMille) +- ' +- [\\](#SpecifierEscape) +- [.](#SpecifierPt) +- [,](#SpecifierTh) +- [E or e](#SpecifierExponent), depending on its position in the format string. + +All other characters are always interpreted as character literals and, in a formatting operation, are included in the result string unchanged. In a parsing operation, they must match the characters in the input string exactly; the comparison is case-sensitive. + +The following example illustrates one common use of literal character units (in this case, thousands): + +```powerquery-m +n = 123.8, +formattedValue = Number.ToText(n, "#,##0.0K") +// The example displays the following output: +// 123.8K +``` + +There are two ways to indicate that characters are to be interpreted as literal characters and not as formatting characters, so that they can be included in a result string or successfully parsed in an input string: + +- By escaping a formatting character. For more information, go to [The "\\" escape character](#SpecifierEscape). + +- By enclosing the entire literal string in quotation apostrophes. + +The following example uses both approaches to include reserved characters in a custom numeric format string. + +```powerquery-m +n = Double.From(9.3), +result1 = Number.ToText(n, "##.0\%"), +// Displays 9.3% + +result2 = Number.ToText(n, "\'##\'"), +// Displays '9' + +result3 = Number.ToText(n, "\\##\\"), +// Displays \9\ + +result4 = Number.ToText(n, "##.0'%'"), +// Displays 9.3% + +result5 = Number.ToText(n, "'\'##'\'"), +// Displays \9\ +``` + + + +## Notes + +### Floating-Point infinities and NaN + +Regardless of the format string, if the value of a `Single.Type` or `Double.Type` floating-point type is positive infinity, negative infinity, or not a number (NaN), the formatted string is the value of the respective [Number.PositiveInfinity](number-positiveinfinity.md), [Number.NegativeInfinity](number-negativeinfinity.md), or [Number.NaN](number-nan.md) contants specified by the currently applicable culture. + + +### Control Panel settings + +The settings in the **Regional and Language Options** item in Control Panel influence the result string produced by a formatting operation. Those settings are used to initialize the object associated with the current culture, and the current culture provides values used to govern formatting. Computers that use different settings generate different result strings. + +In addition, if you use the constructor to instantiate a new object that represents the same culture as the current system culture, any customizations established by the **Regional and Language Options** item in Control Panel will be applied to the new object. You can use the constructor to create a object that does not reflect a system's customizations. + +### Rounding and fixed-point format strings + +For fixed-point format strings (that is, format strings that don't contain scientific notation format characters), numbers are rounded to as many decimal places as there are digit placeholders to the right of the decimal point. If the format string doesn't contain a decimal point, the number is rounded to the nearest integer. If the number has more digits than there are digit placeholders to the left of the decimal point, the extra digits are copied to the result string immediately before the first digit placeholder. + +[Back to table](#table) + + + +## Example + +The following example demonstrates two custom numeric format strings. In both cases, the digit placeholder (`#`) displays the numeric data, and all other characters are copied to the result string. + +```powerquery-m +let + number1 = 1234567890, + value1 = Number.ToText(number1, "(###) ###-####"), + number2 = 42, + value2 = Number.ToText(number2, "My Number = #"), + result = value1 & "#(cr,lf)" & value2 +in + result +// The example displays the following output: +// (123) 456-7890 +// My Number = 42 +``` + +[Back to table](#table) + +## Related content + +- [Number type conversion](type-conversion.md#number) +- [Data Types in Power Query](/power-query/data-types) +- [Standard Numeric Format Strings](standard-numeric-format-strings.md) diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md new file mode 100644 index 000000000..d76f44eb3 --- /dev/null +++ b/query-languages/m/standard-numeric-format-strings.md @@ -0,0 +1,513 @@ +--- +title: Standard numeric format strings +description: In this article, learn to use standard numeric format strings to format common numeric types into text representations in Power Query M. +ms.date: 9/5/2024 +ms.topic: reference +--- + +# Standard numeric format strings + +Standard numeric format strings are used to format common numeric types. A standard numeric format string takes the form *`[format specifier][precision specifier]`*, where: + +- *Format specifier* is a single alphabetic character that specifies the type of number format, for example, currency or percent. Any numeric format string that contains more than one alphabetic character, including white space, is interpreted as a custom numeric format string. For more information, go to [Custom numeric format strings](custom-numeric-format-strings.md). + +- *Precision specifier* is an optional integer that affects the number of digits in the resulting string. The precision specifier controls the number of digits in the string representation of a number. It doesn't round the number itself. To perform a rounding operation, use the [Number.RoundDown](number-rounddown.md), [Number.RoundUp](number-roundup.md), [Number.RoundAwayFromZero](number-roundawayfromzero.md), or [Number.RoundTowardZero](number-roundtowardzero.md) function. + + When *precision specifier* controls the number of fractional digits in the result string, the result string reflects a number that is rounded to a representable result nearest to the infinitely precise result. + + + > [!NOTE] + > The precision specifier determines the number of digits in the result string. To pad a result string with leading or trailing spaces, use the [Text.PadStart](text-padstart.md) and [Text.PadEnd](text-padend.md) functions and define an *alignment component* in the `count` parameter. + +Standard numeric format strings are supported by: + +- Some overloads of the `ToString` method of all numeric types. For example, you can supply a numeric format string to the and methods. + +- The `TryFormat` method of all numeric types, for example, and . + + +## Standard format specifiers + +The following table describes the standard numeric format specifiers and displays sample output produced by each format specifier. See the [Notes](#notes) section for additional information about using standard numeric format strings, and the [Code example](#code-example) section for a comprehensive illustration of their use. + +> [!NOTE] +> The result of a formatted string for a specific culture might differ from the following examples. Operating system settings, user settings, environment variables, and the .NET version you're using can all affect the format. For example, starting with .NET 5, .NET tries to unify cultural formats across platforms. For more information, see [.NET globalization and ICU](../../core/extensions/globalization-icu.md). + +| Format specifier | Name | Description | Examples | +|--|--|--|--| +| "B" or "b" | Binary | Result: A binary string.

Supported by: Integral types only (.NET 8+).

Precision specifier: Number of digits in the result string.

More information: [The Binary ("B") Format Specifier](#BFormatString). | 42 ("B")
-> 101010

255 ("b16")
-> 0000000011111111 | +| "C" or "c" | Currency | Result: A currency value.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: Defined by .

More information: [The Currency ("C") Format Specifier](#CFormatString). | 123.456 ("C", en-US)
-> \\$123.46

123.456 ("C", fr-FR)
-> 123,46 €

123.456 ("C", ja-JP)
-> ¥123

-123.456 ("C3", en-US)
-> (\\$123.456)

-123.456 ("C3", fr-FR)
-> -123,456 €

-123.456 ("C3", ja-JP)
-> -¥123.456 | +| "D" or "d" | Decimal | Result: Integer digits with optional negative sign.

Supported by: Integral types only.

Precision specifier: Minimum number of digits.

Default precision specifier: Minimum number of digits required.

More information: [The Decimal("D") Format Specifier](#DFormatString). | 1234 ("D")
-> 1234

-1234 ("D6")
-> -001234 | +| "E" or "e" | Exponential (scientific) | Result: Exponential notation.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: 6.

More information: [The Exponential ("E") Format Specifier](#EFormatString). | 1052.0329112756 ("E", en-US)
-> 1.052033E+003

1052.0329112756 ("e", fr-FR)
-> 1,052033e+003

-1052.0329112756 ("e2", en-US)
-> -1.05e+003

-1052.0329112756 ("E2", fr-FR)
-> -1,05E+003 | +| "F" or "f" | Fixed-point | Result: Integral and decimal digits with optional negative sign.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: Defined by .

More information: [The Fixed-Point ("F") Format Specifier](#FFormatString). | 1234.567 ("F", en-US)
-> 1234.57

1234.567 ("F", de-DE)
-> 1234,57

1234 ("F1", en-US)
-> 1234.0

1234 ("F1", de-DE)
-> 1234,0

-1234.56 ("F4", en-US)
-> -1234.5600

-1234.56 ("F4", de-DE)
-> -1234,5600 | +| "G" or "g" | General | Result: The more compact of either fixed-point or scientific notation.

Supported by: All numeric types.

Precision specifier: Number of significant digits.

Default precision specifier: Depends on numeric type.

More information: [The General ("G") Format Specifier](#GFormatString). | -123.456 ("G", en-US)
-> -123.456

-123.456 ("G", sv-SE)
-> -123,456

123.4546 ("G4", en-US)
-> 123.5

123.4546 ("G4", sv-SE)
-> 123,5

-1.234567890e-25 ("G", en-US)
-> -1.23456789E-25

-1.234567890e-25 ("G", sv-SE)
-> -1,23456789E-25 | +| "N" or "n" | Number | Result: Integral and decimal digits, group separators, and a decimal separator with optional negative sign.

Supported by: All numeric types.

Precision specifier: Desired number of decimal places.

Default precision specifier: Defined by .

More information: [The Numeric ("N") Format Specifier](#NFormatString). | 1234.567 ("N", en-US)
-> 1,234.57

1234.567 ("N", ru-RU)
-> 1 234,57

1234 ("N1", en-US)
-> 1,234.0

1234 ("N1", ru-RU)
-> 1 234,0

-1234.56 ("N3", en-US)
-> -1,234.560

-1234.56 ("N3", ru-RU)
-> -1 234,560 | +| "P" or "p" | Percent | Result: Number multiplied by 100 and displayed with a percent symbol.

Supported by: All numeric types.

Precision specifier: Desired number of decimal places.

Default precision specifier: Defined by .

More information: [The Percent ("P") Format Specifier](#PFormatString). | 1 ("P", en-US)
-> 100.00 %

1 ("P", fr-FR)
-> 100,00 %

-0.39678 ("P1", en-US)
-> -39.7 %

-0.39678 ("P1", fr-FR)
-> -39,7 % | +| "R" or "r" | Round-trip | Result: A string that can round-trip to an identical number.

Supported by: , , and .

Note: Recommended for the type only. For types, use "G17"; for types, use "G9".
Precision specifier: Ignored.

More information: [The Round-trip ("R") Format Specifier](#RFormatString). | 123456789.12345678 ("R")
-> 123456789.12345678

-1234567890.12345678 ("R")
-> -1234567890.1234567 | +| "X" or "x" | Hexadecimal | Result: A hexadecimal string.

Supported by: Integral types only.

Precision specifier: Number of digits in the result string.

More information: [The Hexadecimal ("X") Format Specifier](#XFormatString). | 255 ("X")
-> FF

-1 ("x")
-> ff

255 ("x4")
-> 00ff

-1 ("X4")
-> 00FF | +| Any other single character | Unknown specifier | Result: Throws a at run time. | | + +## Use standard numeric format strings + +[!INCLUDE[interactive-note](~/includes/csharp-interactive-note.md)] + +A standard numeric format string can be used to define the formatting of a numeric value. It can be passed to the [Number.ToText](number-totext.md) that has a `format` parameter. The following example formats a numeric value as a currency string in the current culture (in this case, the en-US culture). + +```powerquery-m +value = 123.456, +result = Number.ToText(value, "C2") +// Displays $123.46 +``` + + +The following sections provide detailed information about each of the standard numeric format strings. + + + + +## Currency format specifier (C) + +The "C" (or currency) format specifier converts a number to a string that represents a currency amount. The precision specifier indicates the desired number of decimal places in the result string. If the precision specifier is omitted, the default number of decimal places to use in currency values is 2. + +If the value to be formatted has more than the specified or default number of decimal places, the fractional value is rounded in the result string. If the value to the right of the number of specified decimal places is 5 or greater, the last digit in the result string is rounded away from zero. + +The result string is affected by the formatting information of the current culture. + + +The following example formats a value with the currency format specifier: + +```powerquery-m +let + value = 12345.6789, + result1 = Number.ToText(value, "C"), + result2 = Number.ToText(value, "C3"), + result3 = Number.ToText(value, "C3", "da-DK"), + output = result1 & "#(cr,lf)" & result2 & "#(cr,lf)" & result3 + +in + output + +// The example displays the following output on a system whose +// current culture is English (United States): +// $12,345.68 +// $12,345.679 +// 12.345,679 kr. +``` + + + +## Decimal format specifier (D) + +The "D" (or decimal) format specifier converts a number to a string of decimal digits (0-9), prefixed by a minus sign if the number is negative. This format is supported only for integral types. + +The precision specifier indicates the minimum number of digits desired in the resulting string. If required, the number is padded with zeros to its left to produce the number of digits given by the precision specifier. If no precision specifier is specified, the default is the minimum value required to represent the integer without leading zeros. + +The result string is affected by the formatting information of the current culture. + + +The following example formats a value with the decimal format specifier. + +```powerquery-m +value = 12345, +result1 = Number.ToText(value, "D"), +// Displays 12345 + +result2 = Number.ToText(value, "D8"), +// Displays 00012345 + +value2 = -12345, +result3 = Number.ToText(value2, "D"), +// Displays -12345 + +result4 = Number.ToText(value2, "D8"), +// Displays -00012345 +``` + + + +## Exponential format specifier (E) + +The exponential ("E") format specifier converts a number to a string of the form "-d.ddd…E+ddd" or "-d.ddd…e+ddd", where each "d" indicates a digit (0-9). The string starts with a minus sign if the number is negative. Exactly one digit always precedes the decimal point. + +The precision specifier indicates the desired number of digits after the decimal point. If the precision specifier is omitted, a default of six digits after the decimal point is used. + +The case of the format specifier indicates whether to prefix the exponent with an "E" or an "e". The exponent always consists of a plus or minus sign and a minimum of three digits. The exponent is padded with zeros to meet this minimum, if required. + +The result string is affected by the formatting information of the current culture. + + +The following example formats a value with the exponential format specifier: + +```powerquery-m + value = 12345.6789, + result1 = Number.ToText(value, "E"), + // Displays 1.234568E+004 + + result2 = Number.ToText(value, "E10"), + // Displays 1.2345678900E+004 + + result3 = Number.ToText(value, "e4"), + // Displays 1.2346e+004 + + result4 = Number.ToText(value, "E", "fr-FR"), + // Displays 1,234568E+004 +``` + + + +## Fixed-point format specifier (F) + +The fixed-point ("F") format specifier converts a number to a string of the form "-ddd.ddd…" where each "d" indicates a digit (0-9). The string starts with a minus sign if the number is negative. + +The precision specifier indicates the desired number of decimal places. If the precision specifier is omitted, the default number of decimal places to use in numeric values is 2. + +The result string is affected by the formatting information of the current culture. + + +The following example formats a double and an integer value with the fixed-point format specifier: + +```powerquery-m + integerNumber = 17843, + result = Number.ToText(integerNumber, "F"), + // Displays 17843.00 + + integerNumber2 = -29541, + result2 = Number.ToText(integerNumber2, "F3"), + // Displays -29541.000 + + doubleNumber = 18934.1879, + result3 = Number.ToText(doubleNumber, "F"), + // Displays 18934.19 + + result4 = Number.ToText(doubleNumber, "F0"), + // Displays 18934 + + doubleNumber2 = -1898300.1987, + result5 = Number.ToText(doubleNumber2, "F1"), + // Displays -1898300.2 + + result6 = Number.ToText(doubleNumber2, "F3", "es-ES"), + // Displays -1898300,199 +``` + + + +## General format specifier (G) + +The general ("G") format specifier converts a number to the more compact of either fixed-point or scientific notation, depending on the type of the number and whether a precision specifier is present. The precision specifier defines the maximum number of significant digits that can appear in the result string. If the precision specifier is omitted or zero, the type of the number determines the default precision, as indicated in the following table. + +|Numeric type | Default precision | +|----------------------------|-------------------| +|`Byte.Type` or `Int8.Type` |3 digits| +|`Int16.Type` |5 digits| +|`Int32.Type` |10 digits| +|`Int64.Type` |19 digits| +|`Single.Type` |Smallest round-trippable number of digits to represent the number (G7 is the default)| +|`Double.Type` |Smallest round-trippable number of digits to represent the number (G15 is the default)| +|`Decimal.Type` |Smallest round-trippable number of digits to represent the number (G30 is the default)| + + + +Fixed-point notation is used if the exponent that would result from expressing the number in scientific notation is greater than -5 and less than the precision specifier; otherwise, scientific notation is used. The result contains a decimal point if required, and trailing zeros after the decimal point are omitted. If the precision specifier is present and the number of significant digits in the result exceeds the specified precision, the excess trailing digits are removed by rounding. + +However, if the number is a `Decimal.Type` and the precision specifier is omitted, fixed-point notation is always used and trailing zeros are preserved. + +If scientific notation is used, the exponent in the result is prefixed with "E" if the format specifier is "G", or "e" if the format specifier is "g". The exponent contains a minimum of two digits. This differs from the format for scientific notation that is produced by the exponential format specifier, which includes a minimum of three digits in the exponent. + +When used with a `Double.Type` value, the "G17" format specifier ensures that the original `Double.Type` value successfully round-trips. This is because `Double.Type` is an IEEE 754-2008-compliant double-precision (`binary64`) floating-point number that gives up to 17 significant digits of precision. On .NET Framework, we recommend its use instead of the ["R" format specifier](#RFormatString), since in some cases "R" fails to successfully round-trip double-precision floating point values. + +When used with a `Single.Type` value, the "G9" format specifier ensures that the original `Single.Type` value successfully round-trips. This is because `Single.Type` is an IEEE 754-2008-compliant single-precision (`binary32`) floating-point number that gives up to nine significant digits of precision. For performance reasons, we recommend its use instead of the ["R" format specifier](#RFormatString). + +The result string is affected by the formatting information of the current culture. + + +The following example formats assorted floating-point values with the general format specifier: + +```powerquery-m + number = 12345.6789, + result = Number.ToText(number, "G"), + // Displays 12345.6789 + result2 = Number.ToText(number, "G", "fr-FR"), + // Displays 12345,6789 + + result3 = Number.ToText(number, "G7), + // Displays 12345.68 + + number2 = .0000023, + result4 = Number.ToText(number2, "G"), + // Displays 2.3E-06 + result5 = Number.ToText(number2, "G", "fr-FR"), + // Displays 2,3E-06 + + number3 = .0023, + result6 = Number.ToText(number3, "G"), + // Displays 0.0023 + + number4 = 1234, + result7 = Number.ToText(number4, "G2") + // Displays 1.2E+03 + + number5 = Number.PI, + result8 = Number.ToText(number5, "G5"), + // Displays 3.1416 +``` + + + +## Numeric format specifier (N) + +The numeric ("N") format specifier converts a number to a string of the form "-d,ddd,ddd.ddd…", where "-" indicates a negative number symbol if required, "d" indicates a digit (0-9), "," indicates a group separator, and "." indicates a decimal point symbol. The precision specifier indicates the desired number of digits after the decimal point. If the precision specifier is omitted, the number of decimal places is defined by the current culture. + +The result string is affected by the formatting information of the current culture. + + +The following example formats assorted floating-point values with the number format specifier: + +```powerquery-m + dblValue = -12445.6789, + result = Number.ToText(dblValue, "N"), + // Displays -12,445.68 + result2 = Number.ToText(dblValue, "N1", "sv-SE"), + // Displays -12 445,7 + + intValue = 123456789, + result3 = Number.ToText(intValue, "N1"), + // Displays 123,456,789.0 +``` + + + +## Percent format specifier (P) + +The percent ("P") format specifier multiplies a number by 100 and converts it to a string that represents a percentage. The precision specifier indicates the desired number of decimal places. If the precision specifier is omitted, the default numeric precision supplied by the current culture is used. + + +The following example formats floating-point values with the percent format specifier: + +```powerquery-m + number = .2468013, + result = Number.ToText(number, "P"), + // Displays 24.68% + result2 = Number.ToText(number, "P", "hr-HR"), + // Displays 24,68 % + result3 = Number.ToText(number, "P1"), + // Displays 24.7% +``` + + + +## Round-trip format specifier (R) + +The round-trip ("R") format specifier attempts to ensure that a numeric value that is converted to a string is parsed back into the same numeric value. This format is supported only for the `Single.Type`, `Double.Type`, and `Decimal.Type` types. + +In Power Query M, the "R" format specifier fails to successfully round-trip `Double.Type` values in some cases. For both `Double.Type` and `Single.Type` values, the "R" format specifier offers relatively poor performance. Instead, we recommend that you use the ["G17"](#GFormatString) format specifier for `Double.Type` values and the ["G9"](#GFormatString) format specifier to successfully round-trip `Single.Type` values. + + + +Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier. The result string is affected by the formatting information of the current culture. + + +The following example formats a whole number value with the round-trip format specifier. + +```powerquery-m +let + initialValue = 92233720368547758079, + result = Number.ToText(initialValue, "R") +in + result + +// The example dislays the following output: +// 92233720368547758079 +``` + +> [!IMPORTANT] +> In some cases, `Double.Type` values formatted with the "R" standard numeric format string do not successfully round-trip. See the following paragraph for more information. + +To work around the problem of `Double.Type` values formatted with the "R" standard numeric format string not successfully round-tripping, you can format `Double.Type` values by using the "G17" standard numeric format string. The following example uses the "R" format string with a `Double.Type` value that doesn't round-trip successfully, and also uses the "G17" format string to successfully round-trip the original value: + +[!code-csharp[System.Double.ToString#5](../../../samples/snippets/csharp/VS_Snippets_CLR_System/system.Double.ToString/cs/roundtripex1.cs#RoundTrip)] +[!code-vb[System.Double.ToString#5](../../../samples/snippets/visualbasic/VS_Snippets_CLR_System/system.Double.ToString/vb/roundtripex1.vb#5)] + + + +## Hexadecimal format specifier (X) + +The hexadecimal ("X") format specifier converts a number to a string of hexadecimal digits. The case of the format specifier indicates whether to use uppercase or lowercase characters for hexadecimal digits that are greater than 9. For example, use "X" to produce "ABCDEF", and "x" to produce "abcdef". This format is supported only for integral types. + +The precision specifier indicates the minimum number of digits desired in the resulting string. If required, the number is padded with zeros to its left to produce the number of digits given by the precision specifier. + +The result string isn't affected by the formatting information of the current culture. + +The following example formats values with the hexadecimal format specifier. + +```powerquery-m + value1 = 0x2045e, + result1 = Number.ToText(value1, "x"), + // Displays 2045e + result2 = Number.ToText(value1, "X"), + // Displays 2045E + result4 = Number.ToText(value1, "X8"), + // Displays 0002045E + + value2 = 123456789, + result5 = Number.ToText(value2, "X"), + // Displays 75BCD15 + result6 = number.ToText(value2, "X2"), + // Displays 75BCD15 +``` + +## Notes + +This section contains additional information about using standard numeric format strings. + + +### Control Panel settings + +The settings in the **Regional and Language Options** item in Control Panel influence the result string produced by a formatting operation. Those settings are used to initialize the object associated with the current culture, which provides values used to govern formatting. Computers that use different settings generate different result strings. + +In addition, if the constructor is used to instantiate a new object that represents the same culture as the current system culture, any customizations established by the **Regional and Language Options** item in Control Panel will be applied to the new object. You can use the constructor to create a object that does not reflect a system's customizations. + + +### NumberFormatInfo properties + +Formatting is influenced by the properties of the current object, which is provided implicitly by the current culture or explicitly by the parameter of the method that invokes formatting. Specify a or object for that parameter. + +> [!NOTE] +> For information about customizing the patterns or strings used in formatting numeric values, see the class topic. + +### Integral and floating-point numeric types + +Some descriptions of standard numeric format specifiers refer to integral or floating-point numeric types. The integral numeric types are , , , , , , , , and . The floating-point numeric types are , , , and . + +### Floating-point infinities and NaN + +Regardless of the format string, if the value of a , , or floating-point type is positive infinity, negative infinity, or not a number (NaN), the formatted string is the value of the respective , , or property that is specified by the currently applicable object. + +## Code example + +The following example formats a floating point and an integral numeric value using the en-US culture and all the standard numeric format specifiers. This example uses two particular numeric types (`Double.Type` and `Int32.Type`), but would yield similar results for any of the other numeric base types (`Byte.Type`, `Decimal.Type`, `Int8.Type`, `Int16.Type`, `Int64.Type`, and `Single.Type`). + +```powerquery-m +let + // Display string representations of numbers for en-us culture + culture = "en-US", + + // Output floating point values + floating = Double.From(10761.937554), + result1 = Text.Format("C: #{0}", {Number.ToText(floating, "C", culture)}), // Displays "C: $10,761.94" + result2 = Text.Format("E: #{0}", {Number.ToText(floating, "E03", culture)}), // Displays "E: 1.076E+004" + result3 = Text.Format("F: #{0}", {Number.ToText(floating, "F04", culture)}), // Displays "F: 10761.9376" + result4 = Text.Format("G: #{0}", {Number.ToText(floating, "G", culture)}), // Displays "G: 10761.937554" + result5 = Text.Format("N: #{0}", {Number.ToText(floating, "N03", culture)}), // Displays "N: 10,761.938" + result6 = Text.Format("P: #{0}", {Number.ToText(floating/10000, "P02", culture)}), // Displays "P: 107.62%" + result7 = Text.Format("R: #{0}", {Number.ToText(floating, "R", culture)}), // Displays "R: 10761.937554" + #"Floating results" = result1 & "#(cr,lf)" & result2 & "#(cr,lf)" &result3 & "#(cr,lf)" &result4 & "#(cr,lf)" &result5 & "#(cr,lf)" &result6 & "#(cr,lf)" & result7 & "#(cr,lf)", + + // Output integral values + integral = Int32.From(8395), + result8 = Text.Format("C: #{0}", {Number.ToText(integral, "C", culture)}), // Displays "C: $8,395.00" + result9 = Text.Format("D: #{0}", {Number.ToText(integral, "D6", culture)}), // Displays "D: 008395" + result10 = Text.Format("E: #{0}", {Number.ToText(integral, "E03", culture)}), // Displays "E: 8.395E+003" + result11 = Text.Format("F: #{0}", {Number.ToText(integral, "F01", culture)}), // Displays "F: 8395.0" + result12 = Text.Format("G: #{0}", {Number.ToText(integral, "G", culture)}), // Displays "G: 8395" + result13 = Text.Format("N: #{0}", {Number.ToText(integral, "N01", culture)}), // Displays "N: 8,395.0" + result14 = Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95 %" + result15 = Text.Format("X: 0x#{0}", {Number.ToText(integral, "X", culture)}), // Displays "X: 0x20CB" + #"Integral results" = result8 & "#(cr,lf)" & result9 & "#(cr,lf)" &result10 & "#(cr,lf)" &result11 & "#(cr,lf)" &result12 & "#(cr,lf)" &result13 & "#(cr,lf)" & result14 & "#(cr,lf)" & result15, + results = #"Floating results" & #"Integral results" + +in + results +``` + +## Related content + +- [Custom Numeric Format Strings](custom-numeric-format-strings.md) +- [Formatting Types](formatting-types.md) +- [How to: Pad a Number with Leading Zeros](how-to-pad-a-number-with-leading-zeros.md) +- [Composite Formatting](composite-formatting.md) From 4c02f28572ec4082c8a60d17316b85f15a052334 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 9 Sep 2024 11:24:20 -0700 Subject: [PATCH 560/934] Test build --- query-languages/m/custom-numeric-format-strings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index 765acea77..c293a43b6 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -17,7 +17,7 @@ Custom numeric format strings are supported by some overloads of the `ToString` |Format specifier|Name|Description|Examples| |----------------------|----------|-----------------|--------------| -|"0"|Zero placeholder|Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

More information: [The "0" Custom Specifier](#the-o-custom-specifier).|1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| +|"0"|Zero placeholder|Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

More information: [The "0" Custom Specifier](#the--o--custom-specifier).|1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| |"#"|Digit placeholder|Replaces the "#" symbol with the corresponding digit if one is present; otherwise, no digit appears in the result string.

Note that no digit appears in the result string if the corresponding digit in the input string is a non-significant 0. For example, 0003 ("####") -> 3.

More information: [The "#" Custom Specifier](#SpecifierD).|1234.5678 ("#####") -> 1235

0.45678 ("#.##", en-US) -> .46

0.45678 ("#.##", fr-FR) -> ,46| |"."|Decimal point|Determines the location of the decimal separator in the result string.

More information: [The "." Custom Specifier](#SpecifierPt).|0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| |","|Group separator and number scaling|Serves as both a group separator and a number scaling specifier. As a group separator, it inserts a localized group separator character between each group. As a number scaling specifier, it divides a number by 1000 for each comma specified.

More information: [The "," Custom Specifier](#SpecifierTh).|Group separator specifier:

2147483647 ("##,#", en-US) -> 2,147,483,647

2147483647 ("##,#", es-ES) -> 2.147.483.647

Scaling specifier:

2147483647 ("#,#,,", en-US) -> 2,147

2147483647 ("#,#,,", es-ES) -> 2.147| From 5276c91417cf0a97af81d25c5be4e7075a830907 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 9 Sep 2024 11:32:25 -0700 Subject: [PATCH 561/934] Another link test --- query-languages/m/custom-numeric-format-strings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index c293a43b6..f24ad79a2 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -17,7 +17,7 @@ Custom numeric format strings are supported by some overloads of the `ToString` |Format specifier|Name|Description|Examples| |----------------------|----------|-----------------|--------------| -|"0"|Zero placeholder|Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

More information: [The "0" Custom Specifier](#the--o--custom-specifier).|1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| +|"0"|Zero placeholder|Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

More information: [The "0" Custom Specifier](#the-"o"-custom-specifier).|1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| |"#"|Digit placeholder|Replaces the "#" symbol with the corresponding digit if one is present; otherwise, no digit appears in the result string.

Note that no digit appears in the result string if the corresponding digit in the input string is a non-significant 0. For example, 0003 ("####") -> 3.

More information: [The "#" Custom Specifier](#SpecifierD).|1234.5678 ("#####") -> 1235

0.45678 ("#.##", en-US) -> .46

0.45678 ("#.##", fr-FR) -> ,46| |"."|Decimal point|Determines the location of the decimal separator in the result string.

More information: [The "." Custom Specifier](#SpecifierPt).|0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| |","|Group separator and number scaling|Serves as both a group separator and a number scaling specifier. As a group separator, it inserts a localized group separator character between each group. As a number scaling specifier, it divides a number by 1000 for each comma specified.

More information: [The "," Custom Specifier](#SpecifierTh).|Group separator specifier:

2147483647 ("##,#", en-US) -> 2,147,483,647

2147483647 ("##,#", es-ES) -> 2.147.483.647

Scaling specifier:

2147483647 ("#,#,,", en-US) -> 2,147

2147483647 ("#,#,,", es-ES) -> 2.147| From 1de3828da386833ac5b60591f40a377225fa6119 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 13 Sep 2024 12:43:14 -0700 Subject: [PATCH 562/934] Added examples to #date function --- query-languages/m/sharpdate.md | 65 ++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index ec2f15856..5e67d0ffc 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -17,3 +17,68 @@ Creates a date value from whole numbers representing the year, month, and day. R * 1 ≤ year ≤ 9999 * 1 ≤ month ≤ 12 * 1 ≤ day ≤ 31 + +## Example 1 + +Create a date representing December 26, 2023. + +**Usage** + +```powerquery-m +#date(2023, 12, 26) +``` + +**Output** + +`#date(2023, 12, 26)` + +## Example 2 + +Convert a date to text using a custom format and the German culture. + +**Usage** + +```powerquery-m +Date.ToText(#date(2023, 12, 26), [Format="dd MMM yyyy", Culture="de-DE"]) +``` + +**Output** + +`26 Dez 2023` + +## Example 3 + +Get the rows from a table that contain a date in 2023. + +**Usage** + +```powerquery-m +let +Source = #table(type table [Account Code = text, Posted Date = date, Sales = number], + { + {"US-2004", #date(2023,1,20), 580}, + {"CA-8843", #date(2023,7,18), 280}, + {"PA-1274", #date(2022,1,12), 90}, + {"PA-4323", #date(2023,4,14), 187}, + {"US-1200", #date(2022,12,14), 350}, + {"PTY-507", #date(2023,6,4), 110} + }), + #"Filtered rows" = Table.SelectRows( + Source, + each Date.Year([Posted Date]) = 2023 + ) +in + #"Filtered rows" +``` + +**Output** + +```powerquery-m +#table (type table [Account Code = text, Posted Date = date, Sales = number], +{ + {"US-2004", #date(2023, 1, 20), 580}, + {"CA-8843", #date(2023, 7, 18), 280}, + {"PA-4323", #date(2023, 4, 14), 187}, + {"PTY-507", #date(2023, 6, 4), 110} +}) +``` From 4c1330500059f20b2cda2b0930aff543948015fc Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 16 Sep 2024 19:57:33 +0200 Subject: [PATCH 563/934] Moving FIRSTNONBLANK, FIRSTNONBLANKVALUE, LASTNONBLANK, LASTNONBLANKVALUE to Filter category --- query-languages/dax/toc.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 17b325cde..2a39df278 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -165,10 +165,18 @@ href: earliest-function-dax.md - name: FILTER href: filter-function-dax.md + - name: FIRSTNONBLANK + href: firstnonblank-function-dax.md + - name: FIRSTNONBLANKVALUE + href: firstnonblankvalue-function-dax.md - name: INDEX href: index-function-dax.md - name: KEEPFILTERS href: keepfilters-function-dax.md + - name: LASTNONBLANK + href: lastnonblank-function-dax.md + - name: LASTNONBLANKVALUE + href: lastnonblankvalue-function-dax.md - name: LOOKUPVALUE href: lookupvalue-function-dax.md - name: MATCHBY @@ -781,16 +789,8 @@ href: endofyear-function-dax.md - name: FIRSTDATE href: firstdate-function-dax.md - - name: FIRSTNONBLANK - href: firstnonblank-function-dax.md - - name: FIRSTNONBLANKVALUE - href: firstnonblankvalue-function-dax.md - name: LASTDATE href: lastdate-function-dax.md - - name: LASTNONBLANK - href: lastnonblank-function-dax.md - - name: LASTNONBLANKVALUE - href: lastnonblankvalue-function-dax.md - name: NEXTDAY href: nextday-function-dax.md - name: NEXTMONTH From 3ebdde37399575c5f6d3f05a18b9d3640ad518d5 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 16 Sep 2024 13:02:38 -0700 Subject: [PATCH 564/934] Removed extraneous material --- .../m/custom-numeric-format-strings.md | 29 +- .../m/standard-numeric-format-strings.md | 398 ++++++------------ query-languages/m/toc.yml | 6 + 3 files changed, 159 insertions(+), 274 deletions(-) diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index f24ad79a2..261ef3b09 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -1,17 +1,12 @@ --- title: "Custom numeric format strings" description: Learn how to create a custom numeric format string to format numeric data in .NET. A custom numeric format string has one or more custom numeric specifiers. -ms.date: 9/4/2024 +ms.date: 9/16/2024 ms.topic: reference --- # Custom numeric format strings You can create a custom numeric format string, which consists of one or more custom numeric specifiers, to define how to format numeric data. A custom numeric format string is any format string that isn't a [standard numeric format string](standard-numeric-format-strings.md). - The following table describes the custom numeric format specifiers and displays sample output produced by each format specifier. Go to the [Notes](#NotesCustomFormatting) section for additional information about using custom numeric format strings, and the [Example](#example) section for a comprehensive illustration of their use. @@ -268,9 +263,6 @@ To prevent a character from being interpreted as a format specifier, you can pre To include a backslash in a result string, you must escape it with another backslash (`\\`). -> [!NOTE] -> Some compilers, such as the C++ and C# compilers, may also interpret a single backslash character as an escape character. To ensure that a string is interpreted correctly when formatting, you can use the verbatim string literal character (the @ character) before the string in C#, or add another backslash character before each backslash in C# and C++. The following C# example illustrates both approaches. - The following example uses the escape character to prevent the formatting operation from interpreting the "#", "0", and "\\" characters as either escape characters or format specifiers. The C# examples uses an additional backslash to ensure that a backslash is interpreted as a literal character. ```powerquery-m @@ -381,16 +373,23 @@ result5 = Number.ToText(n, "'\'##'\'"), ## Notes -### Floating-Point infinities and NaN +## How culture affects numeric format strings + +If you don't set a specific culture in your numeric format strings, your format strings uses the current default culture. *Culture* is the standard locale that’s determined by the underlying platform, such as Windows 11. For example, the [list of Windows 11 input locales](/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11#input-locales) can be used as the culture on the Windows 11 platform. Other platforms, such as Window 10 or macOS might use a different list of cultures. -Regardless of the format string, if the value of a `Single.Type` or `Double.Type` floating-point type is positive infinity, negative infinity, or not a number (NaN), the formatted string is the value of the respective [Number.PositiveInfinity](number-positiveinfinity.md), [Number.NegativeInfinity](number-negativeinfinity.md), or [Number.NaN](number-nan.md) contants specified by the currently applicable culture. +The default culture you use can vary depending on whether you reference Power Query M on a local machine or a cloud platform. For example, if you develop Power Query M code on your local system in Power BI Desktop, the default culture uses the locale settings used on your local system. If you develop Power Query M code in Power BI service, the default culture uses the locale settings used on the cloud service. - -### Control Panel settings +The culture is set to the system locale (Windows, MacOS) when the queries are first authored. setting of the code is stored within the M queries when the code is created. However, you can change the default culture in the Power Query settings dialog where you create the query. For example, if you are running Power Query from Excel: -The settings in the **Regional and Language Options** item in Control Panel influence the result string produced by a formatting operation. Those settings are used to initialize the object associated with the current culture, and the current culture provides values used to govern formatting. Computers that use different settings generate different result strings. +1. In Power Query, select **File** > **Options and settings** > **Query options**. +1. Under **Current Workbook, select **Regional Settings**. +1. Select the locale you want to use. + +Other versions of Power Query work similarly. In general, within Power Query you select **Options**, which opens the **Options** dialog. Then select **Regional Settings** and select the locale you want to use. + +### Floating-Point infinities and NaN -In addition, if you use the constructor to instantiate a new object that represents the same culture as the current system culture, any customizations established by the **Regional and Language Options** item in Control Panel will be applied to the new object. You can use the constructor to create a object that does not reflect a system's customizations. +Regardless of the format string, if the value of a `Decimal.Type`, `Single.Type` or `Double.Type` floating-point type is positive infinity, negative infinity, or not a number (NaN), the formatted string is the value of the respective [Number.PositiveInfinity](number-positiveinfinity.md), [Number.NegativeInfinity](number-negativeinfinity.md), or [Number.NaN](number-nan.md) constants specified by the currently applicable culture. ### Rounding and fixed-point format strings diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index d76f44eb3..b0a5c845a 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -1,7 +1,7 @@ --- title: Standard numeric format strings description: In this article, learn to use standard numeric format strings to format common numeric types into text representations in Power Query M. -ms.date: 9/5/2024 +ms.date: 9/16/2024 ms.topic: reference --- @@ -11,54 +11,37 @@ Standard numeric format strings are used to format common numeric types. A stand - *Format specifier* is a single alphabetic character that specifies the type of number format, for example, currency or percent. Any numeric format string that contains more than one alphabetic character, including white space, is interpreted as a custom numeric format string. For more information, go to [Custom numeric format strings](custom-numeric-format-strings.md). -- *Precision specifier* is an optional integer that affects the number of digits in the resulting string. The precision specifier controls the number of digits in the string representation of a number. It doesn't round the number itself. To perform a rounding operation, use the [Number.RoundDown](number-rounddown.md), [Number.RoundUp](number-roundup.md), [Number.RoundAwayFromZero](number-roundawayfromzero.md), or [Number.RoundTowardZero](number-roundtowardzero.md) function. +- *Precision specifier* is an optional integer that affects the number of digits in the resulting string. The precision specifier controls the number of digits in the string representation of a number. - When *precision specifier* controls the number of fractional digits in the result string, the result string reflects a number that is rounded to a representable result nearest to the infinitely precise result. - + When the precision specifier controls the number of fractional digits in the result string, the result string reflects a number that is rounded to a representable result nearest to the infinitely precise result. > [!NOTE] - > The precision specifier determines the number of digits in the result string. To pad a result string with leading or trailing spaces, use the [Text.PadStart](text-padstart.md) and [Text.PadEnd](text-padend.md) functions and define an *alignment component* in the `count` parameter. + > The precision specifier determines the number of digits in the result string. To pad a result string with leading or trailing spaces or other characters (such a 0), use the [Text.PadStart](text-padstart.md) and [Text.PadEnd](text-padend.md) functions and define an *alignment component* in the `count` parameter. -Standard numeric format strings are supported by: - -- Some overloads of the `ToString` method of all numeric types. For example, you can supply a numeric format string to the and methods. - -- The `TryFormat` method of all numeric types, for example, and . - +Standard numeric format strings are supported by the [Number.ToText](number-totext.md) function. ## Standard format specifiers -The following table describes the standard numeric format specifiers and displays sample output produced by each format specifier. See the [Notes](#notes) section for additional information about using standard numeric format strings, and the [Code example](#code-example) section for a comprehensive illustration of their use. +The following table describes the standard numeric format specifiers and displays sample output produced by each format specifier. Go to the [Notes](#notes) section for additional information about using standard numeric format strings, and the [Code example](#code-example) section for a comprehensive illustration of their use. > [!NOTE] -> The result of a formatted string for a specific culture might differ from the following examples. Operating system settings, user settings, environment variables, and the .NET version you're using can all affect the format. For example, starting with .NET 5, .NET tries to unify cultural formats across platforms. For more information, see [.NET globalization and ICU](../../core/extensions/globalization-icu.md). +> The result of a formatted string for a specific culture might differ from the following examples. Operating system settings, user settings, environment variables, and other settings on the system you use can all affect the format. | Format specifier | Name | Description | Examples | |--|--|--|--| -| "B" or "b" | Binary | Result: A binary string.

Supported by: Integral types only (.NET 8+).

Precision specifier: Number of digits in the result string.

More information: [The Binary ("B") Format Specifier](#BFormatString). | 42 ("B")
-> 101010

255 ("b16")
-> 0000000011111111 | -| "C" or "c" | Currency | Result: A currency value.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: Defined by .

More information: [The Currency ("C") Format Specifier](#CFormatString). | 123.456 ("C", en-US)
-> \\$123.46

123.456 ("C", fr-FR)
-> 123,46 €

123.456 ("C", ja-JP)
-> ¥123

-123.456 ("C3", en-US)
-> (\\$123.456)

-123.456 ("C3", fr-FR)
-> -123,456 €

-123.456 ("C3", ja-JP)
-> -¥123.456 | +| "C" or "c" | Currency | Result: A currency value.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: Defined by the culture.

More information: [The Currency ("C") Format Specifier](#CFormatString). | 123.456 ("C", en-US)
-> \\$123.46

123.456 ("C", fr-FR)
-> 123,46 €

123.456 ("C", ja-JP)
-> ¥123

-123.456 ("C3", en-US)
-> (\\$123.456)

-123.456 ("C3", fr-FR)
-> -123,456 €

-123.456 ("C3", ja-JP)
-> -¥123.456 | | "D" or "d" | Decimal | Result: Integer digits with optional negative sign.

Supported by: Integral types only.

Precision specifier: Minimum number of digits.

Default precision specifier: Minimum number of digits required.

More information: [The Decimal("D") Format Specifier](#DFormatString). | 1234 ("D")
-> 1234

-1234 ("D6")
-> -001234 | | "E" or "e" | Exponential (scientific) | Result: Exponential notation.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: 6.

More information: [The Exponential ("E") Format Specifier](#EFormatString). | 1052.0329112756 ("E", en-US)
-> 1.052033E+003

1052.0329112756 ("e", fr-FR)
-> 1,052033e+003

-1052.0329112756 ("e2", en-US)
-> -1.05e+003

-1052.0329112756 ("E2", fr-FR)
-> -1,05E+003 | -| "F" or "f" | Fixed-point | Result: Integral and decimal digits with optional negative sign.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: Defined by .

More information: [The Fixed-Point ("F") Format Specifier](#FFormatString). | 1234.567 ("F", en-US)
-> 1234.57

1234.567 ("F", de-DE)
-> 1234,57

1234 ("F1", en-US)
-> 1234.0

1234 ("F1", de-DE)
-> 1234,0

-1234.56 ("F4", en-US)
-> -1234.5600

-1234.56 ("F4", de-DE)
-> -1234,5600 | +| "F" or "f" | Fixed-point | Result: Integral and decimal digits with optional negative sign.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: Defined by the culture.

More information: [The Fixed-Point ("F") Format Specifier](#FFormatString). | 1234.567 ("F", en-US)
-> 1234.57

1234.567 ("F", de-DE)
-> 1234,57

1234 ("F1", en-US)
-> 1234.0

1234 ("F1", de-DE)
-> 1234,0

-1234.56 ("F4", en-US)
-> -1234.5600

-1234.56 ("F4", de-DE)
-> -1234,5600 | | "G" or "g" | General | Result: The more compact of either fixed-point or scientific notation.

Supported by: All numeric types.

Precision specifier: Number of significant digits.

Default precision specifier: Depends on numeric type.

More information: [The General ("G") Format Specifier](#GFormatString). | -123.456 ("G", en-US)
-> -123.456

-123.456 ("G", sv-SE)
-> -123,456

123.4546 ("G4", en-US)
-> 123.5

123.4546 ("G4", sv-SE)
-> 123,5

-1.234567890e-25 ("G", en-US)
-> -1.23456789E-25

-1.234567890e-25 ("G", sv-SE)
-> -1,23456789E-25 | -| "N" or "n" | Number | Result: Integral and decimal digits, group separators, and a decimal separator with optional negative sign.

Supported by: All numeric types.

Precision specifier: Desired number of decimal places.

Default precision specifier: Defined by .

More information: [The Numeric ("N") Format Specifier](#NFormatString). | 1234.567 ("N", en-US)
-> 1,234.57

1234.567 ("N", ru-RU)
-> 1 234,57

1234 ("N1", en-US)
-> 1,234.0

1234 ("N1", ru-RU)
-> 1 234,0

-1234.56 ("N3", en-US)
-> -1,234.560

-1234.56 ("N3", ru-RU)
-> -1 234,560 | -| "P" or "p" | Percent | Result: Number multiplied by 100 and displayed with a percent symbol.

Supported by: All numeric types.

Precision specifier: Desired number of decimal places.

Default precision specifier: Defined by .

More information: [The Percent ("P") Format Specifier](#PFormatString). | 1 ("P", en-US)
-> 100.00 %

1 ("P", fr-FR)
-> 100,00 %

-0.39678 ("P1", en-US)
-> -39.7 %

-0.39678 ("P1", fr-FR)
-> -39,7 % | -| "R" or "r" | Round-trip | Result: A string that can round-trip to an identical number.

Supported by: , , and .

Note: Recommended for the type only. For types, use "G17"; for types, use "G9".
Precision specifier: Ignored.

More information: [The Round-trip ("R") Format Specifier](#RFormatString). | 123456789.12345678 ("R")
-> 123456789.12345678

-1234567890.12345678 ("R")
-> -1234567890.1234567 | +| "N" or "n" | Number | Result: Integral and decimal digits, group separators, and a decimal separator with optional negative sign.

Supported by: All numeric types.

Precision specifier: Desired number of decimal places.

Default precision specifier: Defined by the culture.

More information: [The Numeric ("N") Format Specifier](#NFormatString). | 1234.567 ("N", en-US)
-> 1,234.57

1234.567 ("N", ru-RU)
-> 1 234,57

1234 ("N1", en-US)
-> 1,234.0

1234 ("N1", ru-RU)
-> 1 234,0

-1234.56 ("N3", en-US)
-> -1,234.560

-1234.56 ("N3", ru-RU)
-> -1 234,560 | +| "P" or "p" | Percent | Result: Number multiplied by 100 and displayed with a percent symbol.

Supported by: All numeric types.

Precision specifier: Desired number of decimal places.

Default precision specifier: Defined by the culture.

More information: [The Percent ("P") Format Specifier](#PFormatString). | 1 ("P", en-US)
-> 100.00 %

1 ("P", fr-FR)
-> 100,00 %

-0.39678 ("P1", en-US)
-> -39.7 %

-0.39678 ("P1", fr-FR)
-> -39,7 % | | "X" or "x" | Hexadecimal | Result: A hexadecimal string.

Supported by: Integral types only.

Precision specifier: Number of digits in the result string.

More information: [The Hexadecimal ("X") Format Specifier](#XFormatString). | 255 ("X")
-> FF

-1 ("x")
-> ff

255 ("x4")
-> 00ff

-1 ("X4")
-> 00FF | -| Any other single character | Unknown specifier | Result: Throws a at run time. | | +| Any other single character | Unknown specifier | Result: Throws an Expression error at run time. | | ## Use standard numeric format strings -[!INCLUDE[interactive-note](~/includes/csharp-interactive-note.md)] - -A standard numeric format string can be used to define the formatting of a numeric value. It can be passed to the [Number.ToText](number-totext.md) that has a `format` parameter. The following example formats a numeric value as a currency string in the current culture (in this case, the en-US culture). +A standard numeric format string can be used to define the formatting of a numeric value. It can be passed to the [Number.ToText](number-totext.md) `format` parameter. The following example formats a numeric value as a currency string in the current culture (in this case, the en-US culture). ```powerquery-m value = 123.456, @@ -66,34 +49,27 @@ result = Number.ToText(value, "C2") // Displays $123.46 ``` - The following sections provide detailed information about each of the standard numeric format strings. - ## Currency format specifier (C) @@ -102,18 +78,7 @@ The "C" (or currency) format specifier converts a number to a string that repres If the value to be formatted has more than the specified or default number of decimal places, the fractional value is rounded in the result string. If the value to the right of the number of specified decimal places is 5 or greater, the last digit in the result string is rounded away from zero. -The result string is affected by the formatting information of the current culture. - +The result string is affected by the formatting information of the current culture. The following example formats a value with the currency format specifier: @@ -143,11 +108,7 @@ The "D" (or decimal) format specifier converts a number to a string of decimal d The precision specifier indicates the minimum number of digits desired in the resulting string. If required, the number is padded with zeros to its left to produce the number of digits given by the precision specifier. If no precision specifier is specified, the default is the minimum value required to represent the integer without leading zeros. -The result string is affected by the formatting information of the current culture. - +The result string is affected by the formatting information of the current culture. The following example formats a value with the decimal format specifier. @@ -177,29 +138,23 @@ The precision specifier indicates the desired number of digits after the decimal The case of the format specifier indicates whether to prefix the exponent with an "E" or an "e". The exponent always consists of a plus or minus sign and a minimum of three digits. The exponent is padded with zeros to meet this minimum, if required. -The result string is affected by the formatting information of the current culture. - +The result string is affected by the formatting information of the current culture. The following example formats a value with the exponential format specifier: ```powerquery-m - value = 12345.6789, - result1 = Number.ToText(value, "E"), - // Displays 1.234568E+004 +value = 12345.6789, +result1 = Number.ToText(value, "E"), +// Displays 1.234568E+004 - result2 = Number.ToText(value, "E10"), - // Displays 1.2345678900E+004 +result2 = Number.ToText(value, "E10"), +// Displays 1.2345678900E+004 - result3 = Number.ToText(value, "e4"), - // Displays 1.2346e+004 +result3 = Number.ToText(value, "e4"), +// Displays 1.2346e+004 - result4 = Number.ToText(value, "E", "fr-FR"), - // Displays 1,234568E+004 +result4 = Number.ToText(value, "E", "fr-FR"), +// Displays 1,234568E+004 ``` @@ -210,38 +165,32 @@ The fixed-point ("F") format specifier converts a number to a string of the form The precision specifier indicates the desired number of decimal places. If the precision specifier is omitted, the default number of decimal places to use in numeric values is 2. -The result string is affected by the formatting information of the current culture. - +The result string is affected by the formatting information of the current culture. The following example formats a double and an integer value with the fixed-point format specifier: ```powerquery-m - integerNumber = 17843, - result = Number.ToText(integerNumber, "F"), - // Displays 17843.00 +integerNumber = 17843, +result = Number.ToText(integerNumber, "F"), +// Displays 17843.00 - integerNumber2 = -29541, - result2 = Number.ToText(integerNumber2, "F3"), - // Displays -29541.000 +integerNumber2 = -29541, +result2 = Number.ToText(integerNumber2, "F3"), +// Displays -29541.000 - doubleNumber = 18934.1879, - result3 = Number.ToText(doubleNumber, "F"), - // Displays 18934.19 +doubleNumber = 18934.1879, +result3 = Number.ToText(doubleNumber, "F"), +// Displays 18934.19 - result4 = Number.ToText(doubleNumber, "F0"), - // Displays 18934 +result4 = Number.ToText(doubleNumber, "F0"), +// Displays 18934 - doubleNumber2 = -1898300.1987, - result5 = Number.ToText(doubleNumber2, "F1"), - // Displays -1898300.2 +doubleNumber2 = -1898300.1987, +result5 = Number.ToText(doubleNumber2, "F1"), +// Displays -1898300.2 - result6 = Number.ToText(doubleNumber2, "F3", "es-ES"), - // Displays -1898300,199 +result6 = Number.ToText(doubleNumber2, "F3", "es-ES"), +// Displays -1898300,199 ``` @@ -260,7 +209,9 @@ The general ("G") format specifier converts a number to the more compact of eith |`Double.Type` |Smallest round-trippable number of digits to represent the number (G15 is the default)| |`Decimal.Type` |Smallest round-trippable number of digits to represent the number (G30 is the default)| - +**Note to reviewers - Is the default precision for the last three types in the previous table correct? Double is mentioned as G15 here, but later on states G17 ensures the Double value successfully round-trips. Ditto for Single.Type and G7 in the table and G9 to successfully round-trip. Please clarify.** + +**Also, I've removed mention of round trips due to the lack of precision in M floating numbers during round trips. Should mention of "round-trippable number" be removed from the prvious table?** Fixed-point notation is used if the exponent that would result from expressing the number in scientific notation is greater than -5 and less than the precision specifier; otherwise, scientific notation is used. The result contains a decimal point if required, and trailing zeros after the decimal point are omitted. If the precision specifier is present and the number of significant digits in the result exceeds the specified precision, the excess trailing digits are removed by rounding. @@ -272,43 +223,37 @@ When used with a `Double.Type` value, the "G17" format specifier ensures that th When used with a `Single.Type` value, the "G9" format specifier ensures that the original `Single.Type` value successfully round-trips. This is because `Single.Type` is an IEEE 754-2008-compliant single-precision (`binary32`) floating-point number that gives up to nine significant digits of precision. For performance reasons, we recommend its use instead of the ["R" format specifier](#RFormatString). -The result string is affected by the formatting information of the current culture. - +The result string is affected by the formatting information of the current culture. The following example formats assorted floating-point values with the general format specifier: ```powerquery-m - number = 12345.6789, - result = Number.ToText(number, "G"), - // Displays 12345.6789 - result2 = Number.ToText(number, "G", "fr-FR"), - // Displays 12345,6789 - - result3 = Number.ToText(number, "G7), - // Displays 12345.68 - - number2 = .0000023, - result4 = Number.ToText(number2, "G"), - // Displays 2.3E-06 - result5 = Number.ToText(number2, "G", "fr-FR"), - // Displays 2,3E-06 - - number3 = .0023, - result6 = Number.ToText(number3, "G"), - // Displays 0.0023 - - number4 = 1234, - result7 = Number.ToText(number4, "G2") - // Displays 1.2E+03 - - number5 = Number.PI, - result8 = Number.ToText(number5, "G5"), - // Displays 3.1416 +number = 12345.6789, +result = Number.ToText(number, "G"), +// Displays 12345.6789 +result2 = Number.ToText(number, "G", "fr-FR"), +// Displays 12345,6789 + +result3 = Number.ToText(number, "G7), +// Displays 12345.68 + +number2 = .0000023, +result4 = Number.ToText(number2, "G"), +// Displays 2.3E-06 +result5 = Number.ToText(number2, "G", "fr-FR"), +// Displays 2,3E-06 + +number3 = .0023, +result6 = Number.ToText(number3, "G"), +// Displays 0.0023 + +number4 = 1234, +result7 = Number.ToText(number4, "G2") +// Displays 1.2E+03 + +number5 = Number.PI, +result8 = Number.ToText(number5, "G5"), +// Displays 3.1416 ``` @@ -317,29 +262,20 @@ The following example formats assorted floating-point values with the general fo The numeric ("N") format specifier converts a number to a string of the form "-d,ddd,ddd.ddd…", where "-" indicates a negative number symbol if required, "d" indicates a digit (0-9), "," indicates a group separator, and "." indicates a decimal point symbol. The precision specifier indicates the desired number of digits after the decimal point. If the precision specifier is omitted, the number of decimal places is defined by the current culture. -The result string is affected by the formatting information of the current culture. - +The result string is affected by the formatting information of the current culture. The following example formats assorted floating-point values with the number format specifier: ```powerquery-m - dblValue = -12445.6789, - result = Number.ToText(dblValue, "N"), - // Displays -12,445.68 - result2 = Number.ToText(dblValue, "N1", "sv-SE"), - // Displays -12 445,7 - - intValue = 123456789, - result3 = Number.ToText(intValue, "N1"), - // Displays 123,456,789.0 +dblValue = -12445.6789, +result = Number.ToText(dblValue, "N"), +// Displays -12,445.68 +result2 = Number.ToText(dblValue, "N1", "sv-SE"), +// Displays -12 445,7 + +intValue = 123456789, +result3 = Number.ToText(intValue, "N1"), +// Displays 123,456,789.0 ``` @@ -348,71 +284,18 @@ The following example formats assorted floating-point values with the number for The percent ("P") format specifier multiplies a number by 100 and converts it to a string that represents a percentage. The precision specifier indicates the desired number of decimal places. If the precision specifier is omitted, the default numeric precision supplied by the current culture is used. - The following example formats floating-point values with the percent format specifier: ```powerquery-m - number = .2468013, - result = Number.ToText(number, "P"), - // Displays 24.68% - result2 = Number.ToText(number, "P", "hr-HR"), - // Displays 24,68 % - result3 = Number.ToText(number, "P1"), - // Displays 24.7% +number = .2468013, +result = Number.ToText(number, "P"), +// Displays 24.68% +result2 = Number.ToText(number, "P", "hr-HR"), +// Displays 24,68 % +result3 = Number.ToText(number, "P1"), +// Displays 24.7% ``` - - -## Round-trip format specifier (R) - -The round-trip ("R") format specifier attempts to ensure that a numeric value that is converted to a string is parsed back into the same numeric value. This format is supported only for the `Single.Type`, `Double.Type`, and `Decimal.Type` types. - -In Power Query M, the "R" format specifier fails to successfully round-trip `Double.Type` values in some cases. For both `Double.Type` and `Single.Type` values, the "R" format specifier offers relatively poor performance. Instead, we recommend that you use the ["G17"](#GFormatString) format specifier for `Double.Type` values and the ["G9"](#GFormatString) format specifier to successfully round-trip `Single.Type` values. - - - -Although you can include a precision specifier, it is ignored. Round trips are given precedence over precision when using this specifier. The result string is affected by the formatting information of the current culture. - - -The following example formats a whole number value with the round-trip format specifier. - -```powerquery-m -let - initialValue = 92233720368547758079, - result = Number.ToText(initialValue, "R") -in - result - -// The example dislays the following output: -// 92233720368547758079 -``` - -> [!IMPORTANT] -> In some cases, `Double.Type` values formatted with the "R" standard numeric format string do not successfully round-trip. See the following paragraph for more information. - -To work around the problem of `Double.Type` values formatted with the "R" standard numeric format string not successfully round-tripping, you can format `Double.Type` values by using the "G17" standard numeric format string. The following example uses the "R" format string with a `Double.Type` value that doesn't round-trip successfully, and also uses the "G17" format string to successfully round-trip the original value: - -[!code-csharp[System.Double.ToString#5](../../../samples/snippets/csharp/VS_Snippets_CLR_System/system.Double.ToString/cs/roundtripex1.cs#RoundTrip)] -[!code-vb[System.Double.ToString#5](../../../samples/snippets/visualbasic/VS_Snippets_CLR_System/system.Double.ToString/vb/roundtripex1.vb#5)] - ## Hexadecimal format specifier (X) @@ -426,47 +309,46 @@ The result string isn't affected by the formatting information of the current cu The following example formats values with the hexadecimal format specifier. ```powerquery-m - value1 = 0x2045e, - result1 = Number.ToText(value1, "x"), - // Displays 2045e - result2 = Number.ToText(value1, "X"), - // Displays 2045E - result4 = Number.ToText(value1, "X8"), - // Displays 0002045E - - value2 = 123456789, - result5 = Number.ToText(value2, "X"), - // Displays 75BCD15 - result6 = number.ToText(value2, "X2"), - // Displays 75BCD15 +value1 = 0x2045e, +result1 = Number.ToText(value1, "x"), +// Displays 2045e +result2 = Number.ToText(value1, "X"), +// Displays 2045E +result4 = Number.ToText(value1, "X8"), +// Displays 0002045E + +value2 = 123456789, +result5 = Number.ToText(value2, "X"), +// Displays 75BCD15 +result6 = number.ToText(value2, "X2"), +// Displays 75BCD15 ``` ## Notes This section contains additional information about using standard numeric format strings. - -### Control Panel settings +## How culture affects numeric format strings -The settings in the **Regional and Language Options** item in Control Panel influence the result string produced by a formatting operation. Those settings are used to initialize the object associated with the current culture, which provides values used to govern formatting. Computers that use different settings generate different result strings. +If you don't set a specific culture in your numeric format strings, your format strings uses the current default culture. *Culture* is the standard locale that’s determined by the underlying platform, such as Windows 11. For example, the [list of Windows 11 input locales](/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11#input-locales) can be used as the culture on the Windows 11 platform. Other platforms, such as Window 10 or macOS might use a different list of cultures. -In addition, if the constructor is used to instantiate a new object that represents the same culture as the current system culture, any customizations established by the **Regional and Language Options** item in Control Panel will be applied to the new object. You can use the constructor to create a object that does not reflect a system's customizations. +The default culture you use can vary depending on whether you reference Power Query M on a local machine or a cloud platform. For example, if you develop Power Query M code on your local system in Power BI Desktop, the default culture uses the locale settings used on your local system. If you develop Power Query M code in Power BI service, the default culture uses the locale settings used on the cloud service. - -### NumberFormatInfo properties +The culture is set to the system locale (Windows, MacOS) when the queries are first authored. setting of the code is stored within the M queries when the code is created. However, you can change the default culture in the Power Query settings dialog where you create the query. For example, if you are running Power Query from Excel: -Formatting is influenced by the properties of the current object, which is provided implicitly by the current culture or explicitly by the parameter of the method that invokes formatting. Specify a or object for that parameter. +1. In Power Query, select **File** > **Options and settings** > **Query options**. +1. Under **Current Workbook, select **Regional Settings**. +1. Select the locale you want to use. -> [!NOTE] -> For information about customizing the patterns or strings used in formatting numeric values, see the class topic. +Other versions of Power Query work similarly. In general, within Power Query you select **Options**, which opens the **Options** dialog. Then select **Regional Settings** and select the locale you want to use. ### Integral and floating-point numeric types -Some descriptions of standard numeric format specifiers refer to integral or floating-point numeric types. The integral numeric types are , , , , , , , , and . The floating-point numeric types are , , , and . +Some descriptions of standard numeric format specifiers refer to integral or floating-point numeric types. The integral numeric types are `Byte.Type`, `Int8.Type`, `Int16.Type`, `Int32.Type`, and`Int64.Type`. The floating-point numeric types are `Decimal.Type`, `Single.Type`, and `Double.Type`. ### Floating-point infinities and NaN -Regardless of the format string, if the value of a , , or floating-point type is positive infinity, negative infinity, or not a number (NaN), the formatted string is the value of the respective , , or property that is specified by the currently applicable object. +Regardless of the format string, if the value of a `Decimal.Type`, `Single.Type` or `Double.Type` floating-point type is positive infinity, negative infinity, or not a number (NaN), the formatted string is the value of the respective [Number.PositiveInfinity](number-positiveinfinity.md), [Number.NegativeInfinity](number-negativeinfinity.md), or [Number.NaN](number-nan.md) constants specified by the currently applicable culture. ## Code example @@ -485,20 +367,19 @@ let result4 = Text.Format("G: #{0}", {Number.ToText(floating, "G", culture)}), // Displays "G: 10761.937554" result5 = Text.Format("N: #{0}", {Number.ToText(floating, "N03", culture)}), // Displays "N: 10,761.938" result6 = Text.Format("P: #{0}", {Number.ToText(floating/10000, "P02", culture)}), // Displays "P: 107.62%" - result7 = Text.Format("R: #{0}", {Number.ToText(floating, "R", culture)}), // Displays "R: 10761.937554" - #"Floating results" = result1 & "#(cr,lf)" & result2 & "#(cr,lf)" &result3 & "#(cr,lf)" &result4 & "#(cr,lf)" &result5 & "#(cr,lf)" &result6 & "#(cr,lf)" & result7 & "#(cr,lf)", + #"Floating results" = result1 & "#(cr,lf)" & result2 & "#(cr,lf)" &result3 & "#(cr,lf)" &result4 & "#(cr,lf)" &result5 & "#(cr,lf)" &result6 & "#(cr,lf)#(cr,lf)", // Output integral values integral = Int32.From(8395), - result8 = Text.Format("C: #{0}", {Number.ToText(integral, "C", culture)}), // Displays "C: $8,395.00" - result9 = Text.Format("D: #{0}", {Number.ToText(integral, "D6", culture)}), // Displays "D: 008395" - result10 = Text.Format("E: #{0}", {Number.ToText(integral, "E03", culture)}), // Displays "E: 8.395E+003" - result11 = Text.Format("F: #{0}", {Number.ToText(integral, "F01", culture)}), // Displays "F: 8395.0" - result12 = Text.Format("G: #{0}", {Number.ToText(integral, "G", culture)}), // Displays "G: 8395" - result13 = Text.Format("N: #{0}", {Number.ToText(integral, "N01", culture)}), // Displays "N: 8,395.0" - result14 = Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95 %" - result15 = Text.Format("X: 0x#{0}", {Number.ToText(integral, "X", culture)}), // Displays "X: 0x20CB" - #"Integral results" = result8 & "#(cr,lf)" & result9 & "#(cr,lf)" &result10 & "#(cr,lf)" &result11 & "#(cr,lf)" &result12 & "#(cr,lf)" &result13 & "#(cr,lf)" & result14 & "#(cr,lf)" & result15, + result7 = Text.Format("C: #{0}", {Number.ToText(integral, "C", culture)}), // Displays "C: $8,395.00" + result8 = Text.Format("D: #{0}", {Number.ToText(integral, "D6", culture)}), // Displays "D: 008395" + result9 = Text.Format("E: #{0}", {Number.ToText(integral, "E03", culture)}), // Displays "E: 8.395E+003" + result10 = Text.Format("F: #{0}", {Number.ToText(integral, "F01", culture)}), // Displays "F: 8395.0" + result11 = Text.Format("G: #{0}", {Number.ToText(integral, "G", culture)}), // Displays "G: 8395" + result12 = Text.Format("N: #{0}", {Number.ToText(integral, "N01", culture)}), // Displays "N: 8,395.0" + result13 = Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95 %" + result14 = Text.Format("X: 0x#{0}", {Number.ToText(integral, "X", culture)}), // Displays "X: 0x20CB" + #"Integral results" = result7 & "#(cr,lf)" & result8 & "#(cr,lf)" &result9 & "#(cr,lf)" &result10 & "#(cr,lf)" &result11 & "#(cr,lf)" &result12 & "#(cr,lf)" & result13 & "#(cr,lf)" & result14, results = #"Floating results" & #"Integral results" in @@ -507,7 +388,6 @@ in ## Related content +- [Number type conversion](type-conversion.md#number) +- [Data Types in Power Query](/power-query/data-types) - [Custom Numeric Format Strings](custom-numeric-format-strings.md) -- [Formatting Types](formatting-types.md) -- [How to: Pad a Number with Leading Zeros](how-to-pad-a-number-with-leading-zeros.md) -- [Composite Formatting](composite-formatting.md) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 2d1c6237b..d405fbda3 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -48,6 +48,12 @@ items: href: metadata.md - name: Errors href: errors.md + - name: Format numbers + items: + - name: Standard numeric format strings + href: standard-numeric-format-strings.md + - name: Custom numeric format strings + href: custom-numeric-format-strings.md - name: Functions items: - name: Functions overview From 29c1b36661090cff112dfa36760531ea070c9d56 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 16 Sep 2024 13:10:25 -0700 Subject: [PATCH 565/934] Fixed broken links --- query-languages/m/custom-numeric-format-strings.md | 2 +- query-languages/m/standard-numeric-format-strings.md | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index 261ef3b09..4a5f4fb4d 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -12,7 +12,7 @@ You can create a custom numeric format string, which consists of one or more cus |Format specifier|Name|Description|Examples| |----------------------|----------|-----------------|--------------| -|"0"|Zero placeholder|Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

More information: [The "0" Custom Specifier](#the-"o"-custom-specifier).|1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| +|"0"|Zero placeholder|Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

More information: [The "0" Custom Specifier](#Specifier0).|1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| |"#"|Digit placeholder|Replaces the "#" symbol with the corresponding digit if one is present; otherwise, no digit appears in the result string.

Note that no digit appears in the result string if the corresponding digit in the input string is a non-significant 0. For example, 0003 ("####") -> 3.

More information: [The "#" Custom Specifier](#SpecifierD).|1234.5678 ("#####") -> 1235

0.45678 ("#.##", en-US) -> .46

0.45678 ("#.##", fr-FR) -> ,46| |"."|Decimal point|Determines the location of the decimal separator in the result string.

More information: [The "." Custom Specifier](#SpecifierPt).|0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| |","|Group separator and number scaling|Serves as both a group separator and a number scaling specifier. As a group separator, it inserts a localized group separator character between each group. As a number scaling specifier, it divides a number by 1000 for each comma specified.

More information: [The "," Custom Specifier](#SpecifierTh).|Group separator specifier:

2147483647 ("##,#", en-US) -> 2,147,483,647

2147483647 ("##,#", es-ES) -> 2.147.483.647

Scaling specifier:

2147483647 ("#,#,,", en-US) -> 2,147

2147483647 ("#,#,,", es-ES) -> 2.147| diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index b0a5c845a..e885e83d3 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -219,9 +219,11 @@ However, if the number is a `Decimal.Type` and the precision specifier is omitte If scientific notation is used, the exponent in the result is prefixed with "E" if the format specifier is "G", or "e" if the format specifier is "g". The exponent contains a minimum of two digits. This differs from the format for scientific notation that is produced by the exponential format specifier, which includes a minimum of three digits in the exponent. -When used with a `Double.Type` value, the "G17" format specifier ensures that the original `Double.Type` value successfully round-trips. This is because `Double.Type` is an IEEE 754-2008-compliant double-precision (`binary64`) floating-point number that gives up to 17 significant digits of precision. On .NET Framework, we recommend its use instead of the ["R" format specifier](#RFormatString), since in some cases "R" fails to successfully round-trip double-precision floating point values. +**Note to reviewers - Are the following two paragraphs relevant since the "R" round trip format specifier was removed from the article?** -When used with a `Single.Type` value, the "G9" format specifier ensures that the original `Single.Type` value successfully round-trips. This is because `Single.Type` is an IEEE 754-2008-compliant single-precision (`binary32`) floating-point number that gives up to nine significant digits of precision. For performance reasons, we recommend its use instead of the ["R" format specifier](#RFormatString). +When used with a `Double.Type` value, the "G17" format specifier ensures that the original `Double.Type` value successfully round-trips. This is because `Double.Type` is an IEEE 754-2008-compliant double-precision (`binary64`) floating-point number that gives up to 17 significant digits of precision. + +When used with a `Single.Type` value, the "G9" format specifier ensures that the original `Single.Type` value successfully round-trips. This is because `Single.Type` is an IEEE 754-2008-compliant single-precision (`binary32`) floating-point number that gives up to nine significant digits of precision. The result string is affected by the formatting information of the current culture. From b615ae9e806c73d99518c9fbf3bdc2e4751d59b1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 16 Sep 2024 13:25:23 -0700 Subject: [PATCH 566/934] Hid reviewer notes --- query-languages/m/standard-numeric-format-strings.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index e885e83d3..79ccb0fe9 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -208,10 +208,9 @@ The general ("G") format specifier converts a number to the more compact of eith |`Single.Type` |Smallest round-trippable number of digits to represent the number (G7 is the default)| |`Double.Type` |Smallest round-trippable number of digits to represent the number (G15 is the default)| |`Decimal.Type` |Smallest round-trippable number of digits to represent the number (G30 is the default)| + Fixed-point notation is used if the exponent that would result from expressing the number in scientific notation is greater than -5 and less than the precision specifier; otherwise, scientific notation is used. The result contains a decimal point if required, and trailing zeros after the decimal point are omitted. If the precision specifier is present and the number of significant digits in the result exceeds the specified precision, the excess trailing digits are removed by rounding. @@ -219,8 +218,7 @@ However, if the number is a `Decimal.Type` and the precision specifier is omitte If scientific notation is used, the exponent in the result is prefixed with "E" if the format specifier is "G", or "e" if the format specifier is "g". The exponent contains a minimum of two digits. This differs from the format for scientific notation that is produced by the exponential format specifier, which includes a minimum of three digits in the exponent. -**Note to reviewers - Are the following two paragraphs relevant since the "R" round trip format specifier was removed from the article?** - + When used with a `Double.Type` value, the "G17" format specifier ensures that the original `Double.Type` value successfully round-trips. This is because `Double.Type` is an IEEE 754-2008-compliant double-precision (`binary64`) floating-point number that gives up to 17 significant digits of precision. When used with a `Single.Type` value, the "G9" format specifier ensures that the original `Single.Type` value successfully round-trips. This is because `Single.Type` is an IEEE 754-2008-compliant single-precision (`binary32`) floating-point number that gives up to nine significant digits of precision. From 50e5536e73366d08331579cd948e0aa2c55c62a5 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 20 Sep 2024 12:50:45 -0700 Subject: [PATCH 567/934] Updated samples and rewrote culture section --- .../m/custom-numeric-format-strings.md | 307 ++++++++++-------- .../m/standard-numeric-format-strings.md | 285 +++++++++------- 2 files changed, 325 insertions(+), 267 deletions(-) diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index 4a5f4fb4d..e53d433e7 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -1,7 +1,7 @@ --- title: "Custom numeric format strings" description: Learn how to create a custom numeric format string to format numeric data in .NET. A custom numeric format string has one or more custom numeric specifiers. -ms.date: 9/16/2024 +ms.date: 9/20/2024 ms.topic: reference --- # Custom numeric format strings @@ -37,40 +37,38 @@ The "00" specifier causes the value to be rounded to the nearest digit preceding The following example displays several values that are formatted by using custom format strings that include zero placeholders. ```powerquery-m -value = Double.From(123), -result1 = Number.ToText(value, "00000"), -// Displays 00123 +let + Source = + { + Number.ToText(123, "00000"), + // Displays 00123 -value2 = Double.From(1.2), -result2 = Number.ToText(value2, "0.00"), -// Displays 1.20 + Number.ToText(1.2, "0.00"), + // Displays 1.20 -result3 = Number.ToText(value2, "00.00"), -// Displays 01.20 + Number.ToText(1.2, "00.00"), + // Displays 01.20 -culturedaDK = "da-DK", -result4 = Number.ToText(value2, "00.00", culturedaDK), -// Displays 01,20 + Number.ToText(1.2, "00.00", "da-DK"), + // Displays 01,20 -value3 = Double.From(.56), -result5 = Number.ToText(value3, "0.0"), -// Displays 0.6 + Number.ToText(.56, "0.0"), + // Displays 0.6 -value4 = Double.From(1234567890), -result6 = Number.ToText(value4, "0,0"), -// Displays 1,234,567,890 + Number.ToText(1234567890, "0,0"), + // Displays 1,234,567,890 -cultureelGR = "el-GR", -result7 = Number.ToText(value4, "0,0", cultureelGR), -// Displays 1.234.567.890 + Number.ToText(1234567890, "0,0", "el-GR"), + // Displays 1.234.567.890 -value5 = Double.From(1234567890.123456), -result8 = Number.ToText(value5, "0,0.0"), -// Displays 1,234,567,890.1 + Number.ToText(1234567890.123456, "0,0.0"), + // Displays 1,234,567,890.1 -value6 = Double.From(1234.567890), -result9 = Number.ToText(value6, "0,0.00"), -// Displays 1,234.57 + Number.ToText(1234.567890, "0,0.00") + // Displays 1,234.57 + } +in + Source ``` [Back to table](#table) @@ -88,35 +86,35 @@ The "##" format string causes the value to be rounded to the nearest digit prece The following example displays several values that are formatted by using custom format strings that include digit placeholders. ```powerquery-m -value1 = Double.From(1.2), -result1 = Number.ToText(value1, "#.##"), -// Displays 1.2 +let + Source = + { + Number.ToText(1.2, "#.##"), + // Displays 1.2 -value2 = Double.From(123), -result2 = Number.ToText(value2, "#####"), -// Displays 123 + Number.ToText(123, "#####"), + // Displays 123 -value3 = Double.From(123456), -result3 = Number.ToText(value3, "[##-##-##]"), -// Displays [12-34-56] + Number.ToText(123456, "[##-##-##]"), + // Displays [12-34-56] -value4 = Double.From(1234567890), -result4 = Number.ToText(value4, "#"), -// Displays 1234567890 + Number.ToText(1234567890, "#"), + // Displays 1234567890 -result5 = Number.ToText(value4, "(###) ###-####"), -// Displays (123) 456-7890 + Number.ToText(1234567890, "(###) ###-####") + // Displays (123) 456-7890 + } +in + Source ``` To return a result string in which absent digits or leading zeroes are replaced by spaces, use the [Text.PadStart](text-padstart.md) and specify a field width, as the following example illustrates. ```powerquery-m let - value = Double.From(.324), - result = Text.Format("The value is: '#{0}'", {Text.PadStart(Number.ToText(value, "#.###"), 5)}) - + Source = Text.Format("The value is: '#{0}'", {Text.PadStart(Number.ToText(.324, "#.###"), 5)}) in - result + Source // The example displays the following output if the current culture // is en-US: @@ -136,23 +134,26 @@ The character that is used as the decimal separator in the result string is not The following example uses the "." format specifier to define the location of the decimal point in several result strings. ```powerquery-m -value1 = Double.From(1.2), -result1 = Number.ToText(value1, "0.00"), -// Displays 1.20 +let + Source = + { + Number.ToText(1.2, "0.00"), + // Displays 1.20 -result2 = Number.ToText(value1, "00.00"), -// Displays 01.20 + Number.ToText(1.2, "00.00"), + // Displays 01.20 -result3 = Number.ToText(value1, "00.00", "da-DK"), -// Displays 01,20 + Number.ToText(1.2, "00.00", "da-DK"), + // Displays 01,20 -value2 = Double.From(.086), -result4 = Number.ToText(value2, "#0.##%"), -// Displays 8.6% + Number.ToText(.086, "#0.##%"), + // Displays 8.6% -value3 = Double.From(86000), -result5 = Number.ToText(value3, "0.###E+0"), -// Displays 8.6E+4 + Number.ToText(Double.From(86000), "0.###E+0") + // Displays 8.6E+4 + } +in + Source ``` [Back to table](#table) @@ -174,26 +175,36 @@ You can use group separator and number scaling specifiers in the same format str The following example illustrates the use of the comma as a group separator. ```powerquery-m -value = Double.From(1234567890), -result1 = Number.ToText(value, "#,#"), -// Displays 1,234,567,890 - -result2 = Number.ToText(value, "#,##0,,"), -// Displays, 1,235 +let + Source = + { + Number.ToText(1234567890, "#,#"), + // Displays 1,234,567,890 + + Number.ToText(1234567890, "#,##0,,") + // Displays, 1,235 + } +in + Source ``` The following example illustrates the use of the comma as a specifier for number scaling. ```powerquery-m -value = Double.From(1234567890), -result1 = Number.ToText(value, "#,,"), -// Displays 1235 +let + Source = + { + Number.ToText(1234567890, "#,,"), + // Displays 1235 -result2 = Number.ToText(value, "#,,,"), -// Displays 1 + Number.ToText(1234567890, "#,,,"), + // Displays 1 -result3 = Number.ToText(value, "#,##0,,"), -// Displays 1,235 + Number.ToText(1234567890, "#,##0,,") + // Displays 1,235 + } +in + Source ``` [Back to table](#table) @@ -204,12 +215,14 @@ result3 = Number.ToText(value, "#,##0,,"), A percent sign (%) in a format string causes a number to be multiplied by 100 before it is formatted. The localized percent symbol is inserted in the number at the location where the % appears in the format string. The percent character used is defined by the culture. -The following example defines several custom format strings that include the "%" custom specifier. +The following example defines a custom format string that includes the "%" custom specifier. ```powerquery-m -value = Double.From(.086), -result = Number.ToText(value, "#0.##%"), -// Displays 8.6% +let + Source = Number.ToText(.086, "#0.##%") + // Displays 8.6% +in + Source ``` [Back to table](#table) @@ -223,10 +236,11 @@ A per mille character (‰ or \u2030) in a format string causes a number to be m The following example defines a custom format string that includes the "‰" custom specifier. ```powerquery-m -value = Double.From(.00354), -perMilleFmt = "#0.##" & Character.FromNumber(0x2030), -result = Number.ToText(value, perMilleFmt) -// Displays 3.54‰ +let + Source = Number.ToText(.00354, "#0.##" & Character.FromNumber(0x2030)) + // Displays 3.54‰ +in + Source ``` [Back to table](#table) @@ -240,15 +254,20 @@ If any of the strings "E", "E+", "E-", "e", "e+", or "e-" are present in the for The following example formats several numeric values using the specifiers for scientific notation. ```powerquery-m -value = Double.From(86000), -result1 = Number.ToText(value, "0.###E+0"), -// Displays 8.6E+4 +let + Source = + { + Number.ToText(86000, "0.###E+0"), + // Displays 8.6E+4 -result2 = Number.ToText(value, "0.###E+000"), -// Displays 8.6E+004 + Number.ToText(86000, "0.###E+000"), + // Displays 8.6E+004 -result3 = Number.ToText(value, "0.###E-000"), -// Displays 8.6E004 + Number.ToText(86000, "0.###E-000"), + // Displays 8.6E004 + } +in + Source ``` [Back to table](#table) @@ -266,18 +285,23 @@ To include a backslash in a result string, you must escape it with another backs The following example uses the escape character to prevent the formatting operation from interpreting the "#", "0", and "\\" characters as either escape characters or format specifiers. The C# examples uses an additional backslash to ensure that a backslash is interpreted as a literal character. ```powerquery-m -value = 123, -result1 = Number.ToText(value, "\#\#\# ##0 dollars and \0\0 cents \#\#\#"), -// Displays ### 123 dollars and 00 cents ### +let + Source = + { + Number.ToText(123, "\#\#\# ##0 dollars and \0\0 cents \#\#\#"), + // Displays ### 123 dollars and 00 cents ### -result2 = Number.ToText(value, """###"" ##0 dollars and ""00"" cents ""###"""), -// Displays ### 123 dollars and 00 cents ### + Number.ToText(123, """###"" ##0 dollars and ""00"" cents ""###"""), + // Displays ### 123 dollars and 00 cents ### -result3 = Number.ToText(value, "\\\\\\ ##0 dollars and \0\0 cents \\\\\\"), -// Displays \\\ 123 dollars and 00 cents \\\ + Number.ToText(123, "\\\\\\ ##0 dollars and \0\0 cents \\\\\\"), + // Displays \\\ 123 dollars and 00 cents \\\ -result4 = Number.ToText(value, """\\\"" ##0 dollars and ""00"" cents ""\\\"""), -// Displays \\\ 123 dollars and 00 cents \\\ + Number.ToText(123, """\\\"" ##0 dollars and ""00"" cents ""\\\""") + // Displays \\\ 123 dollars and 00 cents \\\ + } +in + Source ``` [Back to table](#table) @@ -299,21 +323,20 @@ Section separators ignore any preexisting formatting associated with a number wh The following example uses the ";" format specifier to format positive, negative, and zero numbers differently. ```powerquery-m -posValue = Double.From(1234), -negValue = Double.From(-1234), -zeroValue = Double.From(0), - -format1 = "##;(##)", -format2 = "##;(##);**Zero**", - -result1 = Number.ToText(posValue, format1), -// Displays 1234 +let + Source = + { + Number.ToText(1234, "##;(##)"), + // Displays 1234 -result2 = Number.ToText(negValue, format1), -// Displays (1234) + Number.ToText(-1234, "##;(##)"), + // Displays (1234) -result3 = Number.ToText(zeroValue, format2), -// Displays **Zero** + Number.ToText(0, "##;(##);**Zero**"), + // Displays **Zero** + } +in + Source ``` [Back to table](#table) @@ -337,10 +360,11 @@ All other characters are always interpreted as character literals and, in a form The following example illustrates one common use of literal character units (in this case, thousands): ```powerquery-m -n = 123.8, -formattedValue = Number.ToText(n, "#,##0.0K") -// The example displays the following output: -// 123.8K +let + Source = Number.ToText(123.8, "#,##0.0K") + // Displays 123.8K +in + Source ``` There are two ways to indicate that characters are to be interpreted as literal characters and not as formatting characters, so that they can be included in a result string or successfully parsed in an input string: @@ -352,40 +376,35 @@ There are two ways to indicate that characters are to be interpreted as literal The following example uses both approaches to include reserved characters in a custom numeric format string. ```powerquery-m -n = Double.From(9.3), -result1 = Number.ToText(n, "##.0\%"), -// Displays 9.3% +let + Source = + { + Number.ToText(9.3, "##.0\%"), + // Displays 9.3% -result2 = Number.ToText(n, "\'##\'"), -// Displays '9' + Number.ToText(9.3, "\'##\'"), + // Displays '9' -result3 = Number.ToText(n, "\\##\\"), -// Displays \9\ + Number.ToText(9.3, "\\##\\"), + // Displays \9\ -result4 = Number.ToText(n, "##.0'%'"), -// Displays 9.3% + Number.ToText(9.3, "##.0'%'"), + // Displays 9.3% -result5 = Number.ToText(n, "'\'##'\'"), -// Displays \9\ + Number.ToText(9.3, "'\'##'\'") + // Displays \9\ + } +in + Source ``` ## Notes -## How culture affects numeric format strings - -If you don't set a specific culture in your numeric format strings, your format strings uses the current default culture. *Culture* is the standard locale that’s determined by the underlying platform, such as Windows 11. For example, the [list of Windows 11 input locales](/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11#input-locales) can be used as the culture on the Windows 11 platform. Other platforms, such as Window 10 or macOS might use a different list of cultures. - -The default culture you use can vary depending on whether you reference Power Query M on a local machine or a cloud platform. For example, if you develop Power Query M code on your local system in Power BI Desktop, the default culture uses the locale settings used on your local system. If you develop Power Query M code in Power BI service, the default culture uses the locale settings used on the cloud service. - -The culture is set to the system locale (Windows, MacOS) when the queries are first authored. setting of the code is stored within the M queries when the code is created. However, you can change the default culture in the Power Query settings dialog where you create the query. For example, if you are running Power Query from Excel: - -1. In Power Query, select **File** > **Options and settings** > **Query options**. -1. Under **Current Workbook, select **Regional Settings**. -1. Select the locale you want to use. +### How culture affects numeric format strings -Other versions of Power Query work similarly. In general, within Power Query you select **Options**, which opens the **Options** dialog. Then select **Regional Settings** and select the locale you want to use. +For information on how culture affects numeric format strings, go to [How culture affects numeric format strings](standard-numeric-format-strings.md#how-culture-affects-numeric-format-strings). ### Floating-Point infinities and NaN @@ -405,16 +424,16 @@ The following example demonstrates two custom numeric format strings. In both ca ```powerquery-m let - number1 = 1234567890, - value1 = Number.ToText(number1, "(###) ###-####"), - number2 = 42, - value2 = Number.ToText(number2, "My Number = #"), - result = value1 & "#(cr,lf)" & value2 + Source = + { + Number.ToText(1234567890, "(###) ###-####"), + // Displays (123) 456-7890 + + Number.ToText(42, "My Number = #") + // Displays My number = 42 + } in - result -// The example displays the following output: -// (123) 456-7890 -// My Number = 42 + Source ``` [Back to table](#table) diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index 79ccb0fe9..bf03b8bbc 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -1,7 +1,7 @@ --- title: Standard numeric format strings description: In this article, learn to use standard numeric format strings to format common numeric types into text representations in Power Query M. -ms.date: 9/16/2024 +ms.date: 9/20/2024 ms.topic: reference --- @@ -44,8 +44,7 @@ The following table describes the standard numeric format specifiers and display A standard numeric format string can be used to define the formatting of a numeric value. It can be passed to the [Number.ToText](number-totext.md) `format` parameter. The following example formats a numeric value as a currency string in the current culture (in this case, the en-US culture). ```powerquery-m -value = 123.456, -result = Number.ToText(value, "C2") +Number.ToText(123.456, "C2") // Displays $123.46 ``` @@ -84,16 +83,16 @@ The following example formats a value with the currency format specifier: ```powerquery-m let - value = 12345.6789, - result1 = Number.ToText(value, "C"), - result2 = Number.ToText(value, "C3"), - result3 = Number.ToText(value, "C3", "da-DK"), - output = result1 & "#(cr,lf)" & result2 & "#(cr,lf)" & result3 - + Source = + { + Number.ToText(12345.6789, "C"), + Number.ToText(12345.6789, "C3"), + Number.ToText(12345.6789, "C3", "da-DK") + } in - output + Source -// The example displays the following output on a system whose +// The example displays the following list on a system whose // current culture is English (United States): // $12,345.68 // $12,345.679 @@ -113,19 +112,23 @@ The result string is affected by the formatting information of the current cultu The following example formats a value with the decimal format specifier. ```powerquery-m -value = 12345, -result1 = Number.ToText(value, "D"), -// Displays 12345 +let + Source = + { + Number.ToText(12345, "D"), + // Displays 12345 -result2 = Number.ToText(value, "D8"), -// Displays 00012345 + Number.ToText(12345, "D8"), + // Displays 00012345 -value2 = -12345, -result3 = Number.ToText(value2, "D"), -// Displays -12345 + Number.ToText(-12345, "D"), + // Displays -12345 -result4 = Number.ToText(value2, "D8"), -// Displays -00012345 + Number.ToText(-12345, "D8") + // Displays -00012345 + } +in + Source ``` @@ -143,18 +146,23 @@ The result string is affected by the formatting information of the current cultu The following example formats a value with the exponential format specifier: ```powerquery-m -value = 12345.6789, -result1 = Number.ToText(value, "E"), -// Displays 1.234568E+004 +let + Source = + { + Number.ToText(12345.6789, "E"), + // Displays 1.234568E+004 -result2 = Number.ToText(value, "E10"), -// Displays 1.2345678900E+004 + Number.ToText(12345.6789, "E10"), + // Displays 1.2345678900E+004 -result3 = Number.ToText(value, "e4"), -// Displays 1.2346e+004 + Number.ToText(12345.6789, "e4"), + // 1.2346e+004 -result4 = Number.ToText(value, "E", "fr-FR"), -// Displays 1,234568E+004 + Number.ToText(12345.6789, "E", "fr-FR") + // Displays 1,234568E+004 + } +in + Source ``` @@ -170,27 +178,29 @@ The result string is affected by the formatting information of the current cultu The following example formats a double and an integer value with the fixed-point format specifier: ```powerquery-m -integerNumber = 17843, -result = Number.ToText(integerNumber, "F"), -// Displays 17843.00 +let + Source = + { + Number.ToText(17843, "F"), + // Displays 17843.00 -integerNumber2 = -29541, -result2 = Number.ToText(integerNumber2, "F3"), -// Displays -29541.000 + Number.ToText(-29541, "F3"), + // Displays -29541.000 -doubleNumber = 18934.1879, -result3 = Number.ToText(doubleNumber, "F"), -// Displays 18934.19 + Number.ToText(18934.1879, "F"), + // Displays 18934.19 -result4 = Number.ToText(doubleNumber, "F0"), -// Displays 18934 + Number.ToText(18934.1879, "F0"), + // Displays 18934 -doubleNumber2 = -1898300.1987, -result5 = Number.ToText(doubleNumber2, "F1"), -// Displays -1898300.2 + Number.ToText(-1898300.1987, "F1"), + // Displays -1898300.2 -result6 = Number.ToText(doubleNumber2, "F3", "es-ES"), -// Displays -1898300,199 + Number.ToText(-1898300.1987, "F3", "es-ES"), + // Displays -1898300,199 + } +in + Source ``` @@ -210,7 +220,7 @@ The general ("G") format specifier converts a number to the more compact of eith |`Decimal.Type` |Smallest round-trippable number of digits to represent the number (G30 is the default)| +**Also, I've removed mention of round trips due to the lack of precision in M floating numbers during round trips. Should mention of "round-trippable number" be removed from the previous table?** --> Fixed-point notation is used if the exponent that would result from expressing the number in scientific notation is greater than -5 and less than the precision specifier; otherwise, scientific notation is used. The result contains a decimal point if required, and trailing zeros after the decimal point are omitted. If the precision specifier is present and the number of significant digits in the result exceeds the specified precision, the excess trailing digits are removed by rounding. @@ -228,32 +238,35 @@ The result string is affected by the formatting information of the current cultu The following example formats assorted floating-point values with the general format specifier: ```powerquery-m -number = 12345.6789, -result = Number.ToText(number, "G"), -// Displays 12345.6789 -result2 = Number.ToText(number, "G", "fr-FR"), -// Displays 12345,6789 - -result3 = Number.ToText(number, "G7), -// Displays 12345.68 - -number2 = .0000023, -result4 = Number.ToText(number2, "G"), -// Displays 2.3E-06 -result5 = Number.ToText(number2, "G", "fr-FR"), -// Displays 2,3E-06 - -number3 = .0023, -result6 = Number.ToText(number3, "G"), -// Displays 0.0023 - -number4 = 1234, -result7 = Number.ToText(number4, "G2") -// Displays 1.2E+03 - -number5 = Number.PI, -result8 = Number.ToText(number5, "G5"), -// Displays 3.1416 +let + Source = + { + Number.ToText(12345.6789, "G"), + // Displays 12345.6789 + + Number.ToText(12345.6789, "G", "fr-FR"), + // Displays 12345,6789 + + Number.ToText(12345.6789, "G7), + // Displays 12345.68 + + Number.ToText(.0000023, "G"), + // Displays 2.3E-06 + + Number.ToText(.0000023, "G", "fr-FR"), + // Displays 2,3E-06 + + Number.ToText(.0023, "G"), + // Displays 0.0023 + + Number.ToText(1234, "G2") + // Displays 1.2E+03 + + Number.ToText(Number.PI, "G5") + // Displays 3.1416 + } +in + Source ``` @@ -267,15 +280,20 @@ The result string is affected by the formatting information of the current cultu The following example formats assorted floating-point values with the number format specifier: ```powerquery-m -dblValue = -12445.6789, -result = Number.ToText(dblValue, "N"), -// Displays -12,445.68 -result2 = Number.ToText(dblValue, "N1", "sv-SE"), -// Displays -12 445,7 - -intValue = 123456789, -result3 = Number.ToText(intValue, "N1"), -// Displays 123,456,789.0 +let + Source = + { + Number.ToText(-12445.6789, "N"), + // Displays -12,445.68 + + Number.ToText(-12445.6789, "N1", "sv-SE"), + // Displays -12 445,7 + + Number.ToText(123456789, "N1") + // Displays 123,456,789.0 + } +in + Source ``` @@ -287,13 +305,20 @@ The percent ("P") format specifier multiplies a number by 100 and converts it to The following example formats floating-point values with the percent format specifier: ```powerquery-m -number = .2468013, -result = Number.ToText(number, "P"), -// Displays 24.68% -result2 = Number.ToText(number, "P", "hr-HR"), -// Displays 24,68 % -result3 = Number.ToText(number, "P1"), -// Displays 24.7% +let + Source = + { + Number.ToText(.2468013, "P"), + // Displays 24.68% + + Number.ToText(.2468013, "P", "hr-HR"), + // Displays 24,68 % + + Number.ToText(.2468013, "P1") + // Displays 24.7% + } +in + Source ``` @@ -309,32 +334,41 @@ The result string isn't affected by the formatting information of the current cu The following example formats values with the hexadecimal format specifier. ```powerquery-m -value1 = 0x2045e, -result1 = Number.ToText(value1, "x"), -// Displays 2045e -result2 = Number.ToText(value1, "X"), -// Displays 2045E -result4 = Number.ToText(value1, "X8"), -// Displays 0002045E - -value2 = 123456789, -result5 = Number.ToText(value2, "X"), -// Displays 75BCD15 -result6 = number.ToText(value2, "X2"), -// Displays 75BCD15 +let + Source = + { + Number.ToText(0x2045e, "x"), + // Displays 2045e + + Number.ToText(0x2045e, "X"), + // Displays 2045E + + Number.ToText(0x2045e, "X8"), + // Displays 0002045E + + Number.ToText(123456789, "X"), + // Displays 75BCD15 + + Number.ToText(123456789, "X2"), + // Displays 75BCD15 + } +in + Source ``` ## Notes This section contains additional information about using standard numeric format strings. -## How culture affects numeric format strings +### How culture affects numeric format strings + +*Culture* is the standard locale that’s determined by the underlying platform where your queries are originally created. By default, your format strings use the current default culture. -If you don't set a specific culture in your numeric format strings, your format strings uses the current default culture. *Culture* is the standard locale that’s determined by the underlying platform, such as Windows 11. For example, the [list of Windows 11 input locales](/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11#input-locales) can be used as the culture on the Windows 11 platform. Other platforms, such as Window 10 or macOS might use a different list of cultures. +The current default culture can vary depending on whether you reference Power Query M on a local machine or a cloud platform. For example, if you develop Power Query M code on your local system in Power BI Desktop, the default culture is the locale settings used on your local system. If you develop Power Query M code in Power BI service, the default culture is the locale settings used on the cloud service. The [list of Windows 11 input locales](/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11#input-locales) can be used as the culture on the Windows 11 platform. Other platforms, such as Window 10 or macOS might use a different list of cultures. -The default culture you use can vary depending on whether you reference Power Query M on a local machine or a cloud platform. For example, if you develop Power Query M code on your local system in Power BI Desktop, the default culture uses the locale settings used on your local system. If you develop Power Query M code in Power BI service, the default culture uses the locale settings used on the cloud service. +The culture is set to the system locale (Windows, MacOS) when your queries are first authored. If you move your query to a different location that uses a different default culture, your query still uses the culture of the original location. -The culture is set to the system locale (Windows, MacOS) when the queries are first authored. setting of the code is stored within the M queries when the code is created. However, you can change the default culture in the Power Query settings dialog where you create the query. For example, if you are running Power Query from Excel: +However, you can change the default culture in the Power Query settings dialog where you create the query. For example, if you are running Power Query from Excel: 1. In Power Query, select **File** > **Options and settings** > **Query options**. 1. Under **Current Workbook, select **Regional Settings**. @@ -356,30 +390,35 @@ The following example formats a floating point and an integral numeric value usi ```powerquery-m let - // Display string representations of numbers for en-us culture +let + // Display text representations of numbers for en-US culture culture = "en-US", // Output floating point values floating = Double.From(10761.937554), - result1 = Text.Format("C: #{0}", {Number.ToText(floating, "C", culture)}), // Displays "C: $10,761.94" - result2 = Text.Format("E: #{0}", {Number.ToText(floating, "E03", culture)}), // Displays "E: 1.076E+004" - result3 = Text.Format("F: #{0}", {Number.ToText(floating, "F04", culture)}), // Displays "F: 10761.9376" - result4 = Text.Format("G: #{0}", {Number.ToText(floating, "G", culture)}), // Displays "G: 10761.937554" - result5 = Text.Format("N: #{0}", {Number.ToText(floating, "N03", culture)}), // Displays "N: 10,761.938" - result6 = Text.Format("P: #{0}", {Number.ToText(floating/10000, "P02", culture)}), // Displays "P: 107.62%" - #"Floating results" = result1 & "#(cr,lf)" & result2 & "#(cr,lf)" &result3 & "#(cr,lf)" &result4 & "#(cr,lf)" &result5 & "#(cr,lf)" &result6 & "#(cr,lf)#(cr,lf)", + #"Floating results" = + { + Text.Format("C: #{0}", {Number.ToText(floating, "C", culture)}), // Displays "C: $10,761.94" + Text.Format("E: #{0}", {Number.ToText(floating, "E03", culture)}), // Displays "E: 1.076E+004" + Text.Format("F: #{0}", {Number.ToText(floating, "F04", culture)}), // Displays "F: 10761.9376" + Text.Format("G: #{0}", {Number.ToText(floating, "G", culture)}), // Displays "G: 10761.937554" + Text.Format("N: #{0}", {Number.ToText(floating, "N03", culture)}), // Displays "N: 10,761.938" + Text.Format("P: #{0}", {Number.ToText(floating/10000, "P02", culture)}) // Displays "P: 107.62%" + }, // Output integral values integral = Int32.From(8395), - result7 = Text.Format("C: #{0}", {Number.ToText(integral, "C", culture)}), // Displays "C: $8,395.00" - result8 = Text.Format("D: #{0}", {Number.ToText(integral, "D6", culture)}), // Displays "D: 008395" - result9 = Text.Format("E: #{0}", {Number.ToText(integral, "E03", culture)}), // Displays "E: 8.395E+003" - result10 = Text.Format("F: #{0}", {Number.ToText(integral, "F01", culture)}), // Displays "F: 8395.0" - result11 = Text.Format("G: #{0}", {Number.ToText(integral, "G", culture)}), // Displays "G: 8395" - result12 = Text.Format("N: #{0}", {Number.ToText(integral, "N01", culture)}), // Displays "N: 8,395.0" - result13 = Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95 %" - result14 = Text.Format("X: 0x#{0}", {Number.ToText(integral, "X", culture)}), // Displays "X: 0x20CB" - #"Integral results" = result7 & "#(cr,lf)" & result8 & "#(cr,lf)" &result9 & "#(cr,lf)" &result10 & "#(cr,lf)" &result11 & "#(cr,lf)" &result12 & "#(cr,lf)" & result13 & "#(cr,lf)" & result14, + #"Integral results" = + { + Text.Format("C: #{0}", {Number.ToText(integral, "C", culture)}), // Displays "C: $8,395.00" + Text.Format("D: #{0}", {Number.ToText(integral, "D6", culture)}), // Displays "D: 008395" + Text.Format("E: #{0}", {Number.ToText(integral, "E03", culture)}), // Displays "E: 8.395E+003" + Text.Format("F: #{0}", {Number.ToText(integral, "F01", culture)}), // Displays "F: 8395.0" + Text.Format("G: #{0}", {Number.ToText(integral, "G", culture)}), // Displays "G: 8395" + Text.Format("N: #{0}", {Number.ToText(integral, "N01", culture)}), // Displays "N: 8,395.0" + Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95 %" + Text.Format("X: 0x#{0}", {Number.ToText(integral, "X", culture)}) // Displays "X: 0x20CB" + }, results = #"Floating results" & #"Integral results" in From f5ce0a607b14fbaa05961b1cb29339a025dff586 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 20 Sep 2024 13:08:56 -0700 Subject: [PATCH 568/934] Fixed build suggestion --- query-languages/m/standard-numeric-format-strings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index bf03b8bbc..7520995e4 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -364,7 +364,7 @@ This section contains additional information about using standard numeric format *Culture* is the standard locale that’s determined by the underlying platform where your queries are originally created. By default, your format strings use the current default culture. -The current default culture can vary depending on whether you reference Power Query M on a local machine or a cloud platform. For example, if you develop Power Query M code on your local system in Power BI Desktop, the default culture is the locale settings used on your local system. If you develop Power Query M code in Power BI service, the default culture is the locale settings used on the cloud service. The [list of Windows 11 input locales](/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11#input-locales) can be used as the culture on the Windows 11 platform. Other platforms, such as Window 10 or macOS might use a different list of cultures. +The current default culture can vary depending on whether you reference Power Query M on a local machine or a cloud platform. For example, if you develop Power Query M code on your local system in Power BI Desktop, the default culture is the locale settings used on your local system. If you develop Power Query M code in the Power BI service, the default culture is the locale settings used on the cloud service. The [list of Windows input locales](/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs#input-locales) can be used as the culture on the Windows platform. Other platforms, such as macOS, might use a different list of cultures. The culture is set to the system locale (Windows, MacOS) when your queries are first authored. If you move your query to a different location that uses a different default culture, your query still uses the culture of the original location. From 031f3cdb3744d656d5727833215fdac9c01d608e Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 20 Sep 2024 13:49:03 -0700 Subject: [PATCH 569/934] Removed more unneeded round-trip info --- .../m/standard-numeric-format-strings.md | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index 7520995e4..580c96fa0 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -215,12 +215,9 @@ The general ("G") format specifier converts a number to the more compact of eith |`Int16.Type` |5 digits| |`Int32.Type` |10 digits| |`Int64.Type` |19 digits| -|`Single.Type` |Smallest round-trippable number of digits to represent the number (G7 is the default)| -|`Double.Type` |Smallest round-trippable number of digits to represent the number (G15 is the default)| -|`Decimal.Type` |Smallest round-trippable number of digits to represent the number (G30 is the default)| - +|`Single.Type` |9 digits| +|`Double.Type` |17 digits| +|`Decimal.Type` |15 digits| Fixed-point notation is used if the exponent that would result from expressing the number in scientific notation is greater than -5 and less than the precision specifier; otherwise, scientific notation is used. The result contains a decimal point if required, and trailing zeros after the decimal point are omitted. If the precision specifier is present and the number of significant digits in the result exceeds the specified precision, the excess trailing digits are removed by rounding. @@ -228,11 +225,6 @@ However, if the number is a `Decimal.Type` and the precision specifier is omitte If scientific notation is used, the exponent in the result is prefixed with "E" if the format specifier is "G", or "e" if the format specifier is "g". The exponent contains a minimum of two digits. This differs from the format for scientific notation that is produced by the exponential format specifier, which includes a minimum of three digits in the exponent. - -When used with a `Double.Type` value, the "G17" format specifier ensures that the original `Double.Type` value successfully round-trips. This is because `Double.Type` is an IEEE 754-2008-compliant double-precision (`binary64`) floating-point number that gives up to 17 significant digits of precision. - -When used with a `Single.Type` value, the "G9" format specifier ensures that the original `Single.Type` value successfully round-trips. This is because `Single.Type` is an IEEE 754-2008-compliant single-precision (`binary32`) floating-point number that gives up to nine significant digits of precision. - The result string is affected by the formatting information of the current culture. The following example formats assorted floating-point values with the general format specifier: From 07c51cfb6cf84eec99cc30fb7d8f583c65f16d7c Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 30 Sep 2024 12:08:50 -0700 Subject: [PATCH 570/934] Added new about info and examples to trim articles --- query-languages/m/text-trim.md | 61 ++++++++++++++++++++++++++++- query-languages/m/text-trimend.md | 52 +++++++++++++++++++++++- query-languages/m/text-trimstart.md | 49 ++++++++++++++++++++++- 3 files changed, 158 insertions(+), 4 deletions(-) diff --git a/query-languages/m/text-trim.md b/query-languages/m/text-trim.md index b4bcc0ff4..3b0ef4bc3 100644 --- a/query-languages/m/text-trim.md +++ b/query-languages/m/text-trim.md @@ -12,7 +12,10 @@ Text.Trim(text as nullable text, optional trim as any) as nullable ## About -Returns the result of removing all leading and trailing whitespace from text value `text`. +Returns the result of removing all leading and trailing characters from the specified `text`. By default, all the leading and trailing whitespace characters are removed. + +* `text`: The text from which the leading and trailing characters are to be removed. +* `trim`" Overrides the whitespace characters that are trimmed by default. This parameter can either be a single character or a list of single characters. Each leading and trailing trim operation stops when a non-trimmed character is encountered. ## Example 1 @@ -27,3 +30,59 @@ Text.Trim(" a b c d ") **Output** `"a b c d"` + +## Example 2 + +Remove leading and trailing zeroes from the text representation of a number. + +**Usage** + +```powerquery-m +Text.Trim("0000056.4200", "0") +``` + +**Output** + +`"56.42"` + +## Example 3 + +Remove the leading and trailing brackets from an HTML tag. + +**Usage** + +```powerquery-m +Text.Trim("
", {"<", ">", "/"}) +``` + +**Output** + +`"div"` + +## Example 4 + +Remove the special characters used around the pending sales status. + +**Usage** + +```powerquery-m +let + Source = #table(type table [Home Sale = text, Sales Date = date, Sales Status = text], + { + {"1620 Ferris Way", #date(2024, 8, 22), "##@@Pending@@##"}, + {"757 1st Ave. S.", #date(2024, 3, 15), "Sold"}, + {"22303 Fillmore", #date(2024, 10, 2), "##@@Pending@@##"} + }), + #"Trimmed Status" = Table.TransformColumns(Source, {"Sales Status", each Text.Trim(_, {"#", "@"})}) +in + #"Trimmed Status" +``` + +**Output** + +#table(type table [Home Sale = text, Sales Date = date, Sales Status = text], + { + {"1620 Ferris Way", #date(2024, 8, 22), "Pending"}, + {"757 1st Ave. S.", #date(2024, 3, 15), "Sold"}, + {"22303 Fillmore", #date(2024, 10, 2), "Pending"} + }) diff --git a/query-languages/m/text-trimend.md b/query-languages/m/text-trimend.md index 2dc5602f8..bc3851b16 100644 --- a/query-languages/m/text-trimend.md +++ b/query-languages/m/text-trimend.md @@ -12,11 +12,14 @@ Text.TrimEnd(text as nullable text, optional trim as any) as nulla ## About -Returns the result of removing all trailing whitespace from text value `text`. +Returns the result of removing all trailing characters from the specified `text`. By default, all the trailing whitespace characters are removed. + +* `text`: The text from which the trailing characters are to be removed. +* `trim`" Overrides the whitespace characters that are trimmed by default. This parameter can either be a single character or a list of single characters. Each trailing trim operation stops when a non-trimmed character is encountered. ## Example 1 -Remove trailing whitespace from " a b c d ". +Remove trailing whitespace from " a b c d ". **Usage** @@ -29,3 +32,48 @@ Text.TrimEnd(" a b c d ")
 "     a b c d"
 
+ +## Example 2 + +Remove trailing zeroes from a text representation of a padded floating point number. + +**Usage** + +```powerquery-m +Text.TrimEnd("03.487700000", "0") +``` + +**Output** + +`"03.4877"` + +## Example 3 + +Remove the trailing padding characters from a fixed-width account name. + +**Usage** + +```powerquery-m +let + Source = #table(type table [Name = text, Account Name= text, Interest = number], + { + {"Bob", "US-847263****@", 2.8410}, + {"Leslie", "FR-4648****@**", 3.8392}, + {"Ringo", "DE-2046790@***", 12.6600} + }), + #"Trimmed Account" = Table.TransformColumns(Source, {{"Account Name", each Text.TrimEnd(_, {"*", "@"})}}) +in + #"Trimmed Account" +``` + +**Output** + +```powerquery-m +#table(type table [Name = text, Account Name = text, Interest = number], + { + {"Bob", "US-847263", 2.841}, + {"Leslie", "FR-4648", 3.8392}, + {"Ringo", "DE-2046790", 12.66} + }), + +``` diff --git a/query-languages/m/text-trimstart.md b/query-languages/m/text-trimstart.md index 8f0c5870d..4644db599 100644 --- a/query-languages/m/text-trimstart.md +++ b/query-languages/m/text-trimstart.md @@ -12,7 +12,10 @@ Text.TrimStart(text as nullable text, optional trim as any) as nul ## About -Returns the result of removing all leading whitespace from text value `text`. +Returns the result of removing all leadling characters from the specified `text`. By default, all the leading whitespace characters are removed. + +* `text`: The text from which the leading characters are to be removed. +* `trim`" Overrides the whitespace characters that are trimmed by default. This parameter can either be a single character or a list of single characters. Each leading trim operation stops when a non-trimmed character is encountered. ## Example 1 @@ -29,3 +32,47 @@ Text.TrimStart(" a b c d ")
 "a b c d    "
 
+ +## Example 2 + +Remove leading zeroes from the text representation of a number. + +**Usage** + +```powerquery-m +Text.TrimStart("0000056.420", "0") +``` + +**Output** + +`"56.420"` + +## Example 3 + +Remove the leading padding characters from a fixed width account name. + +**Usage** + +```powerquery-m +let + Source = #table(type table [Name = text, Account Name= text, Interest = number], + { + {"Bob", "@****847263-US", 2.8410}, + {"Leslie", "@******4648-FR", 3.8392}, + {"Ringo", "@*****24679-DE", 12.6600} + }), + #"Trimmed Account" = Table.TransformColumns(Source, {{"Account Name", each Text.TrimStart(_, {"*", "@"})}}) +in + #"Trimmed Account" +``` + +**Output** + +```powerquery-m +#table(type table [Name = text, Account Name = text, Interest = number], + { + {"Bob", "847263-US", 2.841}, + {"Leslie", "4648-FR", 3.8392}, + {"Ringo", "2046790-DE", 12.66} + }), + From 829deadcf8d57a5f0a400688ca2e2d85006a8977 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 30 Sep 2024 12:11:59 -0700 Subject: [PATCH 571/934] Fixed broken sample metadata --- query-languages/m/text-trimstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/text-trimstart.md b/query-languages/m/text-trimstart.md index 4644db599..6e73f189e 100644 --- a/query-languages/m/text-trimstart.md +++ b/query-languages/m/text-trimstart.md @@ -75,4 +75,4 @@ in {"Leslie", "4648-FR", 3.8392}, {"Ringo", "2046790-DE", 12.66} }), - +``` From 4a29ac2a11ba42d400cc6c879fec1b4fb4615367 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 30 Sep 2024 12:19:14 -0700 Subject: [PATCH 572/934] Fixed more sample metadata --- query-languages/m/text-trim.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/m/text-trim.md b/query-languages/m/text-trim.md index 3b0ef4bc3..ca1c2ee58 100644 --- a/query-languages/m/text-trim.md +++ b/query-languages/m/text-trim.md @@ -80,9 +80,11 @@ in **Output** +```powerquery-m #table(type table [Home Sale = text, Sales Date = date, Sales Status = text], { {"1620 Ferris Way", #date(2024, 8, 22), "Pending"}, {"757 1st Ave. S.", #date(2024, 3, 15), "Sold"}, {"22303 Fillmore", #date(2024, 10, 2), "Pending"} }) +``` From 77cbd0e6bf404888655e4a526a7656179b3f3c12 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 30 Sep 2024 15:51:57 -0700 Subject: [PATCH 573/934] Added invariant culture to appropriate samples --- .../m/standard-numeric-format-strings.md | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index 580c96fa0..706f6b1a0 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -1,7 +1,7 @@ --- title: Standard numeric format strings description: In this article, learn to use standard numeric format strings to format common numeric types into text representations in Power Query M. -ms.date: 9/20/2024 +ms.date: 9/30/2024 ms.topic: reference --- @@ -149,13 +149,13 @@ The following example formats a value with the exponential format specifier: let Source = { - Number.ToText(12345.6789, "E"), + Number.ToText(12345.6789, "E", ""), // Displays 1.234568E+004 - Number.ToText(12345.6789, "E10"), + Number.ToText(12345.6789, "E10", ""), // Displays 1.2345678900E+004 - Number.ToText(12345.6789, "e4"), + Number.ToText(12345.6789, "e4", ""), // 1.2346e+004 Number.ToText(12345.6789, "E", "fr-FR") @@ -165,6 +165,9 @@ in Source ``` +> [!NOTE] +> The blank text ("") in the last parameter of **Number.ToText** in the previous sample refers to the invariant culture. + ## Fixed-point format specifier (F) @@ -181,22 +184,22 @@ The following example formats a double and an integer value with the fixed-point let Source = { - Number.ToText(17843, "F"), + Number.ToText(17843, "F", ""), // Displays 17843.00 - Number.ToText(-29541, "F3"), + Number.ToText(-29541, "F3", ""), // Displays -29541.000 - Number.ToText(18934.1879, "F"), + Number.ToText(18934.1879, "F", ""), // Displays 18934.19 - Number.ToText(18934.1879, "F0"), + Number.ToText(18934.1879, "F0", ""), // Displays 18934 - Number.ToText(-1898300.1987, "F1"), + Number.ToText(-1898300.1987, "F1", ""), // Displays -1898300.2 - Number.ToText(-1898300.1987, "F3", "es-ES"), + Number.ToText(-1898300.1987, "F3", "es-ES") // Displays -1898300,199 } in @@ -233,28 +236,28 @@ The following example formats assorted floating-point values with the general fo let Source = { - Number.ToText(12345.6789, "G"), + Number.ToText(12345.6789, "G", ""), // Displays 12345.6789 Number.ToText(12345.6789, "G", "fr-FR"), // Displays 12345,6789 - Number.ToText(12345.6789, "G7), + Number.ToText(12345.6789, "G7", ""), // Displays 12345.68 - Number.ToText(.0000023, "G"), + Number.ToText(.0000023, "G", ""), // Displays 2.3E-06 Number.ToText(.0000023, "G", "fr-FR"), // Displays 2,3E-06 - Number.ToText(.0023, "G"), + Number.ToText(.0023, "G", ""), // Displays 0.0023 - Number.ToText(1234, "G2") + Number.ToText(1234, "G2", ""), // Displays 1.2E+03 - Number.ToText(Number.PI, "G5") + Number.ToText(Number.PI, "G5", "") // Displays 3.1416 } in @@ -275,13 +278,13 @@ The following example formats assorted floating-point values with the number for let Source = { - Number.ToText(-12445.6789, "N"), + Number.ToText(-12445.6789, "N", ""), // Displays -12,445.68 Number.ToText(-12445.6789, "N1", "sv-SE"), // Displays -12 445,7 - Number.ToText(123456789, "N1") + Number.ToText(123456789, "N1", "") // Displays 123,456,789.0 } in @@ -300,13 +303,13 @@ The following example formats floating-point values with the percent format spec let Source = { - Number.ToText(.2468013, "P"), - // Displays 24.68% + Number.ToText(.2468013, "P", ""), + // Displays 24.68 % Number.ToText(.2468013, "P", "hr-HR"), // Displays 24,68 % - Number.ToText(.2468013, "P1") + Number.ToText(.2468013, "P1", "en-US") // Displays 24.7% } in @@ -341,7 +344,7 @@ let Number.ToText(123456789, "X"), // Displays 75BCD15 - Number.ToText(123456789, "X2"), + Number.ToText(123456789, "X2") // Displays 75BCD15 } in @@ -354,9 +357,7 @@ This section contains additional information about using standard numeric format ### How culture affects numeric format strings -*Culture* is the standard locale that’s determined by the underlying platform where your queries are originally created. By default, your format strings use the current default culture. - -The current default culture can vary depending on whether you reference Power Query M on a local machine or a cloud platform. For example, if you develop Power Query M code on your local system in Power BI Desktop, the default culture is the locale settings used on your local system. If you develop Power Query M code in the Power BI service, the default culture is the locale settings used on the cloud service. The [list of Windows input locales](/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs#input-locales) can be used as the culture on the Windows platform. Other platforms, such as macOS, might use a different list of cultures. +Different countries and language groups have different conventions for formatting numbers. In Power Query, *culture* refers to the locale whose conventions are used to format numbers in Power Query M. The culture is set to the system locale (Windows, MacOS) when your queries are first authored. If you move your query to a different location that uses a different default culture, your query still uses the culture of the original location. @@ -368,6 +369,9 @@ However, you can change the default culture in the Power Query settings dialog w Other versions of Power Query work similarly. In general, within Power Query you select **Options**, which opens the **Options** dialog. Then select **Regional Settings** and select the locale you want to use. +> [!NOTE] +> The current default culture is different than the invariant culture. To use the current default culture, no culture setting is required in your Power Query M code. To use the invariant culture, you use `Culture = ""` in the functions that support culture. + ### Integral and floating-point numeric types Some descriptions of standard numeric format specifiers refer to integral or floating-point numeric types. The integral numeric types are `Byte.Type`, `Int8.Type`, `Int16.Type`, `Int32.Type`, and`Int64.Type`. The floating-point numeric types are `Decimal.Type`, `Single.Type`, and `Double.Type`. @@ -381,7 +385,6 @@ Regardless of the format string, if the value of a `Decimal.Type`, `Single.Type` The following example formats a floating point and an integral numeric value using the en-US culture and all the standard numeric format specifiers. This example uses two particular numeric types (`Double.Type` and `Int32.Type`), but would yield similar results for any of the other numeric base types (`Byte.Type`, `Decimal.Type`, `Int8.Type`, `Int16.Type`, `Int64.Type`, and `Single.Type`). ```powerquery-m -let let // Display text representations of numbers for en-US culture culture = "en-US", @@ -408,7 +411,7 @@ let Text.Format("F: #{0}", {Number.ToText(integral, "F01", culture)}), // Displays "F: 8395.0" Text.Format("G: #{0}", {Number.ToText(integral, "G", culture)}), // Displays "G: 8395" Text.Format("N: #{0}", {Number.ToText(integral, "N01", culture)}), // Displays "N: 8,395.0" - Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95 %" + Text.Format("P: #{0}", {Number.ToText(integral/10000, "P02", culture)}), // Displays "P: 83.95%" Text.Format("X: 0x#{0}", {Number.ToText(integral, "X", culture)}) // Displays "X: 0x20CB" }, results = #"Floating results" & #"Integral results" From c68e7e9cf91678c8df60ad94018883b659c76de3 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 30 Sep 2024 15:55:58 -0700 Subject: [PATCH 574/934] More updates --- .../m/custom-numeric-format-strings.md | 71 +++++++++++-------- .../m/standard-numeric-format-strings.md | 2 +- 2 files changed, 44 insertions(+), 29 deletions(-) diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index e53d433e7..4989e85a2 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -1,7 +1,7 @@ --- title: "Custom numeric format strings" description: Learn how to create a custom numeric format string to format numeric data in .NET. A custom numeric format string has one or more custom numeric specifiers. -ms.date: 9/20/2024 +ms.date: 9/30/2024 ms.topic: reference --- # Custom numeric format strings @@ -40,37 +40,40 @@ The following example displays several values that are formatted by using custom let Source = { - Number.ToText(123, "00000"), + Number.ToText(123, "00000", ""), // Displays 00123 - Number.ToText(1.2, "0.00"), + Number.ToText(1.2, "0.00", ""), // Displays 1.20 - Number.ToText(1.2, "00.00"), + Number.ToText(1.2, "00.00", ""), // Displays 01.20 Number.ToText(1.2, "00.00", "da-DK"), // Displays 01,20 - Number.ToText(.56, "0.0"), + Number.ToText(.56, "0.0", ""), // Displays 0.6 - Number.ToText(1234567890, "0,0"), + Number.ToText(1234567890, "0,0", ""), // Displays 1,234,567,890 Number.ToText(1234567890, "0,0", "el-GR"), // Displays 1.234.567.890 - Number.ToText(1234567890.123456, "0,0.0"), + Number.ToText(1234567890.123456, "0,0.0", ""), // Displays 1,234,567,890.1 - Number.ToText(1234.567890, "0,0.00") + Number.ToText(1234.567890, "0,0.00", "") // Displays 1,234.57 } in Source ``` +> [!NOTE] +> The blank text ("") in the last parameter of **Number.ToText** in the previous sample refers to the invariant culture. + [Back to table](#table) @@ -89,7 +92,7 @@ The following example displays several values that are formatted by using custom let Source = { - Number.ToText(1.2, "#.##"), + Number.ToText(1.2, "#.##", ""), // Displays 1.2 Number.ToText(123, "#####"), @@ -137,19 +140,19 @@ The following example uses the "." format specifier to define the location of th let Source = { - Number.ToText(1.2, "0.00"), + Number.ToText(1.2, "0.00", ""), // Displays 1.20 - Number.ToText(1.2, "00.00"), + Number.ToText(1.2, "00.00", ""), // Displays 01.20 Number.ToText(1.2, "00.00", "da-DK"), // Displays 01,20 - Number.ToText(.086, "#0.##%"), + Number.ToText(.086, "#0.##%", ""), // Displays 8.6% - Number.ToText(Double.From(86000), "0.###E+0") + Number.ToText(Double.From(86000), "0.###E+0", "") // Displays 8.6E+4 } in @@ -178,10 +181,10 @@ The following example illustrates the use of the comma as a group separator. let Source = { - Number.ToText(1234567890, "#,#"), + Number.ToText(1234567890, "#,#", ""), // Displays 1,234,567,890 - Number.ToText(1234567890, "#,##0,,") + Number.ToText(1234567890, "#,##0,,", "") // Displays, 1,235 } in @@ -194,13 +197,13 @@ The following example illustrates the use of the comma as a specifier for number let Source = { - Number.ToText(1234567890, "#,,"), + Number.ToText(1234567890, "#,,", ""), // Displays 1235 - Number.ToText(1234567890, "#,,,"), + Number.ToText(1234567890, "#,,,", ""), // Displays 1 - Number.ToText(1234567890, "#,##0,,") + Number.ToText(1234567890, "#,##0,,", "") // Displays 1,235 } in @@ -219,7 +222,7 @@ The following example defines a custom format string that includes the "%" custo ```powerquery-m let - Source = Number.ToText(.086, "#0.##%") + Source = Number.ToText(.086, "#0.##%", "") // Displays 8.6% in Source @@ -237,7 +240,7 @@ The following example defines a custom format string that includes the "‰" cus ```powerquery-m let - Source = Number.ToText(.00354, "#0.##" & Character.FromNumber(0x2030)) + Source = Number.ToText(.00354, "#0.##" & Character.FromNumber(0x2030), "") // Displays 3.54‰ in Source @@ -257,13 +260,13 @@ The following example formats several numeric values using the specifiers for sc let Source = { - Number.ToText(86000, "0.###E+0"), + Number.ToText(86000, "0.###E+0", ""), // Displays 8.6E+4 - Number.ToText(86000, "0.###E+000"), + Number.ToText(86000, "0.###E+000", ""), // Displays 8.6E+004 - Number.ToText(86000, "0.###E-000"), + Number.ToText(86000, "0.###E-000", "") // Displays 8.6E004 } in @@ -274,15 +277,21 @@ in -## The "\\" escape character +## The escape character The "#", "0", ".", ",", "%", and "‰" symbols in a format string are interpreted as format specifiers rather than as literal characters. Depending on their position in a custom format string, the uppercase and lowercase "E" as well as the + and - symbols may also be interpreted as format specifiers. -To prevent a character from being interpreted as a format specifier, you can precede it with a backslash, which is the escape character. The escape character signifies that the following character is a character literal that should be included in the result string unchanged. +To prevent a character from being interpreted as a format specifier, you can: + +- Precede it with a backslash. +- Surround it with a single quote. +- Surround it with two double quotes. + +Each of these act as escape characters. The escape character signifies that the following character is a character literal that should be included in the result string unchanged. To include a backslash in a result string, you must escape it with another backslash (`\\`). -The following example uses the escape character to prevent the formatting operation from interpreting the "#", "0", and "\\" characters as either escape characters or format specifiers. The C# examples uses an additional backslash to ensure that a backslash is interpreted as a literal character. +The following example uses the escape character to prevent the formatting operation from interpreting the "#", "0", and "\" characters as either escape characters or format specifiers. ```powerquery-m let @@ -291,12 +300,18 @@ let Number.ToText(123, "\#\#\# ##0 dollars and \0\0 cents \#\#\#"), // Displays ### 123 dollars and 00 cents ### + Number.ToText(123, "'###' ##0 dollars and '00' cents '###'"), + // Displays ### 123 dollars and 00 cents ### + Number.ToText(123, """###"" ##0 dollars and ""00"" cents ""###"""), // Displays ### 123 dollars and 00 cents ### Number.ToText(123, "\\\\\\ ##0 dollars and \0\0 cents \\\\\\"), // Displays \\\ 123 dollars and 00 cents \\\ + Number.ToText(123, "'\\\' ##0 dollars and '00' cents '\\\'"), + // Displays \\\ 123 dollars and 00 cents \\\ + Number.ToText(123, """\\\"" ##0 dollars and ""00"" cents ""\\\""") // Displays \\\ 123 dollars and 00 cents \\\ } @@ -332,7 +347,7 @@ let Number.ToText(-1234, "##;(##)"), // Displays (1234) - Number.ToText(0, "##;(##);**Zero**"), + Number.ToText(0, "##;(##);**Zero**") // Displays **Zero** } in @@ -369,7 +384,7 @@ in There are two ways to indicate that characters are to be interpreted as literal characters and not as formatting characters, so that they can be included in a result string or successfully parsed in an input string: -- By escaping a formatting character. For more information, go to [The "\\" escape character](#SpecifierEscape). +- By escaping a formatting character. For more information, go to [The escape character](#SpecifierEscape). - By enclosing the entire literal string in quotation apostrophes. diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index 706f6b1a0..5aed137d0 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -16,7 +16,7 @@ Standard numeric format strings are used to format common numeric types. A stand When the precision specifier controls the number of fractional digits in the result string, the result string reflects a number that is rounded to a representable result nearest to the infinitely precise result. > [!NOTE] - > The precision specifier determines the number of digits in the result string. To pad a result string with leading or trailing spaces or other characters (such a 0), use the [Text.PadStart](text-padstart.md) and [Text.PadEnd](text-padend.md) functions and define an *alignment component* in the `count` parameter. + > The precision specifier determines the number of digits in the result string. To pad a result string with leading or trailing spaces or other characters (such a 0), use the [Text.PadStart](text-padstart.md) and [Text.PadEnd](text-padend.md) functions and use the overall length `count` to pad the result string. Standard numeric format strings are supported by the [Number.ToText](number-totext.md) function. From 427360dc6950dbbcb9e7c445bd00af95650b6606 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 30 Sep 2024 16:00:52 -0700 Subject: [PATCH 575/934] One more minor change --- query-languages/m/standard-numeric-format-strings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index 5aed137d0..ea0e1271a 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -16,7 +16,7 @@ Standard numeric format strings are used to format common numeric types. A stand When the precision specifier controls the number of fractional digits in the result string, the result string reflects a number that is rounded to a representable result nearest to the infinitely precise result. > [!NOTE] - > The precision specifier determines the number of digits in the result string. To pad a result string with leading or trailing spaces or other characters (such a 0), use the [Text.PadStart](text-padstart.md) and [Text.PadEnd](text-padend.md) functions and use the overall length `count` to pad the result string. + > The precision specifier determines the number of digits in the result string. To pad a result string with leading or trailing spaces or other characters (such a 0), use the [Text.PadStart](text-padstart.md) and [Text.PadEnd](text-padend.md) functions and use the overall length `count` in these functions to pad the result string. Standard numeric format strings are supported by the [Number.ToText](number-totext.md) function. From fea9aa56f30ec850dce5190cd2c4f3ca35e84423 Mon Sep 17 00:00:00 2001 From: Sean Tang Date: Mon, 30 Sep 2024 19:42:02 -0700 Subject: [PATCH 576/934] pr comment. dependon function --- .../dax/allselectedapply-function-dax.md | 2 + .../dax/allselectedremove-function-dax.md | 2 + .../dax/alwaysapply-function-dax.md | 2 + query-languages/dax/dependon-function-dax.md | 49 +++++++++++++++++++ .../dax/filtercluster-function-dax.md | 2 + .../dax/groupcrossapply-function-dax.md | 2 + .../dax/groupcrossapplytable-function-dax.md | 2 + query-languages/dax/nonfilter-function-dax.md | 2 + .../dax/shadowcluster-function-dax.md | 2 + 9 files changed, 65 insertions(+) create mode 100644 query-languages/dax/dependon-function-dax.md diff --git a/query-languages/dax/allselectedapply-function-dax.md b/query-languages/dax/allselectedapply-function-dax.md index 265de8f8d..fb2d5e704 100644 --- a/query-languages/dax/allselectedapply-function-dax.md +++ b/query-languages/dax/allselectedapply-function-dax.md @@ -4,6 +4,8 @@ title: "ALLSELECTEDAPPLY function (DAX) | Microsoft Docs" --- # ALLSELECTEDAPPLY +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. ## Syntax diff --git a/query-languages/dax/allselectedremove-function-dax.md b/query-languages/dax/allselectedremove-function-dax.md index a19fc2c7e..b052bb795 100644 --- a/query-languages/dax/allselectedremove-function-dax.md +++ b/query-languages/dax/allselectedremove-function-dax.md @@ -4,6 +4,8 @@ title: "ALLSELECTEDREMOVE function (DAX) | Microsoft Docs" --- # ALLSELECTEDREMOVE +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. ## Syntax diff --git a/query-languages/dax/alwaysapply-function-dax.md b/query-languages/dax/alwaysapply-function-dax.md index 726c40f6d..9c93f3efb 100644 --- a/query-languages/dax/alwaysapply-function-dax.md +++ b/query-languages/dax/alwaysapply-function-dax.md @@ -4,6 +4,8 @@ title: "ALWAYSAPPLY function (DAX) | Microsoft Docs" --- # ALWAYSAPPLY +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. ## Syntax diff --git a/query-languages/dax/dependon-function-dax.md b/query-languages/dax/dependon-function-dax.md new file mode 100644 index 000000000..3e734a884 --- /dev/null +++ b/query-languages/dax/dependon-function-dax.md @@ -0,0 +1,49 @@ +--- +description: "Learn more about: DEPENDON" +title: "DEPENDON function (DAX) | Microsoft Docs" +--- +# DEPENDON + +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + +Change the table expression to be dependent on outer columns, based on the table data. + +## Syntax + +```dax +DEPENDON(
[, [, [,…]]]) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|table expression|Any table expression.| +|column|Column in the table expression.| + +## Return value + +The first few columns will be remapped to be dependent on specified outer columns. + +### Example + +```dax +DEFINE TABLE VTable = SELECTCOLUMNS({"USA", "Canada", "Mexico"}, "Country", [Value]) +EVALUATE SUMMARIZECOLUMNS( + VTable[Country], + "Measure", SUMX(DEPENDON({("USA", 10), ("USA", 11), ("Canada", 12)}, VTable[Country]), [Value2]) +) +``` + +This DEPENDON makes the first column depend on outer VTable[Country]. So the result table now returns table {10,11} if VTable[Country] == "USA" and returns {12} if VTable[Country] == "Canada". So the result should look like: + +|VTable[Country]|Measure| +|--------------|| +|USA|21| +|Canada|12| + +## Related content + +[Filter functions](filter-functions-dax.md) +[GROUPCROSSAPPLY function](groupcrossapply-function-dax.md) +[GROUPCROSSAPPLYTABLE function](groupcrossapplytable-function-dax.md) diff --git a/query-languages/dax/filtercluster-function-dax.md b/query-languages/dax/filtercluster-function-dax.md index b13b64354..b12117fee 100644 --- a/query-languages/dax/filtercluster-function-dax.md +++ b/query-languages/dax/filtercluster-function-dax.md @@ -4,6 +4,8 @@ title: "FILTERCLUSTER function (DAX) | Microsoft Docs" --- # FILTERCLUSTER +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Returns a correlated join table over a set of groups. ## Syntax diff --git a/query-languages/dax/groupcrossapply-function-dax.md b/query-languages/dax/groupcrossapply-function-dax.md index 6a9d59fa4..735c7d0f3 100644 --- a/query-languages/dax/groupcrossapply-function-dax.md +++ b/query-languages/dax/groupcrossapply-function-dax.md @@ -4,6 +4,8 @@ title: "GROUPCROSSAPPLY function (DAX) | Microsoft Docs" --- # GROUPCROSSAPPLY +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Returns a summary table over a set of groups. ## Syntax diff --git a/query-languages/dax/groupcrossapplytable-function-dax.md b/query-languages/dax/groupcrossapplytable-function-dax.md index 4f05f7717..32fc8b071 100644 --- a/query-languages/dax/groupcrossapplytable-function-dax.md +++ b/query-languages/dax/groupcrossapplytable-function-dax.md @@ -4,6 +4,8 @@ title: "GROUPCROSSAPPLYTABLE function (DAX) | Microsoft Docs" --- # GROUPCROSSAPPLYTABLE +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Returns a summary table over a set of groups. ## Syntax diff --git a/query-languages/dax/nonfilter-function-dax.md b/query-languages/dax/nonfilter-function-dax.md index 3ee7989a2..1f349a13b 100644 --- a/query-languages/dax/nonfilter-function-dax.md +++ b/query-languages/dax/nonfilter-function-dax.md @@ -4,6 +4,8 @@ title: "NONFILTER function (DAX) | Microsoft Docs" --- # NONFILTER +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. ## Syntax diff --git a/query-languages/dax/shadowcluster-function-dax.md b/query-languages/dax/shadowcluster-function-dax.md index f9e24dd39..a985d62b3 100644 --- a/query-languages/dax/shadowcluster-function-dax.md +++ b/query-languages/dax/shadowcluster-function-dax.md @@ -4,6 +4,8 @@ title: "SHADOWCLUSTER function (DAX) | Microsoft Docs" --- # SHADOWCLUSTER +[!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] + Modifies how filters are applied while evaluating a GROUPCROSSAPPLY or GROUPCROSSAPPLYTABLE function. ## Syntax From 0a560252e7b29d967f99734f68cb299040df28df Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 1 Oct 2024 08:23:17 -0700 Subject: [PATCH 577/934] Updated escape characters info, other dev fixes --- .../m/custom-numeric-format-strings.md | 23 ++++++++++++++----- .../m/standard-numeric-format-strings.md | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index 4989e85a2..302a44dfd 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -19,7 +19,7 @@ You can create a custom numeric format string, which consists of one or more cus |"%"|Percentage placeholder|Multiplies a number by 100 and inserts a localized percentage symbol in the result string.

More information: [The "%" Custom Specifier](#SpecifierPct).|0.3697 ("%#0.00", en-US) -> %36.97

0.3697 ("%#0.00", el-GR) -> %36,97

0.3697 ("##.0 %", en-US) -> 37.0 %

0.3697 ("##.0 %", el-GR) -> 37,0 %| |"‰"|Per mille placeholder|Multiplies a number by 1000 and inserts a localized per mille symbol in the result string.

More information: [The "‰" Custom Specifier](#SpecifierPerMille).|0.03697 ("#0.00‰", en-US) -> 36.97‰

0.03697 ("#0.00‰", ru-RU) -> 36,97‰| |"E0"

"E+0"

"E-0"

"e0"

"e+0"

"e-0"|Exponential notation|If followed by at least one 0 (zero), formats the result using exponential notation. The case of "E" or "e" indicates the case of the exponent symbol in the result string. The number of zeros following the "E" or "e" character determines the minimum number of digits in the exponent. A plus sign (+) indicates that a sign character always precedes the exponent. A minus sign (-) indicates that a sign character precedes only negative exponents.

More information: [The "E" and "e" Custom Specifiers](#SpecifierExponent).|987654 ("#0.0e0") -> 98.8e4

1503.92311 ("0.0##e+00") -> 1.504e+03

1.8901385E-16 ("0.0e+00") -> 1.9e-16| -|"\\"|Escape character|Causes the next character to be interpreted as a literal rather than as a custom format specifier.

More information: [The "\\" Escape Character](#SpecifierEscape).|987654 ("\\###00\\#") -> #987654#| +|"\\", "''", """"|Escape characters|Causes the next character or characters to be interpreted as a literal rather than as a custom format specifier.

More information: [Escape characters](#SpecifierEscape).|987654 ("\\###00\\#") -> #987654#

987654 ("'#'##00'#'") -> #987654#

987654 ("""#""##00""#""") -> #987654#| |'*string*'

"*string*"|Literal string delimiter|Indicates that the enclosed characters should be copied to the result string unchanged.

More information: [Character literals](#character-literals).|68 ("# 'degrees'") -> 68 degrees

68 ("#' degrees'") -> 68 degrees| |;|Section separator|Defines sections with separate format strings for positive, negative, and zero numbers.

More information: [The ";" Section Separator](#SectionSeparator).|12.345 ("#0.0#;(#0.0#);-\0-") -> 12.35

0 ("#0.0#;(#0.0#);-\0-") -> -0-

-12.345 ("#0.0#;(#0.0#);-\0-") -> (12.35)

12.345 ("#0.0#;(#0.0#)") -> 12.35

0 ("#0.0#;(#0.0#)") -> 0.0

-12.345 ("#0.0#;(#0.0#)") -> (12.35)| |Other|All other characters|The character is copied to the result string unchanged.

More information: [Character literals](#character-literals).|68 ("# °") -> 68 °| @@ -72,7 +72,7 @@ in ``` > [!NOTE] -> The blank text ("") in the last parameter of **Number.ToText** in the previous sample refers to the invariant culture. +> The blank text value ("") in the last parameter of [Number.ToText](number-totext.md) in the previous sample refers to the invariant culture. [Back to table](#table) @@ -277,7 +277,7 @@ in -## The escape character +## Escape characters The "#", "0", ".", ",", "%", and "‰" symbols in a format string are interpreted as format specifiers rather than as literal characters. Depending on their position in a custom format string, the uppercase and lowercase "E" as well as the + and - symbols may also be interpreted as format specifiers. @@ -291,7 +291,11 @@ Each of these act as escape characters. The escape character signifies that the To include a backslash in a result string, you must escape it with another backslash (`\\`). -The following example uses the escape character to prevent the formatting operation from interpreting the "#", "0", and "\" characters as either escape characters or format specifiers. +To include a single quote in a result string, you must escape it with a backslash (`\'`). If the single quote was preceded by another single quote that wasn't escaped, the backslash is displayed (`'\'` displays `\`). + +To include a double quote in a result string, you must escape two of them with a backslash (`\""`). + +The following example uses escape characters to prevent the formatting operation from interpreting the "#", "0", and "\" characters as either escape characters or format specifiers. ```powerquery-m let @@ -366,6 +370,7 @@ Format specifiers that appear in a custom numeric format string are always inter - [‰](#SpecifierPerMille) - ' - [\\](#SpecifierEscape) +- [\""](#SpecifierEscape) - [.](#SpecifierPt) - [,](#SpecifierTh) - [E or e](#SpecifierExponent), depending on its position in the format string. @@ -384,7 +389,7 @@ in There are two ways to indicate that characters are to be interpreted as literal characters and not as formatting characters, so that they can be included in a result string or successfully parsed in an input string: -- By escaping a formatting character. For more information, go to [The escape character](#SpecifierEscape). +- By escaping a formatting character. For more information, go to [Escape characters](#SpecifierEscape). - By enclosing the entire literal string in quotation apostrophes. @@ -406,8 +411,14 @@ let Number.ToText(9.3, "##.0'%'"), // Displays 9.3% - Number.ToText(9.3, "'\'##'\'") + Number.ToText(9.3, "'\'##'\'"), // Displays \9\ + + Number.ToText(9.3, "##.0""%"""), + // Displays 9.3% + + Number.ToText(9.3, "\""##\""") + // Displays "9" } in Source diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index ea0e1271a..a47267e64 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -166,7 +166,7 @@ in ``` > [!NOTE] -> The blank text ("") in the last parameter of **Number.ToText** in the previous sample refers to the invariant culture. +> The blank text value ("") in the last parameter of [Number.ToText](number-totext.md) in the previous sample refers to the invariant culture. From 0f41ca871f77ae91aaff9679c90e12b9c92eaec3 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 1 Oct 2024 08:41:36 -0700 Subject: [PATCH 578/934] Other minor updates --- .../m/custom-numeric-format-strings.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index 302a44dfd..69500d0f9 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -13,7 +13,7 @@ You can create a custom numeric format string, which consists of one or more cus |Format specifier|Name|Description|Examples| |----------------------|----------|-----------------|--------------| |"0"|Zero placeholder|Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.

More information: [The "0" Custom Specifier](#Specifier0).|1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| -|"#"|Digit placeholder|Replaces the "#" symbol with the corresponding digit if one is present; otherwise, no digit appears in the result string.

Note that no digit appears in the result string if the corresponding digit in the input string is a non-significant 0. For example, 0003 ("####") -> 3.

More information: [The "#" Custom Specifier](#SpecifierD).|1234.5678 ("#####") -> 1235

0.45678 ("#.##", en-US) -> .46

0.45678 ("#.##", fr-FR) -> ,46| +|"#"|Digit placeholder|Replaces the "#" symbol with the corresponding digit if one is present; otherwise, no digit appears in the result string.

No digit appears in the result string if the corresponding digit in the input string is a nonsignificant 0. For example, 0003 ("####") -> 3.

More information: [The "#" Custom Specifier](#SpecifierD).|1234.5678 ("#####") -> 1235

0.45678 ("#.##", en-US) -> .46

0.45678 ("#.##", fr-FR) -> ,46| |"."|Decimal point|Determines the location of the decimal separator in the result string.

More information: [The "." Custom Specifier](#SpecifierPt).|0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46| |","|Group separator and number scaling|Serves as both a group separator and a number scaling specifier. As a group separator, it inserts a localized group separator character between each group. As a number scaling specifier, it divides a number by 1000 for each comma specified.

More information: [The "," Custom Specifier](#SpecifierTh).|Group separator specifier:

2147483647 ("##,#", en-US) -> 2,147,483,647

2147483647 ("##,#", es-ES) -> 2.147.483.647

Scaling specifier:

2147483647 ("#,#,,", en-US) -> 2,147

2147483647 ("#,#,,", es-ES) -> 2.147| |"%"|Percentage placeholder|Multiplies a number by 100 and inserts a localized percentage symbol in the result string.

More information: [The "%" Custom Specifier](#SpecifierPct).|0.3697 ("%#0.00", en-US) -> %36.97

0.3697 ("%#0.00", el-GR) -> %36,97

0.3697 ("##.0 %", en-US) -> 37.0 %

0.3697 ("##.0 %", el-GR) -> 37,0 %| @@ -82,7 +82,7 @@ in The "#" custom format specifier serves as a digit-placeholder symbol. If the value that is being formatted has a digit in the position where the "#" symbol appears in the format string, that digit is copied to the result string. Otherwise, nothing is stored in that position in the result string. -Note that this specifier never displays a zero that is not a significant digit, even if zero is the only digit in the string. It will display zero only if it is a significant digit in the number that is being displayed. +Note that this specifier never displays a zero that isn't a significant digit, even if zero is the only digit in the string. It displays zero only if it's a significant digit in the number that is being displayed. The "##" format string causes the value to be rounded to the nearest digit preceding the decimal, where rounding away from zero is always used. For example, formatting 34.5 with "##" would result in the value 35. @@ -132,7 +132,7 @@ in The "." custom format specifier inserts a localized decimal separator into the result string. The first period in the format string determines the location of the decimal separator in the formatted value; any additional periods are ignored. If the format specifier ends with a "." only the significant digits are formatted into the result string. -The character that is used as the decimal separator in the result string is not always a period; it is determined by the culture that controls formatting. +The character that is used as the decimal separator in the result string isn't always a period; it's determined by the culture that controls formatting. The following example uses the "." format specifier to define the location of the decimal point in several result strings. @@ -216,7 +216,7 @@ in ## The "%" custom specifier -A percent sign (%) in a format string causes a number to be multiplied by 100 before it is formatted. The localized percent symbol is inserted in the number at the location where the % appears in the format string. The percent character used is defined by the culture. +A percent sign (%) in a format string causes a number to be multiplied by 100 before it's formatted. The localized percent symbol is inserted in the number at the location where the % appears in the format string. The percent character used is defined by the culture. The following example defines a custom format string that includes the "%" custom specifier. @@ -234,7 +234,7 @@ in ## The "‰" custom specifier -A per mille character (‰ or \u2030) in a format string causes a number to be multiplied by 1000 before it is formatted. The appropriate per mille symbol is inserted in the returned string at the location where the ‰ symbol appears in the format string. The per mille character used is defined by the culture, which provides culture-specific formatting information. +A per mille character (‰ or \u2030) in a format string causes a number to be multiplied by 1000 before it's formatted. The appropriate per mille symbol is inserted in the returned string at the location where the ‰ symbol appears in the format string. The per mille character used is defined by the culture, which provides culture-specific formatting information. The following example defines a custom format string that includes the "‰" custom specifier. @@ -279,7 +279,7 @@ in ## Escape characters -The "#", "0", ".", ",", "%", and "‰" symbols in a format string are interpreted as format specifiers rather than as literal characters. Depending on their position in a custom format string, the uppercase and lowercase "E" as well as the + and - symbols may also be interpreted as format specifiers. +The "#", "0", ".", ",", "%", and "‰" symbols in a format string are interpreted as format specifiers rather than as literal characters. Depending on their position in a custom format string, the uppercase and lowercase "E" as well as the + and - symbols can also be interpreted as format specifiers. To prevent a character from being interpreted as a format specifier, you can: @@ -287,11 +287,11 @@ To prevent a character from being interpreted as a format specifier, you can: - Surround it with a single quote. - Surround it with two double quotes. -Each of these act as escape characters. The escape character signifies that the following character is a character literal that should be included in the result string unchanged. +Each of these characters acts as escape characters. The escape character signifies that the following character is a character literal that should be included in the result string unchanged. To include a backslash in a result string, you must escape it with another backslash (`\\`). -To include a single quote in a result string, you must escape it with a backslash (`\'`). If the single quote was preceded by another single quote that wasn't escaped, the backslash is displayed (`'\'` displays `\`). +To include a single quote in a result string, you must escape it with a backslash (`\'`). If another single quote that isn't escaped precedes the escaped single quote, the backslash is displayed instead (`'\'` displays `\`). To include a double quote in a result string, you must escape two of them with a backslash (`\""`). @@ -375,7 +375,7 @@ Format specifiers that appear in a custom numeric format string are always inter - [,](#SpecifierTh) - [E or e](#SpecifierExponent), depending on its position in the format string. -All other characters are always interpreted as character literals and, in a formatting operation, are included in the result string unchanged. In a parsing operation, they must match the characters in the input string exactly; the comparison is case-sensitive. +All other characters are always interpreted as character literals and, in a formatting operation, are included in the result string unchanged. In a parsing operation, they must match the characters in the input string exactly; the comparison is case-sensitive. The following example illustrates one common use of literal character units (in this case, thousands): From 30dbd4f2ba82f521bb35cd91b675a9dc91b70e8c Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 1 Oct 2024 08:59:30 -0700 Subject: [PATCH 579/934] Fixed definition of invariant culture for numbers --- query-languages/m/standard-numeric-format-strings.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index a47267e64..398e48a76 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -364,13 +364,13 @@ The culture is set to the system locale (Windows, MacOS) when your queries are f However, you can change the default culture in the Power Query settings dialog where you create the query. For example, if you are running Power Query from Excel: 1. In Power Query, select **File** > **Options and settings** > **Query options**. -1. Under **Current Workbook, select **Regional Settings**. +1. Under **Current Workbook**, select **Regional Settings**. 1. Select the locale you want to use. Other versions of Power Query work similarly. In general, within Power Query you select **Options**, which opens the **Options** dialog. Then select **Regional Settings** and select the locale you want to use. > [!NOTE] -> The current default culture is different than the invariant culture. To use the current default culture, no culture setting is required in your Power Query M code. To use the invariant culture, you use `Culture = ""` in the functions that support culture. +> The current default culture is different than the invariant culture. To use the current default culture, no culture setting is required in your Power Query M code. To use the invariant culture, you use the blank text value ("") in the number functions that support culture. ### Integral and floating-point numeric types From 399b1438598a19c34c0b2bd25e6b53be18716e55 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 1 Oct 2024 13:47:07 -0700 Subject: [PATCH 580/934] Finished first draft of date and time articles --- .../m/custum-date-and-time-format-strings.md | 1286 ++++++++--------- .../standard-date-and-time-format-strings.md | 630 ++++---- 2 files changed, 932 insertions(+), 984 deletions(-) diff --git a/query-languages/m/custum-date-and-time-format-strings.md b/query-languages/m/custum-date-and-time-format-strings.md index 2786ae5f2..4c8b5cca6 100644 --- a/query-languages/m/custum-date-and-time-format-strings.md +++ b/query-languages/m/custum-date-and-time-format-strings.md @@ -3,98 +3,103 @@ title: "Custom date and time format strings" description: Learn to use custom date and time format strings to convert DateTime or DateTimeOffset values into text representations, or to parse strings for dates & times. author: DougKlopfenstein ms.author: dougklo -ms.date: 8/9/2024 +ms.date: 9/10/2024 ms.topic: reference --- # Custom date and time format strings -A date and time format string defines the text representation of a [Date](date-functions.md), [DateTime](datetime-functions.md), [DateTimeZone](datetimezone-functions.md), or [Time](time-functions.md) value that results from a formatting operation. It can also define the representation of a date and time value that is required in a parsing operation in order to successfully convert the string to a date and time. A custom format string consists of one or more custom date and time format specifiers. Any string that is not a [standard date and time format string](standard-date-and-time-format-strings.md) is interpreted as a custom date and time format string. - - +A date and time format string defines the text representation of a [Date](date-functions.md), [DateTime](datetime-functions.md), [DateTimeZone](datetimezone-functions.md), or [Time](time-functions.md) value that results from a formatting operation. It can also define the representation of a date and time value that is required in a parsing operation in order to successfully convert the string to a date and time. A custom format string consists of one or more custom date and time format specifiers. Any string that isn't a [standard date and time format string](standard-date-and-time-format-strings.md) is interpreted as a custom date and time format string. In formatting operations, custom date and time format strings can be used with the `ToText` method of a date and time and timezone instance. The following example illustrates its uses. ```powerquery-m let - dateValue1 = #date(2011, 6, 10), - thisDate = Text.From("Today is " & Date.ToText(dateValue1, [Format = "MMMM dd yyyy"]) & "."), - dateValue2 = #datetimezone(2011, 6, 10, 15, 24, 16, 0, 0), - currentDate = Text.Format("The current date and time: #{0}", {DateTimeZone.ToText(dateValue2, [Format = "MM/dd/yy H:mm:ss zzz"])}), - dates = thisDate & "#(cr,lf)" & currentDate + Source = + { + Text.From("Today is " & Date.ToText(#date(2011, 6, 10), [Format = "MMMM dd yyyy"]) & "."), + Text.Format("The current date and time: #{0}", {DateTimeZone.ToText( + #datetimezone(2011, 6, 10, 15, 24, 16, 0, 0), [Format = "MM/dd/yy H:mm:ss zzz"])} + ) + } in - dates + Source // The example displays the following output: // Today is June 10, 2011. // The current date and time: 06/10/11 15:24:16 +00:00 ``` - +// The example displays the following output: +// Unable to convert '30-12-2011' to a date and time. +// Unable to convert '12-30-2011' to a date and time. +// Unable to convert '30-12-11' to a date and time. +// Converted '12-30-11' to 12/30/2011. +``` The following table describes the custom date and time format specifiers and displays a result string produced by each format specifier. By default, result strings reflect the formatting conventions of the en-US culture. If a particular format specifier produces a localized result string, the example also notes the culture to which the result string applies. For more information about using custom date and time format strings, go to the [Notes](#notes) section. | Format specifier | Description | Examples | |--|--|--| -| "d" | The day of the month, from 1 to 31.

More information: [The "d" Custom Format Specifier](#dSpecifier). | 2009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 15 | -| "dd" | The day of the month, from 01 to 31.

More information: [The "dd" Custom Format Specifier](#ddSpecifier). | 2009-06-01T13:45:30 -> 01

2009-06-15T13:45:30 -> 15 | -| "ddd" | The abbreviated name of the day of the week.

More information: [The "ddd" Custom Format Specifier](#dddSpecifier). | 2009-06-15T13:45:30 -> Mon (en-US)

2009-06-15T13:45:30 -> Пн (ru-RU)

2009-06-15T13:45:30 -> lun. (fr-FR) | -| "dddd" | The full name of the day of the week.

More information: [The "dddd" Custom Format Specifier](#ddddSpecifier). | 2009-06-15T13:45:30 -> Monday (en-US)

2009-06-15T13:45:30 -> понедельник (ru-RU)

2009-06-15T13:45:30 -> lundi (fr-FR) | -| "f" | The tenths of a second in a date and time value.

More information: [The "f" Custom Format Specifier](#fSpecifier). | 2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.05 -> 0 | -| "ff" | The hundredths of a second in a date and time value.

More information: [The "ff" Custom Format Specifier](#ffSpecifier). | 2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> 00 | -| "fff" | The milliseconds in a date and time value.

More information: [The "fff" Custom Format Specifier](#fffSpecifier). | 6/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> 000 | -| "ffff" | The ten thousandths of a second in a date and time value.

More information: [The "ffff" Custom Format Specifier](#ffffSpecifier). | 2009-06-15T13:45:30.6175000 -> 6175

2009-06-15T13:45:30.0000500 -> 0000 | -| "fffff" | The hundred thousandths of a second in a date and time value.

More information: [The "fffff" Custom Format Specifier](#fffffSpecifier). | 2009-06-15T13:45:30.6175400 -> 61754

6/15/2009 13:45:30.000005 -> 00000 | -| "ffffff" | The millionths of a second in a date and time value.

More information: [The "ffffff" Custom Format Specifier](#ffffffSpecifier). | 2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> 000000 | -| "fffffff" | The ten millionths of a second in a date and time value.

More information: [The "fffffff" Custom Format Specifier](#fffffffSpecifier). | 2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 0001150 | -| "F" | If non-zero, the tenths of a second in a date and time value.

More information: [The "F" Custom Format Specifier](#F_Specifier). | 2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.0500000 -> (no output) | -| "FF" | If non-zero, the hundredths of a second in a date and time value.

More information: [The "FF" Custom Format Specifier](#FF_Specifier). | 2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> (no output) | -| "FFF" | If non-zero, the milliseconds in a date and time value.

More information: [The "FFF" Custom Format Specifier](#FFF_Specifier). | 2009-06-15T13:45:30.6170000 -> 617

2009-06-15T13:45:30.0005000 -> (no output) | -| "FFFF" | If non-zero, the ten thousandths of a second in a date and time value.

More information: [The "FFFF" Custom Format Specifier](#FFFF_Specifier). | 2009-06-15T13:45:30.5275000 -> 5275

2009-06-15T13:45:30.0000500 -> (no output) | -| "FFFFF" | If non-zero, the hundred thousandths of a second in a date and time value.

More information: [The "FFFFF" Custom Format Specifier](#FFFFF_Specifier). | 2009-06-15T13:45:30.6175400 -> 61754

2009-06-15T13:45:30.0000050 -> (no output) | -| "FFFFFF" | If non-zero, the millionths of a second in a date and time value.

More information: [The "FFFFFF" Custom Format Specifier](#FFFFFF_Specifier). | 2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> (no output) | -| "FFFFFFF" | If non-zero, the ten millionths of a second in a date and time value.

More information: [The "FFFFFFF" Custom Format Specifier](#FFFFFFF_Specifier). | 2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 000115 | -| "g", "gg" | The period or era.

More information: [The "g" or "gg" Custom Format Specifier](#gSpecifier). | 2009-06-15T13:45:30.6170000 -> A.D. | -| "h" | The hour, using a 12-hour clock from 1 to 12.

More information: [The "h" Custom Format Specifier](#hSpecifier). | 2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 1 | -| "hh" | The hour, using a 12-hour clock from 01 to 12.

More information: [The "hh" Custom Format Specifier](#hhSpecifier). | 2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 01 | -| "H" | The hour, using a 24-hour clock from 0 to 23.

More information: [The "H" Custom Format Specifier](#H_Specifier). | 2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 13 | -| "HH" | The hour, using a 24-hour clock from 00 to 23.

More information: [The "HH" Custom Format Specifier](#HH_Specifier). | 2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 13 | -| "K" | Time zone information.

More information: [The "K" Custom Format Specifier](#KSpecifier). | With values:

2009-06-15T13:45:30, Kind Unspecified ->

2009-06-15T13:45:30, Kind Utc -> Z

2009-06-15T13:45:30, Kind Local -> -07:00 (depends on local computer settings)

With values:

2009-06-15T01:45:30-07:00 --> -07:00

2009-06-15T08:45:30+00:00 --> +00:00 | -| "m" | The minute, from 0 to 59.

More information: [The "m" Custom Format Specifier](#mSpecifier). | 2009-06-15T01:09:30 -> 9

2009-06-15T13:29:30 -> 29 | -| "mm" | The minute, from 00 to 59.

More information: [The "mm" Custom Format Specifier](#mmSpecifier). | 2009-06-15T01:09:30 -> 09

2009-06-15T01:45:30 -> 45 | -| "M" | The month, from 1 to 12.

More information: [The "M" Custom Format Specifier](#M_Specifier). | 2009-06-15T13:45:30 -> 6 | -| "MM" | The month, from 01 to 12.

More information: [The "MM" Custom Format Specifier](#MM_Specifier). | 2009-06-15T13:45:30 -> 06 | -| "MMM" | The abbreviated name of the month.

More information: [The "MMM" Custom Format Specifier](#MMM_Specifier). | 2009-06-15T13:45:30 -> Jun (en-US)

2009-06-15T13:45:30 -> juin (fr-FR)

2009-06-15T13:45:30 -> Jun (zu-ZA) | -| "MMMM" | The full name of the month.

More information: [The "MMMM" Custom Format Specifier](#MMMM_Specifier). | 2009-06-15T13:45:30 -> June (en-US)

2009-06-15T13:45:30 -> juni (da-DK)

2009-06-15T13:45:30 -> uJuni (zu-ZA) | -| "s" | The second, from 0 to 59.

More information: [The "s" Custom Format Specifier](#sSpecifier). | 2009-06-15T13:45:09 -> 9 | -| "ss" | The second, from 00 to 59.

More information: [The "ss" Custom Format Specifier](#ssSpecifier). | 2009-06-15T13:45:09 -> 09 | -| "t" | The first character of the AM/PM designator.

More information: [The "t" Custom Format Specifier](#tSpecifier). | 2009-06-15T13:45:30 -> P (en-US)

2009-06-15T13:45:30 -> 午 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR) | -| "tt" | The AM/PM designator.

More information: [The "tt" Custom Format Specifier](#ttSpecifier). | 2009-06-15T13:45:30 -> PM (en-US)

2009-06-15T13:45:30 -> 午後 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR) | -| "y" | The year, from 0 to 99.

More information: [The "y" Custom Format Specifier](#ySpecifier). | 0001-01-01T00:00:00 -> 1

0900-01-01T00:00:00 -> 0

1900-01-01T00:00:00 -> 0

2009-06-15T13:45:30 -> 9

2019-06-15T13:45:30 -> 19 | -| "yy" | The year, from 00 to 99.

More information: [The "yy" Custom Format Specifier](#yySpecifier). | 0001-01-01T00:00:00 -> 01

0900-01-01T00:00:00 -> 00

1900-01-01T00:00:00 -> 00

2019-06-15T13:45:30 -> 19 | -| "yyy" | The year, with a minimum of three digits.

More information: [The "yyy" Custom Format Specifier](#yyySpecifier). | 0001-01-01T00:00:00 -> 001

0900-01-01T00:00:00 -> 900

1900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 2009 | -| "yyyy" | The year as a four-digit number.

More information: [The "yyyy" Custom Format Specifier](#yyyySpecifier). | 0001-01-01T00:00:00 -> 0001

0900-01-01T00:00:00 -> 0900

1900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 2009 | -| "yyyyy" | The year as a five-digit number.

More information: [The "yyyyy" Custom Format Specifier](#yyyyySpecifier). | 0001-01-01T00:00:00 -> 00001

2009-06-15T13:45:30 -> 02009 | -| "z" | Hours offset from UTC, with no leading zeros.

More information: [The "z" Custom Format Specifier](#zSpecifier). | 2009-06-15T13:45:30-07:00 -> -7 | -| "zz" | Hours offset from UTC, with a leading zero for a single-digit value.

More information: [The "zz" Custom Format Specifier](#zzSpecifier). | 2009-06-15T13:45:30-07:00 -> -07 | -| "zzz" | Hours and minutes offset from UTC.

More information: [The "zzz" Custom Format Specifier](#zzzSpecifier). | 2009-06-15T13:45:30-07:00 -> -07:00 | -| ":" | The time separator.

More information: [The ":" Custom Format Specifier](#timeSeparator). | 2009-06-15T13:45:30 -> : (en-US)

2009-06-15T13:45:30 -> . (it-IT)

2009-06-15T13:45:30 -> : (ja-JP) | -| "/" | The date separator.

More Information: [The "/" Custom Format Specifier](#dateSeparator). | 2009-06-15T13:45:30 -> / (en-US)

2009-06-15T13:45:30 -> - (ar-DZ)

2009-06-15T13:45:30 -> . (tr-TR) | -| "*string*"

'*string*' | Literal string delimiter.

More information: [Character literals](#Literals). | 2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P | -| % | Defines the following character as a custom format specifier.

More information: [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers). | 2009-06-15T13:45:30 (%h) -> 1 | -| \ | The escape character.

More information: [Character literals](#Literals) and [Using the Escape Character](#escape). | 2009-06-15T13:45:30 (h \h) -> 1 h | +| "d" | The day of the month, from 1 to 31.

More information: [The "d" custom format specifier](#dSpecifier). | 2009-06-01T13:45:30 -> 1

2009-06-15T13:45:30 -> 15 | +| "dd" | The day of the month, from 01 to 31.

More information: [The "dd" custom format specifier](#ddSpecifier). | 2009-06-01T13:45:30 -> 01

2009-06-15T13:45:30 -> 15 | +| "ddd" | The abbreviated name of the day of the week.

More information: [The "ddd" custom format specifier](#dddSpecifier). | 2009-06-15T13:45:30 -> Mon (en-US)

2009-06-15T13:45:30 -> Пн (ru-RU)

2009-06-15T13:45:30 -> lun. (fr-FR) | +| "dddd" | The full name of the day of the week.

More information: [The "dddd" custom format specifier](#ddddSpecifier). | 2009-06-15T13:45:30 -> Monday (en-US)

2009-06-15T13:45:30 -> понедельник (ru-RU)

2009-06-15T13:45:30 -> lundi (fr-FR) | +| "f" | The tenths of a second in a date and time value.

More information: [The "f" custom format specifier](#fSpecifier). | 2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.05 -> 0 | +| "ff" | The hundredths of a second in a date and time value.

More information: [The "ff" custom format specifier](#ffSpecifier). | 2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> 00 | +| "fff" | The milliseconds in a date and time value.

More information: [The "fff" custom format specifier](#fffSpecifier). | 6/15/2009 13:45:30.617 -> 617

6/15/2009 13:45:30.0005 -> 000 | +| "ffff" | The ten thousandths of a second in a date and time value.

More information: [The "ffff" custom format specifier](#ffffSpecifier). | 2009-06-15T13:45:30.6175000 -> 6175

2009-06-15T13:45:30.0000500 -> 0000 | +| "fffff" | The hundred thousandths of a second in a date and time value.

More information: [The "fffff" custom format specifier](#fffffSpecifier). | 2009-06-15T13:45:30.6175400 -> 61754

6/15/2009 13:45:30.000005 -> 00000 | +| "ffffff" | The millionths of a second in a date and time value.

More information: [The "ffffff" custom format specifier](#ffffffSpecifier). | 2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> 000000 | +| "fffffff" | The ten millionths of a second in a date and time value.

More information: [The "fffffff" custom format specifier](#fffffffSpecifier). | 2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 0001150 | +| "F" | If non-zero, the tenths of a second in a date and time value.

More information: [The "F" custom format specifier](#F_Specifier). | 2009-06-15T13:45:30.6170000 -> 6

2009-06-15T13:45:30.0500000 -> (no output) | +| "FF" | If non-zero, the hundredths of a second in a date and time value.

More information: [The "FF" custom format specifier](#FF_Specifier). | 2009-06-15T13:45:30.6170000 -> 61

2009-06-15T13:45:30.0050000 -> (no output) | +| "FFF" | If non-zero, the milliseconds in a date and time value.

More information: [The "FFF" custom format specifier](#FFF_Specifier). | 2009-06-15T13:45:30.6170000 -> 617

2009-06-15T13:45:30.0005000 -> (no output) | +| "FFFF" | If non-zero, the ten thousandths of a second in a date and time value.

More information: [The "FFFF" custom format specifier](#FFFF_Specifier). | 2009-06-15T13:45:30.5275000 -> 5275

2009-06-15T13:45:30.0000500 -> (no output) | +| "FFFFF" | If non-zero, the hundred thousandths of a second in a date and time value.

More information: [The "FFFFF" custom format specifier](#FFFFF_Specifier). | 2009-06-15T13:45:30.6175400 -> 61754

2009-06-15T13:45:30.0000050 -> (no output) | +| "FFFFFF" | If non-zero, the millionths of a second in a date and time value.

More information: [The "FFFFFF" custom format specifier](#FFFFFF_Specifier). | 2009-06-15T13:45:30.6175420 -> 617542

2009-06-15T13:45:30.0000005 -> (no output) | +| "FFFFFFF" | If non-zero, the ten millionths of a second in a date and time value.

More information: [The "FFFFFFF" custom format specifier](#FFFFFFF_Specifier). | 2009-06-15T13:45:30.6175425 -> 6175425

2009-06-15T13:45:30.0001150 -> 000115 | +| "g", "gg" | The period or era.

More information: [The "g" or "gg" custom format specifier](#gSpecifier). | 2009-06-15T13:45:30.6170000 -> A.D. | +| "h" | The hour, using a 12-hour clock from 1 to 12.

More information: [The "h" custom format specifier](#hSpecifier). | 2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 1 | +| "hh" | The hour, using a 12-hour clock from 01 to 12.

More information: [The "hh" custom format specifier](#hhSpecifier). | 2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 01 | +| "H" | The hour, using a 24-hour clock from 0 to 23.

More information: [The "H" custom format specifier](#H_Specifier). | 2009-06-15T01:45:30 -> 1

2009-06-15T13:45:30 -> 13 | +| "HH" | The hour, using a 24-hour clock from 00 to 23.

More information: [The "HH" custom format specifier](#HH_Specifier). | 2009-06-15T01:45:30 -> 01

2009-06-15T13:45:30 -> 13 | +| "K" | Time zone information.

More information: [The "K" custom format specifier](#KSpecifier). | 2009-06-15T13:45:30, Unspecified ->

2009-06-15T13:45:30, Utc -> +00:00

2009-06-15T13:45:30, Local -> -07:00 (depends on local or cloud computer settings) | +| "m" | The minute, from 0 to 59.

More information: [The "m" custom format specifier](#mSpecifier). | 2009-06-15T01:09:30 -> 9

2009-06-15T13:29:30 -> 29 | +| "mm" | The minute, from 00 to 59.

More information: [The "mm" custom format specifier](#mmSpecifier). | 2009-06-15T01:09:30 -> 09

2009-06-15T01:45:30 -> 45 | +| "M" | The month, from 1 to 12.

More information: [The "M" custom format specifier](#M_Specifier). | 2009-06-15T13:45:30 -> 6 | +| "MM" | The month, from 01 to 12.

More information: [The "MM" custom format specifier](#MM_Specifier). | 2009-06-15T13:45:30 -> 06 | +| "MMM" | The abbreviated name of the month.

More information: [The "MMM" custom format specifier](#MMM_Specifier). | 2009-06-15T13:45:30 -> Jun (en-US)

2009-06-15T13:45:30 -> juin (fr-FR)

2009-06-15T13:45:30 -> Jun (zu-ZA) | +| "MMMM" | The full name of the month.

More information: [The "MMMM" custom format specifier](#MMMM_Specifier). | 2009-06-15T13:45:30 -> June (en-US)

2009-06-15T13:45:30 -> juni (da-DK)

2009-06-15T13:45:30 -> Juni (zu-ZA) | +| "s" | The second, from 0 to 59.

More information: [The "s" custom format specifier](#sSpecifier). | 2009-06-15T13:45:09 -> 9 | +| "ss" | The second, from 00 to 59.

More information: [The "ss" custom format specifier](#ssSpecifier). | 2009-06-15T13:45:09 -> 09 | +| "t" | The first character of the AM/PM designator.

More information: [The "t" custom format specifier](#tSpecifier). | 2009-06-15T13:45:30 -> P (en-US)

2009-06-15T13:45:30 -> 午 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR) | +| "tt" | The AM/PM designator.

More information: [The "tt" custom format specifier](#ttSpecifier). | 2009-06-15T13:45:30 -> PM (en-US)

2009-06-15T13:45:30 -> 午後 (ja-JP)

2009-06-15T13:45:30 -> (fr-FR) | +| "y" | The year, from 0 to 99.

More information: [The "y" custom format specifier](#ySpecifier). | 0001-01-01T00:00:00 -> 1

0900-01-01T00:00:00 -> 0

1900-01-01T00:00:00 -> 0

2009-06-15T13:45:30 -> 9

2019-06-15T13:45:30 -> 19 | +| "yy" | The year, from 00 to 99.

More information: [The "yy" custom format specifier](#yySpecifier). | 0001-01-01T00:00:00 -> 01

0900-01-01T00:00:00 -> 00

1900-01-01T00:00:00 -> 00

2019-06-15T13:45:30 -> 19 | +| "yyy" | The year, with a minimum of three digits.

More information: [The "yyy" custom format specifier](#yyySpecifier). | 0001-01-01T00:00:00 -> 001

0900-01-01T00:00:00 -> 900

1900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 2009 | +| "yyyy" | The year as a four-digit number.

More information: [The "yyyy" custom format specifier](#yyyySpecifier). | 0001-01-01T00:00:00 -> 0001

0900-01-01T00:00:00 -> 0900

1900-01-01T00:00:00 -> 1900

2009-06-15T13:45:30 -> 2009 | +| "yyyyy" | The year as a five-digit number.

More information: [The "yyyyy" custom format specifier](#yyyyySpecifier). | 0001-01-01T00:00:00 -> 00001

2009-06-15T13:45:30 -> 02009 | +| "z" | Hours offset from UTC, with no leading zeros.

More information: [The "z" custom format specifier](#zSpecifier). | 2009-06-15T13:45:30-07:00 -> -7 | +| "zz" | Hours offset from UTC, with a leading zero for a single-digit value.

More information: [The "zz" custom format specifier](#zzSpecifier). | 2009-06-15T13:45:30-07:00 -> -07 | +| "zzz" | Hours and minutes offset from UTC.

More information: [The "zzz" custom format specifier](#zzzSpecifier). | 2009-06-15T13:45:30-07:00 -> -07:00 | +| ":" | The time separator.

More information: [The ":" custom format specifier](#timeSeparator). | 2009-06-15T13:45:30 -> : (en-US)

2009-06-15T13:45:30 -> . (it-IT)

2009-06-15T13:45:30 -> : (ja-JP) | +| "/" | The date separator.

More Information: [The "/" custom format specifier](#dateSeparator). | 2009-06-15T13:45:30 -> / (en-US)

2009-06-15T13:45:30 -> - (ar-DZ)

2009-06-15T13:45:30 -> . (tr-TR) | +| "*string*"

'*string*' | Literal string delimiter.

More information: [Character literals](#Literals). | 2009-06-15T13:45:30 (""arr:"" h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P | +| % | Defines the following character as a custom format specifier.

More information: [Using single custom format specifiers](#using-single-custom-format-specifiers). | 2009-06-15T13:45:30 (%h) -> 1 | +| \, "", ' | The escape sequencess.

More information: [Character literals](#Literals) and [Using the escape sequences](#escape). | 2009-06-15T13:45:30 (h \h) -> 1 h

2009-06-15T13:45:30 (h ""h"") -> 1 h

2009-06-15T13:45:30 (h 'h') -> 1 h | | Any other character | The character is copied to the result string unchanged.

More information: [Character literals](#Literals). | 2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A | The following sections provide additional information about each custom date and time format specifier. Unless otherwise noted, each specifier produces an identical string representation regardless of whether it's used with a **Date**, **DateTime**, **DateTimeZone**, or **Time** value. @@ -110,16 +115,20 @@ If the "d" format specifier is used without other custom format specifiers, it's The following example includes the "d" custom format specifier in several format strings. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15), - -DateTimeExample1 = DateTime.ToText(Source, "d, M"), -// displays 29, 8 +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "d, M", Culture = ""]), + // Displays 29, 8 -DateTimeExample2 = DateTime.ToText(Source, "d, MMMM", "en-US"), -// displays 29, August + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "d, MMMM", Culture = "en-US"]), + // Displays 29, August -DateTimeExample3 = DateTime.ToText(Source, "d, MMMM", "es-MX") -// displays 29, agosto + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "d, MMMM", Culture = "es-MX"]) + // Displays 29, agosto + } +in + Source ``` [Back to table](#table) @@ -131,10 +140,14 @@ The "dd" custom format string represents the day of the month as a number from 0 The following example includes the "dd" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 1, 2, 6, 30, 15), - -DateTimeExample1 = DateTime.ToText(Source, "dd, MM") -// displays 02, 01 +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 2, 6, 30, 15), [Format = "dd, MM", Culture = ""]) + // Displays 02, 01 + } +in + Source ``` [Back to table](#table) @@ -146,13 +159,17 @@ The "ddd" custom format specifier represents the abbreviated name of the day of The following example includes the "ddd" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15), - -DateTimeExample1 = DateTime.ToText(Source, "ddd d MMM", "en-US"), -// displays Thu 29 Aug - -DateTimeExample2 = DateTime.ToText(Source, "ddd d MMM", "fr-FR") -// displays jeu. 29 août +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "ddd d MMM", Culture = "en-US"]), + // Displays Thu 29 Aug + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "ddd d MMM", Culture = "fr-FR"]) + // Displays jeu. 29 août + } +in + Source ``` [Back to table](#table) @@ -164,13 +181,17 @@ The "dddd" custom format specifier (plus any number of additional "d" specifiers The following example includes the "dddd" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15), - -DateTimeExample1 = DateTime.ToText(Source, "dddd dd MMMM", "en-US"), -// displays Thursday 29 August - -DateTimeExample2 = DateTime.ToText(Source, "dddd dd MMMM", "it-IT") -// displays giovedì 29 agosto +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "dddd dd MMMM", Culture = "en-US"]), + // Displays Thursday 29 August + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "dddd dd MMMM", Culture = "it-IT"]) + // Displays giovedì 29 agosto + } +in + Source ``` [Back to table](#table) @@ -183,30 +204,22 @@ The "f" custom format specifier represents the most significant digit of the sec If the "f" format specifier is used without other format specifiers, it's interpreted as the "f" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. - +When you use "f" format specifiers as part of a format string supplied to parse the number of fractional seconds, the number of "f" format specifiers indicates the number of most significant digits of the seconds fraction that must be present to successfully parse the string. The following example includes the "f" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15.018), - -DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), -// Displays 07:27:15:0 - -DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), -// Displays 07:27:15: - -DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), -// Displays 07:27:15:01 - -DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), -// Displays 07:27:15:01 - -DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), -// Displays 07:27:15:018 - -DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") -// Displays 07:27:15:018 +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:f", Culture = ""]), + // Displays 07:27:15:0 + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:F", Culture = ""]) + // Displays 07:27:15: + } +in + Source ``` [Back to table](#table) @@ -218,25 +231,17 @@ The "ff" custom format specifier represents the two most significant digits of t following example includes the "ff" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15.018), - -DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), -// Displays 07:27:15:0 - -DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), -// Displays 07:27:15: - -DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), -// Displays 07:27:15:01 - -DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), -// Displays 07:27:15:01 - -DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), -// Displays 07:27:15:018 - -DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") -// Displays 07:27:15:018 +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:ff", Culture = ""]), + // Displays 07:27:15:01 + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:FF", Culture = ""]) + // Displays 07:27:15:01 + } +in + Source ``` [Back to table](#table) @@ -248,25 +253,17 @@ The "fff" custom format specifier represents the three most significant digits o The following example includes the "fff" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15.018), - -DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), -// Displays 07:27:15:0 - -DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), -// Displays 07:27:15: - -DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), -// Displays 07:27:15:01 - -DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), -// Displays 07:27:15:01 - -DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), -// Displays 07:27:15:018 - -DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") -// Displays 07:27:15:018 +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:fff", Culture = ""]), + // Displays 07:27:15:018 + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:FFF", Culture = ""]) + // Displays 07:27:15:018 + } +in + Source ``` [Back to table](#table) @@ -311,30 +308,22 @@ The "F" custom format specifier represents the most significant digit of the sec If the "F" format specifier is used without other format specifiers, it's interpreted as the "F" standard date and time format specifier. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. - +The number of "F" format specifiers used when parsing indicates the maximum number of most significant digits of the seconds fraction that can be present to successfully parse the string. The following example includes the "F" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15.018), - -DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), -// Displays 07:27:15:0 - -DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), -// Displays 07:27:15: - -DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), -// Displays 07:27:15:01 - -DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), -// Displays 07:27:15:01 - -DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), -// Displays 07:27:15:018 - -DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") -// Displays 07:27:15:018 +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:f", Culture = ""]), + // Displays 07:27:15:0 + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:F", Culture = ""]) + // Displays 07:27:15: + } +in + Source ``` [Back to table](#table) @@ -346,25 +335,17 @@ The "FF" custom format specifier represents the two most significant digits of t The following example includes the "FF" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15.018), - -DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), -// Displays 07:27:15:0 - -DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), -// Displays 07:27:15: - -DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), -// Displays 07:27:15:01 - -DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), -// Displays 07:27:15:01 - -DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), -// Displays 07:27:15:018 - -DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") -// Displays 07:27:15:018 +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:ff", Culture = ""]), + // Displays 07:27:15:01 + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:FF", Culture = ""]) + // Displays 07:27:15:01 + } +in + Source ``` [Back to table](#table) @@ -376,25 +357,17 @@ The "FFF" custom format specifier represents the three most significant digits o The following example includes the "FFF" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15.018), - -DateTimeExample1 = DateTime.ToText(Source, "hh:mm:ss:f"), -// Displays 07:27:15:0 - -DateTimeExample2 = DateTime.ToText(Source, "hh:mm:ss:F"), -// Displays 07:27:15: - -DateTimeExample3 = DateTime.ToText(Source, "hh:mm:ss:ff"), -// Displays 07:27:15:01 - -DateTimeExample4 = DateTime.ToText(Source, "hh:mm:ss:FF"), -// Displays 07:27:15:01 - -DateTimeExample5 = DateTime.ToText(Source, "hh:mm:ss:fff"), -// Displays 07:27:15:018 - -DateTimeExample6 = DateTime.ToText(Source, "hh:mm:ss:FFF") -// Displays 07:27:15:018 +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:fff", Culture = ""]), + // Displays 07:27:15:018 + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15.018), [Format = "hh:mm:ss:FFF", Culture = ""]) + // Displays 07:27:15:018 + } +in + Source ``` [Back to table](#table) @@ -442,13 +415,17 @@ If the "g" format specifier is used without other custom format specifiers, it's The following example includes the "g" custom format specifier in a custom format string. ```powerquery-m -Source = #date(70, 08, 04), - -DateExample1 = Date.ToText(Source, [Format = "MM/dd/yyyy g"]), -// Displays 08/04/0070 A.D. - -DateExample2 = Date.ToText(Source, [Format = "MM/dd/yyyy g", Culture = "fr-FR"]) -// Displays 08/04/0070 ap. J.-C. +let + Source = + { + Date.ToText(#date(70, 08, 04), [Format = "MM/dd/yyyy g", Culture = ""]), + // Displays 08/04/0070 A.D. + + Date.ToText(#date(70, 08, 04), [Format = "MM/dd/yyyy g", Culture = "fr-FR"]) + // Displays 08/04/0070 ap. J.-C. + } +in + Source ``` [Back to table](#table) @@ -464,21 +441,23 @@ If the "h" format specifier is used without other custom format specifiers, it's The following example includes the "h" custom format specifier in a custom format string. ```powerquery-m -Source1 = #datetime(2024, 1, 1, 18, 9, 1), - -DateTimeExample1 = DateTime.ToText(Source1, "h:m:s.F t"), -// Displays 6:9:1 P - -DateTimeExample2 = DateTime.ToText(Source1, "h:m:s.F t", "el-GR"), -// Displays 6:9:1 μ +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = ""]), + // Displays 6:9:1 P -Source2 = #datetime(2024, 1, 1, 8, 18, 1.500), + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = "el-GR"]), + // Displays 6:9:1 μ -DateTimeExample3 = DateTime.ToText(Source2, "h:m:s.F t"), -// Displays 9:18:1.5 A + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = ""]), + // Displays 9:18:1.5 A -DateTimeExample4 = DateTime.ToText(Source2, "h:m:s.F t", "el-GR") -// Displays 9:18:1.5 π + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = "el-GR"]) + // Displays 9:18:1.5 π + } +in + Source ``` [Back to table](#table) @@ -490,21 +469,23 @@ The "hh" custom format specifier (plus any number of additional "h" specifiers) The following example includes the "hh" custom format specifier in a custom format string. ```powerquery-m -Source1 = #datetime(2024, 1, 1, 18, 9, 1), - -DateTimeExample1 = DateTime.ToText(Source1, "hh:mm:ss tt"), -// Displays 06:09:01 PM - -DateTimeExample2 = DateTime.ToText(Source1, "hh:mm:ss tt", "hu-HU"), -// Displays 06:09:01 du. +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = ""]), + // Displays 06:09:01 PM -Source2 = #datetime(2024, 1, 1, 9, 18, 1.500), + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = "hu-HU"]), + // Displays 06:09:01 du. -DateTimeExample3 = DateTime.ToText(Source2, "hh:mm:ss.ff tt"), -// Displays 09:18:01.50 AM + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = ""]), + // Displays 09:18:01.50 AM -DateTimeExample4 = DateTime.ToText(Source2, "hh:mm:ss.ff tt", "hu-HU") -// Displays 09:18:01.50 de. + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = "hu-HU"]) + // Displays 09:18:01.50 de. + } +in + Source ``` [Back to table](#table) @@ -520,10 +501,14 @@ If the "H" format specifier is used without other custom format specifiers, it's The following example includes the "H" custom format specifier in a custom format string. ```powerquery-m - Source = #datetime(2024, 1, 1, 6, 9, 1), - - DateTimeExample1 = DateTime.ToText(Source, "H:mm:ss") -// Displays 6:09:01 +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 6, 9, 1), [Format = "H:mm:ss", Culture = ""]) + // Displays 6:09:01 + } +in + Source ``` [Back to table](#table) @@ -535,10 +520,14 @@ The "HH" custom format specifier (plus any number of additional "H" specifiers) The following example includes the "HH" custom format specifier in a custom format string. ```powerquery-m - Source = #datetime(2024, 1, 1, 6, 9, 1), - - DateTimeExample1 = DateTime.ToText(Source, "HH:mm:ss") -// Displays 06:09:01 +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 6, 9, 1), [Format = "HH:mm:ss", Culture = ""]) + // Displays 06:09:01 + } +in + Source ``` [Back to table](#table) @@ -549,29 +538,31 @@ The following example includes the "HH" custom format specifier in a custom form The "K" custom format specifier represents the time zone information of a date and time value. When this format specifier is used with **DateTimeZone** values, the result string is defined as: -- For the local time zone, this specifier produces a result string containing the local offset from Coordinated Universal Time (UTC); for example, "-07:00". +- For the local time zone, this specifier produces a result string containing the local offset from Coordinated Universal Time (UTC), for example, "-07:00", if your query runs in Power Query Desktop. If your query runs in Power Query Online, the result string produces no offset from UTC time, that is, "+00:00". + +- For a UTC time, the result string produces no offset from UTC time; that is, "+00:00 to represent a UTC date. - - For a time from an unspecified time zone, the result is empty. - If the "K" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws an expression error. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. The following example displays the string that results from using the "K" custom format specifier with various values on a system in the U.S. Pacific Time zone. ```powerquery-m -zoneOutput1 = DateTimeZone.ToText(DateTimeZone.LocalNow(),[Format="%K"]), -// Displays -07:00 +let + Source = + { + DateTimeZone.ToText(DateTimeZone.LocalNow(),[Format="%K"]), + // Displays -07:00 (Desktop) or +00:00 (Online) -zoneOutput2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="%K"]) -// Displays +00:00 + DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="%K"]), + // Displays +00:00 -zoneOutput3 = Text.Format("'#{0}'", {DateTime.ToText(DateTime.LocalNow(),[Format="%K"])}) -// Displays '' + Text.Format("'#{0}'", {DateTime.ToText(DateTime.LocalNow(),[Format="%K"])}) + // Displays '' + } +in + Source ``` > [!NOTE] @@ -590,21 +581,23 @@ If the "m" format specifier is used without other custom format specifiers, it's The following example includes the "m" custom format specifier in a custom format string. ```powerquery-m -Source1 = #datetime(2024, 1, 1, 18, 9, 1), - -DateTimeExample1 = DateTime.ToText(Source1, "h:m:s.F t"), -// Displays 6:9:1 P - -DateTimeExample2 = DateTime.ToText(Source1, "h:m:s.F t", "el-GR"), -// Displays 6:9:1 μ +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = ""]), + // Displays 6:9:1 P -Source2 = #datetime(2024, 1, 1, 8, 18, 1.500), + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = "el-GR"]), + // Displays 6:9:1 μ -DateTimeExample3 = DateTime.ToText(Source2, "h:m:s.F t"), -// Displays 9:18:1.5 A + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = ""]), + // Displays 9:18:1.5 A -DateTimeExample4 = DateTime.ToText(Source2, "h:m:s.F t", "el-GR") -// Displays 9:18:1.5 π + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = "el-GR"]) + // Displays 9:18:1.5 π + } +in + Source ``` [Back to table](#table) @@ -616,21 +609,23 @@ The "mm" custom format specifier (plus any number of additional "m" specifiers) The following example includes the "mm" custom format specifier in a custom format string. ```powerquery-m -Source1 = #datetime(2024, 1, 1, 18, 9, 1), - -DateTimeExample1 = DateTime.ToText(Source1, "hh:mm:ss tt"), -// Displays 06:09:01 PM - -DateTimeExample2 = DateTime.ToText(Source1, "hh:mm:ss tt", "hu-HU"), -// Displays 06:09:01 du. +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = ""]), + // Displays 06:09:01 PM -Source2 = #datetime(2024, 1, 1, 9, 18, 1.500), + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = "hu-HU"]), + // Displays 06:09:01 du. -DateTimeExample3 = DateTime.ToText(Source2, "hh:mm:ss.ff tt"), -// Displays 09:18:01.50 AM + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = ""]), + // Displays 09:18:01.50 AM -DateTimeExample4 = DateTime.ToText(Source2, "hh:mm:ss.ff tt", "hu-HU") -// Displays 09:18:01.50 de. + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = "hu-HU"]) + // Displays 09:18:01.50 de. + } +in + Source ``` [Back to table](#table) @@ -646,16 +641,20 @@ If the "M" format specifier is used without other custom format specifiers, it's The following example includes the "M" custom format specifier in a custom format string. ```powerquery-m -Source = #date(2024, 8, 18), - -DateExample1 = Date.ToText(Source, "(M) MMM, MMMM", "en-US"), -// Displays (8) Aug, August +let + Source = + { + Date.ToText(#date(2024, 8, 18), [Format = "(M) MMM, MMMM", Culture = "en-US"]), + // Displays (8) Aug, August -DateExample2 = Date.ToText(Source, "(M) MMM, MMMM", "nl-NL"), -// Displays (8) aug, augustus + Date.ToText(#date(2024, 8, 18), [Format = "(M) MMM, MMMM", Culture = "nl-NL"]), + // Displays (8) aug, augustus -DateExample3 = Date.ToText(Source, "(M) MMM, MMMM", "lv-LV"), -// Displays (8) aug., augusts + Date.ToText(#date(2024, 8, 18), [Format = "(M) MMM, MMMM", Culture = "lv-LV"]) + // Displays (8) aug., augusts + } +in + Source ``` [Back to table](#table) @@ -667,46 +666,58 @@ The "MM" custom format specifier represents the month as a number from 01 to 12 The following example includes the "MM" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 1, 2, 6, 30, 15), - -DateTimeExample1 = DateTime.ToText(Source, "dd, MM") -// Displays 02, 01 +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 2, 6, 30, 15), [Format = "dd, MM", Culture = ""]) + // Displays 02, 01 + } +in + Source ``` [Back to table](#table) ### The "MMM" custom format specifier -The "MMM" custom format specifier represents the abbreviated name of the month. The localized abbreviated name of the month is retrieved from the current or specified culture. +The "MMM" custom format specifier represents the abbreviated name of the month. The localized abbreviated name of the month is retrieved from the abbreviated month names of the current or specified culture. If there is a "d" or "dd" custom format specifier in the custom format string, the month name is retrieved from the abbreviated genitive names instead. The following example includes the "MMM" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15), - -DateTimeExample1 = DateTime.ToText(Source, "ddd d MMM", "en-US"), -// Displays Thu 29 Aug - -DateTimeExample2 = DateTime.ToText(Source, "ddd d MMM", "fr-FR") -// Displays jeu. 29 août +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "ddd d MMM", Culture = "en-US"]), + // Displays Thu 29 Aug + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "ddd d MMM", Culture = "fr-FR"]) + // Displays jeu. 29 août + } +in + Source ``` [Back to table](#table) ### The "MMMM" custom format specifier -The "MMMM" custom format specifier represents the full name of the month. The localized name of the month is retrieved from the current or specified culture. +The "MMMM" custom format specifier represents the full name of the month. The localized name of the month is retrieved from the current or specified culture. If there is a "d" or "dd" custom format specifier in the custom format string, the month name is retrieved from the abbreviated genitive names instead. The following example includes the "MMMM" custom format specifier in a custom format string. ```powerquery-m -Source = #datetime(2024, 8, 29, 19, 27, 15), - -DateTimeExample1 = DateTime.ToText(Source, "dddd dd MMMM", "en-US"), -// Displays Thursday 29 August - -DateTimeExample2 = DateTime.ToText(Source, "dddd dd MMMM", "it-IT") -// Displays giovedì 29 agosto +let + Source = + { + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "dddd dd MMMM", Culture = "en-US"]), + // Displays Thursday 29 August + + DateTime.ToText(#datetime(2024, 8, 29, 19, 27, 15), [Format = "dddd dd MMMM", Culture = "it-IT"]) + // Displays giovedì 29 agosto + } +in + Source ``` [Back to table](#table) @@ -722,21 +733,23 @@ If the "s" format specifier is used without other custom format specifiers, it's The following example includes the "s" custom format specifier in a custom format string. ```powerquery-m -Source1 = #datetime(2024, 1, 1, 18, 9, 1), - -DateTimeExample1 = DateTime.ToText(Source1, "h:m:s.F t"), -// Displays 6:9:1 P - -DateTimeExample2 = DateTime.ToText(Source1, "h:m:s.F t", "el-GR"), -// Displays 6:9:1 μ +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = ""]), + // Displays 6:9:1 P -Source2 = #datetime(2024, 1, 1, 8, 18, 1.500), + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = "el-GR"]), + // Displays 6:9:1 μ -DateTimeExample3 = DateTime.ToText(Source2, "h:m:s.F t"), -// Displays 9:18:1.5 A + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = ""]), + // Displays 9:18:1.5 A -DateTimeExample4 = DateTime.ToText(Source2, "h:m:s.F t", "el-GR") -// Displays 9:18:1.5 π + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = "el-GR"]) + // Displays 9:18:1.5 π + } +in + Source ``` [Back to table](#table) @@ -748,21 +761,23 @@ The "ss" custom format specifier (plus any number of additional "s" specifiers) The following example includes the "ss" custom format specifier in a custom format string. ```powerquery-m -Source1 = #datetime(2024, 1, 1, 18, 9, 1), - -DateTimeExample1 = DateTime.ToText(Source1, "hh:mm:ss tt"), -// Displays 06:09:01 PM - -DateTimeExample2 = DateTime.ToText(Source1, "hh:mm:ss tt", "hu-HU"), -// Displays 06:09:01 du. +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = ""]), + // Displays 06:09:01 PM -Source2 = #datetime(2024, 1, 1, 9, 18, 1.500), + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = "hu-HU"]), + // Displays 06:09:01 du. -DateTimeExample3 = DateTime.ToText(Source2, "hh:mm:ss.ff tt"), -// Displays 09:18:01.50 AM + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = ""]), + // Displays 09:18:01.50 AM -DateTimeExample4 = DateTime.ToText(Source2, "hh:mm:ss.ff tt", "hu-HU") -// Displays 09:18:01.50 de. + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = "hu-HU"]) + // Displays 09:18:01.50 de. + } +in + Source ``` [Back to table](#table) @@ -778,21 +793,23 @@ If the "t" format specifier is used without other custom format specifiers, it's The following example includes the "t" custom format specifier in a custom format string. ```powerquery-m -Source1 = #datetime(2024, 1, 1, 18, 9, 1), - -DateTimeExample1 = DateTime.ToText(Source1, "h:m:s.F t"), -// Displays 6:9:1 P - -DateTimeExample2 = DateTime.ToText(Source1, "h:m:s.F t", "el-GR"), -// Displays 6:9:1 μ +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = ""]), + // Displays 6:9:1 P -Source2 = #datetime(2024, 1, 1, 8, 18, 1.500), + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "h:m:s.F t", Culture = "el-GR"]), + // Displays 6:9:1 μ -DateTimeExample3 = DateTime.ToText(Source2, "h:m:s.F t"), -// Displays 9:18:1.5 A + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = ""]), + // Displays 9:18:1.5 A -DateTimeExample4 = DateTime.ToText(Source2, "h:m:s.F t", "el-GR") -// Displays 9:18:1.5 π + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "h:m:s.F t", Culture = "el-GR"]) + // Displays 9:18:1.5 π + } +in + Source ``` [Back to table](#table) @@ -806,21 +823,23 @@ Make sure to use the "tt" specifier for languages for which it's necessary to ma The following example includes the "tt" custom format specifier in a custom format string. ```powerquery-m -Source1 = #datetime(2024, 1, 1, 18, 9, 1), - -DateTimeExample1 = DateTime.ToText(Source1, "hh:mm:ss tt"), -// Displays 06:09:01 PM - -DateTimeExample2 = DateTime.ToText(Source1, "hh:mm:ss tt", "hu-HU"), -// Displays 06:09:01 du. +let + Source = + { + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = ""]), + // Displays 06:09:01 PM -Source2 = #datetime(2024, 1, 1, 9, 18, 1.500), + DateTime.ToText(#datetime(2024, 1, 1, 18, 9, 1), [Format = "hh:mm:ss tt", Culture = "hu-HU"]), + // Displays 06:09:01 du. -DateTimeExample3 = DateTime.ToText(Source2, "hh:mm:ss.ff tt"), -// Displays 09:18:01.50 AM + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = ""]), + // Displays 09:18:01.50 AM -DateTimeExample4 = DateTime.ToText(Source2, "hh:mm:ss.ff tt", "hu-HU") -// Displays 09:18:01.50 de. + DateTime.ToText(#datetime(2024, 1, 1, 9, 18, 1.500), [Format = "hh:mm:ss.ff tt", Culture = "hu-HU"]) + // Displays 09:18:01.50 de. + } +in + Source ``` [Back to table](#table) @@ -836,38 +855,17 @@ If the "y" format specifier is used without other custom format specifiers, it's The following example includes the "y" custom format specifier in a custom format string. ```powerquery-m -Source1 = #date(1, 12, 1), -Source2 = #date(2024, 1, 1), - -DateExample1 = Date.ToText(Source1, "%y"), -// Displays 1 - -DateExample2 = Date.ToText(Source1, "yy"), -// Displays 01 - -DateExample3 = Date.ToText(Source1, "yyy"), -// Displays 001 - -DateExample4 = Date.ToText(Source1, "yyyy"), -// Displays 0001 - -DateExample5 = Date.ToText(Source1, "yyyyy"), -// Displays 00001 - -DateExample6 = Date.ToText(Source2, "%y"), -// Displays 24 - -DateExample7 = Date.ToText(Source2, "yy"), -// Displays 24 - -DateExample8 = Date.ToText(Source2, "yyy"), -// Displays 2024 - -DateExample9 = Date.ToText(Source2, "yyyy"), -// Displays 2024 - -DateExample10 = Date.ToText(Source2, "yyyyy") -// Displays 02024 +let + Source = + { + Date.ToText(#date(1, 12, 1), [Format = "%y"]), + // Displays 1 + + Date.ToText(#date(2024, 1, 1), [Format = "%y"]) + // Displays 24 + } +in + Source ``` [Back to table](#table) @@ -876,46 +874,43 @@ DateExample10 = Date.ToText(Source2, "yyyyy") The "yy" custom format specifier represents the year as a two-digit number. If the year has more than two digits, only the two low-order digits appear in the result. If the two-digit year has fewer than two significant digits, the number is padded with leading zeros to produce two digits. - -The following example includes the "yy" custom format specifier in a custom format string. +In a parsing operation, a two-digit year that is parsed using the "yy" custom format specifier is interpreted based on the format provider's current calendar. The following example parses the string representation of a date that has a two-digit year by using the default Gregorian calendar of the en-US culture, which, in this case, is the current culture. The values returned for the four-digit date depend on the 100 year range set by the operating system. ```powerquery-m -Source1 = #date(1, 12, 1), -Source2 = #date(2024, 1, 1), - -DateExample1 = Date.ToText(Source1, "%y"), -// Displays 1 - -DateExample2 = Date.ToText(Source1, "yy"), -// Displays 01 - -DateExample3 = Date.ToText(Source1, "yyy"), -// Displays 001 - -DateExample4 = Date.ToText(Source1, "yyyy"), -// Displays 0001 - -DateExample5 = Date.ToText(Source1, "yyyyy"), -// Displays 00001 +let + // Define the date format and value + fmt = "dd-MMM-yy", -DateExample6 = Date.ToText(Source2, "%y"), -// Displays 24 + // Convert year 49 to a 4-digit year + firstDate = Text.Format("#{0}", { Date.FromText("24-Jan-49", [Format = fmt]) }), -DateExample7 = Date.ToText(Source2, "yy"), -// Displays 24 + // Convert year 50 to a 4-digit year + finalDate = Text.Format("#{0}", { Date.FromText("24-Jan-50", [Format = fmt]) }), + Heading = "Default Two Digit Year Range: 1950 - 2049", + result = {Heading, firstDate, finalDate} +in + result -DateExample8 = Date.ToText(Source2, "yyy"), -// Displays 2024 +// The example displays the following output: +// Default Two Digit Year Range: 1950 - 2049 +// 1/24/2049 +// 1/24/1950 +``` -DateExample9 = Date.ToText(Source2, "yyyy"), -// Displays 2024 +The following example includes the "yy" custom format specifier in a custom format string. -DateExample10 = Date.ToText(Source2, "yyyyy") -// Displays 02024 +```powerquery-m +let + Source = + { + Date.ToText(#date(1, 12, 1), [Format = "yy"]), + // Displays 01 + + Date.ToText(#date(2024, 1, 1), [Format = "yy"]) + // Displays 24 + } +in + Source ``` [Back to table](#table) @@ -930,38 +925,17 @@ The "yyy" custom format specifier represents the year with a minimum of three di The following example includes the "yyy" custom format specifier in a custom format string. ```powerquery-m -Source1 = #date(1, 12, 1), -Source2 = #date(2024, 1, 1), - -DateExample1 = Date.ToText(Source1, "%y"), -// Displays 1 - -DateExample2 = Date.ToText(Source1, "yy"), -// Displays 01 - -DateExample3 = Date.ToText(Source1, "yyy"), -// Displays 001 - -DateExample4 = Date.ToText(Source1, "yyyy"), -// Displays 0001 - -DateExample5 = Date.ToText(Source1, "yyyyy"), -// Displays 00001 - -DateExample6 = Date.ToText(Source2, "%y"), -// Displays 24 - -DateExample7 = Date.ToText(Source2, "yy"), -// Displays 24 - -DateExample8 = Date.ToText(Source2, "yyy"), -// Displays 2024 - -DateExample9 = Date.ToText(Source2, "yyyy"), -// Displays 2024 - -DateExample10 = Date.ToText(Source2, "yyyyy") -// Displays 02024 +let + Source = + { + Date.ToText(#date(1, 12, 1), [Format = "yyy"]), + // Displays 001 + + Date.ToText(#date(2024, 1, 1), [Format = "yyy"]) + // Displays 2024 + } +in + Source ``` [Back to table](#table) @@ -976,38 +950,17 @@ The "yyyy" custom format specifier represents the year with a minimum of four di The following example includes the "yyyy" custom format specifier in a custom format string. ```powerquery-m -Source1 = #date(1, 12, 1), -Source2 = #date(2024, 1, 1), - -DateExample1 = Date.ToText(Source1, "%y"), -// Displays 1 - -DateExample2 = Date.ToText(Source1, "yy"), -// Displays 01 - -DateExample3 = Date.ToText(Source1, "yyy"), -// Displays 001 - -DateExample4 = Date.ToText(Source1, "yyyy"), -// Displays 0001 - -DateExample5 = Date.ToText(Source1, "yyyyy"), -// Displays 00001 - -DateExample6 = Date.ToText(Source2, "%y"), -// Displays 24 - -DateExample7 = Date.ToText(Source2, "yy"), -// Displays 24 - -DateExample8 = Date.ToText(Source2, "yyy"), -// Displays 2024 - -DateExample9 = Date.ToText(Source2, "yyyy"), -// Displays 2024 - -DateExample10 = Date.ToText(Source2, "yyyyy") -// Displays 02024 +let + Source = + { + Date.ToText(#date(1, 12, 1), [Format = "yyyy"]), + // Displays 0001 + + Date.ToText(#date(2024, 1, 1), [Format = "yyyy"]) + // Displays 2024 + } +in + Source ``` [Back to table](#table) @@ -1021,38 +974,17 @@ If there are additional "y" specifiers, the number is padded with as many leadin The following example includes the "yyyyy" custom format specifier in a custom format string. ```powerquery-m -Source1 = #date(1, 12, 1), -Source2 = #date(2024, 1, 1), - -DateExample1 = Date.ToText(Source1, "%y"), -// Displays 1 - -DateExample2 = Date.ToText(Source1, "yy"), -// Displays 01 - -DateExample3 = Date.ToText(Source1, "yyy"), -// Displays 001 - -DateExample4 = Date.ToText(Source1, "yyyy"), -// Displays 0001 - -DateExample5 = Date.ToText(Source1, "yyyyy"), -// Displays 00001 - -DateExample6 = Date.ToText(Source2, "%y"), -// Displays 24 - -DateExample7 = Date.ToText(Source2, "yy"), -// Displays 24 - -DateExample8 = Date.ToText(Source2, "yyy"), -// Displays 2024 - -DateExample9 = Date.ToText(Source2, "yyyy"), -// Displays 2024 - -DateExample10 = Date.ToText(Source2, "yyyyy") -// Displays 02024 +let + Source = + { + Date.ToText(#date(1, 12, 1), [Format = "yyyyy"]), + // Displays 00001 + + Date.ToText(#date(2024, 1, 1), [Format = "yyyyy"]) + // Displays 02024 + } +in + Source ``` [Back to table](#table) @@ -1067,28 +999,32 @@ The following table shows how the offset value changes depending on the **DateTi | DateTimeZone value | Offset value | | - | - | -| [DateTimeZone.LocalNow](datetimezone-localnow.md) | The signed offset of the local operating system's time zone from UTC. | +| [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00. | | [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+0`. | - If the "z" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws an expression error. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. The following example includes the "z" custom format specifier in a custom format string on a system in the U.S. Pacific Time zone. ```powerquery-m -DateTimeZoneExample1 = DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}, {0:zz}, {0:zzz}"]), -// Displays {0:-7}, {0:-07}, {0:-07:00} - -DateTimeZoneExample2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}, {0:zz}, {0:zzz}"]), -// Displays {0:+0}, {0:+00}, {0:+00:00} - -DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( - #datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6), - [Format = "{0:%z}, {0:zz}, {0:zzz}"] -) -// Displays {0:+6}, {0:+06}, {0:+06:00} +let + Source = + { + DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}"]), + // Displays {0:-7} on Power Query Desktop + // Displays {0:+0} on Power Query Online + + DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}"]), + // Displays {0:+0} + + DateTimeZone.ToText(DateTimeZone.SwitchZone( + #datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6), + [Format = "{0:%z}"] + ) + // Displays {0:+6} + } +in + Source ``` > [!NOTE] @@ -1104,26 +1040,30 @@ The following table shows how the offset value changes depending on the **DateTi | DateTimeZone value | Offset value | | - | - | -| [DateTimeZone.LocalNow](datetimezone-localnow.md) | The signed offset of the local operating system's time zone from UTC. | +| [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00. | | [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+00`. | - The following example includes the "zz" custom format specifier in a custom format string on a system in the U.S. Pacific Time zone. ```powerquery-m -DateTimeZoneExample1 = DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}, {0:zz}, {0:zzz}"]), -// Displays {0:-7}, {0:-07}, {0:-07:00} - -DateTimeZoneExample2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}, {0:zz}, {0:zzz}"]), -// Displays {0:+0}, {0:+00}, {0:+00:00} - -DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( - #datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6), - [Format = "{0:%z}, {0:zz}, {0:zzz}"] -) -// Displays {0:+6}, {0:+06}, {0:+06:00} +let + Source = + { + DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:zz}"]), + // Displays {0:-07} on Power Query Desktop + // Displays {0:+00} on Power Query Online + + DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:zz}"]), + // Displays {0:+00} + + DateTimeZone.ToText(DateTimeZone.SwitchZone( + #datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6), + [Format = "{0:zz}"] + ) + // Displays {0:+06} + } +in + Source ``` > [!NOTE] @@ -1139,26 +1079,30 @@ The following table shows how the offset value changes depending on the **DateTi | DateTimeZoneValue value | Offset value | | - | - | -| [DateTimeZone.LocalNow](datetimezone-localnow.md) | The signed offset of the local operating system's time zone from UTC. | +| [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00.| | [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+00:00`. | - The following example includes the "zzz" custom format specifier in a custom format string on a system in the U.S. Pacific Time zone. ```powerquery-m -DateTimeZoneExample1 = DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:%z}, {0:zz}, {0:zzz}"]), -// Displays {0:-7}, {0:-07}, {0:-07:00} - -DateTimeZoneExample2 = DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:%z}, {0:zz}, {0:zzz}"]), -// Displays {0:+0}, {0:+00}, {0:+00:00} - -DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( - #datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6), - [Format = "{0:%z}, {0:zz}, {0:zzz}"] -) -// Displays {0:+6}, {0:+06}, {0:+06:00} +let + Source = + { + DateTimeZone.ToText(DateTimeZone.LocalNow(), [Format="{0:zzz}"]), + // Displays {0:-07:00} on Power Query Desktop + // Displays {0:+00:00} on Power Query Online + + DateTimeZone.ToText(DateTimeZone.UtcNow(),[Format="{0:zzz}"]), + // Displays {0:+00:00} + + DateTimeZone.ToText(DateTimeZone.SwitchZone( + #datetimezone(2024, 8, 1, 0, 0, 0, 0, 0), 6), + [Format = "{0:zzz}"] + ) + // Displays {0:+06:00} + } +in + Source ``` > [!NOTE] @@ -1166,8 +1110,6 @@ DateTimeZoneExample3 = DateTimeZone.ToText(DateTimeZone.SwitchZone( [Back to table](#table) - + ## Character literals The following characters in a custom date and time format string are reserved and are always interpreted as formatting characters or, in the case of `"`, `'`, `/`, and `\`, as special characters. @@ -1222,145 +1164,141 @@ The following example includes the literal characters "PST" (for Pacific Standar ```powerquery-m let - DateFormat = {"dd MMM yyyy hh:mm tt PST", "dd MMM yyyy hh:mm tt PDT"}, - DayAndTime = #datetime(2024, 8, 18, 16, 50, 0), - ExampleResult1 = DateTime.ToText(DayAndTime, DateFormat{1}), - NewDayAndTime = "25 Dec 2023 12:00 pm PST", - ExampleResult2 = try DateTime.ToText(DateTime.FromText(NewDayAndTime, [Format = DateFormat{0}])) otherwise "Unable to parse '" & NewDayAndTime & "'", - ResultList = ExampleResult1 & "#(cr,lf)" & ExampleResult2 - + #"Date Formats" = {"dd MMM yyyy hh:mm tt PST", "dd MMM yyyy hh:mm tt PDT"}, + Source = + { + DateTime.ToText(#datetime(2024, 8, 18, 16, 50, 0), [Format = #"Date Formats"{1}]), + try DateTime.ToText(DateTime.FromText( + "25 Dec 2023 12:00 pm PST", [Format = #"Date Formats"{0}])) + otherwise "Unable to parse '" & "25 Dec 2023 12:00 pm PST" & "'" + } in - ResultList + Source // The example displays the following output text: -// 18 Aug 2016 04:50 PM PDT -// 12/25/2016 12:00:00 PM +// 18 Aug 2024 04:50 PM PDT +// 12/25/2023 12:00:00 PM ``` There are two ways to indicate that characters are to be interpreted as literal characters and not as reserve characters, so that they can be included in a result string or successfully parsed in an input string: - By escaping each reserved character. For more information, go to [Using the escape sequence](#escape). -The following example includes the literal characters "pst" (for Pacific Standard time) to represent the local time zone in a format string. Because both "s" and "t" are custom format strings, both characters must be escaped to be interpreted as character literals. + The following example includes the literal characters "pst" (for Pacific Standard time) to represent the local time zone in a format string. Because both "s" and "t" are custom format strings, both characters must be escaped to be interpreted as character literals. + + ```powerquery-m + let + #"Date Format" = "dd MMM yyyy hh:mm tt p's''t'", + Source = + { + DateTime.ToText(#datetime(2024, 8, 18, 16, 50, 0), [Format = #"Date Format"]), + try DateTime.ToText(DateTime.FromText( + "25 Dec 2023 12:00 pm pst", [Format = #"Date Format"])) + otherwise "Unable to parse '" & "25 Dec 2023 12:00 pm pst" & "'" + } + in + Source + + // The example displays the following output text: + // 18 Aug 2024 04:50 PM pst + // 12/25/2016 12:00:00 PM + ``` + +- By enclosing the entire literal string in apostrophes. The following example is like the previous one, except that "pst" is enclosed in apostrophes to indicate that the entire delimited string should be interpreted as character literals. + + ```powerquery-m + let + #"Date Format" = "dd MMM yyyy hh:mm tt 'pst'", + Source = + { + DateTime.ToText(#datetime(2024, 8, 18, 16, 50, 0), [Format = #"Date Format"]), + try DateTime.ToText(DateTime.FromText( + "25 Dec 2023 12:00 pm pst", [Format = #"Date Format"])) + otherwise "Unable to parse '" & "25 Dec 2023 12:00 pm pst" & "'" + } + in + Source + + // The example displays the following output text: + // 18 Aug 2024 04:50 PM pst + // 12/25/2016 12:00:00 PM + ``` -```powerquery-m -let - DateFormat = "dd MMM yyyy hh:mm tt p\s\t", - DayAndTime = #datetime(2024, 8, 18, 16, 50, 0), - ExampleResult1 = DateTime.ToText(DayAndTime, DateFormat), - NewDayAndTime = "25 Dec 2023 12:00 pm pst", - ExampleResult2 = try DateTime.ToText(DateTime.FromText(NewDayAndTime, [Format = DateFormat])) otherwise "Unable to parse '" & NewDayAndTime & "'", - ResultList = ExampleResult1 & "#(cr,lf)" & ExampleResult2 - -in - ResultList - -// The example displays the following output text: -// 18 Aug 2016 04:50 PM pst -// Unable to parse '25 Dec 2023 12:00 pm pst' -``` - -- By enclosing the entire literal string in quotation marks or apostrophes. The following example is like the previous one, except that "pst" is enclosed in quotation marks to indicate that the entire delimited string should be interpreted as character literals. - -```powerquery-m -let - DateFormat = "dd MMM yyyy hh:mm tt ""pst""", - DayAndTime = #datetime(2024, 8, 18, 16, 50, 0), - ExampleResult1 = DateTime.ToText(DayAndTime, DateFormat), - NewDayAndTime = "25 Dec 2023 12:00 pm pst", - ExampleResult2 = try DateTime.ToText(DateTime.FromText(NewDayAndTime, [Format = DateFormat])) otherwise "Unable to parse '" & NewDayAndTime & "'", - ResultList = ExampleResult1 & "#(cr,lf)" & ExampleResult2 +## Notes -in - ResultList +### How culture affects date and time format strings -// The example displays the following output text: -// 18 Aug 2016 04:50 PM pst -// Unable to parse '25 Dec 2023 12:00 pm pst' -``` - -## Notes +For information on how culture affects numeric format strings, go to [How culture affects date and time format strings](standard-numeric-format-strings.md#how-culture-affects-date-and-time-format-strings). ### Using single custom format specifiers -A custom date and time format string consists of two or more characters. Date and time formatting methods interpret any single-character string as a standard date and time format string. If they don't recognize the character as a valid format specifier, they throw a . For example, a format string that consists only of the specifier "h" is interpreted as a standard date and time format string. However, in this particular case, an exception is thrown because there is no "h" standard date and time format specifier. +A custom date and time format string consists of two or more characters. Date and time formatting methods interpret any single-character string as a standard date and time format string. If they don't recognize the character as a valid format specifier, they throw an expression error. For example, a format string that consists only of the specifier "h" is interpreted as a standard date and time format string. However, in this particular case, an exception is thrown because there is no "h" standard date and time format specifier. To use any of the custom date and time format specifiers as the only specifier in a format string (that is, to use the "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" custom format specifier by itself), include a space before or after the specifier, or include a percent ("%") format specifier before the single custom date and time specifier. -For example, "`%h"` is interpreted as a custom date and time format string that displays the hour represented by the current date and time value. You can also use the " h" or "h " format string, although this includes a space in the result string along with the hour. The following example illustrates these three format strings. - -[!code-csharp-interactive[Formatting.DateAndTime.Custom#16](~/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/literal1.cs#16)] -[!code-vb[Formatting.DateAndTime.Custom#16](~/samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/literal1.vb#16)] +For example, "`%h`" is interpreted as a custom date and time format string that displays the hour represented by the current date and time value. You can also use the " h" or "h " format string, although this includes a space in the result string along with the hour. The following example illustrates these three format strings. - -#### Using the escape sequence +#### Using the escape sequences -The "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" characters in a format string are interpreted as custom format specifiers rather than as literal characters. To prevent a character from being interpreted as a format specifier, you can use an escape sequence. The backslash (\) in front of a character is one type of escape sequence. A double quote escape sequence in a text literal is one other type of escape sequence. The escape sequence signifies that the following character or surrounded character is a text literal that should be included in the result string unchanged. +The "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" characters in a format string are interpreted as custom format specifiers rather than as literal characters. - The following example uses different escape sequences to prevent the formatting operation from interpreting the "h" and "m" characters as format specifiers. ```powerquery-m let - date = #datetime(2024, 6, 15, 13, 45, 30.90), - format1 = "h \h m \m", - format2 = "h ""h"" m ""m""", - - formattedDate1 = DateTime.ToText(date, format1), - formattedDate2 = DateTime.ToText(date, format2), - output1 = Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format1, formattedDate1}), - output2 = Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format2, formattedDate2}), - result = output1 & "#(cr,lf) & output2 + date = #datetime(2024, 6, 15, 13, 45, 30.90), + format1 = "h \h m \m", + format2 = "h ""h"" m ""m""", + format3 = "h 'h' m 'm'", + Source = + { + Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format1, DateTime.ToText(date, format1)}), + Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format2, DateTime.ToText(date, format2)}), + Text.Format("#{0} (#{1}) -> #{2}", {DateTime.ToText(date), format3, DateTime.ToText(date, format3)}) + } in - result + Source // The example displays the following output text: // 6/15/2024 1:45:30 PM (h \h m \m) -> 1 h 45 m // 6/15/2024 1:45:30 PM (h "h" m "m") -> 1 h 45 m +// 6/15/2024 1:45:30 PM (h 'h' m 'm') -> 1 h 45 m ``` - diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index a21e4588c..f1a5e9abc 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -3,28 +3,16 @@ title: "Standard date and time format strings" description: Learn how to use a standard date and time format string to define the text representation of a date and time value in .NET. author: DougKlopfenstein ms-author: dougklo -ms.date: 8/11/2024 +ms.date: 9/16/2024 ms.topic: reference --- # Standard date and time format strings - -A standard date and time format string uses a single character as the format specifier to define the text representation of a time and date value. Any date and time format string that contains more than one character, including white space, is interpreted as a [custom date and time format string](custom-date-and-time-format-strings.md). A standard or custom format string can be used in two ways: +A standard date and time format string uses a single character as the format specifier to define the text representation of a time and date value. Any date and time format string that contains more than one character, including white space, is interpreted as a [custom date and time format string](custom-date-and-time-format-strings.md). A standard or custom format string can be used to define the text representation that results from a formatting operation. -- To define the text representation that results from a formatting operation. - -- To define the text representation of a date and time value that can be converted to a or value by a parsing operation. - - ## Table of format specifiers - The following table describes the standard date and time format specifiers. + The following table describes the standard date and time format specifiers. |Format specifier|Description|Examples| |----------------------|-----------------|--------------| @@ -35,15 +23,14 @@ A standard date and time format string uses a single character as the format spe |"g"|General date/time pattern (short time).

More information: [The general date short time ("g") format specifier](#GeneralDateShortTime).|2009-06-15T13:45:30 -> 6/15/2009 1:45 PM (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45 (zh-CN)| |"G"|General date/time pattern (long time).

More information: [The general date long time ("G") format specifier](#GeneralDateLongTime).|2009-06-15T13:45:30 -> 6/15/2009 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45:30 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45:30 (zh-CN)| |"M", "m"|Month/day pattern.

More information: [The month ("M", "m") format specifier](#MonthDay).|2009-06-15T13:45:30 -> June 15 (en-US)

2009-06-15T13:45:30 -> 15. juni (da-DK)

2009-06-15T13:45:30 -> 15 Juni (id-ID)| -|"O", "o"|round-trip date/time pattern.

More information: [The round-trip ("O", "o") format specifier](#Roundtrip).| values:

2009-06-15T13:45:30 (DateTimeKind.Local) --> 2009-06-15T13:45:30.0000000-07:00

2009-06-15T13:45:30 (DateTimeKind.Utc) --> 2009-06-15T13:45:30.0000000Z

2009-06-15T13:45:30 (DateTimeKind.Unspecified) --> 2009-06-15T13:45:30.0000000

values:

2009-06-15T13:45:30-07:00 --> 2009-06-15T13:45:30.0000000-07:00| -|"R", "r"|RFC1123 pattern.

More information: [The RFC1123 ("R", "r") format specifier](#RFC1123).| input: 2009-06-15T13:45:30 -> Mon, 15 Jun 2009 20:45:30 GMT
input: 2009-06-15T13:45:30 -> Mon, 15 Jun 2009 13:45:30 GMT | +|"O", "o"|round-trip date/time pattern.

More information: [The round-trip ("O", "o") format specifier](#Roundtrip).|2009-06-15T13:45:30 (DateTimeKind.Local) --> 2009-06-15T13:45:30.0000000-07:00

2009-06-15T13:45:30 (DateTimeKind.Utc) --> 2009-06-15T13:45:30.0000000Z

2009-06-15T13:45:30 (DateTimeKind.Unspecified) --> 2009-06-15T13:45:30.0000000| +|"R", "r"|RFC1123 pattern.

More information: [The RFC1123 ("R", "r") format specifier](#RFC1123).|2009-06-15T13:45:30 -> Mon, 15 Jun 2009 13:45:30 GMT | |"s"|Sortable date/time pattern.

More information: [The sortable ("s") format specifier](#Sortable).|2009-06-15T13:45:30 (DateTimeKind.Local) -> 2009-06-15T13:45:30

2009-06-15T13:45:30 (DateTimeKind.Utc) -> 2009-06-15T13:45:30| |"t"|Short time pattern.

More information: [The short time ("t") format specifier](#ShortTime).|2009-06-15T13:45:30 -> 1:45 PM (en-US)

2009-06-15T13:45:30 -> 13:45 (hr-HR)

2009-06-15T13:45:30 -> 01:45 م (ar-EG)| |"T"|Long time pattern.

More information: [The long time ("T") format specifier](#LongTime).|2009-06-15T13:45:30 -> 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> 13:45:30 (hr-HR)

2009-06-15T13:45:30 -> 01:45:30 م (ar-EG)| -|"u"|Universal sortable date/time pattern.

More information: [The universal sortable ("u") format specifier](#UniversalSortable).|With a value: 2009-06-15T13:45:30 -> 2009-06-15 13:45:30Z

With a value: 2009-06-15T13:45:30 -> 2009-06-15 20:45:30Z| -|"U"|Universal full date/time pattern.

More information: [The universal full ("U") format specifier](#UniversalFull).|2009-06-15T13:45:30 -> Monday, June 15, 2009 8:45:30 PM (en-US)

2009-06-15T13:45:30 -> den 15 juni 2009 20:45:30 (sv-SE)

2009-06-15T13:45:30 -> Δευτέρα, 15 Ιουνίου 2009 8:45:30 μμ (el-GR)| +|"u"|Universal sortable date/time pattern.

More information: [The universal sortable ("u") format specifier](#UniversalSortable).|2009-06-15T13:45:30 -> 2009-06-15 13:45:30Z| |"Y", "y"|Year month pattern.

More information: [The year month ("Y") format specifier](#YearMonth).|2009-06-15T13:45:30 -> June 2009 (en-US)

2009-06-15T13:45:30 -> juni 2009 (da-DK)

2009-06-15T13:45:30 -> Juni 2009 (id-ID)| -|Any other single character|Unknown specifier.|Throws a run-time .| +|Any other single character|Unknown specifier.|Throws a run-time expression error.| ## How standard format strings work @@ -53,46 +40,41 @@ If a standard format string in a formatting operation maps to a particular cultu - You can use the default (or current) culture. The following example displays a date using the current culture's short date format. In this case, the current culture is en-US. -```powerquery -m -thisDate = #date(2024, 3, 15), -resultDate = Date.ToText(thisDate, [Format = "d"]) -//Displays 3/15/2024 -``` + ```powerquery -m + let + Source = + { + Date.ToText(#date(2024, 3, 15), [Format = "d"]) + //Displays 3/15/2024 + } + in + Source + ``` - You can pass a culture used to format the date according to the rules of that specific culture. The following example displays a date using the short date format of the pt-BR culture. -```powerquery-m -thisDate = #date(2024, 3, 15), -resultDate = Date.ToText(thisDate, [Format = "d", Culture = "pt-BR"]) -//Displays 15/03/2024 -``` + ```powerquery-m + let + Source = + { + Date.ToText(#date(2024, 3, 15), [Format = "d", Culture = "pt-BR"]) + //Displays 15/03/2024 + } + in + Source + ``` - -- You can pass a object that provides formatting information to a method that has an parameter. The following example displays a date using the short date format from a object for the hr-HR culture. - - [!code-csharp[System.DateTime.Conceptual.Formatting#3](../../../samples/snippets/csharp/VS_Snippets_CLR_System/system.DateTime.Conceptual.Formatting/cs/StandardFormats1.cs#3)] - [!code-vb[System.DateTime.Conceptual.Formatting#3](../../../samples/snippets/visualbasic/VS_Snippets_CLR_System/system.DateTime.Conceptual.Formatting/vb/StandardFormats1.vb#3)] ---> - In some cases, the standard format string serves as a convenient abbreviation for a longer custom format string that is invariant. Four standard format strings fall into this category: "O" (or "o"), "R" (or "r"), "s", and "u". These strings correspond to custom format strings defined by the invariant culture. They produce string representations of date and time values that are intended to be identical across cultures. The following table provides information on these four standard date and time format strings. -|Standard format string|Custom format string| -|----------------------------|------------------------------------| -|"O" or "o"|yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK| -|"R" or "r"|ddd, dd MMM yyyy HH':'mm':'ss 'GMT'| -|"s"|yyyy'-'MM'-'dd'T'HH':'mm':'ss| -|"u"|yyyy'-'MM'-'dd HH':'mm':'ss'Z'| - - The following sections describe the standard format specifiers for [Date](date-functions.md), [DateTime](datetime-functions.md), [DateTimeZone](datetimezone-functions.md), and [Time](time-functions.md) values. ## Date formats @@ -106,29 +88,28 @@ This group includes the following formats: ### The short date ("d") format specifier - The "d" standard format specifier represents a custom date format defined by a specific culture. For example, the custom format text returned by the invariant culture is "MM/dd/yyyy". - The following example uses the "d" format specifier to display a date value. ```powerquery-m -date1 = #date(2024, 4, 10), -resultDate1 = Date.ToText(date1, [Format = "d"]), -// Displays 04/10/2024 -resultDate2 = Date.ToText(date1, [Format = "d", Culture = "en-US"]), -// Displays 4/10/2024 -resultDate3 = Date.ToText(date1, [Format = "d", Culture = "en-NZ"]), -// Displays 10/4/2024 -resultDate4 = Date.ToText(date1, [Format = "d", Culture = "de-DE"]) -// Displays 10.4.2024 +let + Source = + { + Date.ToText(#date(2024, 4, 10), [Format = "d", Culture = ""]), + // Displays 04/10/2024 + + Date.ToText(#date(2024, 4, 10), [Format = "d", Culture = "en-US"]), + // Displays 4/10/2024 + + Date.ToText(#date(2024, 4, 10), [Format = "d", Culture = "en-NZ"]), + // Displays 10/4/2024 + + Date.ToText(#date(2024, 4, 10), [Format = "d", Culture = "de-DE"]) + // Displays 10.4.2024 + } +in + Source ``` [Back to table](#table) @@ -139,25 +120,26 @@ resultDate4 = Date.ToText(date1, [Format = "d", Culture = "de-DE"]) The "D" standard format specifier represents a custom date format defined by a specific culture. For example, the custom format string for the invariant culture is "dddd, dd MMMM yyyy". - The following example uses the "D" format specifier to display a date and time value. ```powerquery-m -date1 = #date(2024, 4, 10), -resultDate1 = Date.ToText(date1, [Format = "D", Culture = "en-US"]), -// Displays Wednesday, April 10, 2024 -resultDate2 = Date.ToText(date1, [Format = "D", Culture = "pt-BR"]), -// Displays quarta-feira, 10 de abril de 2024 -resultDate3 = Date.ToText(date1, [Format = "D", Culture = "es-MX"]) -// Displays miércoles, 10 de abril de 2024 +let + Source = + { + Date.ToText(#date(2024, 4, 10), [Format = "D", Culture = ""]), + // Displays Wednesday, 10 April, 2024 + + Date.ToText(#date(2024, 4, 10), [Format = "D", Culture = "en-US"]), + // Displays Wednesday, April 10, 2024 + + Date.ToText(#date(2024, 4, 10), [Format = "D", Culture = "pt-BR"]), + // Displays quarta-feira, 10 de abril de 2024 + + Date.ToText(#date(2024, 4, 10), [Format = "D", Culture = "es-MX"]) + // Displays miércoles, 10 de abril de 2024 + } +in + Source ``` [Back to table](#table) @@ -182,27 +164,22 @@ This group includes the following formats: The "f" standard format specifier represents a combination of the long date ("D") and short time ("t") patterns, separated by a space. - +The result string is affected by the formatting information of a specific culture. + The following example uses the "f" format specifier to display a date and time value. ```powerquery-m -date1 = #datetime(2024, 4, 10, 6, 30, 0), -resultDateTime1 = DateTime.ToText(date1, [Format = "f", Culture = "en-US"]), -// Displays Wednesday, April 10, 2024 6:30 AM -resultDateTime2 = DateTime.ToText(date1, [Format = "f", Culture = "fr-FR"]) -// Displays mercredi 10 avril 2024 06:30 +let + Source = + { + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "f", Culture = "en-US"]), + // Displays Wednesday, April 10, 2024 6:30 AM + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "f", Culture = "fr-FR"]) + // Displays mercredi 10 avril 2024 06:30 + } +in + Source ``` [Back to table](#table) @@ -213,26 +190,25 @@ resultDateTime2 = DateTime.ToText(date1, [Format = "f", Culture = "fr-FR"]) The "F" standard format specifier represents a custom date and time format defined by a specific culture. For example, the custom format string for the invariant culture is "dddd, dd MMMM yyyy HH:mm:ss". - +The result string is affected by the formatting information of a specific culture. + The following example uses the "F" format specifier to display a date and time value. ```powerquery-m -date1 = #datetime(2024, 4, 10, 6, 30, 0), -resultDateTime1 = DateTime.ToText(date1, [Format = "F", Culture = "en-US"]), -// Displays Wednesday, April 10, 2024 6:30:00 AM -resultDateTime2 = DateTime.ToText(date1, [Format = "F", Culture = "fr-FR"]), -// Displays mercredi 10 avril 2024 06:30:00 +let + Source = + { + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "F", Culture = ""]), + // Displays Wednesday, 10 April, 2024 06:30:00 + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "F", Culture = "en-US"]), + // Displays Wednesday, April 10, 2024 6:30:00 AM + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "F", Culture = "fr-FR"]) + // Displays mercredi 10 avril 2024 06:30:00 + } +in + Source ``` [Back to table](#table) @@ -243,28 +219,25 @@ resultDateTime2 = DateTime.ToText(date1, [Format = "F", Culture = "fr-FR"]), The "g" standard format specifier represents a combination of the short date ("d") and short time ("t") patterns, separated by a space. The resulting text is affected by the formatting information of a specific culture. - +The result string is affected by the formatting information of a specific culture. + The following example uses the "g" format specifier to display a date and time value. ```powerquery-m -date1 = #datetime(2024, 4, 10, 6, 30, 0), -resultDateTime1 = DateTime.ToText(date1, [Format = "g"]), -// Displays 4/10/2024 6:30 AM -resultDateTime2 = DateTime.ToText(date1, [Format = "g", Culture = "en-US"]), -// Displays 4/10/2024 6:30 AM -resultDateTime3 = DateTime.ToText(date1, [Format = "g", Culture = "fr-BE"]) -// Displays 10-04-24 06:30 +let + Source = + { + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "g", Culture = ""]), + // Displays 04/10/2024 06:30 + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "g", Culture = "en-US"]), + // Displays 4/10/2024 6:30 AM + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "g", Culture = "fr-BE"]) + // Displays 10-04-24 06:30 + } +in + Source ``` [Back to table](#table) @@ -275,28 +248,25 @@ resultDateTime3 = DateTime.ToText(date1, [Format = "g", Culture = "fr-BE"]) The "G" standard format specifier represents a combination of the short date ("d") and long time ("T") patterns, separated by a space. The resulting text is affected by the formatting information of a specific culture. - +The result string is affected by the formatting information of a specific culture. + The following example uses the "G" format specifier to display a date and time value. ```powerquery-m -date1 = #datetime(2024, 4, 10, 6, 30, 0), -resultDateTime1 = DateTime.ToText(date1, [Format = "G"]), -// Displays 4/10/2024 6:30:00 AM -resultDateTime2 = DateTime.ToText(date1, [Format = "G", Culture = "en-US"]), -// Displays 4/10/2024 6:30:00 AM -resultDateTime3 = DateTime.ToText(date1, [Format = "G", Culture = "nl-BE"]) -// Displays 10/04/2024 6:30:00 +let + Source = + { + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "G", Culture = ""]), + // Displays 04/10/2024 06:30:00 + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "G", Culture = "en-US"]), + // Displays 4/10/2024 6:30:00 AM + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "G", Culture = "nl-BE"]) + // Displays 10/04/2024 6:30:00 + } +in + Source ``` [Back to table](#table) @@ -305,50 +275,110 @@ resultDateTime3 = DateTime.ToText(date1, [Format = "G", Culture = "nl-BE"]) ### The round-trip ("O", "o") format specifier -The "O" or "o" standard format specifier represents a custom date and time format string using a pattern that preserves time zone information and emits a result string that complies with ISO 8601. For **DateTimeZone** values, this format specifier is designed to preserve date, time, and timezone values in text. +The "O" or "o" standard format specifier represents a custom date and time format string using a pattern that preserves time zone information and emits a result string that complies with ISO 8601. For **DateTimeZone** values, this format specifier is designed to preserve date, time, and timezone values in text. -The "O" or "o" standard format specifier corresponds to the "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" custom format string for **DateTimeZone** values. In this text, the pairs of single quotation marks that delimit individual characters, such as the hyphens, the colons, and the letter "T", indicate that the individual character is a literal that can't be changed. The apostrophes don't appear in the output string. +The "O" or "o" standard format specifier corresponds to the "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffxxx" custom format string for **DateTimeZone** values. In this text, the pairs of single quotation marks that delimit individual characters, such as the hyphens, the colons, and the letter "T", indicate that the individual character is a literal that can't be changed. The apostrophes don't appear in the output string. -The "O" or "o" standard format specifier (and the "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK" custom format) takes advantage of the three ways that ISO 8601 represents time zone information to preserve the **DateTimeZone** values: +The "O" or "o" standard format specifier (and the "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffxxx" custom format) takes advantage of the three ways that ISO 8601 represents time zone information to preserve the **DateTimeZone** values: - The time zone component of [DateTimeZone.ToLocal](datetimezone-tolocal.md) date and time values is an offset from UTC (for example, +01:00, -07:00). - The time zone component of [DateTimeZone.ToUtc](datetimezone-toutc.md) date and time values uses +00.00 to represent UTC. - -- Unspecified date and time values have no time zone information. - Because the "O" or "o" standard format specifier conforms to an international standard, the formatting or parsing operation that uses the specifier always uses the invariant culture and the Gregorian calendar. - The following example uses the "o" format specifier to display a series of **DateTimeZone** values on a system in the U.S. Pacific Time zone. - ```powerquery-m let date1 = #datetimezone(2024, 6, 15, 13, 45, 30, 0, 0), - resultDateTime1 = Text.Format("#{0} (Unspecified) --> #{1}", {date1, DateTimeZone.ToText(date1, [Format = "O"])}), - resultDateTime2 = Text.Format("#{0} (Utc) --> #{1}", {date1, DateTimeZone.ToText(DateTimeZone.ToUtc(date1), [Format = "O"])}), - resultDateTime3 = Text.Format("#{0} (Local) --> #{1}", {date1, DateTimeZone.ToText(DateTimeZone.ToLocal(date1), [Format = "O"])}), - result = resultDateTime1 & "#(cr,lf)" & resultDateTime2 & "#(cr,lf)" & resultDateTime3 + Source = + { + Text.Format("#{0} (Unspecified) --> #{1}", {date1, DateTimeZone.ToText(date1, [Format = "O"])}), + Text.Format("#{0} (Utc) --> #{1}", {date1, DateTimeZone.ToText(DateTimeZone.ToUtc(date1), [Format = "O"])}), + Text.Format("#{0} (Local) --> #{1}", {date1, DateTimeZone.ToText(DateTimeZone.ToLocal(date1), [Format = "O"])}) + } in - result + Source // The example displays the following output: // 6/15/2024 1:45:30 PM +00:00 (Unspecified) --> 2024-06-15T13:45:30.0000000+00:00 // 6/15/2024 1:45:30 PM +00:00 (Utc) --> 2024-06-15T13:45:30.0000000+00:00 // 6/15/2024 1:45:30 PM +00:00 (Local) --> 2024-06-15T08:45:30.0000000-07:00 + ``` - - [Back to table](#table) @@ -357,28 +387,24 @@ The following example uses the "o" format specifier to create a formatted string The "R" or "r" standard format specifier represents a custom date and time format string that's not defined by a specific culture. It is always the same, regardless of the culture used or the format provider supplied. The custom format string is "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'". When this standard format specifier is used, the formatting or parsing operation always uses the invariant culture. - - -Although the RFC 1123 standard expresses a time as Coordinated Universal Time (UTC), the formatting operation doesn't modify the value of the date and time that's being formatted. Therefore, you must convert the value to UTC by calling the method before you perform the formatting operation. In contrast, values perform this conversion automatically; there's no need to call the method before the formatting operation. +Although the RFC 1123 standard expresses a time as Coordinated Universal Time (UTC), the formatting operation doesn't modify the value of the date and time that's being formatted. Therefore, you must convert the DateTime value to UTC by calling the [DateTimeZone.ToUtc](datetimezone-toutc.md) function method before you perform the formatting operation. The following example uses the "r" format specifier to display a time and date value on a system in the U.S. Pacific Time zone (seven hours behind UTC). - ```powerquery-m -date1 = #datetimezone(2024, 4, 10, 6, 30, 0, -7, 0), -dateOffset = DateTimeZone.ToLocal(date1), -resultDateTime1 = DateTimeZone.ToText(date1, [Format = "r"]), -// Displays Wed, 10 Apr 2024 13:30:00 GMT -resultDateTime2 = DateTimeZone.ToText(dateOffset, [Format = "r"]), -// Displays Wed, 10 Apr 2024 13:30:00 GMT +let + date1 = #datetimezone(2024, 4, 10, 6, 30, 0, -7, 0), + dateOffset = DateTimeZone.ToUtc(date1), + Source = + { + DateTimeZone.ToText(date1, [Format = "r"]), + // Displays Wed, 10 Apr 2024 13:30:00 GMT + + DateTimeZone.ToText(dateOffset, [Format = "r"]) + // Displays Wed, 10 Apr 2024 13:30:00 GMT + } +in + Source ``` [Back to table](#table) @@ -387,19 +413,21 @@ resultDateTime2 = DateTimeZone.ToText(dateOffset, [Format = "r"]), ### The sortable ("s") format specifier -The "s" standard format specifier represents a custom date and time format string that reflects a defined standard (ISO 8601), and is read-only. Therefore, it is always the same, regardless of the culture used or the format provider supplied. The custom format string is "yyyy'-'MM'-'dd'T'HH':'mm':'ss". - - -The purpose of the "s" format specifier is to produce result strings that sort consistently in ascending or descending order based on date and time values. As a result, although the "s" standard format specifier represents a date and time value in a consistent format, the formatting operation does not modify the value of the date and time object that is being formatted to reflect its property or its value. For example, the result strings produced by formatting the date and time values 2014-11-15T18:32:17+00:00 and 2014-11-15T18:32:17+08:00 are identical. +The "s" standard format specifier represents a custom date and time format string that reflects a defined standard (ISO 8601), and is read-only. Therefore, it is always the same, regardless of the culture used or the format provider supplied. The custom format string is "yyyy'-'MM'-'dd'T'HH':'mm':'ss". The purpose of the "s" format specifier is to produce result strings that sort consistently in ascending or descending order based on date and time values. When this standard format specifier is used, the formatting or parsing operation always uses the invariant culture. The following example uses the "s" format specifier to display a date and time value on a system in the U.S. Pacific Time zone. ```powerquery-m -date1 = #datetime(2024, 4, 10, 6, 30, 0), -resultDate1 = DateTime.ToText(date1, [Format = "s", Culture = "en-US"]), -// Displays 2024-04-10T06:30:00 +let + Source = + { + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "s", Culture = "en-US"]) + // Displays 2024-04-10T06:30:00 + } +in + Source ``` [Back to table](#table) @@ -408,50 +436,23 @@ resultDate1 = DateTime.ToText(date1, [Format = "s", Culture = "en-US"]), ### The universal sortable ("u") format specifier -The "u" standard format specifier represents a custom date and time format string that is always the same, regardless of the culture used or the format provider supplied. The custom format string is "yyyy'-'MM'-'dd HH':'mm':'ss'Z'". When this standard format specifier is used, the formatting or parsing operation always uses the invariant culture. +The "u" standard format specifier represents a custom date and time format string that is always the same, regardless of the culture used or the format provider supplied. The custom format string is "yyyy'-'MM'-'dd HH':'mm':'ss'Z'". The pattern reflects a defined standard, and the property is read-only. When this standard format specifier is used, the formatting or parsing operation always uses the invariant culture. -Although the result string should express a time as Coordinated Universal Time (UTC), no conversion of the original **DateTimeZon** value is performed during the formatting operation. Therefore, you must convert a **DateTimeZone** value to UTC by calling the [DateTimeZone.ToUtc](datetimeformat-toutc.md) function before formatting it. +Although the result string should express a time as Coordinated Universal Time (UTC), no conversion of the original **DateTimeZone** value is performed during the formatting operation. Therefore, you must convert a **DateTimeZone** value to UTC by calling the [DateTimeZone.ToUtc](datetimeformat-toutc.md) function before formatting it. The following example uses the "u" format specifier to display a date and time value. ```powerquery-m +let date1 = #datetimezone(2024, 4, 10, 6, 30, 0, -7, 0), dateOffset = DateTimeZone.ToUtc(date1), - resultDate1 = DateTimeZone.ToText(dateOffset, [Format = "u"]), - // Displays 2024-04-10 13:30:00Z -``` - -[Back to table](#table) - - - - -### The universal full ("U") format specifier - -The "U" standard format specifier represents a custom date and time format string that is defined by the specific culture. The pattern is the same as the "F" pattern. However, the **DateTimeZone** value is automatically converted to UTC before it's formatted. - - -The following example uses the "U" format specifier to display a date and time value. - -```powerquery-m -date1 = #datetimezone(2024, 4, 10, 6, 30, 0, 0, 0), -resultDate1 = DateTimeZone.ToText(date1, [Format = "U", Culture = "en-US"]), -// Displays -resultDate2 = DateTimeZone.ToText(date1, [Format = "U", Culture = "sv-FI"]), -// Displays + Source = + { + DateTimeZone.ToText(dateOffset, [Format = "u"]), + // Displays 2024-04-10 13:30:00Z + } +in + Source ``` [Back to table](#table) @@ -469,24 +470,25 @@ This group includes the following formats: The "t" standard format specifier represents a custom date and time format string that is defined by the specified culture. For example, the custom format string for the invariant culture is "HH:mm". - The following example uses the "t" format specifier to display a date and time value. ```powerquery-m -date1 = #datetime(2024, 4, 10, 6, 30, 0), -resultDate1 = DateTime.ToText(date1, [Format = "t", Culture = "en-US"]), -// Displays 6:30 AM -resultDate2 = DateTime.ToText(date1, [Format = "t", Culture = "es-ES"]), -// Displays 6:30 +let + Source = + { + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "t", Culture = ""]), + // Displays 06:30 + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "t", Culture = "en-US"]), + // Displays 6:30 AM + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "t", Culture = "es-ES"]) + // Displays 6:30 + } +in + Source ``` [Back to table](#table) @@ -497,24 +499,23 @@ resultDate2 = DateTime.ToText(date1, [Format = "t", Culture = "es-ES"]), The "T" standard format specifier represents a custom date and time format string that is defined by the specific culture. For example, the custom format string for the invariant culture is "HH:mm:ss". - The following example uses the "T" format specifier to display a date and time value. ```powerquery-m -date1 = #datetime(2024, 4, 10, 6, 30, 0), -resultDate1 = DateTime.ToText(date1, [Format = "T", Culture = "en-US"]), -// Displays 6:30:00 AM -resultDate2 = DateTime.ToText(date1, [Format = "T", Culture = "es-ES"]), -// Displays 6:30:00 +let + Source = + { + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "T", Culture = ""]), + // Displays 06:30:00 + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "T", Culture = "en-US"]), + // Displays 6:30:00 AM + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "T", Culture = "es-ES"]) + // Displays 6:30:00 + } +in + Source ``` [Back to table](#table) @@ -531,22 +532,23 @@ This group includes the following formats: The "M" or "m" standard format specifier represents a custom date and time format string that is defined by the specific culture. For example, the custom format string for the invariant culture is "MMMM dd". - The following example uses the "m" format specifier to display a date and time value. ```powerquery-m -date1 = #datetime(2024, 4, 10, 6, 30, 0), -resultDate1 = DateTime.ToText(date1, [Format = "m", Culture = "en-US"]), -// Displays April 10 -resultDate2 = DateTime.ToText(date1, [Format = "m", Culture = "ms-MY"]), -// Displays 10 April +let + Source = + { + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "m", Culture = ""]), + // Displays April 10 + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "m", Culture = "en-US"]), + // Displays April 10 + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "m", Culture = "ms-MY"]) + // Displays 10 April + } +in + Source ``` [Back to table](#table) @@ -557,45 +559,53 @@ resultDate2 = DateTime.ToText(date1, [Format = "m", Culture = "ms-MY"]), The "Y" or "y" standard format specifier represents a custom date format string that is defined by a specific culture. For example, the custom format string for the invariant culture is "yyyy MMMM". - The following example uses the "y" format specifier to display a date and time value. ```powerquery-m -date1 = #datetime(2024, 4, 10 6, 30, 0), -resultDate1 = DateTime.ToText(date1, [Format = "Y", Culture = "en-US"]), -// Displays April 2024 -resultDate2 = DateTime.ToText(date1, [Format = "y", Culture = "af-ZA"]) -// Displays April 2024 +let + Source = + { + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "Y", Culture = ""]), + // Displays 2024 April + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "Y", Culture = "en-US"]), + // Displays April 2024 + + DateTime.ToText(#datetime(2024, 4, 10, 6, 30, 0), [Format = "y", Culture = "af-ZA"]) + // Displays April 2024 + } +in + Source ``` [Back to table](#table) - \ No newline at end of file From d18b8f0b278f457ee6a1595fc20a8d087c2a7990 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 1 Oct 2024 14:05:21 -0700 Subject: [PATCH 581/934] Fixed broken links, added to table of contents --- ...-strings.md => custom-date-and-time-format-strings.md} | 8 ++++---- .../m/standard-date-and-time-format-strings.md | 3 +-- query-languages/m/toc.yml | 6 ++++++ 3 files changed, 11 insertions(+), 6 deletions(-) rename query-languages/m/{custum-date-and-time-format-strings.md => custom-date-and-time-format-strings.md} (99%) diff --git a/query-languages/m/custum-date-and-time-format-strings.md b/query-languages/m/custom-date-and-time-format-strings.md similarity index 99% rename from query-languages/m/custum-date-and-time-format-strings.md rename to query-languages/m/custom-date-and-time-format-strings.md index 4c8b5cca6..9d07ae73f 100644 --- a/query-languages/m/custum-date-and-time-format-strings.md +++ b/query-languages/m/custom-date-and-time-format-strings.md @@ -998,7 +998,7 @@ With **DateTimeZone** values, the "z" custom format specifier represents the sig The following table shows how the offset value changes depending on the **DateTimeZone** function. | DateTimeZone value | Offset value | -| - | - | +| --- | --- | | [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00. | | [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+0`. | @@ -1039,7 +1039,7 @@ With **DateTimeZone** values, the "zz" custom format specifier represents the si The following table shows how the offset value changes depending on the **DateTimeZone** function. | DateTimeZone value | Offset value | -| - | - | +| --- | --- | | [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00. | | [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+00`. | @@ -1078,7 +1078,7 @@ With **DateTimeZone** values, the "zzz" custom format specifier represents the s The following table shows how the offset value changes depending on the **DateTimeZone** function. | DateTimeZoneValue value | Offset value | -| - | - | +| --- | --- | | [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00.| | [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+00:00`. | @@ -1228,7 +1228,7 @@ There are two ways to indicate that characters are to be interpreted as literal ### How culture affects date and time format strings -For information on how culture affects numeric format strings, go to [How culture affects date and time format strings](standard-numeric-format-strings.md#how-culture-affects-date-and-time-format-strings). +For information on how culture affects numeric format strings, go to [How culture affects date and time format strings](standard-date-and-time-format-strings.md#how-culture-affects-date-and-time-format-strings). ### Using single custom format specifiers diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index f1a5e9abc..0869ee7eb 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -156,7 +156,6 @@ This group includes the following formats: - [The RFC1123 ("R", "r") format specifier](#the-rfc1123-r-r-format-specifier) - [The sortable ("s") format specifier](#the-sortable-s-format-specifier) - [The universal sortable ("u") format specifier](#the-universal-sortable-u-format-specifier) -- [The universal full ("U") format specifier](#the-universal-full-u-format-specifier) @@ -438,7 +437,7 @@ in The "u" standard format specifier represents a custom date and time format string that is always the same, regardless of the culture used or the format provider supplied. The custom format string is "yyyy'-'MM'-'dd HH':'mm':'ss'Z'". The pattern reflects a defined standard, and the property is read-only. When this standard format specifier is used, the formatting or parsing operation always uses the invariant culture. -Although the result string should express a time as Coordinated Universal Time (UTC), no conversion of the original **DateTimeZone** value is performed during the formatting operation. Therefore, you must convert a **DateTimeZone** value to UTC by calling the [DateTimeZone.ToUtc](datetimeformat-toutc.md) function before formatting it. +Although the result string should express a time as Coordinated Universal Time (UTC), no conversion of the original **DateTimeZone** value is performed during the formatting operation. Therefore, you must convert a **DateTimeZone** value to UTC by calling the [DateTimeZone.ToUtc](datetimezone-toutc.md) function before formatting it. The following example uses the "u" format specifier to display a date and time value. diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 2d1c6237b..398ce857f 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -48,6 +48,12 @@ items: href: metadata.md - name: Errors href: errors.md + - name: Format strings + items: + - name: Standard date and time format strings + href: standard-date-and-time-format-strings.md + - name: Custom date and time format strings + href: standard-date-and-time-format-strings.md - name: Functions items: - name: Functions overview From c4adbc9ee4f123b108b2fbf28fa44d9ced443fb2 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 1 Oct 2024 14:24:56 -0700 Subject: [PATCH 582/934] Fixed table formatting --- query-languages/m/custom-date-and-time-format-strings.md | 8 ++++---- .../m/standard-date-and-time-format-strings.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/custom-date-and-time-format-strings.md b/query-languages/m/custom-date-and-time-format-strings.md index 9d07ae73f..cd936977e 100644 --- a/query-languages/m/custom-date-and-time-format-strings.md +++ b/query-languages/m/custom-date-and-time-format-strings.md @@ -3,7 +3,7 @@ title: "Custom date and time format strings" description: Learn to use custom date and time format strings to convert DateTime or DateTimeOffset values into text representations, or to parse strings for dates & times. author: DougKlopfenstein ms.author: dougklo -ms.date: 9/10/2024 +ms.date: 10/1/2024 ms.topic: reference --- @@ -999,7 +999,7 @@ The following table shows how the offset value changes depending on the **DateTi | DateTimeZone value | Offset value | | --- | --- | -| [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00. | +| [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00`. | | [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+0`. | If the "z" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws an expression error. For more information about using a single format specifier, go to [Using Single Custom Format Specifiers](#using-single-custom-format-specifiers) later in this article. @@ -1040,7 +1040,7 @@ The following table shows how the offset value changes depending on the **DateTi | DateTimeZone value | Offset value | | --- | --- | -| [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00. | +| [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00`. | | [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+00`. | The following example includes the "zz" custom format specifier in a custom format string on a system in the U.S. Pacific Time zone. @@ -1079,7 +1079,7 @@ The following table shows how the offset value changes depending on the **DateTi | DateTimeZoneValue value | Offset value | | --- | --- | -| [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00.| +| [DateTimeZone.LocalNow](datetimezone-localnow.md) | On Power Query Desktop, the signed offset of the local operating system's time zone from UTC. On Power Query Online, returns `+00`.| | [DateTimeZone.UtcNow](datetimezone-utcnow.md) | Returns `+00:00`. | The following example includes the "zzz" custom format specifier in a custom format string on a system in the U.S. Pacific Time zone. diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index 0869ee7eb..33a230d18 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -3,7 +3,7 @@ title: "Standard date and time format strings" description: Learn how to use a standard date and time format string to define the text representation of a date and time value in .NET. author: DougKlopfenstein ms-author: dougklo -ms.date: 9/16/2024 +ms.date: 10/1/2024 ms.topic: reference --- # Standard date and time format strings From fb91db59db54493a04869fac595a86fb87ad75e0 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 1 Oct 2024 14:45:54 -0700 Subject: [PATCH 583/934] Fixed more links --- query-languages/m/custom-date-and-time-format-strings.md | 2 +- query-languages/m/toc.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/custom-date-and-time-format-strings.md b/query-languages/m/custom-date-and-time-format-strings.md index cd936977e..01c8cc2fa 100644 --- a/query-languages/m/custom-date-and-time-format-strings.md +++ b/query-languages/m/custom-date-and-time-format-strings.md @@ -99,7 +99,7 @@ in | "/" | The date separator.

More Information: [The "/" custom format specifier](#dateSeparator). | 2009-06-15T13:45:30 -> / (en-US)

2009-06-15T13:45:30 -> - (ar-DZ)

2009-06-15T13:45:30 -> . (tr-TR) | | "*string*"

'*string*' | Literal string delimiter.

More information: [Character literals](#Literals). | 2009-06-15T13:45:30 (""arr:"" h:m t) -> arr: 1:45 P

2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P | | % | Defines the following character as a custom format specifier.

More information: [Using single custom format specifiers](#using-single-custom-format-specifiers). | 2009-06-15T13:45:30 (%h) -> 1 | -| \, "", ' | The escape sequencess.

More information: [Character literals](#Literals) and [Using the escape sequences](#escape). | 2009-06-15T13:45:30 (h \h) -> 1 h

2009-06-15T13:45:30 (h ""h"") -> 1 h

2009-06-15T13:45:30 (h 'h') -> 1 h | +| \, "", ' | The escape sequences.

More information: [Character literals](#Literals) and [Using the escape sequences](#escape). | 2009-06-15T13:45:30 (h \h) -> 1 h

2009-06-15T13:45:30 (h ""h"") -> 1 h

2009-06-15T13:45:30 (h 'h') -> 1 h | | Any other character | The character is copied to the result string unchanged.

More information: [Character literals](#Literals). | 2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A | The following sections provide additional information about each custom date and time format specifier. Unless otherwise noted, each specifier produces an identical string representation regardless of whether it's used with a **Date**, **DateTime**, **DateTimeZone**, or **Time** value. diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 398ce857f..5e3e32dcb 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -53,7 +53,7 @@ items: - name: Standard date and time format strings href: standard-date-and-time-format-strings.md - name: Custom date and time format strings - href: standard-date-and-time-format-strings.md + href: custom-date-and-time-format-strings.md - name: Functions items: - name: Functions overview From 1104d675574e32e59475402240d47a450f0c0491 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 1 Oct 2024 15:17:30 -0700 Subject: [PATCH 584/934] Updated how culture affects strings --- query-languages/m/standard-date-and-time-format-strings.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index 33a230d18..77bae8ddd 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -583,9 +583,7 @@ in ## How culture affects date and time format strings -*Culture* is the standard locale that’s determined by the underlying platform where your queries are originally created. By default, your format strings use the current default culture. - -The current default culture can vary depending on whether you reference Power Query M on a local machine or a cloud platform. For example, if you develop Power Query M code on your local system in Power BI Desktop, the default culture is the locale settings used on your local system. If you develop Power Query M code in the Power BI service, the default culture is the locale settings used on the cloud service. The [list of Windows input locales](/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs#input-locales) can be used as the culture on the Windows platform. Other platforms, such as macOS, might use a different list of cultures. +Different countries and language groups have different conventions for formatting numbers. In Power Query, *culture* refers to the locale whose conventions are used to format numbers in Power Query M. The culture is set to the system locale (Windows, MacOS) when your queries are first authored. If you move your query to a different location that uses a different default culture, your query still uses the culture of the original location. From 8eaed3dc8798849855b84bf04e4d89da896c56ce Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 4 Oct 2024 10:59:10 -0700 Subject: [PATCH 585/934] Added link to text encoding information --- query-languages/m/csv-document.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index e35a6e169..8428d3319 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -17,7 +17,7 @@ Returns the contents of the CSV document as a table. * `columns` can be null, the number of columns, a list of column names, a table type, or an options record. * `delimiter` can be a single character, a list of characters, or the value `""`, which indicates rows should be split by consecutive whitespace characters. Default: `","`. * Refer to [ExtraValues.Type](extravalues-type.md) for the supported values of `extraValues`. -* `encoding` specifies the text encoding type. +* `encoding` specifies the [text encoding](textencoding-type.md) type. If a record is specified for `columns` (and `delimiter`, `extraValues`, and `encoding` are null), the following record fields may be provided: From a5b9725a4bbfd10850401e8bb40eefacb9cf425d Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 4 Oct 2024 12:42:33 -0700 Subject: [PATCH 586/934] Moved culture info to its own article --- .../m/custom-date-and-time-format-strings.md | 5 +-- .../m/how-culture-affects-text-formatting.md | 39 +++++++++++++++++++ .../standard-date-and-time-format-strings.md | 22 +---------- query-languages/m/toc.yml | 4 +- 4 files changed, 45 insertions(+), 25 deletions(-) create mode 100644 query-languages/m/how-culture-affects-text-formatting.md diff --git a/query-languages/m/custom-date-and-time-format-strings.md b/query-languages/m/custom-date-and-time-format-strings.md index 01c8cc2fa..3fe0cd0b3 100644 --- a/query-languages/m/custom-date-and-time-format-strings.md +++ b/query-languages/m/custom-date-and-time-format-strings.md @@ -1226,10 +1226,6 @@ There are two ways to indicate that characters are to be interpreted as literal ## Notes -### How culture affects date and time format strings - -For information on how culture affects numeric format strings, go to [How culture affects date and time format strings](standard-date-and-time-format-strings.md#how-culture-affects-date-and-time-format-strings). - ### Using single custom format specifiers A custom date and time format string consists of two or more characters. Date and time formatting methods interpret any single-character string as a standard date and time format string. If they don't recognize the character as a valid format specifier, they throw an expression error. For example, a format string that consists only of the specifier "h" is interpreted as a standard date and time format string. However, in this particular case, an exception is thrown because there is no "h" standard date and time format specifier. @@ -1296,6 +1292,7 @@ in ## Related content +- [How culture affects text formatting](how-culture-affects-text-formatting.md) - [Date, Time, DateTime, and DateTimeZone type conversion](type-conversion.md#date-time-datetime-and-datetimezone) - [Date functions](date-functions.md) - [DateTime functions](datetime-functions.md) diff --git a/query-languages/m/how-culture-affects-text-formatting.md b/query-languages/m/how-culture-affects-text-formatting.md new file mode 100644 index 000000000..2355d4ef4 --- /dev/null +++ b/query-languages/m/how-culture-affects-text-formatting.md @@ -0,0 +1,39 @@ +--- +title: How culture affects text formatting +description: Learn about how culture is related to the locale in which queries are authored and how you can change the default culture. +author: DougKlopfenstein +ms-author: dougklo +ms.date: 10/4/2024 +ms.topic: reference +--- + +# How culture affects text formatting + +Different countries and language groups have different conventions for formatting different kinds of text, such as numbers, dates, and time. In Power Query, *culture* refers to the locale whose conventions are used to format this type of text in Power Query M. + +## Default culture + +The default culture is set to the system locale (Windows, MacOS) when your queries are first authored. For example, if you author your queries in Power Query Desktop, the default culture is defined by the locale set on your local computer. However, if you author your queries in the Power Query Online, the default culture is defined by the locale set on the online service. No matter where you author your query, if you move your query to a different location that uses a different default culture, your query still uses the culture of the original location. + +To use the current default culture, no culture setting is required in your Power Query M code. + +However, you can change the default culture in the Power Query settings dialog where you create the query. For example, if you are running Power Query from Excel: + +1. In Power Query, select **File** > **Options and settings** > **Query options**. +1. Under **Current Workbook**, select **Regional Settings**. +1. Select the locale you want to use. + +Other versions of Power Query work similarly. In general, within Power Query you select **Options**, which opens the **Options** dialog. Then select **Regional Settings** and select the locale you want to use. + +## Invariant culture + +The invariant culture is culture-insensitive; it's associated with the English language but not with any country or region. You specify the invariant culture by name by using an empty string ("") in functions that include the culture parameter. + +Unlike culture-sensitive data, which is subject to change by user customization or by updates to the operating system, invariant culture data is stable over time and across installed cultures and can't be customized by users. This makes the invariant culture particularly useful for operations that require culture-independent results, such as formatting and parsing operations that persist formatted data, or sorting and ordering operations that require that data be displayed in a fixed order regardless of culture. + +To use the invariant culture in Power Query M, use the blank text value (`""`) in the numeric functions that support culture, or (`Culture = ""`) in date and time functions that support culture. + +## Related content + +- [Standard date and time format strings](standard-date-and-time-format-strings.md) +- [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index 77bae8ddd..d0a31a868 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -579,27 +579,9 @@ in [Back to table](#table) - - -## How culture affects date and time format strings - -Different countries and language groups have different conventions for formatting numbers. In Power Query, *culture* refers to the locale whose conventions are used to format numbers in Power Query M. - -The culture is set to the system locale (Windows, MacOS) when your queries are first authored. If you move your query to a different location that uses a different default culture, your query still uses the culture of the original location. - -However, you can change the default culture in the Power Query settings dialog where you create the query. For example, if you are running Power Query from Excel: - -1. In Power Query, select **File** > **Options and settings** > **Query options**. -1. Under **Current Workbook, select **Regional Settings**. -1. Select the locale you want to use. - -Other versions of Power Query work similarly. In general, within Power Query you select **Options**, which opens the **Options** dialog. Then select **Regional Settings** and select the locale you want to use. - -> [!NOTE] -> The current default culture is different than the invariant culture. To use the current default culture, no culture setting is required. To use the invariant culture, you use `Culture = ""` in the functions that support culture. - -## See also +## Related content +- [How culture affects text formatting](how-culture-affects-text-formatting.md) - [Date, Time, DateTime, and DateTimeZone type conversion](type-conversion.md#date-time-datetime-and-datetimezone) - [Date functions](date-functions.md) - [DateTime functions](datetime-functions.md) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 5e3e32dcb..3ef51ae45 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -48,12 +48,14 @@ items: href: metadata.md - name: Errors href: errors.md - - name: Format strings + - name: Text formatting items: - name: Standard date and time format strings href: standard-date-and-time-format-strings.md - name: Custom date and time format strings href: custom-date-and-time-format-strings.md + - name: How culture affects text formatting + href: how-culture-affects-text-formatting - name: Functions items: - name: Functions overview From f8ffbdac7830e71f999de7f8d9ff73522c39c0a6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 4 Oct 2024 12:45:25 -0700 Subject: [PATCH 587/934] Fixed broken link --- query-languages/m/toc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 3ef51ae45..8ef873279 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -55,7 +55,7 @@ items: - name: Custom date and time format strings href: custom-date-and-time-format-strings.md - name: How culture affects text formatting - href: how-culture-affects-text-formatting + href: how-culture-affects-text-formatting.md - name: Functions items: - name: Functions overview From 610d4750069865bfbda66093f16bea16db8f24c0 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 7 Oct 2024 07:20:39 -0700 Subject: [PATCH 588/934] More minor fixes --- query-languages/m/custom-date-and-time-format-strings.md | 6 +++--- query-languages/m/standard-date-and-time-format-strings.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/custom-date-and-time-format-strings.md b/query-languages/m/custom-date-and-time-format-strings.md index 3fe0cd0b3..6e0f31258 100644 --- a/query-languages/m/custom-date-and-time-format-strings.md +++ b/query-languages/m/custom-date-and-time-format-strings.md @@ -1,9 +1,9 @@ --- title: "Custom date and time format strings" -description: Learn to use custom date and time format strings to convert DateTime or DateTimeOffset values into text representations, or to parse strings for dates & times. +description: Learn to use custom date and time format strings to convert date and time values into text representations, or to parse strings for dates and times. author: DougKlopfenstein ms.author: dougklo -ms.date: 10/1/2024 +ms.date: 10/7/2024 ms.topic: reference --- @@ -1182,7 +1182,7 @@ in There are two ways to indicate that characters are to be interpreted as literal characters and not as reserve characters, so that they can be included in a result string or successfully parsed in an input string: -- By escaping each reserved character. For more information, go to [Using the escape sequence](#escape). +- By escaping each reserved character. For more information, go to [Using the escape sequences](#escape). The following example includes the literal characters "pst" (for Pacific Standard time) to represent the local time zone in a format string. Because both "s" and "t" are custom format strings, both characters must be escaped to be interpreted as character literals. diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index d0a31a868..73adcff9f 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -1,9 +1,9 @@ --- title: "Standard date and time format strings" -description: Learn how to use a standard date and time format string to define the text representation of a date and time value in .NET. +description: Learn how to use a standard date and time format string to define the text representation of a date and time value in Power Query M. author: DougKlopfenstein ms-author: dougklo -ms.date: 10/1/2024 +ms.date: 10/7/2024 ms.topic: reference --- # Standard date and time format strings From ab4c6d75ca962ac04b5e690458f07bc402f6ce3f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 7 Oct 2024 10:39:36 -0700 Subject: [PATCH 589/934] Added more types to type specification --- query-languages/m/m-spec-types.md | 16 +++++++++++++++- query-languages/m/type-conversion.md | 10 +++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 05b3a6d6f..7e09ac3fc 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -2,7 +2,7 @@ title: M Language types description: Describes using types in the Power Query M formula language ms.topic: conceptual -ms.date: 1/31/2024 +ms.date: 10/7/2024 ms.custom: "nonautomated-date" --- @@ -132,6 +132,20 @@ Types in the M language form a disjoint hierarchy rooted at type `any`, which is * `type anynonnull`, which classifies all values excluding null. * `type none`, which classifies no values. +Additional types that don't have shorthand monikers are: + +* `Byte.Type`, which classifies an 8-bit number value. +* `Int8.Type`, which classifies an 8-bit number value. +* `Int16.Type`, which classifies a 16-bit number value. +* `Int32.Type`, which classifies a 32-bit number value. +* `Int64.Type`, which classifies a 64-bit number value. +* `Single.Type`, which classifies a 9-digit floating number value. +* `Double.Type`, which classifies a 17-digit floating number value. +* `Decimal.Type`, which classifies a 15-digit floating number value. +* `Currency.Type`, which classifies a 19-digit number value with four digits to the right of the "." separator. +* `Percentage.Type`, which classifies a 15-digit number value with a mask to format the value as a percentage. +* `Guid.Type`, which classifies a GUID text value. + ## Any Type The type `any` is abstract, classifies all values in M, and all types in M are compatible with `any`. Variables of type `any` can be bound to all possible values. Since `any` is abstract, it cannot be ascribed to values—that is, no value is directly of type `any`. diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 724f0cff8..dfa5fda1e 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -2,7 +2,7 @@ description: "Learn more about: Type conversion" title: "Type conversion" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 10/7/2024 ms.custom: "nonautomated-date" --- @@ -17,18 +17,22 @@ The Power Query M formula language has formulas to convert between types. The fo |Number.FromText(text as text) as number|Returns a number value from a text value.| |Number.ToText(number as number) as text|Returns a text value from a number value.| |Number.From(value as any) as number|Returns a number value from a value.| +|Byte.From(value as any) as number|Returns an 8-bit integer number value from the given value.| +|Int8.From(value as any) as number|Returns an 8-bit integer number value from the given value.| +|Int16.From(value as any) as number|Returns a 16-bit integer number value from the given value.| |Int32.From(value as any) as number|Returns a 32-bit integer number value from the given value.| |Int64.From(value as any) as number|Returns a 64-bit integer number value from the given value.| |Single.From(value as any) as number|Returns a Single number value from the given value.| |Double.From(value as any) as number|Returns a Double number value from the given value.| |Decimal.From(value as any) as number|Returns a Decimal number value from the given value.| -|Currency.From(value as any) as number|Returns a Currency number value from the given value.| +|Currency.From(value as any) as number|Returns a Currency number value from the given value.| +|Percentage.From(value as any) as number|Returns a Percentage number value from the given value.| ## Text |Type conversion|Description| |-------------------|---------------| -|Text.From(value as any) as text|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration or binary value.| +|Text.From(value as any) as text|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration, or binary value.| ## Logical From e80e2654640b4a59a07b1c6927ade6b4b35c22ac Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 7 Oct 2024 12:57:24 -0700 Subject: [PATCH 590/934] Updated format strings information --- query-languages/m/analysisservices-database.md | 4 ++++ .../m/analysisservices-databases.md | 4 ++++ query-languages/m/byte-from.md | 4 ++++ query-languages/m/comparer-equals.md | 4 ++++ query-languages/m/comparer-fromculture.md | 2 +- query-languages/m/comparer-ordinal.md | 4 ++++ query-languages/m/culture-current.md | 4 ++++ query-languages/m/currency-from.md | 4 ++++ .../m/custom-numeric-format-strings.md | 5 +---- query-languages/m/date-dayofweek.md | 4 ++++ query-languages/m/date-dayofweekname.md | 4 ++++ query-languages/m/date-from.md | 8 +++++++- query-languages/m/date-fromtext.md | 8 +++++++- query-languages/m/date-monthname.md | 4 ++++ query-languages/m/date-totext.md | 8 +++++++- query-languages/m/date-weekofyear.md | 4 ++++ query-languages/m/datetime-from.md | 6 ++++++ query-languages/m/datetime-fromtext.md | 8 +++++++- query-languages/m/datetime-totext.md | 8 +++++++- .../m/datetimezone-fixedlocalnow.md | 2 +- query-languages/m/datetimezone-from.md | 6 ++++++ query-languages/m/datetimezone-fromtext.md | 8 +++++++- query-languages/m/datetimezone-totext.md | 8 +++++++- query-languages/m/decimal-from.md | 4 ++++ query-languages/m/double-from.md | 4 ++++ query-languages/m/int16-from.md | 4 ++++ query-languages/m/int32-from.md | 4 ++++ query-languages/m/int64-from.md | 4 ++++ query-languages/m/int8-from.md | 4 ++++ query-languages/m/number-from.md | 6 ++++++ query-languages/m/number-fromtext.md | 6 ++++++ query-languages/m/number-totext.md | 8 +++++++- query-languages/m/percentage-from.md | 4 ++++ query-languages/m/single-from.md | 4 ++++ .../m/standard-numeric-format-strings.md | 18 +----------------- .../m/table-addfuzzyclustercolumn.md | 4 ++++ query-languages/m/table-fuzzygroup.md | 4 ++++ query-languages/m/table-fuzzyjoin.md | 4 ++++ query-languages/m/table-fuzzynestedjoin.md | 4 ++++ query-languages/m/table-promoteheaders.md | 4 ++++ .../m/table-transformcolumnnames.md | 4 ++++ .../m/table-transformcolumntypes.md | 4 ++++ query-languages/m/text-contains.md | 4 ++++ query-languages/m/text-endswith.md | 4 ++++ query-languages/m/text-format.md | 4 ++++ query-languages/m/text-from.md | 8 ++++++++ query-languages/m/text-infernumbertype.md | 6 +++++- query-languages/m/text-lower.md | 4 ++++ query-languages/m/text-positionof.md | 4 ++++ query-languages/m/text-proper.md | 4 ++++ query-languages/m/text-startswith.md | 4 ++++ query-languages/m/text-upper.md | 4 ++++ query-languages/m/time-from.md | 6 ++++++ query-languages/m/time-fromtext.md | 8 +++++++- query-languages/m/time-totext.md | 8 +++++++- query-languages/m/value-fromtext.md | 4 ++++ 56 files changed, 257 insertions(+), 34 deletions(-) diff --git a/query-languages/m/analysisservices-database.md b/query-languages/m/analysisservices-database.md index f6342e395..cfd40969b 100644 --- a/query-languages/m/analysisservices-database.md +++ b/query-languages/m/analysisservices-database.md @@ -21,3 +21,7 @@ Returns a table of multidimensional cubes or tabular models from the Analysis Se * `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. * `SubQueries`: A number (0, 1 or 2) that sets the value of the "SubQueries" property in the connection string. This controls the behavior of calculated members on subselects or subcubes. (The default value is 2). * `Implementation` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/analysisservices-databases.md b/query-languages/m/analysisservices-databases.md index f087cd16f..88353dc88 100644 --- a/query-languages/m/analysisservices-databases.md +++ b/query-languages/m/analysisservices-databases.md @@ -20,3 +20,7 @@ Returns databases on an Analysis Services instance, `server`. An optional record * `ConnectionTimeout`: A duration that controls how long to wait before abandoning an attempt to make a connection to the server. The default value is driver-dependent. * `SubQueries`: A number (0, 1 or 2) that sets the value of the "SubQueries" property in the connection string. This controls the behavior of calculated members on subselects or subcubes. (The default value is 2). * `Implementation` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index b5aef69b2..f731a99fe 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -41,3 +41,7 @@ Byte.From("4.5", null, RoundingMode.AwayFromZero) **Output** `5` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index 55cf76d32..cdb195b43 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -35,3 +35,7 @@ Comparer.Equals(Comparer.FromCulture("en-US"), "1", "A") **Output** `false` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index 9a8ed1199..dea3a7b3e 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -16,7 +16,7 @@ Returns a comparer function that uses the `culture` and the case-sensitivity spe A comparer function accepts two arguments and returns -1, 0, or 1 based on whether the first value is less than, equal to, or greater than the second. -The default value for `ignoreCase` is false. The `culture` should be one of the locales supported by the .NET framework (for example, "en-US"). +The default value for `ignoreCase` is false. The `culture` should be one of the locales supported by the operating system (for example, "en-US"). ## Example 1 diff --git a/query-languages/m/comparer-ordinal.md b/query-languages/m/comparer-ordinal.md index 004684fa8..b1518b015 100644 --- a/query-languages/m/comparer-ordinal.md +++ b/query-languages/m/comparer-ordinal.md @@ -29,3 +29,7 @@ Comparer.Equals(Comparer.Ordinal, "encyclopædia", "encyclopaedia") **Output** `false` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/culture-current.md b/query-languages/m/culture-current.md index 3b3138616..f0e6f7756 100644 --- a/query-languages/m/culture-current.md +++ b/query-languages/m/culture-current.md @@ -7,3 +7,7 @@ title: "Culture.Current" ## About Returns the name of the current culture for the application. + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/currency-from.md b/query-languages/m/currency-from.md index b2a41ba48..bddea47b9 100644 --- a/query-languages/m/currency-from.md +++ b/query-languages/m/currency-from.md @@ -41,3 +41,7 @@ Currency.From("1.23455", "en-US", RoundingMode.Down) **Output** `1.2345` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index 69500d0f9..b5f5770f9 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -428,10 +428,6 @@ in ## Notes -### How culture affects numeric format strings - -For information on how culture affects numeric format strings, go to [How culture affects numeric format strings](standard-numeric-format-strings.md#how-culture-affects-numeric-format-strings). - ### Floating-Point infinities and NaN Regardless of the format string, if the value of a `Decimal.Type`, `Single.Type` or `Double.Type` floating-point type is positive infinity, negative infinity, or not a number (NaN), the formatted string is the value of the respective [Number.PositiveInfinity](number-positiveinfinity.md), [Number.NegativeInfinity](number-negativeinfinity.md), or [Number.NaN](number-nan.md) constants specified by the currently applicable culture. @@ -466,6 +462,7 @@ in ## Related content +- [How culture affects text formatting](how-culture-affects-text-formatting.md) - [Number type conversion](type-conversion.md#number) - [Data Types in Power Query](/power-query/data-types) - [Standard Numeric Format Strings](standard-numeric-format-strings.md) diff --git a/query-languages/m/date-dayofweek.md b/query-languages/m/date-dayofweek.md index 1e204dd15..6f3036b7f 100644 --- a/query-languages/m/date-dayofweek.md +++ b/query-languages/m/date-dayofweek.md @@ -44,3 +44,7 @@ Date.DayOfWeek(#date(2011, 02, 21), Day.Monday) **Output** `0` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/date-dayofweekname.md b/query-languages/m/date-dayofweekname.md index 5234aabc4..027117064 100644 --- a/query-languages/m/date-dayofweekname.md +++ b/query-languages/m/date-dayofweekname.md @@ -28,3 +28,7 @@ Date.DayOfWeekName(#date(2011, 12, 31), "en-US") **Output** `"Saturday"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/date-from.md b/query-languages/m/date-from.md index ce6ae00ba..d6f669b04 100644 --- a/query-languages/m/date-from.md +++ b/query-languages/m/date-from.md @@ -12,7 +12,7 @@ Date.From(value as any, optional culture as nullable text) as null ## About -Returns a `date` value from the given `value`. An optional `culture`> may also be provided (for example, "en-US"). If the given `value` is `null`, **Date.From** returns `null`. If the given `value` is `date`, `value` is returned. Values of the following types can be converted to a `date` value: +Returns a `date` value from the given `value`. An optional `culture` may also be provided (for example, "en-US"). If the given `value` is `null`, **Date.From** returns `null`. If the given `value` is `date`, `value` is returned. Values of the following types can be converted to a `date` value: * `text`: A `date` value from textual representation. Refer to [Date.FromText](date-fromtext.md) for details. * `datetime`: The date component of the `value`. @@ -48,3 +48,9 @@ Date.From(#datetime(1899, 12, 30, 06, 45, 12)) **Output** `#date(1899, 12, 30)` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/date-fromtext.md b/query-languages/m/date-fromtext.md index ab4c6bbaa..7a91fcf2d 100644 --- a/query-languages/m/date-fromtext.md +++ b/query-languages/m/date-fromtext.md @@ -14,7 +14,7 @@ Date.FromText(text as nullable text, optional options as any) as n Creates a `date` value from a textual representation, `text`. An optional `record` parameter, `options`, may be provided to specify additional properties. The `record` can contain the following fields: -* `Format`: A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in parsing the date using a best effort. +* `Format`: A `text` value indicating the format to use. For more details, go to [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` will result in parsing the date using a best effort. * `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"MMM"` is `"Jan", "Feb", "Mar", ...`, while in `"ru-RU"` `"MMM"` is `"янв", "фев", "мар", ...`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. @@ -61,3 +61,9 @@ Date.FromText("1400", [Format="yyyy", Culture="ar-SA"]) **Output** `#date(1979, 11, 20)` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/date-monthname.md b/query-languages/m/date-monthname.md index 08cefd91e..9281e7097 100644 --- a/query-languages/m/date-monthname.md +++ b/query-languages/m/date-monthname.md @@ -27,3 +27,7 @@ Date.MonthName(#datetime(2011, 12, 31, 5, 0, 0), "en-US") **Output** `"December"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/date-totext.md b/query-languages/m/date-totext.md index 8f497d5f8..5639915bd 100644 --- a/query-languages/m/date-totext.md +++ b/query-languages/m/date-totext.md @@ -14,7 +14,7 @@ Date.ToText(date as nullable date, optional options as any, option Returns a textual representation of `date`. An optional `record` parameter, `options`, may be provided to specify additional properties. `culture` is only used for legacy workflows. The `record` can contain the following fields: -* `Format`: A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. +* `Format`: A `text` value indicating the format to use. For more details, go to [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. * `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"MMM"` is `"Jan", "Feb", "Mar", ...`, while in `"ru-RU"` `"MMM"` is `"янв", "фев", "мар", ...`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. @@ -61,3 +61,9 @@ Date.ToText(#date(2000, 1, 1), [Format="yyyy", Culture="ar-SA"]) **Output** `"1420"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/date-weekofyear.md b/query-languages/m/date-weekofyear.md index ef35247b5..e0bc65910 100644 --- a/query-languages/m/date-weekofyear.md +++ b/query-languages/m/date-weekofyear.md @@ -45,3 +45,7 @@ Date.WeekOfYear(#date(2011, 03, 27), Day.Monday) **Output** `13` + +## Related content + +- [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/datetime-from.md b/query-languages/m/datetime-from.md index a18e9e097..2a40d325d 100644 --- a/query-languages/m/datetime-from.md +++ b/query-languages/m/datetime-from.md @@ -49,3 +49,9 @@ DateTime.From(#date(1975, 4, 4)) **Output** `#datetime(1975, 4, 4, 0, 0, 0)` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/datetime-fromtext.md b/query-languages/m/datetime-fromtext.md index 3fd8942a2..37ad36466 100644 --- a/query-languages/m/datetime-fromtext.md +++ b/query-languages/m/datetime-fromtext.md @@ -14,7 +14,7 @@ DateTime.FromText(text as nullable text, optional options as any) Creates a `datetime` value from a textual representation, `text`. An optional `record` parameter, `options`, may be provided to specify additional properties. The `record` can contain the following fields: -* `Format`: A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in parsing the date using a best effort. +* `Format`: A `text` value indicating the format to use. For more details, go to [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` will result in parsing the date using a best effort. * `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"MMM"` is `"Jan", "Feb", "Mar", ...`, while in `"ru-RU"` `"MMM"` is `"янв", "фев", "мар", ...`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. @@ -75,3 +75,9 @@ DateTime.FromText("20101231T013000", [Format="yyyyMMdd'T'HHmmss", Culture="en-US **Output** `#datetime(2010, 12, 31, 1, 30, 0)` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/datetime-totext.md b/query-languages/m/datetime-totext.md index 85ef12fe0..a28c119b9 100644 --- a/query-languages/m/datetime-totext.md +++ b/query-languages/m/datetime-totext.md @@ -14,7 +14,7 @@ DateTime.ToText(dateTime as nullable datetime, optional options as Returns a textual representation of `dateTime`. An optional `record` parameter, `options`, may be provided to specify additional properties. `culture` is only used for legacy workflows. The `record` can contain the following fields: -* `Format`: A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. +* `Format`: A `text` value indicating the format to use. For more details, go to [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. * `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"MMM"` is `"Jan", "Feb", "Mar", ...`, while in `"ru-RU"` `"MMM"` is `"янв", "фев", "мар", ...`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. @@ -61,3 +61,9 @@ DateTime.ToText(#datetime(2000, 2, 8, 3, 45, 12),[Format="yyyy-MM-dd'T'HH:mm:ss' **Output** `"2000-02-08T03:45:12Z"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/datetimezone-fixedlocalnow.md b/query-languages/m/datetimezone-fixedlocalnow.md index acfbf1e31..b4e8c3a43 100644 --- a/query-languages/m/datetimezone-fixedlocalnow.md +++ b/query-languages/m/datetimezone-fixedlocalnow.md @@ -12,4 +12,4 @@ DateTimeZone.FixedLocalNow() as datetimezone ## About -Returns a `datetime` value set to the current date and time on the system. The returned value contains timezone information representing the local timezone. This value is fixed and will not change with successive calls, unlike DateTimeZone.LocalNow, which may return different values over the course of execution of an expression. +Returns a `datetime` value set to the current date and time on the system. The returned value contains timezone information representing the local timezone. This value is fixed and will not change with successive calls, unlike [DateTimeZone.LocalNow](datetimezone-localnow.md), which may return different values over the course of execution of an expression. diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index a0ce246b5..9a8a2f1d0 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -35,3 +35,9 @@ DateTimeZone.From("2020-10-30T01:30:00-08:00") **Output** `#datetimezone(2020, 10, 30, 01, 30, 00, -8, 00)` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/datetimezone-fromtext.md b/query-languages/m/datetimezone-fromtext.md index da9bccf74..e15e1b572 100644 --- a/query-languages/m/datetimezone-fromtext.md +++ b/query-languages/m/datetimezone-fromtext.md @@ -14,7 +14,7 @@ DateTimeZone.FromText(text as nullable text, optional options as a Creates a `datetimezone` value from a textual representation, `text`. An optional `record` parameter, `options`, may be provided to specify additional properties. The `record` can contain the following fields: -* `Format`: A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in parsing the date using a best effort. +* `Format`: A `text` value indicating the format to use. For more details, go to [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` will result in parsing the date using a best effort. * `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"MMM"` is `"Jan", "Feb", "Mar", ...`, while in `"ru-RU"` `"MMM"` is `"янв", "фев", "мар", ...`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. @@ -61,3 +61,9 @@ DateTimeZone.FromText("2009-06-15T13:45:30.0000000-07:00", [Format="O", Culture= **Output** `#datetimezone(2009, 6, 15, 13, 45, 30, -7, 0)` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/datetimezone-totext.md b/query-languages/m/datetimezone-totext.md index 26a20e38c..b54749af6 100644 --- a/query-languages/m/datetimezone-totext.md +++ b/query-languages/m/datetimezone-totext.md @@ -14,7 +14,7 @@ DateTimeZone.ToText(dateTimeZone as nullable datetimezone, optional op Returns a textual representation of `dateTimeZone`. An optional `record` parameter, `options`, may be provided to specify additional properties. `culture` is only used for legacy workflows. The `record` can contain the following fields: -* `Format`: A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. +* `Format`: A `text` value indicating the format to use. For more details, go to * [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. * `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"MMM"` is `"Jan", "Feb", "Mar", ...`, while in `"ru-RU"` `"MMM"` is `"янв", "фев", "мар", ...`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. @@ -61,3 +61,9 @@ DateTimeZone.ToText(#datetimezone(2000, 2, 8, 3, 45, 12, 2, 0),[Format="O", Cult **Output** `"2000-02-08T03:45:12.0000000+02:00"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/decimal-from.md b/query-languages/m/decimal-from.md index 5c42ae315..18c68d74d 100644 --- a/query-languages/m/decimal-from.md +++ b/query-languages/m/decimal-from.md @@ -27,3 +27,7 @@ Decimal.From("4.5") **Output** `4.5` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/double-from.md b/query-languages/m/double-from.md index e1179c605..7963a1457 100644 --- a/query-languages/m/double-from.md +++ b/query-languages/m/double-from.md @@ -27,3 +27,7 @@ Double.From("4.5") **Output** `4.5` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/int16-from.md b/query-languages/m/int16-from.md index cf44bcd51..c5153c518 100644 --- a/query-languages/m/int16-from.md +++ b/query-languages/m/int16-from.md @@ -41,3 +41,7 @@ Int16.From("4.5", null, RoundingMode.AwayFromZero) **Output** `5` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/int32-from.md b/query-languages/m/int32-from.md index f94935485..a0a4fcd03 100644 --- a/query-languages/m/int32-from.md +++ b/query-languages/m/int32-from.md @@ -41,3 +41,7 @@ Int32.From("4.5", null, RoundingMode.AwayFromZero) **Output** `5` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/int64-from.md b/query-languages/m/int64-from.md index 343502d31..d37d670aa 100644 --- a/query-languages/m/int64-from.md +++ b/query-languages/m/int64-from.md @@ -41,3 +41,7 @@ Int64.From("4.5", null, RoundingMode.AwayFromZero) **Output** `5` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index 1e7783953..45b279eac 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -41,3 +41,7 @@ Int8.From("4.5", null, RoundingMode.AwayFromZero) **Output** `5` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/number-from.md b/query-languages/m/number-from.md index e9e799f20..44dee9981 100644 --- a/query-languages/m/number-from.md +++ b/query-languages/m/number-from.md @@ -65,3 +65,9 @@ Number.From("12.3%") **Output** `0.123` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard numeric format strings](standard-numeric-format-strings.md) +* [Custom numeric format strings](custom-numeric-format-strings.md) diff --git a/query-languages/m/number-fromtext.md b/query-languages/m/number-fromtext.md index 3804491ca..5b401ade7 100644 --- a/query-languages/m/number-fromtext.md +++ b/query-languages/m/number-fromtext.md @@ -44,3 +44,9 @@ Number.FromText("5.0e-10") **Output** `5E-10` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard numeric format strings](standard-numeric-format-strings.md) +* [Custom numeric format strings](custom-numeric-format-strings.md) diff --git a/query-languages/m/number-totext.md b/query-languages/m/number-totext.md index 473b3dcdd..02e580021 100644 --- a/query-languages/m/number-totext.md +++ b/query-languages/m/number-totext.md @@ -14,7 +14,7 @@ Number.ToText(number as nullable number, optional format as nullab Converts the numeric value `number` to a text value according to the format specified by `format`. -The format is a text value indicating how the number should be converted. For more details on the supported format values, go to [https://go.microsoft.com/fwlink/?linkid=2241210](https://go.microsoft.com/fwlink/?linkid=2241210) and [https://go.microsoft.com/fwlink/?linkid=2240884](https://go.microsoft.com/fwlink/?linkid=2240884). +The format is a text value indicating how the number should be converted. For more details on the supported format values, go to [Standard numeric format strings](standard-numeric-format-strings.md) and [Custom numeric format strings](custom-numeric-format-strings.md). An optional `culture` may also be provided (for example, "en-US") to control the culture-dependent behavior of `format`. @@ -59,3 +59,9 @@ Number.ToText(-0.1234, "P1") **Output** `"-12.3 %"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard numeric format strings](standard-numeric-format-strings.md) +* [Custom numeric format strings](custom-numeric-format-strings.md) diff --git a/query-languages/m/percentage-from.md b/query-languages/m/percentage-from.md index d39014c3e..c5747d47e 100644 --- a/query-languages/m/percentage-from.md +++ b/query-languages/m/percentage-from.md @@ -27,3 +27,7 @@ Percentage.From("12.3%") **Output** `0.123` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/single-from.md b/query-languages/m/single-from.md index 04e80afbd..80ecf9a23 100644 --- a/query-languages/m/single-from.md +++ b/query-languages/m/single-from.md @@ -27,3 +27,7 @@ Single.From("1.5") **Output** `1.5` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index 398e48a76..717d84c3b 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -355,23 +355,6 @@ in This section contains additional information about using standard numeric format strings. -### How culture affects numeric format strings - -Different countries and language groups have different conventions for formatting numbers. In Power Query, *culture* refers to the locale whose conventions are used to format numbers in Power Query M. - -The culture is set to the system locale (Windows, MacOS) when your queries are first authored. If you move your query to a different location that uses a different default culture, your query still uses the culture of the original location. - -However, you can change the default culture in the Power Query settings dialog where you create the query. For example, if you are running Power Query from Excel: - -1. In Power Query, select **File** > **Options and settings** > **Query options**. -1. Under **Current Workbook**, select **Regional Settings**. -1. Select the locale you want to use. - -Other versions of Power Query work similarly. In general, within Power Query you select **Options**, which opens the **Options** dialog. Then select **Regional Settings** and select the locale you want to use. - -> [!NOTE] -> The current default culture is different than the invariant culture. To use the current default culture, no culture setting is required in your Power Query M code. To use the invariant culture, you use the blank text value ("") in the number functions that support culture. - ### Integral and floating-point numeric types Some descriptions of standard numeric format specifiers refer to integral or floating-point numeric types. The integral numeric types are `Byte.Type`, `Int8.Type`, `Int16.Type`, `Int32.Type`, and`Int64.Type`. The floating-point numeric types are `Decimal.Type`, `Single.Type`, and `Double.Type`. @@ -422,6 +405,7 @@ in ## Related content +- [How culture affects text formatting](how-culture-affects-text-formatting.md) - [Number type conversion](type-conversion.md#number) - [Data Types in Power Query](/power-query/data-types) - [Custom Numeric Format Strings](custom-numeric-format-strings.md) diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index 4354ebffe..b90917da2 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -65,3 +65,7 @@ Table.FromRecords( type table [EmployeeID = nullable number, Location = nullable text, Location_Cleaned = nullable text] ) ``` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/table-fuzzygroup.md b/query-languages/m/table-fuzzygroup.md index 0eb1b57e5..c8f485953 100644 --- a/query-languages/m/table-fuzzygroup.md +++ b/query-languages/m/table-fuzzygroup.md @@ -57,3 +57,7 @@ Table.FromRecords({ [Location = "Vancouver", Count = 3] }) ``` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index ca4ec0985..836e6b32d 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -97,3 +97,7 @@ Table.FromRecords({ ] }) ``` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index 6ac445875..007d0ed0b 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -97,3 +97,7 @@ Table.FromRecords({ ] }) ``` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/table-promoteheaders.md b/query-languages/m/table-promoteheaders.md index 65999da01..53ee511be 100644 --- a/query-languages/m/table-promoteheaders.md +++ b/query-languages/m/table-promoteheaders.md @@ -55,3 +55,7 @@ Table.PromoteHeaders( **Output** `Table.FromRecords({[1 = 1, Name = "Bob", #"1/1/1980" = #date(1980, 1, 1)]})` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/table-transformcolumnnames.md b/query-languages/m/table-transformcolumnnames.md index 4934d8fe3..ddad4d9b1 100644 --- a/query-languages/m/table-transformcolumnnames.md +++ b/query-languages/m/table-transformcolumnnames.md @@ -55,3 +55,7 @@ Table.TransformColumnNames( **Output** `Table.FromRecords({[Column = 1, cOlum1 = 2, coLum2 = 3]})` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 3af19ff47..351236c48 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -39,3 +39,7 @@ Table.FromRecords({ [a = "3", b = 4] }) ``` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index c393ca22d..670848817 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -102,3 +102,7 @@ in {"PTY-507", #date(2023,6,4), 110} }) ``` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/text-endswith.md b/query-languages/m/text-endswith.md index e7fafdb1c..c0932d8c0 100644 --- a/query-languages/m/text-endswith.md +++ b/query-languages/m/text-endswith.md @@ -49,3 +49,7 @@ Text.EndsWith("Hello, World", "World") **Output** `true` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/text-format.md b/query-languages/m/text-format.md index c1d172786..dfabf81f6 100644 --- a/query-languages/m/text-format.md +++ b/query-languages/m/text-format.md @@ -50,3 +50,7 @@ Text.Format( **Output** `"The time for the 10 km run held in Seattle on 3/10/2015 was 00:54:40."` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/text-from.md b/query-languages/m/text-from.md index e3b32b533..0f81c05bc 100644 --- a/query-languages/m/text-from.md +++ b/query-languages/m/text-from.md @@ -27,3 +27,11 @@ Text.From(3) **Output** `"3"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard numeric format strings](standard-numeric-format-strings.md) +* [Custom numeric format strings](custom-numeric-format-strings.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/text-infernumbertype.md b/query-languages/m/text-infernumbertype.md index de5f29976..e8bd827b5 100644 --- a/query-languages/m/text-infernumbertype.md +++ b/query-languages/m/text-infernumbertype.md @@ -12,4 +12,8 @@ Text.InferNumberType(text as text, optional culture as nullable te ## About -Infers the granular number type (Int64.Type, Double.Type, and so on) of `text`. An error is raised if `text` is not a number. An optional `culture` may also be provided (for example, "en-US"). +Infers the granular number type (`Int64.Type`, `Double.Type`, and so on) of `text`. An error is raised if `text` is not a number. An optional `culture` may also be provided (for example, "en-US"). + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/text-lower.md b/query-languages/m/text-lower.md index d9f104f64..f11448ef3 100644 --- a/query-languages/m/text-lower.md +++ b/query-languages/m/text-lower.md @@ -27,3 +27,7 @@ Text.Lower("AbCd") **Output** `"abcd"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/text-positionof.md b/query-languages/m/text-positionof.md index fc8d8cf90..ba9754f16 100644 --- a/query-languages/m/text-positionof.md +++ b/query-languages/m/text-positionof.md @@ -49,3 +49,7 @@ Text.PositionOf("Hello, World! Hello, World!", "World", Occurrence.Last) **Output** `21` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/text-proper.md b/query-languages/m/text-proper.md index a36d287fb..2af1b9241 100644 --- a/query-languages/m/text-proper.md +++ b/query-languages/m/text-proper.md @@ -27,3 +27,7 @@ Text.Proper("the QUICK BrOWn fOx jUmPs oVER tHe LAzy DoG") **Output** `"The Quick Brown Fox Jumps Over The Lazy Dog"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index 835521401..372e6d1ae 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -67,3 +67,7 @@ Text.StartsWith("Hello, World", "hello", Comparer.OrdinalIgnoreCase) **Output** `true` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/text-upper.md b/query-languages/m/text-upper.md index 226a28c03..0e4332749 100644 --- a/query-languages/m/text-upper.md +++ b/query-languages/m/text-upper.md @@ -27,3 +27,7 @@ Text.Upper("aBcD") **Output** `"ABCD"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/time-from.md b/query-languages/m/time-from.md index 5b50237f7..d37e3688e 100644 --- a/query-languages/m/time-from.md +++ b/query-languages/m/time-from.md @@ -48,3 +48,9 @@ Time.From(#datetime(1899, 12, 30, 06, 45, 12)) **Output** `#time(06, 45, 12)` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) \ No newline at end of file diff --git a/query-languages/m/time-fromtext.md b/query-languages/m/time-fromtext.md index b567e8077..6cb1be988 100644 --- a/query-languages/m/time-fromtext.md +++ b/query-languages/m/time-fromtext.md @@ -14,7 +14,7 @@ Time.FromText(text as nullable text, optional options as any) as n Creates a `time` value from a textual representation, `text`. An optional `record` parameter, `options`, may be provided to specify additional properties. The `record` can contain the following fields: -* `Format`: A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in parsing the time using a best effort. +* `Format`: A `text` value indicating the format to use. For more details, go to [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` will result in parsing the time using a best effort. * `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"tt"` is `"AM" or "PM"`, while in `"ar-EG"` `"tt"` is `"ص" or "م"`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. @@ -61,3 +61,9 @@ Time.FromText("10") **Output** `#time(10, 00, 00)` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/time-totext.md b/query-languages/m/time-totext.md index bc3c2b2af..8bacd02a9 100644 --- a/query-languages/m/time-totext.md +++ b/query-languages/m/time-totext.md @@ -14,7 +14,7 @@ Time.ToText(time as nullable time, optional options as any, option Returns a textual representation of `time`. An optional `record` parameter, `options`, may be provided to specify additional properties. `culture` is only used for legacy workflows. The `record` can contain the following fields: -* `Format`: A `text` value indicating the format to use. For more details, go to https://go.microsoft.com/fwlink/?linkid=2180104 and https://go.microsoft.com/fwlink/?linkid=2180105. Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. +* `Format`: A `text` value indicating the format to use. For more details, go to [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` will result in formatting the date using the default defined by `Culture`. * `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"tt"` is `"AM" or "PM"`, while in `"ar-EG"` `"tt"` is `"ص" or "م"`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. @@ -61,3 +61,9 @@ Time.ToText(#time(11, 56, 2), [Format="T", Culture="de-DE"]) **Output** `"11:56:02"` + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Standard date and time format strings](standard-date-and-time-format-strings.md) +* [Custom date and time format strings](custom-date-and-time-format-strings.md) diff --git a/query-languages/m/value-fromtext.md b/query-languages/m/value-fromtext.md index dd9554f10..3b2912116 100644 --- a/query-languages/m/value-fromtext.md +++ b/query-languages/m/value-fromtext.md @@ -13,3 +13,7 @@ Value.FromText(text as any, optional culture as nullable text) as ## About Decodes a value from a textual representation, `text`, and interprets it as a value with an appropriate type. **Value.FromText** takes a text value and returns a number, a logical value, a null value, a datetime value, a duration value, or a text value. The empty text value is interpreted as a null value. An optional `culture` may also be provided (for example, "en-US"). + +## Related content + +* [How culture affects text formatting](how-culture-affects-text-formatting.md) From ac2a05e039b5f6edbdd704ecd5a6c6dad3541cd4 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 7 Oct 2024 14:18:55 -0700 Subject: [PATCH 591/934] Other updates to culture --- query-languages/m/how-culture-affects-text-formatting.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/how-culture-affects-text-formatting.md b/query-languages/m/how-culture-affects-text-formatting.md index 2355d4ef4..2ebc188f7 100644 --- a/query-languages/m/how-culture-affects-text-formatting.md +++ b/query-languages/m/how-culture-affects-text-formatting.md @@ -3,17 +3,17 @@ title: How culture affects text formatting description: Learn about how culture is related to the locale in which queries are authored and how you can change the default culture. author: DougKlopfenstein ms-author: dougklo -ms.date: 10/4/2024 +ms.date: 10/7/2024 ms.topic: reference --- # How culture affects text formatting -Different countries and language groups have different conventions for formatting different kinds of text, such as numbers, dates, and time. In Power Query, *culture* refers to the locale whose conventions are used to format this type of text in Power Query M. +Different countries and language groups have different conventions for formatting different kinds of text, such as numbers, dates, and time. In Power Query, *culture* refers to the locale whose conventions are used to format this type of text in Power Query M. This locale is generally composed of the language and the country where the language is spoken, for example "en-US" for the English language spoken in the United States of America. ## Default culture -The default culture is set to the system locale (Windows, MacOS) when your queries are first authored. For example, if you author your queries in Power Query Desktop, the default culture is defined by the locale set on your local computer. However, if you author your queries in the Power Query Online, the default culture is defined by the locale set on the online service. No matter where you author your query, if you move your query to a different location that uses a different default culture, your query still uses the culture of the original location. +The default culture is set to the system locale (Windows, MacOS) of a particular document where your queries are first authored. For example, if you author your queries in Power Query Desktop, the default culture is defined by the locale set on your local computer. However, if you author your queries in the Power Query Online, the default culture is defined by the locale set on the online service. No matter where you author your query, if you move your query to a different location that uses a different default culture, your query still uses the culture of the original location. To use the current default culture, no culture setting is required in your Power Query M code. From 99c59c216d25de235f0b134a1f4e18385e3fc1c1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 7 Oct 2024 14:24:45 -0700 Subject: [PATCH 592/934] Added more links to culture article --- query-languages/m/how-culture-affects-text-formatting.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/m/how-culture-affects-text-formatting.md b/query-languages/m/how-culture-affects-text-formatting.md index 2ebc188f7..80bced6cb 100644 --- a/query-languages/m/how-culture-affects-text-formatting.md +++ b/query-languages/m/how-culture-affects-text-formatting.md @@ -37,3 +37,5 @@ To use the invariant culture in Power Query M, use the blank text value (`""`) i - [Standard date and time format strings](standard-date-and-time-format-strings.md) - [Custom date and time format strings](custom-date-and-time-format-strings.md) +- [Standard numeric format strings](standard-numeric-format-strings.md) +- [Custom numeric format strings](custom-numeric-format-strings.md) From dc45f3ef4e5e7c176d4873992f84f92278d5e017 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 10 Oct 2024 13:35:19 -0700 Subject: [PATCH 593/934] Minor updates to several function articles. --- query-languages/m/sharpdate.md | 2 +- query-languages/m/text-trim.md | 2 +- query-languages/m/text-trimend.md | 4 ++-- query-languages/m/text-trimstart.md | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index 5e67d0ffc..d94ff5bb0 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -44,7 +44,7 @@ Date.ToText(#date(2023, 12, 26), [Format="dd MMM yyyy", Culture="de-DE"]) **Output** -`26 Dez 2023` +`"26 Dez 2023"` ## Example 3 diff --git a/query-languages/m/text-trim.md b/query-languages/m/text-trim.md index ca1c2ee58..968aecb3c 100644 --- a/query-languages/m/text-trim.md +++ b/query-languages/m/text-trim.md @@ -15,7 +15,7 @@ Text.Trim(text as nullable text, optional trim as any) as nullable Returns the result of removing all leading and trailing characters from the specified `text`. By default, all the leading and trailing whitespace characters are removed. * `text`: The text from which the leading and trailing characters are to be removed. -* `trim`" Overrides the whitespace characters that are trimmed by default. This parameter can either be a single character or a list of single characters. Each leading and trailing trim operation stops when a non-trimmed character is encountered. +* `trim`: Overrides the whitespace characters that are trimmed by default. This parameter can either be a single character or a list of single characters. Each leading and trailing trim operation stops when a non-trimmed character is encountered. ## Example 1 diff --git a/query-languages/m/text-trimend.md b/query-languages/m/text-trimend.md index bc3851b16..a8dbe9bf0 100644 --- a/query-languages/m/text-trimend.md +++ b/query-languages/m/text-trimend.md @@ -15,7 +15,7 @@ Text.TrimEnd(text as nullable text, optional trim as any) as nulla Returns the result of removing all trailing characters from the specified `text`. By default, all the trailing whitespace characters are removed. * `text`: The text from which the trailing characters are to be removed. -* `trim`" Overrides the whitespace characters that are trimmed by default. This parameter can either be a single character or a list of single characters. Each trailing trim operation stops when a non-trimmed character is encountered. +* `trim`: Overrides the whitespace characters that are trimmed by default. This parameter can either be a single character or a list of single characters. Each trailing trim operation stops when a non-trimmed character is encountered. ## Example 1 @@ -61,7 +61,7 @@ let {"Leslie", "FR-4648****@**", 3.8392}, {"Ringo", "DE-2046790@***", 12.6600} }), - #"Trimmed Account" = Table.TransformColumns(Source, {{"Account Name", each Text.TrimEnd(_, {"*", "@"})}}) + #"Trimmed Account" = Table.TransformColumns(Source, {"Account Name", each Text.TrimEnd(_, {"*", "@"})}) in #"Trimmed Account" ``` diff --git a/query-languages/m/text-trimstart.md b/query-languages/m/text-trimstart.md index 6e73f189e..77c751962 100644 --- a/query-languages/m/text-trimstart.md +++ b/query-languages/m/text-trimstart.md @@ -15,7 +15,7 @@ Text.TrimStart(text as nullable text, optional trim as any) as nul Returns the result of removing all leadling characters from the specified `text`. By default, all the leading whitespace characters are removed. * `text`: The text from which the leading characters are to be removed. -* `trim`" Overrides the whitespace characters that are trimmed by default. This parameter can either be a single character or a list of single characters. Each leading trim operation stops when a non-trimmed character is encountered. +* `trim`: Overrides the whitespace characters that are trimmed by default. This parameter can either be a single character or a list of single characters. Each leading trim operation stops when a non-trimmed character is encountered. ## Example 1 @@ -61,7 +61,7 @@ let {"Leslie", "@******4648-FR", 3.8392}, {"Ringo", "@*****24679-DE", 12.6600} }), - #"Trimmed Account" = Table.TransformColumns(Source, {{"Account Name", each Text.TrimStart(_, {"*", "@"})}}) + #"Trimmed Account" = Table.TransformColumns(Source, {"Account Name", each Text.TrimStart(_, {"*", "@"})}) in #"Trimmed Account" ``` From 7981b19d9b78aca17438ba00a335944bd93d76d8 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 11 Oct 2024 14:07:52 -0700 Subject: [PATCH 594/934] Minor updates to o and s format string descriptions --- .../m/standard-date-and-time-format-strings.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index 73adcff9f..df17421a6 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -3,7 +3,7 @@ title: "Standard date and time format strings" description: Learn how to use a standard date and time format string to define the text representation of a date and time value in Power Query M. author: DougKlopfenstein ms-author: dougklo -ms.date: 10/7/2024 +ms.date: 10/11/2024 ms.topic: reference --- # Standard date and time format strings @@ -23,9 +23,9 @@ A standard date and time format string uses a single character as the format spe |"g"|General date/time pattern (short time).

More information: [The general date short time ("g") format specifier](#GeneralDateShortTime).|2009-06-15T13:45:30 -> 6/15/2009 1:45 PM (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45 (zh-CN)| |"G"|General date/time pattern (long time).

More information: [The general date long time ("G") format specifier](#GeneralDateLongTime).|2009-06-15T13:45:30 -> 6/15/2009 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> 15/06/2009 13:45:30 (es-ES)

2009-06-15T13:45:30 -> 2009/6/15 13:45:30 (zh-CN)| |"M", "m"|Month/day pattern.

More information: [The month ("M", "m") format specifier](#MonthDay).|2009-06-15T13:45:30 -> June 15 (en-US)

2009-06-15T13:45:30 -> 15. juni (da-DK)

2009-06-15T13:45:30 -> 15 Juni (id-ID)| -|"O", "o"|round-trip date/time pattern.

More information: [The round-trip ("O", "o") format specifier](#Roundtrip).|2009-06-15T13:45:30 (DateTimeKind.Local) --> 2009-06-15T13:45:30.0000000-07:00

2009-06-15T13:45:30 (DateTimeKind.Utc) --> 2009-06-15T13:45:30.0000000Z

2009-06-15T13:45:30 (DateTimeKind.Unspecified) --> 2009-06-15T13:45:30.0000000| +|"O", "o"|round-trip date/time pattern.

More information: [The round-trip ("O", "o") format specifier](#Roundtrip).|2009-06-15T13:45:30 (Local) --> 2009-06-15T13:45:30.0000000-07:00

2009-06-15T13:45:30 (Utc) --> 2009-06-15T13:45:30.0000000+00:00

2009-06-15T13:45:30 (Unspecified) --> 2009-06-15T13:45:30.0000000| |"R", "r"|RFC1123 pattern.

More information: [The RFC1123 ("R", "r") format specifier](#RFC1123).|2009-06-15T13:45:30 -> Mon, 15 Jun 2009 13:45:30 GMT | -|"s"|Sortable date/time pattern.

More information: [The sortable ("s") format specifier](#Sortable).|2009-06-15T13:45:30 (DateTimeKind.Local) -> 2009-06-15T13:45:30

2009-06-15T13:45:30 (DateTimeKind.Utc) -> 2009-06-15T13:45:30| +|"s"|Sortable date/time pattern.

More information: [The sortable ("s") format specifier](#Sortable).|2009-06-15T13:45:30 (Local) -> 2009-06-15T13:45:30

2009-06-15T13:45:30 (Utc) -> 2009-06-15T13:45:30| |"t"|Short time pattern.

More information: [The short time ("t") format specifier](#ShortTime).|2009-06-15T13:45:30 -> 1:45 PM (en-US)

2009-06-15T13:45:30 -> 13:45 (hr-HR)

2009-06-15T13:45:30 -> 01:45 م (ar-EG)| |"T"|Long time pattern.

More information: [The long time ("T") format specifier](#LongTime).|2009-06-15T13:45:30 -> 1:45:30 PM (en-US)

2009-06-15T13:45:30 -> 13:45:30 (hr-HR)

2009-06-15T13:45:30 -> 01:45:30 م (ar-EG)| |"u"|Universal sortable date/time pattern.

More information: [The universal sortable ("u") format specifier](#UniversalSortable).|2009-06-15T13:45:30 -> 2009-06-15 13:45:30Z| @@ -278,7 +278,7 @@ The "O" or "o" standard format specifier represents a custom date and time forma The "O" or "o" standard format specifier corresponds to the "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffxxx" custom format string for **DateTimeZone** values. In this text, the pairs of single quotation marks that delimit individual characters, such as the hyphens, the colons, and the letter "T", indicate that the individual character is a literal that can't be changed. The apostrophes don't appear in the output string. -The "O" or "o" standard format specifier (and the "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffxxx" custom format) takes advantage of the three ways that ISO 8601 represents time zone information to preserve the **DateTimeZone** values: +The "O" or "o" standard format specifier (and the "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffxxx" custom format) takes advantage of the ways that ISO 8601 represents time zone information to preserve the **DateTimeZone** values: - The time zone component of [DateTimeZone.ToLocal](datetimezone-tolocal.md) date and time values is an offset from UTC (for example, +01:00, -07:00). From 6456ee631b3ade2e6407f12bce222c153a5860c1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 14 Oct 2024 13:23:46 -0700 Subject: [PATCH 595/934] Added November update to Power Query M reference --- query-languages/m/docfx.json | 2 +- query-languages/m/lines-frombinary.md | 2 +- query-languages/m/lines-fromtext.md | 2 +- query-languages/m/splitter-splittextbydelimiter.md | 2 +- query-languages/m/text-functions.md | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index b8f9fe8cf..addaf04ed 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "7/15/2024" + "ms.date": "10/14/2024" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index 020d2ac63..b744ba2f6 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -7,7 +7,7 @@ title: "Lines.FromBinary" ## Syntax
-Lines.FromBinary(binary as binary, optional quoteStyle as nullable number, optional includeLineSeparators as nullable logical, optional encoding as nullable number) as list
+Lines.FromBinary(binary as binary, optional quoteStyle as any, optional includeLineSeparators as nullable logical, optional encoding as nullable number) as list
 
## About diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index 30e68fc30..7fa4be2db 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -7,7 +7,7 @@ title: "Lines.FromText" ## Syntax
-Lines.FromText(text as text, optional quoteStyle as nullable number, optional includeLineSeparators as nullable logical) as list
+Lines.FromText(text as text, optional quoteStyle as any, optional includeLineSeparators as nullable logical) as list
 
## About diff --git a/query-languages/m/splitter-splittextbydelimiter.md b/query-languages/m/splitter-splittextbydelimiter.md index bbca15ba9..67d366d60 100644 --- a/query-languages/m/splitter-splittextbydelimiter.md +++ b/query-languages/m/splitter-splittextbydelimiter.md @@ -7,7 +7,7 @@ title: "Splitter.SplitTextByDelimiter" ## Syntax
-Splitter.SplitTextByDelimiter(delimiter as text, optional quoteStyle as nullable number) as function
+Splitter.SplitTextByDelimiter(delimiter as text, optional quoteStyle as nullable number, optional csvStyle as nullable number) as function
 
## About diff --git a/query-languages/m/text-functions.md b/query-languages/m/text-functions.md index 45df2b4b7..8f6b38edd 100644 --- a/query-languages/m/text-functions.md +++ b/query-languages/m/text-functions.md @@ -78,7 +78,7 @@ These functions create and manipulate text values. |[Text.Reverse](text-reverse.md)|Reverses the provided text.| |[Text.Split](text-split.md)|Returns a list containing parts of a text value that are delimited by a separator text value.| |[Text.SplitAny](text-splitany.md)|Returns a list containing parts of a text value that are delimited by any separator text values.| -|[Text.Trim](text-trim.md)|Removes all leading and trailing whitespace.| -|[Text.TrimEnd](text-trimend.md)|Removes all trailing whitespace.| -|[Text.TrimStart](text-trimstart.md)|Removes all leading whitespace.| +|[Text.Trim](text-trim.md)|Removes all the specified leading and trailing characters.| +|[Text.TrimEnd](text-trimend.md)|Removes all specified trailing characters.| +|[Text.TrimStart](text-trimstart.md)|Removes all specified leading characters.| |[Text.Upper](text-upper.md)|Returns the uppercase of a text value.| From 30c9f2e5304a0810bcb1056b7b8f89ae4780deeb Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 14 Oct 2024 16:03:13 -0700 Subject: [PATCH 596/934] removing FIRSTNONBLANK and LASTNONBLANK from aggregate Time Intelligence functions page as they really are not TI funcitons --- query-languages/dax/time-intelligence-functions-dax.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/query-languages/dax/time-intelligence-functions-dax.md b/query-languages/dax/time-intelligence-functions-dax.md index 34b3fcf0e..d7abc265f 100644 --- a/query-languages/dax/time-intelligence-functions-dax.md +++ b/query-languages/dax/time-intelligence-functions-dax.md @@ -23,9 +23,7 @@ Data Analysis Expressions (DAX) includes time-intelligence functions that enable |[ENDOFQUARTER](endofquarter-function-dax.md) | Returns the last date of the quarter in the current context for the specified column of dates. | |[ENDOFYEAR](endofyear-function-dax.md) | Returns the last date of the year in the current context for the specified column of dates. | |[FIRSTDATE](firstdate-function-dax.md) | Returns the first date in the current context for the specified column of dates. | -|[FIRSTNONBLANK](firstnonblank-function-dax.md) | Returns the first value in the column, column, filtered by the current context, where the expression is not blank | |[LASTDATE](lastdate-function-dax.md) | Returns the last date in the current context for the specified column of dates. | -|[LASTNONBLANK](lastnonblank-function-dax.md) | Returns the last value in the column, column, filtered by the current context, where the expression is not blank. | |[NEXTDAY](nextday-function-dax.md) | Returns a table that contains a column of all dates from the next day, based on the first date specified in the dates column in the current context. | |[NEXTMONTH](nextmonth-function-dax.md) | Returns a table that contains a column of all dates from the next month, based on the first date in the dates column in the current context. | |[NEXTQUARTER](nextquarter-function-dax.md) | Returns a table that contains a column of all dates in the next quarter, based on the first date specified in the dates column, in the current context. | From d68cbded1788d743a86c2ce8663618845347471f Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 14 Oct 2024 17:00:52 -0700 Subject: [PATCH 597/934] responding to review --- ...x-function-dax => sampleaxiswithlocalminmax-function-dax.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename query-languages/dax/{sampleaxiswithlocalminmax-function-dax => sampleaxiswithlocalminmax-function-dax.md} (97%) diff --git a/query-languages/dax/sampleaxiswithlocalminmax-function-dax b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md similarity index 97% rename from query-languages/dax/sampleaxiswithlocalminmax-function-dax rename to query-languages/dax/sampleaxiswithlocalminmax-function-dax.md index 02b16f250..65a75129a 100644 --- a/query-languages/dax/sampleaxiswithlocalminmax-function-dax +++ b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md @@ -37,7 +37,7 @@ SAMPLEAXISWITHLOCALMINMAX(,
, , , [ [, ...] The sample from Table consisting of Size number of rows. ## Remarks -- if the number of rows in Table are less than the specified Size, then no binning will occur and all rows will be returned. +- If the number of rows in Table are less than the specified Size, then no binning will occur and all rows will be returned. - The selected bin-sizes will be less than MinResolution - SAMPLEAXISWITHLOCALMINMAX is used by Power BI to reduce the number of points in a line chart with a continuous (numeric) X-axis. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] From 900790fd8dc7c1df36606b612b3e81d75ef5e429 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 15 Oct 2024 13:15:59 -0700 Subject: [PATCH 598/934] responding to reviews --- query-languages/dax/topnskip-function-dax.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/topnskip-function-dax.md b/query-languages/dax/topnskip-function-dax.md index 634adc536..4b812ff33 100644 --- a/query-languages/dax/topnskip-function-dax.md +++ b/query-languages/dax/topnskip-function-dax.md @@ -33,10 +33,20 @@ A table with the top N rows of *Table* or an empty table if *N_Value* is 0 (zero - If there is a tie, in *Order_By* values, at the N-th row of the table, then all tied rows are returned. Then, when there are ties at the N-th row the function might return more than n rows. - If N_Value is 0 (zero) or less, TOPNSKIP returns an empty table. - + +- The Table parameter can only be DAX expressions that can be fully pushed down to the Vertipaq Engine. + - TOPNSKIP does not guarantee any sort order for the results. -- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] +- This function is not supported for use in DirectQuery mode, except to semantic models. + +- The parameters for TOPNSKIP cannot depend on columns from an external evaluation context, for example referring to outside columns is not allowed. The following example will return an error: + + ```dax + DEFINE + VAR NValues = SELECTCOLUMNS({10, 15, 20}, "N", [Value]) + EVALUATE GENERATE(NValues, TOPNSKIP([N], 5, DimProduct, [Size])) + ``` ## Example From a66126488638ebc62e166098cbcae0f438ae5157 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 15 Oct 2024 13:18:56 -0700 Subject: [PATCH 599/934] fixing validation issue --- query-languages/dax/topnskip-function-dax.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/topnskip-function-dax.md b/query-languages/dax/topnskip-function-dax.md index 4b812ff33..9ef660dd2 100644 --- a/query-languages/dax/topnskip-function-dax.md +++ b/query-languages/dax/topnskip-function-dax.md @@ -42,11 +42,11 @@ A table with the top N rows of *Table* or an empty table if *N_Value* is 0 (zero - The parameters for TOPNSKIP cannot depend on columns from an external evaluation context, for example referring to outside columns is not allowed. The following example will return an error: - ```dax - DEFINE - VAR NValues = SELECTCOLUMNS({10, 15, 20}, "N", [Value]) - EVALUATE GENERATE(NValues, TOPNSKIP([N], 5, DimProduct, [Size])) - ``` +```dax +DEFINE +VAR NValues = SELECTCOLUMNS({10, 15, 20}, "N", [Value]) +EVALUATE GENERATE(NValues, TOPNSKIP([N], 5, DimProduct, [Size])) +``` ## Example From 116a216efe084326f0835fe4161e2bf8b4d93841 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 18 Oct 2024 15:46:38 -0700 Subject: [PATCH 600/934] Update datetimezone functions with new info --- query-languages/m/datetimezone-functions.md | 4 ++-- query-languages/m/datetimezone-zonehours.md | 18 +++++++++++++++++- query-languages/m/datetimezone-zoneminutes.md | 18 +++++++++++++++++- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/query-languages/m/datetimezone-functions.md b/query-languages/m/datetimezone-functions.md index 511fd17d7..43cf83d83 100644 --- a/query-languages/m/datetimezone-functions.md +++ b/query-languages/m/datetimezone-functions.md @@ -23,6 +23,6 @@ These functions create and manipulate datetimezone values. |[DateTimeZone.ToText](datetimezone-totext.md)|Returns a text value from a DateTime value.| |[DateTimeZone.ToUtc](datetimezone-toutc.md)|Returns a DateTime value to the Utc time zone.| |[DateTimeZone.UtcNow](datetimezone-utcnow.md)|Returns a DateTime value set to the current system date and time in the Utc timezone.| -|[DateTimeZone.ZoneHours](datetimezone-zonehours.md)|Returns a time zone hour value from a DateTime value.| -|[DateTimeZone.ZoneMinutes](datetimezone-zoneminutes.md)|Returns a time zone minute value from a DateTime value.| +|[DateTimeZone.ZoneHours](datetimezone-zonehours.md)|Gets the timezone hour of the value.| +|[DateTimeZone.ZoneMinutes](datetimezone-zoneminutes.md)|Gets the timezone minute of the value.| |[#datetimezone](sharpdatetimezone.md)|Creates a datetimezone value from year, month, day, hour, minute, second, offset-hours, and offset-minutes.| diff --git a/query-languages/m/datetimezone-zonehours.md b/query-languages/m/datetimezone-zonehours.md index c4e79115f..15a84accb 100644 --- a/query-languages/m/datetimezone-zonehours.md +++ b/query-languages/m/datetimezone-zonehours.md @@ -12,4 +12,20 @@ DateTimeZone.ZoneHours(dateTimeZone as nullable datetimezone) as nullable ## About -Changes the timezone of the value. +Returns the time zone hour component of a `datetimezone` value. + +* `dateTimeZone`: A `datetimezone` value from which the time zone hour component is extracted. If `dateTimeZone` is `null`, the function returns `null`. + +## Example 1 + +Get the time zone hours component of the specified `datetimezone` value. + +**Usage** + +```powerquery-m +DateTimeZone.ZoneHours(#datetimezone(2024, 4, 28, 13, 24, 22, 7, 30)) +``` + +**Output** + +`7` diff --git a/query-languages/m/datetimezone-zoneminutes.md b/query-languages/m/datetimezone-zoneminutes.md index 0348a8c48..88de1353e 100644 --- a/query-languages/m/datetimezone-zoneminutes.md +++ b/query-languages/m/datetimezone-zoneminutes.md @@ -12,4 +12,20 @@ DateTimeZone.ZoneMinutes(dateTimeZone as nullable datetimezone) as nullab ## About -Changes the timezone of the value. +Returns the time zone minutes component of a `datetimezone` value. + +* `dateTimeZone`: a `datetimezone` value from which the time zone minutes component is extracted. If `dateTimeZone` is `null`, the function returns `null`. + +## Example 1 + +Get the time zone minutes component of the specified `datetimezone` value. + +**Usage** + +```powerquery-m +DateTimeZone.ZoneMinutes(#datetimezone(2024, 4, 28, 13, 24, 22, 7, 30)) +``` + +**Output** + +`30` From 8301c573c6d835dccb620ba4ddcab0412dee09bf Mon Sep 17 00:00:00 2001 From: Maggie Sparkman <12401230+maggiesMSFT@users.noreply.github.com> Date: Mon, 21 Oct 2024 20:04:46 -0700 Subject: [PATCH 601/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 041bd9c1b..0402faf9c 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -2,7 +2,7 @@ title: "Write DAX queries with Copilot | Microsoft Docs" description: Use Copilot to create a DAX queries query. Type in a prompt to describe what DAX query you would like generated, and Copilot can create it. ms.service: powerbi -ms.date: 03/28/2024 +ms.date: 10/21/2024 ms.reviewer: ms.topic: how-to author: maggiesMSFT @@ -32,6 +32,15 @@ Then navigate to the **DAX query view** and select the **Copilot** button or [!NOTE] +> DirectQuery model authors can also use DAX query view. View the data in your tables whenever you want. + ## Sample prompts for writing DAX queries Here is a collection of sample prompts to illustrate how to get Copilot to write the DAX queries you want. From abbbaf9f8bba649ab32f6a6add00d3758d884780 Mon Sep 17 00:00:00 2001 From: Krzysztof <121431545+regurgitate@users.noreply.github.com> Date: Thu, 24 Oct 2024 08:46:45 +0200 Subject: [PATCH 602/934] Update treatas-function-dax.md sentence structure corrected, DAX formatting changed --- query-languages/dax/treatas-function-dax.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/treatas-function-dax.md b/query-languages/dax/treatas-function-dax.md index 330c169d4..4ba481adc 100644 --- a/query-languages/dax/treatas-function-dax.md +++ b/query-languages/dax/treatas-function-dax.md @@ -29,7 +29,7 @@ A table that contains all the rows in column(s) that are also in table_expressio - The number of columns specified must match the number of columns in the table expression and be in the same order. -- If a value returned in the table expression does not exist in the column, it is ignored. For example, TREATAS({"Red", "Green", "Yellow"}, DimProduct[Color]) sets a filter on column DimProduct[Color] with three values "Red", "Green", and "Yellow". If "Yellow" does not exist in DimProduct[Color], the effective filter values would are "Red" and "Green". +- If a value returned in the table expression does not exist in the column, it is ignored. For example, TREATAS({"Red", "Green", "Yellow"}, DimProduct[Color]) sets a filter on column DimProduct[Color] with three values "Red", "Green", and "Yellow". If "Yellow" does not exist in DimProduct[Color], the effective filter values would be "Red" and "Green". - Best for use when a relationship does not exist between the tables. If you have multiple relationships between the tables involved, consider using [USERELATIONSHIP](userelationship-function-dax.md) instead. @@ -41,8 +41,11 @@ In the following example, the model contains two unrelated product tables. If a ```dax CALCULATE( -SUM(Sales[Amount]), -TREATAS(VALUES(DimProduct1[ProductCategory]), DimProduct2[ProductCategory]) + SUM(Sales[Amount]), + TREATAS( + VALUES(DimProduct1[ProductCategory]), + DimProduct2[ProductCategory] + ) ) ``` From ba067aa85b41cdd5c7931b402a62f6e432b231d0 Mon Sep 17 00:00:00 2001 From: Shujing Zhang Date: Mon, 11 Nov 2024 15:53:10 +0800 Subject: [PATCH 603/934] Delete .openpublishing.build.ps1 --- .openpublishing.build.ps1 | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 .openpublishing.build.ps1 diff --git a/.openpublishing.build.ps1 b/.openpublishing.build.ps1 deleted file mode 100644 index aadef7620..000000000 --- a/.openpublishing.build.ps1 +++ /dev/null @@ -1,17 +0,0 @@ -param( - [string]$buildCorePowershellUrl = "https://opbuildstorageprod.blob.core.windows.net/opps1container/.openpublishing.buildcore.ps1", - [string]$parameters -) -# Main -$errorActionPreference = 'Stop' - -# Step-1: Download buildcore script to local -echo "download build core script to local with source url: $buildCorePowershellUrl" -$repositoryRoot = Split-Path -Parent $MyInvocation.MyCommand.Definition -$buildCorePowershellDestination = "$repositoryRoot\.openpublishing.buildcore.ps1" -Invoke-WebRequest $buildCorePowershellUrl -OutFile "$buildCorePowershellDestination" - -# Step-2: Run build core -echo "run build core script with parameters: $parameters" -& "$buildCorePowershellDestination" "$parameters" -exit $LASTEXITCODE From 9e5269415ad66cf0e0a23bbc9473cd55c7879cff Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 13 Nov 2024 13:16:04 -0800 Subject: [PATCH 604/934] Added December update to Power Query M reference --- query-languages/m/date-from.md | 67 +++++++++++++++++---- query-languages/m/date-fromtext.md | 50 +++++++++++++-- query-languages/m/datetimezone-functions.md | 2 +- query-languages/m/docfx.json | 2 +- query-languages/m/lines-frombinary.md | 19 +++++- query-languages/m/lines-fromtext.md | 18 +++++- 6 files changed, 136 insertions(+), 22 deletions(-) diff --git a/query-languages/m/date-from.md b/query-languages/m/date-from.md index d6f669b04..a24c732e7 100644 --- a/query-languages/m/date-from.md +++ b/query-languages/m/date-from.md @@ -12,42 +12,85 @@ Date.From(value as any, optional culture as nullable text) as null ## About -Returns a `date` value from the given `value`. An optional `culture` may also be provided (for example, "en-US"). If the given `value` is `null`, **Date.From** returns `null`. If the given `value` is `date`, `value` is returned. Values of the following types can be converted to a `date` value: +Returns a date value from the given value. -* `text`: A `date` value from textual representation. Refer to [Date.FromText](date-fromtext.md) for details. -* `datetime`: The date component of the `value`. -* `datetimezone`: The date component of the local datetime equivalent of `value`. -* `number`: The date component of the datetime equivalent of the OLE Automation Date expressed by `value`. +* `value`: The value to covert to a date. If the given value is `null`, this function returns `null`. If the given value is `date`, `value` is returned. Values of the following types can be converted to a `date` value: -If `value` is of any other type, an error is returned. + * `text`: A `date` value from textual representation. Refer to [Date.FromText](date-fromtext.md) for details. + * `datetime`: The date component of the `value`. + * `datetimezone`: The date component of the local datetime equivalent of `value`. + * `number`: The date component of the datetime equivalent of a floating-point number whose integral component is the number of days before or after midnight, 30 December 1899, and whose fractional component represents the time on that day divided by 24. For example, midnight, 31 December 1899 is represented by 1.0; 6 A.M., 1 January 1900 is represented by 2.25; midnight, 29 December 1899 is represented by -1.0; and 6 A.M., 29 December 1899 is represented by -1.25. The base value is midnight, 30 December 1899. The minimum value is midnight, 1 January 0100. The maximum value is the last moment of 31 December 9999. + + If `value` is of any other type, an error is returned. + +* `culture`: The culture of the given value (for example, "en-US"). ## Example 1 -Convert `43910` to a `date` value. +Convert the specified date and time to a date value. **Usage** ```powerquery-m -Date.From(43910) +Date.From(#datetime(1899, 12, 30, 06, 45, 12)) ``` **Output** -`#date(2020, 3, 20)` +`#date(1899, 12, 30)` ## Example 2 -Convert `#datetime(1899, 12, 30, 06, 45, 12)` to a `date` value. +Convert the specified number to a date value. **Usage** ```powerquery-m -Date.From(#datetime(1899, 12, 30, 06, 45, 12)) +Date.From(43910) ``` **Output** -`#date(1899, 12, 30)` +#date(2020, 3, 20) + +## Example 3 + +Convert the German text dates in the Posted Date column to date values. + +**Usage** + +```powerquery-m +let + Source = #table(type table [Account Code = text, Posted Date = text, Sales = number], + { + {"US-2004", "20 Januar 2023", 580}, + {"CA-8843", "18 Juli, 2023", 280}, + {"PA-1274", "12 Januar, 2022", 90}, + {"PA-4323", "14 April 2023", 187}, + {"US-1200", "14 Dezember, 2022", 350}, + {"PTY-507", "4 Juni, 2023", 110} + }), + #"Filtered rows" = Table.TransformColumns( + Source, + {"Posted Date", each Date.From(_, "de-DE"), type date} + ) +in + #"Filtered rows" +``` + +**Output** + +```powerquery-m +#table(type table [Account Code = text, Posted Date = date, Sales = number], +{ + {"US-2004", #date(2023, 1, 20), 580}, + {"CA-8843", #date(2023, 7, 18), 280}, + {"PA-1274", #date(2022, 1, 12), 90}, + {"PA-4323", #date(2023, 4, 14), 187}, + {"US-1200", #date(2022, 12, 14), 350}, + {"PTY-507", #date(2023, 6, 4), 110} +}) +``` ## Related content diff --git a/query-languages/m/date-fromtext.md b/query-languages/m/date-fromtext.md index 7a91fcf2d..bf43afa77 100644 --- a/query-languages/m/date-fromtext.md +++ b/query-languages/m/date-fromtext.md @@ -12,13 +12,16 @@ Date.FromText(text as nullable text, optional options as any) as n ## About -Creates a `date` value from a textual representation, `text`. An optional `record` parameter, `options`, may be provided to specify additional properties. The `record` can contain the following fields: +Creates a date value from a textual representation. -* `Format`: A `text` value indicating the format to use. For more details, go to [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` will result in parsing the date using a best effort. +* `text`: A text value to covert to a date. -* `Culture`: When `Format` is not null, `Culture` controls some format specifiers. For example, in `"en-US"` `"MMM"` is `"Jan", "Feb", "Mar", ...`, while in `"ru-RU"` `"MMM"` is `"янв", "фев", "мар", ...`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. +* `options`: An optional `record` that can be provided to specify additional properties. The `record` can contain the following fields: -To support legacy workflows, `options` may also be a text value. This has the same behavior as if `options = [Format = null, Culture = options]`. + * `Format`: A `text` value indicating the format to use. For more details, go to [Standard date and time format strings](standard-date-and-time-format-strings.md) and [Custom date and time format strings](custom-date-and-time-format-strings.md). Omitting this field or providing `null` results in parsing the date using a best effort. + * `Culture`: When `Format` isn't null, `Culture` controls some format specifiers. For example, in `"en-US"` `"MMM"` is `"Jan", "Feb", "Mar", ...`, while in `"ru-RU"` `"MMM"` is `"янв", "фев", "мар", ...`. When `Format` is `null`, `Culture` controls the default format to use. When `Culture` is `null` or omitted, [Culture.Current](culture-current.md) is used. + +To support legacy workflows, `options` can also be a text value. This has the same behavior as if `options = [Format = null, Culture = options]`. ## Example 1 @@ -62,6 +65,45 @@ Date.FromText("1400", [Format="yyyy", Culture="ar-SA"]) `#date(1979, 11, 20)` +## Example 4 + +Convert the Italian text dates with abbreviated months in the Posted Date column to date values. + +**Usage** + +```powerquery-m +let + Source = #table(type table [Account Code = text, Posted Date = text, Sales = number], + { + {"US-2004", "20 gen. 2023", 580}, + {"CA-8843", "18 lug. 2024", 280}, + {"PA-1274", "12 gen. 2023", 90}, + {"PA-4323", "14 apr. 2023", 187}, + {"US-1200", "14 dic. 2023", 350}, + {"PTY-507", "4 giu. 2024", 110} + }), + #"Converted Date" = Table.TransformColumns( + Source, + {"Posted Date", each Date.FromText(_, [Culture = "it-IT"]), type date} + ) +in + #"Converted Date" +``` + +**Output** + +```powerquery-m +#table(type table [Account Code = text, Posted Date = date, Sales = number], +{ + {"US-2004", #date(2023, 1, 20), 580}, + {"CA-8843", #date(2024, 7, 18), 280}, + {"PA-1274", #date(2023, 1, 12), 90}, + {"PA-4323", #date(2023, 4, 14), 187}, + {"US-1200", #date(2023, 12, 14), 350}, + {"PTY-507", #date(2024, 6, 4), 110} +}) +``` + ## Related content * [How culture affects text formatting](how-culture-affects-text-formatting.md) diff --git a/query-languages/m/datetimezone-functions.md b/query-languages/m/datetimezone-functions.md index 43cf83d83..8c8e0b22d 100644 --- a/query-languages/m/datetimezone-functions.md +++ b/query-languages/m/datetimezone-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DateTimeZone functions" title: "DateTimeZone functions" -ms.date: 5/16/2022 +ms.date: 11/13/2024 ms.custom: "nonautomated-date" --- # DateTimeZone functions diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index addaf04ed..e022749d0 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "10/14/2024" + "ms.date": "11/24/2024" }, "fileMetadata": { }, "template": [], diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index b744ba2f6..1a3a5c693 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -12,4 +12,21 @@ Lines.FromBinary(binary as binary, optional quoteStyle as any, opt ## About -Converts a binary value to a list of text values split at lines breaks. If a quote style is specified, then line breaks may appear within quotes. If includeLineSeparators is true, then the line break characters are included in the text. +Converts a binary value to a list of text values split at line breaks. + +* `binary`: The binary value to convert to the list. +* `quoteStyle`: Specifies how line breaks are handled. The value of `quoteStyle` can be `null`. The default value is [QuoteStyle.None](quotestyle-type.md). +* `includeLineSeparators`: Specifies whether to include the line break characters in the text. The value of `includeLineSeparators` can be `null`. The default value is `false`. +* `encoding`: Specifies the text encoding of the binary value. The value of `encoding` can be `null`. The default value is `65001` (UTF-8). + +If a record is specified for `quoteStyle` (and `includeLineSeparators` and `encoding` are `null`), the following record fields can be provided: + +* `QuoteStyle`: Specifies how quoted line breaks are handled. + * [QuoteStyle.Csv](quotestyle-type.md): Quoted line breaks are treated as part of the data, not as the end of the current row. + * [QuoteStyle.None](quotestyle-type.md): All line breaks are treated as the end of the current row, even when they occur inside a quoted value. This value is the default if the `CsvStyle` option isn't specified. +* `CsvStyle`: Specifies how quotes are handled. Should not be used with `QuoteStyle.None`. + * [CsvStyle.QuoteAfterDelimiter](csvstyle-type.md): Quotes in a field are only significant immediately following the `Delimiter. + * [CsvStyle.QuoteAlways](csvstyle-type.md): Quotes in a field are always significant, regardless of where they appear. +* `Delimiter`: A single character delimiter. Should be used only with `CsvStyle.QuoteAfterDelimiter`. +* `IncludeLineSeparators`: Specifies whether to include the line break characters in the text. The default value is `false`. +* `Encoding`: The text encoding of the binary value. The default value is `65001` (UTF-8). diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index 7fa4be2db..c958c87bc 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -12,7 +12,19 @@ Lines.FromText(text as text, optional quoteStyle as any, optional ## About -Converts a text value to a list of text values split at lines breaks. If `includeLineSeparators` is true, then the line break characters are included in the text. +Converts a text value to a list of text values split at line breaks. -* `QuoteStyle.None`: (default) No quoting behavior is needed. -* `QuoteStyle.Csv`: Quoting is as per Csv. A double quote character is used to demarcate such regions, and a pair of double quote characters is used to indicate a single double quote character within such a region. +* `text`: The text value to convert to the list of text values. +* `quoteStyle`: Specifies how line breaks are handled. The value of `quoteStyle` can be `null`. The default value is [QuoteStyle.None](quotestyle-type.md). +* `includeLineSeparators`: Specifies whether to include the line break characters in the text. The value of `includeLineSeparators` can be `null`. The default value is `false`. + +If a record is specified for `quoteStyle` (and `includeLineSeparators` is `null`), the following record fields can be provided: + +* `QuoteStyle`: Specifies how quoted line breaks are handled. + * [QuoteStyle.Csv](quotestyle-type.md): Quoted line breaks are treated as part of the data, not as the end of the current row. + * [QuoteStyle.None](quotestyle-type.md): All line breaks are treated as the end of the current row, even when they occur inside a quoted value. This value is the default if the `CsvStyle` option isn't specified. +* `CsvStyle`: Specifies how quotes are handled. Should not be used with `QuoteStyle.None`. + * [CsvStyle.QuoteAfterDelimiter](csvstyle-type.md): Quotes in a field are only significant immediately following the `Delimiter`. + * [CsvStyle.QuoteAlways](csvstyle-type.md): Quotes in a field are always significant, regardless of where they appear. +* `Delimiter`: A single character delimiter. Should be used only with `CsvStyle.QuoteAfterDelimiter`. +* `IncludeLineSeparators`: Specifies whether to include the line break characters in the text. The default value is `false`. From 8df51552991a77a930858056503656b1fa9ac4ae Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 13 Nov 2024 13:32:53 -0800 Subject: [PATCH 605/934] Fixed inaccurate date --- query-languages/m/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index e022749d0..cb805709a 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "11/24/2024" + "ms.date": "11/13/2024" }, "fileMetadata": { }, "template": [], From 68a912d89a73eb6f15f11b5c2a26a56148fb8180 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 18 Nov 2024 14:05:20 -0500 Subject: [PATCH 606/934] Term change --- .../m/m-spec-consolidated-grammar.md | 14 ++++++------- query-languages/m/m-spec-functions.md | 10 +++++----- query-languages/m/m-spec-operators.md | 20 +++++++++---------- query-languages/m/m-spec-types.md | 8 ++++---- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 02ef665ea..91baffe55 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -259,13 +259,13 @@ logical-and-expression:
_is-expression:
      as-expression
-      is-expression_ `is` _non-custom-type_ +      is-expression_ `is` _primitive-or-nullable-primitive-type_ #### As expression _as-expression:
      equality-expression
-      as-expression_ `as` _non-custom-type_ +      as-expression_ `as` _primitive-or-nullable-primitive-type_ #### Equality expression @@ -449,11 +449,11 @@ parameter:
parameter-name:
      identifier
parameter-type:
-      non-custom-type-assertion
+      primitive-or-nullable-primitive-type-assertion
return-type:
-      non-custom-type-assertion
-non-custom-type-assertion:_
-      `as` _non-custom-type
+      primitive-or-nullable-primitive-type-assertion
+primitive-or-nullable-primitive-type-assertion:_
+      `as` _primitive-or-nullable-primitive-type
optional-parameter-list:
      optional-parameter
      optional-parameter_ `,` _optional-parameter-list
@@ -508,7 +508,7 @@ primary-type:
primitive-type:_ one of
      `any anynonnull binary date datetime datetimezone duration function`
      `list logical none null number record table text time type`
-_non-custom-type:_
+_primitive-or-nullable-primitive-type:_
      `nullable`_opt primitive-type_
_record-type:_
      `[` _open-record-marker_ `]`
diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index e4945a68a..4e74a272f 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -31,17 +31,17 @@ parameter:
parameter-name:
      identifier
parameter-type:
-      non-custom-type-assertion
+      primitive-or-nullable-primitive-type-assertion
return-type:
-      non-custom-type-assertion
-non-custom-type-assertion:_
-      `as` _non-custom-type
+      primitive-or-nullable-primitive-type-assertion
+primitive-or-nullable-primitive-type-assertion:_
+      `as` _primitive-or-nullable-primitive-type
optional-parameter-list:
      optional-parameter
      optional-parameter_ `,` _optional-parameter-list
optional-parameter:_
      `optional` _parameter_
-_non-custom-type:_
+_primitive-or-nullable-primitive-type:_
      `nullable`_opt primitive-type_ The following is an example of a function that requires exactly two values `x` and `y`, and produces the result of applying the `+` operator to those values. The `x` and `y` are _parameters_ that are part of the _parameter-list_ of the function, and the `x + y` is the _function-body_: diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 4b6fccb20..508abaec8 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -132,12 +132,12 @@ The following table summarizes the M operators, listing the operator categories
- + - + @@ -1252,14 +1252,14 @@ The type compatibility operator `x is y` is defined for the following types of | X | Y | Result | | --- | --- | --- | -| `type any` | _non-custom-type_ | `type logical` | +| `type any` | _primitive-or-nullable-primitive-type_ | `type logical` | -The expression `x is y` returns `true` if the ascribed type of `x` is compatible with `y`, and returns `false` if it is not compatible. `y` must be a _non-custom-type_. +The expression `x is y` returns `true` if the ascribed type of `x` is compatible with `y`, and returns `false` if it is not compatible. `y` must be a _primitive-or-nullable-primitive-type_. _is-expression:
      as-expression
-      is-expression_ `is` _non-custom-type
-non-custom-type:_
+      is-expression_ `is` _primitive-or-nullable-primitive-type
+primitive-or-nullable-primitive-type:_
      `nullable`_opt primitive-type_
Type compatibility, as supported by the `is` operator, is a subset of [general type compatibility](m-spec-types.md) and is defined using the following rules: @@ -1278,14 +1278,14 @@ The type assertion operator `x as y` is defined for the following types of value | X | Y | Result | | --- | --- | --- | -| `type any` | _non-custom-type_ | `type any` | +| `type any` | _primitive-or-nullable-primitive-type_ | `type any` | -The expression `x as y` asserts that the value `x` is compatible with `y` as per the `is` operator. If it is not compatible, an error is raised. `y` must be a _non-custom-type_. +The expression `x as y` asserts that the value `x` is compatible with `y` as per the `is` operator. If it is not compatible, an error is raised. `y` must be a _primitive-or-nullable-primitive-type_. _as-expression:
      equality-expression
-      as-expression_ `as` _non-custom-type
-non-custom-type:_
+      as-expression_ `as` _primitive-or-nullable-primitive-type
+primitive-or-nullable-primitive-type:_
      `nullable`_opt primitive-type_ The expression `x as y` is evaluated as follows: diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index c89d907d1..3ab1d10c4 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -26,12 +26,12 @@ A _type value_ is a value that _classifies_ other values. A value that is classi The set of _primitive types_ includes the types of primitive values, and a number of _abstract types_, which are types that do not uniquely classify any values: `function`, `table`, `any`, `anynonnull` and `none`. All function values conform to the abstract type `function`, all table values to the abstract type `table`, all values to the abstract type `any`, all non-null values to the abstract type `anynonnull`, and no values to the abstract type `none`. An expression of type `none` must raise an error or fail to terminate since no value could be produced that conforms to type `none`. Note that the primitive types `function` and `table` are abstract because no function or table is directly of those types, respectively. The primitive types `record` and `list` are non-abstract because they represent an open record with no defined fields and a list of type any, respectively. -The set of _primitive types_ plus their nullable counterparts are known as _non-custom types_. +The set of _primitive types_ plus their nullable counterparts are known as the _primitive-or-nullable-primitive-types_ or alternately as the _non-custom types_. _primitive-type:_ one of
      `any anynonnull binary date datetime datetimezone duration function list logical`
      `none null number record table text time type`
-_non-custom-type:_
+_primitive-or-nullable-primitive-type:_
      `nullable`_opt primitive-type_
All other types are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: @@ -96,7 +96,7 @@ Value.Type( 1 as number ) // type number {2} as text // error, type mismatch ``` -Note that the `is` and `as` operators only accept a _non-custom type_ as their right operand. M does not provide means to check values for conformance to custom types. +Note that the `is` and `as` operators only accept a _primitive or nullable primitive type_ (i.e. a _non-custom type_) as their right operand. M does not provide means to check values for conformance to custom types. A type `X` is _compatible_ with a type `Y` if and only if all values that conform to `X` also conform to `Y`. All types are compatible with type `any` and no types (but `none` itself) are compatible with type `none`. The following graph shows the compatibility relation. (Type compatibility is reflexive and transitive. It forms a lattice with type `any` as the top and type `none` as the bottom value.) The names of abstract types are set in _italics_. @@ -365,7 +365,7 @@ Value.Type( Value.ReplaceType( {1}, type {number} ) Type equivalence is not defined in M. An M implementation may optionally choose to use its own rules to perform equality comparisons between type values. Comparing two type values for equality should evaluate to `true` if they are considered identical by the implementation, and `false` otherwise. In either case, the response returned must be consistent if the same two values are repeatedly compared. Note that within a given implementation, comparing some identical type values (such as `(type text) = (type text)`) may return `true`, while comparing others (such as `(type [a = text]) = (type [a = text])`) may not. -Compatibility between a given type and a _non-custom type_ can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a _non-custom type_ value as its second argument: +Compatibility between a given type and a _non-custom type_ can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a _primitive or nullable primitive_ value as its second argument: ```powerquery-m Type.Is(type text, type nullable text) // true From 7d5d05fe46dd35311d6133d7818985783eed42c8 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 18 Nov 2024 14:12:25 -0500 Subject: [PATCH 607/934] Removing space --- query-languages/m/m-spec-consolidated-grammar.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 91baffe55..6f4e7d44f 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -547,7 +547,7 @@ optional-parameter-specification-list:
optional-parameter-specification:_
      `optional` _parameter-specification
parameter-specification:
-      parameter-name parameter-type
+      parameter-name parameter-type
parameter-type:
      assertion
assertion:_
From 0589e40e9b39e25141501e8cfbb02013f5bd98bc Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 19 Nov 2024 14:30:43 -0800 Subject: [PATCH 608/934] Made changes to reflect doc edits --- query-languages/m/combiner-functions.md | 2 +- query-languages/m/list-functions.md | 10 +++++----- .../m/power-query-m-language-specification.md | 2 +- query-languages/m/type-conversion.md | 17 +++++++++++------ .../m/understanding-power-query-m-functions.md | 16 ++++++++-------- 5 files changed, 26 insertions(+), 21 deletions(-) diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index b77d6e38e..41e4f56c9 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Combiner functions" title: "Combiner functions" -ms.date: 10/19/2023 +ms.date: 11/14/2024 ms.custom: "nonautomated-date" --- # Combiner functions diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index bbd082878..7a7108eb7 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List functions" title: "List functions" -ms.date: 10/7/2022 +ms.date: 11/14/2022 ms.custom: "nonautomated-date" --- # List functions @@ -13,15 +13,15 @@ These functions create and manipulate list values. |Name|Description| |------------|---------------| |[List.Count](list-count.md)|Returns the number of items in a list.| -|[List.NonNullCount](list-nonnullcount.md)|Returns the number of items in a list excluding null values| -|[List.IsEmpty](list-isempty.md)|Returns whether a list is empty.| +|[List.NonNullCount](list-nonnullcount.md)|Returns the number of non-null items in the list.| +|[List.IsEmpty](list-isempty.md)|Returns true if the list is empty.| ## Selection |Name|Description| |------------|---------------| -|[List.Alternate](list-alternate.md)|Returns a list with the items alternated from the original list based on a count, optional repeatInterval, and an optional offset.| -|[List.Buffer](list-buffer.md)|Buffers the list in memory. The result of this call is a stable list, which means it will have a determinimic count, and order of items.| +|[List.Alternate](list-alternate.md)|Returns a list comprised of all the odd numbered offset elements in a list.| +|[List.Buffer](list-buffer.md)|Buffers a list in memory. The result of this call is a stable list, which means it has a deterministic count, and order of items.| |[List.Distinct](list-distinct.md)|Filters a list down by removing duplicates. An optional equation criteria value can be specified to control equality comparison. The first value from each equality group is chosen.| |[List.FindText](list-findtext.md)|Searches a list of values, including record fields, for a text value.| |[List.First](list-first.md)|Returns the first value of the list or the specified default if empty. Returns the first item in the list, or the optional default value, if the list is empty. If the list is empty and a default value is not specified, the function returns.| diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index 358ea912e..b91fd70a4 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -2,7 +2,7 @@ description: "Learn more about: Power Query M language specification" title: "Power Query M language specification" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 11/14/2024 ms.custom: "nonautomated-date" --- # Power Query M language specification diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 724f0cff8..644c95a10 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -2,7 +2,7 @@ description: "Learn more about: Type conversion" title: "Type conversion" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 11/14/2024 ms.custom: "nonautomated-date" --- @@ -16,25 +16,30 @@ The Power Query M formula language has formulas to convert between types. The fo |-------------------|---------------| |Number.FromText(text as text) as number|Returns a number value from a text value.| |Number.ToText(number as number) as text|Returns a text value from a number value.| -|Number.From(value as any) as number|Returns a number value from a value.| +|Number.From(value as any) as number|Returns a number value from a value.| +|Byte.From(value as any) as number|Returns an 8-bit integer number value from the given value.| +|Int8.From(value as any) as number|Returns an 8-bit integer number value from the given value.| +|Int16.From(value as any) as number|Returns a 16-bit integer number value from the given value.| |Int32.From(value as any) as number|Returns a 32-bit integer number value from the given value.| |Int64.From(value as any) as number|Returns a 64-bit integer number value from the given value.| |Single.From(value as any) as number|Returns a Single number value from the given value.| |Double.From(value as any) as number|Returns a Double number value from the given value.| |Decimal.From(value as any) as number|Returns a Decimal number value from the given value.| -|Currency.From(value as any) as number|Returns a Currency number value from the given value.| +|Currency.From(value as any) as number|Returns a Currency number value from the given value.| +|Percentage.From(value as any) as number|Returns a Percentage number value from the given value.| ## Text |Type conversion|Description| |-------------------|---------------| -|Text.From(value as any) as text|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration or binary value.| +|Text.From(value as any) as text|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration or binary value.| +|Guid.From(value as text) as text|Returns the GUID representation of the specified text.| ## Logical |Type conversion|Description| |-------------------|---------------| -|Logical.FromText(text as text) as logical|Returns a logical value of true or false from a text value.| +|Logical.FromText(text as text) as logical|Returns a logical value of `true` or `false` from a text value.| |Logical.ToText(logical as logical) as text|Returns a text value from a logical value.| |Logical.From(value as any) as logical|Returns a logical value from a value.| @@ -43,6 +48,6 @@ The Power Query M formula language has formulas to convert between types. The fo |Type conversion|Description| |-------------------|---------------| |.FromText(text as text) as date, time, datetime, or datetimezone|Returns a date, time, datetime, or datetimezone value from a set of date formats and culture value.| -|.ToText(date, time, dateTime, or dateTimeZone as
date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| +|.ToText(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| |.From(value as any)|Returns a date, time, datetime, or datetimezone value from a value.| |.ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone)|Returns a record containing parts of a date, time, datetime, or datetimezone value.| diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index 8b6b67064..2101e145a 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -2,7 +2,7 @@ description: "Learn more about: Understanding Power Query M functions" title: "Understanding Power Query M functions" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 11/14/2024 ms.custom: "nonautomated-date" --- @@ -10,9 +10,9 @@ ms.custom: "nonautomated-date" In the Power Query M formula language, a *function* is a mapping from a set of input values to a single output value. A function is written by first naming the function parameters, and then providing an expression to compute the result of the function. The body of the function follows the goes-to (=>) symbol. Optionally, type information can be included on parameters and the function return value. A function is defined and invoked in the body of a **let** statement. Parameters and/or return value can be implicit or explicit. Implicit parameters and/or return value are of type **any**. Type **any** is similar to an object type in other languages. All types in M derive from type **any**. -A **function** is a value just like a number or a text value, and can be included in-line just like any other expression. The following example shows a function which is the value of an Add variable which is then invoked, or executed, from several other variables. When a function is invoked, a set of values are specified which are logically substituted for the required set of input values within the function body expression. +A function is a value just like a number or a text value, and can be included in-line just like any other expression. The following example shows a function that is the value of an **Add** variable, which is then invoked, or executed, from several other variables. When a function is invoked, a set of values are specified that logically substitute for the required set of input values within the function body expression. -**Example – Explicit parameters and return value** +**Example - Explicit parameters and return value** ```powerquery-m let @@ -23,7 +23,7 @@ in CalcAddOne ``` -**Example – Implicit parameters and return value** +**Example - Implicit parameters and return value** ```powerquery-m let @@ -67,12 +67,12 @@ in **Each keyword** -The **each** keyword is used to easily create simple functions. "each ..." is syntactic sugar for a function signature that takes the _ parameter "(\_) => ..." +The **each** keyword is used to easily create simple functions. `each ...` is syntactic sugar for a function signature that takes the `_` parameter `(_) => ...`. -Each is useful when combined with the lookup operator, which is applied by default to _ -For example, each [CustomerID] is the same as each \_[CustomerID], which is the same as (\_) => \_[CustomerID] +The **each** keyword is useful when combined with the lookup operator, which is applied by default to `_`. +For example, `each [CustomerID]` is the same as `each _[CustomerID]`, which is the same as `(_) => _[CustomerID]`. -**Example – Using each in table row filter** +**Example - Using each in table row filter** ```powerquery-m Table.SelectRows( From 0e5ed4551fb5050c869f43ae18883948028e6a1e Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 19 Nov 2024 14:42:34 -0800 Subject: [PATCH 609/934] Revert "Made changes to reflect doc edits" This reverts commit 0589e40e9b39e25141501e8cfbb02013f5bd98bc. --- query-languages/m/combiner-functions.md | 2 +- query-languages/m/list-functions.md | 10 +++++----- .../m/power-query-m-language-specification.md | 2 +- query-languages/m/type-conversion.md | 17 ++++++----------- .../m/understanding-power-query-m-functions.md | 16 ++++++++-------- 5 files changed, 21 insertions(+), 26 deletions(-) diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index 41e4f56c9..b77d6e38e 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Combiner functions" title: "Combiner functions" -ms.date: 11/14/2024 +ms.date: 10/19/2023 ms.custom: "nonautomated-date" --- # Combiner functions diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index 7a7108eb7..bbd082878 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List functions" title: "List functions" -ms.date: 11/14/2022 +ms.date: 10/7/2022 ms.custom: "nonautomated-date" --- # List functions @@ -13,15 +13,15 @@ These functions create and manipulate list values. |Name|Description| |------------|---------------| |[List.Count](list-count.md)|Returns the number of items in a list.| -|[List.NonNullCount](list-nonnullcount.md)|Returns the number of non-null items in the list.| -|[List.IsEmpty](list-isempty.md)|Returns true if the list is empty.| +|[List.NonNullCount](list-nonnullcount.md)|Returns the number of items in a list excluding null values| +|[List.IsEmpty](list-isempty.md)|Returns whether a list is empty.| ## Selection |Name|Description| |------------|---------------| -|[List.Alternate](list-alternate.md)|Returns a list comprised of all the odd numbered offset elements in a list.| -|[List.Buffer](list-buffer.md)|Buffers a list in memory. The result of this call is a stable list, which means it has a deterministic count, and order of items.| +|[List.Alternate](list-alternate.md)|Returns a list with the items alternated from the original list based on a count, optional repeatInterval, and an optional offset.| +|[List.Buffer](list-buffer.md)|Buffers the list in memory. The result of this call is a stable list, which means it will have a determinimic count, and order of items.| |[List.Distinct](list-distinct.md)|Filters a list down by removing duplicates. An optional equation criteria value can be specified to control equality comparison. The first value from each equality group is chosen.| |[List.FindText](list-findtext.md)|Searches a list of values, including record fields, for a text value.| |[List.First](list-first.md)|Returns the first value of the list or the specified default if empty. Returns the first item in the list, or the optional default value, if the list is empty. If the list is empty and a default value is not specified, the function returns.| diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index b91fd70a4..358ea912e 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -2,7 +2,7 @@ description: "Learn more about: Power Query M language specification" title: "Power Query M language specification" ms.topic: conceptual -ms.date: 11/14/2024 +ms.date: 8/2/2022 ms.custom: "nonautomated-date" --- # Power Query M language specification diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 644c95a10..724f0cff8 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -2,7 +2,7 @@ description: "Learn more about: Type conversion" title: "Type conversion" ms.topic: conceptual -ms.date: 11/14/2024 +ms.date: 8/2/2022 ms.custom: "nonautomated-date" --- @@ -16,30 +16,25 @@ The Power Query M formula language has formulas to convert between types. The fo |-------------------|---------------| |Number.FromText(text as text) as number|Returns a number value from a text value.| |Number.ToText(number as number) as text|Returns a text value from a number value.| -|Number.From(value as any) as number|Returns a number value from a value.| -|Byte.From(value as any) as number|Returns an 8-bit integer number value from the given value.| -|Int8.From(value as any) as number|Returns an 8-bit integer number value from the given value.| -|Int16.From(value as any) as number|Returns a 16-bit integer number value from the given value.| +|Number.From(value as any) as number|Returns a number value from a value.| |Int32.From(value as any) as number|Returns a 32-bit integer number value from the given value.| |Int64.From(value as any) as number|Returns a 64-bit integer number value from the given value.| |Single.From(value as any) as number|Returns a Single number value from the given value.| |Double.From(value as any) as number|Returns a Double number value from the given value.| |Decimal.From(value as any) as number|Returns a Decimal number value from the given value.| -|Currency.From(value as any) as number|Returns a Currency number value from the given value.| -|Percentage.From(value as any) as number|Returns a Percentage number value from the given value.| +|Currency.From(value as any) as number|Returns a Currency number value from the given value.| ## Text |Type conversion|Description| |-------------------|---------------| -|Text.From(value as any) as text|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration or binary value.| -|Guid.From(value as text) as text|Returns the GUID representation of the specified text.| +|Text.From(value as any) as text|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration or binary value.| ## Logical |Type conversion|Description| |-------------------|---------------| -|Logical.FromText(text as text) as logical|Returns a logical value of `true` or `false` from a text value.| +|Logical.FromText(text as text) as logical|Returns a logical value of true or false from a text value.| |Logical.ToText(logical as logical) as text|Returns a text value from a logical value.| |Logical.From(value as any) as logical|Returns a logical value from a value.| @@ -48,6 +43,6 @@ The Power Query M formula language has formulas to convert between types. The fo |Type conversion|Description| |-------------------|---------------| |.FromText(text as text) as date, time, datetime, or datetimezone|Returns a date, time, datetime, or datetimezone value from a set of date formats and culture value.| -|.ToText(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| +|.ToText(date, time, dateTime, or dateTimeZone as
date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| |.From(value as any)|Returns a date, time, datetime, or datetimezone value from a value.| |.ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone)|Returns a record containing parts of a date, time, datetime, or datetimezone value.| diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index 2101e145a..8b6b67064 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -2,7 +2,7 @@ description: "Learn more about: Understanding Power Query M functions" title: "Understanding Power Query M functions" ms.topic: conceptual -ms.date: 11/14/2024 +ms.date: 8/2/2022 ms.custom: "nonautomated-date" --- @@ -10,9 +10,9 @@ ms.custom: "nonautomated-date" In the Power Query M formula language, a *function* is a mapping from a set of input values to a single output value. A function is written by first naming the function parameters, and then providing an expression to compute the result of the function. The body of the function follows the goes-to (=>) symbol. Optionally, type information can be included on parameters and the function return value. A function is defined and invoked in the body of a **let** statement. Parameters and/or return value can be implicit or explicit. Implicit parameters and/or return value are of type **any**. Type **any** is similar to an object type in other languages. All types in M derive from type **any**. -A function is a value just like a number or a text value, and can be included in-line just like any other expression. The following example shows a function that is the value of an **Add** variable, which is then invoked, or executed, from several other variables. When a function is invoked, a set of values are specified that logically substitute for the required set of input values within the function body expression. +A **function** is a value just like a number or a text value, and can be included in-line just like any other expression. The following example shows a function which is the value of an Add variable which is then invoked, or executed, from several other variables. When a function is invoked, a set of values are specified which are logically substituted for the required set of input values within the function body expression. -**Example - Explicit parameters and return value** +**Example – Explicit parameters and return value** ```powerquery-m let @@ -23,7 +23,7 @@ in CalcAddOne ``` -**Example - Implicit parameters and return value** +**Example – Implicit parameters and return value** ```powerquery-m let @@ -67,12 +67,12 @@ in **Each keyword** -The **each** keyword is used to easily create simple functions. `each ...` is syntactic sugar for a function signature that takes the `_` parameter `(_) => ...`. +The **each** keyword is used to easily create simple functions. "each ..." is syntactic sugar for a function signature that takes the _ parameter "(\_) => ..." -The **each** keyword is useful when combined with the lookup operator, which is applied by default to `_`. -For example, `each [CustomerID]` is the same as `each _[CustomerID]`, which is the same as `(_) => _[CustomerID]`. +Each is useful when combined with the lookup operator, which is applied by default to _ +For example, each [CustomerID] is the same as each \_[CustomerID], which is the same as (\_) => \_[CustomerID] -**Example - Using each in table row filter** +**Example – Using each in table row filter** ```powerquery-m Table.SelectRows( From 69096d24744abffdd167a1b81194be73b86c6709 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 21 Nov 2024 15:09:42 -0800 Subject: [PATCH 610/934] Update various M articles for freshness --- query-languages/m/accessing-data-functions.md | 102 +++++++++--------- query-languages/m/combiner-functions.md | 2 +- query-languages/m/comparer-functions.md | 4 +- query-languages/m/datetime-functions.md | 48 ++++----- query-languages/m/logical-functions.md | 10 +- .../m/power-query-m-language-specification.md | 2 +- query-languages/m/type-conversion.md | 9 +- .../understanding-power-query-m-functions.md | 38 +++---- 8 files changed, 110 insertions(+), 105 deletions(-) diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index 33ae4a2f0..5a88c0c32 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Accessing data functions" title: "Accessing data functions" -ms.date: 5/16/2023 +ms.date: 11/21/2024 ms.custom: "nonautomated-date" --- # Accessing data functions @@ -15,81 +15,81 @@ These functions access data and return table values. Most of these functions ret |[ActiveDirectory.Domains](activedirectory-domains.md)|Returns a list of Active Directory domains in the same forest as the specified domain or of the current machine's domain if none is specified.| |[AdobeAnalytics.Cubes](adobeanalytics-cubes.md) | Returns the report suites in Adobe Analytics.| |[AdoDotNet.DataSource](adodotnet-datasource.md)|Returns the schema collection for an ADO.NET data source.| -|[AdoDotNet.Query](adodotnet-query.md)|Returns the schema collection for an ADO.NET data source.| +|[AdoDotNet.Query](adodotnet-query.md)|Returns the result of running a native query on an ADO.NET data source.| |[AnalysisServices.Database](analysisservices-database.md)|Returns a table of multidimensional cubes or tabular models from the Analysis Services database.| |[AnalysisServices.Databases](analysisservices-databases.md)|Returns the Analysis Services databases on a particular host.| -|[AzureStorage.BlobContents](azurestorage-blobcontents.md) | Returns the content of the specified blob from an Azure storage vault. | -|[AzureStorage.Blobs](azurestorage-blobs.md)|Returns a navigational table containing all containers found in the Azure Storage account. Each row has the container name and a link to the container blobs.| +|[AzureStorage.BlobContents](azurestorage-blobcontents.md) |Returns the content of the specified blob from an Azure storage vault. | +|[AzureStorage.Blobs](azurestorage-blobs.md)|Returns a navigational table containing the containers found in the specified account from an Azure storage vault. Each row has the container name and a link to the container blobs.| |[AzureStorage.DataLake](azurestorage-datalake.md)|Returns a navigational table containing the documents found in the specified container and its subfolders from Azure Data Lake Storage.| |[AzureStorage.DataLakeContents](azurestorage-datalakecontents.md)|Returns the content of the specified file from an Azure Data Lake Storage filesystem.| -|[AzureStorage.Tables](azurestorage-tables.md)|Returns a navigational table containing a row for each table found at the account URL from an Azure storage vault. Each row contains a link to the azure table.| +|[AzureStorage.Tables](azurestorage-tables.md)|Returns a navigational table containing the tables found in the specified account from an Azure storage vault. Each row contains a link to the azure table.| |[Cdm.Contents](cdm-contents.md)|This function is unavailable because it requires .NET 4.5.| -|[Csv.Document](csv-document.md)|Returns the contents of a CSV document as a table using the specified encoding.| -|[Cube.AddAndExpandDimensionColumn](cube-addandexpanddimensioncolumn.md)|Merges the specified dimension table, dimensionSelector, into the cube's, cube, filter context and changes the dimensional granularity by expanding the specified set, attributeNames, of dimension attributes. | -|[Cube.AddMeasureColumn](cube-addmeasurecolumn.md)|Adds a column with the name column to the cube that contains the results of the measure measureSelector applied in the row context of each row. | -|[Cube.ApplyParameter](cube-applyparameter.md)|Returns a cube after applying parameter with arguments to cube.| -|[Cube.AttributeMemberId](cube-attributememberid.md)|Returns the unique member identifier from a member property value.| -|[Cube.AttributeMemberProperty](cube-attributememberproperty.md) | Returns the property `propertyName` of dimension attribute `attribute`.| -|[Cube.CollapseAndRemoveColumns](cube-collapseandremovecolumns.md)|Changes the dimensional granularity of the filter context for the cube by collapsing the attributes mapped to the specified columns columnNames.| -|[Cube.Dimensions](cube-dimensions.md)|Returns a table containing the set of available dimensions within the cube.| +|[Csv.Document](csv-document.md)|Returns the contents of the CSV document as a table using the specified encoding.| +|[Cube.AddAndExpandDimensionColumn](cube-addandexpanddimensioncolumn.md)|Merges the specified dimension table into the cube’s filter context and changes the dimensional granularity of the filter context by expanding the specified set of dimension attributes.| +|[Cube.AddMeasureColumn](cube-addmeasurecolumn.md)|AAdds a column to the cube that contains the results of the measure applied in the row context of each row.| +|[Cube.ApplyParameter](cube-applyparameter.md)|Returns a cube after applying a parameter to it.| +|[Cube.AttributeMemberId](cube-attributememberid.md)|Returns the unique member identifier from members property value.| +|[Cube.AttributeMemberProperty](cube-attributememberproperty.md) | Returns a property of a dimension attribute.| +|[Cube.CollapseAndRemoveColumns](cube-collapseandremovecolumns.md)|Changes the dimensional granularity of the filter context for the cube by collapsing the attributes mapped to the specified columns.| +|[Cube.Dimensions](cube-dimensions.md)|Returns a table containing the set of available dimensions.| |[Cube.DisplayFolders](cube-displayfolders.md)|Returns a nested tree of tables representing the display folder hierarchy of the objects (for example, dimensions and measures).| -|[Cube.MeasureProperties](cube-measureproperties.md)|Returns a table containing the set of available properties for measures that are expanded in the cube.| -|[Cube.MeasureProperty](cube-measureproperty.md)|Returns the property of a measure.| -|[Cube.Measures](cube-measures.md)|Returns a table containing the set of available measures within the cube.| -|[Cube.Parameters](cube-parameters.md)|Returns a table containing the set of parameters that can be applied to cube.| +|[Cube.MeasureProperties](cube-measureproperties.md)|Returns a table containing the set of available measure properties that are expanded in the cube.| +|[Cube.MeasureProperty](cube-measureproperty.md)|Returns a property of a measure (cell property).| +|[Cube.Measures](cube-measures.md)|Returns a table containing the set of available measures.| +|[Cube.Parameters](cube-parameters.md)|Returns a table containing the set of parameters that can be applied to the cube.| |[Cube.Properties](cube-properties.md)|Returns a table containing the set of available properties for dimensions that are expanded in the cube.| -|[Cube.PropertyKey](cube-propertykey.md) | Returns the key of property `property`.| +|[Cube.PropertyKey](cube-propertykey.md) | Returns the key of a property.| |[Cube.ReplaceDimensions](cube-replacedimensions.md)|Replaces the set of dimensions returned by [Cube.Dimensions](/powerquery-m/cube-dimensions).| -|[Cube.Transform](cube-transform.md)|Applies the list cube functions, transforms, on the cube.| +|[Cube.Transform](cube-transform.md)|Applies a list of cube functions.| |[DB2.Database](db2-database.md)|Returns a table of SQL tables and views available in a Db2 database.| -|[DeltaLake.Table](deltalake-table.md)| Returns the contents of the Delta Lake table.| +|[DeltaLake.Table](deltalake-table.md)|Returns the contents of the Delta Lake table.| |[Essbase.Cubes](essbase-cubes.md)|Returns the cubes in an Essbase instance grouped by Essbase server.| -|[Excel.CurrentWorkbook](excel-currentworkbook.md)|Returns the tables in the current Excel Workbook.| -|[Excel.Workbook](excel-workbook.md)|Returns a table representing sheets in the given excel workbook.| +|[Excel.CurrentWorkbook](excel-currentworkbook.md)|Returns the contents of the current Excel workbook.| +|[Excel.Workbook](excel-workbook.md)|Returns the contents of the Excel workbook.| |[Exchange.Contents](exchange-contents.md)|Returns a table of contents from a Microsoft Exchange account.| -|[File.Contents](file-contents.md)|Returns the binary contents of the file located at a path.| +|[File.Contents](file-contents.md)|Returns the contents of the specified file as binary.| |[Folder.Contents](folder-contents.md)|Returns a table containing the properties and contents of the files and folders found in the specified folder.| -|[Folder.Files](folder-files.md)|Returns a table containing a row for each file found at a folder path, and subfolders. Each row contains properties of the folder or file and a link to its content.| +|[Folder.Files](folder-files.md)|Returns a table containing the properties and contents of the files found in the specified folder and subfolders. Each row contains properties of the folder or file and a link to its content.| |[GoogleAnalytics.Accounts](googleanalytics-accounts.md)|Returns the Google Analytics accounts for the current credential.| -|[Hdfs.Contents](hdfs-contents.md)|Returns a table containing a row for each folder and file found at the folder url, {0}, from a Hadoop file system. Each row contains properties of the folder or file and a link to its content.| -|[Hdfs.Files](hdfs-files.md)|Returns a table containing a row for each file found at the folder url, {0}, and subfolders from a Hadoop file system. Each row contains properties of the file and a link to its content.| -|[HdInsight.Containers](hdinsight-containers.md)|Returns a navigational table containing all containers found in the HDInsight account. Each row has the container name and table containing its files.| -|[HdInsight.Contents](hdinsight-contents.md)|Returns a navigational table containing all containers found in the HDInsight account. Each row has the container name and table containing its files.| -|[HdInsight.Files](hdinsight-files.md)|Returns a table containing a row for each folder and file found at the container URL, and subfolders from an HDInsight account. Each row contains properties of the file/folder and a link to its content.| +|[Hdfs.Contents](hdfs-contents.md)|Returns a table containing the properties and contents of the files and folders found in the specified folder from a Hadoop file system. Each row contains properties of the folder or file and a link to its content.| +|[Hdfs.Files](hdfs-files.md)|Returns a table containing the properties and contents of the files found in the specified folder and subfolders from a Hadoop file system. Each row contains properties of the file and a link to its content.| +|[HdInsight.Containers](hdinsight-containers.md)|Returns a navigational table containing the containers found in the specified account from an Azure storage vault. Each row has the container name and table containing its files.| +|[HdInsight.Contents](hdinsight-contents.md)|Returns a navigational table containing the containers found in the specified account from an Azure storage vault. Each row has the container name and table containing its files.| +|[HdInsight.Files](hdinsight-files.md)|Returns a table containing the properties and contents of the blobs found in the specified container from an Azure storage vault. Each row contains properties of the file/folder and a link to its content.| |[Html.Table](html-table.md)|Returns a table containing the results of running the specified CSS selectors against the provided HTML.| |[Identity.From](identity-from.md)|Creates an identity.| |[Identity.IsMemberOf](identity-ismemberof.md)|Determines whether an identity is a member of an identity collection.| |[IdentityProvider.Default](identityprovider-default.md)|The default identity provider for the current host.| -|[Informix.Database](informix-database.md)|Returns a table of SQL tables and views available in an Informix database on server `server` in the database instance named `database`.| -|[Json.Document](json-document.md)|Returns the contents of a JSON document. The contents may be directly passed to the function as text, or it may be the binary value returned by a function like File.Contents.| +|[Informix.Database](informix-database.md)|Returns a table of SQL tables and views available in an Informix database.| +|[Json.Document](json-document.md)|Returns the content of the JSON document. The contents can be directly passed to the function as text, or it can be the binary value returned by a function like [File.Contents](file-contents.md).| |[Json.FromValue](json-fromvalue.md)|Produces a JSON representation of a given value value with a text encoding specified by encoding.| -|[MySQL.Database](mysql-database.md)|Returns a table with data relating to the tables in the specified MySQL Database.| -|[OData.Feed](odata-feed.md)|Returns a table of OData feeds offered by an OData serviceUri.| -|[Odbc.DataSource](odbc-datasource.md)|Returns a table of SQL tables and views from the ODBC data source specified by the connection string `connectionString`. | +|[MySQL.Database](mysql-database.md)|Returns a table of SQL tables, views, and stored scalar functions available in a MySQL database.| +|[OData.Feed](odata-feed.md)|Returns a table of OData feeds offered by an OData service.| +|[Odbc.DataSource](odbc-datasource.md)|Returns a table of SQL tables and views from the ODBC data source.| |[Odbc.InferOptions](odbc-inferoptions.md)|Returns the result of trying to infer SQL capabilities for an ODBC driver. | -|[Odbc.Query](odbc-query.md)|Connects to a generic provider with the given connection string and returns the result of evaluating the query.| -|[OleDb.DataSource](oledb-datasource.md)|Returns a table of SQL tables and views from the OLE DB data source specified by the connection string.| +|[Odbc.Query](odbc-query.md)|Returns the result of running a native query on an ODBC data source.| +|[OleDb.DataSource](oledb-datasource.md)|Returns a table of SQL tables and views from the OLE DB data source.| |[OleDb.Query](oledb-query.md)|Returns the result of running a native query on an OLE DB data source.| -|[Oracle.Database](oracle-database.md)|Returns a table with data relating to the tables in the specified Oracle Database.| +|[Oracle.Database](oracle-database.md)|Returns a table of SQL tables and views from the Oracle database.| |[Pdf.Tables](pdf-tables.md)|Returns any tables found in a PDF file.| -|[PostgreSQL.Database](postgresql-database.md)|Returns a table with data relating to the tables in the specified PostgreSQL Database.| +|[PostgreSQL.Database](postgresql-database.md)|Returns a table of SQL tables and views available in a PostgreSQL database.| |[RData.FromBinary](rdata-frombinary.md)|Returns a record of data frames from the RData file.| -|[Salesforce.Data](salesforce-data.md)|Connects to the Salesforce Objects API and returns the set of available objects (i.e. Accounts).| -|[Salesforce.Reports](salesforce-reports.md)|Connects to the Salesforce Reports API and returns the set of available reports.| +|[Salesforce.Data](salesforce-data.md)|Returns the objects from the Salesforce account.| +|[Salesforce.Reports](salesforce-reports.md)|Returns the reports from the Salesforce account.| |[SapBusinessWarehouse.Cubes](sapbusinesswarehouse-cubes.md)|Returns the InfoCubes and queries in an SAP Business Warehouse system grouped by InfoArea.| |[SapHana.Database](saphana-database.md)|Returns the packages in an SAP HANA database.| -|[SharePoint.Contents](sharepoint-contents.md)|Returns a table containing a row for each folder and document found at the SharePoint site url. Each row contains properties of the folder or file and a link to its content.| -|[SharePoint.Files](sharepoint-files.md)|Returns a table containing a row for each document found at the SharePoint site url, and subfolders. Each row contains properties of the folder or file and a link to its content.| -|[SharePoint.Tables](sharepoint-tables.md)|Returns a table containing the result of a SharePoint List as an OData feed.| -|[Soda.Feed](soda-feed.md)|Returns the resulting table of a CSV file that can be accessed using the SODA 2.0 API. The URL must point to a valid SODA-compliant source that ends in a .csv extension.| -|[Sql.Database](sql-database.md)|Returns a table containing SQL tables located on a SQL Server instance database.| -|[Sql.Databases](sql-databases.md)|Returns a table with references to databases located on a SQL Server instance. Returns a navigation table.| -|[Sybase.Database](sybase-database.md)|Returns a table with data relating to the tables in the specified Sybase Database.| -|[Teradata.Database](teradata-database.md)|Returns a table with data relating to the tables in the specified Teradata Database.| +|[SharePoint.Contents](sharepoint-contents.md)|Returns a table containing content from a SharePoint site. Each row contains properties of the folder or file and a link to its content.| +|[SharePoint.Files](sharepoint-files.md)|Returns a table containing documents from a SharePoint site. Each row contains properties of the folder or file and a link to its content.| +|[SharePoint.Tables](sharepoint-tables.md)|Returns a table containing content from a SharePoint List.| +|[Soda.Feed](soda-feed.md)|Returns a table from the contents at the specified URL formatted according to the SODA 2.0 API. The URL must point to a valid SODA-compliant source that ends in a .csv extension.| +|[Sql.Database](sql-database.md)|Returns a table of SQL tables, views, and stored functions from the SQL Server database.| +|[Sql.Databases](sql-databases.md)|Returns a table of databases on a SQL Server.| +|[Sybase.Database](sybase-database.md)|Returns a table of SQL tables and views available in a Sybase database.| +|[Teradata.Database](teradata-database.md)|Returns a table of SQL tables and views from the Teradata database.| |[WebAction.Request](webaction-request.md)|Creates an action that, when executed, will return the results of performing a method request against url using HTTP as a binary value.| |[Web.BrowserContents](web-browsercontents.md)|Returns the HTML for the specified URL, as viewed by a web browser.| -|[Web.Contents](web-contents.md)|Returns the contents downloaded from a web URL as a binary value.| +|[Web.Contents](web-contents.md)|Returns the contents downloaded from the URL as binary.| |[Web.Headers](web-headers.md)|Returns the HTTP headers downloaded from the URL as a record value.| -|[Web.Page](web-page.md)|Returns the contents of an HTML webpage as a table.| -|[Xml.Document](xml-document.md)|Returns the contents of an XML document as a hierarchical table (list of records).| +|[Web.Page](web-page.md)|Returns the contents of the HTML document broken into its constituent structures, as well as a representation of the full document and its text after removing tags.| +|[Xml.Document](xml-document.md)|Returns the contents of the XML document as a hierarchical table (list of records).| |[Xml.Tables](xml-tables.md)|Returns the contents of an XML document as a nested collection of flattened tables.| diff --git a/query-languages/m/combiner-functions.md b/query-languages/m/combiner-functions.md index b77d6e38e..41e4f56c9 100644 --- a/query-languages/m/combiner-functions.md +++ b/query-languages/m/combiner-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Combiner functions" title: "Combiner functions" -ms.date: 10/19/2023 +ms.date: 11/14/2024 ms.custom: "nonautomated-date" --- # Combiner functions diff --git a/query-languages/m/comparer-functions.md b/query-languages/m/comparer-functions.md index 6b1623b6c..ac4ed09de 100644 --- a/query-languages/m/comparer-functions.md +++ b/query-languages/m/comparer-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Comparer functions" title: "Comparer functions" -ms.date: 9/11/2023 +ms.date: 11/20/2024 ms.custom: "nonautomated-date" --- # Comparer functions @@ -13,4 +13,4 @@ These functions test equality and determine ordering. |[Comparer.Equals](comparer-equals.md)|Returns a logical value based on the equality check over the two given values.| |[Comparer.FromCulture](comparer-fromculture.md)|Returns a comparer function based on the specified culture and case-sensitivity.| |[Comparer.Ordinal](comparer-ordinal.md)|Returns a comparer function which uses Ordinal rules to compare values.| -|[Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md)|Returns a case-insensitive comparer function which uses Ordinal rules to compare the provided values x and y.| +|[Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md)|Returns a case-insensitive comparer function which uses Ordinal rules to compare the provided values.| diff --git a/query-languages/m/datetime-functions.md b/query-languages/m/datetime-functions.md index 0f54044c0..a242ee15e 100644 --- a/query-languages/m/datetime-functions.md +++ b/query-languages/m/datetime-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: DateTime functions" title: "DateTime functions" -ms.date: 1/18/2023 +ms.date: 11/21/2024 ms.custom: "nonautomated-date" --- # DateTime functions @@ -11,28 +11,28 @@ These functions create and manipulate datetime and datetimezone values. |Name|Description| |------------|---------------| |[DateTime.AddZone](datetime-addzone.md)|Adds timezone information to the datetime value.| -|[DateTime.Date](datetime-date.md)|Returns a date part from a DateTime value.| -|[DateTime.FixedLocalNow](datetime-fixedlocalnow.md)|Returns a DateTime value set to the current date and time on the system.| -|[DateTime.From](datetime-from.md)|Returns a datetime value from a value.| -|[DateTime.FromFileTime](datetime-fromfiletime.md)|Returns a DateTime value from the supplied number.| +|[DateTime.Date](datetime-date.md)|Returns the date component of the given date, datetime, or datetimezone value.| +|[DateTime.FixedLocalNow](datetime-fixedlocalnow.md)|Returns the current date and time in the local timezone. This value is fixed and doesn't change with successive calls.| +|[DateTime.From](datetime-from.md)|Creates a datetime from the given value.| +|[DateTime.FromFileTime](datetime-fromfiletime.md)|Creates a datetime from a 64-bit long number.| |[DateTime.FromText](datetime-fromtext.md)|Creates a datetime from local and universal datetime formats.| -|[DateTime.IsInCurrentHour](datetime-isincurrenthour.md)|Indicates whether the given datetime value occurs during the current hour, as determined by the current date and time on the system.| -|[DateTime.IsInCurrentMinute](datetime-isincurrentminute.md)|Indicates whether the given datetime value occurs during the current minute, as determined by the current date and time on the system.| -|[DateTime.IsInCurrentSecond](datetime-isincurrentsecond.md)|Indicates whether the given datetime value occurs during the current second, as determined by the current date and time on the system.| -|[DateTime.IsInNextHour](datetime-isinnexthour.md)|Indicates whether the given datetime value occurs during the next hour, as determined by the current date and time on the system.| -|[DateTime.IsInNextMinute](datetime-isinnextminute.md)|Indicates whether the given datetime value occurs during the next minute, as determined by the current date and time on the system.| -|[DateTime.IsInNextNHours](datetime-isinnextnhours.md)|Indicates whether the given datetime value occurs during the next number of hours, as determined by the current date and time on the system.| -|[DateTime.IsInNextNMinutes](datetime-isinnextnminutes.md)|Indicates whether the given datetime value occurs during the next number of minutes, as determined by the current date and time on the system.| -|[DateTime.IsInNextNSeconds](datetime-isinnextnseconds.md)|Indicates whether the given datetime value occurs during the next number of seconds, as determined by the current date and time on the system.| -|[DateTime.IsInNextSecond](datetime-isinnextsecond.md)|Indicates whether the given datetime value occurs during the next second, as determined by the current date and time on the system.| -|[DateTime.IsInPreviousHour](datetime-isinprevioushour.md)|Indicates whether the given datetime value occurs during the previous hour, as determined by the current date and time on the system.| -|[DateTime.IsInPreviousMinute](datetime-isinpreviousminute.md)|Indicates whether the given datetime value occurs during the previous minute, as determined by the current date and time on the system.| -|[DateTime.IsInPreviousNHours](datetime-isinpreviousnhours.md)|Indicates whether the given datetime value occurs during the previous number of hours, as determined by the current date and time on the system.| -|[DateTime.IsInPreviousNMinutes](datetime-isinpreviousnminutes.md)|Indicates whether the given datetime value occurs during the previous number of minutes, as determined by the current date and time on the system.| -|[DateTime.IsInPreviousNSeconds](datetime-isinpreviousnseconds.md)|Indicates whether the given datetime value occurs during the previous number of seconds, as determined by the current date and time on the system.| -|[DateTime.IsInPreviousSecond](datetime-isinprevioussecond.md)|Indicates whether the given datetime value occurs during the previous second, as determined by the current date and time on the system.| -|[DateTime.LocalNow](datetime-localnow.md)|Returns a datetime value set to the current date and time on the system.| -|[DateTime.Time](datetime-time.md)|Returns a time part from a DateTime value.| -|[DateTime.ToRecord](datetime-torecord.md)|Returns a record containing parts of a DateTime value.| -|[DateTime.ToText](datetime-totext.md)|Returns a text value from a DateTime value.| +|[DateTime.IsInCurrentHour](datetime-isincurrenthour.md)|Indicates whether this datetime occurs during the current hour, as determined by the current date and time on the system.| +|[DateTime.IsInCurrentMinute](datetime-isincurrentminute.md)|Indicates whether this datetime occurs during the current minute, as determined by the current date and time on the system.| +|[DateTime.IsInCurrentSecond](datetime-isincurrentsecond.md)|Indicates whether this datetime occurs during the current second, as determined by the current date and time on the system.| +|[DateTime.IsInNextHour](datetime-isinnexthour.md)|Indicates whether this datetime occurs during the next hour, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current hour.| +|[DateTime.IsInNextMinute](datetime-isinnextminute.md)|Indicates whether this datetime occurs during the next minute, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current minute.| +|[DateTime.IsInNextNHours](datetime-isinnextnhours.md)|Indicates whether this datetime occurs during the next number of hours, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current hour.| +|[DateTime.IsInNextNMinutes](datetime-isinnextnminutes.md)|Indicates whether this datetime occurs during the next number of minutes, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current minute.| +|[DateTime.IsInNextNSeconds](datetime-isinnextnseconds.md)|Indicates whether this datetime occurs during the next number of seconds, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current second.| +|[DateTime.IsInNextSecond](datetime-isinnextsecond.md)|Indicates whether this datetime occurs during the next second, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current second.| +|[DateTime.IsInPreviousHour](datetime-isinprevioushour.md)|Indicates whether this datetime occurs during the previous hour, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current hour.| +|[DateTime.IsInPreviousMinute](datetime-isinpreviousminute.md)|Indicates whether this datetime occurs during the previous minute, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current minute.| +|[DateTime.IsInPreviousNHours](datetime-isinpreviousnhours.md)|Indicates whether this datetime occurs during the previous number of hours, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current hour.| +|[DateTime.IsInPreviousNMinutes](datetime-isinpreviousnminutes.md)|Indicates whether this datetime occurs during the previous number of minutes, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current minute.| +|[DateTime.IsInPreviousNSeconds](datetime-isinpreviousnseconds.md)|Indicates whether this datetime occurs during the previous number of seconds, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current second.| +|[DateTime.IsInPreviousSecond](datetime-isinprevioussecond.md)|Indicates whether this datetime occurs during the previous second, as determined by the current date and time on the system. This function returns `false` when passed a value that occurs within the current second.| +|[DateTime.LocalNow](datetime-localnow.md)|Returns the current date and time in the local timezone.| +|[DateTime.Time](datetime-time.md)|Returns the time part of the given datetime value.| +|[DateTime.ToRecord](datetime-torecord.md)|Returns a record containing the datetime value's parts.| +|[DateTime.ToText](datetime-totext.md)|Returns a textual representation of the datetime value.| |[#datetime](sharpdatetime.md)|Creates a datetime value from year, month, day, hour, minute, and second.| diff --git a/query-languages/m/logical-functions.md b/query-languages/m/logical-functions.md index 2a330ed98..4f8111dfa 100644 --- a/query-languages/m/logical-functions.md +++ b/query-languages/m/logical-functions.md @@ -1,15 +1,15 @@ --- description: "Learn more about: Logical functions" title: "Logical functions" -ms.date: 5/16/2022 +ms.date: 11/21/2024 ms.custom: "nonautomated-date" --- # Logical functions -These functions create and manipulate logical (that is, true/false) values. +These functions create and manipulate logical (that is, `true` or `false`) values. |Name|Description| |------------|---------------| -|[Logical.From](logical-from.md)|Returns a logical value from a value.| -|[Logical.FromText](logical-fromtext.md)|Returns a logical value of true or false from a text value.| -|[Logical.ToText](logical-totext.md)|Returns a text value from a logical value.| +|[Logical.From](logical-from.md)|Creates a logical from the given value.| +|[Logical.FromText](logical-fromtext.md)|Creates a logical value from the text values "true" and "false".| +|[Logical.ToText](logical-totext.md)|Returns the text "true" or "false" given a logical value.| diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index 358ea912e..b91fd70a4 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -2,7 +2,7 @@ description: "Learn more about: Power Query M language specification" title: "Power Query M language specification" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 11/14/2024 ms.custom: "nonautomated-date" --- # Power Query M language specification diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 724f0cff8..8c34d6573 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -2,7 +2,7 @@ description: "Learn more about: Type conversion" title: "Type conversion" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 11/14/2024 ms.custom: "nonautomated-date" --- @@ -17,18 +17,23 @@ The Power Query M formula language has formulas to convert between types. The fo |Number.FromText(text as text) as number|Returns a number value from a text value.| |Number.ToText(number as number) as text|Returns a text value from a number value.| |Number.From(value as any) as number|Returns a number value from a value.| +|Byte.From(value as any) as number|Returns an 8-bit integer number value from the given value.| +|Int8.From(value as any) as number|Returns an 8-bit integer number value from the given value.| +|Int16.From(value as any) as number|Returns a 16-bit integer number value from the given value.| |Int32.From(value as any) as number|Returns a 32-bit integer number value from the given value.| |Int64.From(value as any) as number|Returns a 64-bit integer number value from the given value.| |Single.From(value as any) as number|Returns a Single number value from the given value.| |Double.From(value as any) as number|Returns a Double number value from the given value.| |Decimal.From(value as any) as number|Returns a Decimal number value from the given value.| |Currency.From(value as any) as number|Returns a Currency number value from the given value.| +|Percentage.From(value as any) as number|Returns a Percentage number value from the given value.| ## Text |Type conversion|Description| |-------------------|---------------| |Text.From(value as any) as text|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration or binary value.| +|Guid.From(value as text) as text|Returns the GUID representation of the specified text.| ## Logical @@ -43,6 +48,6 @@ The Power Query M formula language has formulas to convert between types. The fo |Type conversion|Description| |-------------------|---------------| |.FromText(text as text) as date, time, datetime, or datetimezone|Returns a date, time, datetime, or datetimezone value from a set of date formats and culture value.| -|.ToText(date, time, dateTime, or dateTimeZone as
date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| +|.ToText(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| |.From(value as any)|Returns a date, time, datetime, or datetimezone value from a value.| |.ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone)|Returns a record containing parts of a date, time, datetime, or datetimezone value.| diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index 8b6b67064..4cdde510c 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -2,18 +2,18 @@ description: "Learn more about: Understanding Power Query M functions" title: "Understanding Power Query M functions" ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 11/14/2024 ms.custom: "nonautomated-date" --- # Understanding Power Query M functions In the Power Query M formula language, a *function* is a mapping from a set of input values to a single output value. A function is written by first naming the function parameters, and then providing an expression to compute the result of the function. The body of the function follows the goes-to (=>) symbol. Optionally, type information can be included on parameters and the function return value. A function is defined and invoked in the body of a **let** statement. Parameters and/or return value can be implicit or explicit. Implicit parameters and/or return value are of type **any**. Type **any** is similar to an object type in other languages. All types in M derive from type **any**. - -A **function** is a value just like a number or a text value, and can be included in-line just like any other expression. The following example shows a function which is the value of an Add variable which is then invoked, or executed, from several other variables. When a function is invoked, a set of values are specified which are logically substituted for the required set of input values within the function body expression. - -**Example – Explicit parameters and return value** - + +A function is a value just like a number or a text value, and can be included in-line just like any other expression. The following example shows a function that is the value of an **Add** variable, which is then invoked, or executed, from several other variables. When a function is invoked, a set of values are specified that logically substitute for the required set of input values within the function body expression. + +**Example - Explicit parameters and return value** + ```powerquery-m let AddOne = (x as number) as number => x + 1, @@ -23,8 +23,8 @@ in CalcAddOne ``` -**Example – Implicit parameters and return value** - +**Example - Implicit parameters and return value** + ```powerquery-m let Add = (x, y) => x + y, @@ -38,7 +38,7 @@ in ``` **Find the first element of a list greater than 5, or null otherwise** - + ```powerquery-m let FirstGreaterThan5 = (list) => @@ -57,7 +57,7 @@ in ``` Functions can be used recursively. In order to recursively reference the function, prefix the identifier with @. - + ```powerquery-m let fact = (num) => if num = 0 then 1 else num * @fact (num-1) @@ -66,14 +66,14 @@ in ``` **Each keyword** - -The **each** keyword is used to easily create simple functions. "each ..." is syntactic sugar for a function signature that takes the _ parameter "(\_) => ..." - -Each is useful when combined with the lookup operator, which is applied by default to _ -For example, each [CustomerID] is the same as each \_[CustomerID], which is the same as (\_) => \_[CustomerID] - -**Example – Using each in table row filter** - + +The **each** keyword is used to easily create simple functions. `each ...` is syntactic sugar for a function signature that takes the `_` parameter `(_) => ...`. + +The **each** keyword is useful when combined with the lookup operator, which is applied by default to `_`. +For example, `each [CustomerID]` is the same as `each _[CustomerID]`, which is the same as `(_) => _[CustomerID]`. + +**Example - Using each in table row filter** + ```powerquery-m Table.SelectRows( Table.FromRecords({ @@ -84,6 +84,6 @@ Table.SelectRows( }), each [CustomerID] = 2 )[Name] - + // equals "Jim" ``` From a1d825e26fae9bde9bf7fe01687bb0bdac6d2bae Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 22 Nov 2024 10:38:12 -0800 Subject: [PATCH 611/934] Added links to parameter info in lists and tables --- query-languages/m/list-contains.md | 4 ++++ query-languages/m/list-containsall.md | 4 ++++ query-languages/m/list-containsany.md | 4 ++++ query-languages/m/list-difference.md | 4 ++++ query-languages/m/list-distinct.md | 4 ++++ query-languages/m/list-intersect.md | 4 ++++ query-languages/m/list-isdistinct.md | 4 ++++ query-languages/m/list-max.md | 4 ++++ query-languages/m/list-maxn.md | 4 ++++ query-languages/m/list-median.md | 4 ++++ query-languages/m/list-min.md | 4 ++++ query-languages/m/list-minn.md | 4 ++++ query-languages/m/list-mode.md | 4 ++++ query-languages/m/list-modes.md | 4 ++++ query-languages/m/list-numbers.md | 2 +- query-languages/m/list-positionof.md | 4 ++++ query-languages/m/list-positionofany.md | 4 ++++ query-languages/m/list-removematchingitems.md | 4 ++++ query-languages/m/list-replacematchingitems.md | 4 ++++ query-languages/m/list-union.md | 4 ++++ query-languages/m/table-addrankcolumn.md | 4 ++++ query-languages/m/table-contains.md | 4 ++++ query-languages/m/table-containsall.md | 4 ++++ query-languages/m/table-containsany.md | 4 ++++ query-languages/m/table-distinct.md | 4 ++++ query-languages/m/table-fromrecords.md | 4 ++++ query-languages/m/table-group.md | 6 +++++- query-languages/m/table-isdistinct.md | 4 ++++ query-languages/m/table-max.md | 4 ++++ query-languages/m/table-maxn.md | 4 ++++ query-languages/m/table-min.md | 4 ++++ query-languages/m/table-minn.md | 4 ++++ query-languages/m/table-nestedjoin.md | 4 ++++ query-languages/m/table-positionof.md | 4 ++++ query-languages/m/table-positionofany.md | 4 ++++ query-languages/m/table-removecolumns.md | 2 +- query-languages/m/table-removematchingrows.md | 4 ++++ query-languages/m/table-renamecolumns.md | 2 +- query-languages/m/table-reordercolumns.md | 2 +- query-languages/m/table-replacematchingrows.md | 4 ++++ query-languages/m/table-replacevalue.md | 4 ++++ query-languages/m/table-selectcolumns.md | 2 +- query-languages/m/table-sort.md | 4 ++++ query-languages/m/table-tolist.md | 4 ++++ query-languages/m/table-viewfunction.md | 2 +- 45 files changed, 163 insertions(+), 7 deletions(-) diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index f09d6323a..b9c72fbc7 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -58,3 +58,7 @@ List.Contains({"Pears", "Bananas", "Rhubarb", "Peaches"}, **Output** `true` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index d7672f9e4..80050aa8a 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -41,3 +41,7 @@ List.ContainsAll({1, 2, 3, 4, 5}, {5, 6}) **Output** `false` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index 6e05a1de3..979834eb4 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -41,3 +41,7 @@ List.ContainsAny({1, 2, 3, 4, 5}, {6, 7}) **Output** `false` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-difference.md b/query-languages/m/list-difference.md index 91dd2d5d1..dbd1d1a3f 100644 --- a/query-languages/m/list-difference.md +++ b/query-languages/m/list-difference.md @@ -39,3 +39,7 @@ List.Difference({1, 2}, {1, 2, 3}) **Output** `{}` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index 5e780b34c..95b75a03d 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -27,3 +27,7 @@ List.Distinct({1, 1, 2, 3, 3, 3}) **Output** `{1, 2, 3}` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-intersect.md b/query-languages/m/list-intersect.md index 1360dd048..691057f1d 100644 --- a/query-languages/m/list-intersect.md +++ b/query-languages/m/list-intersect.md @@ -27,3 +27,7 @@ List.Intersect({{1..5}, {2..6}, {3..7}}) **Output** `{3, 4, 5}` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-isdistinct.md b/query-languages/m/list-isdistinct.md index d702ceaf0..bc6f6af4c 100644 --- a/query-languages/m/list-isdistinct.md +++ b/query-languages/m/list-isdistinct.md @@ -41,3 +41,7 @@ List.IsDistinct({1, 2, 3, 3}) **Output** `false` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-max.md b/query-languages/m/list-max.md index f1b0b713e..b7aa8ef88 100644 --- a/query-languages/m/list-max.md +++ b/query-languages/m/list-max.md @@ -41,3 +41,7 @@ List.Max({}, -1) **Output** `-1` + +## Related content + +[Comparison criteria](list-functions.md#comparison-criteria) diff --git a/query-languages/m/list-maxn.md b/query-languages/m/list-maxn.md index 9107b8983..2494d3cb8 100644 --- a/query-languages/m/list-maxn.md +++ b/query-languages/m/list-maxn.md @@ -17,3 +17,7 @@ Returns the maximum value(s) in the list, `list`. After the rows are sorted, opt * `list`: The list of values. * `countOrCondition`: If a number is specified, a list of up to `countOrCondition` items in ascending order is returned. If a condition is specified, a list of items that initially meet the condition is returned. Once an item fails the condition, no further items are considered. * `comparisonCriteria`: _[Optional]_ An optional `comparisonCriteria` value can be specified to determine how to compare the items in the list. If this parameter is null, the default comparer is used. + +## Related content + +[Comparison criteria](list-functions.md#comparison-criteria) diff --git a/query-languages/m/list-median.md b/query-languages/m/list-median.md index 65e0c4f11..43bdba396 100644 --- a/query-languages/m/list-median.md +++ b/query-languages/m/list-median.md @@ -27,3 +27,7 @@ powerquery-mList.Median({5, 3, 1, 7, 9}) **Output** `5` + +## Related content + +[Comparison criteria](list-functions.md#comparison-criteria) diff --git a/query-languages/m/list-min.md b/query-languages/m/list-min.md index 49bfc0cdb..98b88e7f4 100644 --- a/query-languages/m/list-min.md +++ b/query-languages/m/list-min.md @@ -41,3 +41,7 @@ List.Min({}, -1) **Output** `-1` + +## Related content + +[Comparison criteria](list-functions.md#comparison-criteria) diff --git a/query-languages/m/list-minn.md b/query-languages/m/list-minn.md index b6bceac38..c03d3790c 100644 --- a/query-languages/m/list-minn.md +++ b/query-languages/m/list-minn.md @@ -31,3 +31,7 @@ List.MinN({3, 4, 5, -1, 7, 8, 2}, 5) **Output** `{-1, 2, 3, 4, 5}` + +## Related content + +[Comparison criteria](list-functions.md#comparison-criteria) diff --git a/query-languages/m/list-mode.md b/query-languages/m/list-mode.md index b2103013a..410504b30 100644 --- a/query-languages/m/list-mode.md +++ b/query-languages/m/list-mode.md @@ -41,3 +41,7 @@ List.Mode({"A", 1, 2, 3, 3, 4, 5, 5}) **Output** `5` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-modes.md b/query-languages/m/list-modes.md index 924f4916d..fba12a6e6 100644 --- a/query-languages/m/list-modes.md +++ b/query-languages/m/list-modes.md @@ -27,3 +27,7 @@ List.Modes({"A", 1, 2, 3, 3, 4, 5, 5}) **Output** `{3, 5}` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-numbers.md b/query-languages/m/list-numbers.md index 3b5ed372a..db272e77e 100644 --- a/query-languages/m/list-numbers.md +++ b/query-languages/m/list-numbers.md @@ -16,7 +16,7 @@ Returns a list of numbers given an initial value, count, and optional increment * `start`: The initial value in the list. * `count`: The number of values to create. -* `increment: _[Optional]_ The value to increment by. If omitted values are incremented by 1. +* `increment`: _[Optional]_ The value to increment by. If omitted values are incremented by 1. ## Example 1 diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index 12eddccca..c14686d13 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -29,3 +29,7 @@ List.PositionOf({1, 2, 3}, 3) **Output** `2` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index 26bbdb16c..cc83329b7 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -29,3 +29,7 @@ List.PositionOfAny({1, 2, 3}, {2, 3}) **Output** `1` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-removematchingitems.md b/query-languages/m/list-removematchingitems.md index f2e7877b5..8a2b1e848 100644 --- a/query-languages/m/list-removematchingitems.md +++ b/query-languages/m/list-removematchingitems.md @@ -27,3 +27,7 @@ List.RemoveMatchingItems({1, 2, 3, 4, 5, 5}, {1, 5}) **Output** `{2, 3, 4}` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-replacematchingitems.md b/query-languages/m/list-replacematchingitems.md index 6f536ac1c..7c0b2b9e0 100644 --- a/query-languages/m/list-replacematchingitems.md +++ b/query-languages/m/list-replacematchingitems.md @@ -27,3 +27,7 @@ List.ReplaceMatchingItems({1, 2, 3, 4, 5}, {{5, -5}, {1, -1}}) **Output** `{-1, 2, 3, 4, -5}` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-union.md b/query-languages/m/list-union.md index e62da6a6e..ff893b0ca 100644 --- a/query-languages/m/list-union.md +++ b/query-languages/m/list-union.md @@ -27,3 +27,7 @@ List.Union({{1..5}, {2..6}, {3..7}}) **Output** `{1, 2, 3, 4, 5, 6, 7}` + +## Related content + +[Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/table-addrankcolumn.md b/query-languages/m/table-addrankcolumn.md index 5009e6472..c27a5fdfa 100644 --- a/query-languages/m/table-addrankcolumn.md +++ b/query-languages/m/table-addrankcolumn.md @@ -44,3 +44,7 @@ Table.FromRecords({ [CustomerID = 4, Name = "Ringo", Revenue = 50, RevenueRank = 4] }) ``` + +## Related content + +[Comparison criteria](table-functions.md#comparison-criteria) diff --git a/query-languages/m/table-contains.md b/query-languages/m/table-contains.md index c85c80e82..d2ea9db5e 100644 --- a/query-languages/m/table-contains.md +++ b/query-languages/m/table-contains.md @@ -80,3 +80,7 @@ Table.Contains( **Output** `true` + +## Related content + +[Equation criteria](table-functions.md#equation-criteria) diff --git a/query-languages/m/table-containsall.md b/query-languages/m/table-containsall.md index 312dbe9d3..b33dcd942 100644 --- a/query-languages/m/table-containsall.md +++ b/query-languages/m/table-containsall.md @@ -64,3 +64,7 @@ Table.ContainsAll( **Output** `false` + +## Related content + +[Equation criteria](table-functions.md#equation-criteria) diff --git a/query-languages/m/table-containsany.md b/query-languages/m/table-containsany.md index 25fc9d467..69a750c4b 100644 --- a/query-languages/m/table-containsany.md +++ b/query-languages/m/table-containsany.md @@ -83,3 +83,7 @@ Table.ContainsAny( **Output** `true` + +## Related content + +[Equation criteria](table-functions.md#equation-criteria) diff --git a/query-languages/m/table-distinct.md b/query-languages/m/table-distinct.md index 167bbeced..a5f962332 100644 --- a/query-languages/m/table-distinct.md +++ b/query-languages/m/table-distinct.md @@ -66,3 +66,7 @@ Table.FromRecords({ [a = "A", b = "b"] }) ``` + +## Related content + +[Equation criteria](table-functions.md#equation-criteria) diff --git a/query-languages/m/table-fromrecords.md b/query-languages/m/table-fromrecords.md index ed437d184..c389879b0 100644 --- a/query-languages/m/table-fromrecords.md +++ b/query-languages/m/table-fromrecords.md @@ -57,3 +57,7 @@ Table.ColumnsOfType( **Output** `{"CustomerID"}` + +## Related content + +[Missing field](missingfield-type.md) diff --git a/query-languages/m/table-group.md b/query-languages/m/table-group.md index 7bf62eb0c..10cef88ba 100644 --- a/query-languages/m/table-group.md +++ b/query-languages/m/table-group.md @@ -14,7 +14,7 @@ Table.Group(table as table, key as any, aggregatedColumns a Groups the rows of `table` by the key columns defined by `key`. The `key` can either be a single column name, or a list of column names. For each group, a record is constructed containing the key columns (and their values), along with any aggregated columns specified by `aggregatedColumns`. Optionally, `groupKind` and `comparer` may also be specified. -If the data is already sorted by the key columns, then a `groupKind` of GroupKind.Local can be provided. This may improve the performance of grouping in certain cases, since all the rows with a given set of key values are assumed to be contiguous. +If the data is already sorted by the key columns, then a `groupKind` of [GroupKind.Local](groupkind-type.md) can be provided. This may improve the performance of grouping in certain cases, since all the rows with a given set of key values are assumed to be contiguous. When passing a `comparer`, note that if it treats differing keys as equal, a row may be placed in a group whose keys differ from its own. @@ -53,3 +53,7 @@ Table.FromRecords( {"CustomerID", "total"} ) ``` + +## Related content + +[Comparer functions](comparer-functions.md) \ No newline at end of file diff --git a/query-languages/m/table-isdistinct.md b/query-languages/m/table-isdistinct.md index 495a734b9..2277dfd17 100644 --- a/query-languages/m/table-isdistinct.md +++ b/query-languages/m/table-isdistinct.md @@ -56,3 +56,7 @@ Table.IsDistinct( **Output** `false` + +## Related content + +[Comparison criteria](table-functions.md#comparison-criteria) diff --git a/query-languages/m/table-max.md b/query-languages/m/table-max.md index 74424eea2..0de9a93a1 100644 --- a/query-languages/m/table-max.md +++ b/query-languages/m/table-max.md @@ -47,3 +47,7 @@ Table.Max(#table({"a"}, {}), "a", -1) **Output** `-1` + +## Related content + +[Comparison criteria](table-functions.md#comparison-criteria) diff --git a/query-languages/m/table-maxn.md b/query-languages/m/table-maxn.md index 59521c43e..e51c8e55a 100644 --- a/query-languages/m/table-maxn.md +++ b/query-languages/m/table-maxn.md @@ -65,3 +65,7 @@ Table.MaxN( **Output** `Table.FromRecords({})` + +## Related content + +[Comparison criteria](table-functions.md#comparison-criteria) diff --git a/query-languages/m/table-min.md b/query-languages/m/table-min.md index 9143e552a..157090b21 100644 --- a/query-languages/m/table-min.md +++ b/query-languages/m/table-min.md @@ -47,3 +47,7 @@ Table.Min(#table({"a"}, {}), "a", -1) **Output** `-1` + +## Related content + +[Comparison criteria](table-functions.md#comparison-criteria) diff --git a/query-languages/m/table-minn.md b/query-languages/m/table-minn.md index 2758b5a42..3e1de2d4c 100644 --- a/query-languages/m/table-minn.md +++ b/query-languages/m/table-minn.md @@ -64,3 +64,7 @@ Table.MinN( **Output** `Table.FromRecords({})` + +## Related content + +[Comparison criteria](table-functions.md#comparison-criteria) diff --git a/query-languages/m/table-nestedjoin.md b/query-languages/m/table-nestedjoin.md index c4085ce1e..a9654116b 100644 --- a/query-languages/m/table-nestedjoin.md +++ b/query-languages/m/table-nestedjoin.md @@ -50,3 +50,7 @@ Table.FromRecords({ [CustomerToCall = 3, CustomerDetails = Table.FromRecords({[CustomerID = 3, Name = "Paul", Phone = "543-7890"]})] }) ``` + +## Related content + +[Join kind](joinkind-type.md) diff --git a/query-languages/m/table-positionof.md b/query-languages/m/table-positionof.md index 63ff1ed99..d9c5a8f1a 100644 --- a/query-languages/m/table-positionof.md +++ b/query-languages/m/table-positionof.md @@ -86,3 +86,7 @@ Table.PositionOf( **Output** `{0, 2}` + +## Related content + +[Equation criteria](table-functions.md#equation-criteria) diff --git a/query-languages/m/table-positionofany.md b/query-languages/m/table-positionofany.md index f0fb28a5e..5682e2012 100644 --- a/query-languages/m/table-positionofany.md +++ b/query-languages/m/table-positionofany.md @@ -69,3 +69,7 @@ Table.PositionOfAny( **Output** `{0, 1, 2}` + +## Related content + +[Equation criteria](table-functions.md#equation-criteria) diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index a47b54cad..88bccf9af 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -12,7 +12,7 @@ Table.RemoveColumns(table as table, columns as any, optional mi ## About -Removes the specified `columns` from the `table` provided. If the specified column doesn't exist, an error is raised unless the optional parameter `missingField` specifies an alternative behavior (for example, `MissingField.UseNull` or `MissingField.Ignore`). +Removes the specified `columns` from the `table` provided. If the specified column doesn't exist, an error is raised unless the optional parameter `missingField` specifies an alternative behavior (for example, [MissingField.UseNull](missingfield-type.md) or [MissingField.Ignore](missingfield-type.md)). ## Example 1 diff --git a/query-languages/m/table-removematchingrows.md b/query-languages/m/table-removematchingrows.md index 419793263..bc9362c04 100644 --- a/query-languages/m/table-removematchingrows.md +++ b/query-languages/m/table-removematchingrows.md @@ -35,3 +35,7 @@ Table.RemoveMatchingRows( **Output** `Table.FromRecords({[a = 3, b = 4]})` + +## Related content + +[Equation criteria](table-functions.md#equation-criteria) diff --git a/query-languages/m/table-renamecolumns.md b/query-languages/m/table-renamecolumns.md index 0c8a1712a..ab8c6866e 100644 --- a/query-languages/m/table-renamecolumns.md +++ b/query-languages/m/table-renamecolumns.md @@ -12,7 +12,7 @@ Table.RenameColumns(table as table, renames as list, optional m ## About -Performs the given renames to the columns in table `table`. A replacement operation `renames` consists of a list of two values, the old column name and new column name, provided in a list. If the column doesn't exist, an exception is thrown unless the optional parameter `missingField` specifies an alternative (eg. `MissingField.UseNull` or `MissingField.Ignore`). +Performs the given renames to the columns in table `table`. A replacement operation `renames` consists of a list of two values, the old column name and new column name, provided in a list. If the column doesn't exist, an exception is thrown unless the optional parameter `missingField` specifies an alternative (eg. [MissingField.UseNull](missingfield-type.md) or [MissingField.Ignore](missingfield-type.md)). ## Example 1 diff --git a/query-languages/m/table-reordercolumns.md b/query-languages/m/table-reordercolumns.md index c1b6c3ee4..9a3a0457a 100644 --- a/query-languages/m/table-reordercolumns.md +++ b/query-languages/m/table-reordercolumns.md @@ -12,7 +12,7 @@ Table.ReorderColumns(table as table, columnOrder as list, optional ## About -Returns a table from the input `table`, with the columns in the order specified by `columnOrder`. Columns that are not specified in the list will not be reordered. If the column doesn't exist, an exception is thrown unless the optional parameter `missingField` specifies an alternative (eg. `MissingField.UseNull` or `MissingField.Ignore`). +Returns a table from the input `table`, with the columns in the order specified by `columnOrder`. Columns that are not specified in the list will not be reordered. If the column doesn't exist, an exception is thrown unless the optional parameter `missingField` specifies an alternative (eg. [MissingField.UseNull](missingfield-type.md) or [MissingField.Ignore](missingfield-type.md)). ## Example 1 diff --git a/query-languages/m/table-replacematchingrows.md b/query-languages/m/table-replacematchingrows.md index a1054663c..0a39f4792 100644 --- a/query-languages/m/table-replacematchingrows.md +++ b/query-languages/m/table-replacematchingrows.md @@ -45,3 +45,7 @@ Table.FromRecords({ [a = -1, b = -2] }) ``` + +## Related content + +[Equation criteria](table-functions.md#equation-criteria) diff --git a/query-languages/m/table-replacevalue.md b/query-languages/m/table-replacevalue.md index f3dd7b83f..17f8959af 100644 --- a/query-languages/m/table-replacevalue.md +++ b/query-languages/m/table-replacevalue.md @@ -131,3 +131,7 @@ Table.FromRecords({ [Name = "Bob", Country = "CA"] }) ``` + +## Related content + +[Replacer functions](replacer-functions.md) diff --git a/query-languages/m/table-selectcolumns.md b/query-languages/m/table-selectcolumns.md index 1f04136ef..9091473ab 100644 --- a/query-languages/m/table-selectcolumns.md +++ b/query-languages/m/table-selectcolumns.md @@ -16,7 +16,7 @@ Returns the `table` with only the specified `columns`. * `table`: The provided table. * `columns`: The list of columns from the table `table` to return. Columns in the returned table are in the order listed in `columns`. -* `missingField`: *(Optional)* What to do if the column does not exist. Example: `MissingField.UseNull` or `MissingField.Ignore`. +* `missingField`: *(Optional)* What to do if the column does not exist. Example: [MissingField.UseNull](missingfield-type.md) or [MissingField.Ignore](missingfield-type.md). ## Example 1 diff --git a/query-languages/m/table-sort.md b/query-languages/m/table-sort.md index ac9af8542..b41808b97 100644 --- a/query-languages/m/table-sort.md +++ b/query-languages/m/table-sort.md @@ -133,3 +133,7 @@ Table.FromRecords({ [OrderID = 9, CustomerID = 6, Item = "Bait", Price = 3.25] }) ``` + +## Related content + +[Comparison criteria](table-functions.md#comparison-criteria) diff --git a/query-languages/m/table-tolist.md b/query-languages/m/table-tolist.md index 173600fb8..63befe7c6 100644 --- a/query-languages/m/table-tolist.md +++ b/query-languages/m/table-tolist.md @@ -34,3 +34,7 @@ Table.ToList( **Output** `{"1,Bob,123-4567", "2,Jim,987-6543", "3,Paul,543-7890"}` + +## Related content + +[Combiner functions](combiner-functions.md) \ No newline at end of file diff --git a/query-languages/m/table-viewfunction.md b/query-languages/m/table-viewfunction.md index bd60ded8b..0a5e46d7e 100644 --- a/query-languages/m/table-viewfunction.md +++ b/query-languages/m/table-viewfunction.md @@ -14,7 +14,7 @@ Table.ViewFunction(function as function) as function Creates a view function based on `function` that can be handled in a view created by [Table.View](/powerquery-m/table-view). -The `OnInvoke` handler of **Table.View** can be used to define a handler for the view function. +The `OnInvoke` handler of [Table.View](table-view.md) can be used to define a handler for the view function. As with the handlers for built-in operations, if no `OnInvoke` handler is specified, or if it does not handle the view function, or if an error is raised by the handler, `function` is applied on top of the view. From cd23423c24a26d377dec156aec8fcf301a1faef7 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 22 Nov 2024 13:12:27 -0800 Subject: [PATCH 612/934] Added useHeaders limitation to Excel.Workbook --- query-languages/m/excel-workbook.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md index 04bd65f2e..8aa2f500c 100644 --- a/query-languages/m/excel-workbook.md +++ b/query-languages/m/excel-workbook.md @@ -14,12 +14,12 @@ Excel.Workbook(workbook as binary, optional useHeaders as any, opt Returns the contents of the Excel workbook. -* `useHeaders` can be null, a logical (true/false) value indicating whether the first row of each returned table should be treated as a header, or an options record. Default: false. +* `useHeaders` can be null, a logical (true/false) value indicating whether the first row of each returned table should be treated as a header, or an options record. Default: false. This option converts numbers and dates to text using the current culture, and thus behaves differently when run in environments with different operating system cultures set. We recommend using [Table.PromoteHeaders](table-promoteheaders.md) instead. * `delayTypes` can be null or a logical (true/false) value indicating whether the columns of each returned table should be left untyped. Default: false. If a record is specified for `useHeaders` (and `delayTypes` is null), the following record fields may be provided: -* `UseHeaders`: Can be null or a logical (true/false) value indicating whether the first row of each returned table should be treated as a header. Default: false. +* `UseHeaders`: Can be null or a logical (true/false) value indicating whether the first row of each returned table should be treated as a header. Default: false. The `useHeaders` option converts numbers and dates to text using the current culture, and thus behaves differently when run in environments with different operating system cultures set. We recommend using [Table.PromoteHeaders](table-promoteheaders.md) instead. * `DelayTypes`: Can be null or a logical (true/false) value indicating whether the columns of each returned table should be left untyped. Default: false. * `InferSheetDimensions`: Can be null or a logical (true/false) value indicating whether the area of a worksheet that contains data should be inferred by reading the worksheet itself, rather than by reading the dimensions metadata from the file. This can be useful in cases where the dimensions metadata is incorrect. Note that this option is only supported for Open XML Excel files, not for legacy Excel files. Default: false. From 9a2160918791087c38699fd0158d69d75ed61835 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 22 Nov 2024 15:27:36 -0800 Subject: [PATCH 613/934] Updated the PR from dev input --- query-languages/m/excel-workbook.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md index 8aa2f500c..7a32780f1 100644 --- a/query-languages/m/excel-workbook.md +++ b/query-languages/m/excel-workbook.md @@ -14,15 +14,18 @@ Excel.Workbook(workbook as binary, optional useHeaders as any, opt Returns the contents of the Excel workbook. -* `useHeaders` can be null, a logical (true/false) value indicating whether the first row of each returned table should be treated as a header, or an options record. Default: false. This option converts numbers and dates to text using the current culture, and thus behaves differently when run in environments with different operating system cultures set. We recommend using [Table.PromoteHeaders](table-promoteheaders.md) instead. +* `useHeaders` can be null, a logical (true/false) value indicating whether the first row of each returned table should be treated as a header, or an options record. Default: false. * `delayTypes` can be null or a logical (true/false) value indicating whether the columns of each returned table should be left untyped. Default: false. If a record is specified for `useHeaders` (and `delayTypes` is null), the following record fields may be provided: -* `UseHeaders`: Can be null or a logical (true/false) value indicating whether the first row of each returned table should be treated as a header. Default: false. The `useHeaders` option converts numbers and dates to text using the current culture, and thus behaves differently when run in environments with different operating system cultures set. We recommend using [Table.PromoteHeaders](table-promoteheaders.md) instead. +* `UseHeaders`: Can be null or a logical (true/false) value indicating whether the first row of each returned table should be treated as a header. Default: false. * `DelayTypes`: Can be null or a logical (true/false) value indicating whether the columns of each returned table should be left untyped. Default: false. * `InferSheetDimensions`: Can be null or a logical (true/false) value indicating whether the area of a worksheet that contains data should be inferred by reading the worksheet itself, rather than by reading the dimensions metadata from the file. This can be useful in cases where the dimensions metadata is incorrect. Note that this option is only supported for Open XML Excel files, not for legacy Excel files. Default: false. +> [!NOTE] +> The `useHeaders` parameter or the `UseHeaders` record field converts numbers and dates to text using the current culture, and thus behaves differently when run in environments with different operating system cultures set. We recommend using [Table.PromoteHeaders](table-promoteheaders.md) instead. For example, instead of using `Excel.Workbook(File.Contents("C:\myfile.xlsx", true, true))` or `Excel.Workbook(File.Contents("C:\myfile.xlsx", [UseHeaders = true], null))`, use `Table.PromoteHeaders(Excel.Workbook(File.Contents("C:\myfile.xlsx", null, true), [PromoteAllScalars = true]))` instead. + ## Example 1 Return the contents of Sheet1 from an Excel workbook. From 4cd669af51a4d74b1a2bb49d183c58aa3f70123b Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 18:41:01 -0800 Subject: [PATCH 614/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 100 ++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 15 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 0402faf9c..d7b949376 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -8,40 +8,76 @@ ms.topic: how-to author: maggiesMSFT ms.author: maggies no-loc: [CoPilot] -#customer intent: As a DAX query writer, I want to use Copilot to help me write queries. +#customer intent: As a DAX query writer, I want to use Copilot to help me write DAX queries. --- # Write DAX queries with Copilot -Try using Copilot to create a DAX query. Type in a prompt to describe what DAX query you would like generated and select **Send** or press Enter. To run what is returned, select **Keep it** to add it to query tab. Then select **Run** or press F5 to see the results of the DAX query. +You can use Copilot to write and explain Data Analysis Expressions (DAX) queries in DAX query view of a Power BI semantic model. -## DAX query features in Copilot +## Enable Copilot + +Check to make sure you meet the [Fabric Copilot requirements](/fabric/get-started/copilot-fabric-overview#enable-copilot). + +### Power BI Desktop +In Power BI Desktop, in the **Preview features** section of the **Options**, enable **DAX query view with Copilot**. + +1. Open Power BI Desktop. +1. Open an existing Power BI report, or connect to published semantic model as live edit or live connection. Alternatively, you can add data and create a new semantic model and report. +1. Go to **DAX query view**, the fourth view available on the left side of Power BI Desktop. +1. Create a new query tab. +1. Open Copilot by clicking on the **Copilot** button or using CTRL + I. + +### Power BI service or workspace + +1. Choose a published semantic model in a workspace. +2. From the context menu choose **Write DAX queries**. If **Write DAX queries** is greyed out, you may need to enable **Users can edit data models in the Power BI service (preview)** in the **Power BI** **General** section of **Workspace settings**. +3. Create a new query tab. +4. Open Copilot by clicking on the Copilot button or using CTRL + I. + +> [!NOTE] +> DirectQuery and Direct Lake model authors can also use DAX query view. View the data in your tables whenever you want. + +## Use Copilot Let’s look at what Copilot can help you with in [DAX query view](/power-bi/transform-model/dax-query-view): -- **Natural language to DAX query**. Just ask for what you want from your semantic model and have the DAX query generated by Copilot. +- **Natural language to DAX query**. Just ask for what you want from your semantic model and have the DAX query generated by Copilot. You can also select an existing DAX query and have Copilot modify it. - **DAX query to natural language**. Ask Copilot to explain what any DAX query is doing. - **Understand DAX concepts**. Maybe you heard about a certain DAX function or need to find the right DAX function for the job. Copilot can help you here too. -## Enable Copilot for DAX queries +To use Copilot to create a DAX query, type in a prompt to describe what DAX query you would like generated and select **Send** or press Enter. Alternatively, you can click the **Write DAX query** inspire button. To run what is returned, select **Run** or press F5 to see the results of the DAX query. To keep the query and exit Copilot, select **Keep it** to add it to query tab. -In Power BI Desktop, in the **Preview features** section of the **Options**, enable **DAX query view with Copilot**. +To use Copilot to explain a DAX query, select the DAX query and click the **Explain this query** inspire button. A short explaination is shown with the option to **show more** to see a longer explaination. -Check to make sure you meet the [Fabric Copilot requirements](/fabric/get-started/copilot-fabric-overview#enable-copilot). +To use Copilot to explain a DAX topic, click the Explain a DAX topic inspire button, or type in a prompt to ask for an explaination of a DAX function or topic and select **Send** or press Enter. A short explaination is shown with the option to **show more** to see a longer explaination. -Then navigate to the **DAX query view** and select the **Copilot** button or CTRL+I to launch the in-line Copilot. +## Features of the inline Copilot -Let’s try some Copilot prompts, using sample data in Power BI Desktop, with some additional measures. +### 1. Run the DAX query before you keep it -## Use Copilot to write and explain DAX queries +You can **Run** the DAX query then decide to **Keep** or **Discard** the DAX query. -With DAX query view in Power BI, you can use Copilot to write and explain DAX queries in DAX query view with Data Analysis Expressions (DAX) queries in semantic models. DAX query view comes with several ways to help you be as productive as possible with DAX queries. This feature is currently in public preview. +:::image type="content" source="media/dax-query-copilot/copilot-run-query.png" alt-text="Screenshot of running the DAX query before you save it."::: -Copilot can write and explain DAX queries in DAX query view in public preview. DAX query view includes an inline Fabric Copilot to write and explain DAX queries, which remain in public preview. +### 2. Build the DAX query conversationally -> [!NOTE] -> DirectQuery model authors can also use DAX query view. View the data in your tables whenever you want. +After the initial DAX query is generated, you can simply adjust by typing in additional user prompts. + +:::image type="content" source="media/dax-query-copilot/copilot-explain-query.png" alt-text="Screenshot of asking DAX to explain the query."::: + +### 3. Syntax checks on the generated DAX query + +The generated DAX query syntax is checked, and the prompt automatically retried once. If the retry is also invalid, the generated DAX query is returned with a note that there is an issue, giving you the option to rephrase your request or fix the generated DAX query: -## Sample prompts for writing DAX queries +"This query contains errors. Rephrase your request and try again or try fixing it yourself." + +### 4. Inspire buttons to get you started with Copilot + +Type in a prompt or select any of these buttons to see quickly what you can do with Copilot. + +:::image type="content" source="media/dax-query-copilot/copilot-inspire-buttons-get-started.png" alt-text="Screenshot of showing Copilot offers suggestions."::: + +## Sample prompts Here is a collection of sample prompts to illustrate how to get Copilot to write the DAX queries you want. @@ -122,6 +158,40 @@ I select **Show more**. Because I asked Copilot in the context of a DAX query that I highlighted, it gave me the response in the context of that query as well. + + + +## Fabric Copilot to help write DAX queries: Responsible AI FAQ + +### What is Fabric Copilot to help write DAX queries? +An inline Copilot found in Power BI DAX query view, available in the DAX query view of Power BI Desktop or write DAX queries in Power BI workspace, for model authors and consumers to request help creating DAX queries. The help can include explaining a DAX query and DAX topics, in addition to creating DAX queries themselves. + +### What can Fabric Copilot to help write DAX queries do? +The user request can be returned by Copilot as a DAX query the user can see, then run to see the data returned in the results grid. Additional requests can be made, and a new DAX query can be returned, creating a DAX query conversationally. If the request is about explaining a DAX query or topic, a natural language response is generated in the inline Copilot. DAX topics can include what a DAX function does, or which DAX function is good for returning data in a specific way. + +### What is Fabric Copilot to help write DAX queries’ intended use? +Copilot’s intended use is to help create DAX queries on a specific semantic model the user is currently working with in Power BI. + +### How was Fabric Copilot to help write DAX queries evaluated? What metrics are used to measure performance? +DAX queries from multiple Power BI semantic models using a variety of user requests, categorized by data availability in the semantic model and/or if additional calculations were needed to create the correct response, and then graded for accuracy and performance by members of the product team. This included a semantic model adhering to best practices. Explanations from multiple DAX queries and DAX function topics, and then graded for accuracy and readability by members of the product team. + +### What are the limitations of Fabric Copilot to help write DAX queries? How can users minimize the impact of Fabric Copilot to help write DAX queries’ limitations when using the system? +- To use Copilot to help write DAX queries, you need to select a workspace with a Fabric capacity. +- Copilot uses the model metadata (tables, columns, measures), so DAX query responses will answer only in context of the current semantic model. +- Copilot uses the model metadata (tables, columns, measures), so providing rich metadata that is descriptive and understandable will yield better results. +- Copilot cannot use the data in the tables of the semantic model. +- DAX functions added recently may not be known to the Copilot, and explanations may be incorrect. +- Copilot requests include all text in the current query window, and if text is selected the selection information it is noted as selected, but all text in the query window is included. + +### What operational factors and settings allow for effective and responsible use of Fabric Copilot to help write DAX queries? +- Operational factors and settings include the current workload on a Fabric capacity and network speed. +- Copilot to help write DAX queries is contained in the [privacy, security, and responsible use of Copilot in Fabric](/fabric/get-started/copilot-privacy-security). + +### How do I provide feedback on Fabric Copilot to help write DAX queries? +- Use the thumbs up and thumbs down icons in the inline Copilot to provide feedback. +- Submit feedback using the [Power BI support](/power-bi/support/). + + ## Learn more with these resources - [Overview of Copilot in Fabric and Power BI](/fabric/get-started/copilot-fabric-overview#enable-copilot) From 202d39be764e2deb69e3ad78235978086ca5ff23 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:30:31 -0800 Subject: [PATCH 615/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index d7b949376..abb2f19b5 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -57,13 +57,13 @@ To use Copilot to explain a DAX topic, click the Explain a DAX topic inspire but You can **Run** the DAX query then decide to **Keep** or **Discard** the DAX query. -:::image type="content" source="media/dax-query-copilot/copilot-run-query.png" alt-text="Screenshot of running the DAX query before you save it."::: +:::image type="content" source="/power-bi/transform-model/media/dax-query-copilot/copilot-run-query.png" alt-text="Screenshot of running the DAX query before you save it."::: ### 2. Build the DAX query conversationally After the initial DAX query is generated, you can simply adjust by typing in additional user prompts. -:::image type="content" source="media/dax-query-copilot/copilot-explain-query.png" alt-text="Screenshot of asking DAX to explain the query."::: +:::image type="content" source="/power-bi/transform-model/media/dax-query-copilot/copilot-explain-query.png" alt-text="Screenshot of asking DAX to explain the query."::: ### 3. Syntax checks on the generated DAX query @@ -75,7 +75,7 @@ The generated DAX query syntax is checked, and the prompt automatically retried Type in a prompt or select any of these buttons to see quickly what you can do with Copilot. -:::image type="content" source="media/dax-query-copilot/copilot-inspire-buttons-get-started.png" alt-text="Screenshot of showing Copilot offers suggestions."::: +:::image type="content" source="/power-bi/transform-model/media/dax-query-copilot/copilot-inspire-buttons-get-started.png" alt-text="Screenshot of showing Copilot offers suggestions."::: ## Sample prompts From 9014786920c49d47f3262ab66ca22bec4b8d8849 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:58:24 -0800 Subject: [PATCH 616/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index abb2f19b5..277fa5d5b 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -22,7 +22,7 @@ Check to make sure you meet the [Fabric Copilot requirements](/fabric/get-starte In Power BI Desktop, in the **Preview features** section of the **Options**, enable **DAX query view with Copilot**. 1. Open Power BI Desktop. -1. Open an existing Power BI report, or connect to published semantic model as live edit or live connection. Alternatively, you can add data and create a new semantic model and report. +1. Open an existing Power BI report or connect to published semantic model as live edit or live connection. Alternatively, you can add data and create a new semantic model and report. 1. Go to **DAX query view**, the fourth view available on the left side of Power BI Desktop. 1. Create a new query tab. 1. Open Copilot by clicking on the **Copilot** button or using CTRL + I. @@ -45,11 +45,11 @@ Let’s look at what Copilot can help you with in [DAX query view](/power-bi/tra - **DAX query to natural language**. Ask Copilot to explain what any DAX query is doing. - **Understand DAX concepts**. Maybe you heard about a certain DAX function or need to find the right DAX function for the job. Copilot can help you here too. -To use Copilot to create a DAX query, type in a prompt to describe what DAX query you would like generated and select **Send** or press Enter. Alternatively, you can click the **Write DAX query** inspire button. To run what is returned, select **Run** or press F5 to see the results of the DAX query. To keep the query and exit Copilot, select **Keep it** to add it to query tab. +To use Copilot to create a DAX query, type in a prompt to describe what DAX query you would like generated and select **Send** or press Enter. Alternatively, you can click the **Write DAX query** inspire button. To run what is returned, select **Run** or press F5 to see the results of the DAX query. To keep the query and exit Copilot, select **Keep query** to add it to query tab. -To use Copilot to explain a DAX query, select the DAX query and click the **Explain this query** inspire button. A short explaination is shown with the option to **show more** to see a longer explaination. +To use Copilot to explain a DAX query, select the DAX query and click the **Explain this query** inspire button. A short explanation is shown with the option to **show more** to see a longer explanation. -To use Copilot to explain a DAX topic, click the Explain a DAX topic inspire button, or type in a prompt to ask for an explaination of a DAX function or topic and select **Send** or press Enter. A short explaination is shown with the option to **show more** to see a longer explaination. +To use Copilot to explain a DAX topic, click the **Explain a DAX topic** inspire button, or type in a prompt to ask for an explanation of a DAX function or topic and select **Send** or press Enter. A short explanation is shown with the option to **show more** to see a longer explanation. ## Features of the inline Copilot @@ -98,7 +98,7 @@ After a few moments I get a detailed DAX query. :::image type="content" source="media/dax-copilot/dax-query-list-products.png" alt-text="Screenshot showing DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-query-list-products.png"::: -I select **Keep it** and then **Run** the query. +I select **Keep query** and then **Run** the query. :::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: @@ -114,7 +114,7 @@ Now the diff styling in the DAX query editor shows exactly what Copilot has chan :::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Screenshot showing Diff styling shows what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: -I select **Keep it** and **Run** it again. +I select **Keep query** and **Run** it again. :::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run the query and see the results, with the Profit Difference column." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: From 49d0d9b477e32d5f2c49d2aad0164c00b1f86c4a Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 21:29:10 -0800 Subject: [PATCH 617/934] Add files via upload --- .../dax-copilot/copilot-explain-query.png | Bin 0 -> 106431 bytes .../copilot-inspire-buttons-get-started.png | Bin 0 -> 14380 bytes .../media/dax-copilot/copilot-run-query.png | Bin 0 -> 102471 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/dax-copilot/copilot-explain-query.png create mode 100644 query-languages/dax/media/dax-copilot/copilot-inspire-buttons-get-started.png create mode 100644 query-languages/dax/media/dax-copilot/copilot-run-query.png diff --git a/query-languages/dax/media/dax-copilot/copilot-explain-query.png b/query-languages/dax/media/dax-copilot/copilot-explain-query.png new file mode 100644 index 0000000000000000000000000000000000000000..b7127c384598a188e41a2cca087d3b484368efcb GIT binary patch literal 106431 zcmbrmby$?$7dDDwl1fN}f`D{)D$*&^jg$=CASEgc9U|S*-8nQ;QqnPWN_W?{2lf4Z z=UmtM>u_DX%#6=G&)#dVweEY>>!%cxWuo0y^-7}a zZvClSLpuW82Cpoe#I3`t`ZNej_I{3NXF<&adWv^wI zKg^FR@L^Pgg4|~ zIbPN+=C638dHO*P>darCCijV$sqHI}E&L>Ruv|oS99@aM8;HhQpdX4@DMfaRMDE_& zezBh~;zy$H9eURWL$w{bCaJ5B$0qOYnf%Nn=JQ*(jfEPySYWvXIkHb7)9(}+q=(d` z_lF0$&os$uOV$iNREq}TLS;Ew0Lu<9G)9C7PZGlqGag<2}$SHZwWE^ zz(u5W=bv*E_U=8gg@+E2S220gB^d7ILh?Q-8AmH=wRZ0dOWKXy=;8ahlM6frxe)Ff zl?iK0c2!`OpShqWy*PI5zFZb+vqZAo>W3P6#&lb?hcJKGePvLI-BflcX9%ZV@0+n% z|GE^MJLDB6a9+CDD>>=jN*1V%g!rRoyYgJ@C{H8H@#Srf(XVP;cI0sd>JWlYmEStW z6LZA(Eyqu-Z@Ztzer8=~ofCmweaCiVS;sKG9E#`Dz4}TvLT@59LqQ+Q9VQCfq$sj@ zoyXnGz;qS26oN7Pdu7mhQNFKuv!wdsd~l^|+MVt3e#7h?;Uh-!D^5R3Z>JLbmM8Td zSG2*kyj~_;hGUzBM|rLjg3&BY^6nN5ZIgK4sevu9OAFDO}m`LbI1fMrJbsOc>A?659B6Iht%G9M;N_Ub> zsH`H?Cv3E>puEpkAD@yiMRhsIN_>#y=2D(+v!Mll^yd6Xoa!<>H9R8*8Y)++R5M<< zK5sL!In%jtt==nS1%pBh>-$r-=W?wUlPafL5TDju@{yd;Dt39rrfXziMKB>fzii7u zrl>Y4b0E)sDmE?f)j^Xk5PNNUXO-T?$*+agy-NGKo+bM(+OikW z#?rCG(eazy!Z;j!FztM;P<63_dUx5V$u=uP9dZQ zOe3!Mn5|+^Sl?GLCA+-G_LVyr#_hdSLJSW$+Q&VD1$9o1?wYX+V>Mj5HO{GZ7pfoI zPTM)Q4-|$>IsS2+0}9&MBMHB;cjKKs9(&dvuwqbCvtD+Em$x-fNbjukl^v5pp)T*A-)a^SC4;(x$UQ(zR*}sURiVf*8#f`i1*uL!CJ^Xd} z@MGGm-OZ>250@vN=jIP}x5h2k3+1AX4@bVXKa9RaBC{(u$cl9R=q+8(R)}pEXx}gr ziBhWXcAA&Iwy~#IR4#HB#=s9b-4@rV_}G|hfeT@>-%a;UnnNu}FuK0l4d)76 zCZn)g=_C@{-#F`2KblDj%vF&B@>Ir|^xB%DE*(<1tE|B@WL>s3M#5BKGn+NF)B7Dq zG5DkEd%QdX4dt?J-aGhB7l)c-d*M^8*O8FT!i>8P54<%ueDE})eopsuta975RiILu zl8})QbV`t)ey^R)$|xL9bLftDj(0Ub{}2||=0HnV^;u*ouI?Ac%Vq2Q^IO5xgsxtU zZBKj2-#A{ z>YJ8>yGNpwJKUGxDtJeI+3|A#!fCdo!Slpoy0J?rZ*DFZy1R#IrdHe7AobcTX13<>K~(QLJv$`o?kLP_IE{Kg$p$2F00=uT-MgZ(6;VB`hh!YZ<5fm50_mW zT*v3>=*)dYVtPDruRjH5Q2AF&WGKjWIXTAzb!v;gIvujd3V(AKofytfz_a9jkdg1i znJE|J`5{eQTmxUV*m>QYm!U>W`=zkzNY_l^+$O`!?%uIkptiDN!)=aF_|=X4G&Pq$ zjw3MMuVEi=$()_c@N>;Rkj|L?iJnSb^t(}+zjB^}%7LvwOY$X!@5yhT0^a&BlBtEu zYi8TC<4MWxt*VA3t1XM^;eK{iE-%MnQWN$`GSK{y!|w1ERc`t!9|EhgM+6B!YGUMz zdwI9je@PhgKWcwF!l!XBXfaW9V>?Z~Wz@U@9vwJUG@h?i|Eg!TIL7L$9$!V~Tq{Sq zUB=xYoyLLt^BX>Su~xJ!dfNW%)_^TX)f*15A9-kS(ZfU1oi)D z>hGVSjBQleR14Kg|1q$E2Lb}-GBH1CvugkuP9)`QOOfTGeDwD_rfH7Uq$}RrD*Fvz zC~%(O62a1mWhZ5|2nM_}p+PC~*7u=;cOlB`dv&Vg4tvqXr=Ql~1r+O7oIPXo|44AT zu!HBn*W}8{DF0~l<1ktU@7O;&2k0d3f4hAAIQ#bhI5hZ*ueX6O~1)d zVe9DVv>C@q-GvNTZ%o(0$DWguKRFAemtMJ9!w()OCnp)ImHwE06;$xjApGBhJ4Bm? zvt<9T9m-YxY}2|2p`@f_eEWwXg6D*__4f1xef^4MP`WO>`Oaps^zr*I`e1vX#7k@&1bC_>PG@4xuXUpRa|{S`%hP zeEY`DU}6@?&(F{8c2cyt(gMX?@68yP&G%r6AbQgNYhW~ChV-}WMPSz$Pc>$f2kB(V zBGUa-+rYmt;_HjuYkQ;5ter6qt;RjE1Te@Xk<~@`TWa~+lpl#+HZ}1djVUca%Bfgb z!e%_q$x_9yAAc-28?`=NQhh{BY_3)Qa;(mk%l+(tg;Sbh)N~GG-bCwOW0dq;mn*~D z*M!p%1;}+lxh2~x=2TbKUmP&)sgvCo5~*1j8G|u}EST@dMImRT>;8$`Jv5-gnL+my-kBg~`tMfMt zjIVPxg~eDf#qeyF3lr?T?MdB&r* zVB%9>G6O$5Q}97I`2ypOEiB%)jSQTP&5T~35FrwwBPudV5?oECD* zb3{=+F^GNV8olrttJ6x0VOsYwNf*H~?bk6zW66e-GNkMq zzhd~l1fRjx_5semXOc9>wP$mbc&9H<02In6C`fu?GDvWB6r#3Zd9&fPL>r#P(yA(a zAt51yQI|M2vy7HLJ6-3_Ig^hjNr?+P`_lV(+!tCzSNlnQroeT0UM%1nL`ko%t`hUu zeqq$E`So2C)xfEGeqn*fX^Xhd^_bH!A!?tbW*;hq#>zRIqw6saG0%CtB!GF|PH$EB zGb?|gFb7!RY}87xICArEp}g#3Sm4D5)`z;{fXk4>`3WK@K8!BCp5Mu}Pw*UV#`Buw z@#8|9)1@dPnD#`yJKtcY{8Aecl*MUlzio>*^I1~)iklEcmmPhnuaIYg4tVYYxucaOWKlSNVR))W{u<#HQtlcHP z=8ZGuxPDUpP%d&Uy2 zXvRH1yT|SZg$D4oiiGp03<}3R5@83gBaq8Ys4FTj-S!T%IY_fe1l@e2qmiqsU-l&m z&|Ml`%r<>SvR^kQErBf3Dy$D>zxCGFa##%rQ)>GjC2zx-8Jd}d%HqhO=6N<~q2;m^ z(H%Xfc2^U(E6TG2=zX*6HUpdEaI`k;`>FM~D-O<+{#qA1+mh0qqoWMF_xRyd0uLgE z^PSZ&GPd1bY(+t>?pp<4S)+y6=}aDNF_fX^PVk4UEMR)#|HzOPB8oF>{gpDxJ|?_5 zR{e_c^65h^&2Ppkino_%swu0gV_G=&c`0!&qd&F{w@U19;5thzR?T$i;vGhy7UVc7M3>4sM@-^&b~e_&VV5^ zXvOlL$CW8n5GE_wWq*JFbIOGIZBNgkF=a}pX%{?THhJ2xkuhZh;32AP8-=H}4mg?W z*^_)nr<0S5d=uc6e0foq?zapY>b+q)q+QW8sm>Px(9Q#%cF$$^r6L^>PW#^+Z5j90 z!=q(n77c9a8mE*#!ZaCWWq6!9JKF{YP??TpY9|MGO~3kth!YA@nwZ*hl3~hYZzWPm z)y63-F1!p2x$iA2aC)l5681*D4SKV^un*sXdzVQdrC}4&FzR-nqx4^x`J|Dh5a8$c zjPr>329gTvHG0ycbTqPQ%YjR`ng8*yxw$#MHzfn5+^6vSoMpMT?At*M(Iwk^uv z3(m%ZRFznhFYfuX#7HHl;fHHJtctmwnTR4n5fTUG?xx)~zzz!JTG9aKD(M_vl`K zz)TejS{~7~Vslg;pC~s|t952sAN4fY$YG(Di`P3`W0K_d2n-BFOTN=!++)tAcX}*q zhQDKM#p~n{&$Q{OYq8Q8*I?J@&{Mqrv2AapStB-^2@WmROzu5V;;zY8i6s0{BWlxEw!ik7}(ezsK;mN(KU1)aC zdqOokF8ZvXzb+!08+8bB)HjLVG0GRRv$}=D%8R}nXp)>S(3;Az!izCKI7Q=Dx9{7+ z*?X`xMWm~%>$o`~s-%PikTJ!mEAr&z(}5oq2@MTG)z#JJ z@QNUyY&;vK_2WC5XqbgOKYeDjFrk-AQTf9fX_gx^@hu5LB=0;{f`b@kkR>D~Q(T=! zy{we&Hz$H>YqbpQg49cw>83yIC;ix%fks7fjcPj~r;0_@5%{aJ$s1tby?b{NcXYZ~ z^3a_3i9B1OQtXGslx%U79{#>x-TP>=0=>V6*dj7WO}Z~hvrk;o2f(}Yd-jfF?W?kx z5;JkHU;gCTQ)KOs?Ifq>f#xj|mwdJBlBE+@hp-fm#5>q zko~J^fBopJ9Y|g`)WI%5VYhJ+W-;Ab=Cf5v)2y^aBjyf8@Cdy|BsdA5X4(6u2vwa< z;B~6^e$uVZG&ES8WR~}NT%JKra0PykvgbA{$gX8-6O~q*4eCG98t{v2J12q>d6$*3 z*EnrknioVCXv4lnMVXivu;_a1lGQkFcg6)wFORP*?_~;I6JTQQhYGq%-VYCwB^LTB zY#B~$P^zVO-bc!L-_$Wh<825V*!KL2(ZkW$wCEQ05S)AWxhT^j3R?twFHiWUPh*@H zP3B{gg2X*AWcNx~{3E3J5_1TL>`V{s=lLF_r7&6$?;!u$6AZrnZ^1 zuzxNQ$y?OBjVjXu52h?X>G8$~;(5}NY#ViEd0weLxxcQjv#xQ-+;gH8B<()%-COAV zc$($~hXH%<08$v4)@VS~MbmNc@yrF?6Kw;eTto zY}0met&{CT%VFlNf#Q*vjkc+G)#9&gqjJmTTz+;n5*npRs*}NAD_eaMZM*Bx*92!E zB74gzXgPio8ssWh(QpNf?In52fiQ#W$&E+}fbnOe89jm!TI2Il$ zFDNF7=6B9cU$^d!q$gBg1($I3Wclt^6GojqXJ!sXz7JWB<+uO+G%;}nFRSjfRbK0O zgWBHxjBd;KBt&GU+K#|{{DMvB`U0DVhURtsJ|{Ic7V*ff7ajDA3!QWle35b!e)d;9 zR~G#K0{G`c`EAPUL-VcM2!6>7Sk%Q~;jt}X?1CqHF)h4gZbfKJOiZNi2P}!6S9g&T zo!@1&@CJ#>tm((Pr2Xn%Kb-YGpP+pP?ih6m1VA7nKJWj zwnd<8EOrN#s;lQ7eI;h&m(zm8Ez9U@_`ufoVCDhh=XviB&SG zwf4&BLYZY3Uuo96@od+hV*s!S2$45+R#tX#aY3B0^>*Dc&mEzN!(;ERv8b+ML;A$@8;x zjf~*mF0V{YoV9OzBSX22)D!g1&R6AKeM=@xI}WD#a0-sG;FCB=aujwocD|U{o0>e< zf|cc>v9-7Q@{J##=!kE@4|FcB_Z(#c37JEaB;U>cx24FxbPs4Ms-4}=4=E89FIi0*`A7k3FzLfy~ zYvQhFt_OZjF^k{iF(4tdLxeFCIqdl7Kc&8x#&YH`%MwPViifbe?0u$JEBZ((@PQCU z2SVg7WK8}>v%<^pE~bXbG3}IReQr`Sa$fXjaApJ5&&Jm-Zfip{TeWt?`^!BhAmT+b zG%{kbU3>uNZOdWH1!34-egOeOZSM(xvithBY?v$drD%utE&M}+7p2v&dibB?6cAjX zlFCYXRzA5Z3aag^Pfcq~n1AKu?;oe2HvjV3@?4@QC6&KTCO%i!OylJ5s^6TkcX+4A z=G}%4{&HS(r4*{+lDSHJZ&Sr>hpovNBFm~UC~0grh+KlEmJq?1=Q;dR%W2AC7-bMi z4#%0zR(N&tT~Pl>euM3P4~03X3k8!Ht!Piyx|Fu`@$m3$Ou?Xn?q|GZT=y&lrrs|_ zzBGGF<&}Y^0W%qx_$EnLX;)UElzums)pRpaQv8|}L!VIiO}F3<{f|X$UzqAMQqoiB z>XliulF6w-jRfPL!084oC%8k{|74@W*4`vj;Szd?hM=^tFIYGJWF+TU3gVhZ5GH)K zWzIyGWz$5ry@w^Gr9rto9lgEFfY2^>Qk(2`P`r)iJ9b&1jZhg{!}2*c2XI-okw-76 zb|h$*YeSoi~bKW;Go)vPDqFnvfbn^LfOQpp4V#(eFe_ zv$sC^h2^WnO%^2Ezcg$)BjydD%r1Be^D&q@cdK0R^!8{Qr`X8)sH&a0I$PTX?pu}Y z*mPx>_Nic;-((=eP(?%pi3rfAvej|DJ%UbS%_REVR|hERHID=h+9unu<@uZXQ^jKh z&LxA%gygoT-K#cAx_*xql3kwbwgE)-4HD=^{PCag2jmNob+jn0f$=Ih?dskl%5=>> zirB&SyN!2^rF5rV5ed$2Lr4aANH9my{kf9k7cc0)gXGepp~>9lrfg=fwlnaL=IfVb z?qrzxlR;3;htE8=;=A{s4sT=4n*g&X3kpnX4-vY;@9*b(h>Dt8R1^vt8xmc&6K0tg z_djC_E>62%OSK1+@HlSZ3w$_OOmHIKJc5ki`?x(>CZTqidEXJx-eYTUd!OM>W6<}3 zxg^>1*}?M$3^-N85v@lyH4Tk@dw$l#*1MJpix{F*QYf#R3GAih%)L zUY@D8mj5A|c}tbeLXHFSZ4)2IDb(!p7vt@?Igf;PPGv0biyX>^37WMOULTSwYO0EUG?RnZSinQ|0mDuHt{gcJc zaKMGXa9T`oml2Wh+J{zHd^Vk)Jbiu^^h^QyMQ=dnb5}gW&E}wYlO^Fc($nISAFvj2 z7nVmJyNQduv6I^K?-UI0jG2P&b_e7F>)TZ1-OGGpf{b>VwCr z5uMOgm7i7pc%wL(yOsek_8%!xdp$Jr{{H@f+TB$S%$}HCOXbM2Co2;cZI&OjC%T?w z+ybfRewaKN2%F6g>GdI+r%;;Ie%smkxFi^(NxCOX-k5TkUbaXB6-1J^Z6_h`S zW>I~zhVhffbsIyvkY#(begmJm2J(8;+l!_9hMwhL^Ah?`oJ{>YVMyUl&n%~b!K{2% z6?9%P*rWL|Rr!D`>Gq`CUK3vk)#w4MVA)M_Q|l>cRY`j}QKXNI`lPnINS})beQ<3; z*XnnlGO1sn^AWO?)K8o%)`gKKe!|2RcBTEJ-8pb1wU+y^`h7!)9Esp33#e4a0OegNu1b?c1*FooXfz`qEJqrm1r4bf{DI1FmUzWAoXGGe* zJ?V~Ob4>H2hmMSY-~44LHup4ORBldWtt3+Bclrz|MJVc6+<8d=!I&lS={* z@>@=H-=bQv-^?*Z`Ji^~d^aiN>|!$Y`}b%;ciPHH)~}g~XF>+Yci$>1Hh;Ujy{|3j zTCmr(cs89-bv{w={NcmIh>Jy!=jqBzOz2#a*@#=~h%RS%Sd8fUh}XgDAl^(y{l&oo zW-YttEhLZ_*HbAZC#^Y^g4eIT5*>Xho4dK5BPT>*SE@Ii^sExU1cj!TmYgE>3!CYz zP!TS}t2oVNc{{GY7!||sX}{1bv7Dq(rs(amV(^aZk>9f}GcHgJ`SJ?<39!*aOP?j- zX(t;K&qu_>G!-^jf&>`s%@@eoyXQeui2|h@(hp-}+DsR&3)jv|>)P>c zm~Y|M29-VQTu^JXLe7iLD^~*Bp7Kf8ZTE`$AR^D%bM%?9+vSY%g+|We^5oR$mGI9> z$_bug^#UYE+iA};edF`626|tv@jPfKL?^9JTs|Gh+t0*}wR)wXXjpQ`lxm+J(xW-J z7%XmM_J+^tByaz(hiC+`?wWmviOq#3E~7&}aQl;P`#nMAGT5dYAo70^PA$}E5F(pj z32cF6RJZfU8=I$o2a&H|F5;igNBYr?hVrW#K?2RVLweYW=!e}xq zY3^`~X&pk}s}`DGdUC$fF9&GcQOch@g~)0(K6mCK)q+JvFj4_su0^rl|JlAc^M$HX zHm{udPst}IQx3WO3<97ofl=tPtg|WysF6u;{M;7ox;cQU*I=^Brfut96Yu1H{|j>Ez^w-u7#Se$ zZyR3w;sqT0>)Ag7Xu?xbCO9A>Qf=Ud>-|z-cGHE=fdr|;}l4av6 zCb`Y=udg=VUY)j)!#|jsnqKhCOJm^OpB-WSGXEC(aJSoFT^gJCh`L~vt%N?|Pv&=z zhiFfI-Alt^C`x#Q0zAvUo`uh5K&w)AxiiKQJfLmJ@0aePp4lt2=AKc9T zCs`-mb- z0hXbtruH7SOQY<)KI+dr_tVo;XIEGF2%^5w6USA#De~_gjP!RQ_ZluMdh}^RqN4D? zg%vxw8D$pm$cqa%MMXuV_k$ThHh;@`j~`bH<75$N*|Z`-)A>Pq9&99>LOghkcEHxw z*4NLkINuH^AKWvE*TJ7kHg?QXFEk;+0^VC+C>ro2T88Rtc=+zY!4NvezsIjV29H>r(uiuy`56H@Tfk+8nU^z{M3sz-IgiA74UG?Y#o z%2}`R8EKPBfmRrIN56zXa*A`c z;1w2j+&*AUp>c6$TKNM&|6}-^wp=z-OMq2FHmaD?fHbv>`smL`8>l?m)eEQAbVB~* zJ}M!U3dlSA`v_xtPEB2EzpAJM^8U1*FSAyeq5&(_FwPDE;+K$>%`c66T)W@P2QCYb zkM9Op6f{-N2&7SMw-R~oZ4Wln9m58_zE}~eFc7d?mI=}(D(_L(b1deYIj$^ScRV{- z4J6?kseZxiu>l7l0{W}&Sg)M(%~@`?P_lgEkQfLb*9i0-~TyczC0xt`w zL}t1>baI=IdZ;PCetoAaipk{nuapXXKk%wDzX6;)bhPtqLOs_YZ!=dVpBza0`n=)V zp#QrlD7tp6?&Ob+sR22XG_$+nlB}N{u3Ln_Kq(i_@m@%#OM{`@?bH@t?y$Eg33og? zFC+T^@kA#g>+-;#zc}3|;ITC_#PR9dOlfF|baHcTIBfm2vLz-LCI zD8qoU3q~Gt1FcG^Z|I9Ef7kB3akO%`W#tz*9pa-m+HqV~#vP&0Dw62z1OwZRmNx3% zEp4#<8s^Yr0_z2lRezzbkU>O9@NJtPBj5XHo!VR7>&)#ouEtVmk9J|#w+DbmGO6@hVH3jSJ=y>}4`IlmY_6Z-t zAR?|{@cT6`t_!h$k=J;PS{>jfKS2d3hSdnAJ%r2z7$YK44ZIV)f{fc*ua4~9@FV_% zUm_T~J9*DWfseFUA?(64$^~@-plCB=wA$02*X~sEiQP?~@2eNT^WJpOsI(-ZQ^|V@ z_Vn>1l1iT1OIur3P+BgV3Y;UmKDqxkLq;E1ksLIhl+Ur-s9eV=*kQcH=(U(wiNm@| zqVxPiB;cVCE6PWb&FQ>(Gh zwh)qzV$9zwZ**}Z<%S7v&SYBE9Xa4b45@|lb13L826y-jwBz>e+g0=a zbX8Yp>rExPuAromU?G&i>wviJojZ4C*Vm=bk2aeWjo#(wprD}{E_Q@Hr=sF@&$FDW zQC>S$jyxoGb#-L}{sB>@f^^oSFA@cGMcZ+1&=!Z$*)Sk@*6ZJlwKbH z?oYL72i+)WkqT^}PbG{(91B1c6oW*q?0wi~HC#xg!Q--{yE`uoLb%{yX6U&w!uQ+Q z#3YJ`YgE_MJ;p4hB+o9Z4mf!8=~{vuXTiY200EQj2#|I3!6e&y3rx^$=Blm8V`JS z48MzQb&Kjo!)t2YWXXf{4*(8DLFYziWKP0*0j#&m|Lv_?w}|Nc+G z@Ea07$1>%7N`Qo>gH)Oi42&*YMBN`6XbFg`B2Z99hMjY?8k`9hF7DEv)3+NO&?1H~ zDA=_T`l{v9<>8X3fVI%;))Rw{4J<4y;s@T=$)wot-+!6H|p}s{{{60EN0bpSkAEf5A)EX2!?K z8Hr1$@{Ml>Hao{6VyyXCt&@-x$&s$ z_2uwGwoP^F^pL>7J1>si07~^8oi49A*c|E*up0Wdtotur`Y*XC8Fojr&})=+=ob_K z(tv0Sx=k;_oImOaln~fo)(&AFqiSD&L?nYI7HEBPO$0T-ysVVd?VRuONrHL=9*~IG z*qYu}ajz7l7e{a@T9{0Wm@EwF{eew1lZ@#^r zwuF2SO%E7J#U`@0Og+O&I~*RzW4B!Nt`!CDaxWeuHy33+>a?*@7_byv&GaCkT|if| zyW+6)vh_d;DA^)w3Ha}B5EASj9~VX#I8XwP2e{Fg&*)4js^RfZBUMu;sbYaPuTX`1c+lY|a4R#HsY2YT)*E4Wix$pw?nkQA)~x zFsCr5ng-fiz^^A7K{rA5S?YZMsYYj#FW$gXmYVup3qHL*z0L8123Ci!h#V z9bq%d2Y->U{ARf5$C#R;;wu}Q;ubBg0cOy)cmBz(6DQ2SRl^dp3qWK<>TbHy#w&NR zjEs!E0cj={5NxvETJv^H>AkT&36Zd{Ft1L-=ANFO5tU5b|3-bt(G&hR%!*dpxr<$U!xqb zxd#Sz5kK16_CPBY`_IvvL8-KQkSr!AcL3o32`J;Z$25pNT%Z!=7QmyRkqO2Fo@SsL zM9Akz4|xB)|W6D;C>!TrnmxKYn zyn%(dE{qVYpBOnySUo#$a^?Pt?E^={RhrHvZOkzkvMYZ26q)e^&}FYFIVmj+aCf2Gd^ zczuLS7&I%GZ5Jh$`;z)VaUH-YC7>AK%5N@{sFcs1d3AToxVgJG?YUHVTz-J_6bW+C zi*Qmgx%OMdhr|gz-U}NX}ZMMOiWJ0X0U%?h$y?WJX zyYYwfyMnG$SrBR<(DD!MXM6YKfyc$J_yWWTaRi;zNjt!ZLIKMM2BKDB9+U5RyfuZO z;0WjZnWMxtXJi3LHEF(JIC|cX&cV55Nk1_V)_a=MBF=45)uj(Fj-zv5#sn z;K2YXK$`}5Jc3c&xp!|MMdbby294JsP;3e92HOD{f!{mg-g^}!tcDK&ai;>i%*&%k zFhX!%U?ad0uZCdXD2juGSL_(b5_FF#nF0n?qMU{}U2s0o9E@BRgSH|dD}ZnhP*7;! z#ylfG9L-VA^$iKBRFlw2({KgItpFN?1!6AHuSUS{%*^Mw@syW0wu=$gT}AZAphZ!Jeq`u2 zc$kkBHK{x1YL>ex=Lf_N}s5Yo+Pymkr!Z0tR-~!+c2rAg2?}iC-OcOHm1gBD1pFaHvED!qdipy%+ z{Cs;jSJe)HbL8oQm&4f7+Hfw(M7}$PSm5k_pODiTLZs*q9y|qL1A+`}Qc^hyi3gy& z_O+VHb4RfpieQN?Rnh=ybe%!J;0n1guf!;GVL7i6(C~- z1O$krSD9uArryR_F^0R!KUj3wv>L&B@}v#uqSn=$lv)cW*aj;WHa3uU6F_Wfrn+yl zvwE5zjnQA_M_B)HJA9KRB_&dUL7*`llvm-mu}!%hx2LrYUMgE!G9tnSrx|yr7+U{* zeRQ~%`(xZN)bpiy-dZU#;oz=Tyrrh_3M7Dz10yKqw z0e&xE78jzJ3Br-_BK^;UE}vh&UW)@>KM|dXQwbt*?hOL^E+2Fv1TzoP{PR<$lMsr|M26`*rg&@)C6`5n!0R0pLB!9dxPEi)>xsNL{J*W`wkO|)D%8)^8ZJA z(zGM#qEPZ0&&H(gje*W z%$#}1fKJ76lO#$;#sZm!QpYf#t&Q-Njz z8Iz5i$PZ*$2?DN>u3Obm@SJdfzKGs(V!bb!AeyaA!X zE$5X4ClC>mG1cze4!~nF{^9$$g0>$>5b-U9U~|`seUOi~VM|?6qY&k63E7iA&#RVj zdBIio7mkN8qoz-HjXdypa&0+Pj5R-(fy1!_Y>)4P^v`g{=tfH!=oKIXj-XELRXLC* zhsDG<5U~@*X-mn-Ai9fyNcRCPEdr@IB#^0eUJMfllMc*k^^Ix`9h!8gd7CLIDdrPp ze&9mjczQd-sc&_3bm(249RgYG7kXX>Ajne%sDS8zk|5|$C*ZYzVPj*Hr&$>cgn4sb zJ+VfvNqX5zu4k*6F0)?u)fzn9V;bk6WFC5*UnvpDkGLAJw@4=4Uf1oqb^xK0Qc@*% z?a2?76%-x;6>Kw(YS6Uag>?{|ACH104cICspmy)3YhBy`r7)r`|I^V8*o95qx_o&aLX!U@A6Chi8MUnITr@4#nvfxdwE=Zc=2<)gMB@I~NZ`KXQ=d}P8> zh`KkoupZ)i0oK2;upk1k3#_2be0-oHLBhaoRDcjR^xd$+X8zvy7-oj32mgOk8=AJy#;OPlOyCfxVoEQ^hdj82E9|@3#Wzb)} zxVVV41EvT10SF?J1k7546ZOVDgpu^>%|L_*QJY^PB1S}RlQUjPL~!XH4j>V|34FJ> zUG|=X_?@*t(G(2l7#bT-iB49o$JU3iyVhqnVpo-u3(kM_ zCtXdu4QeDz*cs||*H^65o}Mwq)dOIyPY4Nr(iPS=&s-f{i{q2xK`w~+6REgO|?RRSW6hR=)y`a*&06$bw1J_fP%7?&`}p#zLAvLFcy@N(!d zsWKAG1pOyoo|o&o2qW~oa?^B(i75Xx$P3kQ0VNK69^2*Efh02&k;xz=l)ApUbeZ>~rUiY%H?GLIx4A5K zHZmeY`JFjE4Nc15841<8$nfx%@1gNJe-`AX(M3UMP8l z!!sd@h57k0P+kTEE3|n1Q%&ffVW+fbzh8L0DvKQ`A5Q$RatYN3a*% zJfECgk?EUe3P|Y(fsV;y%{3NfLSNsijJ}Q%`#<%0Ejk*SXKZYx5L^fdlG~_m_zNP~ z2zaHhpHlpg7G(%@nFq@Ly&X9@p7+LvxdHY!uEo-{v@f7UGC4J6+W+1Ae-)B2F*+fk zBtT0*Z;_3iUG7DwJQ&8>+uH+)9d^h6X35y4yuH2C($nX*wk$Vpt9r$9IDm{o%hXf? zILoluSculYlE&+_H=SKw3qU|spyp&~codIu`eREjNmNu62L~rKDoWhOhDA1xGu?DB z0~D(w#$*0roP-FdV87DQAqB-LaOv#Qk~b83A55+pZS6>kf=4RR(bJbPfc9OSCr=c$ zv}7dx24&4;Krc2(9JLw$5k{C)S4T&(WH=S#gQCD8_81w^P;uw)gqmiazD7DS$HuGj z@88Lx=~Y!@PqK!Mvs4rmghA6)P|sh%MF6AV0rOvh;Dd^yZbMdm));Fb7PWY9Qze`% z{Vb(Yj9d8uYwZ7~?Ih3@06gOs`#?sXB^J;Q=Fy@J6`>9X29y_8fUVq2%={g!lSog` z%%lSoi2#xVa41oC}- zA)ux=yRcxe!H8JjP}x1QEYT$2l}IPuH=)a4Dxvpvg-%|_C@=s$0)!GY0|jMfnnYl! zJ!SwICqOq^CG5vx_YhbK&<^B1Ksu#;YHF&=-}fz04xn6N(a{p`-@o@x zi3JgUwkef?h)AjR0NSYzaN;1oE$ z!x6B7hoF)S`UX)3)1(mkKAeLK(y{S^?h|7SXT+AhuC%A|H6* z^5FwW_nRRm7_%!`Sy^|EkHL6{QY`3-0-P1-Qkcf*EOL2lmfZf~!MqhRlyz<3sw$4~ zg2rZc@e);(UCMGqQ9s?PKiL*l37Oy7E0pUDb1Ob}lq&Cfbd#ZPY+?GKr?KWqz zbuo)xLBiKOltOWG&cU@i)g-{be@N>gFUwglJqzY)H+JmY+-jxPMG3P(6FIMgt%s8? z@GEEk`8q9AaJK1LS-ybCd_!bODnEn4#URk9;S0V1CjZPgBJbs~j)qxEJtgPJ*T97& zd7NbzXTRKs41D?i70VW7&t(-htX025vxkc67t0y7Vnra$#$>fXwS<@)XQXmSoZ6cg z8s}Mc^dV5ScnwsC8#F(PhmhtkhnAuRZ%y|eO^MsY-)d5JRUY~wxE5n4K3?a}2lFiK zW|LZ+J=!!E3Vpwk6+3S~e=J&hEJ4c{u$F7DwIt17l&}fMv`rM(W?D?(1weRTvb*%c zZTSUDKYScCG{T*>D38jjQ@Jl+z$(SDqt^D&5acicgk7LOa)8oO1}f*f9TXuuy?opF zuz0@8q=-Jb+2vc2KPzr=u{ka9Abk}|dhLAjTqTj!QpxFS>a_7ds15?LuDJ}hU3kmC zO3uy6oK0$}DVX(*?r@Wnqss!r1+#A5V~azGG`qBjE$byc_I3G}ux&=Y_iFMLea>MI zRWX{BB3#<{uum;lI8`<$o32^;e-9bqTLqKpY306o0l)z8TTqw(8XGI6rKQCoQhxS~ zZ}pKY*wFNa6;(0qPfD%^-%p=z`_s#s?w*g=?JJ}{sDsGr+_s@E*|l_i*rd}~?Tm4i zC{=(uXn^a2qO*l7CURtw_u>E zj@!0X;(xRcK8r3Ty*lZ(jr1&vrHg+Xs%InxznG2y>zhs$sk|CPZ#~$@#G6#KbCK%K%}J@5+v>H6h0t4?YJF&>3ysE$qm}EX8x+- z?-4-dE$zN{{2~Ya&vdQpADUwV-F^Q|#9pRXkJSV=jRj6N)R%s?t&DacK zm5P;NaamYSs4~YR%XUC?ez)fiG?Pe=*SeGmFb>w2FS}n74b0E76PEc(I|@6;7c#v@U28iM_xw^{@_CI7{yG{R4PV8 zD;m+$TT<+VpU&IbM#{h|qEF=DV7~9sHhQB4tu7GleDCdL5f!bw#W_;iL8bQo7L)vb z+?L&3YvN1<`S%*OmtCoM87Bt@w~|`NUl=@w=!r&Eo<+@C)40^%NlQVj-82ZNVU*Ow zxcSa!+#$uv7+>K?Vd{{kxNZjwOsfp~D zM2@PiRt1Qi@y{Wn*;^5DX%RoO`Z0T!K080PRusj<`Dnj-^n+szrjcPA=ultn8i+aJ zaq-x4(GG6AI(s~X%G&Z8q#rDD|GoC}^AKXZacUvsgG9k@W%xqza>no?{rgu(Rjv`W zeBoGqQ&Z2eErnv7KG#kreR!|&BUgSxXz z04T|-fy!cw&p}l!5U)s-YKA)!oCiU&10KKG%{Dw#wSRTFm5ffhmh0OFRHx)#4pzFZ z33uy-zYZs%hD{&fCADVugPs384`O%RCa_;coYx;`wp@*%o)*j4X$_${+QeRsznJp- z7SV4?QDHs$@>|DhHARs0qHMOUcfT=Vt1T~`>Ia7;`UBDU>DLmY>5L04G9Fi=%Co&w zB*ghTUg9m`&lX$e3<-zDn-Y(>H;e+#47C}nwm&tm65M31J}6VL>#*c&yD(c+^0nU! zNQVzBw504e&eTyoqjG5Q#Mfj@{q{k@0<|8^bZpvX7w#0q8sFS&aTZvreH(c!I;z0X z)ujh&F}*RPGdQHw2juXJ4ZP6VF#f~qb{ zy4dRdYYiP4{rA3=nB(ReNs+0$CAmesW(g^k=6fS`l%p_4d@RPna^@zzyPBht%;>gv zgdx4t_8CX!OZbl(@yt&+2*m*u3x5rck(4OxgKOFy=YqbXSABPvW2u-krG~piyqmUKTg06xn8MpVb zEPUtk57#CIf)cR7sD~FD zzv^k#kWo@=fnlYulx5zAo!kvT9zc$lEE+FNWiR`yd z*3pZJH95$ZiA>+^mp_I}CR*(|FM>ni1^gDH+Ps-(MBoMI7go5umoDokOkNWg14^I$ z9`Z8Mr2gV*=ZJGZlUzEHB~OO|Ol`h)E<$jln(1V>qeTiHAe zsEp!QWi1A;Lo0>i@v|HSZ5dnR@M01h*HTB$8&2q0!hIk_$*QHVd*^0DqL?aw!7n{m!9F*;%BbAHaUP5TkJF(jk<7O*bIh z8`rusF1n5)L2~2^pQp4)#I>`zrH&cNS_h^*Gcvhhi8bK>=_#)+Q3tnDcKWc4tBKQY- zLA4gGn*=^?Go1k|@^)6!E!-WF93x%a%WZWhUI^iP3Ey&Rzc;u@^3XOD4CWchMWi}D z)1&dcT&$C`#f`D>AEE<6n0wVRQ0-Zy1zy#M5tU~1R)vFGNKi2H%( z`e8qKnnjFnI*Ce9Y7D-APS|Sy4Ued5-*cy6pTpc~-Hoj)s|=68J|sI{jycl+VJ;T? zqjvOIOyq%ssP+BsMsB5Z{dvpYJ5nvwf`UDqf(ujAw77byJ3EJ6GXv*y+p?|4K9iYC z`48MSsDlDah_OUGBNh#-de8gts?<`mePiNg@a(CAvI9wTO_@DR6LGF(e#6~6VlULh zkiBoL{iU%)g<7TwYXNB%pn{o>dE-QPy%~dF#8%l$3Ve9?oXj?bHRoUR67EO)1xED_ zZdNNl?2=NIuQ7U^>eEHvbI$xWdF<``;5jp8U?_-UpW5Tn?2?zX8GWs;_t_opqoDTd zqmPK@3)+QC_xhArs6P))e?E2DiDk$S3*>x}fXEt0K9Y(GXN8GBtbR=I9HJ47)4y?0fN z?D)7u+SfnwM1UzU<=q`e)K=DOQEu<}1~OD+%8$hMBxXW?JK9gxV-hhfS(Vh0^p~yE~%dCvM80z{MxEgN zHALpW@6;pI@2FGv^;)i0xX&wdXZ~bD-K9B5G?`;2#27`&yt0<~c9ea0c=^&Bu;cJh zu=>^Z=+y?qfc??}EC?r=|BBHy$G0Pv75&@5b&a1MEE;3YZ?O3nPA2weY9ry%Pxg-F z=oj+zV#YIG8xB8zi)|yk7%gI=#+TK&rgrYwO+YW>nzlL`=wR6OeEV8fmP`bW2iyDA zu}luJedwvvz_goe-MOV-W%XV%0Stg^07pZdXt)$~=0V6>V^ic)x)!paaj?^w^n5<} zdnhok8SY__n8-~@o8(>G>XP`}2_vs&Py3xIH4*Sl_6-Nu9VwD~Y={PPFOd1r%UR0u zj!i@wMGkd_;_){c#P^V>!G}buQTP~4eg;W(3mZ{5>M!0|di#+y+nZr2A6Z+JzhRLJ zqu$toT@(Ow&-kN_l~(l+k53!zh6D+A>}P4@9D4?z=H8Zx!PL||2TGF22v4D@UGIjb z%M<}QF{ZRSm)bb0+0kdC9W%T;f+Uo0PKWtx*Y9SGDLje&SF{hRrQ}T zc_=04xu*)N6!T$kGE3z0Zsi%V3Jde-(69c^hcRuKc^wpQiWDK2h`_1K*zBe^Tj_JJ z{AQIH^%}mGSJ{x});%m<@tU~Ws{BoVHr5K8R_Nwmi4R$GAM^Fdyk&pA@{)pG!a>ga z?#^U3x93eF63b_gFkc+9;TF7_$R@(OqBon8J&%Vb+-LL-!`qy~EzRy;9&PPoG9|iC zcK50^TN?YP&@bNZy@QXNZSx(tHD^aTI+}d9EkG0p)UacKbx-n4lOl?SH~FE`WH9##;&~8!tO%^Dv7{eXl6W z4pg-3y?dC?RGb`bh(F@H2q|~)+O|EOMB+rLeeZ4=V0GJ?&6M5BfZT%Yp$;&g9f$4b zD5#w+le1rq7fPD&k=%~htoC?2adK1lO;NrvV-mh(lf;;dGO`A5VCN8{*??lj$xjB? zaqd@L5?8*q%5H8@>94zjdwy1vy_vTLn(qyMUwom;czkTy=wh2OylTv0O)o>Orc@^t zoa~lo5HDL(a$Gc-aU>xka;L$T>GWvh0ZyPN{t(6S%!CS-pS0Dhq5xsr=z8{d$wrb? z(~Wj}7<_X>T+(;MNS-+mU;79$^Ix$*a88}xJLVzY5pkXFNFwvB@7}^31&xqMbo<%t z;wO?e(=&xYq4LGs{59;xp@Ik1AX~9$ONnsRF0`kX@n?2B#qT(rN}ZGoRfgg?_(Pb8 z{K-CH;@Q#R+qsu!DXX%LZYxv|FHKy~T}&4t?&A)mCtdkn=Ua=SGMHdmm89QvI^xc1 zkqthHPcFkO^>o>Lial9>?;=05YJ(t&FQe;o+w|A6vDw~c|Mu^$l$VvYU#6m-4)iHc zcE7h=sVqU>+;%a6rORRM9W`oFlYdSpdQcf=&te}5QK~tQ_4Zkg>OCE|S@+}bf0&#ANd5iNPcz{1ap*Ods zlTqsXceBb(nGX*c8L_ZvK9)@1B)$p&o$MFn#M#0mbG8$=Of+rvk1_NL#E;LchlW&L z_uCaW5pZecFBXE0^0N|)iJ4l3lnJh)kl`rB*ERbEsYNNVnlQxyUd-qo6$!J9$EUR(Cl5@^ zPkZm&;eaF-XvEG?R>>S4Uvy?ZW4*%@)i55a)X$KlV9FeXC+69s7SG-&NK+p+?CK-f zQNCDl?wUpx7&-n~xC-@kxH_s26%yf%>uelnp2ErYM*qZ=B~cS6F42cAYJ5(UgJ0xM zMOp3V%9Q?T%$@zNR;%Zrj<)`Ef9jdfq1otp6{M`q&V0DQHKmF0A(C$0?cV3-d)BCF zOVCJh;*C2>(t~9*{4l#0xIqq^B12Xp>=@rE>TDkUA5U;HTwz(>HzpZT-#z-kWH!HU5lq@ZqB^gyew#~lqfR-=7RBR`Az)=h^-N5(l0h=SFkg>>XQE?>GHW z#X4?C@Lv&kR#1EXLvY-bxVF8{e#f2f_Qg2!s{pl*rpIgZ&oSEO>uPrHv9T}TgTa?V z6i640rWP!F+18HaJ2&MX`Ps;BFB5u}k#jnUWL0|ZakosZ>Q-qU8cTwVs_U3=}YQYaT#~}24D`lcHYvsR@*mN z=a)@Hxm@Z9rD1yWpg)biTPLt3Ze!c$ZRSNm)%n(L=!<>78Q;B~UP@_S zdtN3vk?@W1ShLH3dqU}vj)4{}SLE_)Eif5P9m%$iwHrx$!_xV!%>+=}t3mr@%+D3x z7Z!UBA!|YoW~_#e6=3kZsqUzOyD%H`%DO;M8Z|t+tlpMKaoL-YlwX zMx0IfN=8^P@D>=T#4gwND!;s%eLX#O^wD4{`c75soTuyWQZa^8k31ET%cTU+$th6P z%BlpL)Y6;r|4@NClb}Hi3|naVU=C=^0puL$tj+`FT_ zo2UCiqYSfMKNBf*TWux%gPVC!)H^+GJ74U`U6BWGk~|krth>P7?n37+)HW_Q(MNmV z)&HjdA~k_yOFDy)$cvHH^v+1yGJV=tOGmfa)psw$W*7g&Gmwi?O@JZt8k?5OR>7`!d734j*+~Q zHulwICFJ9x4WUs9Y`ys5*0cmlnq(kdr%t*>5+D>rn9~z+%oKY$a~eARB2-8m11H_r z9&KO;M38C$K<86=jnrP2gyb*llrq{h0%>wg7zKJ zRSlN)ScFM$?1sV+v<21n>wgW-@`oY`*Z>Yn1p0yi7y=x8!X6+M{$&eb6rc-;R`W&E zO&E4-_yR~NXdQz$$7W(;GV`P?><$r-I165YYst21n>X%TQs2c z|4WpWGduU;{vTP#qb0w!d@L4?L?D&OZ}R)&GQ+*Es5k-T?XClji#-$yxGCMOlDiiG z0wD(oR)JeyqJ}O|w2p{TS{L1My+?HNm!9JTr_P|60-Z5C<>${6I(&w_fV+DLAYG=0 zO7(<*@MPtOg%MEp+FyZ2=kUMg^wSpYRQ`d>w#+iVw-LJsylRgxSXf5TEoAhAmfLb6 z`r(J}z6slnQWbD1{&krXeERfs7rDi&weyP}ZY{p_d;3;yiVLdt=<}EVUN>Zco4%6d zXU2gt;^Ub9qxI|mkgXbg5Gp_j(|VCRdMx2P^VS~-t{?pCYzyOdw|B}K3Sip~iPM-^ zwv4j4O-W5{}TnbMO_130Q45U5G_=P=(gS=>GQz{;y*4=!uf`x?0LY*0MB(-xP{F z?H8{H*UdH^#{V7sJ$2j9o7Y9!53jmk4zv=XWdj7ol!ck`1Pp~2o|lMbM$z;!uk0V= z3I9GN?VTGoZ-;Q0{O$w!p0lSX4)_z7Yg)F%0C+bl&aGwL^rJlOKuwl`?)5*OZvys1 zR3SJB?XvqS#ZW-)01!I-WZ-f|Y;uUMrTY{4DK5gvush#mp7xCBwXz#Sr@cK7sj`Pc5JSnWO>BxVhm3TNoeX znsO(xS(Db|3!af zQ#9dQSnFyGPq=6THfUr5=kzCrq~e-?>Y1L$i|fpU-!H{XuK3`&C+%W=6C$s$?$GN$ zrj4_?VKcb$q{QwYIvCjAt9+t6_zq-nAEO`aqrV;K#e9~NtP3FOzB?!!g8SgmE7u&aA+>DSvXq@KkI{0Va*F7R&FSG*--ua$rC+vL3cCgcIMx3?_Ae@+tL@Gw zxE(g&EVk3Ziz5BOl*ROI?})ymeECQQ2d*0)>EIRj=|}?GTvUqXw=WZS{if|$)u8lI zv$=^BOA6_c;Tqz+EXH}mC!b;L>O{496l$iN*2szsG(kCDDNcKsyTY`pJ;`?K6}crP zf@qZ6Rw72orn{-6J>hPn?AIRS=Tr}q&}q@T=3e5yeDCY^70 zWdd#Hs(I3-Wx>xDHxj$^ml6sQaPwJ{FT;~7Mrl`~5e#$@u_x%R*9%EBN> zP|jcq14!S2dMu)>#p3f$*BvpZCC8?efYdx|1uTE0fkXWuRuVEz)x>f`KRi+v=E_YQ zV$|k6vzqa2T+TGr+;<8=xX?)C!EDr06%*M?p?f*DyqPwdd_Bf-A#Q-;*e90?6(0C? z#5T#*QUT`f(IOIr7lW+GsIEFY$=x7#@WO|!X6)b4441=!U$uV}VDI0Utm6^sY@OTl zVp;vvOKH>X{j>PX-zyX;ED4s)nK9LrdcP4}mRY1TLkNZQVF+cJ{xIvW%kA8}7@pWB zyD!TE4)YNUyy0(0g=QSH?$6Eir5-I(*|naEI&4}QUZ3=&#n@z7Nii~;R8+-~e>gQP zStwNT_RgVsAO{D1<;9PztTD__E2slCgYj4O{Y{OnW4ns-n#=gLUq0j47FTN*o`~Ap zpj|sf>bBX&f6nkSP~PO=*FGtc)hWy?&H6^JZ9g;QW<^kO=VV6XgCS zs+N|BFB&1+@u@uSC8~Wb2_HR_$mn6Rk6zx2u0J+SX|}gWwP-sLs(xo3x2prZKtb5Q+K~@!`uDB&tYexyE!-USSMY|dpi%0@FiUz6|X5Oj>66R z66e-iYn9$fj_JJ@nDx>k$%-9KKhCGgT2090lW9DM#*V=W&IKp<--ftYc#xv_?AYne z)^<9)%biy;#}F@|M*;-u1{ zh{m?*?odz72GjMsn~r@yd|qH(p=aN4XLj<884rvcN%vW3`c6)j-O-?Uk?RpmNl6I+ z^PvR=1(hZGAZFHxOM&bkn)6VMBQ z&oTx4skd97o|%wSP)`r!5nVcwMqPh_!V>kAhKC7GWGuaWd@YV04~N0ZFd{Kq*^z{y z`aNR;N-y2c;IYkv{YimG-P8tL8{D>XMV+=E&V}M9+v--iEb=-IMm~{`y?)CiU#nN{ zzwzpbu}}gWfFkAK+e}mwV{v=e#`6}KSoUxaHR`b2)#g%~^GZ@?4&I!0t7Y`^)Z>sw zpW$%K_++)CcVxp<3NFA^;`jE?K5W>3vvB17)nH&o(X`q$7gg2aAx6nzxJz3ie#{3R zld86{w~%6Cn$eBxuh^h$7JE2^@oi(f1g8CrhetlCH`aXZOgi;VE^ZS90{May=>rgo`V?`mndlIl=7dgDjG`w#8b zq}VTZ(sNzNO07?iU|j;u2A&V~{hoa&JI!VN6s~4@rN*V#v}|Ni=au?hM(JoV&0i$W z=y6;wX18weE0b#)lMY1W99Lz}nhD%V7T7X5_ z)^RUjb|UIz+p?9p)a~FiP64G`Nu1Co^7(`8SeS)Gpn2Rx=|1(gxkb2A{FfV`1 z6=7RdH5MW?Sln-CUp|^x4u{_P!Q+OyWZ5^ZuwJ_p#$?Eiq;j z{I-*Hp!}gj?M8*%A-nfXIgB+K`d9*LVt(V$qG3*(T;txVQ17IrKRv?v{=-RapE^Nf zUym`PRQv@cLz1!(>J_R-k(EY&PI87ujy4Q{ggjSl_je-ylhwf zC|~)L{ylMm^Z82Kff31{wn)|mLEEsAzMaGws;yXDQQbI4SH6@J6O;t!Rl`D4iy~po z3t9isZ~9x7W!i##=~5THD1$+L&IoOkUZfFgY}xzY7zx?z&TX~P>-r6Sd*)K+eSX{D z^cgGyR3Y!l9y}~uruOM_9-F*Q>P2)EF&e#c)hBZ1RF_^XDOR))mqQ~`Y~@oMzwY_* zz};P;58|4*)cTcBhI$@j9q(#!I2#xZaqZ;Q`T{4zvGecl8pVj#czADfZv|!z^0%$k zAu6EjKK{_<$upGO_?iC%X+iAvv$_|CwXHr$9jzL~mrC#-+binPCQ(&cnjIUKfy5=K zRE=%hg~ba)Yw+RU31kJ=9feiH?;)I%17vltzld<^_t^5ZtXeiC;qvdqheiZ^;)d$Y zi!?v)>ishZBOxXgvsMyNQmk76z-$VbVA?7G#3!N-z-Xw&O1`8ZQzsU+**m!5RUQh4 zdGh5hU7HIBx9s~(+I{v{Dno}%vvrH_aYEmJO$q_a#c{c*YI^Lr9s zLRk|LZ<$ln1ma^fw2GK?S^dPc^bLoN01-lGpa&h1UhH)BSFNbd3C8x(s+$JQf)V{mmB=h5wSp3AdwPK-gpKg@8IgR37 zr=Y_92TtAe;@L>``?kOBn8vl@Pkcm3ZrFcsSIx_9*cgLKW^+(F9|n}CY@rrVCN!6p zXHLTtmcR7Khj1n?1U|D~mm+#~m0G>BkkRe5*&IRp*D~aePIZ6*#0(hN>db-I-_U(T zi`X7**LJSvRB~lVYb2cHh>)!-;q`exR#~DRt@qss4{_4pieI2j`08tR znHJSb-bakEcH4%wu*Pq!l5xHM3&dav8SuM9O{q7$n%472%vXe6%4uQtG6kxf&b`b0 z3aQLBk|uSWY&o#ENsar1ATEmik~3xQt=q*o98l9OKBm8UHY zZ;I6!@jnPX?n)qarInmfdOFGY5#A|5qwN)Z7ilWrt!)utOv^S!A_GM#admK_CT{-; zB8Y-9YrB8<%Zk2ajJCeXa3l~PCW$x6xr~t@=ihIZY$R{1d=TOPuBI`$G5TBGY;FB8 z6t?9z%JNNGxY7{39R%Cur!5hs;;2&AQnvT3cB*;#i=w>>t{fAqdvwH?&u&8KPiet& z*b3n=(0b~L9q!kEMky=jJ0j;`=St7;5|W57f;y=m2A7uAZ|!w?K~iYVxW4{!_416M zmJ5W8;i%GxQd1e*Bl?a_A0zpBCQ(GGq-{=O)v|Ij%0z-uex%lcvey$r8>d_RXL)&5 z^*1|oZ=`@vBlq>>?ipB2%T4RVEp?3b7k=SaZ|_lXCp9t}3Yw7MIg<{RNim=Ip6!}L z`H}}e4V4S_Ygu`S1*M!2U(#>me-Og`v_3tg zZ{qdT;QntFcng{Ogj1!0BV%>;23M8a_Q!xv#`y(X^fW8iTyyndGl(a*US^*AlQ4(l zi)?s%Oq+PJnb6skY_6G#eQmrrg}d59K%%aCKah$~s^4|w%hbz5m>CwAa%FL07c_#Sc_eQ^`;(CUl3 zQZZeD^Lw7}2nOq;gS;^9S5~Gi=onFku+&QMU|s1lRY9y>2tt3E0&aP5)JtopL=gQ2 zWOZKDy897n^(*;w9*j1ts*dc5@My^EpY02ZMnwwW0|R)j=O{-8AVi=1|0ZijHYPm; z@pS3yf2La5krxST6&k$+HvZB|exe}lz?Wa`1D$BewJhEoK7ng@C3Idu0Gv~MZbBy) zl4^L)LRCHFXY7F`@j~%m@-F-YRI6Wm(4P=u%;l^6@ugB~fJ(El8+d*iMB6L}VVJc~ zx@pnb{)>pV)h^>+ZkD&;xo$;t$&u>+j*kU)Q}k;Q-}N^~r=gAatN^WQ+;*lJdzB-} zM;>Gx8YYGREMg$)_ptO|0`E)`sn=$+RS#;%JzT4+p zzw@zb*-|0U%k+uwE7_N#0r=H?BIVb?{Da#7TToK|rFUG5r#qeevt242CEY`(Q}1RK zasAPgZPWRsDUPe~MG(XLy&v1sXKeBiN%S2T`6bz8wv#@%(ge+|1rz6_`X<%TLEXXX z1MXuK2!kif-lMN0T4BV^kJ+tbvB|GOMj^)t!FPdd$Pyem~ ztuMDYeFu^S+XfAC>!4@ooMp`nBYeWh^FZUzGN@~zT2H!IO+fgHftVz`lY|#_LfYa% z_&gU9xK->fGs;0V=3F~VAu|8Qn8X}i8-ArG#%h&ebDEC@z};vc3N-nSH!FSlfJfCx1@CRXt*sF0I!Dr?x;J zre0>7dphQ#C7-%pJla@jOT~Y`Xz-+H-Bu?PR%pOmj<9KAw`sr8%$R{DX&i#8tEvc1 z;qvmb^ZBteV5Y@`YCo`S5rZ1D_Fq>IdTI#ZmIWmz>uh1!05GP3T$g(Sl-*UpH*y;C(#W$p?|ol0-$U7z zgU|=uzbSkBTbQOeT|SNtvVWbM4zE^XpfaJ}Vk+quHK)cD={rQ88Pub%cPsnSHk~4W zsRFnN`}`0tg`bwcP_R(P6A)6$#X+JVC4(;0*k@xM3%lH7@?o&~*vfA|O84D81E%A~K7}pU z@@ElPj;W74q=A`L%w?khE3N>kXSq7);BR{)vl33J1A7NHkrL|u%a$ZqRTfh$?B#FQ zuLoxnE-jueBRZ$2v?c_r(2$vvI_S&Vl2b0NT?xT9?2xrav2V?4O-GyWY7B^0J1_lL zAML@Vzc5E-`SowmAoN~(BPVCoh+(?Bw$B&bo3Dk}N4~UpgSa#lYR=vq%q}qtvN0qv zAA~Fj^_G;f~K! zBz~*a#92xc3+zWn)uV2Vn%BQ(m?~~xD37wq_a^b#1JZZf^OC4kJH7I-rcuU zF4GGiLJ%bX_$YQ^1>(Dkh53mgO5f>0OCFY#RQ{|pE{c5TpdNUj`EhpHs%f+Hje?J3 zX>C?%*~5K1!+uSu9RWJ8AJa$R_BFRF#1TB^6xaiMq?hfv$0*95S-Bi07d*Dpy)vpf1Kc6l%@a%ri!Pz%Ts@1`vdK*Wp zHB=G5v;Y^9+IY^^zcksK`|J5^`L?^^<(W5^(6G;xaREBlnsnK6{QctaA_FWb8I}Rl zp$$1b*%&+6Oy>7Qp0P)3A@cE4QK`*o@Q3|hZL|h|dio|(TS|UxK$#rFKBc8Qq)g2oOw5d zXCW%}fWRrfMD=x-49Y7$9f+Z>-T16eR<-w>RgJ7K^lgC z`2eG4TaV!mO+R&PcIodyp^92)RGs;`vUV1dTQ{}?{Z9iLpyiHc1Tfo z<fyDgNs@eQE9wa76N4RHbKn9rkCdgrD#3W?nFf zqSLw9yQMd*R83-{#~<3EnD9A4ab%52S*e6!AcIj}1d5}R{rpcr9E%$cpniL^>4W8e zt{4X|?3DrMo;OjG@{8)>!p1JqSUA50DQ)SmgdljI`UodC2z0eIi3 z0i(g5M%0d4$H*NbKLwZ~*3+7l5DIi=G$`NW#aMkMablS@M?g@l@m2kac}K~Eym(Ev zosx{unleHZ2`AkTf5xw#G;QSOcw8EF&3(`EQF_n@r5Cp{NnjY&i^V)3`{8~%CogOn zr9@{K;I7Yuhu#9V1ES5oIyI^DEtyA*-ODdu_2yLA2l4cbhaXc#PSrvfS5j|b$`6?p zSJM{l;?SITUU^x5+(Z+m}3h>i6!ypZ70~_*s+{ zS7MWOKy&9tNG8LBAtmml9d`1a#H7}R*j2+zzA~hBm<$V&@tGo`axLE!c=5(aBwo)vPAU$I z9cD`Wf+rZ|tz9^=-!LOhC~#3@1TmwWqk@Qgj=mi5DAO*ChN*vbH{^i$$wkzR+lcj_ zg3@JDxZY}qp{X_lPGnVEIHs?Vv_FY02^-m>ow&c2c!my2ePQh44X!}xN(O49LEkRk zT6T`I`0!x$&`IT`h_ujs)ef0+eA0Qlz75GpV>Mf8{)cMiX`ZB z(J`N$TBZ+CCZ5_feMwn7nbDfvx8SvvzPeOWu~?G<$BBhH=E*Wu&^@`lD{d&iqHbm3 z_ik8D_l4rTi1aYmpa&7j1YNHsqfbHojNOoW5eZu%?3EuKdc@Y`P6pF@^gMO&(gc zAv3dF?Ogo5$*=n_Fe#!g+Hbdu3a|w}PrrE&CeXYAbcO8(1hH8%L6e@SJI(YJ?a@J< zaOPzk@_o2K|EVj((@Fm9lc@TgNs|%})knOdO`b?LZthY5bI>v^wa}zYcm0>}(X$te zt&1s{VAAEKKvwYM7#`S_ckvZ33z2BmLIoRRk}2~QKbe+E`^~kHYq>5K8v8u~SzJaN zU>X3cey4e|k;SHq(}a04n)^kQZX}iYh}^$nT2|Utv)(i<@`VuuBdCdSmhUyjv21%7^z=SqH5xy2rZTp3_r*fV&le zS|-FCwKZl%>P_+H+|~VwWWuj*Rfij_2vd@YXXA??RIqtl(~16dal5*Kat#cL0Bis& za8RI@3Ai7z1IxcV{Hqtz*UrKy*RWo`oErwjlWxtQ0p@ zn=|y1TJ`P#ncV24Wu0%6xj_@Z{n>JL|C!I0$ad4T!}4!)ySDyQasQ|KZKZ>&E)>@H zis=ir!ktqJod4#oWY$*Y4U705o8zW-9y{Qy{sb3KNxML=hQ@-pYdgYRvp{m1{^e2J z4A$F*8wNZ^NP~v3txZ`X($0!D;tqZJTfdMlZ&caEv26UGKn|-{ZCh7vZC95_ZU{}6 zx6S$IX}PpGE+mO6-W^9idt_HEy)>*PlICw>K2{PL?x$^JM!#3YERC*bXlT*yO^6%y zFlS=`B1iMiH-cvw;t2p0N8JRL{yk{xDJS@%u-?AiK5nF#r}erz93d_}9A|G;(BY)s zPw5DqQDEA52Y;R?uh`eLdw-&}YAUA3oA5+fJH2TA*`Kb#BVKHkG-1=p8f(9U5gjzC z=PoPjb1)A8Fb&WUVK4A35T4y(W$kLPro{TWx_A3Md1BD*H9N=o={d(AefBB7StyY%HgH@G5pdGn0XjbPgUARJX3!iWtDhfl zK%4jQNo0?2gHsPC{UW8W&QZ@&1;gs+0@492g<8ygd*73L>LrsiYo)L6dx>+*Q^V1S z8KhLI0a1UhLDOx6$fTPsE$0=bN6Y&X7quOTt=W0;Rj}?=A>n?sjkK+6#hLi0vBFE$ z>%vQa2ZDnsIwb@$OVw4t{p=06$6lM2u!g1g%CR%pD@}frI2PSawzSA4>lPu)ccxQ0 z0sgmX9h?Q0hWmHCF18W1ZHGVKsU;{?5uZpy@7seI70f&u8z)Ta6|n?I%gM?4v9J&q zjoHwt{U>&Mo-?W|^5H&FpP$XB`oM&rEz1zUmM^i0FA(){2@%#*nd*J2M=F1_;H%<6 z9n$FVOa0fx%#KhWRXx2UGnvF2A3%mb1^op3{8c=5NsYe$lRfm#wmF>Rj>8+chx`#I?$ftRAyBQG#V+&P;)dD%}>#Tra;4LL(*2jb|HphGcMVL zsHQ#~l$~;hai2g&>lpuh(GtS*0G?U;;Fl&qZdhXhl)R93DNSSYuw$f^fFpF4 z%%CxWoFr@odsNf|JKe;u?R`Ayy4U#^sl5n1z8V~SepH*YTKkhUqjQH7%WY1^tq6?J zL2qAA%WNlWH~_K)&7w&Lh!QLCBj_F&1&^s!5T0yy)~h#L@+RDv<@IC`2fcV zmTM1Sh3Gd=WX_%!-$Z@ZNnOZt8^p*tXx~SbauTqv+u~Z|yb#FwkC$3RaCv#TIoFmA zsO6*gpNB*WTY!&mH{FnMadw12B1xPAJWopP(YM3zrG5uPoGZzK;l-*F3+&Y8vy_rXjp= zUY+WUYbtB63pZ<()RB;I@#kgP$zZ_2PY%1f8?RSj$|-jKenL}+95d8cF>;XyRD{AR2k^EGq`diMj5wyDD z{;i9!jqru6xq}`LYGd@JH@^D*B^+_-(`@5_6x*Vfv3JdKe|;qtK}~7bI`IG=cbKay zd_8;T&id6v6RM%O2u|^U_SxFOmAO265 z!ootC6Z(IFg*Wbj5A^S$aZRak#?+!Z6@Vnos(VI^2$v2xf(?c1{`B1d1Cgg7bh6Cj zm`h(J3toXFe@lh|V4+~ZyrAgZwK(qV#oqgUl~q<>2W!fB`zQ4m&0Ky)=^-T&!etER znx^3{m!)NgPMxX2nug>08C!}|>)+Zr20Qg}I0AS#8Xv#XN%FcRUv&k4!wR*J=IV?8 z;I8^zclQ8dRqxH9kkKa|p@HmJ_VBH1)mcm{RjN0btLADY=^8uCqOk6E&G{ulJ;#pw z@+WFrTA1z4DWKy2eN6j+qtZ}FspQT~#+-f|tkj)VhLrf`IuWYECyTvABL&HQM?6l+ z8WtzsK67LAX~e11A!d-wbG)#9uGABW#rBCD=_eVU_Yz)n4MC4-WeMLr?u(&NJ#h7Q z^$}&lru;VJ9jXGico+CQaPAswx%V?!hV@mHt}`J%jlhb_`G9fPm?t=Bu1&jFj}eqD zB$gpArHD+U=i20D=jG?JH;1m_d{lbtzvb&ZpO{b2KxKKB_4l?A*<=4Hbdu*L1h5HTkxULV|0ZvV#Vd*tiM*Yi zkkn~#VfY05L1*s9nP}ta8R_`cv(Bs75z8_1_NT-9nIW_L!YrWC64U(ixbtS2#_RFS$W7_LF zE}f~h#@%;Q8Df;4opGmWSi>h!VOX=SjcJ4HZ)DEsC@1eOtqXI%4tygYl@#5$cZMO{ z&tCBYGApv(WlAzjqMFz8Pnz-Qkpms;FNdg)MOi{w$S8YBB3{FWc7We31q1M;BIDxf ztYhNhL^Is!j;YjK{fHm-8rE;%udfa--6yir@rf>Ul+ty}35p9}%i7>k#)lw z=LPP#B}%?a=^VQIqTiR!`anFbg_clSPvW{ z)GXP9}#mZb^}87pGJgA1E_0z(kVE*d*R|Svv9T=)^Hc=r|k1d(s?Jp?|i8)#g#vwurj4QQrh|0 z8LBNqu2T7Q&WDxX@)T?Q%-^x$Y4(*_>Yg#hbGv`0ANC0zziL_G?7q=o!tk^y`wB}# zwU0B~v?U{BLu7XGD(apcRk7>{W%m{ms*1kB>^3AGo80p;v%}(`@|fd(7Wcx2#w{LK z3^{ZhLcU6Or&cr2?XO?j7JV9sp4pl;?cj%NAvbiGpYE-SS81#pPWx0=MoQyYwOj^@ z#m#*v@+c!FvBaKcOOjj;)8$MYzqtVTFbIo}CN&8}rSQ^gUl zn$`CqmL+~x+a)M9)5y;33)^=m-a4nT@ktd`HaE7|=PRx31EvmrjK3rancIB%lL30wn~T=8xib&$e%JdIpheXmxrLa%ndF*9fHn!u;cejWx+zlL~s+As03~4TALq@f{b?&qPd)%ADJn15eSc>SJQ;n+%vk1i8<@HT95!Rb zxX*{;Vi!o7d;0noKoXOPJ-fujut8AW@@q@8eKT@x=oz&4_dDaaupH_Q&<%bL8wUu| zF6@F>8AQGh!S!Hhc(^{*fC@6R(4U59O)*66VPdr72Cp?daLEbbQ1ipidi6DB5Y0aa z;CivD*|eykh`~z8F-L!X69zmNckbM2!w^mOL664nOtvZrMi)!|0n4~+VUdyCfP#FS zeQ!gJFyL$GM;{Sx4L!kyYaD;E$1Ofw=7ZHyviB9#9DUI7+Dt{I@LY@bI24-$_>5>N zWR6Ymg{ksE)B}x-i%7q+fcyJD+UcrGphD<2f*XY&u zLQ0mAgTuY2G;jiSRie|vb-3>2!QBWlpf@_)#&G_Zvh8_quiT)~{mJL>;lqcZZ3=m4 ze|+`VHxnDn%F1ebOG-<%A$5!5do%Q)AdxGIWRX|(0tUI@)JndXDClYz`;I|XcN~Q| zB}Bqcp8SJ|v=L`48g63ELv~6i2A+jH|2~;uEvyC@PTd-AOy2@+@A_nsb*+#>8b_Vo ziQ52?-2hxztkw3ZvCe|xzcPm7k36?#;?=Ke!wTI6NC-TqyU>N!q}rTuesa%L?YGse zhmz$MBZ=`1rl{{&m1Jf590|~=cx^^jU!HD=;~6=*tvjzz?FP^{JDRuYfa)86#F5WX z9>=~Vs-f{>l4#0p;^*flLws-EydkRrePkkMj&P14DY7VuNfq>6fkSwrY*2X^rJi>W zuYk8SKR{qnXwvi6TQk9BgHF)$!HL@|+q=7Aav7&r8y^IXXd=-IDNqb!KHTdV0h^@X0v~bMuale3zQAC&|g&MA}++=vR_^p&ReI4|g%R zC$M@;CcjEgkA%1&F(ZJk`=u?H$&$m!<|_siZv4S(kAr6xB_HD}h2f>`5TI|>Yk4C8 zO?$}BzGXJHgw-!FIk!^2130{hqK5iz2W^$JA1Ig$vHj+xJtaoF+WGkbM-hR-q{r5_hRG~5ed4upk8~MJz)C; z4NxJWAZ$#;Q;S$ht9*iv@o5N3!_$W?HStQ`y$wK8*I?mcE4c|D3DdsMlL^_);SyBy zKXMlmEqbM~UOwO>Vc`VV;E{K=wSFN^^8tV^pzkw^3f<5K&FaDk_&? z&IR?y_Nd6<_gY-=;TD6!A~kwiahKC0oEGN44OF|}e>)(EOV{xbI-_y2LeN$g$C;3` z>*ydWjF5g%+NViXKf!(o_o{-jvPTF~w|a5x_dFFrKvIV{4O#o}R!D-k+WbsyF7ccM z`j!XL`wtjS>}$;xMme8i+)Vp0p%W6;ZP=q{aakf^TJZF!UDEqCQXZGvGi|0J$tQ%> zbBNDRqhFzAo@s8o_4J$icwN8p*RNl%4G9f8VX}egBY9ShHx7?q5^9c8!DOSWu|AkV zzkbB5BL7*QHJP4d7Zhx$+q>-wUtmH;-mlUCoFRs8>6ep3^gZsk20?JHC1A2c%3I)^yw zhu@ktJQ6C+_cY=!=4jn6ydbx7{@gdr8!r9GU(VQ~j~xeS92K7W7W+YV7*CbqV9YEn zy8=yembFdRs*zAf;vhnu8@9#Dm*@Au+apRLA=vEW07u&+& z?p9rWiH~C2(Y35i)?mE!LuNS_HFuXyRl3kv&+9?; z_rU?;ijgA)e_v#|^SF4Iu$8?PEVV$yfmPVUgxq=B8*o4Hgjwh9+shGOdWaxC;)cU? zw_lUf!rVQNFniPIQ9GyjtvFZ43eF}T%kB-|Dt|XfxU`S5+Mp&nsRK-eo_E*El{%PM zi^MNx`$RKmedqPAYWLBZa$mS>)q8WfZa`bDt6$^g7b4ZhzP*{s?7EG{78_PQs z#`fns+NP;&3tl~LAS_3Vp7jVYsT-6d7h#$)PChkxY-D%KGp-718DSN3I zQR|iA&g^Bn$6&Bx-3!}CI{BPi1`Fo@@cNp@9QvK(fyR%yv}zry+MPWnO;+@0qbm<= z5*B}^J;!tVOS#X7_k1i(x>2rd{rJ3N>)0M@^3`fNWNS}%UtSrkCsB7hm-~!il}$!r z-Cpu&);`bqsZzikwGyKBxBUF5zJLE-S6_c=)3Yi~i5i`o>oWFA0q# z*S~t(=JAAQ#V+USg0-oG=B{^DWxnuz^XFXRHZwB%_*3eqi*?w9T&|TdNL~M4_giFW zqO29)S8pq&-t_E7#h7C9h`9=1+}e2FtKPjXSZ7Q6fsxien>Rwel;xKqANn>OXzO8Z zc=dLCmWglY)z&-piV;B(pDiDGja3bPeh}flT$F>F@6un3F=eyICrR03Utf89Z$%OD zdN4jv)>D-w!r>yVLddw?Wfk>Lz4M><**yxNqpw}b(@okET@e-DtD?3D*?)uc%uuxEnKNg; zU}RPrUO4N0iV3fQM~{-ZavPsf)~$~p#lDX;OF(*_Qw|Az@_iQB2*?4DR1-a@ZZzQ; znV9aTVkY#;yIV0W+)+xup~Q^4keHu>JqFgOJEx@->Nt|jLYe;y&|hNJ1m{;WxJ6+2 zk#u>e!Xsh|z(iy7R+xL6w3eYQDSG{SPU5vx-{9b~B<i7aq}RM*uN zMGzK!MAr^usRG&XhZjytg;8SV%k}JDyh!qXp`m+777lOMZPL*yZ)`n$*c3=E&4t1W z;%xmb*++;|$M^3x-xX%i;(bIXpb@8GVQRVcShy2jKPd()7YGwhELOU+~Jn$#z

mpa%>iBl2B{`?YX>Cf>lu#v1M&~#L_5MCrn!@E;8F!Sk(K$f;)QNI z3UlWtIsRC_91eb~;g}H99^ew)k~2FlfwT~|OpH7{-Zz)8G6$s-E8+yo!ZjNZ<@cY+R z6AL$rpFh4v66u4?OxjZy(aa#70T^GbKf5jL?{ws&QQN@4C#bo?;+Gw{Y=LQjr>Eyt zSSlYpc(C9v3Z#0yq3*{tVCz6iAJ}?520^is_%{JV;U>N;Cau!QY1w#Gs;aAfP{k6j zC%BhPqkbaR7)U+84LAD1zxS14Jy)RA3Mu9-Bq2u%LEKQ_@kVTl3wJshs)!yyF$+f8 zI1&iin2YQ=aQ~q!SK142G!jKhf`tNcIu)2>Jt{@EKGJ8<+hXweR9P6j(~yKd5OeYE`-$ozq}&xp(hg*e~d=KQWe43FLr|jOTL$f_RjaN~wXZtkO8pL3U%;&6bX4yl zL4Yr$4#?;Y&O_@4$iZi*B*0B3c1m3foUcPcoJkPLB zHfl&w$BHJ_8vrD{qbX1*V^qES$r@hRJkZh8L#~?ZUf9|sVQ%e%x)I(7`@I|U4EYrL zoK`M{&#(c`z*1<9uhiAmWpJ7`3+xY6sDxhWLDe_d1H)@CmX(xr0ogc$CAAO!TPxOW zr_Q24d4CE|W}HF1ovrOTu-sy#We&hxK%Tg;eg1q7Slp@O$8RJ`U<;?0hzq|Mdd7_{ ze$F>2NJXFfHnxsH1CIUs_xpV2GPkx)voka?aSsjc9X6TEN#{s+Jy+Pk_wAb}<(!XqM(7mC9C#&vhptxxk?i>1u((0DCkwMtU+5BF5uU^!apSl}9^; z%V7CEg(n0YhL>Y<6nJQew?k2pGt6QKE#*IYqc zk){kUP{|+$13S{Ud3lHjv{$gyu*Qh55!PilwrIXy0YSkpz^M$FtI#M$hVrK4n+geO zS=x^dX`1hiD{$+Way?HMQW5f~;9zxqpAMZ+jYnvqVA3twZQ{|*%FO}aOXS`M+fl0- z1a8SL>S26)b1U`m#qm3hVSL#PLE?4XCWl_kF8D5H;9}dfOiX0Z2WERJ8ETu^{do5& zYHpqNfYiuh$(`-y0K(PT-mV@rAb_onme26&QTm6GTshM{fh8frA*&c{Zy@q&n3$Ar zkvaMEd~NxVpI-reu>Cn{s@e8qC_0FFV_<3{ zsdt616NnYn+R6^VGd{MH zmiiPQfkJVc`x;VXI4xDapEfEeEG(>ZkVnYacC7bBzj?;k{EG8KIk|f{(m9L|qu@Mp zRA5Ft`$ggJ1X$$$L?lh~1Y@8}*7xAbdv6 zWWcZQ(g5wV*C&Vf-{dPw*}FaM?DKxQXBKQv;srMT$g`*!l+sWSlzpSnbgd-1gR?wD z=Nql<;U2~)>k}d$Y)MXUF4c59P;TYCrqeGM7?yfHC`!Q95Z!{#eXn4%?LnNLGY~q=rpLobt`-s6HFE7wZz1i-WW6TTv zvWabtO^>3%oZ(2p~l|B71yK#J0`@LOS$|Lc`6&#cOXDjZMulzR9CfziBnk15@rmrUZ z@Pv{IP;c-{xQp4_=wSyw(U)f{&%APa$I_A~_l!kBu1w0*O(t)a1V zbeew$?~=RZ>98+Xt6pvf=zR>x@*X(nBF+E&>|M3r#Y_gUb-H1g7v=3N81)nvQsjw! z#zfK07ka^uKi16kPw`|F-cKS4{SeC;@nFbVjtn1`Kc?b>;=4TIJ)~-J*Mj$RHiC9ic zQSGG3z^L`>o%}>D-TRzl+F-9D9r0_pPptdJ+Eo2Bzlu2=3G3hg|Bu2B^rL?#S3DWN zRC@JOq}-|}9jwUp_{C+9#q5)s-unNGow0-x$?efeuCJ3bMu;GYyPw+i0Jxt*G;tG* zK;s2^{w^22il{T=N_4nUnq2{+4H<%DWZtSyb5=l(L}B1X9DCtwSnD9f=;MsK{4`*U z2|eEW@BU_Wb({WXc_?f)qgzK^ka*kFxcv|#Rl%~y^QC_9+^t%FWsWc{IPR{W7KP;B2rX_r9g3--U;&2Gc*)BvLN4NaEz>pLe*TUw7#GtgUqLQN8ue<|Io-{6Z{D)GpqhGc&-35)CS3 zI_XnZ>_>F}6F%AeBA9cWX1N?V`yT6kt{ zP^fUk#CT*|d;64#lVoq-b=yYkEP;l}P>XMcQ>AZesWVm5gY zI!*=lx%bcJwl}@WzA2t-!ykPrhJW=n9aarH8zIR$ZrL@1Rn62((D-*Gw=_Ig|3dy7joKA0fLP@WPnhs|ZQgUHZOJai zuKh06t8|Wqgm3Vxr4ul}18$vWpD!zdJFeNczKZ1-B_W9;x*(v$MWwpKDGrFk75r=Z z+|22Ch3VX%T{HA8@3a!ij#j>V&OzQ)01fkK@(D`w4ePRA-vw`K(%VDSoPVy*R^=V+}9HDqFIImvZ4 zZRNQ0>Wrf;*Ft*go-X!g#xM7vx_q#C59?Docmz|EtOo~r@27R zR2a$Bny4cfAbjGT(F~gT@wFUXL=pJ9ppV*(Ml%JUyUc%;$LN@%=2*RceHba|>t5Z2 zFB58JGAFWBtS6yO7}$&21CGTjfma7w@4=t&2>e)bfV1&T7^UpVVPA>84zhyW_EdA- z7^9UrbLQUU$Fef!BS#t|*!M+7?`3qjx@B&y4KHi7xWU3zdd>S63}f;pD4WaZNs~<7=~3ltQ4fOm9+7?4JtR4M$DllqbR_zgseT z8fJNWVnuP##r6ud?(qxvHQS_{7?Tm0N@-kjPPemu5qQbfLv6F3UeFskDkYUdj<(uA zYWZ^+R(Ph+fxUwSeWF@Hts>XSNz;!@;8ztLuX3ctX~7XfhxJfC1uH@mMoe_V*NJ=k zzn987>oGqI>JeT8N0Z zxi>+rdCLq$>et85IqfkEtCy?xIU2d~V2-fI>^VEOW@ERDr(7cKJ=GPrut)B%_^!zK zRmk^!yklCg50e0^Uza1Zfp+7U45sZHCe5FX_|e>pUSi}W{#!9`LzAZsdcbyMIjH+- zPNg>?V|Pb84}RW5E!lx+juHrM{#&H589Ywm9*2hfhCn_e4Q#L&>5QoIE`>ig9^O+EFfyZtOv`=^ z>R$elHv6*cqg$m8Y}4PS$T1wfcp>NplKiJ`Zy{G>h$2;3~}j zRb-0?>2d{#NlB&Z@x%R{2@QKxiZrJfeLN9@zO>UzGT%_|R{V25{rO7`HqDT5M)pTj z&cf%DqlPUDx!7tL;$leU zz*d~GlX`e^Z)j}<^&bAc(@%%_s;mO5_s?{gUd&*v8nCv!m2ruVf2DY|LSS!gMumPz z#?v*ang_nwd!{`vbX`WaUJw0uhJ5g%Z&R3VgQuvEekq3Mq3{Itl%Rt>zZrZ?LYI;vPjCRg=iJ`RV0 zDJYvMDE0PdcTv^T!!3eB<6lYyQuGuUja6C=>$;`ZGzcA6*}i4VA=i&LG!Of{JSVZB zbJL3Us_K}XLc$;1hNf36HdwtL%#Vz%2 zh3_Ix4o^jj%+)%rDcr|A-lAEA)V(@JDmSr*QdWdRX1CP5nz?iDr(Jf2>`E#O?adR5!@6`D3XunWE!E7+l& zY3ba$F#iK?a_;C7cl7mrL}XnA;;(%V1MCaXwc+Vy)W5T{v#>>cAeB{t0$_AvBGh_# zymSj?M&%H^&{>CrQ&1CwV^H?z>1{rqo+qIdo6%dYR{Wc-#0pF9_r1zIJ_q@I16l4` zz?yB}0{>i#8D}fZQ!s>_{Hor!H)b=s(#xdAfZ$aSK^vB9V zMBMYwnK$2bg0|7dT3sYH3DVl-I#q7B2)4n&`WocfUL>gTitE%xV;#tZ_ zR7U`xLgyEQmJ(4?>mYZ9|62!;5C~5>GxLRjsKqYG6S-B8_r-IxBYbV@z*!<&ap|A3 z75`3iWuJja(5FYENI%Sa$W(TfN7jAr? zaX0UQGWDwCGyLlwtf$sF{K@Z}VEU`8Z_JOpZkeH5m2;N+OtIX+%)^AAXM!%<+Leqe zOW>uSMr^KcTJ^{F(c)>I>ojUPiSZ*m#d(p7eWJWvrnJ|*$Z?VJc64`E(&gFJ_D)6m z6)Ml zW~Q&z*fHP7X8CB|zpOaq*8TgPRCAm`p+DP=8i#wX*1DHf?Cj*9P}S^;rqeBB$t>tA zs+zxYCg0OmTOjxTxTGulkR+J?R$Hs(}}=Ul>o&3bzs zR`v2Xr-e1ema4R_jR4$`{Ei>sfza z{*g{ARzF#2pZP4q7o%0#%Z^pqZ95pmlKJRGbfOR)TW5wLYolwe={%!d&ZHSfy^cjQ z6YICKukFX*9@1c*Ki%?SEPo6cXiJaQGlc(h$$HLRP3)bLgOR(ZmCuJOp08G99%QdJ z*d4H!>PJeHAzQ`9Fd-QanMI z54)}_?b)he8a`G$HP)3g#c9-_@+i_OclPyx{?-F+f8I8Xe)~y3i?T5XRaxDg$_3T- z_%kAj{?4U(7nINIWHT75k;V8xp!$B9j7ryAZ05;!_ab9^shm3%-*OI6M^~|$m-6>u zX}VKheJL$5uf{cK#u3k0tUjk%&ogDC^2gw|eN{bzpA%lc7@CT7o^489HYe5z?H}9g zN=5@plqQkNG!t6KB-D87nQKjxg4OokpLADwk@{S`^t<3E^XZwaj3&+XgtFot_5av# z-jAJ#^?vS)YOd8GoDWs#uZK5wB|P}!e{!=QU6cw_f0#{`F75m01^R(i%?5EBvz~Yk zdgV*b7E#B)D)v$5zG8QttMt8D&+?iNem{yuin70P=XOw66+EG~{93i9u+Alne?a_N z@wXaoDa+WM_y{Nm=w(Gx_-`HqQTp2Y2+m7A}Q-ltl<>2ThvRwlsL znlN6D6NT@5Kk!kh%YFw{T$j(M(JPnNZwh{Kc5Fs#n+iwV0l(UFS@yijRyKAUQeWIz za_DZNT`cxVH;gn90k{)hV<5pkNQV@xA7)2RFd_Qo_Z9+Kbz2U#$@UdSB7s*IAQ&v z&}S72nndTAl(4AO%bp74VLXfI8Xy~DLXVk{KuGKd#~Qf%4!l5imcFmQv7KHIUEo^IuaWm|^Qyji?3A_YWwD0FANMxX zn68hc+@|mA_J{bvQK!5k*1q8?!cV4@;?=2jHSc%+7*DMUa$##}y0S7LwmVjxd-)I1 zpXYwwrctQ(er70j*?M`$Va?|5HonZPjdM=|6_wtwyqi%|vAy1xTJy7*rKM@t?ar?4 zjw%}5w=*|od>JTSZv?w${8an?s}WusB=@uV>vb}R@Y*)9Pq@2Ohg*1lY7eT^uI~Ey z0cCl#tCOq-FD@DkWF5f^LqRb-I@NX?{K`87oTNWujppkK6wYH46Pjof7pR{eS#2b4 z`p*d^5m~nCh(FB@hSo(I2`hSxuBUfR)2wl8E}Ork;vIJsPJ!``1b9MUJ*~!$OV9kMQfQW4_H%D9`m``-b!h(US28k5(D{5$g39W zMcwkKTi`L078Y5q2M?A}=dhwddL8}giB5N64Zc8hj{d@#g`K!vEU_*KV~FU&ajC!m z6K&kS%E(QGy$I}|$E4*c+OZEnN#)ilp(a%V&I2q|kP2Tp{ft8#aB9YN%&o8I31lR;U)kcQ66Z2zXEL9|Kb_ToH()UKU&V$ zDi*NZcA_iU(b-8b2;z+n>|nNE#;F6nLYz`XgwzfKQq2EsUGM~xf$rAtqMPC^xT}P1 z=rlK|wtfenD~fE{1XUrdpXaZ4kunqmaCu^k=^?)p%XI&G!aw5$%Vc7z)4fqriah}h zp0>`;yjnFUDQW4A=w%cfYyv4}7XMCIYp_ToECv+D?@(FTJmEKyR#f!28el#SN(|ca z@6lXE)7As`|6H<;6pCfTf^1rx5}G4Aj%9c|G4y1X^gk{pwi;-k2JSJ~zG+o<%w9#A zr=o&_2tAfG;vMEDYhk**RajV9znZn-#X%;f6{4brYgGb2#=ZE>-eA|_3j}jxcmq@A ze(B@jHaL=5mL_xx!z0ekOi!CZI)%uT;^v{HOUMgonFGCux}1KH470Z8G}}MImr4cl zY2#4Ha00IQrN}Fo8vRwus&rg3BY!R444R2L@FCJFZEHIYH9i^v^Sy|9 z9kX_gL3QX0p((f z6&kNR%h`UDiqzz+Vu6%$GV)fkw*Ya1J|G50Ga9zZhT<@Dki;&KVcPx&;9xBfg^0%q z7*joELB&|#fN3`3Y7jyVde10d$dRGW)WRo}JQeW5pvQQfrhB4#-b&&bjgk_i=nwDS z-9#WFHwAP*MNlpYr{0a0_k}`&D!Sk;I>wtVGimzT^q z)Rf4sGEkdPjtY(D(3KmdTdQ&GWT}F$@gceVm;@jILRv2bPaDo8+TbS>jy;f2+#2w@ z@(T;^&(Hn5T=-XptoOMXonM@;^C#mnqoddGW+WjKNV;0VNVYZK=+|sTNiqFu3o{BJ z^}DKjG)jZd_A4!a^cuWpj7#W(HKow>7x0b6tl*gA%>DpopL?uT(KJMm0zV+KWfJ*9 zx$V*CvhqrFEST!Y`EQ6gUNe0QC8=LOe54gmxn@(4OiYnTp=(}&tp}J+*vni?ZI1Ko zX}SAO_K%FK>wgz+K7;@$SGU+M>RfF6?YvU2Aa^gNUcNayNSl3N%)OM|ZL!ECf3QRV zKSHXTw3Nav zEAEB{aa4TxyV_-Be1@xMITiDwKNz$X_UGJ%t7djwlM`PxFT06BGA!peFLUXIHcpSq zspTz|nF0XIi{D=96J|MVx@l#IWJg@fKG%P{CxjPSq+%m~Z<78G#cwMQ1Ts7ySb_%d zfW}~w`Jo8+3)?+^{Qag3E)@4mKdezzRdOrw{dnm0z?~;UKR`-fyn6MyF7*qh2ept6 zrhilVF;t(2M1UaeAS!`V`xiB}n5pR@LS-Y&MU^aHaD>2+cZ+mU=Kt5nXE<-!mt@q) zcgBr2AH6VV40Kv&gp#Bah|qLjs5=FLc3X3TzyN!M?N0MYAS31^$VgA2@H|G6s6g8i z!5-9l{Uje?JnrC;qRuEyfdPk3$o| znIN_oV#>j4Kn}F5GuXJ?n!i$e6_N3S(eZH&bifNn**DYB6ajiBLrT~~HA?(B-^>ie zkewKN(`bW10w=g(BiTPxan$+9@$H6FYYmU>VXT$-J^n3!4zUW<9~QKGo&lMJ1gkgp z-v1&Kj#tVEj}e|@j^i~|`+g?u<+vSTCapQKN~sUq+OB}3cq!8|%1XZrI2iRYhr?h> z>Q0TegUqt*Fm;IhN3@@o@eTlk;FoVJ?OUF zfXx(GKOd0t#!u1ycUPu%<15rUO6kUKplzZ6LS_QS&FUKMa-w)G$r-B4G5*6$rON; z^zTX1E#R#bfcBA6BwF@g*nUv?BW^(*at^TLbinSA^gl$VC@}DqM@)TCU?Je`VPSC| z9W`ya_EiWe4O#`yapl(2aNWVusxRT27#jmP=8m^fpuO}`C5sPao$_sJrxX>b0q&9& ziODgDc3z=(?_dc>T5M})SD)f1mqb|#?_zX9C7HdXc6tnk|2|D7DoVL;u@cyoxrhGWLg=Z-qfW}H~>VItVo<22wixtLlLql6dX4EM+(sQL%8bgLqqGY2o;u+$2a?Rob>c-xP&djm<2wQDuNCOj-4FxKJ10YdZkz_F#a1{*FaMOC!C3$_Tf z$tVbe4T5Jp1~uy+*1jkP1cV2Uuk(R2$G^570R;sGlHZt`-st%A!hg(chE`}c^kmnL|8Xg*Lw0;Sp8y#U>=fvdXP8ce-VZIDgZ1kYR;-K<>v^tfe zU5tD2Dq|(mW(M1~WhB`j$DkyR)4aO&)qnHaI?unkHdrpaAPJh%#*G`v6N!cmnro$~ z0We|vVsZ}X{%R!iWXSul>qjdnR(?tfdZ6r#4WRyj*8ZhjCs*Y^cJ_SPO%lh_QqDiM zWf6!w{}6O+F3j@+hB=Ph%B@|T17Rh-#oh%i>!_-T6-?ogky|J!-{S=Eq{VR_FjpbU zAWJ{;kFe(;i6aFE@|7KV=iV?k{fjbH@am)0Z>I6-=rB~|T#hrAC^g-7?~lLWFc1|< zEnpsIH7DQ^ctZ9VTL#W>u(rVH7D@Yz{XAt~4h>H_B{7=of{lWVPW+|(1q9KpTel*B z#yM@@zMVCS97=jnHENPH zf=_}d^?mMiuR1TmRoc=L4B|9x7D)!1%$8;_Tb{^;x<)f11@Rb=T$3uk7lX72dpI@p z5#bkjc2b!anOE1@kY4|Jz~Go-jg+i5nb(k8fsadxpVq%rERJ*SNF9KTb~lBuwW2(kqul3eQd)CVUEW{ND&nfY-w%z4G( z=BWLgCB)}=(ayE;Oe`#GFu{c_CsGTS?4!vYjNMHRREI(<0yEb%c{a)-*M0H1ahWYq zW4};O?2DC1Nq~I4BeM?D(vK2j+z4u-_hm0)BB!OihldB|4Sz%|1ToOioCWj+!u%c1 z(9_4U^a8UtOp;Xl1BasFz3z`UKD(o|P4?WmXP=O8d$jJy(;64T3c+~n)m&FU??SiQs`)H0LJ{l} zM}Pc?L;{45q0W+1#3PEioWzTX2t#Cklp8YPje;UIfJO+a3gV0A%lDx2N;o(iMe}~; zGe9f=qUi8hWI`OxPTXy*sfuJ>88U=~*>5vy4};&4p=-N^m6bLo_<&{>BX8&B^+ECd zh(Smkw_%x>goGye`k0XUf)RA^M$ZihtNp)C&LHf4Kra8>cEeXp;d=vp_>5Vc0{5LV zIMS^$EcE=wbYw~rL?5k>k9W`F+$d%-=v1TU%aQ$!5)|ATgL(`HA~W3$MgrpA1x3ZH z-1JrBlSu4VZ`{ay=+I*XWCU9XYcuokRM`uGm;UOJ0Z~{VeA3AT8tyC5=LD^X9w7gu zXlZG|PG^cK+rS*g?&pgc*+=$qz(CxXS_G6$zx=$Xyj|-X+(}plc&H7q}2ZV zP!W*0_e5L(Hx_$OH`pYFxCzZ!HrysHM+s*hTmqvqD_l*4N`kf`u_W^#ptqs9v>KEr zZJg(U%V{M#vd1y@ox3n+g4IWcutjC)BZTm_dFE147vNd1z4GLZp%G64oH1l&)8Fk^D3)|M4S z9-;+Ov-Svz7os20kjkc8_OugOCOjIy@GghZm5N&Ea zvJfC;H21=O%4ggphG~}!xcIuZ$6%a=7A56-AU9aXxYc4f7l=pd3{*uC;8A$4Uxw%d zM=-i}L_HOr9bJy8uqy;>LpC6{E$}=B{|Wl`_Qo=Tu|es8!SUO9>5yYabM7zxYtSYF z-=;E?&0eM_~n$ZrdpH2*Fq|aYd25bl*NsWbn*5i}RnpFM1a4EeH zvrmfda`*2Img?0wDJU=&<^O~ELSdfs-B#uuG9><8ZiCiDB+zxNnDy8&2%`eDB;#uu zMp$2xL4uRf)qmkABtwn`5%m#3*&cy!L4DCFrA5hL2igk~GARBqb8v8wnIt?lWO!?< z!X-eNuD~r7Hx~qKU#bEG&%rl!8_UgPNKe zm~V&{@t>!ekU6w1$)`XDiEV-we~%Xhu1(ZcKuRTv>@1Sff{Kch_&+XjjCP>=m|{@-2n&peiU5<;gD@wu<6U@QF}=-a(xM!F zk{v)VmKBO1qE|J)$^|SmpryzNe8mk>%D7+@CmAIIP>WOO7_>S}5XwD|e$~f_1P=sT zJP@Q60`g1Ldx@Rcl@ifSK)zC!ZnAULCWa5SwNy7Stj}%QcAPAFXmd)a*r2*SD=m$i z?~duAMA%son76EqOwEPEG!v=Bsj)}T5U#^(E^k@70~_|ax2ybI-C~?CI#%nHQ|r~e zFxu&|N=R|IrzC0<_mr_c^Q!me&n$fmSrQWy2_#Lh)Xe22r2tX$K*S*y()Z$_0HTAt z^Vg0Y#h4!|!cYvGgAuY9%mpT!b)JE$4$WcHU06{!V)jztMtq9FJPoOo$P7~_v64pt zkBdc(!rDk87F*y$puk+fT*y$VkuYdIsVYb{Juc@Vhs1DU3*j8GxXK7kZVlu&=>fgE z{eP%GRBa6UAHzJ-4oGEOh*AxBxpk7cDRLJP`Tu(=N5Z+nNLx#56sk%ju>ljTAY}gA zJ|Y=4WG#qUd1+e4H=ok+^iAK8w`Oy(?5rKx0EwgW_7zw_8rGAa195p^2wIAmB@ zG0;u=J=f=E2pOD23lM%{*QBBrSLX{fig@tQ+Yb~5Un55?CJeUeChymIegP9C{-YhE?v-f;XZ72{iUeLgPVbo4C}Jwi+#9UJ4czS*(23Tr#| zY}9xGD=UVS$%H5hCbVEAgbs2bb{zToMz+TwGoY4@kug_=%pL|4mRkU~d>Fx99Qt02w*$r?5PaQjP1T5ABL)ac#!{mrVnf8i{1 z)Kl>I2>B0$`d7^JtcNX3`~CB{3}UF+nf)OG?jf z2NkCXx54tMtPiH{661j?N%rJ+v=5Jtf82u?G}z;zI)rQyZ5vCKTGUe-V{eyldPO>; zz=iw-ug{K&sya@}A6uBUKm?d3aTquCDqTl}J^&N@3DyNXH%&V3sj$;Az!qZ(_ zTI_o1k)})m|9uCPi4064DAbG*yc48Dk{lr636HMDMPq%hXr`%NKOL*pEp_RLZ}VDU zD|L;7q9-8Kc^wqd)f+Zs>sQ+#68d9MmRHx=S=sse!{{@#8Lus5+$#Mx6;`I$Nat6^ z^*IHV-v80ro0 zLPkGg!Ar;fn(FrgJMRV#QTJ40Oonf&LbFfJTE7wzBk%}k(fLVdc znYzNlRp=LDOOKnwR%z@5#=s~7RWMqTiB)4C_qdNj@op4A7}R|f@fd*H8g2F*T$}-5X*>WTt+jLj7qS7#T#Ts5<;pH?}bQds?4cJp^nYlQ!JvSvXtDe zc8=*zP48j}IZ*KK*ydH`hEJO-%`DCqRQ5AYHrDcO)ZBCISTKqdasY^{5{UAMt9!up zN6^FGrh9ZnTXbSzcvr-qkl#{Jp@vRFm-O^l;m!;ULmCl%INOD}A7r0FXWIc2mxSGk z81OlwwbUB<`~3IxT!OL#tRzMmwh+OcZfu<|K#uL!j0&3K5WZSGQZInvc~)y4YDX`GOT#m`>F852gP)i?YMCAs1eGMS7SDtVi$m8 zB;;dwgf05Ngg5$%g&q#jsV}XBXG_D#*RSP(x(UP!Sd6b1paQz>INo^Wqi;in!n(bl zY>dy5K5VPgd5(X_efvv?tBT(zIttM_B&eRbY@Qh@0_cz^hx76ILb)r^yjvVgq`xtp z19kqZ?^#Mi)@xBUk%iU&oD@rtHpuKTewLGygCbWnkP=n8RU>LAq_@Jr2TKC^-AM}@ zND3x%DsiyONhU~8J;*0vV3Z~ge{80td=W-45ix;!2-^5$iyJdx4t_~6rCJ<=JWGX7BZG5t43o z6_8>bi6yCr&@LjwG1#*UjJKJOww-85%eKFpQGr!U1MUQGE#V<(f`|`FULkd6G-5$h zQSp0joY7)&Jt(HfNM#jc6eL7UJSAic}UAaT3rgjP_GeQG3?c91`fOVid}$u^u;j zG)iVUw5V@uhEOy~K9Fp+gTn)vI@&xO*@aT1=IvOD5PJ~E_U_hxL^{jiQ)!sWv2Oj8 z;w4D2S-sY4QMNcr()*lO;92ygpR{V6WCsiYsuK3J4L1OCp1QYQ9plD;dUs@94v=I< z)BPUgXuvDry~k#VG@59V6nX8F#mp#%L5ao@FwxG1`L7FokbYBhoZJRZ0T}{A1x|hc zuc(Vl$}M<~!#o2In=zuM)ApIv4 zLa%Md7(p#3oU^?9n|9zst$(YgM0EjWMZxj5wKW9k3o+mtGA~B0);2Wc8WOS-*Wa)? z(+3qjC5S#FxeM1J`z8RnCMfBl61WY$GT&&vZBfSm_(Uk>p2hG3gezdc^aVu@#ga0} z_NAdDE`yo__=RgE5YgZA9%!r~`DQ}afdvePlA(|jT80I(^|?;M_>KbTN1(Ncg^Qls zpKsAILTER|fG!1i4(RCY=H{+E^iXW_H#tO%iT}UB2qZzI5(T1{q*uvYlb|L8sC1{( zEGH7B8jE%7)~&(L44naNbWrjuBX~SCYVpfF2uz?G2uSb*x)O%LwE&8}z3)IIN$T2J zrrJ0Q>_8kGn=r;zDH@guN)c|?(jEKHTKyvsG69FFLqv%Mg$>Wu&o_|LZr-*{o12Me z&z{?0U)+S~K_yh`NdFC8J~2tjFfddII}9CRfHDCWWO?z007^6TPsVi#0IfvN+|$QL z``^EOEorj?t|AKp?Up})Tr29Yssyfm#YAnUb`D^NAE|BK(dF2(b?XOIz1TK7@~PCc zu$=gM!G>E7Yz*BPikFxU0>TFj^MqN_$lr}38>Z6VjUqYz@Z7wmvpyYmLBBSho^&RU z9({^6_!%^Ml4&87;baIM1?-Pf=I79-U`G|Lm|@O@b|i2P>yf4+)Gx1+lS9$RBePuS z1ejywD6rSU(lQLddd(drsEGgw>w+xlUIBps+!aD}!j#R5{55={qN3>Z85V4gGF}>9 zsM+y%16w%`6hnf5LD>V>89iy*Eal4jl&u#(NXoxZ0|Go>G5iMUt zq|A=sVcVTj1GcnT-Yz5B)#vF)rc3QNFft-g00eID>H@xdyHrV#ahvv2V;wu?ahYN` zf?k=h0?x0KOoKr&L?@#Hj{$W|lcA@mj{PnuC}{GTEq#LLFEDz)e7?LqRwPO3K&0)5 zG9SgY??de*&xg+4JH%Zmfsp1d_6ZUR2s0L08B&%FfGdc0DH^my#VAH0Ap#8+qBlbn zHG!$2wToWGay{fWXOJte!l>-s?sE zM~oV7rSG(Bp!O8+FxipY70JDCjnf#f=Er*@+LKrXc6MsFABde5e_2!tEg@w$#I*~T zuFBqG?b{i+aB5GwpwGCUS;o+?XmEtbW%~KVY2kv$K6vW|@>W%%;!6S^8a(nPSb)cx zGVbOI(HgEl%k&NBIBnXyy(}V}`c$T0wVc)KUWIE|apdR49VMS+R(<|cncri#8XPQ2 zA{Ud0HN zBm4#sL@DFb>Z?tznp7QbrRj63@hH%$V-$7-8Z|}#$c(M!G;Vr*;YZ__a@!znm0Dz7 z5|dd0##*yGGJ4TWAwuA-kw7&-P0<~)E>`L1UA#OG9^mRoN3#TG#;3ZLhU0Nd1R#Rs z-r3EK>CmCib=?uzGt|dA@@?(yX@O#K1)x}DQFyTn%y5)I=q|b9tzx{|I|A9dv)}l9 zO&zm>pl}d~y)Dd}ckJBh4y5~t%}9#g*V=@gh`GtkThON>Bmits$=`v~KG^T$ki|go zyu(v7HG)|c*IHsPapO)raC6fJ*6)CVBHYuRNxti6)SLKkw7<4LxE^Gj!lMi-90lZk z6VqT3Qh{pbO?Ea8J~b`t^=l$n3>^9_3SpRr_ky*XkDrFf%<;*|6}$HBD_mmRZuU5G zdQEEUW6#PS?45*?0u+-J!07ij2{LgUKK#0*KM*%cTly56fJ)`z8lQ;CY{+pCEoaml zb#hzo-oNkn|Izj)@KpBe`>5uLG`tOzH1|eQu`*@IRAyxgp;ClUnde5D(1bF}Jd=4? zR^^S5nMH&m8CJ+VbFOc_d;j-u?|pus^Eu~p*5_?+mbIR>p6B@v_kG>hb=~Z=Z|d)# zHmK4Yedm0|2)_@@5_;`Ks&}5&_VzT4j)*v9@mWx8=BE@v?@__M5_Q&>vSH9RTVwq7 zHz)J04Ecd^pCT@A)YjK=aCnwngnub%!b)Oo!0(u|X+2vuZ@!1x8QD&uz$FeTdzA+> znA!R70h!fKelOUP{%zJDT^UK~K{@rnBs+++=G2Cw!%22ceWSRh@8Kh(vp^Un28IpJ zGWX*^bm>$Ms#JKy9>hS6LO@Mg`doQR?$ItjzGvClf?{(MhVbCDP?9I5D?%S42{JA) z`9sHJ6l8Rw8CW|X0#&bRTq6I-20=6v_`Bxqh?a;Bjys zmG`tnrbu(8+BBWJeED+h%1BUHaNA6R4mQBz5z_oiwb2Lg<%p%Nk#IYJ#RY;en1gH0 zIUER!%SZoi#2k?S4x?PNMK&*oYnU3b&`|H;r7NH{;Oaq9c{cXq7f_RwPXPOG?V{_~u7!bQ)G2>?!N`wK zwYhsW5sJb~DV?nikrFadQhPhyU~~-;TC4N0k{Lw>6yb7zJ(soi4=Q!jFF(l`G9LO? zf{Mh#2MuYcp5JQkvGX0@D^_s%?bxr{txcN7n3HyEY7*?hSAn*M;8Yf;6DAmI6gXxA ze_rI1CLof&lzaCY#=r0hFi)d5;X;}xK3H@`jJIg>`wch9w02!;v8;^U6!dK(XoXoK zNIWFO2F(Xd`x-FI;Vf}dUj9h%YM(Dwz~=Bc9kf4eY>OIf?xol$2_Ak}e@W`bwU`5Vsw&e7cD_34V9CmVa)Zz9yz;I!U|7PJ= zdX?AGIsrrQDFPzWPz4Z2Ldi}b?+9cs^7UC^K!czWfJ(7;{IG?`-)S639qtxFFvUVJ zXsBmgk)0~#5Z}pF+okzyv562?l}vmvc=g&IA(67ivj+hk6Tl9U@1McnFB6Mnv+JfL zm@_-NfCxef3|b$*?ES-HV|2CX$a)qXy$@mcdr+`+%neE5lML@+odX&gz6HS*@gw{8bw#z5ZDBKm&Ve2zY-nisO9=D| z#FAStUTg-k1$gs3E;-q4aVIfN?8<|97XWy}@DD8KuOOENNT8Wy?6pI_n0|pKNh@C)DFs=;7pEm`J{=FuwC41aamM!Z!3>=$+PLa8l>40@- zl}cjoq9Cc3gvcw#U+*+zGgx*`Z&~s;Yn4@)`H)kAyyoJ z(4~0?QUD+bgmenxHn9(ZM2Sd+ftKt9<~%CHDX+gX$XNRu?O5$z?snVO;h|jZ5Z$#;UZ0677D1~1 z<;xAk(Wwtl=4{y5H0OBXzl7cqqmuEl|Er8ROBaj;;2&Wq)q&qvzqud|^8+VBgdA{c z0vUA?a$ZxEoxYnr0CTtW`F`RM2(-58FVIWhlI{p7+4OwQNmELAMR*tRq?|xvejjB( z%lyHmV5ELQG5nYDAM)0Vs78_=RfI|fS}W={j|%UpYom$M1(Ill^nEIte8g{f(&8D) zJJ{+7D4eq}I!vF%18p+rbkov15-f-F*^NQ_@%tPP?|$Dy4XKy)+| zp9u%gL^`dpbW>BmzdOtOQfUt`(geahndPCx2AxeV*i1OHByoY8It^!Y#rh zM+_h}cCYr_r>2)a{fFylNz^;UP`Ca`xHWmHrp!~z4@bXBjJiZMKDVi!eT>GxnGHv~ zE*Tl&JKlzthY9q*b{Mr2sPH0uq`_FgM7nBgTU1!M2)rAZ{#o$3pVWv3g=9o?V4qOP zlcKhx`fcssWC3{B+dc@zatDxA;8Jch%Fm?R0iukv9kb>geu0%II}%$}U=^C{XGg!Y zV!cJLb*0F)%H&Q>XNzAb>J$QlBk;weC+RsAG9FO=L&9{vW%~ilT8tszgL)PyNy2g%*PvV$iN`2N+)6ZRh)(ENZHs%}Qe3RcV>aLE7@{@MDN>(4)z zW65sHG%ph!|15>B3gwgkUFQUz*}rmcNiZP9x}BSQ6>@S6MW$acDokSmqY~~4@wx}8 zC!!s`Af+dj0I=!BT9%E9Nz(@)52KJfA#%fSgyabg z5Ijf;)wQcKWEsJZe8#QY=<2;wiqG3|hH?ddZcG6Il|3EJ)mR#&T@U-+S~<7>No zfV*c;Ppvy9w_S^w3Z^#)NtY9l!M+0WXmn(*Jy}mIG9oUwEE+2`b|t`+dUi*6u!fUu z9t}R2hzX724nsr=n2HC5l*>$XfHr0L_pC<#RO0S;mo|Rudm0^08}PZ$JkN& z2?flyd*8k^%Qi8hab#Epqk$iIC_sJQq3Ma4dF6)>=Mbqq+A2i0=+&HJAGcWMzty#* z%HX`uq#3c08a&#!0)^U!74tTzGKBEO*t}B%39emZ`N>~;o6rBumX$P=Vm55tczv*4 z2EmnEi`xlb#Te2y1(jhUwFJGT)X-bB2z3{fcL~E3>YWtVSx2Hf`&(5hfp^5s8KWXIhg=S;)`B;+K2KupC3t>U7k%x|y&IPzdA%tuiLbb)(lAVT&!($9!c zTH!AZa55j3yEqJKJb>DNIZ$Fb1W)Gr&rWJUslyTViwH&L-0!@foQcK>&NjifX z;(-j4<8nxEw!DosYLvG{F^;n)AKK@^MaLD zto|!xr!`|~W)a7peY};M=aj5$tt0$Ybc;rN6{d^IADw4Hc@PosP9#*A_J(JYp22tn zNn8~2a)M+7BR}nF0;$u>bac=2{M~;K08PTH6&Z^LqwU+DsqU#sdi$yR$$SBSlKN>L zw8;P^YXjC~O#O75VI?T_010;@P66ZYtQ-Z@zBPO5z8QgBmn4gXIrad5XWD}mExE@_ z(yxCgDcgnbYsd$P)85I6;Cp*&Esg-FLGbE<923tMrTl%$8DUuM(1S$sRyfZ#?2y5H4=ki1sni9?&>`{3che#bLrORND6|lxTSq|+5$Yt@#e)W-szZZ2pB7WkH7h0kiHbkAGz4&o#n_C^r-)b=Fi3NH3m2kt zfLn-zAMGG(6COE>kj;Mo?&;({Hu$xUW%l#tr}4yg8h=9aiu7~U8;o?sM@&SEf#Vix z|NYg5bU~1$jP?G^Vg7zX=U^*Pqa{i&4lTf?MoR1Xj}MsiB;q+!5zih^mBa7Pyxe%q z^Bdd42VRe_<(rzgo!h$aKp$V!;pA+G)@+#{t6gulTnaM$iG$KpRhT)8Ey@Jn)?SGY zWZzb~#n_=$CUA3WUd-UlYk|wzinTg6J~`H*=XK}61-tvVQnWlOseQF)fLN9wLkqPp zHI|lM%mgU%Acax~`44afGbddA*w_f){o#Nw(A5amp^^{?0sX-r&P-Dg1MW$Br&-d~ zQy;$xyoj7pc6t5q!E4$LCkD+X(c1^iBqPL)poM%kitFhM?B)7>HBM_|$Kc5s`l8qR z*VfgYx1W~3tvzY6@kC3>t{4%A#cJ&VgGE1EWlG|=+h=7{`^7e&-KpK#P~vf~z47&< zqcUBam#7#{>6skh?jJu`{*!NPe_{T$hs%#?%;Y~S6spQ@>l|$hZ2n?ny4YqP?dJSf zs|iZlSv5;X0e8-w{WJVQQI@-zm_owkq>ro9kyiq}HVN7$46!p4(N}`7m#8MYXwf22 zeJ&!KA~zOwd6axHd>0UafLQZjh!6*G>>H#mk7W!`R{DS7^ZySDz>m`pN-nm;8S^XP zq73~qlwlJah^AvBul`3+u!y|+)TvXdGdh)E%&4k9J}>=itYNBc#K@1l;@W8UNH$2` zLYXPqk$!V2>zVksQEi>_90Ha<*36F@#THQd9Q7{j+h{d@;j=Z-kkJ?G%ORsg zWne8QXC=}ydmvbzdcVKBw5t`qe1)dRp-w+x=7ajr=rZ=`%Fd+6M` zNxJ0pm+t-Slr1L)icF-RzqHPy01+Vs8cctF(5aogdIp8LjmDf(#GGmkIqPJiSl^Vp`mcAJaeC+<^e<5s47 zZ;P8;-|Id2^0c?eZ?^k*H*Pyf_wW*b!o<1^2Ky7;K4ja@@PW{c5u378 z&CgPQ&|hC+R~_U381Hbih0pok3ugztj4cfT$&yoVeN#txyQWOK=8bd}>_)mz0Ut50 z)eORCqyPdu^31J)`=30t=hu@%Y=5x_%+0QBg!NnL>(4hqXo6(uZyAN|`LMp^egBO( z7MGA5_1_$#|Fx|OTyEs**Um7pwuY52cP+zdzbaq;_du41#wPAYtMi7}_r58oB-{$v z^I|Ho1uu0?G;LvmpUe+7^wsjAPuSYEO-SHO?20cuhGw$>cgbyjeht!wg+FtAbEQBQqih!b&&uE58x+7ph zgd-yQm(XKBjCy6FofmGsCoa=XXSw1j64w*5w8G14WXPl}Ti?Z`E&JtRW{LkPYbmpN zjUH`?PeD&$MZW;UGYC!&D@{HRKx39pQ&R6If~5WwhTN~vS$*$60?xk+P0%>~{rI**#QyJM#Q*Pa`K7-FYw%0CK-)L`BiMD(LE3&S$ngA|^f&MH2@Y09jE;Qa zbta)}p+ry}WuUQvgTtj(j1S&`1h_vspdkZ%;d^c+RSo=GZ8)T$NLZwLmmDNlJiNgW z$IYJ|Yu0k6@r<{FG=x_d0kau2m=wlk-)FT$w7fC$bLLjh@8RZI11`Vs zbj~&;%7=X~s-Ts~3yRrBQuhP^Tx8K;ElT58o0%al_@wTVYXTy&B6f>XGglHkajV{*vd)%$SO9m9mzsQMsno!F4*{|jESO#0!Nv7nAhECZ^#G58A-PT zG)F6zFDJriXAt%Q`B%YT5@j}Yy&Tm@4*MolG=5{4+Di12|qDlRjw3;|N^qq0)+2wA151td@4n|+MGP!@AcbZ|R7+tJ)$?XqJ(%IoG`-+p?2adq&l&!@M%Db^rA2G4G|p)xC(-Lv*nvc0+Koslc#!!&iB% zu#i>!BWa=o1`Cu0*c(ZoMo8KT0~#%GqYz9$jOUlvpZgGkrdm|zh$I*gVaOqf2yz46JU9~Nq>geitjMf8hW z=xxe+>?adxk_v50SD44Pox;Mobs1o@e9ET-9tJ9X7j}E2j>O0Vr^iMy{eui-7)^%~ zp3HbI3LOBNYp70k81)Fn08Nr6n4s)y8(86+K(I!%gL_{RZv*Jg{=yek#PiEpS&ead zh*kri19}zlm4O0lfXsQU;jeIDEvh@T(3;8m<#^LapfyGu3_zOn@uTSMICcA0CnXba z$2$K6`{k#6H_WRDSTl_Dw*+8j0Ah!f6L2%I5EYy$aehEo0!(S*kal_?ymK2!zw2NP z0S@0FCKV`q#3F{U$s**|V`*`KA{e^1B1CSuSIy3vpeA4G&j4Qy85H6u$oI;???a!{ zji~z((Hyzk^wPMeh62!vIJyv(3o#>tQwLlND>u;gk>E+RODCin2V4)*!^4d{1QG#x z6<5~^(G{#3%JE|k2xO%718L*~n+G5WTRAw;z$Q@CX(Q4cKw52T} z<)wCBuI}QW=^SM4zAkPSKKApmn~3|k{k{7x)6iL-biMhqi4rtfEMRs1n>&$LH*pe!> znBTnOUDt`nPo5R_y5z0k6!N;Uw|p~oNUdNS<-WL0PKc++tDoZ*rCuGyX9OINB#-n; zCHmLTx3N9ZEx&l=6l7meLZfvpt(`Z0r+{wBH{B9xT?jgf%eG6TV~aPzJ=9FgGL!^;w7naO3Y2&TG}}!joCJDMN+0T&c`nO>|0)WF7n8j?w@Jzw^v^& zKYwzc>B6XzZ^!z*kKZsR?Z55FNwVTQ6e9FJ-%79HNdzfO+O0~% za-I^p^TQ$LJ-c^zqnuq23yx6yQw58pslX+VGz`$t(((uzAFdQbS>-E!@smKI?qvalW5{UdEt-z+oze7YMg7?DTHTt7-u z14EcRl8G~ zW=r&4Y8)jDI9+a1B!7g|(3m&unv58|;X2$O!XNdsnBBFZ+_7}lUCcx@G-9#G+}C%> zy3Kk=TdQKi3a#g=hWR_Tu(4CDU&!uZ(J*t8xW8h>RP+d~;l(@7H2p11OtV#3YHb*a zS-sfrQ(eJeVPrO2)S73tL;(B03%`iiWLnr0j&Dk|fS8JBnO}%`0F!v;F zvfNTQG0PgF5ZDvBXny!Q%n{PdZ~ya4O5aX4QOES8f+|GZGYkj`dWnV_$ z`eS<5)iREt-l*&7#GTmYAl(&Y7u?HWXyDh7*&oKjPwlW{i32C{NGPgZ0AjNzR& zch-Py6b2+e3MB=u9XsCo*KFjn&#!9O+|;_B>?s*nze@V}`t}C2%|z|CnPmSl5WaJ! zxgQc+(}_#t(c-gmZPTse_)zwvJ}Cky#HfRmODh(yHYL%~fq12bgmQ>CjBwF_B<-ZqgxckDQB_xYL!<*pFaJ?+Ljca+97oTNZta)z85 zCV?MdjopQZ-i=`^eQp8bddevC2~YOOu`yd01a3!|rN}vpO?+9zUByVkXE2~t)8vTX zGGLtUCZ6}@Fsz%@pgQ=_YMz5`NE*7j@nnGOCeLr#Lkc(s(HGOsXUn!Be-3?U8tSK6vmT9g=RdZ-K(5o$yG%KcTNs16!66 z>VS)ix9Hdl#oD?JT4%$Gw>c@|ZS>20)2Zik6&szoadox7Re@0VEz*_II55Yx={7M$l1^71-Z-34@3>4>Dm+Xu+{6qKZ9UZJZjI_#dk6TapGqxdn*=RzRrbO1(+D?=#_R}QURUJ<B1(S$Ha6aZS74R&b2ckf(=#&a3sx{ONrbGQdATQBP;gfrdBH7-L~p^aKr3tD*QSUyr+%bWj=&e}lfVKT zhVPbmGF*A2(PBQSLdb)YdjZ~ZJH%Nzt*TgPhkhYF1VHbn0*RG*mFBMkkZnv_^mREAAN-Am@z-fjU&MA>Or(EjAn`8 z|Ga`ugn{^?;cKDCCTwQXsTs*>bV0P%NIX?`gEP`)<8CtiK0MmX9OjQzFn|#torra z`OM5rQ=DmL_yUQ_wK1b>-*T>zbX!B35^RWA(k$inCS^VaAH0S)?CY7IvXqH6k>nac zyTF_mmNBqs74?$B=V5zr$ZtaTku!j0^qZr1+nAycE;sZ{UNgnk6k2 z`velhW+jd_y0vD^Z&eJnwIwelA9w1B>(%A6yySx}&<t;F|LWZSstu)S(CK z@WFTy9wWMAPfiLt{cK$%81(lu4lOK7xp^E@$^8YzEiJ2=9B)zT+CzT^+0L5KtkoA; zBV*}#Vcq>@ElVpsbj6CAxMeIX$2=Yi;b>QPR?}5i%?Z_LbqkxqGUe3vHL3t(8n0b7 zYRohbnCl;yQ^v*paeX%Zi`E*mm<9I)WMhINUdL6YN9F3xGt9L548+tDc|)6Mi`DZk zCAUr+KIEG3x-mCB?_%195ym93ctfJohxx@+wdhII$X%~9JFf~^-7TPvjfaeHdlOsN)u4(2 z!^HIEVyZj)4g22Vn>udxe_{kMF@+8w0u{f>ej{6W6%b$Y6cdx^iBPN=iShI+%V&t)X>F@iDb7B5{|FBYR#$xyT&xg1F{#Yia3x~d7BP{;m>GB>^56-iP zocN})CANoR_m#$)N9HGW%j{>NuE21Jyns&1ul6WxB_BN^gl!7E$aSw(UP%F&}-fGSkUTV1x{yzC82_qF$8BduPt>1-$@ z{%fLw!j`Vy8iODI6cW-Vp)?iYC%!o!Uf&*N8+;c*F>Pb@mki63-@?DPn&#RKMCT53b^zdv! zr?0LxL|D?I^AHQh?+dn<#BYJrRd|m}9mu0xHpfnhVe?`7YYX``(x0<=k`SxEO&1#o7e-b2%~xk#mKkdv1Uj5p^k2vymk%8>G>cat`LT*g7qZK683f^5eZA-Cy&^i=-DRcad>fF@cY0Yc(>0$;& zLtIW)S?WCACw_j4(CV`58qkTnRCHwYhflBrpb;}mVG}1etK=kV$6@nU5oJCLs)52> zpKFV+Rcf6q8PQeEh{~dgVFBX#nqA(Cts45{&|X zZ)UHo3L-KPD`_~yzL8}28t*B=j(OzuoyK1y$#>u*} zWxP9hx@@Ghqd|VCw?v6D#-b7?)imqj*_7FJVC#N?DV>(X218TIYpw>#I~i!qZLsXl zqqW8D(H^U4bV+x5_?maCp=Bn2Vr4^J11&z0X7K8Ylkp~K*S8}G-lT6IR<`{+w7iap zuD*>r_URe>#I@xoOuenO?n?CIx)w?mh*8Sp=B%YQR1lsVf1guBZ)oZho<9|MV?x|Gyy z7ds}w#N~CbHXpH$p~?xXhHG)=Dyz{E}L=K6!7si6BHTGmZP)*xQvJC|N_ z-*JVn$z_i7xef(StTao`x+L!O)_Z6H^>=PhRKRYzO0nq#_;s1KNs|!;V`^@>Tu{FH zT8y7izX5#JHnY<^<_4h(Kp}M`17Ps>x@!B(Oj9h$%VQ#0~1aT zSR53d!gZ!PW}p+iPA<8r5*61A1DI~zsL%MPBNdK}h`5Y07yFTm_xu9_5NcWWLwoMvsEM46*3=$IGo}YQ%m^a>-}zF`U^qc1`gimCi=O%U9{fw z=ErO@$ksFw4i(roadRd8=>F*f4adQ|8eA2oH77*HPH~P#U&^%@J=SvA_~HpBiiYLK zMn`Aim>dm-kBo$#P>r(WXLg_bT- zVp)E!#az5;ug~z^E$|ArD3~;2*?dR>``g7cYY5INI{EDxiB>aMa!*HU1t&g9Do`7r zFN@5*I&$XHOxb*OVa|P1hdvu~);m`mNA+^u=+em1PKjqTl$F#1^xMV?mKw}ePQ6Vz zN}ZebT6a=MXQA-*Z)H2o5d>9Z3rRq}H;XQJ zoz%sES&GOG3EhLh5&yXBWy8(Uhg>=vXNjPJcpNalOglki?)qeZ1%#>o7^YL>Q~vwm(} zOGT~cS!#m!jRuHsd+I#E@T`nTH)(6g`2AO%4K!!(BR`^hl6DwAA7u60Z=Su|MagZR z)sHdccCuF0VRUX_wVX-q=&V}>y>tF?qS=6(%=pNJw9CC|S0xs&?@h<_qO_f7+AIe) zQopWtHxu4=qvfbdrTN_T=S{vX#l;Kdclit^o+-8-y(Mm5W2LQ-zWbti`V*`Es$=6@ zn%14?*RcdK_y&aE6fBjZgMY36N18ykO@rB9trfMqX3MhkR${@tD_8mo+M{>5X6n7h0H3#Is)>B5bT*rF|2z4 z+*QHQ=ueOEhx?Z>U45`NMq8}LcT-5+Gj9Ad%QE@cl6;x5o{wS_x|5y!;EsTVXmNRL^yY&q>iH-t)rKgRl=SIEd{-Qe%UT^xQo>SqSYB7q{jib8NrQKP^E)K_QuKuQTv$8yA z=PwOayGlQ`sN$+z-IwArJL9w~@}^1d*G>*chPYpM6D_f(?0thtuQ-ody>VFAJ@53K z{fw5letqq;aaL$Cl{nI&6c@a8wFls5`4>if6P#`lPV?8YO@pa2 zeEnx$QGA*+T$+t$r(&lwA}%CHFzZpwvc=~6*6R$#_cc+o^eM?a)l!}2>|zYAOLy*k z;-NXJt6YiK(sl9CpMB4(5t*9%)&G96h=)NK+e>rDmeD(|0~0srCWop9En4`_y{NX3}p#(}!y&nw2kBrDb%E@@N{=4>3jp>zm68D0;)6 zzb5CH%+BT-v}xD|HYhN>$Qnr3wX6q>Jnh0{g+;9waSv)w&p}GLG>}O|IaAHFSzRZq z#o?5`w_T%(Uzznjk2uZN*wFgtKN(JS&QG5$v(y%xn@^ zaHG~;g6HW?L+idm1)tds$-(&p*EC%AD$R5)yyVuoOLV-0p`PLxo;iCyATz=3>=IV< zW7`_lMUyx`4+kEd!;`b;!}aHUbWi&qRNlg6^5|f}l}8bN83|v6%x4N^MYGNoY@6ep zzTf9=`fbV6k=MR+)3W9cj^T0Yk;TRvx^w1Rqs-kJqdd*@pX#1&dT;XJ=h+%po{oYJ zHSysFg@zvsxWeZ^55b!nGp_kECPv3SdWBpf{X~*W~3iF)JR)y6J$niRVB?DVO4bP)Am+=ov z_x8Rs>#sLVE=WQ}(roy9!zhE|-IG~Tyokc0Sa&zAzhQWb*Ep@+fz05(urFq?hPPa7Ja~(cXy&m2L7&p~-Al ze|~vuI96294w(+D>R(WW`r~}JXjhrT`s zYvV2LZ6s={2K~4h1`ji=`=wb1&DD<&o~8~)@8zgj<2ggOqYNa;_}gj!+#d!#j`I`W z#Kf8f#_kr`mguWx5I*yG_$UdV+j;!QL!utg>IZjg3`+) zdlINxLEBa1r{43oOb5JWpAKpsd7~#@b@%I{1{}7k>{rftll=ga=nVq`cxsB^2!loJ zzo4RjhY;Rge_bp38%L-B%5X2C;b1 z`tQV7Awi;haNK|wkVoL)^13xzB*#O7U<_wK5Z0sDO}PYsvFK97=z|4NPy? zEZ?9C;{9pM^aH?!X5i_L8I4?XLpq)gsXi4#iz#Sy`&zoYNIC%o@eC}(>PStmDGy)x zhL|ycawu&cQ`wjtAN__;uF3*cTVts>i2#f|E=c_U53pFBMaj@c&;t~>=r&nfD$C}Jg`Ml){ zX;rh=Iu#`yw`OUjz|BK8&5o2$0wViGI{gJtt>4$0G&+#j(6?T%iLHrhNwpCFWYw>m z+>q#Am{Qk=VW0_T5O+ z2>18zFzD~GD(|9m~3UQ&$oU^WrIm=(#o!l zwspR`50jZ=Go1D{+byq-7|jY&OliXZmHX(gq-W@MFjUS|i%PNtnMS82d6hZVnFmeB zDQUwWxUtVUR=UF=?v#>J*xnHG>3{T2aI?C2?xJ+{u;*}=zaChPQLir@YWoxwiB&;X z%H#8Fu*_E$r0}=ORyfM{pBV3csXtXd`fbZ5v&y)0=U%Jv9y_G3rIKoSmru#E!Dn|4 z@7Cl&*8Fp;`fPi%@{(&bHn~$4ivCO;%Xd-ufUNra$6l_>3mh**Bn1XXijGq45;2e7 z#5Taio1H#s9$ok$R!c6RRcxDM-}0b^wS!ywT^KggSqk4=^Q5(R)CMP* z$m=QX5t^6Ri(E%dkur7cW9xGm`QAZ0o)r~mt*F)0c+8ng5l(Z-iQ;0jTnB5fRW&5olZI9x-K=g#7KFPnZnb(j9yOB$Y_37+NvFK~nA!Ta^iY7yeo^10`tbHiMx;%>ZIjXp<(sjm z$`v{^hH5H0)DE=iBqVTeD$`R7f49Hb?Ztdw7AH=qUM`m;nQh&a& zpS7od=n$U}-z|C}=!Adspw#>aZ50sA6y1mcW85 zt5C5_Q%ctnn|pZooT#hNT{f4KybT)JL5^P+^u)z-XuZr*NbhQ<6h~hpGnzIVmGnBQ zHrdDG*tY(=dg1TpLN@>NGKmD7eL-K#e&^BmoIwYZtgPW~W=ct3UWY)(`hBMDe|6AU z+J>LF= z)8H-ngZWLGyEx6fH!_}R8zeOeOcuR2@CtlpU8eBX#)I5m8<&DJnKA=rac%2|g0~tN zR2Ntn#_*naQ&B(Mw98UpVfDEWG)*fh$&B^&RwFvwglzLavyNOTKM=?s{VM4*>qYJ9 z?#RdIMoZu43JI1^gp1aMd*8W}^vq^B{7His2E9a^WT>rg(o8&u+-H$!^a>A@|OjK;;<><5PL#ijfT+@!oGhoc-o-SVg zp<~w_+k%V}4=s0Jm$`^VEa||2w@5G7n1{b&fgQQ2mKkZyqgx|=MP#$|X6e#V&cO>D zb+in`o_~>UKrqELa$>Qm@y#G_rMk~8Z`U5Zm&3(k?HF834T}_5?!i*`(*Znow`et#jOZ*Tm+H6 z{m0fut*v6tXNZzRpxCFfOHE$>0X3&NDd)R?$}*Nlns=SiyqG5T`hBDRDy_;nd*?K@ z8tx>B*K(89YFVU5o|VN=mH7*EDhjnE$ZTb15-nPu@r)FVQHGWp`yK;WG7d$}hStxlSox?q zN2{>&x?J#;Zx_l~IxB%0&f4dkV0hkfNtbc}> zs>*3|nC;VDbuj*lK~sm>pC00Ms0i)!5?htYfm23*i`-WG4i-=;c3ufMV?7(-5NiB) zAoDBCxWj(c$nXw|L8#@INF>I^$rDlyA-%W^zTY&~e~4_)2Xni3wp=Y_DMh0iJG(6c z>$+L$HaIS_x!WqC7bbwJmhn*%u*zbiyV=z9#&hvM|E8+d&9d0^%}Y;|I`dIt!%e~C zzt_pmNR@XX7Q=#m;4gN(=OKmEVs7e)yZpI8{O68VXE9EjyV?JU#1P|?$SGhKyWrJO z>Iw-?ROYs~z8FHao;?2gU7oua8W}0W!^88dQ1z=g_a+I?pqXhs7(hV&nI!i8s?^;m zhjF9z#Lx5Osu7iw-6G^gTYpvd)?5HvyeZEvd2|*u>kM>aN--zlHBJhjwEUEY#wE)K zjevD4^#8ZfqzuEL#N+C9q1gW&MwlLGk$IcGIPiaYK%_FvCQ7)$c1 zS3Bs({o}L5v58sN&hOuC;}TC&4D|IaGGyWhP+o-W*9V<%TsS|AHEt`NW0$PtnBn^K zPu1;f?&Y#hc~vnC(#LsD_uZlUQI&t#Txx5*cRG4(m|NaF+%o6OtyTQ4GZQJv=U(8X zw=c}lPe()rcO36-+Sf?CdmwZt{HB!l{LRWs&Gq1)TS2f~Zb;*Z1!_qZa;A@L7mM zXDOi|WwSPLcFf`7G*v*Q>VfC{+{Ay#{us;#p5^N&*YnDO_DKh}VCG_ghGe$E(64KN zOATVgsqy1&Uq&4>oF}hqXlj=7E1}R4|LT=w@A6v0Fv8O>qhg1KuE*P!mX(2cX-w^c z(aHJZ41{A4)0;p-K^J@Z^5xSA(3^D3!@9IiltXo3+eFIDv#W0Ee5RPpny;q}hKaJf zMN(P2n;x<8C2ScZRn`6bT4dwY2u#tvd~c z!v{J}y4!nsUAslZ_hWkD{?V57!DfL_V^lMI@Gc-vF(?}&UCf#SS69QpfHRXSEUVCX zVk*XPM`zUyo^6uR{CAZDxOjORkTG6XN`1)RvZ7laEwQsqTltlgf`lnotaW5$?&9r~ z>)$@4nBT_vg9HQCS$!t>U;s(>gDQNbIW#Vg3w=%QxVS2(vnq2s1;rTlRU?(9P$)ep z{iG%7y)_xaT7Z%l9XbNMAHJo9vWI2k{w|!CQyT7YlvVWEa&vPl^kyePI;11eYHt{A zwhw1HwP_)y9SXm&p7fzeMvENV=8dnBc#1!aAuHF*@6vPet}+#!)M{}N6AKLHhWrQ_ z6A0TL8%3Xm?fcg(kHIhl$6GU?fuVtBD1TLpzoldVWk-&F;qKM9qw%kl@>Y4BUCHu= zoIx^#m_RFZj%#RW_~4wInwu~AM?rK9n_OGS74!f}J}>S#Wo4BX>@uc}*;B%=1a75i zXQ|K1#S2d{O21x>Nk~wPGSMkssjRVDS>-6R6uf*i6YClp7+SO`A4=!*o(Y%c0oQSn z#Irf4xwVq&$j?r|AOy>h-?}`);ayz| zB`r5^f}fR=$}qW8VNp?g^&ESE30}On zTifjGr(_jC3+b*q)-tP(qiM?}y(L1>gLignHyn?yCA0Ts)c&kyj-!rnCMb?;{$lMs zB1%I?@)6*Ty@cmP_)^3VmCzyXfQ&G;#=CeI-jS(l3u+cXlDe9j3+9`IGip1p@5gX} zTvL;#hh9zOPgPat1|G;=rEZ^o*9sj}s^!X&#`~uF9N}J3iZ3s?&>V)1$kMd(6e((e zu5aV--eoO}Q{0`^oCw18Wyn%N>VL{yScQQZk0v%^KlXb;$+3LPl7=A6&bwZrEc6n< zZiV#TRU6Kx)%1fa-LI)T!77L(@plO6N@)dGkG8M zT@`#D9GrxYI?1u?A|^ftJC;TGPlzaqt~%JeOI&JgJbr*>?Xq0nD6i98l?L9J52|YqwN{T8}|EW>)OBODGPhG{zFsbnzcn@Y6 zm9v{UT3;?-7Ic|&glDX07=sMri6E@|7`8{vn<6lh@ljX_>T@kDTJyExr%DR6ujm>v zRk@f_O=-s7^_!0Q*7iIC&3-z;*B--mi|?P+D4=(C6vp!F2NUrAv|ZnxHJ>t{sd%U=tY{ zDuJaNi|Mo4p7h|{&CZDu`7-eiG7guIlRkn`;F*>jVn)9qIgH`HKO|2;8TJai8*uX* z^Qt`VDxV0UnEApNGjYE!4&*Ov69;xm1O{nmSC?*Wt%AHfxXWCHhtlEMvtF6OBC2v( z4{yEJ>bNzucmZ}%g_-Q6LCocHquH8mMJ_Y_d4jV!&mLn`e~hugj~ ztC?!v_I#VGyj4Zkcu?R!Bg?=)LMl(_?dbnIl6%`VYyvBmrxC@RZl7Cu* zl`kLPgC>Lc%)c@kUIaPt|MJ~7;Xar_-1PB@D#qE{!@I3%=KP(67vNp!ZBFRzbuxDPG2IEKjn}Cat$v zbcb#NClCzG-6aF#+;GpjU~t(jf_)X;%)ue2{`;t-51hPg6RI*VXY`FaQj9CMVr`0N zaWRM(*WDKrkH#{}Hs{*JCN?A_p6u$0OZrj#P@RTz=;p*0m?X!r42ZeE-rKEZPUo4+ zqU~|tzY`N5g(#D_n3$8Ws>2qWV$rHttB!Gr}tz5jf7E+pbN!KuFv9@Xk6n9j^w}OHuBr#n=r}Ri+SkvjJ z4neu*JS2Ep$EZA=4KYzsvJ{GiUdDcfB#tr98y}25zBu3V*>m$@N%&ykmLSxi!!c!# z9KHvEE){E^W8T`@W@flSwLRJep&8>0wn;2otG0Yy6lj59Cilndvgf|Od*w*rgfEsT z%z=GHqcCjcs#O~L`bqF&aPq@#{cMp1Z^?vAZ2NLg&u@Mjk&tiz;gxn#A77|`=?UYQ`@S0xegyb1%IRz0S|ceq(vzQaYffUyc=G8myWJV4^VyH zT{2~*pzzRzu*^mlEjAsro!eUea@~wkM9o3wfu*_eIXT*pz_O#5t)r_;meY7%3Pl4t zob%1`hIeElPKjVAKfgftm`uRyXfK-7RmW#k)_dxO*d@Uk*ZRG3VLT%&$rJ5-jbH(0 z?Cj`+S?~M!@phX>KcAER17{R(z@fIFeyw!48>4sDOH&I$V3bL(zgg0g^8sR3R4rXMSx-GAB)OePkm&WhjaY<;t{Hoz$`;#>uR6p&tuZl)seSQC>gcSJ5j^p z#!p(3#(_F|zixxz&T4)oGHX0NJ zri|gClxRR{keLjRnaYC*6;a7NMyOQgDLkg|9XIX$w)eZ=_xD@>^?mDG-}GyzOLguj^jK|r@imW%eCNX5?j|NuO}4n(bBQOSuRrC+h5uFs&)sP86tX*0bHP& zWdy!$9Td-kI%{`-i;s(YlRdsdxqYDrHhoc`U<+p&Uxk4Q+RDoiiJ#M5q!6Y0BP z7J?gxJQl+L=eV2??<7ixBx@~>@W73eZ@7o8c%AdFJgU79$2OX#DV@Q@**?ire7$T< zatgL9pdW(zXSd9XY>E;l>iA6fif^<&+2SzcFTW>_*4SFEYSxa7Q?lUXN&Vq=f)kuhxH^tLYs z93}Pu{tzOD6`yqreg>WtDO{#`;wW+fNx0E<-kCUDc(!iUnd)d&9(EhOisC_6SGQsK z{hH8rd3!w1Sgz>-JmG{Vj=0_ku8pcUbG9bu_wMWb%qA_?T_WasY0WaBSQ+=}pJ@(W z1(A4*G38}n7t6Y1y1M)YJK%LgLC|0tbZlVXl6`n5%`7Z@CUvCYL$5_P`=ge)>}JdE za=fPAS-z_x)*Q9%Q=YoE#5UH{44ug9TJ)Ip7CpR34MFC!mr8dq5%@g< z=dEY57xP{PlLnVZL-GlU6<(GoeX&<5VSO4kVf9D2#!foCL27o))()Yueh7B9YW~ zP2^^4e2Db;yr`{=hks#EeD|s^Qmx~@dFVVdgM>_YyNG}9B7T!B0?fe-%@5ypK5r5&_fAWHg@e7#lm=tha$L?VyU=^j{EIxPXY4|6+UUZ6BwGM) zd6a-To;*2@xlR79{Q=mmcmnh`SBqlfsj*SxQ-X(FQq#a73?1DZ4k_9^JUsDeq*mL} zKH@xrJX7KvGwPLd%+eDAt~E!DsZnpGnT)u2eS%}PC=~$>M77yzN7%4y%u{o>!e$Cd z(-as&Ggm>%ufDq$K~+gpIA;lFhm6`i*%sUBVShlDdm$kL)uKcrArQ$mPacWfIZTuC z?%iQfFF49kDIMZ4(m8hQ4xo+@zSqD&h*AyBa}JS6=C(pkO>61zGjMk~u7w-ZVF>tT z5pFl4E0z!s`A7FAwOt{=p)qs*qlY_!bEPTWp&R9 zd;*}-q$!~fy2Sp&nE-+j@)t!OI(R4kRZC3}T^S@p&aPem3!E%9r(d)Hxag+#O?~~} zKYQ=bw?VFM1Lay>3H+mPa>_FpDi{Ep4j(;Qb7}sX% zB)XR7?q8S@Mu4j%b~VpMY%oZpOE$QcIYb#1qu8l}{?SB~Oqd?1-az6zS&z7<P;kCnxiMcJuZKv)9hzW=f ztO*c{j{ju#qKOG-pACDC&nEWMIdA@xo}md51upmyoUi)V-ux;z8yg#woSWz9MFKj& zH1;ltjYZNza_j`&YJ_`LBcjzpv8eOjojZ|@jXK@gY8o0q_^EirSk@R+i6kO@qVE)} z(YHY-ycp`5ns{@PX`k#WkQ5sS^1Ul-H`2wL9f}6JtyH@Ic;|&poO@|)=5f+nq<;)= z@JY9tXZNygkWW_D5Q~_J!gKJ;g=b$Kati7?m*wueS7UmtCk$_%e^YPYu8O5XeW5r} z99u3bqEeV6Evttv-K|8m2D7~5#4V>>1A^QKS+y^-E*4azrZvY36|6`eCES6!!7J6V zx;i@Q7|{&mflq>=G#xO8pT2jD%O9`+V-NX7MAWVs#o=)hv*9s~b+ZytVxt%-_*{Yf z7Ac?Iwh|lgTWa7Vx0r&%An1V=1*+hdK)W;VUM*2IB3_pbF;{NpKtvrq#PO~%HZ#T} zjLOgTy90k*w*zUXp1S+RCg z`ruAc;~XiJi+cWC4_sT_A;vnb14+v2LtQNPqA>Y(yVzefg&X4$(mcK?+p{Wx_5sT3 zDLt+@#{L#OKalEapG7_ydF;xm6<%74x=$nUE3~en+qdFaCej-GiN*?_cRqGgy-NB7 zB$`172&uiilH2dFm8Hd#(RrbZ7R-OvY*`vEE1T5(*_scR1$c8?a{m=957uj&upwaX zk}|iA$IWayyzz-ts#q7vK)@rl9rw3qtw|jB*ixagW;`jRNtEX;tB6T4GuSj@VJJ6^ zx2u9A-dyudv|Lp`w0H->6u#>oIm~hMJ#yLj(Y}MZop~eUAXk9Rdxv!@#2YB(=gyo# zgqA&uFoJYRH&vq?%fPFL#d~wCJR8etniGT8>%8Xx7Py^2>^UAd~fx9h& zEHSylTigS?aUBLdqwqn?M=Zf0h|gE%(<$YDcYwa<<~zFly__m$d&UP-O~E2qM^km7_XnXlN)$Z1YNrLdTV3XG?=(zI-{=J%wE28Z1FE*uc_8h3vwK zMqtcM)>LHZ@jBV-rOjor{R|@xLo(kjO$_{?Xw? z{I&m~C+&a4M6-W(_EP1zz6?6y(cxuAlmqC#+IHwqGJeHt9yfoxaH3bABas4V3!I}4 z@u`1-^ZPm8B`Kx$U@8AAnV0=nn&|R9sB9A#5#s~->GpoJ#vLopoI6*7)tq7L)u*MV z7S+?!qfDmNdsXu{PIBM}aX!}Pn7n2na=^TB+CWiC#YEbHGJ8(U;GB3ATW?uk*i@JJ zwq?G2<;Ramxpx3FP9#ELdJNXSCLijf|0qV?_?sBjb)Be;cz8_lme?%onD`f_7@#nogO7wt13w>GYmR~yO0od2sOfXH z?o|2^HXA{M=h_gtnp61kfQDrkndP3P7&yJKuv(NYib)lq$d#%v?B(9Qd(l9wsLD&j zq;>tltHk2?c_T`Ku7(@0I|(^U$6Z-PCDZpl&N4LXdPnU%1(`Djc{bhOS4*4#8xFxn z3lvmsokl6{fhB=dK!%1WQ~nvs#HFMtgBJEjfwM&kN2*croFa9TC5R{!iG$`G1I19Q z-w~xb5hfUHnf*2|cnhqsI@gS}jV#czih8tA=axel(WvB)N#>&QZ8{WCs@*)KRB3MMZ0%yJ>Prn!Bl*GXAofueWCk%eW+WyyHX$!h=DZ65D7!_g6gl>3 zo4lx7^K#%NR^FL2Z+oYA?Vvg5I(I~R4Wr(72x4B>myDTt6n5(kOMQj}TA@-D&%yKXj+y z$qIY-EunS~HT3lb?T;pltT;e0Ce<>{mYI1!?x)%jS6%YO7$m&RHf-h4Ll}go= z*3{5A;l9#M2;u{-h-gCUmgpK2Km=v�Jksa9{W&%j72>rnK~@ATM7BE6V6{0@OtW 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/copilot-inspire-buttons-get-started.png b/query-languages/dax/media/dax-copilot/copilot-inspire-buttons-get-started.png new file mode 100644 index 0000000000000000000000000000000000000000..faef2d0916d2c8e7097af47be5b3d4d93578fd6b GIT binary patch literal 14380 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 oA95M&od0<;_C>A0P;d^Z)<= literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/copilot-run-query.png b/query-languages/dax/media/dax-copilot/copilot-run-query.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5bdb6e19c7b3ffbc1a36e9de374bd657385077 GIT binary patch literal 102471 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/copilot-power-bi-service-write-dax-queries.png b/query-languages/dax/media/dax-copilot/copilot-power-bi-service-write-dax-queries.png new file mode 100644 index 0000000000000000000000000000000000000000..f1cdb7fd60d5b0ac508519f0940d8c4e6bb4073e GIT binary patch literal 108272 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 literal 0 HcmV?d00001 From 380bc3b4f7765acd1f96b57d421aa97420097463 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 22:02:15 -0800 Subject: [PATCH 620/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 6f90760c8..8346f591c 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -27,6 +27,8 @@ In Power BI Desktop, in the **Preview features** section of the **Options**, ena 1. Create a new query tab. 1. Open Copilot by clicking on the **Copilot** button or using CTRL + I. +:::image type="content" source="media/dax-copilot/copilot-power-bi-desktop.png" alt-text="Screenshot showing Power BI Desktop with Fabric Copilot in DAX query view." lightbox="media/dax-copilot/copilot-power-bi-desktop.png"::: + ### Power BI service or workspace 1. Choose a published semantic model in a workspace. @@ -34,6 +36,8 @@ In Power BI Desktop, in the **Preview features** section of the **Options**, ena 3. Create a new query tab. 4. Open Copilot by clicking on the Copilot button or using CTRL + I. +:::image type="content" source="media/dax-copilot/copilot-power-bi-service-write-dax-queries.png" alt-text="Screenshot showing Power BI service with Fabric Copilot in DAX query view." lightbox="media/dax-copilot/copilot-power-bi-service-write-dax-queries.png"::: + > [!NOTE] > DirectQuery and Direct Lake model authors can also use DAX query view. View the data in your tables whenever you want. @@ -57,13 +61,13 @@ To use Copilot to explain a DAX topic, click the **Explain a DAX topic** inspire You can **Run** the DAX query then decide to **Keep** or **Discard** the DAX query. -:::image type="content" source="media/dax-copilot/copilot-run-query.png" alt-text="Screenshot of running the DAX query before you save it."::: +:::image type="content" source="media/dax-copilot/copilot-run-query.png" alt-text="Screenshot of running the DAX query before you save it." lightbox="media/dax-copilot/copilot-run-query.png"::: ### 2. Build the DAX query conversationally After the initial DAX query is generated, you can simply adjust by typing in additional user prompts. -:::image type="content" source="media/dax-copilot/copilot-explain-query.png" alt-text="Screenshot of asking DAX to explain the query."::: +:::image type="content" source="media/dax-copilot/copilot-explain-query.png" alt-text="Screenshot of asking DAX to explain the query." lightbox=source="media/dax-copilot/copilot-explain-query.png"::: ### 3. Syntax checks on the generated DAX query @@ -75,7 +79,7 @@ The generated DAX query syntax is checked, and the prompt automatically retried Type in a prompt or select any of these buttons to see quickly what you can do with Copilot. -:::image type="content" source="media/dax-copilot/copilot-inspire-buttons-get-started.png" alt-text="Screenshot of showing Copilot offers suggestions."::: +:::image type="content" source="media/dax-copilot/copilot-inspire-buttons-get-started.png" alt-text="Screenshot of showing Copilot offers suggestions." lightbox="media/dax-copilot/copilot-inspire-buttons-get-started.png"::: ## Sample prompts From f7fa92728da70ec41d3b4cff0ef6c56d26321b48 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 22:04:02 -0800 Subject: [PATCH 621/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 8346f591c..8fe549c80 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -67,7 +67,7 @@ You can **Run** the DAX query then decide to **Keep** or **Discard** the DAX que After the initial DAX query is generated, you can simply adjust by typing in additional user prompts. -:::image type="content" source="media/dax-copilot/copilot-explain-query.png" alt-text="Screenshot of asking DAX to explain the query." lightbox=source="media/dax-copilot/copilot-explain-query.png"::: +:::image type="content" source="media/dax-copilot/copilot-explain-query.png" alt-text="Screenshot of asking DAX to explain the query." lightbox="media/dax-copilot/copilot-explain-query.png"::: ### 3. Syntax checks on the generated DAX query From 3a19baf438d516793e19349ef713f117e4e6adaa Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 22:36:48 -0800 Subject: [PATCH 622/934] Add files via upload --- .../dax-copilot-conversational-query.png | Bin 0 -> 40924 bytes .../dax-copilot-explain-query-more.png | Bin 152780 -> 86029 bytes .../dax-copilot/dax-copilot-explain-query.png | Bin 116547 -> 28246 bytes .../dax-copilot-explain-summarize-columns.png | Bin 122537 -> 13578 bytes .../dax-copilot-highlight-diff.png | Bin 69627 -> 72187 bytes .../dax-copilot-new-column-query.png | Bin 0 -> 39994 bytes .../dax-copilot-query-explanation.png | Bin 39278 -> 39965 bytes .../dax-copilot/dax-copilot-show-diff.png | Bin 93535 -> 22877 bytes .../dax-copilot-summarize-columns-brief.png | Bin 47944 -> 28673 bytes .../dax-copilot-summarize-columns-more.png | Bin 111363 -> 73571 bytes .../dax-copilot/dax-copilot-updated-query.png | Bin 112372 -> 34543 bytes .../media/dax-copilot/dax-list-products.png | Bin 54089 -> 18733 bytes .../dax-copilot/dax-query-list-products.png | Bin 124229 -> 28571 bytes 13 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-conversational-query.png create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-new-column-query.png diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-conversational-query.png b/query-languages/dax/media/dax-copilot/dax-copilot-conversational-query.png new file mode 100644 index 0000000000000000000000000000000000000000..59ffa8b244ecfe94b4e17f1a21bb99720503dcd7 GIT binary patch literal 40924 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
    kyZQ4caxKTV&W79JD%gV} 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 z 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%0AgW{ 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 T=ak;i;2#x5b%k{Kb2t7EF@93e diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-explain-query.png b/query-languages/dax/media/dax-copilot/dax-copilot-explain-query.png index 87df97f0979cc6e9e60c2c3e63c7ffbe01bc16ac..2d58bcb1c90c0b2f6bc5fa820bd302d170f28e9b 100644 GIT binary patch literal 28246 zcmbrlWl&sO*DZ_%NeB=iI5Z>#cMVQ(cXyZI?iQS2!JQC-2X}XO*M{Kk(m*5M<~-+l zZ`FJ6zmKXex>oNcd#}029AnP8!WHDi-@Ybz4Fd!7R#HMl2?hpE1_lOJ2pJJ*fe-n{ z0Q^I-m(X;Afx&cs`M|E4f!u*cBxgxkQKY>$xQL`M#53#`FfgPrk|JMJ+%t~A9?mNB znS0Q33M)Y&_&7lcA#CKLpi2KB!k@y+(aR~wn`{GB_UKXq%TYf1sI+x)ruB`nyqr22 z?w_ivW2fgajv&8g%d<^U+X8-m&tbMtgh7c8>L?_CBce&ehHXI-D@D^PaG)|2W&(AMMU$Iy-|df&4$uyd|*1}F&% z!hAQQxV-3=KO2eLwyobkKF-U{4P0Mehvw@CrJ&AvBrr2G%cOJIRHc6m!YKQv|M`?S zl%j-BxeH3DZ;z7Z>E&fEj2RQ!*N zCN;)V4)aLF#Kf3%C=N)kkdUxQNaV!D`%O4Sk;!!6^QA|l;wPi2dv!sm=;+cFLOJAN`K2AHLjO4WOXRp%eY>+_D^JT&F=nXsJ?Ix|=h2Qf&n}EO*5BELv z;m+ADDl827!-o$P zciH1y4eR3tgL0`9=88WMGImdMuq2fFI4Tp@r`RsAL=}XwadUq9I|BwP%b4EG?S8k3 zPR;*_FG~0n5Hat1K8z*4aM_QAiiUnyxChPfv3ieR92c-kfkwPG`rX{_wstT+r@lUU zX-NwX4o;)OpcBs*c1C0rcOE}Xno>LWUc#nq{Y^KF!~UX$?J}heh`v_6aSS!dERvJF z!7KH?Y5(Y31#B2vXtY&w!yHzync|WU$x4bvQDe{b4^6rmigznz1!8`IPllvS87W+s zsRHn6&dHW&DWkteQiEh%1Ii{$RZBZ5Dzy z;c!edFPlSdiHUsNDA%fZFN5sh)?_RIy_a$O@%-m8&hLIs|MIfnDSFiJ5#iZz=>>ABVw}9CG!jsv%Q`oIm$z{%5u1Bc4hQ95f+^BU+ z82=4fRRL^$+YV)bU)$?6L4*?yPvc6yTKs_kw=;(5d|i5lE^Hvd zHvNq#+e#yI9r-mSgA0EeessCw^;gS>s)(c?B2_qfm|s9|lZ!3cwL^Qki^_|0S%m^A z3MVA))WQDbH zaLbw@hf}b#X7(uPM7x&P@NOL5BP^y-gr@q}hZJd)Zt+@>^2`WLLaP!U4L z$(;;eN5c%^E~|?R zQ%0LGPJX(rq0+J2Ft&`06!&)=dLb;VprUF2 zRXkBCF@i}l!CRRs95ZIlPMO2^#8F@}^55q1t)y9hS1Aq-_*Pi^XJqyFh*)+hF~?vy z4;ZG0=%!ee!qGS;7iS7<%F}2|eS&(%DXk0 zX@8h>z~xC;*yb6SGoVscg&T*%C9+&wqQlu}hZ%%{`~Ee&k8>KVG9eh=zbLuPS2`Uk z8z3UW^YoQjF}`=io|HVTCRmeBB3y}NKev=J;!g8Y5;ZU&{Vm>oX7;p6-rC-&+rG%i!O;p%Veqb>dV{$A>3=xB72r9dQ z44qg8C88*LW(KcAIP9HT3f^8V#nd+@HXVpH1!75zk5PQ&Pg%|9K3L9CE-%RAjBU94 zu2CZ)yaNBR!8!L15&Ve340hy)pr(+LXHZ$OVH1l{F_|2|!-Z#)z&?U&Jh+L3keP#J zm!g70M!TKCj(2Ph7<}gJUOO-;6Z#M67td?slQC6KW90(7*>X=PVP;^?owKtV_bG!J zC^UW1+7%_~kJ(s;q=W=A8QBwbl^8Q!%F_rNqqpTYU4`v>YIRZ8pdTh^l$?(}1cOv) z5KcpMRIdB}97F&TH5MoQ*c}iQ6pVp@fhQv3jxZtQm7E&eu=raf6sD*rq~5W$KHk>I z+GT+dyZdMc??V_FM@!<1&v92Nq+A;WRW~=&k__;sx)j_qIZHqDy*3{-KePnw<>?QsFaMtEcT5J7D&2+dPXQd zQNT%%7B|LoOw*4zJ54X2bJR`Spph|f^Gv1Jpc5^EE zexi+vA(U{@J+^Lm+HDiCj*cP3>62-nE&qTiv=V$`(SePPHz441SnjcT-kz7UN%88_ z^NtI2tOS%x{bqgo*_aP~Tzg1={5GRFebf8Ga#|B9iL6Bu0}E^O`aFEaYw*aJLDt|W z`;UcwdaNK3Q4bJBGVa z63*i{pU9C%y1Shr=rB1VJxhA{Lw2ZiUTZ9{6lLn(oi3`SIjgptSbR|x9US*f&6b1* zA1%^CQaZWQnwIxan}WIMqHhK9z^6Qc$c}p&Sb>k95s|=;D=fkmA{o#tTLX;f+(-(< zrcNTyKtvzb%tv9=^ibwNh#~zn3>d+KZ#B~g-aovqiIJ#^pX{TV5gP$!$)Tl9Vg3|` zkaLyGfC@k|<=yBEJcXbbb~{_|NG@Q?LHForI=7d5uGYL=_f>a$7bHg7Po8Mc%LNSS zTcRtBhcdyK*d}+qb1;)qq{jKBb}-14UETGr)3K%iv zf*Rj2SP#4i#DYQu{qTyuvr0H;iElf&M7jU!BHTM^|5AYRAuc!k5WS!>H@*%AD@W1c zDbo(?8YV~3PalbCiL^2Bo`6rcGu(m&EBv)x?#cH<)Z3Nu(Q^`lx>q%m>p6m?=S!l$ z8$I6S@izpSC{us~|&Av?@B9y_H} znNc|H^@1*+`fzU{mwtb>+gJGS4F(UsKmXja!pd3(OdOTS(e4E94TDbvR!>?Jg=Vyvr0YZ7iu^V|maZXDkl#AChmx@+;VVvx zh$0B-)9T}M?;YCaog8vNR}!=-hTGx4p%66ozBR7@x+;a-8PFlfSo#Q$iZy;^8Gu^j zBkNGSC0%r>86mpO3w-AGJ^YK28v|UgjSGsBXTpQ8|HaPiSdvQ_~wR*{~rY{v9yi@ba5; zj1%w~q32~*Cv`-2!UaBUGm-luh-ee8qf^;FkHl=VnoCnk>axcDFx?36h=~5S-4`kd zF)@&AOMw~Jh z9@ZLWW(KC}>y;kb1qgfjQdSx}{RDiYwVV*ppJ)B@Znh-l+(Kh3uTB>(Gs&O4dxsg1 zPnen0WR#4Aa!wItWo2ue-(p}U_I$ewM?+#Ir-^K{npM%aTvtZaPI%x^GPl|@}a9W`Elaze@9jrH)htEU|JEyxFHB|f^I>viZ5ey9MfC3OhA7$S= zf(3c2W7Fbxl3^P%p_E1gSV_fzD|Y>y`-}Hlh`gv?OXN(nWEuWXIA0m(?S05ccCD&v zmAO{IAzH)d(W=C!vE);`eOTNxUw}2tCLdbjBa@>dza{8%zs6KmW!E`Hr=V~tvvQ?o z3fQyXJ5{TSomSF}C6F~Zb@|Gu-}#v>>i4UCsk(6)D|1kgcocUzMG%IvWJlPvkgS7U z%jc6J4wGlxRrd$#r`^2vio5dchLU74OE0UK?lsTW)m`4-l@=BjFr@74vvw|8?hTE3 z82*j5NpIe^%A{8(L?Wy$L;s9x3Ko}QkGwYBky33rOpH)MTZfh(V$ zeA~x}v4z6U9VL@_t4+9IdJ6=uDA|ZsJLn1WNd76%10KIBE!%ghXp9(AdKiOO4@(E@Jn>OL?4jX0}*8Y(}3XS z>MG|-_|iz0&z5>c|DT^x2T_22Lbs%_@h`swp<^=r|8MAw2gCRkKQtLvrIP}Khw+%0 zS#J@0F%16iu_5*yzYDfDWfNkWbY$?GWa;R6T(xg#8NZvB*k&9PFd8#Af^d!TrsX`P z_@hntQy|T<&gmNWIm&C)rqTjBa^VhaiF?#{?lsGv=AWxqu06olm!I$3TIiBiSUrcG zA}!a9tsf`AwY|!Bna2C&8cD1Bu91f;puBTEN{ZkMUsrC#T>h9-F)S|rCfOuNR%ObH zqQ1UuI|`DFxZl<5AD4RTch6ViP7f0G@xKPV)uQTj@>)hbjryB>B{bx{XTufr@}HJ3 z+)waZ_4Pth(vCoaCu8sYBy#_zy3%AV%3O#PSH5C5MzLO*ILX^+bal1N9HyaeaZ*OM zj#JOd-Dq^eCSU2>4I2#^kWqbZZiAfSBt6l5GOr?ZY@a&*O;wc;vAa~{Zd-nQxht2^ z?^YWmQ)7~w`r(l^$A5n>MsGd0)~>=Tr#)>`VEbAXn?alJz|owGcA1_M(nP#BR>*G= z8CobuomWvXb3<>aD)%XvZ<&hu+qw+D=#M-ijnthy*X#PX&{qp&(DgHV;nvnx`fbxn zYd&R}G9`K7rc4E{>jxCQwH=<$>U~HH1*}U=`-~iiBaV+1=Z`I+G2f}Fot|7>B1?;R zYYKQqksvmgJzpnvZ!MbIDDzTUpd~v*ipR?T$R# z+^QH`EMW766y@nfL-|@c-h(NU8Hu+|hZ7+wR&~FD&Cd(1S6-{mbg})WG2aG4;ym?H zsHe=XQcUpjY&Cvs4Q>NP-Z(A0aST##nvWvmeIKM>HsK1HgEU<)w-rFz2v?)SyP+o7 zu!XzFRx2&)D;a*kqB67k?adnJ8M%R(sJS*hPnug#zRkCB)~M%%51yT+iTRN<+w)Tt z&+nZ-*n9Ea%%PXfzwS=mMw@@V8x(MOz3^zBvg?_jkMc^!%J+@|^bpmawjthU6yf>W zeT0kVTIEEx%j~uJtYd{7m*N3KY+_qlzf$pMBc31ARPI#izq%{`Oq*8o^m_@a>D2`V zQYR*%S0;M!ryG2Zm%kRCgDLY5q&&tgt`b`)MQ~*!>58pL?b3wW*s#td{`47;PU_Ma zN$P_`6PPdah96a4@{26R#iiXoKB8EA>a$rbt0{;RlKO1e1HIu}E}Em-uB$6Gn|GQ+ zzfh`a%1qF%rlGwwP%GLDZK+J5C+114lHy?7Q8ps-(&vVxo)|GBs$Ev$EHjI#N60mg zTH#D#4ReYOA9DXG{Waj3qXhY~<+@s($pht*D5`3$eOv5n{}Xucy(?aQ^=hq~R8WUo zQku6bZ<4jnQJIC@)xFVZEerbNBDZZkLY|mhwA8?o{wuy0&)UUg0sgbyX*~Y-oLrpG zeRDD2nSU0v^(-g5MsK@+{ouAR_C=dxWDat0Ia{sDb)3Y=yVQzi;|yJ$w=v4> zhW3j$Qc59?&zbM~c-w!TDX+oh`$Q?dP%-BFWP^W-q~P>k^H6Hga#ikHIB)Ap=O+no z3j}=WE<;qtm56<_1x0;bSEyIg?J=zb7enK-VvS+~&hkS^web4NRG4ov<0d$VYL}@X zt(fa5TRoS{yWt4Fo`FbV)XJ$#x7vmaPcZLXE?`|VSKj1>9)9|}?s*h2Z`J#1j(>Lr za#G&E%HO>*8|Yddr>j580Ge;)+0V-8-lCQ`Q?a$S{8gPhYV31khv+HiOt({sAR)&n zs9xTLXIZa^heE&!sxg;;q|AOiG1ex&=JUYz92G3u=bF@zUc~qCM5tzccW?Hm4KkrHnV@&a5c z&_oj5R*17#W-A}q_OOx|%SBA^n%*h1Y|aK`VZ@TK32$KMcQNF&${OD%Ow^+nQ=R)< zolspMzwlIcS}00*sHN}m=2?qGwB%r$n4aCg^)JIFR*yQl%f6j9z1WMpoLn>CA^j z&kvbnoQytqNcH8zi8*BmN?A%vSz?{S9>oy&hxH!CeoxFSBlu;_T?RrU9(~q5{c`?l+54MuZYzb&eb1vu z){)w*qQk5v^!Q%pRRAY$8YhziE$w6f{>6x4pL3h}HTyfDG9_?ynfl(o`9gwZ`;XcC zxts=GN9VhQ-#pQh=;&{a2-v9oW|hF*c#IGD*kw+{yEnIFzemNP=VYj2g>s8x0S7r9 z9fCkY zW-@T}FC64D66=+4qR3a~m{V?dymPG@E-DAl##c|>EoW!N#V=2mS?~JK#o4a1G?_!b zlTBlE3kRZ^CZYd2*Zaxp?F|oMoWHCJxwz@Y=64SG*fg?ykum7BGqpT@>?OQOR)6Zl z{grIa<(Qg&}lV@0X2IdS8!Cya^@zYaPs8QI(Whgs@P75+%_ z2dkg?@pwRu?DC>y16|$brCapd@w>05=cWp9dLe_;_7Ta3NsC36J!4@I zg*A#gsx=K%mroX|mug4*BgQQSfnBCvi`xlJuWoPFw$4me*J%ArW8Yh@*_9kD|K__i zxcgh%!c4!mW!){BTa{M(<5P><6P)ILv|Y-P9fNr^1=zQ9E>VkNW^8{A|NA6ca`Y1} zyD^yL28H?DxnEy%?u-GyiMtL|Q&d0*3*EsI&`NC?7iY73JkqmYu+j?(!Od9W#fn zO+;9-GKi+vH+Lkb`zxrjc;BhNl8l>3Uo&^IEY2q3JB~_e1dGcU1Je!cPu_Sobi5PH z9S!}yJi#T?;VPWSOjL@G!kU^ZNy$VtaOj$~3O#6}W2`op;!A|zvUX28EnC~WAeyr_ z@MzuiAR-~@B$DNxWOk^lQcdF>V&EPnlNu0NHU?3!W-N-O&hsmS(B~oJ8rxg^!)e!d z(ZROS;hSEX@`JsPXsHvmjefgY=mvv=3EU>0Iv(85QxhU;4!=p*mI?+A7W%%Z_OYHCI23~Ak!F_HC%HtlGJQ18OkWQV34O-Y6({y|q8ibqvg5AW%j`>1 zXzqLr{R>|S^H+dTOZ!E9PBfNJKLwY9hu2*>`%SjFT$6jX?n$Jo9|~;AF2~ zC&@&|Xl!jb^!Af`OU6N3(j3ky0H-tqpA&rL%v@_ zrtB+TKiQj;52KfNxW=hoS1gu-^w+t_7S{8xRrNhRGqdhjgGT z=Uz!XTGuixbgFkr>pwhq=kLz{<^L`_Uh{+`QU8b>;!T016A~N&PL_WKD4o)A2z1c+ zb9Dy9X#6gN$pW9F>bZFQ?i3nfi`96%d@??dR)4I6yX;!Ob(|GUDpofyH<(%K^9AAHR|`YK6YheUp2QXp^Z>Fg9_iksFluj z^ONd%h9C?hm6KA`c)B)PK$fj=nw;yth`%su5jcvMFUX*iQZ7I*IwUv73%>@$X*}xx zQib;DNHRB~IO6KQ(1m#!CoTMyQK^}2Q+~CAw$cnW#`a|mb?tWJ8Cv`0aq3~3b-BmF zKbXGt^soMQo%--5jyIyz9Y<%!2!$!bS3b97-e(>EQ9igx6J^7R*H*Lk(>$1nPw{#h=YD=k>^6vLQVl+KFQ5_o&mCycF-oP=mGv3&m&ssp7Zr6w4)i{-pDRg7INvRoQ<7A_N zO9q#kn=7-6z4}2J2<|sEc+%L}u)NSv4GXB5#a%^(PlxEqU(@Zi5=T0a_x3e(u(H&? zJuSIb0bsO$)%Drzx(Rf3GmqH_2^w5V)|3o*d%hffF}xVc+`5`s;2&`OQ!Zf0iu4jq z7=7~-ywgOLTb970DrWLs_<|`$$h5U~D{(iWb{;^*Ip4a-^Yp95>E}U^+yi4Mi`PxJ zL!z76u?oL4%Rh9q5Kv32IOcr1nZR^=r-v?7_16I$YlhoSQKcZY>chs?KNmB}Qubai zT+|AMys!CbWnch#Gz1aQ2z}?U%N|L92fzoU!)i=;`X%Pii*a*+(lQxwEOWT{wRslz zD}xRJ&0#ejQj8=1iqj`t*^3AVZ=k~5$DB?qH=`Wj4oUMix({maP1K(5Vt`e6L-7Be zc(czW3Jxg`)sjYi3r*O)xbi&{0ffkL3%1b8@Pj=l|2uY@VrO8vw_n7FK6js2ll2@w zXOm;~V&tHSk-PiCc|fxT`*vq%fWxVkMft_UUp%ORsvOVzx%IHD$qHp|q4w+Yg zEta;mQ(JW9wXj`D%e)d8o`6yN_9%UzR}a#T1u$D=)T<}3C}9Z#-AQzKG7P)Nm`<|4 zgLTWb17h%@4lCtqh!H$IytrT6*UL#?Z{)yt#maSxKg%dP-1w6CONhZv)Gciwpd6?+ z+%!c??ws$FhNoeEwicUWlaezD3&qJ0&|5N#HF<9VD1phNpa`t;gl2?8oMYLIA6ypO z@k`uqRl!$#8aozKC~w}>W0RZwI;LI^vdQY>7|PgHC?fASQ(kjNhEF2HSkjiIr>&31iD$r>S8rNXABpc8e|pnqvf4FVAttDA%02~=^{C)7 zZG2AsTc&o`E9W?F?$}{E@N2>6PFGZZuwS~+*8&?Wq<|C%O#L}r;M(ub00MqQlQQT0 zfcNpjbdB-acxdgmH{&|(&ARkyIoaTk&r=L);91eO8vJCvBRGaPbc!?NlXJB8?UX`l z#}a!HpUnCXL?~UA22z75B!dD`3)w%69<=?2Aru*IlJe5ETRQh8I4yJ=`rlym3v)U7 z5?6)`gq$g|fva9(&))ym(sd!B{M(SC&@tnFRsXwP(faNbx4_~`y`+!+Td5^8UF{>T zC|6Db?>pH+_F1#}4}(4*lr*bI6XGb1H159!Df1~ZNGl|?6LimQW<9x<^*7Sb-T1FR zT7+J#K!hI`kX}OFXZ0wu_i~z-J_mCePd*p*y$^paDB87Ihe5|_{)VoH&BSw&)4are zNx3=LEhd_OrtR5~v)W7>Kc3ZM6latCK8q(EGQ28D;BhJ{h|#_0cYW76S3^2iykr8y zrVZsfo4UmveGg33lesxh)_A2EPfXXC++v2uk5XxxAmknI!a2u zW(3>Ntqu-4^?Z_OXwS$}|FKt@r=!MujH1KJharZ$JZ)^>JAb7cn5NQts+7YL5{QX} z9I!VHUI>xEpN#9rhrEk_%xP_Kit6QIZZ+G5Z2e;|ebWDBt>gxn|7_@&|29y#gYt{= z4$a<7n~!81ncb>NdyW6*EtlbVF}Nf0?*Ek=k?3$1`1*P?RlU1`fARQb2Tm}3Q@fpC zY{JRqKlJoIw~Oab@fGjsYS`wkK#KUc>r*Z0ChZ*KX0K@0Fl>X$=wt=f{3opD7l43WN8M zz$J#=hy_I0i9#65TyiJz7UyXy;?vJB?@em-wnzCAiDY$z;zBRjb+$+4krr+@SeBnA z1}F6i4IWweD-gM%k2mdOlx!|kO!Qu4As`y~dw~|tK`g|DES~Vg1KuxwJUh+#a0wlW0ciSiQ zS$ipfpDg_MEo@ps2kkx&>-v?dYICmUWuU1wlW*@O&-kUcWqfgxpmWMyv`O-daWmsT z$F2ldx42ZlTcxT?ZdDwCWPxQSjRb0};bZ~>5fEQBCZMCE8?&S`rH=x|zHqV`rN`Sx zW0ylXoxf|pIq^;c%dj+L8=FjMY8hNWaetG>ZP~;ejXS+0kJa%D@3toJ{auIYHKOF7 zu<|X&(rIGX;W7O_B>(eEsVv4`e*I#8f6v%EAlFIOgBK}apw*Jat!*$f(x#tb`V>>p z_xm)p8ob-`%Xl*^I;t91=iul5@|)YgJV}E6w;rF`pQ_^D9%KR*XM4=1=YXc7vb`v? z36?KczRt8T?c#|29QfY5w^RBuVQ^{wE^PmS_nkct9WJm90oBQ*UO)0|%r}MTZNkwh z1IYDO%uqawGj2wFow<=9Zm`o1NwFBkudhZd*uUsleY2BJdZ}r~tMxjNTQgR5@$i2i zvs5jFf-V>O$hjXGTAiJ>dsF}e6kFVFYrQ`i)=cOfk4kJQ8&a|Hc0jSZ*l>3m_sFWZ zDNj4owfcLPIdo=_v5o5)y^I9BTy&TX2l?B=d$V8EH+VUEvUkCR26rx**U27pyR~BC z6m6IG$O62CT>{pz9xtiS9*bB1MUri2(NVs7wutB8Djy$=CBMT>P>V^bi6u5*TU~Ot zIv#8I2L0`+cULxz4tW3yFl#}sV^@4=_i;e&tcy|q-~vgU;s3&#{{f#JCX{-uB`=C* z6s!;J7eGRGUH<=dv0G-b0DoVWRXq4LFfSw?WfTyr_u3?Ui>6So^<0k!+tEKLoL^~5 zX!ypPYllEXaTKz7yIjrosivc!P1CF2;KsV%(_W#|ZYLLeJSn@IE?cMh9+&B8n&n;7 z*qvB@v}|qV-`q`Xc?u=lmP|BN$IM)U`|aZeEAS|nJv~JwD8>TXqHMHo@46w%BznA7 z_nz5lXzjkFF-@{LBpaVXqy;)Z5WE#oEgudI0V#|h_N5NBC7Eh#v`4<}lhS(@F7#Q% zR|Pd48ZXDO%s=s*Uf_U6h^Gx-QqUA8UGZ(Fp`?RDfXSW4jUX)(&0||SHoJg4zgae| zAbgK2Wa*0dY_~n+X2i$k{he>+xuUWpxoh@M7|%>K;x44;?rvB9|L= zqR@&Z zK0uWOOcvxD-{UXf64tf(qWf4oMDwYh4MCD(O5eSh1;SwL3LZImkdO_MYVNA>|G^-0 z4@y7gkc%i$Rt<;l%gf)NL?Tc28C9KJbK)8=3d5^wr`9pmi?{tgEhH}{_Dn&9<*b zWOXhcPf>O(Mr*?v$*>J%Pii>uiH3la2lVrV`-d)%_>UktqV17EOA5-tT>4X(9fb-X^%tMD->1<(lk4hxAr%2tywQ`*l=;jOiS{C3STH@*vE$Yh*Zg^+Z&85C#f0tr7Ykjz(IbnVOv_L@6v_;T;;yc` zB&4;9nS87hvZWPJ2b<-JZ2qXEYqhm2xQ!um}2SA>J{ol$vL$V<4 zU1@d~_JGr~7nX5G+x~Wtox|;m(aLWmX&6@Xf>@^MYhiY7j_3roD0&SzWHdA~(-Yob zzl?S2^wXhke>AgC*EK&#DDRMb`h-vtQj+#ro6y>Wjz0q-&fOt>x*}!yLheb4c!+j6 z>AbVf)VqQ{_5GNza`@!}#@bHG4~JbPb|fq|wD>AMsf^Bu20b+2)qRDGR(k?-n{Lxg zB0lhNL~s^-Vo;F6)hwsY@^hYN*zX`qK`P1c*vwOIx1pOfi}k;6-D;PBnoq-fqANcA zm<`dFf{mx`cKyLo_po>Y-vN+KS{0FBY5oHZ{X2=7it~B>^9Q-W(udxL^yqdKcmrgg zbm^SDmJRh>rB#r0j|>Iibr+Xoc!{OFHX4*|M(%#@=^IL&Kc_YWY(p3P!mc2 z@u0*`ps4*-&0)zbA(UuJb1_D4_iq-*sShd>#6eAkxFBMiB?fR7J;d*sfWt8?i&1CE z)9=}3vYDN#(#dQ;8qZ3%tX}eh9ugsqGF5C500#TT=?{iCO9|aTTe=7xH>H4^cS`^w znkU?gel9})aKjbF{|k6cBy3TeZ0iPoUo?wIHy=hx1iP^)>LHWy{$C+ZQrKx5x5!e< zVd_R#uk7BlCr8J%`53!htKKbs#mLT4;Sfl2_0_C#bnqyYYPrGxkq}qGwa~$PoQtM^ zA+0X_!r?^s=_{Rf47BzOji*#r!(+coO`GqyBkzsf1A{(?ysH(!tyfvk{r9^HhBlge zy-y2uio|mtW;K%X7oVGbKnL}TOYIdqx#a^MQktl{TFi~b^EETVFdT_oM9Iy69-Z`_ zB3fejDXms$$=?80Y-R*I4X}FwfQ8j_C`0DVeCy4UveR5nhZpDNg4;49lzApv4F-Q{ zREhLj*ZNv4v+(pEnW8Pyc-=MW4iQj~rN(Tg6S0UK{4_Xp*gh4nQ`QHHC$QfBWpT6D zu=CJu2Ca-GL9XkLRKt%wj`2UbXwNJ%cSDC0FT98T1f!LApR+I3s~;$StEWf$c@#YP zO7P_oZA*JWY5A9Bs+7TXb)dDLshUsNvolIpVfDs&L(yDF36?j;Z8OK`t0LjY%)?eL zV>hx?CBXR_BN-rMnb|VYOZX~ACj6CKLD}rlRCcbx$zEOAnoB_Ky(`UC-WCy69ubuv zJLnJWT$^=-9$lY*RvhKgc4)oX?Vn{}&*~Ju7KyKomGv9W@+AF~&3*0a%4fSqd6(y; z(o*fIQ@)aK#xpBV6QFY98%=~1ZKqV5hkab;Ee+%BjdjRRt+1pd60;+x)P+Tf2nHQy)F%G*3uh($EYsxFF#^k)OuT zg-~;@%BNy`))-hCuJnTa&=OK?wH;$g+576=xf`k1?IY^1N`RQ?)%bd;{aInwRaayHMO^-k`y4{C}l_uzV1lTDsWwgY%SU1{Y!LDer&WnbZv#jrQ8Qdfwwmu6mqRh_N!Q)`;;ee0hM zJaM$G$~l4_-nJ+qhL?o-(ckTUu-a(|Cia8#sT;P}dc(qQy=lxt)vtsH88emd9oem%N($Q%b$EI@ zkuGg^0n!z=Z1oLdc(75LlsD5_OVS{*PH4{6XvPjqXj4a-xB z)(%{1nbz#+FD!r@?-mzihK>-BEs57FfM4{P!r|v@j>u<>5n7Q{JuFU%fg?4h z9;eGtBvaVad&uWwj`vbNEA5PZR6t3BfeZX5Avw*&$315X&3HQ=SG}$oTD3n}`4W1= zIl;qw6&l0@MC^_t-33}-m!MX$BpTBBZ}LzZF{d@AT3AVac6i&MHiDyl^YQIyAn@Q} ziHu9=hkx`L%L`AIXZW5YGI3(rjJ`T}TyeBxTS6W3wac!)TxA%La-(DPQ)LgO_F+zA zv|@q@fm~7-S7MiYvcy!?gU98kELc_W37cbMkusuZzs~KGu&V94zliCg|7|{~jTkZ86SqrWK#5`TnjJ^5BR6E3vq)~9a zjdz&@c+AQn4|P9kXZ5lkl&FLCcbe~9R)J-mm=6;_%<5f8?=Hx;**J1S=`LGlZ0M$v zlv0Y0m>|>~2KX1+1+*2(0&U4)^rcX^+4!IF^Vl6_pK{Z#S`RX%Lfe4K1%%WXDjRR^ zaR-pLfHr&_+v}SnLC7~B$ND_J63vpYxi-*#h~w=(W}Y_+Qg#`U=$r$)6=)?!4mv}{ z>QSPZ{)VbEA28Q*6g&q`SC?dNT}3DDWQHGkir9dop#7$5*Dg3?Qon6$Uz)OlTN+T7 z-rg@FKZwOM>Ak~!gcRj{w%` zSL64v;>$>}zPeJd(1AIZXH)-v`^XC9RH5=zysd`91zn=H_dGg;;G7jq!(0wlC6X9h zY4Mw;@_c?+w8=PP1T+WiAX8L;NlH(v3=1HU)>G-CKDAF=o+9dV;KH>u)lmx9>r!o@^`8Vm4P1mZtne6leA+)4P9sm z;;v2Ru>Z8c##En=Gv|@;Zq+y*+i9-#Cftpkj^JWWpM%;)_qnVbXK+n2*P4CxgQ^?n zIFE7M-7GVdF{inE4kHh?8i$39uhsu@Xz0#sQztx~Jf&94ex0fCymC_QeL?bew*(j7uHu-sDzLZmiHs` z>R3F=&M7KU?AfY4Z~E_OZDR&GpIB#f;{wY}K zzW(Ot4rlWvB2KsJ$nNrtQPcTJm4L(cn|{KN;;|2W57N?L!5NQ!nOPgv>db?Apfa@| zlbo2VEm_st=uMu=p1N_XvddtalZCG-ia*TI)D67H(cG!&?50=IgkA1dxVKlU6Q`44 z`=Zir{Bf>Ew(JWB9}@uBOLa?PLqZd^Bi2zJVN#2fj`ufV4?B5IKogNuEFuMoiHTX* zuwZcUrCI)nrplu?EWuqHWvn3$f%C8KrI72qtFuS!j z);B~SV$6wY)c+-DLySs%MmVxrFfOJnF54FO7`u8u4;rhGWubV+T^s=ykBV$@pb)jIh zdkL+icw;>$X2j`w8b+8T!(hh80ZwH(&)d_Pj@ptyy8;0N8(U^*#X}}0+GX*nnJ{a+ z`H+))?j6=Jk!+K&D+=jW08&b>BuLfO(s~DrtG&SUF3|e|{B}IL|&Hc@CX*bbRFJW5r_PT%cKOU3r z@3ZH_jVN|y%4X+NNwVwQR)s>D8HS)#P?2x&PRKbWzK&L1I6vCt23sS~`gs9ecL0FG znSie{7aV;hMrh^J;+UC^&Itq2ka)RVaX z;CS}cqdPwrQyr-^ASQgsfOGscn>5O6`w;~B;|)GVWo7B~^|epb`?nNHZLRLk!e58v zuhm$xM51Vz(cab&M#8?jyU)6oGm2KLBa{!A25*$Isw~DS$-J9T(R={Lq%_#HvcC!MgY`2Wj-8JySuWw*xBTtB!(6?+fV8rH-)lKRXAY%i;NLCQ+LMF z`MJ&HNVDQNBw<6Zk5%?)sUKL@s??SNl2Omx%)0V=;oM25;hDw`{Fjrxm{aUO{o#ciG3(~{NO z`0RI%69n#GzJDz&J7przE;pU*oL@gvY=YgCR|#11P*poz*RR^k#SPndx0Ct&>4`Vu zAL?v1#}izjc&3%*;{Z-ORuNcy(P!XBD3>Eq0Zd5(k(KCt#Nw}I$zV)(n_KeiIIE=4 z12gJX;Q-q)bjoW;dw5_`095fV z;G+bE1TPNB2L6A=y=7dK;nyyTphzPioq~V@BHc5HB8`Z|Al*nxcL*pU9nztsbV(yA z4TE$HLx*(7kmsKNdC&WM_xbG)``iA)%skKV#9HgV)^)A>p7jLI3e-HHV31Op4d?wO z^rc*>F87N3ssr}z(<-YM)$>iDIZh1yv=Y{GZw^uwS2zH+Ti z{11|q@vk8_51)OZ{^twwiocVOiPPE&F97p%PL26+g$v`$9@8}3kcZTtrhjkaokGB^gXZfDziCkg^ihQYc0&VjD z00=v~{E7gX7JtmkqfQ^Tb-+8Q>DBe~rC($~y*@`uV=@+yrx{!>RPAUq>@vZ;qs9-@ z&OfSE%RzW4D!%Fa6|L@Xg*fbfq0X(Ijq5oVvI>nZ4U2>3=0 z(-fxx#6Ao;5E=G_J~|>E_MusL2(xuc8e26X(|9X0L%h!a^UUQ}yvGZbhbH!(EB}S! z7v7~BDr>5zH7+(a?j1fW|LZ+~rLLVZv!z-IjNzs)NqD+Q)#m;7lGXEqr zH|)O~v;w9QH#c%xbOv-3dcoYsz#nYS-TO~-ZkAk}Y5D5zg8D+jBLA7B1MH(@=D(~- zT?MBpY>x`TpJc?n-W3al>9x zdUv|IHQ%F^M1`l`#<+^3FRH5J+Xvp&p1fdaJn`D;@One%n=A|7^Kr3*TEP`2h$b1f zMv@!HhOD3se)GASi$=Se*@=t%9DpDfr^ZBnHPddbIalg_-$rfk<>jc>Xe7vh3h*5? z#K-)<5U*TrirBHBJ3&Nne!Rch^-c1M`ga@>JuToy2&i(KPqIFBg+F)wg)($abmDJ ztR5<A%52kAiXd_3Z7chJ=LlRF74(s#hkyR}|v$?8TOOj*5n)^XDC%`tsj-|F zg`Ylp_H?*4>Ta`0d_ZLvDuIqGlc8_C&Uep0f9P_XDHqGT@_uT_Bp{I`b=irpp}CQ7gvfU9 zcElfJu*Yt;JfH3_PX8h8=B-4pX#?1Ff#`WS`riCvd##M z&?jJc`&@@a(s#Blv?KomWgx~6upW?*#4zN( zBG1c8-{bL7A;+llJ$_im?&0yuK(!)jDA0W0IIv5+-i;{7V%;%FoO-TZ=e4wS&e_IW z!><{lnPmLp)=z$SzIQdhPA}-CO>N?H)Ro}TG?EA3i5iaJEE|dOgGjgiix{vm7u&t> z=aCdO|DoxHE-=5Rcwon(z4IB9SieQEqxkBbdOdmKd2$kx4Ig!*{|W(c80kOw_t-!{ zkUST2T~?^KVkI9(Lhh1m1pb1)%dswKe++E0^aV2xgh&V_o)RoKr2YP~=m~XvN%;EK zH?Kz1=VqMCC{ITT1C{3B_V$aeA&P?&)AeTB$ZnHVee37>Y|pcbAs?S9E&p429bb{C zrVLlvgSoCa=tCV(6*}q#Mi}WjYVLPO->9liZabf4EAf5d>3!Iq7IBYoCSljE&T`F3 z8DaQ5`NU-Q)SHHK1`^F&nYkD4tBW_~J*jL1-?Nt`OuMnYrebVL-F8Yx2z$3N*0i+8 zz;`vJOSMxcd3HQ3uq68}uW;g>a(>rDzy>h_wGOwvDUP=hOfD&(cpc73*RK|6XYUYHq|Twz;2X(u9_VarEcVxo zg;Hq#Ra@DX+usYFsmL*pZN^RQ$jJkm&1C}OU!hQ!8H4*V07 zy#|u&jF$~oem{NXpX$C{gQ-9F`$EA#vKN41q*eqX2olZ03K{LV%hDE>gL}U}^sn%6G+`^BRZM+_a$--bW%c2eSH^PPAe8pt_GW4Ly zlH8dC4LZ+{*7n}0Vk@NyCrd&pzCIO*cj;$8TB2{0eoPcVcl7N#F$I+-Z%#qCZIl*2t!=54(8iZLr`h=U zN%BdmMFT>jP!5BRh24#r#RQTvOU@p(sdR(Amh{s7qAa@kdvjT%kbT|`dsDh=h4YNL z`JM~IR<~l*zVkI!8Gk0e(T2==T}n};G9R*MtA3C^as5@5TgBM%lT_ikvEw92?cTNt z+kGEZ;=;tNSEB51d2zMIP<+W)vo2j_ zzxH;4&a&}qt8QE98%ARlQssdJlkf(5Y-k$1E;##lbI0k{M=JMyDq*@=>A&oVr&xWO zP`ol>BJPtPW{a}>z1f6Ve|NUhA3cU=o4BRQ;#gU{&bL|BzM7T7Q%A=BF5O#S5wo%oxr}N$W8wCe$^KLw$^?`BVwom-6Cmz= zdV4<1DOFPMYfQnjyWq(j!e*|xu0FuL8)9nZL2i&xQ{EQMljpd4Qn}3`hhu$Ya7&gS zY%F$ayEV#1etDj@caR=EA!HReOTOaW0+kz_?qYBBM@AhA=!mMLT~!jU!yh$>Dt#ar z>{%c3=1QVG`-yrPTeIKBFfqfjmutyIt{!FI>i#Ka z95m}KRS|uUIojxR23nDogKMOx`bnwn|b=P3h@*IQ`)FEW@DQl8=#O%da1MZC~5C; z>s}>ivgqCB0sjK0Kpij8T@RDGYxRPW`*3YD@MPXgsaJy`_)*laYbqz$KGrDS`k7OW z<39(o6)Y3j!3u$eQy(pP4o32j?Q+ImW8UQMN^fpIY6sW-JOYpCcSTrkUdgOiM1DQD zroqC?)mj1q2Bq6O5q_N7WGVr&(T(e<3nsG5hkn-&r>>uH>CGK$xqf7YxY2HuI$_Tq z`AoVwy+5zR{j?b6*Jf~s$6+tcL&6q~w*~@frA-RA15=^H-NC8(gCCCj9_f3Y5qs01 zs1QrFM`3+VFRpb>Lqd%bkZJdn`$L`Mh_LgReQT^Sz4U!PeSpW*SU+%p7!t+}YAU89 z=W>vCRjNAHo#wTR7RUF~7Tc|=m)7UYdQZQRn{T@)Us_HG8dQyn6`kz2f(w1Ibo|MD$)99&-KKeD!+-%rIpY%d<{0sZ&GdhAq?^{3@6SJ(c)Toh;Z}{hbqrV zLdw(gEp9Rr+tW4j&KG_V3ggg>PRwJIY+%yYDcE6Fks3~J_Na zMfSI}ISZG{D|V(Ss02IEpM*uW_ATUqFGHx|#OrMTx?a-ZmX3EB%GKgh63UUaU&}}$ zkiCjQ&BF$Vn89ie`)Km~^A4tEWesdNPcRGU0T{9Lx$TQQKhkd(Bk3rIhU4zd2|HUZ z&ga~I@(-sHo$+$9?2_0;Z8@GbWbxA`#z8Ig!`jT;XQdC((DI3&c3tm%hk#gU41=17 zt;N!!N{jL06wAu07s8cNk+wL>vEe^d^F>GB_8?2%ixnzWDIma#j! zN!*K@)Z18g)h;F=^mZp}BhEWKG2QnuCu?&+r0(RSHes}bN!<_|C*SWwAAY2*uJH;| zNTx}`oo=4(d3>8)8efGM&F$iJ2|lY`&D>u&<{Whxw9CYaPpopUc2e#82IcxC!b<5# ztL72`?=u3BGc8Z|)S_jXL z3|q+$TaD793t>xmda*pBFURsxQ>1lfiF&BH%~HuNp~D*(e7aA^DM7rfG|cB~ZNl6i zVx`hJ+C8&ETS`UcBe}9$%axI`bL%jKKK0gbCnkt^BLD34g-590=ac-*g#@>B$vMH* zvy;W%g5v!>g0Pu?w!zFJUkHeTJBE>g|F|;g`^?^I5hszwGh}@lbVJI)kI0KHn{;!8 zd;Gr0z6m!Ww9c7*tT9_evT@8=?*4;9MOYc6>>W7y$ zIhX~H&(|F$SL+_z*iE+d$~$Ik6w|_73D+Yy_n7kA26CMKODu?!CY%RIZi~Zhkb&|! z2sGUvx&O2M@ksUmsu98>=j$qo-&yJa!65Pf69tn#h8#CcA-6~V25!W!(8{A+=zbn# z&&KdLmXJ$gw&rw>*{bG?1^(50hwqKDKu<73G*U4~Gu(vAA(q^V?K2Z|h}nzp>Dhbt z-p(SifEI~iDEJSB$#;ho?Cku8m(yejqV~NslEKk)sC^s>)ljH+eM7=Na4#1P)?AAr zfy;~-w)?VSzY@@rCS^0uzhJ_u)2>#~vKFy3HZk!I2AkZz?0P-vdh!>249d+o;nMK% zuXZ&Mk;m~1(SOYi`Z+&2s5LsOqcxyT^~Pf3Yw>xbi;O}}LL;)NqcBU*%k9V^cdPn# zvGH2#AkCkB?&l*sgwI^XpQ$fj8g=K zLM?7>Ay{6jWhTcS6?36b8zk)Lec!AVN^5E;z)@K^lzp=9s=;8vgXY({U4 zT3kr&32<*4y#&};Qc_aVvaGqr8J-%y_VH{WZ?-fL_3ZH(qqi@S3D z`0-=X7^ryW-LON)*{M! zlf=R>)qXcMN!ZmbVgr-l;Nm_4D;-l(Xq4E=cdIk60;x?+by0mBbu%$5 zaV|V9-zEo5E%cRJP^M<)CazJ><7}Mxb?66}s_H3IwxOv51RuNq(Pdlst!*pu(a^!5 z@2Ll)fN{jwK!ah>8X)gY`q#`%#>=z4_49*et&$0D-(p(lZ2dn z{N=|RX|~*GstJv3LKa@u>QS$V^fUz<9bpE6uVcNXB}ct|Jxo<%p${jeQioLiCF57( zGO1*^9wa2aFkLgM#50x`lDcVAdyqKuWnEr+<$|1n0Y029%bTnO+B|1vXFuiOSZejh z0uFvaON%h;SIWxDLK|2yfy?M%sWY5WlHt?GW>k>N*2KYPQCZC)^^DU~o;$3ptje)= zAn1&YjCK{&bam;l1MdWPv?Ut&dXV2vnOE`?tC7ViRQA5N?0w`Pe+Ol%8BFrd;VUWU z3!dzEakN1cPD07SiuN}U`_+@H!1p|&$x{Jbd_`C|Tu*3#|-A@2vJh_ zA=z5b#YY4a^NMha;0$wm6(>*N6nS7DTHUtwER0ojgE=|4>@&+zJszgXI~>mbR$Yt= zwog2yWX!z-y+UAhGkdw@Fh8kq&>^QO@iD}ODyS>pW(F9?5aCFqs-Q7)}hKG+o z-Qw3GE^>lyqj$zgPTsjWUgWX(g;J}@ofl(kqQqoprusJ@mp>*MhIv(TC>guZ2To2- zr(5IB?(W7tE-N0YCW$JzLhmAh0)|_4FZn~I>)tZZqLY;X@311_q0~E$g3@S5p3JFU z2E8w=v9T%tu9}&`25k5%A{6*0VrjC})a1LAT+NB5*R-MvmAQHgqQ7~>OvOvLf4Y+3 zWKGPHS5|h#u1vET$ditWi&1{_8b`hWzJqvd^W@PDs+33sMk1%h{D*X)pwgSCvmuII zj47}qIDI|0{^p1{W9gkKX#spiW^FNL;>;G#R>d{oAyJn{r}i(Z+W~WJllf3@v7~h% zw@2#>E6K(v71`FJ8O|oaEMP7*qH-sNBmM`yh6s z^sr9Z^3JY(I{@(lWkpBwFcx6ODh`W+j8`zoI6H`%| zPD=XsAHC5l+(n*X;?s}nB~~m)q8ym*a(8*Yka&+ML2U`yQAtGsp&8rIrwmfXxkwGe z5{^eK%khoR>S!*!7}()Qsd0(Kd0L14+$4POocx(bYC*$u$BSdj=Ic`g+YT-+E`Vy2 zs_7@so^={mIQKqGAO7&?gEM#HZmDdFGsV3;b1g0kY$7_j*RSsZth3vn$yH2Dx%;!! z7!J>Q!V@~ydorHTWL*JUrz!XY#sJ@&Y9ocn3qi#@1osY)6v{P+nOYZ0w@n=i*PyElR8=3POv2d|p|JBTlk@8KR+28Ux)0EuDc61W~ z&dvgA`EPb&dDOJDdJb3nk!p_piO((2!CBLnQ?vr07~39T?BU^IPk;Y1z_BSCp~Iu2 z)LE9S;^OU1*lA;4eeBDhJ@t;ADb-7}--;#=6_`vv1Y$TW#(rzP1E&CkuiB<`^y}9y@>(3++~%mmRW6;Ha4_Qd9G0XLp6PUrVt5vSY%1w zslGH+;xICLKp!pj=Jf45>`#6#2t}!>;YF0l(Ue|$nczh_Sn?yZGLZgb~qEd zNGYO+?T6j0Q@8{^vT3WQAO2)QktM79RqOaC_emK&_OhcDihtlJg7Uzfh<^NTvoS1P z0?$c?X!;c-|M?bW&}75PRU~-Ez%cq50gU`NZFd`qW*#b-EMquD9FE2Zd`%768P;f+1jhpszl%l0ktyPX?rS1D_LeqF^jA zjRNw|hOg~HtA99+U?Ht6`_6KMh7`y+CXHS^%*=Y|u@Rq`$nSk_pQn^OQu=+20dTdZ z{dW96U0pSGgGsz5?f|_@d)>w2Fx6OI1rZqaL_gANVNv6Is@IaJ&mI0J9{#hnGqxD8 z%gIn+Bye_BRaJevz)=)nP>5six(Q4TmE2aqsYZeUIV~e@`BvnH)McGS?A?Mnoe}zD z)P^(iZr=Cr--RF&FpzlD`uh8E@$fcxjgE09l?}f}MzRSD!+xMALkPjH-oZguF|mfm z;1L#GVe2Ga{CZ%O$WG%Ql=I3`;5&+dGY13&Q1Kf7sjh!eNLgoxNv7Muxq#+uD)n}G zE8vavjN*St+<(uCJVaB{|1oR!zf76@Z+C`mZ4N&H2=C+HX}maApauw^;AO+`2h*{i zs-QQ%-g3-|9v*rY?03)FVCr=3N5jnJIu*0Vh2)Gig@!#Hb+_GWqi z4H^;GZ7M8m0wxZQLY;0^U0o#?7r}#r1Ed%c35jJU2-VZQ`Jt`|T3#xG61&UM%$xXN z2G5W^pFJ;W85#X-l2g6ORT{QNB;08T(%tus6KQ*U-Yt2)>(-*EsY!uBPEJ0M0ZEOL zyr~^l3%GFKXIwJ(rBL=KoSYrT z75hCbQRT*+c<+jMr^f7X+!w%a<>!#xqqUuj6eIH5F$46ny;r71||No3NI4yIL$m9;&Ho zYs&tFXUi&n7iwWGN%$08hQnE}CH7mfwrA_nvygC!Y5)$eW*xfeKY#xG>)aEB@N!p# z^{G`u=G6-O_Ebe6y|^n_;wEip$Bi*PJuPuMWrE%c9`->*FZQ|9*a#3RiJS9f^hUQi zk6<88gluR2(0*)ci=-D%;7Oa_6sLU=uS8fIJWQt7Nup6dM~`kbE55 z9s89Y62NNFx7*X#*KW!e6CDkx7{=MWpQK_Uw+qb7uI1V_ATSVlotK|)!b5dF_|dlm z2#D0r36EX{@pv4XVq#&{F9y+ycpN^qfT#T^Ec}YFYa|5X*RFn*0(yNs%4Px|7%&B+ z3Mdc^^Pvo75Deqv;}|)4d8AZSJphA&$Cj2l!y0nbrB}obJ1GsyUA8peWI`j5b{2m^ zNYG~6X_)G^5jvW68dBBP#(UxD$OjUHQZnBcptLa2x#SMW>vF*D$jt208m#+7 zZV2#175O)Bc0nJu%q<}vfSh*CDDxVd>6iNY4Cs3V1kL>4-yhqE+NjMjp8DDKZ>4-Ws z1KswgS0HS0p+1+VpkAZJb#*b>Vm@7I7EUjoa5m>vre~s{q_pydQvbt#cVp4JafEKI znj;3_CHVk)fR2@kVu*-}A{L(a=GUpUW98!mDjtWFloV}PQBl#cv9bM|%RPRpv7Zzj zZ^8XLt;5X#>)Ab#pCe$9p!(!@y=4Gc-02QNRzpK0ZYMT2R>W}y=ia@004@&mC9gwM z?HWR*0Gyow^8pB6h%sF zfh#bYZ?E_Go&UW>2N4*8cg_JI&Tf0LDW^ySIEZ`U3?x3cev_QLy9h;Cr_VhPMPp;* zI`;$SU?O_Q+AqPuahaL(-%ErWOR)eWr2>-pb8s-f%@j{-au5*GLjXhm0enQ?yNblY zT@@(mv09$eBJf_ZRz+6lW@MY8;ms9FDMcXk8z-!0L*dtAM{pIu&XJK3px%Cb|Bhy~ z0@J&}l2?!T%?Aumx2JP*avlKj8>a%DUh7wcAU(HA=%C(7@2kumz@dtKTS7u~y`WGi zFs#6(HgGcruyWJ!h+?sJbsxPZJOiR=Yik>K29jNc)i?(roiwwW3;%|*AG5O`{e4Az zu-`#E+TwSs*-Z}GCYwY-y0*$%cJ+@5%WbCl+;m{`rQeIF>4<`}8}AS6|4)YXSU})c zWAK;}D0Te$CE)1js8wr6e+_8Q?xWBUIbw&k0qP8oHEMvbJ8XVhL#e`1g@qiT533_He^NwLzQHQ2Q{)9fh z%s&4G2?^=M4tbtFeUdKwkcJWF!vsLpJo&Mx2tKua8nnxw@U55nQqUNnR+bryWnsui zbNL5-8M^ay3-&%(BKDwks$sPG1U4f;6G1>D5CTeIpd{+rNS{3nSbvmwGAOUf4XxOV zfbywfm8wM%%U?;1>@wnOtbken0&&TH!bqt7v*wP))RQffYD-T-b*Gn${wa8f>snjEP#KT+HnO11W+FzIH|W4prQ3X`CNY2=V$xMQlWt0 z87K@hL*mvo>?2w{1E7>iy1K!+=$hq-xI1=E25G$R#X!8SNd|jEe!4Som8HJQ^}ueG ze{XJnhCAAI5a(K1@JjOhf6HtCzjZ=0bV;X8RsO?@LgoAA7F&K=b$_Ozp1r}_8^??2 z*mQ0Yy7!;*zt@Ov!e>F7=QAESV9^tLt=O&nlckgN^#2*AS+C3eP k2^4eEMel=j-QK6xWKY6adm9Fx35Oy7`i*qyOT&Qw2RQnmjQ{`u literal 116547 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⪑>GTMG8fA}>Nw`J#_)|J;jbRsW=o~x` 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 E58yaC-2eap diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-explain-summarize-columns.png b/query-languages/dax/media/dax-copilot/dax-copilot-explain-summarize-columns.png index 51449c4d4d85c36a6188d853f77a2bcc4a1612ef..a763c4ca385522b0f6bedf687e2a02a5b61bec35 100644 GIT binary patch literal 13578 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

    u%x5nEo`PJGf0PoGTN!lCO>&-Q?B4d&Z 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-query-explanation.png b/query-languages/dax/media/dax-copilot/dax-copilot-query-explanation.png index f79a3dfec0601a93b2e0a442cd5c4abf9b46f58e..0dfa7bd3568c38751eccdda45d5de2a50e16fcf4 100644 GIT binary patch literal 39965 zcmb5VWl$VZyDo|aLV^>5TW|~RF2UWM;O_1TPSD`)?(UKVch|w)ok0e<&3DeJyKC=r zf842>qUi3KUcI{4WA8iRit-Z3AMidvK|vu)Ns1{$LBWVYK|!a#hX=M$e2?J={vbL? zYB@teVYs}#q1ViaJ%Eh}E>d#e5Dq?K!;@fVA=FeuL6Ja7i3zKEWSp#eyQnO59zd!M zm^nE7zT-zCi+{ICMT2E178;RPc6-lG%D`1M8{R?+Ipn(`l6Y+}F-$k{V%;tzG^wDlm>6R*XWcw9 za-+1dsAx}H`|*&ocpeE4c>NoioQyr~{`*%L9v+@4eXMC92ur(K_mtCtk?&vn1;<(pvo|j1OJ9W5X{p2vE+zfJYcb}P`@88(?{^uqFZJU&uIxIF8&B)j|mCy6agHz%?I+QMp7;z?V z&qv}j!fLSW`*T~5aSH0Av$LYc#>B9&_adUJ{l7)t3*zD6;sx7}N#^nx0Jsag3WR_1WWh2M5If zQqr@!$w@_c1cZTh+_xjH5YI3 z-S-VYcFSq&sA?h|2=k>o5a)43JR&DcM}!on^s;`F>364@Doihbfo54S-HwHA}ULs2gt z)Aj7V_lCR*vdu@6&G5gus1k9Kf0|iTR~8geWZ1&pt?@YBE z5$fvds;Y(tCUBEGJg>zsKc>Nd_4f?yx_7B#FN+!NAMvp~AQRxnA0vd2pXQc6;&G-7 zZ$;Mn?X0)U@@F=<|0xg%3;)q{jNQ716=f!@{R4rKGVQCuPXDCKo^?E;?VPigfBc#- z30J_PmUAjE7M@G81yb7IfKkh!DEIhaw13E)>#on`WkW*auO1QD0xKhe^baWhex|&w zA74kpz_zcC)Dy`s(Hb!ZIm~>i9f|$}f@_=LHA_N5!nbkb;YmwMzMq?$b8&NvcCQ!z zBQ|j=kbtENBfm5H;B$?CEv1Ix)!7WeL7E*`WX88{ox+mOqfB*Bfn{H?pXQ`VjeKxU z{k$dty0umba0^0@Pm}Ue=3$FAF}6-2Pl}8sGX(V&$HV_feR&+ous$<#pia3cbxslF?H_B77OniFgS@tX$jq%MwT6@$uwMcaQ! za1yd)&VIDfu-%k+QJGApl%<=K*S8F9qv*2fynzQyVe;XHg+;+ll$fl_=CNqD1>=ih zG>#!A;X!DaySL{UyNZ0L=|2$Z?K?w!r>3S1KZeA`#o6piNl6tH6gb=-skODWJ%N3S zqB-C(XNHDTq+}f!#}=$DVcWX8MD!pe@o{@`iR|e#MW7T_$SOxLMta(Kz`Ku=y&>PN zICD6~z{E-x zadYSZX*%L=J1%K+i~m`YYGOJ;#bEU#>3E^V&}p6gJ(&Ox!K0T2Cv4GY9te~QCt+t2 z$6Z=Lc%KH; zI#D&Lu^&8ZzDVtJ&C0C2%moq)s~H9+kED5EmKoFxNp3ja9;2qvUV~(a9jA(heRjP0 z(TU-7g)EC%Kbo1lc}>behgddE{BczC z-w(-Moes5|NVW>%^G(F5+2%$jHXPZ-0wxit0MW3>Ft{{}Qzp#Mf`PLsOy4OT(Z^N} z?26+xbqK-meJsXi^uK#Cu%~40-9M@9lcN(N?H!0O>%bor#{2Dq3l)kh^Pm1{J; zTS_H8JT`@mWo8QzK5vGha}Ej(L$r)COOk}S?Ke0{7=BdfpKJv;xw3J%%~7uXBvD>a z-#7_72ZkhhTW#j&8QW18rxDO4N7J+=3Yh@K9LC9bBw5`9{OW0@tXc@H+;d=1e}8<^ z*`7LDX7eFgq{VLN@4&#d(4GJ?B9cgXuVvCdRQiadlsWBqXu)s@*9z;8`1<}Q2(yi= zc{w}l9d_$}r(|rVhCWyR72BKK5fAC5*(#pakqQEyAFThf^m3p8vZqtvY@{=Ev}e>5 z5v7R|#=FHfpyt3LM)Y$aA!m#Jf=KaD?_>@x>xSE((#}wUKeNg`$w$>shDp95SYW8% zUmu3Pa-M#qqK6v|40Hj5p*O|)m-KOm3H(OZn&p0k<6{{(iKw>X$>(P9715K%I)#Wm{9E6-2K4&3WR#w{%zLKQ`^g-9%NK8VKoRIryKq?uTKWzO~%iL^NC~MlJC%Tt`{5+ z)&(4w$QfA_=ea*nk@sFj6bl$72=&RzC=jCw7lhic7D12vkaf5qCwd=P1zJsUWNq$q z2|S`hPBAiLaknFgha9zPZX5m(#YI7sA2boxP7u^5K}-Pd|~#3TddR0xe;mRCq&~HcdwO#eK;8 zru%ArFY2Ty^sdVTBTsb04O1=ocBREJ@UfidXc+-93qvB$N=5~Qd<613uq-d`U;Mb~ zC>s?`%EN-=mDXxxkzZV&npUlI;w);HPXCJXfx_f~gEK0#%#+M82p-mVmF*79ED57R zi7>Np#ojoUd2<7voYxHOT1sBP9-CcsXt6CQs*1{5lTWk8J7fz*PsUMj(EWs-Vo_dR z*jgXj)HcFas?5oJITe)3+v>OrZ`;X#tH_(yk#X$&})CcyQ7v`$AL;XOtg+Yx9~m62jr-1+r+#D;_!)@I^v``YRm7 zBx$Y(de5p3-qxF0wB%k3afA32ma2q(ILqH{D-`qwjxVWgC@d}d_1Gi;k4VbKHt2gh zwHaiXXOKF8m5C$4)wxn(n^WH$<>mX)_wQ7%R{jj=IpzHwPRmEqUXM0o=&2i;+73vM zIakwRw_|N?R-e6X?!CW1Pk=XCt8@J8%Mxzc*l)h4(^u)+%k7L4Br@a6^;$^#(9>>N zvO(FZxeoLIwr z;)02Fu~P>x@?6q3VKL8|;ZVVZJc&*8mx>_y!)yXfUJ5QhMsQ#Z|J-tgOMJPmzsBAd>d3eq!5c zP*i+6o``9!yIpz>ULf|4d-c4mws}k+I6o}p)m~dUy=d02CUzs5w3wZngJyExlkJ|f z+}zxY5`o&=vl?G;W%ZmlV!;Sq_gj37oXdFiinUzQ8ol6XTGW^*j1U(wXCNnYbXo5K zJf) z>3aAI9#GE4V?&2~*E*i+ps^Pb6a?2jPZh*#7$0!Ztt8{hD#S#(SzAzKePK|=nqhLf zWjJq-Kg5ys0O_O(LOW}L6Z=?H?39~p$G6O4NS~5*r2H8J%*}es-OVTX^P^?t+0&^eP?GU5>lk8 zatoSK1CSLQoSxnuuke!wUG!3{UiN&Gfu1Og4TBLfaL2yI)MQtcz~_shmmZ0cKD0h0wM_O|D}2L{?(Oz~wyO6WiF z#1AUy-~T@k$lYFr^5?m81$l4^zn#o|sG)_rdyWG4zYXYY`-h~$kOV#rv14lrlMB9< zuG>xYiH82?fzPWrAa?bBBPT)Hex|a_n*^Uv16xYx?x6=9b@#BvT`I$${c931wk2t& zRIa8Zn{US*tV)ls+m82{Z+tzq2wID8lJ;@tx+Ipaezsdj6koLuOdB}TcY#iEW?BVB zj63BcKkh!CxFCu95Uoe}a0|3WCEaD!rmUbF82Icv3%TqhCWob6V@$jh3#M&Lv=M&# zwp(vhuuHpZI*-XYek=ON%cva1#WVHMeqh z*~Gyl5ZqEoY754Xc}?E%>Z3+#iMW<*zc3PP;OVuzoB|NR_d#-UnpJP zIYIyIo4|nb_upXG6lfe>EoWmfIog$g&iRaWW%l5W>L;_o}6jXAO4;tJ;{j4;rCO1W@P%ZbZd1_bYo9B}9 zF8^NIDK%q+@nx>m78)1hJ;xZN!Ma|>9F=5vJn=M^FW{GEi_ zdcSg=dQ=it_tVAoE?Oip?5>?VPq#j25#5-j?OQ*5kszCL_MX2`rU&G z$qa=%3CFGH;I@zYkhMwea7vDz9&5Y@&y#--DJA;(1J^yLw~IQ0E&6mw#YsH6bQzd1 zRSU*<*@juixWoeQ#LE4jQO;j0yVJHL`i*|Ieb784Q1ha_qjba!o+;;6%+GkwzCR>w z&^J6QjRKONW&1!hTy&sFVC}keGJHwokeJM{C3M6+5;}X;VVM4%D^X!ibRMem2kgKp zc3z#=Vj-N}EOBpaOZdM-h>b1lY(kFjpiI(V&C$I_7!>}QGM~Uvm1X|~2JFwYyOk$j z)?fNudGzo)N0j%|wjavUtVil7AY zSa3T#*@h|{2G4VpJpTQe6&G{$_jB0k<+8Y_9HNDcUbpWNM_sD2+WJ1|t72mtM%_G5 zVhjtWs(z8x_La@AXl&z}x!;DUlO3H3MPGxOtTw211ZewzWG#Ok;r!;l6ph85v|Sp$ zY{!dWyF{TS^cyAkC)+i;j)iN&EwfR}d^AyD*L+IvdH zsUzst`gDJNuh#Dmn|fShQ$j|+tt!8&wETjn)!!cPb^e%v-p#bP<@01Hc*9w)U*6+6 zqX`p3>$_rssJfcvAD(K_{?%AfF15rqu%dL0CpRt6Yd6iTQo^%$x9zy}Jdwn*vMNn` z^-E}u(d>RL)seB$sSN6Z%%7gyMcC?vU)L3${jKM#1~Hw!A+6;Ir$iLIUB5DWboZYQ zyD~&~Xx?9_+Syp;bXN8m`+^7cCu*C5D`bNbZeUy*%OaxO=z^7U9Iu7F9((<-4v7Wo z=9EB*61fXVacNn`w{r=Z%3lsdLG;*^-=c4C$?c4~Svu-O;zO&{s!!6#@aFK3Rt)5) zEJ}a?W*hB%V%u)n~d{b#H$~Z zTGTa8n^4(mafdIVYnla3A8^l8zikVne6Jo@`u(akd>B7q54A%#C*( z`ilamqOI_W+cy+LsM2Wc#>)F4jBwY%IO{oM#;!2-8fCwNx08RB4e#jS$im%6NaGhu zNnsl8=R90n=ReO6WhGBnNKqj?fZOX)-FoS?x2SB$R-nxqhVHt5QjsUTi+gY$27DlR z(xSwW1N%G_kpUpdL%Ko2u?X$bvaA? zuc&9)9qiNLBKm+AMz#q*Nb~q>x*@Lt>)@}lf_bjd2Xj72EJf=EgheRdX8Re7lKlM2 zxm+(DV(aTuVN$!Q_N+$%M@&ezlU zY;2>(QH{297VMVa>Gy=TIerN&7V*VNaF=WTbS3^LOqfmcV{aE0trju^SpP9&X1n|91!UH8ojzUFCys>R@NKG%%B+1Kc)oYW;<$i z#WhiqKCKKk;ctj7OS7uWXgWAQCv&PxX0u43AR+$R(jDL7>)1TqUnpGOeoV1ey&k#c zb(qvV!2#errtQ}Kb28}_+sdXXj!FM0+g1^!M~OXIdZIl+NE${1U=YDB+e&M5!kcmY zCoa;JFh2YC&K_UR&l9^@27lF^H-Edeoy_8{@u|^X^GLEcYTC>|*Xm0v!C2$>&Z=-3 z;1mOMCbP)I+jWy1OEX{_?cbct23z3CNW4TOOxdA=5zE_@2au+KZ5drlMZKmfI{uS~ z$UCi!&|jz|m}TO}cMfRIvJEt(mt2nFAZ#Owl3Fwt1c7ZsN>gjcj&?JuHGXtXh5MTP zD7Yo)DqS?)$E1DFVr%QynThN5&z&Oi5|wtLBg|91W{T?8+4h%J<71OQYg6+2Yh}$; zi81NprEF6P7b*hO#CA-~ET_ZMFpR51uL0iHUDdr;|IBe-bc5 zkku>Opa(Xj?#$>jZ~LEo2k%GKG!_hOX2EDzD>|w+>ag7jfc2b-9jZH ziIj>K^(PizGa}2WQiNIy=ljN0G*uEPniBL-$r&Y4X42H2y&VuqrH$tf~Ry2PAxA0n@Om^R@8+18R-tC`Kh7 ze=KZN{=YVYY&JGG3A!aF&-qm}ymz}(XagXBeji(%VyT?;@;8E`Y|I)O^YGuceVGh$IMFEyz^jhDQ4?C zhmyH5W-Y%EJyXY|t^s9t;V%v!Ot(?@(cqg{X$h~}O5z>CxH3Rt@hpgE*-k3bZ|49N} zXx0tod2+ft>v8m@BYNS>tE025&3<9o>Dt~9PQ;KJay^$xtzLnrz^f61v%fw$a!HXJ z9CXB~cJ7gkLiLQwx;IPN^`g#eNfkrWol_pE<(c?WH zo*Tml(YXI8CAN&+vGSnWBP7H49&Z&|q5DS;XpE%HRATlZm4S zV9tP|aNG~c|2W3;mo!np^WEY27d-`|8B_gV{Mukw*!tk`IRPY1Po7SuU2AC3un*Ec zZh3p`9p&11)-K)|Q2(4!SHW^R8#7EhgL$fco4%$4uRJN-$tIWVuphgMwstY%Dn;N556*7Bm-lrNw(J=$e{Rg1gGN_l4H z12@G_YSO_ogqA8v*|<~lb#{yYrx$=f2e=ej0$?Q`#i;(7NiXqq#_S#`D?X6izTjP@ z*lkSw^wkmBh%d1{MZc^<#|2PxJ~H#-4@m~fdudoT=0CRv`3tq{cjrA9bb9HQNZrc| z?Cn%5^91H21FZU7_c`piP5npb<#oI>)W0<)4wQBs5&;Z{Ps80fYdk+v+*Gdd>}F+r zR%!$>ZUUFov5{#;ly=zAP!#Jz)&X-0dE~#L&{StzpdOK09JYDhai+7Q^mmo{(n;Uz41v@4q?Sm*w_-dtDu=PN)RBi0@WXS}#w|$c0|M7R zUCS|v#RBS`!~}Kx@~LFE+*eA>@YdZK%fseBC?Wz*(fdd7n>3p>7FT$GT9ty z@70u5(txJRT!^?*6~NO2l}vLnoRxtF%_^W(X|w?`Aif)@=d0A9uh{5K|1;@vfFeA7 z@l}?ty+~(1qST`(@fY)Iw4TDyCB}Sp36L^wQ6(8;65p9R|=EL#)N(9 zk3&gs-lnXM>-37x9*eGwrc6UWc}Aq8u?IVi+x@ z)1~as@y$F&WQ+2HT6K@2N&q<5aGa*u7v63{1MoP<9}~J<9;dg#&l^KZO$2q>WJ%X+ zbv)jESA28WbPI`H!DyHf*?VYuIS2QjK4>W1DYyz;xm@0;uC08}DbHW6odl1KUm1Rf zKt(K%M+|ps>}U!s4qM;-Hr65a#bUI|JxaRzTh&Fq_LDu2XITdjb&e3X>cT&7sxz=F zVV8GMsgfYu*!THu`hg^2g$H%HvMS=`5Rm7lY#hAguUFKn^AKq*KXEOHHI{YJx$!l1 zH)6KHLpC5qU!ADy%^3+a5X~P^c10-yD@vrTqP(oyPi!6M=ceTIbEDU?>_VM%h%K%O z)yL--9}Tg1vzK~4DEOAbRRf(d77a;4h84%z$jHcmG1vzD0k^<+-ic|=)U=;fYUj@> zE!>RIY6dDgo6u0W^*A!-A2=#MU6P&KO5Z4AbhL`;LB3)=(E^ozoTA=8 z{vemN>#BpTq4w_g{>#<7sF1cz2$F+)7oL?g$*t6`b}XQ!hn+pW1U>TT3P;`aKaif8 z`n8}=z58HLz415Mk4<s$pqmaz8aK^iJ^@9-FPkU*SDA3M+d zIdAUn&c`dwn4eCGD@pASgj z$y5vN3Wf9(CNFL^A1k~}CJHYe{ebqK1)mW#_RI~4G}Fxrn_%OhMw_w=5ew1TaA07d zR4RLVO3OX7U?C+(V4XH3BiP+FmfiKlb*X!)%;R2dIU$7$P)w<8H2;)iQ^K3dgN&Oz zF?490vw8~RFp}kLpM{Y$LxgOcDT}^}v7RV~@>+g+x*!NvN}OF5C`sHD<#d)(e%Oi21@wYFRdrmS{l7o(0zPBm zQ`_dO^88VPeO2fd^{?e|Qq%FMo}=qBr-p|e0QKNx*7OHx-Ksie0m1aEW`2`mB!9K1 zYME=^uLij&xz74geI(Rvi_*<9xegr2Wh#2N1l68zqlD~e*|5K84{`%mk*L;!DN@B1 zk)p-*5O<>e;m9F~CX(mebo;*wF^2~?mvQt^eAD7BYTmw!w>j)(SurOZriFaZrp>Sa z#XfVr^z@S=XHZLElrOK!Hpw{P(dWuRHpKg{JYQC|9jjax#N*qWa8n#tyC5ysmisMA z44OE{O0(fG&>V~)!;NzSnG;z60?M`2);kJJ0BMBET0>Q+%lan$0H`+UgkS2l&Ym<8 zgv<7XN$RJpClHDE%xh=Wb7$Qv!e>je;C3XMPwkA|#RoJG7U*iIQQt+*;7qt06B=!K z`+afhI_RT&(h%1|0YZuCsbW@;?e_maN`$!DyJf=U5QUU71Y*rl-z#@Af&1;DQ>2wK z?pf!gQ*4MJilqHZP}Hsd_ZgYpEO{Vt-+CEF^IhdwlLMOBlzt=qM#Jp!?QjWw3ypgR zCI5Gd?Cw8C+J-8{qX#IBmTU4iogotTKeJ_kvTh~(6dsTJl3x8>1HAkjtwz5r#eE(z z0{KrRV9F0|GbiY3*t+rmS{cYs&^ZcKx$>ZoFoPqf?dS*yTimeepDM34mF6uT^U_}Np+Bown z8lAaL0Ocw%8NbHy+`)0_DlVz0+1p&hZEpL96U^|YPbUz2U+2dn* zjrg}aiFTm4TQ-O$JWmN&K3=?#)=f(o#JtTWdL2HoAQ%|n=Y_Ki9sR>$ zqh3Vx6|y**HgMuyedcPU||5cLM2QHK{DOyKPHkHS=BYjgtu2OINs)Hp}=RK(y$=f3c z4DY{IG~VTfNIhNbO0D3WyS+(W%pik3G{RS3=2zXs;qx`!f&7<}i?8MM{3E=a+Yh@j z`>__!?aMFsb*?fVen0n}puVbKo=~k06X)7^_@S4_<1Kdf{ILvWF$Kxgc4TK)Sbc+S zcW?av9HR(;toaDNG$V$mmx z)2%tjeL?=;{atf_)}0k9>(gTB+pX*zz58+SMD@gqdigl3F34ui$L5gsNnhGxt9ncm z=Ci7>*fsmwqHi>rRD>j0u`A8G<5G$kKg+-fM7+#>r2|``^A9pFWVX)Ul?$gwwh)-5 zi1(HKPk;$+R1LkpC$%5TP`?gNxYFFxpR-j$dT&2OK?SGE)Bc}K0-lS#5<^unZzZ6g z!_B1iMVLOXz|HkfI4s_a42-a45==dL*vxn-TfMz3;I5d!aqyK@vwJFo?aEhrCn|K! zAdflWWo>5m7l~u?uR;32^dJp=ev~wx1xXT{jwja$1}~R`Ql~As<)z*7M>$?> zSz}A!#=m!5zak~EGO?GU3l{VZQhjY4VAQtbm~ompP+kLMi*w-L+=?pTU!7deg-c|FPF34)f7M5vF|STs|;mWX&fbVcOTGeHd}S#y&FWKuPTZWIGjppMYmVwmUlJP39HO!DB4NoVV*YY#D<^Z} zfS~P#m3Wak2QG}#ye*+L(LQE3)Y22T6s(b?nj-GsTVH<)U9G!Lz7Y8S^h7X`WRzX4 ziZ8}6_(b})224+&r~bLlF2ZDsgI|u=oc(#2Db*CxHwDbGFtHV6bvrsYjPQ}yQwJdH zjc_de6BC!9>Se9!wL>GUb5(^sihUt5wX89dwTB(}#Puj8N-U(<~ z)JV+5%MmxdV0|R&{!=I%^K~sgnkws<9jKEy)ynKeDE`x>(?Ip-5J>bMF@Fqo6g*v( zW8Cf14{jy*J9iWfv)R5ao$D=6<2$XaM%(H%MLpY%CBoqgy^dXMyJ%2o-R1*5M(bYD zF6_aau-Y`iJXOYSX8QLB*Ripcwmz%83b>J;?q3^41!orUwZWj|Z%Vhh?E*~OAashn;=q2I^cdGt`Ni>);vR z9?s=Uc=dfM9rXtLu6}&T#z0dJX~=#v<#k7$fvF|dPWybmx|UZkDyFi>>pjDb#=#xW6 zbw{tRIM1sRU^T~k(yTK>m3GXI)rFo4&mV#+|YbKc@`n=($((RuoO)gL5{IWr7 zVuRPn8N?XmYcJr*37fj+CTVl=AwI0ej(>SPUjpsKP(D=cnz1r)Mt$8~%_L;w#32|S zHDi_IJUTpddrp1Gjwalkz03y(ywmD<_2EKr1MrA&pKJQ0E+WEyG<2rW_5d?pO8y`} zcS*+cn&Bo~MT$Jc-sINtF|RXgCj0GZbI&oZF%J4&J=k`Ikoq;6eB;V}VC#}Ey2V)` zsQ>}vafdc}a5+q~k{8qGuWF9VIKpm5T*&=yyFX3l&0QUYZh1OyYiqZylg46CVu7i9 zy|x^rcfE}%(W-oMe8HTSk*|3yj)^@A4SD!CyRP6M87A`p^gcX4Kc|eD1q3qG<}C4r z0mulLtK?GDC#NNP99%i> za;c0`%w6Z@dgOkXBpGhpJkjTj8Abr8GwHBGbG=g(Q+b_;$AkC%{z48QcpR*5eeApUUVEC8uiunc?9U`d9tM=ZRs!zzdq`M^|6rq_VzqL`aaPpB+Cv`1~3k^J$jKex>h{Nb6^^HGeTI<>9Ema=m*- znFHg}0Me#UCVBj7Ir=liy73(wtWOJso;a^+z|kAP8h>a4?!!l`+kT=@7uEleMSGt& zG3=;cq-kQd(vWhh1R(PNRR@Fsul{!Q7pJ-{7L_7-{ByG~-a*X=m}*!45y(1NAXzf$ z>_(~IJ`7}(juS&KU}jtvOp*7S8gZl;z#

    6aT*>ONEe8 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 HEC2it{zD=< diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-show-diff.png b/query-languages/dax/media/dax-copilot/dax-copilot-show-diff.png index 0e35e629a26a2fbe1951a61e6c1e7fdb435a4116..24802c3ad34f9fcecf68c7c3d170a1ccff7a658c 100644 GIT binary patch literal 22877 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 t=`&r*=e*yM%V6C9S55!#bgaFg*HU(+ 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

    -)iVOVJ9 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ශTQ>9Dmk0hm4g3(nzdmmr5l02&gMj)xE2 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

    $qf2jdw*_W%Z4XwU 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 literal 47944 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 diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-summarize-columns-more.png b/query-languages/dax/media/dax-copilot/dax-copilot-summarize-columns-more.png index 89b2e847e8123dbb0547363a236449f91da78073..ad19994f18561f1c765ca86f276ff9b175e02b7a 100644 GIT binary patch literal 73571 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%0DTAnLFyg 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 literal 54089 zcmYhi1yCHp);3HC5FilT-66QU2M_MiLSCErHgvW)4fPg@hlKiFw0Ria%0r3F~76xdchxc3se!w|MYC1zeU{d^h zeUMTjzW^FPxk$;1eL8@|gJfssbtqQ;Pm`F2i?FMUg}oC*S=E>%(1hRuG<`F5Hg>Xf zaIv(vgFu5LAp_ds|Fw(SJ9s)-np?O)R3MG<0IgsC)9Peu_^&Imi>0k81p7S_9Pkd@ zzju`F&0O3KolGHg9p3+S|NNg1w{$kPF$B6gK{RzY!~)H*|C-eeo$M^_%ptn*_CkTS zPyfB&)ydct;`Tl8`2V_z+S}Ti+POg7jU{&hZ7~13saU$$m_n4E%}_x=5JO0P6ISua zJjrtRQQdtV+L*-Qyx%iB=U?;=MEFDusim&lSfzDbaa-cr2zH&+x~F!XZ`E$Bto(>f zZ-;IITgM3}MGTkbo^|>1*4&Z;6)!|gEzq((s|Co7>ULX;j$n}30K1bL< zBo;5^M9+V(O(qdZ8iEh|fB$@12(FA07rh%k#_y=|UM)ZM6Q>TV;=v~AhF8$5%X-S4`+X1p zjS7~R1gf|zWTuVBYiqe*Z)@I;8PaI3{ZO#; z*{;6RU>&{5`>&~3+>(>$jdYV5#V2Uj$5XdF1TagX1@s8KezlVKn zNug_j8$IIZ^5Ek+YVBN<;o@| zY=8<2eQ}pPX4|wOY0n6S5NN;@MDSWD6s;lDa7Rz98w~$!-=IdgI(P+6p=L^6PgF z!Q%7n(eQs;?*50I?*^DY@+1$fWp5Afkl?aiDpG+dY~|Q8A{0I{@S=`*$~9^52$dsc zK2B{aW2_(hdtYwJ%{^**M&S-RUlnETjLEIT5aq9QY%JYjSKUvelXvvH*r3ppRXUy4 zpO#usN9ARPj%)DOx_OQWh% z94}3mDy_C*$1*S>lt;#XjcTAMD~Q>B5?mGXyGg-R-7S)IXQ8=du*pL$U6Lw@627(F zJ#AVSk~2C>FkkL$!Svn73l~ernV%KL)F53g7R6DB4Mr+FRU#da5&+647TO=>cHTen zCIum};&+KU`?HYvMvG@~C5eVzo7TsdB<_3J#u)gil%yN5kq9B^ja(zB#MSdZdzD`C zW_#{1(yc5B)iCtuZu?I(VttR)vSUm61nT+==FK+lejqD*I@9K`qZ2lX-gWnX5PYII zP6e+G!hWF_2}`E5$g6u=)8uVeOe~&feDr}*O@Rai6*OYVc?v2iXam&<9qKlUwyk_t?+&pwsMN4toOpm zVbFkW8FHRn>nbJ|E^r$6A@ti)1-&Y0Y7a5*>x?q`^Hr%{H|K-c?DYEt*I$FKTBY?o zwhW~wo-w-8If4-N+Xsvp$BKm&FBa64x%R%>H6PKTvNO@DvmRecXzExMK;bf@eQv&b z!o$(eL|5!3hk}Xxh{5jcxGtvof}K%a-h1^o!Ono}gLqllv;p z8BgK5U9{E5nmt@>PUlz?dBtkT(}BL+RjIDJEKNReF(vM=`=vDLw-ePq&@jB6vO;}8 zOprZZs2xn{%aZTtsg6-<-dj!Zbd)7U5`4#8AlTg683i+Xg11|?;{=^||B$fRyruG<`~T=H(H%&TpV*r8Z$;VIpS(H{>=ai;(DS_b zlDtILa^5rKv9~nD-Qs|CzjlYsOYcClnL;B^=ks!6?DK~ypo{OFt)8$Wt2THf)$CqF ziU1$DmW!3?9YA}%UCy7+yB>KCwP5{41g}B~g^6TEBU@!ZKrtXyJQ{q_uhJ4fkwLnM zu{7jNR%(O!ZH*Aoj;pcO<**12K8-N_eYx+X!pQhxmQq|R(4+vB=qf{k=5toSmg<>43xh1!W`Zt z39PQ3JzZfDqA}ysRx2<6OGZKsgKgUC-sP6eMr|wXjJOXjYut+LS#_%VmxCL=2Vgi@ zmGW#;?W44vJCRe|^;ZKNxTNsa))U>rnk6;Oi7Q)-%(?Qk#Rdc;mQd$Gnv!2xg&zt1 z-s%%t9@2tskTRw6WO~+Fr;d>eEEp=TTwm^^yAr-a{>2qv56dew#dMxiEpgu1?%KXi z^kL}S<1{G^Q0Y?>QxzjFU8_mG7tj=ryQRz!^dt!Cxl6ybp({6&P8V9Z;=WzI#?JYm zQG}fhS)Ap93q7J|03i|m+jyc0FU~xQ*!_SjYFGbyk`t@e_|e>^s;W4D{b&FDdUdb8 zu+=OVo31c*%}!rS(3RX)L|UIhT=Vsy)6$ZJ^Qc6Q0=L+{zqJd4?~76$+6N=9>n$12 z^Zompnm;B#WkiXYZHEcCAoLz1{KxTzVvD1TA@GkgfaENSRHzJ{iDE%s_6}8*bqf`U zN)EQnvw%<19_I(6mwr82)RM5eL>WsJ!003T_7&G$FI6_jq-N~QvHUc=;rmG{l-$#R zYbL*iyHxbjJn6dkf)F$a|3+Vv8qpn>d3EC5y8>cm_T`q1rr{+{b+XOivr#&xKL*0UD(s zuZ%L!ZstI(24$hflJ8^*wko=BRS|rQKG=UBS!V?7+W_JdHy>%+IEGw@80ya z%GSbB6Q9=^28T4jvhT7aQ+A^#jjie;?|zbspTy~fgLFEOQ{bvu>f~4S%?hkY`}5*> zdpleAbV6+L#+2dCc!oTaNrSfeP#s-i;NcW4Qa^L2&CQjyBd3ZAABYzVU=3o5v;BtZel z3X4sQhkOI=V#lctPW}*>^v@B4C$%>+s?<$3g^7!9v&>QupUY|PWR_8F!t;h$m;@11 zYLh=G%WWTwUF?AkjihkaI;~M;If%m1+eF`OMuT>~$Cr`SI^Yi>gomla!TPvzOv@b1 zz*T9EKUFs3$HgIZ|7OH0@bpT+89lq6Ns5M5$qJ3C7 zY1HAUCxV66o>pkQ_@u=8oEx!Z@+GsMnVa5S*LIY$XW=9TY-4De7;xki*pb93pfTwg z+c^;H^<$MQQxQWe0`%TyPW2ZQ_z-!5k_qG#5$ECnT zhCmF##>CKYPVZxhtZl4i&IlvdS^@MK|eV+?F^`-EQ_| zROPP|y%&L5O0dM>wCO6~M zu^`Fy+Es6V={-hoq4N=zIT*G9DSsb)bbpT%4kX$wec^)Hz1<3K z(%X)Z%AE{J-jgVpFOABgk^wCS`ZcNb^ib7D--&h=5vfZ|>pjsRQ;a{;U z*gpst&hVnGd!0!c72g;=mb@FdniAv&AmsE-5iYF4C^^IYb?f-8pW_{=9FsP@h_lb) zxjv`k{py?fTu{qq_Y~pJ!16diFzZM`;XG}*-Mqi9kH&M4f5p%Ka!+*5bh4w*LWd&# zB5;K3)8F4c$L5vC`@apY8{Opgb(f9y2I%=Ih9$FYZ_wkZ?hN{w$J zZYhJhSs))w=!_`|WQ5~m5>Y=u;aNKt-S00tiaH$I4a#w6qu^Yu&A4L2y|x@Bd$)Kj z6Wgp%?$`%B*u?O-!I#-FK_aGB;TOvh$$Mo+U|1C@%5D#nQ7Zn@?2bxf4ZBXN^Eq|9 zX;{y^+*Za(O!*V+Xaq^peZiSugvnxKKqBn|-DGKl@N2=Ht78W3kkgQ5fO*d6YRNot z-s(Hwoks{pVE|4c33gwN)V3sImHA!MT&BlSxXts?$4+|H$HVv6WaYssfa*J7x;uzpXBo5=EIrHR&uj~|QLymDCG=)mlj%=rI>z~x{t zF-?k`-X3Byykag4mVS6iU@T+WPV-v*4r4-L^y%Y6;y3YVLXk|;xS9M~=5L$bis+PW zaZ0Eb6=Wn$f@CoFhBw0kiFA*t_OwvS=Goo9{xC~R@?~R+b zX^!P^D8=E@(pb?Jk9CKtu!za+g!(4Lsq^JUIk{p*?!91gYi2fPkV4i=T<9Nl5-19V z0w2sHO9Q7Wq1??8jfqo2?^k_r053V(-H>q<#=a5Wz~m+Qf)}LCU58jkxYvD>r?*Zd$;g<9+i z8$w||+Tr)zjTaR4)mzk*wQF@slat!DJb^Hdu+;=xLu~QpsXEM<6;=f6dskAQHB;Il zJ8bcr>{`Tv5%`jz6&LolCbIijL+nZ&`)(Gd!U#e?2d&!n2s3D(dqREembRNHi)Hoe zYKvAuvYdK^kF`S@y|q8q-dX-jX~fI9<>5A{r8Ewl-!BeEFgWp}S>iS%2R50TWjBmd zx^J$hdfT+^Gp`g+_x4UJPmE-5e<9Px_s$ry#lx00Qk4uG92AG_LC$s6zFgmHaIFTf z4i8$mIe6<)Epy#$%xZi~s+Tc(BdBWZpt3v)N2A{}~bhn}3r1 zT^5oa$sN-%i^>$rTv@9$wuFVj&eF%H-#Pm42rv2uM?`Et>CP_OQm@b9gQXDu$L(cB z82_;T)W>!|r`$g3paTBiu%RTnPXnuv<>J;e{{!5@iH=rpMEUJP`#zVTiE@$^_19(Y ziTwxC5ncV?I}+WlWFoLXdx+=e=1M`!YkiKu(?Rq)D^sKAx3=PnJsQ%ZMdT}}ssTczMknrNCwivbmR0r zlE$DVu&k;o#?sOfghjeI@LRHJTypYWLyi*{d1*xMV2#H^7JN2OeOQnQ21YPaXT@gR zBL=w@E;mT7!1l7WF)|$5QO8vYCSBbiZ379V1Z365tYkQ9axdT?k)I3t%7K}@IR?%D zK@3(!>{tUi7OJqnfqtld>#q>iXD$+e47|Ek*RQo((^63-VPMEc^K&6p`Yp;5Cqr}T z!Kb38hKh$LV`cRfY+LVotOgGcpGm9|DjGpbyk3xh1c7_*uQ$*~boO^anT6X=NyOu$ z!D}+Hd%NOq-*@W$Was+0^lmWHh8Q(zgh(DTk?#$PObWvXs0h*;TRal<7``h>%I~QG zRmY((6jk&pszt?h$*S*K66YhqCO5Kub@(U?SqGpmlJn|z#@e>fO3PvVU+u)t&|?V$ zwVhGeL@hw#icTDsmm~aJ1KmA&ZQK?gno0&v>*WP^uO|ger~dYMbkx#mwYF^El_* zjA|LLxUty^k|OX(7w!nV>!6Vk>#08;WZ)8Js`q43?Xwt~_;~QiCW8fnnfd$-Nw5Uk z;+FImSguRaRT^pBob{jWpPEdy7x{&J4q9Up<6E5fFYdd#(YZ6DT39*C)9`GuNO9Vai4HhE~CDfRyL5rS(g436*hh7OZXLr75(MM+v| zmQ|4*kzCR;(AR<8y)bcSXQ#%X=V$SNF&Z2koCjaFF9SAk*tE4}fXxd68KqM)q(rW+ zu5twH5F-mICNiKXRHB4GuYhf}%l#9S+@v8x6FDp`51;9S?t>@y$M zmgg0o;^-?S{msY|Q=$#hIMmfLI~~U=J732swrB&UZlbpf@A*pYNqIjf%-LdDDt><7 zYTG88rQWXhSH`!CP(dc+K?H`D9i>&fdy>Y?hUBS2YWTAtY!!Y!b2zb}9HcgDyL3_ z>rpHbOv+14_Pgn9eGxSHBKc#n_=6c4C}6OaC)@jo29gBLQrpDLEIuIt&v)f+aA3Mb zUVq(d``m+%5M69DB}G@n%j#>0C5a0`9-&VD58D-TDyoF+?1}vxf0*uOM~M?>CpGlo zEM9jdMMYsfJwjkXpddf|>@oO5fR7Rok^fChQA!HV(a~{dZ_iD}UrBa$5p0XMpySLA zoN+K08wZEe^Jx>S<5poH&%|(x&-FOx!$qHGe}8j<|Ml}L0v<<{b=4!glC;2!1L1l5 z^%sVeiOyhI>{&KR8JTTRc@-rqYrRY*AJ0#WnV}|HpH*ikLb6crQuvTx93Bb|mgBL) zO4w+95#$;6Z}q>h-kw-U#f6tbGd7Y@aT>UR4@`6EiCddTQ=er6;=_WzKmXjE>R9@1 zipA<-wlS)Rf`-QMoVtFWq6EQs3t}a2-suQhHNo4b0vi4}5mT!wvqJvru1)WVF zCFNkS&;Z+)(^pgk7+@MgZ+KVFuw6R#DQ)0-ox8V*x_-*cwb(ut39Y_xdpRruA0qLuek8x~H*;?>FV5(Os542=W&QFdt#{P>zR9!yM`S z@tx;gEy9TvC8C=E4Ndo(?5xS}KgMZHmy(deflV7e(FBZ{F&B$Lkd#%u%!QfHd@~JP zQ-i8X(m;IE@A4bVxc~6_bW24+QM48;2P;gBoSUEjb9GfmNlA%G77f_=3&%i7f(8o} z78{GyW{8Vd;OO&12x0~7*tSMaPL4m7iUczY2m!yhYKI7U3pb2c;u{(o0x`d#9C!aI z8)7jVTPzM{yCUEql()IzrIgF;&lL_t5vl3gj8u|llci#2u9c}oMs-+%KP--sZ}RjN zX7_*2M;(RXC2#RD;Te*Zw@?%KrVtq1Icjj>+1G6Mf|z>}`%3>3t731J(nd`7jZS+~ z;2FWMD~BrkfpuhL#8$vq>9>X3L#bkc$KBF?^Im#+8mB!WaM+GjK9o?y=P86C;?36^ zzIs_%TaS#6oA#GZ7Zw(NYpM-4SxdotI1?QgR`L4C%5KY?;0YmSw^wXJm}kw(qE1>4m)uF1D=Ls7-pr!@Ay~;S8|Q zZl@6;w#|s;pd%GzMiZmPR$Kgf&iV7-c@1ROuQfD>d##Var_Jm`N{-R~8$_(2DJ>E& zes!Y^%Q27k+#=>>1wSI2u$$dKFo1@I6>BRRH6*L^4o7ZIHB;k<(?fu9axdM1b(+1jV6LjL`0M52z|jh zv66^ZNW`29%ePtR2XdmSN@FWWd`GG98!73N3-=I_JUgkeX}0LOa`o%8wsVK~SAQ$@ zc6KV#ou`|_(Ij=ff%-{-zKhL1-rWJ>pCAyO)&qNW=M{_R<71(@36uBTGo4mLSh=4s zA_$bLE*0dMrH_od>lm#?TB#x)>B#VvZ>D#e_+2LqZhUvCB ztTa8RZpNCFA%SepM%>Q(6Q^;#^br9mDPv|nJq8i8&de(< z?kcLr629!Tv>eP}1188RboSPQ#6>6-vCY6+{aL|sSl!t;a5TN`Nw&`ye0-j?k1;=# zx0I(@;cEh!v6p!|bz6hdL8}~8reY|m#nF@dqLT!%*_HV=8wk>`JyC)YiSe$-^KqG( zBA%YmkB@D4mT{K$y)n(NZn1)Ni(A{<;o;#xtz*}PRVylNVt4}ETIK%WjV^ZB5Nzv@ zc@hS@f~KmvRBQZ+R;{8NeA-drVb>IjLMHzA)~k(e{`cXBF5xjcN|b&3C6ahF z?)WbfQC>cn(YjP_XUglnanrNamQ3%nmMk@kl{z{W7S@)VD_U%BCv@QG+iv#=t_^`y zHxv_>K5tY(5V|9j@H>#gl^K?ME(e(Gt=};3j*1ke-2R^zz+H)n zUCS;=wOmq4ijtABYupy0&tSen^JNPwgb-8-g>1^;<< z{Sy=&qju;90!sN%O=U5psv@&(!Y|AGvadLoG<+AAqvZV_I0>A;fQ73=olz+2uW22U zKK(m2hwp&i*s#<#H{_L zs;=%h#+;zpa>dJGx7rN^k(JlXs?d#A+1V(}4`15OwBEYU#KypJD(1@X|%1OmW zwe(nIVv39Ho@k>fj2p2UX%}-WvVs5j)wHywQ<`THSWtO+s^GhSYH>K|Ot0qqEI9>5 z@Q05uz+v6kHMXtp`&kT!4i(#>J3)1P?77u0vbCiW#lI>b0t+jd?Aw;;Y-)Y|B(h-?mnp=WzY zgTe^SwHb9$%HOUh1xIO0GNsMT)XG=Hw~$}`1bYm)s;b&nkDenHpmOZ=q@8Ra16jNc zo1DkV-0z3*QWTW5dp=orQH~G{#h+SBUQ;S&#-l|)(@Rh64cM>mzOw88{R}-U|9c0# z%|J4j5w_H~XZ9&nv`4r|QF;X?kJ~i8_7?7z z{=vbSHg_USzs7)&bgQidW$i3j+Z9Ry0m76~F;7qK;NakCFV#E+SlL;vW+Yz$eKsZ@ zBX$MV#+6`MC=w`=zMU)z3Vc@Lj2#c8kXmn4W!0oc>xHXT=SdVStfom{DVobipTZLJ zUkM4br$d(MlpkRbcBBU=85qX`(dCG&+idywTTFJqnGjFXJa@AWGC`fXj zI!Brz^jHyUqw18=J?e-ELtLMBOE_O8C(nn(V-2-d%rMR@*RxqZ$K_}_Jh4zBs4Rs~qDC44Yj3@%SvEl-4fNgO>B2T-9^D%i)R6j2 z{q8H))Nn0aUwJg)|QcZZStkRyqvoY?7^QC?d#g-}Ur$en&=*KCC<%hsC-Yvzad9g!ClR zD5vpxN{8OB=-O@Zb7xYTh(RaScw}@HXH!kmlXG^tUSbMMhd1o%iOG_s);;$h-klaL zf`Oy7o7?ZBql15W373WYzIXrZc{tF83LlcnbIK(ig)Ieae*ed7v^L{Pa{4;iVC2-0 z;4TJ9v-uwbI)v1f!7OZ(ZuYiq*;fc|=wgbcmvglpcAruR9ghSy7BEx|N9O0S!6UTh z8^VrS4Dvp2NDTPSqpkA#9RK`Xt9D3DQO)Js))aY1P+tf7W{miPX~^`@A1Jh_~Hq@w;Y4eWhUjfCgjIRoDFXNVWZO zFGC}FZi@>DMcmwJ&XfGr%7NQR=#3+`PY?cIQ@dKTsU~QNIjemyi;sDD!6$!<+Vl(8 z)i<`5rQyV<46dXS(!ADd*XmNWlL-)sxI9KDf517)Dk6hK7N;qh5m-;wE6a_qi=$ue z?wfvPVK7(&NK92V$;Fn=t zIdgw$`?v3Kqte#Q;~sAFkC&xC!=b}{YVwjngTzZCdKGGvhYl+_4wP0wl2O{^mU)lo zWS3YdoF?vJcz{>SR8e_h^%hO<&niRKC;5{;v1$azj{V_S?a)pA30Of;tBC+VVN(*91(BUs9o7Qvl@Lq@sowcyV!h^{5l`D7k1>vNXzvXT+J;kEdGX55mKSUGutdO2|O4uoOj$4y03d; zm6eqNf%^(TP>KLP1kgON$nCfD+N%zI(Fg=Q4J$c)9}UGG#h;3I$ZXb4ZQAgQ9NjhQ4U#fE zmh8`1Zjd#Ri!j0Le0w@pQBnDoqd&FxlY*kzSm#DIau+y#5C|g?eMQIUC7v`JD&s4( z?(uumG?KSxroPrK)$_D&QtEB)k+3u3kHT6S|kKe`3oRRp!Pv;f-&{J113BJDm1 zV+rd0S%gTZb-aD)41b4e4=TJVL|WO7`oaWO=BrC zwtLvKS#AE1A~Upod2-KMc#NCj_Qz>XP`%DIB{n>`>_+-J7q*5z5~y`4<|+UK%})kPFtm=SynU}ORZgX z-*~lHe(T87N|rS=G)!qB4@UkoH#fbw*!|{a7?ulymy#Npw%I!CWwU*{cf0=PC?G|n z_4$%AC>LB85;7yMGR;i;!&bX_##nMh`tWM|vo@D80Gy1@R=K|e3)8o2s-ikjN4Gbb zGZ{{m{q6hMTR5ex>XN2zUkf80DGhhpyB=Ry?+uht4--N~@yYzQ`~yl~Xlyr=tWK+( zo}U1(+etUZcJH>M^GnvOpA&VvJ+6#DUYq#_RWVgX43zWNx$E5bpQ-5QPLx~`9FIN3U4^7y@UyYS)@cKPSQJF4k<4$9vmDTf~TsguPLZyZJhpZKET%M`m`!dOG{g>ZTz<| zs2>VLtR`heWtNS@zdp^J$QN_eG!JYTz5-Ao6#*jv7uXXeW9H^br?TVO{&F?ivKex$ z+3vwyARfJJ{{f38?h*i+3c9-Ejzh8=)sy0_j(l&^xH_$a89G;Z)dcT6>%a{spUjDfFR1DPW>NRC zl`&tzqrNg@Z{u|S`o@XuZ(jRyX)M8)+p&Lz=p3@r);yRr)Q<174Y3jUtdN^xS`f8e znD(SaM81nOLD%7h2pbxrlw`T_+^@MK)tm8)Sy>%Zc%`FN$(GjoJT~!N4fnkqsjJ7O zrZ)S}bIKZOYf_w7SMOFSi?f-kHobALfbUU*<80Yw`@j@n(#hs&q#^O_$8Og3x37&M*+hye$^b9?&x)l<2Mg>a^P}t35TA@ zv;Kt&R+)2tb`;BGuHsBK<+Ns`q-JC^2OuedL!Q>n;cN;()-a&`0BA&V%Cj{iEB`to zZ|OlBZ=iH`v47ID6nf5BThgs;AdMmt{PBF&mO@+A9QAzePmEiFaoDrej_pRSxVd7V za+$HQIt)kk5~eK2-T0AITLA+#=qF5{^Oi6;aiF#8Cq45rvT2-0ZEGtJx+=*8UQ>#g z=7OqF5ByW#hl?|fLfb~|@)HA%Mk@+{Kr3)R7l8P)uuyL~D;~qO1q3KHn!n5c9de!*P@~#I-LjhqwU$F&DJ(}=ys*Y_|z)7^#?LPqvW^!Vpie3Aq z*96b8O|g7Vr@AHq4F$lFw%;vV`#fxhzU)w$J8uRH#wL?436g{JQ3~MDN1;}Q5^U9A z1$3Jd1j-2Ol(!0QzmNqblqA<499J)CwxG$*QlHI5S`NukF$jDat($VqqQH~(baaHq z5coWX>{;tD@JATExM?HgT&N7pYzVDQ*|~8a}Eo(O~^@=va%ud*XM|(jpbw2nJ-GZM_K`Ux*qCK-s1)r zAFkd{f3~SCGY~Os_K|F({#mrL5RaQ7S^cNoja8Qbzf=C-%!gRY)ZDodV~6zYj3}ov z85)KD4r^YsZL4fe4+-&7tI`QKP4oWqqh3-@&gf*(agD1rP=Z-ix?H*pwqaemyr#BP zd$8zuv(*F`D%|5E^s4WDNAsGUz}thdp5LRGp6@M&cnrR9UsJLIi z#TqV}_t9*Oi?B;@IFq|RJT}(+YKMlLk}@tOCDL{U$alf*?R>z9ep^>}NbBhErRcgr zZx2TIF-2K$ruKap1&2-Rt};FP*m<2x?b*MC^cLEI3-6>Pya2E>3!J<5v+cBmbGI z;ts5v)KqM~Y<@JN<&u(S3bI!Q|MzFXhPLrduUGm}QUTs<{dGUnwiVagt-@oTq9Tfa zbvrsb`qiRwEE*bGpk+F~^B8j!A%8jsty+!IfYZMf+c>9UWle}9lW?5i-e-0>PzWgQ z4~)@_EwqixK$Y;*LY?$)No$kG56G9K(?%@-t$J?>F?d;$>+&!ijHA)nv@U0CF0Z`xS{jfHYD|f5X z)VX#=@%z zh3AIy$myQ~P16^XqrcwAC?-mNpF44&iVhTBa0Nc28OX%cbaa0Knb1=4t&a(zU5{~l zDAxSt;j;2<+dvQE`zR#|$q#F)U563xl{AIS-tfR#MOEk(7Ad)??cf}Op2;_Gz_q?c zccdVmyps`M2ny*unvA0(Bd~cN&e|{%Z8s(c5%I!q2T9R`C+ANMye0RGjGqJZ#bTvU zeqzfmmEW%SOz{yiIWeG%SvF?xoM9pV$Peq#nTRvL%5=KL=D=JT&cgGJgMZPTmDl%p9psCpzM|Sn;T=^HA7?b%aq>>RD zPWJ4iV-C+t?g7+?lAxRpH5pQux59jCcnk~-fXtbhovpDA&xZv@tXXHmOePUSPD{(n zqv%J3c{d@n;A%FRJ&q>NC+Fi+nD*NF`SI<{z03IJ0d9>U0?>Tg&ebk{(^ea#Q-YT3 zlGLQ7;jwgGn1O1EpA@aJ063{JvKV~MqpW|Pth6}TQc%eZm|lli)BL7y7+Np^21!qE z5JO!@4p7Y*i z7Jm_2N=dj7BM0#65Ig?!B|)T@>MNa%m!3fNXrS$XzaEYlQOYJA=`%UOJ4XKgO0 zzQ7O*j#;mwSfGnJePR%#RJWy!^Gowj74a-OMjw;Mb6aeS!%aAK#0)tM0lptLetSRy z%%a)x_(>5|zlK~6^K{Kbedyr@2^M@ zAc9_VX)7O+cs?FA<+!>FUy2n(u>;s*OQ#-atQuQwsf3~2Yq8`+4gjN1fB%~u(_j;! z>@*x9Ur^B*|7YP~+l2)-Wvu#-1|6FmM|*5}RYDv3f1J~LPXe|-swF8=DF z(sTUTJ-$dQlc|9*0#s-8=u}r%kHc=I;vyK?r5QA1(sG({l0Sj9b1pO5Y@@{NRd`>~ z0Gn1fTTDws0bp5^?tmXz4MX5VJKD!Lqa{o`bp+OD*}s#Y*9*BQLb*~teXuG0Du(e@ z5XTW8LW`F%n**vSHxz;%;X%O z0Y~xo+IcnPO1^%bcy}V*S4)GvZkNHkiPdtpksmW?6Z-NZkYH2i%~YaG*~71TPkXvB zX6R^aqCPFA+!9!^JAH_ez2S`BK5EF>O^E!F=H{}L+|z>`AtN}zSsKjUp$@$H^x1Q>P^5s@2SKvZ0;F$6fI8i&n= zC<5Luu|sH$Gq5C!oxZ&6?Cj_m7yy?p0cfMx2;%oke71sH`C(Ax5_c%IFyc@A;;XH3 zesLRAC-vHcaqcIuHxh@HmKKC2`{;??bd0Kldr+y4D*BMI-MNMl{arps`E_BCm`EJqPDi#+xOy4*MnD zl@bdxVxN?N>x1x&;Ro|HN?-YQT+f&4?sfOEA7?QGPj`O*MopFDGgE~jrU<1ZB0FC7 z5tUy_nr_tU_a8KkWHG>j0#HARNlBMLMb2c{8)QM5Gr12KjQ_3b*49@3cmWwC6FR)2 znp%jdCg8Uc7l-+;Q7kdufGNx}9VorFZoSG%ONl8cpi@Qx|Coxpdcv zkSp{$LIixDoK|d`T-#O}_=AuwKz|1&7o3mV=~umd1SjydgG{w#rC{TMP&DzrG?`Bi za?zDgM33RwOFiJrvjRL;98sTR2*Z9vkWvsL7Akzvq=E@u!!8cjp5?Y5gZl*jc&Nci z;J1kX>$55>#vLm%p%_!HzrVoaj`6zxdxx(L-3MV{*norPlVwXh0L_%tz*+R#U}P+; zp(@=rCIm98-RnmmSdt45zG;ZXVRzh+o?_Vy;4h$WjqkG?Y;$hFMr=Pnl?PfDzL{9I`=>GF$C7t|Y~_KWtCuwCwb`I^+oO zzp%l`E!z%toc^%vD=T?RRhEBs4DIZztN0k>i7FxtdoWvq#tb?0ufel|3)^%i~5I%B1z1O!{yU=fdw^#g5ha$5HI zXe&*%NRiCV2fRu#MLF1e=G7KwD!`Yxxs{};`N;*aKduS)OS?83q=rsv{QCkDPX+_+ zF`*~k`bN&HFf7WeWsGUsxF2I}MF%~QSW$?GVi%5!fPa`iV3kf89UVO#6aqXPU>>Qe z`l6}|m_Psn1mG8g06ZZ%lc7V~Bpe)og-rvf5A$uy@$bw2XRI`zHT*9vo#3s)g#}Pcr8U-*PwE;Pk^sY)!C~8b>IRri9NN}^!W|hFikgNd4+M%3A{O%V z^JDX4z(%O^yfy>8mVnU%5Pl3-H~?1ppDz$_J&a4Ajv24l2iVHzJubFhcXDBC(c)eE z(o)PSYI(2oddZPGS`dVnA4hqLD<+o8JSgb)WwQ{u1$}HG{3Lqq?2_xOwv(-_di%cA zcFt9P#C!Q(J!_ZMJI0h$Hl|>9kQ+ceU;*_3S}c5V&4OdYWXYq7PmSKY z>x6=b=RNU}j@5y!&C8Z!1zL*Br+B;AGJVd8MhexfZ4GqmQN}#m>q5A1>Xs#uJ!+=l zMPoO#^u)8Ew{!dDl$~>YDRWIWmTZ(I6p5%fFYgE7KyW!uKX~bwo}M<(QqW4?Wjx9~ zGY7t&xbH*RjDzpRM`(T5>Pgg`I8vu59L@iKUVt$mDmZZA-<)r}w+ld}KXPenYgc+# z7F+5cd$A0e&(F^*si_SP$C1@8*_7zM4|_Kf>r}N8beDmC*BTFbT#ZnLM?{bU>VnlD z>b`9$au@aNB;YaY811l(96K{+Riv zMI@qB_Gl|JD|;8ps$_3MR`$yJ9#{AK^LYIJ_}!2DkNcKhujli6Ue|dZ=W!h8`Mj%? ztSNu`H08p=!oX;xaC~oqdUlX}gz%bC!!Q=d-~0Z~3^$It=q63YtS%XN)9$@+>lQn1 zN_V`gxWPO)iTSu~)oykxF$wpLr?{b5XfFcMgNW)tmhF1*Jm#=XX=C!mEb` zy3GyrEA@UkJs&<>i6G{T$0M;cUV1+0r*`wpm+T#m!-q+!1`o{m;}Khln@hA^1CoYgUCgi?*ew0!QY$IPWC!BU2c5OD z5~TIwn zT$hJ$rkOMg{K@L2)m4@36^_tVE$g#Xt&I7jxqZP=xtz`NX4sm~tIM6M7Sq44tc-T9 zJVa<78Xo>`6J;*i)}0kPCe>IjX(=|PK4K(gosn1BS7MrJmt9*!HN`T~Vw}8n=T7vy zO8UMv#D4q{r_7u!*>5p26s`9sWTLnH$eC0|pM6SmizJ_&g z;rted7s!*hvdyyc@as2kQh*RZgPq4A0qehqy(}Y2Q@IkPSyGNsVYo>goQU zKYzA)m%V9JB=PlY4)>`BcKyuO!TNaAvMM@GNLK0TPZi^pw9}eHh3|wvd-4az96bJ3 zTAweqwXxaRVWmEFRwGSE5l_w_4XI_C_8sqBpgrSF1K|@B zMZ0u8GwlZ0Km9VIJWjg5xfmkg^4A*loo~{xXp{mDiNRT;&0e08yx%K2%K z6_Kq+I`a2OU&)#%+oPJMzXjxMRixOH$Vg`6X3%yo3-w1*3N@jFwWR9loL>`uY=v+kj-8xV4Is? znynLkB#6VJt7y%2MLn1xZ-dFcCVu|G1+ZsG#xr|T{y zj$XWY@l|5t!=9d75-fCT=m#wE+6ZfKs#Y;2JRV_UR&Q-2Jd4?!=KfH1y^S!v)t+O+ zEa@B?VVdJRJ#Eb)`?8=Q8jj{MuTpLO>TpyHl()g?{(gPa{23)|YF6j*H3&n+ z`e{dv8+aY({8IW!ScD8?=Li^wj3RDz-lG^9vKT zVBdev|M$29Zn>{AggBuPDG`f+)iK!w1Or?vVIBESf_Ruf=<~mxTp}@g`uBJLJt8%m z=CPMvzxMj^<0^~mymq`qj99OF5QmYGkxGvBp~Hs{t6NncgK+Eh@uTqUSm!0K9k-xc z`0o<*9vLwKTz0|QW%mWEB{Z1C)XD(t!nN9*W-!%k5OW2zHGZ+;t5K~(rhfJA*^%Zm zCMLXT`qk{nJZF4p(Fw(M`0yK~7_!JfWV)(v^YS9G#lGd*nPG{}pFjV5c0yFG-v*B3 z?6HEygyw4fU4p8?&6#Gb#*Imz`z)cc%3+=55pQGySq@-tV;e)@${Ktdk+7k-hR!;O z18QRN*JnHk5qnItJg_Z=O`3{^>f-@sb!#HU0L!ME8mvyua~mAnT%YFwL3qsv<3_%# z*RH*fi(}{JegI(b0U!I(wEY5rA+c$L(SUpPds~~FrKJE;A<+AV*t#z{Hp42}mIsh$ za3Uh4{TN*I;w!^&c-l-ekL?kftZh!GjQlcKrUaBY#gHc(aI-KvP--OwH`f!aqK_-~zns z4h{|@t(k$!nhsRbSLWw?10DVj#>&de>&^XXmzZtRf!!VcuKCu^m2<|%JTo&h>v#uJ^C17ZQJ(kx%r(3WP4C3chR}cuSJs%ZbJ})>JI4_Sy`b_J(6L`Cffmrwl&ji zAj+;|9}myw%+_kw)p?ot17mOn>SIUZBu^sSdO(NpO-SG+ID(ue_v!3`=>3NeKdhBn zjf{bqgKK&D@}>RYn~>Xg?z};q9Ef%bKnhXkV@xji%Z=TOxl2V0zZz?%?F_I>--&Gy5InN7KN$@O2+LV;p(^w?z?|L0gJoEc0vigBLY2;9OU zBEl$r1zDWfj!!tv!h>4-U?2%0*Eu$Dk5N;rF-Zdsl&k1p z*khLG!CRTPy0SRZlu|1GRyg7zvI?XpMYMeodF@ESJUe2w(vkDP&p1~vH!EhDL@92L zL|*AEa3LES6Ptpbz(m5UgAF zaL)$!#$i2hz;dDd9$8tU&>a;J7;(6JhvJjM}ofD|f})#aOUadD{A0W?fM zu2y{sq3LkM{Ds{zy!Z>y=OyC#OgyD0rrFZIK1Y| zGmU}{lez+ef{7=Mz62eRixho~K)mKQU60#bZl^`>LlFT~J`^iU15#-SvtUCY81j)k z!NcQ+YYGYqDuHk368w;?Zc9hMt*}{EA8X_{{J}wvGWu)6j_RzZAUhG^39F)&*%~Hf zxD8zqWDUsy2o0@3geJKXX{RsDAiDeK`)hLHLcXtL0tIY_t_#TzD`f_WQRF8i(D;;| zLZvAyD_cBheM95!6HfV5@5^u*6!v_3aR%YTM0gMCkW3qe;AhWl7JaS<>%n}6Jf>G0 zeWDH9J%sOfZ=pmA~W zaQx>(Ak=-b+Ymrsf#1cU6|@~ukzAg>M#~~```Koz-1Y`B$C-NNDWC?lKouj7qc+06!p~hC@hT@u5S9{F#p4 zHHdKu{`=SQ<*QeTDGmMk=A$hc1P@}PuN|FxMJ&sntV{0L@B$V+XH!#C&oaiDH;czp z@a@?27=2lXGuuvM8z5-`CwAEPZrQzicPO5|w|3Xm0_^wQ9vfJ?(2>zSn%UWp?cZsU zt&R)^9WVUt6=mge99Rg28zf@_@fEJ4sux0zPsvO~JN-$?@u@mEQQ=jLWX>$*8hM#Z z_k_h6r^|YLjMVGI(@!E*mv(m{NH6sraU;-?Je8^#DOMEWFS+m)*aQhFJ^*2w`HnB* zxT~wHl|uY?QPltZ`J7M^-L|Sq^6~L%(8uhpJnLhd)h@2nDXKFK<^j8WNHHs&;SC?aA@f8w}o7sE9&*0 z^UJQ+6{Umq@SS4jT@-GA>td+aQBMD9kAU-zmQ~Wk#$q_fbnkIN?Tqr?L4Mcic$A?i z2Fj7$jq>&TrGx@C7IoPZnwwBGl$DjyYFNW6ZE&ogo1XenNC^40uP@H{*#F5MU=lH9 z2Bai8lH_Wzqu@7CL{}2Y7l+NC((u`2d3FJl z8a}DyGlDs2ILiYSy1OYNd5^cY#-9EZYf)x`)WFck;3PZ_5C00Fn3yz*t`1|?mQh=5 zoQ#YNrAA>b8~K<^gM)*}+}8H;S9ahJa3?o8l+6s3l8$CJw#kIQRZaAbVod;(hrfa# z_uaAG*X(>adns}z+E5Pj^MH&hypyM#@c zfK((@RaFx-av8vNEmLQ!^MQEH2Eudb@jXb$hAbdq@#~`W;+yWB#?q}->8%E^hf0x~ zAqPaayg0W(d_9}Dw#ub;{gA)~PhHx)jzTvn*o)wIpo*w2EB4%w=#IzJWiFbabpJBf zS#WJ6Fn(sdneKWL87n2_G4dX=?Pna!H3=hg@To-_3S*_cOmFq&~%}IRa<0nrb_hsB*uBsJM^I38&eAe?O*IAMkv`9nNwX~U1 ziF1z!o@O7$<0CmUCIz;Bq{SNUzK5M-q*g|AAXuNT=y#KbI9uwyrFWv7bs(g0>A)q4 ziFLsG=>Piwl6E-1{~N9J6>6VSDA{ClBJ$w3U!gL5`<9cZf|r*!{bQwRCIHiywR93% zQP)uSzRIY^WuxT&0mf{@rmCMs8JKuX=@-vqI%sMkh$xrjm=1PuR)U2 zuZ(?_0&r43fBxJZ#6<7Z0(jI9e$Rdn=vdwOuV8w|*aj;$Cr0g3|9Q=zlEYo2|4 zSe7O(?#3nm{;WtC%T7TnQ|zk^#?B>MMPAB*#n>$`4*>3 zTd^U5+46DBo=x|dB%MX$m6QA5$40XwRv`k>l(L}-Mp2Py@^mMr>0SO#r%?KeS@qM? ztY7$i#MPtSw0vOds8$ihpMpixr2N?%uB(fkz2>6)G@h+yh3!Tf{F!Hh``lC*1&c)6 zhxI$erXn4>?=eF11o2@3nF$<`sf&i0yHCd3jPuyn&X3=!UTXC$C+5vQt9cZFweds^&O6ahNE|ZJaOy zO2Yw|Oy#4=E`$u&ja?d!+K5Myi~x4$aafokl@{(8^;db`@@%Wb!mlUigS;At`#!ds z>U@2ADDUr3{L+Yl6x@Dj1w{Sjl+e3d%t;{CCNH;~MGLueX(G_=7xM64&Pz7Y%SHh< zdHvzW^YzKDpD(%ny#^VIpQbmj=5)PH6iT^2c~c4uM>MNQVAh&O-q@GfZo4NrZ*miK zDh_&Te#>9yiJ2HQX~A zN=nF;!I%}_@2_O+j+?z;o94L6M*q7(^^UMwga-d(MOx54Sy@c-b?78bk6!v(S!rl$ z%DI2PCnA-#28`>MRaJ={7|Hb|tjm*=mZ&3L7H5}R7P=kTr^-5i{5XB#!q;7H=-yWY z``>Vu@^)c&=Esjh1=Ie%su{J0fc(RfBOZ z(_MAh%d^AU|DvNol$jQDDH6Wy2gFd)V#;2vGL1up1+oy=B^p)37wDU<$rrL&`U+}l z6snO52T?~u;Ig(BVhJn{pSZ(PjslUU^!b}NpD(P{W?H{EHwFsp(X(gL_;Os`yEvoz z1$_GFQCqe0aqJ8PrO2aF4TDK@6*{^fcZA2(x3oNXYpAp_8((}~F(W|Mj&o~R=kSbU zV()=U0W=2VBJsT&XqnmY!BJ6!?nmchEEqrSQt$5#4d;NUar*TB5a`LEm)v*}CZl34 z`q(;f!9O9t~_=nO9- zlj@?^_J5z`5Tb*@x$gwZp-RT8#(s5_sug**#Yg%Qr_Cu zS%0c1j!x!lxO5H%Xe%q&@3UmJvAHA~@!)V&VPjQ-*&nkhD?L^H?vi_0 z0F}cU{j<`p3ctjRR@4Tj*5uSg*yfxXkD3Y&E6<+#DDx*Ksir&GYGnTtzlhdt3mr9; zb~U@0n)_UGbjIb^idyZ>`6|-9ATG%INz-Zc7*D3=Kwq^|dYy*TI}yAbLw zujrlxO405%@m2~2danRo)qa#wz;Wxh?B*z|jov@N?LN$>8Vo)tXiK6An0c-IIu zr<`l|Wazz)xGbk`xXVUeB4#00733eO>Xh_8?r(-vYZaA!LEI%gKX&pLz5G5!s!s!$ z+(TKsa;Dhn$u6(ZwX21)C#@uLh7_$AIQ!^xZw1Km96o$vc*&+ep?~jj+ixu`jx~+) z^n9Ea!gE?d9IAr#;s)G-ORE)yF{TbvY2ux1waO)zPGv<(YeJ7V>mPoLOu&;tZJno3 zoxUG5S8?xzifkspLhHW!!$Y}z>jWLc zX(z#Uca#|BR-=(ZD)e4|j@AXkVonOHZMXGr&`;$YOFk-JC(aQ!ySTi!qp_)}0{Iio zS#Tu=FpHI-LP`vO)$dd#;m(-)MmC6p@U@_4mDMe%UR`JfPa;xlXe;%pON7bHZdZ_HVx<(?O@Gs0W0G;=>$j)AwiG>cXEm zyjdzDEmu37#)tp`2Gh{Us0aT?fDg>u=Cvp0x@>b*p$CFpaUOH(?1e6r2h+aLv13PX zeWLEKiMohXg+)ymDO-4coa!ra=vRVq+S_O zX2L0<*Dw@?KQMn5s4_JC{A#!Bd;?e)pOo_eLvw7;Uv()6b)ewk=FXb@%HuKn!_bFz zFFWiBc4L}^y}+f(pzjplajK303L;A4OcILXe9$Klv$DyW`SXjNt2K14<7@E?5Lr-= zMFL%;jI5d~m^(qLb?~HmdV14C^?p7qj`ss4|K3M+NC+VK3QwbaAv_MaH{HtM!-P%& zgLE01#<_E44($i;n!mWuki~NT%8p<@jR!Be2%ym;6#mYg-&AN#d15JQmuG2;e$TAyZ&C(-FgOsPiL=3a;JQDJ@Spn4 zDI4@IA>kK}y~KQ%C+79kjdT{qkg*)9!P%o9TkU_p@Ii&CJ<;=7>1jiA^8a}Oh9Aep zp+@}RykN=VGJOTif*4AgFEvre7gpv9YoUjbznS$XXBZuJe3>1NJam%tq+t9%0XJ{H z$B$Xu`aa}r9+B*yfQAA=$zY0~XBjJ4;6;Au^QkS9b6_@cE%c*sCFG(;XJ z962`JQol%HcdXR%Ay(IU;y*%F{q^ftxG@Nw78-iLytf#BbID%6e!Tj;zX>R^{oi=#i= zaOtPemXJ!lE&O0Wu+9nEAif~Yp}wuCu0C+^;0Ea{OeY+LP}FE)J3_1^4C30Cdlczw zywTAO6)=HiqlVoCc8*SFD{$Z24<8;uS0ic?syXy@$UfnmKnY}y zq>DHJ6?+8F2H0EeuqP;s^o$IR56kS-0}<3+j?XJnRXDAd!rM(VjU*^hO2e`itVdu! zzZOL*uOL`gT$thQ+icw2Uw2!P<6t}5@);r(3PZFF`z2jFC3;c+#H}ZA_e0J=q`3?_ zE6-sH%p=Mw%|UY)*b+dEp@u2A1nQE3*`3ZeS9UzJh*_x6hwbfLlRtt30Uj@V65+5Nm@fT<@^#gZCI7%Fwl-5zwE-xGOyD>Q?gXONd*j9~qC;U|(6<|gW z>8>H09CT%hVI3zZRnTt4AcAmE!A+~7p&^gY13ijRjdg+a_3?pbgia@v18_@(fJSR< z1d3Ej`MR@n@7W?z)d-U!0jypV;vk+S+HZfx$vfhS6DtHZf5I19(0=>Qcx$CK<1G+? zOsG!23vB`43*{LOxYSK;tP=K*5Ew``iRH2oWv1CJbRX=T3G78-cMLlMf$+dFpLF_= zV?B8F!o`ct@S;ImC$e_K*+WyVmUtFF5Q$)X_gue)9gZ0Hswz1S*&guM=sfvy(kZnc zmrC@O+FH~P{Fr3}G>>lrKnEY!l;@CEAOAtGk^$dOA?f>c+;;-OU@+1VsZvX8ew1I6Tjfd9Xs}nD8gXMz#0E;%{+qh zY*6IBhF2r!DQ4LaeFmna#2FmV4E^Wcr}shNtxe4AFrsp}%Vr(;k_+c=D`Y-U4Mbb8 zYqw#rcZ66Y6^ zEcw{=bS(aGhV&6yHoNBm56FOdXGx&DvrvezOP=v43qWpx*j_Lh%_+N$VE8D7qdJON zuYGULGJY31q;J;oOYYK%nH?}09mBjY`H;#Dp2cqGm);NOJTv&hEM?Gf*+r5SeT%F) zNq!S%cg-1uAFvX!H zQ>zS}OQ;Q~5G4kWHQDvDDJzMh&hVLzAZt!?>hb*zQn!4{w6O+QO?)e?iD3z{gKLxh6wl zOX>WLR>z$1_Zs;!K^$DYxGcG2HF5O$wI^hGTFVe=4Q z_;BhZ!)$%R{NfNpZZ7EZQkR5<^_CUL_sUc|A%{?A>3-B`tM#gUM%~4?eSllfJ?s0% z5|Oz(3i(#=*O`Lj+HQDu-6?wf>&UdVXd?jkUAAd{cK7Z7e)wDaEX6_mg!=BcQuTC- z8aX!O{-c6v-WP+WpY8foE8`F<=n{(+(%18^VDFDwZC^4Qm{N|cD|u5USJYacy`;!q zt7oCGxg><|0)>J8UNaMu^amf#EPfuGTl_3{{?zpG6;E-)FhKEQb zpd#oPdM03;h9GHI^TUF=LpjxD|STpdcSJ)LUY5>c~;)s9` zd-e9MH$p!#by!(h`TQ`_cez-~FaGqXz|@8ZUT;bka4d7}#`J-;2)!R1Tt;Lq6O#lR zDdDj`eP3SHV7NI;`GK72?1!vaShxL=;Zq6V~&FCfps8K#%L?#aD;qR z^;eaZWsuE~L=cm}ZIg^ED7YPM(B-|wV{^R|_7xQs&tYc|4rYL>3_1O!gJza4fDSBf zB5metF+wk2F;keC)(ZX`FdD$mC)tX?3<6uB)Ity5CY+^H2xj~=YYRIsi88+h>_mZY zX=$0zy%}{5h#a7W)fWY?*&;XNZ9rfPVLjiDes4*zLhlk2Gg#izu}GZ9+&b*?id6sd z-Zcc)!o*2D2{&%+#z_RkB+w;(`X){km_2~FZfkMXT-(FM=>;?9nC%Spso!7tZc`kT z-G=#A=FfB||atg~=h{_@6GMw^(e5qdH|>6ZZD2%X7d2#N`Z#q*0-< zkJF_Zmv(ERj6fhKmL`&dpdcm)+#vv6q;O#iv_3NQ z4GJ>)bkD5-MUz3Pkm1Q#4q`h!aY7?qoqE83p(q7^fO&l9u|_#bYQ^=bdX-J!#b@{> zAz-6Le=o7rqDZ-ok_}3I$=F;P+T z*RiovD2s^m0?pK%rn#fS*rMcw#<R@E?utW}G`Ip& zQNx=B&-BTssvsSt0hjK84WdZ&{ zKMq+ml!QYxq5#Om)`x679FBobN^JTy>L8eb&On$+gE)m<0Oj$c;9&2!hKMcS+c_c` zy|n=r(b$1U3TR_^q9Q`4yUM}@PJMI|I6y*V+FDfTc9e}c!4f+a?4%g0N-?avnHt3D;uvo+0adB5+&cs*^ zs8Xc<`0wZqi{msrF^6TP6gw7`Oh3wl9SjUF$|*%Ph$}Y@<&pfEv7-r7#nSIZSfkP5>TIGb3zati}VVVC0A)!fGam zfT^|CFo414_1m{_Zlax{lpm%foUQH&dvrk{-dg?swhs>(4pOiqTdCK5ve)lcI|WIl zqnB~061R*xir7rj$`Ti?aU z@5cvX`+u~i0~JO5#R5b=JYX|x zGofn@fbkG!^wU(E*FpmVDzMCUpPdMWx~&J{sX?CRSq!#I!=jxn(qeV?w~iC{xpsH3c{JKcl!Pg=Fvht=6ZnPo(K)YGF2m*^+MG- zw{1w{8IQf->btlHad8cSSAWfgj`=Rl`F$VxV=nrkbyR7boBA;k|MCrOABsmQ7*k&U zHDeszsXwkSz$EkFIwDRUuR)D9wwRJBhAJ`KC;u2 zF@a%7L{DqHDag)2d-=kWBfaO5oNI;B41e0oTIZHFQyp^Qn~nQd1ekA~38gTV{;s)_ zKCxX__H9Vra)xAS(aE6~+A-QpBVwAxN0bi#dYJ3#<@h)^AH4s%Q(5+oayve(XdS&H zd1N;E3cEC=L@`CR&u%wd8Ub^v zWYGhGj-M&-x5pL!9k;YBchf5NeY9J>z{T8Om>lzYDc7xP$aB%5zxTk1q^5_wqQ$!w zW#=F-U9Z~{4%Fv_-M?%y&0U+z`#r5?>c8UYea_Az%x(#YIu2^gcROd#+~TVCE(~mn zkAIV%Ky%_YB>t&`*sff|7basYjxv)v)x-!Hp%^&S(`}ml# zA^DfN%NB)dZ~4JnnO<IABUWH77Z@4xQZXLE(AYKkx_TxMQLDXIBp4_qerAhBhM6Xvp zJhJTFT$=PNWvt`V+&TZgIb-GVp@HFd#&`C${Q2GF$VA&?!7=W+XG}j_EjBf2x7u}q zL$uElTNy3Jd^W$MX@0bEf90k)jy3CxFH_3~UC|4>eEy)97rU(2L;m&8D>hxA8!XsK zmZ3eF%sM57BFgG}lTi%^T;`gVK5@;{W9@paRrdMp>pbgGay)H6 z#l@_@5+I+z)lo^8l;iCdBk}BbGIQ-U9)|JnEA36!kKM`(!y}m({$^{v^U3NsqfuL_ z!-|K@!phE0?H@HWdFm~v9j%2N`Q2q2AM4(;&-A;@bzbdqd7pn7AJy%R-sY_@FH_fz z7)r~mv-o!~tvgk#Pd_^l_T$GkXIEA*53k`^gAM6f2_;-F#I>H9IuOoY`AIy|e(jp* zmH9FC<)!T=qAH(m_B+SKr%v78JfGtnqwTeEk9JEOcaudr)wgk~e40J{-cf-oK?Xis zK6SR8wN~H6D)skb^kR)l_+4RF^F^JJr8%E4x3Rz`bVZG<)*f7_%h36LTKvUDp{D<> zomGS3S+skAzT!AQT8QVnO6lxpGL$g{S$Yvos7*ny4{frQ@71ce(CqxU#;5w+4HM=U ze0VR8w@1%;t?Lb1`fdiot2TPv2Wd_9TZ_4Gsq^({T$%nML{oY)XlIc6l}};=kFJrWs9g_)WLPY!ywCg(ps^u<a3R6c1&+CX1UII z=D(0JxaS@XUSyODhV;ez>;>k;ANRIy@-f^z?`xI45aQc7#rov!)y{^mg|74KH_w^w zXBPh8_C1K@xG2AdBNgd#&k*{a;T0 zGIcG`-@_`G9mHrFUNSlykoumAQ*-qM11H_V!|@awv>IFN(n|kO)O&F6(QoSi(k6{)yrzn(ikK;yfAdP!lL3YR|=k*(X843e$ z=SCSXZt3adROoK#)=_bL7dpIJ7~AZUN9hx{b=W$p+f&!1SXg+ZT{HB|CBV=Z`k)vX88A_@RfN@+7DcRN0~$3f^>k$~-Vc>6j3l z5odrA;8db>Ja6#p{$tdp&=YI&wgq{SPUnw|!i!Q0%oOuqUM?(|&Rp$jyJC>x(QVFz zHb>_n6Vu%SK|jKuEa}f&ZFsu(WUy}Jjk)3H7tVzW7Y06mz4cD!i}UFN_M6x7b3Eh9 zJ;(pMJT~*vjYoR-%tgK4wwN1pYZfvV?(6+{{F|<)R?(#hmNIRtp37o7%0~P<*ju`F z2lf}T9eCTQI=bN>e&AzmH}$|EH#HxaGW>bt) z6Sj@cTZ*(C+c3-L_-IR!wq4JC`{cN0-+Ff8WHp|Be{YbK-rbs{wniPVy#W`4NRl+H z)P;uOZ8w$FFYkDB;_A_sTs{vgrHA`?_HC6_qTaK9Qgyv%Du<`Z<<=H|_KR6}0<2OM z7{jGrKk4L&=5nf4cl&o|H4jZUn8Q;EQ+jMGs|nNkVy*E=Ds!uI{@sbAdzzJ8A949? zmJY7TIeHbGYei>hH0($to}C zpt5sCS?Qbk=`PjGPcvuxi@*GSRup(py<94=u)(N($G=3>`d)_0oWfC5PWsH@;>*7i z%0JA=t!LXhX8D9^r&Wsbxqm_C;>kdsj@MrWvh$xDnKk-{h}hJH3^b}V$sYsjWc`2G z(yJQpy3Oa?e)<2$q-ObR2&{=*w{C_lzmclN;-gC{3WmnxRm5StRyrvRb*F;VqTl>W9 zq64pN(4)fn{r~RTT=E~b7*yMS|3Ai9eW-@1sCm@(!Nmuv8J0VRb4L>>voCXf@*hOA z+gEmaYUfuNrS$KvTcVD-KhX>O*dQ#SNe9v51Er|6V$po6-}NAlM=0h2NSHUJ8BTFZ zu+%pGab4yd3S{lcC^U_&%}};l^pa#;TKoqr>1#qvZC-H4okq^dd&#_UV<~l=`OuCa zju%{;wrxA5Arr&~PTh}!4-I8p4=f8ZyIGmr)9%q_#`HA#3eb*?9r@q7@$neYbRpx> z4gErofd4KL_B9?_kEk{?nty)B1Mc%=5XXhe3x~M5Zu0ulPFW-?Q$X{E^5YTFMVTdRjq_lI`^d3vp)bYoBz`Mcgwdh3y|zkKFjpQVuS_)t;FNmjQ+FIH_$WLzAxl*Qc)V`b0pl438=ihl=h zLhlDgyH0%tKt9nA@P1o9Qg&&b#a|8bd1 zj*aPc%HWO{=F}TuztpE(BW073fdUVwI3scNrJNRjv*Klw7U@OT|90lo3$8-HOiC=5(g|KQF-J4P#7a^ru&AJ6y_TEINHx-KtIMlN>`XOH;kL%XNCk z@%5*D@6cp9>l_TQvT)9J9{qHvFt<&k$N9;{C{cMhKYQi2nVA6`Kq|ZpkF@OVLp?m!2p6PIoED4^Sy@>z7I=7H zjLR!B;nAgKr~h`W7z?NJ zzKYvKo4Z%~isXdnzso)~FOfYdY2MvkRS~n%y?pfL$j?JC!OJShQk5AE=H%o+J(UTv zdCm=Mj`|Zx^TxYh@9FEy-rX!;u2UTUK;@hg`IscBpmjkUt9MSm{nWJ9ZQFd;m3NHW z+FKiCbV^kz(5;J(r`g%rlxIvFKyS3*2SF@VFmg`rWn!Awy(Z=R`@qK1d;Pbh6(<}e z?466_>d|LsXh zW@*JMd73+gNqg?oOE+6ErmrTI>EvYOEV zM9kVJ9Nz{d=T9Dx1(*2;E=C5?U?`H$?g`s5X3R(YoYUZ^Vh7WuwOHiuK&ad78-$cZO~Vy?Q|LXaD4kM{Zk?c0pe`nobbD8b@?D zlkGpgf~d^TPw)5HvUyY3#BjmQ_T6?>Gz9hMXS9zW-iSKse*$m(pLD+n~+o9BUVXL!5w zPd>tY7kXC+eUIsW{P098CEk!$QEAFhXgGLot^$U1KjSFsn`&vzCg<#;Y$oRpzj{+Q z$iMsH_PFbMs%72g&+7&|GFjE<#_8=O7ew70=kCl#C*3M{(qn!X-+xg|&>=ZvSElkl z9@DQI-a^-4%57KB)#bpW+@D-$+h4T{Tpo-HtKSyqv!-WfEkOc9Y3Ce0`3PO;INW$s zS^kLai4!M4io>il@4KOYd3hN~+uzH}D?a*m4otmJhtN1Onew`>cj8-n`$KdA7-hKr zT6R&%&(BAf2RL+ldCpE(s5nSw?8lEU3LalG|NA!=G)YbYfk~aQRVR2u)cG2H9QkwG zO>=T{VZvxkr}>zkj^3g(r%#tCx+J0h6Z7HO_wP@h7sUI9deI=mAtW>%Cuw)$s^U)I z?8buGW3b>lpvQ67?%nKSVheGVFRJxRbpNgqW=1lHr)`Y}ET(MUs}y%Vg>RoLzW7nbb|eHU z#DF2!m^3q}jjoT286FxEb(s7mBmOb)qM6wdr`eI>K1+@I0oYRvY9h0TYF(I6u0Sky z!`p82^YMBGw_BATtgWrTwYAasQ<=km4fBcmj4RBQP`AbuXQsyc<~~QcDJu3sYLu9& z5?q4NHh?w^994CjaLEK*5&m&cIphL~&P_hJnDpR7dm?5MFtWtxrp23F8zZ&)K6c=V zfVlWq*hZL`nWq=?>jt3!^ruFZ9_hEtUP|f)eO)-VJZyp;#cad0`?Tmc6<1BP5JM+Ec1ZJ+lp&cy(K|uEcW(m}1y(+{=R!c3{Nx5)FC`nV;J#5xc_{c2fpV0WKu0P20(2K20y2F*utIsl+-zD}3 zudW=s={hMT*4emNu(*ku`ebq=@O|fenaKTsfP!DPSa0m$`5-qK>sWC;6ihVhc^N8Y zq$&bE%x-;-cc}!;j^2sU?H8UE78RYmW6@jrSZ|l#=Skmsj%Z1ja1ig5Iu{F6c!TK_ zHzNio|6Rg%>%hjm*udS_-#>|=Gm+&iPW}xIO3+R$>J9&XfT;c||J(dzrxw4nQRi4) zUELX2WxzmJMI8@;wT=RyO43j>Sd!Mm!(-k0^$J`YU}MBE`>8miz4@9)%nFx3+KxuZ zaZ*xJN?y;w9GJvs#n5KBd3dCLx=Q-PItTaI27iqZ)_$fc{V7F_%7PncmuJ|@% zX_udJBN4%k7~3eIWY1%5OXmt#T_9OG{CX@yhTW`PyS7pE4J+MuufJPeescbt47OSt zs1bQ|V3%sp=Cx8FI`qQ)f`aqiF4*B9TCi4)`F=1}w? z|8sD2Z+i8ev~d>?Cl}Tf6;Z5NvnD|;GXQ2gC`ACJ-;^Gcc|^od3cdaQeQIcZ@$r7M zv$n+IYi`aD;|YbeogGngaT=jLhkc90_)aoX1QjrOBLh;@Te+|j1OQ0zurpdfYlaB> zduZquv@#g?7z4}CK+EH2pdpi&A=TE^*MI)@jh;*{!C$$t{VV=1X)oaArAcd+labj# z+RE{RqETBbSc-^UZ((WxjLbeZHg}>4-Dwp@HwfArT~BFCOH+~ePoh0~-G&X@_wJR4 zodCVsuq#fY<$D_w(|K6;@ZE*eKQ5xM{odRxd-m))2(7LTa6ne0-BQe=XB|H4#tPDe z@SPT~c2oEOw=l(L&sW}D!SJ?L;Io6!O<{e78~FrjDa%$TjXh`2p4CcGA$l9m$?n~o zPGYLTk^JdxP%XhR!g>sK3-iy(5Hh@n_De+tMH!1f8GC?TBpeq9+v!NiAK)WAeAV>Z zTY=$7=D;fvf3&w(1L&_2#i&wpbLbm_R!1~=+p!KJQ{g!vU{mNc&d*QYL@xrwG+9|U zo=RwgK|$M)1c=iTpNAzeb_fXzdrwtCe4H3p%6!7{>4y*e2)xi6a47Ch4b-N=6eoTh zY`%*)I@8HZ0T7bzdU|f8ql?8G!FX;0&SBDpR)Vh)>?v4Ta^;Ox4L^UL#n29fLzDKL zotV)<93;DTbwjMi6bmT)7i?{Xk!#3Jp;i2L>oFlAGWg&sI(yK+f~`nHL&Gm5^a<~b zx+E{ZC5QtZP=m^xE)IogWIUW$kX{Iv3?x6J>J)@SGCdNG4g@S&SkIx@cEM1`j=olG zcciv=fa2J~=-#SpZhrr)89FeTn?So){Ork-6ws%k*padSkP5Li+0ng=l!$R9*)yaE=kQ^9r|;Mr+E_8-PsfOu!kw07A*av-^#1)mF)`KLU>8FP$7wF~ zGn3Be;%;+#ditWxNAil`OQ@)+X`oysS9qu86Fjj9nVh`5{(t_MLVhJC3m8-J@;Z!) z_zJI0GmM$oYn&V$UheJ`n6kjc#H5AJ^WWCu@CU3RLUV+O*;_0R)PDbSuR3jdF)0!z z>}0oP9{seiL)Xf38etJ8GsH39VUs^&Y!pM3^D!g z#qIpObSBm!tF7e=t4(f2z$L8#Wm-J{ zs?eir{XU)|Q(dHrE6ORD}CW-jf4eDZA3$uj%xQnr#c0%(}yy6l@Pc(kjpv@Jd zetLjL$aBNaM!gK*(GAy|%s-Da(-H?Uaft)B!@A_rNk-OSVFzHLC-8?DU8I(}>3G$% z=-uInS!0gDTVyx^>0u|`lxR1FS&59xs~W9I8(R)~)k?QcXcCbNOgo;ydZxgdm*Q{SK`1FO7!=T2$3zsQ?>`uY}5P?Md9 z26Ji}8ZzW#9TgP}We%84IN_L2o=ZoEX0+qbAqtH4A=6P1M@Vm-+d_z&HhMm>@SfP8 zfPEKk-eg@}EL`<#9o0ue3+aV`=V_GrFcykxGs8I2od7@oN%BY~7kLr!i1CZKv|-P} z279AX`{3m`{7@En9SwOmX?gF9j~^S3xc?Zm#*2~B{`M6I05RVH24iw6U`oU5KPoVi zyt}aqWePcN2y40Ci+}&Z{3U`el>${-hxR!S5>`D2~{W z7pG?DMKaSn3o}~m7y3dnp8p};&zR3adWzAbKqei+&LNBWqaQxdM=6vG)=HEj(vX*D znr4!od-ygFDnx2w(~##tX7S+m@H|z}h(X#1;TqmPX_)%8rlucWlco7`seZ=7c`B*J z=GuA8nEHyduY-o|e;v4;7@7ejUOQg9x>W1$uU=sML)X?t(avT4vALP9iL9d<)UPpD z?20}us!VIzEm~RQPMM9BPrva`cErw(-eT~hic;{2i-YNtI0#{TbWb@cpWJAiK`V); z4WkBeq#(1#Dn#8v_Y5)^rH;!8Ne8=klc}D2_dev1wYIfIw?}tld5ISP2lVt}Cd`^5 zz$=1+V1ERrAwNac*py|lA6=+8hSwKIa>okDtJDE0oEKX=&joQH8rkFUrH9|>RQq7o zE)JN9Bu`$g45v`tEK>bh^ogQ~SMny$ML*ep5aY~{w zigsN+Jz`AM5eP#-d5%U?OjYgIRj@WDjnR};ZBt3C=If7*^;U%#?@HUf1a#WM@ zc=+HSTJlSjS405CFdS4oD&Wwyx8zL+IGiWp9P32GmGAxgXe~EBee-;j0x=nb=ELUh zvCVy-l+=&LB@O|BAfN!e6l@o1YX~WrK9HCPK2)CP8c-$@vuWY7Etv%coD9z<7gmW- z0hrYV1`yGNfPvgUImRV^UL3M2iArSHmZ|A%JQZf$LdHvjeHtAtXmMjeRfwIr84(9a z=zaYU7xIu`b9N_<#%L751Z9ku@vx;s{Mi8@fnWB6;S)6jUXVhs5kSXlb; z$^l9(3^~D@a0}7=eGedl^j~2@CCWE+%af4}Ao&0zkd{evhWz>}QK| z-@U6~WMOCdeDQ`H^R-vElI%NQy?RCb@;I2}mGoo)1txT$-85`mf2h|sciA+jcTt|{ z;W@Clh#%HAHYsR(1js;syzwMF5H_*!TCD`P=*m9KxGO0w&EO2gfh{~Kz{N$as5m$_ z))@Czo0nc-H<;WJ#-hO)M-Ey1COU__^iN{YIbJ&6XQ`c{GGAj?P>Poim5{kOh{Doj z*6HZ+@Q4U9c#n*E`8VnX@2CTxN>%p%+IsImtoQ$YTuVce5h5x?W|Alw4HTJWr^w34 zs1UMBl9iBz5R%HuxRcBhLMnulb(4@JA$$F6Cb@zXYYXnKcZ>b>9$q3Ufde0j33<;V1BermpU=zbYNaNHH^U)>uu-G zoj9Jx=f^*hRZh5`Bi>Vo0AXvh_~Z1npF?v41%*@`eOPq`ob&R>f6qCnM2O9p{*6+H z;ZsFV`JnS`sj&h75*9jJB@do zIM~^rM!g}fDmYZe7?%Dpv{7OFcTvi&&%rZspUKw0ZnB`)mf0OZg#_4f*kc^~%V?`} zp|Q7LU={VugohkzTofwS>h*-}iWko#D{I{TaY|yyJjWpa??wg&lI_AO5r7EU)ZyWb z_zy%(+)&wEutr*iskpd=#Elw@#zr|=*$=opU>o2y!t55)Ufvcy%s?sn4plvcZBrs( zJ;M0L?jTDN4v#aB;~TnFy}t7UqM$6E<&U&^yY#^-Z_<~E|8>D1<#V$wQ?EvDRq`n* zjzzXFGQ3%_;+|Bq9mP?|x3#Xe_+YgCg(){#Z-xzMp}l{<4m{Ft@SW|$*#%eB^WyCM zA)Cgr?%L?TuuX?7#U<}1-l%BG5sPM`WE%f`jA5pv@~uJBr&6yu-<*I8Ha5>%KEStv z;tZRW%Me6}Y6*#nk+KlyA{4>3h_}~so~=ToiL&W~uC6W-h@R5b^>47oRGVOc$Tszx zN`2p7WnKk9-gDT_q?eeg2#SeK+9g{%I8>R6J2k0G@0FERgEj(vs@*}~wg*%kLBX#uQ=^Ih^CUTWC9-I6`9#lj0=j)D z<>wpwN8RR?|8nCvf+Y`{G}J{@hzDJM-fNL0LYPcfuyyCwwDyjJVx;~)473J#TBf?Z z{ynlRS4Cq4r`7eGhEEZENbu@^{CN8EQ*gG4$+@4-GDO95{CL3q()aIApc4Znq0#1^ zq2tISOk_}2LS@|phvk0a`~p=m2-=L%b*c1f1Q|dP<$aw$WR1|KfMY`ywiF{cnEAS1 z1X#g*j&{PM#3bf&QD9-{-(o_>?jSu{uR-oIu8__|RuO}861?BPzwNrj>9Y~| zc}r5^O2Y{tihW!9nAyB_kEFHk<#nV*HLt(ld43#y%F&56!PB!hl;)|?306uU z)n3~ln?GO8xnrox;gJ|yQ)Jp@&7Rb_0#DC)^Yg!W@{KZyI2X0Exg^I-V|1yasp$@2 zW<<41{E<9+IjMh&YU)vI0O#aUVM09hcC5fKQUHoT(}2kj5NSP=|}F|3r8U4@bGW| ziFXqc?o{`lM{c>?E*N{yOX364V}v+Tjv~MCnJe(&1^f!{>dO`M(ge^Uk-c<0e#F|V z0H?v#j!OY1vE$?8csM;v3uQ}b6Kf^eHv$9q()(oh$r#p%^OU|S%oYE$&|=SH_HEU z0sd!!2o?fTShSLwXrn@+k%R!qB3==2Pe+n!TqK5Ljr37>@4k(qKa%+6mz>jtIVdup zM3egPZ1+#Llw4?!7g1uzL03QkE&fithGc{!O-%uK;{pIdc@-u%$qv7)yHY#W5Ovl7 zaz3DAMAQc~e4$ZPg$X>1w$S~%cb`b#E6%?0=B-sKxCia|- zRBCoSCwuznc;7g_#~oIFIQbzfo{U0q2L>zYF&SwI@?kp9#@aJG|X)(5tHA0j}LkGI#EZIdIU~J4Rh1qf3$oR zgSFp1Zujqus39mvcp-z#p3erhgO@l4e1s*k<{b>B$dmvqXa=9f@kBVNNh4)POjcXh z4crbL$^po@_A@BVi{t4Nzv(^zL^MQC1Y4@IPq=do6ZwQ8l2t?+N#2C{7ex0iD9mCB zWJUt$>eZ`XK)E9NV#*z!9X5`RMDz_sltbxE|9VSt5fQbMSDl<*=80E{L>YV%LLnu&D(_za}=VA#Mxn|NAafkM7(2}}*S!@Ci~DZ?G~ z4D{!8n;&STjoZbFuU+l*3%E|#$TDL5}nAoP#c?9VOTnWg}QOFrU(NCVZ@dJEar$F%GxU!xf!_-que zy1Lpf2v?<5OckPFK!>)cr>9MRi&DeNE!4PdM;}xh$olNBZO?8^-|sgwHoDNo13e7t z6{A>W1J9qgeJXvz7F_v_O=ot@Z2rQvYu7MY0Phdv5M5m`5%RmgTIM=4N z2q8b5Ur)t`EgTyS#wJW?uG+A%%-vgk|6`P{bGF2e9FN9TSkdP8K)Eb@JM9s4r? zDDjMp6kd<=shHshuKo7;qB5?Kk-niDc2Edg51+~HYsnJ0el9JILfI1e^_?Gs_l36? z012vG&bP80wrX-oRW_~eM}Gt@4qSA&kj9a_qO^cti$_|bCNBKE%%+5Uh5V2%2&c0 zPI_H=h*brbTHQlP;g3494=riyn^Z&HE#~~+O1``7*N)XBhWiwD()F&6mG82= zkQD`^#-4o*)rU8GqAI6o2ejrPU?b~v$&B2&ZhH~nw75A)MfbJp%zDfJSwEDH6mg3R zSNgYjG~xXH$B*b9j#$58Lvm(G=;L>MRmYtoR%hDVvxnST&zSM&tLvz>){$3TUY|J% zT7!{f3ER?dzByDskZEip<-3m~l$^4^6keF5^ZXhaN$c~ZJHBcAk%(P-*+!u?rhGg+ zH_#Dg)Ya8y*<#3@PD#&9udtBxa#(f1gc?2-_wpYTzNS*zr^CYaD~-l|OOI>UaQhvv z=k<&o*l0_R#BDHZKh*x>>%|A^{1A&tiFkQd>jqSe7SeZ_W;EF#r$Lh-`q$$<%REGq zi9<*YT&3*##mI)WS5HN}VKUu`Zts-;j6IlJ`C*RVBfB0Ue*bA}Y0VG3P$5lc%kS_#&9VlVCa@|XDcl`wR>Ak#=~Sg0yKXkiuy(_HxO>#2YUN8h9i6{2 zayElD@2V>`AH*+=zr%Io@SHfYOx1hf>6xCV=Bh9G$n~RJgfT_fW3TIIolqW6zdC^O1_QF#|I&h@ zu%4c77etfbq%r}qJag?3fUx4lS-TU{tTya%YqN@q&ZzxZRwUf`vv;S`7u;WwLbvQgZ z24Yi;I_Uhqu|GMAgV+os2DkqZKofI|aOq>w`@?6vhX9!a7h)_QE!b7V-@Z<#;hiY? zlGbQphjty^EfCK3bR0c(`V^>iDiLsA2Gshwqmk6s&z~>a^H4v{{N34GlN$n^yM@K- z?AAkqHx5wMn)K4Q1XuFV8Z2Ls%eUt;Y0sXkf+mI1y=^2!nO848s_nJWxvuG4Y9lk4 zZg4bZm#2Cm`rvS02TGNe*5}7RnUQM3SQ4ZFBtVLrmlX@G*VFItf$Bzmoq*CGS?%xQ zUJae*sXyDL!?XFA*{v5kGaE7Gr1q4>qd8gTSg6{MG7L@$`m$G}0 z4EN2<#;RN8iUh|>lQ;fKL+$s|f5g-y4-Wqyf4eoNX5Y3`G>>39jLLymg^6TgAjTlf zX=8|*xA!7NBVqZyMf$Gm<`0MCN)*T}z~E3qKUDBZ_+PD$5cB^&coQEaURRB1Hll=9 zJABx8@)~#*gU;T(23wS1l7<6)eiHPO{4M*c9EaKimVY3T-lIeWPEjYa1yRpKj1AA5 zXp=v**1}TLi)W0DKOkL4#sE6g*hIDu7q;H-&Z2|hKSc12;tzKX}e;?@;&as1F3Y~tUwi69B zpk8YHO%!>Zf8mDKjO8aEYRNZY-hX*Xe*u^O&j|`;A6n=r9Eh_rZ1L)mC9WVY73i@& z!UF*veJ^@NXfhLrJ!{D^P$6Q_=>_|q^o!)>7df`4Eg0FMzgTgk&t)oZN-+}1Sf9R}?pB(LqdDUt8sVXYt{s4Lj0rOmv06Tu zMvg`B;WjA)rJx5t7LGMgJxLbR>K>W@CxsY-07CveM%C1fJ$Aeg6!CqoNdGDln{N(b z$H<=#O2)6Dtel8ji4GA49A1>l&`bZPn&^>nYEIDtwCGW?RP8w)zCPMYoP8Y*^|Z9L zd0%Cpwd~Sm@o#9*&d>t~!~N}!jmyuHKT&uSEFZx4^~FO5cujfo#+QaJFmOFWC8XdF zSf-ggDNZOf06~Ie`S`s6^&tAAl@=0#-OIZni&=kLIbdqE$)-m&xs%e;II*36JOx>V zqb1`UW=zjt$Kq60epkCG8kMO>Ndh*wO0+^y^6me9124W|YY4wo>DUJ4l)s()wo75@;cZzVKM*S(^p-3vloZ9!7hqv>lSqj z9Z4jr2AS9AN477WxM;l1q-bR5FT+N&90SEi%PaN9pY?^$X*2}LkOr+SvJPx;rC^Ms z&-?m;G~;b;H!ygPuke_g1x+?lE$Dv~_yPI9k~}!!U;&Eq@YPb>)VSYvPhf>_OsF2g zSU~3`)|yIkD5)=td644$I=07Z#I*Q|g}FOiZgS_~kg#G5kgBupNv97^h&cL&MP9yTD#4h~uWr;w3X-Yy88 z?0R5>nc|z-SwcGHrB*guO9quMzm(NI%udLqBKUynwuGt2(H@Iv7@EKxi)uw$y1%`! zXR&htnYDMixF`2YV<4RP_i9^|M!GH+4}Z|b8Cy;rt1sYr-~4-^>GCskHu;0Cr@ei? z_auPS(;AXDc}u#;5Yo&i0+PBohmZBB)Qm@*wBkmZDMiNPVN}G$;Oky%iZ@ft8AK z11z?~5s!sy1yCXK4L-jwGAEu`$ON@a)1bV#Q-oy<*bFG`$WdF%0JIQ`7M5&TZY$4& z_>`UwBoU0HRfME~Wrv#DPM$GGBMp9LqFkls+qZ57;B~(7EFD|gln3bY$WPF(mVo1? zh2dn~xUgtmBCUzhAsHDmn$1-#tA89dWPSm$g@2ZrJa#GJB-BNGf$&(xHK4!bJteg4 zCEH-d3F`#7;+RO$=ZZARfBuvZyWtksCZ@N%g}WSCb45%pwe32*LMWCqkbz#{1IJUZ zmPbuJx;iWqdD>6b^!OD!(p->=18&-%KII*H_wHt}WNU~or|&`EvZ5vL-^B~Ar4yMx z-2qEfg|W|m3}ouan@82#Hv2y3f$ZUUc54$jeQ30y4Jd%tb7`qO>Q!_T+gwYH1gU36 z+%S>^%pWxMf&X|9HN5WpebW2MvuA;C-W);bUFf>w4)CQA1A~1I8A{V zos1b@7!W-C=11?fl*!Zqq*QoffT6R8ivXMg_{B@Z;oLT|d^T%5#fx&r3wHhW->PE@|*F7tas8E)(;*n>`xNL`yNU`_-onlfjQ zz);MB;6vtuC~1osT2;?IGB50KFFH`>H8Uiv07MO`6*!BOp$newcP+o}Nvz(U);_GP ztBZsWiwZ1NB*4HYfNZ)PRiBzmUHX=|M{E@h{I1ZskN{Ud(|D$qJtQg#000dt9u+k; zMF1c1y}=`gEJZ`NJy)m*dgysay17Z(taovbXM;jn2RE?hB^fT`_r21!ck+bFeBXC( z)=@g*DE_B4muZYSLgh}-3Z;gZy2a;owm5slXCE$~lTBpFX0tS&QP#brdE=4EX0g89 z{Z43t1N|TWo|y3c8g)q?kO>Q>3l0XJdVBPk`;SA^9^t8uimThbA0R35o(VSj6Ckiy zu8&^&*`hAXu44D6iQ&@oVQ7jH1{z>c9Jy^Ha9Br`0c$Q`tE6|0qZ_8N+mL>Nu!cMU zFY+`zZG3zbuoXcJB>pl80ANcIt_x~pk{5yc3Rgnnlmur%5GW9cz?86ga|{>_?2E8* zv1D=XCKnV$`j0N#--(HEOuKe-BP7%6i&Dh92VSRS zybK~Cp>ZW7WUUdvMZ!G@yy6@Kk!9{2#$~}&o+NK_a$GcV^~4Sd9Zxh7$Q#4PMxIIc z4V3(PusaFU#?6f#9a?qi&YMkx-_f;1$N+)jPNi87R1C-<@z#l%5uy*$5U_LB;Wgr3 z5R03>e8CaZVC#$2@1K|$c>+neK@3{E@Tr_=IkIs)7;QNJ zKYxyygP%cj0O=bk625eJ+tk$5KAa#rx}Y=yuo?t09keY}cZ9Km7?>|hobtfPVhHNF})ahUgpnIVI}e!+F;w6^vU{0tyA@~)Vf{eVv1 zsj!wr7gPx^2uC1V;g~G6P|Fn3{7AIEwm0j>n#W4Y<5n~4X(pR>a?^4{Y(@h+4lVIt zOxe^j+^#ftczgPVEfS8lwDt>L#RkSVD=${{TsC{X*<#RHMnm$;=-gSyaIVDiJ*}Sp z+R>403?mg!rT;LP7{DTjCH~pts}?u6o{nJWaQWOut(#etcc_n3H@vdyY{jv8s#4wh zP3ugDuXjp1=jU2|T)E*?lftCl#v{`Qj9*5^@?Ed7;1`gN{`G565+-X^Lyp8M%iVnq z^qpXP-pk4o13BP@kthg@D}iY?74oz0F}gV<^CN6b1*blm>e!2z=YozmqHY8qLItMq zG7w&Ud2?%PHF%(u{wTZ;9Lz{DKvvt#$$1iFzRu205-P9;Or0*7W@hOF3&W-f-|Fxj0~99Ru&dFq2Kxp zCw2Hc<%-}%Ux(JtHXOHz;{q!YJ5vQj-nGFe05NrtSYakm$6M|iJJ0!#cJ_3k`NR%)wa+iq6 zhwOuJ0SiSmMXHMh$$)2uF~T_4S^j8t ztGPJ4+epb2c*Yk{f8yeB(7Xpz5?_yo5rLt5G04P79=uVEp(gb`s%dkOV~n(#!C!_C zIa+Ad*c<b+c5Gjc0 zk3{f!aq-x3kyxMz**M6sVqxxA4?gf9=+>ljz5j6OBMQ2f7-oa|3_kLWAFqLF!+LMd zwhF?md}n<3DJ-{#2d_ZfLHrew$bcvbssjG#778zNRN?+Wn}hO#G}b}#!4ye2h=yaW z6F?d8Jr)Dtf9nNnP=gM-{$fWyXOs{S5MXB~mWZ!G(8W?j6V24w`QD>PJBDR(rZhl- z^82m zeqip}3^jT9arL{s((Xd|FNzmb9j6re@*9{2hr#tenaz7Fl; zK0<9OW(KQk7_~Fx^4G385ggQ$__A2>lp>3aVgK;hDObJwO^vN}OM=CWL;n3XM;?TT zommB;EJi7HC&1G(Dd##FVLC9Nuq3?!y|#X5dh`O4pABxCqAp>y9H*eDTusPU_xT^k zm)`a+jk04a|2I6TIqt^KWs(Bl1Ht(8NI+oT><-dfme%Klr z!X?T&|GQ&%C|p$FzFbYNXx+=Fu)a^oSD~R{{Gg(EL?`Hb$@j&(pK78+1nN`nvpi%l zeehUpM6P(C<67y|luTx(Vv06Nk(0D`#A`tO=U3eu?jVOm2aqyGr6%hL)#MZq57a?P zWN#fsR~gW{LZ7F`LIN{N2s`|Y_GiLq;d?@CN(kp6RCbkXegO3{_r8RnhE{M@KIa zi46jcO6sZLS+C2NBXopzWnVcj>I0?#J11vkj%}dg4P&utkP^O^G6$~i?d|O-xfTs) z;kvbl&bAstJ%E+)Wyl5Rm_=FNxci_)fq@8wJvg}FG*dqF z3#1tdrjUfpQ{S({Y_DA$fn$yeOZsCovanwc8!yOE{W*b&d&rurz;PflgW?%c`g5!~ zr%#$caz1Oq;%UE3(?Gjdv+Hm6*&_ZWF^6yc)698Jl0~a-o?vp=+QZMh*Y4`?jwI9~ zjv)DvkrXV!O12b^Tjx)#zyv13!L>XyHA3AJw)3Tl(93t%&d1kT<#m*L#lgk4v8(G& z)8IWSCwQx@W|v`(Y%I2K@7_@@{a*Od^9{f9&;dXLEy9U;bz zw1fjgv|;QUG3lGlQa9NAi|u~g5O`hp>lqh#&Ajdh&q-D%fiwcfTlk5akm{XaOTS$p z$Qn$j!-Q3NQK}BJl>2h(duuK-Zf0f6VYpNuWBv++XF%Xq$X0S4pEnEnUTnfJ4x;4% z3rOO6jV-12KhaC)Dn~!;4L&;kcWNr~1m85Ky^@)gtc83^CZH22nV)+#Q9oyFOJVe~ z>59%8I^`DAd(d8r6Go-qAtYQT4gxlg8u+};uC=S{BY93`8yJPWuL(sF5!`uGQ-YIv z%2SUmlseDHw3mP?iwJfsHTUj+y1QA}xw!hE2Z8d`vSAbkcA%6&l4-_Hiwy@{()ny! zc6JyZ@i%9gRR4NU<2)rF!TxJiWc_n-Sz=XyuXSQF&N>g>x#+r4$QNq?##|ezxfb~1 zeQfoEtrg-Y_#+Wk2%TM)8w2y?EWBEWTwYqXjCbyltNXNRc!07`U{uCfwzV*PyL?%+ zYG%-_Dk|5k*yJ~I>1GhfS>MDlf;SUq2a(oO~K3+_0sT%u8^SMl8Ng)OTLlgi?^ zRBGkS+VkZqxIgK6I7LN$H)PfrpO z*52n=4=h-V2!ca|$aRovjRjI+ZiYvXB>*x=G&AZUVN7cOcr5bCr-5D+v?Qx(Z?8l0 z_;?L}be-si=PfR0gL3eAbH9oVI&)NrBgq;7DTp)!(Oq+>37@pPSV zG!_EGb{@SW5F>(-j! zuaIZdPfs6cu)YUzCVC79Jg3DGYf+)->$8O_uS#zYf;vcK|Kl8=3Y#s-nCjJiFCfN4`%#a>alNzXD&9-Q$kb`EXtsFa;7XKX{n#ud$*ieS+4|Xg@|Ph$KR?+I zL|_LdIq{ky`KN>g&ptunD7c6>wX{^>BqY-7p$ROM_f~o6EL`e&yGAvY3CYy2HcBw` z$nWKu%sOFvV#A@IWqjV+`nItcGPY!`-A;Hg2%AKx3Dp$Mj<|XW+^j5jwAcX1m6t}k zY_rIsVSNmn=DI$ZGhi0d@2--QGV$oj z-o_FIHihtnWaRD%J^%tBHfm?;39@Xk$TK8ox>Q`{z_^OG6{`b?>DnQ&KMIH|y$EaH zf^w_N*0lm}1>RL0xq7wW;+2wfX?b~98vIm5SbM?E?|AJJ3~(D~Z_s)6v03JJr4(%f z@Dm9d!diCOqKuc9*BG}cJMHOI9-6WO7XbzD1%>I^{$XQw&Ypp4+RqtM3Bx~<3kA!Y zi+Vrk)o#=b8DF@NFz|&UJU_h0MBvxxSl55M@5j@g{q*!RxnD#2fJ? zx9MoU*c;A#5z`OFYMX^Z*S1I7>HcKMVi+xKu-0;vJmB5Oq|fibJUW{r_u`!}OFE<7 zCux(}bSm{PpRU)Xj99nlS$e`c>01u&yse^bJpZlaLHB*D3k&?WIsFMIc}|Vuzx~jJ zN4#n(bO~PH+p_WR7#M-)irxzLrj51yRu>On_xUMh4i#e8Pl4BPhUU21i#|Mdtm=Bo;9{_~D4;>RTo+uk> z#19=hi8b9|tz$HMb4Yu23+TyP!4#0?7GU34E05`gNW?li9y$-qEqG_0D^Zn*d1sdM z8I~1DBT?{J$13AZtZcN(V+^ats7pX}sBLk**f@aquTw{&SIqDT3dCywgtFXzFkZtf zhaE~cOcEM&Wigl9yzc#8&frRthYpN~tML~)4@R)4ysd?73Ao#N=pbO}jyUJM=Qrj? zYM;32p0VzvLz31bbS0c+LZ8@R_ab)7Co&+kfS9Q4SVhY=k((|j5CKnvj*no>x z;p-mFJ=k1zzr}U7O9#gQjXdks46H>sDJHr?}Ci9#D3}H{2T+C zrGK{#k6LwCTvlm6lZQw9>9t-$-IVx#{dblH;~#E`#U4BFVPq62xxXj>(0}<^QEDPb z{u{VpF5yq@-O06~sk2e_l^nb56vbwik_S^^t9^owpn2_E`MM6?6|h2;>}d0hnoB9 zwmkP9rnC}Wy@lWwU&LnY9ij{U?)t6BEV17!P<|1!b`f@^XFL~^uH-pyuZx;@`|?0E zx~`+xJK9xKR9Xkp#Ak<596%Nli5jqrDe`>VM5Hg&LJWN zC56s4jipbtP`8zBy>I{qw)Q+eV4~b4>G{$BRpZxM zS)AKx^~k|iNOrgeI48+uNYzq=q|&#fR~{|tDj&G4-E3zdNk{eiX&CY5Zmpv32}yNx z4-cb{bKiD;%fVoukxMGVsU2&ZdkMn zjfvTcnP2%D!FFd2mgH588-D!~!2#CrQ#^5PogCk8`K_@}E)9I-q5*MY>NCY6ukDq> zq57*!Gb4ri4=X2cPd7I!)_)G1TQ&cep{)8=|M%y+S7sV;ty?kRbN~@sn7_N_e%a+H zvybOad&(d_aH|$i+w<1i%|EH55tKjJ<78m8zNbR%d^htMNk#VZfrYz&UsZRqg)67* z?47@VDEf60^WWJ6e+CrJU2pM{3fZM%v7yp7W+=*cZrkPZzXGeFMm70i|FJ4Mn-I1nf;k#1efPuwh!JTPZ zyIB~T473zCRK_abTVZ6gq9FJ9(n`}!zeS@|h5C$>@c)DM?0D-$vYIUg=LGNh&TU+m z!+$EUt}oa4-0}4X{g2`^rR=v4o)rldT-~AiapI+!rT6)U)0Js&i!;~^V{CTBi5D@^l9LXj-GX@;=|$Q(z80xqqZEJHahMc>y+}k)4?>U|v{Z+sd^4LQz$}{N4r#x7^-uuvTM7ZNTl7 z56xUiB^?tZw3yZLeECN+96qdh?jK$6Pyp^PcKBs~UdB}gW~{HwEYGbE{^a|0gTM;| zkzDboPp_vMKl}Gr=s#R3g4-2ps3m>B33{Ea;h)xAk??bKq!R3@n)nc4g{zr3M#RUW(EM>Cd;ca7#Pgjgvz9Ey1 zAClGAzuI#kOjT6xhQ_~pthZ&d+3wHe6c$dAKt4boS%$+G)s4&lwwuLn+y-b_k2(P`?P`i?iJ*vlAo>8TDknK8~n{elU6@m{?QGU9LLrlSbh^MLHlnp fIsN~A@e)IR(1~w?m^DI!e^it-6tj++-uV9jlIkb> diff --git a/query-languages/dax/media/dax-copilot/dax-query-list-products.png b/query-languages/dax/media/dax-copilot/dax-query-list-products.png index 69e68064d8687a7fedb049c2c4fb6c5c4c4a6c82..f65640a251893f8f240f95c674eadada1e09d58f 100644 GIT binary patch literal 28571 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 From 8d37dc32885b3ee933beee0018c9eb45dfabb78e Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 22:59:09 -0800 Subject: [PATCH 623/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 50 ++++++++++++++---------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 8fe549c80..cd6e8aa42 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -83,58 +83,58 @@ Type in a prompt or select any of these buttons to see quickly what you can do w ## Sample prompts -Here is a collection of sample prompts to illustrate how to get Copilot to write the DAX queries you want. +Here is a collection of sample prompts to illustrate how to use Copilot to write DAX queries. - [List products and show the last three months' profit compared to the previous three months](#list-products-and-show-the-last-three-months-profit-compared-to-the-previous-three-months). - [Add a column to show the difference](#add-a-column-to-show-the-difference). - [Explain what this query does](#explain-what-this-query-does). - [What is SUMMARIZECOLUMNS used for](#what-is-summarizecolumns-used-for). -### List products and show the last three months' profit compared to the previous three months +### Write a DAX query to show profit by product In a blank query tab, invoke Copilot with CTRL+I and enter this request: -"list the products and show the last 3 months profit compared to the 3 months before." +"Write a DAX query to show profit by product" -:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="Screenshot showing list products and show last 3 months profit compared to the 3 months before." lightbox="media/dax-copilot/dax-list-products.png"::: +:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="Screenshot showing Copilot with the prompt Write a DAX query to show profit by product" lightbox="media/dax-copilot/dax-list-products.png"::: -After a few moments I get a detailed DAX query. +After a few moments I get a DAX query. :::image type="content" source="media/dax-copilot/dax-query-list-products.png" alt-text="Screenshot showing DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-query-list-products.png"::: -I select **Keep query** and then **Run** the query. +I can select **run** to see the results before I keep the query. -:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-run-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-run-query.png"::: -Let's see the difference between the last three months and the previous three months. Select the query and start Copilot again with CTRL+I, or select the ribbon button. +I can conversationally make updates to my initial request. Type in "Add in Orders" and hit enter and Copilot adds in the additional measure. I can again **run** the query to see the results. -### Add a column to show the difference +:::image type="content" source="media/dax-copilot/dax-copilot-conversational-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-conversational-query.png"::: -This time the selection is showing fitted to the text and the background shading highlights what is being sent with the request to Copilot. +When I select **keep query**, the query is added to the query tab. -:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Screenshot showing Run the query that calculated the profit." lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: +### Add a column and show the diff view + +Let's now add a column to the existing DAX query. First I select the DAX query, then invoke Copilot. This time the selection is showing fitted to the text and the background shading highlights what is being sent with the request to Copilot. Type in this request, and hit enter + +"Add a column to show profit per order" + +:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Screenshot showing a selection included with the Copilot prompt" lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: Now the diff styling in the DAX query editor shows exactly what Copilot has changed. :::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Screenshot showing Diff styling shows what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: -I select **Keep query** and **Run** it again. +I select **run** to see the results, and **keep query** to add it to the query editor. :::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run the query and see the results, with the Profit Difference column." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: -I see the DAX query, and I can see the requests I sent to Copilot at the top of the query. Each main block of the query is also commented, explaining what it’s doing in each part. - -Maybe those comments aren't working for me. Let’s get a full explanation. - ### Explain what this query does -Again, highlight the whole query and invoke Copilot with this request: - -"Explain to me what this query does." +Copilot can provide a detailed explanation of a DAX query. Again, select the entire DAX query and invoke Copilot. This time select the **Explain this query** button. :::image type="content" source="media/dax-copilot/dax-copilot-explain-query.png" alt-text="Screenshot showing Explain to me what this query does." lightbox="media/dax-copilot/dax-copilot-explain-query.png"::: -Now, instead of writing DAX queries, it’s responding in the in-line window. +Now, instead of writing DAX queries, it’s responding in the inline Copilot. :::image type="content" source="media/dax-copilot/dax-copilot-query-explanation.png" alt-text="Screenshot showing brief explanation of the query."::: @@ -144,11 +144,11 @@ Copilot generates a few lines. I select **Show more** to see the full explanatio Now I understand each part and the DAX functions used. -### What is SUMMARIZECOLUMNS used for? +### Explain DAX topics with context -Speaking of these DAX functions, it would be great to get an explanation of those too. Let’s try Copilot to get some more information about a specific DAX function. +Copilot can also explain DAX functions with more detail. Let's ask about SUMMARIZECOLUMNS. In a new query tab, invoke Copilot, and sent the following request. - In this request, let’s find out what the SUMMARIZECOLUMNS does. +"Explain what SUMMARIZECOLUMNS is for" :::image type="content" source="media/dax-copilot/dax-copilot-explain-summarize-columns.png" alt-text="Screenshot showing an explanation of what the SUMMARIZECOLUMNS does." lightbox="media/dax-copilot/dax-copilot-explain-summarize-columns.png"::: @@ -160,9 +160,7 @@ I select **Show more**. :::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-more.png" alt-text="Screenshot showing Copilot generates a much more in-depth description."::: -Because I asked Copilot in the context of a DAX query that I highlighted, it gave me the response in the context of that query as well. - - +Because I asked Copilot in the context of a Power BI semantic model, it gave me an exmaple using the columns in my model. ## Fabric Copilot to help write DAX queries: Responsible AI FAQ From 642d69bd0fad76d9f24dc69f7651ccc7db004e99 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:02:40 -0800 Subject: [PATCH 624/934] Add files via upload --- .../media/dax-copilot/dax-copilot-run-query.png | Bin 0 -> 39994 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/dax-copilot/dax-copilot-run-query.png diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-run-query.png b/query-languages/dax/media/dax-copilot/dax-copilot-run-query.png new file mode 100644 index 0000000000000000000000000000000000000000..5048f30b745876204fc2d949177fb9d570601848 GIT binary patch literal 39994 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 literal 0 HcmV?d00001 From 28b13d338c09f52fe34a49dbd10c82e988c625af Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:12:23 -0800 Subject: [PATCH 625/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index cd6e8aa42..d48671409 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -85,12 +85,12 @@ Type in a prompt or select any of these buttons to see quickly what you can do w Here is a collection of sample prompts to illustrate how to use Copilot to write DAX queries. -- [List products and show the last three months' profit compared to the previous three months](#list-products-and-show-the-last-three-months-profit-compared-to-the-previous-three-months). -- [Add a column to show the difference](#add-a-column-to-show-the-difference). -- [Explain what this query does](#explain-what-this-query-does). -- [What is SUMMARIZECOLUMNS used for](#what-is-summarizecolumns-used-for). +- [Write a DAX query](#write-a-dax-query) +- [Add a column with the diff view](#add-a-column-with-the-diff-view) +- [Explain a DAX query](#explain-a-dax-query) +- [Explain a DAX topic](#explain-a-dax-topic) -### Write a DAX query to show profit by product +### Write a DAX query In a blank query tab, invoke Copilot with CTRL+I and enter this request: @@ -108,11 +108,11 @@ I can select **run** to see the results before I keep the query. I can conversationally make updates to my initial request. Type in "Add in Orders" and hit enter and Copilot adds in the additional measure. I can again **run** the query to see the results. -:::image type="content" source="media/dax-copilot/dax-copilot-conversational-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-conversational-query.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-conversational-query.png" alt-text="Screenshot showing how to build the DAX query conversationally." lightbox="media/dax-copilot/dax-copilot-conversational-query.png"::: When I select **keep query**, the query is added to the query tab. -### Add a column and show the diff view +### Add a column with the diff view Let's now add a column to the existing DAX query. First I select the DAX query, then invoke Copilot. This time the selection is showing fitted to the text and the background shading highlights what is being sent with the request to Copilot. Type in this request, and hit enter @@ -122,13 +122,13 @@ Let's now add a column to the existing DAX query. First I select the DAX query, Now the diff styling in the DAX query editor shows exactly what Copilot has changed. -:::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Screenshot showing Diff styling shows what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Screenshot showing diff styling to see what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: I select **run** to see the results, and **keep query** to add it to the query editor. -:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing Run the query and see the results, with the Profit Difference column." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing the query in the DAX query editor" lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: -### Explain what this query does +### Explain a DAX query Copilot can provide a detailed explanation of a DAX query. Again, select the entire DAX query and invoke Copilot. This time select the **Explain this query** button. @@ -144,7 +144,7 @@ Copilot generates a few lines. I select **Show more** to see the full explanatio Now I understand each part and the DAX functions used. -### Explain DAX topics with context +### Explain a DAX topic Copilot can also explain DAX functions with more detail. Let's ask about SUMMARIZECOLUMNS. In a new query tab, invoke Copilot, and sent the following request. From b6777b624dadeff19b8c7433ecfc50707c34d670 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:20:54 -0800 Subject: [PATCH 626/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index d48671409..b85a98a19 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -83,7 +83,7 @@ Type in a prompt or select any of these buttons to see quickly what you can do w ## Sample prompts -Here is a collection of sample prompts to illustrate how to use Copilot to write DAX queries. +These sample prompts can illustrate how to use Copilot to write DAX queries. - [Write a DAX query](#write-a-dax-query) - [Add a column with the diff view](#add-a-column-with-the-diff-view) @@ -114,7 +114,7 @@ When I select **keep query**, the query is added to the query tab. ### Add a column with the diff view -Let's now add a column to the existing DAX query. First I select the DAX query, then invoke Copilot. This time the selection is showing fitted to the text and the background shading highlights what is being sent with the request to Copilot. Type in this request, and hit enter +Let's now add a column to the existing DAX query. First I select the DAX query, then invoke Copilot. This time the selection is showing fitted to the text and the background shading highlights what is being sent with the request to Copilot. Type in this request, and hit enter: "Add a column to show profit per order" @@ -146,7 +146,7 @@ Now I understand each part and the DAX functions used. ### Explain a DAX topic -Copilot can also explain DAX functions with more detail. Let's ask about SUMMARIZECOLUMNS. In a new query tab, invoke Copilot, and sent the following request. +Copilot can also explain DAX functions with more detail. Let's ask about SUMMARIZECOLUMNS. In a new query tab, invoke Copilot, and sent the following request: "Explain what SUMMARIZECOLUMNS is for" @@ -156,11 +156,11 @@ Again, Copilot generates brief description: :::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="Screenshot showing a brief description of the SUMMARIZECOLUMNS DAX funtion."::: -I select **Show more**. +I can select **Show more** to see a more detailed explanation with an example. :::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-more.png" alt-text="Screenshot showing Copilot generates a much more in-depth description."::: -Because I asked Copilot in the context of a Power BI semantic model, it gave me an exmaple using the columns in my model. +The example also uses columns in my model. ## Fabric Copilot to help write DAX queries: Responsible AI FAQ @@ -169,7 +169,7 @@ Because I asked Copilot in the context of a Power BI semantic model, it gave me An inline Copilot found in Power BI DAX query view, available in the DAX query view of Power BI Desktop or write DAX queries in Power BI workspace, for model authors and consumers to request help creating DAX queries. The help can include explaining a DAX query and DAX topics, in addition to creating DAX queries themselves. ### What can Fabric Copilot to help write DAX queries do? -The user request can be returned by Copilot as a DAX query the user can see, then run to see the data returned in the results grid. Additional requests can be made, and a new DAX query can be returned, creating a DAX query conversationally. If the request is about explaining a DAX query or topic, a natural language response is generated in the inline Copilot. DAX topics can include what a DAX function does, or which DAX function is good for returning data in a specific way. +The user request can be returned by Copilot as a DAX query the user can see, then run to see the data returned in the results grid. Additional requests can be made, and a new DAX query can be returned, creating a DAX query conversationally. If the request is about explaining a DAX query or topic, a natural language response is generated in the inline Copilot. DAX topics can include what a DAX function does or which DAX function is good for returning data in a specific way. ### What is Fabric Copilot to help write DAX queries’ intended use? Copilot’s intended use is to help create DAX queries on a specific semantic model the user is currently working with in Power BI. From cee69eac9301816f6a9f3b3d6d04e2e6ed07e1f9 Mon Sep 17 00:00:00 2001 From: din-s <46292283+din-s@users.noreply.github.com> Date: Tue, 26 Nov 2024 11:13:41 +0530 Subject: [PATCH 627/934] Update concatenate-function-dax.md Add period before whitespace char --- query-languages/dax/concatenate-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/concatenate-function-dax.md b/query-languages/dax/concatenate-function-dax.md index ddfccf928..957a10e52 100644 --- a/query-languages/dax/concatenate-function-dax.md +++ b/query-languages/dax/concatenate-function-dax.md @@ -56,7 +56,7 @@ The sample formula returns the customer's full name as listed in a phone book. N The sample formula creates a new calculated column in the Customer table with the full customer name as a combination of first name, middle initial, and last name. If there is no middle name, the last name comes directly after the first name. If there is a middle name, only the first letter of the middle name is used and the initial letter is followed by a period. ```dax -= CONCATENATE( [FirstName]&" ", CONCATENATE( IF( LEN([MiddleName])>1, LEFT([MiddleName],1)&" ", ""), [LastName])) += CONCATENATE( [FirstName]&" ", CONCATENATE( IF( LEN([MiddleName])>1, LEFT([MiddleName],1)&". ", ""), [LastName])) ``` This formula uses nested CONCATENATE and IF functions, together with the ampersand (**&**) operator, to conditionally concatenate three string values and add spaces as separators. From d9c9b7fd6dbe0c6b2da2dc450094d259e58bda21 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Tue, 26 Nov 2024 14:31:49 -0800 Subject: [PATCH 628/934] Add files via upload blocked pii instead of blur --- .../dax-copilot/copilot-power-bi-desktop.png | Bin 86707 -> 81209 bytes ...lot-power-bi-service-write-dax-queries.png | Bin 108272 -> 85345 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/query-languages/dax/media/dax-copilot/copilot-power-bi-desktop.png b/query-languages/dax/media/dax-copilot/copilot-power-bi-desktop.png index daf90ea01340b5f0dbdb29cdc8d03c97cbb9064a..d7bca7f6603fa332a8741ca993965003208f0e50 100644 GIT binary patch literal 81209 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 diff --git a/query-languages/dax/media/dax-copilot/copilot-power-bi-service-write-dax-queries.png b/query-languages/dax/media/dax-copilot/copilot-power-bi-service-write-dax-queries.png index f1cdb7fd60d5b0ac508519f0940d8c4e6bb4073e..2052ea57e7b5fc8649879c2c941fc26f067f492b 100644 GIT binary patch literal 85345 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 From 09fd35eea5ff4180ee57b0c2aaf789be9420ec76 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Tue, 26 Nov 2024 14:35:03 -0800 Subject: [PATCH 629/934] Update dax-copilot.md Added periods to alt-text. --- query-languages/dax/dax-copilot.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index b85a98a19..2efe779e8 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -96,7 +96,7 @@ In a blank query tab, invoke Copilot with CTRL+I and enter this reque "Write a DAX query to show profit by product" -:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="Screenshot showing Copilot with the prompt Write a DAX query to show profit by product" lightbox="media/dax-copilot/dax-list-products.png"::: +:::image type="content" source="media/dax-copilot/dax-list-products.png" alt-text="Screenshot showing Copilot with the prompt Write a DAX query to show profit by product." lightbox="media/dax-copilot/dax-list-products.png"::: After a few moments I get a DAX query. @@ -118,7 +118,7 @@ Let's now add a column to the existing DAX query. First I select the DAX query, "Add a column to show profit per order" -:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Screenshot showing a selection included with the Copilot prompt" lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Screenshot showing a selection included with the Copilot prompt." lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: Now the diff styling in the DAX query editor shows exactly what Copilot has changed. @@ -126,7 +126,7 @@ Now the diff styling in the DAX query editor shows exactly what Copilot has chan I select **run** to see the results, and **keep query** to add it to the query editor. -:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing the query in the DAX query editor" lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-updated-query.png" alt-text="Screenshot showing the query in the DAX query editor." lightbox="media/dax-copilot/dax-copilot-updated-query.png"::: ### Explain a DAX query From 6aefc1525908c86720dcc4b3825eaec51d6c4545 Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Thu, 5 Dec 2024 17:33:22 -0800 Subject: [PATCH 630/934] Updating NoLoc for DAX docfx.json --- query-languages/dax/dax - Shortcut.lnk | Bin 1528 -> 0 bytes query-languages/dax/docfx.json | 1259 +++++++++++++++++++++++- 2 files changed, 1258 insertions(+), 1 deletion(-) delete mode 100644 query-languages/dax/dax - Shortcut.lnk diff --git a/query-languages/dax/dax - Shortcut.lnk b/query-languages/dax/dax - Shortcut.lnk deleted file mode 100644 index 0fe2e81d24c1ca48e98f7e1aea7e8f0724114d9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1528 zcmbVMS!h#16g`Ps-BYdFic7616-`asXlt=r=xTkKYAjlKNJA5AHFk@^1YC-sxWyGw z+$f>ykNpsFscY3Qf3zyNAtHVi7sL-mM8tFFrO!k^1m|(?%-nZp&b@c;j0V7xVxwy*!bUPRl0o+Kn)^AUHY}|!T~=e?!qBwXo)IlK8qu6l*;5mNQ6l2n{xg+m zK~TjKroUb?)G;1Ani(CC%E*jd$v*KMRVIhiY?l6+2yw}(pUqF{IEG!5i8UVCsvj0Meb3ESm{oDPkGDg&vAOHC-ciiQcfc&c^=wSOw_R>_D z*!>%f8L;C-Qd`Z;yV}*Sk3QTVRB~l&{q5dG3wx8dO|e-ol?8kM^?ws1V_COLlCs@Z z?vIX}FN?9O{M@&m(H()+87dAoaM*$pkf`1+60ho>J~{~$=cx_{zK4&i2LW)pJ=xmZIunN+pQl~n69I37u;LPO;p^=?Ukru%ZI%h14=!H0CLW{&(^Ew2b5t49!Ob>FKe^S;EK zU0at~c;s>NrKjk2y-4km#7q(c@k4It|DHkO`TTvpx*4Icfk`qFb7AcIlFmqT#kq>2 ktd7Fa-ig$&5rYb1bK9%J&MnVeM{Nfdp8U2??wr|v0Rz=A!T Date: Thu, 5 Dec 2024 18:04:17 -0800 Subject: [PATCH 631/934] Adding M keywords to noloc tag --- query-languages/m/docfx.json | 1051 +++++++++++++++++++++++++++++++++- 1 file changed, 1050 insertions(+), 1 deletion(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index cb805709a..25f891586 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,1056 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "11/13/2024" + "ms.date": "11/13/2024", + "no-loc": [ + "a b c d", + "#binary", + "#date", + "#datetime", + "#datetimezone", + "#duration", + "#table", + "#time", + "absoluteUri", + "Access.Database", + "AccessControlEntry.ConditionToIdentities", + "AccessControlKind.Type", + "account", + "accumulator", + "action", + "Action.WithErrorContext", + "ActiveDirectory.Domains", + "additionalAggregates", + "AdobeAnalytics.Cubes", + "AdoDotNet.DataSource", + "AdoDotNet.Query", + "after", + "aggregatedColumns", + "aggregationFunction", + "aggregations", + "alternates", + "AnalysisServices.Database", + "AnalysisServices.Databases", + "args", + "arguments", + "as action", + "as any", + "as any ", + "as anynonnull", + "as binary", + "as date", + "as datetime", + "as datetimezone", + "as duration", + "as function", + "as function ", + "as list", + "as list ", + "as logical", + "as logical ", + "as nullable binary", + "as nullable date", + "as nullable date ", + "as nullable datetime", + "as nullable datetimezone", + "as nullable duration", + "as nullable function", + "as nullable list", + "as nullable logical", + "as nullable logical ", + "as nullable number", + "as nullable number ", + "as nullable record", + "as nullable table", + "as nullable text", + "as nullable time", + "as nullable type", + "as number", + "as number ", + "as record", + "as table", + "as text", + "as time", + "as type", + "attribute", + "attributeColumn", + "attributeNames", + "AzureStorage.BlobContents", + "AzureStorage.Blobs", + "AzureStorage.DataLake", + "AzureStorage.DataLakeContents", + "AzureStorage.Tables", + "base", + "baseUri", + "before", + "binaries", + "binary", + "Binary.ApproximateLength", + "Binary.Buffer", + "Binary.Combine", + "Binary.Compress", + "Binary.Decompress", + "Binary.From", + "Binary.FromList", + "Binary.FromText", + "Binary.InferContentType", + "Binary.Length", + "Binary.Range", + "Binary.Split", + "Binary.ToList", + "Binary.ToText", + "Binary.View", + "Binary.ViewError", + "Binary.ViewFunction", + "BinaryEncoding.Type", + "binaryFormat", + "BinaryFormat.7BitEncodedSignedInteger", + "BinaryFormat.7BitEncodedUnsignedInteger", + "BinaryFormat.Binary", + "BinaryFormat.Byte", + "BinaryFormat.ByteOrder", + "BinaryFormat.Choice", + "BinaryFormat.Decimal", + "BinaryFormat.Double", + "BinaryFormat.Group", + "BinaryFormat.Length", + "BinaryFormat.List", + "BinaryFormat.Null", + "BinaryFormat.Record", + "BinaryFormat.SignedInteger16", + "BinaryFormat.SignedInteger32", + "BinaryFormat.SignedInteger64", + "BinaryFormat.Single", + "BinaryFormat.Text", + "BinaryFormat.Transform", + "BinaryFormat.UnsignedInteger16", + "BinaryFormat.UnsignedInteger32", + "BinaryFormat.UnsignedInteger64", + "BinaryOccurrence.Type", + "bottom", + "BufferMode.Type", + "Byte.From", + "byteOrder", + "ByteOrder.Type", + "Cdm.Contents", + "character", + "Character.FromNumber", + "Character.ToNumber", + "characters", + "chooseFunction", + "clientId", + "collection", + "collectionTransform", + "column", + "columnGenerator", + "columnName", + "columnNames", + "columnNameSelectorPairs", + "columnNamesOrNumber", + "columnOrder", + "columns", + "columnsToSearch", + "columnType", + "combinationSize", + "combineFunction", + "combiner", + "Combiner.CombineTextByDelimiter", + "Combiner.CombineTextByEachDelimiter", + "Combiner.CombineTextByLengths", + "Combiner.CombineTextByPositions", + "Combiner.CombineTextByRanges", + "Comments", + "comparer", + "Comparer.Equals", + "Comparer.FromCulture", + "Comparer.Ordinal", + "Comparer.OrdinalIgnoreCase", + "comparisonCriteria", + "Compression.Type", + "compressionType", + "condition", + "Conditionals", + "connectionString", + "Constants", + "containerName", + "contents", + "context", + "count", + "countOrCondition", + "Csv.Document", + "csvStyle", + "CsvStyle.Type", + "cube", + "Cube.AddAndExpandDimensionColumn", + "Cube.AddMeasureColumn", + "Cube.ApplyParameter", + "Cube.AttributeMemberId", + "Cube.AttributeMemberProperty", + "Cube.CollapseAndRemoveColumns", + "Cube.Dimensions", + "Cube.DisplayFolders", + "Cube.MeasureProperties", + "Cube.MeasureProperty", + "Cube.Measures", + "Cube.Parameters", + "Cube.Properties", + "Cube.PropertyKey", + "Cube.ReplaceDimensions", + "Cube.Transform", + "culture", + "Culture.Current", + "Currency.From", + "data", + "database", + "dataColumn", + "dataTableIdentifier", + "date", + "Date.AddDays", + "Date.AddMonths", + "Date.AddQuarters", + "Date.AddWeeks", + "Date.AddYears", + "Date.Day", + "Date.DayOfWeek", + "Date.DayOfWeekName", + "Date.DayOfYear", + "Date.DaysInMonth", + "Date.EndOfDay", + "Date.EndOfMonth", + "Date.EndOfQuarter", + "Date.EndOfWeek", + "Date.EndOfYear", + "Date.From", + "Date.FromText", + "Date.IsInCurrentDay", + "Date.IsInCurrentMonth", + "Date.IsInCurrentQuarter", + "Date.IsInCurrentWeek", + "Date.IsInCurrentYear", + "Date.IsInNextDay", + "Date.IsInNextMonth", + "Date.IsInNextNDays", + "Date.IsInNextNMonths", + "Date.IsInNextNQuarters", + "Date.IsInNextNWeeks", + "Date.IsInNextNYears", + "Date.IsInNextQuarter", + "Date.IsInNextWeek", + "Date.IsInNextYear", + "Date.IsInPreviousDay", + "Date.IsInPreviousMonth", + "Date.IsInPreviousNDays", + "Date.IsInPreviousNMonths", + "Date.IsInPreviousNQuarters", + "Date.IsInPreviousNWeeks", + "Date.IsInPreviousNYears", + "Date.IsInPreviousQuarter", + "Date.IsInPreviousWeek", + "Date.IsInPreviousYear", + "Date.IsInYearToDate", + "Date.IsLeapYear", + "Date.Month", + "Date.MonthName", + "Date.QuarterOfYear", + "Date.StartOfDay", + "Date.StartOfMonth", + "Date.StartOfQuarter", + "Date.StartOfWeek", + "Date.StartOfYear", + "Date.ToRecord", + "Date.ToText", + "Date.WeekOfMonth", + "Date.WeekOfYear", + "Date.Year", + "dateTime", + "DateTime.AddZone", + "DateTime.Date", + "DateTime.FixedLocalNow", + "DateTime.From", + "DateTime.FromFileTime", + "DateTime.FromText", + "DateTime.IsInCurrentHour", + "DateTime.IsInCurrentMinute", + "DateTime.IsInCurrentSecond", + "DateTime.IsInNextHour", + "DateTime.IsInNextMinute", + "DateTime.IsInNextNHours", + "DateTime.IsInNextNMinutes", + "DateTime.IsInNextNSeconds", + "DateTime.IsInNextSecond", + "DateTime.IsInPreviousHour", + "DateTime.IsInPreviousMinute", + "DateTime.IsInPreviousNHours", + "DateTime.IsInPreviousNMinutes", + "DateTime.IsInPreviousNSeconds", + "DateTime.IsInPreviousSecond", + "DateTime.LocalNow", + "DateTime.Time", + "DateTime.ToRecord", + "DateTime.ToText", + "dateTimeZone", + "DateTimeZone.FixedLocalNow", + "DateTimeZone.FixedUtcNow", + "DateTimeZone.From", + "DateTimeZone.FromFileTime", + "DateTimeZone.FromText", + "DateTimeZone.LocalNow", + "DateTimeZone.RemoveZone", + "DateTimeZone.SwitchZone", + "DateTimeZone.ToLocal", + "DateTimeZone.ToRecord", + "DateTimeZone.ToText", + "DateTimeZone.ToUtc", + "DateTimeZone.UtcNow", + "DateTimeZone.ZoneHours", + "DateTimeZone.ZoneMinutes", + "day", + "Day.Type", + "days", + "DB2.Database", + "Decimal.From", + "default", + "defaultTransformation", + "defaultValue", + "delay", + "delayed", + "delayTypes", + "delimiter", + "delimiters", + "DeltaLake.Table", + "detail", + "Diagnostics.ActivityId", + "Diagnostics.CorrelationId", + "Diagnostics.Trace", + "digits", + "dimensions", + "dimensionSelector", + "directory", + "DirectQueryCapabilities.From", + "divisor", + "document", + "Double.From", + "duration", + "Duration.Days", + "Duration.From", + "Duration.FromText", + "Duration.Hours", + "Duration.Minutes", + "Duration.Seconds", + "Duration.ToRecord", + "Duration.TotalDays", + "Duration.TotalHours", + "Duration.TotalMinutes", + "Duration.TotalSeconds", + "Duration.ToText", + "Embedded.Value", + "encoding", + "endDelimiter", + "endIndex", + "endpoint", + "Enumerations", + "environment", + "equationCriteria", + "Error.Record", + "errorCode", + "errorRecord", + "errorReplacement", + "Errors", + "Essbase.Cubes", + "Excel.CurrentWorkbook", + "Excel.ShapeTable", + "Excel.Workbook", + "Exchange.Contents", + "Exchange.Contents ", + "Expression.Constant", + "Expression.Evaluate", + "Expression.Identifier", + "extra", + "extraColumns", + "extraValues", + "ExtraValues.Type", + "facets", + "field", + "fieldName", + "fieldNames", + "fieldOrder", + "fields", + "File.Contents", + "fileTime", + "firstDayOfWeek", + "Folder.Contents", + "Folder.Files", + "forestRootDomainName", + "format", + "formatString", + "function", + "Function.From", + "Function.Invoke", + "Function.InvokeAfter", + "Function.InvokeWithErrorContext", + "Function.IsDataSource", + "Function.ScalarVector", + "Functions", + "functionType", + "Geography.FromWellKnownText", + "Geography.ToWellKnownText", + "GeographyPoint.From", + "Geometry.FromWellKnownText", + "Geometry.ToWellKnownText", + "GeometryPoint.From", + "GoogleAnalytics.Accounts", + "graph", + "Graph.Nodes", + "group", + "groupKind", + "GroupKind.Type", + "Guid.From", + "handlers", + "Hdfs.Contents", + "Hdfs.Files", + "HdInsight.Containers", + "HdInsight.Contents", + "HdInsight.Files", + "headers", + "hour", + "hours", + "html", + "Html.Table", + "identifier", + "identity", + "Identity.From", + "Identity.IsMemberOf", + "identityProvider", + "IdentityProvider.Default", + "ignoreCase", + "includeByteOrderMark", + "includeLineSeparators", + "includeNulls", + "increment", + "index", + "Informix.Database", + "initial", + "initialValue", + "input", + "Int16.From", + "Int32.From", + "Int64.From", + "Int8.From", + "Introduction", + "isPrimary", + "ItemExpression.From", + "ItemExpression.Item", + "joinAlgorithm", + "JoinAlgorithm.Type", + "joinKind", + "JoinKind.Type", + "joinOptions", + "JoinSide.Type", + "Json.Document", + "Json.FromValue", + "jsonText", + "key", + "key1", + "key2", + "keyEqualityComparers", + "keys", + "lastKey", + "latitude", + "length", + "lengths", + "Let", + "LimitClauseKind.Type", + "lines", + "Lines.FromBinary", + "Lines.FromText", + "Lines.ToBinary", + "Lines.ToText", + "lineSeparator", + "list", + "List.Accumulate", + "List.AllTrue", + "List.Alternate", + "List.AnyTrue", + "List.Average", + "List.Buffer", + "List.Combine", + "List.ConformToPageReader", + "List.Contains", + "List.ContainsAll", + "List.ContainsAny", + "List.Count", + "List.Covariance", + "List.Dates", + "List.DateTimes", + "List.DateTimeZones", + "List.Difference", + "List.Distinct", + "List.Durations", + "List.FindText", + "List.First", + "List.FirstN", + "List.Generate", + "List.InsertRange", + "List.Intersect", + "List.IsDistinct", + "List.IsEmpty", + "List.Last", + "List.LastN", + "List.MatchesAll", + "List.MatchesAny", + "List.Max", + "List.MaxN", + "List.Median", + "List.Min", + "List.MinN", + "List.Mode", + "List.Modes", + "List.NonNullCount", + "List.Numbers", + "List.Percentile", + "List.PositionOf", + "List.PositionOfAny", + "List.Positions", + "List.Product", + "List.Random", + "List.Range", + "List.RemoveFirstN", + "List.RemoveItems", + "List.RemoveLastN", + "List.RemoveMatchingItems", + "List.RemoveNulls", + "List.RemoveRange", + "List.Repeat", + "List.ReplaceMatchingItems", + "List.ReplaceRange", + "List.ReplaceValue", + "List.Reverse", + "List.Select", + "List.Single", + "List.SingleOrDefault", + "List.Skip", + "List.Sort", + "List.Split", + "List.StandardDeviation", + "List.Sum", + "List.Times", + "List.Transform", + "List.TransformMany", + "List.Union", + "List.Zip", + "list1", + "list2", + "listOfTypes", + "lists", + "Logical.From", + "Logical.FromText", + "Logical.ToText", + "logicalValue", + "loginUrl", + "longitude", + "m", + "mailboxAddress", + "measure", + "measureSelector", + "message", + "Metadata", + "metaValue", + "method", + "min", + "minute", + "minutes", + "missingField", + "MissingField.Type", + "Module.Versions", + "month", + "months", + "MySQL.Database", + "name", + "nameGenerator", + "new", + "newColumnName", + "newColumnNames", + "newText", + "newValue", + "next", + "number", + "Number.Abs", + "Number.Acos", + "Number.Asin", + "Number.Atan", + "Number.Atan2", + "Number.BitwiseAnd", + "Number.BitwiseNot", + "Number.BitwiseOr", + "Number.BitwiseShiftLeft", + "Number.BitwiseShiftRight", + "Number.BitwiseXor", + "Number.Combinations", + "Number.Cos", + "Number.Cosh", + "Number.E", + "Number.Epsilon", + "Number.Exp", + "Number.Factorial", + "Number.From", + "Number.FromText", + "Number.IntegerDivide", + "Number.IsEven", + "Number.IsNaN", + "Number.IsOdd", + "Number.Ln", + "Number.Log", + "Number.Log10", + "Number.Mod", + "Number.NaN", + "Number.NegativeInfinity", + "Number.Permutations", + "Number.PI", + "Number.PositiveInfinity", + "Number.Power", + "Number.Random", + "Number.RandomBetween", + "Number.Round", + "Number.RoundAwayFromZero", + "Number.RoundDown", + "Number.RoundTowardZero", + "Number.RoundUp", + "Number.Sign", + "Number.Sin", + "Number.Sinh", + "Number.Sqrt", + "Number.Tan", + "Number.Tanh", + "Number.ToText", + "number1", + "number2", + "numberList1", + "numberList2", + "numberOfDays", + "numberOfMonths", + "numberOfQuarters", + "numberOfWeeks", + "numberOfYears", + "numbersList", + "occurrence", + "Occurrence.Type", + "OData.Feed", + "ODataOmitValues.Type", + "Odbc.DataSource", + "Odbc.InferOptions", + "Odbc.Query", + "offset", + "offsetHours", + "offsetMinutes", + "old", + "oldValue", + "OleDb.DataSource", + "OleDb.Query", + "omitSRID", + "open", + "Operators", + "optional ", + "optional arguments", + "options", + "optionsOrLogonGroup", + "Oracle.Database", + "Order.Type", + "pageSize", + "parameter", + "parameters", + "partitionColumn", + "partitionColumnType", + "partitions", + "path", + "pdf", + "Pdf.Tables", + "Percentage.From", + "PercentileMode.Type", + "percentiles", + "permutationSize", + "pivotColumns", + "pivotValues", + "positions", + "PostgreSQL.Database", + "power", + "precision", + "Precision.Type", + "prefix", + "Progress.DataSourceProgress", + "property", + "propertyName", + "providerName", + "quarters", + "query", + "quoteStyle", + "QuoteStyle.Type", + "ranges", + "RankKind.Type", + "RData.FromBinary", + "reason", + "record", + "Record.AddField", + "Record.Combine", + "Record.Field", + "Record.FieldCount", + "Record.FieldNames", + "Record.FieldOrDefault", + "Record.FieldValues", + "Record.FromList", + "Record.FromTable", + "Record.HasFields", + "Record.RemoveFields", + "Record.RenameFields", + "Record.ReorderFields", + "Record.SelectFields", + "Record.ToList", + "Record.ToTable", + "Record.TransformFields", + "records", + "RelativePosition.Type", + "relativeUri", + "removeChars", + "renames", + "repeatInterval", + "replacements", + "replacer", + "Replacer.ReplaceText", + "Replacer.ReplaceValue", + "replaceWith", + "resultTransform", + "roundingMode", + "RoundingMode.Type", + "row", + "RowExpression.Column", + "RowExpression.From", + "RowExpression.Row", + "rows", + "Salesforce.Data", + "Salesforce.Reports", + "SapBusinessWarehouse.Cubes", + "SapBusinessWarehouseExecutionMode.Type", + "SapHana.Database", + "SapHanaDistribution.Type", + "SapHanaRangeOperator.Type", + "scalarFunctionType", + "schema", + "second", + "seconds", + "Sections", + "seed", + "selectChars", + "selection", + "selector", + "separator", + "separators", + "server", + "serviceUri", + "setSize", + "shapingFunction", + "SharePoint.Contents", + "SharePoint.Files", + "SharePoint.Tables", + "signature", + "Single.From", + "skip", + "Soda.Feed", + "source", + "sourceColumn", + "sourceColumns", + "splitter", + "Splitter.SplitByNothing", + "Splitter.SplitTextByAnyDelimiter", + "Splitter.SplitTextByCharacterTransition", + "Splitter.SplitTextByDelimiter", + "Splitter.SplitTextByEachDelimiter", + "Splitter.SplitTextByLengths", + "Splitter.SplitTextByPositions", + "Splitter.SplitTextByRanges", + "Splitter.SplitTextByRepeatedLengths", + "Splitter.SplitTextByWhitespace", + "sql", + "Sql.Database", + "Sql.Databases", + "SqlExpression.SchemaFrom", + "SqlExpression.ToExpression", + "srid", + "start", + "startAtEnd", + "startDelimiter", + "startIndex", + "step", + "stream", + "substring", + "Sybase.Database", + "systemNumberOrSystemId", + "table", + "Table.AddColumn", + "Table.AddFuzzyClusterColumn", + "Table.AddIndexColumn", + "Table.AddJoinColumn", + "Table.AddKey", + "Table.AddRankColumn", + "Table.AggregateTableColumn", + "Table.AlternateRows", + "Table.ApproximateRowCount", + "Table.Buffer", + "Table.Column", + "Table.ColumnCount", + "Table.ColumnNames", + "Table.ColumnsOfType", + "Table.Combine", + "Table.CombineColumns", + "Table.CombineColumnsToRecord", + "Table.ConformToPageReader", + "Table.Contains", + "Table.ContainsAll", + "Table.ContainsAny", + "Table.DemoteHeaders", + "Table.Distinct", + "Table.DuplicateColumn", + "Table.ExpandListColumn", + "Table.ExpandRecordColumn", + "Table.ExpandTableColumn", + "Table.FillDown", + "Table.FillUp", + "Table.FilterWithDataTable", + "Table.FindText", + "Table.First", + "Table.FirstN", + "Table.FirstValue", + "Table.FromColumns", + "Table.FromList", + "Table.FromPartitions", + "Table.FromRecords", + "Table.FromRows", + "Table.FromValue", + "Table.FuzzyGroup", + "Table.FuzzyJoin", + "Table.FuzzyNestedJoin", + "Table.Group", + "Table.HasColumns", + "Table.InsertRows", + "Table.IsDistinct", + "Table.IsEmpty", + "Table.Join", + "Table.Keys", + "Table.Last", + "Table.LastN", + "Table.MatchesAllRows", + "Table.MatchesAnyRows", + "Table.Max", + "Table.MaxN", + "Table.Min", + "Table.MinN", + "Table.NestedJoin", + "Table.Partition", + "Table.PartitionValues", + "Table.Pivot", + "Table.PositionOf", + "Table.PositionOfAny", + "Table.PrefixColumns", + "Table.Profile", + "Table.PromoteHeaders", + "Table.Range", + "Table.RemoveColumns", + "Table.RemoveFirstN", + "Table.RemoveLastN", + "Table.RemoveMatchingRows", + "Table.RemoveRows", + "Table.RemoveRowsWithErrors", + "Table.RenameColumns", + "Table.ReorderColumns", + "Table.Repeat", + "Table.ReplaceErrorValues", + "Table.ReplaceKeys", + "Table.ReplaceMatchingRows", + "Table.ReplaceRelationshipIdentity", + "Table.ReplaceRows", + "Table.ReplaceValue", + "Table.ReverseRows", + "Table.RowCount", + "Table.Schema", + "Table.SelectColumns", + "Table.SelectRows", + "Table.SelectRowsWithErrors", + "Table.SingleRow", + "Table.Skip", + "Table.Sort", + "Table.Split", + "Table.SplitAt", + "Table.SplitColumn", + "Table.StopFolding", + "Table.ToColumns", + "Table.ToList", + "Table.ToRecords", + "Table.ToRows", + "Table.TransformColumnNames", + "Table.TransformColumns", + "Table.TransformColumnTypes", + "Table.TransformRows", + "Table.Transpose", + "Table.Unpivot", + "Table.UnpivotOtherColumns", + "Table.View", + "Table.ViewError", + "Table.ViewFunction", + "Table.WithErrorContext", + "table1", + "table2", + "tables", + "Tables.GetRelationships", + "tableType", + "take", + "template", + "Teradata.Database", + "text", + "Text.AfterDelimiter", + "Text.At", + "Text.BeforeDelimiter", + "Text.BetweenDelimiters", + "Text.Clean", + "Text.Combine", + "Text.Contains", + "Text.End", + "Text.EndsWith", + "Text.Format", + "Text.From", + "Text.FromBinary", + "Text.InferNumberType", + "Text.Insert", + "Text.Length", + "Text.Lower", + "Text.Middle", + "Text.NewGuid", + "Text.PadEnd", + "Text.PadStart", + "Text.PositionOf", + "Text.PositionOfAny", + "Text.Proper", + "Text.Range", + "Text.Remove", + "Text.RemoveRange", + "Text.Repeat", + "Text.Replace", + "Text.ReplaceRange", + "Text.Reverse", + "Text.Select", + "Text.Split", + "Text.SplitAny", + "Text.Start", + "Text.StartsWith", + "Text.ToBinary", + "Text.ToList", + "Text.Trim", + "Text.TrimEnd", + "Text.TrimStart", + "Text.Upper", + "TextEncoding.Type", + "texts", + "time", + "Time.EndOfHour", + "Time.From", + "Time.FromText", + "Time.Hour", + "Time.Minute", + "Time.Second", + "Time.StartOfHour", + "Time.ToRecord", + "Time.ToText", + "TimeZone.Current", + "timezoneHours", + "timezoneMinutes", + "top", + "traceLevel", + "TraceLevel.Type", + "transform", + "transformOperations", + "transforms", + "trim", + "type", + "Type.AddTableKey", + "Type.ClosedRecord", + "Type.Facets", + "Type.ForFunction", + "Type.ForRecord", + "Type.FunctionParameters", + "Type.FunctionRequiredParameters", + "Type.FunctionReturn", + "Type.Is", + "Type.IsNullable", + "Type.IsOpenRecord", + "Type.ListItem", + "Type.NonNullable", + "Type.OpenRecord", + "Type.RecordFields", + "Type.ReplaceFacets", + "Type.ReplaceTableKeys", + "Type.TableColumn", + "Type.TableKeys", + "Type.TableRow", + "Type.TableSchema", + "Type.Union", + "type1", + "type2", + "types", + "Types", + "typeTransformations", + "Uri.BuildQueryString", + "Uri.Combine", + "Uri.EscapeDataString", + "Uri.Parts", + "url", + "useHeaders", + "value", + "Value.Add", + "Value.Alternates", + "Value.As", + "Value.Compare", + "Value.Divide", + "Value.Equals", + "Value.Expression", + "Value.Firewall", + "Value.FromText", + "Value.Is", + "Value.Lineage", + "Value.Metadata", + "Value.Multiply", + "Value.NativeQuery", + "Value.NullableEquals", + "Value.Optimize", + "Value.RemoveMetadata", + "Value.ReplaceMetadata", + "Value.ReplaceType", + "Value.Subtract", + "Value.Traits", + "Value.Type", + "Value.VersionIdentity", + "Value.Versions", + "Value.ViewError", + "Value.ViewFunction", + "value1", + "value2", + "valueColumn", + "values", + "Values", + "Variable.Value", + "vectorFunction", + "Web.BrowserContents", + "Web.Contents", + "Web.Headers", + "Web.Page", + "WebAction.Request", + "WebMethod.Type", + "weeks", + "workbook", + "x", + "Xml.Document", + "Xml.Tables", + "y", + "year", + "years", + "z" + ] }, "fileMetadata": { }, "template": [], From 7ec91cd86d772a051379fc3006731c490549bf9e Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:15:34 -0800 Subject: [PATCH 632/934] Code formatting on function parameters --- query-languages/dax/abs-function-dax.md | 2 +- query-languages/dax/accrint-function-dax.md | 28 +- query-languages/dax/accrintm-function-dax.md | 14 +- query-languages/dax/acos-function-dax.md | 10 +- query-languages/dax/acosh-function-dax.md | 8 +- query-languages/dax/acot-function-dax.md | 2 +- query-languages/dax/acoth-function-dax.md | 2 +- .../dax/addcolumns-function-dax.md | 6 +- .../dax/addmissingitems-function-dax.md | 8 +- query-languages/dax/all-function-dax.md | 6 +- .../dax/allcrossfiltered-function-dax.md | 2 +- query-languages/dax/allexcept-function-dax.md | 4 +- .../dax/allnoblankrow-function-dax.md | 16 +- .../dax/allselected-function-dax.md | 6 +- query-languages/dax/amordegrc-function-dax.md | 18 +- query-languages/dax/amorlinc-function-dax.md | 18 +- query-languages/dax/and-function-dax.md | 12 +- .../approximate-distinctcount-function-dax.md | 4 +- query-languages/dax/asin-function-dax.md | 6 +- query-languages/dax/asinh-function-dax.md | 8 +- query-languages/dax/atan-function-dax.md | 8 +- query-languages/dax/atanh-function-dax.md | 9 +- query-languages/dax/average-function-dax.md | 2 +- query-languages/dax/averagea-function-dax.md | 8 +- query-languages/dax/averagex-function-dax.md | 4 +- query-languages/dax/beta-dist-function-dax.md | 10 +- query-languages/dax/beta-inv-function-dax.md | 12 +- query-languages/dax/bitand-function-dax.md | 2 +- query-languages/dax/bitlshift-function-dax.md | 4 +- query-languages/dax/bitor-function-dax.md | 2 +- query-languages/dax/bitrshift-function-dax.md | 4 +- query-languages/dax/bitxor-function-dax.md | 2 +- query-languages/dax/calculate-function-dax.md | 8 +- .../dax/calculatetable-function-dax.md | 8 +- query-languages/dax/calendar-function-dax.md | 4 +- .../dax/calendarauto-function-dax.md | 2 +- query-languages/dax/ceiling-function-dax.md | 4 +- .../dax/chisq-dist-function-dax.md | 6 +- .../dax/chisq-dist-rt-function-dax.md | 4 +- query-languages/dax/chisq-inv-function-dax.md | 8 +- .../dax/chisq-inv-rt-function-dax.md | 4 +- .../dax/closingbalancemonth-function-dax.md | 14 +- .../dax/closingbalancequarter-function-dax.md | 14 +- .../dax/closingbalanceyear-function-dax.md | 18 +- query-languages/dax/coalesce-function-dax.md | 2 +- query-languages/dax/collapse-function-dax.md | 8 +- .../dax/collapseall-function-dax.md | 4 +- .../dax/columnstatistics-function-dax.md | 12 +- query-languages/dax/combin-function-dax.md | 6 +- query-languages/dax/combina-function-dax.md | 8 +- .../dax/combinevalues-function-dax.md | 6 +- .../dax/concatenate-function-dax.md | 8 +- .../dax/concatenatex-function-dax.md | 18 +- .../dax/confidence-norm-function-dax.md | 6 +- .../dax/confidence-t-function-dax.md | 8 +- query-languages/dax/contains-function-dax.md | 14 +- .../dax/containsrow-function-dax.md | 10 +- .../dax/containsstring-function-dax.md | 10 +- .../dax/containsstringexact-function-dax.md | 10 +- query-languages/dax/convert-function-dax.md | 4 +- query-languages/dax/cos-function-dax.md | 8 +- query-languages/dax/cosh-function-dax.md | 8 +- query-languages/dax/cot-function-dax.md | 2 +- query-languages/dax/coth-function-dax.md | 2 +- query-languages/dax/count-function-dax.md | 6 +- query-languages/dax/counta-function-dax.md | 2 +- query-languages/dax/countax-function-dax.md | 6 +- .../dax/countblank-function-dax.md | 2 +- query-languages/dax/countrows-function-dax.md | 2 +- query-languages/dax/countx-function-dax.md | 4 +- query-languages/dax/coupdaybs-function-dax.md | 12 +- query-languages/dax/coupdays-function-dax.md | 12 +- .../dax/coupdaysnc-function-dax.md | 12 +- query-languages/dax/coupncd-function-dax.md | 12 +- query-languages/dax/coupnum-function-dax.md | 12 +- query-languages/dax/couppcd-function-dax.md | 12 +- .../dax/crossfilter-function-dax.md | 6 +- query-languages/dax/crossjoin-function-dax.md | 4 +- query-languages/dax/cumipmt-function-dax.md | 16 +- query-languages/dax/cumprinc-function-dax.md | 16 +- query-languages/dax/currency-function-dax.md | 2 +- .../dax/customdata-function-dax.md | 8 +- query-languages/dax/datatable-function-dax.md | 6 +- .../dax/date-and-time-functions-dax.md | 2 +- query-languages/dax/date-function-dax.md | 20 +- query-languages/dax/dateadd-function-dax.md | 14 +- query-languages/dax/datediff-function-dax.md | 6 +- .../dax/datesbetween-function-dax.md | 16 +- .../dax/datesinperiod-function-dax.md | 16 +- query-languages/dax/datesmtd-function-dax.md | 4 +- query-languages/dax/datesqtd-function-dax.md | 4 +- query-languages/dax/datesytd-function-dax.md | 8 +- query-languages/dax/datevalue-function-dax.md | 14 +- query-languages/dax/dax-function-reference.md | 4 +- query-languages/dax/dax-glossary.md | 2 +- query-languages/dax/dax-operator-reference.md | 10 +- query-languages/dax/dax-overview.md | 22 +- .../dax/dax-parameter-naming-conventions.md | 22 +- query-languages/dax/dax-queries.md | 18 +- query-languages/dax/dax-sample-model.md | 3 +- query-languages/dax/dax-syntax-reference.md | 30 +- query-languages/dax/day-function-dax.md | 6 +- query-languages/dax/db-function-dax.md | 10 +- query-languages/dax/ddb-function-dax.md | 10 +- query-languages/dax/define-statement-dax.md | 6 +- query-languages/dax/degrees-function-dax.md | 4 +- .../dax/detailrows-function-dax.md | 2 +- query-languages/dax/disc-function-dax.md | 14 +- query-languages/dax/distinct-function-dax.md | 2 +- .../dax/distinct-table-function-dax.md | 2 +- .../dax/distinctcount-function-dax.md | 4 +- .../dax/distinctcountnoblank-function-dax.md | 4 +- query-languages/dax/divide-function-dax.md | 6 +- query-languages/dax/docfx.json | 890 +----------------- query-languages/dax/dollarde-function-dax.md | 6 +- query-languages/dax/dollarfr-function-dax.md | 6 +- query-languages/dax/duration-function-dax.md | 16 +- query-languages/dax/earlier-function-dax.md | 22 +- query-languages/dax/earliest-function-dax.md | 2 +- query-languages/dax/edate-function-dax.md | 12 +- query-languages/dax/effect-function-dax.md | 4 +- .../dax/endofmonth-function-dax.md | 4 +- .../dax/endofquarter-function-dax.md | 4 +- query-languages/dax/endofyear-function-dax.md | 8 +- query-languages/dax/eomonth-function-dax.md | 18 +- query-languages/dax/error-function-dax.md | 2 +- query-languages/dax/evaluate-statement-dax.md | 2 +- .../dax/evaluateandlog-function-dax.md | 18 +- query-languages/dax/even-function-dax.md | 13 +- query-languages/dax/exact-function-dax.md | 6 +- query-languages/dax/except-function-dax.md | 2 +- query-languages/dax/exp-function-dax.md | 2 +- query-languages/dax/expand-function-dax.md | 8 +- query-languages/dax/expandall-function-dax.md | 4 +- .../dax/expon-dist-function-dax.md | 6 +- query-languages/dax/fact-function-dax.md | 2 +- query-languages/dax/false-function-dax.md | 20 +- query-languages/dax/filter-function-dax.md | 4 +- query-languages/dax/filters-function-dax.md | 6 +- query-languages/dax/find-function-dax.md | 8 +- query-languages/dax/first-function-dax.md | 8 +- query-languages/dax/firstdate-function-dax.md | 4 +- .../dax/firstnonblank-function-dax.md | 8 +- .../dax/firstnonblankvalue-function-dax.md | 4 +- query-languages/dax/fixed-function-dax.md | 12 +- query-languages/dax/floor-function-dax.md | 8 +- query-languages/dax/format-function-dax.md | 108 +-- query-languages/dax/fv-function-dax.md | 12 +- query-languages/dax/gcd-function-dax.md | 10 +- query-languages/dax/generate-function-dax.md | 4 +- .../dax/generateall-function-dax.md | 4 +- .../dax/generateseries-function-dax.md | 6 +- query-languages/dax/geomean-function-dax.md | 2 +- query-languages/dax/geomeanx-function-dax.md | 4 +- query-languages/dax/groupby-function-dax.md | 8 +- .../dax/hasonefilter-function-dax.md | 6 +- .../dax/hasonevalue-function-dax.md | 4 +- query-languages/dax/hour-function-dax.md | 6 +- query-languages/dax/if-eager-function-dax.md | 14 +- query-languages/dax/if-function-dax.md | 20 +- query-languages/dax/iferror-function-dax.md | 10 +- query-languages/dax/ignore-function-dax.md | 2 +- query-languages/dax/index-function-dax.md | 35 +- .../dax/information-functions-dax.md | 32 +- query-languages/dax/int-function-dax.md | 2 +- query-languages/dax/intersect-function-dax.md | 2 +- query-languages/dax/intrate-function-dax.md | 14 +- query-languages/dax/ipmt-function-dax.md | 16 +- query-languages/dax/isafter-function-dax.md | 4 +- query-languages/dax/isatlevel-function-dax.md | 4 +- query-languages/dax/isblank-function-dax.md | 6 +- .../dax/iscrossfiltered-function-dax.md | 10 +- query-languages/dax/isempty-function-dax.md | 4 +- query-languages/dax/iserror-function-dax.md | 6 +- query-languages/dax/iseven-function-dax.md | 6 +- .../dax/isfiltered-function-dax.md | 10 +- query-languages/dax/isinscope-function-dax.md | 20 +- query-languages/dax/islogical-function-dax.md | 6 +- query-languages/dax/isnontext-function-dax.md | 6 +- query-languages/dax/isnumber-function-dax.md | 6 +- .../dax/iso-ceiling-function-dax.md | 6 +- query-languages/dax/isodd-function-dax.md | 6 +- .../dax/isonorafter-function-dax.md | 4 +- query-languages/dax/ispmt-function-dax.md | 8 +- .../dax/isselectedmeasure-function-dax.md | 4 +- .../dax/issubtotal-function-dax.md | 2 +- query-languages/dax/istext-function-dax.md | 6 +- .../dax/keepfilters-function-dax.md | 16 +- query-languages/dax/last-function-dax.md | 8 +- query-languages/dax/lastdate-function-dax.md | 4 +- .../dax/lastnonblank-function-dax.md | 8 +- .../dax/lastnonblankvalue-function-dax.md | 4 +- query-languages/dax/lcm-function-dax.md | 6 +- query-languages/dax/left-function-dax.md | 6 +- query-languages/dax/len-function-dax.md | 2 +- query-languages/dax/linest-function-dax.md | 6 +- query-languages/dax/linestx-function-dax.md | 8 +- query-languages/dax/ln-function-dax.md | 2 +- query-languages/dax/log-function-dax.md | 4 +- query-languages/dax/log10-function-dax.md | 2 +- query-languages/dax/logical-functions-dax.md | 14 +- .../dax/lookupvalue-function-dax.md | 22 +- query-languages/dax/lower-function-dax.md | 4 +- query-languages/dax/matchby-function-dax.md | 2 +- query-languages/dax/max-function-dax.md | 6 +- query-languages/dax/maxa-function-dax.md | 4 +- query-languages/dax/maxx-function-dax.md | 12 +- query-languages/dax/mduration-function-dax.md | 16 +- query-languages/dax/measure-statement-dax.md | 8 +- query-languages/dax/median-function-dax.md | 2 +- query-languages/dax/medianx-function-dax.md | 4 +- query-languages/dax/mid-function-dax.md | 8 +- query-languages/dax/min-function-dax.md | 6 +- query-languages/dax/mina-function-dax.md | 4 +- query-languages/dax/minute-function-dax.md | 6 +- query-languages/dax/minx-function-dax.md | 8 +- query-languages/dax/mod-function-dax.md | 4 +- query-languages/dax/month-function-dax.md | 8 +- .../dax/movingaverage-function-dax.md | 12 +- query-languages/dax/mround-function-dax.md | 6 +- .../dax/naturalinnerjoin-function-dax.md | 4 +- .../dax/naturalleftouterjoin-function-dax.md | 4 +- .../dax/networkdays-function-dax.md | 8 +- query-languages/dax/next-function-dax.md | 10 +- query-languages/dax/nextday-function-dax.md | 8 +- query-languages/dax/nextmonth-function-dax.md | 8 +- .../dax/nextquarter-function-dax.md | 8 +- query-languages/dax/nextyear-function-dax.md | 12 +- query-languages/dax/nominal-function-dax.md | 4 +- query-languages/dax/nonvisual-function-dax.md | 2 +- query-languages/dax/norm-dist-function-dax.md | 11 +- query-languages/dax/norm-inv-function-dax.md | 6 +- .../dax/norm-s-dist-function-dax.md | 4 +- .../dax/norm-s-inv-function-dax.md | 2 +- query-languages/dax/not-function-dax.md | 8 +- query-languages/dax/now-function-dax.md | 10 +- query-languages/dax/nper-function-dax.md | 12 +- query-languages/dax/odd-function-dax.md | 14 +- query-languages/dax/oddfprice-function-dax.md | 26 +- query-languages/dax/oddfyield-function-dax.md | 42 +- query-languages/dax/oddlprice-function-dax.md | 24 +- query-languages/dax/oddlyield-function-dax.md | 24 +- query-languages/dax/offset-function-dax.md | 16 +- .../dax/openingbalancemonth-function-dax.md | 14 +- .../dax/openingbalancequarter-function-dax.md | 14 +- .../dax/openingbalanceyear-function-dax.md | 18 +- query-languages/dax/or-function-dax.md | 10 +- query-languages/dax/orderby-function-dax.md | 4 +- query-languages/dax/orderby-statement-dax.md | 6 +- .../dax/parallelperiod-function-dax.md | 16 +- .../dax/parent-and-child-functions-dax.md | 6 +- .../dax/partitionby-function-dax.md | 2 +- query-languages/dax/path-function-dax.md | 18 +- .../dax/pathcontains-function-dax.md | 10 +- query-languages/dax/pathitem-function-dax.md | 16 +- .../dax/pathitemreverse-function-dax.md | 16 +- .../dax/pathlength-function-dax.md | 2 +- query-languages/dax/pduration-function-dax.md | 6 +- .../dax/percentile-exc-function-dax.md | 4 +- .../dax/percentile-inc-function-dax.md | 4 +- .../dax/percentilex-exc-function-dax.md | 6 +- .../dax/percentilex-inc-function-dax.md | 6 +- query-languages/dax/permut-function-dax.md | 4 +- query-languages/dax/pmt-function-dax.md | 18 +- .../dax/poisson-dist-function-dax.md | 10 +- query-languages/dax/power-function-dax.md | 4 +- query-languages/dax/ppmt-function-dax.md | 22 +- query-languages/dax/previous-function-dax.md | 10 +- .../dax/previousday-function-dax.md | 8 +- .../dax/previousmonth-function-dax.md | 8 +- .../dax/previousquarter-function-dax.md | 8 +- .../dax/previousyear-function-dax.md | 12 +- query-languages/dax/price-function-dax.md | 18 +- query-languages/dax/pricedisc-function-dax.md | 14 +- query-languages/dax/pricemat-function-dax.md | 16 +- query-languages/dax/product-function-dax.md | 2 +- query-languages/dax/productx-function-dax.md | 4 +- query-languages/dax/pv-function-dax.md | 34 +- query-languages/dax/quarter-function-dax.md | 2 +- query-languages/dax/quotient-function-dax.md | 6 +- query-languages/dax/radians-function-dax.md | 4 +- query-languages/dax/rand-function-dax.md | 2 +- .../dax/randbetween-function-dax.md | 4 +- query-languages/dax/range-function-dax.md | 10 +- query-languages/dax/rank-eq-function-dax.md | 18 +- query-languages/dax/rank-function-dax.md | 16 +- query-languages/dax/rankx-function-dax.md | 34 +- query-languages/dax/rate-function-dax.md | 16 +- query-languages/dax/received-function-dax.md | 14 +- query-languages/dax/related-function-dax.md | 2 +- .../dax/relatedtable-function-dax.md | 2 +- query-languages/dax/replace-function-dax.md | 8 +- query-languages/dax/rept-function-dax.md | 8 +- query-languages/dax/right-function-dax.md | 4 +- .../dax/rollupaddissubtotal-function-dax.md | 6 +- .../dax/rollupissubtotal-function-dax.md | 6 +- query-languages/dax/round-function-dax.md | 10 +- query-languages/dax/rounddown-function-dax.md | 10 +- query-languages/dax/roundup-function-dax.md | 12 +- query-languages/dax/row-function-dax.md | 6 +- query-languages/dax/rownumber-function-dax.md | 14 +- query-languages/dax/rri-function-dax.md | 6 +- .../dax/runningsum-function-dax.md | 8 +- .../dax/sameperiodlastyear-function-dax.md | 6 +- query-languages/dax/sample-function-dax.md | 12 +- .../sampleaxiswithlocalminmax-function-dax.md | 22 +- query-languages/dax/search-function-dax.md | 10 +- query-languages/dax/second-function-dax.md | 8 +- .../dax/selectcolumns-function-dax.md | 6 +- .../dax/selectedvalue-function-dax.md | 26 +- query-languages/dax/sign-function-dax.md | 2 +- query-languages/dax/sin-function-dax.md | 12 +- query-languages/dax/sinh-function-dax.md | 2 +- query-languages/dax/sln-function-dax.md | 6 +- query-languages/dax/sqrt-function-dax.md | 2 +- query-languages/dax/sqrtpi-function-dax.md | 6 +- query-languages/dax/startat-statement-dax.md | 4 +- .../dax/startofmonth-function-dax.md | 4 +- .../dax/startofquarter-function-dax.md | 4 +- .../dax/startofyear-function-dax.md | 6 +- .../dax/statistical-functions-dax.md | 2 +- query-languages/dax/stdev-p-function-dax.md | 6 +- query-languages/dax/stdev-s-function-dax.md | 6 +- query-languages/dax/stdevx-p-function-dax.md | 10 +- query-languages/dax/stdevx-s-function-dax.md | 10 +- .../dax/substitute-function-dax.md | 12 +- .../dax/substitutewithindex-function-dax.md | 10 +- query-languages/dax/sum-function-dax.md | 2 +- query-languages/dax/summarize-function-dax.md | 58 +- .../dax/summarizecolumns-function-dax.md | 60 +- query-languages/dax/sumx-function-dax.md | 4 +- query-languages/dax/switch-function-dax.md | 24 +- query-languages/dax/syd-function-dax.md | 8 +- query-languages/dax/t-dist-2t-function-dax.md | 4 +- query-languages/dax/t-dist-function-dax.md | 6 +- query-languages/dax/t-dist-rt-function-dax.md | 4 +- query-languages/dax/t-inv-2t-function-dax.md | 4 +- query-languages/dax/t-inv-function-dax.md | 4 +- query-languages/dax/table-constructor.md | 4 +- .../dax/table-manipulation-functions-dax.md | 2 +- query-languages/dax/tan-function-dax.md | 8 +- query-languages/dax/tanh-function-dax.md | 8 +- query-languages/dax/tbilleq-function-dax.md | 6 +- .../dax/tbillprice-function-dax.md | 6 +- .../dax/tbillyield-function-dax.md | 6 +- query-languages/dax/text-functions-dax.md | 2 +- query-languages/dax/time-function-dax.md | 14 +- query-languages/dax/timevalue-function-dax.md | 6 +- query-languages/dax/toc.yml | 1 + query-languages/dax/tocsv-function-dax.md | 8 +- query-languages/dax/today-function-dax.md | 2 +- query-languages/dax/tojson-function-dax.md | 6 +- query-languages/dax/topn-function-dax.md | 12 +- query-languages/dax/totalmtd-function-dax.md | 14 +- query-languages/dax/totalqtd-function-dax.md | 14 +- query-languages/dax/totalytd-function-dax.md | 18 +- query-languages/dax/treatas-function-dax.md | 4 +- query-languages/dax/trim-function-dax.md | 2 +- query-languages/dax/true-function-dax.md | 24 +- query-languages/dax/trunc-function-dax.md | 4 +- ...ons-for-parent-child-hierarchies-in-dax.md | 18 +- query-languages/dax/unichar-function-dax.md | 2 +- query-languages/dax/unicode-function-dax.md | 2 +- query-languages/dax/union-function-dax.md | 2 +- query-languages/dax/upper-function-dax.md | 2 +- .../dax/userelationship-function-dax.md | 4 +- query-languages/dax/utcnow-function-dax.md | 6 +- query-languages/dax/value-function-dax.md | 4 +- query-languages/dax/values-function-dax.md | 4 +- query-languages/dax/var-dax.md | 4 +- query-languages/dax/var-p-function-dax.md | 6 +- query-languages/dax/var-s-function-dax.md | 6 +- query-languages/dax/varx-p-function-dax.md | 8 +- query-languages/dax/varx-s-function-dax.md | 10 +- query-languages/dax/vdb-function-dax.md | 16 +- query-languages/dax/weekday-function-dax.md | 12 +- query-languages/dax/weeknum-function-dax.md | 11 +- query-languages/dax/window-function-dax.md | 20 +- query-languages/dax/xirr-function-dax.md | 10 +- query-languages/dax/xnpv-function-dax.md | 20 +- query-languages/dax/year-function-dax.md | 4 +- query-languages/dax/yearfrac-function-dax.md | 14 +- query-languages/dax/yield-function-dax.md | 18 +- query-languages/dax/yielddisc-function-dax.md | 14 +- query-languages/dax/yieldmat-function-dax.md | 18 +- 385 files changed, 1757 insertions(+), 2634 deletions(-) diff --git a/query-languages/dax/abs-function-dax.md b/query-languages/dax/abs-function-dax.md index d35bc1abc..d61d1b680 100644 --- a/query-languages/dax/abs-function-dax.md +++ b/query-languages/dax/abs-function-dax.md @@ -19,7 +19,7 @@ ABS() |Term|Definition| |--------|--------------| -|number|The number for which you want the absolute value.| +|`number`|The number for which you want the absolute value.| ## Return value diff --git a/query-languages/dax/accrint-function-dax.md b/query-languages/dax/accrint-function-dax.md index 8fed16a0f..8feb2733d 100644 --- a/query-languages/dax/accrint-function-dax.md +++ b/query-languages/dax/accrint-function-dax.md @@ -20,18 +20,18 @@ ACCRINT(, , , , , [, - If calc_method evaluates to TRUE or is omitted, ACCRINT returns the total accrued interest from issue to settlement.
    - If calc_method evaluates to FALSE, ACCRINT returns the accrued interest from first_interest to settlement.| - -The **basis** parameter accepts the following values: - -| **Basis** | **Day count basis** | +|`issue`|The security's issue date.| +|`first_interest`|The security's first interest date.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`rate`|The security's annual coupon rate.| +|`par`|The security's par value.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`calc_method`|(Optional) A logical value that specifies the way to calculate the total accrued interest when the date of settlement is later than the date of first_interest. If calc_method is omitted, it is assumed to be `TRUE`.
    - If calc_method evaluates to `TRUE` or is omitted, ACCRINT returns the total accrued interest from issue to settlement.
    - If calc_method evaluates to `FALSE`, ACCRINT returns the accrued interest from first_interest to settlement.| + +The `basis` parameter accepts the following values: + +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | @@ -96,7 +96,7 @@ EVALUATE Returns the accrued interest from issue to settlement, for a security with the terms specified above. -| **[Value]** | +| **Value** | | ---------------- | | 116.944444444444 | @@ -113,6 +113,6 @@ EVALUATE Returns the accrued interest from first_interest to settlement, for a security with the terms specified above. -| **[Value]** | +| **Value** | | ---------------- | | 66.9444444444445 | diff --git a/query-languages/dax/accrintm-function-dax.md b/query-languages/dax/accrintm-function-dax.md index 03c07fac1..86bc4de1a 100644 --- a/query-languages/dax/accrintm-function-dax.md +++ b/query-languages/dax/accrintm-function-dax.md @@ -20,15 +20,15 @@ ACCRINTM(, , , [, ]) |Term|Definition| |--------|--------------| -|issue|The security's issue date.| -|maturity|The security's maturity date.| -|rate|The security's annual coupon rate.| -|par|The security's par value.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`issue`|The security's issue date.| +|`maturity`|The security's maturity date.| +|`rate`|The security's annual coupon rate.| +|`par`|The security's par value.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/acos-function-dax.md b/query-languages/dax/acos-function-dax.md index 66ac8feba..ebe647ebb 100644 --- a/query-languages/dax/acos-function-dax.md +++ b/query-languages/dax/acos-function-dax.md @@ -6,7 +6,7 @@ title: "ACOS function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the arccosine, or inverse cosine, of a number. The arccosine is the angle whose cosine is *number*. The returned angle is given in radians in the range 0 (zero) to pi. +Returns the arccosine, or inverse cosine, of a number. The arccosine is the angle whose cosine is`number`. The returned angle is given in radians in the range 0 (zero) to pi. ## Syntax @@ -16,9 +16,9 @@ ACOS(number) ### Parameters -|Term|Definition| +|`Term`|Definition| |--------|--------------| -|Number|The cosine of the angle you want and must be from -1 to 1.| +|`Number`|The cosine of the angle you want and must be from -1 to 1.| ## Return value @@ -32,5 +32,5 @@ If you want to convert the result from radians to degrees, multiply it by 180/PI |Formula|Description|Result| |-----------|---------------|----------| -|= ACOS(-0.5)|Arccosine of -0.5 in radians, 2*pi/3.|2.094395102| -|= ACOS(-0.5)*180/PI()|Arccosine of -0.5 in degrees.|120| +|`= ACOS(-0.5)`|Arccosine of -0.5 in radians, 2*pi/3.|2.094395102| +|`= ACOS(-0.5)*180/PI()`|Arccosine of -0.5 in degrees.|120| diff --git a/query-languages/dax/acosh-function-dax.md b/query-languages/dax/acosh-function-dax.md index ab349f354..3f3fb55f8 100644 --- a/query-languages/dax/acosh-function-dax.md +++ b/query-languages/dax/acosh-function-dax.md @@ -6,7 +6,7 @@ title: "ACOSH function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the inverse hyperbolic cosine of a number. The number must be greater than or equal to 1. The inverse hyperbolic cosine is the value whose hyperbolic cosine is *number*, so ACOSH(COSH(number)) equals number. +Returns the inverse hyperbolic cosine of a number. The number must be greater than or equal to 1. The inverse hyperbolic cosine is the value whose hyperbolic cosine is `number`, so ACOSH(COSH(number)) equals number. ## Syntax @@ -18,7 +18,7 @@ ACOSH(number) |Term|Definition| |--------|--------------| -|number|Any real number equal to or greater than 1.| +|`number`|Any real number equal to or greater than 1.| ## Return value @@ -32,6 +32,6 @@ Returns the inverse hyperbolic cosine of a number. |Formula|Description|Result| |-----------|---------------|----------| -|= ACOSH(1)|Inverse hyperbolic cosine of 1.|0| -|= ACOSH(10)|Inverse hyperbolic cosine of 10.|2.993228| +|`= ACOSH(1)`|Inverse hyperbolic cosine of 1.|0| +|`= ACOSH(10)`|Inverse hyperbolic cosine of 10.|2.993228| diff --git a/query-languages/dax/acot-function-dax.md b/query-languages/dax/acot-function-dax.md index 2403cbeed..67ecc6204 100644 --- a/query-languages/dax/acot-function-dax.md +++ b/query-languages/dax/acot-function-dax.md @@ -18,7 +18,7 @@ ACOT(number) |Term|Definition| |--------|--------------| -|Number|The cosine of the angle you want. Must be a real number.| +|`Number`|The cosine of the angle you want. Must be a real number.| ## Return value diff --git a/query-languages/dax/acoth-function-dax.md b/query-languages/dax/acoth-function-dax.md index 5112d6d61..eb8e0d0d9 100644 --- a/query-languages/dax/acoth-function-dax.md +++ b/query-languages/dax/acoth-function-dax.md @@ -18,7 +18,7 @@ ACOTH(number) |Term|Definition| |--------|--------------| -|Number|The absolute value of Number must be greater than 1.| +|`Number`|The absolute value of Number must be greater than 1.| ## Return value diff --git a/query-languages/dax/addcolumns-function-dax.md b/query-languages/dax/addcolumns-function-dax.md index bbbef0f54..fef9de8ad 100644 --- a/query-languages/dax/addcolumns-function-dax.md +++ b/query-languages/dax/addcolumns-function-dax.md @@ -18,9 +18,9 @@ ADDCOLUMNS(

    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 DY>OUm literal 111363 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 MwEYoJx7W>r?rTvT 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 SRyt3?KO+Nk{kwWj7yb{R@!J9b diff --git a/query-languages/dax/media/dax-copilot/dax-copilot-updated-query.png b/query-languages/dax/media/dax-copilot/dax-copilot-updated-query.png index eb772ba3f442ff2e99accd68d489b37d856409b5..cf264f78156c296ff1043a7f9c55171d60bc9b63 100644 GIT binary patch literal 34543 zcmbTdWmKG7v@J;R5Ht{6LLf+RcL)&NLLj)iyE{RHySux)d*SYdyE}yx(#1LVj`v=_ z+qe7m4+f)leYIunwdR^@?*0A!DJzD8gpULT1%)CZ{^J)E6tpiC)Vn7{ct}eHf+IKN z-+LQzReLC?j}C8t@79b+Tp*1I4iYjV2nQc<;7QO`+R+%Hpgu!M{18-hNjq8fR8%z1 zH~?Gw!ghZ)L6@IY31$$q-mVkFWnp5NS^XWoLg>DmR@68{Byq-e8O9B; zTIee|BNrRvQq`R{(~*rVA2LA#SW#N?f*cw@2GeDG2ukjXd>8tj6O0Ick#8+=l4rnD zB$a&TH?PLNon4#o0@dDCJkFgjF>s5>V|mzM(}W0ldkci*Y#9F{^+y*%v`w6P_yC<= z*PR9VK!!-FALgB@`P!HW~-=}7=ov# zC&mneP#Ao=teArXtAvDvbP}U(T`HMBx_*o@h0Vmi_fF?ijX~YAz1Y3>y5`|0M6Fh* z@XC(IkftWif$(cQo)4rw2lM6X4$jUjrqkr_VFS?hV1J;{E<(o6or>TIspLO6IEaG! z84NU8X|nC>@1L5QVp^8L5DI1*qCqUPvce5_T9Nm-71Y+wg!K_xG1?vo&#kPqu1kfi z4KfKu%;9FM>g|EcBW*fi0av8+mlwq*zKh zVo;4guKCWBI>Zuqx-yoY9CxWtmgB-F4^NREO;?6qo_lf@yiGXZ#BR9n`g8Y}+sT}^ zdXqCqZ?+7ptAh8Pp`f@7`cVJ0y$N%|`{I3XEtPOhBCy=Y5J9p_f_7e*3wGngab5_H zjHKk}U&}3PZ6)w&YHFG?iBT_17np0nOa-A|{}OAY?zMfmF=ky&liuUFArI8$_IB$m z+uu^=E-=W8J#hR8=dk?x!_u90h9m`0r#nj$!TvS}VT`rd6^96Q9w=7rQ=Qw4ySHt8 zvS|KWqU;^A8*8`r94Xhdf8J3hx0OtJx>uCXueQk3p!DC z;3l%)8^!C1k4)scR>kCtWqAnH!lYo$+^iiSrZDz`c@7pqTQKEP7sI@Z=5cP)9bYZI zbHhnj*7ZOm9}oltn9+Nr`|yKb5YZOhOt}Utfe)LDP+OyZ5 z`;8Quo6O5ly00nfiM9?wd=QERC(u8&JU=@B^%~`6gh7gN*E@9E{FO(J-i5Qsm51Ru z5a(r=Pm9kkWN*=w_j&Qo)yW^oGhLz8KD<mkoYr~m5FS3@L z{rwVL9{SKW+aJ%LM~t-UR}+5Ume$tBUhhxDW@O09$)Q12S68R;I7dKM7@LF}krtCe zC!HoKH1TQK`bOA+koxgqR6GpY&7_=9Sl^i8xy5AbqaNShS-V{Zi;VJN^Bmd_jM$`s zwo#Ro7ey&|hDl(baVDFs^|J7&)L}vX8KF#i`wgaubdMr4bD{mYPbPMR?)Z`4Vad3Wrc+);ZFJ#|3mn_f&n38Ok?``i(45n^iO>JaP7MAf91zd z)1{woow(h>q!iJ3*US=s`_0|gQ*q_w#1hT#J6}aVI2xxCUW@ccF|zeeEj*{QrnL{o zo44P<$lEF;C&owYOQ5u~Y9Idj%OV~baGcn&bNs?tFrFbRgiN0IbxI2;D<;J-GgBCw zW)tv8Gj=1JOuzJ<)V~QP%!T4-X=P`o_hWA%t&2WULjuL9ToUvIBmLh(dz>23&}-zY zu@NsH%ACp{4JExJR(fLhNafef>QYPOJkRsnmR8(-}dFn zwd3XSxQedw&J4j*fthJET~JSvqa5eN0ZLn&Tg=m#WLv>VpK(-A?;ORA?RxcqNbHvz z#nRH!L2S<9sm0D#JnZ!Tnw%aoI>#sB1YcE!M^irUl)wty0s}8U>rn}#mHLs{<>!@| z^2X5PYL;XUo&ZialhX3+ctz&@@z1sz4C#pkv!Er;b+`1Soh96wJ!Z1(%!-lyqV{RD z=knS4`e~y0!LVj{W`)fGlriRtIsH=e?fG^VMh~)3@OirkIDk9F&6DH3UQ!zR2fl^F z69hNl;n6#{O51wi)ZW<|)fOgS<-F_^K@vVfAGw`(f-l$M`y-wO(^qcarNE`Uu%HZv zW78Ajrcp2MQ{$$^HQ^HjKKt4|=Iu4xCaXWwKneF*hrO|M!L26#7JBWxPg#wTwhA`} zhQ=(`X1v4UN=F1M`->naP2;Cg*U|K7acOHxncLG1eRsKo=DoEw$QqXM5AZnxMy);k znuoTVoSL!0%9E~_U+5Ncl6ZMiPb~Oi&*d+U242`(T1dTe^u1qN3UTzd#BD@f{%-$; zv%1wn$Pv%LMO)RZ0|N;m0B2Py-+HO3?M%5+}c0C)k{T$snlsZI)8PiPiCqrQ65e#mJ{$5zDQ1}rOQ&?L1{)&t#)+j1D28ui? z`swTM#LCOx#yIjse2iY-l38Mc-)+rVge&yifNcX=tB2mRI@IOfh+wer2b%a4nQU!u z`C@mpEX$4V9Oh9DK(QoYElAGP%eIKy&23u!{5WGwjv@Ckc1!KB!-?U}FfR%n?)m+g zL&JJbD!mn|g|^W*qTja~$0mL+l?O+W6t+eb5x+-1Ka6~%FP)NDh_5`@)G9E}Lnnc| zRQPCeWKmd3^rV?el*#FvM3b%oMmp$}l{;x)aX&V%(1y#Ym=WfUJ%eGrbak-cosx%| z>g(&rL|B3S96>!!yXbjY#}2YNrr5AOl_Q`dYX3pGHqi#A#DpU^;C4G^{_gPQ@NuXQ zM&V=1p~d;Ol0XzMjB!QO4f&RO#mvk;>WE%UL2L#Vnlx#4b1Z0$;AW;j(YN6aGR31v zT|2cFvaU>~zxVSL6^>4}ncTCh?zNG&60yw!GXTrb7OP2NfQw5iaY;#}doQXx_!E+ymAWD-r zIbi7Yf}FsHJ!AbfH{W+_ce+ed1send7Gg_ssw~&n{GWz^8;7iP( zk=KfaJ>`e42RmNZY|0327`F8{j*m5OVv6AD`EEdhH%%%OE0}&PRCcgR&nD+&gd_wo ztJ}%dI`q^q6H+(eooa)RTStdSR=Kq}TQeV%SBS)f#VAi(wDd43g6^K`{oRA%S}L8P zy5V1l7AG`zj+(G;u78OKn-_v=Dcs=GCjg+1xqYN*%xyhis+fIa`_4#VlK~jCn0cVY z_7b<+F~ejGb7b+m1gG~N@A3_kO!8A^{$3K z!a}QBar^8U|H83o<+k@KXHGmpo#x?m8Ul826IIqee)%fjP4sBrd-?Vh#e{@b%- z2i66S~v{gi`)j`71Wqy=c$A3@_cpLHaGjXXQ=cG+{@Fy%yYAIgZOjsIAr%*AN^JI4t5LN zw2XSJXhQlFVMSBY3PED9;V`AUojKMlyZ{k;Y2iy)HrowDf(>KyfvHwawwW|q08 zAB~{wbX?*CUnVO3n#8ggET48RNVtF`6J)Oo-n%E!WQ3<7x>jd*u6Mv0PFw!2PXqeW zF4%cyU)h)fJ5YJpQ`1YCE>mb#c&Ufp|G0DfrL7=iDTO?{a@XqG%jhW;4QanR|~d%)5A-aoipZuS!&yZ7IjW_`#=iAr>x^0 zv%;44R{RO>hCA{xP(-rmUYUWOwc}6k`M~l4St&WJZQsQM{)*Y(*M$P<*~RXJ5-dip z#_w_qqHqybHO(4adXV=<#mSG=FtWnoost=5gqC=!e9-L7Z6AmW1?d`> zOG_|Iwow1OosGCwF!yLWr9ipJ0s&3+#{Vo=xg@Bcjt&&VFMP5sj6rH{x$0ub_t5_|eTjngg?!_Wj$xuR$X0gw_9l?M9yyu}rt~yol!?5!a<8S0z&E7d3(qp<0Akr}dz*Pe3YScaf=_d+@RQQ{8wE|#V zKt5@bWtyHHdvhVKouPG=W1H* zCR=eEX*Td<*+Z0eNR41NtGA9S(O%w9d`{lS9{e~IwlW!#ZbRv@0CK;A*Y?Qg)_~m3 zGF-7%(&!RBzJ3X%I25Gez+Ve@6Q_%j=VpiSc0>K2pIP*TklyAt@B$}Sd)8sYM(Hu! zS=95Syq2BOdF2}x5VGx~X<9H`@^EFbC}vpj$zH7ZctNAv-Z6J z<)J$RnH+;Sp4G8wc@SQZ=mB}E1!N{l3o~l)I7sdD%0OA?sPaPsb5)=ESrgm4E&_#l0Rki$9;u zrlB5~mzNHV>{@9(59$U~qb-B5eqsM;?z|;3t2(=OF|j!Z`WZjN8yKZ0r@k#lCc^T7 zcRpPe&l}Kz=G*WWVEggM&r@%=)JXk)z{`RTsd<;($$XiQz}m30k#4oyIhbF-nN(*T zs9wTIPViKwZ~?AP^acK?jqtid%ghA$K6Zm^d#uK;?#pnKU@u>ILC-{coy4|4D$>@n zw#Hj;DuEZ?o0Oh{wKCi_RvO3d1T>vzxR6W#ee+&GMDr0p`?ozekz(-T22;3QPf-;{ zK)7f>{*UMJ$2d&U0Bx1_#8T5zKn?5eymr=xM&`TS@x%6It|+lgl~1{)&r1D8hcwFR zw?_R{Q>xzSdR{YGNymQaYpvFwDtFyLf5mt-4bOHTkEOhyZdF$S@R4pBuV5yVPP5}1 zAc9hVlYFZ+9&h4tJ-=hfgN*hw$KVyhRnbBTE=LLQ!e3rD*T}u)#hG3myzJc!VCUC$ zxNBVJ_OP+E-uL=ln6y4itPTUh+vkOewC)5SPd@O1_~zwiD7<&O5%mN>W$SZ7k+-Gb zMaHZQ-&5R4lJVX7)K9&letH$oCz%77M;^V0Qr^Hm{Y+egOwe8PX?-X6{Mg;gemjY( zH%8MlaptF#7tk}_R^j;^zwq_Gt2BHw3BnOUq-D;-%I&2q-pYP;VCFu+rnulgP9fi&2_ zr?GcIDcup}y}?{M1(WuVp7rd*Wk(G8F?tp$&f(*?653MX+zu)iKG7xEt=!i11s<87 z5R~L4llK-(HsQwHC5+hjVGfwcmx?SsHh-Pv_=n7UoZ;oSZq zl}X{SdID8Kg!;D+3PJpiF0KPSiN|TB@E&-vu~D)4j`DQYYxsG_pz_b4Nusy>o~Cy% zzog1gtXYGyw#mSvE`in_i$po4Y1a#OU`Jght?wx1T*I*{m@aqE<%0BCLg|-uU}agn zxi?!>qGCX~Zq#$7E=jykImCqe7rLU#B>Sn1PEE&`k1MwecZcT1OIbe?t-GSMgK7lv z4B||1S%Eu4(g5So^NA7P8Fw#Y@W+GNo@Y(v?}vfEke&5i$Z2@y6;R{!3Rr{fe})CX2z)>Sj*pXR;GW z-)5}r6|Q7nr3WbPE@WdJ5%tz+`{&Q;`)@xj)|+K%BpDP~4ek%)59VU2+Y`I459eOx zg|}t1lMP*x87vBzSjDasyO~_xx=L(JoJYYuT3tUAQ5cU$c2p<6FQdvIR%Rd9e#p8_ zrc(4)ee?fPF0@hZ(y(8*X*IW>bY4n-Nq(@WUL!crz=Ls>ID3#z(SANdjwVa8@mS>a zvQ11Q9NzrpLtX5D`>G|erh``=@(YkS;bRXJAM3Trc9^^t(Fo+`Ym#fJq`Do2E!fk= zjq0A18|znUwf^4ucs`P)825{P#5Fo9gOa6`YE=~p&HqY$7LSw5>)8zwe+gO4;aam{ zgO8sXgs5G*g3I;V7ucD|38=t5o-ebHNNs-Y@E`hd0_}wwoKiP9N!Q}L2_!*---+Yn zpaVTHpDL2RMTW9^Od2@#j;&W$o{n6lpM^DaUVTqf1zs`0XSQs-BQxwIxZsMl`rMf7 z?^$tO9zy+L(RlfkDQue(m%rifezgVQs+Bnt&)ga=&Z^4IV5jW?_Q7+M zeSKXMEqIuTe$Hm1;z?M4z#qO=KFg$Ww1g{7IU?q)Q-h#K4Z|AXN{RIMgA$-J?P)BD znxgmoeTCaRzab=P3pW-gwRzm#x;?_tWPgEKEkORpGFE|B^k=_pN67&B@W;^~1Uu^E zL3K6?lq4;3nw^q9Z;1$qW4_`ip}rE6y&_9=gIGEYPbFO z-g&B;pdJaY>I2P~6CvFfw{%?uP7twO7*HGqpanz~H)GGRDP{;t6gWnezMIPy9D`$y zi0!RECg_t`eaN4ESfqfkmNL$u5Txv%*B@4!Wh5n4nrjrt?2KKtX0x@>H(E6&mJ`de zPW5Hx3pU>6w!Xrg0o;%!4CCtYCiOp~5fl{~a>|lX<%KZ=TAGijyI4y{>pM1E^?>Wu z+7TU-Ar+}M*~YpH;YvG6`V%Uk9hmptC__u-KxxBEm zaL{T@?|C+*i==`xh;~((1RV-N-qC!mP{!b9XAzi-&@ ziE8=Z~d|KTK+f#jb!gDm^!WmdgabX^ik z6zm$wkm|3=#qQKS^O_Jo-iNQA{11~x#E7eQ{+FctawJiV^5!0Z}*SM#V;-u0nx(v1%kc}}#}uIpiQwwSx`o);m6 zyZpOcOtX}Kd*u0!Cw*VTD(G1rku;E^4-A{Jwdn+4FxTzt#bU!hY%LY;^3+zTw1d|n3{JB%vjeuO zQBhYM!J53WpE@qB8&|+$e}$WpLTlwla}Db;mpvc9G%v&M%T5q#oJHKW`-D zcQEo@7Il#VvYU0sOez#})|n6M+N;1}Z4&bcgvhcrALMK&64#MGt4j$)xI@$3* zl`gdXLlm7`36Bl$o5p{4ZhM#NIm}_wr*O;RequLUE=W-K-n0tcce+r>Z9tR7)qGv> zwD@ULzpe_giQ*m1X@g_Eu1;(EpVhmxnHCVs*vr0k>OGL*`LekaqMB%vKpwYY5Ucg- z08f(u9-EhQi?v&ciAV6wG9Q+;`5FLS`YV9Tjoaj`Rh;%nebK%z2>*E(;M@yaD40hs zY5YBJ|3rlJ&hFRZ&0_i=pxCcFUL#=Dke6XkyXQY77e3eIEU9y^A2RHDm1~|tnZwXH zYeOMiC}?;OT9Si`DnQg(>C%ZewqBRyYuS#(E$RBB5X%5+Dvh6>Lxnda6t&bsJDNXU zakvXawdce!%j}h0`~k_38Qng#KrrrBwRJowBPiq2#<&>ia`1GFxfG3o;~$pu#t&B$ zbebPOulrZ$eoR%fvbhz0mro!`eX)@EzmlByuh)T^;ABYtLs6_>gt5jX0p|;J+$nqC z-XH7pfXyt=${Z!COG&!LwBa>W{djmXQ-TCnwLcIua?cY$zPD#W0U;}Ed&1u@YoAg| zeZH2st^Gc+Y+XEZ<;;7p03n{{omfJ_tx~udL>?iD3%@VBB16uiuHTKQYDb5f3RmrV z`P&h1X!foB+I<}(1qpWBBZb&gmGuTYPBM6te3Qm%8PBE#)KO2m#+;fp2i`kyVJczS3cf!I?w(!%1 z3#8O%qNtPB87btgfcK#(3@jGOE`e|mIinF{S6ti}lsL~#egsobxE&N0YBTY9BSzLI z4Vja#Z%phxSYw~>lLGri+7FcHSq+PNa21S`c{Z4^XqFclM>5FvQ+-A~!cNzWdV z?CkZ^pY~tVOKTy&pfh)kKQk1EO(Qwt38rBdv8k*h*E7IKazvF5al^~i3ZS^By5KLr z992f%;>K9Sr6Hf+j%VPtKub$}EqlF_yuwD#UqBFmuLtujRzFpQtrS0Y0sK<3Z>S(i zwC(2!54b#843YHg2dN=+Bq6s5%FpXP_6De2?|>?zk@FIjhq$}R`17laNt}6|)nehs zq042JB3MG=8ui-2qMyCKABp-UjE=PIkmZkX%KT%H9X|OKqUPQ4YbWv7LdHFqS4N3MBtl;z+Oa_yxtQ&v9C$62bmlvQQ$(HVwKtJlzL`1~6r z^%(wqC>Q(_#1prgA|jgVIvcbI(Ql|cH&D-eA$7WY_v5dq{mKYkCv)uM!g=J5_Phyy zbiKhI8`%vaa!)$836$(7tL(ML$@KE3)FQl|&ow4OO`PX*TqED^AbcPggSmnEU*YQu zmHvIT?LQh=56SYybLjn(%Md zqb^i&EaK8QMf&^uoyao{R0i#z7_`-Mpa5*hY*6K#kRe7=X`5dM>7~3}@iKgFfy_AY zE5VvgWA$GAPi)#ZRgTF)mk4!S8s(x7B%h~^dSYk%0y_N@KSJ~h6!34`jrd-DqH^<_5_{;**7-3;w5)o_D>K20fBG+H^lZeC>)&jxfDTw|lD8 zM*Zy`*g2X#ukZdl@E>WB$xR3uT0vFy1Q)eJ(|tLvxDnU^!8ktT)<)j|}EVG6DGq17M@ay#)q z)|tZoh3;aoz4^#L-}e*NVfsqJ&lGQ(YU@H%lsV@EhQQ|_$2-qY zfqP-_JP65Sz?q|mJPf5gF3H3f9VP+QV6v=bhqzVK$gDesjz4B$=Z@FgD509y!UU}g znL#A91$Lwn8>i`J#K1I}luD!fxqj2LZm%BH54VKo{`u5L>ePP^Qd3OHRTT=;7dYx` z9eVYKJ!lVl#`#|k1w`!42BPr)G17nH{!6L^A$1B)!Cu&(ZOel^Ho!RgwTurB9jsP;teXAZu+L zBv!!S`#{aV{NcL*$qT{LK46Cy3NqlA=>T*TR)rccjTZfj)O7Dc2Jme0y-EwZN>bQM zt&vB+$>ZVOecFPmm37Nsemd8vuU~UB*`J*FL5zeeYXgU@e2=E9i*tcTkXrV6F2#wm zR_|I*iOus27Zrr-q*NpXup5GYleICd?|Zu`U%L_*2y|B2otIiHd0*PuAfbY*=A^#J zS3{ zJnd>dvWf)-4FFa#ct#C7<0w3w>7mm0yW`&8zxQ%so{FZsQRq0>{2@zHXHI_vHT_Ff zvevx_)Rdmdk_>ptKu_v=ijzfcDX`wwkxV1|oX+mcdh@ii8l<|TKQ1CCy|?k=lv!Vp z-*2jQIGA2&)3T;b@D?-})Iyz%JM>N`KRBc^ZH&*Sv1J3DQy%Q_2|dmk5!PYEcP!cN zxdYGbu=z)Q2Xbj=46wZ0HZhdil0s}}bgwjK%;}N1Tr=8m#(7@kBzC*@PTtL|_eOH? zO5@M*t9ixFEZZK}St!ZyjG{64ZI^6a6FRgf4+77*?NjAxU*$Y$!Fib^0+jo3Z<`S< zT}Tzeyc~|0c(?AIxu5CnRhMcTbev07nYrQ}z6r3idONMas3s@Evdvk#t>k_={N1ct z_trM_#f_6wZwwbu>`iKmldc;AQ2E; zbH4z!x}6+*#+OEBnU@VT72`dlt=zJCxx^VFSeJbGO(K!Vo<-O7l#lkSq0PKYf7=JH zwpgS5F2$?Z9MAGZ>y=Bu`ZjG%zu7EVe;MCpY6`w^04?$gNi~j64&>4vkDtIc_H*Bn zcRGTE*68=Pd;(FJy+DlIOi;(;Vtvuk!UL(bLNZ_7=^Lyd%8{`K4Y{aMYlJ>nC}ld7K+)uJjXAB!|J2QIA=UOvbB9f4)Xeaay|ObZ?y51DhrF4vMa z)Mp!T)+wd=DY-{^e)RB{d%gOUQm5XTPYuxEJw8!5R$y0a)E<$kvt%60bz#MBY8G|> zXxqNf=2y+p{WM}pC_Is~y`a<0ch*4b;|I`7)%04PQr+1^7st`bh-3yMyMCbG4mNGo*J;=Q0Er zsxi}PJy(cSDqMJ{Fp^Mvr-KN)*C5N|*1R6*9jfX~5tWhe;;-Nz?7qqOD~tSRuQBY< zRqS_^4Jv?;Lm|z$I{#b==c)iSg=W$SA_hW=^MKqFD?*P10CAun5XhNcASO^w;I8j; zHDCm}pZGQ0fY`k#)eo?G`xZW~41`9iGsp{3<~mMV>m-1ZcgZ})e2~_?+wJe$Y$w#V z_rtBO;-NFJrNVWLc(Q35Iy11?`Te@q77FW=wMW@bPJ|1x$DNS`z!TcBIP^DfMhuGj z({=Mz1Ogn}_u#c34JR*gfj0FgvhfKrORb^B9?tNE9B_!Rz)G&bzc>`V5-LZ?18UE4 zFyR0om&=8{Se5fdf!LnqAsRMhP4N$jl^8!xhN@3*N4@3k>C+oBoQb?EvRCJ=1caCI z!&lQ#^_nv(^g5BVjH%Nvs+^0G8*FOyO;&Ozy-9$;KdSDKKodfyu;}eZ8B-=TWIo(1 zxrj*Y^0?LDf4*^NeV3Zx_Ur^hj&H9Xqk*0@gH+Vo%M72@;v9 zQDrM%VzJ*Fxx_q4%GkBt4AeF)rjhGF^D;#q&h!Q>Lj?VOb>J0b_c>+1e>Hcy1%~tOF4#Ehm zeg9k;XWEHUhq+SQ8J}I%Czt2_opzhG-!HLoMiVp+@0x~8Gllm!xI9bnz;y=08isBO z^qdpj+f|Y*yE&AF2d^Z+7X zhRPOsQ)d`V3bYwhhv(3)L4SK`-Lse4D=I#pQ3$L%BxUB71MJ#$4kbmczJmP*Km4H9@H80$*T5GphJQ9bT2>y*u#NzO{=D;*e?s8($%I2VENg&F zG{Lbf=j#1?7|7Xg@Xx`y?yZU#kO`jkweWvHV@}jLCRN{Q!@*xkJXCB*WC@Y~t2X^F z$GzaY(B7|Ib6i2?ae28nv>DI)Xpy8JS^^Fm4y{rkDwC+fA6 zpW@xI*-yHz#;D6)_poU569XGZv*Prplc`8Ngx2kG4jG9M&HY$URP02(TH%j(1UMT2 zkJetHz4|XpZz53->CNYh9kG97&yv@xhznT;A3PlDaNuy(8T~;~bTUn*?FLL!#x~~A zR#6|7uS%JonRO+*SFL$g17f%b(^$Mb8}o7-*QtN;N8hr-P(ydQB4hSu`Aeog|FhK) z1)P`{Sgfj_Y1{cHhl*-{RFUs&(21+Y6VC)SM-n?mo-&IL(QAdMl%}dmT3z-%@fqL4!puL z0B$Z7x$bWD#B87GR!|Hh5pZUg8ja*tcC9+?%;+B9Ikql)b@|IC3fk6(Z*loH#8ZTF zF^bPOH#U#&gV=R#+xJx#d{vjCYC0iC`JyE*xDg$ztlGH6Ac3ZAK9C138IM121kX`_ zIwvU|@+U`y>5M*~kc#0Otnp-%K;qUe_Q_)PPSeQo8Y8k=qo+A`fC|wq6;l34mQErW zI-3b})3o84>rLfs*2y>AwGy7+5Uvr1Pgp^fdjnOMmbHSKOMYVdB+BQ2oO zUS$(K(-D05r2>T{>h zulzXZVd_=Oz8&Pz1j_;Guk03zdPdjGnRDPQcy4bJz3(`|6san~a~M(Y3|fJzRU;S% z3Fp+k_hGeka28%L-z;?mGy^UReWBUqcHM^qS=+7Izm?iE-6PGi;qf{*%vqaLt(Fg= z@@rw+n1O@7{=CUscH%SlHp@GzW2rTEfOCPYezt?Qt1bsgo$hCAWQ+zTSrZ#17Q<{w zGcaA^>F8>US8D>7>AWTOq6KWoX~*!vkY$h>yyu%;E<$oI70Mf;K;>{Z;bBwBV*53_ zG3-Y)a;0Y%6lDoVresXg^e7lfx=vfGX0>(j4bu0(jB=N+ZUcg##%G_X5yi z3z&HfzZ@s*aB4NwDY&nb2VzbHe@EUiEEO(-LYP;OCJvN_X`cIfQVREG_Zr0rpWJEq zpAkdx;nUX!7+9}-{xC_75Zc09cd!V$hTd}sC>^PNbp@Do>8U&gq619_2uv!D2Q znv?d=MQr^s4vTBw1A7PvM+nBMe#nEGK}tRE=>DGZjxbr#63rB>%2Mv6-W;c(woCN+ zcz<6HSTASUN;G0_xHC>dUf4YP%#Cj7y558m&Elfel29-nrbzZ@IO5ywAi-wq!sqELi=d;>?Q6!s<=E+7PnsbFv{r~e`i*riV9ReQiB6x;8hfvhNf z#z=2uyYh?DZ#dHp!6zbBM4&I)p4eVz`jAjrP6`TgyGIXd2o}}X;Gde8NlEGlP4gk4Zwnyc zcv4NJW_k^w(>4n^8`%`E=4I;xYEX=3ey}I1EKx4Jcp$!ORd8yoF&JVj<*y6)z-7qm z?ocgeyL_b2+v*nVc(`xJz(tPoj5=Ut&wd#LqL{A7uGzzCg>Y`m0xJ~`33x#6TnS^Q z0&iwx8w9$jQEDRkv7TQ-jsq7U;QJ#F>2Rr=CUoIvtH?80i#ty`0g6!^GT@bkInBh2 zEtz(ujll(eBZJ;Kh=@>9p2fWstyF=;DG_CGmTf-c3%z-T*lGlAma$QkFvFFgBtMR9 z=59|WN}0F6VQXfp`50Y+P3bBI;hstr78gmrQO_;;W{z*9rhSdPYI>+30aOdKpQ?)4 zT#ecXRc@kyR$GC2%P7FW+jXyK3hCbNvACzbZ;-h6FKnq6>I^AVTPICTrsZ}E6A{eo zY~e`%QeGc#tUi)dW6Uu3{nm_(({EsvOT%TH%OSPLnj<~mU4fq@FR#kERUeVv@|Fqk zv>cMy)>~WtX*5M3QPo@Vc)4Tod2Q-JynF;77z(87 z94e#`y{~t3LbUbcT~$%cX%n1EeglU2RFdgn)gGv1^J00dGMcWYb@@)_lapM?#xk)7 zP$Kd^AT;Fd)YzG+n1v!LD-|s@3DD>tk*xYEuLL?Cy^i~wFowHlK(I%n&48$uvtRk~ zH}Bl?a3ja)S1Vz-iH3%&*`ws#8hXDHCjsVibQ-qGqD_^Cr?<_m65^zslo*4qh@##2>F+?iu}YD54fS?~ zj_IS&1gs>sjsKWo&r>@qcO~tcbL}visyL33Q}5F*jKlM^6G@Gq@@0-k>1SC)9-n-F zgUi6ph2M^Dh;(=M@zrnLUpd?7fw8$Y;rr*< zL-t+Z%N}=WHs``N7?4$sdJu&_5WZ2s*0}#WQG`GZmiQ#!pfMSh?eASPCDSB_|(@~sTlPhO!_yU#|2gFtR}+Jv(ejCJ_VSdMVP8tr2; zibp;jzm8DhNLF5vEcDx{C59lguP}P_znn5mBIf=7$-Ti1@tSiT>)}vE`y^p%YC>+- zds;v48$EOmS7Ooh$djz8H?#@mWM6Ur%JDCBpaJRhhM5kfV( zNYIW+V-xWWeBsl1O~Pi6Y5$RKG{kKrAE=2k_`dP$a=-BFPM*V&yz+X1SR=R00Gn#FV24^b+bigq?6(vpnSR1~R!b zIdhCp<-+4mEI6bcgoU2iA{6aK+)4^r+Da@B>7I%dY)9?YC*$KY2ui9{un?|u(@ z{ASh5&4#Ex8Z+PD^)({hEyNXQjGA-~!H#h|LpdazG?9rWm_F*t$}cE{z6bJRs>|DQ zmk%LWAgiK{;yIY(RvBbh+_YEY)TJ_bW4Kl1c1 zp3cL^usF@K6>XmYSMiLLFssxw!xev`)d(Q7+^YDrWplx>fbHWxeAd7zL5?r~sGij*_u##75y(?p zNX1q*hWu0hAFjQd{3~)(A2Ngxr$0I@yM2e_7jJMD8TjrXhOkBrXo{%NJ3#xq&KMuA z$OBU)tls2<(Y_waw8yObqJ@w4j&LvPIPJUT!(?7L{{RF!caN95D>i;ll#Wz0uArA} z;E@?ta_u+jyOtwwv%Ij_2NL?3H#M~lddg;bdC@m$f&}lf9EF!nZ%cm0gQxc z!^52!;(MvU#hipUtu!wvUsZoe8vAr*a7{pJ6Q(PA%pQ4_9hLi8!{~HvZ~^Q&2V?7p ze63U|yLrub6#78$0GjF!^uOg*HORXEEe5hu!9ii5>2DDegS>HPV{mPj@UGq~;XdS( zy(~O85$;-*-Z=fODjII}xBRp0-FJ{mbI@h3AXzEU{|&0?(sQVWO*p=2ta-nBW_Z6m zV3fX&CbNvDa#;5rb&?S=X1mixwkVh*pg|Kj>A0eVIF)ZjbpAN7GJ~9WAu>Vl7)|w{ zIa1x*R>5OJai>Grly0l)jrdP%?B`MV4*b&sNPMB^ivPbtT+sKxKmVi-CGr2_1~uwb zb>x*xyIURPoodLi7%7u~x)S7EJs?1}U`b}bDn|HTF7?bLG=sD2Ns_EJRjl4}m%_0UXzeo2e;-EWh)>zyMiN4nOA7RpySz#*9Mp)y z%s4u8316%{nsPUIH^Ox2a1b&qRx1C``~^QyW4_&+iX?7E>e^mc@14L#X6_w@9SZu- zy8tRvPwx>Z>GMZ(s~}|rRcVcGA=EP!o6OrdUvNp`d=I5UiZnk~6s*wUFFhao(LT#2 zFYp8s!stL=iGO>@nYUT>2Av3Of>(Gwtg@+3#i_p_dF1pdOljty<@~{34j{!anZk^x zz4}I%r6^BD6ae~n6+!=UVAB6_VgA248vLIQln7&_2;Ip8goCo)Qg|6Z?-!|Jt@IuQ zYHE+DnqYmW`U?o@joMOaFm`91S*b_0r`i=M31TVrL~vKo%1h}bygJHk)!xP+8z2im z`x8i{(!mvQyPozZ|7LoS_QvOZx@?eaA(?sUYVN2*m;LnBmvd&$QTqDu<4`9X!$p+l zzRet)*=++z(hkUH-wEMOdqSuWUw^_5BIr@)Al$ySthA?HnL{Fl6>gH-h}Hz&`&w>n zZ>Idqq@kq^RwF}HxE#q-T=$dX*b+JSxU~q~qS2I296KMR@g}UadD}uxc{uIO$kwei zMN%3(hIn{^kK;C}p=3Iv`#q-n$IYXU+YoYdc}Wot#JL2@7!xrF9s21ekN7{>+ginB zS6@GV*ylQMONS`^{G(qs{uRpIhaaR!3~1Qegs=@qV&|sWohmDRaYzJTqwj7EKcq5Q znGMX{QWq00rpc)J>_Shrr7F|Y8Jb4}GN2&jeY)bev~34O_F*f;O}%z(NQMM;(8CTs zPr||*fmcZ_rq)sl$$@pJ9Q}vElj(R`s)SD_jpVv}0k#}uq5+Ti5C{p|qg%##dj5p{ z^!ybS$5SBBjh^ruMd>ug#l!@QLNhsvN}pUtgZ@fAf#(#`G_*3r!-PL7Qd|sHSe|HK zupXZgsJzg;KwjthhX%M~F4ce)dR~O@tu7&^gMhk)Ib5wQ9+$%)2G;3nho3ODnbAZ% z7w-wZ6kgO2k9){jT5|>o$P9auhb3tuV8*!l!WicG&X~UTW%0;l|BR5Hx6x0u62!@3 z7jd#ueH!Y~XrBeC9e~>S4f+10hynsQXt0oK&>z*hw;#G9`m^ylIUm z)M8QDcz+h;2g!mm*yZy=39@3FR#fg9>)GN{26OXSYbucie~4yzoB`;9k+QQ+Fgs171{AqW0C6JgogH=KDOdZT4NfI z$`O*1%o7(+PiyZ7(jPX08@VFOCz&(UAmFsCtHifS=^<#mo3HZMJs59;|nMdD;jrMluTtt1MBoOT@LFG(aT61$~u-Jt28)8f7$zIt6T zO8#2qGH;aL>-@X?e}`r?83X3C2h?1)w(D_nzGS&S?w(u#YJU04L{`O`M{ZP! zLzk4km}@qK->LH5T=0t}*@@iHI|}sGBT2uaU%W)F4q)-nom2X}V9BhhT{Jjcm+IE9 zqxEgb1^z((&pJ*9Ds%wS@++*xCk1k%x9ZiuR1yASsFj;FGhtV~%=BZ9Fu-bbi(+9~ zW9P&(boq|MZ*#xxR{Sfv<1&8%B5H(BU%J|@3y1G)*0op+;`N`N5Rcc&>y%JWt#Pb< z^S3K|R@y&D_bcsscu}FczIg^t|IEc?hvU`ApD9g!xte_5`3_j~7Bw}&fC|B(&*LZw z9Q>#nOj|E7;Ce}P@9|VD$(~@!uuFL@qmwfrn?r_ZE!%lA;Kg;i+_Gu>c!EofN!?2S zO=7ey;1GLSu6;dE7%A1#|M;SUw5YQiv~s_O1u3PHm6+STEN(H3S3*+OT-qgbt;K3- zSgW;edQ9%5e9|njOD@Od9QCk=F>YDO;V}@H+*sCc6u9-@9X@|lIv+FXI_%)4vV7fA}1Yi`=+1LB(-9%cUPpwmU1pjVCh4) z;+@h0Mg_JFTC@cu*y8OQ(!;R8ie8b=6vN92myFM5eJ3vIe19s6oCBfCNrO3$wB zUhov3@$8x$d={c6`+dz9M2RAKn@l5FCD6pX|VwEV(XzTfM9cJ5BNggE0gN(Ha#B&AM|PC5sxK zyEcB&p4q#-Y(=z9scj91HV+2EHDt6^`L(ew9+!}W(~5*=V0c0+0=KrrO2d}bMHke^ z;|Zc00#!Epj}j}39DJrv?oHxfYGx?j72sjGFg~H`xOr9WhW%w_lcWo#V=qu2rkGLt zh^$$&tW7pO5fPhig-Yz6|TiZhC#mM4+-4zPdLFgzn>(-d~XDl(D_sUi>ULYOG;Z(uhgIVD@0qAP`Jd%7Nz(M z_L8sWA?e{sW0s_2Qb)S|Xap1UFO7(s{_@T+(zD7fo+a)rUlr5(ExhPuf)2yW-H%@9 zCo&}=QUk>Vfn$CSKF2U2qnA5&Gv{@7pZ97BO#k%D35U{9MtQ$9vA^}LK-^ciSL@`l zxPABgPqhMvyA9DhlJ%Y58~dH9bGqA`$Cn{TgM=&eO$p-zv`-P41JWbC(N14YFGt3@p4Wb0}+C7^Z0=Cjy)=n^^5X`t}7X?k71sQb;m{i`rvUhJ#*SB(mLvG@e~2h5#$Fr4R!Cin}>3B7o{iZU`O zT)i7EqVW3LSFy>-KPSGuh1XNvc|=^1ZI8n!u}eb;o#Aj#z+{~7HV|hdQbkV3;|$Ap z;ylbWv+Wc7=DyvBtYRP~i}p%9+H>M0?b>*?=~}WPBS_MO-+vTJMY_)~!KGcIJDb987kDGR!=Jf*p`yMXI>6XzbcgIoL zA2E(HcV$QwoqlEBLH1R5#kIFz4>^WxF78*>*D^9Poq-c~9xyXAgT;jY;Debh_x6AM znNQ-Md9|-|ezkv5%@Z6N8mdre<#K~dbN#&kUd4%^-TCUTH3Pj@+B4AmsH$Q`bW>v< zG~`%>Qim;beFW<3IJ_{R>sN&wJsA}_Yq#wNL~Iw<{anB zik?BM@IHZqFOqzevUD;PPEX6a|Ne)_100Xq6$)>9(6}-2O9_GF#5VexN(cvd4jFCv zi|zrJCs6th!l7Cpt!vNf#>K>dx{j=j4GEp^mE3D$SMMk~?R_VvR&SG%l3LOOO^{f* z^B@el|J-|=mw$KQn!#LmaL`r{eK1cflvDH%o*TitjJ$1ofJXyc)31M&U+Q3Ou zPE$TzKHC*;+P{%5YB0F>3>J53(&DP12<)-ai{TA1h|#gSIzj!~|*s+fX_@#8s2qgh;U`GzcH z_qEXwJoMF{7X`?j+Ha3T^?b$US4m3p6g6)rjA{s3qGyfySMeLBM|NE=e|Rdg`rR@jEfF0a8G;n6;6~b8lNvkiMkpc@iHvU7Q*-U2lU?2HwEvukSs@6U<=MV zO8;n%R%n zzy+_wnk8R%38=-p)O{y|Rb70tPlNrsAG)g?J@yQ4Au$F zkZ8zkDB;MFSR9r7<5}|k?7GAbim`WzP&r*z%XG9I5ovbP@2MHGb{LCPmawz+DMyc= zQjt5;Uaug6ZlAPeRx(qo39MM;*%=<+O}Sa}%X1bfvGbuhr=x2A)TjV{dR16@dKDLS z)>gGna5dE?G(_yRWuwxtB{sS&pPr&-gMP#c>j@TPN$(?(?1YT^M{T09vBf5*J!u7@ zi@!w*;)zzH1e;|?&bZfAP#La^Y1#9Xf~V(V4z~iwg&em(Tz^sQC2{b95Dk^iuAr(V zhQREsEj-h`Fbv-%$&v3wtKpNEPsQ19`ymaUb-(*6j2mz8#{GzB&T!)+varz6XP#mG ztZ)gX=8|-B_t_VrbKStd!=X7bJUDQwzl;~Cyj4?^9nO&0m@a2|_UxIh-hE59g7Fs+h(HJlBi`%VcS&RX@(@dc zrZw=5nF@9$CZ?Ny8lhQP_ntq0Ub~v0QwHC$)ua1&d+2>PBk9GeA$+;GF5A;@^ia&q zcSi1Fr7rizung)4Yh#ou&6a@w`}1!F6ABL1eFnCdvnHk!er@4#alBKmU2OFQ+~J4k zS-s@hm6e|@GQAU0?VIbAr!S7-_9E^F_mh*8aq#hL-Vn&j+>d^M^GO%8`SMujCLv+6 zh%*}>AD`s9``K#Z*n6 zO5k{Mru{7r!|JYpt`&m`y%xh!&*HttN|sW-1!E%=V`Md|e)i>{#UaXv`zJ1U%K~af zv%9IA)w@Do-vpJ{TyyNiMZuM@-#E4OY6f?pdLTcmZmS{uE+r*$P-yYg-ha`1sOP#V zdLvGbjFwi>X8V1&REBi&_0&CPX3Q)z1TlkfM520Ar(z++BgA=>`^v|CuK96hYpbUm z_V*Y1(+O{Cdvge&hp5NQo!?hnw8<^9OT24ul zcUzmW0DtnKO`D3!XBI@SoHi#ohSJ5Lqi4;i14W6%H!`^&wb^iv=?1=z=1>Wo8)Xk|ROkj7R4Ow2Uba^TEJ6C+k z!~1|Ab@r&tf_%lq#Qn;ia!M^mB7S;*!waQ%x%%zQE}K!FF_25tz;|}JDm&|IR6Cm4a(OQ)XQQR#0V3^)vZPjOJ6;N&(@?7p zvn)pZo;fS|iTksvr3cF#Hol`BZDZ8=Lv?p|GGw{mb~=HirPImN#hDiV<8z)=%>CyL7@ zA?{q8G?~s`&6dRD2B%47)Yk4>#dH}hlnZA&F6!=;hZ;8Ufy8SI0sCS_3$NagqVpOU z$CfYSO2ae#W#SXv?FU6!{YeCKj%t^zKeUVQ-@pIJVu-H!^jDZ@sqcOlB}fQ`7+h{@ z$jHeFu2h7DCaLrXw&par@1~!)?WPO4nIrn?b_4;1uJ`~Wokfw#s zEGVD%#j)A1&W~Jr^`H4IhN#Ae(?mLcnDr+KJ2HbqM=LbgGo&^lOsJlk6)~)gd%N?h zwOf1?ksosv6Yb{q|Cof6h$!kW_jKznU$1L1G*r;)dCaw$kP!KkiJg`)$A00PU-Fe) zGr_nB*_ND(80DiRv6H&oP1xGR0cc(*v+|r<+M?6qYU*2Cw(wW^Ag9-zK}QGT}&Ne7)7lmhiusReyF)xYYMd% zJHCGoqaL7jCD>}&)D{hK{iW?^Ek;U1^K#uT9)*tude{$l!nMDn0`b@bL~HuUS@hoa6|t5q&j zq*E>U%@&w_n#?ianVZ`WH`Xm48N;C^<-z(yUXebzz5y_~t7OY2kFkp$hwHaQkkMn)Sqj?muXWBsA~}{T$J&8~b2@!d z&y|YrO|Kub1qH6vZt8@unhl2XiE7-vn>}zVG*mtbAJQFylRd3PJEMI%g5 zbr>0M{6(8r- zBXIaLk7qkrm<~IY?e41bfL_i+7YCQxKIpg?502M4TSPKQ^o@Lx{y8+n#>p8bb+sR* ze|@zVB2@-<*$(rqj%E_CuoH;7^ssVTqw{svKZ%a72Is(i`1wwfO*et73vV4PeX;dXGMba86nZmWfbYn|Tr{y@!1%*j@xM!^y5{%pU8^-$^djk#P}|9inmTl2b1^D*;ZmwjTsJ0tfz_26&Cz$ z4}ZIH-6QEtcbmn>5g9U07gBPDjT06O@S0mE`oU%#7$>EJOIL%uf@MRC4lS$%{pPj4 z#f)~uAKfwGvoo4Lc1D(i_pLWwuTWe4_MPTBf94y607SXZ${LfFHW0$-6FR=rMvcdy%SudOMW+hJGSq7h5UufYarUJ6&l zI+HthG?Gr_d8z)9cwH^&@eaI4#pi%bDnSA3g|*!xy_jp6>CZd$&|T&Ap@rf(dQq39 zje^X4&>Oej&5S6$P;S1s0S*Y`H{>9t*>CPlX%9=T4f{c>z0pU2IXpP5`5;?@Asu|n zXs8t!T&(m`$4O z9ZqIu|Dx4vV|1hvibEIFYW`lCGb@$G_`d->{57yYUrS2twu}`B!Dqg72(hi+t$)V? zBO|ZT&&8hUm7S2o892W28<=XN#b)ooVEtbo_RukpKZ4j!8fM@t0V0paqbZ$t@7`5H z96MFoJ32mwg{_=#mD+D*gZ?KJq4;6oGby_M!~c7h0(DL)4F>(!aMwrBmTrQ_(IyCu zY9F**&(tF38!kL!e4J6I`+hu`mGqND-=a2yC*&d0o9O?m=6Rm;RZJ7y^M6Hyy}R>m zgGM#*Z$(8m4jE--kDg0Q>wJ?z({vj7ewGBfwGK@7jr({YqA>xx|KGiPx6FP~5p|%ps0>c`2r?>Vg``%Xxp3>{iLMQN0jr4PiZ%~AsA8YDspiDmz zX5{xT@`zt@?tQ0SnhlZI3=zl}_|(n)z3xJKxiM_ldF+$+MeUog2FWK?41$$*CoOWB zVks^ej=N%moP|$bJ*~u1S5sSd5j`8U_rdlXG&dPY;yXml)B1hDCvgI9ox$hS2xDy^ zSz1kvT(80P$o^S(@fVkkN3B)ZT`gCVvt$xF&x&bDU`uCsS#mH#972@)Kl1 z4tt0?Z?XOyI^fQr5lf!jNz45@ zqnKvjv^hTfXy0~Qg;DF|Wi@l08h)JnBJ9~T>h>Fe1%fGv9Zs>%O`5r zQ}yvr2JXBg@1d!8*RFeZq)vK7j4aM$x2owihZG9qe+N8|jSyYUC@Ea(S8scn5I68} zn9St#onRwf+d(3sH=rlUCJ&n%6QvWK@psSNN_UaB+%i?HB3C4j2`u$6NAKL&TMl82jg7@> zUG50cs&it6=|Sl+h(kVrw_VVbGK#r|Kl^}JWoQ{0Q)fj>T9JTVCe`#=D=&|$v<~an zs_M%S6J0&>1Re{`XOH=b*^oXP?>r_3G(7CF3(-^UsQFfV)6q=u23zrcW0S#2ZEP{f za)1Bw)QP{-^bhg{?z|^-Fk*z`q`L5MUlB~ce0hDBk5eK*Adi+xo!^^WMc|bC?oi?6 zcT6RspwokbO+(GfJ6LGlGTqeWYz)sFV24^ofP27~ zt2y0UePoZf>bzKR7{eg22>n)`7Sk+g!C5mmRYQMsT}z_5;dyLvMK9_MFW*jAdL!2< zV;0Ey-6^{JA?1xOL{#IJ4sb<7QFVRg%yN~NbWCGkUT?lT}fSPId3gSLD2Js{f$l+=acZVV)j7_)rnP5&X%i&z`pb zEkwJVrF=nM*&TObw-`NAi|fhl?iGe+ujWfFZK#fg7cOvKPZim#r#v)#ZfI(He}8`; z!_?gTvDL%_k3$EwtsMENgEo9ds`)lrL7Vr<&ux zl46Jxo@(YIK<*Kb9W0SC@IA3#IQZloXjQNpQFR^V4@f_idHgy1JMy85$2n^aW^#nM9 zz9NqFo25M$MLML1OlSLwO=-1z3$yE0gzL%AtL z@q7;AGBHK~;9_QBDc9t}aQQRhPa=gHaRX7{4)@y|QGEWGKTVWgWNna=wp~HJL&{7_ zdnz`kPV|bs$divEA+$)RZ-r_juN9mKKUd9Qxrr&jzd;!v@S0s0n{12*#wdHQom1JX zEnRMv<>h^zx>eN*L*3ETzN}s5V=L?C^MVz(L-)DG146NNzUdV9KajZHHq91P!&mf8 zf~}mnf`c%c;`VJ5EMD5>9IAdNb&3g;e$3DB+@vyr(!areGslRaa+h7(dHcprrd#+m2l`z>XL_u3U@YO9 zlhfsL9huB$OSdvj;`)dY?9AEb3j1K(4J;y4cJ0-6_?Tie?cv>10VxKY3np9s!BXtN z(0PVOG(O7D7wDOtyh7-%SQU{LSNT|yH6QzbQu@Wndot6fy2zI!FN1SI>uGZ%vo9DL zx11$9%HzxJJNI67{yWF`Tj&1dWdZ$R0lD(I_wglFUYYCEu=2*ybuvo<%<(&JfT#j) z6~7g%{&~R3xiVMh>{lpu+RxkaL?0{*8is%UERj_IIQi7GSQGOke(I5*yn2kd<$d)+ z>+>W>Z(VzW%)TO>Vu5)K6NL<&@mF+`@oLU1)EgcjMsJE(*@&j4 za5=jjxiJiS^#aA7QS24p*TlB??QVI`?Vg@#_U%>~)7J!#<jybB@v8b2>7QEb?Xt3*UzC!a- zLQ*HQZnt82osy%pvKF0zJ%qIbpyc$zSAM^PM9OsXyIMC@YexvlIM`=dR491P3pwbw z)g7%>VJ>jC7Tu576;}sV%n64Ut1hfwKn;AqTV&IXQw>$m5kYY)C8<4;PnO%J+E2LauO$ zd=NSMkWIkGk|R$MUVFQ^i9VRO^x`WXff8nA6kcaDGbPUJzs*q;+ZRD_Wo~TGR&l~~ zor#7ePUvdpoCvQ`>ryk-wzPWnE||J2xKSW9qqT2r`x(b>2`fpzzSai7Gc@!gj?4`l zH$>e!AkW{atJ6dU>_0K?ynzAm{!oO_!t`txIyYOFjiYn}=LQiG>ysyy#bHbUSUPnP zCecd&%@7;`+8Z>L6up>9_P6A~HL=4P>r#^K(FkL=SDkq48|}py7WsEVo$UX@vbsYP z^dL_AzbsYwuR;b*#TPFK0Ga;z^XE#)8?V0MVZi=lhIEWh$?~P2H+zP3JbV5e>+I|d zV|vHc*u(_b#Ln(+;~F@o#ypL%!##?yE^CpaS5U=QuUJ`FI<}x;fLk}_o7&*X^sM*v z8MdriPh3OJO=T>Wt_#u&J7hVE*L@a^j){4*dt9g|bpMgNUBN7bO+bLW)`9Mu_uSXw z<9)e{+9&c)Lt24lHA&Z){=PL=WlafKK{he51~nL56Wnf*PEF*}(o!|gC(BxrdMz!j zz@VT>ckdI#e42=JcM=p-f{9;jS4`Uo`keI}#Aakf&f8gBq0UUr%#12#ZV(c(u(RWb zbhM=iSch+X{P^+r@84AYJRBTfe*73ao%d!gpRuu-t^7Dys9{nA2XDwR0#U^FTpd~J zpq#2|?0!a-HO#nTrfkNhv$L~u0%rOWWL7iv;l_(u?UtgbQqZ?m*e7wGfafZeUf^5Gl z|EylMzqfbKy=z@$(Ak}pl{Gg%KQ=o0DVRiASy|MEiZ51UDOik)AJLTZxtoxf*nGYo zQlwd)J!I|LkUlr38%#ut_Y@?CFo46uHEa(g@Z0kLG2Z}XXJ*Fo<9M6z@T-#`;KK(3 z0)pk=KjXR|d!8VOYBx<>T?GNm5Y*@7^9}Bua>RkUWdYfvR6oab~Z!N)4v1udl42aHD3?N6g5`2&7}M zA*J1Mv9X)!cqQs7O`a#Qsj2<`*!aDDeFs)we*XMv)EmtNWaHrA0BD}sXtr#3C6KQJ zka(iiQ}DgMSOij+*xK@i#lLldIshMKGgD@SJZf!Iei`#eZU_I@L zq{j@ef2*sj^yUpI$ehth`J^2jIJHjxvZSzAwU5D=2# z?jQ-KSpaK;?c-HODI#&+->{)=aNYTp;fcV!$HOxuJhQg87Mqmx2O^-qSP6_WxZBI~ zBNkrXDDd7eG75^n{ipMbilzX`_lRIBEGl}U9RY&jy4~iB@To7PEONKW$ye2;z>|Yf zMf0@4QYd9grvLcyL$p63q2m20^RJbars`J?4v)~UoXX8LEY}1RV!YJq9~cq>Hm*=& zQ%(!*GByHvN=+^bjM%t1Fbi$w6{OVEFXZI#sHv$z=3#1MHd);LF%Wui4qCUJ;I=hr zV%y9tkMyeI#}Ca4b0QFvSzk_cN=vFC1eCCE#e*$+0XqS?5 z9pdCFOecOkZ6Y^MKtyz;B~;RY5Ct@DD@b+#eMQ@l+=2p_j?n$GiJElrkek4O@cCYO zDW{7gwI2Ir1+Q6_MIL zs;YOkri!t3jf{bO&$*1ha@m~t2u?K7iiwGV^wH7N?@Z3#yCNqgeFn@X$det+uFpwh ze=jWjR#LJyD$lrDx1NC%O}_X}iy`50_-J9V#@@hnXV#3az-y9-fG%Q28ThX`kF8>m zr3IKl$ixEzse%c&htZ=gmg3uQtYvb*^kL%@KLPdWADqE@Z6#e@I$*5z2e+H^Wx-@7 zuThYb%c`pw4{c!OfiwiX0dr*^BBwl5TkF-vCu{F z+YAiK*H@P_z@02vu}XR#+oXqm*xt4&C5t%KaCaB!iDE1rm)&BZ87a{d14{3HG^w#w zxmN2w6#>jwsS!t4R~LFDyCWVDO%hppf+1*t?&kma5exi(3>mvJRSyy@5T%`O1LhHE z=TUYK?T94LtAg8_EJ8vsDu-S43o$YzJgLOp9sx^rxCI-owPayq%O9!)0$XYcE(7cs zm5}{?Hnzu(zhp{N<%cpP6yLqO>%2Z>1|$OrJ)-%-&U`3MYxg4-*k7pSVtzN=PW~j~ zL309kaeouh`O#KSG?R2Vc9my%()w}nJb5kHMS5*0U1#@)1S9JYlOAFUE=`Qu`j61< zY5y+c<)7@Czsq|VklFV9suwMR*O3%_{n|^_ zzAO^luQ892BnIUPqvRC~rT|J+7a>*tB+(+>5f-tuWLRpuQ)h1we(Y!&`47;XgFZcf z1;`p+`7)z#*N8w-ACz#D$I$`&;CG+n?_SbLqWu?uh0CdDN~~yQAfu9uCsG8(qJMcd z2FO3O;D0WUIJ^8;;ZsEe9fIcM0+d8~%P0|!uo&k`dQ5!yOYWhY<^Ml#<-bZW42c@% zm2GUeD8g{Vx7xLB9>kIJJJK+-e=AqA@?^*zr1QjQu;7xyN?(XjTNMKV$ z47`uje0|LBJl!m$ot&H;0-j8`Kq>i`n!Iv`_=eYV5as5;^=4ry4P<>%!vK<>n=72I zT!5@;xh$@zt)1R*sozX2t^a+dKYUaGj;Vl)1SEKQhegc#{&t8yNyMlfClfiLpYcS` z8`AMs8s6HJE-sKq?551i!{drrXo91gS^CWJcC+ZM_HfrGFcsy_eV;iX)ewFC3^W}( z)YvG#LbbA0yR7b+G3#>yU;NIa5QqC-aS8B*TA+YLvluWbm55pTzYt+HKh>_?t_EFL zFqO;>uxPC|vaud&FnMMbAJhL9xE){)O}ajjQ>Fvr3Xg>0R%;*u+1H|?->v@Gfq{X* zf8n-*`?`%v4cO2;B^LqGcG|8gOE0#*qgIgJ!XWVihx|B64-Wqsz4TT>gQT zGG1Ps2q{ljt*)=XRackO*Jl8B3IpJqW5m3oogEK8G2K0oGy(_*U{>(9IIEyBMe9OP z7{SioQ`lcxU!Q_DUC3IMF>q%U7Q-~-02{mnox=_U|Jv*{4NU-Key^?3u;aG=xj8U6 z$jZU-Q}_*VhLaorMk^;X-uJJTn{Oy7Dw+WJ-F-L(7lJ#W+7)!j@ zrzEe#D7cwvKpL&lYk;tY<**lt#A3qKa4=);bs`&>a z@n8Ti4;p4-WkuT{b#)4~4{iUV1NsJV+YAH^AQv10@<-7C8MX%zZVhmbQTbd~I9|DK zAE|wg(vyu+*S806QnsEdVgm5a`W!GOH*Vg{uCJf1eQ40&YMV~)J@dm14D2J9KdxBU@fW~LZQlg@>h4HE=kXs4>x&tcDR;%bGYT_&u^?~P62iDLp#HusTZZt_&Afr_jwE~sqjt_0Bl0Fl$RjybSKgtG#`)k{|M@Jh?K=?MnI zMz~TJGs6$KxJ+RsdUM_<^WEYgvH^CjYN98WQ^~LzXG-|kL!50m>$yzoOZao zmW2rwBW`9w9o?dh4DEt(fN3L zMwC4o4K4g0Ua9Hp5ACn?G}T`%wYz?wSB*QoQdn^9gn*PPDU z2u_vgDT4PoULV_En;$aN>O@%!F$>cXkByDhu4i}xDgl(`7}mf)Mn(#DlZw$1gN`~5 zH^w8(cIF!rU&OJM`&^z2q9&Z`2&Qjq0;Zfx{Y|}#W?}KT1lx#lc^UBjY$_Ss&do_l zR3N~l7Ik?50tqmu)Vqob3R&6N?Nle|+KbMQWI8+i3S0Y)XBPXvxY5&gfq z!Xi8>4coAQj3)D$-~lv>M(a6{X{6kJ6(A-6X8z<9cUuVjT{i?MkqXcyaDFP1XZNEd zj;Z`$IWpofj;m!Ye9*r;unr&sJE}{^SQ&j5QHkJ1c;a3cuvEfzZ8r@|C@g;USJA(3M8GB>;NDQG(0hfip&WhPH3f3`=Ln*x$>O~ z-iKfD|D9LlvDhT00H^c)`?7zQK>Q#6ECMVFc377&s(*NR9aI64fjEGunfEX5xP<`> z&bM#h025Q{4!#1k_p4kiny`xA)Q1`qb;ohk)P!#ZQpU+$Sn%9D)EMNG0rGm~OjSS1hsh z)W^ps-Q)M#S;j0}5L_yZP*^&cQ+_33SL@!4&?*q$iYygn9*b_hBNj zb81^ufxG=29}n1&a9`lnd~|&N<%W@4kMmaRNSgme+_*Ohg77q_gzLYV4-k8y4ia1L zOGwcBY3RELEnXs^z|OX}xA*@1iFxn-{lHhLf}mM+CM3|IP*GJ-2txojaz{D9#eg(sL0_h60nMP0Q7{6tSsgu0MvltFtI_-W@l$p zJ$Zi{12~f>?FC{kAoJT{eFdz;r%#{$EVlTjn*mfocIS>Nd+VobBC1DzBO@cC;~{@> zP#LT;I{J2YP7VPv@ft`lJ;|4slfx>hul$F^X@o61M5m_@{u#~DS$Z4V^2Aka5<0hM zLqzxFeY7L$&ump8Og5`G@8-a5O~uUeoIj)OThkym1A1QSTz2%^K{$!uf_PZ+q6il6 z3rY&K8eF+S43FmifH98*mbxCYWnPH`fE7$@Ve$G3y3)tP#T5?NDu8#};r1$p$P;fWe5C_yL;(cu|lpTLL*x zy93WW$2m${;G2N!=t)8#hKBz_AcDQ-&_-aE!{h2x0lx^~-r){B5p;pEHk@ft5as{? zL1$OjDBw)g&p$hHc-a=@(+O=>xFgL$dI>#hKr8`C(xhw>pkRVybAu~QW1Jp^&=eFO z8zU`q?CbAG3$0@nh?2YfFtNXW|Nfod9w0(bWDPuW0I{I;j zFF+T)y9pL0^su5V5)FU^0{&(lEVp~5KLpAd8|$$obbJ8t_}SN2|DLdl7mNX5dnkBx z6~N7>qI@jrpp^E&|A3UPU_gpzLw8pfHM_+yVg=1R+1l2?-493Q0W{$|z6O}&5g=^< zrU5g=1*&FDO-*l8Q-8B-!O&QAwL&-oa_hs7ACFhs+nqz(KuD@t`98)#Dnxe%O_yAn zO#>}R#KQfl$sUiq>i)((OEcX7wRduM)^Q+mVg-dDOH(@btir<6oO>D?8ej|c7w_MH z)i`;jrWUW!pQQt^1Sm`ai>bF^#X8UzX0wg%{AfxG(XcC+PfkuAlb8s7(H|EK4Esov zClriaqqZ%`;Sttu23V*_>*}UC4xou$KngdWZx-tB?u_Py>|Zr|U;MC!@%%R$(cglG zU=iE`p+2RU-9$o4%1cwzT)xP%YCxrwQpm=H5lkmM?bs_17kT|si?Gxj5S73n2nt{E z0Q>{Wj>rCFaB^@g=R`>!SSKn0=r&Vs5;B@wYUtrU-Q+0*AjF*8N<^BlWBXSYu-yt9 zkl(#M2f*!ymwy3q1|*mfxPJgtKxtBqqsdcm{EO~A8zwMRym4%=i~%Juc=~xP8qjXQ zw+*X}g$4vmB!^VR?POv*> z&H{Yr!~Y(r8XGgCQzQT|qSXL!VV?6;P8`O@#(;0n0iGP-1YfTwmP{E@=4j#?kP7zz z2Mo;H54U||fDzDEwJiV_&`JCz-M0Wdh}cQ_{Q39MbO-=7e5Sp(K~utj8U=djaVYJF zEW*y{!5&U+n1f(Hs;;u22kOBL!qDk;iJoAOsXRcs0<1GAwGVAa%Gl~H>tj{Df8&VC%7jEP z_dsmAuPXys1{zf*jo4gF6IwcMtCFoWX zmiBgF=x`)tpE&$KxQM-jr<0|*g$r02${5cliu^C?WNP@2DY1*CttlA$BMRK-6}W${ zsMwpixEnf|g6TPY{9}&rZ|9cI#x{nZrcPjuU3Jl)Fzi3DhM|+4rJXrg7v4e0CkFGs z_O4FGreOCUfv5jxCSq@EYij2L_Ar*%`H4aQW2S29Vq*$cbTLB(21X1fB`T!qk#@H3 z9#637yY+0Z)}AJEm^L*;OzI37heo5+4WDSDlh{VM%4W4m^F4mCWez_IqY1xPK;rN`)^*Ll3kiH!&y*!|;4%{Z1EE}}nR*~ZTR zyvzX70XbwBbdC_rLv&lot@ zw*apHYy{ACM}D^(EPvC3Q9^z0_uKH&GoS3@*2h1|Eujr1n*Jfb=!yz?adEbP+Ilfy zS?#wZ#`5nduIMK249}kqdwt(Z&EJ1nFa}mQb5lHWsNTF_} z_`h})3eM*N>QHu zaC|sEHqqXq`-WKV;N!2$&3~MN4&27tVE&0N_Em4u-fELcZI*gijeaJ|-9SwZmtVi5 z<*z(0zkvL>-1W^6lv4s4as<>i^l=lNj5q6zshO1Uf+}r^6MBQ$zg=}-jiTG%6%fPj z-Fjk(31Mh3(T0-(BB0`ie@}R$Tx`g(nux_LZ>&h^5DyJEOWBfIV zmyEbVjE3uy7|^JcCDN$UQLl`{2|#U&ljQ#ECv-2&ZZOR^saR}$+&p(VruzDNd$S!# zp&yQpF>!_RGwbW)73r-->ZO-5U&eDp8+3OH{}wKBatxVs*zKS4Uhd4|HD3Rn4Z(?E zB!MTLVPXji=)xj;qcu3S0VmFYz5c*op8P=?MJ=UCfgWCx1wkp4<>h(COF$4uZHQ)% zJ&XHqtbFr1+F*vz7{UteSLgD)A)lR{T{?FwQ>UA^N>HvAUYv4b#-|Kotffknm_atzOqd2ye^P=yw&ZNt>;%==Jh+ z_wrZ)1v}0ya6IYBTg?B?cR2G--B$$i226bu)=+?=7hmjEBPS$X(* z_}S~DRMTl!0xk3-+s<_J&SzdW4Zu?>I+h|N9$_hzkV((n00JN9bh+ z(Lpu?UU9XKqP=n^_y6)M__5a;S6ozu-3kxa(!%1YE09xek%o>%J|e+>-HiyPe7#Rv zV9rGf+&JhliODCbCSx2?k9cjg9%i6o~|OikLt_^W~>lr+pJHvbMW z!3k&Cq?;T!h4a5Ww!NhNIqOQGrX~cbrV?ZNJib^rit?q+Kvd{E1|+%CR!4@bkMSWt zMv1B4jC-s|TrWncny&h4zLUQGAo+I|_DO%=ds6<*XZJUI6#kw~g+oV=#w#j=CtP=z zazhud=W#7k@@b#rZK!mE9Z&85oI_b?h5vl1Im(Q?x35YjP-<$-DYEgSrsPsD`8AH0 zl!|CjzdT4nR;>;N1z$YZICv`~b+?Z0u&afUQ-|NouAp^svE&!I1zbR3R`|7`-OkPj zzUW7`>TiNwAD+T_t0cF|AASRgfKY%-hd-rQnN=<-?luf4D6Oo0Iceg*=^*zg9fFI% zsTn^iDk@o)l1(nZHaAc@UsyzhUm!EusQNc~*yXWduzPLUy3O`k4D_pqVS zGky-SuDkq<%&)wG7=%F~R0nO_F?!$?*61#5%ZP&ylbO)>d3H!q$S?11mf%8Fy*4KG|i>Gd+X`ti&IupsWDQg`(v+%%>zmY>i--; z)IfDw9(!G3EIP%_G3hyW(Yw{B&om_k2+h~wO<2De&P;#(sqX&=`29RY5C8unfb%Eo z{}!chZSDhong4Y~#CmB-ylD_zVQ?Z-NImk}PWPX^0o2 zYsN1KREn=su>zrbIREqSEyDcn*MFTqB{PHnw_*iH zAhmxxx3P6gQG=jbtyr9BiR|{nFZH#`hXnipj4=Z0rx8ssDVO6a{@UDjV?FI`^_Lw` zT)FFMl{C@&)&>vDwJa#B5c;|Rk)uL|zMlq;Fo5IKTU%vbb*CBgq%8{8DY#fRK-_>% zJ`U%ns$Jr*1jm-s%Yy#>998}8w;e6qfX3-vZ-3xzV_|KqPEJukp1K91i{Z=FM;df* zWqe~hIEWmbt{Rh3x2@~!j6Pd2RFS%`rw1GX0pWMAp>Q^;N}LKJBBCNa;A?;CBB>6| zAx?6HqO$!8<@BgbS~|~w?Dh?UbmFgK5yXOh>qNa!q?_98!X;K;=w~O{7Hpy{L6%=R zLTt9$^iaydDU zZi{4F8cY{$7~%wqgOBHR%c#a4cI91ra9PJI&Aw5J7NfX1_36*VLi+;@Dvh0^?-g}p z8}ENPbw7rt1V7mYoS)AP%?PKa-H#pf$bK~YcLC;CG^}0~i$%ScOvgaV&?U%(T$Mu{ zc}oB1^D-(r~Xk+_u}j>#{FyLg;e@f$_ql3EUcZGA~JNB zp1dhWvHZT1IbhlpBhOc0%U1g{0yDj51OmcJutssRL;c@ig7qm$y{l8lJ6)D5^EbB| z={6O)1#Z{`n>~JGO?*5B4<>d0@bH)PzZvv@GpKkCCjT1Ip9}&CCzkFxX#tV|G=PY_ z8Oxk$>a4i&{Xdu~6F_-0`k*w4^`skb#8~Sp@ox8eRvq2nrtSesM(hDc{`my2Vz_Zl#Nm&kw(!!|Y zeU-LqkFTZW5QQ~eeK%YoSg%9H9NM~!fL*dS0cTV>E8-vOunY!!PdC(9Ib?OOyfJi+ z57GRCPGUI=#<7HFfOh$y_ZfM`@PqAyjU$ot+s&+C(#sg*sF{fiZ&&@7UVnZ$c8NjZ%kG zU4Apt0eN=$!DNCKf`YF&kMv#?tPQQ9VZrHMYlUSde4R zjg?BdWi#k$>ZU@+im@`7nfXQ%M1;YE!;uN@U|!`?*IsC4k_noE(KfIUCq_ zA_G(4yY}?*@(S%Y;(IwFySuwnWK6hv@o7q{NJZ;{qh$35@y|X;I3yrIR#5f7SNDzedd-X? z6mAR6k+0Le-x;jeCe(DOO$VM|yM+jCFAYgp!pv+9EndDw*$E=VILl&g&)t#G#)e2* z5UDw%6jJ&1H0J~PLG$OV=-Go$p=$5_0!zWoFT3wonC`Bt%eux;JqdE&3$Ki);LfI zBhrOwB69M$1)5Q&+k&5u;Bc)P4afC~OXi%+c4#IN=zU5WfVY-Gw6kQf6ajrzH{7tmYjG=C=fEi`AHoz2p7WSjP%UOVceuxe${(Y$+aQ zN9-WbrMcycX&XE5(GAp*j%L?MQQ`PGczNH@4PtC<43YqXzwgs!v;X<7>===Gi=x>h zh(MGSr=#swhOOyMQp2P)$m%zz8D+9e2z63v8tAOB@sUG&|J&bdv~pMLVs|cTKnWYi z#-s>?9`!tRB`|#}qar<$e)4B+ocQaBtgN#G0l_b5FT4d}QbqdxsXF+-td&)|j@4B@ z$hGb;)^gl74;*G#(J}E0)w2}2sl3N!w%X}A8m90y6S{jCzS~M}E@!%~(~N~LPu*Qw z4RxEnUiJjHqlH{-yd&k-ggbXZm&W(!S=|Lrc8-YyAjXw3Qy`*%ob7FU8t$@4HU9qn zcJ3bS=lq+RJ#2P3HfLP~l=txpd%wbOWUKVF4hi_ZxJ{8L={yONSW@1U+nm#XA$1g( zt_`}(TiW%~9nb)kh~K$X*b|AU z^`s#OSbyMs(;~&2Y8}xlCnM2NYtJ&dMu8iXGj{dNjXuCkYVF0o6uG`kP)T*^SAm*`8T6F^Iqr3f=?@H2XX+(yPp!7vOeGKxkSU7ToSYqb% zPzQ1r(Ol!iMRO{p_)oHK7%S?O@Wy^>Ze(8lvM_sOCq9e8rYAP@h>cT0$)T#<7X}Lp z<`2zI9qio#^iZPA+D21?ojsPDk_mO95e?Cxk&rvp~^`dprqBdLO6Io2eis6sc7I|?f0i?zGV z8rq*<9oS^k>AGG(^)5U=$WzQDcGWMe^d)NJDYd>D z!Ng0iFK6R9rN(5{q!*y4#A25h1RR%C6h1(&0q|y73zs=P(kukTqsX@#U%nxjk;BQF z!N}L*Rkjnh4hK+cYof1>00$V^|rHdi`^R?Wkg^YThou9;A5$) zCl<$`qf?fBpvdU}!{PHLP;3}#-G*QE78ThNpc|t(qBDPvisgfZW?P!e&FTC?@Qy)t z@ZjnZcp=MT?YUo5hlTkxzB@e5V6TPdV;AI==?~gII_OLyLnlr;Iu&QO!Kc47tgW^| zw=NIcJdp>q$J|HZ9o=z~0dnFK@TmqKot>P(<5d0SaCFUhkt0%ZlVBoDdMxj&%kRIe zq~n(88j<=CE}Qi1IVj_uWqGMJ{_NQ26H;JJwZe;0gCh8v${wosjpT?&-I^d%^A(QJ z((_NH-8-Zl5Zdk0FFYjm;vjW3BWwM5f9Z|hOa?Q0QDN#_LJ8x-W^Lkpz47)~?$Mc& zO;}CpM+3K|v(B*fmxj5@!oq^DacO2OU&YYQZSEGgoLYtt0XRveMU=dH0w{LZUUDDe zg`9!gy)L^&GCyrNJ{e%PCaq$z>X1pzo)h<8iL5{-Rf4n*(?)Kaq_#qa0 zT6)xP$W-PYkTWXhL7_K4fztcY+tG@ zgQM)-_P4Nv$II9ww}$0@=f=IO{>dv`%%2k zipRNwRkmb1zBcpx?Td9xNlA_cZIJY@iWYX4R~{u=HMfT~g^1qBGId2pb2&BcUcBAP zuMBXS7&v0H)!}Y4{Q?iN1XN12&IXH&Z2h9Dwnpu`&zl4axMP@L+i`k*@Qz= z;swpnGerrEZYN+oHqmKAc zl0DK7CG?FfJb||7IVe`4>3z!6nuka0D+r2IPd|AhI+~zMknRZfWU+ z{vmE)Fp9Iu1()TxP>9a{@h>c#F>(uQ%@7;}C)cz>iAUzl_L7gJt-L>iLPA(q;mkE? zs&q8S$Zxw3Mb@F~w9A=T2Qi>kX%8&eDB;#i;(S_|E#=hm(QhLuh}l9>6hKlFv>6YU3}f zHEBj|`JPjfZOH;EP%H*q&tLTE>uoI~C^!o6j0fs;^rWPyG@Ue{$z|l69XB;V0=;VX zsTCdtMX2#a=GidxM5arqOQhX*)0Dux*ri91YUu!3iTk zcVX(ShlJdk30x_+v0oJmSq#xqbkx*?Jg=Yg#yf(q+p1srQUwbo&lpl%x!GguinJJi zb2m52WhKyGh}Vvv$*tf#D#FG?E=x(LpBk;LfKa~yuu8MT^}R2%J{q`mASK&rcrJEb zm_9nq>&NROflHQi0|lmY$)TmYo-R!_eeE2V$>scMay`3+Se4xo7mn-}0g>4rT=4_l zEH$-Y%gfGIJ8UeT3r zCLR}2@twe~HRNCmnuF6mZ~k=9+Id>3GcfAj7E-Ui^h8dH&SS0qZsC4r&oaAvQ@&lU z&*)z16n3YsY~lq9;uLmCmWzQA9Ej_Mx42WI$()LBW7QGG;~3VR0DJG6+EjkaxT4EQ zTOzEIl|blEH(o&uD%g7DsNq-=k0=b zM4m;$t%0Qb6U)0&1r7>aGs_%OyOH})2bd@wgg5+rC#aIYmDyN z6%HSF?b;dX-EwHJv6lw$MYLyR^@hzFQ5+TJ=Qadp%|w}wFD$p? zmsf$R9S$Bm>9^MVOHh12zg@-Uuo|$o>6e<>@Ewcc9gvnN<6f5D4S<~f6jXcdA7^*$bCx&5 z2MO~gR==D3qSRmDqB6|2;#%BssvOp3OD&9=y6Mjj&iwf1)AU=H!+BlDy>@wQZ;t$M zBE9$6MVU5X$c&|~p`Jv;RCpV;oS|H`1oJcDJG?K+P+_yEOI6N4RUT=|H2KAQx7%M+ zE>Q`(AZUfH@kP>Q3|G6$@o{{81&Y4O5ajL4Ct7!y&A+oo;jxGL??g&$uGh`uDEf~( zK5kDT_>#wL$+deJf(A>^uAp+F^V+kgH-U!`fTzhU*3rE$-^B^~bZ?rztn*;vJ?EypfWX}$#j(Aw=l`Uftlw~cF6GIEk2*e9~eRpFs(!!T--eKaom&B z6T#RoYau62n}kAaw;RFjGt}x4$>h9%V_O!w7HJ{I?2{kt%T@a8jVEN1>e53kKYMMw z4}%0rUG#+JUC4)R?q2>80DC2RkSd=j<3vegez@4gi;{NF%&_?W_5IX}jIOcK9iAA+uRjSShNZNd(0+K*cC}jB}NoIhdAq)mIr)Bjt|HtCp6DA9)2^*zTUz9_`8c~1UB|c zJ$svKstvO?E=lY|8=Pl1lSn6Z=E!6xaeZ?Gop?Y0>C9Ui z5&Im$POGMJyRJQFr>ZZ+X0E;CGeMG0@?RVUIr;b6hx%mAA71-2o+Y}G4qIm*5_|k( z1_`oJ*X|PU5dN%lAB>BN8`&E!PW$9BKJhmD;TL-SBpm!9JAGYR)rShELuc5s{)Cs3ao4ie2Z z$NIidn+|e&Y*YP~x%B(%#IC?bM4>d&_L{IE#KJvk@iOzQIlJ?AG!$2K(i+8zfsFE= z7I*0|kq)1}-3rq=O2=wW)A6c>ycs<9s36$?aXmtGn>6Ux<@5eGQ~%aB(!#DKt+K%#vg2=meRDwJvwvh_<$6c1NJf{eJT>d`bhQdyxKF+9Bo5zE_ zhntO{^RXuY0SzzEPyh1O`+cW}_|e6d3}a(5I%HypWa1HKGpp2&;8$s|o}{T+iu5EJ z6P6=rJ@3|WELJi*K8v_13)h&1SuCeaY1aXLlz}-hnKC0H8;-Ijh*~|BC>z(XSh3&n z-i4!OK-MV!c#b~IDTpT|Q_(4Qd5tAtuU9H@xeq-14W2@+%iI}tl7S^9S+qZB5He_K<6-BiWQ%QoNt#3z8^D#i@&) z=-N{En^LOOlGCYKi6)3RV@Z~>z9L5V#*yjrtXuhnsAubfs;~=T6)&Fcn-Ei zBgf3SeXm{Y71v+UUFPru;?zL)cv{B+(p?i%oap`u)iXpvu4h&&@F-2$3ANdfV`*T5 zF8J`l0HVpQOgua5vsE~cKNbTcQU4kBBw}0N_YTR_Q5fySMHu9rho_jBEA2``Mu?s; z=CTJn(el2A34$jAq%lSyDq=<9`Ywe=xRR)mtsW<1Z9<8zi2%1)o@SS+BMTAtNCd=W zY$Mxl^^$}B{gxCT>*OZEU)~aVs?Uu-gJ92bzZk6<9S^0CI&YZI@8Ld3&w1gl2CpYX zJ(VzW^OVV;&;&XUdOM>Or~_66`a=~>S;jJ>u<3nAqkMXKZ&X$aGox8uT|SwntQkC; zoHEs_aPZM(NW0Vs4~{VpC%_jxD@R}^Qb%9EPndcVO471CN9UNP6`>sGb_d_xSb|eC z9gs65DM2>5d5@m1AKy;{H9yvnM_{11ILYzlB5U?ir@o^^9hQm;Zr_<}jPd3g{Vc-l zIt5B}I(*cKA}#p`W$o|a-;`LzCur(%VMa7^!V3<1%$=5M6W6*QDrp9U#7EYH!NMPR z`mxIVEsVSMUNO|n_&AhWG+T8~l{jw0X7{`F5^R`8jH#4r zp*hB4GcvM$gP|C=bIa{};f|EC2%^r8X8^2fQ6eT}0g>P0RyG{rVb1uWX6o}g^!%f` zW;mF57p1`v%KP{c!_6|ADq2()?C4UTVkfXFO{d!&C2JT*Ts>G)z1!Lu4VbnwpN(Z< z`^xUd(Lh3t<-)H0%dP(r{RlOAAY8?+9outj~*OZR~;ej41c$p z+hrK2HO`zE`jxJ4C>||&9DsK0SrCV?hY6LrF2me8ChC-E(kvX+D?`sZ>0$&-=z-74 z2f$F6p`ni*?tD^QAqG}-qV2gcI*SASg@wkljBF~uUx%;nz~rUKL8}2{$ExJCAC&E( zIjPsWu475GG#T9YWCIaOZ9rW7y`xm_;c!&QZ0Yjxz%mmYAaY!S8lUT^+{x`s;xcvuqATVIB)0lO!HKrdS=8$H&Ck zkW$5Y4>RWH`HHh0Enau7IdV_i@fr{Zc8dgA|S8bF(=;e9qT@J4O74zeVh)yjniNNf+obArWdJpN$*e(ZIq9 zAODjOp{dKisM;DjV8rNSi9DXKAX|5t$sr!SLP(t^X29kYX?goc6o4lvM-qFhnMPiou0tpg!SpK4z`BrvQVR`!R zw{#uB@sUrKfX^rSZR*!5ewY9J(vM0#pI~6Hgs0Iuqv#JtpKxDiEX8s~8kFm0AV9zA z2|i&9uxAr#zj?oEGL!pe;Sg@WwlYL;@0u)&tP7wDr~akCz1)!ruAUfpeR9++j<_Nz*%m>^I&SaP{mHsy@ig z)iZfF4lh`X(J`|_>LT#lW)8lbArxePtnzJnf$59fVS+6yr~R304x9+1_4n1YbMIKu z`p8Av8r^rai8H7dCn&T8ME*rfFJy*{?GK(?zUZ|Z3eXyZWPm6iZ*TWD90(${xi&uq zBF;R90xHD9H2=r;#fvt%J@4}oj@f$av-+jZ?5kR-7J!AdFP@ex3@YHhJU*V~md-aV z6?oemmD#Hc%3?~QN|CC{ekLTmSZ{mrrUp4^>1yuDjElAud>v+FK@*tlcS#vMDSNxR zQ@G~X=*Dk6@^7 zXn?Cd*qKO#hL)x%OQ23!7#yOIzm_f;(l!js2Ucz`=8hc#r1}}F7ET9%DSi81)_1mB z2&qH|OvryJ$_d<^6s!rND&`N@bZ__s`ETK+#~F%(*gBi{{q$R|qGeMTXKBQ#)nr9; z28X05dWu=1ZG6DlJ4Nf#`t;=$m3dKVW$;#~ZL!hXNDpSbMI(UB(R zyS@0>M`Z#9C8~Lsm+?i5=&Q}QphR{4?8yo?E~CB8tHy|1LyNiIEZa6Zx;?>uF+hhp zTkG7HDVt^_vZwo6=Ke15I{E%bQOaD-m*L(s3}A#Gt+4Z*GM;gomfndag+wc|RtUAi zQe06tDGr?P~a+^qu*X2x?_ax$4`eiOszJ_XVO-RVlQQ2}R8CI?6?5jZ;#C zVP*n?tvA(3`-?aF>m#j#1o-MDnv2yd95-F|zb5v70pU&=&OvY^BlG1-@UJii2S-Dr zu)mO~seK%03zK0pzgN9*H8gec%SFBI^%>OE9@-t${Pn5HjR^8dhRPpuDM|R*p3;`K zv-74T&+zipH?jGn;?g@U#`f%@C0gG9RP7Z*(IqHl4?LiyN0D|App&pmXP9;ZkB}0g zc{+qfQ}M^yV|W;I!2HpPyav)M7NMcuCnx)tpx`6^sW1DI4N_=J&)yr3x=WDNHucWL z<6is~`u|sNOfFN;3`Ev>~5AIG6_*M*~Hs#*)@l#ld&8_2O=8n3* zi6O81-l}_TTU6-~UAx;887bJPK?P?^{waVx`^iJFTI zsg<_gX*{hcTGJ^Jh<_HXmzLUM0FNh*vuM+-ZMYFL=a$AYyXSd35-Id_bFDVi(qB4< zBP}iu(A%TGMkB{6#oYx>PHnWLd(g_3b^`Z>gIhWLLzrC4`;8iE(+JHg;K{cA7V6e| zE`aAI=%kxXe-WA(%-(mV3=~xsgGqmqQ)!Ovc~(8ft>M}n*c6QMj}w%RaD7eh+C4hJ zbN31Rq_tJ`t_)6gps+kyiK-L^25Swd{1*NFsU;zhmGjxJ$AQC{d_uWCQE zOZNa-YG)URb-0KlQZ2~L_SLSV&}TVj=HA8kRcGA=}-AH-{yu7@0Y=P zcR3hn{hZQ!08e`q*jw9&7znrFYMvpJs`-wVRg8-L0+(?0ft~)kJ%0VMsy;tek|k(y z_It=Gges06NX&tws#|L>DBJM;KCm++R?n>C&tdg=CV73@zK*-U@x15*Sitg#6K(I+ zoIb$FQk|AIvwdH`h2fh9>ao>Xe!otLBASK0cUlNYhg!pUY{2w=>z#?Yqb>BvqM+B+ zmgCq8>u>@Mu`G9fxBI+^Dh^rYv^aNsGoavrT3xvhGl9~d^YpK+#WP0c@_nmIQ{`Xe z1+UdG#{TE}R=>de4P51GfsuzOAG34gzQmW}P*3^s^nzwXvVU z{=uiQbN^5(EYbqYJ(*j+n*Ggd%||ov13o5Xy)Ad5Cx{bS_2AF46=@9*lk?uS`MGf$ zmS1A=%qi!0(74!PjLORJd8WVYHy`A1`Tcw&1Sfn-{B`-TvbPD#?+ZkPgg3Bf5pk`{!p&i zT?nRRS%&-Ma7C&(TKanv51;D=>9h}GbY+wrQhTWBuZD&}&%Au3Sy!G_YH8rJYVy8O z!a)lXWVt;Q)chMFnHrTg#pFarD>v&K-*^XQM$=#SrgiQ8;%3x(Kv;0YKk}ZF>wx0t!wG1D-*yOW=FoI4X zgJWpGlxRn+@!-qmj?8Ie3_T?`7xxg+`8!!!vmZd3(eAtrf~0k*U8h4RbvAfbDY_BO zP|CvG+m?Z$Lmh1z(O~o5b>(mU;#~J|ib`I|)%mJ_oOokWaZoKHP5Ij?Z)e~0Hh+;7 z{BnD+oB%64!5sGpMya3QNB1SMd6MQt-ZVvu4Z9FMFUm%FAA0TD`l}`3>YXLH*YEZ? znB?C6gP$SWPiVr98Rt6w(d9;wIa8vqYR)E$o-2y12xlGpn^iQLqZ9yoj`IPh32 zvY~gnE?%;7xW`5@tRB_De1js~yIr?tjw`em=pov8WS>dFP|5}}Hg-AXe^;WZDsUrf zP~*g=4U8Zwvu@91vTunqpSZ~WLu59w(#_)?KvDiHgxAfeWaR0@y|%SDEa^4VS-^5%69Iuj0(eTEtxqD zw~vpJ2;Rrrg)0x;wUBawI1hf3y!CRQSdaEk*NxL?iGovH%>2Hi9_ATk0uFZhs%rrO z&r$R;dV{^Cr_nTNgtydkl-rf9TT!~wSIH%OxzK%T;}}DEF|%sTb5-_~gdQ~W9ucl| zS4~K`R0~s)L*upS8L*?Fm3$yW{RJ_v_QD^y&K`KT7AsH%jj$Dpv{dDTAPp8skueNDx<$VRGF)!SBwUXzW7wR z>O2~Y*+{s28H{r%7Z@hJ>p%p->xP z#)z(|X!xRp@n@cec;@UO$C7qgIwM?LXrA4s0T+$VH@+0gDSwCESNy`}-0b7*^M3>A zeC_OI4Vi{ybAi@ABMQmJ&EO*IJp`?T2>BB|aA|f4Ax332CjPeE5;a<@lyGGsR!@hN zkv?ZBG$**ETmVw28dfNVQ<27E+|d`$XRsB6gB@x2bU_uz#12S9U7oQu!#XJmz85;<+nSo8Akm|8d+ z4*>?96d)Y)CWs!ERIL2XtUX0m{o=?ovK+|b>wK8ZsC(b6PGGMk8}M_~M0n98+zK;k zJepQB*&t%wC8Y`|Mr(WsMjCw{7uNqeJ^J0)HJ_-TFW9Z$ub-~mTiIHl zC+IdLNQTE^_u>DMH2HyQ1|8>olqTOnWF|>E_7n9R#`o*LzF!Jn@3;#mJzwu;FJChb zvyF~58Es@6SW+{MT>K(qNv?m;4yUH@>GUEOvZ9?@RlHZ1N&yfONGVqP28800c-mwK zh2q#xa-;TWk-b|kc7M6@R>E)K59$j%QYP+R$$xmKrKWc|$#zj5RqkE@+imU=JT0#< z5|QR*fUD9;KgKmC1It&hdDI5NH58g|hTvl{`kWABvnes=2ZMsNUI2whCB=i4P(sSZ zOFUaSBaC9JTVp+U$``Uy!Z8%IiC%=2lq35WIG)1Zq`iicub zU2Ol5xy+GUB2q`HjYKA}8D+zQRK?s8@Ae}CY?FrZC?fZ*VJu9dXa>S-H7Dk8(^UM3 zDENCdwInJ5*UveScTlu1Y=i~@MV-iM>W=IA)38#p*QL0}L4GV=L0*~BnFg9x_7waf zl*5v-k%kPuD1C8w*QHialMI{HTksc+uwxF2aM%bXSf~SUA??JBt;yKvo0^a!xk32k0bT@e}luT83TJ+ zFLyn7J)Hgu_>iomZy)KPOctzyM#ol6@p*Fsw@86(e9lT7d z61gIwR8goN483vl#J(QcEsuA+V8k_lF)Q_4805^RMRSc2#|@C_Jn|(>XdHNfqu_K> zI2mCyYT|PJ<1B_y>jUhKgE(8d;$@?SnkbN%uEWr)h73>Cq?HL8COG%Dxbw!=K?}K9ia?XYo3} zyZ4R4AW$iaq%NV^n@c!TK^)KKC3szgRvJsZBEKnzaR%#?q8{at;8PtuGPAuR#}y<^ zNQQ?sL!>dSo}E5{pBi0{9!BV`Y~WrNQcTN7EsC(jk`{S}Q8vs1+_>2sBkzkDZ0y$L z_hx3a(T>bw+(Yy!QP+nc(%sROC@>88<%9%505j{ubdy;LE-t~o1z=$_=e`7T!O}(z zk_=pJZSif1!9uYE1H%5-jbz*$-f5vFbn>s(5{?YGy98%vO{p#~*jVAFxIN?K70LEo zJl>IApi_iw9du#3-P} zE@ry}kNw?WR{M#l>fGCivkI9keGa(cZZ)#GpdA--TuUiC6KfSJm|%lEG|kDRR<~U> z6X9;idwr;R4FzXahp{v?tX@>D^jE?UFQD2Dk72;n&loPUTBXy>Z{*UNv21?M= z^a@uaU8VS=lUH5Al{F+v5rNWrbqT*U`g5TyLLohl&!WR9+;6@gs`JGLMu^+W!F<7- zkUKl<+Cdd#m6+3!@U04t-`tKGCOi6V89~m(TM^~};n&=UC&ILga91TTA2x`4DA7x` zw0O(4dZHb}&&*?`JSU-TQ3`iG(VRJ5iM2FU6P?b`USyXTp!Gwd*O!fIHOvxTu9|Y^ z7i`v4y2Sun!O^6g5>aOy5QHm$?Vr@5$=Ryy_7&+j6EAY?4hcZs>1d}GJCl)oIoJ?WMFgJOG=ibiV&AINV1d@}DTO`-zbJUbO^3UE9eN%Nij;u#* zF(SNfuIBW#+j1qHw)Lqt$0EGHv6KRyDx*iL=+pvVBpDvvHiDG+Cz&XrJ)K5p>w>MP zFi;r6)NKaynWu$Vlt=G+yzi1q>O^(msBz`4DRq}cSZ00}@^oc43-PGDHnkQ*Y??l+ zn>s|`r~5^>Ep#Vw3ib`WFq-&=J1>6)k*)VZDCrJTpq1p4RH=&J?982}F~)yBGK}@F zg25PBtok7miPPXwbx`1uCNR`m@TYO-okmXY_3q|0bJ3kzr+4ul<7WuG zlJj=-cl-{wOtlypG^i`k(<{l#dTP4cPt@B#8#+ys^rvn5zght4)3wD{HSNC|mwkAH z@8KlHscx6}<^Wp0j@{^GRF@)6=KAft1PxU$7tM~5Sd+pU7*0`={ljNA- z$>9aN3T;&Jf$eL(I|{s1@sY<^#Wg1L>4iVU27mR_($amsjm9Tr-TeCSx)onp+m0kc zu+@%2(xF^4d&}327p?WIv$Um_tzgpJz9R@b`e;v?E4>u4!?9h726uRQ&M*wn;>)4x z%!?U6SZ&~>8?6phPGf7FRI^!ulG$oQ%lxj!M-}_7B@cjCk1y6x;Vr$aVc0EI5l!UF zPRZ?ZvVt4bF@FT!DWq59gN`O%ul+Pf9%Z*BhhB7&CxgetH8C@!8ch^}D+|wmVt_4& zFRM`&b4dI{7hC~40^rEgl5C`DqH>)dT@`O;?LVdb@SBkNgiJSoE9)R!Ur-=B&oeaU zqNpkNa@4XK>`Sa0@zi z5{t&LVt%Zy1-ou{rDKS%+TK@RvQpNlzY5H4-BRE!R<&GorlVUF9RQaQOh_!70jM?j z9ZNo`oX0O#ENp1ONev1PG@jVCrJ1S5{cbMwZj%PjPh3q0oGyve5;WeOt+sjfA3Bn^ zsQ;S%PKzL*-Vin((heYOsi z@wWGHz(ZYcm{Jxft(*H$2HacF)8SiSIvqQ>;h&G&{eW9-K5=-texVu7&M8~X2H>Vd z2Z-HkyU5qhWu04iB6K@_`QkQO!6uz2h6GhSIAk0uaS$g?yv!iNz|Cz!225!Ba}&DD5%i6)2y_I2r_llY?kyAgbfY|ats z2+!4G)8Dki%RpCxUjrF5pwsS3LeoHrV;g2~V}w@1Ha!kZ15uV_CrfZ4n z54@=ZSAc!8Q`HvowYoE^Q10CkyG?)c9U_@xTcGv@Gybh9iR?(!;s8j~Z)8 z(1LVsuBS_%lM5jV9!b`hr1v^mPcnd#Ah_e*whheZ1>W^Cd1?i`vK6`1`3Zrvz6oT|67ja$m?|n<_IFT;_Cb2K)MZ{@1nc?OooFkUzojSRk9{RN&dzo6 zr`WqeySuzItKLdwEHXoA+lZYIlirvc-iSk817doc!3BT~E<~%=?d^5K&aa{|SJbI> z=m5yAfXD4r9(@D6IVd!8*BdF0dW-+{d1s9Ugl!ES=_qq;ZEXg((@EY>;H4$uqy!q!-&f7iRUOy%%^lYq zD|MV%+s+JrZSBd(8hPN?)*Dt|T24w(68+LbD{Ezia-fw_6-W>c*g>K9`1%7#PRBzdj~}4wh6@2rHn;W^#*`=6qXiV1y5_B@3tPp1Whc zzo))fYJgWyVu0NdA<_LGnCt5e5HlhoNEixWzUpyJ(;(H8sx48!L`T}pX!G(&IWH93 zhaVaqV%&EZa{t#Pn4sGF$hVBsFMXJ=@|%|zcN|4{sv3XbscGpze@;YXRLu5tQutKb zzzmWF8H##(tNh|ph~WNw{{i^_Q0(!$JxnkOKt^`+%v+jEB*EOGLyi%_#L6lnr38C_ ze=i>2x3xvotYs~8DWom+>`9=aA|UDUU)TFzsW+G-W(@A;6chyY_lrU>==3qdEmZ1G zwm6+);o}3C+CxuU#Kpe~jB}^4YCJtQB92>tSS#rNtiv|PKsa*p*U#}HVq%aU4`=$l zF9nv3{X%i5gR+b)JiRRwvR{>lM;FJ1)zxu7iLRzCd=gY@ia6PL{HovBD+~mRiXf?$ zI2tNd?_D416b$ufyW3yTGDp2YYdUKd)1-CSwqs8CHyweL-y6xl+R#fI^@G z(7XA5IXR)_@QnD_!-na4JvVBU)aX_qWEPw}@qy}Nx7B&web&deu{d(7JA5~HiigJ~ z-0##q;^4T4RW!3)ws;LKK*7%iY&U{lmSXQ07`W#T<;d=RIkud@n2W5Gf zYK6GfPUn^>Vr4+fV{SslAi&$n*u}umAwE&EEv4y`toKZ`$#=`2S(3@S)|85hI(Zua z%fPf>=;pePxtyxuvTS$dMtV1AEjZcPHC=+tPMOZY^E;t;@+SMmILsWJH-5k{oq(*< zHHoyD38g!VxAys47SD^^Sn}aj$ZAvTyEj6nPgXzyR^AJhu1zcEV(Ruh%O=2x_-FTwfs~E#c$N&P8LC6)Q2#w>+<)pRZGYqPvgzmF=h&5jpHK!*lyVO z&;7ntH1fnIjuArZPY6m%L|a#y(TBoJ&gkye!>rw-9yiua_Kx;_rozLA+m}7NjY-*> z!P}{E4)%Z6pegwDgxLWPQhRaQDbv1L+QES(o!!dVYtnt;vAn3!1r{D2-XiH&zQ%-u zDd(V4>%WMDjk}k{{*Wml-!>O;HgPBf`H}^j}``6*|)r^Cb*V(hw9?8q^upomU9h{wgE6yJo zncY&tMqqlQqocP|s_?qp_;eQ7E(#UX@@(!nBbuS{2BnmmAmkXkGp!J9b$7iyt=^R^ zWgB$rxnp;9&UBJ5xngmb|l`|Pb; zGBb8#F5WiHW+tykf)HH`K3O{(Pvx2#o%u>DbX7f2{<$7prvSsO88IhCfci)AuM-U} z9>%`ha^{YdA{*N>eAX=+EmM>Tf+8P^Dx!)coe4cK)Tw1>0jF_1ne<1Pq+?5&f)` zhcQYw9MuH?)N0!B$`@W@|FlTC3evysww3`#M1nN(5y4XPbPnFt*>OE2s~l&<+uHiY zzaMgkadhSpIp6d?b?pp*F&|?@I`TvsY8^!1GPoQzPX?oCR0oF%D+v$?Kl14f!n%a+u9lKJ+=^$q2m{sJDW_#MWcL zC49}{f%B!-<8O=Gl#@Z2{SXBcCG+Fx`1@`uYxiHw-i~{>eF)0eD!eb11F3dthg7@5 z+FIV0Yg}6T%lr9+Ozy5nS^PZy<AV|aO$ zoZ{A!h5YeE1l9vnTD%?HJLdSfrya6@8&-N^9ARi)TCnIx$NQ_E)a+QZ&WH(lQfSJ^ z!lt=E152|N@Iv7UrmGj8&|=j)SuTo0%FSJ)15TjMcGe3cTO2p= zgl!@YJ4Kd0kh@2KfallH=Ey~~w&&C*M)(dfmUx`JHc4D7BZbbkn8_&bOk2X2%Fs3l<0T2agfjA4Oy$*JZ>R4MN`x~HxDWU1#TOf$ObJ_9H5GhSHC2dNtW znsy-)!KFE^U~iHG=m!%iwh6{yV>qvU!4Vj*NuMFG{TtvOX{0 z8mWV9Y`kK}hn-A+atri5ui*{bQu4(?arKfM!RJVBsR4p#0*vrsgBVv8*O!cwP?d^~ zESH3Pc11a6w1x`IpbA4h*wFSLuwO90td#eyxO>SSH!$Fyy1=gq-~5YP4-yh#mdaTJ zd3p1<7J#c3A1sG4kI!#$V1mfF<>(+Md|t7E{-19mJ~3zxEu?y4i`u+Gv*r*KQsPVI z%caS}#r46kZeDq5l_2?U^KW5UD}{Yw_H^r6Kf;H3tv04Sf=X=h%lwED7eL8#8 zr*+VBkv5?+cMp>gaZ8v8{@*TlyLS7boZse;YrRdZZU)ZI+}=*b25u=Ar#sdGt&|TT zABY>MvDj9>uFwXASO{h(`x=l^gA+7q*hQz* zO#B1NOTq)?7NPl?;RB2(g-z_NOG1Ncb0&7Sp0FU^Wuf53SBBW??gp8gmyqTKt*!!7 zEKc9^C0>^!B7siZtPJZ|S~}adPdp`2)b(dq$`SXV8A+R;|Lsv$d#sl44}QBHq z`hz$yz)uYbu6O zT1X7^batQ;|C{mOZPOpRBsLf|6`2YT4mn-DQ$~Ie>?Dv*twE#`e@PddHVAjX&8oP* zD5OXT5Bo0*x|#{hvHpCAu^ZoqjwRQUpvW)5Rmte&b5hDkfaI(eeYnt!~tbDSIk`KMZ+eK&c3=a=eZ)ED| zY4Z-3bg+PdGCi=eUCVpm#?-T+D3BS;Bm)b{Zc+23O=dE%2)6WEgbceP_H_8P(&Z*u zn3yJ(`p}vU_GfvH{=;VZNy~RmQH3d1c$wKNS6(XGxnwP+4y?^K2NpyZGENT8F4N-$ zxtW#vZ#`YQZ)gN--+x1UzkN4?+?rq1Gsj^CH#Pym&Gjo=-2Q$OLOw|2wn2bnI8t>~ z3LRh4v%b!^HjlAi&@l^V?4&F)V6RP&Kjx^F{16K_PjegGGad|0qe+hIeAZ$iJq*u#`q~(aOk1dS|&76Kg~l z|F4Rq+sv^j#w@nvyr%As^gmGY$MD-hsl<~}P*Q%yQK(vgySL9x7Lx=xxVTJkyGqn$ z`#9(bF%yg}DHO|V60=sZbNnp`87BI!IG%zj+%T;K{y$Fjp43yaf`fIQ+Bbtf4=cBa z)R$V1Z=8y2deZ|y$Ixic;L0M4FzrSF%DuV04aGQmR5;59Y4L#Fh<>I_L2u7DsLi#S zuqsVJO>SN*Gr@R(6;EHDQ@$cIDPhJ|*?I*YUR&2GP&lg7PrI6i@|GQVnmYnRQPoa7 zu!$%m{|9spJ@IEeBfdO3_-aFUeb_5ov@CsYIxSv^Q8@dXnrR;?tw_m#Bj|ZT_A%eM zwz=ts_<8H{p&CAa1CSf3i3F&>Eq6Y1oUK)ZiYh!EPwEii!QA@1pZdti$#Lx8)Q3!4 z7o!C1##Sg#TZP05{FHBPj@wAD?5oPJ0wKqZum6kLO{jj-Lxv;Ot`TWA-%>EDaYtVdDrOKDXQy6f)=??Ysz8DPi^Y#fH2_CT43z6-lzGz; z=$FLqTnw;M-;+U&IU(M;CxMaqHw$~t4^cg~ELRIP=H1S!2N`7&j#Jfpwvhz9w!yR9 zPe#j6wLQ`+j+M4W*BLFah{*9w?Yu(V6FWm%a7zjQrkFut?5!9Xf&=Z`{49Yh zfcbB@pj2BgswGBipdbQxZ-#pF6{(#sS44RU4*M~6_vVI`o;*97+u0kel;|*$4?>~; zduGj`3?WA{K9EkAU~{=)yrbQt`Ky?F7{K!OG$^n=G@ZA13*KAQAs&;Gz~`d^#bdh-NLh@hM?g8=~bp_)j#Q7M-!ZuSC2=vme{vam^Ez!hzP`nIYP zwNSHr*`v_EZ}Mg-UjjY6cIEVVptI?Crr>ct``g@{`VRR}YjH?FFfafeA}lQ}t+&b^ zPj_oJ=3S-?12>TbB`W0DXLE5ey&9xmF(aTZdS6^O2MKM8;3e#)2(N(hEp^!uTSBq8 zOudD;o9V|d3Mn*l)9BZ3#%s|4*B=2v;lfjt3B#JKi;(=`ISvt`zoh6jHG9!+R45M1 z(5#Yer-W&8Yf?&LSpX#ZiG`s9dyc6Y`?;me=kUZmrK4L$e&W31UTTI$bYikDP++`u z9N^Qnfbbegnw@WYb~$~@6F(PNPj>m^bIQ{HX!<4VRGV!Q*XHdyAbklOf1#_$avx;k zba$!Ru=JS1DSCQ^dEFg^V{b+E_ZV;a{T9_4&V(YONC)h4pVJFjp zG$lIb_v8whpJqflowYfB^ziDX9FwYo_&j)t9N1J5rtAGVbXud!?brk3C4RO@Qm^NI zH`)?A=ES(YUf*Bfw3v88v#UYmLVLQ|h_RbRzK~6N3n46-CDHWV zz0O(q@Y59DB;pBgeIs;*@*bv`F?8cxZOO1$g|2}+NiPG#o|$==QZk$Y8qM1krOEQG zJV*79`nR2VVr~wKl+hIBOyjv>iRfVk@52dhw5_Wgg<$C@nM^w&L92d{i#|JCQlja3 zGJlSL$X0_bi-x5M7rHzcC+dzP72|Tb;1!F;>vqx}7#K9OvJy=qr%8l)eYg;<1g<|V zt?f}=#sG#}*(3VDFW{6b#ar{cHl;eD6*6m$NqAm&vv*YSNzf5F7)T#>WZo+m)%pe$ z(iD%(uuBHfPzKwtIq2f*Zp{A_%OsSDk0px*K#Ru389~dm@1dQLk8BVjI)l6U{Qarz zl_GWlG}Ls-5NjAP3oSNH6QavUMl==a@qSp>9?axZAXrNzK~GX2N?LBpLHOd^jiv;C z$05#^9HQO578kF%o96#c6)w$LjEraj)=oQy=%^(-E-}X@N$0Zi-;A?O_UKn z@EZZ2e~c7Sz(1l__pRTjhZT+{k>>Mb^OFZo+vN5@MuY?z2M1??6;mrmxqu?|ZzFqO za~yPZfBc%d%jJ7Jtd@8TO-7P%&Vt zWNB6-N4c6(A>4Yp#`f1V07DBiotr#Ti}oy$)LxQeE;hizFmyog@eaz{r9iZ-EF!17 zo!F+HpijAbF=7Q!SAFFZHBa_y@h~xC$>hd%wh@p!}P!4kPf|#-Fg9ONJTvh!ux7$ll|-KyOI}`^mykO< zupd(?n~%9DZby#Z^;Cv@_%$0U9zL?rfOIH!OP7Qn?}WT^^3J;O6x!Ej3X~Sh%x*59 zaQ#Jz1YOlm8Lds@;MvyGlEiqrVknKkpm_J(T-KPBBA26FeVk3Rt2euZRZzqvO?F0( zbN$zpraJalSET~x_11OqQOo$1W0>Q7PA$K0x%iVOLA(N@&N8_?ZcfR7loGS=i9*;5 zKsH9j)S_Y=2(LgUL6N}J#HmV-byq{bZ{i6Y8}g5yyd<{U$K#af`O$lfY-*DL<@sP} z_unRHAE*xN^kYr_#~hn;ZN0qAELrj>a@4PBdRi57ElkWTkBOXfgs}6>nM2~!$bT6c z&r<$sj8dXCR_KnKCTaEjng1b)xI@uL#!-8)W?{#BWs-s#L~!$v&U_k_)<`n^CBcU7@#pvfIvdsF*My-1B&)%ynG z%gW}+cWZ29S*Q$2BgAFts-?p>AuJDjGdnnN(q>_#pBy$dDu0=&ruX5^_j7?gMCbE7 zbD$MXY`Ow9Iu{pv|MnN6#*L{{%R~^eNgE8ATA%C?btozgQxLwkLQ8KmyFjyQHOA^> zMAZ@_d7ws9(;rFh7JU{j?X968xS~NR5Vhd`V_37onzHQA0vreB@6E}@1bG2wtFbQ3VpCMj-e`pz&ZiBzoc{C-s_tYkaQQa;_ZLeb2VQfzt zA|~c)ATG5)k23kNAn*21QtQY>R@UyDE5WMW5f5K)muXh7m%|_OpiteM6zb~%KPH&? zaCLUZ@v@MaGWX~N!@=ucE7ukAf}*fxruv8|6k-VQ% z$;LCDcI3J_Kz?{UtdasCv~vu-dPSr(jOQ%M-KcJIbqVkabPcU3#&USNXK*0OD3o)G z*9duiod8fTlv5|P8_%j?0R52d6VOH--2T-+fvYiEtd5SOJI<09TlcT(s>wv#)zmwb z`>2l^uB?eKv7^;FBzdG7?fWIk54b3&DY_Dd7>6bNOKvMSK$x@zyJlNk*^ww9FuDZ(bvmPcdfm zdBJa<>@Xlv6TZjI>05THtg_Tl7G{Mj)b_Na4mV1M0&Txn(2IvpJF})S_%eaRZUdym zR^ak!i_v}9A9{?r+QBuM{x;kI0nYl4h>DbMAM=Av zI6FQcaCq%YYK$x&a;%h#B~00|oG4_+rqCK;CJv%j(WVf?oL0E9VCJ_vu4`$cDvd0p z8e%R^6CzgKuOMZ?yO>0l>wj99Jyk!--f3lsV%BW?qB-^h=?oy!DzP_c!^3TwDavwb zic2GL;CJr1{=lkG{Bp>L4|%@+-W{79tn8cAKo*vge6vPolT~TJt(U0179U2&K#r+X zZ6}FRn)}xb=GrJ!v2aYQrEkiTfJI3ks23LrX;zFlvyM-^m%#Nn0pd^?SkaZctLWI> z9^KNQeeFIFG1^-P406J~SNykj%eHB>0&#iR0YBioKP$f9Jkf5pB11*KO9e-W#;&Um z=6dSp1;PMU_4#%8$86)Yaz=(D)C*Z4h66)Nj!6jb7?^EnL{uOpRMZx6atbCw%$AfL z(ysZZ)W@+aK_Wbv~1GF>K-F3yc|Z2qYFxW%PW2-E7);rI(<^!FDI)^RPif2mc>3JWoe4_ zP7uuJ#9Fit>KA_v@4@4=o`!<`bvWhrw$Md{HY*7}rBtUo4D(1v;ow=0c7D8~NGOyCILm&WVyQ}df$pdoF?GM*0%H_22>BLCkMaoGt z#t)X!B0PHt+?N{KGrR2q;xBHZD7m3A!keCk(Dg6hD@=2U(i1C|Gkv`wKuGa5BjRlbvlt=nEr0Ii6RX&0^rwXI>EED}${0zDhagEd4q zi%*i(3$Kicdwh;gp+&&k6(XmPbLa%+hui|2mipiM?Q_)0oPG`mms58#I)t`s1SRsQ z!Op4>`6-Xv*MCk8ibD|0c5&MQzv~;&FrMKM3L>GnQI9{j;&2E663W$I1`->a{`2WZ;UZ9+d{dJit zqa0rR&25hp5+4^KCIWA$vvo{B1#?StOFx5q9KejES;u1lDPE@Qj;R(pSk%W!&*@zJ+)b=?PGh)p;=biFRF4W8<^PK?|KSMU~v zAlkBLwjNvk>n~aBQ7&8Og04wfZKDPwq`Ox)a~B3=CO5oTs^2p9sRaz@E+5Y_8!3OT zhv-+GD|V;bWt79wC4;3{2}I^)vOW(HkJcKq)^Twq=AMd^oS2(oa?+smv*F@p*i{SF z)HM!;m_n@0?fodct<|zktaW`45gQrePqnHbexawU(Ko?exB?4s_HEVRYxAIwIq!Oqk)W86iH{(6 zEgbCCBvtvY6Bdz&9b82BurV*rm`%PiJ#?Uv_%23q)i7UMc6{@PCYotj8x9i?xmf$`~`xblXL_zn@^@VFRRF9@kWjTu?AoW!;xT;Uw%FBb+6h! zJNE2?mG01FC}q1}tIITu?kKH7vF;Ns@JhJLy69oHEI+AAc+qW`K4t>iF8PtZr#>Q{7x)*hbfZFE3;o)x3XQ&gYnCRHuhkK`p`Y^RbGK~{xX-ys4 zaifF>gtq+{`bK|8uHM<~(Es=@G4hQ3ak=Q-Q}^JaeH{ySw#~s5 zZuM|Kj*@)}W9W9JERPNi4~K)}b{>)k>NSBC%v}C=XtzqGkejuykLxFt?rY{|Va3Hr zIyv3}ECx>l*|8bo?t}>!i>Cf2pUhJ!_{U4L#0m)nOI~eLaPOXDoFRBJzDq@3@5J@v zE9TXY1NlUv-dgtNn&G4k3LH{;=Yk$DT*C}*#>xKS@7_v=Mh(&yz4LrrMZqyhF|5@c z^iC>BJ0tAPZNtNl1Gc3qZD~?1^4)bt=H)aj!F_q{Odl@=5q%bKp4Zht^ojERuZ%_A zSyQs<(MTPIlsUW0RZ;qi0$S>|ePS?>;$xpf^Q(f}tIN+cP#d3~;msf=Ty=MtFB4CI zv-{&65HEt2&SvxQ`nIpJ?q`|9^qULAfjM#v8~y5DDsX}~tM08(mU_#2+U^F`LV zS;_No{#$$)$i);|r6;5C>i`;`mEZ;sb5Of20_o;Jf`?Mu`wBL_w1zA1)x6ERgq2!O zg+h*$!I_d1Bz5WaD{ds%m z4#byTww7z$M=GtP2v67E+na-%1%w6vh1%fHA3`~?C(Ad5@%tOH@_@y!VxV6bxc3rT z!XNw)Gu2j-8bWBgkLYbf+xcz;dB~5ow^X9O!qLFu;O)O04=(<-y0Vv$vRy+A*(YoJ zmMA|YEF6_ws!ptG55+!DG)z$>YtsBVP0;ZqkLh!B{za0HzB;kM#LjFyUP;?J3JZ$~ zMzwO;*XNW_Y3z^Xm@5j3iNZTA%tf2ivO51tHlF%_f!&@mUaTWQ!7`cvJU$bu)ipTYOUBYdY(fS&D81OXSgyZ_D z)j8@Yr<%_rUgK}mgqPdLAv`HOZhirnw`6GsP5a+XFp_9I)Y!`?q#=r}BuG4zVG=Fq z?zTTvFgUL+PTM{fJpRBZ`&HL+`u(~%U-_w~d2W9|z7I{hnhUHTg6ib59tE*>_KbIv zi>$P~=%Suo@EP1@9rpRLrh2~*r7?H_O`8ZjC;0-x3r-Jx~fDp=QiJc`brj> z#xij8J|wQQ0%vA#nJ~4mBVoQ`3t)y!I-k!9!4xxNlZn-2APoJE$h|rUFJ$RK2I%TA zSM^06ag}*N@OW;?(_G1wyzZYcUR3narBx;l{_ry2xYPW{_8lo|DdsJqxps=qOwZcO z!eqwz(MEgn1a(((8PzGU?up#czQPLehKvn*BvL31x7T>wtIkK}G1py5U{(s~4nbkb z1lX2e*zw%`G`Z{u*yX(io%Gq9YM%b~lN2=!%mIm9Q9Un?!o6o=iQsjiwCBQV zUgde=)Ah7rL{-(vNfo$K(bC#}6E(?^bw9+C^;ZEwnW#TQ0t75BbPWV2)4_H3efp2c z_rHC_CB#&G*_}A+Hl3HZ{Fkdox&p_lK)=P_#q2X<4-?SZVU)uG*t26qWP1s+U9JhO zP?QU(*}v$Vyv-9$ti$l8dZ*bs`g4Ot!w5n4%(4x}$Ovg~PX!9Ue@pi56u4Uy2~)&< zFq$e*Czj@iv-M>1y?xYXXYKdZSgu*8a98{GZi`Hcx!tdQFL6v2SrJj_+E-SKT#VVi zDeZFrNG6S4m^@Tf?muAgvYX>HnB{VV)Q&+`e*9UC*4FrJt7dYJ-m#(3JKiPqr}7@$jpy@y+S|xOAT8#zrj|S3OCz;&<=4a~_q;0*)GevVzKe z^k`L0PafgRj-?d-CHG1ITwTcVv6aw> z@fX>RxnXeBFJ#pY3#VEwDye}8f6-wXfnF=8tUAK@bKG#tJP{_~5Mud$Y|-_gOD7|` zKH`MJ0010AS06H~bK#gNPRVFbqp;!Ts^W{3N?K~8_RSTNQC(s|+UpVbHx=BeULSu# zi-^9USQAH+3Dfra#t6r%ol`U`RbResdNqBNNc|hmUxuHgBVAacvbx6=DCA*?c%kCe z{Y!?@h8t^XufOtVi@Y#A#M6rK_?hKnd^9F@bn4r+%ggfGo{@2hw4ADMy0zJ`jQ1M} zTTzU-*lU{g%6z0`>SK&(YD6;E(;54Njg3B6R`34ryR2?>g^0eS(^mHITv!DtIy3Fmtv>QxXg3afIv->LFm>edQ+xpq^ z<}XznRI71|s4!KW`i8+|?wSSlhk(_wXssT3&pRt@ z5UJh!AX>P3Nbh~*omX3V6?HyYTVL>6xT~HN^qa-j!y13doGrj|`DZ-9{~M+3Fh#;*Y$k%gHFj^6 zyb5*|le9c~m}gFKNpWC1Op=)&iD5c>Az<5`I(xDNUAFWq|Mj`EDVg-Lo*zSdx|9EjHi%XHppE z6ndg~0^~4bD7oa{;<~!0VvOyn2nxRtK-OwIyDu$WG?U{2oMzT5s79|2^XTr|Sz_;* z=Uppr>*s|7@oK~H)Eu%gjciB#DRu^PB!O1~;y|9~BjRV^#NSt7%ok0;R={!zC6^?YV^ro0=Rw#_P71G_Lvk0yX-E&A#C9CoIYsYj9Xr)c~MC>uut_A z%+0IB2N`8$q{BVL_n!D&8%ZLS3TX5D!P;`ND80x^rXt#&`Qh~iK6ptm+s5q(w66ov zzIL%y*J0Uz|J@KlAz~qSL0c>}gjuI%H{JExRB=d44YsU1LL&a1yiA=xhIphS9T6M- z^Y6bdfL#dNB*6}i*EJum4`a)L!Gq_mF%pm@vpCtrp(N|}JCOqA{+E1>@Oq;uwyN z!e7MpOO+iZU*NgQo1SxYSg7X8W3uXOT-$%M452%Ps|08*|75ZD?DQI4p~cLTCc~Is z2(vCfom}SNZLq|>eW{(tol(MmsR-Dgt0z_*9&4#INl=f@#3OZhzex^fi$A7ml=TEC z&hT@&<8X70_rucOE1KIL*Y(pDSuq#5x0}oWnEN$#ZSoZNQJHPxqF38)O8d9gUhXx< z2U2mf-}{(15NHu5UL@i={3jf9%6-u zPQ7x*kwHdq;Z@OFX%#02mZ4Fh^mG-}3;rI88@)8<35$LvbKWjAb2uzd+`*Y;m@g>3 z++m6)4RIL^Ei5(tud+J`zyQWg{s_hNKAy=hdvS!+C4+CmHPBDW13=*4W=LE7DVKs_X$Kg$1FOX+COf?T6e|!g?#%|Spshe(WNse>4Zn$g7!{}Rybx5d_PK+~Nlko%D8h*Rl(Ky$Q zEE%@ZfXUfD_VYCpd(E1m+ZQ&OCP5Zmjan`6?Y=rQWV5|TvfJqL;`d$TcmXUsKBQ4Y zp#H@g*d=07O1gw1dro`59FvkBwR#0ZsTS~NW)p8mXpCaZ1qG@lRwm%t6r=yJn>t{S zQX!=}bpCIVht&mGyN2G|-l-aVIuy9i?R9RwM%Zw(el#7WDLm_rk_}KrB7WG|gp1k1 z4|wpctyGOn3n>tCHrUcHJrf5|SbDQm2sNveAdO*TV>cURxh}HW$rKhsxIA+CF<}gH z0355?-!jfxJ3ClcrDti0CDx^LaC41blpR;3T@vY-H1y`G|32~FriP%BK?nX zQt;G1k_XRXVSf!1HlCEj+uZlsgi*TuGPDR4db#~Dod~6RK#M<&O&dqAKnH67{E<3k zZ@_rp^JriTgsGW!rcOEi4D$BtCfCotZ;6iaYAV~Bx*L6cS7ag4KNQRUsHH^RUcC0w z8JX`f19q-aMyp8x>joDqBqo#NO!jvE+o^c$S9csP*J}=Z_h}7+N!{n)CH$9`zW-=# zaWziP?zMqu!W)ktNo-=q+piEt{lk{2+#*f)TaR2tur!I!Dm$vO=0&71ljLdJ8 zoOs;;qmpv&*JRgkV5Vm}&-2`=dz3lxL~}oR{QSKpOzVm>lAQ!zHg-z@>6g{Dgu`X_ zb@2F(R*MaRnWP3Zr8^YJiMaS?SH@7jscbWXSlx^x-g~)K5)IC!a~>FAJ@$?p*Qh8%k3-*E9`QwwID}Bw{<-_ zy-_OLE5=4?&@`~OPck;mXS{?eLI@Zkvsp+Kz8_a z+WGPrNcaw+`#O-v8EadNkReNn5E9;2xIwnIgx8F;`<{cAY&_D0ma2_Rsof4w$B+~% z!dtx0jBcbMY<;l9{mP>y;*L|C#tv97?4T zl&o@5N!gsg4ZczK>f+wx=+dGadMQ4VWSNx};@Av6HeFM&5m0;#r`s{m|7X|`lH2u2 z4^r0+nA`vn;errlYo8yQ6?t3RSjc2`WNwpROKv-B$NzRtOv{|~%?h;QNf@E95T+@E zIY=Z)DMU;`2p(^3c}z*}@up9>LS*p3?fFZ>uBGRBk%2jN&Sqt^0xW>ovsAF*VR-eM z9$J&<2d53bdvc;DdS_?c`|88=#qTPcI4;m-sk|a^n(9?f->*c{Kpkn$qy@lJ~lpHj+1f$G|8QqhgA$U|& zvo;-H(_^Wv{#D6`xXDw$1+syKi%a%8t|E}y7I4IT?HC+fNYFE`&H7|bR}^KuT*vNq zWbQ0HOp#QlMxXw~j3e6_kZX0lX2|DyPa+_Y(S7Q>A1~oh;y*~O-=y;9&5@;*=761g zuISY{a9?ecW<5J|1~9Slol%5w$PDcrFvx8Cet(*4h7~@-(K#c^pR{jK-Z$my_dy@_ zERuR48Ly4Npi-Hv!x}A%=4x!wTiSm7C47>|O4l}Qalb-(Dygb_QLx%UJGOM8d_#qfk97epxi*Kq{Jq?GV(9O+taAiT( zh_V7d{VGJplOBDwVR}RqMk6si$FR3Wb=Yr=+phU*G(io88@lw5(MnYe$TPiG8)tXd zQ~KLBJ)^$;nv}gcMZ`E>=jw9c2^cH7p&M|Z%7OsN;++~ec7Vm>BQ*I;@VavWYw|P; z^FQgi)auj$G!rbA)qoZmUC%`H?!j|R^4EiQnpN>;1IT~(%z~imv=qZ66ZR69@GqDL> zZ--}P=QcZm(NC1&Mff6{nZYcA!c|W8FJuw%c=%hMUsa?-=lAaBm>N-6viJ!yleY;{ zcKb$LI160V{1Wy^spOmQ7Vs*}l&v3On9O&3nU;COoOEGgP5PRRl;;quWJn zT{PMUi8Zp-`b<59eon%Vk==d($5Zy_EW_fan)CF= zbZ^r5`;#_JqDJcNsDn`yi7HA&%ISm=qqxfK(nag!-Piitw$pMf$kPh9x27u2mdb^& z%}WRKroOVs>O1t|eVur)zW(yPqvFjy1%wQTV7zT9a|0kxTMlzyd2!+Vs7Ew9l5oc* z`;9|{7hX>TD=A7ivGQ{A*W&4*vU15rznQveVN~uARZXDT0%|{PcqEOc(Wu?WBx>gl zq(|p?bVG+`R!j*lRkWN9T7y+9|Liods3-of4q}Zb-+J=+;Iw!<`~c(0aSdMCt&s+M zyl4B5^Ox6?U37A?uyle=5xJYwQJWnL?jeWvRrSo$#fI~kmT{|5i09x3?$uu`-6adz zOfs;5%-1$Xm!w)T`l|C&9}(5pmjnT8PNHBlLk)I>kVwyWUdLXcBmi3TMwE>@MzDS! zH<}SNTyI~Uph}{XqQ`REQ*PKTbdb$utZj*NJAqBpru1x29e>Aze71_kH`x$H8|2v^ zWF;S2=GZ#_kEUx3ucPg{X_LlwV<(MmG`4Nqwi-2d(%4C3+t!I~=fpO@)91au-*c{+ zIrq%$eXqUOUhB0qe1-D1eM-8*F0uR|rRDCzoAvyi8yvjS;sCz7>wy`jJk|eRzWZ&| z^~#V>J4v}#7{5Pa`Y$Le+5^V~wWT_CJhXSmPbsyV-Z+~Cx^PBF&9pWtmiP&6B( zrl?2@c9`Q=dt8u2oy3)M?c7Gl%>ybnU6zroVQedZ<&+dswa;E?-F#QfiGIJ{Dl1#R z$qA_c0_iqdadh9fwjR^C^igd6zQb?du~nFH$)Q{C*eucTSW(FWHkSbXcy4Tv+xXF} zR@8b4*6r``SULG-mJs{`gJxD^tH679;j0B<|BHxsn%xX;ov#T+Ya2Bjf*@ABaQ5G9 z8pKYOEdaA+Do=sRW!QS;KRijaE&<`tP42$x1nS)U!F{ z?_Xwscq%mHSDTx%WeuI^g9~?*%d}y_WDOk5FPZ-VUw1pu6%s0D_gzWW*by;!>63Sk zzxm`*GzI&%EKE(E$*#~5t6#eR*X0-Vh_n3-Hpy(IldfyXt#4|@@*CjVbiu}K42znap;Q8M!*g>r0 zrPI!>!T-GS4r;4N-Y(n}2GtBVRI+aQu?X^lJynqSN(AltDh(xHds5Od)pZIW1{9v3{-4ur`-&0YigR|kK zH+I^RVNOEayj*{$Ru05SBXaSkhwmjYOyjg>hojax9h~m92}KHYzD=eeHkwC(Z5-HS zu>w64L9{aSslPh4sMz723Ww6&7kIgj2@|JqB;cUjB!Mxf7lwA5XK{s|=HU^5cr%k5 z;PbH;@|*586m2%)?L0)-A|*0lF2vS4Gly%~=Hl?q@S&{RPL({x^yZ{BHI2c%)+WQ` zjnmv5avm-ZD?FvONIr)7X<&z?D3ugw&{!gGz=wC?PM$+msyx>gvTUd~_zQ#ws@ z6PN#2=ShXkn#sn~2*AyL&5 zZQbj=c`o zuemwN@~O}3Q?-!15R@TI29^w6iYjeZZqrFQ!W}86_$C9a(Kq;l8Rw{y>O3l0i=y(k zt93X4hBE87)tUzQVKMn!8gA7=@#$kjCjNoiWvYlX(z6F=Wm+2y&&LxeGMY#-*T_i& zsG>gJl6>>u$+B9$f;XjtdRbZd-Fw7ttWEjqbD8M^LlRc;nEEtcTtnA`G*NWfCA80$ zF0W}?{Qb{Q=yGf#AnpHBg1uIlkHcksw8pWPOq5@436aj~e`Z{yLWd~y16=sW!duby zU7+Yb!0KFX?TMR($uV&$c24O=I3uQlXymXHZzCzBIWeXW-q=m09_K)<-VVVr^@_Epn#<>gPZ?N&eiLA zHfG|W~T!_(d_PR{%{R@hbvS4VVEgRHoL@(m+kSfoqgz5{uUh^wsKMSbG_Jh#_h9Jx;F+-A$r&6uzQ@c> z{NZ-Ln9{SQ2sgHZSu+alrkRP=Ez_DN)#G>;E-4wBA?uk*_}W#A#uiOGL9trAps`Fc zQUI{u2i3vMK5(~AEH^PVdxWSoqw1ygaOJR1oPFl?>pa>z2vby%G5Tw*5{wCk>%#2s z(PWmlyRmO_(OqNl$BuHkFFYUDCqx^)Uv949I=pS;nnV5jbb1Fey8C!)QIQ%21_Bqw zJ<47!`#y+TZ}1>7C#9nDjv$uugWkOMX`{2vOvW{oi-m4z{W+f45n_<{ScbXS{h~OA zbS6wjP-oBWDw+BBSJIC790ieW1C&ocmg8_$1-Md2PYl z%USiYm1mSViMFDLLR$`q)av&N%CeM_sKnJ!vDAACWN~D_^eE|7dx`DiM19U-DUHA3 z1Z}YLkpDEdAP?Eu6sdN%{Z1|^)=2>Nqb$)c)_;U~2#A~1M6`hpgfDC+HaF5JW83r{xPE#nvqRkT? z0-k=I(ttBqgM)%QS3bFnt=`rZG#QLJDl2e;1?hrz6ji;F(Um3%EMPpIpj1;vhnsUA zIT79k>6snH`f{Jl9eP=JV&yr{^6auKGrxp+zZ(H)4&$9nBK7eDraj%~FCroRN_g2{^af@)(X6Z;wFii-q%mn3ET20LF$XF3m!ao# z3eYxr#|E^kWCw*GIwrhv#=1YCac0H_WMdQZ@q-YEqJ{V|U*uT*Je$Sk*;f1jAATuX zj`5f-@g@HtTgF7*sp?R_J}IXDCB!$DHq&VUPGvkD@9NAKt>pAP<7IXOv~f8{y8~47 zl&J*zgIW;AY?_|HsXNQBK4-EzAXnMK%)ZzZ_Q>KI*!U8JMc+MXK@o`XCneBQGpP|4 zoX)r5mBb{1>)~ENHg&177;vnVFyz2crkS5#NnmYitOXfbTJW8%Y|_l_Wg|1&C##tP zX>RVFw@g#G8J>1+fYr4pPKkxZ^Ka&l0RVj$*kvrEEK4U^NdPovtYCBx-?he{(nz*}>@LG}ZW1=D0^Gfrj7b8<=-e#2pq7J#C-Vb)*1w)sHY`UI#Dl z2Dxe6U7_@t&IKLZFNm#5-^QD!>EPy=rx6e^(rodOYFm8LYM&a}OcTh`1_7RaY@SI6 z>9L&0Std zye-@*pYKO-Goxbm5;z9BDgX8OB&qkEbB-@{)|%olFt(zNOBZcS7;^yeKbEeZ!S5h4 zEB2)a;7or7g6Rqh&>u`{@7Ar*M&wUVPdg01aWwzsFc&~O|+PX>u^n4IN`*OPaP@{ zE?D7=Zv=`*=8s1|Wg=3bsw-ysX}xE$wkybGds`%p@54hOTp*9GlVqgx zXvoMWPM1M+R^ENnvL~=N(=LpVu1Koq#3ybO#^mDvoZuh8@8_>^4aQ4kCl!Wg+lDmelFiY2Qso zr+z9kG-Z>T{k1{Vn<}+Fi5jT>b&|ibCRT253s$Udq$4$KX?K)6M;>1}56$Wl2LQ}0 zE(=z*3J*|3%R!uolOmN&a`FUhR9?8wS9c3G%1Bi6;83GH+ z{jTRfqboVr{s6V-)gI%!r?n$Q$UjmtN)0j~KVPp%Ot|2;EC@X2Cfhi`1e2=Fo}<_@ z{)$Lx1HgnnaBD%r-U2OT7afibd?ldEf%1#JL6&^#Kh)3kwPi{Jq#vcK`u4%YAY7`} zmxBH_>E$ddTdlxEy#KIXZUoy0PTu%LU0qD_HnTbG==*XA+Vl1Ck$vS9M85cKoAHPJ zG&{oY?a)`${JmwNo|h{x2$0EG<=pxZ8i;?=7{pV z9VKIhqwCHdTd$wv3w*)#0HqDXzp_VPXA`lKh~4DL@^;jh$oe&N3=BLUy3iiI%<9z1=hknAS=Z&5bZkQ1?O#&e6fgw(47 z>{fGIo=!ga&LZe;`;N=8&-Ur-|7>FT)3~_wE`Rf&hK?a1f>ZtWa1r`OYr)e)7ziW` zb*_)A6xts$1=1!yDByl>^z(2DIAu%M*PE1csj-IO^QV=SZBLT7{8_p_B6ljHzoDsb zX(ur4X6k*lgxXq}9a}>~Yj`3#i{|ZXOhZ9rP_H?oo-2jtGb#0YJ-Ykh!^qU-pd zb~UfrM~Cmzj}~AMC*J-FT?UDzHb!NIoJw*15#oFY0WKjHy+kjkph}*=H&GR zQF(q&yYD)t`>t{Tdo7h_od&PFL!nbQXhb1et7h1Bwh!ZJ9k{`I=9V+iDIn~M4i}tiipm3@I7aRh0hd)diJ@)U4)xbhzS%z!ENqw@@@T+tD z3`W|J%X9BPpg5j*r@VJ`##&z-Rq?0L2Fh0UywHd=Qyv%3!Zwd@y$=cU#iE1%_VNk9 zhG^&i$KTfhNvxpa;k|zRwEN$sF`n~X=7`XpI4bR zWbh{(z>K9P^)}i|`D|7mbi51;$?x~Ly~n$WPNdJ|>1RNrZ+CjA&)bmE6_AlYf1Rw0 zbRBf=OQxo#z&l}MiHJ5;EU{Q-eNvkg?tFKo7~^;K1uIOv^!TwmQs>_nPr!;x642i? zl3bp|mRM(Jkglr7>y^?$+T#qK^#|7=&gYY$X71_*YI-kB2_C1ZZ^<8N%u(Y{paaL- zHHYAM?{fNlJiA|NDtHzjZ?h}SxgZBBbDQO_eFNpf_}n$=g8Z6Ba~}OuJ9B++xT>?S z!lqc~6BB=md!<^11eZ$FFxPNM0Y!TKqFBwoao{KHvsbFchpgT=ihAbA{+OqL$x=OgzG7k{Ejfec1r z)It;U#+0?bYbeJiLuJB?XmNgeV9wXqWz=*tQ_I8^wLxOa?c;3fBkJ>d>x1j_?6E6k z%UfVg4HOO`c6u9#hkCwi#XpK+{my8f7=RmnK-t>siVlsjhNv1y8Wa<`=)f1j3iER?+%XA~2poE>D>vzXZS1W7YKw zr-D4e)_D~>-V9zbh2(~1@2P0+za_u>3FyVX7GSD_76(KE-wGWaFwkPJqcvP(MKuSs)2K!Bu4 zvAE6%B@)Q;HuF`b66~N&iej^M*n}Ss4b)S}?4lq9=os5KZ25nHb!0vMo1FXQ036^r zx2*x~&>3q$GEThz-9H3M&jw^a;|TB;duV7B)Cm5UV6al5x9t)wBM#^l7=>h3-WhS}Ysw94CB4XldrnGY;*e-M134a%96-?I4L`n-$rcPNy*CF^|L+y;D zP^(T&SzQuEn#2}@hjJrx&ELyiKQcvIr1QJq;n@Ew{(DaR;GlZXGjj$W;{a*ifQ z5+?(fi%hG?*{ItBEmxD2MPu|L99>JJ3|G;eak{;nGixor1Qe7MkSUQ*B9i}+w;V9r z%}k^7Y3N$J+Gb9zG96V%uzERB-8#W6p`!<^w&<)c*!)jS_~c*RV3e6ZOo~5;Si4@( zt){Xwq$?nC^ttF&x5Ha#YM+ZeyQG~1klh7FplW2nEFH9D;>L}nK}!)qOKt^baX<|W zHRdGw^6(f2-D;YW>V)pXNW+GSYI<`(tvs_EEpEuIMNz2Q+Mq&?d{1Z&wiAi*(DsdROuZ;676P}zfDwRLf#ZRbJJD?*}lJtW) zr^5KJY4e(Vc{-bP;-C4JWo)}=nV zKM=vpzr|~95-MyA*JeHARfs4hiCB`gUWP&C#KUCy4z6#Ero}AW%j(FDt`qY@UaA6L zrJuCBkB1D9~$0xECY|W`nDu*;n_|mC9t+ zRPV(g`!RIxUabLXX(bVC&BT*l?j1&9MSDrhK zW#UKN#)^X!Vf8b(;SgX`g4b&v$p8DKE&!l^QA3w9%aw9Vjyeb%YPf9&?U-Bsy(p7X z&G#y-i-YxL22NEBcvA?+J+5qtTFNZ!OwOzt{U}zqTrA0~Os+Z|rxFsUe7Kv8eyx-2 zGbo~pj%jRahN`L)5j9L4PdBe2w?w7pB8O-$QA`6bN;80_c{omyV57Wn8u^IR7Cv`w zaQX9(Eq<4md$DbSuD>qL0;en6xKG{CnN9ZS!PjrfyT`sLJ`oc_4ItKdVLe+)9S+8Z z*b-ga8ZKuIo5(=799$+mCK2CLs=~jIhdl}*UTVC_wW`u&CuvyJ|>o!GewJ;Poswr_ zRa~ObAc({FBy7hmOrMe>r9zGyJ141Kkov3>4X%Y zx4jys`)m41{sMzCqX~Pnry^aX%^-y8V5yYIFF7(BYRCpwFNZus&Uc^BQnv^9*3r{# z6*4@;?8x`096rr2Uug z>T3*@EPYch*ppMLPWPR-e)SR|4two&1j{SQEx!R%X%YQo599SvdjGW~`!-e;#(zWS z$Z!50aPKB5fDpO*-<$jkdfQJLzW*=Kt+Stg8A{i@8+sG8k`Oz3E7*zHU0_vuontpQ zH}CYJ{{s}@`hP%-Ub6h|3}5Wf1@w@&|K|b_&pQ6s`*e`^G5p%%9S?hI_dqN;%O^d2 zzou46h8?R{>=AkYWHu#tH5o2yXWz=7p;RlB=X7e&l*Dj-c#0*VqpwzlO1OJR!@$Vz zbKewWUUo_{_bAxX*%3~Oj!!oe^@=C=P!x$&F7K)Xzv5hzEu*%|3< z>H5(R)w)+PW^gc7=Omi`u~_1WBm1tO8+dl3nxJW$#gd@dAi9~>Au;iSS3yDticLNj zHoqm|%_>FmZ4>|{AcS*H5PndkNnd4RS^i|W^-jO@ULpZoA7Dz5VZUfb`riGno)Gh*lLdE%xuVz9867kfW^5%r#qxjr^>1bU0= z=kWM&j4xTVS7;BO!t|q*oGJ{|+^?f4wOd@?VC{8()cUH^YP*vfB* zySpO;118HElYoP#$=)xkyzWg;7r^NLgYE5XvtmlrD7vNP`Nf|Z z+Qy3xXbwGhCXj2I@`Lw=@|F1`f35grQ|5^MlbFj@N-67NSznK=u9=wP_pKTvJhL)Q z8+TDLa2El3N>+?nAjd^(%01;DZe zypEk$Q`4^e@ON1&-unTttyd`q{}+8ilSc|9b0mbiBc$4bnf>)AW=&j1s~lbm#p^oC z*#Q+bmjY0m6dHF5lpf;9I^;0EU9}pVtfDJ!nAtE54jyoh54t+p`0YrDX#K)wQG`^6 zl&uuZCv~(!;8!7IPUD@E#4jP)aa>?1kCGIvuOS~vlFdvAnY!HVnWT8p=F8=N8dB%D z-SX>9(W^kwH zT&boE#~IEtWtZLi@u9YH?ePaxjbIrAawlVaVdLmTyLhPQ=M9K!0$W5K+-FDI96Wd0 zlgB+$2p1(sQ3{!{++LpuS=yB$U+u_$lEQX#+u{8Lj>?5H{V#AmZh`);Oyz(#X}yl5 zIwwDO7@ieyCx(KzEJz{fwW-Ud8@i8}gAPRiLprZ}VpN5o>s14H%cD4wuF`H+6G40K zd2k2R$uVDPr4i!NJyZ|Fx^@>mvUW6Fgx}$82FvR^SQv@eh}!m6Q70W(~{K`5K&Gp zV_ct+^LhUx^e~e5y%U_5Wjill&^ic;vKb|5l^bp4>zeSrpN{6(E#c=<_u=fo?zu|v zzj*Ic%szn4De1^Ky&)>^julZcy@hI)0WmEtTkpWt{U>s(D(|n)@pC1wRgidS5EKW> z%^1-r?}q}e274ACC3{_!TvcpC>qbiu53shjZXpZM||DkWI~S*?c;+t0_NX8 zf589>$s)#-#NFHX01q*p{7u8z2w42NH-Zwj&FJhEXnLYgmL-B0Zz zzV6?m%%aQZf*M%u3Xcz6GvrGc@$LFPpj@t3|6S(6+5pM{X=je0r_(&Ssa79XS-loH zet&q*!p6cCLQzbItuZYmm7 z@$qxW!fn(r(!rhU!BzGt+yXG1unD&tkHT~d64Hx3VlADmo>7GhBKJ?nDc4zLSl>Ui z{S*|2zeCjj7j6x%p@#l06M%+g6Nh<%CQMTjy5rW zD!E>uSlFmYofw5aXrQJix|G>tV{V(DoV ziJm!wzLqiPaKBY@GM4;@nbe)G_I_XTH?fkN+=cHQ{Nu;BiJ7f+Et!$?2M5n3OLHqN zcx2Y0fmEE=BZ#bxBZD-OdOrE#@o>T&jxGsOjbqEvo^sg)=4PdUGnw@9CCt{@W)Twg zk|Y|Z`&lyJq#Pr!YL8G)>60TgNoZ>wxqP`Q*T)>;ZDjvtotB!?G^Z1rpnG{NB|F5m z1;!>PUu^$gPXWgBTK`-oH{ZmxO3HXY3}Oz*4!wMyva#(Jo4gy$K_&_BCU?q z;^!Lr(Fz+RA4>n_0tcRLoDl7sEviCby}Nx8Ux9mBP5ON!f&yP zIi2k?RV-WCT!4ug%e7390eL}GLS*pyc}#weNe=cr2v#W|c_g-!F}9RqrA%(F$%Q}V^nK+x*|1pS6Eb@)g~ocxw+ID;1wvi=HOYA1Sn_P@ppT}8HW9~{5lB+#f>{^ zHkXO_C)e!JZ@n(BJ*4EJlLIR)gqCOJ{*8P6i*qZ+$R#=2)YYRvi%=mO;Gt46n{Rp& zjR)t?Mb2(XH%>17*xS2)jsbUd;MqYbh(fv!zYQVy6L}L!QACnx8QD;|JR=_> zuZ<&2f_#kAG~S}8cUpuXj3l2^WL@r9&5KDAwT1o9{)BTRJh|$=YPuyoE#1r+9IBqJ zoX|>P@1CI*NzmMB;i!2X`c#eWk`ruQ;4}B@gF7QffNzTN*N-_%#inH zQdKdd{MiLjF|-B6?_WQ?<)N5RFo#f~>trPUI-gv*($l8%ws(h|^JsbOq#@$?P*;C! zU<@5nlZ6gFedK)yYdYWPDUP|S^o8zoVn+Z|M2KWLiS-r1QMOw20-S|LV#lf{o z44D2J22qC2_QKqIgNtkZ!9{DEje#cgub zz+sSuNdRB4^*>+ee_cT3d^{2yuGEEBaJD%4LC;{3q23#Vw8V#)>BuZS2}{eu)vxRP z`nkIZqAOp1c4mwp2&sv{4l>VD%X^J$O&*-YiDn|g%rGms#=(Q5p%5P#t9zq&YnZyU z#87D^xjHN%po{)gz#9;f3l4|);n;dQ%bGge*V*i=iRt(QHG!ytyQ19a=Numijqbt~ zR43jtAq8KC8Lz&%34PG_8y23dk|l@Q-t&R)H$>%Z#m?MWdF>~gw1L}@*M?zm8XUM8 zC(sGMNmQQ(Pxow&9;UJHmBy{9m|*%LG{4M$WfP^qgRU`mPfFPKydt2569l7E6;vY| z3nvSs$m2Vru#Zq-QxN%bd&o5|2fX^W!RjV@e6cRR{Os^pF$WY&h{VR(W|UwUWJ)56 zj!&kG|B6{`XrwVzX@j$ehDFu7wzA-Gx#*Simk4&8t$2Z&ws1BWcTGL3V->V7;z#@! z;Z4i#rYO=zRIxQ>luA`vn0Thb(;(s(=~oGDq1P!>sK)O=iuteIc;wSFy;YEjaEU)K zXEh^MZ#?ohw7+)v`Xr#KE1fMb$!X8`Um5%|FehbtJlT7OFnq3yg9y~h>znd-iXJWO zO_aAG;j8Vra|tc-_|i}Jg`d|dzF97YIb#t7i%@1%&FS^bt-bqSO*_TWqV#?^UWI)I zOn;Dkp5%P8D?UcdZo5c5Z7?Hh=C;yA{hpkeyVb#?zM4myIC2fljsZiEB{0$pzfdC# zo20#3453|X7WoZ{o}RwW=}SK=i6M%PEczwPiN(Bvs?OLsDfN-9rf6lR8^#`0E?K1I?>PH$zVXX!y~=9a7Ly_~D-X$&&^%*FAlZ+9$O0)Z2N zXGPa+#kV1gE`n*U{I(&WGl&9L>+a5y8oCP@fFpA@U6+IDGmMai>$tr@_aq&;aP^xv z%C5LDm>XIM!WYz-G>s%P(sVcnAa8xnK=3rX)OAT3Ff*h~8YX4F`$?);Q@Z8<%_dg&ty+O`#t~B| zj{-%!a(;h0SaOUB8 zeKz;BDo6wYe4GT?Y1ft7#M#tkqYss6`*GXpx5+HIi-?dQQhr_nT^W(o6Sy4cx)|An z^-l*s5-0RQhO5wxMj=8IU?N6}40R@PQmRZYXoE$_u&pTYS%ZVH^xcsTJ%XhQc`9s< zE$Bjmlv)UzJ_|kd>if>^YLnF^DVQxjPslq6Q#GE$6jldh0#BPrRL@Pf0-qPa3vDP4 z>l~RPv7Q4lO!d|P+Mu*&=S<0ckFH0!2JUaDq`>D3>+1STjt_DE_L6(z2SZRQx1Pc| z7Q%pezBrqO;T3t@EXf+a9NO!CXJC$=X+M!wv#|9NIJ$e;@OWQWUdAOka%9q{xX`{(V;yBuQ5D+D4exFhrMK`~GCVAQ@cL|q7-3dMFgbV(;U1czIoaD&8 zB_MZTMnpoi>&EcOgXz=ls_3+#vsk+AW3QYL3^cRO>A(MITEAETcNv|Vq|x1oQj@~Q zbaz3JP6)p2Oc9nG0CwKmn&&KqPrZKB#rK@hx{;*Y_>5dWb8_0h=QNitrz}|RSv_Kx1 zmmsy|@m$_LrM!0j4}SXkRK{brAT3cge!J*5*}&6pUTiXbWvl5yC6GTv7;l?`gZ~Gs zUwalo1&+1VTTXC#9*@^Qo-)0-%e|lj^}ZVaCDVW4_1t&}ahu=lrWF-#^hTJ$K7H}M z9{)RcWH?FD>dk9%o1QT}%a{@Q=QLV*`s28z=`m=mY>4@GJ{pNx^%TcUWmHv~mndU_ zR58-BY~kc2XF&xs^=6)+NvrbU&hRl&mo`CaeLV+elss}rGx9_jFav48x9wG)L>DSf zr!=@Auyl$M@jTXleil?CL%l$Y@!r1{0=mO@?us-pdamw~#;zYy9Nik_gLvlhQ4YSW z_cNF_vb7$s=aFyE&DCFPIBR=&E@Q4IOTVW$l>@(@^9V?lb$Ee+{p1?d_W_cb+tE(p za-`xNLX~_*j7uOB@qb-4o>){gp(tIz>BQZd6hKTjqOjqd+_3V=|?_pGz^kD9v(m2ppe_WPbJ*@9-!#bxAQ>hs{axjufw8Ft8$UWS;zBL_T~U7n*)osY7&7l zNw1Q?#cVf~li4j?d?o1Ln=`*CLa$PwcX&?fo5}APwAjgG5f_2S%`CxWzl->6VeQj^ zMa0k5s_>1hM9ACucgzFW<;N91y*b{z@(-~?xCYl?>`v}p9;`!@0zE(o{O83dZ{K|g zY#YVQ9EORDLugP~Sm~JED(*TF45zLg_ga6jFDzUuMDYR0)K9-piRJB?P`~H9v!ky8 zrsBgiIzi=SJ-Cy?P~Bn5umkT9B<)7>ShfD#B(35RymW(iwKnVeR_ zw=6S{rFTCf_pxh!C!f4rQ~UmzkuxK z@qmWRO}#W%rd9IjFHtsK6aH$JRgV6ZaGZ<`{7ifaB~?6hX3b5`?EH3`9t;1kvM84J z4$f~Q&{||dk)M;d+2im|hK7NBr#VE2ZMV^i!b=|aCH)e0LC?LK^t62s2m~Jwpw{yZ zPCG|Pi=S`IT!E<)izUU_*R{4cni%hwSwUE{-?BUpB-KtUFux?I&I(F+LYV|62|p*W z1(DXV^?$+y!yIw>xmjc$SB$mA^=S)mfl{$kg3l(=A`XdxnkR6Xv81Zx_ym4WNu)4N z2p9@I!9;lfl`P?^&tA#}3ZkmZEuz^RVL&Km=NO(2->^8$+~f2KFZ4)+iRLX;z&FF) zK1tCv65+I8CU)}ra0dm`H4R}x?~OQ6>>KMhZk}L_>RujRJ?d~2iV{?phl=jYWCsSg zQl^hNZGYk3nf}d19_IoQ2@k$6p=OhDXhtqi>hjwEYG>9P=@x-#BH^~3x-QL6C}blD zu}*dVfu&XFf0# zJI*5C&aUs1V>&W%aP|*M&w1c}?RXs$-6h8`VVL4ykafSk;l=(1R@}G_Z>2Ha)fz7F zl;wMN>EQId3XxucYVwut#&w5-#XCg5StpJAK3jW@Ro6TMd^QY`TVfeF$CD%*ckkpPdkI{I6HSjo>Nhy zGX1m|Y3p-PimVQG1EGsLWRy}!jB*3Q8l=O(9P5K}1`ZVYWXV)nuXJ=V%1DWXpW^0! zrUW)dx-O8XY!PNK6|r;Z9NZX%J4}cx6Xc8-YXg?Pn`PN2b7_(V1#FEkZ=+(MH8pXi ztOuc})2q7qZ@Z2`}=~N1Z$i1GX*&XUa1{}-mg20jB8E79>+y?59by{{2BWj%5wmEt3Pc~ zhWtl&aM(jPLA6yGBlPjTU6%AQMcA1DG1FGf3`?^*jAc;Qljf@kSA9;N-EY&L~PXS22dz|ud<9fbliOgWVah*L9=q$5rKF#yeB zR|QoWL!;i?#Mh^qfB!DY#Ff=gcynuFpJbkMx?8$2VS<^M$;mQd(-C7q{pV1)c+p9M z3K0qep(kJOhhpi1x_(RcHc;S&=3}G#Q`szmoPI)hLj$e;AU$+!`UsUJ95uccUcSzJRENTX2=pqI+bWVAnx(*X zZ({PXjk8cD&7kq)Mf~DGtR|J&#@OGqNzvxUs_Y8#nOOPh?S2>dC6i`$wEJ!A!(Hz+ zO#eER>IS#k2AJ`Amt**cBA;r{rHc14f=ri@X_w5HaqY%SNcm>%9l(#Dm5 zVg$dFLFUd3k`@3n@P)=k6SynlpJLG|Bt0MfV-e;V&jW`~2dDb>Y@!10a$=u>2oL!p#x8);voBT3nRTYd= z{w6cG@2-AMB$I@GZul{4?UKpJ8mbMes1BESIn9&FR7xZJT%Jx*nZ&im-hYhE%{7tr0-N9ARlPu9PBy9KYTuE86|UrbEg*;slQY-$Ojr{U}GUPY69IQ((lguRS8 zb+LoqjY^#fl+X@l0h<5j7B#9wdAPJ4?xz1atX%0LN^o&nT%7hdJ^a$l$L9t38A2G# z{S^Co=&#jULpo;O{YIxZE&J7vQra^sDSM|f4QAG4Wv(@RBCj3XHnL8$fWBg6?O*IC z#I-ht&(zv^EAl*%<47^9%WDpEHA;pv_H+}d&9bG7eGq*e{SNLpaV4^kQ`X3*PvPHlEF5GSof;Xtd$SZzyRX>Sd5n3vX;*zNm?BR)NREAR5NR%*)u z(|%yMt@r>QcL@k-0oRDyZVjJF^xFem(Thj>n)6#nEfu|J?~X$*74vSyU!fivI6%oM zZ8B^6s*sJ98w*#KIP^CUKkMIdQ-WmsLg*sv^iXTfLlT3|CZbqV=Qg>$lxR^ezk_)p zI$^V9^)eFz*3OAA9d{K(`iQakn}7A!W+ng%)>n8j;@Dm=#gI2_S-p7OlNAOI9H)`p zayiM!l=I7J0HK&1vVu@@Gx2*2OIth9k>Ak2zg9ktiM`E7V`8TR`8-no^>yZ)p# z)`qE<>zN8cHUM|(v6CPWf@3p@uNm+x8^mjvU)gb9Ctv+qdq?`VTMEgB61e3roX2u? zM4^?{;CZi}cyTD!iIyMPTzGbL$pYQ3T3z?UW{N3B|J2bSz`hEs^3 z*!*FZ)H>{(plZUv5_N+wi>GEM?Qk`Z!A-7$ab`;87)p9OlHJXq9LzbH=|443CvZnq zRn@0=|AN_93j3CSi*=oD7TzGjI;XYCZM+>b(UuYV2HbcfC2vw`~mN5B+_Nz(t`BH7A_5w6s1Wo{n{ z%*In*5~CrCm7=4Lh;2vz-{Ys2BrHvje>0WfC}O3Jq0h)g?L?r=#Yj912xuSMH?o3y z65^=;Q^*Ce4eU>Zl^FfFh-2$=TX}eyF~~j=D*mduw0SOzdeG7?863UE%`Em;XJQeF+5QVAMblH}2ht z1x4uQ_p|w)w7ZD_AIac9@@Jms2w;58Dxj8{gPN|Qh6Y0n--~CXc?yngZ2$LdoOo9> zqoLLyDuX8bAZ;95@;_d_rfIY3m!()0q+>?XlYA*LQeu-se|~SQg)dtYLhb=yXRKu}D<`Ji zcJ4FbhX0ST%}pph+9ka!A787dfKPL>OtlJ(*Ds4K<~JNc0!)TJ&b(irgCzx1z6QLP zG8+U{-(Q_!a{I#gU*-mX{|2SlOV5Kiq{=@8g7Pj@o%D(KtwEQngec+eG zuqw(IYtgyBj^>#MY0$>~(K)k?-Qi?cQQwPib~sX^??GegJv0nK;Qe6*uJRq*FhmR| z!&=ED*dUlTFNHWW`0+t+LbST^?NSc2{#FU27c1xtJA`LPck3s=&$i*mSJz=;gRtoU z7y~cdzA-X_p#S)=#sI2IC1x48w@5gRk!o$jLov_MyzI$NU@++T#V#vR|0EU>fC?og z?iKXHiNOyX;5&Op)$?*`i(>!sc7w`IKrDNy8Ar|VNz}9Vb48rn50lep`;K@4{K~5r z2$l+#0A2u*&Yna!zESa?4BN)`gIwP)@bd$W^kOJ;F1P4>C|$K}-?XQlIJEtW>~s&D zzcio1EH@FXBQ9Tq!XLI)9*F5b;j)Ry55ljQ*nD3(v|^6zRou#we&Q#YN);0`^nQF} z{tk9s3?xY#^X!K_PCli@mKT((H6i51n@#NN=t5UKmIT~|WgcgBq`i1@8=W&v^*o7{q=8RMZz zNF<~b)DD)DIcocN?-hmTBRe|1r#T&bP8eGMRUh1TdEdo!Ukc$&BC;)HHy*9JRyPj% z*D%GN2p8s@zz4!B|Euz&|F+SJy*Aoyk9LZ5euXh9F*LFxFAGPq??%s|`%V&J=d(K-R^R!cORaa-E=o%^JS6VBGoumfw<@vKQ`^O+df62mTEumJbw$;1shw+*PRM zc^y-g#Z#iP&CNnwH}>1>Y=B~zp^0pRSw8MbjZ18EEXkshGQxWyW7yI|Qg=NjQxM4tyi-FNe6xRIKv0O2{8T=Ww|n*6PYA$V<_99xxW*?NfX~ zN~jXlJN?m=ad02sucw9Gamf1Y{6TatR8_7%cF+2yUBlS-18flKxuaQ4d;e}(IA$2C z90#*WC+K!Be01x#JVKR_aL4q7SBk>t1Wt^6wsE!ElOr6Q+Bn;9h8U$!WYT06rwCcu zTcjr2DuaCITu=4++bleOsShIuyh52`gSKa)?3I0Nvd|mR>c4+KLfabNobM(?Yn)&2 zn=@qi6$=u?eSW+7`E)Ke()-PSi*?v*87+cJo21mpzOB=lTz~PY;_ho2c+ju+P)pXtCTM)E8heh=o>H7}F>`j3fA0(M*`^*f4tq5C&Cl;0RyTk?M;oEwAV&lo zSbzvaLsL6(qi^W5^-l>Z`3iO(Klxien?hNqy-A@i$BeK0msxsRNtk`0RoPKV;PCt} zTgxmWem|RMJ+HuLXV{-2UV(x>r;45y7qGI)d|$$p&AXU~tys>|GyC+s<6Rxt*rez8cK84hhNFG$lI++X)F2PEl=prh* zo7OYs&e?Y%=x~anR6WL%!`kh+Y2NI7`MkDBMPkv^E9hEPt?nAJAtSpRc$g)C{uW0w z8UJU|fk8zTbTJrioo;isiQc7nzbf3anQz$FY3G4Li+Uyxxo_sv;^!VhGX2(i(r9bw-|mS@}K_C9N1` zT2W<2jdsw9LOFh!X?t)!%SRwJxmOcP8#Z2W7#_T=nceiKXRBI4`$~Yhw z=13=9%!+U$Xw~jMr2>;$O%=bxKgrZ7{-(;sia9w~zbPk$ONY!LjY7X><3%+;gVO7k z@EbKC0iW1#+)AN+PT@Y$O`YNWCVI%7mMTw>3hqo3#A03YUm`HC)UQqDY? zoL-2Z{Z~fZ&`i@?7O2$ToG1XN-hKnk9@Lq{|&1uePS2yg?@}GBbhjJiYvo6-ARKyJ7{f zl9dU~CE#Z8tVO?+O|$9G9v!a^Y&5K^v%bGsZu51!YzO2`RuOAa9@}QEyrElAO*#IU z=dyaFZ8d|s4E0ZhD{cMDt)S|PL?Ud;=>)-lgBm^PAtjr+JijR_bWIG$70gyOpvO4w z>7In*0hehKy>DZM3M4NU;+0>7h*3aN!9uW}SM~K9c3Bs|$Tq_Btvs=SxKH@B1Tb-#1C#nj*k@a;nU4 zq+MFSK^NR)D&yu)*tID=KEuv_*%$ZI+-hQNNnF_-x-bN;2~@dUod{#rC!+6TSM5+X zOJ=4k#+v*h-3ujfm7!V{0S+FEc9tZC2M#gpEdJONYhjLc*D$=xv?*zH@W^DZDLMUtb3!8vfNatp zRfI0>5i7rZhg1=w6X$$5>tc}V3;y#Pw#nk+#rzk*+uAZAjEmg^ZoMV*;pI+5OqI?4 zSF?sHc^eQwl1dg|cU5?rtT1v9@J59WBVDRQ`_FEOT@_8y>hkX-hC8;*U3I4r{3=TMv^=Ko;lf0Gt;lWEz=Xv(^~+BgkX6viqdm zvT17IA3FMCch_WBJ91fs#n#286RS6Q7QEBA50mO;w)aRaj>_WY9KJ;ZX366z9mr5D zLTbmu$;TR@R;f#esgJgA8tWNWCsT$>mse(jAFD@iO-F?%(8!M9=l2~%7^0o6Zou$B zXNFVPb|pzdGG;awp4_~CMns}Q_kG&2OzqxVecT7bWYa1MS z=fo(b{m2Whil4mWJsgE12iu94C$3wO27sQ;R#K9oYKO?1(tn+p^ibT8D3p3OcpNzLsH(6YE5G~4+QIJT_J$Qo(D^&PI<-oizreU zN&^qF*G!*Zr3Y!$DcHK)<3Lj|Wfd*EF=@0~`smOFFNLXSwoGlIYkTADv=WDsTpP4u zn2=o4fIW$wtK-E@~}We+MXCG6r-uE>D{)K8wQ(zucf675AUr z?QcBQKk$rN4ySZjPW57ulvUkISWO17n65Wusg{>M&>0Ys4u_{%TG?aItP1EBgtnf{ zjCTy0L%14hyogv*kv7<2UU`={>O=F7qttA0s;BjTa3}UvQPW+JjI+jL2u@cC{?wLs zIT)*aGrmF9ZkiZSA(A}U1OHYPl1-BFZg&KfX573L@XJw%jS8FvaHmWeX+U||ywOMS zfU+zCpvWEyGgKzpSie|nF`~)ix^D>6lpf5UD_i(cQeSA|g;Z2L`iChRBMN)sMx*}^I(5lYm^Q4^t2BQC<`j9yD(^K)(ph@qIh~NC4}sPlG*K; z8ML*bOTJg8Up$(iOFPhNceoVt;vDP+3P@{(43;G^kuhPJ<_<|UmmiS1YqcJOFOhR1 znq^AM3du$bE1DWN?@mO)?v0 zs+}uM^ihO2i|`!!z>EA)Ld~@IbHzG}_T1F=oRV3J-4yb5RBC5raF}p>Q@^~>yzb>L&a%Rq~*Dk$-jo;O0kY8z>gCfO6TLg(DuX9Tk9mZD;HK&YL!Sg)FiqaBBvJp z$e`=kz%K|c&>&T%Gr^^`w;*H4H!xw-*PQY)tles1k^?7l+&PrWL5qVGQ zCTiln0}eIJL^8%=Tpt{S4{XVOvfu+&UQ<~F{DN&2dp@|=7}hzb7UOzt7ZjBXYI};t z7(ViNjcDg*e+kwyhY^M*87Gt*6;{Gzxt=A|l3d0T;yjfK`fZfHPbaOWIxJSwyP+UU z9ApH8odUXJ@p8FxP<6XUw`El1s+m3kCfNRgi8jcJ_YEPbiPgvus;bv51k}u1lSK|e zTse(yLS?Cfu1if^Sqv2-0SKQ_ZlX;I(gy?Uh(h*U^f9=Dro9J6}NnGCUq!}Tk>^qQ!8oA$NQ%+s2A<}jK_wT!nuahW~ zuI@tv|KDg$9>b!^!(N8XSAlc8ivjuU+M4u9eZy^CUP0OY!b{h>m8C{d0xBIh@fb{8 z)tDr+xWc+DL#D!fro)O&KPR>;P1FTYN1we>b^7I3DW&!Z(~X|yWyLsGqhDa@JE$=& z;f{=NoX+IHA+mH5+P+$#M(KdD|L^)DmJ~t>4AC=NOY#QSG_?8D(J}*_0$r&=B{W10(Lp-DpBA zl0SY;PTC!5Bp14nl?92h*CNXOg2=FZXu1V5ydD{5l$cw3W_@6s$|i9Ox&(a`E9V@) zBY@>F8^wMuE!S_RL_gi(Y~sJ+WODiw)*OjwWO=TS3%8kB$(fc)rKwZaH()~#7{8VQ zr=7mDh)Ekh$8kZVrvb$E*_^`N=Qd|1BW4X9>Gcny@Vu>H*->x7HU2#2RGoH5mQAr3 z$`w-EXRHfHS_hgM;bt)|wfKj%Cj&P?@TUw6q`YJye~rk$X7n+P>xZ=f0;!c%;PCOh z!Xw!x4h{&HAl4kExQM((ep>JXoNV8)(L%X(TYQ5F^1r+v3ow@K**2Dllgl8jCk+@g$}j$s}RRMk@o%GJ+9)C7|WD zL_h+@j`&eG!st`lnB9J>$Wt9fpsLV|Nq%F<$87cp2=um!^DGXU-Wl=&*jZYCmzeKA za*p1afR98LYEVmYHj&yyF3}OK0NzOUaIGBMN$=I&>$c~G#)Ng*uY`Ha zL9PqC=nzP?y5d4X{8KoIMY`0Qdbq|*eNgS<_{6-{;vcPH_`8-1K1E2j7G@BQ1Qj|_ zA=|V*O$2#^J-pzjoC~pp5GGA3EVo!h%+(MELl-n6U%gmY4!MD{)m*T~yQ6{_`h(6cBDFyLiiW`h|N;41q;KTAoLLL*w%sHwA>a z>nytc7jzyGVf&&Q7R^z#n~+~mq(6jhiU?!@BUmYpJe`ft#@xlcu`=j?#r&=gj*MJq zd*Kw{Njf^g+HTmtcPh*rgNc&uMk&q9wg#^eIp)&dx%%e_*#)gQBi8hH?uMs=!pixK zkpWO9yu$tm$w9$)9AeAlpP z+m(RaCVE;O2<14ZQ3ZP0(rO#(1T^KR&y|i_;*RRqp35zlmKLV>cEd~FhiqbDl_GK( zQVQ)%v*>+>sa8IP=sh`k3We{~fXf^gf5E^#Lq#%DmIdgF zFT-qge!otPz){Do3aBC5D|WmPoAtVnt@?yC)$ykXQend?y4&ZPkJ(Won?Lr&dD5z* zNnQI^hwd%)r-yF%NmpM4goSqvL0B2{R@;ThbMR`{L$}vhiXWG@L?6&d_5sk*_qPlv z)HS;Ir!Sl(rzl+2PH1 zM@LIsw?RqBVk1-cG& z8|_Pu#oQgAh&A?mSY~Sy;ZhSjDOhMNX5Y1~9t})6Po$C~Kit}5#8JHFq*jepd!H6cKebaOd}zK1o=JzyVh|_C+Dp&A;1q#|y|Z(4wSiW`5DOW_n z&%Kr9F7lEs?j*k|O<%b2j!g%!D=QvKRM46vP>B7Al1?=@nLe_-yTs?+m=}8Qc{Tp; zECBNmr07|o&^AXV=}(`U&f72c@0b{^E61Z~u8oLunI|uKnKyxT=d62C7RM(a;0$=f zBY{H1$k2Z)gT62#LxY2X#&V)fu>Sjv7`b&4{Hq@5Z_w{Oc9bCS0*GadQDEq#+BE5Z zKl0Ymq&!Ojc7b&BzX5!R@OQNxWP^j((u^1x@E(mWk3tVv-J`ERc4cD9+xw_4EDQgt z?U&EuqKE>k^{Y%VGKq5O$k0Re`)MBThN$;t@Y~cV<}vrkeAto>W$|+>;-$nruY|%h zC2kuncJG?Q>#XI?UF3OQSg{vz3n8FtjAnUeVpQl^H4{Vlpwi`>H8q$sJdUO$aB%dC zf50Ky+U3{S1uq&4_ z3?!lRg(d?D((Wy`aiI_I3+(BJG}mt-`xp7(gL<%h%TKuZQ}ClA$!LX` zP0#9x5O9-u6c5gMJHyUKMnzo)kDQ5H>fqETZ>a5-~h}J%~_H~hkADrZhr?_jc z381bpft?y=Ri@SSB8M(%uu3yGnTN?iAPTs~-A7%tCp<#Ds9PDZl znXeI@n8<-UNGZYB*XiM*q+jLel^+4@QS$hm{tUY(i%@}(d(OK`O|Ow|P*>(9aP66< zGihvEEu4QavxM1S(e8U!t&kv%jpKlvK*;;(PFx{hon)k|aX2OyZQNhTfl<&+H5yG; z4s?=cW5l*cBJ73uSE7yTXu!CSeW>Hf{mPNca61VI;3?TQqS)s8%>F!Hs2^HE)5m!mtNH+8!+Lard@Fj>CFLOX~sTI zq5hVw+@8P#=N08hJLdOVPkx^n+?a#T_wc*OCrV^|NZs?FNh3qAn+M6jcY{r3-)O_a z2zU^C!eafaZo+#Hv_f$`6$x4;jVhmoTmGkTIw;aM{o#DKN@p#%z3~2^w#pB1N}>Ea zL}>c~9n@#A=a%o}o~P@RvW@4zH-K+S3V-p43V}X|?M$@=6qqjx9-05E1RQmj(OtHS z?zHtL8*E?T8=Gb@7t6U$=+WgN+gG9er1~Z#ibwY|#QAXYsTj-B1V&AwR_>fd;pc zHLo~ESvqVeBmvdh9kBKqVEiu~S|@EIXGWS%_cKvzbU^si64Yyqf`YtLdsK?5t$wB1 zo$+hiL^)}L*WfFl=0qvnE?&tQ-)vkUas)H?sHWu{jjH>O+2HuRP2-1i2@ls@CJ-WvoG!5nq`@>8;}OdReB2LpWm3)B1C}FpI;dZ?r#$%4ERE?CcaV4>xH8W#sfU zNP$~2{iYJ#U~$0h>zt9BOLsk24&nbWhkwY#aFd-oS*K&~cn1_$$T8SHZV-2O!%@p5 zynwXH!O|#Ar%_)9a9nleB>cPW?KMG`abDEv0jV*Om3%NGLd{j6&Lgdr*6Hn$eSGwF zI8;o`$h2$7caW-F)^=DDY%X!%hLFH$bZilWHViVSCywxW)T}}UIm(9qFtd!o2~vfb zUsDu=xn=oB@mZWTixPThN^4lPO%W+=MMWHzh?^!h>d!AZdxGQ?q-LzjoQh~w6x<0I$#*)^uqR7^Jpd$hPuBEny3@nFy z1J`VP3Gsy$MWoNd%RHJ*JlVxWobr%v!7o%Mf9Nhlnm+N%(&33!4V^EKvweh=M_7JR zBxz4Gzs8OH4F}Zly_4SPeXTSaEQ*`oFI9DL6!kpX-9_)JFEQN)m~sGc_kMA`2ZCS0g zL&X?T3@glw8T(WG+F_8!YBvZs>dP%n$=Mx==qZ_c*fn(?x{)2trCN09a#ieYkJW@- zz7}+7nkm|hI&usgY5G>RTJDzUw0wSTVL_(ulSTHjq{`7%elYDiAe~AjEwLTWbeNX* zhd3IUrgL-_?z;kmmhGi<{DP5p^;q!=E{19`*@cU>ZS-|9?#>dqLciH%4k4m_bm220 z2!?q!f!IoS{}j`vjWz}Mp!x%uV}7Rus=_+NlU%lr?=>(h^*;fY%q&0+w&D8Dl}nW^ zgEk9Zg_7;tIci<3K$~7fheJ`+^{#cBtzqnlAMV^HN1H4HxNo^9oO9Bq<6W>Nl1FoG z5vNAaOv(^263wSDpRwd=Y!UwwTb>TtoHK_PS6BzKYpoPU_?g`c#4hlk)!p#ZBGX-D*JOju;zZh<8=++GWdl2N4T#lO+lW;Wz!^b55#6x5+T!X zf+5y=KK8$#!S)LOTK3G%5-Bp&r$x$;F-Z?!Siom3{ddHFUE9tknuDHqT1(DM?wDI) zE|Ymw5n;{X(#-!XQ6%wCpWFp&4mq|m>VG9oXgeDYto1Phc~_ri7`V(>0_=igXqS+Y z8y~!1Dix90>aW14lS}kq{jTyNkn;WzCZ^w@(4f=%iu_05e=n^44zkG&D%4IKng!NA zKTX?|jQKQ+Y$0w749L7rEJ~jOy1gL3Y}H|Rv=4>KeoxWBYq>*Yi>myiZd3D~*E|O3 z_Db3#qxb^bfaP_<^bs<9o9akG&w$?Q=#-vbe8Pk=<2CsG<0igN*W0cs&cgV(sWj0h zHTL>V&^LRYX>;`w>OY#9tI``^>1S5Dz-4LE&aUME0S^vlw*G-G;}kk*IR2+y`rzMR zzJjk@a8_%=Rng0VuxZ|CJub(b0sP-wn{f5I{*D-rnyhUayr}Yo7IRD)R?YCwh;Y(A z4H*)U&8~oa`>jF#*VS23l4iuFgqWH~$A;s$Rd*t&i!QWjH_%lvzYNDe--eUlR#PA6 z6XW(_-C!}6yE+rQ{_F#>QppHDb|3y_r0qWf5=ppg0`IVM#JigMJQbCCwR|tk2cDF+rG-N05sjMX;1Fi=FDjv`zO6+#;oqD-a z773rgSb@<(BqCtnv)53j>_il~j=WN(W_q;r5aXhyRBXX%ZA1UwQ#pnse}PeOl!?p4 z{@7b@YRm0>uHMeAA@=V6C~&Q#xSGorbz1vcOlW!tuYjh4G)b z1v<+-n#?51v?JVdzPAaF&*hl*n{Errb6#ePG)#{hA1z0woGyB$j?s&C^15DP7<2ks z$#!VMTT6G-j$(bo_w=W>PC z@pKo1KGc{V>CqHE&F|Qml@gUilz`j%FL(YzaSq~hZ&}?0V=1sHMv8vZ_8s1b zl2nLKRK6fO^Au&d@3A2dlJiO6eQZvY$IcS)4Xl(8pSr*{5-l#~m#$XYS@#Td_VVLq zUAjuopsv?pe->v+IFuDBr$+KOrZe=iq}o`)jyWXrCCaBY<#{=d>UmpW-JAFFet{f0 zfekGtl~kMvJVpgzWQFwu;bbQ?2uLHK(@JL!v9pbxc2QQhQGAAd=euOp6st}`KHf?^5iwx4KrsK3=}HLE89Q)3@bT(0;~f5 zaHJVdu;^BFrEcK-7u=Ik7rVi2Myu%9*w}>h@3d@$J&un((Pcfa^q;-I1tdzhuAjK4s@`5GmRG>#8jKf-($M~G^JHe1-!Tn4k)dra2Ro;%QqCFKl-PURl>Vf{JeE60fTqK60{T{8A%9x?G zcOdv1F$2hcc&6HAe5szbt<|%t|M1u_X;U++Ti@pV;Qg$&nV4pNjukY%8N|}U$%gD{ z$TB?Pw;p#{pc{ir>q?2v(w2`mT&RzZF5>L#4vsgAvT<$@5%IW;kO zP4_zY(3HiDfLR0 ztlM33CX=i>E#J_t)PLPmuI33W7Ps~36b2Tv0-bN00GW=vUbzi>Hz@*ZIfup$NxBE} z&-7TZ=r#JKU6*xwjI7$_HIIRJEH$0E!1m=9lz;Jy;0?WlQbNw@9KV9K}4&AXQj~3s*w{dD1rJpRY=Ol3#(+m;% zr$r3smT1$@(C=$`?ogbtxhzN9aIKh!?k;m{xCMJxPvIsi<`yw~C#O>dNcp>CY~7bn zPb+2XXm!)PGB%Z0s-?;R{L80ypXplb7>ZsRo}yV7pE1--_%UScZb&sh9t7F^&hVob z`A~EFp2#Pg@E6w^z?pK!pQB{6uxnKGZGOm>X~=bbCbBS2R&6a0GcsO{_1OfD-^k@0 zGVW`Sag}pa{Ph)(WOPt1U(MpnBx_OHFOKKPsENuPE_L?(EM-$WB~+0a8oI^*-XPZ- zs8iL8Ha)3q+0M@3&|jJ{*V5*CR{A4k#gfIzOuAkp{_Y+|ZHL*-D2xtGeJD28WycqB z__jP%-dR=rB>Fy#<3>Hjf{q)os-2~4+=Uq2p%ZZ=&=!i@MWv)3XtSE-y-&&{z}9=C zhoC95OEUsJx?8`m(KirrjFOWx-pROpn?|?arbFHNlBm+zcXWc=OjW)JcnVi7eL9TN zOt0j;@{Krd*URo4OWd3Ptq^;AuZmT+aPu}P%~U&$EG>LrfCy& z*UIe_@p(5#hp(?yd<@FN= z+-Hn!2%iSq=D1y8$b4A_hqEYMxgN~^E#MVodWmenD#^1LG{YWJK`cVjdfi-2E!O@r zQ;0y>?Gd8pPc&+K)^zTltujgaIl!_zsonU%FGuJFYXmk&-d!L5%O|GICCc?|V{|>4 z!+kwhybL$8q99a+S|fXC0K78s@cOXba;q+R(1MWSuN{+`Nm(8B>S?zIw>oSkV+W$0 z#d&h6mNyUsRxr1iF`iVWz_FDH>4LAWL&3!uKeCY=(mr5B&IPnUXsS~ba z6Lu;VQIK_>ei6Pp8^vheS{c6x#IC4K(=M9>op|16>rg9X!!;H-theD3`Pz2u83Q7Zi_NwjCuoR15@?*C zhboMVO0PUe@X6d9?J^TpH+|QzP)L+zlgXnc7%4Y#DV%JHHjN(QZC3;Ei~BZE!; z0vp!XiKFT-?L5+{r;Q=Ps_1Is$aCmw>Lz(j2sU;xrOq~D2$?H-fy33%jMFvsH9mnv zlU&lpCVE+!W`>4Xl8n)F36^99TJ#T>1?uWb=n(4A?Bd178eZkL3F-E6m)L!dky#lG zPLDshq8)#!k-rTEE4e{FY)y_S5*fKy_oa00GZ6TIB=T>v{5813qDbQado?3g1Vw`> zds=!XFti+_KD$b*mz(xWg*~!#6N&=)Od&}T(+ug3O>u=#yFk71PBjNjtb*|=N!H+Z zT)JB+JTYpyqSDOe6eHAgD^6Mt>r||?rw2vlMfBOJWjwA7dD4Cl6xn6!2$FhYcnUc#)1yznRyN5Ncf%d0m(kQHZQf4he8*Ls?TW%^o)h z?g)>540q8R>E{>s=cPI9dZVfXq*^3LAE=Ixpu00vuTs+yODb?taT zc23SvN%T$1)r|ACdS}r^X2F9a$k%k&EMr5ILri_0G6J$D6QhTuLR}G?9z_Zz0xpS* zpXv0R*ag1xiRpR%j#ea@{l2`SAhRmBND!uK^`dI!Zm~9_jvxx>;@}|oippaFknzkJ z)oB|^INlqH=GB!ivO31mA@N=Pp~aBE`a$cq(ehbPSG3IZHrB*(4jK7a zx7uRiOp-QcbxKWED=o&1D{Wd%ttmh}$+yAV@&$Sg8N~arevz)Jm2yf|v)m{w zO&Xn3mjikqKZUHlm!q(u;PBP&+{jdo!s~gGq^->jJ6Fe(fP?{2RI7;E&wPTj)r}ZZ za&NJI=;I>Y!p6p-+A+5qI(c+;P^pV-#TeNtD#1QF&r_f&NV?Eeg|2Ek7G4s(ST9>; z=iqM;>`(38Lq)!+^4WAeUGSf$Jb#udCIGnX{JEu5ofGMU9Ps-6P4r2Qc->yZ{z<#^ zpN{_cGobYvmkW)$U;9bR)+cYRv5n}EOeZJfZxFn{ZN5Lwm20a}P^;7{(VDy@h|!CP zA;h!0s`Xs^CB+GMsTfu3_1^2N<{QFSvRC<&<+{h*1&Yiz+B-aB*%A#reG7B$Kk_c)rC~1 zM=RA3aj@x!4p(Y|KK^jmlcZWnFG$xFiRZb_=P!C~S2Fx;5@~Ps4{6r#4>9K1-s8ka z-QX8facVThgC&eE$I;_e01P7`!@^~?OR}#?u-k1f0m|f=@}-20f51tQ#u!sCFixW! zTlPv(+P8PDzlnd8em?8^?$YIw;05f(X_2CcXd2lsl7eE*rh@upwZOrGx0bLAci zjS2{LRfMx+IPE{p*$X1fZ}E7SwrwYqu&7-DM!K3%V^UuFdA z0O=Z%VjH5Rm#g}g(y+L=NQzN0_9DW3 z_51XSwxR-*2UoW_T!bxG{K+@cJuHR#bFy4YOpWsD-`5}j=Fi~RfOErH@7wWjpxQUq zs#d8f)VlY+orkJM-uPw zf-Q2@F9H|;q$rVm`FIJbXyH>w-MZ%VH$2{x4XmF{yI^SP{bshet@E<^@<8`)gT$5MODpl(b=TIpx+^_sl zsm`qe5H+7Z|6F!dSd-Ax3|jU?#7C9LeZl-*6$?f9vM;}mke>N}X8|%br=H$!wMPk% zXx0Ht_Rq3&2%5__f~lxm-_+4O0Wq&U)A!2k5Di~r1BOLy)t^tOC>l(dZi5R=d_Pok z%>gM>TpNYw&(tD$G-L9wkHrI`d0R8o!;iD*5CGk7PW$zbFn~oniN?fIzxbF^XWohoIK-SGXS1`Xy$4U~{8ADpO1P!T^;D|4m1MgSDg+|LllnKQvE!TQd2b%iVVZjGkwFt6x7M-4pcrJ!ib5 z@74VnbjeveY4ePk#TQj7S&p@}mh~{_z@3*!WO}|!RUsY=E zbOwnodYMMELGUjvPtM>no3YK>i3Z#?Ld$5S3H zACK6thzWr9>CGsxoyl=lBKfBQkIeQ9YKw+Atlj$~KT z#N~auatYBhqYINhIZth<68&9!l>i+R|M=O8+1$DORKOw2Zl^AED1>`wM8PRE$rS+> zz?xJEMMS0b4!nU3V@}@=nrrx}fy{E2(>R@ZtSO5uXJx>}Hz{*ghZ3~cHYv&#*5bt%f_hB*EEk_(0Y{K3ke3qB4FiEHwd>#tPBX{R&iX#IZa zib^wuSj=Bd6u-)doxFhSsIf$bgUaZA=E1301dwa!3Wg)9Ef|d1x}=*ZK5jdqjn=-0 zRP&zK*xBvFJE^J9A3I)C(|}p@+?8W6BqCii5&-cADg{p0^=p=?*FL%?Qw(eE;TMUc z1DnSMHUWdwK7#(BgFF220N2nuw(nz!L%BjnX6spwruaGQ`31tc`Phny+Ir06qZ+iG)^9`>sT#Fm~4DkiV z8X9iV?M73U*ykQu^r19iUB$op(x!Zi6hhm6$%76|LY+>1nk$^KoXePqL#(MO;3UW_ zVS*`#Re3pmM$l$*W(w)K*Tb!jB1NAVqYdzTpjT9!MvHBn(d+C(yQNr#_k1ccy7 z56ipYCRS4;x#B~bcZnAf7IrqaP14jz!5L}X(MC|vE`BIP^Rdo9FM#VXDfS$+~*Ibd!RHSp1#nn$a-h-9zoM~ zKWYz7IlG<5rtslKXCu6;GA{3L!8`5tSGNO&+~InF7S9{0iz2^dlM*HW%y^%RBHQQs zE&B%br0dZZQg3jm?)6dcursrCcK3e%%ldJ>QMTOeQ#F^KZHMAi4oD zZ*dce3T7rSX9M;Q>B2DL>(?8iw~uzT-|inuxsl@h1#PAE$aLaY3ylIUo^_UcWyhk% z@&XwpyIv?6K-qb}{FUg(#*CtC?H<1{Qc3Vs)IJ`%)a3iupDl{Av8NK1_q-p^E7^*PK+*>P7FQXf{bAmeg`Ilxf_HOqC*s%|KI?R{j2IcoEUfrWY z9ciS`-U$WQQjwyK-BsCv(gv0UjCv_WS#otBow}6*!hUiRsRC?+qagKE{PF4eWRvqT z#NzCZk+C=#552g+Sw}fVwZqk~-)z-GW=`2@d^&%p$;_@%@!Z8Tv_JL>$d3+4OAXft znOUMm$bUayeh7zZ9&S)$X5xN~k0#j#d${xQ=%c%UY14l-ktdUJt;_-D-Vt3Lz`$V# zf8?$Sl&T4i6mVK1{=v|%Fn#pb+*KK-mK&^V%9$;J=AB;m{mQGS3CnhLJep0bQv7HorBh^C&Opm;*L0<2H-lqp6KiL zpwGevW)CJV^OvwDn5tM4;BP8+XxwZ7fmj64TIgeA@(xxNz2P_Eh)wl|>Pb&sdY+-} zOh<}Ea3{8>xVaM2lwuigPY8(T8_{K-{aJjw&ummY!vgbSBP2`aj)#;8*Uar4ih2)F ztn&q5{))=J$&q+28H$U}+Y$h@leX-cY8Wst2zaIlVR6LowpS&kN`LECkTHGD1N ze|%E5r;B4lX@7PO9nVopNRcHDPhAZwVjKPf<2n_JG^-fhpiT-$GGfM4fi=-+_}%A&qNwm-;z zC%{L*7$Xr51jsge-z}iUsvUdN`0IJZRBk*AHh!q1Wex*$G$J)Dv#?F~ z2_6YpPI)&SZ_aF-%K0N}*(q8~%{r>#W)Usz;tnct#y`2>l-67B=sy1Lm<^uszjUXX z-o~%%D(b3`_UO{S*D0Agb$)N>mL0j&WN<%yoBMhGVFnYQFDo~p`Zz|iE?XOC{9Ke7t!#S8g+lu6ne>7ktO@-Oa~E(dfsCa`T~3OwLj8lzo1-KYWwFOOF*61rsGRUSIO{WKMoqpIS^~L0L7kWP6(jI|!{$ z(#S_EW%>!<#g<@us4yAqFZQ{Pjh;D4bOm|_rKvt{XZZ(&G0wc%nSJ3fIQx6l{Ca>RVkGbivFj;Oby2$Ww!qF?z8NdgT<_lUViMCk4t z%3Ln-yKuPd!Bb#`J96+UOt5h1nR`z$ttJ#4C=(F$AQa-go)(7$dd(&A#Aez2dLSk( zNHAv{-&*2Y@;EOrnj{LKfGc``LYoOD?hZMG{ThTHnTHPzNkT_S*7t2%6qXLHSL~U~ zStyu+%<-dYwyq&CuuqZ0!`-3Jc_659#_57+S0T$sY)y8VM1z7FFVx@; zWk{wf7^Z~yO=_}$%}_Z2TH2RberHZ(mNVdTDsK&Um<#i7Uu6r>=QSR<){t3xAtYz> z9_jcLfGWLG;C@8-9rQCu=nhS^Rb2cRT+@B*T5G!5NU$BOV3s5weJk_Sj{U7MJO!F0 zDe5oCujrC+N2HjliW1MUcm4eY{g#!QJG+jP_HJd(A}HqKg;MA4L{vw1P6GvoqNXl> zbq7CL!Iv7}y9*Y03k?G*^)Byyd#~)EBPgMwgPl^yBU#aftj?zfdS38rRVqT?17=kS zJAu#>nQwl1Qww;eB@B{sT~CU>38ZgYikA$Z6OzjkuCZM_opF|6OY9@1`Q)4}adhyY zNPKh4!O?ToKxt7>NJ&3Cz9<^31O?&WsmcbaS*L<+^e_wCv_m(WU92o&=TD<+Ir7r* z4d^&O2|Vv6_!pPcAamoC`Ur6kO=*b?I)9n0Cs>^w9Zan25+8=y0o~Iy`3D6n3@~$1 z7ZxmQ;Xfszpi#)JDk%kY$D@j}t5np?01wB3H;Mi$ykDJ@`qWJ?e>VbYTukCQufxaY zDaHKxpB}Sx3b3NTkAGI9z=Jb@o$|Hfl;lE}5FrmF%|q~nYc0zm54EK48)ii(0R=Nb z@jp4}g@IVKH~UZ16K+IvV4r0F<{^ECOkV)|-%i~_FEUg0E063A2ixknZ0=J~0tRZIbg6N{3+AVya zKqQ6U`Jxq9C4s@%uU9 zcoK5s{ovHsKr{B?p{Nr@esB}IK}r_+F6d1aM(G5Fz*CY-R%>f z57vR@@o=dC3%id-o!2WOkHg5I%Yqz=M9(|7{J7KYjng&1ixz1KGONQ=+~qK}@j6F+ z{!K@dXLu=a)#Jl!DoLiumlr-aw_VB)043<)LZEv-%2~2fd(*X3#)I8=?^gs)c|DcN zZ2<-+z2)oOD2-dGv4hzO7kiMXxZ>2xl87qz<6Y*y@$DXTy8&!7F1Zt zW7VN(+7j}Gy8O~c;!aP*TjkT#;-%>$V~FosG*^oPIrAukUX;DUw*!?$q58zN;-uR| z0o2iH=2UU;`H#qZSDJIiN#eFE^41RYmU9OQv5-cy|U1?^~8Xc{^zRzJDh)Yu71E*&Te)h z0nB5kaM3;r!f8A+gq>f=JF@cZsjz1wYk21Ghoa~9aLR0L$7Gna7fcLr&+i4hL609MAaZC%eVl%m`|$l0EY zV!|cYHP$(;T$M_&fem+He{Zn4+o8eR-yeDkeTINmQTLKWSMeSfZN`4 zm%flmH-bVyP8sg;dsOkN9uda9`sPTTPf*dqZwvJHX#x*JA0WJ@VBz;O7PPi4fyFG@ zK4%%Jc_@#`hZ0VvnVQ3LksKfs^KSUzuaF*KS_u7+Iz8o%3{WDjJYgsmSroSQ2Oc}$ z80K{fd2iH5cE?LZ?N0lJz(<9hertBL1Dj8jdIiW<|wnIZgW#tN$NPn6QXKY!a@MauD=;C0!U;0`WZ#*r5l z&w)jUuup&WS-(3w*7|_gxhpTuDx=x$V@HDC-?!t<2oMxfm6JR$9X@8p4}Xo3pRTD6 zSvfb5kIi=F3zTo#nff}jgji-llP=3zpOMpE5@47vLvFcQ%`aUP2d*$>71k?f6{(`ni z+$aibH*JQQJW55u=J~x~8=-#&n`&!HaKn#LJSo31s(f(_kz@KxyM)1Nldv*{%?R^7D^FUU%^EggZCb#icnpLK z3Vg#Cg^=h-fIX;mZm!y>5v;KplLJqGq_ z=*1~3CFF%2v@d2nfP@V_#B-eDA`YVaJ%S_ z7orOu1ZuVdconUXSu7dEXn#hjB3mJoC{~n`;_2<)Mt(Z?6g)UCpyirhure~ z_}8RdL*z5h@7OD}sN1pY$7d5y87N!jQ)EG^V9C_4aUE9>{Cbmr0~~DH4w7N6Z;xl+#F@DcZO2FLGj0d z4xYcGLqYVU&xy-oOU*l)I`uz#e|O`PcCCK#tLsxZp{M{`vJ~8s>af z^v!q`?jIlfDX2gFH$B6|ScnIYxhz;3@=LRi_ zlNAgHhLJ%|vYdd^P2JcGqhm#~G;{x_A(lxtk1P1lmc3|!Y!4I7f+DFKp9i!!;iGU#>vc%PNw+^D7#50g(-a`7y@+PzBrb&XX2;msJ^XtH zWNJySoW07B`iXF*Tq&omPyQtIG9{KYJb0LOWFmB<`mm*iH+aS3^T7k zB*cx{H8`bY6CLX7?@u(OD;PJ=aEZeonv>+3+8q(^ryR^28T@gH$_7mU9V#7nvrfjT zj0nB*gMBfA=RmCtDs3y`#vA-LW*sSB>}e9^&F zoH%L!E=^EHNMvkA?+Y&uQ;dh}#m%$P+GVhZn|ZON?Ci!94-OmaM7 z9djHX89&}eKG}>#>TASIGCEkdznE+i6Z0z6|CYL$d;d%FzC|Lqs;L1+9Ix5_Z$K9%$KDq#b&Ks zj~CFaDnSGq1rL!%yN<+$6v@Mydm1(7LD3{exp#c-))W>dzSB@FXlI#yYHEROE5qGa z`8@bph4vrR31j4aQWKlBRg@Y;2KTr2m2bfp)r6U1Y}&46vaYsGZKb0iJYFA2#pP$a;|)gUtQSgVpQ(8q$&#@rH{|H%0JEwDjOoVj4I~d=Y{hNS`n$5#-_?y z*f$6U*0dG#Ix<5o4^leZGuw#=wNCY~htlQRy|7Gg@Esg?B8YfLv@KzN^7ySB7?!q0 z<|d;UJbu5ze38Ddp9W{<3!4ot<_xIhzvQZlMVVVG+PUkTx9p` zNkgMBd9^$79fG~|vn|ol=G-1{FF@#(IIu3*)~?LXnXTE7DkKK9KGbz)@^N$4)kX)2fP4KlL36d}S{x(~CkI8o; zl1>cM3k_kU#1*%^Jm11tI$e*_NUP?Mi5ndaU6!Y5nJAsq-Q7Yu`f|wT1_72X*VL#Q z&cr=rW*Appl@Xltuw`BDZ}jNg#;xMXEA1Q<%TsvAt42T3Y_c>0-`*#(od^{ z?LhO9UIpmZpr_&Rx5cmwanU9cSvhJ+9NeRDc1~8Yy&(Mc7YI*p@34>8wb?~-s#_hi z!V3P$dnaOK;?v!^J6?Rtw=pRix3@#sk_UD(IW<_N0wR?Z$J z5PR!_i0071-&q|(K8~pE`VHmT{svuSqLbh}2=z&qttwhW8>p)7!HkONM?(_FUJi+174qNtQ$0^jZqQ-*I(o(YH?^>{C=I+!sIW6>fxRw+Z z8rny0nZ8HN6Y_|0DrW`zFU>sOaq%ktm~EDDJnL;&Dj9^XvBGXIRVhPb`75#|x2?QO zUcdXi4lbXLX*=^J{nxK%U+Z_Q2`gbmg5xo`y+?rVanl7NIwf(b!w9cAC!`3x{GG3e zDp#CjiZKIww3#YU;(h?`h49!&$M!ed$D77vJZVOiZCYwPg8jvQtfGBrI)uMF4LvRA zIBrJu;f5|>M2c^s?wp-2SwE((*p2A?C%>L=^-rbC?dj|7K{IlUr`~^vDpL0*bG^ee z3DKx~cn=M%c*szMFjdDs>1(`1pp^)`%7e{s{+bOgBS(|m6p;mBTcerNV8+e>SH=H z>)WFsHjLC?gD&Heb(^Fr~_(jc8pBf`(lH+oQ0GC<#=#euYhnaoBIisbN z%4&eBUy>iU3mEnkDnq!({Jg<4cAEIJs4{9ZqWf^kd;jGHPsoM%qqU(Kig>1u;+C*e zG>5)>aS1^jW*=7YiW7@qUa7(HK=3RlEYDEGZQa^jT}f%Z?y{^1oerT^fNx}Jw2yI2 z!tJU8t+!BD8<{`?P57&t_k3eODgDDLFI2k!xK`Ps_CZfIW5mk*9}{)BFOV6{c1X4r z$#%4T4=BKy_RfURTs8$=-0jz4p4FOb`xgcR|5K{NEYtxX}KVieYd@DG!j(Ab5>~+9GQfzJPPLh zvJMsz>WXrkbE?|Nna1=|^p@KQ?s(~G`mXHovoT@Np=5)D>P3X9FPnKgaaJ zTFG8Phj3p~iv%hj0r4(!+Sv#%859~##f&%x1r3UJ;b60@F6!wK?(mGP^fhO8iGZM+ z$R;wf(of2l;+ql^676i$={C1o)07pHhu}!>vtPN>G^7JzFzNEaxF5O%mjGEDx8+#s zisIe%;*yb_9gakW&*I(uMwKgX$F>=eW;D)<0oHJZ5(;DOfvHV9+!(9P0^b;0`opUp z3?5oxR||`@Cvxnq18m=CBq6_tJ&H!u6}zX5EYjA+X}1bZOzL(>ia7?9o(O7NWs??L zECP`z;%VZ)UVauVInrcCWP-ro+w)C-(bAlr6q8!7-Sld-ac&8h=u;>-Wm6^X6p*CG z*t;4$bIE)kQG$tH@FCW6_$_CWCDu`~I|oY;W@(4-m~qUCOF-HW=nk!V1> zSIZe}<5}}adbF<4Z7H;QFKr4B(-%auMe8#HHS-9`6?R2UZ!PfRMfxXF*`}JMWqO*V z5r`G1jP^CW%W7vIZ5h9aFh}0m6}S|1{2QCy zQ>-VVP7w+XH|{6VhiSxn4dqpiRt4!dVmLNBG-;6zK2&$U?rC9Kur2Kcb)$>c%#bYx zl~KScHoG(q1bV>W=U@*74zCsK@X#%8vrJhfmHMcd@xa_~08&xQ4c@p^%Cfw8bdX-P z_5;oXm}u5!!oEU_j5C4pp+`I$IpiNWx>BX15}-r32_)@8GQzFDvMhBOogJyNxno=U z4rQ6^&2as$d&gRs`~ne*E{-Pq_t^7UCR zc)y#{cSAP~$}U86WQXij^Zpjlr0_4}vop8(^|B64x>-@cr6lWk#b@z~_2miG@Si(i zQ8ZzvLwTO->&`IMWn$9RYZ`l!DRncCO1E_iNvxqujD@h+!N*H7>atj0*4LCYQM)(n z5#bvudIB*@YNLenHHCq5ctazO!*|&8GT6#x>Qf<1O6u3Lf@CmorU+)@9kRyj@ z!TGf3LwTD*lGIu4Hf>i$*Jc$}noRi-a9A(|T>?+FG1tZnmNP#8;!?ibHHpv&d+eu8 zmHQng*mju+J*05QZof}{R3jrjpxnSe+X}#A9G{G915w%<NsPCBY^mxW-ox3k5Nvi8^1(n3`{RNkvw-s z(@TIwsdGf0S4-Gj3p{xE5omwll$DQjODkcU`Xp(8^zUee*{^)UoNr2~G0;I%6jqa$ zsJY2>dJ0b=^g6nDjP|)o&gfcy@Ld@=s-Ir?I?(mLv-6qD%J9PoO*J^O2vqhoSaqSV zqQVB+IN!E7AfJ9B4BFdAc(HW7kz?VQrfR&f?8UgOHuc!e+>Fn+WmGWsV#;3I5VZov zX{`5~%zg@2UGG=N)(2rA$<-rY-Uq_Xw6uMZkGu{^&j7 zmO2hqm?Wo_P5>L$+3w}0+cQoT8)o==jqd)zvc?>PYwnRbemME9JW6iMiCgEBCVr-y zJ9e^&y@84oVH(i@BqmZiyc>rs^yOn&35%wzQx5JJVG`sEJ~-#Ak_Z<@hf`2lxg zdGJVtMS67yObN2{XU-_o8){OtwwLu`DvZ1W&V03^R?7DEt&gDRgShINym9tANz3+) z#O@B3)HOxu8{}RN*(S#7Ig&Cd^3zt|*I#mvMpbdFx0arZujpfxa|?kmmK{`wVSZ)H zB`EVsd*uf5%3qw-ikUTJ8;awS;^=`KqgU^JK*sx6PSffH!l3P(A|OXs{T=s`N>`%e zo2?z)@*vPAs6B}+8=Tcz}qr69{Gfaxi>N?A0!6M$K76b;Ap;IiVGlJ|F#eLx zjT=`2=UR;}f(TecQefaeUMW>q<8%jI`oUb`a!cXkTkd>ara=+!@1 zTn*tP4tS2-VMJ0`v%mhU8m{WY9dC^zv%&zk&>Z^EfOc}O-%^#_ZjieS#FQ6vbD309 zQ+-?WVUDadb>7sRl^(u7OR)VFou)3L$%}iUfFhC3jlSObMb8@J?@N|s-HMVb>#Qc` zT2L{iUnVd0L{qImT}VfBRPEY{{d|+s&8fHFUn-YMMv5N2x9qOI@`{Ifsj=Md-A#c5 zEf8L2DBCKVsN6#}zzc1Fm`LSssm~w3uowkS`~e7h3TIv3MVEzl%b(Pv`g#e|nt{?& z6KBO)+Uz2|TYJOf@>bZRN zs(G!==#4p`TjeF1%vHZ8UN3Tyc=;nxvNui4iW`hhxWDh&UhE!Kpb@tEnWzk#T<4Uj zR#fzMrR+|nuieV;yPaOa>gSr%r&Z?Zvk9_I{=IjrY?x%nnKWW>h*i37zyC#oabv#u zwrsLqcs-W8g@~SVQ#FA!n0|)THr^)$-52uGbEo(~X}&@?XX)4K$%?@v(AAE#I7@G6}W@{S=I> zVXKHR)%G$Si8wHnCmJSZW_d?%Me(aQRyTr*gdY8Pl0(^BSrw{*2wbGuT6r#~zzFU3aCNkA>d#he5A*cn z!P=*3YkHh#h3Ps@vrH-;`k`HHo@tke&_@BTwZNhh;|PJ){T#Mh|I7hPGy08D1WRWn ztG2tz^6v{ALK}lu>)aY6{nOWU?)f-}y61Z%w@wb&hh;Zf!?y=l3-qNUqy)ODBF&3L4 z*_!-(sDs=0xmN-!<5c+Dft8-fIvit&klmA2T5N&L6o4YNsigc5WuEC#iegP?ZdQYY zOUw2PDtsZzss~+J(73u^S3BWbCckm(S|AO2&)!4MqK+#$RexoMXvL!3-9+RezL_&i zmJ%IuvVyaH!d{d}Mk~euPOp}xWKLs1;piD|8IG;a5)<5-iONt^WPH?$`SU)@mVNhY zqGilv9zWq@8h&*f;i9L6Yj2?$JZ+iZ_(dN9od}eu<$TQPA$bid*rV#-#2HZj2eEk4 zAM(-ixH<`2j#Yf(x~4UOxk4HUls zGx?rK7$H6_J(4^c^)vNhnv(ZN0oY3V|*V_!E~v`lqve_ zD&L>XGRw!Xw*WC>P6;XvLVYb2-uSoKv15_Wdu=GqJ z_t@;^GExa|7JvxOdrWp5I*Z_fREk2`sgF0*Uelees#9d%3~3_T$H+%j*`{3!Eejl~ zoyB6Na~Xy11R-9YjVXo)S7M$9HgZ+EohC#vbf1^Xtzug9*T^__5`cv8#s;t|e7QF9 zXY)y4a!Hj&^hKkPoeBcft$g%#OXQ@!y1u$E`KJIxNy3B7c0h<15`7Gg?B0wN_B}uMu{vy|@5hcANp%|aol$uTM z;hMdx_3Y#k_|{m8G`L@B&z7_&%aom4NEFqs^j%5xOZRIW6$moxd>6+m*2ThUSDi)waEU<1d|I@19I%0-vL26M) ztmR=I0Q)&zGt4RWr=P&WE24yRWMgRfCh&J&U6Csjb2?Nsjc5%`wZp2qRkIFNfWQEc z6?0kG30`*Fm_EC#m@*S!9X;%AFCdcv)cai9z{sSNZ)BcT-ITVk6kzCs+tnAoat^Q_ zcP1R0B|hsu&>5Y-Ht}?inomVOy@z%3ozb#UPBTd=kH-nML>8c*gSMc%350_g0l&yg zcnYU;Xn*(^+?2Z@bKh1@v*_yPNJQcR@?-fr^sbZUC==6Cpjj4kA8a#NX7?O`!$8j8 zJ*fgRk!wrwm?xdLfo;(M{On3Ijn%|pMD{sxz4-4sSenY+~>(eZLT^|auhX!{%(xb#!^R7kAE z3PjwD#-nRuRQGDbd9xaOw~-GUFU^HD>VG!eJJHj}UOWt(Wxa$Ju#T zD!`0bFkphRTksdSpk2En0?Kc5V_YqKGXLH3CP**Bo>f0VreNJ>$p z>Fb6LXLxiK!TWjRKguRi(*p+RN&a7R>48t#Xys|cKMdi5*CJ={hff^tyeYfap!!&) zDbc}2CxJRa(OCZi@%eY9G8FS(?YVlhoUh&=Fp9L`a6Rl5+v6M%`^WhWwulhSU?0J> z*gq`7b{3W#!m6QF>QjV-gfc{WtO1ZtWd3t4|!CWp0s!QVXZOi`86TO73i zx>rGEvTKox=q$yh*x6}!EA$V@Gn(bxuAx%UZt0QRpN64ctJvh&8Uut61b^jB{|~<* zNE-rCys~O#UXnAC&(7BN?dNm};+JYo^Zgrz5uIqE?%bYAL3j=h?49^8kCMXw00y2G zV9bY#D$@9foxNGowKSFiQG}IWqc7gQ(0oJ%Y1!w2+?{0?Nv%y~#R4+Sr+KG9?fC%}1`9AgJ)oiLZpM&?|4)lMKKk|1;0O0SoX2PD4I0OSsYc5By4U(qp;)(p`FaYO3n#4QKmrjIQ-PO$hhVVBw_lr#KT;X-RC-RT z^UGr<4?;|lGMrza2qZ1Z;JHv-*J4Jy9SE(QFJDOG16<)b`9FK<#Em7$p0f#MhcmcI%(ILA3T4=lWtMI zq=mD;7)kt$qk{S3*_q;a9Q5iSssw<=?q3Hm&G5@r&v?<2=q6sRlVF< zflayr%_yB$PcYTB|7Lzws*c*Egf%|c3F5jLJsH8x#x=D7XDkaCxL;;JP33gNyXou{ zMhjG*?74Vjv#R>7V%xJQ;CXbSgyYL$`t70nCpNfn0hkv>y|8v+K_&om zlFS}7+T0?6Z_dmkiPLbBJ4#0#T{O~;H=7Q=I)P<|)eJFTb32guY`Yy_)NSmS2~p{x zU62i_DUDc#VB8Q?v3_t|?r>BCFkG#gSfC2xSp^VNC1{xgO&@wDbpyY8wpNLJnwl_1W4^#gr^MlB5#lxO8ZK3c*5!i2CY;%Y&%t1=}FAA2`-8kos{ zUhesyXla>!9HV?(MiZYiGGeL?*fe!rV5UAo3R|7g_vC#!`Q>=Saow34YVB8U;ur z@F9@FheD9vbM*KmFoxLfh02W7_Y5*PaA&QWLW)5zmfoPV|e;t z7=bGx*O+IP_>$w-A{3;~FP-Myy^rz=UUN`#4U?ZzrEUDUk=nQXLII%5o3>t@&5 zW1wXYnB^QY?zYiuv3|Y@)JPS&nNTT7t7Y#n|NRp+I_y8r#^-_M{GU1sXm$w%gO|uW zNR4vg|1Ae*h@!;raL`V{k5Va}p#L-$)Kw|0-IFJAAFGgSFQk52%xGV}1&gQ4`@i5h)bOAF^Tqsg!jsFxP8gc{#KXAEfckg2d*&=@#}1d%tRnd$j{dl#bYasO zyX%O7L|-W!@_(SVt8gqZ3eJI!PqL_aj(_ZLEMA0X5W-u&HhxNulUc34pZG(A(1Z?A zA7m1a5uxV^z0TWBgjBr7H|9)$C$-GG;1?D-8jXm(YB~QX$FtW1C?Z5fsv%r#{p;sk zXX*nChFRoPAWEvMC_FwdU*&`2Vee<#E+_w!w;PS$soWtGRKs02#I2s}^1%0lPh&$S zEkHm36o?-JTqf?_=c(P^QIL6@M&tW#4Wj=7vd)ea3^T{qY;s$T=GB;A?B*w&u|faz zWF9M4KLRr&=_W#s@u1mRHWkJVYuZCK)9Jpb3(LA4-1xeb-toL3foAz)HPjo2EHFy( zCh(x?6E-e%{A}H=6N}w+QJsqm#+x-au1;-DC0T&lDZqxg=Qd$vSI#ewoCbNk$M*G| zn4ZCt`(W$tn?34~DIQ@esa8vt69Py3vop()CW%yK|I!b05bV>E>fZKu5c)6X==`C+ zof9Z+t8{>akgtVH?UbH6-xR+H?@}VxN1B@haCrJ5>H2Mlq#h|4nehN zU_t%~B7-Y3^jz~jyGsZZIKj&(A@Y@T)gq~J-rn6qif4sya-J!Xa~|5>gJ|yWbE%ff zSWptH5NPC5p9u-AeImPScd_>8b8c=)3HF#gGe@U!jg5TF+zh0V?Byed)0_mjE{QvX zg?Y-_$s1y%{AK2aPPf{w$;!OLt4-wMA|nNcETtp1f5$A)1(Ac3b8_(PFE}2k?39`I z41shf!Zr8BZuzGL`-SbH=D%497=z)FaM)OqRh33!I==%`?K@vkh?-xWRT0>S5qCKSTBFKJ7SHf)niSZR23Q$| z9xJG^-DWA{M`vIA-Gx4kp@fnnrTZ0SD2IZAeq_+P3g9~j2Y~>l24w!D6>(7mni>-Z zjz_!K&o7{w*gqE>Q^n%M`c}w^ZnzTkbl+*aMjE51-|Vzt@JrHihMmF;cv z*2ATZ- zrBlqD-o6Z|xp9k>H(*7?Q2lb2NnhC1pAq=^QZDs*hh^i zLLu%yMJpkak&UI+cQ9x3#F%4w!Qo_}gt?b=3B75zWWUOXHDK_-l)adV9G1DNmh&r@ z?#mL7#z2mF6SRQZ?711clUru{19Tn8#qtaCgZ0-^dI^c9`CZ_Wedi6;66a$WCjAH& zya&QR?Vhds1#Ep)3r1i!2h%0{0Grt49rr}w}YP)n#wsvsSgNi z4wpv2H#KdP>LJ+KXy;Ncv|B> z0%Sk&;OxLZV1RSP{}{F*YLfqRZuZkt{9lake@A!Ci1hD&@*1E4pzQu<%8LGBN8kMa zu$$+;EMI_#P&Q5axX`KQe>3%@7r2Eerp+nCZ+)LKrTULKrI$4Y^b*QSYAsp}|NTKK zU55VuS|7LCO|;=X2aTk=l2KZ-va*pr7VxM2IzvlWMkborq2hkp%)th@v|-mJvh>nP zfLwEYg<_22S-KM$@QS;lz}b=10r}*)(hEyUq(z5ehV~p7Sy=MR=)v{Ym6IvJ^f3{S zpdQ$28N=nM#YjB?DuPw7+A1}@ zM|1Fc98b`~1qT;8IE5OMgB%ugifgWAf?#OuKa(dUy9;d+)MW?&L*4@>s=S|gwHsY5 zYURKskz?)_R8&sirkuRBgMx#39rqDE9?q!=?OzX#kQ#s=4=N_Im~iF^@cbyjH3yvlwF*sjYxtF-atq zLbfdpCNl-wbl)gTr<{ACJNgw*s`mSS!I5g5ID4SEW=c`$-2^bmz_0-O@aP<1;+(ou z^+p6*ks8{MNcTw(mA~=7c*XO%TkA5_r*|?XN)i!hl;i5Uu8YhibRVl<_i2$;ma02z{(JPirs2 zdlvRvK3aYIcEUD-i=#?3yDno;g=Ni7$=|Q3>pgj4U{VsTR!v+CemAPjM6OGDEc=|EJy;xToW?39< z_t?*S`SbGRW7c-c=MZ$8s`eVL=aV%}Q2cacdFFY7;!V&rDj_*O>vc|BMI;=&T=PxV zOHgs{gpk)Ez&F%Q=;hA#W^Bh&cs;=qj|Xbcb8A$OjLj}9yTdIu<F<#g!6?i}YEnbGv@n}qW*#iWt%6UCt`Y`Rbhn`&7h*7c;2KZW)5EjYQ zmTh9U$(LmRU}va_tzM~3mOMH=GvjbmH$VTAnudms<-^s+puFrEL2K#U#H}_yyVD_~ zW8;~qvpWBa4jb!K$YkWze7Y?gtB@jKl&kZ)g$B=tf8fe;Cn3oUF_PwKS-opW^+19; z0v&wqUIS+QFS@=v5Ucl%yCh^M8D*1%>|}4U_uhMD?=579?2sL@Lw5Gw*<_Qw2_d|f z@9%y8e4jr=&pFR?&V66w^Z8uYeIHJ7Iof_TzWPVb@pC?~jzhr>wedctXq!Q&+h*{> z3gh)vQ|3a!;_I7pw0PG3PNM8_Z%Z}j-;1Z8_D~xyR?W)t z@Ck^B$kUK16EiA|u<6nI*ia^l435_@c6_gozmMT9e2y@69GM+?H?;br_#MysyidUC zFs|Mu=ywMGq{KD-7cyGz4hwu~Q&lIXXrB$w6ciLhEu#0m@$(5sy=RHsC>;YP-(&fqotVH zr=;eUT4S}gYJ9Fa8Uh-es`ZvE&G=VV?n!q^r+J$qU#Sh+8`=5mN0Xwd>h9k)uZt|P zpeg!}khFnVXqo>4Lvi?9WM{IX%dR`>8>>&*_)tvzH?>zbh|E=zA8qDPlUUN|BbicN z{&QS%!n8|qcWk`!TUBP-oTsb7vpi0ZWs1!op}7|3PrgF2ut5D?V4!Kmiqo&d%Ydox zTB8951pG}Mu8xAs(l7H~*!uX3bM$u-U#b)Bi@I_hy79Wrxt``-X5jCts;HECp4t4G znc=isyklf!#B(yH^j;|QQb&ojw|;+7XyS?HA62IROEINj9gs zJ36p4rQ|s}(m~(N(Za}&bsXR8^qWV%`_o{8glF8e?g|GB~+%mlN}L$)f4joXc73Aya*>5le{W@Q{5 zS)a?L8CzL>pnMa#cy>t|`D5>q&SbO+p{PQ)X$7oabkgZEECYdZKmXn9JxvTaMkQ=>0b)$l@Wa|oXhJ=?IR!rl8q$I?&d zd-j^=YMeiV{J=hxg8IMLS(j01Gr1(kj_Oeo8^;WUFyAEK8`p)kDcFccmy5G~d6vy% zLRd-;<2?S^_4ekZ`n=@g;pC$I-%Zag+y&lC;_JkltD9!^lrNp@f;i2VuKLmUv9Fw* zDvw=lZ+Lz2^Scsi`W;jSIt0ID;$22ciRX51Q>cw?@*eU~#`+Ew%y;xm;4Yjq-uTre z@cuha^bO5?eG_^Xl>0SmZ+)yMTiSg4-;SrRnDCqT=HA%T%gy^|D-OTRd7M7%|2UL; z|JEmka*ova7iv~~vHMH|6!i*(R0M7TIaoqz7NP*gBG?sKt2EJ zaj&w5XdgKzWgaf9oK7AM-K_2(K5aT)IJ(-up}d*7IcF&LguNApNSA&+9sRnA;q#}V zN#FUN&!wv#LXVi98RbHUEZc~K+;q~X+m{#4dnej+Y;RvzBLc20suc(Ca`orD>89pR z$?{T92gpe^ncG(BCM|Ymo$pjEfW)XeChj?Rjf4e%ElUExc8NF-bcPyVG++A2`PV^*cTWx6vOyp>az`z zDxt7ak1;C>9x}T`tKmZhWekZbGE}4_C#3KJzX6Z%a?=f(f*_h+aaS6ANoF}}wdOUu zmG4?iP8ce$KT@5Sa4@L6@S~xW!djqAm(2O5Sv=lapB@JQcXKpv`q!`4B|Cirq#%Qz z#T~(Xp}jZT9h9%s^sU{%_Dt(PeHNY>_q{Bu3S!DfgpQjAjQYf$(xXjgfq3IAt=vyu7D|NHIJCmw@O%y$0^ z3Dneb1i1)i|J^Ly?t25;|IZtT>WL4Bol}J}zZtEwqThpvMP<=7XmR8>Yofv4SFnR! zSE4o(n#8g|h$#4V!Z(hpC+-rH3xu8KbxyXV7f}q1p=MMBXffy=d zjgo6T#Jd^^!)(@w?~e&=72dplr-^)q37=N2w^{7UA{1 z(Jdqk5s!J7yE*>2A=g4qd5%pG+oqy8bXtQtUDI38O!PE9^Sg#AtZHx};GY#!=8u3&?A^14i>qgvpdoK{}A z{$$D~+JxKwG~}TObtUAIEJ3;Ck|S?swa!~b@3JJZ1zB~imuFjWWzl5V^zBTzOJR$O z2nviUBPt;2+!LmZmNas$!TwHvU#4~2!E4sYgN)WOjz0A3%>JtEkW6*&Y`bwa`Bgpt zMK-_B_dFW8{f%_p)bs;9j@6C@Cqm8$9A$S_JX%@YFRm4c**6g@!(WKfX;{ zxi!p3H7d3VsEilfm&Ha@&S^eaRGFB3{bFm;!97|eyUyE$TLJe)f~2vd#tu805@q(6 z^84Rg@!D37i%Mn@rz2-pvv?jj&b(LUOrVm$l_J#j-e%LWwjTE^^>X6pNPkxn-);I> z9_@o%1f@8;wrtlUGlhJbS-kL^BA!ju!zltOiwHwnQB?)Iy3gNU2AB7LIC|}*<>OEG zQTloGGeQO2ha%Da6Hm&LH1O~eznvpYy<83DsVB_yr4lnz;-w%%HGYd`JT~^N8s0cXssh=Bm<2}U;#t87VQfnNaNz+-~*W~N@ z^9LR6kR$AO>-u+!5Q^F{r0lkUse2EJSP1F{XQ!~Ax})7)s2Wl5(Kk8CJu1UPL=>jf z>&^~yNhtaExn`LHw@6T=e*4KC5d||t^Y?)rDMhx_-)jF&6&bFsF=J!5AMs_8eN<0d zu5@Ks`g1=Y>w<4$B)eb>Su&6&Yc*C{CNg$>mui`LZRNFw=3Mi~)W4r6dZo*}i&wX? zpG6l}y8F0X5S=?AP49^$Jad@FVb?k*W?_rSA0|&=XIBsF>an082@V*aet;XCeo{+5 zs7*w*STX9m=UtwaYOX{al)3O~Z~v9t+_vj^ZNg(|L3&1xiA4M)b#-!ruYx!oawawf zUc&u931a6uAEmdG^|65B^O@H(0iOH_dUK2Z$E(Y;*uK^7^ETQ#U8)@NtTrq#n(U5(zcCgS&$ z%rE}w5F8QxxN1!oEDHPHI3XHKh{UWGq?p(kWLh~-r#an*x!!eFCyY6!Zff|Hbz!oQ z4_K6vIS9*KR^h|%%-7@p`w&v$;!yK))JrR zy2RTKjX3IxE+=~Ytn1%jGBXBQ@;;Vw`sfcjOL8}(dQ1d;aH~n@v;`+Xxp#f!IM7S+W z`R7v2D0D>n7y*gVzM=V_oM#h{PkEeinq;0O(j8oPgwq!l$7t!9{r&fNL_8#_`4gE0 zj-z9&_EwYsm!iYop$iQ?J+nWW{A#vE6g@0KCALwXcjsvKDJ3Zo5VF)8ONvEsMCYp5 z6C_a#r|UEx*kX&6S;fzibZM$AJ^UGu5LUqQin)^;pOM14&xx+A+xK77_51534Jr+> zzS5)DzSsCa+E;+H-@LJc5JjuktJmmVU)JS}_?CaARJZ_o03SzkExzD?L-r8VRO~gp& zXy~P_&el`TOuT)NqyD>?w4qnCM1Z}aBc(Kz+Ql(YkvzD-w1$O4R#*oyy{dOCA!WsT zPJhF^K-WiiW=K^@g(^IUOV>m~q)Hw8{!eF{lxkd2QEUZV9<-b;Hf zopv*^q%=LMcs2La4*aC2MEVSk5==zY6##m#4P;X}{7W07C+zM?g}?Z9c6vBlhUj}T z%GrrDZ|Kt3+mohRh0{krr~PIU!-N0KT{|fST~0bi^|)xAjE{9l%rKlXFA|g>!Y7_* zO6o}_ZZ4_fjs(_@AN>5BF?~ydBdc7jM)pFEe_{|PG72b3y+6_L+o^gxK(m^Zlx*nZ zPSP{pn)Wq{PWaJ#gvzlCqFI8*$gX(-Yn^*pB@YX*R?d*g8U}gTnb4iunm3O|a3Y!h zUTZ|U{^-xSe)wc-`@uLzQc6S1;sIM$=ID=oY;w-7+R?=Ps4+4(3XvZO0h37I_V|OM zrC7aAP&ZEy9dw?*vjRah>3D=pVP^$6pmoDCD7S88QZ=Q`HjbM5NDOvmc&eR6VjqVM0o zFP_#MjElLgP3L`rZP^TtkoLdW$Sd;hEX=h3Jy20R$C26foYK}_b!7Z(Xzh_4F(8UA zg(CC9uHk0A$O^Y-0|(gytDK#$b$*C{V4|Jitvf~(vEgywUu{859&eQTT*}KQo5z7P zc*p&=zxivJ%k;Sp zw~u-|qw6&I4{xp37&5W*GENVA3m7pIe zuS>|RstC4=Xujlc5|}(r?~2hgv9Wn9`jNxw9}U{Q#G0h;B?t8ok}ICdoM#uv!O_3D zJfd7Go;;;){M@CqAZ}|*I(%Wjh+q9A<Ki(EBA@%BFV#BUx)G$|1ete<1QSLR;(G`CxQ zh@tHFOSAF9-zK!j6wlFb4kevP)`C$5dF@E$c~gTeq{QcHDEIHZ-+GENHi2VPA}ZF5ErR%J=;z7y z>?h5x?U-sTql|FX)`6F99T+8;808ixqXdyzR{gA;P8f1Cf)^f|?l;Tz{fvWURjL{F zc`1j50mdV!OLp&rI-gLd4ZLa_R#`bu+teST2n-n!3c=-yN76&KiVL&SY`;QO?x;-G zsBKKNwb5uL-S_*e%)jvOxXG0Lg~OKk$LO+WpKY*G91{uWKU%oZY1gw4b`CI?L=0f- zsq0&_4*lN1Myq)ALDs6QsT9lBC2(ojz6AY4W*CJQ9bNkxel0U+t3#dmw?<5<>HW}m zgZ)!?UYi;csA9#xR(-L#Gcyy|h8mz2TvPUO+0K=f;ce(}w1ni}jhPuy%OB}}!vvub z^fJVrJ%i|Wti_|ap^AEX!Q&LmCDzn9cI8~20ZYT2rn!mVCdO8(6N~f6qV-Z&xqZ(Q zfAHh3=MSYXUo3Kz|8CEP*VwP)&@68aUBIMz<~OA+ZT99-fP)2-KyHe-KS z_H~l8bDniayqye{86fYGt5R!j|7~xgMq?M2^>b{j9gXpafR@%%IsPlQA>K2h%d`Ew z($XkKpTqE}-BV<>Wm*%_*}IXc9I{fW?N9l+-_)FGr14J-w$47u`khh9DkN-;oj4Ob zxzf35XSjhBR6-%ne!Ale&rLkGu)QQa4Ph4}G(4SNCQZ8@fo%n()s*=o& zcry$tB|`Af?yEdYABug6`(gtpwfLds+k1cS-POi?ZDTfF_uX@>8Y>Q0MrGKE7>$Xa zyCtVZq496LuV5jh{N`j#1cvu6Cs(QJV-4XJ7J4byL7+&*T9`{Vj@wxpg| z&de@X4kuqF^Fykuq9+nmuTQmZNC#vh-fw#w$5=QdAvntzWDQdv1=43xJ&F`D$8;sP zpv_{yKJYkj*V&Lo9vG$>w!`JEl-v&;vd?1djavB2`E-*9A%j-bE5e%RW=MA}QO^Uj zNu_xg3uiYZ>x&}CkGsi~53Se<@7r-|Bl`1E3AV2}EjiVoy#J^E634%hc{kJmmYm>xEF><~v|EW2cKx7W%WJ#ij^(Wem;_N9DY9svY(_en@F#mMEcMrKM z{Su++I$qCI?>lDOQf4LZhXKQnlTNKmVo$a$Y1X7Tboh7}Ud!fz3~@MtXvfV{Q^@>n z)lFA0=EZ8vtoQ~S`(OKMM0(YyvaT4qi7EQukP^FsGuJ{Hip#*V9^ja*{9fgZV{M)L4VO}l{-NdG7f$V{qE!uDZOYWw8ykDnxPLOt z>)TlM4UcLLr|RYRyXIa<;N&ZZ0S(3pMJ!YQpqSs@+lv}xz{JOQ-F#>p?--sXVr0b1 zmyV?&ZczQJ+l+-O<{2jOZdnfCl0_VD|{!F3nd zo6>hxP=^;8$xvqqOYx9pz_|t@+;%dIt=+s|O;H7OmnotD;O<`iNAFS?RnpM#;pMyt z8{%gh#%Dc#_}plYeTWnf>G3wB`3&xTe95A|^S*6Bq%EQ*mHqpV`@Ruq)0Wv~D;&FM zM%@fpnL$WGuNXAj*m3132l$ZplJEFksJ8Zy4>m0fX{wqI&0{Lth88B4z{7mW&Xc>T zs_p8)9iR1PI#Xy#p;_S_73DaNy{S70TU|G)oU-F?_(S}wk2^8XJRj|$&`Pd?lxIXs z_a6fMc|Fnm-P}^nc1wy-n|FoO?`Ky0;`+A+2ys)es&$0$oxEB!<7V-=CQn$kQ$;_O@ z=&j3*a5woeEH(XG>CA*4FIrxQGTQEwKm_s~J(_p=0$-{ULMA(ghE8Jjel7o2%G0Nl z%_5`V{^9nLgq|I_uDrKbEaoBuOCjc9Y$_xoinX3EoS-PLp*VGFgo<6Gb@wpgkqp(n z(mqKgsi(v#gidXeYEr}=2H{Wi9@sg4XKW2xY~MZ^9aC=WlzbR2DljUVd`j{qXMSMp zpkABK83%pB@t*+ivlcNaDseJ`DPmQGN3mVlW@`%hF;o5wEx-|<*$`k|p{hD|p1R|cbwMJ8k$$4eijq&pH&CSE_p zn2goZGckB6{GIZHOoD`U2~)MaOZ3V2SD7@cWR8__&$Vz5YY~;_1U?eSDLxHh;Fnb} z@^MLiIVWqYhL)^Im9BO$UNbc-zI0gg;x|r_)mr|83;P*ksvaTsL?lrIzAEvr4JjT? z$Pe#TetM=gR>nOy_1huCr%GL@s@8tmIHvDdx|Axks!B;~#n8z4UgA)MB7N2-1w+c< z>@sc2DC_JejrGK)!}|B=_jmE#-qNwCsXPwOwkiXiS-bw9qBNG=}5dVne_cF|e zPbO9rLBIcCTcE_qmQ>VLiCWjBdZgbYzWb`F=kFK~USiZ>iL8jqUBQemaoxs_@BMv_ zHYv*C8buw#q`UX2NKy<;SVbqV1JuWO0%OA3c5^>!zi~ijI+9SGs5)@_QRAg+>=f2P zkz7*dbxfU=moR8YTzA($qoOjYbJfMLOcNV1K$#_A+_GcSL9v^vhM7x3M+;xZ`R-9Z z25wJa^iT#GLU~4JI6Hb}i2m`ibNBd#oj;j84K7p%QU-!(`i$304zO&0Nd3uQST=7D z?O1Auhb;RG(8jl}*)4wOrZIjbEhoEJwEv}&T!1_!>nkdUafH7?i$UeLa<-^Nl%Lw` zZ${ZBpsdJPyoAa=Jb~Ae6)&ErD31Bsl01q=>zf2pKEfE%ES2hV|6rHJ-fZ|JgHre7 z!wI*Ki1B4*4{(KZE9%1)*~6{M$fcfa7D;y7ni<$6tbXYBtjpJuCes@{2)1K{a+u2u(MaO+&An&Si8x zHlNki)&1>}^Fe5K9OCV&Zo0B=ygn&iapEEs_bbHRDl*0ki&1|0&SK+95E+Fn{+Mz# z>*M>%Vi%?I-_JL;cg65NSYogU#$kVO7?u;H-w!v)_)2RvX@gU>?U0|WTC8D8fRtPy zRB5VFoBP?S?Bk54iJg_d`5UYgzbHnN0}lH<1hYF?B`o~B{gy2)evP_BGcJbS+-Qop zA9jD)$Ay1=!c|aU&HwbSib7x4bP1_yyzR;7RU>n;THN=U+bD{)n4eotS??&T`0bWI zyl^RQaM)#dXi@JKp_`vcEjgpnwv2r8JLB^-jg>1OP5KWnS>Y}w2&?V8M^wLD@UeA9 z3v+0DlYE)@xq2l@PDy_S=QtGU$*)z@+GWv{SCW`nv51)sk#F7G+pP;-eOoeHdRN?m z6HQ@s%%PYgpC|X#+}BaTuFmU%Gx?s7I2-Sqs{C2u%I_gm z3BnXrFOT9|8wzq&7S^%6avndgzSFte;k~cCh>iG1C}wzAf!>e()P*geK)xrS=7bAT zL8#HB2+d!eVMcKJz80ZW(5axQttf+4;u{uyE$a9>msNB%3AUeX*`J5$P&bkxIaYV^ z`oA-&pU5nrL75rK&`yyT80|elyr22cwW{>7zKvyE;FsRAM(^(BdsH8Jsif}@8oxen zr?V@kuc)o$gHWQ^#Bn;T2|JO010&2++6C$za5M|#&}x|k89+_auQ}` z)!PbUJy(s+5$zKZs;}&;)cOAE@8ESEFbbLQ@S?lVO8Es~;Z{htXvYTkrJ`!r`lP)V zoo8Sx;!!7zd46}=a60n-mD9YDk{|2z0M99^HeY(vE~O)*h(eKRx@wVJHLWFkN`yES z>1Xr)3I`_}uq1^B43j^Db z)PvYa2Tkra?7xTOWnj z?*~Scw02Q%Plva*XnTxfDl03Ar3T$_z#>HzZ0IDt)+H|{7S4W=OfiUEF47&y)h)yh zHiQW*BpExbv(~EYb-D~s^`4TN+SjF5dTL@9yd@;&pY0jMZ(eX_#Sa- zYvtQX@w`!KIXNYIywDEADJynMOH01tLzhPvE^48cWtu7`P;;uSomCxL+k%ndBWY{!nTML28y<4+S!Yj+mTQB#U zhMJr2=$7J_PWGK_Pu9BJt`c}!INl3&cS2%f(Me}mNzH$?DF+Hu+wG>IPx9o_P3`R; z2Db_3D`zz|rC(qBSg~tW_78P;qg-8Gftx&e@d=W4C@Aq^5mLvU#y*^PW*jF#aFgzrmz1o91@ULILLPRLUW8Tw*Y1cW0?(M+>Q8QE1phC6Mk&zMqIU6%$IUJvHo_ZTt*La~?QfjJ+kx>9lB~0_c zz(9I!Yr0K!if}OI(uoI{6Fmb13p=~mn>WaQ0`K6~p(A3+?$h+NMs98{4PN;Bw%haQ z=;*$TT0lb!w5@b3*?qHJ;5*%!ZiA^$&W#>0O-f5EAvwM{*=A#BADNkvqKIyWJ;Z+* zPAQa6)5CxuBHV>@0WE=SY_~P`0{S80l(o)?r$pQ?AKZ8bp-=@~U{21?W#7MxP{%I) zJ3k)3PZ5VtwGYOtgLj>i^Q=U>wiSjqARr(ltGf*LS@SsAvYz0FhOXxU&nZHeeDePY z5D^g>gB@ryoT1e#V6^G`_@u3;c}9X|@9faWP#s=um#&;$-inImX*VAWo5U$)$7M)KYsKd9kFy6K8)%T z&Q}(ibdDtD*RABTNbdak6FW6ERXj$7BKj*|-pPq`n(y`bkg^&kG{^L<3czIM|IC%gk(d)$G! zt|V46=cjXOM~A3vDpvs=`kPtk1(h3*pd*fsI_N|7dW~)v0ic7sc zS1MS9VWsBb^I1h;}1`22tE zWMCw!s;a%-@uaPWlkM%s>r*OtHDP^!r1UOug0V<_Xu9ZeQ6cKwEgYAm$1}3A!PJ@D z+}>U}SZV`9OY_)zai^-P3d{~JbE~T~H#aCPEp4le7BvUz!#EG9BwDvm%IoSb4bZ7bl*cL3~hcwexATG7)Zk&uu8(Kk`gCuv|nCO0pSU*_QsN0M~V>v=cm zK$)(0Wz^Er0vkVCW%Nw~k6K$_kEY7kJk6=7h%NQK+WvELa=2AkiW4Dr+ZW$?ixstO z8$>hZ7neK2A%Hu=&>;#oZ#s>Pj<&V7A{@H?*y<&D@+7Oa_MA0`=^hkleYUH8!WS+Z z7FNIqz9_yhEF&mwy5@qxqb5Ly@R>!UYIMJ=tBa6`=y$WM?&r)* zAK0dploUs*EEI1ORtrR}p#um)FBoa$fGPAf5@EhM@c^Pd%I2i=23HhD7E%HczYme9 z0$;4)vE9DF88|5W>(`q*J0hcOFe)&oZL1Do?r`AFbOka5V{q}XtdD)Gc3i3I^mq{C z3m7b`XJn+L&>-#<7r%t~eCS3bGrF<0B{a$g5mC1^5yJMw#Kbps`ubmi9*jv*(9T;` z)rsHqS9I3qwX?HxceylIY9|cm#6%~gkI~W5@h1))hS7#)>JjdJ>&Lj^w+F7QtbB-y zIzH-S1m~Ba!s#Cz9GRaV>|<>DFm9QXmlrIQ3EoxnlEJ>(A#WBf5MkP?>esP5qzzWH z!GoQOp^@on35sZaDEqE-MJdtX5 zL+A>dw!+hyJa5HsY=((=5ZqS(>%ug_hIzV}=Trh6%ko!gjrsB+$A4{Ne*}_LU8$L^ ztgODd?(5#>T(Rsp$!Bo!ner&rGZ6!(*;Q3|ZA|7C7J}G_;3DARPEJk`v+@fIg-6-^ zTgXVFf|HY7YK5=cbkVHA_4dU^6RcHkedjsy}3EK870;|VP&09S^g+;pld zKwmp{ha?~b9j%_HJJ4QlP^OLoqpCXpn0Dg3q=0vsx-n!%z%!Vnd>qLG8nb4{)jCU~cf8+6-M67hE7eLbS-W0I%aAkvri5(08Y(xY+*ax5TaXVr`uR zDHWg$WI2cdMqQCA_{sGTRaBy>dZZ1RrkznXm5-tsWYC4*#2G`%xwl_fKpQBuus_axQl58pr)T} zu=*#U!|-+^_ie6es|3aT_XDPY&{X?AfEoYu;cwucNT_sA3w6jtc7aV&z%}G2S|NYebzrQOlN|W#cDJj=-r$8X(>*@WciZ-3im)OJD zY1VOZ#9`3;Z?q-ua?q%E#<==OoemTTWgQOgmf}6)*wk!Ats!)_c~087$NiH3xTW%y z3xYI1?VxuUmOU9UG%QbXD|%dm${kOx@*sC%fKVff4v0&F*KpT@bVGMW~{1+%LbKkIav8j%<`$wJ^?8~6a+X3v_$&ZG|-Jfdow)^ATh1~k(eG7 zZnz;Ep4$fVxj;f>v+}3Y4bC{XJ({;KmlshD2xk)Xh7i7QJU>k;(BsKC{-a#fO_0-> z1T;!oyO1jQ*Ogjmb~;0A^t)$To}ywK(+A7cin;60{QbYY%tUV_4Tl2cqt}bO*j_mD zt6od?6=|KpsntD)x=nPK%AJQ@I>7}6^*)~iHZ_>18+Phs(d8N5YgicDmZ_6$tTt3U zy4U>Y51ZLgnh8J_fErs{TO>6FXUof3Nf;;Ov(ur1lg^!8UA0b|IH1{gc8V3L(!I8w z{~fQUOHPDY(bzaRU10{<05Arp?==sA|8dkCpa*Ne zD&O828y`0yKq~!lgbLX6dsS5y4eHGS){Ov=hO)BgvjyLDz^e3kXjwEzd-eM)92_X} zyXbdTOR%6W>Dx2k;0c-z#E!Od0AQ8 zZqvJ*92UR=baZsP&5>uu8q~O`-eHRF-#?`iNW0KQHQe75{EBFLc6N5$`PBAcEyY%~ z@Q1G=WXr+^g_?+;SVh zdvJ_wUQ$X5Wo!@hG{fjX*7(?CT+nqzU-W?={l9MWmCd|#>e!xd<>d(SyKPB*s|5o; zwzsx8U=1A1=$FF6aOe&@KVAmK5QNbCI!g9#}roUxyM9DKMd7oHHiqobpTv^5^d zjNZ~Vef@X9k7&Z+c~DW0p38pw{#`j$cx!tbQe$^{|G$4c&`}+E{8@&iq2E@wLzf@Nz-m-aoJ+Ekan)W1CGl1R8PZ$0o!SbZ^ zjpTH;Jtuo*O>IEt5S38^g^G%bG74yK3(SE+cV$M+&CLY>aUmgX?C$0?G^7G99Zcg5 zZ(I7RndGDcgM8GA#t1L~;Gl>CF8G5>eJYgQKFdB2#w5Ol_rRzAqjrl*alP5Ax;8nI zmxZvVR7Z#S>C>k`xE@A`!MOk!V`cN)*OJTtp3#K0_V=R?@!#<9rAGlq2LFUO16ctg zKR7SoWT8y?@fbdS{wTmtrKMQaGXo8$UC376_MRYo%h^D~9-_XyfaO|Nb2t z!v(cVpDAQ!*VN68KvaRl?SRauDSdmg6jqROI{Zd~x8b4@1sDGwuBg;do zebsZ}lH~Gqw+*s6(D<$uppaatYsmb6?*fd0#l**8`pjHhVWXSI5bfc%4*FS#yc8%I zCH`M8z!Qq;hkMV?dOxcWCPIn^EY3p$BD~MaYoB{Eqks2Yo5E*y*9!HnXaO-z>Uu`# zGj-cuuh}ZnJR2M8GYc5e)?%%_Q zoT{@fH13@Gdci9;A_4; zEt}aD(BM?p(|eAMVt248m@!M$FtS*$PVcbTd>3K?ypM}||Kjozbk(tm2}K%Qk}&Bs z5!wa?EFz9~S+J1eek2L6q_?+srEgxYg-ZAkU{%m;fQvl}?*R0uUGEYBusM>L8=4C- zKm`L<2gDCP4&(vg?b6h-pr0;DepEkJ{T zWdIqw{Wdu{xmR}@!CBMNNB}b^-~yV2Yy>yE;!ry^J1Y`H1vaRmqqDj;kOJV~U`$C4 z-0%fnIEw!*RRHVBkf-r7<^TQ|%MT>Na%o5r0MWD=-cZNp_l}rW0P}~f!%+O+&Dp@R z_84(0Y|&^CIY21n@cGBFySocv*wobYR%jgr#VbZK=WA){bDU5>ZRal*8bU*Ro-dWj z8Ge;EKMSCefRJN%eq?gXzQM68?bfaw%y0tcZ1SqA68@(H0rLl_581?@4COXvpd-Nm z0gD5dgAfT?RGE4^6MAxTG6XPC51@TW?(JJT@VnbN(b5VhLt$fMgF5G}$^bD5Y+Z-A z-ptRzAcGCVcv|ZOP6KK=}_{#xiwu z7;P9Mcm@#!B%n_qWtp?}wzne!{{fN$vvLRAGbxGic1me*v()LAPdr?mbv<8_s?MRN)x`y2H*CGetB?wD|jr3y;&?nd-un$ijj! zGL$p)ucg4!a79aW>N`P*0xq8m5Gpg19LRk`L&L2ocCw`cHv@JG)UiabX%G&Bcg7|s zW2LDJ?Q0(gf) z73KN_%hVy8KoZHK0dFsiHHSK$O|?;_rtJ)WVjm8-#C^}rhKzu8JUEl^A1SdZASN=%Y z1hdXrdhPgp#z)QLm71~F`U0J!N(Uub*s_j|2z=hELwC8?WW}8IET`P3Pdj)n@d&PT z@QKfhFR#SC;-Jj2QIq&z$>a9t#yQ9R!QV?puoemMKVRrw5}xSHn2zq7g?aB+)y^iN zBsZkLrLpzzIOd8=Qiz%;l+*W?&+TnhdGfR73Tr;9G+ zXg)h}MTlj)Z!Q0BjY^cv8GGg>NJGtdq9KyMefoV4*QfV*)q%6@hk|}DnNWL!U7WGU z!{b(uzn`gbgKC&@!^Wj}-v!ui<3F~%^SrN|qZaSe$kvGf+DkR%VIyO( z(Cj#`9@b==A_!Tp^cYeG3V0PrZ#YG%V->UnTLR7w4;Rk8`Omzguw|pS5gTaYKefip<`e`Dm`@Lfe3bVGO1TlR^|tY1+;Tm+XEpApjfjxTX{pnK-0gz zrrQn;kPBf5h26o?fOgy z<7#^L`}4fccBk+gGb?L=YN1NK7T|Bk%TsHJj;pJy5Y3pFnOlIV0Nw`d+KT)|;9B{4 z5Uhj*^a|qn&feZFueq(&_}=g#BO`Kpd<9E0=h5QODk=g{0wgs!eq>=`2sk$|tEpX=TQagYSD!bCJ}@*i`tzp%90tV^2>(AP zCy@oLt#`xG;W722n}GFKx5f)0|G;EGZ2WODp#>QobX87}suLM>3_U$lAjQG%F1Ho4 z6??d3US3|f64Bk`Lb$2hC7kN?L2XNmm6N(F-O-dg`}?GIE85s$q6#vMfF{8rAt!Wh zpRn-pl?*OkO+90lh%vXa5-A*q`X2!)X&wx0c{vN*6#*e(=9e$;1;_+|=K^_DX0*d+ z)HU|?B@Jj1;2~KDVt7k^0YIQ5-2)Kxy}BA?)>{+|Qo-+0IsVmw*9*Ua(g(Y&$BAXP zK$YR_GTJ2R=*R&E5T*=(`t4F+v1|i-`)GA~F<_OqYBXReAjfP^o}~;x)_Vs<)CNy{ zFg>t&#xOt!Fy-KspcX48BCW5j!Ns>5vk=!E-8=V6YiQsFof9fb8%|toPcZxh?tq3m zZAG0vR9GQcQBeV!8l=;Z4nwFZfMN=MV;LNrno0~d1j4E%Ppa&5VD!K^K%`(IKnLWe zq@yF_?0gcAF4*!6=K*xg51X^W-T;Ux1D!y9JQ~t^dnLihp>hgl23z&OGFyO7ka3sn z2pV+dL`CmInFdN6FlAs2%F4=LQ)S>1xw*Mvsg~;14%jw~28a96mrqGJ@70ut2bv{f z+CdS3qdyIpeh^!c>otopNeT-?g=)?DMs^f9&eoPCgsz#HncI@Y>5Q$CqGFcrdq5dt zCMM6Iq5-8t+0PuAr?-gE#MARBTnHe^$r2q{j1F-uLbY)9&*msx)yU=_)(`!Kw>6Q4 zo9i>+K0jw?`#}g1Bf|#GxJb27)1`gY;czuk?`US>Issf4xEL7Py+&*N9NYjt*FB=! zx~`=q>O1I*{?GrxNnw6!AS9Cd{LQS3tEsL&qYyq2f>iLItQ`WO`FXmRe~W$wNbt(E z9i-O>$S_%XvZ)lqF1Yz({FwcU50#KXo z-WJ9Hsb%f=o!3~g7qX`(nj}Hn2jF<%`?=ZK0kHJ}tX=+TSs51>_w`;K;Kc8m#mQX> zkT1IcKn4WdJ0Uu%U$}~dvp~KeBqUVO!iAUwDd4byGYs3}KI3j4!l(ZO_nIVkdht^*`d z0cZeyAB5iFiHRVfE$KrmCmy#_BST_%K>;n$bTl+HNKUYN8(a%wA_!p|931*kE`XZn z?Z-(|KZ5LN&L-*Z&Iy%zHy$5zvy1ynDrY0MhTX<2a$e-|RB%ICd*6P|&4E^Om2bL4 zve14fV{-epZUM;@$UhM#GIeYyY{}#NARo*Qs)xYv>ZBDkG(zWWy4H_}XJ@4;qU96! zp$v{0d@s1oPc|>RvN9gj3n~d9BnqmkF6NpZFJ7j`8Hs4*hIg&pc2+oXLA4b6dPd-E zC{MrwOc+lk4UHa97y(d#primZ39Ke3CkK=wLzbjlCGPR#$3VS6y5q24Muc_UpYSKaNfcNaTZScR#DLgy%5ll02n88+>#UCf$#u62PL0Rsj1IktD?!t zHw=kwR_sbDDk|So#Bh_OktAXo&zwzJ2r)4+0aIDo+A3*k0@He5_s;^JR39j`v$F$* zq;ba?(BeRNyM+q?JwQ5LA54WxLU~iu5Y*|v=I3V?6oi54g4+rU3xgB`_yPnSMlzhh z?C)>rCx*)H+$5syHfksSPhV#qjpf?@eWf%|3Z>dbgAk%wgVIDu#v&^0GNsZi6|uJ@ zwQZ%*P6^3WiLy12BFRuPRZ5}ALuE+H?Dx6!{NDAh^{(~y$6mX*x$f&a&*S(`$9b=O zTC>~v_WWxvqso0_3|lT3UR4_7tsg|X;RB76dMvaAE2~mzrCJpSnM;m}i`zy|uBq{} z@iU4t-?yym#ltT*FF7N@UNnlEx1iC^J1lRxis*g60k0C(;sU*##VVWJwNpe*=3N^4 z`HN3tN@wHF3sC7uvrz%MNehmA^PGQiXsS)mQy|~vdKt_25q|Qj)hZHVKJ6V9OY-FF z2gT-D$cts$OFav{6L!YIYFyQ539***YsB6dbWYYcJ9nX|_I7&*Am#3Qqpp7n+bVz0 z=?E{XJ$C4!gyc7gGaoI79n&`*QX!L*xj5)bl)>_z>7sKhqdFe+32F53EEh3y@9r++ zzds&}7%5xCKmPhEFm-{p;l3Ze*m|s-MvI71%;%BEGY7xP>#l6qPj8M=yFc#V#Bmxy zL89k!tA{$g@|Rs=HQ!>6rvDvnF9YiU~*6#PHnx{S_=W9^TkuCRrh}H_IYSY=^-`m9QPB*Xs=bnJztD;~I6< z_5HBH%N|<`S9bDx@jlhZ%>#Wcqkmeqp8dZmORac-zoc!Gv}_Wu^P0ZAOx*bKdSwfZ zE{U?hXB$lFys{HJPxXjJPP>Uwc~>?6kHWrRcd{D!1!qs1x>!zWNhstl&OMbK-E#B$ zfrT-v4X%qu6?>ZR`g%I3ufe;S)m5%@E}T@TH7P#Y5q3VqXVqj$uMPVpBy;Tag08$Q zH-A4VvY(;)IeJ`dgSf|qkIMQ%Z(h8&pAnNb69RJm^68M2jy*iS;HtpMY4h1zQH&-V$(Mj!G zE(TJ~)LBy4$y)*EG6o3HY5>00hR~raDZUHH&y!KcsG#s3UKa zx1Z8e0Jh}iW^n4FuJ7iwZe%jJ0p9|yT@g`0 ze5_AvjaRo5kb^QNF?8sz&o8Hv$oSaANHoP86d0ZVxw)+s#~d6)tCd-^;fddI{hkwn zi`tJuqR_$G_~M=aLp-1e;y6yF)N7(1G~fENyBXjq@QQn?4d54h#wBINiWMA}0fIA% z5{4AXo1CU~{-rw!a~ZiVNpcIugXuQc{jIu2!;WRIOgr3u`?O>o;3D0tyT*$Rc&PB5 zB_CS7F`*HgYE!~m-jNeehC9zA0QLL&_NUteO35K$7Yq{f5ur@afc$V4-1#S7IJLqs z3xWv1lRHFu!M&&JCkNe7=ZoIF;e@OQD?#&|o3+Qy?Hg$#5lKgXY#D}fT2;zzRWg;YyQ%C$Lzv<-j!{K*lD6XgO$B^`Gmgdy#^ zXunA=KXf5tMPOn=!Xs$hia5Wj%f{OoX)~jna&jL2+`tDvPn8Vhi zsXt(yT*0lRq)c3tOi1WVci&76;w`gh>&&?z2&illyEzw1%gd37xeMM#QIkeV02Q5G zT)2yZysUoCydzg#L&KciVr3QFzP8p$Jo@V~5G>l>W0#~|?cX;eAxl;Vtz5HaguF*1 zC&H`&u7P%hJ-o6v4iQn}g3Z7!=gMgqECPrF!hUV-W*(UkDT5H>5x#tR_RVpNAO%P# z-WbPg?fqd~+cbKpUrcOl__b?)Q4RRgH8t)0m3N^@3OTvbt=w?L z`y6r;pcT>zP*D+H0|eXaFkWVG!ks&M6Hiv4Fs$zA67yLCfoB8vxFs&a{snx4R=Tjd7=w+N>{?A(sO#$Js=HRd%olRML_U$WzHNe$F zy}IYIh52QD?Gn~1Po3)E={e4ucg_kauI_+ng&5UL$~|)M;K6b$b<#tIv?s7M==O5ZF@bR*Pr322n*QEZ<(P+n#Xq=EH_VKNnDz)^gA7>=r-M-0JEo zXcueM#I(*wc7HE2uC1*NyM0>*1p#~$9UJ?hqT+J2)3WBa6l=paptwhCr5`kngsi`U z{`Vh0f^w_DBghmyQWXAQlEJ=)_YN*D$2emku3Dc15)4o+s2M~nzdafte={j5@{qcU zs_K5~0J|K>vq11Zkpx_lR$E%8RU94oXX6!{_Ei$b%OVPPpzd(V&=)|{j_%I=v2k%; z-yM&5EHY-vZBJK`6p;d#r2n)WAl$nQ&hic6w&(zfPd*`YVs}&bo=jUigX*r?bPwo-GI7LIlY4c|NfOq(puS-jRr(&GS zevJEB;;=TVNMB1Xt2b1F4GWJ&h(e=b@lfvZcaUV8!}X;A+f-VNYwrSQg|S2Fdjg^2+2Kqd zJh*_g9Jj_ObkT;@+>E`B! zjddk5(zmeCjD9ItxHLvw_vxCNS2%1T2glbA4!BORe-K2P;JYo6>nDmKy{RQG(Wtm1&%!a5le&UgYIA=Tqej z@$zIJv)WIW^XysDriZGGP0m)xrMbg9R~X$(RKrg$`Po{TmGkrXTy5^3k6P~eXP=_l z=Q;SdRDM&-k@}ob&L<(Stlrq(8h~hgy)fbO>u(7`*;nS@|DkYNN=;kFwz^X^I;%Uw z*7EE_`3Hk64C<8U1!St9)QgVv=@)ihrbJ4`9ZQ+xROQR9(dRWT-Tmm)U@nYZD3E@`KkLWIzBWu_IQ@J)l|lN zmFKG_4eP(eJ!!<(5yp3OW%?2CTcSKiqh%Wh^gK*7v`>M|^nF*TWmXgWykxjEX2&d(-hpkix>fHYXa3 zl=quD-m+R>JXqmWHsXa&p17WstHrL0<%y3>R~_r{Y1QMDo2Nr&Lj;B=jKneUve#ZUXqa%J?jh&>rH>V?)b^I{z3^djEe2{~ zi>5jp@4WTe{~x2Mg4#WGvpi-5FOPo}mwT;uuwph%V0nGn%+uNS#99#O*!?^>Jq3g| zmynFgY1Y?A_Bv5@KUG_*=!-DXxRThHYPt3^0*fnh>}N0{z#c<$xo zJYCR`LjK#1xlq(5YH-2lmd;O_X<>ki(5^2|4}BiBVLq0=etj9)mg$P5U7o-6>%cwL z%5J1Sh-)R@y0xq=&qhH+WW*%>kmSAJsSeRBkmus*3CeIdNjR;2xLq=Q%k!vR#F?gNaVw-`9{x z4uukk_V|&Jx*-;EXF#Qb3r<*!eqSX73vg)GryU{=KaR4uzvkjTREN%X&MHPcCf?KQ z$=tg~qM-^^8-W3kM-q3^m;fO4{;rl+xXXetPHAN{^v9{P9v~EaRRH7r2%Gekm98L znPf@GXEb!zH-OYId1>bvoE;&~dOfLE)nBI~)7jPaQ;l}dJSZXh6#1}uc=^mf2v&?o zTlG2c)oyHJ>OSh1kfoqZgAPh`f0UGz2#Knak~IL5whA9f1bj=U&)8FQK?i6+AfyKs zmR;Xod~OjU>gUMFafSSfLB30oZ3+qs`aC4_^~i46bqkbttg)iFW-J&npUM@Q zi36geqc3wj^SgH&P)DE+qys1DO95PHEeLz4?cDNB$!`Vj(|d6CHwoL)N-9!Je7qCB z09Mn^`m%X2uw>VF6N3!_K^dS0Y#pGHaNkL5VNN`Do)z0AN1O%#Oz#t>Hn|;)+|;>l zimVQ{h|8?rg_Vd}=fQ%(ppm;L9;~1bD6^Xp4F0u;U$R;WFa(x25SS1WeLQ{Lh?5Aq zrCS}bt(X`|(+yG}MZi|-EV1nx@r$DXP9Pzcp;6)Cf3i4;v*XQZG>%Afr%kilv0QN9 zxms!h8Y?CtI4v854}cItG{u~4xWFHYRM=J_daG&TWnhMo;h03_ah zqclb?C7&dO)mb6@9i%{`yu1Eypr`EE;Y)^HT5bC5;gp3v!bxv5Z2?w>nfyoTO#kVl zBm{D*-P5d1--q15* z2GDud3{6czNxpu42pDMmunHpnL>0ILQ>IQOy11LGM*Pi(hlCCW@W3$!MV5x0Xiq^?fW3i(`d~3E zi7UZE9z2$#P!C-T|4r~_{H2xLSwkQbc31b6!|U~fSmZ*DrZWJqf)uzAAr%Ruc<5v0 z3o?W?)6A0Jc3rc188#_*1~3_?iiH7>#9wo8h_o(a7R`$bQ?b{{6jRf`R7JS%( zIj-&d_m}QH>Swa06HlM0S&7x$_*cgj^ieO#y|^ZKn5h5ZbjwP(b6EsjB4hGTkQp3PJD#d? zD*KA7J<&Zs*C$rPZ1%qCY5wWe;}zOqUUjnDtGX#F^7h&Tg->z~K3`{!1kaJ*L$%Xh zQ?lFYY}%Tk*_3mtJ|G?n61_Hs(|nKNft-}U8b z`9eU+)zxDAa*8LN17ZdfrD0#e7{k`ctxk8I#l?|HWTrx>xG^!0>}RBUM{C&{M4ijn z6EeupM`n=Ur7dU5JQn%s#$~v8w%hD62=03-`}=ayX_E)k2-^IN(ZamOJ6Ep{W)s^y zx=)TC7>`%3`I`KwmN(CmgK4gs9&{g#EX$eL~LN8*8`A4W4>Z4>C1$gVp%3))6I& zVv)07M6NvNz5O>gaU3_5#}8KxJFH}iZoyL8U*Od%f)7mJ-Q0_C|6QwQaiYdtr3Gp7 zPp!~K@1W1;^J{d<-}W_ij5>4mM|!i8e$c&Tvrc6ny(8#wEL<{|GV1J^9ZC%7>3aJs46(PJLh(oL=J4_cbApKouh$cWmy7wdeG zZ^WM5VLLU(R);HYv{^f`-d9O%`_cp{CrU3E_^{<)qaOZm7RIK1axowD5-YPUuclc$ zMp6a89K;x%d3aO8s9;0gRU($({$=L^SfO~&9QkA~+3jHu?Qyk7pLE z{{~~lZ<`T(g+I~F8FGOK(bf58d{ehgENcKbOO5Ub=As*m`EVG7E|xv^OIEbh0-r|+ zo#R9Er6t7rfQ4LM5y!dm!*F)6ApnRsCa~S(WyhYGl60zFFdY)7RR36{y#D*Q1F1YO zPHi?Ha#gP3@s673;}AuJ(@?;7`HMRKBJ%g{{yxD5M{)dRi#^=#)v*o%hlOw4qABkt zEW#TiiE1;owDLepf~>55PMmN%c@}CrS{cY)NbFFb&@eD*1sqC)0Fkhuv#zg8rtm-d z>P8U%32_-_r%B40nVI#~`cI#>hMw*Q7t15UwGhM*p-mkBk$&~dB2SN-r;Vc8IH+ZS z(8}I^?fj9P<^X`{4R2P)#Xs1{Uyyw^Z=Ry*T4uLx+p2f1LiPu#_oTugL<^dxyyy4f z@aejr0vsl4%B_Nx12P3%|K^R^eNmY>!NRfh2AUC>98GwKJO;@~bi#f0W#C+fM1|?C zjEoFol5G4mg2%7ly~F7PskN5(blHLzV2;RYLYfiOPM0AFivdqplGN@zfw4ZLT#jZ!)?tubA$=OsG>ZtZMo`nM zcvV)ME5pFNCyqF&Y39Im!5syD^6zsH9I0QlMSv$<53PD9Gu@y(&^Q~LSgrDuDNBMB1hw}_MUL5)Us;1= z$Buo6xll73O|)* zY;A2#W3OTthGWFA*`VYYV0Iff_QmOEvfj%pG%0B|;w+?^w<1jOE1nYOp?f`}sB6~@ zSJe`{fufSub#QPHRt+dqAZwoOdkSuhIcgKVG(jbH`BeR&*KgluH2g$$W8!0@t82Z| z#q-#iI4w~m#*+GZ9PG22lw)fXyNAgW$QgGU+Kc<;T6X6V*$mM=|rh8}|+i1lCr~v=)&8B2LfHcYn?2GD(8x2p$@lR&J~%Cy*L`Urg?cMrWtf zlrJu3`-3(`)KVUcg8m0KHWyD^u;o;@0DK80sDWSDJ0*8`FnvK9!}yPp`)&e(ntZw6|OIDnXP5)3mt&6H-l zvcS_N$$Bc3SzK0KFhB*T2+{x0_l8pn{y@3^(rAmg5fuwE=j!Zy?xfl~IQrD_7OVMJ zLWluk67oWFo=wM7C;HL2ZHP8xOy$hdxDtY$B}1l;3DE88!6#HvQ9-A0P7(?Pnd#8{ zD8;YxSL?n4twVb{Yj{?R+Nz`>|8Q+YOwc2$*J>3V+(A@fUiaSp z15%7wJtmpGDZ!~>eSz4NE}`xbYJ|+|>t{>n|Gn_R;lYyXL>E`F+@c4)Jdi3!c(16o zpPa;4Vso%ZWqvlx%!OcDMpE3A`0;g(uBl?0L ztKKzv-L`W?ERaxYh|=&TP1daO&95ORy0bFfSEwi+gVvmNz#zva`xK!0{^8a+Gs(Rm zk?^ao#KszIsQ*$|7f!{(VdpUl7f`)Rh{muJdAlGF=3H<;uh0^xqU=f#J_-RV>Q|f- zEC6|+^j?kL_w4xO)nRLU<1zK|&ws^ZEZ&;;TvN*hA{iisXgt!ds54Yam{GQ|3ccCRV2Qr=!^=zI&9ON3!bqTqqM8<9u75noZ7fN&sIXnh4jk73%$(^ z1}RAS|EXo$`zec@KQZ{5N4luN(2%(WBmWK(RT7i-oun_-nwk3&Br1MM%{J3F ziYO5|=Vix+i_ZOj(KjI)0g?Bs95G3ZQDNa*<3~;ZuTt%vd9+VR@4uz1>i++KWL}Tx Y!sQndJxa{~Bf=kj9i!zpmfHRKKZyXTtpET3 diff --git a/query-languages/dax/media/dax-copilot/dax-list-products.png b/query-languages/dax/media/dax-copilot/dax-list-products.png index 1138c441e39532d074792200add2f2197b96c417..497ffe45606e9b9bdc26a21f2a5f61e758156cf6 100644 GIT binary patch literal 18733 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�TRH0oby@ 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 literal 0 HcmV?d00001 From 87b00c5a0982c9ab8872d5aeedb8aa02ffb84e4f Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 21:31:05 -0800 Subject: [PATCH 618/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 277fa5d5b..6f90760c8 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -57,13 +57,13 @@ To use Copilot to explain a DAX topic, click the **Explain a DAX topic** inspire You can **Run** the DAX query then decide to **Keep** or **Discard** the DAX query. -:::image type="content" source="/power-bi/transform-model/media/dax-query-copilot/copilot-run-query.png" alt-text="Screenshot of running the DAX query before you save it."::: +:::image type="content" source="media/dax-copilot/copilot-run-query.png" alt-text="Screenshot of running the DAX query before you save it."::: ### 2. Build the DAX query conversationally After the initial DAX query is generated, you can simply adjust by typing in additional user prompts. -:::image type="content" source="/power-bi/transform-model/media/dax-query-copilot/copilot-explain-query.png" alt-text="Screenshot of asking DAX to explain the query."::: +:::image type="content" source="media/dax-copilot/copilot-explain-query.png" alt-text="Screenshot of asking DAX to explain the query."::: ### 3. Syntax checks on the generated DAX query @@ -75,7 +75,7 @@ The generated DAX query syntax is checked, and the prompt automatically retried Type in a prompt or select any of these buttons to see quickly what you can do with Copilot. -:::image type="content" source="/power-bi/transform-model/media/dax-query-copilot/copilot-inspire-buttons-get-started.png" alt-text="Screenshot of showing Copilot offers suggestions."::: +:::image type="content" source="media/dax-copilot/copilot-inspire-buttons-get-started.png" alt-text="Screenshot of showing Copilot offers suggestions."::: ## Sample prompts From 09e981bd49de2379c8800cd1e65facdabdd20a93 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 22 Nov 2024 21:57:05 -0800 Subject: [PATCH 619/934] Add files via upload --- .../dax-copilot/copilot-power-bi-desktop.png | Bin 0 -> 86707 bytes ...ilot-power-bi-service-write-dax-queries.png | Bin 0 -> 108272 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/dax-copilot/copilot-power-bi-desktop.png create mode 100644 query-languages/dax/media/dax-copilot/copilot-power-bi-service-write-dax-queries.png diff --git a/query-languages/dax/media/dax-copilot/copilot-power-bi-desktop.png b/query-languages/dax/media/dax-copilot/copilot-power-bi-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..daf90ea01340b5f0dbdb29cdc8d03c97cbb9064a GIT binary patch literal 86707 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

Type assertion x as yIs compatible with non-custom type or errorIs compatible with primitive or nullable primitive type or error
Type conformance x is yTest if compatible with non-custom typeTest if compatible with primitive or nullable primitive type
Logical AND
, , [, , ]…) |Term|Definition| |--------|--------------| -|table|Any DAX expression that returns a table of data.| -|name|The name given to the column, enclosed in double quotes. | -|expression|Any DAX expression that returns a scalar expression, evaluated for each row of *table*. | +|`table`|Any DAX expression that returns a table of data.| +|`name`|The name given to the column, enclosed in double quotes. | +|`expression`|Any DAX expression that returns a scalar expression, evaluated for each row of `table`. | ## Return value diff --git a/query-languages/dax/addmissingitems-function-dax.md b/query-languages/dax/addmissingitems-function-dax.md index 32c53091e..7e47c8ca2 100644 --- a/query-languages/dax/addmissingitems-function-dax.md +++ b/query-languages/dax/addmissingitems-function-dax.md @@ -18,10 +18,10 @@ ADDMISSINGITEMS ( [ [, [, … ] ] ], | [, [, [,…]]]] ) |Term|Definition| |--------|--------------| -|table|The table that you want to clear filters on.| -|column|The column that you want to clear filters on.| +|`table`|The table that you want to clear filters on.| +|`column`|The column that you want to clear filters on.| The argument to the ALL function must be either a reference to a base table or a reference to a base column. You cannot use table expressions or column expressions with the ALL function. @@ -31,7 +31,7 @@ The table or column with filters removed. - This function is not used by itself, but serves as an intermediate function that can be used to change the set of results over which some other calculation is performed. -- The normal behavior for DAX expressions containing the ALL() function is that any filters applied will be ignored. However, there are some scenarios where this is not the case because of *auto-exist*, a DAX technology that optimizes filtering in order to reduce the amount of processing required for certain DAX queries. An example where auto-exist and ALL() provide unexpected results is when filtering on two or more columns of the same table (like when using slicers), and there is a measure on that same table that uses ALL(). In this case, auto-exist will *merge* the multiple filters into one and will only filter on existing combinations of values. Because of this merge, the measure will be calculated on the existing combinations of values and the result will be based on filtered values instead of all values as expected. To learn more about auto-exist and its effect on calculations, see Microsoft MVP Alberto Ferrari's [Understanding DAX Auto-Exist](https://www.sqlbi.com/articles/understanding-dax-auto-exist/) article on :::no-loc text="sql.bi.com":::. +- The normal behavior for DAX expressions containing the ALL() function is that any filters applied will be ignored. However, there are some scenarios where this is not the case because of `auto-exist`, a DAX technology that optimizes filtering in order to reduce the amount of processing required for certain DAX queries. An example where auto-exist and ALL() provide unexpected results is when filtering on two or more columns of the same table (like when using slicers), and there is a measure on that same table that uses ALL(). In this case, auto-exist will *merge* the multiple filters into one and will only filter on existing combinations of values. Because of this merge, the measure will be calculated on the existing combinations of values and the result will be based on filtered values instead of all values as expected. To learn more about auto-exist and its effect on calculations, see Microsoft MVP Alberto Ferrari's [Understanding DAX Auto-Exist](https://www.sqlbi.com/articles/understanding-dax-auto-exist/) article on :::no-loc text="sql.bi.com":::. - The following table describes how you can use the ALL and ALLEXCEPT functions in different scenarios. diff --git a/query-languages/dax/allcrossfiltered-function-dax.md b/query-languages/dax/allcrossfiltered-function-dax.md index 23b0a64e1..fd9dae58a 100644 --- a/query-languages/dax/allcrossfiltered-function-dax.md +++ b/query-languages/dax/allcrossfiltered-function-dax.md @@ -18,7 +18,7 @@ ALLCROSSFILTERED(
) |Term|Definition| |--------|--------------| -|table|The table that you want to clear filters on. | +|`table`|The table that you want to clear filters on. | ## Return value diff --git a/query-languages/dax/allexcept-function-dax.md b/query-languages/dax/allexcept-function-dax.md index c3855f2db..7ed6c9a1f 100644 --- a/query-languages/dax/allexcept-function-dax.md +++ b/query-languages/dax/allexcept-function-dax.md @@ -18,8 +18,8 @@ ALLEXCEPT(
,[,[,…]]) |Term|Definition| |--------|--------------| -|table|The table over which all context filters are removed, except filters on those columns that are specified in subsequent arguments.| -|column|The column for which context filters must be preserved.| +|`table`|The table over which all context filters are removed, except filters on those columns that are specified in subsequent arguments.| +|`column`|The column for which context filters must be preserved.| The first argument to the ALLEXCEPT function must be a reference to a base table. All subsequent arguments must be references to base columns. You cannot use table expressions or column expressions with the ALLEXCEPT function. diff --git a/query-languages/dax/allnoblankrow-function-dax.md b/query-languages/dax/allnoblankrow-function-dax.md index f052ef506..9f1d3bfac 100644 --- a/query-languages/dax/allnoblankrow-function-dax.md +++ b/query-languages/dax/allnoblankrow-function-dax.md @@ -18,8 +18,8 @@ ALLNOBLANKROW( {
| [, [, [,…]]]} ) |Term|Definition| |--------|--------------| -|table|The table over which all context filters are removed.| -|column|A column over which all context filters are removed.| +|`table`|The table over which all context filters are removed.| +|`column`|A column over which all context filters are removed.| Only one parameter must be passed; the parameter is either a table or a column. @@ -31,14 +31,14 @@ A table, when the passed parameter was a table, or a column of values, when the - The ALLNOBLANKROW function only filters the blank row that a parent table, in a relationship, will show when there are one or more rows in the child table that have non-matching values to the parent column. See the example below for a thorough explanation. -- The following table summarizes the variations of ALL that are provided in DAX, and their differences: +- The following table summarizes the variations of `ALL` that are provided in DAX, and their differences: |Function and usage|Description| |----------------------|---------------| - |ALL(Column)|Removes all filters from the specified column in the table; all other filters in the table, over other columns, still apply.| - |ALL(Table)|Removes all filters from the specified table.| - |ALLEXCEPT(Table,Col1,Col2...)|Overrides all context filters in the table except over the specified columns.| - |ALLNOBLANK(table|column)|From the parent table of a relationship, returns all rows but the blank row, or all distinct values of a column but the blank row, and disregards any context filters that might exist| + |`ALL(Column)`|Removes all filters from the specified column in the table; all other filters in the table, over other columns, still apply.| + |`ALL(Table)`|Removes all filters from the specified table.| + |`ALLEXCEPT(Table,Col1,Col2...)`|Overrides all context filters in the table except over the specified columns.| + |`ALLNOBLANK(table|column)`| From the parent table of a relationship, returns all rows but the blank row, or all distinct values of a column but the blank row, and disregards any context filters that might exist| For a general description of how the ALL function works, together with step-by-step examples that use ALL(Table) and ALL(Column), see [ALL function](all-function-dax.md). @@ -50,7 +50,7 @@ In the sample data, the ResellerSales_USD table contains one row that has no val Step 1: Verify the unrelated data -Open the **Power Pivot window**, then select the ResellerSales_USD table. In the ProductKey column, filter for blank values. One row will remain. In that row, all column values should be blank except for SalesOrderLineNumber. +Open the `Power Pivot window`, then select the ResellerSales_USD table. In the ProductKey column, filter for blank values. One row will remain. In that row, all column values should be blank except for SalesOrderLineNumber. Step 2: Create a PivotTable diff --git a/query-languages/dax/allselected-function-dax.md b/query-languages/dax/allselected-function-dax.md index 959e646a7..51f0c4638 100644 --- a/query-languages/dax/allselected-function-dax.md +++ b/query-languages/dax/allselected-function-dax.md @@ -20,8 +20,8 @@ ALLSELECTED([ | [, [, [,…]]]] ) |Term|Definition| |--------|--------------| -|tableName|The name of an existing table, using standard DAX syntax. This parameter cannot be an expression. This parameter is optional. | -|columnName|The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. This parameter is optional. | +|`tableName`|The name of an existing table, using standard DAX syntax. This parameter cannot be an expression. This parameter is optional. | +|`columnName`|The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. This parameter is optional. | ## Return value @@ -29,7 +29,7 @@ The context of the query without any column and row filters. ## Remarks -- If there is one argument, the argument is either *tableName* or *columnName*. If there is more than one argument, they must be columns from the same table. +- If there is one argument, the argument is either `tableName` or `columnName`. If there is more than one argument, they must be columns from the same table. - This function is different from ALL() because it retains all filters explicitly set within the query, and it retains all context filters other than row and column filters. diff --git a/query-languages/dax/amordegrc-function-dax.md b/query-languages/dax/amordegrc-function-dax.md index 931401fa6..dad9dd44d 100644 --- a/query-languages/dax/amordegrc-function-dax.md +++ b/query-languages/dax/amordegrc-function-dax.md @@ -20,17 +20,17 @@ AMORDEGRC(, , , , , [ |Term|Definition| |--------|--------------| -|cost|The cost of the asset.| -|date_purchased|The date of the purchase of the asset.| -|first_period|The date of the end of the first period.| -|salvage|The salvage value at the end of the life of the asset.| -|period|The period.| -|rate|The rate of depreciation.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`cost`|The cost of the asset.| +|`date_purchased`|The date of the purchase of the asset.| +|`first_period`|The date of the end of the first period.| +|`salvage`|The salvage value at the end of the life of the asset.| +|`period`|The period.| +|`rate`|The rate of depreciation.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Date system** | +| `Basis` | **Date system** | | ------------ | ------------------------------------ | | 0 or omitted | 360 days (NASD method) | | 1 | Actual | diff --git a/query-languages/dax/amorlinc-function-dax.md b/query-languages/dax/amorlinc-function-dax.md index b0e59f62d..359d029a3 100644 --- a/query-languages/dax/amorlinc-function-dax.md +++ b/query-languages/dax/amorlinc-function-dax.md @@ -20,17 +20,17 @@ AMORLINC(, , , , , [, |Term|Definition| |--------|--------------| -|cost|The cost of the asset.| -|date_purchased|The date of the purchase of the asset.| -|first_period|The date of the end of the first period.| -|salvage|The salvage value at the end of the life of the asset.| -|period|The period.| -|rate|The rate of depreciation.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`cost`|The cost of the asset.| +|`date_purchased`|The date of the purchase of the asset.| +|`first_period`|The date of the end of the first period.| +|`salvage`|The salvage value at the end of the life of the asset.| +|`period`|The period.| +|`rate`|The rate of depreciation.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Date system** | +| `Basis` | **Date system** | | ------------ | ------------------------------------ | | 0 or omitted | 360 days (NASD method) | | 1 | Actual | diff --git a/query-languages/dax/and-function-dax.md b/query-languages/dax/and-function-dax.md index f96769cf6..b5219ce6d 100644 --- a/query-languages/dax/and-function-dax.md +++ b/query-languages/dax/and-function-dax.md @@ -6,7 +6,7 @@ title: "AND function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether both arguments are TRUE, and returns TRUE if both arguments are TRUE. Otherwise returns false. +Checks whether both arguments are `TRUE`, and returns `TRUE` if both arguments are `TRUE`. Otherwise returns `FALSE`. ## Syntax @@ -18,7 +18,7 @@ AND(,) |Term|Definition| |--------|--------------| -|logical_1, logical_2|The logical values you want to test.| +|`logical_1, logical_2`|The logical values you want to test.| ## Return value @@ -26,21 +26,21 @@ Returns true or false depending on the combination of values that you test. ## Remarks -The **AND** function in DAX accepts only two (2) arguments. If you need to perform an AND operation on multiple expressions, you can create a series of calculations or, better, use the AND operator (**&&**) to join all of them in a simpler expression. +The `AND` function in DAX accepts only two (2) arguments. If you need to perform an AND operation on multiple expressions, you can create a series of calculations or, better, use the `AND` operator (`&&`) to join all of them in a simpler expression. ## Example 1 -The following formula shows the syntax of the AND function. +The following formula shows the syntax of the `AND` function. ```dax = IF(AND(10 > 9, -10 < -1), "All true", "One or more false" ``` -Because both conditions, passed as arguments, to the AND function are true, the formula returns "All True". +Because both conditions, passed as arguments, to the `AND` function are true, the formula returns "All True". ## Example 2 -The following sample uses the AND function with nested formulas to compare two sets of calculations at the same time. For each product category, the formula determines if the current year sales and previous year sales of the Internet channel are larger than the Reseller channel for the same periods. If both conditions are true, for each category the formula returns the value, "Internet hit". +The following sample uses the `AND` function with nested formulas to compare two sets of calculations at the same time. For each product category, the formula determines if the current year sales and previous year sales of the Internet channel are larger than the Reseller channel for the same periods. If both conditions are true, for each category the formula returns the value, "Internet hit". ```dax = IF( AND( SUM( 'InternetSales_USD'[SalesAmount_USD]) diff --git a/query-languages/dax/approximate-distinctcount-function-dax.md b/query-languages/dax/approximate-distinctcount-function-dax.md index 5548f731a..b9853ce71 100644 --- a/query-languages/dax/approximate-distinctcount-function-dax.md +++ b/query-languages/dax/approximate-distinctcount-function-dax.md @@ -18,11 +18,11 @@ APPROXIMATEDISTINCTCOUNT() |Term |Description| |---------|---------| -|column | The column that contains the values to be counted. This cannot be an expression. | +|`column` | The column that contains the values to be counted. This cannot be an expression. | ## Return value -The approximate number of distinct values in *column*. +The approximate number of distinct values in `column`. ## Remarks diff --git a/query-languages/dax/asin-function-dax.md b/query-languages/dax/asin-function-dax.md index 320f7031f..0a76f0f0c 100644 --- a/query-languages/dax/asin-function-dax.md +++ b/query-languages/dax/asin-function-dax.md @@ -6,7 +6,7 @@ title: "ASIN function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the arcsine, or inverse sine, of a number. The arcsine is the angle whose sine is *number*. The returned angle is given in radians in the range -pi/2 to pi/2. +Returns the arcsine, or inverse sine, of a number. The arcsine is the angle whose sine is `number`. The returned angle is given in radians in the range -pi/2 to pi/2. ## Syntax @@ -18,7 +18,7 @@ ASIN(number) |Term|Definition| |--------|--------------| -|number|The sine of the angle you want and must be from -1 to 1.| +|`number`|The sine of the angle you want and must be from -1 to 1.| ## Return value @@ -30,7 +30,7 @@ To express the arcsine in degrees, multiply the result by 180/PI( ) or use the D ## Example -|Formula|Description|Result| +|`Formula`|Description|Result| |-----------|---------------|----------| |= ASIN(-0.5)|Arcsine of -0.5 in radians, -pi/6|-0.523598776| |= ASIN(-0.5)*180/PI()|Arcsine of -0.5 in degrees|-30| diff --git a/query-languages/dax/asinh-function-dax.md b/query-languages/dax/asinh-function-dax.md index baddfd0b0..8c9cd1e47 100644 --- a/query-languages/dax/asinh-function-dax.md +++ b/query-languages/dax/asinh-function-dax.md @@ -6,7 +6,7 @@ title: "ASINH function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the inverse hyperbolic sine of a number. The inverse hyperbolic sine is the value whose hyperbolic sine is *number*, so ASINH(SINH(number)) equals *number*. +Returns the inverse hyperbolic sine of a number. The inverse hyperbolic sine is the value whose hyperbolic sine is `number`, so ASINH(SINH(number)) equals `number`. ## Syntax @@ -18,7 +18,7 @@ ASINH(number) |Term|Definition| |--------|--------------| -|number|Any real number.| +|`number`|Any real number.| ## Return value @@ -32,5 +32,5 @@ Returns the inverse hyperbolic sine of a number. |Formula|Description|Result| |-----------|---------------|----------| -|= ASINH(-2.5)|Inverse hyperbolic sine of -2.5|-1.647231146| -|= ASINH(10)|Inverse hyperbolic sine of 10|2.99822295| +|`= ASINH(-2.5)`|Inverse hyperbolic sine of -2.5|-1.647231146| +|`= ASINH(10)`|Inverse hyperbolic sine of 10|2.99822295| diff --git a/query-languages/dax/atan-function-dax.md b/query-languages/dax/atan-function-dax.md index 170bfb9a7..757e57a14 100644 --- a/query-languages/dax/atan-function-dax.md +++ b/query-languages/dax/atan-function-dax.md @@ -6,7 +6,7 @@ title: "ATAN function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the arctangent, or inverse tangent, of a number. The arctangent is the angle whose tangent is *number*. The returned angle is given in radians in the range -pi/2 to pi/2. +Returns the arctangent, or inverse tangent, of a number. The arctangent is the angle whose tangent is `number`. The returned angle is given in radians in the range -pi/2 to pi/2. ## Syntax @@ -18,7 +18,7 @@ ATAN(number) |Term|Definition| |--------|--------------| -|number|The tangent of the angle you want.| +|`number`|The tangent of the angle you want.| ## Return value @@ -32,5 +32,5 @@ To express the arctangent in degrees, multiply the result by 180/PI( ) or use th |Formula|Description|Result| |-----------|---------------|----------| -|= ATAN(1)|Arctangent of 1 in radians, pi/4|0.785398163| -|= ATAN(1)*180/PI()|Arctangent of 1 in degrees|45| +|`= ATAN(1)`|Arctangent of 1 in radians, pi/4|0.785398163| +|`= ATAN(1)*180/PI()`|Arctangent of 1 in degrees|45| diff --git a/query-languages/dax/atanh-function-dax.md b/query-languages/dax/atanh-function-dax.md index b87e98d4e..2e27831e2 100644 --- a/query-languages/dax/atanh-function-dax.md +++ b/query-languages/dax/atanh-function-dax.md @@ -6,7 +6,7 @@ title: "ATANH function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the inverse hyperbolic tangent of a number. Number must be between -1 and 1 (excluding -1 and 1). The inverse hyperbolic tangent is the value whose hyperbolic tangent is *number*, so ATANH(TANH(number)) equals *number*. +Returns the inverse hyperbolic tangent of a number. Number must be between -1 and 1 (excluding -1 and 1). The inverse hyperbolic tangent is the value whose hyperbolic tangent is `number`, so ATANH(TANH(number)) equals `number`. ## Syntax @@ -18,7 +18,7 @@ ATANH(number) |Term|Definition| |--------|--------------| -|number|Any real number between 1 and -1.| +|`number`|Any real number between 1 and -1.| ## Return value @@ -32,9 +32,8 @@ Returns the inverse hyperbolic tangent of a number. |Formula|Description|Result| |-----------|---------------|----------| -|= ATANH(0.76159416)|Inverse hyperbolic tangent of 0.76159416|1.00000001| -|= ATANH(-0.1)||-0.100335348| -|||| +|`= ATANH(0.76159416)`|Inverse hyperbolic tangent of 0.76159416|1.00000001| +|`= ATANH(-0.1)`||-0.100335348| ## Related content diff --git a/query-languages/dax/average-function-dax.md b/query-languages/dax/average-function-dax.md index 817d8888a..afe675e34 100644 --- a/query-languages/dax/average-function-dax.md +++ b/query-languages/dax/average-function-dax.md @@ -18,7 +18,7 @@ AVERAGE() |Term|Definition| |--------|--------------| -|column|The column that contains the numbers for which you want the average.| +|`column`|The column that contains the numbers for which you want the average.| ## Return value diff --git a/query-languages/dax/averagea-function-dax.md b/query-languages/dax/averagea-function-dax.md index 9d61d26dc..7f9afd53d 100644 --- a/query-languages/dax/averagea-function-dax.md +++ b/query-languages/dax/averagea-function-dax.md @@ -18,7 +18,7 @@ AVERAGEA() |Term|Definition| |--------|--------------| -|column|A column that contains the values for which you want the average.| +|`column`|A column that contains the values for which you want the average.| ## Return value @@ -28,8 +28,8 @@ A decimal number. - The AVERAGEA function takes a column and averages the numbers in it, but also handles non-numeric data types according to the following rules: - - Values that evaluates to TRUE count as 1. - - Values that evaluate to FALSE count as 0 (zero). + - Values that evaluates to `TRUE` count as 1. + - Values that evaluate to `FALSE` count as 0 (zero). - Values that contain non-numeric text count as 0 (zero). - Empty text ("") counts as 0 (zero). @@ -49,7 +49,7 @@ The following example returns the average of non-blank cells in the referenced c |0000124|20|Counts as 20| |0000125|n/a|Counts as 0| |0000126||Counts as 0| -|0000126|TRUE|Counts as 1| +|0000126|``TRUE``|Counts as 1| ```dax = AVERAGEA([Amount]) diff --git a/query-languages/dax/averagex-function-dax.md b/query-languages/dax/averagex-function-dax.md index cc4cb852c..d098a5408 100644 --- a/query-languages/dax/averagex-function-dax.md +++ b/query-languages/dax/averagex-function-dax.md @@ -18,8 +18,8 @@ AVERAGEX(
,) |Term|Definition| |--------|--------------| -|table|Name of a table, or an expression that specifies the table over which the aggregation can be performed.| -|expression|An expression with a scalar result, which will be evaluated for each row of the table in the first argument.| +|`table`|Name of a table, or an expression that specifies the table over which the aggregation can be performed.| +|`expression`|An expression with a scalar result, which will be evaluated for each row of the table in the first argument.| ## Return value diff --git a/query-languages/dax/beta-dist-function-dax.md b/query-languages/dax/beta-dist-function-dax.md index 79bdb6fff..60ddbfc34 100644 --- a/query-languages/dax/beta-dist-function-dax.md +++ b/query-languages/dax/beta-dist-function-dax.md @@ -18,11 +18,11 @@ BETA.DIST(x,alpha,beta,cumulative,[A],[B]) |Term|Definition| |--------|--------------| -|x|The value between A and B at which to evaluate the function| -|Alpha|A parameter of the distribution.| -|Beta|A parameter of the distribution.| -|A|Optional. A lower bound to the interval of x.| -|B|Optional. An upper bound to the interval of x.| +|`x`|The value between A and B at which to evaluate the function| +|`Alpha`|A parameter of the distribution.| +|`Beta`|A parameter of the distribution.| +|`A`|Optional. A lower bound to the interval of x.| +|`B`|Optional. An upper bound to the interval of x.| ## Return value diff --git a/query-languages/dax/beta-inv-function-dax.md b/query-languages/dax/beta-inv-function-dax.md index ec4916854..0be745a3e 100644 --- a/query-languages/dax/beta-inv-function-dax.md +++ b/query-languages/dax/beta-inv-function-dax.md @@ -8,7 +8,7 @@ title: "BETA.INV function (DAX) | Microsoft Docs" Returns the inverse of the beta cumulative probability density function (BETA.DIST). -If probability = BETA.DIST(x,...TRUE), then BETA.INV(probability,...) = x. The beta distribution can be used in project planning to model probable completion times given an expected completion time and variability. +If probability `= BETA.DIST(x,...TRUE)`, then `BETA.INV(probability,...) = x`. The beta distribution can be used in project planning to model probable completion times given an expected completion time and variability. ## Syntax @@ -20,11 +20,11 @@ BETA.INV(probability,alpha,beta,[A],[B]) |Term|Definition| |--------|--------------| -|Probability|A probability associated with the beta distribution.| -|Alpha|A parameter of the distribution.| -|Beta|A parameter the distribution.| -|A|Optional. A lower bound to the interval of x.| -|B|Optional. An upper bound to the interval of x.| +|`Probability`|A probability associated with the beta distribution.| +|`Alpha`|A parameter of the distribution.| +|`Beta`|A parameter the distribution.| +|`A`|Optional. A lower bound to the interval of x.| +|`B`|Optional. An upper bound to the interval of x.| ## Return value diff --git a/query-languages/dax/bitand-function-dax.md b/query-languages/dax/bitand-function-dax.md index b6a65ddff..e7a915e5d 100644 --- a/query-languages/dax/bitand-function-dax.md +++ b/query-languages/dax/bitand-function-dax.md @@ -18,7 +18,7 @@ BITAND(, ) |Term|Definition| |--------|--------------| -|Number|Any scalar expression that returns number. If not an integer, it is truncated.| +|`Number`|Any scalar expression that returns number. If not an integer, it is truncated.| ## Return value diff --git a/query-languages/dax/bitlshift-function-dax.md b/query-languages/dax/bitlshift-function-dax.md index fecbb6fa1..85949d252 100644 --- a/query-languages/dax/bitlshift-function-dax.md +++ b/query-languages/dax/bitlshift-function-dax.md @@ -18,8 +18,8 @@ BITLSHIFT(, ) |Term|Definition| |--------|--------------| -|Number|Any DAX expression that returns an integer expression.| -|Shift_Amount|Any DAX expression that returns an integer expression.| +|`Number`|Any DAX expression that returns an integer expression.| +|`Shift_Amount`|Any DAX expression that returns an integer expression.| ## Return value diff --git a/query-languages/dax/bitor-function-dax.md b/query-languages/dax/bitor-function-dax.md index 52b01312b..42a89d79e 100644 --- a/query-languages/dax/bitor-function-dax.md +++ b/query-languages/dax/bitor-function-dax.md @@ -18,7 +18,7 @@ BITOR(, ) |Term|Definition| |--------|--------------| -|Number|Any scalar expression that returns number. If not an integer, it is truncated.| +|`Number`|Any scalar expression that returns number. If not an integer, it is truncated.| ## Return value diff --git a/query-languages/dax/bitrshift-function-dax.md b/query-languages/dax/bitrshift-function-dax.md index f164315e9..d274fe907 100644 --- a/query-languages/dax/bitrshift-function-dax.md +++ b/query-languages/dax/bitrshift-function-dax.md @@ -18,8 +18,8 @@ BITRSHIFT(, ) |Term|Definition| |--------|--------------| -|Number|Any DAX expression that returns an integer expression.| -|Shift_Amount|Any DAX expression that returns an integer expression.| +|`Number`|Any DAX expression that returns an integer expression.| +|`Shift_Amount`|Any DAX expression that returns an integer expression.| ## Return value diff --git a/query-languages/dax/bitxor-function-dax.md b/query-languages/dax/bitxor-function-dax.md index bdd4e2565..8ca1e9e76 100644 --- a/query-languages/dax/bitxor-function-dax.md +++ b/query-languages/dax/bitxor-function-dax.md @@ -18,7 +18,7 @@ BITXOR(, ) |Term|Definition| |--------|--------------| -|Number|Any scalar expression that returns number. If not an integer, it is truncated.| +|`Number`|Any scalar expression that returns number. If not an integer, it is truncated.| ## Return value diff --git a/query-languages/dax/calculate-function-dax.md b/query-languages/dax/calculate-function-dax.md index b295bae86..c5ae8623c 100644 --- a/query-languages/dax/calculate-function-dax.md +++ b/query-languages/dax/calculate-function-dax.md @@ -23,8 +23,8 @@ CALCULATE([, [, [, …]]]) |Term|Definition| |--------|--------------| -|expression|The expression to be evaluated.| -|filter1, filter2,…|(Optional) Boolean expressions or table expressions that defines filters, or filter modifier functions.| +|`expression`|The expression to be evaluated.| +|`filter1, filter2,…`|(Optional) Boolean expressions or table expressions that defines filters, or filter modifier functions.| The expression used as the first parameter is essentially the same as a measure. @@ -34,11 +34,11 @@ Filters can be: - Table filter expressions - Filter modification functions -When there are multiple filters, they can be evaluated by using the AND (&&) [logical operator](dax-operator-reference.md#logical-operators), meaning all conditions must be TRUE, or by the OR (||) logical operator, meaning either condition can be true. +When there are multiple filters, they can be evaluated by using the AND (&&) [logical operator](dax-operator-reference.md#logical-operators), meaning all conditions must be `TRUE`, or by the OR (||) logical operator, meaning either condition can be true. #### Boolean filter expressions -A Boolean expression filter is an expression that evaluates to TRUE or FALSE. There are several rules that they must abide by: +A Boolean expression filter is an expression that evaluates to `TRUE` or `FALSE`. There are several rules that they must abide by: - They can reference columns from a single table. - They cannot reference measures. diff --git a/query-languages/dax/calculatetable-function-dax.md b/query-languages/dax/calculatetable-function-dax.md index d8c077b4f..72690f258 100644 --- a/query-languages/dax/calculatetable-function-dax.md +++ b/query-languages/dax/calculatetable-function-dax.md @@ -23,8 +23,8 @@ CALCULATETABLE([, [, [, …]]]) |Term|Definition| |--------|--------------| -|expression|The table expression to be evaluated.| -|filter1, filter2,…|(Optional) Boolean expressions or table expressions that defines filters, or filter modifier functions.| +|`expression`|The table expression to be evaluated.| +|`filter1, filter2,…`|(Optional) Boolean expressions or table expressions that defines filters, or filter modifier functions.| The expression used as the first parameter must be a model table or a function that returns a table. @@ -34,11 +34,11 @@ Filters can be: - Table filter expressions - Filter modification functions -When there are multiple filters, they're evaluated by using the AND [logical operator](dax-operator-reference.md#logical-operators). That means all conditions must be TRUE at the same time. +When there are multiple filters, they're evaluated by using the AND [logical operator](dax-operator-reference.md#logical-operators). That means all conditions must be `TRUE` at the same time. #### Boolean filter expressions -A Boolean expression filter is an expression that evaluates to TRUE or FALSE. There are several rules that they must abide by: +A Boolean expression filter is an expression that evaluates to `TRUE` or `FALSE`. There are several rules that they must abide by: - They can reference only a single column. - They cannot reference measures. diff --git a/query-languages/dax/calendar-function-dax.md b/query-languages/dax/calendar-function-dax.md index 7d02ee456..324902ce3 100644 --- a/query-languages/dax/calendar-function-dax.md +++ b/query-languages/dax/calendar-function-dax.md @@ -18,8 +18,8 @@ CALENDAR(, ) |Term|Definition| |--------|--------------| -|start_date|Any DAX expression that returns a datetime value.| -|end_date|Any DAX expression that returns a datetime value.| +|`start_date`|Any DAX expression that returns a datetime value.| +|`end_date`|Any DAX expression that returns a datetime value.| ## Return value diff --git a/query-languages/dax/calendarauto-function-dax.md b/query-languages/dax/calendarauto-function-dax.md index 208fd0583..53049f79f 100644 --- a/query-languages/dax/calendarauto-function-dax.md +++ b/query-languages/dax/calendarauto-function-dax.md @@ -18,7 +18,7 @@ CALENDARAUTO([fiscal_year_end_month]) |Term|Definition| |--------|--------------| -|fiscal_year_end_month|Any DAX expression that returns an integer from 1 to 12. If omitted, defaults to the value specified in the calendar table template for the current user, if present; otherwise, defaults to 12.| +|`fiscal_year_end_month`|Any DAX expression that returns an integer from 1 to 12. If omitted, defaults to the value specified in the calendar table template for the current user, if present; otherwise, defaults to 12.| ## Return value diff --git a/query-languages/dax/ceiling-function-dax.md b/query-languages/dax/ceiling-function-dax.md index 537b7a67a..8183b9a56 100644 --- a/query-languages/dax/ceiling-function-dax.md +++ b/query-languages/dax/ceiling-function-dax.md @@ -18,8 +18,8 @@ CEILING(, ) |Term|Definition| |--------|--------------| -|number|The number you want to round, or a reference to a column that contains numbers.| -|significance|The multiple of significance to which you want to round. For example, to round to the nearest integer, type 1.| +|`number`|The number you want to round, or a reference to a column that contains numbers.| +|`significance`|The multiple of significance to which you want to round. For example, to round to the nearest integer, type 1.| ## Return value diff --git a/query-languages/dax/chisq-dist-function-dax.md b/query-languages/dax/chisq-dist-function-dax.md index 874515ad3..61be0f572 100644 --- a/query-languages/dax/chisq-dist-function-dax.md +++ b/query-languages/dax/chisq-dist-function-dax.md @@ -20,9 +20,9 @@ CHISQ.DIST(, , ) |Term|Definition| |--------|--------------| -|x|The value at which you want to evaluate the distribution.| -|Deg_freedom|The number of degrees of freedom.| -|cumulative|A logical value that determines the form of the function. If cumulative is TRUE, CHISQ.DIST returns the cumulative distribution function; if FALSE, it returns the probability density function.| +|`x`|The value at which you want to evaluate the distribution.| +|`Deg_freedom`|The number of degrees of freedom.| +|`cumulative`|A logical value that determines the form of the function. If cumulative is `TRUE`, CHISQ.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| ## Return value diff --git a/query-languages/dax/chisq-dist-rt-function-dax.md b/query-languages/dax/chisq-dist-rt-function-dax.md index 3149f9ceb..5028d418e 100644 --- a/query-languages/dax/chisq-dist-rt-function-dax.md +++ b/query-languages/dax/chisq-dist-rt-function-dax.md @@ -20,8 +20,8 @@ CHISQ.DIST.RT(, ) |Term|Definition| |--------|--------------| -|x|The value at which you want to evaluate the distribution.| -|Deg_freedom|The number of degrees of freedom.| +|`x`|The value at which you want to evaluate the distribution.| +|`Deg_freedom`|The number of degrees of freedom.| ## Return value diff --git a/query-languages/dax/chisq-inv-function-dax.md b/query-languages/dax/chisq-inv-function-dax.md index 5dc688ad8..f8fb48d88 100644 --- a/query-languages/dax/chisq-inv-function-dax.md +++ b/query-languages/dax/chisq-inv-function-dax.md @@ -20,8 +20,8 @@ CHISQ.INV(probability,deg_freedom) |Term|Definition| |--------|--------------| -|Probability|A probability associated with the chi-squared distribution.| -|Deg_freedom|The number of degrees of freedom.| +|`Probability`|A probability associated with the chi-squared distribution.| +|`Deg_freedom`|The number of degrees of freedom.| ## Return value @@ -43,5 +43,5 @@ Returns the inverse of the left-tailed probability of the chi-squared distributi |Formula|Description|Result| |-----------|---------------|----------| -|= CHISQ.INV(0.93,1)|Inverse of the left-tailed probability of the chi-squared distribution for 0.93, using 1 degree of freedom.|5.318520074| -|= CHISQ.INV(0.6,2)|Inverse of the left-tailed probability of the chi-squared distribution for 0.6, using 2 degrees of freedom.|1.832581464| +|`= CHISQ.INV(0.93,1)`|Inverse of the left-tailed probability of the chi-squared distribution for 0.93, using 1 degree of freedom.|5.318520074| +|`= CHISQ.INV(0.6,2)`|Inverse of the left-tailed probability of the chi-squared distribution for 0.6, using 2 degrees of freedom.|1.832581464| diff --git a/query-languages/dax/chisq-inv-rt-function-dax.md b/query-languages/dax/chisq-inv-rt-function-dax.md index f9f925ed7..4c3aaba65 100644 --- a/query-languages/dax/chisq-inv-rt-function-dax.md +++ b/query-languages/dax/chisq-inv-rt-function-dax.md @@ -20,8 +20,8 @@ CHISQ.INV.RT(probability,deg_freedom) |Term|Definition| |--------|--------------| -|Probability|A probability associated with the chi-squared distribution.| -|Deg_freedom|The number of degrees of freedom.| +|`Probability`|A probability associated with the chi-squared distribution.| +|`Deg_freedom`|The number of degrees of freedom.| ## Return value diff --git a/query-languages/dax/closingbalancemonth-function-dax.md b/query-languages/dax/closingbalancemonth-function-dax.md index 6f54462d8..1d0ecbe0f 100644 --- a/query-languages/dax/closingbalancemonth-function-dax.md +++ b/query-languages/dax/closingbalancemonth-function-dax.md @@ -6,7 +6,7 @@ title: "CLOSINGBALANCEMONTH function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the **expression** at the last date of the month in the current context. +Evaluates the `expression` at the last date of the month in the current context. ## Syntax @@ -18,17 +18,17 @@ CLOSINGBALANCEMONTH(,[,]) |Parameter|Definition| |-------------|--------------| -|expression|An expression that returns a scalar value.| -|dates|A column that contains dates.| -|filter|(optional) An expression that specifies a filter to apply to the current context.| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| ## Return value -A scalar value that represents the **expression** evaluated at the last date of the month in the current context. +A scalar value that represents the `expression` evaluated at the last date of the month in the current context. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. @@ -40,7 +40,7 @@ A scalar value that represents the **expression** evaluated at the last date of > Constraints on Boolean expressions are described in [CALCULATE function](calculate-function-dax.md). > [!NOTE] - > The **filter** expression has restrictions described in [CALCULATE function](calculate-function-dax.md). + > The `filter` expression has restrictions described in [CALCULATE function](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/closingbalancequarter-function-dax.md b/query-languages/dax/closingbalancequarter-function-dax.md index f3b431218..f21ca68bd 100644 --- a/query-languages/dax/closingbalancequarter-function-dax.md +++ b/query-languages/dax/closingbalancequarter-function-dax.md @@ -6,7 +6,7 @@ title: "CLOSINGBALANCEQUARTER function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the **expression** at the last date of the quarter in the current context. +Evaluates the `expression` at the last date of the quarter in the current context. ## Syntax @@ -18,17 +18,17 @@ CLOSINGBALANCEQUARTER(,[,]) |Term|Definition| |--------|--------------| -|expression|An expression that returns a scalar value.| -|dates|A column that contains dates.| -|filter|(optional) An expression that specifies a filter to apply to the current context.| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| ## Return value -A scalar value that represents the **expression** evaluated at the last date of the quarter in the current context. +A scalar value that represents the `expression` evaluated at the last date of the quarter in the current context. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. @@ -40,7 +40,7 @@ A scalar value that represents the **expression** evaluated at the last date of > Constraints on Boolean expressions are described in [CALCULATE function](calculate-function-dax.md). > [!NOTE] - > The **filter** expression has restrictions described in [CALCULATE function](calculate-function-dax.md). + > The `filter` expression has restrictions described in [CALCULATE function](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/closingbalanceyear-function-dax.md b/query-languages/dax/closingbalanceyear-function-dax.md index 385d4f56f..96c789599 100644 --- a/query-languages/dax/closingbalanceyear-function-dax.md +++ b/query-languages/dax/closingbalanceyear-function-dax.md @@ -6,7 +6,7 @@ title: "CLOSINGBALANCEYEAR function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the **expression** at the last date of the year in the current context. +Evaluates the `expression` at the last date of the year in the current context. ## Syntax @@ -18,20 +18,20 @@ CLOSINGBALANCEYEAR(,[,][,]) |Term|Definition| |--------|--------------| -|expression|An expression that returns a scalar value.| -|dates|A column that contains dates.| -|filter|(optional) An expression that specifies a filter to apply to the current context.| -|year_end_date|(optional) A literal string with a date that defines the year-end date. The default is December 31.| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| ## Return value -A scalar value that represents the **expression** evaluated at the last date of the year in the current context. +A scalar value that represents the `expression` evaluated at the last date of the year in the current context. ## Remarks -- The **year_end_date** parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. @@ -43,7 +43,7 @@ A scalar value that represents the **expression** evaluated at the last date of > Constraints on Boolean expressions are described in [CALCULATE function](calculate-function-dax.md). > [!NOTE] - > The **filter** expression has restrictions described in [CALCULATE function](calculate-function-dax.md). + > The `filter` expression has restrictions described in [CALCULATE function](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/coalesce-function-dax.md b/query-languages/dax/coalesce-function-dax.md index 4dad54ce6..55b3fc70d 100644 --- a/query-languages/dax/coalesce-function-dax.md +++ b/query-languages/dax/coalesce-function-dax.md @@ -18,7 +18,7 @@ COALESCE(, [, ]…) |Term|Definition| |--------|--------------| -|expression|Any DAX expression that returns a scalar expression.| +|`expression`|Any DAX expression that returns a scalar expression.| ## Return value diff --git a/query-languages/dax/collapse-function-dax.md b/query-languages/dax/collapse-function-dax.md index 81587af99..4d498a085 100644 --- a/query-languages/dax/collapse-function-dax.md +++ b/query-languages/dax/collapse-function-dax.md @@ -35,10 +35,10 @@ COLLAPSE ( [, ] ... ) |Term|Definition| |--------|--------------| -|expression|The expression to be evaluated in the new context.| -|axis|An axis reference.| -|column|A column in the data grid.| -|N|(Optional) The number of levels to collapse. If omitted, the default value is 1.| +|`expression`|The expression to be evaluated in the new context.| +|`axis`|An axis reference.| +|`column`|A column in the data grid.| +|`N`|(Optional) The number of levels to collapse. If omitted, the default value is 1.| ## Return value diff --git a/query-languages/dax/collapseall-function-dax.md b/query-languages/dax/collapseall-function-dax.md index a1c9d84f7..926d654b8 100644 --- a/query-languages/dax/collapseall-function-dax.md +++ b/query-languages/dax/collapseall-function-dax.md @@ -33,8 +33,8 @@ COLLAPSEALL ( ) |Term|Definition| |--------|--------------| -|expression|The expression to be evaluated in the new context.| -|axis|An axis reference.| +|`expression`|The expression to be evaluated in the new context.| +|`axis`|An axis reference.| ## Return value diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index 1e72de5c3..dbbf04996 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -22,12 +22,12 @@ This function does not take any parameters. A table of statistics. Each row of this table represents a different column in the model. Table columns include: -- **Table Name**: The current column’s table. -- **Column Name**: The current column’s name. -- **Min**: The minimum value found within the current column. -- **Max**: The maximum value found within the current column. -- **Cardinality**: The number of distinct values found within the current column. -- **Max Length**: The length of the longest string found within the current column (only applicable for string columns). +- `Table Name`: The current column’s table. +- `Column Name`: The current column’s name. +- `Min`: The minimum value found within the current column. +- `Max`: The maximum value found within the current column. +- `Cardinality`: The number of distinct values found within the current column. +- `Max Length`: The length of the longest string found within the current column (only applicable for string columns). ## Remarks diff --git a/query-languages/dax/combin-function-dax.md b/query-languages/dax/combin-function-dax.md index 09f688ae6..741bdfae8 100644 --- a/query-languages/dax/combin-function-dax.md +++ b/query-languages/dax/combin-function-dax.md @@ -19,8 +19,8 @@ COMBIN(number, number_chosen) |Term|Definition| |--------|--------------| -|number|The number of items.| -|number_chosen|The number of items in each combination.| +|`number`|The number of items.| +|`number_chosen`|The number of items in each combination.| ## Return value @@ -50,4 +50,4 @@ Returns the number of combinations for a given number of items. |Formula|Description|Result| |-----------|---------------|----------| -|= COMBIN(8,2)|Possible two-person teams that can be formed from 8 candidates.|28| +|`= COMBIN(8,2)`|Possible two-person teams that can be formed from 8 candidates.|28| diff --git a/query-languages/dax/combina-function-dax.md b/query-languages/dax/combina-function-dax.md index 3bd73269f..ab7a861fe 100644 --- a/query-languages/dax/combina-function-dax.md +++ b/query-languages/dax/combina-function-dax.md @@ -19,8 +19,8 @@ COMBINA(number, number_chosen) |Term|Definition| |--------|--------------| -|number|Must be greater than or equal to 0, and greater than or equal to Number_chosen. Non-integer values are truncated.| -|number_chosen|Must be greater than or equal to 0. Non-integer values are truncated.| +|`number`|Must be greater than or equal to 0, and greater than or equal to Number_chosen. Non-integer values are truncated.| +|`number_chosen`|Must be greater than or equal to 0. Non-integer values are truncated.| ## Return value @@ -42,5 +42,5 @@ Returns the number of combinations (with repetitions) for a given number of item |Formula|Description|Result| |-----------|---------------|----------| -|= COMBINA(4,3)|Returns the number of combinations (with repetitions) for 4 and 3.|20| -|= COMBINA(10,3)|Returns the number of combinations (with repetitions) for 10 and 3.|220| +|`= COMBINA(4,3)`|Returns the number of combinations (with repetitions) for 4 and 3.|20| +|`= COMBINA(10,3)`|Returns the number of combinations (with repetitions) for 10 and 3.|220| diff --git a/query-languages/dax/combinevalues-function-dax.md b/query-languages/dax/combinevalues-function-dax.md index 8a9bd7fd5..55ae944fe 100644 --- a/query-languages/dax/combinevalues-function-dax.md +++ b/query-languages/dax/combinevalues-function-dax.md @@ -7,7 +7,7 @@ title: "COMBINEVALUES function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Joins two or more text strings into one text string. The primary purpose of this function is to support multi-column relationships in DirectQuery models. See **Remarks** for details. +Joins two or more text strings into one text string. The primary purpose of this function is to support multi-column relationships in DirectQuery models. See [remarks](#remarks) for details. ## Syntax @@ -19,8 +19,8 @@ COMBINEVALUES(, , [, ]…) |Term|Definition| |--------|--------------| -|delimiter|A separator to use during concatenation. Must be a constant value.| -|expression|A DAX expression whose value will be joined into a single text string.| +|`delimiter`|A separator to use during concatenation. Must be a constant value.| +|`expression`|A DAX expression whose value will be joined into a single text string.| ## Return value diff --git a/query-languages/dax/concatenate-function-dax.md b/query-languages/dax/concatenate-function-dax.md index ddfccf928..96e891452 100644 --- a/query-languages/dax/concatenate-function-dax.md +++ b/query-languages/dax/concatenate-function-dax.md @@ -18,8 +18,8 @@ CONCATENATE(, ) |Term|Definition| |--------|--------------| -|text1|The first text string to be joined into a single text string. The string can include text or numbers. You can also use column references.| -|text2|The second text string to be joined into a single text string. The string can include text or numbers. You can also use column references.| +|`text1`|The first text string to be joined into a single text string. The string can include text or numbers. You can also use column references.| +|`text2`|The second text string to be joined into a single text string. The string can include text or numbers. You can also use column references.| ## Return value @@ -29,7 +29,7 @@ A concatenated string. - The CONCATENATE function joins two text strings into one text string. The joined items can be text, numbers, Boolean values represented as text, or a combination of those items. You can also use a column reference if the column contains appropriate values. -- The CONCATENATE function in DAX accepts only two arguments, whereas the Excel CONCATENATE function accepts up to 255 arguments. If you need to concatenate multiple columns, you can create a series of calculations or use the concatenation operator (**&**) to join all of them in a simpler expression. +- The CONCATENATE function in DAX accepts only two arguments, whereas the Excel CONCATENATE function accepts up to 255 arguments. If you need to concatenate multiple columns, you can create a series of calculations or use the concatenation operator (`&`) to join all of them in a simpler expression. - If you want to use text strings directly, rather than using a column reference, you must enclose each string in double quotation marks. @@ -59,7 +59,7 @@ The sample formula creates a new calculated column in the Customer table with th = CONCATENATE( [FirstName]&" ", CONCATENATE( IF( LEN([MiddleName])>1, LEFT([MiddleName],1)&" ", ""), [LastName])) ``` -This formula uses nested CONCATENATE and IF functions, together with the ampersand (**&**) operator, to conditionally concatenate three string values and add spaces as separators. +This formula uses nested CONCATENATE and IF functions, together with the ampersand (`&`) operator, to conditionally concatenate three string values and add spaces as separators. ## Example: Concatenation of columns with different data types diff --git a/query-languages/dax/concatenatex-function-dax.md b/query-languages/dax/concatenatex-function-dax.md index 450fa9641..824830482 100644 --- a/query-languages/dax/concatenatex-function-dax.md +++ b/query-languages/dax/concatenatex-function-dax.md @@ -18,18 +18,18 @@ CONCATENATEX(
, [, [, [, , , [, , ]…) |Term|Definition| |--------|--------------| -|table|Any DAX expression that returns a table of data.| -|columnName|The name of an existing column, using standard DAX syntax. It cannot be an expression. | -|value|Any DAX expression that returns a single scalar value, that is to be sought in *columnName*. The expression is to be evaluated exactly once and before it is passed to the argument list. | +|`table`|Any DAX expression that returns a table of data.| +|`columnName`|The name of an existing column, using standard DAX syntax. It cannot be an expression. | +|`value`|Any DAX expression that returns a single scalar value, that is to be sought in `columnName`. The expression is to be evaluated exactly once and before it is passed to the argument list. | ## Return value -A value of **TRUE** if each specified *value* can be found in the corresponding *columnName*, or are contained, in those columns; otherwise, the function returns **FALSE**. +A value of `TRUE` if each specified `value` can be found in the corresponding `columnName`, or are contained, in those columns; otherwise, the function returns `FALSE`. ## Remarks -- The arguments *columnName* and *value* must come in pairs; otherwise an error is returned. +- The arguments `columnName` and `value` must come in pairs; otherwise an error is returned. -- *columnName* must belong to the specified *table*, or to a table that is related to *table*. +- `columnName` must belong to the specified `table`, or to a table that is related to `table`. -- If *columnName* refers to a column in a related table then it must be fully qualified; otherwise, an error is returned. +- If `columnName` refers to a column in a related table then it must be fully qualified; otherwise, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/containsrow-function-dax.md b/query-languages/dax/containsrow-function-dax.md index c01390ee4..6e82af748 100644 --- a/query-languages/dax/containsrow-function-dax.md +++ b/query-languages/dax/containsrow-function-dax.md @@ -6,7 +6,7 @@ title: "CONTAINSROW function | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns TRUE if there exists at least one row where all columns have specified values. +Returns `TRUE` if there exists at least one row where all columns have specified values. ## Syntax @@ -18,16 +18,16 @@ CONTAINSROW(
, [, [, …] ] ) |Term|Definition| |--------|--------------| -|Table|A table to test.| -|Value|Any valid DAX expression that returns a scalar value.| +|`Table`|A table to test.| +|`Value`|Any valid DAX expression that returns a scalar value.| ## Return value -TRUE or FALSE. + `TRUE` or `FALSE`. ## Remarks -- Except syntax, the **IN** operator and CONTAINSROW function are functionally equivalent. +- Except syntax, the `IN` operator and CONTAINSROW function are functionally equivalent. ```dax IN diff --git a/query-languages/dax/containsstring-function-dax.md b/query-languages/dax/containsstring-function-dax.md index 9561fff02..8910f29fc 100644 --- a/query-languages/dax/containsstring-function-dax.md +++ b/query-languages/dax/containsstring-function-dax.md @@ -6,7 +6,7 @@ title: "CONTAINSSTRING function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns TRUE or FALSE indicating whether one string contains another string. +Returns `TRUE` or `FALSE` indicating whether one string contains another string. ## Syntax @@ -18,12 +18,12 @@ CONTAINSSTRING(, ) |Term|Definition| |--------|--------------| -|within_text|The text in which you want to search for find_text.| -|find_text|The text you want to find.| +|`within_text`|The text in which you want to search for find_text.| +|`find_text`|The text you want to find.| ## Return value -TRUE if find_text is a substring of within_text; otherwise FALSE. + `TRUE` if find_text is a substring of within_text; otherwise `FALSE`. ## Remarks @@ -49,4 +49,4 @@ Returns |[Case 1] |[Case 2] |[Case 3] |[Case 4] | |---------|---------|---------|---------| -|TRUE | TRUE | TRUE |FALSE | +|`TRUE` | `TRUE` | `TRUE` |`FALSE` | diff --git a/query-languages/dax/containsstringexact-function-dax.md b/query-languages/dax/containsstringexact-function-dax.md index ac299c257..1a68bc1d6 100644 --- a/query-languages/dax/containsstringexact-function-dax.md +++ b/query-languages/dax/containsstringexact-function-dax.md @@ -6,7 +6,7 @@ title: "CONTAINSSTRINGEXACT function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns TRUE or FALSE indicating whether one string contains another string. +Returns `TRUE` or `FALSE` indicating whether one string contains another string. ## Syntax @@ -18,12 +18,12 @@ CONTAINSSTRINGEXACT(, ) |Term|Definition| |--------|--------------| -|within_text|The text in which you want to search for find_text.| -|find_text|The text you want to find.| +|`within_text`|The text in which you want to search for find_text.| +|`find_text`|The text you want to find.| ## Return value -TRUE if find_text is a substring of within_text; otherwise FALSE. + `TRUE` if find_text is a substring of within_text; otherwise `FALSE`. ## Remarks @@ -48,4 +48,4 @@ Returns |[Case 1] |[Case 2] |[Case 3] |[Case 4] | |---------|---------|---------|---------| -|TRUE | FALSE | FALSE |FALSE | +|`TRUE` | `FALSE` | `FALSE` |`FALSE` | diff --git a/query-languages/dax/convert-function-dax.md b/query-languages/dax/convert-function-dax.md index b839c66df..2e93498d4 100644 --- a/query-languages/dax/convert-function-dax.md +++ b/query-languages/dax/convert-function-dax.md @@ -18,8 +18,8 @@ CONVERT(, ) |Term|Definition| |--------|--------------| -|Expression|Any valid expression.| -|Datatype|An enumeration that includes: INTEGER(Whole Number), DOUBLE(Decimal Number), STRING(Text), BOOLEAN(True/False), CURRENCY(Fixed Decimal Number), DATETIME(Date, Time, etc).| +|`Expression`|Any valid expression.| +|`Datatype`|An enumeration that includes: INTEGER(Whole Number), DOUBLE(Decimal Number), STRING(Text), BOOLEAN(True/False), CURRENCY(Fixed Decimal Number), DATETIME(Date, Time, etc).| ## Return value diff --git a/query-languages/dax/cos-function-dax.md b/query-languages/dax/cos-function-dax.md index edc69380b..1e8c62bec 100644 --- a/query-languages/dax/cos-function-dax.md +++ b/query-languages/dax/cos-function-dax.md @@ -18,7 +18,7 @@ COS(number) |Term|Definition| |--------|--------------| -|number|Required. The angle in radians for which you want the cosine.| +|`number`|Required. The angle in radians for which you want the cosine.| ## Return value @@ -32,6 +32,6 @@ If the angle is in degrees, either multiply the angle by PI()/180 or use the RAD |Formula|Description|Result| |-----------|---------------|----------| -|= COS(1.047)|Cosine of 1.047 radians|0.5001711| -|= COS(60*PI()/180)|Cosine of 60 degrees|0.5| -|= COS(RADIANS(60))|Cosine of 60 degrees|0.5| +|`= COS(1.047)`|Cosine of 1.047 radians|0.5001711| +|`= COS(60*PI()/180)`|Cosine of 60 degrees|0.5| +|`= COS(RADIANS(60))`|Cosine of 60 degrees|0.5| diff --git a/query-languages/dax/cosh-function-dax.md b/query-languages/dax/cosh-function-dax.md index fcaa61bd2..3d9d614b1 100644 --- a/query-languages/dax/cosh-function-dax.md +++ b/query-languages/dax/cosh-function-dax.md @@ -18,7 +18,7 @@ COSH(number) |Term|Definition| |--------|--------------| -|number|Required. Any real number for which you want to find the hyperbolic cosine.| +|`number`|Required. Any real number for which you want to find the hyperbolic cosine.| ## Return value @@ -34,7 +34,7 @@ The hyperbolic cosine of a number. ## Example -|Formula|Description|Result| +Description|Result| |-----------|---------------|----------| -|= COSH(4)|Hyperbolic cosine of 4|27.308233| -|= COSH(EXP(1))|Hyperbolic cosine of the base of the natural logarithm.|7.6101251| +|`= COSH(4)`|Hyperbolic cosine of 4|27.308233| +|`= COSH(EXP(1))`|Hyperbolic cosine of the base of the natural logarithm.|7.6101251| diff --git a/query-languages/dax/cot-function-dax.md b/query-languages/dax/cot-function-dax.md index 76b213a42..9731a0ba9 100644 --- a/query-languages/dax/cot-function-dax.md +++ b/query-languages/dax/cot-function-dax.md @@ -18,7 +18,7 @@ COT () |Term|Definition| |--------|--------------| -|number|The angle in radians for which you want the cotangent.| +|`number`|The angle in radians for which you want the cotangent.| ## Return value diff --git a/query-languages/dax/coth-function-dax.md b/query-languages/dax/coth-function-dax.md index 9daeb2cca..029cba964 100644 --- a/query-languages/dax/coth-function-dax.md +++ b/query-languages/dax/coth-function-dax.md @@ -18,7 +18,7 @@ COTH () |Term|Definition| |--------|--------------| -|number|The hyperbolic angle in radians for which you want the hyperbolic cotangent.| +|`number`|The hyperbolic angle in radians for which you want the hyperbolic cotangent.| ## Return value diff --git a/query-languages/dax/count-function-dax.md b/query-languages/dax/count-function-dax.md index 8b000f33a..afe31688f 100644 --- a/query-languages/dax/count-function-dax.md +++ b/query-languages/dax/count-function-dax.md @@ -18,7 +18,7 @@ COUNT() |Term|Definition| |--------|--------------| -|column|The column that contains the values to be counted.| +|`column`|The column that contains the values to be counted.| ## Return value @@ -34,9 +34,9 @@ A whole number. - When the function finds no rows to count, it returns a blank. -- Blank values are skipped. TRUE/FALSE values are not supported. +- Blank values are skipped. `TRUE`/`FALSE` values are not supported. -- If you want to evaluate a column of TRUE/FALSE values, use the COUNTA function. +- If you want to evaluate a column of `TRUE`/`FALSE` values, use the COUNTA function. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/counta-function-dax.md b/query-languages/dax/counta-function-dax.md index b52f916dc..ffda38c72 100644 --- a/query-languages/dax/counta-function-dax.md +++ b/query-languages/dax/counta-function-dax.md @@ -18,7 +18,7 @@ COUNTA() |Term|Definition| |--------|--------------| -|column|The column that contains the values to be counted.| +|`column`|The column that contains the values to be counted.| ## Return value diff --git a/query-languages/dax/countax-function-dax.md b/query-languages/dax/countax-function-dax.md index 9d9ce0106..1d921ecb4 100644 --- a/query-languages/dax/countax-function-dax.md +++ b/query-languages/dax/countax-function-dax.md @@ -18,8 +18,8 @@ COUNTAX(
,) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expression will be evaluated.| -|expression|The expression to be evaluated for each row of the table.| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| ## Return value @@ -35,7 +35,7 @@ A whole number. ## Example -The following example counts the number of nonblank rows in the column, Phone, using the table that results from filtering the Reseller table on [Status] = **Active**. +The following example counts the number of nonblank rows in the column, Phone, using the table that results from filtering the Reseller table on `[Status] = Active`. ```dax = COUNTAX(FILTER('Reseller',[Status]="Active"),[Phone]) diff --git a/query-languages/dax/countblank-function-dax.md b/query-languages/dax/countblank-function-dax.md index 6cffdb7cb..81fc878b7 100644 --- a/query-languages/dax/countblank-function-dax.md +++ b/query-languages/dax/countblank-function-dax.md @@ -18,7 +18,7 @@ COUNTBLANK() |Term|Definition| |--------|--------------| -|column|The column that contains the blank cells to be counted.| +|`column`|The column that contains the blank cells to be counted.| ## Return value diff --git a/query-languages/dax/countrows-function-dax.md b/query-languages/dax/countrows-function-dax.md index f92de2b71..0e96eec3e 100644 --- a/query-languages/dax/countrows-function-dax.md +++ b/query-languages/dax/countrows-function-dax.md @@ -18,7 +18,7 @@ COUNTROWS([
]) |Term|Definition| |--------|--------------| -|table|(Optional) The name of the table that contains the rows to be counted, or an expression that returns a table. When not provided, the default value is the home table of the current expression. | +|`table`|(Optional) The name of the table that contains the rows to be counted, or an expression that returns a table. When not provided, the default value is the home table of the current expression. | ## Return value diff --git a/query-languages/dax/countx-function-dax.md b/query-languages/dax/countx-function-dax.md index 7e4121025..ede18b473 100644 --- a/query-languages/dax/countx-function-dax.md +++ b/query-languages/dax/countx-function-dax.md @@ -18,8 +18,8 @@ COUNTX(
,) |Term|Definition| |--------|--------------| -|table|The table containing the rows to be counted.| -|expression|An expression that returns the set of values that contains the values you want to count.| +|`table`|The table containing the rows to be counted.| +|`expression`|An expression that returns the set of values that contains the values you want to count.| ## Return value diff --git a/query-languages/dax/coupdaybs-function-dax.md b/query-languages/dax/coupdaybs-function-dax.md index c1ba6399b..afdb7123e 100644 --- a/query-languages/dax/coupdaybs-function-dax.md +++ b/query-languages/dax/coupdaybs-function-dax.md @@ -19,14 +19,14 @@ COUPDAYBS(, , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/coupdays-function-dax.md b/query-languages/dax/coupdays-function-dax.md index a5e3d8341..3c5a4310f 100644 --- a/query-languages/dax/coupdays-function-dax.md +++ b/query-languages/dax/coupdays-function-dax.md @@ -19,14 +19,14 @@ COUPDAYS(, , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/coupdaysnc-function-dax.md b/query-languages/dax/coupdaysnc-function-dax.md index c65223d2f..eda6b8dfb 100644 --- a/query-languages/dax/coupdaysnc-function-dax.md +++ b/query-languages/dax/coupdaysnc-function-dax.md @@ -19,14 +19,14 @@ COUPDAYSNC(, , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/coupncd-function-dax.md b/query-languages/dax/coupncd-function-dax.md index 9ca63d193..2e241569a 100644 --- a/query-languages/dax/coupncd-function-dax.md +++ b/query-languages/dax/coupncd-function-dax.md @@ -19,14 +19,14 @@ COUPNCD(, , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/coupnum-function-dax.md b/query-languages/dax/coupnum-function-dax.md index 253f2216b..6a06accd7 100644 --- a/query-languages/dax/coupnum-function-dax.md +++ b/query-languages/dax/coupnum-function-dax.md @@ -19,14 +19,14 @@ COUPNUM(, , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/couppcd-function-dax.md b/query-languages/dax/couppcd-function-dax.md index 895929c28..acb8616f8 100644 --- a/query-languages/dax/couppcd-function-dax.md +++ b/query-languages/dax/couppcd-function-dax.md @@ -19,14 +19,14 @@ COUPPCD(, , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/crossfilter-function-dax.md b/query-languages/dax/crossfilter-function-dax.md index c4305e872..3d8897086 100644 --- a/query-languages/dax/crossfilter-function-dax.md +++ b/query-languages/dax/crossfilter-function-dax.md @@ -18,9 +18,9 @@ CROSSFILTER(, , ) |Term|Definition| |--------|--------------| -|columnName1|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| -|columnName2|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| -|Direction|The cross-filter direction to be used. Must be one of the following:

**None** - No cross-filtering occurs along this relationship.

**Both** - Filters on either side filters the other side.

**OneWay** - Filters on the one side or the lookup side of a relationship filter the other side. This option cannot be used with a one-to-one relationship . Don’t use this option on a many-to-many relationship because it is unclear which side is the lookup side; use OneWay_LeftFiltersRight or OneWay_RightFiltersLeft instead.

**OneWay_LeftFiltersRight** - Filters on the side of \ filter the side of \. This option cannot be used with a one-to-one or many-to-one relationship.

**OneWay_RightFiltersLeft** - Filters on the side of \ filter the side of \. This option cannot be used with a one-to-one or many-to-one relationship.| +|`columnName1`|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| +|`columnName2`|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| +|`Direction`|The cross-filter direction to be used. Must be one of the following:

`None` - No cross-filtering occurs along this relationship.

`Both` - Filters on either side filters the other side.

`OneWay` - Filters on the one side or the lookup side of a relationship filter the other side. This option cannot be used with a one-to-one relationship . Don’t use this option on a many-to-many relationship because it is unclear which side is the lookup side; use OneWay_LeftFiltersRight or OneWay_RightFiltersLeft instead.

`OneWay_LeftFiltersRight` - Filters on the side of \ filter the side of \. This option cannot be used with a one-to-one or many-to-one relationship.

`OneWay_RightFiltersLeft` - Filters on the side of \ filter the side of \. This option cannot be used with a one-to-one or many-to-one relationship.| ## Return value diff --git a/query-languages/dax/crossjoin-function-dax.md b/query-languages/dax/crossjoin-function-dax.md index 547abde4f..c1691cb2d 100644 --- a/query-languages/dax/crossjoin-function-dax.md +++ b/query-languages/dax/crossjoin-function-dax.md @@ -18,7 +18,7 @@ CROSSJOIN(
,
[,
]…) |Term|Definition| |--------|--------------| -|table|Any DAX expression that returns a table of data| +|`table`|Any DAX expression that returns a table of data| ## Return value @@ -26,7 +26,7 @@ A table that contains the Cartesian product of all rows from all tables in the a ## Remarks -- Column names from *table* arguments must all be different in all tables or an error is returned. +- Column names from `table` arguments must all be different in all tables or an error is returned. - The total number of rows returned by CROSSJOIN() is equal to the product of the number of rows from all tables in the arguments; also, the total number of columns in the result table is the sum of the number of columns in all tables. For example, if **TableA** has **rA** rows and **cA** columns, and **TableB** has **rB** rows and **cB** columns, and **TableC** has **rC** rows and **cC** column; then, the resulting table has **rA × rb × rC** rows and **cA + cB + cC** columns. diff --git a/query-languages/dax/cumipmt-function-dax.md b/query-languages/dax/cumipmt-function-dax.md index b7b11bcd8..c95b560c1 100644 --- a/query-languages/dax/cumipmt-function-dax.md +++ b/query-languages/dax/cumipmt-function-dax.md @@ -20,16 +20,16 @@ CUMIPMT(, , , , , ) |Term|Definition| |--------|--------------| -|rate|The interest rate.| -|nper|The total number of payment periods.| -|pv|The present value.| -|start_period|The first period in the calculation. Must be between 1 and end_period (inclusive).| -|end_period|The last period in the calculation. Must be between start_period and nper (inclusive).| -|type|The timing of the payment. The accepted values are listed below this table.| +|`rate`|The interest rate.| +|`nper`|The total number of payment periods.| +|`pv`|The present value.| +|`start_period`|The first period in the calculation. Must be between 1 and end_period (inclusive).| +|`end_period`|The last period in the calculation. Must be between start_period and nper (inclusive).| +|`type`|The timing of the payment. The accepted values are listed below this table.| -The **type** parameter accepts the following values: +The `type` parameter accepts the following values: -| **Type** | **Timing** | +| `Type` | **Timing** | | -------- | -------------------------------------- | | 0 (zero) | Payment at the end of the period | | 1 | Payment at the beginning of the period | diff --git a/query-languages/dax/cumprinc-function-dax.md b/query-languages/dax/cumprinc-function-dax.md index 11cfa0713..eaa7f6bd1 100644 --- a/query-languages/dax/cumprinc-function-dax.md +++ b/query-languages/dax/cumprinc-function-dax.md @@ -20,16 +20,16 @@ CUMPRINC(, , , , , ) |Term|Definition| |--------|--------------| -|rate|The interest rate.| -|nper|The total number of payment periods.| -|pv|The present value.| -|start_period|The first period in the calculation. Must be between 1 and end_period (inclusive).| -|end_period|The last period in the calculation. Must be between start_period and nper (inclusive).| -|type|The timing of the payment. The accepted values are listed below this table.| +|`rate`|The interest rate.| +|`nper`|The total number of payment periods.| +|`pv`|The present value.| +|`start_period`|The first period in the calculation. Must be between 1 and end_period (inclusive).| +|`end_period`|The last period in the calculation. Must be between start_period and nper (inclusive).| +|`type`|The timing of the payment. The accepted values are listed below this table.| -The **type** parameter accepts the following values: +The `type` parameter accepts the following values: -| **Type** | **Timing** | +| `Type` | **Timing** | | -------- | -------------------------------------- | | 0 (zero) | Payment at the end of the period | | 1 | Payment at the beginning of the period | diff --git a/query-languages/dax/currency-function-dax.md b/query-languages/dax/currency-function-dax.md index 122597a13..460e40931 100644 --- a/query-languages/dax/currency-function-dax.md +++ b/query-languages/dax/currency-function-dax.md @@ -18,7 +18,7 @@ CURRENCY() |Term|Definition| |--------|--------------| -|value|Any DAX expression that returns a single scalar value where the expression is to be evaluated exactly once before all other operations. | +|`value`|Any DAX expression that returns a single scalar value where the expression is to be evaluated exactly once before all other operations. | ## Return value diff --git a/query-languages/dax/customdata-function-dax.md b/query-languages/dax/customdata-function-dax.md index 47f42cd8a..517cd5f3d 100644 --- a/query-languages/dax/customdata-function-dax.md +++ b/query-languages/dax/customdata-function-dax.md @@ -6,7 +6,7 @@ title: "CUSTOMDATA function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the content of the **CustomData** property in the connection string. +Returns the content of the `CustomData` property in the connection string. ## Syntax @@ -16,9 +16,9 @@ CUSTOMDATA() ## Return value -The content of the **CustomData** property in the connection string. +The content of the `CustomData` property in the connection string. -Blank, if **CustomData** property was not defined at connection time. +Blank, if `CustomData` property was not defined at connection time. ## Remarks @@ -26,7 +26,7 @@ Blank, if **CustomData** property was not defined at connection time. ## Example -The following DAX formula verifies if the CustomData property was set to **"OK"**. +The following DAX formula verifies if the CustomData property was set to **`OK`**. ```dax = IF(CUSTOMDATA()="OK", "Correct Custom data in connection string", "No custom data in connection string property or unexpected value") diff --git a/query-languages/dax/datatable-function-dax.md b/query-languages/dax/datatable-function-dax.md index 8cc2f8e0b..01c0405b7 100644 --- a/query-languages/dax/datatable-function-dax.md +++ b/query-languages/dax/datatable-function-dax.md @@ -18,9 +18,9 @@ DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2..., {{Value1, Value2.. |Term|Definition| |--------|--------------| -|ColumnName|Any DAX expression that returns a table.| -|DataType|An enumeration that includes: INTEGER, DOUBLE, STRING, BOOLEAN, CURRENCY, DATETIME| -|Value|A single argument using Excel syntax for a one dimensional array constant, nested to provide an array of arrays. This argument represents the set of data values that will be in the table

For example,
{ {values in row1}, {values in row2}, {values in row3}, etc. }
Where {values in row1} is a comma delimited set of constant expressions, namely a combination of constants, combined with a handful of basic functions including DATE, TIME, and BLANK, as well as a plus operator between DATE and TIME and a unary minus operator so that negative values can be expressed.

The following are all valid values: 3, -5, BLANK(), "2009-04-15 02:45:21". Values may not refer to anything outside the immediate expression, and cannot refer to columns, tables, relationships, or anything else.

A missing value will be treated identically to BLANK(). For example, the following are the same: {1,2,BLANK(),4} {1,2,,4}| +|`ColumnName`|Any DAX expression that returns a table.| +|`DataType`|An enumeration that includes: INTEGER, DOUBLE, STRING, BOOLEAN, CURRENCY, DATETIME| +|`value`|A single argument using Excel syntax for a one dimensional array constant, nested to provide an array of arrays. This argument represents the set of data values that will be in the table

For example,
{ {values in row1}, {values in row2}, {values in row3}, etc. }
Where {values in row1} is a comma delimited set of constant expressions, namely a combination of constants, combined with a handful of basic functions including DATE, TIME, and BLANK, as well as a plus operator between DATE and TIME and a unary minus operator so that negative values can be expressed.

The following are all valid values: 3, -5, BLANK(), "2009-04-15 02:45:21". Values may not refer to anything outside the immediate expression, and cannot refer to columns, tables, relationships, or anything else.

A missing value will be treated identically to BLANK(). For example, the following are the same: {1,2,BLANK(),4} {1,2,,4}| ## Return value diff --git a/query-languages/dax/date-and-time-functions-dax.md b/query-languages/dax/date-and-time-functions-dax.md index 10d32ecaa..a5221c600 100644 --- a/query-languages/dax/date-and-time-functions-dax.md +++ b/query-languages/dax/date-and-time-functions-dax.md @@ -4,7 +4,7 @@ title: "Date and time functions (DAX) | Microsoft Docs" --- # Date and time functions -These functions help you create calculations based on dates and time. Many of the functions in DAX are similar to the Excel date and time functions. However, DAX functions use a **datetime** data type, and can take values from a column as an argument. +These functions help you create calculations based on dates and time. Many of the functions in DAX are similar to the Excel date and time functions. However, DAX functions use a `datetime` data type, and can take values from a column as an argument. ## In this category diff --git a/query-languages/dax/date-function-dax.md b/query-languages/dax/date-function-dax.md index 02f0579f0..b914cc490 100644 --- a/query-languages/dax/date-function-dax.md +++ b/query-languages/dax/date-function-dax.md @@ -6,7 +6,7 @@ title: "DATE function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the specified date in **datetime** format. +Returns the specified date in `datetime` format. ## Syntax @@ -18,19 +18,19 @@ DATE(, , ) |Term|Definition| |--------|--------------| -|year|A number representing the year.

The value of the **year** argument can include one to four digits. The **year** argument is interpreted according to the date system used by your computer.

Dates beginning with March 1, 1900 are supported.

If you enter a number that has decimal places, the number is rounded.

For values greater than 9999 or less than zero (negative values), the function returns a **#VALUE!** error.

If the **year** value is between 0 and 1899, the value is added to 1900 to produce the final value. See the examples below. **Note:** You should use four digits for the **year** argument whenever possible to prevent unwanted results. For example, using 07 returns 1907 as the year value.| -|month|A number representing the month or a calculation according to the following rules:

Negative integers are not supported. Valid values are 1-12.

If **month** is a number from 1 to 12, then it represents a month of the year. 1 represents January, 2 represents February, and so on until 12 that represents December.

If you enter an integer larger than 12, the following computation occurs: the date is calculated by adding the value of **month** to the **year**. For example, if you have DATE( 2008, 18, 1), the function returns a datetime value equivalent to June 1st of 2009, because 18 months are added to the beginning of 2008 yielding a value of June 2009. See examples below.| -|day|A number representing the day or a calculation according to the following rules:

Negative integers are not supported. Valid values are 1-31.

If **day** is a number from 1 to the last day of the given month then it represents a day of the month.

If you enter an integer larger than last day of the given month, the following computation occurs: the date is calculated by adding the value of **day** to **month**. For example, in the formula `DATE( 2008, 3, 32)`, the DATE function returns a **datetime** value equivalent to April 1st of 2008, because 32 days are added to the beginning of March yielding a value of April 1st.

If **day** contains a decimal portion, it is rounded to the nearest integer value.| +|`year`|A number representing the year.

The value of the `year` argument can include one to four digits. The `year` argument is interpreted according to the date system used by your computer.

Dates beginning with March 1, 1900 are supported.

If you enter a number that has decimal places, the number is rounded.

For values greater than 9999 or less than zero (negative values), the function returns a `#VALUE!` error.

If the `year` value is between 0 and 1899, the value is added to 1900 to produce the final value. See the examples below. **Note:** You should use four digits for the `year` argument whenever possible to prevent unwanted results. For example, using 07 returns 1907 as the year value.| +|`month`|A number representing the month or a calculation according to the following rules:

Negative integers are not supported. Valid values are 1-12.

If `month` is a number from 1 to 12, then it represents a month of the year. 1 represents January, 2 represents February, and so on until 12 that represents December.

If you enter an integer larger than 12, the following computation occurs: the date is calculated by adding the value of `month` to the `year`. For example, if you have DATE( 2008, 18, 1), the function returns a datetime value equivalent to June 1st of 2009, because 18 months are added to the beginning of 2008 yielding a value of June 2009. See examples below.| +|`day`|A number representing the day or a calculation according to the following rules:

Negative integers are not supported. Valid values are 1-31.

If `day` is a number from 1 to the last day of the given month then it represents a day of the month.

If you enter an integer larger than last day of the given month, the following computation occurs: the date is calculated by adding the value of `day` to `month`. For example, in the formula `DATE( 2008, 3, 32)`, the DATE function returns a `datetime` value equivalent to April 1st of 2008, because 32 days are added to the beginning of March yielding a value of April 1st.

If `day` contains a decimal portion, it is rounded to the nearest integer value.| ## Return value -Returns the specified date (**datetime)**. +Returns the specified date (`datetime`). ## Remarks - The DATE function takes the integers that are input as arguments, and generates the corresponding date. The DATE function is most useful in situations where the year, month, and day are supplied by formulas. For example, the underlying data might contain dates in a format that is not recognized as a date, such as YYYYMMDD. You can use the DATE function in conjunction with other functions to convert the dates to a number that can be recognized as a date. -- In contrast to Microsoft Excel, which stores dates as a serial number, DAX date functions always return a **datetime** data type. However, you can use formatting to display dates as serial numbers if you want. +- In contrast to Microsoft Excel, which stores dates as a serial number, DAX date functions always return a `datetime` data type. However, you can use formatting to display dates as serial numbers if you want. - Date and datetime can also be specified as a literal in the format `dt"YYYY-MM-DD"`, `dt"YYYY-MM-DDThh:mm:ss"`, or `dt"YYYY-MM-DD hh:mm:ss"`. When specified as a literal, using the DATE function in the expression is not necessary. To learn more, see [DAX Syntax | Date and time](dax-syntax-reference.md#date-and-time). @@ -48,7 +48,7 @@ The following formula returns the date July 8, 2009: ### Years before 1899 -If the value that you enter for the **year** argument is between 0 (zero) and 1899 (inclusive), that value is added to 1900 to calculate the year. The following formula returns January 2, 1908: (1900+08). +If the value that you enter for the `year` argument is between 0 (zero) and 1899 (inclusive), that value is added to 1900 to calculate the year. The following formula returns January 2, 1908: (1900+08). ```dax = DATE(08,1,2) @@ -56,7 +56,7 @@ If the value that you enter for the **year** argument is between 0 (zero) and 18 ### Years after 1899 -If **year** is between 1900 and 9999 (inclusive), that value is used as the year. The following formula returns January 2, 2008: +If `year` is between 1900 and 9999 (inclusive), that value is used as the year. The following formula returns January 2, 2008: ```dax = DATE(2008,1,2) @@ -64,7 +64,7 @@ If **year** is between 1900 and 9999 (inclusive), that value is used as the year ### Months -If **month** is greater than 12, **month** adds that number of months to the first month in the year specified. The following formula returns the date February 2, 2009: +If `month` is greater than 12, `month` adds that number of months to the first month in the year specified. The following formula returns the date February 2, 2009: ```dax = DATE(2008,14,2) @@ -72,7 +72,7 @@ If **month** is greater than 12, **month** adds that number of months to the fir ### Days -If **day** is greater than the number of days in the month specified, **day** adds that number of days to the first day in the month. The following formula returns the date February 4, 2008: +If `day` is greater than the number of days in the month specified, `day` adds that number of days to the first day in the month. The following formula returns the date February 4, 2008: ```dax = DATE(2008,1,35) diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index ae0a39f3f..354d2180b 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -18,9 +18,9 @@ DATEADD(,,) |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| -|number_of_intervals|An integer that specifies the number of intervals to add to or subtract from the dates.| -|interval|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`, `day`| +|`dates`|A column that contains dates.| +|`number_of_intervals`|An integer that specifies the number of intervals to add to or subtract from the dates.| +|`interval`|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`, `day`| ## Return value @@ -28,7 +28,7 @@ A table containing a single column of date values. ## Remarks -The **dates** argument can be any of the following: +The `dates` argument can be any of the following: - A reference to a date/time column, @@ -39,11 +39,11 @@ The **dates** argument can be any of the following: > [!NOTE] > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- If the number specified for **number_of_intervals** is positive, the dates in **dates** are moved forward in time; if the number is negative, the dates in **dates** are shifted back in time. +- If the number specified for `number_of_intervals` is positive, the dates in `dates` are moved forward in time; if the number is negative, the dates in `dates` are shifted back in time. -- The **interval** parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month`, `day` should be spelled in full when using them. +- The `interval` parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month`, `day` should be spelled in full when using them. -- The result table includes only dates that exist in the **dates** column. +- The result table includes only dates that exist in the `dates` column. - If the dates in the current context do not form a contiguous interval, the function returns an error. diff --git a/query-languages/dax/datediff-function-dax.md b/query-languages/dax/datediff-function-dax.md index 62a04578f..97fd8d547 100644 --- a/query-languages/dax/datediff-function-dax.md +++ b/query-languages/dax/datediff-function-dax.md @@ -18,9 +18,9 @@ DATEDIFF(, , ) |Term|Definition| |--------|--------------| -|Date1|A scalar datetime value.| -|Date2|A scalar datetime value.| -|Interval|The interval to use when comparing dates. The value can be one of the following:

- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR| +|`Date1`|A scalar datetime value.| +|`Date2`|A scalar datetime value.| +|`Interval`|The interval to use when comparing dates. The value can be one of the following:

- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR| ## Return value diff --git a/query-languages/dax/datesbetween-function-dax.md b/query-languages/dax/datesbetween-function-dax.md index 6e1f12c69..ee9787fe2 100644 --- a/query-languages/dax/datesbetween-function-dax.md +++ b/query-languages/dax/datesbetween-function-dax.md @@ -23,9 +23,9 @@ DATESBETWEEN(, , ) |Term|Definition| |--------|--------------| -|Dates|A date column.| -|StartDate|A date expression.| -|EndDate|A date expression.| +|`Dates`|A date column.| +|`StartDate`|A date expression.| +|`EndDate`|A date expression.| ## Return value @@ -33,15 +33,15 @@ A table containing a single column of date values. ## Remarks -- In the most common use case, **Dates** is a reference to the date column of a marked date table. +- In the most common use case, `dates` is a reference to the date column of a marked date table. -- If **StartDate** is BLANK, then **StartDate** will be the earliest value in the **Dates** column. +- If `StartDate` is BLANK, then `StartDate` will be the earliest value in the `dates` column. -- If **EndDate** is BLANK, then **EndDate** will be the latest value in the **Dates** column. +- If `EndDate` is BLANK, then `EndDate` will be the latest value in the `dates` column. -- Dates used as the **StartDate** and **EndDate** are inclusive. So, for example, if the **StartDate** value is July 1, 2019, then that date will be included in the returned table (providing the date exists in the **Dates** column). +- Dates used as the `StartDate` and `EndDate` are inclusive. So, for example, if the `StartDate` value is July 1, 2019, then that date will be included in the returned table (providing the date exists in the `dates` column). -- The returned table can only contain dates stored in the **Dates** column. So, for example, if the **Dates** column starts from July 1, 2017, and the **StartDate** value is July 1, 2016, the returned table will start from July 1, 2017. +- The returned table can only contain dates stored in the `Dates` column. So, for example, if the `Dates` column starts from July 1, 2017, and the `StartDate` value is July 1, 2016, the returned table will start from July 1, 2017. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/datesinperiod-function-dax.md b/query-languages/dax/datesinperiod-function-dax.md index d81450470..4d33081fb 100644 --- a/query-languages/dax/datesinperiod-function-dax.md +++ b/query-languages/dax/datesinperiod-function-dax.md @@ -20,10 +20,10 @@ DATESINPERIOD(, , , ) |Term|Definition| |--------|--------------| -|dates|A date column.| -|start_date|A date expression.| -|number_of_intervals|An integer that specifies the number of intervals to add to, or subtract from, the dates.| -|interval|The interval by which to shift the dates. The value for interval can be one of the following: `DAY`, `MONTH`, `QUARTER`, and `YEAR`| +|`dates`|A date column.| +|`start_date`|A date expression.| +|`number_of_intervals`|An integer that specifies the number of intervals to add to, or subtract from, the dates.| +|`interval`|The interval by which to shift the dates. The value for interval can be one of the following: `DAY`, `MONTH`, `QUARTER`, and `YEAR`| ## Return value @@ -31,13 +31,13 @@ A table containing a single column of date values. ## Remarks -- In the most common use case, **dates** is a reference to the date column of a marked date table. +- In the most common use case, `dates` is a reference to the date column of a marked date table. -- If the number specified for **number_of_intervals** is positive, dates are moved forward in time; if the number is negative, dates are shifted backward in time. +- If the number specified for `number_of_intervals` is positive, dates are moved forward in time; if the number is negative, dates are shifted backward in time. -- The **interval** parameter is an enumeration. Valid values are `DAY`, `MONTH`, `QUARTER`, and `YEAR`. Because it's an enumeration, values aren't passed in as strings. So don't enclose them within quotation marks. +- The `interval` parameter is an enumeration. Valid values are `DAY`, `MONTH`, `QUARTER`, and `YEAR`. Because it's an enumeration, values aren't passed in as strings. So don't enclose them within quotation marks. -- The returned table can only contain dates stored in the **dates** column. So, for example, if the **dates** column starts from July 1, 2017, and the **start_date** value is July 1, 2016, the returned table will start from July 1, 2017. +- The returned table can only contain dates stored in the `dates` column. So, for example, if the `dates` column starts from July 1, 2017, and the `start_date` value is July 1, 2016, the returned table will start from July 1, 2017. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/datesmtd-function-dax.md b/query-languages/dax/datesmtd-function-dax.md index d098860dc..05323e07e 100644 --- a/query-languages/dax/datesmtd-function-dax.md +++ b/query-languages/dax/datesmtd-function-dax.md @@ -18,7 +18,7 @@ DATESMTD() |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| +|`dates`|A column that contains dates.| ## Return value @@ -26,7 +26,7 @@ A table containing a single column of date values. ## Remarks -The **dates** argument can be any of the following: +The `dates` argument can be any of the following: - A reference to a date/time column. diff --git a/query-languages/dax/datesqtd-function-dax.md b/query-languages/dax/datesqtd-function-dax.md index 00ee40b3f..41dd2f2f0 100644 --- a/query-languages/dax/datesqtd-function-dax.md +++ b/query-languages/dax/datesqtd-function-dax.md @@ -18,7 +18,7 @@ DATESQTD() |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| +|`dates`|A column that contains dates.| ## Return value @@ -26,7 +26,7 @@ A table containing a single column of date values. ## Remarks -The **dates** argument can be any of the following: +The `dates` argument can be any of the following: - A reference to a date/time column. diff --git a/query-languages/dax/datesytd-function-dax.md b/query-languages/dax/datesytd-function-dax.md index ae7e98794..31141dbb5 100644 --- a/query-languages/dax/datesytd-function-dax.md +++ b/query-languages/dax/datesytd-function-dax.md @@ -18,8 +18,8 @@ DATESYTD( [,]) |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| -|year_end_date|(optional) A literal string with a date that defines the year-end date. The default is December 31.| +|`dates`|A column that contains dates.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| ## Return value @@ -27,7 +27,7 @@ A table containing a single column of date values. ## Remarks -The **dates** argument can be any of the following: +The `dates` argument can be any of the following: - A reference to a date/time column, @@ -38,7 +38,7 @@ The **dates** argument can be any of the following: > [!NOTE] > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- The **year_end_date** parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. Depending on locale, the format might be something like "m-dd" or "dd-m". +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. Depending on locale, the format might be something like "m-dd" or "dd-m". - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/datevalue-function-dax.md b/query-languages/dax/datevalue-function-dax.md index faf61b860..b5721ad72 100644 --- a/query-languages/dax/datevalue-function-dax.md +++ b/query-languages/dax/datevalue-function-dax.md @@ -18,19 +18,19 @@ DATEVALUE(date_text) |Term|Definition| |--------|--------------| -|date_text|Text that represents a date.| +|`date_text`|Text that represents a date.| ## Property Value/Return value -A date in **datetime** format. +A date in `datetime` format. ## Remarks -- When converting, DATEVALUE uses the locale and date/time settings of the model to determine a date value. If the model date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is converted to a **datetime** value equivalent to January 8th of 2009. However, if the model date/time settings represent dates in the format of Day/Month/Year, the same string is converted as a **datetime** value equivalent to August 1st of 2009. +- When converting, DATEVALUE uses the locale and date/time settings of the model to determine a date value. If the model date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is converted to a `datetime` value equivalent to January 8th of 2009. However, if the model date/time settings represent dates in the format of Day/Month/Year, the same string is converted as a `datetime` value equivalent to August 1st of 2009. - If conversion using the locale and date/time settings of the model fails, DATEVALUE will attempt to use other date formats. In this case, some rows may be converted using one format and other rows are converted using a different format. For example, "5/4/2018" may convert to May 4th of 2018, and "20/4/2018" may convert to April 20th. -- If the year portion of the **date_text** argument is omitted, the DATEVALUE function uses the current year from your computer's built-in clock. Time information in the **date_text** argument is ignored. +- If the year portion of the `date_text` argument is omitted, the DATEVALUE function uses the current year from your computer's built-in clock. Time information in the `date_text` argument is ignored. - Model locale and data/time settings are initially determined by the application and computer when the model is created. @@ -38,11 +38,11 @@ A date in **datetime** format. ## Example -The following example returns a different **datetime** value depending on the model locale and settings for how dates and times are presented. +The following example returns a different `datetime` value depending on the model locale and settings for how dates and times are presented. -- In date/time settings where the day precedes the month, the example returns a **datetime** value corresponding to January 8th of 2009. +- In date/time settings where the day precedes the month, the example returns a `datetime` value corresponding to January 8th of 2009. -- In date/time settings where the month precedes the day, the example returns a **datetime** value corresponding to August 1st of 2009. +- In date/time settings where the month precedes the day, the example returns a `datetime` value corresponding to August 1st of 2009. ```dax = DATEVALUE("8/1/2009") diff --git a/query-languages/dax/dax-function-reference.md b/query-languages/dax/dax-function-reference.md index 2051e7149..ef0f3ae7b 100644 --- a/query-languages/dax/dax-function-reference.md +++ b/query-languages/dax/dax-function-reference.md @@ -21,9 +21,9 @@ The DAX function reference provides detailed information including syntax, param [Financial functions](financial-functions-dax.md) - These functions are used in formulas that perform financial calculations, such as net present value and rate of return. -[Information functions](information-functions-dax.md) - These functions look at a table or column provided as an argument to another function and returns whether the value matches the expected type. For example, the ISERROR function returns TRUE if the value you reference contains an error. +[Information functions](information-functions-dax.md) - These functions look at a table or column provided as an argument to another function and returns whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value you reference contains an error. -[Logical functions](logical-functions-dax.md) - These functions return information about values in an expression. For example, the TRUE function lets you know whether an expression that you are evaluating returns a TRUE value. +[Logical functions](logical-functions-dax.md) - These functions return information about values in an expression. For example, the `TRUE` function lets you know whether an expression that you are evaluating returns a `TRUE` value. [Math and Trig functions](math-and-trig-functions-dax.md) - Mathematical functions in DAX are similar to Excel's mathematical and trigonometric functions. However, there are some differences in the numeric data types used by DAX functions. diff --git a/query-languages/dax/dax-glossary.md b/query-languages/dax/dax-glossary.md index 84311a0bb..246f8e173 100644 --- a/query-languages/dax/dax-glossary.md +++ b/query-languages/dax/dax-glossary.md @@ -92,7 +92,7 @@ Also called *report-level measures*. They're added to a live connection report i ## Row-level security -Also called *RLS*. Design technique to restrict access to subsets of data for specific users. In a tabular model, it's achieved by creating model roles. Roles have rules, which are DAX expressions to filter table rows. +Also called `RLS`. Design technique to restrict access to subsets of data for specific users. In a tabular model, it's achieved by creating model roles. Roles have rules, which are DAX expressions to filter table rows. ## Scalar diff --git a/query-languages/dax/dax-operator-reference.md b/query-languages/dax/dax-operator-reference.md index b5d74c2b5..68440035c 100644 --- a/query-languages/dax/dax-operator-reference.md +++ b/query-languages/dax/dax-operator-reference.md @@ -28,7 +28,7 @@ To perform basic mathematical operations such as addition, subtraction, or multi ### Comparison operators -You can compare two values with the following operators. When two values are compared by using these operators, the result is a logical value, either TRUE or FALSE. +You can compare two values with the following operators. When two values are compared by using these operators, the result is a logical value, either `TRUE` or `FALSE`. |Comparison operator|Meaning|Example| |-----------------------|-----------|-----------| @@ -40,11 +40,11 @@ You can compare two values with the following operators. When two values are com |<=|Less than or equal to|[Amount] <= 100| |<>|Not equal to|[Region] <> "USA"| -All comparison operators except == treat BLANK as equal to number 0, empty string "", DATE(1899, 12, 30), or FALSE. As a result, [Column] = 0 will be true when the value of [Column] is either 0 or BLANK. In contrast, [Column] == 0 is true only when the value of [Column] is 0. +All comparison operators except == treat BLANK as equal to number 0, empty string "", DATE(1899, 12, 30), or `FALSE`. As a result, [Column] = 0 will be true when the value of [Column] is either 0 or BLANK. In contrast, [Column] == 0 is true only when the value of [Column] is 0. ### Text concatenation operator -Use the ampersand (**&**) to join, or concatenate, two or more text strings to produce a single piece of text. +Use the ampersand (`&`) to join, or concatenate, two or more text strings to produce a single piece of text. |Text operator|Meaning|Example| |-----------------|-----------|-----------| @@ -56,8 +56,8 @@ Use logical operators (&&) and (||) to combine expressions to produce a |Text operator|Meaning|Examples| |-----------------|-----------|------------| -|&& (double ampersand)|Creates an AND condition between two expressions that each have a Boolean result. If both expressions return TRUE, the combination of the expressions also returns TRUE; otherwise the combination returns FALSE.|([Region] = "France") && ([BikeBuyer] = "yes"))| -||| (double pipe symbol)|Creates an OR condition between two logical expressions. If either expression returns TRUE, the result is TRUE; only when both expressions are FALSE is the result FALSE.|(([Region] = "France") || ([BikeBuyer] = "yes"))| +|&& (double ampersand)|Creates an AND condition between two expressions that each have a Boolean result. If both expressions return `TRUE`, the combination of the expressions also returns `TRUE`; otherwise the combination returns `FALSE`.|([Region] = "France") && ([BikeBuyer] = "yes"))| +||| (double pipe symbol)|Creates an OR condition between two logical expressions. If either expression returns `TRUE`, the result is `TRUE`; only when both expressions are `FALSE` is the result `FALSE`.|(([Region] = "France") || ([BikeBuyer] = "yes"))| |IN|Creates a logical OR condition between each row being compared to a table. Note: the table constructor syntax uses curly braces.|'Product'[Color] IN { "Red", "Blue", "Black" }| ## Operators and precedence order diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index fd6e91584..478333f3f 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -65,7 +65,7 @@ To learn more, see: ### Row-level security -With row-level security, a DAX formula must evaluate to a Boolean TRUE/FALSE condition, defining which rows can be returned by the results of a query by members of a particular role. For example, for members of the Sales role, the Customers table with the following DAX formula: +With row-level security, a DAX formula must evaluate to a Boolean `TRUE`/`FALSE` condition, defining which rows can be returned by the results of a query by members of a particular role. For example, for members of the Sales role, the Customers table with the following DAX formula: ```dax = Customers[Country] = "USA" @@ -202,11 +202,11 @@ The financial functions in DAX are used in formulas that perform financial calcu ### Information functions -An information function looks at the cell or row that is provided as an argument and tells you whether the value matches the expected type. For example, the ISERROR function returns TRUE if the value that you reference contains an error. To learn more, see [Information functions](information-functions-dax.md). +An information function looks at the cell or row that is provided as an argument and tells you whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value that you reference contains an error. To learn more, see [Information functions](information-functions-dax.md). ### Logical functions -Logical functions act upon an expression to return information about the values in the expression. For example, the TRUE function lets you know whether an expression that you are evaluating returns a TRUE value. To learn more, see [Logical functions](logical-functions-dax.md). +Logical functions act upon an expression to return information about the values in the expression. For example, the `TRUE` function lets you know whether an expression that you are evaluating returns a `TRUE` value. To learn more, see [Logical functions](logical-functions-dax.md). ### Mathematical and trigonometric functions @@ -263,13 +263,13 @@ In this example, TotalQty can be passed as a named variable to other expressions |Data type in model|Data type in DAX|Description| |------------------------|----------------------|-----------------| -|Whole Number|A 64 bit (eight-bytes) integer value 1, 2|Numbers that have no decimal places. Integers can be positive or negative numbers, but must be whole numbers between -9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1).| -|Decimal Number|A 64 bit (eight-bytes) real number 1, 2|Real numbers are numbers that can have decimal places. Real numbers cover a wide range of values:

Negative values from -1.79E +308 through -2.23E -308

Zero

Positive values from 2.23E -308 through 1.79E + 308

However, the number of significant digits is limited to 17 decimal digits.| -|Boolean|Boolean|Either a True or False value.| -|Text|String|A Unicode character data string. Can be strings, numbers or dates represented in a text format.| -|Date|Date/time|Dates and times in an accepted date-time representation.

Valid dates are all dates after March 1, 1900.| -|Currency|Currency|Currency data type allows values between -922,337,203,685,477.5808 to 922,337,203,685,477.5807 with four decimal digits of fixed precision.| -|N/A|Blank|A blank is a data type in DAX that represents and replaces SQL nulls. You can create a blank by using the BLANK function, and test for blanks by using the logical function, ISBLANK.| +|`Whole Number`|A 64 bit (eight-bytes) integer value 1, 2|Numbers that have no decimal places. Integers can be positive or negative numbers, but must be whole numbers between -9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1).| +|`Decimal Number`|A 64 bit (eight-bytes) real number 1, 2|Real numbers are numbers that can have decimal places. Real numbers cover a wide range of values:

Negative values from -1.79E +308 through -2.23E -308

Zero

Positive values from 2.23E -308 through 1.79E + 308

However, the number of significant digits is limited to 17 decimal digits.| +|`Boolean`|Boolean|Either a True or False value.| +|`Text`|String|A Unicode character data string. Can be strings, numbers or dates represented in a text format.| +|`Date`|Date/time|Dates and times in an accepted date-time representation.

Valid dates are all dates after March 1, 1900.| +|`Currency`|Currency|Currency data type allows values between -922,337,203,685,477.5808 to 922,337,203,685,477.5807 with four decimal digits of fixed precision.| +|`N/A`|Blank|A blank is a data type in DAX that represents and replaces SQL nulls. You can create a blank by using the BLANK function, and test for blanks by using the logical function, ISBLANK.| Tabular data models also include the *Table* data type as the input or output to many DAX functions. For example, the FILTER function takes a table as input and outputs another table that contains only the rows that meet the filter conditions. By combining table functions with aggregation functions, you can perform complex calculations over dynamically defined data sets. @@ -356,7 +356,7 @@ For examples of how to selectively clear and apply filters within formulas, see The DAX language uses four different types of calculation operators in formulas: -- Comparison operators to compare values and return a logical TRUE\FALSE value. +- Comparison operators to compare values and return a logical `TRUE`\`FALSE` value. - Arithmetic operators to perform arithmetic calculations that return numeric values. - Text concatenation operators to join two or more text strings. - Logical operators that combine two or more expressions to return a single result. diff --git a/query-languages/dax/dax-parameter-naming-conventions.md b/query-languages/dax/dax-parameter-naming-conventions.md index 53a2f8ece..2d16a368d 100644 --- a/query-languages/dax/dax-parameter-naming-conventions.md +++ b/query-languages/dax/dax-parameter-naming-conventions.md @@ -10,20 +10,20 @@ Parameter names are standardized in DAX reference to facilitate the usage and un |Term|Definition| |--------|--------------| -|expression|Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context).| -|value|Any DAX expression that returns a single scalar value where the expression is to be evaluated exactly once before all other operations.| -|table|Any DAX expression that returns a table of data.| -|tableName|The name of an existing table using standard DAX syntax. It cannot be an expression.| -|columnName|The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression.| -|name|A string constant that will be used to provide the name of a new object.| -|order|An enumeration used to determine the sort order.| -|ties|An enumeration used to determine the handling of tie values.| -|type|An enumeration used to determine the data type for PathItem and PathItemReverse.| +|`expression`|Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context).| +|`value`|Any DAX expression that returns a single scalar value where the expression is to be evaluated exactly once before all other operations.| +|`table`|Any DAX expression that returns a table of data.| +|`tableName`|The name of an existing table using standard DAX syntax. It cannot be an expression.| +|`columnName`|The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression.| +|`name`|A string constant that will be used to provide the name of a new object.| +|`order`|An enumeration used to determine the sort order.| +|`ties`|An enumeration used to determine the handling of tie values.| +|`type`|An enumeration used to determine the data type for PathItem and PathItemReverse.| ### Prefixing parameter names or using the prefix only |Term|Definition| |--------|--------------| -|prefixing|Parameter names may be further qualified with a prefix that is descriptive of how the argument is used and to avoid ambiguous reading of the parameters. For example:

Result_ColumnName - Refers to an existing column used to get the result values in the LOOKUPVALUE() function.

Search_ColumnName - Refers to an existing column used to search for a value in the LOOKUPVALUE() function.| -|omitting|Parameter names will be omitted if the prefix is clear enough to describe the parameter.

For example, instead of having the following syntax DATE (Year_Value, Month_Value, Day_Value) it is clearer for the user to read DATE (Year, Month, Day); repeating three times the suffix value does not add anything to a better comprehension of the function and it clutters the reading unnecessarily.

However, if the prefixed parameter is Year_columnName then the parameter name and the prefix will stay to make sure the user understands that the parameter requires a reference to an existing column of Years.| +|`prefixing`|Parameter names may be further qualified with a prefix that is descriptive of how the argument is used and to avoid ambiguous reading of the parameters. For example:

Result_ColumnName - Refers to an existing column used to get the result values in the LOOKUPVALUE() function.

Search_ColumnName - Refers to an existing column used to search for a value in the LOOKUPVALUE() function.| +|`omitting`|Parameter names will be omitted if the prefix is clear enough to describe the parameter.

For example, instead of having the following syntax DATE (Year_Value, Month_Value, Day_Value) it is clearer for the user to read DATE (Year, Month, Day); repeating three times the suffix value does not add anything to a better comprehension of the function and it clutters the reading unnecessarily.

However, if the prefixed parameter is Year_columnName then the parameter name and the prefix will stay to make sure the user understands that the parameter requires a reference to an existing column of Years.| diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index ce4a2b7a2..0cc7de0db 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -15,7 +15,7 @@ DAX queries have a simple syntax comprised of just one required keyword, EVALUAT ### EVALUATE (Required) -At the most basic level, a DAX query is an **EVALUATE** statement containing a table expression. At least one EVALUATE statement is required, however, a query can contain any number of EVALUATE statements. +At the most basic level, a DAX query is an `EVALUATE` statement containing a table expression. At least one EVALUATE statement is required, however, a query can contain any number of EVALUATE statements. #### EVALUATE Syntax @@ -42,7 +42,7 @@ Returns all rows and columns from the Internet Sales table, as a table. ### ORDER BY (Optional) -The optional **ORDER BY** keyword defines one or more expressions used to sort query results. Any expression that can be evaluated for each row of the result is valid. +The optional `ORDER BY` keyword defines one or more expressions used to sort query results. Any expression that can be evaluated for each row of the result is valid. #### ORDER BY Syntax @@ -75,7 +75,7 @@ Returns all rows and columns from the Internet Sales table, in ascending order b ### START AT (Optional) -The optional **START AT** keyword is used inside an **ORDER BY** clause. It defines the value at which the query results begin. +The optional `START AT` keyword is used inside an `ORDER BY` clause. It defines the value at which the query results begin. #### START AT Syntax @@ -113,7 +113,7 @@ Returns all rows and columns from the Internet Sales table, in ascending order b ### DEFINE (Optional) -The optional **DEFINE** keyword introduces one or more calculated entity definitions that exist only for the duration of the query. Definitions precede the EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec). Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included in a query. +The optional `DEFINE` keyword introduces one or more calculated entity definitions that exist only for the duration of the query. Definitions precede the EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec). Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included in a query. #### DEFINE Syntax @@ -134,9 +134,9 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit |Term|Definition| |--------|--------------| -|Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | -|name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| -|expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If there is a need to convert a scalar expression into a table expression, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| +|`Entity`|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | +|`name`|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| +|`expression`|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If there is a need to convert a scalar expression into a table expression, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.|
[1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query without syntax error, they may produce runtime errors and are not recommended. @@ -190,8 +190,8 @@ The [Execute Method (XMLA)](/analysis-services/xmla/xml-elements-methods-execute Reference XMLA parameters by prefixing the name of the parameter with an `@` character. Any place in the syntax where a value is allowed, the value can be replaced with a parameter call. All XMLA parameters are typed as text. > [!IMPORTANT] -> Parameters defined in the parameters section and not used in the **\** element generate an error response in XMLA. -> Parameters used and not defined in the **\** element generate an error response in XMLA. +> Parameters defined in the parameters section and not used in the `` element generate an error response in XMLA. +> Parameters used and not defined in the `` element generate an error response in XMLA. ## Related content diff --git a/query-languages/dax/dax-sample-model.md b/query-languages/dax/dax-sample-model.md index 5f2983daa..be3471389 100644 --- a/query-languages/dax/dax-sample-model.md +++ b/query-languages/dax/dax-sample-model.md @@ -21,7 +21,7 @@ The Adventure Works company represents a bicycle manufacturer that sells bicycle The model has seven tables: -|Table|Description| +|**Table**|**Description**| |-----|-------| |**Customer**|Describes customers and their geographic location. Customers purchase products online (Internet sales).| |**Date**|There are three relationships between the **Date** and **Sales** tables, for order date, ship date, and due date. The order date relationship is active. The company's reports sales using a fiscal year that commences on July 1 of each year. The table is marked as a date table using the **Date** column.| @@ -32,7 +32,6 @@ The model has seven tables: |**Sales Territory**|Sales territories are organized into groups (North America, Europe, and Pacific), countries, and regions. Only the United States sells products at the region level.| - ## Download sample Download the Power BI Desktop sample model file [here](https://aka.ms/dax-docs-sample-file). diff --git a/query-languages/dax/dax-syntax-reference.md b/query-languages/dax/dax-syntax-reference.md index 3578464cb..6540c98c2 100644 --- a/query-languages/dax/dax-syntax-reference.md +++ b/query-languages/dax/dax-syntax-reference.md @@ -27,11 +27,11 @@ For example, the following are all valid formulas. |Formula|Result| |-----------|----------| -|= 3|3| -|= "**Sales**"|**Sales**| -|= 'Sales'[Amount]|If you use this formula within the Sales table, you will get the value of the column Amount in the Sales table for the current row.| -|= (0.03 *[Amount])

=0.03 \* [Amount]|Three percent of the value in the Amount column of the current table.

Although this formula can be used to calculate a percentage, the result is not shown as a percentage unless you apply formatting in the table.| -|= PI()|The value of the constant pi.| +|`= 3`|3| +|`= "Sales"`|**Sales**| +|`= 'Sales'[Amount]`|If you use this formula within the Sales table, you will get the value of the column Amount in the Sales table for the current row.| +|`= (0.03 *[Amount])`

`=0.03 * [Amount]`|Three percent of the value in the Amount column of the current table.

Although this formula can be used to calculate a percentage, the result is not shown as a percentage unless you apply formatting in the table.| +|`= PI()`|The value of the constant pi.| Formulas can behave differently depending on how they are used. You must always be aware of the context and how the data that you use in the formula is related to other data that might be used in the calculation. @@ -43,13 +43,13 @@ Each column and measure you add to an existing data model must belong to a speci When you use a table or column as an input to a function, you must generally *qualify* the column name. The *fully qualified* name of a column is the table name, followed by the column name in square brackets: for examples, 'U.S. Sales'[Products]. A fully qualified name is always required when you reference a column in the following contexts: -- As an argument to the function, VALUES +- As an argument to the function, `VALUES` -- As an argument to the functions, ALL or ALLEXCEPT +- As an argument to the functions, `ALL` or `ALLEXCEPT` -- In a filter argument for the functions, CALCULATE or CALCULATETABLE +- In a filter argument for the functions, `CALCULATE` or `CALCULATETABLE` -- As an argument to the function, RELATEDTABLE +- As an argument to the function, `RELATEDTABLE` - As an argument to any time intelligence function @@ -97,7 +97,7 @@ The following characters and character types are not valid in the names of table - The following characters that are not valid in the names of objects: - .,;':/\\*|?&%$!+=()[]{}<> + `.,;':/\\*|?&%$!+=()[]{}<>` #### Examples of object names @@ -132,11 +132,11 @@ The following table lists the operators that are supported by DAX. For more info |Operator type|Symbol and use| |-----------------|------------------| -|Parenthesis operator|() precedence order and grouping of arguments| -|Arithmetic operators|+ (addition)

- (subtraction/

sign)

* (multiplication)

/ (division)

^ (exponentiation)| -|Comparison operators|= (equal to)

> (greater than)

< (less than)

>= (greater than or equal to)

<= (less than or equal to)

<> (not equal to)| -|Text concatenation operator|& (concatenation)| -|Logic operators|&& (and)

|| (or)| +|Parenthesis operator|`()` precedence order and grouping of arguments| +|Arithmetic operators|`+` (addition)

`-` (subtraction/

sign)

`*` (multiplication)

`/` (division)

`^` (exponentiation)| +|Comparison operators|`=` (equal to)

`>` (greater than)

`<` (less than)

`>=` (greater than or equal to)

`<=` (less than or equal to)

`<>` (not equal to)| +|Text concatenation operator|`&` (concatenation)| +|Logic operators|`&&` (and)

`||` (or)| ## Data types diff --git a/query-languages/dax/day-function-dax.md b/query-languages/dax/day-function-dax.md index ac0f2809f..6b2c37f01 100644 --- a/query-languages/dax/day-function-dax.md +++ b/query-languages/dax/day-function-dax.md @@ -18,7 +18,7 @@ DAY() |Term|Definition| |--------|--------------| -|date|A date in **datetime** format, or a text representation of a date.| +|`date`|A date in `datetime` format, or a text representation of a date.| ## Return value @@ -26,11 +26,11 @@ An integer number indicating the day of the month. ## Remarks -- The DAY function takes as an argument the date of the day you are trying to find. Dates can be provided to the function by using another date function, by using an expression that returns a date, or by typing a date in a **datetime** format. You can also type a date in one of the accepted string formats for dates. +- The DAY function takes as an argument the date of the day you are trying to find. Dates can be provided to the function by using another date function, by using an expression that returns a date, or by typing a date in a `datetime` format. You can also type a date in one of the accepted string formats for dates. - Values returned by the YEAR, MONTH and DAY functions will be Gregorian values regardless of the display format for the supplied date value. For example, if the display format of the supplied date is Hijri, the returned values for the YEAR, MONTH and DAY functions will be values associated with the equivalent Gregorian date. -- When the date argument is a text representation of the date, the day function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. If the current date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is interpreted as a **datetime** value equivalent to January 8th of 2009, and the function returns 8. However, if the current date/time settings represent dates in the format of Day/Month/Year, the same string would be interpreted as a **datetime** value equivalent to August 1st of 2009, and the function returns 1. +- When the date argument is a text representation of the date, the day function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. If the current date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is interpreted as a `datetime` value equivalent to January 8th of 2009, and the function returns 8. However, if the current date/time settings represent dates in the format of Day/Month/Year, the same string would be interpreted as a `datetime` value equivalent to August 1st of 2009, and the function returns 1. ## Example: Getting the day from a date column diff --git a/query-languages/dax/db-function-dax.md b/query-languages/dax/db-function-dax.md index d4edb5460..e870681d4 100644 --- a/query-languages/dax/db-function-dax.md +++ b/query-languages/dax/db-function-dax.md @@ -20,11 +20,11 @@ DB(, , , [, ]) |Term|Definition| |--------|--------------| -|cost|The initial cost of the asset.| -|salvage|The value at the end of the depreciation (sometimes called the salvage value of the asset). This value can be 0.| -|life|The number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).| -|period|The period for which you want to calculate the depreciation. Period must use the same units as life. Must be between 1 and life (inclusive).| -|month|(Optional) The number of months in the first year. If month is omitted, it is assumed to be 12.| +|`cost`|The initial cost of the asset.| +|`salvage`|The value at the end of the depreciation (sometimes called the salvage value of the asset). This value can be 0.| +|`life`|The number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).| +|`period`|The period for which you want to calculate the depreciation. Period must use the same units as life. Must be between 1 and life (inclusive).| +|`month`|(Optional) The number of months in the first year. If month is omitted, it is assumed to be 12.| ## Return Value diff --git a/query-languages/dax/ddb-function-dax.md b/query-languages/dax/ddb-function-dax.md index 8108b6af5..63c2178cf 100644 --- a/query-languages/dax/ddb-function-dax.md +++ b/query-languages/dax/ddb-function-dax.md @@ -20,11 +20,11 @@ DDB(, , , [, ]) |Term|Definition| |--------|--------------| -|cost|The initial cost of the asset.| -|salvage|The value at the end of the depreciation (sometimes called the salvage value of the asset). This value can be 0.| -|life|The number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).| -|period|The period for which you want to calculate the depreciation. Period must use the same units as life. Must be between 1 and life (inclusive).| -|factor|(Optional) The rate at which the balance declines. If factor is omitted, it is assumed to be 2 (the double-declining balance method).| +|`cost`|The initial cost of the asset.| +|`salvage`|The value at the end of the depreciation (sometimes called the salvage value of the asset). This value can be 0.| +|`life`|The number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).| +|`period`|The period for which you want to calculate the depreciation. Period must use the same units as life. Must be between 1 and life (inclusive).| +|`factor`|(Optional) The rate at which the balance declines. If factor is omitted, it is assumed to be 2 (the double-declining balance method).| ## Return Value diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 0dd6a42da..56e5bdd98 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -25,9 +25,9 @@ Introduces a statement with one or more entity definitions that can be applied t |Term|Definition| |--------|--------------| -|Entity|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | -|name|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| -|expression|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If there is a need to convert a scalar expression into a table expression, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| +|`Entity`|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | +|`name`|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| +|`expression`|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If there is a need to convert a scalar expression into a table expression, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| [1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query without syntax error, they may produce runtime errors and are not recommended. diff --git a/query-languages/dax/degrees-function-dax.md b/query-languages/dax/degrees-function-dax.md index df15856f0..2254d144d 100644 --- a/query-languages/dax/degrees-function-dax.md +++ b/query-languages/dax/degrees-function-dax.md @@ -18,10 +18,10 @@ DEGREES(angle) |Term|Definition| |--------|--------------| -|angle|Required. The angle in radians that you want to convert.| +|`angle`|Required. The angle in radians that you want to convert.| ## Example |Formula|Description|Result| |-----------|---------------|----------| -|= DEGREES(PI())|Degrees of pi radians|180| +|`= DEGREES(PI())`|Degrees of pi radians|180| diff --git a/query-languages/dax/detailrows-function-dax.md b/query-languages/dax/detailrows-function-dax.md index a7331eda9..c2b38961e 100644 --- a/query-languages/dax/detailrows-function-dax.md +++ b/query-languages/dax/detailrows-function-dax.md @@ -18,7 +18,7 @@ DETAILROWS([Measure]) |Term|Definition| |--------|--------------| -|Measure|Name of a measure.| +|`Measure`|Name of a measure.| ## Return value diff --git a/query-languages/dax/disc-function-dax.md b/query-languages/dax/disc-function-dax.md index 69baadbe9..7267f100a 100644 --- a/query-languages/dax/disc-function-dax.md +++ b/query-languages/dax/disc-function-dax.md @@ -20,15 +20,15 @@ DISC(, , , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|pr|The security's price per \\$100 face value.| -|redemption|The security's redemption value per \\$100 face value.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`pr`|The security's price per \\$100 face value.| +|`redemption`|The security's redemption value per \\$100 face value.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/distinct-function-dax.md b/query-languages/dax/distinct-function-dax.md index 086b64b2b..ee009429f 100644 --- a/query-languages/dax/distinct-function-dax.md +++ b/query-languages/dax/distinct-function-dax.md @@ -21,7 +21,7 @@ DISTINCT() |Term|Definition| |--------|--------------| -|column|The column from which unique values are to be returned. Or, an expression that returns a column.| +|`column`|The column from which unique values are to be returned. Or, an expression that returns a column.| ## Return value diff --git a/query-languages/dax/distinct-table-function-dax.md b/query-languages/dax/distinct-table-function-dax.md index 3d6a6ee1f..ac59c386b 100644 --- a/query-languages/dax/distinct-table-function-dax.md +++ b/query-languages/dax/distinct-table-function-dax.md @@ -18,7 +18,7 @@ DISTINCT(
) |Term|Definition| |--------|--------------| -|table|The table from which unique rows are to be returned. The table can also be an expression that results in a table.| +|`table`|The table from which unique rows are to be returned. The table can also be an expression that results in a table.| ## Return value diff --git a/query-languages/dax/distinctcount-function-dax.md b/query-languages/dax/distinctcount-function-dax.md index 044d432c5..1c1f2867f 100644 --- a/query-languages/dax/distinctcount-function-dax.md +++ b/query-languages/dax/distinctcount-function-dax.md @@ -18,11 +18,11 @@ DISTINCTCOUNT() |Term |Description| |---------|---------| -|column | The column that contains the values to be counted | +|`column`| The column that contains the values to be counted | ## Return value -The number of distinct values in *column*. +The number of distinct values in `column`. ## Remarks diff --git a/query-languages/dax/distinctcountnoblank-function-dax.md b/query-languages/dax/distinctcountnoblank-function-dax.md index d5fa4fa27..5e1eb0fb5 100644 --- a/query-languages/dax/distinctcountnoblank-function-dax.md +++ b/query-languages/dax/distinctcountnoblank-function-dax.md @@ -18,11 +18,11 @@ DISTINCTCOUNTNOBLANK() |Term |Description| |---------|---------| -|column | The column that contains the values to be counted | +|`column`| The column that contains the values to be counted | ## Return value -The number of distinct values in *column*. +The number of distinct values in `column`. ## Remarks diff --git a/query-languages/dax/divide-function-dax.md b/query-languages/dax/divide-function-dax.md index 4687d7f15..39747b63f 100644 --- a/query-languages/dax/divide-function-dax.md +++ b/query-languages/dax/divide-function-dax.md @@ -18,9 +18,9 @@ DIVIDE(, [,]) |Term|Definition| |--------|--------------| -|numerator|The dividend or number to divide.| -|denominator|The divisor or number to divide by.| -|alternateresult|(Optional) The value returned when division by zero results in an error. When not provided, the default value is BLANK().| +|`numerator`|The dividend or number to divide.| +|`denominator`|The divisor or number to divide by.| +|`alternateresult`|(Optional) The value returned when division by zero results in an error. When not provided, the default value is BLANK().| ## Return value diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index cde601a75..d15ce9197 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -51,44 +51,23 @@ "show_latex": true, "contributors_to_exclude": [ "mikekinsman" ], "noloc": [ - "#binary", - "#date", - "#datetime", - "#datetimezone", - "#duration", - "#table", - "#time", "ABS", - "Access.Database", - "AccessControlEntry.ConditionToIdentities", - "AccessControlKind.Type", "ACCRINT", "ACCRINTM", "ACOS", "ACOSH", "ACOT", "ACOTH", - "Action.WithErrorContext", - "ActiveDirectory.Domains", "ADDCOLUMNS", "ADDMISSINGITEMS", - "AdobeAnalytics.Cubes", - "AdoDotNet.DataSource", - "AdoDotNet.Query", "ALL", "ALLCROSSFILTERED", "ALLEXCEPT", "ALLNOBLANKROW", "ALLSELECTED", - "alpha", - "alternateresult", - "alternateResult", "AMORDEGRC", "AMORLINC", - "AnalysisServices.Database", - "AnalysisServices.Databases", "AND", - "angle", "APPROXIMATEDISTINCTCOUNT", "ASC", "ASIN", @@ -98,77 +77,19 @@ "AVERAGE", "AVERAGEA", "AVERAGEX", - "axis", - "AzureStorage.BlobContents", - "AzureStorage.Blobs", - "AzureStorage.DataLake", - "AzureStorage.DataLakeContents", - "AzureStorage.Tables", - "B", - "base", - "basis", "BETA.DIST", "BETA.INV", - "Binary.ApproximateLength", - "Binary.Buffer", - "Binary.Combine", - "Binary.Compress", - "Binary.Decompress", - "Binary.From", - "Binary.FromList", - "Binary.FromText", - "Binary.InferContentType", - "Binary.Length", - "Binary.Range", - "Binary.Split", - "Binary.ToList", - "Binary.ToText", - "Binary.View", - "Binary.ViewError", - "Binary.ViewFunction", - "BinaryEncoding.Type", - "BinaryFormat.7BitEncodedSignedInteger", - "BinaryFormat.7BitEncodedUnsignedInteger", - "BinaryFormat.Binary", - "BinaryFormat.Byte", - "BinaryFormat.ByteOrder", - "BinaryFormat.Choice", - "BinaryFormat.Decimal", - "BinaryFormat.DoubleBinaryFormat.Group", - "BinaryFormat.Length", - "BinaryFormat.List", - "BinaryFormat.Null", - "BinaryFormat.Record", - "BinaryFormat.SignedInteger16", - "BinaryFormat.SignedInteger32", - "BinaryFormat.SignedInteger64", - "BinaryFormat.Single", - "BinaryFormat.Text", - "BinaryFormat.Transform", - "BinaryFormat.UnsignedInteger16", - "BinaryFormat.UnsignedInteger32", - "BinaryFormat.UnsignedInteger64", - "BinaryOccurrence.Type", "BITAND", "BITLSHIFT", "BITOR", "BITRSHIFT", "BITXOR", "BLANK", - "blanks", - "bottom", - "BufferMode.Type", - "BY", - "Byte.From", - "ByteOrder.Type", "CALCULATE", "CALCULATETABLE", "CALENDAR", "CALENDARAUTO", - "Cdm.Contents", "CEILING", - "Character.FromNumber", - "Character.ToNumber", "CHISQ.DIST", "CHISQ.DIST.RT", "CHISQ.INV", @@ -179,34 +100,15 @@ "COALESCE", "COLLAPSE", "COLLAPSEALL", - "column", - "columnName", - "ColumnName", - "columnName1", - "ColumnName1DataType1ColumnName2DataType2", - "columnName2", "COLUMNSTATISTICS", "COMBIN", "COMBINA", - "Combiner.CombineTextByDelimiter", - "Combiner.CombineTextByEachDelimiter", - "Combiner.CombineTextByLengths", - "Combiner.CombineTextByPositions", - "Combiner.CombineTextByRanges", "COMBINEVALUES", - "Comments", - "Comparer.Equals", - "Comparer.FromCulture", - "Comparer.Ordinal", - "Comparer.OrdinalIgnoreCase", - "Compression.Type", "CONCATENATE", "CONCATENATEX", "CONFIDENCE.NORM", "CONFIDENCE.T", - "Constants", "CONTAINS", - "CONTAINSROW", "CONTAINSSTRING", "CONTAINSSTRINGEXACT", "CONVERT", @@ -228,313 +130,88 @@ "COUPPCD", "CROSSFILTER", "CROSSJOIN", - "Csv.Document", - "CsvStyle.Type", - "Cube.AddAndExpandDimensionColumn", - "Cube.AddMeasureColumn", - "Cube.ApplyParameter", - "Cube.AttributeMemberId", - "Cube.AttributeMemberProperty", - "Cube.CollapseAndRemoveColumns", - "Cube.Dimensions", - "Cube.DisplayFolders", - "Cube.MeasureProperties", - "Cube.MeasureProperty", - "Cube.Measures", - "Cube.Parameters", - "Cube.Properties", - "Cube.PropertyKey", - "Cube.ReplaceDimensions", - "Cube.Transform", - "Culture.Current", "CUMIPMT", "CUMPRINC", - "cumulative", "CURRENCY", - "Currency.From", "CURRENTGROUP", "CUSTOMDATA", "DATATABLE", - "Datatype", - "date", "DATE", - "date_text", - "Date.AddDays", - "Date.AddMonths", - "Date.AddQuarters", - "Date.AddWeeks", - "Date.AddYears", - "Date.Day", - "Date.DayOfWeek", - "Date.DayOfWeekName", - "Date.DayOfYear", - "Date.DaysInMonth", - "Date.EndOfDay", - "Date.EndOfMonth", - "Date.EndOfQuarter", - "Date.EndOfWeek", - "Date.EndOfYear", - "Date.From", - "Date.FromText", - "Date.IsInCurrentDay", - "Date.IsInCurrentMonth", - "Date.IsInCurrentQuarter", - "Date.IsInCurrentWeek", - "Date.IsInCurrentYear", - "Date.IsInNextDay", - "Date.IsInNextMonth", - "Date.IsInNextNDays", - "Date.IsInNextNMonths", - "Date.IsInNextNQuarters", - "Date.IsInNextNWeeks", - "Date.IsInNextNYears", - "Date.IsInNextQuarter", - "Date.IsInNextWeek", - "Date.IsInNextYear", - "Date.IsInPreviousDay", - "Date.IsInPreviousMonth", - "Date.IsInPreviousNDays", - "Date.IsInPreviousNMonths", - "Date.IsInPreviousNQuarters", - "Date.IsInPreviousNWeeks", - "Date.IsInPreviousNYears", - "Date.IsInPreviousQuarter", - "Date.IsInPreviousWeek", - "Date.IsInPreviousYear", - "Date.IsInYearToDate", - "Date.IsLeapYear", - "Date.Month", - "Date.MonthName", - "Date.QuarterOfYear", - "Date.StartOfDay", - "Date.StartOfMonth", - "Date.StartOfQuarter", - "Date.StartOfWeek", - "Date.StartOfYear", - "Date.ToRecord", - "Date.ToText", - "Date.WeekOfMonth", - "Date.WeekOfYear", - "Date.Year", - "Date1", - "Date2", "DATEADD", "DATEDIFF", - "dates", - "Dates", "DATESBETWEEN", "DATESINPERIOD", "DATESMTD", "DATESQTD", "DATESYTD", - "datetime", - "DateTime.AddZone", - "DateTime.Date", - "DateTime.FixedLocalNow", - "DateTime.From", - "DateTime.FromFileTime", - "DateTime.FromText", - "DateTime.IsInCurrentHour", - "DateTime.IsInCurrentMinute", - "DateTime.IsInCurrentSecond", - "DateTime.IsInNextHour", - "DateTime.IsInNextMinute", - "DateTime.IsInNextNHours", - "DateTime.IsInNextNMinutes", - "DateTime.IsInNextNSeconds", - "DateTime.IsInNextSecond", - "DateTime.IsInPreviousHour", - "DateTime.IsInPreviousMinute", - "DateTime.IsInPreviousNHours", - "DateTime.IsInPreviousNMinutes", - "DateTime.IsInPreviousNSeconds", - "DateTime.IsInPreviousSecond", - "DateTime.LocalNow", - "DateTime.Time", - "DateTime.ToRecord", - "DateTime.ToText", - "DateTimeZone.FixedLocalNow", - "DateTimeZone.FixedUtcNow", - "DateTimeZone.From", - "DateTimeZone.FromFileTime", - "DateTimeZone.FromText", - "DateTimeZone.LocalNow", - "DateTimeZone.RemoveZone", - "DateTimeZone.SwitchZone", - "DateTimeZone.ToLocal", - "DateTimeZone.ToRecord", - "DateTimeZone.ToText", - "DateTimeZone.ToUtc", - "DateTimeZone.UtcNow", - "DateTimeZone.ZoneHours", - "DateTimeZone.ZoneMinutes", "DATEVALUE", + "Videos", "DAX", - "day", "DAY", - "Day.Type", "DB", - "DB2.Database", "DDB", - "Decimal.From", - "decimals", "DEFINE", - "deg_freedom", "DEGREES", - "delimiter", - "Delimiter", - "delta", - "DeltaLake.Table", - "denominator", "DESC", "DETAILROWS", - "Diagnostics.ActivityId", - "Diagnostics.CorrelationId", - "Diagnostics.Trace", - "direction", - "DirectQueryCapabilities.From", "DISC", - "DISTINCT", + "DISTINCT (column)", + "DISTINCT (table)", "DISTINCTCOUNT", "DISTINCTCOUNTNOBLANK", "DIVIDE", - "divisor", "DOLLARDE", "DOLLARFR", - "Double.From", "DURATION", - "Duration.Days", - "Duration.From", - "Duration.FromText", - "Duration.Hours", - "Duration.Minutes", - "Duration.Seconds", - "Duration.ToRecord", - "Duration.TotalDays", - "Duration.TotalHours", - "Duration.TotalMinutes", - "Duration.TotalSeconds", - "Duration.ToText", "EARLIER", "EARLIEST", "EDATE", "EFFECT", - "else", - "Embedded.Value", - "end_date", "ENDOFMONTH", "ENDOFQUARTER", "ENDOFYEAR", - "endValue", - "Enumerations", "EOMONTH", "ERROR", - "Error.Record", - "Errors", - "Essbase.Cubes", "EVALUATE", "EVALUATEANDLOG", "EVEN", "EXACT", - "Excel.CurrentWorkbook", - "Excel.ShapeTable", - "Excel.Workbook", "EXCEPT", - "Exchange.Contents", "EXP", "EXPAND", "EXPANDALL", "EXPON.DIST", - "expression", - "Expression", - "Expression.Constant", - "Expression.Evaluate", - "Expression.Identifier", - "ExtraValues.Type", "FACT", "FALSE", - "File.Contents", - "filter", "FILTER", "FILTERS", - "filterTable", "FIND", - "find_text", "FIRST", "FIRSTDATE", "FIRSTNONBLANK", "FIRSTNONBLANKVALUE", - "fiscal_year_end_month", "FIXED", "FLOOR", - "Folder.Contents", - "Folder.Files", "FORMAT", - "from", - "from_type", - "Function.From", - "Function.Invoke", - "Function.InvokeAfter", - "Function.InvokeWithErrorContext", - "Function.IsDataSource", - "Function.ScalarVector", "FV", "GCD", "GENERATE", "GENERATEALL", "GENERATESERIES", - "Geography.FromWellKnownText", - "Geography.ToWellKnownText", - "GeographyPoint.From", "GEOMEAN", "GEOMEANX", - "Geometry.FromWellKnownText", - "Geometry.ToWellKnownText", - "GeometryPoint.From", - "GoogleAnalytics.Accounts", - "grandTotalFilter", - "Graph.Nodes", "GROUPBY", - "groupBy_columnName", - "GroupKind.Type", - "groupLevelFilter", - "guess", - "Guid.From", "HASONEFILTER", "HASONEVALUE", - "Hdfs.Contents", - "Hdfs.Files", - "HdInsight.Containers", - "HdInsight.Contents", - "HdInsight.Files", "HOUR", - "hourminutesecond", - "Html.Table", - "ID_columnName", - "Identity.From", - "Identity.IsMemberOf", - "IdentityProvider.Default", - "IF", "IF.EAGER", + "IF", "IFERROR", "IGNORE", - "IncludeHeaders", - "incrementValue", "INDEX", - "indexColumnName", - "indexColumnsTable", - "Informix.Database", - "instance_num", "INT", - "Int16.From", - "Int32.From", - "Int64.From", - "Int8.From", "INTERSECT", - "interval", - "Interval", "INTRATE", - "Introduction", "IPMT", "ISAFTER", "ISATLEVEL", @@ -554,159 +231,47 @@ "ISPMT", "ISSELECTEDMEASURE", "ISSUBTOTAL", - "isSubtotal_columnName", "ISTEXT", - "item", - "ItemExpression.From", - "ItemExpression.Item", - "JoinAlgorithm.Type", - "JoinKind.Type", - "JoinSide.Type", - "Json.Document", - "Json.FromValue", - "k", "KEEPFILTERS", - "Label", "LAST", "LASTDATE", "LASTNONBLANK", "LASTNONBLANKVALUE", "LCM", "LEFT", - "LeftTable", "LEN", - "Let", - "LimitClauseKind.Type", - "Lines.FromBinary", - "Lines.FromText", - "Lines.ToBinary", - "Lines.ToText", "LINEST", "LINESTX", - "List.Accumulate", - "List.AllTrue", - "List.Alternate", - "List.AnyTrue", - "List.Average", - "List.Buffer", - "List.Combine", - "List.ConformToPageReader", - "List.Contains", - "List.ContainsAll", - "List.ContainsAny", - "List.Count", - "List.Covariance", - "List.Dates", - "List.DateTimes", - "List.DateTimeZones", - "List.Difference", - "List.Distinct", - "List.Durations", - "List.FindText", - "List.First", - "List.FirstN", - "List.Generate", - "List.InsertRange", - "List.Intersect", - "List.IsDistinct", - "List.IsEmpty", - "List.Last", - "List.LastN", - "List.MatchesAll", - "List.MatchesAny", - "List.Max", - "List.MaxN", - "List.Median", - "List.Min", - "List.MinN", - "List.Mode", - "List.Modes", - "List.NonNullCount", - "List.Numbers", - "List.Percentile", - "List.PositionOf", - "List.PositionOfAny", - "List.Positions", - "List.Product", - "List.Random", - "List.Range", - "List.RemoveFirstN", - "List.RemoveItems", - "List.RemoveLastN", - "List.RemoveMatchingItems", - "List.RemoveNulls", - "List.RemoveRange", - "List.Repeat", - "List.ReplaceMatchingItems", - "List.ReplaceRange", - "List.ReplaceValue", - "List.Reverse", - "List.Select", - "List.Single", - "List.SingleOrDefault", - "List.Skip", - "List.Sort", - "List.Split", - "List.StandardDeviation", - "List.Sum", - "List.Times", - "List.Transform", - "List.TransformMany", - "List.Union", - "List.Zip", "LN", "LOG", "LOG10", - "logical", - "Logical.From", - "Logical.FromText", - "Logical.ToText", - "logical1", - "logical2", "LOOKUPVALUE", "LOWER", - "M1M2", - "matchBy", "MATCHBY", "MAX", "MAXA", - "MaxRows", "MAXX", "MDURATION", - "Measure", "MEASURE", "MEDIAN", "MEDIANX", - "Metadata", "MID", "MIN", "MINA", "MINUTE", "MINX", - "MissingField.Type", "MOD", - "Module.Versions", - "month", "MONTH", - "months", "MOVINGAVERAGE", "MROUND", - "multiple", - "MySQL.Database", - "n_value", - "N_Value", - "name", - "Name", "NATURALINNERJOIN", "NATURALLEFTOUTERJOIN", "NETWORKDAYS", - "new_text", "NEXT", "NEXTDAY", "NEXTMONTH", "NEXTQUARTER", "NEXTYEAR", - "no_commas", "NOMINAL", "NONVISUAL", "NORM.DIST", @@ -714,126 +279,38 @@ "NORM.S.DIST", "NORM.S.INV", "NOT", - "NotFoundValue", "NOW", "NPER", - "num_chars", - "num_digits", - "num_times", - "number", - "Number", - "number_of_intervals", - "Number.Abs", - "Number.Acos", - "Number.Asin", - "Number.Atan", - "Number.Atan2", - "Number.BitwiseAnd", - "Number.BitwiseNot", - "Number.BitwiseOr", - "Number.BitwiseShiftLeft", - "Number.BitwiseShiftRight", - "Number.BitwiseXor", - "Number.Combinations", - "Number.Cos", - "Number.Cosh", - "Number.E", - "Number.Epsilon", - "Number.Exp", - "Number.Factorial", - "Number.From", - "Number.FromText", - "Number.IntegerDivide", - "Number.IsEven", - "Number.IsNaN", - "Number.IsOdd", - "Number.Ln", - "Number.Log", - "Number.Log10", - "Number.Mod", - "Number.NaN", - "Number.NegativeInfinity", - "Number.Permutations", - "Number.PI", - "Number.PositiveInfinity", - "Number.Power", - "Number.Random", - "Number.RandomBetween", - "Number.Round", - "Number.RoundAwayFromZero", - "Number.RoundDown", - "Number.RoundTowardZero", - "Number.RoundUp", - "Number.Sign", - "Number.Sin", - "Number.Sinh", - "Number.Sqrt", - "Number.Tan", - "Number.Tanh", - "Number.ToText", - "number1number2", - "numbernumber_chosen", - "numerator", - "Occurrence.Type", - "OData.Feed", - "ODataOmitValues.Type", - "Odbc.DataSource", - "Odbc.InferOptions", - "Odbc.Query", "ODD", "ODDFPRICE", "ODDFYIELD", "ODDLPRICE", "ODDLYIELD", "OFFSET", - "old_text", - "OleDb.DataSource", - "OleDb.Query", "OPENINGBALANCEMONTH", "OPENINGBALANCEQUARTER", "OPENINGBALANCEYEAR", - "Operators", - "or", "OR", - "Oracle.Database", - "order", - "Order", - "ORDER", - "ORDER BY", - "Order.Type", - "orderBy", "ORDERBY", - "orderBy_expression", - "OrderBy_Expression", + "ORDER BY", "PARALLELPERIOD", - "parent_columnName", - "partitionBy", "PARTITIONBY", - "partitionBy_columnName", - "path", "PATH", "PATHCONTAINS", "PATHITEM", "PATHITEMREVERSE", "PATHLENGTH", - "Pdf.Tables", "PDURATION", - "Percentage.From", "PERCENTILE.EXC", "PERCENTILE.INC", - "PercentileMode.Type", "PERCENTILEX.EXC", "PERCENTILEX.INC", "PERMUT", "PI", "PMT", "POISSON.DIST", - "position", - "PostgreSQL.Database", - "power", "POWER", "PPMT", - "Precision.Type", "PREVIOUS", "PREVIOUSDAY", "PREVIOUSMONTH", @@ -842,139 +319,61 @@ "PRICE", "PRICEDISC", "PRICEMAT", - "Probability", - "probabilityalphabetaA", - "probabilitydeg_freedom", - "ProbabilityDeg_freedom", - "ProbabilityMeanStandard_dev", "PRODUCT", "PRODUCTX", - "Progress.DataSourceProgress", "PV", "QUARTER", - "QuoteStyle.Type", "QUOTIENT", "RADIANS", "RAND", "RANDBETWEEN", "RANGE", - "RANK", "RANK.EQ", - "RankKind.Type", + "RANK", "RANKX", - "rate", "RATE", - "RData.FromBinary", "RECEIVED", - "Record.AddField", - "Record.Combine", - "Record.Field", - "Record.FieldCount", - "Record.FieldNames", - "Record.FieldOrDefault", - "Record.FieldValues", - "Record.FromList", - "Record.FromTable", - "Record.HasFields", - "Record.RemoveFields", - "Record.RenameFields", - "Record.ReorderFields", - "Record.SelectFields", - "Record.ToList", - "Record.ToTable", - "Record.TransformFields", "RELATED", "RELATEDTABLE", - "relation", - "RelativePosition.Type", "REMOVEFILTERS", "REPLACE", - "Replacer.ReplaceText", - "Replacer.ReplaceValue", "REPT", - "reset", - "result", - "return_type", "RIGHT", - "RightTable", "ROLLUP", "ROLLUPADDISSUBTOTAL", "ROLLUPGROUP", "ROLLUPISSUBTOTAL", "ROUND", "ROUNDDOWN", - "RoundingMode.Type", "ROUNDUP", - "ROW", - "RowExpression.Column", - "RowExpression.From", - "RowExpression.Row", "ROWNUMBER", "RRI", "RUNNINGSUM", - "Salesforce.Data", - "Salesforce.Reports", "SAMEPERIODLASTYEAR", "SAMPLE", "SAMPLEAXISWITHLOCALMINMAX", - "SapBusinessWarehouse.Cubes", - "SapBusinessWarehouseExecutionMode.Type", - "SapHana.Database", - "SapHanaDistribution.Type", - "SapHanaRangeOperator.Type", - "scalarExpr1", - "scalarExpr2", "SEARCH", "SECOND", - "Sections", "SELECTCOLUMNS", "SELECTEDMEASURE", "SELECTEDMEASUREFORMATSTRING", "SELECTEDMEASURENAME", "SELECTEDVALUE", - "SharePoint.Contents", - "SharePoint.Files", - "SharePoint.Tables", - "Shift_Amount", - "showAll_columnName", "SIGN", - "significance", "SIN", - "Single.From", "SINH", - "size", "SLN", - "Soda.Feed", - "Splitter.SplitByNothing", - "Splitter.SplitTextByAnyDelimiter", - "Splitter.SplitTextByCharacterTransition", - "Splitter.SplitTextByDelimiter", - "Splitter.SplitTextByEachDelimiter", - "Splitter.SplitTextByLengths", - "Splitter.SplitTextByPositions", - "Splitter.SplitTextByRanges", - "Splitter.SplitTextByRepeatedLengths", - "Splitter.SplitTextByWhitespace", - "Sql.Database", - "Sql.Databases", - "SqlExpression.SchemaFrom", - "SqlExpression.ToExpression", "SQRT", "SQRTPI", - "standard_dev", "START AT", - "start_date", - "start_num", "STARTOFMONTH", "STARTOFQUARTER", "STARTOFYEAR", - "startValue", "Statements", "STDEV.P", "STDEV.S", "STDEVX.P", "STDEVX.S", - "steps", "SUBSTITUTE", "SUBSTITUTEWITHINDEX", "SUM", @@ -982,250 +381,34 @@ "SUMMARIZECOLUMNS", "SUMX", "SWITCH", - "Sybase.Database", "SYD", - "T.DIST", "T.DIST.2T", + "T.DIST", "T.DIST.RT", - "T.INV", "T.INV.2T", - "table", - "Table", - "table_expression", - "table_expression1", - "table_expression2", - "table_expressioncolumn", - "Table.AddColumn", - "Table.AddFuzzyClusterColumn", - "Table.AddIndexColumn", - "Table.AddJoinColumn", - "Table.AddKey", - "Table.AddRankColumn", - "Table.AggregateTableColumn", - "Table.AlternateRows", - "Table.ApproximateRowCount", - "Table.Buffer", - "Table.Column", - "Table.ColumnCount", - "Table.ColumnNames", - "Table.ColumnsOfType", - "Table.Combine", - "Table.CombineColumns", - "Table.CombineColumnsToRecord", - "Table.ConformToPageReader", - "Table.Contains", - "Table.ContainsAll", - "Table.ContainsAny", - "Table.DemoteHeaders", - "Table.Distinct", - "Table.DuplicateColumn", - "Table.ExpandListColumn", - "Table.ExpandRecordColumn", - "Table.ExpandTableColumn", - "Table.FillDown", - "Table.FillUp", - "Table.FilterWithDataTable", - "Table.FindText", - "Table.First", - "Table.FirstN", - "Table.FirstValue", - "Table.FromColumns", - "Table.FromList", - "Table.FromPartitions", - "Table.FromRecords", - "Table.FromRows", - "Table.FromValue", - "Table.FuzzyGroup", - "Table.FuzzyJoin", - "Table.FuzzyNestedJoin", - "Table.Group", - "Table.HasColumns", - "Table.InsertRows", - "Table.IsDistinct", - "Table.IsEmpty", - "Table.Join", - "Table.Keys", - "Table.Last", - "Table.LastN", - "Table.MatchesAllRows", - "Table.MatchesAnyRows", - "Table.Max", - "Table.MaxN", - "Table.Min", - "Table.MinN", - "Table.NestedJoin", - "Table.Partition", - "Table.PartitionValues", - "Table.Pivot", - "Table.PositionOf", - "Table.PositionOfAny", - "Table.PrefixColumns", - "Table.Profile", - "Table.PromoteHeaders", - "Table.Range", - "Table.RemoveColumns", - "Table.RemoveFirstN", - "Table.RemoveLastN", - "Table.RemoveMatchingRows", - "Table.RemoveRows", - "Table.RemoveRowsWithErrors", - "Table.RenameColumns", - "Table.ReorderColumns", - "Table.Repeat", - "Table.ReplaceErrorValues", - "Table.ReplaceKeys", - "Table.ReplaceMatchingRows", - "Table.ReplaceRelationshipIdentity", - "Table.ReplaceRows", - "Table.ReplaceValue", - "Table.ReverseRows", - "Table.RowCount", - "Table.Schema", - "Table.SelectColumns", - "Table.SelectRows", - "Table.SelectRowsWithErrors", - "Table.SingleRow", - "Table.Skip", - "Table.Sort", - "Table.Split", - "Table.SplitAt", - "Table.SplitColumn", - "Table.StopFolding", - "Table.ToColumns", - "Table.ToList", - "Table.ToRecords", - "Table.ToRows", - "Table.TransformColumnNames", - "Table.TransformColumns", - "Table.TransformColumnTypes", - "Table.TransformRows", - "Table.Transpose", - "Table.Unpivot", - "Table.UnpivotOtherColumns", - "Table.View", - "Table.ViewError", - "Table.ViewFunction", - "Table.WithErrorContext", - "table1", - "table2", - "tableName", - "TableNameOrColumnName", - "Tables.GetRelationships", + "T.INV", "TAN", "TANH", "TBILLEQ", "TBILLPRICE", "TBILLYIELD", - "Teradata.Database", - "text", - "Text", - "Text.AfterDelimiter", - "Text.At", - "Text.BeforeDelimiter", - "Text.BetweenDelimiters", - "Text.Clean", - "Text.Combine", - "Text.Contains", - "Text.End", - "Text.EndsWith", - "Text.Format", - "Text.From", - "Text.FromBinary", - "Text.InferNumberType", - "Text.Insert", - "Text.Length", - "Text.Lower", - "Text.Middle", - "Text.NewGuid", - "Text.PadEnd", - "Text.PadStart", - "Text.PositionOf", - "Text.PositionOfAny", - "Text.Proper", - "Text.Range", - "Text.Remove", - "Text.RemoveRange", - "Text.Repeat", - "Text.Replace", - "Text.ReplaceRange", - "Text.Reverse", - "Text.Select", - "Text.Split", - "Text.SplitAny", - "Text.Start", - "Text.StartsWith", - "Text.ToBinary", - "Text.ToList", - "Text.Trim", - "Text.TrimEnd", - "Text.TrimStart", - "Text.Upper", - "text1", - "text2", - "TextEncoding.Type", - "ties", - "time", "TIME", - "time_text", - "Time.EndOfHour", - "Time.From", - "Time.FromText", - "Time.Hour", - "Time.Minute", - "Time.Second", - "Time.StartOfHour", - "Time.ToRecord", - "Time.ToText", "TIMEVALUE", - "TimeZone.Current", - "to", - "to_type", "TOCSV", "TODAY", "TOJSON", - "top", "TOPN", "TOTALMTD", "TOTALQTD", "TOTALYTD", - "TraceLevel.Type", "TREATAS", "TRIM", "TRUE", "TRUNC", - "type", - "Type.AddTableKey", - "Type.ClosedRecord", - "Type.Facets", - "Type.ForFunction", - "Type.ForRecord", - "Type.FunctionParameters", - "Type.FunctionRequiredParameters", - "Type.FunctionReturn", - "Type.Is", - "Type.IsNullable", - "Type.IsOpenRecord", - "Type.ListItem", - "Type.NonNullable", - "Type.OpenRecord", - "Type.RecordFields", - "Type.ReplaceFacets", - "Type.ReplaceTableKeys", - "Type.TableColumn", - "Type.TableKeys", - "Type.TableRow", - "Type.TableSchema", - "Type.Union", - "Types", "UNICHAR", "UNICODE", "UNION", "UPPER", - "Uri.BuildQueryString", - "Uri.Combine", - "Uri.EscapeDataString", - "Uri.Parts", - "Urifunctions", "USERCULTURE", "USERELATIONSHIP", "USERNAME", @@ -1233,79 +416,24 @@ "USERPRINCIPALNAME", "UTCNOW", "UTCTODAY", - "value", - "Value", "VALUE", - "Value.Add", - "Value.Alternates", - "Value.As", - "Value.Compare", - "Value.Divide", - "Value.Equals", - "Value.Expression", - "Value.Firewall", - "Value.FromText", - "Value.Is", - "Value.Lineage", - "Value.Metadata", - "Value.Multiply", - "Value.NativeQuery", - "Value.NullableEquals", - "Value.Optimize", - "Value.RemoveMetadata", - "Value.ReplaceMetadata", - "Value.ReplaceType", - "Value.Subtract", - "Value.Traits", - "Value.Type", - "Value.VersionIdentity", - "Value.Versions", - "Value.ViewError", - "Value.ViewFunction", - "Value1Value2", - "Valuefunctions", - "ValueNValueN+1", - "values", - "Values", "VALUES", - "valuevalue_if_error", "VAR", "VAR.P", "VAR.S", - "Variable.Value", - "variant", "VARX.P", "VARX.S", "VDB", - "Videos", - "Web.BrowserContents", - "Web.Contents", - "Web.Headers", - "Web.Page", - "WebAction.Request", - "WebMethod.Type", "WEEKDAY", "WEEKNUM", "WINDOW", - "within_text", - "xalphabetacumulativeA", - "XDeg_freedom", - "XDeg_freedomCumulative", "XIRR", - "xlambdacumulative", - "xmeancumulative", - "XMeanStandard_devCumulative", - "Xml.Document", - "Xml.Tables", "XNPV", - "year", "YEAR", - "year_end_date", "YEARFRAC", "YIELD", "YIELDDISC", - "YIELDMAT", - "ZCumulative" + "YIELDMAT" ] }, diff --git a/query-languages/dax/dollarde-function-dax.md b/query-languages/dax/dollarde-function-dax.md index ec1f9226a..8fefc37d6 100644 --- a/query-languages/dax/dollarde-function-dax.md +++ b/query-languages/dax/dollarde-function-dax.md @@ -20,12 +20,12 @@ DOLLARDE(, ) |Term|Definition| |--------|--------------| -|fractional_dollar|A number expressed as an integer part and a fraction part, separated by a decimal symbol.| -|fraction|The integer to use in the denominator of the fraction.| +|`fractional_dollar`|A number expressed as an integer part and a fraction part, separated by a decimal symbol.| +|`fraction`|The integer to use in the denominator of the fraction.| ## Return Value -The decimal value of *fractional_dollar*. +The decimal value of `fractional_dollar`. ## Remarks diff --git a/query-languages/dax/dollarfr-function-dax.md b/query-languages/dax/dollarfr-function-dax.md index 6409ad363..fbdd88387 100644 --- a/query-languages/dax/dollarfr-function-dax.md +++ b/query-languages/dax/dollarfr-function-dax.md @@ -20,12 +20,12 @@ DOLLARFR(, ) |Term|Definition| |--------|--------------| -|decimal_dollar|A decimal number.| -|fraction|The integer to use in the denominator of the fraction.| +|`decimal_dollar`|A decimal number.| +|`fraction`|The integer to use in the denominator of the fraction.| ## Return Value -The fractional value of *decimal_dollar*, expressed as an integer part and a fraction part. +The fractional value of `decimal_dollar`, expressed as an integer part and a fraction part. ## Remarks diff --git a/query-languages/dax/duration-function-dax.md b/query-languages/dax/duration-function-dax.md index 1027ba96a..30fb16d17 100644 --- a/query-languages/dax/duration-function-dax.md +++ b/query-languages/dax/duration-function-dax.md @@ -20,16 +20,16 @@ DURATION(, , , , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|coupon|The security's annual coupon rate.| -|yld|The security's annual yield.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`coupon`|The security's annual coupon rate.| +|`yld`|The security's annual yield.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/earlier-function-dax.md b/query-languages/dax/earlier-function-dax.md index dfa4e4779..1dfc6ed21 100644 --- a/query-languages/dax/earlier-function-dax.md +++ b/query-languages/dax/earlier-function-dax.md @@ -22,12 +22,12 @@ EARLIER(, ) |Term|Definition| |--------|--------------| -|column|A column or expression that resolves to a column.| -|num|(Optional) A positive number to the outer evaluation pass.

The next evaluation level out is represented by 1; two levels out is represented by 2 and so on.

When omitted default value is 1.| +|`column`|A column or expression that resolves to a column.| +|`num`|(Optional) A positive number to the outer evaluation pass.

The next evaluation level out is represented by 1; two levels out is represented by 2 and so on.

When omitted default value is 1.| ## Return value -The current value of row, from **column**, at **number** of outer evaluation passes. +The current value of row, from `column`, at `number` of outer evaluation passes. ## Exceptions @@ -35,9 +35,9 @@ Description of errors ## Remarks -- **EARLIER** succeeds if there is a row context prior to the beginning of the table scan. Otherwise it returns an error. +- `EARLIER` succeeds if there is a row context prior to the beginning of the table scan. Otherwise it returns an error. -- The performance of **EARLIER** might be slow because theoretically, it might have to perform a number of operations that is close to the total number of rows (in the column) times the same number (depending on the syntax of the expression). For example if you have 10 rows in the column, approximately a 100 operations could be required; if you have 100 rows then close to 10,000 operations might be performed. +- The performance of `EARLIER` might be slow because theoretically, it might have to perform a number of operations that is close to the total number of rows (in the column) times the same number (depending on the syntax of the expression). For example if you have 10 rows in the column, approximately a 100 operations could be required; if you have 100 rows then close to 10,000 operations might be performed. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] @@ -48,7 +48,7 @@ Description of errors To illustrate the use of EARLIER, it is necessary to build a scenario that calculates a rank value and then uses that rank value in other calculations. -The following example is based on this simple table, **ProductSubcategory**, which shows the total sales for each ProductSubcategory. +The following example is based on this simple table, `ProductSubcategory`, which shows the total sales for each ProductSubcategory. The final table, including the ranking column is shown here. @@ -104,17 +104,17 @@ A new calculated column, **SubCategorySalesRanking**, is created by using the fo The following steps describe the method of calculation in more detail. -1. The **EARLIER** function gets the value of *TotalSubcategorySales* for the current row in the table. In this case, because the process is starting, it is the first row in the table +1. The `EARLIER` function gets the value of *TotalSubcategorySales* for the current row in the table. In this case, because the process is starting, it is the first row in the table -2. **EARLIER**([*TotalSubcategorySales*]) evaluates to $156,167.88, the current row in the outer loop. +2. `EARLIER([TotalSubcategorySales])` evaluates to $156,167.88, the current row in the outer loop. -3. The **FILTER** function now returns a table where all rows have a value of *TotalSubcategorySales* larger than $156,167.88 (which is the current value for **EARLIER**). +3. The `FILTER` function now returns a table where all rows have a value of *TotalSubcategorySales* larger than $156,167.88 (which is the current value for `EARLIER`). -4. The **COUNTROWS** function counts the rows of the filtered table and assigns that value to the new calculated column in the current row plus 1. Adding 1 is needed to prevent the top ranked value from become a Blank. +4. The `COUNTROWS` function counts the rows of the filtered table and assigns that value to the new calculated column in the current row plus 1. Adding 1 is needed to prevent the top ranked value from become a Blank. 5. The calculated column formula moves to the next row and repeats steps 1 to 4. These steps are repeated until the end of the table is reached. -The **EARLIER** function will always get the value of the column prior to the current table operation. If you need to get a value from the loop before that, set the second argument to 2. +The `EARLIER` function will always get the value of the column prior to the current table operation. If you need to get a value from the loop before that, set the second argument to 2. ## Related content diff --git a/query-languages/dax/earliest-function-dax.md b/query-languages/dax/earliest-function-dax.md index deb35212b..f340e4516 100644 --- a/query-languages/dax/earliest-function-dax.md +++ b/query-languages/dax/earliest-function-dax.md @@ -18,7 +18,7 @@ EARLIEST() |Term|Definition| |--------|--------------| -|column|A reference to a column.| +|`column`|A reference to a column.| ## Return value diff --git a/query-languages/dax/edate-function-dax.md b/query-languages/dax/edate-function-dax.md index cd291fc9d..2f2c4a10d 100644 --- a/query-languages/dax/edate-function-dax.md +++ b/query-languages/dax/edate-function-dax.md @@ -18,20 +18,20 @@ EDATE(, ) |Term|Definition| |--------|--------------| -|start_date|A date in **datetime** or **text** format that represents the start date.| -|months|An integer that represents the number of months before or after **start_date**.| +|`start_date`|A date in `datetime` or `text` format that represents the start date.| +|`months`|An integer that represents the number of months before or after `start_date`.| ## Return value -A date (**datetime**). +A date (`datetime`). ## Remarks -- In contrast to Microsoft Excel, which stores dates as sequential serial numbers, DAX works with dates in a **datetime** format. Dates stored in other formats are converted implicitly. +- In contrast to Microsoft Excel, which stores dates as sequential serial numbers, DAX works with dates in a `datetime` format. Dates stored in other formats are converted implicitly. -- If **start_date** is not a valid date, EDATE returns an error. Make sure that the column reference or date that you supply as the first argument is a date. +- If `start_date` is not a valid date, EDATE returns an error. Make sure that the column reference or date that you supply as the first argument is a date. -- If **months** is not an integer, it is truncated. +- If `months` is not an integer, it is truncated. - When the date argument is a text representation of the date, the EDATE function uses the locale and date time settings of the client computer to understand the text value in order to perform the conversion. If the current date time settings represent a date in the format of Month/Day/Year, then the following string "1/8/2009" is interpreted as a datetime value equivalent to January 8th of 2009. However, if the current date time settings represent a date in the format of Day/Month/Year, the same string would be interpreted as a datetime value equivalent to August 1st of 2009. diff --git a/query-languages/dax/effect-function-dax.md b/query-languages/dax/effect-function-dax.md index 96ba3d74b..34abb6d6a 100644 --- a/query-languages/dax/effect-function-dax.md +++ b/query-languages/dax/effect-function-dax.md @@ -20,8 +20,8 @@ EFFECT(, ) |Term|Definition| |--------|--------------| -|nominal_rate|The nominal interest rate.| -|npery|The number of compounding periods per year.| +|`nominal_rate`|The nominal interest rate.| +|`npery`|The number of compounding periods per year.| ## Return Value diff --git a/query-languages/dax/endofmonth-function-dax.md b/query-languages/dax/endofmonth-function-dax.md index e80d8609f..93b1e869a 100644 --- a/query-languages/dax/endofmonth-function-dax.md +++ b/query-languages/dax/endofmonth-function-dax.md @@ -18,7 +18,7 @@ ENDOFMONTH() |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| +|`dates`|A column that contains dates.| ## Return value @@ -26,7 +26,7 @@ A table containing a single column and single row with a date value. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/endofquarter-function-dax.md b/query-languages/dax/endofquarter-function-dax.md index 4359691c6..db4ab2942 100644 --- a/query-languages/dax/endofquarter-function-dax.md +++ b/query-languages/dax/endofquarter-function-dax.md @@ -18,7 +18,7 @@ ENDOFQUARTER() |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| +|`dates`|A column that contains dates.| ## Return value @@ -26,7 +26,7 @@ A table containing a single column and single row with a date value. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column, - A table expression that returns a single column of date/time values, - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/endofyear-function-dax.md b/query-languages/dax/endofyear-function-dax.md index e741e352c..e332a28a2 100644 --- a/query-languages/dax/endofyear-function-dax.md +++ b/query-languages/dax/endofyear-function-dax.md @@ -18,8 +18,8 @@ ENDOFYEAR( [,]) |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| -|year_end_date|(optional) A literal string with a date that defines the year-end date. The default is December 31.| +|`dates`|A column that contains dates.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| ## Return value @@ -27,14 +27,14 @@ A table containing a single column and single row with a date value. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column, - A table expression that returns a single column of date/time values, - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- The **year_end_date** parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/eomonth-function-dax.md b/query-languages/dax/eomonth-function-dax.md index 1a59a8fa1..f9f13c3c0 100644 --- a/query-languages/dax/eomonth-function-dax.md +++ b/query-languages/dax/eomonth-function-dax.md @@ -6,7 +6,7 @@ title: "EOMONTH function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the date in **datetime** format of the last day of the month, before or after a specified number of months. Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month. +Returns the date in `datetime` format of the last day of the month, before or after a specified number of months. Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month. ## Syntax @@ -18,22 +18,22 @@ EOMONTH(, ) |Term|Definition| |--------|--------------| -|start_date|The start date in **datetime** format, or in an accepted text representation of a date.| -|months|A number representing the number of months before or after the **start_date**. **Note:** If you enter a number that is not an integer, the number is rounded up or down to the nearest integer.| +|`start_date`|The start date in `datetime` format, or in an accepted text representation of a date.| +|`months`|A number representing the number of months before or after the `start_date`. **Note:** If you enter a number that is not an integer, the number is rounded up or down to the nearest integer.| ## Return value -A date (**datetime**). +A date (`datetime`). ## Remarks -- In contrast to Microsoft Excel, which stores dates as sequential serial numbers, DAX works with dates in a **datetime** format. The EOMONTH function can accept dates in other formats, with the following restrictions: +- In contrast to Microsoft Excel, which stores dates as sequential serial numbers, DAX works with dates in a `datetime` format. The EOMONTH function can accept dates in other formats, with the following restrictions: -- If **start_date** is not a valid date, EOMONTH returns an error. +- If `start_date` is not a valid date, EOMONTH returns an error. -- If **start_date** is a numeric value that is not in a **datetime** format, EOMONTH will convert the number to a date. To avoid unexpected results, convert the number to a **datetime** format before using the EOMONTH function. +- If `start_date` is a numeric value that is not in a `datetime` format, EOMONTH will convert the number to a date. To avoid unexpected results, convert the number to a `datetime` format before using the EOMONTH function. -- If **start_date** plus months yields an invalid date, EOMONTH returns an error. Dates before March 1st of 1900 and after December 31st of 9999 are invalid. +- If `start_date` plus months yields an invalid date, EOMONTH returns an error. Dates before March 1st of 1900 and after December 31st of 9999 are invalid. - When the date argument is a text representation of the date, the EDATE function uses the locale and date time settings, of the client computer, to understand the text value in order to perform the conversion. If current date time settings represent a date in the format of Month/Day/Year, then the following string "1/8/2009" is interpreted as a datetime value equivalent to January 8th of 2009. However, if the current date time settings represent a date in the format of Day/Month/Year, the same string would be interpreted as a datetime value equivalent to August 1st of 2009. @@ -41,7 +41,7 @@ A date (**datetime**). ## Example -The following expression returns May 31, 2008, because the **months** argument is rounded to 2. +The following expression returns May 31, 2008, because the `months` argument is rounded to 2. ```dax = EOMONTH("March 3, 2008",1.5) diff --git a/query-languages/dax/error-function-dax.md b/query-languages/dax/error-function-dax.md index 1996dcf2c..0a26ca032 100644 --- a/query-languages/dax/error-function-dax.md +++ b/query-languages/dax/error-function-dax.md @@ -18,7 +18,7 @@ ERROR() |Term|Definition| |--------|--------------| -|text|A text string containing an error message.| +|`text`|A text string containing an error message.| ## Return value diff --git a/query-languages/dax/evaluate-statement-dax.md b/query-languages/dax/evaluate-statement-dax.md index 708c5225c..737e3b58c 100644 --- a/query-languages/dax/evaluate-statement-dax.md +++ b/query-languages/dax/evaluate-statement-dax.md @@ -16,7 +16,7 @@ EVALUATE
|Term|Definition| |--------|--------------| -|table|A table expression| +|`table`|A table expression| ## Return value diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index fec993218..dd3857caa 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -18,9 +18,9 @@ EVALUATEANDLOG(, [Label], [MaxRows]) |Term|Definition| |--------|--------------| -|Value|Any scalar expression or table expression to be evaluated and logged.| -|Label|(Optional) A constant string included in both the json text and the Label column of the DAX Evaluation Log event that can be used to easily identify an instance of the function call.| -|MaxRows|(Optional) The maximum number of rows in the json text of the DAX Evaluation Log event when the first argument is a table expression. Default is 10.| +|`Value`|Any scalar expression or table expression to be evaluated and logged.| +|`Label`|(Optional) A constant string included in both the json text and the Label column of the DAX Evaluation Log event that can be used to easily identify an instance of the function call.| +|`MaxRows`|(Optional) The maximum number of rows in the json text of the DAX Evaluation Log event when the first argument is a table expression. Default is 10.| ## Return value @@ -28,12 +28,12 @@ The value of the first argument. The JSON structure logged in a DAX Evaluation Log profiler event includes: -- “expression” is the text version of the first argument. -- “label” is the Label parameter when specified in the expression. -- “inputs” is a list of columns in the evaluation context that affects the values of the first argument. -- “outputs” is a list of a single column [Value] when the first argument is a scalar expression and a list of output columns when the first argument is a table expression. -- “data” is a list of input values and output values when the first argument is a scalar expression, and a list of input values and corresponding output rows when the first argument is a table expression. -- “rowCount” is the number of rows when the first argument is a table expression. Even though the number of rows in the json output is truncated by the MaxRows parameter, rowCount is the real number of rows without truncation. +- `expression` is the text version of the first argument. +- `label` is the Label parameter when specified in the expression. +- `inputs` is a list of columns in the evaluation context that affects the values of the first argument. +- `outputs` is a list of a single column [Value] when the first argument is a scalar expression and a list of output columns when the first argument is a table expression. +- `data` is a list of input values and output values when the first argument is a scalar expression, and a list of input values and corresponding output rows when the first argument is a table expression. +- `rowCount` is the number of rows when the first argument is a table expression. Even though the number of rows in the json output is truncated by the MaxRows parameter, rowCount is the real number of rows without truncation. ## Remarks diff --git a/query-languages/dax/even-function-dax.md b/query-languages/dax/even-function-dax.md index c07aa315e..edc8968dc 100644 --- a/query-languages/dax/even-function-dax.md +++ b/query-languages/dax/even-function-dax.md @@ -18,7 +18,7 @@ EVEN(number) |Term|Definition| |--------|--------------| -|number|The value to round.| +|`number`|The value to round.| ## Return value @@ -26,7 +26,7 @@ Returns number rounded up to the nearest even integer. ## Remarks -- If number is nonnumeric, EVEN returns the #VALUE! error value. +- If `number` is nonnumeric, EVEN returns the #VALUE! error value. - Regardless of the sign of number, a value is rounded up when adjusted away from zero. If number is an even integer, no rounding occurs. @@ -36,8 +36,7 @@ Returns number rounded up to the nearest even integer. |Formula|Description|Result| |-----------|---------------|----------| -|= EVEN(1.5)|Rounds 1.5 to the nearest even integer|2| -|= EVEN(3)|Rounds 3 to the nearest even integer|4| -|= EVEN(2)|Rounds 2 to the nearest even integer|2| -|= EVEN(-1)|Rounds -1 to the nearest even integer|-2| - +|`= EVEN(1.5)`|Rounds 1.5 to the nearest even integer|2| +|`= EVEN(3)`|Rounds 3 to the nearest even integer|4| +|`= EVEN(2)`|Rounds 2 to the nearest even integer|2| +|`= EVEN(-1)`|Rounds -1 to the nearest even integer|-2| diff --git a/query-languages/dax/exact-function-dax.md b/query-languages/dax/exact-function-dax.md index 280bf2ede..b4c955cd8 100644 --- a/query-languages/dax/exact-function-dax.md +++ b/query-languages/dax/exact-function-dax.md @@ -6,7 +6,7 @@ title: "EXACT function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Compares two text strings and returns TRUE if they are exactly the same, otherwise returns FALSE. EXACT is case-sensitive but ignores formatting differences. EXACT is case-sensitive +Compares two text strings and returns `TRUE` if they are exactly the same, otherwise returns `FALSE`. EXACT is case-sensitive but ignores formatting differences. EXACT is case-sensitive ## Syntax @@ -18,8 +18,8 @@ EXACT(,) |Term|Definition| |--------|--------------| -|text1|The first text string or column that contains text.| -|text2|The second text string or column that contains text.| +|`text1`|The first text string or column that contains text.| +|`text2`|The second text string or column that contains text.| ## Return value diff --git a/query-languages/dax/except-function-dax.md b/query-languages/dax/except-function-dax.md index 99f80bbe3..5ec3e0088 100644 --- a/query-languages/dax/except-function-dax.md +++ b/query-languages/dax/except-function-dax.md @@ -18,7 +18,7 @@ EXCEPT(, ) |Term|Definition| |--------|--------------| -|Table_expression|Any DAX expression that returns a table.| +|`Table_expression`|Any DAX expression that returns a table.| ## Return value diff --git a/query-languages/dax/exp-function-dax.md b/query-languages/dax/exp-function-dax.md index feb735f6c..f06aa1238 100644 --- a/query-languages/dax/exp-function-dax.md +++ b/query-languages/dax/exp-function-dax.md @@ -18,7 +18,7 @@ EXP() |Term|Definition| |--------|--------------| -|number|The exponent applied to the base e. The constant e equals 2.71828182845904, the base of the natural logarithm.| +|`number`|The exponent applied to the base e. The constant e equals 2.71828182845904, the base of the natural logarithm.| ## Return value diff --git a/query-languages/dax/expand-function-dax.md b/query-languages/dax/expand-function-dax.md index 3fb6cbbaa..85e2720da 100644 --- a/query-languages/dax/expand-function-dax.md +++ b/query-languages/dax/expand-function-dax.md @@ -35,10 +35,10 @@ EXPAND ( [, ] ... ) |Term|Definition| |--------|--------------| -|expression|The expression to be evaluated in the new context.| -|axis|An axis reference.| -|column|A column in the data grid.| -|N|(Optional) The number of levels to expand. If omitted, the default value is 1.| +|`expression`|The expression to be evaluated in the new context.| +|`axis`|An axis reference.| +|`column`|A column in the data grid.| +|`N`|(Optional) The number of levels to expand. If omitted, the default value is 1.| ## Return value diff --git a/query-languages/dax/expandall-function-dax.md b/query-languages/dax/expandall-function-dax.md index b0f01cea9..7ee409a56 100644 --- a/query-languages/dax/expandall-function-dax.md +++ b/query-languages/dax/expandall-function-dax.md @@ -33,8 +33,8 @@ EXPANDALL ( ) |Term|Definition| |--------|--------------| -|expression|The expression to be evaluated in the new context.| -|axis|An axis reference.| +|`expression`|The expression to be evaluated in the new context.| +|`axis`|An axis reference.| ## Return value diff --git a/query-languages/dax/expon-dist-function-dax.md b/query-languages/dax/expon-dist-function-dax.md index d4dabf1c4..0135d986a 100644 --- a/query-languages/dax/expon-dist-function-dax.md +++ b/query-languages/dax/expon-dist-function-dax.md @@ -18,9 +18,9 @@ EXPON.DIST(x,lambda,cumulative) |Term|Definition| |--------|--------------| -|x|Required. The value of the function.| -|lambda|Required. The parameter value.| -|cumulative|Required. A logical value that indicates which form of the exponential function to provide. If cumulative is TRUE, EXPON.DIST returns the cumulative distribution function; if FALSE, it returns the probability density function.| +|`x`|Required. The value of the function.| +|`lambda`|Required. The parameter value.| +|`cumulative`|Required. A logical value that indicates which form of the exponential function to provide. If cumulative is `TRUE`, EXPON.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| ## Return value diff --git a/query-languages/dax/fact-function-dax.md b/query-languages/dax/fact-function-dax.md index dee4423ed..a980d65a7 100644 --- a/query-languages/dax/fact-function-dax.md +++ b/query-languages/dax/fact-function-dax.md @@ -18,7 +18,7 @@ FACT() |Term|Definition| |--------|--------------| -|number|The non-negative number for which you want to calculate the factorial.| +|`number`|The non-negative number for which you want to calculate the factorial.| ## Return value diff --git a/query-languages/dax/false-function-dax.md b/query-languages/dax/false-function-dax.md index 6453606e6..18c2dfff4 100644 --- a/query-languages/dax/false-function-dax.md +++ b/query-languages/dax/false-function-dax.md @@ -6,7 +6,7 @@ title: "FALSE function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the logical value FALSE. +Returns the logical value `FALSE`. ## Syntax @@ -16,15 +16,15 @@ FALSE() ## Return value -Always FALSE. +Always `FALSE`. ## Remarks -The word FALSE is also interpreted as the logical value FALSE. +The word `FALSE` is also interpreted as the logical value `FALSE`. ## Example -The formula returns the logical value FALSE when the value in the column, 'InternetSales_USD'[SalesAmount_USD], is less than or equal to 200000. +The formula returns the logical value `FALSE` when the value in the column, 'InternetSales_USD'[SalesAmount_USD], is less than or equal to 200000. ```dax = IF(SUM('InternetSales_USD'[SalesAmount_USD]) >200000, TRUE(), false()) @@ -34,12 +34,12 @@ The following table shows the results when the example formula is used with 'Pro |Row Labels|2005|2006|2007|2008|-|Grand Total| |---------------|-----------------|----|----|----|----|----| -|Accessories|FALSE|FALSE|TRUE|TRUE|FALSE|TRUE| -|Bikes|TRUE|TRUE|TRUE|TRUE|FALSE|TRUE| -|Clothing|FALSE|FALSE|FALSE|FALSE|FALSE|TRUE| -|Components|FALSE|FALSE|FALSE|FALSE|FALSE|FALSE| -||FALSE|FALSE|FALSE|FALSE|FALSE|FALSE| -|Grand Total|TRUE|TRUE|TRUE|TRUE|FALSE|TRUE| +|Accessories|``FALSE``|``FALSE``|``TRUE``|``TRUE``|``FALSE``|``TRUE``| +|Bikes|``TRUE``|``TRUE``|``TRUE``|``TRUE``|``FALSE``|``TRUE``| +|Clothing|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``TRUE``| +|Components|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``| +||``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``| +|Grand Total|``TRUE``|``TRUE``|``TRUE``|``TRUE``|``FALSE``|``TRUE``| ## Related content diff --git a/query-languages/dax/filter-function-dax.md b/query-languages/dax/filter-function-dax.md index 19e4448fe..1b36063bd 100644 --- a/query-languages/dax/filter-function-dax.md +++ b/query-languages/dax/filter-function-dax.md @@ -18,8 +18,8 @@ FILTER(
,) |Term|Definition| |--------|--------------| -|table|The table to be filtered. The table can also be an expression that results in a table.| -|filter|A Boolean expression that is to be evaluated for each row of the table. For example, `[Amount] > 0` or `[Region] = "France"`| +|`table`|The table to be filtered. The table can also be an expression that results in a table.| +|`filter`|A Boolean expression that is to be evaluated for each row of the table. For example, `[Amount] > 0` or `[Region] = "France"`| ## Return value diff --git a/query-languages/dax/filters-function-dax.md b/query-languages/dax/filters-function-dax.md index 061aed0f7..c7be19044 100644 --- a/query-languages/dax/filters-function-dax.md +++ b/query-languages/dax/filters-function-dax.md @@ -6,7 +6,7 @@ title: "FILTERS function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the values that are directly applied as filters to *columnName*. +Returns the values that are directly applied as filters to `columnName`. ## Syntax @@ -18,11 +18,11 @@ FILTERS() |Term |Description| |---------|---------| -|columnName | The name of an existing column, using standard DAX syntax. It cannot be an expression. | +|`columnName`| The name of an existing column, using standard DAX syntax. It cannot be an expression. | ## Return value -The values that are directly applied as filters to *columnName*. +The values that are directly applied as filters to `columnName`. ## Remarks diff --git a/query-languages/dax/find-function-dax.md b/query-languages/dax/find-function-dax.md index 8784032eb..f66f7a014 100644 --- a/query-languages/dax/find-function-dax.md +++ b/query-languages/dax/find-function-dax.md @@ -18,10 +18,10 @@ FIND(, [, [][, ]]) |Term|Definition| |--------|--------------| -|find_text|The text you want to find. Use double quotes (empty text) to match the first character in **within_text**. | -|within_text|The text containing the text you want to find.| -|start_num|(optional) The character at which to start the search; if omitted, **start_num** = 1. The first character in **within_text** is character number 1.| -|NotFoundValue|(optional, but strongly recommended) The value that should be returned when the operation does not find a matching substring, typically 0, -1, or BLANK(). If not specified, an error is returned.| +|`find_text`|The text you want to find. Use double quotes (empty text) to match the first character in `within_text`. | +|`within_text`|The text containing the text you want to find.| +|`start_num`|(optional) The character at which to start the search; if omitted, `start_num` = 1. The first character in `within_text` is character number 1.| +|`NotFoundValue`|(optional, but strongly recommended) The value that should be returned when the operation does not find a matching substring, typically 0, -1, or BLANK(). If not specified, an error is returned.| ## Return value diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index c32df00ca..fa1dfc55c 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -19,10 +19,10 @@ FIRST ( [, ][, ][, reset] ) |Term|Definition| |--------|--------------| -|column|The column to be retrieved.| -|axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| +|`column`|The column to be retrieved.| +|`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| ## Return value diff --git a/query-languages/dax/firstdate-function-dax.md b/query-languages/dax/firstdate-function-dax.md index 0e066dc58..a530ff885 100644 --- a/query-languages/dax/firstdate-function-dax.md +++ b/query-languages/dax/firstdate-function-dax.md @@ -18,7 +18,7 @@ FIRSTDATE() |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| +|`dates`|A column that contains dates.| ## Return value @@ -26,7 +26,7 @@ A table containing a single column and single row with a date value. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/firstnonblank-function-dax.md b/query-languages/dax/firstnonblank-function-dax.md index e6c39b340..4a3bcdf1e 100644 --- a/query-languages/dax/firstnonblank-function-dax.md +++ b/query-languages/dax/firstnonblank-function-dax.md @@ -6,7 +6,7 @@ title: "FIRSTNONBLANK function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the first value in the column, **column**, filtered by the current context, where the expression is not blank. +Returns the first value in the column, ``, filtered by the current context, where the expression is not blank. ## Syntax @@ -18,8 +18,8 @@ FIRSTNONBLANK(,) |Term|Definition| |--------|--------------| -|column|A column expression.| -|expression|An expression evaluated for blanks for each value of **column**.| +|`column`|A column expression.| +|`expression`|An expression evaluated for blanks for each value of `column`.| ## Return value @@ -27,7 +27,7 @@ A table containing a single column and single row with the computed first value. ## Remarks -- The **column** argument can be any of the following: +- The `column` argument can be any of the following: - A reference to any column. - A table with a single column. diff --git a/query-languages/dax/firstnonblankvalue-function-dax.md b/query-languages/dax/firstnonblankvalue-function-dax.md index bfce0c200..6d1fd2e96 100644 --- a/query-languages/dax/firstnonblankvalue-function-dax.md +++ b/query-languages/dax/firstnonblankvalue-function-dax.md @@ -18,8 +18,8 @@ FIRSTNONBLANKVALUE(, ) |Term|Definition| |--------|--------------| -|column|A column or an expression that returns a single-column table.| -|expression|An expression evaluated for each value of \.| +|`column`|A column or an expression that returns a single-column table.| +|`expression`|An expression evaluated for each value of \.| ## Return value diff --git a/query-languages/dax/fixed-function-dax.md b/query-languages/dax/fixed-function-dax.md index b7f3935ec..6fd90cd0b 100644 --- a/query-languages/dax/fixed-function-dax.md +++ b/query-languages/dax/fixed-function-dax.md @@ -18,9 +18,9 @@ FIXED(, , ) |Term|Definition| |--------|--------------| -|number|The number you want to round and convert to text, or a column containing a number.| -|decimals|(optional) The number of digits to the right of the decimal point; if omitted, 2.| -|no_commas|(optional) A logical value: if 1, do not display commas in the returned text; if 0 or omitted, display commas in the returned text.| +|`number`|The number you want to round and convert to text, or a column containing a number.| +|`decimals`|(optional) The number of digits to the right of the decimal point; if omitted, 2.| +|`no_commas`|(optional) A logical value: if 1, do not display commas in the returned text; if 0 or omitted, display commas in the returned text.| ## Return value @@ -28,11 +28,11 @@ A number represented as text. ## Remarks -- If the value used for the **decimals** parameter is negative, **number** is rounded to the left of the decimal point. +- If the value used for the `decimals` parameter is negative, `number` is rounded to the left of the decimal point. -- If you omit **decimals**, it is assumed to be 2. +- If you omit `decimals`, it is assumed to be 2. -- If **no_commas** is 0 or is omitted, then the returned text includes commas as usual. +- If `no_commas` is 0 or is omitted, then the returned text includes commas as usual. - The major difference between formatting a cell containing a number by using a command and formatting a number directly with the FIXED function is that FIXED converts its result to text. A number formatted with a command from the formatting menu is still a number. diff --git a/query-languages/dax/floor-function-dax.md b/query-languages/dax/floor-function-dax.md index 2aa9fdb04..87c8ffd00 100644 --- a/query-languages/dax/floor-function-dax.md +++ b/query-languages/dax/floor-function-dax.md @@ -18,8 +18,8 @@ FLOOR(, ) |Term|Definition| |--------|--------------| -|number|The numeric value you want to round.| -|significance|The multiple to which you want to round. The arguments**number** and **significance** must either both be positive, or both be negative.| +|`number`|The numeric value you want to round.| +|`significance`|The multiple to which you want to round. The arguments`number` and `significance` must either both be positive, or both be negative.| ## Return value @@ -27,9 +27,9 @@ A decimal number. ## Remarks -- If either argument is nonnumeric, FLOOR returns **#VALUE!**error value. +- If either argument is nonnumeric, FLOOR returns `#VALUE!` error value. -- If number and significance have different signs, FLOOR returns the **#NUM!**error value. +- If number and significance have different signs, FLOOR returns the `#NUM!`error value. - Regardless of the sign of the number, a value is rounded down when adjusted away from zero. If the number is an exact multiple of significance, no rounding occurs. diff --git a/query-languages/dax/format-function-dax.md b/query-languages/dax/format-function-dax.md index ff036df2d..a4178252c 100644 --- a/query-languages/dax/format-function-dax.md +++ b/query-languages/dax/format-function-dax.md @@ -18,18 +18,18 @@ FORMAT(, [, ]) |Term|Definition| |--------|--------------| -|value|A value or expression that evaluates to a single value.| -|format_string|A string with the formatting template.| -|locale_name|(Optional) Name of the locale to be used by the function. Possible values are strings accepted by the Windows API function [LocaleNameToLCID()](/windows/win32/api/winnls/nf-winnls-localenametolcid).| +|`value`|A value or expression that evaluates to a single value.| +|`format_string`|A string with the formatting template.| +|`locale_name`|(Optional) Name of the locale to be used by the function. Possible values are strings accepted by the Windows API function [LocaleNameToLCID()](/windows/win32/api/winnls/nf-winnls-localenametolcid).| ## Return value -A string containing **value** formatted as defined by **format_string**. +A string containing `value` formatted as defined by `format_string`. > [!NOTE] -> If **value** is BLANK, the function returns an empty string. +> If `value` is BLANK, the function returns an empty string. > -> If **format_string** is BLANK, the value is formatted with a "General Number" or "General Date" format (according to **value** data type). +> If `format_string` is BLANK, the value is formatted with a "General Number" or "General Date" format (according to `value` data type). ## Remarks @@ -88,9 +88,9 @@ Returns: ## Predefined numeric formats -The following predefined numeric formats can be specified in the **format_string** argument: +The following predefined numeric formats can be specified in the `format_string` argument: -|Format|Description| +|`Format`|Description| |------------------------|---------------| |`"General Number"`|Displays number with no thousand separators.| |`"Currency"`|Displays number with thousand separators, if appropriate; displays two digits to the right of the decimal separator. Output is based on system locale settings.| @@ -126,26 +126,26 @@ If you include semicolons with nothing between them, the missing section is show ### Custom numeric format characters -The following custom numeric format characters can be specified in the **format_string** argument: +The following custom numeric format characters can be specified in the `format_string` argument: |Character|Description| |:-----|:-----| |None|Display the number with no formatting.| -|(**0**)|Digit placeholder. Display a digit or a zero. If the expression has a digit in the position where the 0 appears in the format string, display it; otherwise, display a zero in that position.If the number has fewer digits than there are zeros (on either side of the decimal) in the format expression, display leading or trailing zeros. If the number has more digits to the right of the decimal separator than there are zeros to the right of the decimal separator in the format expression, round the number to as many decimal places as there are zeros. If the number has more digits to the left of the decimal separator than there are zeros to the left of the decimal separator in the format expression, display the extra digits without modification.| -|(**#**)|Digit placeholder. Display a digit or nothing. If the expression has a digit in the position where the # appears in the format string, display it; otherwise, display nothing in that position. This symbol works like the 0 digit placeholder, except that leading and trailing zeros aren't displayed if the number has the same or fewer digits than there are # characters on either side of the decimal separator in the format expression.| -|(**.**)|Decimal placeholder. In some locales, a comma is used as the decimal separator. The decimal placeholder determines how many digits are displayed to the left and right of the decimal separator. If the format expression contains only number signs to the left of this symbol, numbers smaller than 1 begin with a decimal separator. To display a leading zero displayed with fractional numbers, use 0 as the first digit placeholder to the left of the decimal separator. The actual character used as a decimal placeholder in the formatted output depends on the Number Format recognized by your system.| -|(**%)**|Percentage placeholder. The expression is multiplied by 100. The percent character (**%**) is inserted in the position where it appears in the format string.| -|(**,**)|Thousand separator. In some locales, a period is used as a thousand separator. The thousand separator separates thousands from hundreds within a number that has four or more places to the left of the decimal separator. Standard use of the thousand separator is specified if the format contains a thousand separator surrounded by digit placeholders (**0** or **#**). Two adjacent thousand separators or a thousand separator immediately to the left of the decimal separator (whether or not a decimal is specified) means "scale the number by dividing it by 1000, rounding as needed." For example, you can use the format string "##0,," to represent 100 million as 100. Numbers smaller than 1 million are displayed as 0. Two adjacent thousand separators in any position other than immediately to the left of the decimal separator are treated simply as specifying the use of a thousand separator. The actual character used as the thousand separator in the formatted output depends on the Number Format recognized by your system.| -|(**:**)|Time separator. In some locales, other characters may be used to represent the time separator. The time separator separates hours, minutes, and seconds when time values are formatted. The actual character used as the time separator in formatted output is determined by your system settings.| -|(**/**)|Date separator. In some locales, other characters may be used to represent the date separator. The date separator separates the day, month, and year when date values are formatted. The actual character used as the date separator in formatted output is determined by your system settings.| -|(**E- E+ e- e+**)|Scientific format. If the format expression contains at least one digit placeholder (**0** or **#**) to the right of E-, E+, e-, or e+, the number is displayed in scientific format and E or e is inserted between the number and its exponent. The number of digit placeholders to the right determines the number of digits in the exponent. Use E- or e- to place a minus sign next to negative exponents. Use E+ or e+ to place a minus sign next to negative exponents and a plus sign next to positive exponents.| -|**- + $** ( )|Display a literal character. To display a character other than one of those listed, precede it with a backslash (`\`) or enclose it in double quotation marks (" ").| -|(**\\**)|Display the next character in the format string. To display a character that has special meaning as a literal character, precede it with a backslash (`\`). The backslash itself isn't displayed. Using a backslash is the same as enclosing the next character in double quotation marks. To display a backslash, use two backslashes (`\\`). Examples of characters that can't be displayed as literal characters are the date-formatting and time-formatting characters (a, c, d, h, m, n, p, q, s, t, w, y, /, and :), the numeric-formatting characters (#, 0, %, E, e, comma, and period), and the string-formatting characters (@, &, <, >, and !).| +|(`0`)|Digit placeholder. Display a digit or a zero. If the expression has a digit in the position where the 0 appears in the format string, display it; otherwise, display a zero in that position.If the number has fewer digits than there are zeros (on either side of the decimal) in the format expression, display leading or trailing zeros. If the number has more digits to the right of the decimal separator than there are zeros to the right of the decimal separator in the format expression, round the number to as many decimal places as there are zeros. If the number has more digits to the left of the decimal separator than there are zeros to the left of the decimal separator in the format expression, display the extra digits without modification.| +|(`#`)|Digit placeholder. Display a digit or nothing. If the expression has a digit in the position where the # appears in the format string, display it; otherwise, display nothing in that position. This symbol works like the 0 digit placeholder, except that leading and trailing zeros aren't displayed if the number has the same or fewer digits than there are # characters on either side of the decimal separator in the format expression.| +|(`.`)|Decimal placeholder. In some locales, a comma is used as the decimal separator. The decimal placeholder determines how many digits are displayed to the left and right of the decimal separator. If the format expression contains only number signs to the left of this symbol, numbers smaller than 1 begin with a decimal separator. To display a leading zero displayed with fractional numbers, use 0 as the first digit placeholder to the left of the decimal separator. The actual character used as a decimal placeholder in the formatted output depends on the Number Format recognized by your system.| +|(`%`)|Percentage placeholder. The expression is multiplied by 100. The percent character (`%`) is inserted in the position where it appears in the format string.| +|(`,`)|Thousand separator. In some locales, a period is used as a thousand separator. The thousand separator separates thousands from hundreds within a number that has four or more places to the left of the decimal separator. Standard use of the thousand separator is specified if the format contains a thousand separator surrounded by digit placeholders (`0` or `#`). Two adjacent thousand separators or a thousand separator immediately to the left of the decimal separator (whether or not a decimal is specified) means "scale the number by dividing it by 1000, rounding as needed." For example, you can use the format string "##0,," to represent 100 million as 100. Numbers smaller than 1 million are displayed as 0. Two adjacent thousand separators in any position other than immediately to the left of the decimal separator are treated simply as specifying the use of a thousand separator. The actual character used as the thousand separator in the formatted output depends on the Number Format recognized by your system.| +|(`:`)|Time separator. In some locales, other characters may be used to represent the time separator. The time separator separates hours, minutes, and seconds when time values are formatted. The actual character used as the time separator in formatted output is determined by your system settings.| +|(`/`)|Date separator. In some locales, other characters may be used to represent the date separator. The date separator separates the day, month, and year when date values are formatted. The actual character used as the date separator in formatted output is determined by your system settings.| +|(`E- E+ e- e+`)|Scientific format. If the format expression contains at least one digit placeholder (`0` or `#`) to the right of E-, E+, e-, or e+, the number is displayed in scientific format and E or e is inserted between the number and its exponent. The number of digit placeholders to the right determines the number of digits in the exponent. Use E- or e- to place a minus sign next to negative exponents. Use E+ or e+ to place a minus sign next to negative exponents and a plus sign next to positive exponents.| +|`- + $` ( )|Display a literal character. To display a character other than one of those listed, precede it with a backslash (`\`) or enclose it in double quotation marks (" ").| +|(`\\`)|Display the next character in the format string. To display a character that has special meaning as a literal character, precede it with a backslash (`\`). The backslash itself isn't displayed. Using a backslash is the same as enclosing the next character in double quotation marks. To display a backslash, use two backslashes (`\\`). Examples of characters that can't be displayed as literal characters are the date-formatting and time-formatting characters (a, c, d, h, m, n, p, q, s, t, w, y, /, and :), the numeric-formatting characters (#, 0, %, E, e, comma, and period), and the string-formatting characters (@, &, <, >, and !).| |("ABC")|Display the string inside the double quotation marks (" ").| ## Predefined date/time formats -The following predefined date/time formats can be specified in the **format_string** argument. When using formats other than these, they are interpreted as a custom date/time format: +The following predefined date/time formats can be specified in the `format_string` argument. When using formats other than these, they are interpreted as a custom date/time format: |Format|Description| |------------------------|---------------| @@ -158,43 +158,43 @@ The following predefined date/time formats can be specified in the **format_stri ## Custom date/time formats -The following format characters can be specified in the **format_string** to create custom date/time formats: +The following format characters can be specified in the `format_string` to create custom date/time formats: |Character|Description| |:-----|:-----| -|(**:**)|Time separator. In some locales, other characters may be used to represent the time separator. The time separator separates hours, minutes, and seconds when time values are formatted. The actual character used as the time separator in formatted output is determined by your system settings.| -|(**/**)|Date separator. In some locales, other characters may be used to represent the date separator. The date separator separates the day, month, and year when date values are formatted. The actual character used as the date separator in formatted output is determined by your system settings.| -|(**\**)|Backslash. Displays the next character as a literal character. So, it's not interpreted as a formatting character.| -|(**"**)|Double quote. Text enclosed within double quotes is displayed. So, it's not interpreted as formatting characters.| -|c|Display the date as `ddddd` and display the time as `ttttt`, in that order. Display only date information if there is no fractional part to the date serial number; display only time information if there is no integer portion.| -|d|Display the day as a number without a leading zero (1-31).| -|dd|Display the day as a number with a leading zero (01-31).| -|ddd|Display the day as an abbreviation (Sun-Sat). Localized.| -|dddd|Display the day as a full name (Sunday-Saturday). Localized.| -|ddddd|Display the date as a complete date (including day, month, and year), formatted according to your system's short date format setting. The default short date format is `mm/dd/yyyy`.| -|dddddd|Display a date serial number as a complete date (including day, month, and year) formatted according to the long date setting recognized by your system. The default long date format is `dddd, mmmm d, yyyy`.| -|w|Display the day of the week as a number (1 for Sunday through 7 for Saturday).| -|ww|Display the week of the year as a number (1-54).| -|m|Display the month as a number without a leading zero (1-12). If `m` immediately follows `h` or `hh`, minute rather than the month is displayed.| -|mm|Display the month as a number with a leading zero (01-12). If `mm` immediately follows `h` or `hh`, minute rather than the month is displayed. | -|mmm|Display the month as an abbreviation (Jan-Dec). Localized.| -|mmmm|Display the month as a full month name (January-December). Localized.| -|q|Display the quarter of the year as a number (1-4).| -|y|Display the day of the year as a number (1-366).| -|yy|Display the year as a 2-digit number (00-99).| -|yyyy|Display the year as a 4-digit number (100-9999).| -|h|Display the hour as a number without a leading zero (0-23).| -|hh|Display the hour as a number with a leading zero (00-23).| -|n|Display the minute as a number without a leading zero (0-59).| -|nn|Display the minute as a number with a leading zero (00-59).| -|s|Display the second as a number without a leading zero (0-59).| -|ss|Display the second as a number with a leading zero (00-59).| -|ttttt|Display a time as a complete time (including hour, minute, and second), formatted using the time separator defined by the time format recognized by your system. A leading zero is displayed if the leading zero option is selected and the time is before 10:00 A.M. or P.M. The default time format is `h:mm:ss`.| -|AM/PM|Use the 12-hour clock and display an uppercase AM with any hour before noon; display an uppercase PM with any hour between noon and 11:59 P.M.| -|am/pm|Use the 12-hour clock and display a lowercase AM with any hour before noon; display a lowercase PM with any hour between noon and 11:59 P.M.| -|A/P|Use the 12-hour clock and display an uppercase A with any hour before noon; display an uppercase P with any hour between noon and 11:59 P.M.| -|a/p|Use the 12-hour clock and display a lowercase A with any hour before noon; display a lowercase P with any hour between noon and 11:59 P.M.| -|AMPM|Use the 12-hour clock and display the AM string literal as defined by your system with any hour before noon; display the PM string literal as defined by your system with any hour between noon and 11:59 P.M. AMPM can be either uppercase or lowercase, but the case of the string displayed matches the string as defined by your system settings. The default format is AM/PM. If your system is set to 24-hour clock, the string is typical set to an empty string.| +|(`:`)|Time separator. In some locales, other characters may be used to represent the time separator. The time separator separates hours, minutes, and seconds when time values are formatted. The actual character used as the time separator in formatted output is determined by your system settings.| +|(`/`)|Date separator. In some locales, other characters may be used to represent the date separator. The date separator separates the day, month, and year when date values are formatted. The actual character used as the date separator in formatted output is determined by your system settings.| +|(`\`)|Backslash. Displays the next character as a literal character. So, it's not interpreted as a formatting character.| +|(`"`)|Double quote. Text enclosed within double quotes is displayed. So, it's not interpreted as formatting characters.| +|`c`|Display the date as `ddddd` and display the time as `ttttt`, in that order. Display only date information if there is no fractional part to the date serial number; display only time information if there is no integer portion.| +|`d`|Display the day as a number without a leading zero (1-31).| +|`dd`|Display the day as a number with a leading zero (01-31).| +|`ddd`|Display the day as an abbreviation (Sun-Sat). Localized.| +|`dddd`|Display the day as a full name (Sunday-Saturday). Localized.| +|`ddddd`|Display the date as a complete date (including day, month, and year), formatted according to your system's short date format setting. The default short date format is `mm/dd/yyyy`.| +|`dddddd`|Display a date serial number as a complete date (including day, month, and year) formatted according to the long date setting recognized by your system. The default long date format is `dddd, mmmm d, yyyy`.| +|`w`|Display the day of the week as a number (1 for Sunday through 7 for Saturday).| +|`ww`|Display the week of the year as a number (1-54).| +|`m`|Display the month as a number without a leading zero (1-12). If `m` immediately follows `h` or `hh`, minute rather than the month is displayed.| +|`mm`|Display the month as a number with a leading zero (01-12). If `mm` immediately follows `h` or `hh`, minute rather than the month is displayed. | +|`mmm`|Display the month as an abbreviation (Jan-Dec). Localized.| +|`mmmm`|Display the month as a full month name (January-December). Localized.| +|`q`|Display the quarter of the year as a number (1-4).| +|`y`|Display the day of the year as a number (1-366).| +|`yy`|Display the year as a 2-digit number (00-99).| +|`yyyy`|Display the year as a 4-digit number (100-9999).| +|`h`|Display the hour as a number without a leading zero (0-23).| +|`hh`|Display the hour as a number with a leading zero (00-23).| +|`n`|Display the minute as a number without a leading zero (0-59).| +|`nn`|Display the minute as a number with a leading zero (00-59).| +|`s`|Display the second as a number without a leading zero (0-59).| +|`ss`|Display the second as a number with a leading zero (00-59).| +|`ttttt`|Display a time as a complete time (including hour, minute, and second), formatted using the time separator defined by the time format recognized by your system. A leading zero is displayed if the leading zero option is selected and the time is before 10:00 A.M. or P.M. The default time format is `h:mm:ss`.| +|`AM/PM`|Use the 12-hour clock and display an uppercase AM with any hour before noon; display an uppercase PM with any hour between noon and 11:59 P.M.| +|`am/pm`|Use the 12-hour clock and display a lowercase AM with any hour before noon; display a lowercase PM with any hour between noon and 11:59 P.M.| +|`A/P`|Use the 12-hour clock and display an uppercase A with any hour before noon; display an uppercase P with any hour between noon and 11:59 P.M.| +|`a/p`|Use the 12-hour clock and display a lowercase A with any hour before noon; display a lowercase P with any hour between noon and 11:59 P.M.| +|`AMPM`|Use the 12-hour clock and display the AM string literal as defined by your system with any hour before noon; display the PM string literal as defined by your system with any hour between noon and 11:59 P.M. AMPM can be either uppercase or lowercase, but the case of the string displayed matches the string as defined by your system settings. The default format is AM/PM. If your system is set to 24-hour clock, the string is typical set to an empty string.| Date/time formatting uses the current user locale to format the string. For example, consider the date June 25, 2020. When it's formatted using format string "m/d/yyyy" it will be: diff --git a/query-languages/dax/fv-function-dax.md b/query-languages/dax/fv-function-dax.md index 95ab2bfbb..94dd50cf2 100644 --- a/query-languages/dax/fv-function-dax.md +++ b/query-languages/dax/fv-function-dax.md @@ -20,13 +20,13 @@ FV(, , [, [, ]]) |Term|Definition| |--------|--------------| -|rate|The interest rate per period.| -|nper|The total number of payment periods in an annuity.| -|pmt|The payment made each period; it cannot change over the life of the annuity. Typically, pmt contains principal and interest but no other fees or taxes.| -|pv|(Optional) The present value, or the lump-sum amount that a series of future payments is worth right now. If pv is omitted, it is assumed to be BLANK.| -|type|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`rate`|The interest rate per period.| +|`nper`|The total number of payment periods in an annuity.| +|`pmt`|The payment made each period; it cannot change over the life of the annuity. Typically, pmt contains principal and interest but no other fees or taxes.| +|`pv`|(Optional) The present value, or the lump-sum amount that a series of future payments is worth right now. If pv is omitted, it is assumed to be BLANK.| +|`type`|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **type** parameter accepts the following values: +The `type` parameter accepts the following values: | **Set type equal to** | **If payments are due** | | --------------------- | ------------------------------ | diff --git a/query-languages/dax/gcd-function-dax.md b/query-languages/dax/gcd-function-dax.md index 35b5e42af..4f5d0d15f 100644 --- a/query-languages/dax/gcd-function-dax.md +++ b/query-languages/dax/gcd-function-dax.md @@ -18,7 +18,7 @@ GCD(number1, [number2], ...) |Term|Definition| |--------|--------------| -|number1, number2, ...|Number1 is required, subsequent numbers are optional. 1 to 255 values. If any value is not an integer, it is truncated.| +|`number1, number2, ...`|Number1 is required, subsequent numbers are optional. 1 to 255 values. If any value is not an integer, it is truncated.| ## Return value @@ -40,8 +40,8 @@ The greatest common divisor of two or more integers. ## Example -|Formula|Description|Result| +Description|Result| |-----------|---------------|----------| -|= GCD(5, 2)|Greatest common divisor of 5 and 2.|1| -|= GCD(24, 36)|Greatest common divisor of 24 and 36.|12| -|= GCD(7, 1)|Greatest common divisor of 7 and 1.|1| +|`= GCD(5, 2)`|Greatest common divisor of 5 and 2.|1| +|`= GCD(24, 36)`|Greatest common divisor of 24 and 36.|12| +|`= GCD(7, 1)`|Greatest common divisor of 7 and 1.|1| diff --git a/query-languages/dax/generate-function-dax.md b/query-languages/dax/generate-function-dax.md index 9bd95e546..2dd27fd9e 100644 --- a/query-languages/dax/generate-function-dax.md +++ b/query-languages/dax/generate-function-dax.md @@ -18,8 +18,8 @@ GENERATE(, ) |Term|Definition| |--------|--------------| -|table1|Any DAX expression that returns a table. | -|table2|Any DAX expression that returns a table. | +|`table1`|Any DAX expression that returns a table. | +|`table2`|Any DAX expression that returns a table. | ## Return value diff --git a/query-languages/dax/generateall-function-dax.md b/query-languages/dax/generateall-function-dax.md index 88a6dda69..663f0f015 100644 --- a/query-languages/dax/generateall-function-dax.md +++ b/query-languages/dax/generateall-function-dax.md @@ -18,8 +18,8 @@ GENERATEALL(, ) |Term|Definition| |--------|--------------| -|table1|Any DAX expression that returns a table. | -|table2|Any DAX expression that returns a table. | +|`table1`|Any DAX expression that returns a table. | +|`table2`|Any DAX expression that returns a table. | ## Return value diff --git a/query-languages/dax/generateseries-function-dax.md b/query-languages/dax/generateseries-function-dax.md index e585181ef..da20069d1 100644 --- a/query-languages/dax/generateseries-function-dax.md +++ b/query-languages/dax/generateseries-function-dax.md @@ -18,9 +18,9 @@ GENERATESERIES(, [, ]) |Term|Definition| |--------|--------------| -|startValue|The initial value used to generate the sequence.| -|endValue|The end value used to generate the sequence.| -|incrementValue|(Optional) The increment value of the sequence. When not provided, the default value is 1.| +|`startValue`|The initial value used to generate the sequence.| +|`endValue`|The end value used to generate the sequence.| +|`incrementValue`|(Optional) The increment value of the sequence. When not provided, the default value is 1.| ## Return value diff --git a/query-languages/dax/geomean-function-dax.md b/query-languages/dax/geomean-function-dax.md index 4fb7a635f..f03b31312 100644 --- a/query-languages/dax/geomean-function-dax.md +++ b/query-languages/dax/geomean-function-dax.md @@ -20,7 +20,7 @@ GEOMEAN() |Term|Definition| |--------|--------------| -|column|The column that contains the numbers for which the geometric mean is to be computed.| +|`column`|The column that contains the numbers for which the geometric mean is to be computed.| ## Return value diff --git a/query-languages/dax/geomeanx-function-dax.md b/query-languages/dax/geomeanx-function-dax.md index 605092515..6e0bc0851 100644 --- a/query-languages/dax/geomeanx-function-dax.md +++ b/query-languages/dax/geomeanx-function-dax.md @@ -20,8 +20,8 @@ GEOMEANX(
, ) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expression will be evaluated.| -|expression|The expression to be evaluated for each row of the table.| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| ## Return value diff --git a/query-languages/dax/groupby-function-dax.md b/query-languages/dax/groupby-function-dax.md index 63bce958f..7976abc58 100644 --- a/query-languages/dax/groupby-function-dax.md +++ b/query-languages/dax/groupby-function-dax.md @@ -18,10 +18,10 @@ GROUPBY (
[, [, [, …]]] [, ) |Term|Definition| |--------|--------------| -| columnName | The name of an existing column, using standard DAX syntax. It cannot be an expression. | +|`columnName`| The name of an existing column, using standard DAX syntax. It cannot be an expression. | ## Return value -**TRUE** when the number of directly filtered values on *columnName* is one; otherwise returns **FALSE**. +`TRUE` when the number of directly filtered values on `columnName` is one; otherwise returns `FALSE`. ## Remarks diff --git a/query-languages/dax/hasonevalue-function-dax.md b/query-languages/dax/hasonevalue-function-dax.md index 39c37d8ac..704a221ce 100644 --- a/query-languages/dax/hasonevalue-function-dax.md +++ b/query-languages/dax/hasonevalue-function-dax.md @@ -6,7 +6,7 @@ title: "HASONEVALUE function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns **TRUE** when the context for *columnName* has been filtered down to one distinct value only. Otherwise is **FALSE**. +Returns `TRUE` when the context for `columnName` has been filtered down to one distinct value only. Otherwise is `FALSE`. ## Syntax @@ -22,7 +22,7 @@ HASONEVALUE() ## Return value -**TRUE** when the context for *columnName* has been filtered down to one distinct value only. Otherwise is **FALSE**. +`TRUE` when the context for `columnName` has been filtered down to one distinct value only. Otherwise is `FALSE`. ## Remarks diff --git a/query-languages/dax/hour-function-dax.md b/query-languages/dax/hour-function-dax.md index 51aea3098..5e9fdf592 100644 --- a/query-languages/dax/hour-function-dax.md +++ b/query-languages/dax/hour-function-dax.md @@ -18,7 +18,7 @@ HOUR() |Term|Definition| |--------|--------------| -|datetime|A **datetime** value, such as 16:48:00 or 4:48 PM.| +|`datetime`|A `datetime` value, such as 16:48:00 or 4:48 PM.| ## Return value @@ -26,9 +26,9 @@ An integer number from 0 to 23. ## Remarks -- The HOUR function takes as argument the time that contains the hour you want to find. You can supply the time by using a date/time function, an expression that returns a **datetime**, or by typing the value directly in one of the accepted time formats. Times can also be entered as any accepted text representation of a time. +- The HOUR function takes as argument the time that contains the hour you want to find. You can supply the time by using a date/time function, an expression that returns a `datetime`, or by typing the value directly in one of the accepted time formats. Times can also be entered as any accepted text representation of a time. -- When the **datetime** argument is a text representation of the date and time, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator and any input text using colons as time separators will parse correctly. Review your locale settings to understand your results. +- When the `datetime` argument is a text representation of the date and time, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator and any input text using colons as time separators will parse correctly. Review your locale settings to understand your results. ## Example 1 diff --git a/query-languages/dax/if-eager-function-dax.md b/query-languages/dax/if-eager-function-dax.md index db9ff8fd8..c287d297f 100644 --- a/query-languages/dax/if-eager-function-dax.md +++ b/query-languages/dax/if-eager-function-dax.md @@ -6,7 +6,7 @@ title: "IF.EAGER function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks a condition, and returns one value when TRUE, otherwise it returns a second value. It uses an *eager* execution plan which always executes the branch expressions regardless of the condition expression. +Checks a condition, and returns one value when `TRUE`, otherwise it returns a second value. It uses an *eager* execution plan which always executes the branch expressions regardless of the condition expression. ## Syntax @@ -18,19 +18,19 @@ IF.EAGER(, [, ]) |Term|Definition| |--------|--------------| -|logical_test|Any value or expression that can be evaluated to TRUE or FALSE.| -|value_if_true|The value that's returned if the logical test is TRUE.| -|value_if_false|(Optional) The value that's returned if the logical test is FALSE. If omitted, BLANK is returned.| +|`logical_test`|Any value or expression that can be evaluated to `TRUE` or `FALSE`.| +|`value_if_true`|The value that's returned if the logical test is `TRUE`.| +|`value_if_false`|(Optional) The value that's returned if the logical test is `FALSE`. If omitted, `BLANK` is returned.| ## Return value -Either **value_if_true**, **value_if_false**, or BLANK. +Either `value_if_true`, `value_if_false`, or `BLANK`. ## Remarks -- The IF.EAGER function can return a variant data type if value_if_true and value_if_false are of different data types, but the function attempts to return a single data type if both **value_if_true** and **value_if_false** are of numeric data types. In the latter case, the IF.EAGER function will implicitly convert data types to accommodate both values. +- The IF.EAGER function can return a variant data type if value_if_true and value_if_false are of different data types, but the function attempts to return a single data type if both `value_if_true` and `value_if_false` are of numeric data types. In the latter case, the IF.EAGER function will implicitly convert data types to accommodate both values. - For example, the formula `IF.EAGER(, TRUE(), 0)` returns TRUE or 0, but the formula `IF.EAGER(, 1.0, 0)` returns only decimal values even though **value_if_false** is of the whole number data type. To learn more about implicit data type conversion, see [Data types](dax-overview.md#data-types). + For example, the formula `IF.EAGER(, TRUE(), 0)` returns `TRUE` or 0, but the formula `IF.EAGER(, 1.0, 0)` returns only decimal values even though `value_if_false` is of the whole number data type. To learn more about implicit data type conversion, see [Data types](dax-overview.md#data-types). - IF.EAGER has the same functional behavior as the IF function, but performance may differ due to differences in execution plans. `IF.EAGER(, , )` has the same execution plan as the following DAX expression: diff --git a/query-languages/dax/if-function-dax.md b/query-languages/dax/if-function-dax.md index 3b0b49312..f5878f087 100644 --- a/query-languages/dax/if-function-dax.md +++ b/query-languages/dax/if-function-dax.md @@ -6,7 +6,7 @@ title: "IF function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks a condition, and returns one value when it's TRUE, otherwise it returns a second value. +Checks a condition, and returns one value when it's `TRUE`, otherwise it returns a second value. ## Syntax @@ -18,19 +18,19 @@ IF(, [, ]) |Term|Definition| |--------|--------------| -|logical_test|Any value or expression that can be evaluated to TRUE or FALSE.| -|value_if_true|The value that's returned if the logical test is TRUE.| -|value_if_false|(Optional) The value that's returned if the logical test is FALSE. If omitted, BLANK is returned.| +|`logical_test`|Any value or expression that can be evaluated to `TRUE` or `FALSE`.| +|`value_if_true`|The value that's returned if the logical test is `TRUE`.| +|`value_if_false`|(Optional) The value that's returned if the logical test is `FALSE`. If omitted, BLANK is returned.| ## Return value -Either **value_if_true**, **value_if_false**, or BLANK. +Either `value_if_true`, `value_if_false`, or `BLANK`. ## Remarks -- The IF function can return a variant data type if **value_if_true** and **value_if_false** are of different data types, but the function attempts to return a single data type if both **value_if_true** and **value_if_false** are of numeric data types. In the latter case, the IF function will implicitly convert data types to accommodate both values. +- The IF function can return a variant data type if `value_if_true` and `value_if_false` are of different data types, but the function attempts to return a single data type if both `value_if_true` and `value_if_false` are of numeric data types. In the latter case, the IF function will implicitly convert data types to accommodate both values. - For example, the formula `IF(, TRUE(), 0)` returns TRUE or 0, but the formula `IF(, 1.0, 0)` returns only decimal values even though **value_if_false** is of the whole number data type. To learn more about implicit data type conversion, see [Data types](dax-overview.md#data-types). + For example, the formula `IF(, TRUE(), 0)` returns `TRUE` or 0, but the formula `IF(, 1.0, 0)` returns only decimal values even though `value_if_false` is of the whole number data type. To learn more about implicit data type conversion, see [Data types](dax-overview.md#data-types). - To execute the branch expressions regardless of the condition expression, use [IF.EAGER](if-eager-function-dax.md) instead. @@ -38,7 +38,7 @@ Either **value_if_true**, **value_if_false**, or BLANK. The following **Product** table calculated column definitions use the IF function in different ways to classify each product based on its list price. -The first example tests whether the **List Price** column value is less than 500. When this condition is true, the value **Low** is returned. Because there's no **value_if_false** value, BLANK is returned. +The first example tests whether the **List Price** column value is less than 500. When this condition is true, the value **Low** is returned. Because there's no `value_if_false` value, BLANK is returned. [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] @@ -50,7 +50,7 @@ IF( ) ``` -The second example uses the same test, but this time includes a **value_if_false** value. So, the formula classifies each product as either **Low** or **High**. +The second example uses the same test, but this time includes a `value_if_false` value. So, the formula classifies each product as either `Low` or `High`. ```dax Price Group = @@ -61,7 +61,7 @@ IF( ) ``` -The third example uses the same test, but this time nests an IF function to perform an additional test. So, the formula classifies each product as either **Low**, **Medium**, or **High**. +The third example uses the same test, but this time nests an IF function to perform an additional test. So, the formula classifies each product as either `Low`, `Medium`, or `High`. ```dax Price Group = diff --git a/query-languages/dax/iferror-function-dax.md b/query-languages/dax/iferror-function-dax.md index 77558d8b8..d32d2689e 100644 --- a/query-languages/dax/iferror-function-dax.md +++ b/query-languages/dax/iferror-function-dax.md @@ -18,24 +18,24 @@ IFERROR(value, value_if_error) |Term|Definition| |--------|--------------| -|value|Any value or expression.| -|value_if_error|Any value or expression.| +|`value`|Any value or expression.| +|`value_if_error`|Any value or expression.| ## Return value -A scalar of the same type as **value** +A scalar of the same type as `value` ## Remarks - You can use the IFERROR function to trap and handle errors in an expression. -- If **value** or **value_if_error** is an empty cell, IFERROR treats it as an empty string value (""). +- If `value` or `value_if_error` is an empty cell, IFERROR treats it as an empty string value (""). - The IFERROR function is based on the IF function, and uses the same error messages, but has fewer arguments. The relationship between the IFERROR function and the IF function as follows: `IFERROR(A,B) := IF(ISERROR(A), B, A)` - Values that are returned for A and B must be of the same data type; therefore, the column or expression used for **value** and the value returned for **value_if_error** must be the same data type. + Values that are returned for A and B must be of the same data type; therefore, the column or expression used for `value` and the value returned for `value_if_error` must be the same data type. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/ignore-function-dax.md b/query-languages/dax/ignore-function-dax.md index 5e66159c7..ae772a455 100644 --- a/query-languages/dax/ignore-function-dax.md +++ b/query-languages/dax/ignore-function-dax.md @@ -24,7 +24,7 @@ SUMMARIZECOLUMNS([, < groupBy_columnName >]…, [[, or ][, ][, ][, - \ is positive: 1 is the first row, 2 is the second row, etc.
- \ is negative: -1 is the last row, -2 is the second last row, etc.
When \ is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| -|relation|(Optional) A table expression from which the output is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \. -|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. -|orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| -|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | -|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | - +|`position`|The absolute position (1-based) from which to obtain the data:
- `position` is positive: 1 is the first row, 2 is the second row, etc.
- `position` is negative: -1 is the last row, -2 is the second last row, etc.
When `position` is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| +|`relation`|(Optional) A table expression from which the output is returned.
If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to `ALLSELECTED()` of all columns in `orderBy` and `partitionBy`. +|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|`partitionBy`|(Optional) A `PARTITIONBY()` clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | +|`matchBy`|(Optional) A `MATCHBY()` clause containing the columns that define how to match data and identify the current row. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value @@ -35,30 +34,30 @@ A row at an absolute position. ## Remarks -Each \ and \ column must have a corresponding outer value to help define the “current partition” on which to operate, with the following behavior: +Each `partitionBy` and `matchBy` column must have a corresponding outer value to help define the "current partition" on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column: - - INDEX will first determine all \ and \ columns that have no corresponding outer column. + - INDEX will first determine all `partitionBy` and `matchBy` columns that have no corresponding outer column. - For every combination of existing values for these columns in INDEX’s parent context, INDEX is evaluated and a row is returned. - INDEX’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If \ is present, INDEX will try to use \ and \ columns to identify the row. -If \ is not present and the columns specified within \ and \ cannot uniquely identify every row in \: +If `matchBy` is present, INDEX will try to use `matchBy` and `partitionBy` columns to identify the row. +If `matchBy` is not present and the columns specified within `orderBy` and `partitionBy` cannot uniquely identify every row in `relation`: - INDEX will try to find the least number of additional columns required to uniquely identify every row. -- If such columns can be found, INDEX will automatically append these new columns to \, and each partition is sorted using this new set of OrderBy columns. +- If such columns can be found, INDEX will automatically append these new columns to `orderBy`, and each partition is sorted using this new set of OrderBy columns. - If such columns cannot be found, an error is returned. An empty table is returned if: -- The corresponding outer value of a PartitionBy column does not exist within \. -- The \ value refers to a position that does not exist within the partition. +- The corresponding outer value of a PartitionBy column does not exist within `relation`. +- The `position` value refers to a position that does not exist within the partition. -If INDEX is used within a calculated column defined on the same table as \ and \ is omitted, an error is returned. +If INDEX is used within a calculated column defined on the same table as `relation` and `orderBy` is omitted, an error is returned. -\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. +`reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. ## Example 1 - calculated column diff --git a/query-languages/dax/information-functions-dax.md b/query-languages/dax/information-functions-dax.md index e1f658b1c..04c6d2e2c 100644 --- a/query-languages/dax/information-functions-dax.md +++ b/query-languages/dax/information-functions-dax.md @@ -4,7 +4,7 @@ title: "Information functions (DAX) | Microsoft Docs" --- # Information functions -DAX information functions look at the cell or row that is provided as an argument and tells you whether the value matches the expected type. For example, the ISERROR function returns TRUE if the value that you reference contains an error. +DAX information functions look at the cell or row that is provided as an argument and tells you whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value that you reference contains an error. ## In this category @@ -12,28 +12,28 @@ DAX information functions look at the cell or row that is provided as an argumen |---------|---------| |[COLUMNSTATISTICS](columnstatistics-function-dax.md) | Returns a table of statistics regarding every column in every table in the model. | |[CONTAINS](contains-function-dax.md) | Returns true if values for all referred columns exist, or are contained, in those columns; otherwise, the function returns false. | -|[CONTAINSROW](containsrow-function-dax.md) | Returns TRUE if a row of values exists or contained in a table, otherwise returns FALSE. | -|[CONTAINSSTRING](containsstring-function-dax.md) | Returns TRUE or FALSE indicating whether one string contains another string. | -|[CONTAINSSTRINGEXACT](containsstringexact-function-dax.md) | Returns TRUE or FALSE indicating whether one string contains another string. | +|[CONTAINSROW](containsrow-function-dax.md) | Returns `TRUE` if a row of values exists or contained in a table, otherwise returns `FALSE`. | +|[CONTAINSSTRING](containsstring-function-dax.md) | Returns `TRUE` or `FALSE` indicating whether one string contains another string. | +|[CONTAINSSTRINGEXACT](containsstringexact-function-dax.md) | Returns `TRUE` or `FALSE` indicating whether one string contains another string. | |[CUSTOMDATA](customdata-function-dax.md) | Returns the content of the CustomData property in the connection string. | -|[HASONEFILTER](hasonefilter-function-dax.md) | Returns TRUE when the number of directly filtered values on *columnName* is one; otherwise returns FALSE. | -|[HASONEVALUE](hasonevalue-function-dax.md) | Returns TRUE when the context for *columnName* has been filtered down to one distinct value only. Otherwise is FALSE. | +|[HASONEFILTER](hasonefilter-function-dax.md) | Returns TRUE when the number of directly filtered values on `columnName` is one; otherwise returns `FALSE`. | +|[HASONEVALUE](hasonevalue-function-dax.md) | Returns `TRUE` when the context for `columnName` has been filtered down to one distinct value only. Otherwise is `FALSE`. | |[ISAFTER](isafter-function-dax.md) | A boolean function that emulates the behavior of a Start At clause and returns true for a row that meets all of the condition parameters. | -|[ISBLANK](isblank-function-dax.md) | Checks whether a value is blank, and returns TRUE or FALSE. | -|[ISCROSSFILTERED](iscrossfiltered-function-dax.md) | Returns TRUE when *columnName* or another column in the same or related table is being filtered. | +|[ISBLANK](isblank-function-dax.md) | Checks whether a value is blank, and returns `TRUE` or `FALSE`. | +|[ISCROSSFILTERED](iscrossfiltered-function-dax.md) | Returns `TRUE` when `columnName` or another column in the same or related table is being filtered. | |[ISEMPTY](isempty-function-dax.md) | Checks if a table is empty. | -|[ISERROR](iserror-function-dax.md) | Checks whether a value is an error, and returns TRUE or FALSE. | -|[ISEVEN](iseven-function-dax.md) | Returns TRUE if number is even, or FALSE if number is odd. | -|[ISFILTERED](isfiltered-function-dax.md) | Returns TRUE when *columnName* is being filtered directly. | +|[ISERROR](iserror-function-dax.md) | Checks whether a value is an error, and returns `TRUE` or `FALSE`. | +|[ISEVEN](iseven-function-dax.md) | Returns `TRUE` if number is even, or `FALSE` if number is odd. | +|[ISFILTERED](isfiltered-function-dax.md) | Returns `TRUE` when `columnName` is being filtered directly. | |[ISINSCOPE](isinscope-function-dax.md) | Returns true when the specified column is the level in a hierarchy of levels. | -|[ISLOGICAL](islogical-function-dax.md) | Checks whether a value is a logical value, (TRUE or FALSE), and returns TRUE or FALSE. | -|[ISNONTEXT](isnontext-function-dax.md) | Checks if a value is not text (blank cells are not text), and returns TRUE or FALSE. | -|[ISNUMBER](isnumber-function-dax.md) | Checks whether a value is a number, and returns TRUE or FALSE. | -|[ISODD](isodd-function-dax.md) | Returns TRUE if number is odd, or FALSE if number is even. | +|[ISLOGICAL](islogical-function-dax.md) | Checks whether a value is a logical value, (`TRUE` or `FALSE`), and returns `TRUE` or `FALSE`. | +|[ISNONTEXT](isnontext-function-dax.md) | Checks if a value is not text (blank cells are not text), and returns `TRUE` or `FALSE`. | +|[ISNUMBER](isnumber-function-dax.md) | Checks whether a value is a number, and returns `TRUE` or `FALSE`. | +|[ISODD](isodd-function-dax.md) | Returns `TRUE` if number is odd, or `FALSE` if number is even. | |[ISONORAFTER](isonorafter-function-dax.md) | A boolean function that emulates the behavior of a Start At clause and returns true for a row that meets all of the condition parameters. | |[ISSELECTEDMEASURE](isselectedmeasure-function-dax.md)| Used by expressions for calculation items to determine the measure that is in context is one of those specified in a list of measures. | |[ISSUBTOTAL](issubtotal-function-dax.md) | Creates another column in a SUMMARIZE expression that returns True if the row contains subtotal values for the column given as argument, otherwise returns False. | -|[ISTEXT](istext-function-dax.md) | Checks if a value is text, and returns TRUE or FALSE. | +|[ISTEXT](istext-function-dax.md) | Checks if a value is text, and returns `TRUE` or `FALSE`. | |[NONVISUAL](nonvisual-function-dax.md) | Marks a value filter in a SUMMARIZECOLUMNS expression as non-visual. | |[SELECTEDMEASURE](selectedmeasure-function-dax.md) | Used by expressions for calculation items to reference the measure that is in context. | |[SELECTEDMEASUREFORMATSTRING](selectedmeasureformatstring-function-dax.md) | Used by expressions for calculation items to retrieve the format string of the measure that is in context. | diff --git a/query-languages/dax/int-function-dax.md b/query-languages/dax/int-function-dax.md index 0974bad6f..18131a689 100644 --- a/query-languages/dax/int-function-dax.md +++ b/query-languages/dax/int-function-dax.md @@ -18,7 +18,7 @@ INT() |Term|Definition| |--------|--------------| -|number|The number you want to round down to an integer| +|`number`|The number you want to round down to an integer| ## Return value diff --git a/query-languages/dax/intersect-function-dax.md b/query-languages/dax/intersect-function-dax.md index 714c4a730..384682a8c 100644 --- a/query-languages/dax/intersect-function-dax.md +++ b/query-languages/dax/intersect-function-dax.md @@ -18,7 +18,7 @@ INTERSECT(, ) |Term|Definition| |--------|--------------| -|Table_expression|Any DAX expression that returns a table.| +|`Table_expression`|Any DAX expression that returns a table.| ## Return value diff --git a/query-languages/dax/intrate-function-dax.md b/query-languages/dax/intrate-function-dax.md index f39520be2..90405879c 100644 --- a/query-languages/dax/intrate-function-dax.md +++ b/query-languages/dax/intrate-function-dax.md @@ -19,15 +19,15 @@ INTRATE(, , , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|investment|The amount invested in the security.| -|redemption|The amount to be received at maturity.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`investment`|The amount invested in the security.| +|`redemption`|The amount to be received at maturity.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/ipmt-function-dax.md b/query-languages/dax/ipmt-function-dax.md index ab77838be..4bdc9fd60 100644 --- a/query-languages/dax/ipmt-function-dax.md +++ b/query-languages/dax/ipmt-function-dax.md @@ -19,16 +19,16 @@ IPMT(, , , [, [, ]]) |Term|Definition| |--------|--------------| -|rate|The interest rate per period.| -|per|The period for which you want to find the interest. Must be between 1 and nper (inclusive).| -|nper|The total number of payment periods in an annuity.| -|pv|The present value, or the lump-sum amount that a series of future payments is worth right now.| -|fv|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK.| -|type|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`rate`|The interest rate per period.| +|`per`|The period for which you want to find the interest. Must be between 1 and nper (inclusive).| +|`nper`|The total number of payment periods in an annuity.| +|`pv`|The present value, or the lump-sum amount that a series of future payments is worth right now.| +|`fv`|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK.| +|`type`|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **type** parameter accepts the following values: +The `type` parameter accepts the following values: -| **Set type equal to** | **If payments are due** | +| **Set `type` equal to** | **If payments are due** | | --------------------- | ------------------------------ | | 0 or omitted | At the end of the period | | 1 | At the beginning of the period | diff --git a/query-languages/dax/isafter-function-dax.md b/query-languages/dax/isafter-function-dax.md index 5cbe9c1eb..057160aaa 100644 --- a/query-languages/dax/isafter-function-dax.md +++ b/query-languages/dax/isafter-function-dax.md @@ -20,8 +20,8 @@ ISAFTER(, [, sort_order [, ) |Term|Definition| |--------|--------------| -|column|A grouping column in the data grid.| +|`column`|A grouping column in the data grid.| ## Return value -TRUE or FALSE that indicates whether the grouping column is at the current level in the context. +`TRUE` or `FALSE` that indicates whether the grouping column is at the current level in the context. ## Remarks diff --git a/query-languages/dax/isblank-function-dax.md b/query-languages/dax/isblank-function-dax.md index 3d87f395d..67db0a29e 100644 --- a/query-languages/dax/isblank-function-dax.md +++ b/query-languages/dax/isblank-function-dax.md @@ -6,7 +6,7 @@ title: "ISBLANK function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether a value is blank, and returns TRUE or FALSE. +Checks whether a value is blank, and returns `TRUE` or `FALSE`. ## Syntax @@ -18,11 +18,11 @@ ISBLANK() |Term|Definition| |--------|--------------| -|value|The value or expression you want to test.| +|`value`|The value or expression you want to test.| ## Return value -A Boolean value of TRUE if the value is blank; otherwise FALSE. +A Boolean value of `TRUE` if the value is blank; otherwise `FALSE`. ## Remarks diff --git a/query-languages/dax/iscrossfiltered-function-dax.md b/query-languages/dax/iscrossfiltered-function-dax.md index 15805690b..f3b29904c 100644 --- a/query-languages/dax/iscrossfiltered-function-dax.md +++ b/query-languages/dax/iscrossfiltered-function-dax.md @@ -6,7 +6,7 @@ title: "ISCROSSFILTERED function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns TRUE when the specified table or column is cross-filtered. +Returns `TRUE` when the specified table or column is cross-filtered. ## Syntax @@ -18,17 +18,17 @@ ISCROSSFILTERED() |Term|Definition| |--------|--------------| -|TableNameOrColumnName|The name of an existing table or column. It cannot be an expression.| +|`TableNameOrColumnName`|The name of an existing table or column. It cannot be an expression.| ## Return value -TRUE when *ColumnName* or a column of *TableName* is being cross-filtered. Otherwise returns FALSE. +``TRUE`` when `ColumnName` or a column of `TableName` is being cross-filtered. Otherwise returns `FALSE`. ## Remarks -- A column or table is said to be cross-filtered when a filter is applied to *ColumnName*, any column of *TableName*, or to any column of a related table. +- A column or table is said to be cross-filtered when a filter is applied to `ColumnName`, any column of `TableName`, or to any column of a related table. -- A column or table is said to be filtered directly when a filter is applied to *ColumnName* or to any column of *TableName*. Therefore, the [ISFILTERED](isfiltered-function-dax.md) function also returns TRUE when *ColumnName* or any column of *TableName* is filtered. +- A column or table is said to be filtered directly when a filter is applied to `ColumnName` or to any column of `TableName`. Therefore, the [ISFILTERED](isfiltered-function-dax.md) function also returns `TRUE` when `ColumnName` or any column of `TableName` is filtered. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/isempty-function-dax.md b/query-languages/dax/isempty-function-dax.md index e64c0cffe..9f8cdea66 100644 --- a/query-languages/dax/isempty-function-dax.md +++ b/query-languages/dax/isempty-function-dax.md @@ -18,7 +18,7 @@ ISEMPTY() |Term|Definition| |--------|--------------| -|table_expression|A table reference or a DAX expression that returns a table.| +|`table_expression`|A table reference or a DAX expression that returns a table.| ## Return value @@ -45,4 +45,4 @@ EVALUATE ROW("Any countries with count > 25?", NOT(ISEMPTY(FILTER(Info, [County]>25)))) ``` -Return value: **FALSE** +Return value: `FALSE`` diff --git a/query-languages/dax/iserror-function-dax.md b/query-languages/dax/iserror-function-dax.md index 666ad2484..75e1a9f93 100644 --- a/query-languages/dax/iserror-function-dax.md +++ b/query-languages/dax/iserror-function-dax.md @@ -6,7 +6,7 @@ title: "ISERROR function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether a value is an error, and returns TRUE or FALSE. +Checks whether a value is an error, and returns `TRUE` or `FALSE`. ## Syntax @@ -18,11 +18,11 @@ ISERROR() |Term|Definition| |--------|--------------| -|value|The value you want to test.| +|`value`|The value you want to test.| ## Return value -A Boolean value of TRUE if the value is an error; otherwise FALSE. +A Boolean value of `TRUE` if the value is an error; otherwise `FALSE`. ## Remarks diff --git a/query-languages/dax/iseven-function-dax.md b/query-languages/dax/iseven-function-dax.md index 3ff1849af..d66360952 100644 --- a/query-languages/dax/iseven-function-dax.md +++ b/query-languages/dax/iseven-function-dax.md @@ -6,7 +6,7 @@ title: "ISEVEN function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns TRUE if number is even, or FALSE if number is odd. +Returns `TRUE` if number is even, or `FALSE` if number is odd. ## Syntax @@ -18,11 +18,11 @@ ISEVEN(number) |Term|Definition| |--------|--------------| -|number|The value to test. If number is not an integer, it is truncated.| +|`number`|The value to test. If number is not an integer, it is truncated.| ## Return value -Returns TRUE if number is even, or FALSE if number is odd. +Returns `TRUE` if number is even, or `FALSE` if number is odd. ## Remarks diff --git a/query-languages/dax/isfiltered-function-dax.md b/query-languages/dax/isfiltered-function-dax.md index b23e2c32a..ea5b7ecf2 100644 --- a/query-languages/dax/isfiltered-function-dax.md +++ b/query-languages/dax/isfiltered-function-dax.md @@ -6,7 +6,7 @@ title: "ISFILTERED function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns TRUE when the specified table or column is being filtered directly. +Returns `TRUE` when the specified table or column is being filtered directly. ## Syntax @@ -18,17 +18,17 @@ ISFILTERED() |Term|Definition| |--------|--------------| -|TableNameOrColumnName|The name of an existing table or column. It cannot be an expression.| +|`TableNameOrColumnName`|The name of an existing table or column. It cannot be an expression.| ## Return value -TRUE when *ColumnName* or a column of *TableName* is being filtered directly. Otherwise returns FALSE. +`TRUE` when `ColumnName` or a column of `TableName` is being filtered directly. Otherwise returns `FALSE`. ## Remarks -- A column or table is said to be filtered directly when a filter is applied to *ColumnName* or any column of *TableName*. +- A column or table is said to be filtered directly when a filter is applied to `ColumnName` or any column of `TableName`. -- A column or table is said to be cross-filtered when a filter is applied to *ColumnName*, any column of *TableName*, or to any column of a related table. Therefore, the [ISCROSSFILTERED](iscrossfiltered-function-dax.md) function also returns TRUE when *ColumnName*, any column of *TableName*, or a column of a related table is filtered. +- A column or table is said to be cross-filtered when a filter is applied to `ColumnName`, any column of `TableName`, or to any column of a related table. Therefore, the [ISCROSSFILTERED](iscrossfiltered-function-dax.md) function also returns `TRUE` when `ColumnName`, any column of `TableName`, or a column of a related table is filtered. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/isinscope-function-dax.md b/query-languages/dax/isinscope-function-dax.md index 7f781e735..fa84e4092 100644 --- a/query-languages/dax/isinscope-function-dax.md +++ b/query-languages/dax/isinscope-function-dax.md @@ -18,11 +18,11 @@ ISINSCOPE() |Term|Definition| |--------|--------------| -|columnName|The name of an existing column, using standard DAX syntax. It cannot be an expression.| +|`columnName`|The name of an existing column, using standard DAX syntax. It cannot be an expression.| ## Return value -TRUE when the specified column is the level in a hierarchy of levels. +`TRUE` when the specified column is the level in a hierarchy of levels. ## Remarks @@ -73,14 +73,14 @@ Returns, |DimProduct\[Category] |DimProduct\[SubCategory] |\[Category Subtotal] |\[Subcategory Subtotal] |\[Sales] |\[% of Parent] |---------|---------|---------|---------|---------|---------| -| | | TRUE | TRUE | 28,397,095.65 | 100.00 | -|Accessories | | FALSE | TRUE | 78,951.00 | 0.28 | -|Accessories | Bike Racks | FALSE | FALSE | 39,360.00 | 49.85 | -|Accessories | Bike Stands | FALSE | FALSE | 39,591.00 | 50.15 | -|Bikes | | FALSE | TRUE | 28,318,144.65 | 99.72 | -|Bikes | Mountain Bikes | FALSE | FALSE | 9,952,759.56 | 35.15 | -|Bikes | Road Bikes | FALSE | FALSE | 14,520,584.04 | 51.28 | -|Bikes | Touring Bikes | FALSE | FALSE | 3,844,801.05 | 13.58 | +| | | `TRUE` | `TRUE` | 28,397,095.65 | 100.00 | +|Accessories | | `FALSE` | `TRUE` | 78,951.00 | 0.28 | +|Accessories | Bike Racks | `FALSE` | `FALSE` | 39,360.00 | 49.85 | +|Accessories | Bike Stands | `FALSE` | `FALSE` | 39,591.00 | 50.15 | +|Bikes | | `FALSE` | `TRUE` | 28,318,144.65 | 99.72 | +|Bikes | Mountain Bikes | `FALSE` | `FALSE` | 9,952,759.56 | 35.15 | +|Bikes | Road Bikes | `FALSE` | `FALSE` | 14,520,584.04 | 51.28 | +|Bikes | Touring Bikes | `FALSE` | `FALSE` | 3,844,801.05 | 13.58 | ## Related content diff --git a/query-languages/dax/islogical-function-dax.md b/query-languages/dax/islogical-function-dax.md index 1b9df3f23..7f421a5bd 100644 --- a/query-languages/dax/islogical-function-dax.md +++ b/query-languages/dax/islogical-function-dax.md @@ -6,7 +6,7 @@ title: "ISLOGICAL function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether a value is a logical value, (TRUE or FALSE), and returns TRUE or FALSE. +Checks whether a value is a logical value, (`TRUE` or `FALSE`), and returns `TRUE` or `FALSE`. ## Syntax @@ -18,11 +18,11 @@ ISLOGICAL() |Term|Definition| |--------|--------------| -|value|The value that you want to test.| +|`value`|The value that you want to test.| ## Return value -TRUE if the value is a logical value; FALSE if any value other than TRUE OR FALSE. +`TRUE` if the value is a logical value; `FALSE` if any value other than `TRUE` OR `FALSE`. ## Remarks diff --git a/query-languages/dax/isnontext-function-dax.md b/query-languages/dax/isnontext-function-dax.md index 9e0d6aa6b..8dd94f6cc 100644 --- a/query-languages/dax/isnontext-function-dax.md +++ b/query-languages/dax/isnontext-function-dax.md @@ -6,7 +6,7 @@ title: "ISNONTEXT function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks if a value is not text (blank cells are not text), and returns TRUE or FALSE. +Checks if a value is not text (blank cells are not text), and returns `TRUE` or `FALSE`. ## Syntax @@ -18,11 +18,11 @@ ISNONTEXT() |Term|Definition| |--------|--------------| -|value|The value you want to check.| +|`value`|The value you want to check.| ## Return value -TRUE if the value is not text or blank; FALSE if the value is text. +`TRUE` if the value is not text or blank; `FALSE` if the value is text. ## Remarks diff --git a/query-languages/dax/isnumber-function-dax.md b/query-languages/dax/isnumber-function-dax.md index d538edb4f..846b98e1f 100644 --- a/query-languages/dax/isnumber-function-dax.md +++ b/query-languages/dax/isnumber-function-dax.md @@ -6,7 +6,7 @@ title: "ISNUMBER function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether a value is a number, and returns TRUE or FALSE. +Checks whether a value is a number, and returns `TRUE` or `FALSE`. ## Syntax @@ -18,11 +18,11 @@ ISNUMBER() |Term|Definition| |--------|--------------| -|value|The value you want to test.| +|`value`|The value you want to test.| ## Return value -TRUE if the value is numeric; otherwise FALSE. +`TRUE` if the value is numeric; otherwise `FALSE`. ## Remarks diff --git a/query-languages/dax/iso-ceiling-function-dax.md b/query-languages/dax/iso-ceiling-function-dax.md index cb906cff3..18bd45464 100644 --- a/query-languages/dax/iso-ceiling-function-dax.md +++ b/query-languages/dax/iso-ceiling-function-dax.md @@ -18,12 +18,12 @@ ISO.CEILING([, ]) |Term|Definition| |--------|--------------| -|number|The number you want to round, or a reference to a column that contains numbers.| -|significance|(optional) The multiple of significance to which you want to round. For example, to round to the nearest integer, type 1. If the unit of significance is not specified, the number is rounded up to the nearest integer.| +|`number`|The number you want to round, or a reference to a column that contains numbers.| +|`significance`|(optional) The multiple of significance to which you want to round. For example, to round to the nearest integer, type 1. If the unit of significance is not specified, the number is rounded up to the nearest integer.| ## Return value -A number, of the same type as the *number* argument, rounded as specified. +A number, of the same type as the `number` argument, rounded as specified. ## Remarks diff --git a/query-languages/dax/isodd-function-dax.md b/query-languages/dax/isodd-function-dax.md index bf0ac3ff4..ee09f7524 100644 --- a/query-languages/dax/isodd-function-dax.md +++ b/query-languages/dax/isodd-function-dax.md @@ -6,7 +6,7 @@ title: "ISODD function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns TRUE if number is odd, or FALSE if number is even. +Returns `TRUE` if number is odd, or `FALSE` if number is even. ## Syntax @@ -18,11 +18,11 @@ ISODD(number) |Term|Definition| |--------|--------------| -|number|The value to test. If number is not an integer, it is truncated.| +|`number`|The value to test. If number is not an integer, it is truncated.| ## Return value -Returns TRUE if number is odd, or FALSE if number is even. +Returns `TRUE` if number is odd, or `FALSE` if number is even. ## Remarks diff --git a/query-languages/dax/isonorafter-function-dax.md b/query-languages/dax/isonorafter-function-dax.md index 47dd4ce75..9919af8af 100644 --- a/query-languages/dax/isonorafter-function-dax.md +++ b/query-languages/dax/isonorafter-function-dax.md @@ -20,8 +20,8 @@ ISONORAFTER(, [, sort_order [, , , , ) |Term|Definition| |--------|--------------| -|rate|The interest rate for the investment.| -|per|The period for which you want to find the interest. Must be between 0 and nper-1 (inclusive).| -|nper|The total number of payment periods for the investment.| -|pv|The present value of the investment. For a loan, pv is the loan amount.| +|`rate`|The interest rate for the investment.| +|`per`|The period for which you want to find the interest. Must be between 0 and nper-1 (inclusive).| +|`nper`|The total number of payment periods for the investment.| +|`pv`|The present value of the investment. For a loan, pv is the loan amount.| ## Return Value diff --git a/query-languages/dax/isselectedmeasure-function-dax.md b/query-languages/dax/isselectedmeasure-function-dax.md index 6b7ecd211..0ebf824f9 100644 --- a/query-languages/dax/isselectedmeasure-function-dax.md +++ b/query-languages/dax/isselectedmeasure-function-dax.md @@ -18,7 +18,7 @@ ISSELECTEDMEASURE( M1, M2, ... ) |Term|Definition| |--------|--------------| -|M1, M2, ...|A list of measures.| +|`M1, M2, ...`|A list of measures.| ## Return value @@ -46,4 +46,4 @@ IF ( ## Related content [SELECTEDMEASURE](selectedmeasure-function-dax.md) -[SELECTEDMEASURENAME](selectedmeasurename-function-dax.md) +[SELECTEDMEASURENAME](selectedmeasurename-function-dax.md) diff --git a/query-languages/dax/issubtotal-function-dax.md b/query-languages/dax/issubtotal-function-dax.md index 1875dfde7..b38025a9d 100644 --- a/query-languages/dax/issubtotal-function-dax.md +++ b/query-languages/dax/issubtotal-function-dax.md @@ -24,7 +24,7 @@ SUMMARIZE(
, [, ]…[, ROLLUP() |Term|Definition| |--------|--------------| -|value|The value you want to check.| +|`value`|The value you want to check.| ## Return value -TRUE if the value is text; otherwise FALSE. +`TRUE` if the value is text; otherwise `FALSE`. ## Remarks diff --git a/query-languages/dax/keepfilters-function-dax.md b/query-languages/dax/keepfilters-function-dax.md index fcb30f112..ca6ace689 100644 --- a/query-languages/dax/keepfilters-function-dax.md +++ b/query-languages/dax/keepfilters-function-dax.md @@ -18,7 +18,7 @@ KEEPFILTERS() |Term|Definition| |--------|--------------| -|expression|Any expression.| +|`expression`|Any expression.| ## Return value @@ -92,18 +92,18 @@ When this expression is evaluated against the sample database AdventureWorks DW, |Column|Value| |----------|---------| -|[$$ in WA]|$ 2,467,248.34| -|[$$ in WA and OR]|$ 3,638,239.88| -|[$$ in WA and BC]|$ 4,422,588.44| -|[$$ in WA and OR ??]|$ 3,638,239.88| -|[$$ in WA !!]|$ 2,467,248.34| +|`[$$ in WA]`|$ 2,467,248.34| +|`[$$ in WA and OR]`|$ 3,638,239.88| +|`[$$ in WA and BC]`|$ 4,422,588.44| +|`[$$ in WA and OR ??]`|$ 3,638,239.88| +|`[$$ in WA !!]`|$ 2,467,248.34| > [!NOTE] > The above results were formatted to a table, instead of a single row, for educational purposes. -First, examine the expression, **[$$ in WA and OR ??]**. You might wonder how this formula could return the value for sales in Washington and Oregon, since the outer CALCULATE expression includes a filter for Washington and British Columbia. The answer is that the default behavior of CALCULATE overrides the outer filters in 'Geography'[State Province Code] and substitutes its own filter arguments, because the filters apply to the same column. +First, examine the expression, `[$$ in WA and OR ??]`. You might wonder how this formula could return the value for sales in Washington and Oregon, since the outer CALCULATE expression includes a filter for Washington and British Columbia. The answer is that the default behavior of CALCULATE overrides the outer filters in 'Geography'[State Province Code] and substitutes its own filter arguments, because the filters apply to the same column. -Next, examine the expression, **[$$ in WA !!]**. You might wonder how this formula could return the value for sales in Washington and nothing else, since the argument filter includes Oregon and the outer CALCULATE expression includes a filter in Washington and British Columbia. The answer is that KEEPFILTERS modifies the default behavior of CALCULATE and adds an additional filter. Because the intersection of filters is used, now the outer filter **'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")** is added to the filter argument **'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"**,. Because both filters apply to the same column, the resulting filter **'Geography'[State Province Code]="WA"** is the filter that is applied when evaluating the expression. +Next, examine the expression, `[$$ in WA !!]`. You might wonder how this formula could return the value for sales in Washington and nothing else, since the argument filter includes Oregon and the outer CALCULATE expression includes a filter in Washington and British Columbia. The answer is that KEEPFILTERS modifies the default behavior of CALCULATE and adds an additional filter. Because the intersection of filters is used, now the outer filter `'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")` is added to the filter argument `'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"`,. Because both filters apply to the same column, the resulting filter `'Geography'[State Province Code]="WA"` is the filter that is applied when evaluating the expression. ## Related content diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 056e21a9d..c70478132 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -19,10 +19,10 @@ LAST ( [, ][, ][, reset] ) |Term|Definition| |--------|--------------| -|column|The column to be retrieved.| -|axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| +|`column`|The column to be retrieved.| +|`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| ## Return value diff --git a/query-languages/dax/lastdate-function-dax.md b/query-languages/dax/lastdate-function-dax.md index 7a9258609..11416a6f6 100644 --- a/query-languages/dax/lastdate-function-dax.md +++ b/query-languages/dax/lastdate-function-dax.md @@ -18,7 +18,7 @@ LASTDATE() |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| +|`dates`|A column that contains dates.| ## Return value @@ -26,7 +26,7 @@ A table containing a single column and single row with a date value. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column, - A table expression that returns a single column of date/time values, - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/lastnonblank-function-dax.md b/query-languages/dax/lastnonblank-function-dax.md index a3ece8eb7..4b96019f1 100644 --- a/query-languages/dax/lastnonblank-function-dax.md +++ b/query-languages/dax/lastnonblank-function-dax.md @@ -6,7 +6,7 @@ title: "LASTNONBLANK function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the last value in the column, **column**, filtered by the current context, where the expression is not blank. +Returns the last value in the column, `column`, filtered by the current context, where the expression is not blank. ## Syntax @@ -18,8 +18,8 @@ LASTNONBLANK(,) |Term|Definition| |--------|--------------| -|column|A column expression.| -|expression|An expression evaluated for blanks for each value of **column**.| +|`column`|A column expression.| +|`expression`|An expression evaluated for blanks for each value of `column`.| ## Return value @@ -27,7 +27,7 @@ A table containing a single column and single row with the computed last value. ## Remarks -- The **column** argument can be any of the following: +- The `column` argument can be any of the following: - A reference to any column. - A table with a single column. - A Boolean expression that defines a single-column table diff --git a/query-languages/dax/lastnonblankvalue-function-dax.md b/query-languages/dax/lastnonblankvalue-function-dax.md index 460c25d45..fbe9fd70a 100644 --- a/query-languages/dax/lastnonblankvalue-function-dax.md +++ b/query-languages/dax/lastnonblankvalue-function-dax.md @@ -18,8 +18,8 @@ LASTNONBLANKVALUE(, ) |Term|Definition| |--------|--------------| -|column|A column or an expression that returns a single-column table.| -|expression|An expression evaluated for each value of \.| +|`column`|A column or an expression that returns a single-column table.| +|`expression`|An expression evaluated for each value of \.| ## Return value diff --git a/query-languages/dax/lcm-function-dax.md b/query-languages/dax/lcm-function-dax.md index e48adfb04..1ccf5ad03 100644 --- a/query-languages/dax/lcm-function-dax.md +++ b/query-languages/dax/lcm-function-dax.md @@ -18,7 +18,7 @@ LCM(number1, [number2], ...) |Term|Definition| |--------|--------------| -|number1, number2,...|Number1 is required, subsequent numbers are optional. 1 to 255 values for which you want the least common multiple. If value is not an integer, it is truncated.| +|`number1, number2,...`|Number1 is required, subsequent numbers are optional. 1 to 255 values for which you want the least common multiple. If value is not an integer, it is truncated.| ## Return value @@ -38,5 +38,5 @@ Returns the least common multiple of integers. |Formula|Description|Result| |-----------|---------------|----------| -|= LCM(5, 2)|Least common multiple of 5 and 2.|10| -|= LCM(24, 36)|Least common multiple of 24 and 36.|72| +|`= LCM(5, 2)`|Least common multiple of 5 and 2.|10| +|`= LCM(24, 36)`|Least common multiple of 24 and 36.|72| diff --git a/query-languages/dax/left-function-dax.md b/query-languages/dax/left-function-dax.md index 549479667..b8832ef95 100644 --- a/query-languages/dax/left-function-dax.md +++ b/query-languages/dax/left-function-dax.md @@ -18,8 +18,8 @@ LEFT(, ) |Term|Definition| |--------|--------------| -|text|The text string containing the characters you want to extract, or a reference to a column that contains text.| -|num_chars|(optional) The number of characters you want LEFT to extract; if omitted, 1.| +|`text`|The text string containing the characters you want to extract, or a reference to a column that contains text.| +|`num_chars`|(optional) The number of characters you want LEFT to extract; if omitted, 1.| ## Return value @@ -39,7 +39,7 @@ The following example returns the first five characters of the company name in t = CONCATENATE(LEFT('Reseller'[ResellerName],LEFT(GeographyKey,3)) ``` -If the **num_chars** argument is a number that is larger than the number of characters available, the function returns the maximum characters available and does not raise an error. For example, the column [GeographyKey] contains numbers such as 1, 12 and 311; therefore the result also has variable length. +If the `num_chars` argument is a number that is larger than the number of characters available, the function returns the maximum characters available and does not raise an error. For example, the column [GeographyKey] contains numbers such as 1, 12 and 311; therefore the result also has variable length. ## Related content diff --git a/query-languages/dax/len-function-dax.md b/query-languages/dax/len-function-dax.md index d9ad01ba5..f1eca2b07 100644 --- a/query-languages/dax/len-function-dax.md +++ b/query-languages/dax/len-function-dax.md @@ -18,7 +18,7 @@ LEN() |Term|Definition| |--------|--------------| -|text|The text whose length you want to find, or a column that contains text. Spaces count as characters.| +|`text`|The text whose length you want to find, or a column that contains text. Spaces count as characters.| ## Return value diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index e19c80113..fa22b9a53 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -21,9 +21,9 @@ LINEST ( , [, …][, ] ) |Term|Definition| |--------|--------------| -|columnY|The column of known y-values. Must have scalar type.| -|columnX|The columns of known x-values. Must have scalar type. At least one must be provided.| -|const|(Optional) A constant TRUE/FALSE value specifying whether to force the constant **Intercept** to equal 0.
If TRUE or omitted, the **Intercept** value is calculated normally; If FALSE, the **Intercept** value is set to zero.| +|`columnY`|The column of known y-values. Must have scalar type.| +|`columnX`|The columns of known x-values. Must have scalar type. At least one must be provided.| +|`const`|(Optional) A constant `TRUE`/`FALSE` value specifying whether to force the constant **Intercept** to equal 0.
If `TRUE` or omitted, the **Intercept** value is calculated normally; If `FALSE`, the **Intercept** value is set to zero.| ## Return value diff --git a/query-languages/dax/linestx-function-dax.md b/query-languages/dax/linestx-function-dax.md index 9e587b3e6..a6790e844 100644 --- a/query-languages/dax/linestx-function-dax.md +++ b/query-languages/dax/linestx-function-dax.md @@ -21,10 +21,10 @@ LINESTX (
, , [, …][, ] ) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expressions will be evaluated.| -|expressionY|The expression to be evaluated for each row of the table, to obtain the known y-values. Must have scalar type. | -|expressionX|The expressions to be evaluated for each row of the table, to obtain the known x-values. Must have scalar type. At least one must be provided.| -|const|(Optional) A constant TRUE/FALSE value specifying whether to force the constant **Intercept** to equal 0.
If TRUE or omitted, the **Intercept** value is calculated normally; If FALSE, the **Intercept** value is set to zero.| +|`table`|The table containing the rows for which the expressions will be evaluated.| +|`expressionY`|The expression to be evaluated for each row of the table, to obtain the known y-values. Must have scalar type. | +|`expressionX`|The expressions to be evaluated for each row of the table, to obtain the known x-values. Must have scalar type. At least one must be provided.| +|`const`|(Optional) A constant `TRUE`/`FALSE` value specifying whether to force the constant **Intercept** to equal 0.
If `TRUE` or omitted, the **Intercept** value is calculated normally; If `FALSE`, the **Intercept** value is set to zero.| ## Return value diff --git a/query-languages/dax/ln-function-dax.md b/query-languages/dax/ln-function-dax.md index 0a26a797e..b8a25819d 100644 --- a/query-languages/dax/ln-function-dax.md +++ b/query-languages/dax/ln-function-dax.md @@ -18,7 +18,7 @@ LN() |Term|Definition| |--------|--------------| -|number|The positive number for which you want the natural logarithm.| +|`number`|The positive number for which you want the natural logarithm.| ## Return value diff --git a/query-languages/dax/log-function-dax.md b/query-languages/dax/log-function-dax.md index 532f287a2..211435898 100644 --- a/query-languages/dax/log-function-dax.md +++ b/query-languages/dax/log-function-dax.md @@ -18,8 +18,8 @@ LOG(,) |Term|Definition| |--------|--------------| -|number|The positive number for which you want the logarithm.| -|base|The base of the logarithm. If omitted, the base is 10.| +|`number`|The positive number for which you want the logarithm.| +|`base`|The base of the logarithm. If omitted, the base is 10.| ## Return value diff --git a/query-languages/dax/log10-function-dax.md b/query-languages/dax/log10-function-dax.md index 832950a83..e8471f8b6 100644 --- a/query-languages/dax/log10-function-dax.md +++ b/query-languages/dax/log10-function-dax.md @@ -18,7 +18,7 @@ LOG10() |Term|Definition| |--------|--------------| -|number|A positive number for which you want the base-10 logarithm.| +|`number`|A positive number for which you want the base-10 logarithm.| ## Return value diff --git a/query-languages/dax/logical-functions-dax.md b/query-languages/dax/logical-functions-dax.md index 32713f7f7..30dc53184 100644 --- a/query-languages/dax/logical-functions-dax.md +++ b/query-languages/dax/logical-functions-dax.md @@ -10,18 +10,18 @@ Logical functions act upon an expression to return information about the values |Function |Description | |---------|---------| -|[AND](and-function-dax.md) | Checks whether both arguments are TRUE, and returns TRUE if both arguments are TRUE. | +|[AND](and-function-dax.md) | Checks whether both arguments are `TRUE`, and returns `TRUE` if both arguments are `TRUE`. | |[BITAND](bitand-function-dax.md) | Returns a bitwise 'AND' of two numbers. | |[BITLSHIFT](bitlshift-function-dax.md) | Returns a number shifted left by the specified number of bits. | |[BITOR](bitor-function-dax.md) | Returns a bitwise 'OR' of two numbers. | |[BITRSHIFT](bitrshift-function-dax.md) | Returns a number shifted right by the specified number of bits. | |[BITXOR](bitxor-function-dax.md) | Returns a bitwise 'XOR' of two numbers. | |[COALESCE](coalesce-function-dax.md)|Returns the first expression that does not evaluate to BLANK.| -|[FALSE](false-function-dax.md) | Returns the logical value FALSE. | -|[IF](if-function-dax.md) | Checks a condition, and returns one value when TRUE, otherwise it returns a second value. | -|[IF.EAGER](if-eager-function-dax.md) | Checks a condition, and returns one value when TRUE, otherwise it returns a second value. Uses an *eager* execution plan which always executes the branch expressions regardless of the condition expression. | +|[FALSE](false-function-dax.md) | Returns the logical value `FALSE`. | +|[IF](if-function-dax.md) | Checks a condition, and returns one value when `TRUE`, otherwise it returns a second value. | +|[IF.EAGER](if-eager-function-dax.md) | Checks a condition, and returns one value when `TRUE`, otherwise it returns a second value. Uses an *eager* execution plan which always executes the branch expressions regardless of the condition expression. | |[IFERROR](iferror-function-dax.md) | Evaluates an expression and returns a specified value if the expression returns an error | -|[NOT](not-function-dax.md) | Changes FALSE to TRUE, or TRUE to FALSE. | -|[OR](or-function-dax.md) | Checks whether one of the arguments is TRUE to return TRUE. | +|[NOT](not-function-dax.md) | Changes `FALSE` to `TRUE`, or `TRUE` to `FALSE`. | +|[OR](or-function-dax.md) | Checks whether one of the arguments is `TRUE` to return `TRUE`. | |[SWITCH](switch-function-dax.md) | Evaluates an expression against a list of values and returns one of multiple possible result expressions. | -|[TRUE](true-function-dax.md) | Returns the logical value TRUE. | +|[TRUE](true-function-dax.md) | Returns the logical value `TRUE`. | diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index 3bddc0c14..bc66dd603 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -24,30 +24,30 @@ LOOKUPVALUE ( |Term|Definition| |--------|--------------| -| result_columnName | The name of an existing column that contains the value you want to return. It cannot be an expression. | -| search_columnName | The name of an existing column. It can be in the same table as result_columnName or in a related table. It cannot be an expression. Multiple pairs of search_columnName and search_value can be specified. | -| search_value | The value to search for in search_columnName. Multiple pairs of search_columnName and search_value can be specified. | -| alternateResult | (Optional) The value returned when the context for result_columnName has been filtered down to zero or more than one distinct value. If not specified, the function returns BLANK when result_columnName is filtered down to zero values or an error when there is more than one distinct value in the context for result_columnName. | +| `result_columnName` | The name of an existing column that contains the value you want to return. It cannot be an expression. | +| `search_columnName` | The name of an existing column. It can be in the same table as result_columnName or in a related table. It cannot be an expression. Multiple pairs of search_columnName and search_value can be specified. | +| `search_value` | The value to search for in search_columnName. Multiple pairs of search_columnName and search_value can be specified. | +| `alternateResult` | (Optional) The value returned when the context for result_columnName has been filtered down to zero or more than one distinct value. If not specified, the function returns BLANK when result_columnName is filtered down to zero values or an error when there is more than one distinct value in the context for result_columnName. | ## Return value -The value of **result_columnName** at the row where all pairs of **search_columnName** and **search_value** have an exact match. +The value of `result_columnName` at the row where all pairs of `search_columnName` and `search_value` have an exact match. -If there isn't a match that satisfies all the search values, BLANK or **alternateResult** (if specified) is returned. In other words, the function doesn't return a lookup value if only some of the criteria match. +If there isn't a match that satisfies all the search values, BLANK or `alternateResult` (if specified) is returned. In other words, the function doesn't return a lookup value if only some of the criteria match. -If multiple rows match the search values and the values in the **result_columnName** for these rows are identical, then that value is returned. However, if **result_columnName** returns different values, an error or **alternateResult** (if specified) is returned. +If multiple rows match the search values and the values in the `result_columnName` for these rows are identical, then that value is returned. However, if `result_columnName` returns different values, an error or `alternateResult` (if specified) is returned. ## Remarks - If there is a relationship between the table that contains the result column and tables that contain the search columns, in most cases, using the [RELATED](related-function-dax.md) function instead of LOOKUPVALUE is more efficient and provides better performance. -- Multiple pairs of **search_columnName** and **search_value** can be specified. +- Multiple pairs of `search_columnName` and `search_value` can be specified. -- The **search_value** and **alternateResult** parameters are evaluated before the function iterates through the rows of the search table. +- The `search_value` and `alternateResult` parameters are evaluated before the function iterates through the rows of the search table. -- Avoid using ISERROR or IFERROR functions to capture an error returned by LOOKUPVALUE. If some inputs to the function result in an error when a single output value cannot be determined, providing an **alternateResult** parameter is the most reliable and highest performing way to handle the error. +- Avoid using ISERROR or IFERROR functions to capture an error returned by LOOKUPVALUE. If some inputs to the function result in an error when a single output value cannot be determined, providing an `alternateResult` parameter is the most reliable and highest performing way to handle the error. -- The **alternateResult** parameter returns an error if specified in a Power Pivot calculated column. +- The `alternateResult` parameter returns an error if specified in a Power Pivot calculated column. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/lower-function-dax.md b/query-languages/dax/lower-function-dax.md index 4f365d7e2..f99d4b423 100644 --- a/query-languages/dax/lower-function-dax.md +++ b/query-languages/dax/lower-function-dax.md @@ -18,7 +18,7 @@ LOWER() |Term|Definition| |--------|--------------| -|text|The text you want to convert to lowercase, or a reference to a column that contains text.| +|`text`|The text you want to convert to lowercase, or a reference to a column that contains text.| ## Return value @@ -26,7 +26,7 @@ Text in lowercase. ## Remarks -Characters that are not letters are not changed. For example, the formula `= LOWER("123ABC")` returns **123abc**. +Characters that are not letters are not changed. For example, the formula `= LOWER("123ABC")` returns `123abc`. ## Example diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md index de9859b59..a740c1930 100644 --- a/query-languages/dax/matchby-function-dax.md +++ b/query-languages/dax/matchby-function-dax.md @@ -20,7 +20,7 @@ MATCHBY ( [[, matchBy_columnName [, …]]] ) |Term|Definition| |--------|--------------| -|matchBy_columnName| (Optional) The name of an existing column to be used to identify current row in the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| +|`matchBy_columnName`| (Optional) The name of an existing column to be used to identify current row in the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| ## Return value diff --git a/query-languages/dax/max-function-dax.md b/query-languages/dax/max-function-dax.md index d86decb47..423072e1f 100644 --- a/query-languages/dax/max-function-dax.md +++ b/query-languages/dax/max-function-dax.md @@ -22,8 +22,8 @@ MAX(, ) |Term|Definition| |--------|--------------| -|column|The column in which you want to find the largest value.| -|expression|Any DAX expression which returns a single value.| +|`column`|The column in which you want to find the largest value.| +|`expression`|Any DAX expression which returns a single value.| ## Return value @@ -33,7 +33,7 @@ The largest value. - When comparing two expressions, blank is treated as 0 when comparing. That is, Max(1, Blank() ) returns 1, and Max( -1, Blank() ) returns 0. If both arguments are blank, MAX returns a blank. If either expression returns a value which is not allowed, MAX returns an error. -- TRUE/FALSE values are not supported. If you want to evaluate a column of TRUE/FALSE values, use the MAXA function. +- `TRUE`/`FALSE` values are not supported. If you want to evaluate a column of `TRUE`/`FALSE` values, use the MAXA function. ## Example 1 diff --git a/query-languages/dax/maxa-function-dax.md b/query-languages/dax/maxa-function-dax.md index f834346b1..63e177ce2 100644 --- a/query-languages/dax/maxa-function-dax.md +++ b/query-languages/dax/maxa-function-dax.md @@ -18,7 +18,7 @@ MAXA() |Term|Definition| |--------|--------------| -|column|The column in which you want to find the largest value.| +|`column`|The column in which you want to find the largest value.| ## Return value @@ -30,7 +30,7 @@ The largest value. - Numbers - Dates -- Logical values, such as TRUE and FALSE. Rows that evaluate to TRUE count as 1; rows that evaluate to FALSE count as 0 (zero). +- Logical values, such as `TRUE` and `FALSE`. Rows that evaluate to `TRUE` count as 1; rows that evaluate to `FALSE` count as 0 (zero). - Empty cells are ignored. If the column contains no values that can be used, MAXA returns 0 (zero). diff --git a/query-languages/dax/maxx-function-dax.md b/query-languages/dax/maxx-function-dax.md index eaf4fdf79..280736758 100644 --- a/query-languages/dax/maxx-function-dax.md +++ b/query-languages/dax/maxx-function-dax.md @@ -18,9 +18,9 @@ MAXX(
,,[]) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expression will be evaluated.| -|expression|The expression to be evaluated for each row of the table.| -|variant|(Optional) If TRUE, and if there are variant or mixed value types, the highest value based on ORDER BY DESC is returned.| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| +|`variant`|(Optional) If `TRUE`, and if there are variant or mixed value types, the highest value based on ORDER BY DESC is returned.| ## Return value @@ -28,16 +28,16 @@ The highest value. ## Remarks -- The **table** argument to the MAXX function can be a table name or an expression that evaluates to a table. The second argument indicates the expression to be evaluated for each row of the table. +- The `table` argument to the MAXX function can be a table name or an expression that evaluates to a table. The second argument indicates the expression to be evaluated for each row of the table. - Of the values to evaluate, only the following are counted: - Numbers - Texts - Dates -- Blank values are skipped. TRUE/FALSE values are not supported. +- Blank values are skipped. `TRUE`/`FALSE` values are not supported. -- If the expression has variant or mixed value types such as text and number, then by default MAXX considers only numbers. If ` = TRUE`, the maximum value is returned. +- If the expression has variant or mixed value types such as text and number, then by default MAXX considers only numbers. If ` = `TRUE``, the maximum value is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/mduration-function-dax.md b/query-languages/dax/mduration-function-dax.md index e9c359cd1..e4c643caf 100644 --- a/query-languages/dax/mduration-function-dax.md +++ b/query-languages/dax/mduration-function-dax.md @@ -20,16 +20,16 @@ MDURATION(, , , , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|coupon|The security's annual coupon rate.| -|yld|The security's annual yield.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`coupon`|The security's annual coupon rate.| +|`yld`|The security's annual yield.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index a81e4a5cd..6af267e76 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -20,11 +20,11 @@ Introduces a measure definition in a DEFINE statement of a [DAX query](dax-queri ### Parameters -|Term |Definition | +|Term|Definition| |---------|---------| -| table name | The name of a table containing the measure. | -| measure name | The name of the measure. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query. | -| scalar expression | A DAX expression that returns a scalar value. | +|`table name`| The name of a table containing the measure. | +|`measure name`| The name of the measure. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query. | +|`scalar expression`| A DAX expression that returns a scalar value. | ## Return value diff --git a/query-languages/dax/median-function-dax.md b/query-languages/dax/median-function-dax.md index f7461740b..b7ae7eb27 100644 --- a/query-languages/dax/median-function-dax.md +++ b/query-languages/dax/median-function-dax.md @@ -20,7 +20,7 @@ MEDIAN() |Term|Definition| |--------|--------------| -|column|The column that contains the numbers for which the median is to be computed.| +|`column`|The column that contains the numbers for which the median is to be computed.| ## Return value diff --git a/query-languages/dax/medianx-function-dax.md b/query-languages/dax/medianx-function-dax.md index 6a336b7f5..8215722f1 100644 --- a/query-languages/dax/medianx-function-dax.md +++ b/query-languages/dax/medianx-function-dax.md @@ -20,8 +20,8 @@ MEDIANX(
, ) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expression will be evaluated.| -|expression|The expression to be evaluated for each row of the table.| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| ## Return value diff --git a/query-languages/dax/mid-function-dax.md b/query-languages/dax/mid-function-dax.md index 135faa063..cae32ac66 100644 --- a/query-languages/dax/mid-function-dax.md +++ b/query-languages/dax/mid-function-dax.md @@ -18,9 +18,9 @@ MID(, , ) |Term|Definition| |--------|--------------| -|text|The text string from which you want to extract the characters, or a column that contains text.| -|start_num|The position of the first character you want to extract. Positions start at 1.| -|num_chars|The number of characters to return.| +|`text`|The text string from which you want to extract the characters, or a column that contains text.| +|`start_num`|The position of the first character you want to extract. Positions start at 1.| +|`num_chars`|The number of characters to return.| ## Return value A string of text of the specified length. @@ -37,7 +37,7 @@ The following expression, MID("abcde",2,3)) ``` -Returns **"bcd"**. +Returns `"bcd"`. The following expression, diff --git a/query-languages/dax/min-function-dax.md b/query-languages/dax/min-function-dax.md index 62482a331..a5671a609 100644 --- a/query-languages/dax/min-function-dax.md +++ b/query-languages/dax/min-function-dax.md @@ -22,8 +22,8 @@ MIN(, ) |Term|Definition| |--------|--------------| -|column|The column in which you want to find the smallest value.| -|expression|Any DAX expression which returns a single value.| +|`column`|The column in which you want to find the smallest value.| +|`expression`|Any DAX expression which returns a single value.| ## Return value @@ -39,7 +39,7 @@ The smallest value. - When comparing expressions, blank is treated as 0 when comparing. That is, Min(1,Blank() ) returns 0, and Min( -1, Blank() ) returns -1. If both arguments are blank, MIN returns a blank. If either expression returns a value which is not allowed, MIN returns an error. -- TRUE/FALSE values are not supported. If you want to evaluate a column of TRUE/FALSE values, use the MINA function. +- `TRUE`/`FALSE` values are not supported. If you want to evaluate a column of `TRUE`/`FALSE` values, use the MINA function. ## Example 1 diff --git a/query-languages/dax/mina-function-dax.md b/query-languages/dax/mina-function-dax.md index e779b817a..765166a82 100644 --- a/query-languages/dax/mina-function-dax.md +++ b/query-languages/dax/mina-function-dax.md @@ -18,7 +18,7 @@ MINA() |Term|Definition| |--------|--------------| -|column|The column for which you want to find the minimum value.| +|`column`|The column for which you want to find the minimum value.| ## Return value @@ -28,7 +28,7 @@ The smallest value. - The MINA function takes as argument a column that contains numbers, and determines the smallest value as follows: - If the column contains no values, MINA returns 0 (zero). - - Rows in the column that evaluates to logical values, such as TRUE and FALSE are treated as 1 if TRUE and 0 (zero) if FALSE. + - Rows in the column that evaluates to logical values, such as `TRUE` and `FALSE` are treated as 1 if `TRUE` and 0 (zero) if `FALSE`. - Empty cells are ignored. - If you want to compare text values, use the MIN function. diff --git a/query-languages/dax/minute-function-dax.md b/query-languages/dax/minute-function-dax.md index 14978ad47..aef1fdd92 100644 --- a/query-languages/dax/minute-function-dax.md +++ b/query-languages/dax/minute-function-dax.md @@ -18,7 +18,7 @@ MINUTE() |Term|Definition| |--------|--------------| -|datetime|A **datetime** value or text in an accepted time format, such as 16:48:00 or 4:48 PM.| +|`datetime`|A `datetime` value or text in an accepted time format, such as 16:48:00 or 4:48 PM.| ## Return value @@ -26,9 +26,9 @@ An integer number from 0 to 59. ## Remarks -- In contrast to Microsoft Excel, which stores dates and times in a serial numeric format, DAX uses a **datetime** data type for dates and times. You can provide the **datetime** value to the MINUTE function by referencing a column that stores dates and times, by using a date/time function, or by using an expression that returns a date and time. +- In contrast to Microsoft Excel, which stores dates and times in a serial numeric format, DAX uses a `datetime` data type for dates and times. You can provide the `datetime` value to the MINUTE function by referencing a column that stores dates and times, by using a date/time function, or by using an expression that returns a date and time. -- When the **datetime** argument is a text representation of the date and time, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator and any input text using colons as time separators will parse correctly. Verify your locale settings to understand your results. +- When the `datetime` argument is a text representation of the date and time, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator and any input text using colons as time separators will parse correctly. Verify your locale settings to understand your results. ## Example 1 diff --git a/query-languages/dax/minx-function-dax.md b/query-languages/dax/minx-function-dax.md index 907e3c756..63cc35a4d 100644 --- a/query-languages/dax/minx-function-dax.md +++ b/query-languages/dax/minx-function-dax.md @@ -18,9 +18,9 @@ MINX(
, < expression>,[]) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expression will be evaluated.| -|expression|The expression to be evaluated for each row of the table.| -|variant|(Optional) If TRUE, and if there are variant or mixed value types, the lowest value based on ORDER BY ASC is returned.| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| +|`variant`|(Optional) If `TRUE`, and if there are variant or mixed value types, the lowest value based on ORDER BY ASC is returned.| ## Return value @@ -30,7 +30,7 @@ The lowest value. - The MINX function takes as its first argument a table or an expression that returns a table. The second argument contains the expression that is evaluated for each row of the table. -- Blank values are skipped. TRUE/FALSE values are not supported. +- Blank values are skipped. `TRUE`/`FALSE` values are not supported. - If the expression has variant or mixed value types such as text and number, then by default MINX considers only numbers. If ` = TRUE`, the minimum value is returned. diff --git a/query-languages/dax/mod-function-dax.md b/query-languages/dax/mod-function-dax.md index 7acce0228..ec7440440 100644 --- a/query-languages/dax/mod-function-dax.md +++ b/query-languages/dax/mod-function-dax.md @@ -18,8 +18,8 @@ MOD(, ) |Term|Definition| |--------|--------------| -|number|The number for which you want to find the remainder after the division is performed.| -|divisor|The number by which you want to divide.| +|`number`|The number for which you want to find the remainder after the division is performed.| +|`divisor`|The number by which you want to divide.| ## Return value diff --git a/query-languages/dax/month-function-dax.md b/query-languages/dax/month-function-dax.md index 00233002e..c10813b79 100644 --- a/query-languages/dax/month-function-dax.md +++ b/query-languages/dax/month-function-dax.md @@ -18,7 +18,7 @@ MONTH() |Term|Definition| |--------|--------------| -|date|A date in **datetime** or text format.| +|`date`|A date in `datetime` or text format.| ## Return value @@ -26,7 +26,7 @@ An integer number from 1 to 12. ## Remarks -- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a **datetime** format when working with dates. You can enter the date used as argument to the MONTH function by typing an accepted **datetime** format, by providing a reference to a column that contains dates, or by using an expression that returns a date. +- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a `datetime` format when working with dates. You can enter the date used as argument to the MONTH function by typing an accepted `datetime` format, by providing a reference to a column that contains dates, or by using an expression that returns a date. - Values returned by the YEAR, MONTH and DAY functions will be Gregorian values regardless of the display format for the supplied date value. For example, if the display format of the supplied date is Hijri, the returned values for the YEAR, MONTH and DAY functions will be values associated with the equivalent Gregorian date. @@ -36,7 +36,7 @@ An integer number from 1 to 12. ## Example 1 -The following expression returns 3, which is the integer corresponding to March, the month in the **date** argument. +The following expression returns 3, which is the integer corresponding to March, the month in the `date` argument. ```dax = MONTH("March 3, 2008 3:45 PM") @@ -44,7 +44,7 @@ The following expression returns 3, which is the integer corresponding to March, ## Example 2 -The following expression returns the month from the date in the **TransactionDate** column of the **Orders** table. +The following expression returns the month from the date in the `TransactionDate` column of the `Orders` table. ```dax = MONTH(Orders[TransactionDate]) diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 84239b595..c048744ea 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -27,12 +27,12 @@ MOVINGAVERAGE ( , [, ][, ][, ] |Term|Definition| |--------|--------------| -|column|The column that provides the value for each element.| -|windowSize|The number of rows to include in the calculation. Must be a constant value.| -|includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| -|axis|(Optional) An axis reference, the direction along which the moving average will be calculated.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`column`|The column that provides the value for each element.| +|`windowSize`|The number of rows to include in the calculation. Must be a constant value.| +|`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| +|`axis`|(Optional) An axis reference, the direction along which the moving average will be calculated.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value diff --git a/query-languages/dax/mround-function-dax.md b/query-languages/dax/mround-function-dax.md index 4632406f6..f413c3799 100644 --- a/query-languages/dax/mround-function-dax.md +++ b/query-languages/dax/mround-function-dax.md @@ -18,8 +18,8 @@ MROUND(, ) |Term|Definition| |--------|--------------| -|number|The number to round.| -|multiple|The multiple of significance to which you want to round the number.| +|`number`|The number to round.| +|`multiple`|The multiple of significance to which you want to round the number.| ## Return value @@ -27,7 +27,7 @@ A decimal number. ## Remarks -MROUND rounds up, away from zero, if the remainder of dividing **number** by the specified **multiple** is greater than or equal to half the value of **multiple**. +MROUND rounds up, away from zero, if the remainder of dividing `number` by the specified `multiple` is greater than or equal to half the value of `multiple`. ## Example: Decimal Places diff --git a/query-languages/dax/naturalinnerjoin-function-dax.md b/query-languages/dax/naturalinnerjoin-function-dax.md index 0a7debf64..2ea106853 100644 --- a/query-languages/dax/naturalinnerjoin-function-dax.md +++ b/query-languages/dax/naturalinnerjoin-function-dax.md @@ -18,8 +18,8 @@ NATURALINNERJOIN(, ) |Term|Definition| |--------|--------------| -|LeftTable|A table expression defining the table on the left side of the join.| -|RightTable|A table expression defining the table on the right side of the join.| +|`LeftTable`|A table expression defining the table on the left side of the join.| +|`RightTable`|A table expression defining the table on the right side of the join.| ## Return value diff --git a/query-languages/dax/naturalleftouterjoin-function-dax.md b/query-languages/dax/naturalleftouterjoin-function-dax.md index afab8875d..94b2c7597 100644 --- a/query-languages/dax/naturalleftouterjoin-function-dax.md +++ b/query-languages/dax/naturalleftouterjoin-function-dax.md @@ -18,8 +18,8 @@ NATURALLEFTOUTERJOIN(, ) |Term|Definition| |--------|--------------| -|LeftTable|A table expression defining the table on the left side of the join.| -|RightTable|A table expression defining the table on the right side of the join.| +|`LeftTable`|A table expression defining the table on the left side of the join.| +|`RightTable`|A table expression defining the table on the right side of the join.| ## Return value diff --git a/query-languages/dax/networkdays-function-dax.md b/query-languages/dax/networkdays-function-dax.md index 9ab757194..fb80997fd 100644 --- a/query-languages/dax/networkdays-function-dax.md +++ b/query-languages/dax/networkdays-function-dax.md @@ -19,10 +19,10 @@ NETWORKDAYS(, [, , ]) |Term|Definition| |--------|--------------| -|start_date|A date that represents the start date. The dates for which the difference is to be computed. The start_date can be earlier than, the same as, or later than the end_date.| -|end_date|A date that represents the end date. The dates for which the difference is to be computed. The start_date can be earlier than, the same as, or later than the end_date.| -|weekend|Indicates the days of the week that are weekend days and are not included in the number of whole working days between start_date and end_date. Weekend is a weekend number that specifies when weekends occur.
Weekend number values indicate the following weekend days:
1 or omitted: Saturday, Sunday
2: Sunday, Monday
3: Monday, Tuesday
4: Tuesday, Wednesday
5: Wednesday, Thursday
6: Thursday, Friday
7: Friday, Saturday
11: Sunday only
12: Monday only
13: Tuesday only
14: Wednesday only
15: Thursday only
16: Friday only
17: Saturday only| -|holidays|A column table of one or more dates that are to be excluded from the working day calendar.| +|`start_date`|A date that represents the start date. The dates for which the difference is to be computed. The start_date can be earlier than, the same as, or later than the end_date.| +|`end_date`|A date that represents the end date. The dates for which the difference is to be computed. The start_date can be earlier than, the same as, or later than the end_date.| +|`weekend`|Indicates the days of the week that are weekend days and are not included in the number of whole working days between start_date and end_date. Weekend is a weekend number that specifies when weekends occur.
Weekend number values indicate the following weekend days:
1 or omitted: Saturday, Sunday
2: Sunday, Monday
3: Monday, Tuesday
4: Tuesday, Wednesday
5: Wednesday, Thursday
6: Thursday, Friday
7: Friday, Saturday
11: Sunday only
12: Monday only
13: Tuesday only
14: Wednesday only
15: Thursday only
16: Friday only
17: Saturday only| +|`holidays`|A column table of one or more dates that are to be excluded from the working day calendar.| ## Return Value diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 193bf4d85..5484bf015 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -19,11 +19,11 @@ NEXT ( [, ][, ][, ][, reset] ) |Term|Definition| |--------|--------------| -|column|The column to be retrieved.| -|steps| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| -|axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| +|`column`|The column to be retrieved.| +|`steps`| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| +|`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| ## Return value diff --git a/query-languages/dax/nextday-function-dax.md b/query-languages/dax/nextday-function-dax.md index b8435d786..8ed769f6a 100644 --- a/query-languages/dax/nextday-function-dax.md +++ b/query-languages/dax/nextday-function-dax.md @@ -6,7 +6,7 @@ title: "NEXTDAY function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the next day, based on the first date specified in the **dates** column in the current context. +Returns a table that contains a column of all dates from the next day, based on the first date specified in the `dates` column in the current context. ## Syntax @@ -18,7 +18,7 @@ NEXTDAY() |Term|Definition| |--------|--------------| -|dates|A column containing dates.| +|`dates`|A column containing dates.| ## Return value @@ -26,9 +26,9 @@ A table containing a single column of date values. ## Remarks -- This function returns all dates from the next day to the first date in the input parameter. For example, if the first date in the **dates** argument refers to June 10, 2009; then this function returns all dates equal to June 11, 2009. +- This function returns all dates from the next day to the first date in the input parameter. For example, if the first date in the `dates` argument refers to June 10, 2009; then this function returns all dates equal to June 11, 2009. -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/nextmonth-function-dax.md b/query-languages/dax/nextmonth-function-dax.md index 8932d99ab..2ba4c7820 100644 --- a/query-languages/dax/nextmonth-function-dax.md +++ b/query-languages/dax/nextmonth-function-dax.md @@ -6,7 +6,7 @@ title: "NEXTMONTH function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the next month, based on the first date in the **dates** column in the current context. +Returns a table that contains a column of all dates from the next month, based on the first date in the `dates` column in the current context. ## Syntax @@ -18,7 +18,7 @@ NEXTMONTH() |Term|Definition| |--------|--------------| -|dates|A column containing dates.| +|`dates`|A column containing dates.| ## Return value @@ -26,9 +26,9 @@ A table containing a single column of date values. ## Remarks -- This function returns all dates from the next day to the first date in the input parameter. For example, if the first date in the **dates** argument refers to June 10, 2009; then this function returns all dates for the month of July, 2009. +- This function returns all dates from the next day to the first date in the input parameter. For example, if the first date in the `dates` argument refers to June 10, 2009; then this function returns all dates for the month of July, 2009. -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/nextquarter-function-dax.md b/query-languages/dax/nextquarter-function-dax.md index bf43161a4..939cc7dff 100644 --- a/query-languages/dax/nextquarter-function-dax.md +++ b/query-languages/dax/nextquarter-function-dax.md @@ -6,7 +6,7 @@ title: "NEXTQUARTER function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates in the next quarter, based on the first date specified in the **dates** column, in the current context. +Returns a table that contains a column of all dates in the next quarter, based on the first date specified in the `dates` column, in the current context. ## Syntax @@ -18,7 +18,7 @@ NEXTQUARTER() |Term|Definition| |--------|--------------| -|dates|A column containing dates.| +|`dates`|A column containing dates.| ## Return value @@ -26,9 +26,9 @@ A table containing a single column of date values. ## Remarks -- This function returns all dates in the next quarter, based on the first date in the input parameter. For example, if the first date in the **dates** column refers to June 10, 2009, this function returns all dates for the quarter July to September, 2009. +- This function returns all dates in the next quarter, based on the first date in the input parameter. For example, if the first date in the `dates` column refers to June 10, 2009, this function returns all dates for the quarter July to September, 2009. -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/nextyear-function-dax.md b/query-languages/dax/nextyear-function-dax.md index 22b6a4847..710519f9e 100644 --- a/query-languages/dax/nextyear-function-dax.md +++ b/query-languages/dax/nextyear-function-dax.md @@ -6,7 +6,7 @@ title: "NEXTYEAR function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates in the next year, based on the first date in the **dates** column, in the current context. +Returns a table that contains a column of all dates in the next year, based on the first date in the `dates` column, in the current context. ## Syntax @@ -18,8 +18,8 @@ NEXTYEAR([,]) |Term|Definition| |--------|--------------| -|dates|A column containing dates.| -|year_end_date|(optional) A literal string with a date that defines the year-end date. The default is December 31.| +|`dates`|A column containing dates.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| ## Return value @@ -27,16 +27,16 @@ A table containing a single column of date values. ## Remarks -- This function returns all dates in the next year, based on the first date in the input column. For example, if the first date in the **dates** column refers to the year 2007, this function returns all dates for the year 2008. +- This function returns all dates in the next year, based on the first date in the input column. For example, if the first date in the `dates` column refers to the year 2007, this function returns all dates for the year 2008. -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- The **year_end_date** parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/nominal-function-dax.md b/query-languages/dax/nominal-function-dax.md index afc36801a..37bba3ea3 100644 --- a/query-languages/dax/nominal-function-dax.md +++ b/query-languages/dax/nominal-function-dax.md @@ -20,8 +20,8 @@ NOMINAL(, ) |Term|Definition| |--------|--------------| -|effect_rate|The effective interest rate.| -|npery|The number of compounding periods per year.| +|`effect_rate`|The effective interest rate.| +|`npery`|The number of compounding periods per year.| ## Return Value diff --git a/query-languages/dax/nonvisual-function-dax.md b/query-languages/dax/nonvisual-function-dax.md index 04cec2280..a325f0dd4 100644 --- a/query-languages/dax/nonvisual-function-dax.md +++ b/query-languages/dax/nonvisual-function-dax.md @@ -18,7 +18,7 @@ NONVISUAL() |Term|Definition| |--------|--------------| -|expression|Any DAX expression that returns a single value (not a table).| +|`expression`|Any DAX expression that returns a single value (not a table).| ## Return value diff --git a/query-languages/dax/norm-dist-function-dax.md b/query-languages/dax/norm-dist-function-dax.md index 9db31c585..82c427e39 100644 --- a/query-languages/dax/norm-dist-function-dax.md +++ b/query-languages/dax/norm-dist-function-dax.md @@ -6,7 +6,7 @@ title: "NORM.DIST function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the normal distribution for the specified mean and standard deviation. +Returns the normal distribution for the specified mean and standard deviation. ## Syntax @@ -18,10 +18,10 @@ NORM.DIST(X, Mean, Standard_dev, Cumulative) |Term|Definition| |--------|--------------| -|X|The value for which you want the distribution.| -|Mean |The arithmetic mean of the distribution.| -|Standard_dev|The standard deviation of the distribution.| -|Cumulative*|A logical value that determines the form of the function. If cumulative is TRUE, NORM.DIST returns the cumulative distribution function; if FALSE, it returns the probability density function.| +|`X`|The value for which you want the distribution.| +|`Mean`|The arithmetic mean of the distribution.| +|`Standard_dev`|The standard deviation of the distribution.| +|`Cumulative*`|A logical value that determines the form of the function. If cumulative is `TRUE`, NORM.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| ## Return value @@ -43,7 +43,6 @@ Returns |---------| |0.908788780274132 | - ## Related content [NORM.S.DIST function](norm-s-dist-function-dax.md) diff --git a/query-languages/dax/norm-inv-function-dax.md b/query-languages/dax/norm-inv-function-dax.md index 3ad42b1f9..73159824e 100644 --- a/query-languages/dax/norm-inv-function-dax.md +++ b/query-languages/dax/norm-inv-function-dax.md @@ -19,9 +19,9 @@ NORM.INV(Probability, Mean, Standard_dev) |Term|Definition| |--------|--------------| -|Probability|A probability corresponding to the normal distribution.| -|Mean|The arithmetic mean of the distribution.| -|Standard_dev|The standard deviation of the distribution.| +|`Probability`|A probability corresponding to the normal distribution.| +|`Mean`|The arithmetic mean of the distribution.| +|`Standard_dev`|The standard deviation of the distribution.| ## Return value diff --git a/query-languages/dax/norm-s-dist-function-dax.md b/query-languages/dax/norm-s-dist-function-dax.md index 9b921617b..0c6def10f 100644 --- a/query-languages/dax/norm-s-dist-function-dax.md +++ b/query-languages/dax/norm-s-dist-function-dax.md @@ -18,8 +18,8 @@ NORM.S.DIST(Z, Cumulative) |Term|Definition| |--------|--------------| -|Z|The value for which you want the distribution.| -|Cumulative|Cumulative is a logical value that determines the form of the function. If cumulative is TRUE, NORM.S.DIST returns the cumulative distribution function; if FALSE, it returns the probability density function.| +|`Z`|The value for which you want the distribution.| +|`Cumulative`|Cumulative is a logical value that determines the form of the function. If cumulative is `TRUE`, NORM.S.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| ## Return value diff --git a/query-languages/dax/norm-s-inv-function-dax.md b/query-languages/dax/norm-s-inv-function-dax.md index 3f77d9745..8e1107416 100644 --- a/query-languages/dax/norm-s-inv-function-dax.md +++ b/query-languages/dax/norm-s-inv-function-dax.md @@ -18,7 +18,7 @@ NORM.S.INV(Probability) |Term|Definition| |--------|--------------| -|Probability|A probability corresponding to the normal distribution.| +|`Probability`|A probability corresponding to the normal distribution.| ## Return value diff --git a/query-languages/dax/not-function-dax.md b/query-languages/dax/not-function-dax.md index 82a89233e..814981efc 100644 --- a/query-languages/dax/not-function-dax.md +++ b/query-languages/dax/not-function-dax.md @@ -6,7 +6,7 @@ title: "NOT function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Changes FALSE to TRUE, or TRUE to FALSE. +Changes `FALSE` to `TRUE`, or `TRUE` to `FALSE`. ## Syntax @@ -18,11 +18,11 @@ NOT() |Term|Definition| |--------|--------------| -|logical|A value or expression that can be evaluated to TRUE or FALSE.| +|`logical`|A value or expression that can be evaluated to `TRUE` or `FALSE`.| ## Return value -TRUE OR FALSE. +`TRUE` OR `FALSE`. ## Example @@ -36,7 +36,7 @@ Now create a new calculated column, **Calculated Column2**, and type the followi = NOT([CalculatedColumn1]) ``` -For each row in **Calculated Column1**, the values "true" and "false" are interpreted as the logical values TRUE or FALSE, and the NOT function returns the logical opposite of that value. +For each row in **Calculated Column1**, the values "true" and "false" are interpreted as the logical values `TRUE` or `FALSE`, and the NOT function returns the logical opposite of that value. ## Related content diff --git a/query-languages/dax/now-function-dax.md b/query-languages/dax/now-function-dax.md index b84203e50..52def9839 100644 --- a/query-languages/dax/now-function-dax.md +++ b/query-languages/dax/now-function-dax.md @@ -6,7 +6,7 @@ title: "NOW function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the current date and time in **datetime** format. +Returns the current date and time in `datetime` format. The NOW function is useful when you need to display the current date and time on a worksheet or calculate a value based on the current date and time, and have that value updated each time you open the worksheet. @@ -18,15 +18,15 @@ NOW() ## Return value -A date (**datetime)**. +A date (`datetime)`. ## Remarks -- The result of the NOW function changes only when the column that contains the formula is refreshed. It is not updated continuously. +- The result of the `NOW` function changes only when the column that contains the formula is refreshed. It is not updated continuously. -- In the Power BI Service, the result of the NOW function is always in the UTC timezone. +- In the Power BI Service, the result of the `NOW` function is always in the UTC timezone. -- The TODAY function returns the same date but is not precise with regard to time; the time returned is always 12:00:00 AM and only the date is updated. +- The `TODAY` function returns the same date but is not precise with regard to time; the time returned is always 12:00:00 AM and only the date is updated. ## Example diff --git a/query-languages/dax/nper-function-dax.md b/query-languages/dax/nper-function-dax.md index 67d952956..b2cdea251 100644 --- a/query-languages/dax/nper-function-dax.md +++ b/query-languages/dax/nper-function-dax.md @@ -20,13 +20,13 @@ NPER(, , [, [, ]]) |Term|Definition| |--------|--------------| -|rate|The interest rate per period.| -|pmt|The payment made each period; it cannot change over the life of the annuity. Typically, pmt contains principal and interest but no other fees or taxes.| -|pv|The present value, or the lump-sum amount that a series of future payments is worth right now.| -|fv|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK.| -|type|(Optional) The number 0 or 1 and indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`rate`|The interest rate per period.| +|`pmt`|The payment made each period; it cannot change over the life of the annuity. Typically, pmt contains principal and interest but no other fees or taxes.| +|`pv`|The present value, or the lump-sum amount that a series of future payments is worth right now.| +|`fv`|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK.| +|`type`|(Optional) The number 0 or 1 and indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **type** parameter accepts the following values: +The `type` parameter accepts the following values: | **Set type equal to** | **If payments are due** | | --------------------- | ------------------------------ | diff --git a/query-languages/dax/odd-function-dax.md b/query-languages/dax/odd-function-dax.md index ef18d55aa..b05a9c1ca 100644 --- a/query-languages/dax/odd-function-dax.md +++ b/query-languages/dax/odd-function-dax.md @@ -18,7 +18,7 @@ ODD(number) |Term|Definition| |--------|--------------| -|number|Required. The value to round.| +|`number`|Required. The value to round.| ## Return value @@ -26,7 +26,7 @@ Returns number rounded up to the nearest odd integer. ## Remarks -- If number is nonnumeric, ODD returns the #VALUE! error value. +- If `number` is nonnumeric, ODD returns the `#VALUE!` error value. - Regardless of the sign of number, a value is rounded up when adjusted away from zero. If number is an odd integer, no rounding occurs. @@ -36,8 +36,8 @@ Returns number rounded up to the nearest odd integer. |Formula|Description|Result| |-----------|---------------|----------| -|= ODD(1.5)|Rounds 1.5 up to the nearest odd integer.|3| -|= ODD(3)|Rounds 3 up to the nearest odd integer.|3| -|= ODD(2)|Rounds 2 up to the nearest odd integer.|3| -|= ODD(-1)|Rounds -1 up to the nearest odd integer.|-1| -|= ODD(-2)|Rounds -2 up (away from 0) to the nearest odd integer.|-3| +|`= ODD(1.5)`|Rounds 1.5 up to the nearest odd integer.|3| +|`= ODD(3)`|Rounds 3 up to the nearest odd integer.|3| +|`= ODD(2)`|Rounds 2 up to the nearest odd integer.|3| +|`= ODD(-1)`|Rounds -1 up to the nearest odd integer.|-1| +|`= ODD(-2)`|Rounds -2 up (away from 0) to the nearest odd integer.|-3| diff --git a/query-languages/dax/oddfprice-function-dax.md b/query-languages/dax/oddfprice-function-dax.md index 4b30b2dc7..66d864fa4 100644 --- a/query-languages/dax/oddfprice-function-dax.md +++ b/query-languages/dax/oddfprice-function-dax.md @@ -20,19 +20,19 @@ ODDFPRICE(, , , , , , , , , , , , first_coupon > settlement > issue is not satisfied. - - rate < 0. - - pr ≤ 0. - - redemption ≤ 0. - - frequency is any number other than 1, 2, or 4. - - basis < 0 or basis > 4. + - `settlement`, `maturity`, `issue`, or `first_coupon` is not a valid date. + - `maturity` > `first_coupon` > `settlement` > `issue` is not satisfied. + - `rate` < 0. + - `pr` ≤ 0. + - `redemption` ≤ 0. + - `frequency` is any number other than 1, 2, or 4. + - `basis` < 0 or `basis` > 4. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/oddlprice-function-dax.md b/query-languages/dax/oddlprice-function-dax.md index 2d2070625..c212fa27e 100644 --- a/query-languages/dax/oddlprice-function-dax.md +++ b/query-languages/dax/oddlprice-function-dax.md @@ -20,18 +20,18 @@ ODDLPRICE(, , , , , |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|last_interest|The security's last coupon date.| -|rate|The security's interest rate.| -|yld|The security's annual yield.| -|redemption|The security's redemption value per \\$100 face value.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| - -The **basis** parameter accepts the following values: - -| **Basis** | **Day count basis** | +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`last_interest`|The security's last coupon date.| +|`rate`|The security's interest rate.| +|`yld`|The security's annual yield.| +|`redemption`|The security's redemption value per \\$100 face value.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| + +The `basis` parameter accepts the following values: + +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/oddlyield-function-dax.md b/query-languages/dax/oddlyield-function-dax.md index 224b670e6..2d108a595 100644 --- a/query-languages/dax/oddlyield-function-dax.md +++ b/query-languages/dax/oddlyield-function-dax.md @@ -20,18 +20,18 @@ ODDLYIELD(, , , , , , |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|last_interest|The security's last coupon date.| -|rate|The security's interest rate.| -|pr|The security's price.| -|redemption|The security's redemption value per \\$100 face value.| -|frequency|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| - -The **basis** parameter accepts the following values: - -| **Basis** | **Day count basis** | +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`last_interest`|The security's last coupon date.| +|`rate`|The security's interest rate.| +|`pr`|The security's price.| +|`redemption`|The security's redemption value per \\$100 face value.| +|`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| + +The `basis` parameter accepts the following values: + +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 03d13d59f..529a7e981 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -19,14 +19,14 @@ OFFSET ( [, or ][, ][, ][, If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. -|orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| -|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | -|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`delta`|The number of rows before (negative value) or after (positive value) the current row from which to obtain the data. It can be any DAX expression that returns a scalar value. | +|`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. +|`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value diff --git a/query-languages/dax/openingbalancemonth-function-dax.md b/query-languages/dax/openingbalancemonth-function-dax.md index 9596b5fb9..446c03e2e 100644 --- a/query-languages/dax/openingbalancemonth-function-dax.md +++ b/query-languages/dax/openingbalancemonth-function-dax.md @@ -6,7 +6,7 @@ title: "OPENINGBALANCEMONTH function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the **expression** at the date corresponding to the end of the previous month in the current context. +Evaluates the `expression` at the date corresponding to the end of the previous month in the current context. ## Syntax @@ -18,24 +18,24 @@ OPENINGBALANCEMONTH(,[,]) |Term|Definition| |--------|--------------| -|expression|An expression that returns a scalar value.| -|dates|A column that contains dates.| -|filter|(optional) An expression that specifies a filter to apply to the current context.| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| ## Return value -A scalar value that represents the **expression** evaluated at the first date of the month in the current context. +A scalar value that represents the `expression` evaluated at the first date of the month in the current context. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- The **filter** expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). +- The `filter` expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/openingbalancequarter-function-dax.md b/query-languages/dax/openingbalancequarter-function-dax.md index a3b849494..57e6a19b2 100644 --- a/query-languages/dax/openingbalancequarter-function-dax.md +++ b/query-languages/dax/openingbalancequarter-function-dax.md @@ -6,7 +6,7 @@ title: "OPENINGBALANCEQUARTER function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the **expression** at the date corresponding to the end of the previous quarter in the current context. +Evaluates the `expression` at the date corresponding to the end of the previous quarter in the current context. ## Syntax @@ -18,24 +18,24 @@ OPENINGBALANCEQUARTER(,[,]) |Term|Definition| |--------|--------------| -|expression|An expression that returns a scalar value.| -|dates|A column that contains dates.| -|filte*|(optional) An expression that specifies a filter to apply to the current context.| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| ## Return value -A scalar value that represents the **expression** evaluated at the first date of the quarter in the current context. +A scalar value that represents the `expression` evaluated at the first date of the quarter in the current context. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- The **filter** expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). +- The `filter` expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/openingbalanceyear-function-dax.md b/query-languages/dax/openingbalanceyear-function-dax.md index f7fa73d36..9a62f6c48 100644 --- a/query-languages/dax/openingbalanceyear-function-dax.md +++ b/query-languages/dax/openingbalanceyear-function-dax.md @@ -6,7 +6,7 @@ title: "OPENINGBALANCEYEAR function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the **expression** at the date corresponding to the end of the previous year in the current context. +Evaluates the `expression` at the date corresponding to the end of the previous year in the current context. ## Syntax @@ -18,27 +18,27 @@ OPENINGBALANCEYEAR(,[,][,]) |Term|Definition| |--------|--------------| -|expression|An expression that returns a scalar value.| -|dates|A column that contains dates.| -|filter|(optional) An expression that specifies a filter to apply to the current context.| -|year_end_date|(optional) A literal string with a date that defines the year-end date. The default is December 31.| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| ## Return value -A scalar value that represents the **expression** evaluated at the first date of the year in the current context. +A scalar value that represents the `expression` evaluated at the first date of the year in the current context. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- The **filter** expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). +- The `filter` expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). -- The **year_end_date** parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/or-function-dax.md b/query-languages/dax/or-function-dax.md index ba6a33201..86b68f06b 100644 --- a/query-languages/dax/or-function-dax.md +++ b/query-languages/dax/or-function-dax.md @@ -7,7 +7,7 @@ title: "OR function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether one of the arguments is TRUE to return TRUE. The function returns FALSE if both arguments are FALSE. +Checks whether one of the arguments is `TRUE` to return `TRUE`. The function returns `FALSE` if both arguments are `FALSE`. ## Syntax @@ -19,17 +19,17 @@ OR(,) |Term|Definition| |--------|--------------| -|logical_1, logical_2|The logical values you want to test.| +|`logical_1, logical_2`|The logical values you want to test.| ## Return value -A Boolean value. The value is TRUE if any of the two arguments is TRUE; the value is FALSE if both the arguments are FALSE. +A Boolean value. The value is `TRUE` if any of the two arguments is `TRUE`; the value is FALSE if both the arguments are `FALSE`. ## Remarks -- The **OR** function in DAX accepts only two (2) arguments. If you need to perform an OR operation on multiple expressions, you can create a series of calculations or, better, use the OR operator (**||**) to join all of them in a simpler expression. +- The `OR` function in DAX accepts only two (2) arguments. If you need to perform an OR operation on multiple expressions, you can create a series of calculations or, better, use the OR operator (**||**) to join all of them in a simpler expression. -- The function evaluates the arguments until the first TRUE argument, then returns TRUE. +- The function evaluates the arguments until the first `TRUE` argument, then returns `TRUE`. ## Example diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index 29aab5c28..c9e88c2f8 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -19,8 +19,8 @@ ORDERBY ( [[, [, [, ]] … |Term|Definition| |--------|--------------| -|orderBy_expression|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| -|order|(Optional) A two-part value of the form "\ [\]".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
**DESC**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of \.
**ASC**. Alternative value: **1**/**TRUE**. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\ part is optional. It specifies how blanks are ordered. Valid values include:
**BLANKS DEFAULT**. This is the default value. The behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
**BLANKS FIRST**. Blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
**BLANKS LAST**. Blanks are always ordered on the end, regardless of ascending or descending sorting order.| +|`orderBy_expression`|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| +|`order`|(Optional) A two-part value of the form "\ [\]".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
`DESC`. Alternative value: `0`(zero)/`FALSE`. Sorts in descending order of values of \.
`ASC`. Alternative value: `1`/`TRUE`. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\ part is optional. It specifies how blanks are ordered. Valid values include:
`BLANKS DEFAULT`. This is the default value. The behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
`BLANKS FIRST`. Blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
`BLANKS LAST`. Blanks are always ordered on the end, regardless of ascending or descending sorting order.| ## Return value diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index 1eddc2d2f..ad828efc6 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -16,9 +16,9 @@ Introduces a statement that defines sort order of query results returned by an E |Term|Definition| |--------|--------------| -|expression|Any DAX expression that returns a single scalar value.| -|ASC|(default) Ascending sort order.| -|DESC|Descending sort order.| +|`expression`|Any DAX expression that returns a single scalar value.| +|`ASC`|(default) Ascending sort order.| +|`DESC`|Descending sort order.| ## Return value diff --git a/query-languages/dax/parallelperiod-function-dax.md b/query-languages/dax/parallelperiod-function-dax.md index 35e2c4911..d771e2397 100644 --- a/query-languages/dax/parallelperiod-function-dax.md +++ b/query-languages/dax/parallelperiod-function-dax.md @@ -6,7 +6,7 @@ title: "PARALLELPERIOD function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of dates that represents a period parallel to the dates in the specified **dates** column, in the current context, with the dates shifted a number of intervals either forward in time or back in time. +Returns a table that contains a column of dates that represents a period parallel to the dates in the specified `dates` column, in the current context, with the dates shifted a number of intervals either forward in time or back in time. ## Syntax @@ -18,9 +18,9 @@ PARALLELPERIOD(,,) |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| -|number_of_intervals|An integer that specifies the number of intervals to add to or subtract from the dates.| -|interval|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`.| +|`dates`|A column that contains dates.| +|`number_of_intervals`|An integer that specifies the number of intervals to add to or subtract from the dates.| +|`interval`|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`.| ## Return value @@ -28,18 +28,18 @@ A table containing a single column of date values. ## Remarks -- This function takes the current set of dates in the column specified by **dates**, shifts the first date and the last date the specified number of intervals, and then returns all contiguous dates between the two shifted dates. If the interval is a partial range of month, quarter, or year then any partial months in the result are also filled out to complete the entire interval. +- This function takes the current set of dates in the column specified by `dates`, shifts the first date and the last date the specified number of intervals, and then returns all contiguous dates between the two shifted dates. If the interval is a partial range of month, quarter, or year then any partial months in the result are also filled out to complete the entire interval. -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column, - A table expression that returns a single column of date/time values, - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- If the number specified for **number_of_intervals** is positive, the dates in **dates** are moved forward in time; if the number is negative, the dates in **dates** are shifted back in time. +- If the number specified for `number_of_intervals` is positive, the dates in `dates` are moved forward in time; if the number is negative, the dates in `dates` are shifted back in time. -- The **interval** parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month` should be spelled in full when using them. +- The `interval` parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month` should be spelled in full when using them. - The result table includes only dates that appear in the values of the underlying table column. diff --git a/query-languages/dax/parent-and-child-functions-dax.md b/query-languages/dax/parent-and-child-functions-dax.md index 03c5407af..683877f18 100644 --- a/query-languages/dax/parent-and-child-functions-dax.md +++ b/query-languages/dax/parent-and-child-functions-dax.md @@ -11,7 +11,7 @@ These functions manage data that is presented as parent/child hierarchies. To le |Function |Description | |---------|---------| |[PATH](path-function-dax.md) | Returns a delimited text string with the identifiers of all the parents of the current identifier. | -|[PATHCONTAINS](pathcontains-function-dax.md) | Returns TRUE if the specified *item* exists within the specified *path*. | -|[PATHITEM](pathitem-function-dax.md) | Returns the item at the specified *position* from a string resulting from evaluation of a PATH function. | -|[PATHITEMREVERSE](pathitemreverse-function-dax.md) | Returns the item at the specified *position* from a string resulting from evaluation of a PATH function. | +|[PATHCONTAINS](pathcontains-function-dax.md) | Returns `TRUE` if the specified `item` exists within the specified `path`. | +|[PATHITEM](pathitem-function-dax.md) | Returns the item at the specified `position` from a string resulting from evaluation of a PATH function. | +|[PATHITEMREVERSE](pathitemreverse-function-dax.md) | Returns the item at the specified `position` from a string resulting from evaluation of a PATH function. | |[PATHLENGTH](pathlength-function-dax.md) | Returns the number of parents to the specified item in a given PATH result, including self. | diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index ff89d95a6..382fd24b7 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -19,7 +19,7 @@ PARTITIONBY ( [[, partitionBy_columnName [, …]]] ) |Term|Definition| |--------|--------------| -|partitionBy_columnName| (Optional) The name of an existing column to be used to partition the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| +|`partitionBy_columnName`| (Optional) The name of an existing column to be used to partition the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| ## Return value diff --git a/query-languages/dax/path-function-dax.md b/query-languages/dax/path-function-dax.md index 0682169a4..52b0d9c82 100644 --- a/query-languages/dax/path-function-dax.md +++ b/query-languages/dax/path-function-dax.md @@ -18,8 +18,8 @@ PATH(, ) |Term|Definition| |--------|--------------| -| ID_columnName | The name of an existing column containing the unique identifier for rows in the table. This cannot be an expression. The data type of the value in *ID_columnName* must be text or integer, and must also be the same data type as the column referenced in *parent_columnName*.| -| parent_columnName | The name of an existing column containing the unique identifier for the parent of the current row. This cannot be an expression. The data type of the value in *parent_columnName* data type must be text or integer, and must be the same data type as the value in *ID_columnName*. | +|`ID_columnName`| The name of an existing column containing the unique identifier for rows in the table. This cannot be an expression. The data type of the value in `ID_columnName` must be text or integer, and must also be the same data type as the column referenced in `parent_columnName`.| +|`parent_columnName`| The name of an existing column containing the unique identifier for the parent of the current row. This cannot be an expression. The data type of the value in `parent_columnName` data type must be text or integer, and must be the same data type as the value in `ID_columnName`. | ## Return value @@ -30,13 +30,13 @@ A delimited text string containing the identifiers of all the parents to the cur - This function is used in tables that have some kind of internal hierarchy, to return the items that are related to the current row value. For example, in an Employees table that contains employees, the managers of employees, and the managers of the managers, you can return the path that connects an employee to his or her manager. - The path is not constrained to a single level of parent-child relationships; it can return related rows that are several levels up from the specified starting row. - - The delimiter used to separate the ascendants is the vertical bar, '|'. - - The values in *ID_columnName* and *parent_columnName* must have the same data type, text or integer. - - Values in *parent_columnName* must be present in *ID_columnName*. That is, you cannot look up a parent if there is no value at the child level. - - If *parent_columnName* is BLANK then PATH() returns *ID_columnName* value. In other words, if you look for the manager of an employee but the *parent_columnName* column has no data, the PATH function returns just the employee ID. - - If *ID_columnName* has duplicates and *parent_columnName* is the same for those duplicates then PATH() returns the common *parent_columnName* value; however, if *parent_columnName* value is different for those duplicates then PATH() returns an error. In other words, if you have two listings for the same employee ID and they have the same manager ID, the PATH function returns the ID for that manager. However, if there are two identical employee IDs that have different manager IDs, the PATH function returns an error. - - If *ID_columnName* is BLANK then PATH() returns BLANK. - - If *ID_columnName* contains a vertical bar '|' then PATH() returns an error. + - The delimiter used to separate the ascendants is the vertical bar, `|`. + - The values in `ID_columnName` and `parent_columnName` must have the same data type, text or integer. + - Values in `parent_columnName` must be present in `ID_columnName`. That is, you cannot look up a parent if there is no value at the child level. + - If `parent_columnName` is `BLANK` then `PATH()` returns `ID_columnName` value. In other words, if you look for the manager of an employee but the `parent_columnName` column has no data, the PATH function returns just the employee ID. + - If `ID_columnName` has duplicates and `parent_columnName` is the same for those duplicates then `PATH()` returns the common `parent_columnName` value; however, if `parent_columnName` value is different for those duplicates then `PATH()` returns an error. In other words, if you have two listings for the same employee ID and they have the same manager ID, the PATH function returns the ID for that manager. However, if there are two identical employee IDs that have different manager IDs, the PATH function returns an error. + - If `ID_columnName` is `BLANK` then `PATH()` returns `BLANK`. + - If `ID_columnName` contains a vertical bar `|` then `PATH()` returns an error. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/pathcontains-function-dax.md b/query-languages/dax/pathcontains-function-dax.md index 8c7ab38d6..780be7e36 100644 --- a/query-languages/dax/pathcontains-function-dax.md +++ b/query-languages/dax/pathcontains-function-dax.md @@ -6,7 +6,7 @@ title: "PATHCONTAINS function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns **TRUE** if the specified *item* exists within the specified *path*. +Returns `TRUE` if the specified `item` exists within the specified `path`. ## Syntax @@ -18,16 +18,16 @@ PATHCONTAINS(, ) |Term|Definition| |--------|--------------| -| path | A string created as the result of evaluating a PATH function. | -| item | A text expression to look for in the path result. | +|`path`| A string created as the result of evaluating a PATH function. | +|`item`| A text expression to look for in the path result. | ## Return value -A value of **TRUE** if *item* exists in *path*; otherwise **FALSE**. +A value of `TRUE` if `item` exists in `path`; otherwise `FALSE`. ## Remarks -- If *item* is an integer number it is converted to text and then the function is evaluated. If conversion fails then the function returns an error. +- If `item` is an integer number it is converted to text and then the function is evaluated. If conversion fails then the function returns an error. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/pathitem-function-dax.md b/query-languages/dax/pathitem-function-dax.md index d1163ce76..daa25a0cf 100644 --- a/query-languages/dax/pathitem-function-dax.md +++ b/query-languages/dax/pathitem-function-dax.md @@ -5,7 +5,7 @@ title: "PATHITEM function (DAX) | Microsoft Docs" # PATHITEM [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the item at the specified *position* from a string resulting from evaluation of a PATH function. Positions are counted from left to right. +Returns the item at the specified `position` from a string resulting from evaluation of a PATH function. Positions are counted from left to right. ## Syntax @@ -17,16 +17,16 @@ PATHITEM(, [, ]) |Term|Definition| |--------|--------------| -| path | A text string in the form of the results of a PATH function. | -| position | An integer expression with the position of the item to be returned. | -| type | (Optional)An enumeration that defines the data type of the result: | +|`path`| A text string in the form of the results of a PATH function. | +|`position`| An integer expression with the position of the item to be returned. | +|`type`| (Optional)An enumeration that defines the data type of the result: | #### type enumeration |Enumeration|Alternate Enumeration|Description| |-----|-----|-----| -|TEXT|0|Results are returned with the data type text. (default).| -|INTEGER|1|Results are returned as integers.| +|`TEXT`|0|Results are returned with the data type text. (default).| +|`INTEGER`|1|Results are returned as integers.| ## Return value @@ -36,9 +36,9 @@ The identifier returned by the PATH function at the specified position in the li - This function can be used to return a specific level from a hierarchy returned by a PATH function. For example, you could return just the skip-level managers for all employees. -- If you specify a number for *position* that is less than one (1) or greater than the number of elements in *path*, the PATHITEM function returns BLANK +- If you specify a number for `position` that is less than one (1) or greater than the number of elements in `path`, the PATHITEM function returns BLANK -- If *type* is not a valid enumeration element an error is returned. +- If `type` is not a valid enumeration element an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/pathitemreverse-function-dax.md b/query-languages/dax/pathitemreverse-function-dax.md index 45f1c21bb..9972cd0af 100644 --- a/query-languages/dax/pathitemreverse-function-dax.md +++ b/query-languages/dax/pathitemreverse-function-dax.md @@ -6,7 +6,7 @@ title: "PATHITEMREVERSE function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the item at the specified *position* from a string resulting from evaluation of a PATH function. Positions are counted backwards from right to left. +Returns the item at the specified `position` from a string resulting from evaluation of a PATH function. Positions are counted backwards from right to left. ## Syntax @@ -18,16 +18,16 @@ PATHITEMREVERSE(, [, ]) |Term|Definition| |--------|--------------| -| path | A text string resulting from evaluation of a PATH function. | -| position | An integer expression with the position of the item to be returned. Position is counted backwards from right to left. | -| type | (Optional)An enumeration that defines the data type of the result: | +|`path`| A text string resulting from evaluation of a PATH function. | +|`position`| An integer expression with the position of the item to be returned. Position is counted backwards from right to left. | +|`type`| (Optional)An enumeration that defines the data type of the result: | #### type enumeration |Enumeration|Alternate Enumeration|Description| |-----|-----|-----| -|TEXT|0|Results are returned with the data type text. (default).| -|INTEGER|1|Results are returned as integers.| +|`TEXT`|0|Results are returned with the data type text. (default).| +|`INTEGER`|1|Results are returned as integers.| ## Return value @@ -39,9 +39,9 @@ The n-position ascendant in the given path, counting from current to the oldest. - This function reverses the standard order of the hierarchy, so that closest items are listed first, For example, if the PATh function returns a list of managers above an employee in a hierarchy, the PATHITEMREVERSE function returns the employee's immediate manager in position 2 because position 1 contains the employee's id. -- If the number specified for *position* is less than one (1) or greater than the number of elements in *path*, the PATHITEM function returns BLANK. +- If the number specified for `position` is less than one (1) or greater than the number of elements in `path`, the PATHITEM function returns BLANK. -- If *type* is not a valid enumeration element an error is returned. +- If `type` is not a valid enumeration element an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/pathlength-function-dax.md b/query-languages/dax/pathlength-function-dax.md index a884cc693..787321454 100644 --- a/query-languages/dax/pathlength-function-dax.md +++ b/query-languages/dax/pathlength-function-dax.md @@ -17,7 +17,7 @@ PATHLENGTH() |Term|Definition| |--------|--------------| -| path | A text expression resulting from evaluation of a PATH function. | +|`path`| A text expression resulting from evaluation of a PATH function. | ## Return value diff --git a/query-languages/dax/pduration-function-dax.md b/query-languages/dax/pduration-function-dax.md index 1a8835461..8f0744d0c 100644 --- a/query-languages/dax/pduration-function-dax.md +++ b/query-languages/dax/pduration-function-dax.md @@ -20,9 +20,9 @@ PDURATION(, , ) |Term|Definition| |--------|--------------| -|rate|The interest rate per period.| -|pv|The present value of the investment.| -|fv|The desired future value of the investment.| +|`rate`|The interest rate per period.| +|`pv`|The present value of the investment.| +|`fv`|The desired future value of the investment.| ## Return Value diff --git a/query-languages/dax/percentile-exc-function-dax.md b/query-languages/dax/percentile-exc-function-dax.md index 045affc08..da30b1589 100644 --- a/query-languages/dax/percentile-exc-function-dax.md +++ b/query-languages/dax/percentile-exc-function-dax.md @@ -20,8 +20,8 @@ PERCENTILE.EXC(, ) |Term|Definition| |--------|--------------| -|column|A column containing the values that define relative standing.| -|k|The percentile value in the range 0..1, exclusive.| +|`column`|A column containing the values that define relative standing.| +|`k`|The percentile value in the range 0..1, exclusive.| ## Return value diff --git a/query-languages/dax/percentile-inc-function-dax.md b/query-languages/dax/percentile-inc-function-dax.md index e3b64cdf0..697dc4614 100644 --- a/query-languages/dax/percentile-inc-function-dax.md +++ b/query-languages/dax/percentile-inc-function-dax.md @@ -20,8 +20,8 @@ PERCENTILE.INC(, ) |Term|Definition| |--------|--------------| -|column|A column containing the values that define relative standing.| -|k|The percentile value in the range 0..1, inclusive.| +|`column`|A column containing the values that define relative standing.| +|`k`|The percentile value in the range 0..1, inclusive.| ## Return value diff --git a/query-languages/dax/percentilex-exc-function-dax.md b/query-languages/dax/percentilex-exc-function-dax.md index a4e2b6090..882286443 100644 --- a/query-languages/dax/percentilex-exc-function-dax.md +++ b/query-languages/dax/percentilex-exc-function-dax.md @@ -20,9 +20,9 @@ PERCENTILEX.EXC(
, , k) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expression will be evaluated.| -|expression|The expression to be evaluated for each row of the table.| -|k|The desired percentile value in the range 0 to 1 exclusive.| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| +|`k`|The desired percentile value in the range 0 to 1 exclusive.| ## Return value diff --git a/query-languages/dax/percentilex-inc-function-dax.md b/query-languages/dax/percentilex-inc-function-dax.md index 3a6739ec7..590682b5b 100644 --- a/query-languages/dax/percentilex-inc-function-dax.md +++ b/query-languages/dax/percentilex-inc-function-dax.md @@ -20,9 +20,9 @@ PERCENTILEX.INC(
, ;, k) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expression will be evaluated.| -|expression|The expression to be evaluated for each row of the table.| -|k|The desired percentile value in the range 0 to 1 inclusive.| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| +|`k`|The desired percentile value in the range 0 to 1 inclusive.| ## Return value diff --git a/query-languages/dax/permut-function-dax.md b/query-languages/dax/permut-function-dax.md index 4ec608c13..c9a3552b1 100644 --- a/query-languages/dax/permut-function-dax.md +++ b/query-languages/dax/permut-function-dax.md @@ -18,8 +18,8 @@ PERMUT(number, number_chosen) |Term|Definition| |--------|--------------| -|number|Required. An integer that describes the number of objects.| -|number_chosen|Required. An integer that describes the number of objects in each permutation.| +|`number`|Required. An integer that describes the number of objects.| +|`number_chosen`|Required. An integer that describes the number of objects in each permutation.| ## Return value diff --git a/query-languages/dax/pmt-function-dax.md b/query-languages/dax/pmt-function-dax.md index 61a1856f3..a7416fdd4 100644 --- a/query-languages/dax/pmt-function-dax.md +++ b/query-languages/dax/pmt-function-dax.md @@ -20,15 +20,15 @@ PMT(, , [, [, ]]) |Term|Definition| |--------|--------------| -|rate|The interest rate for the loan.| -|nper|The total number of payments for the loan.| -|pv|The present value, or the total amount that a series of future payments is worth now; also known as the principal.| -|fv|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK.| -|type|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`rate`|The interest rate for the loan.| +|`nper`|The total number of payments for the loan.| +|`pv`|The present value, or the total amount that a series of future payments is worth now; also known as the principal.| +|`fv`|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK.| +|`type`|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **type** parameter accepts the following values: +The `type` parameter accepts the following values: -| **Set type equal to** | **If payments are due** | +| **Set `type` equal to** | **If payments are due** | | --------------------- | ------------------------------ | | 0 or omitted | At the end of the period | | 1 | At the beginning of the period | @@ -45,10 +45,10 @@ The amount of a single loan payment. - Make sure that you are consistent about the units you use for specifying rate and nper. If you make monthly payments on a four-year loan at an annual interest rate of 12 percent, use 0.12/12 for rate and 4*12 for nper. If you make annual payments on the same loan, use 0.12 for rate and 4 for nper. -- type is rounded to the nearest integer. +- `type` is rounded to the nearest integer. - An error is returned if: - - nper < 1 + - `nper < 1` **Tip**: To find the total amount paid over the duration of the loan, multiply the returned PMT value by nper. diff --git a/query-languages/dax/poisson-dist-function-dax.md b/query-languages/dax/poisson-dist-function-dax.md index e77567397..b76f920a0 100644 --- a/query-languages/dax/poisson-dist-function-dax.md +++ b/query-languages/dax/poisson-dist-function-dax.md @@ -18,9 +18,9 @@ POISSON.DIST(x,mean,cumulative) |Term|Definition| |--------|--------------| -|x|Required. The number of events.| -|mean|Required. The expected numeric value.| -|cumulative|Required. A logical value that determines the form of the probability distribution returned. If cumulative is TRUE, POISSON.DIST returns the cumulative Poisson probability that the number of random events occurring will be between zero and x inclusive; if FALSE, it returns the Poisson probability mass function that the number of events occurring will be exactly x.| +|`x`|Required. The number of events.| +|`mean`|Required. The expected numeric value.| +|`cumulative`|Required. A logical value that determines the form of the probability distribution returned. If cumulative is `TRUE`, POISSON.DIST returns the cumulative Poisson probability that the number of random events occurring will be between zero and x inclusive; if `FALSE`, it returns the Poisson probability mass function that the number of events occurring will be exactly x.| ## Return value @@ -38,11 +38,11 @@ Returns the Poisson distribution. - POISSON.DIST is calculated as follows. - - For cumulative = FALSE: + - For cumulative = `FALSE`: $$\text{POISSON} = \frac{e^{-\lambda} \lambda^{x}}{x!}$$ - - For cumulative = TRUE: + - For cumulative = `TRUE`: $$\text{CUMPOISSON} = \sum^{x}\_{k=0} \frac{e^{-\lambda} \lambda^{x}}{k!}$$ diff --git a/query-languages/dax/power-function-dax.md b/query-languages/dax/power-function-dax.md index d4e3b13ad..73d7bbfea 100644 --- a/query-languages/dax/power-function-dax.md +++ b/query-languages/dax/power-function-dax.md @@ -18,8 +18,8 @@ POWER(, ) |Term|Definition| |--------|--------------| -|number|The base number, which can be any real number.| -|power|The exponent to which the base number is raised.| +|`number`|The base number, which can be any real number.| +|`power`|The exponent to which the base number is raised.| ## Return value diff --git a/query-languages/dax/ppmt-function-dax.md b/query-languages/dax/ppmt-function-dax.md index a734214e3..7a104d847 100644 --- a/query-languages/dax/ppmt-function-dax.md +++ b/query-languages/dax/ppmt-function-dax.md @@ -20,16 +20,16 @@ PPMT(, , , [, [, ]]) |Term|Definition| |--------|--------------| -|rate|The interest rate for the loan.| -|per|Specifies the period. Must be between 1 and nper (inclusive).| -|nper|The total number of payment periods in an annuity.| -|pv|The present value — the total amount that a series of future payments is worth now.| -|fv|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK.| -|type|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`rate`|The interest rate for the loan.| +|`per`|Specifies the period. Must be between 1 and nper (inclusive).| +|`nper`|The total number of payment periods in an annuity.| +|`pv`|The present value — the total amount that a series of future payments is worth now.| +|`fv`|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK.| +|`type`|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **type** parameter accepts the following values: +The `type` parameter accepts the following values: -| **Set type equal to** | **If payments are due** | +| **Set `type` equal to** | **If payments are due** | | --------------------- | ------------------------------ | | 0 or omitted | At the end of the period | | 1 | At the beginning of the period | @@ -42,13 +42,13 @@ The payment on the principal for a given period. ## Remarks -- Make sure that you are consistent about the units you use for specifying rate and nper. If you make monthly payments on a four-year loan at an annual interest rate of 12 percent, use 0.12/12 for rate and 4*12 for nper. If you make annual payments on the same loan, use 0.12 for rate and 4 for nper. +- Make sure that you are consistent about the units you use for specifying `rate` and `nper`. If you make monthly payments on a four-year loan at an annual interest rate of 12 percent, use 0.12/12 for rate and 4*12 for nper. If you make annual payments on the same loan, use 0.12 for `rate` and 4 for `nper`. - type is rounded to the nearest integer. - An error is returned if: - - per < 1 or per > nper - - nper < 1 + - `per < 1` or `per > nper` + - `nper < 1` - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index f5ae11141..d94791bca 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -19,11 +19,11 @@ PREVIOUS ( [, ][, ][, ][, reset] ) |Term|Definition| |--------|--------------| -|column|The column to be retrieved.| -|steps| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, **1** is used (the exactly previous row).| -|axis|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|reset|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| +|`column`|The column to be retrieved.| +|`steps`| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, `1` is used (the exactly previous row).| +|`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| ## Return value diff --git a/query-languages/dax/previousday-function-dax.md b/query-languages/dax/previousday-function-dax.md index a229a1892..73550f939 100644 --- a/query-languages/dax/previousday-function-dax.md +++ b/query-languages/dax/previousday-function-dax.md @@ -6,7 +6,7 @@ title: "PREVIOUSDAY function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates representing the day that is previous to the first date in the **dates** column, in the current context. +Returns a table that contains a column of all dates representing the day that is previous to the first date in the `dates` column, in the current context. ## Syntax @@ -18,7 +18,7 @@ PREVIOUSDAY() |Term|Definition| |--------|--------------| -|dates|A column containing dates.| +|`dates`|A column containing dates.| ## Return value @@ -26,9 +26,9 @@ A table containing a single column of date values. ## Remarks -- This function determines the first date in the input parameter, and then returns all dates corresponding to the day previous to that first date. For example, if the first date in the **dates** argument refers to June 10, 2009; this function returns all dates equal to June 9, 2009. +- This function determines the first date in the input parameter, and then returns all dates corresponding to the day previous to that first date. For example, if the first date in the `dates` argument refers to June 10, 2009; this function returns all dates equal to June 9, 2009. -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/previousmonth-function-dax.md b/query-languages/dax/previousmonth-function-dax.md index 15c536fb7..b28817544 100644 --- a/query-languages/dax/previousmonth-function-dax.md +++ b/query-languages/dax/previousmonth-function-dax.md @@ -6,7 +6,7 @@ title: "PREVIOUSMONTH function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the previous month, based on the first date in the **Dates** column, in the current context. +Returns a table that contains a column of all dates from the previous month, based on the first date in the `` column, in the current context. ## Syntax @@ -18,7 +18,7 @@ PREVIOUSMONTH() |Term|Definition| |--------|--------------| -|Dates|A column containing dates.| +|`Dates`|A column containing dates.| ## Return value @@ -26,9 +26,9 @@ A table containing a single column of date values. ## Remarks -- This function returns all dates from the previous month, using the first date in the column used as input. For example, if the first date in the **Dates** argument refers to June 10, 2009, this function returns all dates for the month of May, 2009. +- This function returns all dates from the previous month, using the first date in the column used as input. For example, if the first date in the `Dates` argument refers to June 10, 2009, this function returns all dates for the month of May, 2009. -- The **Dates** argument can be any of the following: +- The `Dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/previousquarter-function-dax.md b/query-languages/dax/previousquarter-function-dax.md index f553c9356..58c9f9c3a 100644 --- a/query-languages/dax/previousquarter-function-dax.md +++ b/query-languages/dax/previousquarter-function-dax.md @@ -6,7 +6,7 @@ title: "PREVIOUSQUARTER function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the previous quarter, based on the first date in the **dates** column, in the current context. +Returns a table that contains a column of all dates from the previous quarter, based on the first date in the `dates` column, in the current context. ## Syntax @@ -18,7 +18,7 @@ PREVIOUSQUARTER() |Term|Definition| |--------|--------------| -|dates|A column containing dates.| +|`dates`|A column containing dates.| ## Return value @@ -26,9 +26,9 @@ A table containing a single column of date values. ## Remarks -- This function returns all dates from the previous quarter, using the first date in the input column. For example, if the first date in the **dates** argument refers to June 10, 2009, this function returns all dates for the quarter January to March, 2009. +- This function returns all dates from the previous quarter, using the first date in the input column. For example, if the first date in the `dates` argument refers to June 10, 2009, this function returns all dates for the quarter January to March, 2009. -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/previousyear-function-dax.md b/query-languages/dax/previousyear-function-dax.md index e84694b1c..9ead84a0b 100644 --- a/query-languages/dax/previousyear-function-dax.md +++ b/query-languages/dax/previousyear-function-dax.md @@ -6,7 +6,7 @@ title: "PREVIOUSYEAR function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the previous year, given the last date in the **dates** column, in the current context. +Returns a table that contains a column of all dates from the previous year, given the last date in the `dates` column, in the current context. ## Syntax @@ -18,8 +18,8 @@ PREVIOUSYEAR([,]) |Term|Definition| |--------|--------------| -|dates|A column containing dates.| -|year_end_date|(optional) A literal string with a date that defines the year-end date. The default is December 31.| +|`dates`|A column containing dates.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| ## Return value @@ -27,16 +27,16 @@ A table containing a single column of date values. ## Remarks -- This function returns all dates from the previous year given the latest date in the input parameter. For example, if the latest date in the **dates** argument refers to the year 2009, then this function returns all dates for the year of 2008, up to the specified **year_end_date**. +- This function returns all dates from the previous year given the latest date in the input parameter. For example, if the latest date in the `dates` argument refers to the year 2009, then this function returns all dates for the year of 2008, up to the specified `year_end_date`. -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). -- The **year_end_date** parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/price-function-dax.md b/query-languages/dax/price-function-dax.md index 8e6122425..3ae8f8382 100644 --- a/query-languages/dax/price-function-dax.md +++ b/query-languages/dax/price-function-dax.md @@ -20,17 +20,17 @@ PRICE(, , , , , [, , , , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|discount|The security's discount rate.| -|redemption|The security's redemption value per \\$100 face value.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`discount`|The security's discount rate.| +|`redemption`|The security's redemption value per \\$100 face value.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | `Day count basis` | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/pricemat-function-dax.md b/query-languages/dax/pricemat-function-dax.md index 44afa70c9..c40156ce5 100644 --- a/query-languages/dax/pricemat-function-dax.md +++ b/query-languages/dax/pricemat-function-dax.md @@ -20,16 +20,16 @@ PRICEMAT(, , , , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|issue|The security's issue date.| -|rate|The security's interest rate at date of issue.| -|yld|The security's annual yield.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`issue`|The security's issue date.| +|`rate`|The security's interest rate at date of issue.| +|`yld`|The security's annual yield.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/product-function-dax.md b/query-languages/dax/product-function-dax.md index 319f5a5b2..ea73d9e64 100644 --- a/query-languages/dax/product-function-dax.md +++ b/query-languages/dax/product-function-dax.md @@ -18,7 +18,7 @@ PRODUCT() |Term|Definition| |--------|--------------| -|column|The column that contains the numbers for which the product is to be computed.| +|`column`|The column that contains the numbers for which the product is to be computed.| ## Return value diff --git a/query-languages/dax/productx-function-dax.md b/query-languages/dax/productx-function-dax.md index f60cf01e9..9f21aeece 100644 --- a/query-languages/dax/productx-function-dax.md +++ b/query-languages/dax/productx-function-dax.md @@ -18,8 +18,8 @@ PRODUCTX(
, ) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expression will be evaluated.| -|expression|The expression to be evaluated for each row of the table.| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| ## Return value diff --git a/query-languages/dax/pv-function-dax.md b/query-languages/dax/pv-function-dax.md index f0021f6b3..1d1f884e1 100644 --- a/query-languages/dax/pv-function-dax.md +++ b/query-languages/dax/pv-function-dax.md @@ -20,15 +20,15 @@ PV(, , [, [, ]]) |Term|Definition| |--------|--------------| -|rate|The interest rate per period. For example, if you obtain an automobile loan at a 10 percent annual interest rate and make monthly payments, your interest rate per month is 0.1/12, or 0.0083. You would enter 0.1/12, or 0.0083, into the formula as the rate.| -|nper|The total number of payment periods in an annuity. For example, if you get a four-year car loan and make monthly payments, your loan has 4*12 (or 48) periods. You would enter 48 into the formula for nper.| -|pmt|The payment made each period that cannot change over the life of the annuity. Typically, pmt includes principal and interest but no other fees or taxes. For example, the monthly payments on a \\$10,000, four-year car loan at 12 percent are \\$263.33. You would enter -263.33 into the formula as the pmt.| -|fv|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK. For example, if you want to save \\$50,000 to pay for a special project in 18 years, then \\$50,000 is the future value. You could then make a conservative guess at an interest rate and determine how much you must save each month.| -|type|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`rate`|The interest rate per period. For example, if you obtain an automobile loan at a 10 percent annual interest rate and make monthly payments, your interest rate per month is 0.1/12, or 0.0083. You would enter 0.1/12, or 0.0083, into the formula as the rate.| +|`nper`|The total number of payment periods in an annuity. For example, if you get a four-year car loan and make monthly payments, your loan has 4*12 (or 48) periods. You would enter 48 into the formula for nper.| +|`pmt`|The payment made each period that cannot change over the life of the annuity. Typically, pmt includes principal and interest but no other fees or taxes. For example, the monthly payments on a \\$10,000, four-year car loan at 12 percent are \\$263.33. You would enter -263.33 into the formula as the pmt.| +|`fv`|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be BLANK. For example, if you want to save \\$50,000 to pay for a special project in 18 years, then \\$50,000 is the future value. You could then make a conservative guess at an interest rate and determine how much you must save each month.| +|`type`|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **type** parameter accepts the following values: +The `type` parameter accepts the following values: -| **Set type equal to** | **If payments are due** | +| **Set `type` equal to** | **If payments are due** | | --------------------- | ------------------------------ | | 0 or omitted | At the end of the period | | 1 | At the beginning of the period | @@ -42,16 +42,16 @@ The present value of a loan or investment. - Make sure that you are consistent about the units you use for specifying rate and nper. If you make monthly payments on a four-year loan at 12 percent annual interest, use 0.12/12 for rate and 4*12 for nper. If you make annual payments on the same loan, use 0.12 for rate and 4 for nper. - The following functions apply to annuities: - - CUMIPMT - - CUMPRINC - - FV - - IPMT - - PMT - - PPMT - - PV - - RATE - - XIRR - - XNPV + - `CUMIPMT` + - `CUMPRINC` + - `FV` + - `IPMT` + - `PMT` + - `PPMT` + - `PV` + - `RATE` + - `XIRR` + - `XNPV` - An annuity is a series of constant cash payments made over a continuous period. For example, a car loan or a mortgage is an annuity. For more information, see the description for each annuity function. diff --git a/query-languages/dax/quarter-function-dax.md b/query-languages/dax/quarter-function-dax.md index 10bd89c9f..226eefa49 100644 --- a/query-languages/dax/quarter-function-dax.md +++ b/query-languages/dax/quarter-function-dax.md @@ -19,7 +19,7 @@ QUARTER() |Term|Definition| |--------|--------------| -|date|A date.| +|`date`|A date.| ## Return value diff --git a/query-languages/dax/quotient-function-dax.md b/query-languages/dax/quotient-function-dax.md index 5fd196a5f..bba1b38c0 100644 --- a/query-languages/dax/quotient-function-dax.md +++ b/query-languages/dax/quotient-function-dax.md @@ -18,8 +18,8 @@ QUOTIENT(, ) |Term|Definition| |--------|--------------| -|numerator|The dividend, or number to divide.| -|denominator|The divisor, or number to divide by.| +|`numerator`|The dividend, or number to divide.| +|`denominator`|The divisor, or number to divide by.| ## Return value @@ -27,7 +27,7 @@ A whole number. ## Remarks -- If either argument is non-numeric, QUOTIENT returns the **#VALUE!** error value. +- If either argument is non-numeric, QUOTIENT returns the `#VALUE!` error value. - You can use a column reference instead of a literal value for either argument. However, if the column that you reference contains a 0 (zero), an error is returned for the entire column of values. diff --git a/query-languages/dax/radians-function-dax.md b/query-languages/dax/radians-function-dax.md index e5b1684b7..accbc3704 100644 --- a/query-languages/dax/radians-function-dax.md +++ b/query-languages/dax/radians-function-dax.md @@ -18,10 +18,10 @@ RADIANS(angle) |Term|Definition| |--------|--------------| -|angle|Required. An angle in degrees that you want to convert.| +|`angle`|Required. An angle in degrees that you want to convert.| ## Example |Formula|Description|Result| |-----------|---------------|----------| -|= RADIANS(270)|270 degrees as radians (4.712389 or 3π/2 radians)|4.712389| +|`= RADIANS(270)`|270 degrees as radians (4.712389 or 3π/2 radians)|4.712389| diff --git a/query-languages/dax/rand-function-dax.md b/query-languages/dax/rand-function-dax.md index 7999b21e7..e78e93ed4 100644 --- a/query-languages/dax/rand-function-dax.md +++ b/query-languages/dax/rand-function-dax.md @@ -20,7 +20,7 @@ A decimal number. ## Remarks -- Recalculation depends on various factors, including whether the model is set to **Manual** or **Automatic** recalculation mode, and whether data has been refreshed. +- Recalculation depends on various factors, including whether the model is set to `Manual` or `Automatic` recalculation mode, and whether data has been refreshed. - RAND and other volatile functions that do not have fixed values are not always recalculated. For example, execution of a query or filtering will usually not cause such functions to be re-evaluated. However, the results for these functions will be recalculated when the entire column is recalculated. These situations include refresh from an external data source or manual editing of data that causes re-evaluation of formulas that contain these functions. diff --git a/query-languages/dax/randbetween-function-dax.md b/query-languages/dax/randbetween-function-dax.md index 4f4a38e67..11d9c7557 100644 --- a/query-languages/dax/randbetween-function-dax.md +++ b/query-languages/dax/randbetween-function-dax.md @@ -18,8 +18,8 @@ RANDBETWEEN(,) |Term|Definition| |--------|--------------| -|Bottom|The smallest integer the function will return.| -|Top|The largest integer the function will return.| +|`Bottom`|The smallest integer the function will return.| +|`Top`|The largest integer the function will return.| ## Return value diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index e69038715..d2d34eacd 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -27,11 +27,11 @@ RANGE ( [, ][, ][, ][, ] ) |Term|Definition| |--------|--------------| -|step|The number of rows before (negative value) or after (positive value) the current row to include in the range. Must be a constant value.
- If negative, the window will contain the last -step rows before the current row.
- Otherwise, the window will contain the first step rows after the current row.| -|includeCurrent|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| -|axis|(Optional) An axis reference, the direction along which the interval will be created.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`step`|The number of rows before (negative value) or after (positive value) the current row to include in the range. Must be a constant value.
- If negative, the window will contain the last -step rows before the current row.
- Otherwise, the window will contain the first step rows after the current row.| +|`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| +|`axis`|(Optional) An axis reference, the direction along which the interval will be created.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value diff --git a/query-languages/dax/rank-eq-function-dax.md b/query-languages/dax/rank-eq-function-dax.md index 8bac76034..3f0823d7f 100644 --- a/query-languages/dax/rank-eq-function-dax.md +++ b/query-languages/dax/rank-eq-function-dax.md @@ -18,28 +18,28 @@ RANK.EQ(, [, ]) |Term|Definition| |--------|--------------| -|value |Any DAX expression that returns a single scalar value whose rank is to be found. The expression is to be evaluated exactly once, before the function is evaluated, and it's value passed to the argument list. | -|columnName |The name of an existing column against which ranks will be determined. It cannot be an expression or a column created using these functions: ADDCOLUMNS, ROW or SUMMARIZE. | -|order |(Optional) A value that specifies how to rank *number*, low to high or high to low: | +|`value` |Any DAX expression that returns a single scalar value whose rank is to be found. The expression is to be evaluated exactly once, before the function is evaluated, and it's value passed to the argument list. | +|`columnName` |The name of an existing column against which ranks will be determined. It cannot be an expression or a column created using these functions: `ADDCOLUMNS`, `ROW`, or `SUMMARIZE`. | +|`order` |(Optional) A value that specifies how to rank *numbers*, low to high or high to low: | #### order values |value|alternate value|Description| |-----|-----|-----| -|0 (zero)|FALSE|Ranks in descending order of *columnName*. If *value* is equal to the highest number in *columnName* then **RANK.EQ** is 1.| -|1|TRUE|Ranks in ascending order of *columnName*. If *value* is equal to the lowest number in *columnName* then **RANK.EQ** is 1.| +|`0` (zero)|`FALSE`|Ranks in descending order of `columnName`. If `value` is equal to the highest number in `columnName` then `RANK.EQ` is 1.| +|`1`|`TRUE`|Ranks in ascending order of `columnName`. If `value` is equal to the lowest number in `columnName` then `RANK.EQ` is 1.| ## Return value -A number indicating the rank of *value* among the numbers in *columnName*. +A number indicating the rank of `value` among the numbers in `columnName`. ## Remarks -- *columnName* cannot refer to any column created using these functions: ADDCOLUMNS, ROW or SUMMARIZE.I +- `columnName` cannot refer to any column created using these functions: ADDCOLUMNS, ROW or SUMMARIZE.I -- If *value* is not in *columnName* or value is a blank, then *RANK.EQ* returns a blank value. +- If `value` is not in `columnName` or value is a blank, then *RANK.EQ* returns a blank value. -- Duplicate values of *value* receive the same rank value; the next rank value assigned will be the rank value plus the number of duplicate values. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 16 (11 + 5). +- Duplicate values of `value` receive the same rank value; the next rank value assigned will be the rank value plus the number of duplicate values. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 16 (11 + 5). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 29be25d54..916cdaf8b 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -20,14 +20,14 @@ RANK ( [][, or ][, ][, ][, |Term|Definition| |--------|--------------| -|ties|(Optional) Defines how to handle the ranking when two or more rows are tied.
If specified, the supported value is either DENSE, or SKIP.
If omitted:
- Defaults to SKIP | -|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. -|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • KEEP (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| -|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | -|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`ties`|(Optional) Defines how to handle the ranking when two or more rows are tied.
If specified, the supported value is either DENSE, or SKIP.
If omitted:
- Defaults to SKIP | +|`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. +|`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • KEEP (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| +|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value diff --git a/query-languages/dax/rankx-function-dax.md b/query-languages/dax/rankx-function-dax.md index 113f2e996..10626c79d 100644 --- a/query-languages/dax/rankx-function-dax.md +++ b/query-languages/dax/rankx-function-dax.md @@ -6,7 +6,7 @@ title: "RANKX function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the ranking of a number in a list of numbers for each row in the *table* argument. +Returns the ranking of a number in a list of numbers for each row in the `table` argument. ## Syntax @@ -16,42 +16,42 @@ RANKX(
, [, [, [, ]]]) ### Parameters -**table** +`table` Any DAX expression that returns a table of data over which the expression is evaluated. -**expression** -Any DAX expression that returns a single scalar value. The expression is evaluated for each row of *table*, to generate all possible values for ranking. See the remarks section to understand the function behavior when *expression* evaluates to BLANK. +`expression` +Any DAX expression that returns a single scalar value. The expression is evaluated for each row of `table`, to generate all possible values for ranking. See the remarks section to understand the function behavior when `expression` evaluates to BLANK. -**value** -(Optional) Any DAX expression that returns a single scalar value whose rank is to be found. See the remarks section to understand the function's behavior when *value* is not found in the expression. +`value` +(Optional) Any DAX expression that returns a single scalar value whose rank is to be found. See the remarks section to understand the function's behavior when `value` is not found in the expression. -When the *value* parameter is omitted, the value of expression at the current row is used instead. +When the `value` parameter is omitted, the value of expression at the current row is used instead. -**order** -(Optional) A value that specifies how to rank *value*, low to high or high to low: +`order` +(Optional) A value that specifies how to rank `value`, low to high or high to low: |value|alternate value|Description| |-----|-----|-----| -|0 (zero)|FALSE|Ranks in descending order of values of expression. If value is equal to the highest number in expression then RANKX returns 1.

This is the default value when order parameter is omitted.| -|1|TRUE|Ranks in ascending order of expression. If value is equal to the lowest number in expression then RANKX returns 1.| +|0 (zero)|`FALSE`|Ranks in descending order of values of expression. If value is equal to the highest number in expression then RANKX returns 1.

This is the default value when order parameter is omitted.| +|1|`TRUE`|Ranks in ascending order of expression. If value is equal to the lowest number in expression then RANKX returns 1.| -**ties** +`ties` (Optional) An enumeration that defines how to determine ranking when there are ties. |enumeration|Description| |-----|-----| -|Skip|The next rank value, after a tie, is the rank value of the tie plus the count of tied values. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 16 (11 + 5).

This is the default value when *ties* parameter is omitted.| -|Dense|The next rank value, after a tie, is the next rank value. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 12.| +|`Skip`|The next rank value, after a tie, is the rank value of the tie plus the count of tied values. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 16 (11 + 5).

This is the default value when `ties` parameter is omitted.| +|`Dense`|The next rank value, after a tie, is the next rank value. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 12.| ## Return value -The rank number of *value* among all possible values of *expression* evaluated for all rows of *table* numbers. +The rank number of `value` among all possible values of `expression` evaluated for all rows of `table` numbers. ## Remarks -- If *expression* or *value* evaluates to BLANK it is treated as a 0 (zero) for all expressions that result in a number, or as an empty text for all text expressions. +- If `expression` or `value` evaluates to BLANK it is treated as a 0 (zero) for all expressions that result in a number, or as an empty text for all text expressions. -- If *value* is not among all possible values of *expression* then RANKX temporarily adds *value* to the values from *expression* and re-evaluates RANKX to determine the proper rank of *value*. +- If `value` is not among all possible values of `expression` then RANKX temporarily adds `value` to the values from `expression` and re-evaluates RANKX to determine the proper rank of `value`. - Optional arguments might be skipped by placing an empty comma (,) in the argument list, i.e. RANKX(Inventory, [InventoryCost],,,"Dense") diff --git a/query-languages/dax/rate-function-dax.md b/query-languages/dax/rate-function-dax.md index 8309b0d22..36797a714 100644 --- a/query-languages/dax/rate-function-dax.md +++ b/query-languages/dax/rate-function-dax.md @@ -20,16 +20,16 @@ RATE(, , [, [, [, ]]]) |Term|Definition| |--------|--------------| -|nper|The total number of payment periods in an annuity.| -|pmt|The payment made each period and cannot change over the life of the annuity. Typically, pmt includes principal and interest but no other fees or taxes.| -|pv|The present value — the total amount that a series of future payments is worth now.| -|fv|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be 0 (the future value of a loan, for example, is 0).| -|type|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| -|guess|(Optional) Your guess for what the rate will be.
- If omitted, it is assumed to be 10%.
- If RATE does not converge, try different values for guess. RATE usually converges if guess is between 0 and 1.| +|`nper`|The total number of payment periods in an annuity.| +|`pmt`|The payment made each period and cannot change over the life of the annuity. Typically, pmt includes principal and interest but no other fees or taxes.| +|`pv`|The present value — the total amount that a series of future payments is worth now.| +|`fv`|(Optional) The future value, or a cash balance you want to attain after the last payment is made. If fv is omitted, it is assumed to be 0 (the future value of a loan, for example, is 0).| +|`type`|(Optional) The number 0 or 1 which indicates when payments are due. If type is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`guess`|(Optional) Your guess for what the rate will be.
- If omitted, it is assumed to be 10%.
- If RATE does not converge, try different values for guess. RATE usually converges if guess is between 0 and 1.| -The **type** parameter accepts the following values: +The `type` parameter accepts the following values: -| **Set type equal to** | **If payments are due** | +| **Set `type` equal to** | **If payments are due** | | --------------------- | ------------------------------ | | 0 or omitted | At the end of the period | | 1 | At the beginning of the period | diff --git a/query-languages/dax/received-function-dax.md b/query-languages/dax/received-function-dax.md index b9405ca5b..1ec7c4122 100644 --- a/query-languages/dax/received-function-dax.md +++ b/query-languages/dax/received-function-dax.md @@ -20,15 +20,15 @@ RECEIVED(, , , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|investment|The amount invested in the security.| -|discount|The security's discount rate.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`investment`|The amount invested in the security.| +|`discount`|The security's discount rate.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/related-function-dax.md b/query-languages/dax/related-function-dax.md index 2bcb3d434..ed623f81c 100644 --- a/query-languages/dax/related-function-dax.md +++ b/query-languages/dax/related-function-dax.md @@ -18,7 +18,7 @@ RELATED() |Term|Definition| |--------|--------------| -|column|The column that contains the values you want to retrieve.| +|`column`|The column that contains the values you want to retrieve.| ## Return value diff --git a/query-languages/dax/relatedtable-function-dax.md b/query-languages/dax/relatedtable-function-dax.md index 0340b0f02..74d8b97b1 100644 --- a/query-languages/dax/relatedtable-function-dax.md +++ b/query-languages/dax/relatedtable-function-dax.md @@ -18,7 +18,7 @@ RELATEDTABLE() |Term|Definition| |--------|--------------| -|tableName|The name of an existing table using standard DAX syntax. It cannot be an expression.| +|`tableName`|The name of an existing table using standard DAX syntax. It cannot be an expression.| ## Return value diff --git a/query-languages/dax/replace-function-dax.md b/query-languages/dax/replace-function-dax.md index 94ea2303c..7382ca82c 100644 --- a/query-languages/dax/replace-function-dax.md +++ b/query-languages/dax/replace-function-dax.md @@ -18,10 +18,10 @@ REPLACE(, , , ) |Term|Definition| |--------|--------------| -|old_text|The string of text that contains the characters you want to replace, or a reference to a column that contains text.| -|start_num|The position of the character in **old_text** that you want to replace with **new_text**.| -|num_chars|The number of characters that you want to replace. **Warning:** If the argument, *num_chars*, is a blank or references a column that evaluates to a blank, the string for *new_text* is inserted at the position, *start_num*, without replacing any characters. This is the same behavior as in Excel.| -|new_text|The replacement text for the specified characters in **old_text**.| +|`old_text`|The string of text that contains the characters you want to replace, or a reference to a column that contains text.| +|`start_num`|The position of the character in `old_text` that you want to replace with `new_text`.| +|`num_chars`|The number of characters that you want to replace. **Warning:** If the argument, `num_chars`, is a blank or references a column that evaluates to a blank, the string for `new_text` is inserted at the position, `start_num`, without replacing any characters. This is the same behavior as in Excel.| +|`new_text`|The replacement text for the specified characters in `old_text`.| ## Return value diff --git a/query-languages/dax/rept-function-dax.md b/query-languages/dax/rept-function-dax.md index bab08ac84..fb823f900 100644 --- a/query-languages/dax/rept-function-dax.md +++ b/query-languages/dax/rept-function-dax.md @@ -18,8 +18,8 @@ REPT(, ) |Term|Definition| |--------|--------------| -|text|The text you want to repeat.| -|num_times|A positive number specifying the number of times to repeat text.| +|`text`|The text you want to repeat.| +|`num_times`|A positive number specifying the number of times to repeat text.| ## Return value @@ -27,9 +27,9 @@ A string containing the changes. ## Remarks -- If **number_times** is 0 (zero), REPT returns a blank. +- If `num_times` is 0 (zero), REPT returns a blank. -- If **number_times** is not an integer, it is truncated. +- If `num_times` is not an integer, it is truncated. - The result of the REPT function cannot be longer than 32,767 characters, or REPT returns an error. diff --git a/query-languages/dax/right-function-dax.md b/query-languages/dax/right-function-dax.md index 762d0be6b..df70853b3 100644 --- a/query-languages/dax/right-function-dax.md +++ b/query-languages/dax/right-function-dax.md @@ -18,8 +18,8 @@ RIGHT(, ) |Term|Definition| |--------|--------------| -|text|The text string that contains the characters you want to extract, or a reference to a column that contains text.| -|num_chars|(optional) The number of characters you want RIGHT to extract; is omitted, 1. You can also use a reference to a column that contains numbers.| +|`text`|The text string that contains the characters you want to extract, or a reference to a column that contains text.| +|`num_chars`|(optional) The number of characters you want RIGHT to extract; is omitted, 1. You can also use a reference to a column that contains numbers.| If the column reference does not contain text, it is implicitly cast as text. diff --git a/query-languages/dax/rollupaddissubtotal-function-dax.md b/query-languages/dax/rollupaddissubtotal-function-dax.md index 06c88021d..6a28130af 100644 --- a/query-languages/dax/rollupaddissubtotal-function-dax.md +++ b/query-languages/dax/rollupaddissubtotal-function-dax.md @@ -18,10 +18,10 @@ ROLLUPADDISSUBTOTAL ( [], , [, [], , , ) |Term|Definition| |--------|--------------| -|number|The number you want to round.| -|num_digits|The number of digits to which you want to round. A negative value rounds digits to the left of the decimal point; a value of zero rounds to the nearest integer.| +|`number`|The number you want to round.| +|`num_digits`|The number of digits to which you want to round. A negative value rounds digits to the left of the decimal point; a value of zero rounds to the nearest integer.| ## Return value @@ -27,11 +27,11 @@ A decimal number. ## Remarks -- If **num_digits** is greater than 0 (zero), then number is rounded to the specified number of decimal places. +- If `num_digits` is greater than 0 (zero), then number is rounded to the specified number of decimal places. -- If **num_digits** is 0, the number is rounded to the nearest integer. +- If `num_digits` is 0, the number is rounded to the nearest integer. -- If **num_digits** is less than 0, the number is rounded to the left of the decimal point. +- If `num_digits` is less than 0, the number is rounded to the left of the decimal point. - Related functions - To always round up (away from zero), use the ROUNDUP function. diff --git a/query-languages/dax/rounddown-function-dax.md b/query-languages/dax/rounddown-function-dax.md index 37558ce55..8a7c29de7 100644 --- a/query-languages/dax/rounddown-function-dax.md +++ b/query-languages/dax/rounddown-function-dax.md @@ -18,8 +18,8 @@ ROUNDDOWN(, ) |Term|Definition| |--------|--------------| -|number|A real number that you want rounded down.| -|num_digits|The number of digits to which you want to round. Negative rounds to the left of the decimal point; zero to the nearest integer.| +|`number`|A real number that you want rounded down.| +|`num_digits`|The number of digits to which you want to round. Negative rounds to the left of the decimal point; zero to the nearest integer.| ## Return value @@ -27,11 +27,11 @@ A decimal number. ## Remarks -- If **num_digits** is greater than 0 (zero), then the value in **number** is rounded down to the specified number of decimal places. +- If `num_digits` is greater than 0 (zero), then the value in `number` is rounded down to the specified number of decimal places. -- If **num_digits** is 0, then the value in **number** is rounded down to the nearest integer. +- If `num_digits` is 0, then the value in `number` is rounded down to the nearest integer. -- If **num_digits** is less than 0, then the value in **number** is rounded down to the left of the decimal point. +- If `num_digits` is less than 0, then the value in `number` is rounded down to the left of the decimal point. - ROUNDDOWN behaves like ROUND, except that it always rounds a number down. The INT function also rounds down, but with INT the result is always an integer, whereas with ROUNDDOWN you can control the precision of the result. diff --git a/query-languages/dax/roundup-function-dax.md b/query-languages/dax/roundup-function-dax.md index e62318c79..2f1495f87 100644 --- a/query-languages/dax/roundup-function-dax.md +++ b/query-languages/dax/roundup-function-dax.md @@ -18,8 +18,8 @@ ROUNDUP(, ) |Term|Definition| |--------|--------------| -|number|A real number that you want to round up.| -|num_digits|The number of digits to which you want to round. A negative value for **num_digits** rounds to the left of the decimal point; if **num_digits** is zero or is omitted, **number** is rounded to the nearest integer.| +|`number`|A real number that you want to round up.| +|`num_digits`|The number of digits to which you want to round. A negative value for `num_digits` rounds to the left of the decimal point; if `num_digits` is zero or is omitted, `number` is rounded to the nearest integer.| ## Return value @@ -27,11 +27,11 @@ A decimal number. ## Remarks -- If **num_digits** is greater than 0 (zero), then the number is rounded up to the specified number of decimal places. +- If `num_digits` is greater than 0 (zero), then the number is rounded up to the specified number of decimal places. -- If **num_digits** is 0, then number is rounded up to the nearest integer. +- If `num_digits` is 0, then number is rounded up to the nearest integer. -- If **num_digits** is less than 0, then number is rounded up to the left of the decimal point. +- If `num_digits` is less than 0, then number is rounded up to the left of the decimal point. - ROUNDUP behaves like ROUND, except that it always rounds a number up. @@ -59,7 +59,7 @@ The following formula rounds the value in the column, **FreightCost**, with the = ROUNDUP([Values],-1) ``` -When **num_digits** is less than zero, the number of places to the left of the decimal sign is increased by the value you specify. +When `num_digits` is less than zero, the number of places to the left of the decimal sign is increased by the value you specify. |FreightCost|Expected Result| |---------------|-------------------| diff --git a/query-languages/dax/row-function-dax.md b/query-languages/dax/row-function-dax.md index 39816bfb2..36498ec3d 100644 --- a/query-languages/dax/row-function-dax.md +++ b/query-languages/dax/row-function-dax.md @@ -18,8 +18,8 @@ ROW(, [[,, ]…]) |Term|Definition| |--------|--------------| -| name| The name given to the column, enclosed in double quotes. | -| expression| Any DAX expression that returns a single scalar value to populate. *name*. | +|`name`| The name given to the column, enclosed in double quotes. | +|`expression`| Any DAX expression that returns a single scalar value to populate. `name`. | ## Return value @@ -27,7 +27,7 @@ A single row table ## Remarks -- Arguments must always come in pairs of *name* and *expression*. +- Arguments must always come in pairs of `name` and `expression`. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index b533849c4..6f72d0b32 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -19,13 +19,13 @@ ROWNUMBER ( [ or ][, ][, ][, ][, < |Term|Definition| |--------|--------------| -|relation|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. -|orderBy|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| -|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | -|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. +|`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| +|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value diff --git a/query-languages/dax/rri-function-dax.md b/query-languages/dax/rri-function-dax.md index 3d377b529..3085458c8 100644 --- a/query-languages/dax/rri-function-dax.md +++ b/query-languages/dax/rri-function-dax.md @@ -20,9 +20,9 @@ RRI(, , ) |Term|Definition| |--------|--------------| -|nper|The number of periods for the investment.| -|pv|The present value of the investment.| -|fv|The future value of the investment.| +|`nper`|The number of periods for the investment.| +|`pv`|The present value of the investment.| +|`fv`|The future value of the investment.| ## Return Value diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index aa21cbd6c..ae61b46eb 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -27,10 +27,10 @@ RUNNINGSUM ( [, ][, ][, ] ) |Term|Definition| |--------|--------------| -|column|The column that provides the value for each element.| -|axis|(Optional) An axis reference, the direction along which the running sum will be calculated.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|reset|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`column`|The column that provides the value for each element.| +|`axis`|(Optional) An axis reference, the direction along which the running sum will be calculated.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value diff --git a/query-languages/dax/sameperiodlastyear-function-dax.md b/query-languages/dax/sameperiodlastyear-function-dax.md index a4012a5c1..fb824e5ed 100644 --- a/query-languages/dax/sameperiodlastyear-function-dax.md +++ b/query-languages/dax/sameperiodlastyear-function-dax.md @@ -6,7 +6,7 @@ title: "SAMEPERIODLASTYEAR function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of dates shifted one year back in time from the dates in the specified **dates** column, in the current context. +Returns a table that contains a column of dates shifted one year back in time from the dates in the specified `dates` column, in the current context. ## Syntax @@ -18,7 +18,7 @@ SAMEPERIODLASTYEAR() |Term|Definition| |--------|--------------| -|**dates**|A column containing dates.| +|`dates`|A column containing dates.| ## Return value @@ -26,7 +26,7 @@ A single-column table of date values. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column, - A table expression that returns a single column of date/time values, - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/sample-function-dax.md b/query-languages/dax/sample-function-dax.md index e5c31c223..20f8886bc 100644 --- a/query-languages/dax/sample-function-dax.md +++ b/query-languages/dax/sample-function-dax.md @@ -18,18 +18,18 @@ SAMPLE(,
, , [[, |Term|Definition| |---------|---------| -|n_value | The number of rows to return. It is any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). If a non-integer value (or expression) is entered, the result is cast as an integer. | -|table | Any DAX expression that returns a table of data from where to extract the 'n' sample rows. | -|orderBy_expression | Any scalar DAX expression where the result value is evaluated for each row of *table*. | -|order | (Optional) A value that specifies how to sort *orderBy_expression* values, ascending or descending: 0 (zero), sorts in descending order of values of *order_by*. 1, ranks in ascending order of *order_by*. | +|`n_value` | The number of rows to return. It is any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). If a non-integer value (or expression) is entered, the result is cast as an integer. | +|`table` | Any DAX expression that returns a table of data from where to extract the 'n' sample rows. | +|`orderBy_expression` | Any scalar DAX expression where the result value is evaluated for each row of `table`. | +|`order` | (Optional) A value that specifies how to sort `orderBy_expression` values, ascending or descending: 0 (zero), sorts in descending order of values of `order_by`. 1, ranks in ascending order of `order_by`. | ## Return value -A table consisting of a sample of N rows of *table* or an empty table if *n_value* is 0 (zero) or less. If OrderBy arguments are provided, the sample will be stable and deterministic, returning the first row, the last row, and evenly distributed rows between them. If no ordering is specified, the sample will be random, not stable, and not deterministic. +A table consisting of a sample of N rows of `table` or an empty table if `n_value` is 0 (zero) or less. If OrderBy arguments are provided, the sample will be stable and deterministic, returning the first row, the last row, and evenly distributed rows between them. If no ordering is specified, the sample will be random, not stable, and not deterministic. ## Remarks -- If n_value is 0 (zero) or less then SAMPLE returns an empty table. +- If `n_value` is 0 (zero) or less then SAMPLE returns an empty table. - In order to avoid duplicate values in the sample, the table provided as the second argument should be grouped by the column used for sorting. diff --git a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md index 65a75129a..d2115c2cd 100644 --- a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md +++ b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md @@ -20,17 +20,17 @@ SAMPLEAXISWITHLOCALMINMAX(,
, , , [ [, ...] |Term|Definition| |--------|--------------| -|Size|Number of rows in the sample to return| -|Table|Any DAX expression that returns a table of data from where to return a sample subset from.| -|Axis|The numerical or datetime column from Table to be binned.| -|Measure| Column reference from Table to be sampled. At least one Measure is required, but you can specify multiple.| -|MinResolution| Minimum number of selected rows that spans the full non-empty range of X| -|DynamicSeries| (Optional) Column to be used as series. You can specify zero, or or multiple.| -|DynamicSeriesSelectionCriteria| (Optional) Decides which series values to retain if not all DynamicSeries can be preserved. Valid values are NONE or ALPHABETICAL| -|DynamicSeriesSelectionOrder| (Optional) Decides to use ascending or descending sorting on the criteria identified by DynamicSeriesSelectionCriteria. Valid values are ASC or DESC.| -|MaxResolution| Maximum number of selected rows for a line that spans the full non-empty range of X| -|MaxDynamicSeries|Maximum allowed DynamicSeries. If the number of DynamicSeries is higher than MaxDynamicSeries remove DynamicSeries based on DynamicSeriesSelectionCriteria.| -|MaxIterations|Maximum number of iterations to try to reach the Size number of rows. +|`Size`|Number of rows in the sample to return| +|`Table`|Any DAX expression that returns a table of data from where to return a sample subset from.| +|`Axis`|The numerical or datetime column from Table to be binned.| +|`Measure`| Column reference from Table to be sampled. At least one Measure is required, but you can specify multiple.| +|`MinResolution`| Minimum number of selected rows that spans the full non-empty range of X| +|`DynamicSeries`| (Optional) Column to be used as series. You can specify zero, or or multiple.| +|`DynamicSeriesSelectionCriteria`| (Optional) Decides which series values to retain if not all DynamicSeries can be preserved. Valid values are NONE or ALPHABETICAL| +|`DynamicSeriesSelectionOrder`| (Optional) Decides to use ascending or descending sorting on the criteria identified by DynamicSeriesSelectionCriteria. Valid values are ASC or DESC.| +|`MaxResolution`| Maximum number of selected rows for a line that spans the full non-empty range of X| +|`MaxDynamicSeries`|Maximum allowed DynamicSeries. If the number of DynamicSeries is higher than MaxDynamicSeries remove DynamicSeries based on DynamicSeriesSelectionCriteria.| +|`MaxIterations`|Maximum number of iterations to try to reach the Size number of rows. ## Return Value diff --git a/query-languages/dax/search-function-dax.md b/query-languages/dax/search-function-dax.md index 4e38e9eaf..a97c7e110 100644 --- a/query-languages/dax/search-function-dax.md +++ b/query-languages/dax/search-function-dax.md @@ -18,10 +18,10 @@ SEARCH(, [, [][, ]]) |Term|Definition| |--------|--------------| -|find_text|The text that you want to find.

You can use wildcard characters — the question mark (?) and asterisk (\*) — in **find_text**. A question mark matches any single character; an asterisk matches any sequence of characters. If you want to find an actual question mark or asterisk, type a tilde (~) before the character.| -|within_text|The text in which you want to search for **find_text**, or a column containing text.| -|start_num|(optional) The character position in **within_text** at which you want to start searching. If omitted, 1.| -|NotFoundValue|(optional, but strongly recommended) The value that should be returned when the operation does not find a matching substring, typically 0, -1, or BLANK(). If not specified, an error is returned.| +|`find_text`|The text that you want to find.

You can use wildcard characters — the question mark (?) and asterisk (\*) — in `find_text`. A question mark matches any single character; an asterisk matches any sequence of characters. If you want to find an actual question mark or asterisk, type a tilde (~) before the character.| +|`within_text`|The text in which you want to search for `find_text`, or a column containing text.| +|`start_num`|(optional) The character position in `within_text` at which you want to start searching. If omitted, 1.| +|`NotFoundValue`|(optional, but strongly recommended) The value that should be returned when the operation does not find a matching substring, typically 0, -1, or BLANK(). If not specified, an error is returned.| ## Return value @@ -35,7 +35,7 @@ The number of the starting position of the first text string from the first char - You can use the SEARCH function to determine the location of a character or text string within another text string, and then use the MID function to return the text, or use the REPLACE function to change the text. -- If the **find_text** cannot be found in **within_text**, the formula returns an error. This behavior is like Excel, which returns #VALUE if the substring is not found. Nulls in **within_text** will be interpreted as an empty string in this context. +- If the `find_text` cannot be found in `within_text`, the formula returns an error. This behavior is like Excel, which returns #VALUE if the substring is not found. Nulls in `within_text` will be interpreted as an empty string in this context. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/second-function-dax.md b/query-languages/dax/second-function-dax.md index bf0c0d902..779d79a84 100644 --- a/query-languages/dax/second-function-dax.md +++ b/query-languages/dax/second-function-dax.md @@ -18,7 +18,7 @@ SECOND(
, [], , [], …) |Term|Definition| |--------|--------------| -| Table| Any DAX expression that returns a table. | -| Name | The name given to the column, enclosed in double quotes. | -| Expression |Any expression that returns a scalar value like a column reference, integer, or string value.| +|`Table`| Any DAX expression that returns a table. | +|`Name` | The name given to the column, enclosed in double quotes. | +|`Expression` |Any expression that returns a scalar value like a column reference, integer, or string value.| ## Return value diff --git a/query-languages/dax/selectedvalue-function-dax.md b/query-languages/dax/selectedvalue-function-dax.md index a6f0ac21b..132e82b70 100644 --- a/query-languages/dax/selectedvalue-function-dax.md +++ b/query-languages/dax/selectedvalue-function-dax.md @@ -18,8 +18,8 @@ SELECTEDVALUE([, ]) |Term|Definition| |----------|--------------| -| columnName |The name of an existing column, using standard DAX syntax. It cannot be an expression. | -| alternateResult |(Optional) The value returned when the context for columnName has been filtered down to zero or more than one distinct value. When not provided, the default value is BLANK().| +| `columnName` |The name of an existing column, using standard DAX syntax. It cannot be an expression. | +| `alternateResult` |(Optional) The value returned when the context for columnName has been filtered down to zero or more than one distinct value. When not provided, the default value is BLANK().| ## Return value @@ -51,14 +51,14 @@ Returns the following: DimProduct[Color] |[Is Total] |[Selected Color] ---------|---------|---------| -Black | FALSE | Black | -Blue | FALSE | Blue | -Grey | FALSE | Grey | -Multi | FALSE | Multi | -NA | FALSE | NA | -Red | FALSE | Red | -Silver | FALSE | Silver | -Silver/Black | FALSE | Silver/Black | -White | FALSE | White | -Yellow | FALSE | Yellow | -| | TRUE | No Single Selection| +Black | `FALSE` | Black | +Blue | `FALSE` | Blue | +Grey | `FALSE` | Grey | +Multi | `FALSE` | Multi | +NA | `FALSE` | NA | +Red | `FALSE` | Red | +Silver | `FALSE` | Silver | +Silver/Black | `FALSE` | Silver/Black | +White | `FALSE` | White | +Yellow | `FALSE` | Yellow | +|``| `TRUE` | No Single Selection| diff --git a/query-languages/dax/sign-function-dax.md b/query-languages/dax/sign-function-dax.md index ae3d434af..173f6acb0 100644 --- a/query-languages/dax/sign-function-dax.md +++ b/query-languages/dax/sign-function-dax.md @@ -18,7 +18,7 @@ SIGN() |Term|Definition| |--------|--------------| -|number|Any real number, a column that contains numbers, or an expression that evaluates to a number.| +|`number`|Any real number, a column that contains numbers, or an expression that evaluates to a number.| ## Return value diff --git a/query-languages/dax/sin-function-dax.md b/query-languages/dax/sin-function-dax.md index 7e170e694..9432555f7 100644 --- a/query-languages/dax/sin-function-dax.md +++ b/query-languages/dax/sin-function-dax.md @@ -18,7 +18,7 @@ SIN(number) |Term|Definition| |--------|--------------| -|number|Required. The angle in radians for which you want the sine.| +|`number`|Required. The angle in radians for which you want the sine.| ## Return value @@ -26,13 +26,13 @@ Returns the sine of the given angle. ## Remarks -If an argument is in degrees, multiply it by PI()/180 or use the RADIANS function to convert it to radians. +If an argument is in degrees, multiply it by `PI()/180` or use the RADIANS function to convert it to radians. ## Example |Formula|Description|Result| |-----------|---------------|----------| -|= SIN(PI())|Sine of pi radians (0, approximately).|0.0| -|= SIN(PI()/2)|Sine of pi/2 radians.|1.0| -|= SIN(30*PI()/180)|Sine of 30 degrees.|0.5| -|= SIN(RADIANS(30))|Sine of 30 degrees.|0.5| +|`= SIN(PI())`|Sine of pi radians (0, approximately).|0.0| +|`= SIN(PI()/2)`|Sine of pi/2 radians.|1.0| +|`= SIN(30*PI()/180)`|Sine of 30 degrees.|0.5| +|`= SIN(RADIANS(30))`|Sine of 30 degrees.|0.5| diff --git a/query-languages/dax/sinh-function-dax.md b/query-languages/dax/sinh-function-dax.md index c06f94f7f..b237f0e8a 100644 --- a/query-languages/dax/sinh-function-dax.md +++ b/query-languages/dax/sinh-function-dax.md @@ -18,7 +18,7 @@ SINH(number) |Term|Definition| |--------|--------------| -|number|Required. Any real number.| +|`number`|Required. Any real number.| ## Return value diff --git a/query-languages/dax/sln-function-dax.md b/query-languages/dax/sln-function-dax.md index 03c701d7c..1e2231732 100644 --- a/query-languages/dax/sln-function-dax.md +++ b/query-languages/dax/sln-function-dax.md @@ -20,9 +20,9 @@ SLN(, , ) |Term|Definition| |--------|--------------| -|cost|The initial cost of the asset.| -|salvage|The value at the end of the depreciation (sometimes called the salvage value of the asset).| -|life|The number of periods over which the asset is depreciated (sometimes called the useful life of the asset).| +|`cost`|The initial cost of the asset.| +|`salvage`|The value at the end of the depreciation (sometimes called the salvage value of the asset).| +|`life`|The number of periods over which the asset is depreciated (sometimes called the useful life of the asset).| ## Return Value diff --git a/query-languages/dax/sqrt-function-dax.md b/query-languages/dax/sqrt-function-dax.md index 69011314a..7220637ac 100644 --- a/query-languages/dax/sqrt-function-dax.md +++ b/query-languages/dax/sqrt-function-dax.md @@ -18,7 +18,7 @@ SQRT() |Term|Definition| |--------|--------------| -|number|The number for which you want the square root, a column that contains numbers, or an expression that evaluates to a number.| +|`number`|The number for which you want the square root, a column that contains numbers, or an expression that evaluates to a number.| ## Return value diff --git a/query-languages/dax/sqrtpi-function-dax.md b/query-languages/dax/sqrtpi-function-dax.md index 8addd7290..4aa56fcd0 100644 --- a/query-languages/dax/sqrtpi-function-dax.md +++ b/query-languages/dax/sqrtpi-function-dax.md @@ -18,7 +18,7 @@ SQRTPI(number) |Term|Definition| |--------|--------------| -|number|Required. The number by which pi is multiplied.| +|`number`|Required. The number by which pi is multiplied.| ## Return value @@ -28,5 +28,5 @@ Returns the square root of (number * pi). |Formula|Description|Result| |-----------|---------------|----------| -|= SQRTPI(1)|Square root of pi.|1.772454| -|= SQRTPI(2)|Square root of 2 * pi.|2.506628| +|`= SQRTPI(1)`|Square root of pi.|1.772454| +|`= SQRTPI(2)`|Square root of 2 * pi.|2.506628| diff --git a/query-languages/dax/startat-statement-dax.md b/query-languages/dax/startat-statement-dax.md index 132f6019d..f1abb87dc 100644 --- a/query-languages/dax/startat-statement-dax.md +++ b/query-languages/dax/startat-statement-dax.md @@ -16,8 +16,8 @@ Introduces a statement that defines the starting value at which the query result |Term |Definition | |---------|---------| -| value | A constant value. Cannot be an expression. | -| parameter | The name of a parameter in an XMLA statement prefixed with an `@` character. | +| `value` | A constant value. Cannot be an expression. | +| `parameter` | The name of a parameter in an XMLA statement prefixed with an `@` character. | ## Remarks diff --git a/query-languages/dax/startofmonth-function-dax.md b/query-languages/dax/startofmonth-function-dax.md index 567d76d91..c3507a35f 100644 --- a/query-languages/dax/startofmonth-function-dax.md +++ b/query-languages/dax/startofmonth-function-dax.md @@ -17,7 +17,7 @@ STARTOFMONTH() |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| +|`dates`|A column that contains dates.| ## Return value @@ -25,7 +25,7 @@ A table containing a single column and single row with a date value. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/startofquarter-function-dax.md b/query-languages/dax/startofquarter-function-dax.md index ac06e3d34..52f90ec02 100644 --- a/query-languages/dax/startofquarter-function-dax.md +++ b/query-languages/dax/startofquarter-function-dax.md @@ -18,7 +18,7 @@ STARTOFQUARTER() |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| +|`dates`|A column that contains dates.| ## Return value @@ -26,7 +26,7 @@ A table containing a single column and single row with a date value. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/startofyear-function-dax.md b/query-languages/dax/startofyear-function-dax.md index c1bf85cf1..107530235 100644 --- a/query-languages/dax/startofyear-function-dax.md +++ b/query-languages/dax/startofyear-function-dax.md @@ -18,8 +18,8 @@ STARTOFYEAR() |Term|Definition| |--------|--------------| -|dates|A column that contains dates.| -|YearEndDate|(Optional) A year end date value.| +|`dates`|A column that contains dates.| +|`YearEndDate`|(Optional) A year end date value.| ## Return value @@ -27,7 +27,7 @@ A table containing a single column and single row with a date value. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. diff --git a/query-languages/dax/statistical-functions-dax.md b/query-languages/dax/statistical-functions-dax.md index b6f9d4792..6e79e42d2 100644 --- a/query-languages/dax/statistical-functions-dax.md +++ b/query-languages/dax/statistical-functions-dax.md @@ -38,7 +38,7 @@ Statistical functions calculate values related to statistical distributions and |[PERMUT](permut-function-dax.md) | Returns the number of permutations for a given number of objects that can be selected from number objects. | |[POISSON.DIST](poisson-dist-function-dax.md) | Returns the Poisson distribution. | |[RANK.EQ](rank-eq-function-dax.md) | Returns the ranking of a number in a list of numbers. | -|[RANKX](rankx-function-dax.md) | Returns the ranking of a number in a list of numbers for each row in the *table* argument. | +|[RANKX](rankx-function-dax.md) | Returns the ranking of a number in a list of numbers for each row in the `table` argument. | |[SAMPLE](sample-function-dax.md) | Returns a sample of N rows from the specified table. | |[STDEV.P](stdev-p-function-dax.md) | Returns the standard deviation of the entire population. | |[STDEV.S](stdev-s-function-dax.md) | Returns the standard deviation of a sample population. | diff --git a/query-languages/dax/stdev-p-function-dax.md b/query-languages/dax/stdev-p-function-dax.md index 55ee2d57b..3c706ebf1 100644 --- a/query-languages/dax/stdev-p-function-dax.md +++ b/query-languages/dax/stdev-p-function-dax.md @@ -18,7 +18,7 @@ STDEV.P() |Term|Definition| |--------|--------------| -| columnName | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | +| `columnName` | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | ## Return value @@ -34,9 +34,9 @@ A number representing the standard deviation of the entire population. where x̃ is the average value of x for the entire population and n is the population size. -- Blank rows are filtered out from *columnName* and not considered in the calculations. +- Blank rows are filtered out from `columnName` and not considered in the calculations. -- An error is returned if *columnName* contains less than 2 non-blank rows +- An error is returned if `columnName` contains less than 2 non-blank rows - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/stdev-s-function-dax.md b/query-languages/dax/stdev-s-function-dax.md index 3d30892e9..14f3a083a 100644 --- a/query-languages/dax/stdev-s-function-dax.md +++ b/query-languages/dax/stdev-s-function-dax.md @@ -18,7 +18,7 @@ STDEV.S() |Term|Definition| |--------|--------------| -| columnName | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | +| `columnName` | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | ## Return value @@ -36,9 +36,9 @@ A number that represents the standard deviation of a sample population. where x̃ is the average value of x for the sample population and n is the population size. -- Blank rows are filtered out from *columnName* and not considered in the calculations. +- Blank rows are filtered out from `columnName` and not considered in the calculations. -- An error is returned if *columnName* contains less than 2 non-blank rows. +- An error is returned if `columnName` contains less than 2 non-blank rows. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/stdevx-p-function-dax.md b/query-languages/dax/stdevx-p-function-dax.md index a9b70db0c..d73e5bf59 100644 --- a/query-languages/dax/stdevx-p-function-dax.md +++ b/query-languages/dax/stdevx-p-function-dax.md @@ -18,8 +18,8 @@ STDEVX.P(
, ) |Term|Definition| |--------|--------------| -| table | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | -|expression | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | +|`table` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | +|`expression` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | ## Return value @@ -27,7 +27,7 @@ A number that represents the standard deviation of the entire population. ## Remarks -- STDEVX.P evaluates *expression* for each row of *table* and returns the standard deviation of expression assuming that table refers to the entire population. If the data in *table* represents a sample of the population, you should compute the standard deviation by using STDEVX.S instead. +- STDEVX.P evaluates `expression` for each row of `table` and returns the standard deviation of expression assuming that table refers to the entire population. If the data in `table` represents a sample of the population, you should compute the standard deviation by using STDEVX.S instead. - STDEVX.P uses the following formula: @@ -35,9 +35,9 @@ A number that represents the standard deviation of the entire population. where x̃ is the average value of x for the entire population and n is the population size. -- Blank rows are filtered out from *columnName* and not considered in the calculations. +- Blank rows are filtered out from `columnName` and not considered in the calculations. -- An error is returned if *columnName* contains less than 2 non-blank rows +- An error is returned if `columnName` contains less than 2 non-blank rows - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/stdevx-s-function-dax.md b/query-languages/dax/stdevx-s-function-dax.md index 186ea672b..0c62c139a 100644 --- a/query-languages/dax/stdevx-s-function-dax.md +++ b/query-languages/dax/stdevx-s-function-dax.md @@ -18,8 +18,8 @@ STDEVX.S(
, ) |Term|Definition| |--------|--------------| -| table | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | -|expression | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | +|`table` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | +|`expression` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | ## Return value @@ -29,7 +29,7 @@ A number with the standard deviation of a sample population. ## Remarks -- STDEVX.S evaluates *expression* for each row of *table* and returns the standard deviation of *expression* assuming that *table* refers to a sample of the population. If *table* represents the entire population, then compute the standard deviation by using STDEVX.P. +- STDEVX.S evaluates `expression` for each row of `table` and returns the standard deviation of `expression` assuming that `table` refers to a sample of the population. If `table` represents the entire population, then compute the standard deviation by using STDEVX.P. - STDEVX.S uses the following formula: @@ -37,9 +37,9 @@ A number with the standard deviation of a sample population. where x̃ is the average value of x for the entire population and n is the population size. -- Blank rows are filtered out from *columnName* and not considered in the calculations. +- Blank rows are filtered out from `columnName` and not considered in the calculations. -- An error is returned if *columnName* contains less than 2 non-blank rows. +- An error is returned if `columnName` contains less than 2 non-blank rows. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/substitute-function-dax.md b/query-languages/dax/substitute-function-dax.md index 5f2ef712a..5847603f2 100644 --- a/query-languages/dax/substitute-function-dax.md +++ b/query-languages/dax/substitute-function-dax.md @@ -18,10 +18,10 @@ SUBSTITUTE(, , , ) |Term|Definition| |--------|--------------| -|text|The text in which you want to substitute characters, or a reference to a column containing text.| -|old_text|The existing text that you want to replace.| -|new_text|The text you want to replace **old_text** with.| -|instance_num|(optional) The occurrence of **old_text** you want to replace. If omitted, every instance of **old_text** is replaced| +|`text`|The text in which you want to substitute characters, or a reference to a column containing text.| +|`old_text`|The existing text that you want to replace.| +|`new_text`|The text you want to replace `old_text` with.| +|`instance_num`|(optional) The occurrence of `old_text` you want to replace. If omitted, every instance of `old_text` is replaced| ## Return value @@ -31,13 +31,13 @@ A string of text. - Use the SUBSTITUTE function when you want to replace specific text in a text string; use the REPLACE function when you want to replace any text of variable length that occurs in a specific location in a text string. -- The SUBSTITUTE function is case-sensitive. If case does not match between **text** and **old_text**, SUBSTITUTE will not replace the text. +- The SUBSTITUTE function is case-sensitive. If case does not match between `text` and `old_text`, SUBSTITUTE will not replace the text. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example: Substitution within a String -The following formula creates a copy of the column [Product Code] that substitutes the new product code **NW** for the old product code **PA** wherever it occurs in the column. +The following formula creates a copy of the column [Product Code] that substitutes the new product code `NW` for the old product code `PA` wherever it occurs in the column. ```dax = SUBSTITUTE([Product Code], "NW", "PA") diff --git a/query-languages/dax/substitutewithindex-function-dax.md b/query-languages/dax/substitutewithindex-function-dax.md index 5df45a8f8..8856d75f7 100644 --- a/query-languages/dax/substitutewithindex-function-dax.md +++ b/query-languages/dax/substitutewithindex-function-dax.md @@ -22,11 +22,11 @@ SUBSTITUTEWITHINDEX(
, , , [
Value: **Desc**. Alternative value: **0**(zero)/**FALSE**. Sorts in descending order of values of orderBy_expression. This is the default value when order parameter is omitted.

Value: **ASC**. Alternative value: **1**/**TRUE**. Ranks in ascending order of orderBy_expression.| +|`table`|A table to be filtered by performing a left semijoin with the table specified as the third argument (indexColumnsTable). This is the table on the left side of the left semijoin so the table returned includes the same columns as this table except that all common columns of the two tables will be replaced with a single index column in the table returned.| +|`indexColumnName`|A string which specifies the name of the index column which is replacing all the common columns in the two tables supplied as arguments to this function.| +|`indexColumnsTable`|The second table for the left semijoin. This is the table on the right side of the left semijoin. Only values present in this table will be returned by the function. Also, the columns of this table (based on column names) will be replaced with a single index column in the table returned by this function.| +|`orderBy_expression`|Any DAX expression where the result value is used to specify the desired sort order of the indexColumnsTable table for generating correct index values. The sort order specified for the indexColumnsTable table defines the index of each row in the table and that index is used in the table returned to represent combinations of values in the indexColumnsTable as they appear in the table supplied as the first argument to this function.| +|`order`|(Optional) A value that specifies how to sort orderBy_expression values, ascending or descending:

Value: `Desc`. Alternative value: `0`(zero)/`FALSE`. Sorts in descending order of values of orderBy_expression. This is the default value when order parameter is omitted.

Value: `ASC`. Alternative value: `1`/`TRUE`. Ranks in ascending order of orderBy_expression.| ## Return value diff --git a/query-languages/dax/sum-function-dax.md b/query-languages/dax/sum-function-dax.md index 0160b3fd7..f14811d9b 100644 --- a/query-languages/dax/sum-function-dax.md +++ b/query-languages/dax/sum-function-dax.md @@ -18,7 +18,7 @@ SUM() |Term|Definition| |--------|--------------| -|column|The column that contains the numbers to sum.| +|`column`|The column that contains the numbers to sum.| ## Return value diff --git a/query-languages/dax/summarize-function-dax.md b/query-languages/dax/summarize-function-dax.md index 2968bb4d3..65d57d370 100644 --- a/query-languages/dax/summarize-function-dax.md +++ b/query-languages/dax/summarize-function-dax.md @@ -18,20 +18,20 @@ SUMMARIZE (
, [, ]…[, , [, < groupBy_columnName >]…, [, ) |Term|Definition| |--------|--------------| -|table|The table containing the rows for which the expression will be evaluated.| -|expression|The expression to be evaluated for each row of the table.| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| ## Return value diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index 4ca1ed632..924a44d22 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -18,24 +18,24 @@ SWITCH(, , [, , ]…[, ]) |Term|Definition| |--------|--------------| -| expression | Any DAX expression that returns a single scalar value where the expression is to be evaluated multiple times (for each row/context). | -| value | A constant value to be matched with the results of **expression**. | -|result |Any scalar expression to be evaluated if the results of **expression** match the corresponding **value**. | -|else |Any scalar expression to be evaluated if the result of **expression** doesn't match any of the **value** arguments. | +|`expression` | Any DAX expression that returns a single scalar value where the expression is to be evaluated multiple times (for each row/context). | +|`value` | A constant value to be matched with the results of `expression`. | +|`result` |Any scalar expression to be evaluated if the results of `expression` match the corresponding `value`. | +|`else` |Any scalar expression to be evaluated if the result of `expression` doesn't match any of the `value` arguments. | ## Return value -If there’s a match with a **value**, a scalar value from the corresponding **result** is returned. If there isn’t a match with a **value**, a value from **else** is returned. If none of the **values** match and **else** isn’t specified, BLANK is returned. +If there’s a match with a `value`, a scalar value from the corresponding `result` is returned. If there isn’t a match with a `value`, a value from `else` is returned. If none of the `values` match and `else` isn’t specified, BLANK is returned. ## Remarks -- The **expression** to be evaluated can be a constant value or an expression. A common use of this function is to set the first parameter to TRUE. See examples below. -- All **result** expressions and the **else** expression must be of the same data type. -- The order of conditions matters. As soon as one **value** matches, the corresponding **result** is returned, and other subsequent **values** aren’t evaluated. Make sure the most restrictive **values** to be evaluated are specified before less restrictive **values**. See examples below. +- The `expression` to be evaluated can be a constant value or an expression. A common use of this function is to set the first parameter to `TRUE`. See examples below. +- All `result` expressions and the `else` expression must be of the same data type. +- The order of conditions matters. As soon as one `value` matches, the corresponding `result` is returned, and other subsequent `values` aren’t evaluated. Make sure the most restrictive `values` to be evaluated are specified before less restrictive `values`. See examples below. ## Examples -A common use of SWITCH is to compare **expression** with constant **values**. The following example creates a calculated column of month names: +A common use of SWITCH is to compare `expression` with constant `values`. The following example creates a calculated column of month names: ```dax = SWITCH ( @@ -56,7 +56,7 @@ A common use of SWITCH is to compare **expression** with constant **values**. Th ) ``` -Another common use of SWITCH is to replace multiple nested IF statements. This is accomplished by setting expression to TRUE, as shown in the following example, which compares Reorder Point and Safety Stock Level on products to identify potential risks of running out of stock: +Another common use of SWITCH is to replace multiple nested IF statements. This is accomplished by setting expression to `TRUE`, as shown in the following example, which compares Reorder Point and Safety Stock Level on products to identify potential risks of running out of stock: ```dax = SWITCH ( @@ -72,7 +72,7 @@ Another common use of SWITCH is to replace multiple nested IF statements. This i ``` -The order of **values** matters. In the following example, the second **result** is never returned because the first value is less restrictive than the second. The result in this example is always “A” or “C”, but never “B”. +The order of `values` matters. In the following example, the second `result` is never returned because the first value is less restrictive than the second. The result in this example is always `A` or `C`, but never `B`. ```dax = SWITCH ( @@ -84,7 +84,7 @@ The order of **values** matters. In the following example, the second **result** ``` -The following statement returns an error because the data types in the **result** arguments are different. Keep in mind that the data types in all **result** and **else** arguments must be the same. +The following statement returns an error because the data types in the `result` arguments are different. Keep in mind that the data types in all `result` and `else` arguments must be the same. ```dax = SWITCH ( diff --git a/query-languages/dax/syd-function-dax.md b/query-languages/dax/syd-function-dax.md index 7c41f97f8..9a365dfa8 100644 --- a/query-languages/dax/syd-function-dax.md +++ b/query-languages/dax/syd-function-dax.md @@ -20,10 +20,10 @@ SYD(, , , ) |Term|Definition| |--------|--------------| -|cost|The initial cost of the asset.| -|salvage|The value at the end of the depreciation (sometimes called the salvage value of the asset).| -|life|The number of periods over which the asset is depreciated (sometimes called the useful life of the asset).| -|per|The period. Must use the same units as life. Must be between 1 and life (inclusive).| +|`cost`|The initial cost of the asset.| +|`salvage`|The value at the end of the depreciation (sometimes called the salvage value of the asset).| +|`life`|The number of periods over which the asset is depreciated (sometimes called the useful life of the asset).| +|`per`|The period. Must use the same units as life. Must be between 1 and life (inclusive).| ## Return Value diff --git a/query-languages/dax/t-dist-2t-function-dax.md b/query-languages/dax/t-dist-2t-function-dax.md index 472bf80d9..99e24d13a 100644 --- a/query-languages/dax/t-dist-2t-function-dax.md +++ b/query-languages/dax/t-dist-2t-function-dax.md @@ -18,8 +18,8 @@ T.DIST.2T(X,Deg_freedom) |Term|Definition| |--------|--------------| -|X|The numeric value at which to evaluate the distribution.| -|Deg_freedom |An integer indicating the number of degrees of freedom.| +|`X`|The numeric value at which to evaluate the distribution.| +|`Deg_freedom` |An integer indicating the number of degrees of freedom.| ## Return value diff --git a/query-languages/dax/t-dist-function-dax.md b/query-languages/dax/t-dist-function-dax.md index 1b8c43a1a..25ed16887 100644 --- a/query-languages/dax/t-dist-function-dax.md +++ b/query-languages/dax/t-dist-function-dax.md @@ -18,9 +18,9 @@ T.DIST(X,Deg_freedom,Cumulative) |Term|Definition| |--------|--------------| -|X|The numeric value at which to evaluate the distribution.| -|Deg_freedom |An integer indicating the number of degrees of freedom.| -|Cumulative|A logical value that determines the form of the function. If cumulative is TRUE, T.DIST returns the cumulative distribution function; if FALSE, it returns the probability density function.| +|`X`|The numeric value at which to evaluate the distribution.| +|`Deg_freedom` |An integer indicating the number of degrees of freedom.| +|`Cumulative`|A logical value that determines the form of the function. If cumulative is `TRUE`, T.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| ## Return value diff --git a/query-languages/dax/t-dist-rt-function-dax.md b/query-languages/dax/t-dist-rt-function-dax.md index 57281aa42..c75b319b9 100644 --- a/query-languages/dax/t-dist-rt-function-dax.md +++ b/query-languages/dax/t-dist-rt-function-dax.md @@ -18,8 +18,8 @@ T.DIST.RT(X,Deg_freedom) |Term|Definition| |--------|--------------| -|X|The numeric value at which to evaluate the distribution.| -|Deg_freedom |An integer indicating the number of degrees of freedom.| +|`X`|The numeric value at which to evaluate the distribution.| +|`Deg_freedom` |An integer indicating the number of degrees of freedom.| ## Return value diff --git a/query-languages/dax/t-inv-2t-function-dax.md b/query-languages/dax/t-inv-2t-function-dax.md index 928ab42d1..9ce432534 100644 --- a/query-languages/dax/t-inv-2t-function-dax.md +++ b/query-languages/dax/t-inv-2t-function-dax.md @@ -18,8 +18,8 @@ T.INV.2T(Probability,Deg_freedom) |Term|Definition| |--------|--------------| -|Probability|The probability associated with the Student's t-distribution.| -|Deg_freedom|The number of degrees of freedom with which to characterize the distribution.| +|`Probability`|The probability associated with the Student's t-distribution.| +|`Deg_freedom`|The number of degrees of freedom with which to characterize the distribution.| ## Return value diff --git a/query-languages/dax/t-inv-function-dax.md b/query-languages/dax/t-inv-function-dax.md index 1069b45c0..1958f43d8 100644 --- a/query-languages/dax/t-inv-function-dax.md +++ b/query-languages/dax/t-inv-function-dax.md @@ -18,8 +18,8 @@ T.INV(Probability,Deg_freedom) |Term|Definition| |--------|--------------| -|Probability|The probability associated with the Student's t-distribution.| -|Deg_freedom|The number of degrees of freedom with which to characterize the distribution.| +|`Probability`|The probability associated with the Student's t-distribution.| +|`Deg_freedom`|The number of degrees of freedom with which to characterize the distribution.| ## Return value diff --git a/query-languages/dax/table-constructor.md b/query-languages/dax/table-constructor.md index d31a1adab..c0a8e9ba3 100644 --- a/query-languages/dax/table-constructor.md +++ b/query-languages/dax/table-constructor.md @@ -17,7 +17,7 @@ Returns a table of one or more columns. |Term|Definition| |--------|--------------| -|scalarExprN|Any DAX expression that returns a scalar value.| +|`scalarExprN`|Any DAX expression that returns a scalar value.| ## Return value @@ -88,5 +88,5 @@ Returns the following table of a single column of String data type: |---------| |1 | |1/1/2017 | -|TRUE | +|``TRUE`` | |A | diff --git a/query-languages/dax/table-manipulation-functions-dax.md b/query-languages/dax/table-manipulation-functions-dax.md index 068c2c915..f145d5bba 100644 --- a/query-languages/dax/table-manipulation-functions-dax.md +++ b/query-languages/dax/table-manipulation-functions-dax.md @@ -19,7 +19,7 @@ These functions return a table or manipulate existing tables. |[DISTINCT column](distinct-function-dax.md) | Returns a one-column table that contains the distinct values from the specified column. | |[DISTINCT table](distinct-table-function-dax.md) | Returns a table by removing duplicate rows from another table or expression. | |[EXCEPT](except-function-dax.md) | Returns the rows of one table which do not appear in another table. | -|[FILTERS](filters-function-dax.md) | Returns a table of values directly applied as filters to *columnName*. | +|[FILTERS](filters-function-dax.md) | Returns a table of values directly applied as filters to `columnName`. | |[GENERATE](generate-function-dax.md) | Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. | |[GENERATEALL](generateall-function-dax.md) | Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. | |[GENERATESERIES](generateseries-function-dax.md) | Returns a single column table containing the values of an arithmetic series. | diff --git a/query-languages/dax/tan-function-dax.md b/query-languages/dax/tan-function-dax.md index c57770fd1..7bb4f005d 100644 --- a/query-languages/dax/tan-function-dax.md +++ b/query-languages/dax/tan-function-dax.md @@ -18,7 +18,7 @@ TAN(number) |Term|Definition| |--------|--------------| -|number|Required. The angle in radians for which you want the tangent.| +|`number`|Required. The angle in radians for which you want the tangent.| ## Return value @@ -32,6 +32,6 @@ If your argument is in degrees, multiply it by PI()/180 or use the RADIANS funct |Formula|Description|Result| |-----------|---------------|----------| -|= TAN(0.785)|Tangent of 0.785 radians (0.99920)|0.99920| -|= TAN(45*PI()/180)|Tangent of 45 degrees (1)|1| -|= TAN(RADIANS(45))|Tangent of 45 degrees (1)|1| +|`= TAN(0.785)`|Tangent of 0.785 radians (0.99920)|0.99920| +|`= TAN(45*PI()/180)`|Tangent of 45 degrees (1)|1| +|`= TAN(RADIANS(45))`|Tangent of 45 degrees (1)|1| diff --git a/query-languages/dax/tanh-function-dax.md b/query-languages/dax/tanh-function-dax.md index cc6003235..02461ec86 100644 --- a/query-languages/dax/tanh-function-dax.md +++ b/query-languages/dax/tanh-function-dax.md @@ -18,7 +18,7 @@ TANH(number) |Term|Definition| |--------|--------------| -|number|Required. Any real number.| +|`number`|Required. Any real number.| ## Return value @@ -36,6 +36,6 @@ Returns the hyperbolic tangent of a number. |Formula|Description|Result| |-----------|---------------|----------| -|= TANH(-2)|Hyperbolic tangent of -2 (-0.96403)|-0.964028| -|= TANH(0)|Hyperbolic tangent of 0 (0)|0| -|= TANH(0.5)|Hyperbolic tangent of 0.5 (0.462117)|0.462117| +|`= TANH(-2)`|Hyperbolic tangent of -2 (-0.96403)|-0.964028| +|`= TANH(0)`|Hyperbolic tangent of 0 (0)|0| +|`= TANH(0.5)`|Hyperbolic tangent of 0.5 (0.462117)|0.462117| diff --git a/query-languages/dax/tbilleq-function-dax.md b/query-languages/dax/tbilleq-function-dax.md index 5cbced722..7cfa38f3d 100644 --- a/query-languages/dax/tbilleq-function-dax.md +++ b/query-languages/dax/tbilleq-function-dax.md @@ -20,9 +20,9 @@ TBILLEQ(, , ) |Term|Definition| |--------|--------------| -|settlement|The Treasury bill's settlement date. The security settlement date is the date after the issue date when the Treasury bill is traded to the buyer.| -|maturity|The Treasury bill's maturity date. The maturity date is the date when the Treasury bill expires.| -|discount|The Treasury bill's discount rate.| +|`settlement`|The Treasury bill's settlement date. The security settlement date is the date after the issue date when the Treasury bill is traded to the buyer.| +|`maturity`|The Treasury bill's maturity date. The maturity date is the date when the Treasury bill expires.| +|`discount`|The Treasury bill's discount rate.| ## Return Value diff --git a/query-languages/dax/tbillprice-function-dax.md b/query-languages/dax/tbillprice-function-dax.md index d3354e558..c97bcfb0c 100644 --- a/query-languages/dax/tbillprice-function-dax.md +++ b/query-languages/dax/tbillprice-function-dax.md @@ -20,9 +20,9 @@ TBILLPRICE(, , ) |Term|Definition| |--------|--------------| -|settlement|The Treasury bill's settlement date. The security settlement date is the date after the issue date when the Treasury bill is traded to the buyer.| -|maturity|The Treasury bill's maturity date. The maturity date is the date when the Treasury bill expires.| -|discount|The Treasury bill's discount rate.| +|`settlement`|The Treasury bill's settlement date. The security settlement date is the date after the issue date when the Treasury bill is traded to the buyer.| +|`maturity`|The Treasury bill's maturity date. The maturity date is the date when the Treasury bill expires.| +|`discount`|The Treasury bill's discount rate.| ## Return Value diff --git a/query-languages/dax/tbillyield-function-dax.md b/query-languages/dax/tbillyield-function-dax.md index 477930600..8f5b53946 100644 --- a/query-languages/dax/tbillyield-function-dax.md +++ b/query-languages/dax/tbillyield-function-dax.md @@ -20,9 +20,9 @@ TBILLYIELD(, , ) |Term|Definition| |--------|--------------| -|settlement|The Treasury bill's settlement date. The security settlement date is the date after the issue date when the Treasury bill is traded to the buyer.| -|maturity|The Treasury bill's maturity date. The maturity date is the date when the Treasury bill expires.| -|pr|The Treasury bill's price per \\$100 face value.| +|`settlement`|The Treasury bill's settlement date. The security settlement date is the date after the issue date when the Treasury bill is traded to the buyer.| +|`maturity`|The Treasury bill's maturity date. The maturity date is the date when the Treasury bill expires.| +|`pr`|The Treasury bill's price per \\$100 face value.| ## Return Value diff --git a/query-languages/dax/text-functions-dax.md b/query-languages/dax/text-functions-dax.md index 6bccdc3fb..b5e90cd28 100644 --- a/query-languages/dax/text-functions-dax.md +++ b/query-languages/dax/text-functions-dax.md @@ -13,7 +13,7 @@ Data Analysis Expressions (DAX) includes a set of text functions based on the li |[COMBINEVALUES](combinevalues-function-dax.md) | Joins two or more text strings into one text string. | |[CONCATENATE](concatenate-function-dax.md) | Joins two text strings into one text string. | |[CONCATENATEX](concatenatex-function-dax.md) | Concatenates the result of an expression evaluated for each row in a table. | -|[EXACT](exact-function-dax.md) | Compares two text strings and returns TRUE if they are exactly the same, FALSE otherwise. | +|[EXACT](exact-function-dax.md) | Compares two text strings and returns ``TRUE`` if they are exactly the same, `FALSE` otherwise. | |[FIND](find-function-dax.md) | Returns the starting position of one text string within another text string. | |[FIXED](fixed-function-dax.md) | Rounds a number to the specified number of decimals and returns the result as text. | |[FORMAT](format-function-dax.md) | Converts a value to text according to the specified format. | diff --git a/query-languages/dax/time-function-dax.md b/query-languages/dax/time-function-dax.md index e13e3b287..99d01ec3b 100644 --- a/query-languages/dax/time-function-dax.md +++ b/query-languages/dax/time-function-dax.md @@ -6,7 +6,7 @@ title: "TIME function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Converts hours, minutes, and seconds given as numbers to a time in **datetime** format. +Converts hours, minutes, and seconds given as numbers to a time in `datetime` format. ## Syntax @@ -18,19 +18,19 @@ TIME(hour, minute, second) |Term|Definition| |--------|--------------| -|hour|**Import mode:** A number from 0 to 32767 representing the hour.
Any value greater than 23 will be divided by 24 and the remainder will be treated as the hour value, represented as a fraction of a day.
For example, TIME(27,0,0) = TIME(3,0,0) = 3:00:00 AM

**DirectQuery mode:** A number from 0 to 23 representing the hour.| -|minute|**Import mode:** A number from 0 to 32767 representing the minute.
Any value greater than 59 minutes will be converted to hours and minutes.
Any value greater than 1440 (24 hours) does not alter the date portion - instead, it will be divided by 1440 and the remainder will be treated as the minute value, represented as a fraction of a day.
For example, TIME(0,2190,0) = TIME(0,750,0) = TIME(12,30,0) = 12:30:00 PM

**DirectQuery mode:** A number from 0 to 59 representing the minute.| -|second|**Import mode:** A number from 0 to 32767 representing the second.
Any value greater than 59 will be converted to hours, minutes, and seconds.
For example, TIME(0,0,2000) = TIME(0,33,20) = 12:33:20 AM

**DirectQuery mode:** A number from 0 to 59 representing the second.| +|`hour`|**Import mode:** A number from 0 to 32767 representing the hour.
Any value greater than 23 will be divided by 24 and the remainder will be treated as the hour value, represented as a fraction of a day.
For example, TIME(27,0,0) = TIME(3,0,0) = 3:00:00 AM

**DirectQuery mode:** A number from 0 to 23 representing the hour.| +|`minute`|**Import mode:** A number from 0 to 32767 representing the minute.
Any value greater than 59 minutes will be converted to hours and minutes.
Any value greater than 1440 (24 hours) does not alter the date portion - instead, it will be divided by 1440 and the remainder will be treated as the minute value, represented as a fraction of a day.
For example, TIME(0,2190,0) = TIME(0,750,0) = TIME(12,30,0) = 12:30:00 PM

**DirectQuery mode:** A number from 0 to 59 representing the minute.| +|`second`|**Import mode:** A number from 0 to 32767 representing the second.
Any value greater than 59 will be converted to hours, minutes, and seconds.
For example, TIME(0,0,2000) = TIME(0,33,20) = 12:33:20 AM

**DirectQuery mode:** A number from 0 to 59 representing the second.| ## Return value -A time (**datetime**) ranging from 00:00:00 (12:00:00 AM) to 23:59:59 (11:59:59 PM). +A time (`datetime`) ranging from 00:00:00 (12:00:00 AM) to 23:59:59 (11:59:59 PM). ## Remarks -- In contrast to Microsoft Excel, which stores dates and times as serial numbers, DAX works with date and time values in a **datetime** format. Numbers in other formats are implicitly converted when you use a date/time value in a DAX function. If you need to use serial numbers, you can use formatting to change the way that the numbers are displayed. +- In contrast to Microsoft Excel, which stores dates and times as serial numbers, DAX works with date and time values in a `datetime` format. Numbers in other formats are implicitly converted when you use a date/time value in a DAX function. If you need to use serial numbers, you can use formatting to change the way that the numbers are displayed. -- Time values are a portion of a date value, and in the serial number system are represented by a decimal number. Therefore, the **datetime** value 12:00 PM is equivalent to 0.5, because it is half of a day. +- Time values are a portion of a date value, and in the serial number system are represented by a decimal number. Therefore, the `datetime` value 12:00 PM is equivalent to 0.5, because it is half of a day. - You can supply the arguments to the TIME function as values that you type directly, as the result of another expression, or by a reference to a column that contains a numeric value. diff --git a/query-languages/dax/timevalue-function-dax.md b/query-languages/dax/timevalue-function-dax.md index b6831d78d..74edc5254 100644 --- a/query-languages/dax/timevalue-function-dax.md +++ b/query-languages/dax/timevalue-function-dax.md @@ -18,17 +18,17 @@ TIMEVALUE(time_text) |Term|Definition| |--------|--------------| -|time_text|A text string that that represents a certain time of the day. Any date information included in the **time_text** argument is ignored.| +|`time_text`|A text string that that represents a certain time of the day. Any date information included in the `time_text` argument is ignored.| ## Return value -A date (**datetime**). +A date (`datetime`). ## Remarks - Time values are a portion of a date value and represented by a decimal number. For example, 12:00 PM is represented as 0.5 because it is half of a day. -- When the **time_text** argument is a text representation of the date and time, the function uses the locale and date/time settings of the model to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator, and any input text using colons as time separators will parse correctly. Review your locale settings to understand your results. +- When the `time_text` argument is a text representation of the date and time, the function uses the locale and date/time settings of the model to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator, and any input text using colons as time separators will parse correctly. Review your locale settings to understand your results. - Date and datetime can also be specified as a literal in the format `dt"YYYY-MM-DD"`, `dt"YYYY-MM-DDThh:mm:ss"`, or `dt"YYYY-MM-DD hh:mm:ss"`. When specified as a literal, using the TIMEVALUE function in the expression is not necessary. To learn more, see [DAX Syntax | Date and time](dax-syntax-reference.md#date-and-time). diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 2a39df278..97bdfffb6 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -1,3 +1,4 @@ +items: - name: Data Analysis Expressions (DAX) Reference href: index.yml expanded: true diff --git a/query-languages/dax/tocsv-function-dax.md b/query-languages/dax/tocsv-function-dax.md index 5fd9ce0a3..62aec8311 100644 --- a/query-languages/dax/tocsv-function-dax.md +++ b/query-languages/dax/tocsv-function-dax.md @@ -18,10 +18,10 @@ TOCSV(
, [MaxRows], [Delimiter], [IncludeHeaders]) |Term|Definition| |--------|--------------| -|Table|The table to be converted to CSV.| -|MaxRows| (Optional) The maximum number fo rows to convert. Default is 10 rows.| -|Delimiter|(Optional) A column delimiter. Default is comma ",".| -|IncludeHeaders|(Optional) Specifies a header with column name as the first row. Default is True.| +|`Table`|The table to be converted to CSV.| +|`MaxRows`| (Optional) The maximum number fo rows to convert. Default is 10 rows.| +|`Delimiter`|(Optional) A column delimiter. Default is comma ",".| +|`IncludeHeaders`|(Optional) Specifies a header with column name as the first row. Default is True.| ## Return value diff --git a/query-languages/dax/today-function-dax.md b/query-languages/dax/today-function-dax.md index 5cefa725d..de6d11091 100644 --- a/query-languages/dax/today-function-dax.md +++ b/query-languages/dax/today-function-dax.md @@ -16,7 +16,7 @@ TODAY() ## Return value -A date (**datetime**). +A date (`datetime`). ## Remarks diff --git a/query-languages/dax/tojson-function-dax.md b/query-languages/dax/tojson-function-dax.md index 617814a52..defd97b4a 100644 --- a/query-languages/dax/tojson-function-dax.md +++ b/query-languages/dax/tojson-function-dax.md @@ -18,12 +18,12 @@ TOJSON(
, [MaxRows]) |Term|Definition| |--------|--------------| -|Table|The table to be converted to JSON.| -|MaxRows|(Optional) The maximum number fo rows to convert. Default is 10 rows.| +|`Table`|The table to be converted to JSON.| +|`MaxRows`|(Optional) The maximum number fo rows to convert. Default is 10 rows.| ## Return value -A string with JSON representation of the table. The representation contains column names as "header", count-of-rows as “rowCount”, and values as “data”. +A string with JSON representation of the table. The representation contains column names as "header", count-of-rows as "rowCount", and values as "data". ## Example diff --git a/query-languages/dax/topn-function-dax.md b/query-languages/dax/topn-function-dax.md index 8dcfb63dd..e693e6a76 100644 --- a/query-languages/dax/topn-function-dax.md +++ b/query-languages/dax/topn-function-dax.md @@ -18,18 +18,18 @@ TOPN(,
, , [[, , |Parameter|Definition| |-------------|--------------| -|N_Value|The number of rows to return. Any DAX expression that returns a scalar value, where the expression is to be evaluated multiple times (for each row/context). See Remarks to better understand when the number of rows returned could be larger than *n_value*. | -|Table|Any DAX expression that returns a table of data from where to extract the top 'n' rows. See Remarks to better understand when an empty table is returned. | -|OrderBy_Expression|(Optional) Any DAX expression where the result value is used to sort the table and evaluated for each row of *table*. | -|Order|(Optional) A value that specifies how to sort *OrderBy_Expression* values:

- **0** (zero) or **FALSE**. Sorts in descending order of values of *Order*. Default when *Order* parameter is omitted.

- **1** or **TRUE**. Ranks in ascending order of *OrderBy*.| +|`N_Value`|The number of rows to return. Any DAX expression that returns a scalar value, where the expression is to be evaluated multiple times (for each row/context). See Remarks to better understand when the number of rows returned could be larger than `n_value`. | +|`Table`|Any DAX expression that returns a table of data from where to extract the top 'n' rows. See Remarks to better understand when an empty table is returned. | +|`OrderBy_Expression`|(Optional) Any DAX expression where the result value is used to sort the table and evaluated for each row of `table`. | +|`Order`|(Optional) A value that specifies how to sort `OrderBy_Expression` values:

- `0` (zero) or `FALSE`. Sorts in descending order of values of `Order`. Default when `Order` parameter is omitted.

- `1` or `TRUE`. Ranks in ascending order of `OrderBy`.| ## Return value -A table with the top N rows of *Table* or an empty table if *N_Value* is 0 (zero) or less. Rows are not sorted in any particular order. +A table with the top N rows of `Table` or an empty table if `N_Value` is 0 (zero) or less. Rows are not sorted in any particular order. ## Remarks -- If there is a tie, in *Order_By* values, at the N-th row of the table, then all tied rows are returned. Then, when there are ties at the N-th row the function might return more than n rows. +- If there is a tie, in `Order_By` values, at the N-th row of the table, then all tied rows are returned. Then, when there are ties at the N-th row the function might return more than n rows. - If N_Value is 0 (zero) or less, TOPN returns an empty table. diff --git a/query-languages/dax/totalmtd-function-dax.md b/query-languages/dax/totalmtd-function-dax.md index 3c75e402d..dea1bc745 100644 --- a/query-languages/dax/totalmtd-function-dax.md +++ b/query-languages/dax/totalmtd-function-dax.md @@ -6,7 +6,7 @@ title: "TOTALMTD function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the value of the **expression** for the month to date, in the current context. +Evaluates the value of the `expression` for the month to date, in the current context. ## Syntax @@ -18,24 +18,24 @@ TOTALMTD(,[,]) |Parameter|Definition| |-------------|--------------| -|expression|An expression that returns a scalar value.| -|dates|A column that contains dates.| -|filter|(optional) An expression that specifies a filter to apply to the current context.| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| ## Return value -A scalar value that represents the **expression** evaluated for the dates in the current month-to-date, given the dates in **dates**. +A scalar value that represents the `expression` evaluated for the dates in the current month-to-date, given the dates in `dates`. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). -- The **filter** expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). +- The `filter` expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/totalqtd-function-dax.md b/query-languages/dax/totalqtd-function-dax.md index 111ba5ff5..321e80996 100644 --- a/query-languages/dax/totalqtd-function-dax.md +++ b/query-languages/dax/totalqtd-function-dax.md @@ -6,7 +6,7 @@ title: "TOTALQTD function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the value of the **expression** for the dates in the quarter to date, in the current context. +Evaluates the value of the `expression` for the dates in the quarter to date, in the current context. ## Syntax @@ -18,24 +18,24 @@ TOTALQTD(,[,]) |Parameter|Definition| |-------------|--------------| -|expression|An expression that returns a scalar value.| -|dates|A column that contains dates.| -|filter|(optional) An expression that specifies a filter to apply to the current context.| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| ## Return value -A scalar value that represents the **expression** evaluated for all dates in the current quarter to date, given the dates in **dates**. +A scalar value that represents the `expression` evaluated for all dates in the current quarter to date, given the dates in `dates`. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). -- The **filter** expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). +- The `filter` expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/totalytd-function-dax.md b/query-languages/dax/totalytd-function-dax.md index b0ed56313..aa56cdcfb 100644 --- a/query-languages/dax/totalytd-function-dax.md +++ b/query-languages/dax/totalytd-function-dax.md @@ -6,7 +6,7 @@ title: "TOTALYTD function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the year-to-date value of the **expression** in the current context. +Evaluates the year-to-date value of the `expression` in the current context. ## Syntax @@ -18,27 +18,27 @@ TOTALYTD(,[,][,]) |Parameter|Definition| |-------------|--------------| -|expression|An expression that returns a scalar value.| -|dates|A column that contains dates.| -|filter|(optional) An expression that specifies a filter to apply to the current context.| -|year_end_date|(optional) A literal string with a date that defines the year-end date. The default is December 31.| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| ## Return value -A scalar value that represents the **expression** evaluated for the current year-to-date **dates**. +A scalar value that represents the `expression` evaluated for the current year-to-date `dates`. ## Remarks -- The **dates** argument can be any of the following: +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - A Boolean expression that defines a single-column table of date/time values. - Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). -- The **filter** expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). +- The `filter` expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). -- The **year_end_date** parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is not required and is ignored. For example, the following formula specifies a (fiscal) year_end_date of 6/30 in an EN-US locale workbook. +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is not required and is ignored. For example, the following formula specifies a (fiscal) year_end_date of 6/30 in an EN-US locale workbook. ```dax = TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey], ALL('DateTime'), "6/30") diff --git a/query-languages/dax/treatas-function-dax.md b/query-languages/dax/treatas-function-dax.md index 330c169d4..efa90216a 100644 --- a/query-languages/dax/treatas-function-dax.md +++ b/query-languages/dax/treatas-function-dax.md @@ -18,8 +18,8 @@ TREATAS(table_expression, [, [, [,…]]]} ) |Term|Definition| |--------|--------------| -|table_expression|An expression that results in a table.| -|column|One or more existing columns. It cannot be an expression. | +|`table_expression`|An expression that results in a table.| +|`column`|One or more existing columns. It cannot be an expression. | ## Return value diff --git a/query-languages/dax/trim-function-dax.md b/query-languages/dax/trim-function-dax.md index d596fdf80..71f17c7ef 100644 --- a/query-languages/dax/trim-function-dax.md +++ b/query-languages/dax/trim-function-dax.md @@ -18,7 +18,7 @@ TRIM() |Term|Definition| |--------|--------------| -|**text**|The text from which you want spaces removed, or a column that contains text.| +|`text`|The text from which you want spaces removed, or a column that contains text.| ## Return value diff --git a/query-languages/dax/true-function-dax.md b/query-languages/dax/true-function-dax.md index be7f55b57..549f6275f 100644 --- a/query-languages/dax/true-function-dax.md +++ b/query-languages/dax/true-function-dax.md @@ -1,12 +1,12 @@ --- -description: "Learn more about: TRUE" -title: "TRUE function (DAX) | Microsoft Docs" +description: "Learn more about: `TRUE` +title: `TRUE` function (DAX) | Microsoft Docs" --- # TRUE [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the logical value TRUE. +Returns the logical value `TRUE`. ## Syntax @@ -16,15 +16,15 @@ TRUE() ## Return value -Always TRUE. +Always `TRUE`. ## Remarks -The word TRUE is also interpreted as the logical value TRUE. +The word `TRUE` is also interpreted as the logical value `TRUE`. ## Example -The formula returns the logical value TRUE when the value in the column, 'InternetSales_USD'[SalesAmount_USD], is greater than 200000. +The formula returns the logical value `TRUE` when the value in the column, 'InternetSales_USD'[SalesAmount_USD], is greater than 200000. ```dax = IF(SUM('InternetSales_USD'[SalesAmount_USD]) >200000, TRUE(), false()) @@ -34,12 +34,12 @@ The following table shows the results when the example formula is used in a repo |Row Labels|2005|2006|2007|2008|-|Grand Total| |---------------|-----------------|----|----|----|----|----| -|Accessories|FALSE|FALSE|TRUE|TRUE|FALSE|TRUE| -|Bikes|TRUE|TRUE|TRUE|TRUE|FALSE|TRUE| -|Clothing|FALSE|FALSE|FALSE|FALSE|FALSE|TRUE| -|Components|FALSE|FALSE|FALSE|FALSE|FALSE|FALSE| -||FALSE|FALSE|FALSE|FALSE|FALSE|FALSE| -|Grand Total|TRUE|TRUE|TRUE|TRUE|FALSE|TRUE| +|Accessories|`FALSE`|`FALSE`|`TRUE`|`TRUE`|`FALSE`|`TRUE`| +|Bikes|`TRUE`|`TRUE`|`TRUE`|`TRUE`|`FALSE`|`TRUE`| +|Clothing|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`TRUE`| +|Components|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`| +||`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`| +|Grand Total|`TRUE`|`TRUE`|`TRUE`|`TRUE`|`FALSE`|`TRUE`| ## Related content diff --git a/query-languages/dax/trunc-function-dax.md b/query-languages/dax/trunc-function-dax.md index 50f1f5200..54cc39c30 100644 --- a/query-languages/dax/trunc-function-dax.md +++ b/query-languages/dax/trunc-function-dax.md @@ -18,8 +18,8 @@ TRUNC(,) |Term|Definition| |--------|--------------| -|number|The number you want to truncate.| -|num_digits|A number specifying the precision of the truncation; if omitted, 0 (zero)| +|`number`|The number you want to truncate.| +|`num_digits`|A number specifying the precision of the truncation; if omitted, 0 (zero)| ## Return value diff --git a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md index 94e8b5f26..14f2f5e8e 100644 --- a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md +++ b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md @@ -68,7 +68,7 @@ The following table presents the available functions, a brief description of the |221|162|112|14|3|162|221|162| |81|162|112|14|3|162|81|162| -[PATHITEMREVERSE function](pathitemreverse-function-dax.md) - Returns the item at *position* from a PATH() like function result, counting backwards from right to left. +[PATHITEMREVERSE function](pathitemreverse-function-dax.md) - Returns the item at `position` from a PATH() like function result, counting backwards from right to left. In the following example column PathItemReverse - 3rd from right is defined as '`= PATHITEMREVERSE([Path], 3)`'; this example returns the EmployeKey at third position in the Path string from the right, using the same sample data from the Path() example. |EmployeeKey|ParentEmployeeKey|Path|PathItemReverse - 3rd from right| @@ -83,14 +83,14 @@ The following table presents the available functions, a brief description of the |221|162|112|14|3|162|221|3| |81|162|112|14|3|162|81|3| -[PATHCONTAINS function](pathcontains-function-dax.md) - Returns **TRUE** if the specified *item* exists within the specified *path*. In the following example column PathContains - employee 162 is defined as '`= PATHCONTAINS([Path], "162")`'; this example returns **TRUE** if the given path contains employee 162. This example uses the results from the Path() example above. +[PATHCONTAINS function](pathcontains-function-dax.md) - Returns `TRUE` if the specified `item` exists within the specified `path`. In the following example column PathContains - employee 162 is defined as '`= PATHCONTAINS([Path], "162")`'; this example returns `TRUE` if the given path contains employee 162. This example uses the results from the Path() example above. |EmployeeKey|ParentEmployeeKey|Path|PathContains - employee 162| |---------------|---------------------|--------|-------------------------------------| -|112||112|FALSE| -|14|112|112|14|FALSE| -|3|14|112|14|3|FALSE| -|11|3|112|14|3|11|FALSE| -|13|3|112|14|3|13|FALSE| -|162|3|112|14|3|162|TRUE| -|117|162|112|14|3|162|117|TRUE| +|112||112|`FALSE`| +|14|112|112|14|`FALSE`| +|3|14|112|14|3|`FALSE`| +|11|3|112|14|3|11|`FALSE`| +|13|3|112|14|3|13|`FALSE`| +|162|3|112|14|3|162|`TRUE`| +|117|162|112|14|3|162|117|`TRUE`| diff --git a/query-languages/dax/unichar-function-dax.md b/query-languages/dax/unichar-function-dax.md index 47b8575dd..4bac3647d 100644 --- a/query-languages/dax/unichar-function-dax.md +++ b/query-languages/dax/unichar-function-dax.md @@ -18,7 +18,7 @@ UNICHAR(number) |Term|Definition| |--------|--------------| -|number|The Unicode number that represents the character.| +|`number`|The Unicode number that represents the character.| ## Return value diff --git a/query-languages/dax/unicode-function-dax.md b/query-languages/dax/unicode-function-dax.md index 9ff1c5327..d437e244f 100644 --- a/query-languages/dax/unicode-function-dax.md +++ b/query-languages/dax/unicode-function-dax.md @@ -18,7 +18,7 @@ UNICODE( ) |Term|Definition| |--------|--------------| -|Text|Text is the character for which you want the Unicode value.| +|`Text`|Text is the character for which you want the Unicode value.| ## Return value diff --git a/query-languages/dax/union-function-dax.md b/query-languages/dax/union-function-dax.md index 944c6aa03..c6be76eda 100644 --- a/query-languages/dax/union-function-dax.md +++ b/query-languages/dax/union-function-dax.md @@ -18,7 +18,7 @@ UNION(, [,]…) |Term|Definition| |--------|--------------| -|table_expression|Any DAX expression that returns a table.| +|`table_expression`|Any DAX expression that returns a table.| ## Return value diff --git a/query-languages/dax/upper-function-dax.md b/query-languages/dax/upper-function-dax.md index 6fa30456e..9aca762aa 100644 --- a/query-languages/dax/upper-function-dax.md +++ b/query-languages/dax/upper-function-dax.md @@ -18,7 +18,7 @@ UPPER () |Term|Definition| |--------|--------------| -|text|The text you want converted to uppercase, or a reference to a column that contains text.| +|`text`|The text you want converted to uppercase, or a reference to a column that contains text.| ## Return value diff --git a/query-languages/dax/userelationship-function-dax.md b/query-languages/dax/userelationship-function-dax.md index dfa794265..7e3cebaa8 100644 --- a/query-languages/dax/userelationship-function-dax.md +++ b/query-languages/dax/userelationship-function-dax.md @@ -18,8 +18,8 @@ USERELATIONSHIP(,) |Term|Definition| |--------|--------------| -| columnName1 | The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression. | -| columnName2 | The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression. | +| `columnName1` | The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression. | +| `columnName2` | The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression. | ## Return value diff --git a/query-languages/dax/utcnow-function-dax.md b/query-languages/dax/utcnow-function-dax.md index dda20f699..21e59b888 100644 --- a/query-languages/dax/utcnow-function-dax.md +++ b/query-languages/dax/utcnow-function-dax.md @@ -16,11 +16,11 @@ UTCNOW() ## Return value -A (**datetime)**. +A `datetime`. ## Remarks -The result of the UTCNOW function changes only when the formula is refreshed. It is not continuously updated. +The result of the UTCNOW function changes only when the formula is refreshed. It is not continuously updated. ## Example @@ -32,7 +32,7 @@ EVALUATE { FORMAT(UTCNOW(), "General Date") } Returns: -|[Value] | +|Value | |---------| |2/2/2018 4:48:08 AM | diff --git a/query-languages/dax/value-function-dax.md b/query-languages/dax/value-function-dax.md index 682c93472..f77b46120 100644 --- a/query-languages/dax/value-function-dax.md +++ b/query-languages/dax/value-function-dax.md @@ -18,7 +18,7 @@ VALUE() |Term|Definition| |--------|--------------| -|text|The text to be converted.| +|`text`|The text to be converted.| ## Return value @@ -26,7 +26,7 @@ The converted number in decimal data type. ## Remarks -- The value passed as the **text** parameter can be in any of the constant, number, date, or time formats recognized by the application or services you are using. If **text** is not in one of these formats, an error is returned. +- The value passed as the `text` parameter can be in any of the constant, number, date, or time formats recognized by the application or services you are using. If `text` is not in one of these formats, an error is returned. - You do not generally need to use the VALUE function in a formula because the engine implicitly converts text to numbers as necessary. diff --git a/query-languages/dax/values-function-dax.md b/query-languages/dax/values-function-dax.md index dfc32a2f1..13d9cf923 100644 --- a/query-languages/dax/values-function-dax.md +++ b/query-languages/dax/values-function-dax.md @@ -21,7 +21,7 @@ VALUES() |Term|Definition| |--------|--------------| -|TableName or ColumnName|A column from which unique values are to be returned, or a table from which rows are to be returned.| +|`TableName` or `ColumnName`|A column from which unique values are to be returned, or a table from which rows are to be returned.| ## Return value @@ -37,7 +37,7 @@ When the input parameter is a column name, a single column table. When the input ## Related functions -In most scenarios, when the argument is a column name, the results of the VALUES function are identical to those of the **DISTINCT** function. Both functions remove duplicates and return a list of the possible values in the specified column. However, the VALUES function can also return a blank value. This blank value is useful in cases where you are looking up distinct values from a related table, but a value used in the relationship is missing from one table. In database terminology, this is termed a violation of referential integrity. Such mismatches in data can occur when one table is being updated and the related table is not. +In most scenarios, when the argument is a column name, the results of the VALUES function are identical to those of the `DISTINCT` function. Both functions remove duplicates and return a list of the possible values in the specified column. However, the VALUES function can also return a blank value. This blank value is useful in cases where you are looking up distinct values from a related table, but a value used in the relationship is missing from one table. In database terminology, this is termed a violation of referential integrity. Such mismatches in data can occur when one table is being updated and the related table is not. When the argument is a table name, the result of the VALUES function returns all rows in the specified table plus a blank row, if there is a violation of referential integrity. The DISTINCT function removes duplicate rows and returns unique rows in the specified table. diff --git a/query-languages/dax/var-dax.md b/query-languages/dax/var-dax.md index bdc8c2847..3879f744e 100644 --- a/query-languages/dax/var-dax.md +++ b/query-languages/dax/var-dax.md @@ -16,8 +16,8 @@ VAR = |Term|Definition| |--------|--------------| -|name|The name of the variable (identifier).
Delimiters are not supported. For example, 'varName' or [varName] will result in an error.
Supported character set: a-z, A-Z, 0-9.
0-9 are not valid as first character.
__ (double underscore) is allowed as a prefix to the identifier name.
No other special characters are supported.
Reserved keywords not allowed.
Names of existing tables are not allowed.
Empty spaces are not allowed.| -|expression|A DAX expression which returns a scalar or table value.| +|`name`|The name of the variable (identifier).
Delimiters are not supported. For example, 'varName' or [varName] will result in an error.
Supported character set: a-z, A-Z, 0-9.
0-9 are not valid as first character.
__ (double underscore) is allowed as a prefix to the identifier name.
No other special characters are supported.
Reserved keywords not allowed.
Names of existing tables are not allowed.
Empty spaces are not allowed.| +|`expression`|A DAX expression which returns a scalar or table value.| ## Return value diff --git a/query-languages/dax/var-p-function-dax.md b/query-languages/dax/var-p-function-dax.md index e54d41fa1..94070fdc4 100644 --- a/query-languages/dax/var-p-function-dax.md +++ b/query-languages/dax/var-p-function-dax.md @@ -18,7 +18,7 @@ VAR.P() |Term|Definition| |--------|--------------| -| columnName | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | +|`columnName` | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | ## Return value @@ -36,9 +36,9 @@ A number with the variance of the entire population. and n is the population size -- Blank rows are filtered out from *columnName* and not considered in the calculations. +- Blank rows are filtered out from `columnName` and not considered in the calculations. -- An error is returned if *columnName* contains less than 2 non-blank rows +- An error is returned if `columnName` contains less than 2 non-blank rows - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/var-s-function-dax.md b/query-languages/dax/var-s-function-dax.md index 390ff20d5..ce71b4cdf 100644 --- a/query-languages/dax/var-s-function-dax.md +++ b/query-languages/dax/var-s-function-dax.md @@ -18,7 +18,7 @@ VAR.S() |Term|Definition| |--------|--------------| -| columnName | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | +|`columnName`| The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | ## Return value @@ -36,9 +36,9 @@ A number with the variance of a sample population. and n is the population size -- Blank rows are filtered out from *columnName* and not considered in the calculations. +- Blank rows are filtered out from `columnName` and not considered in the calculations. -- An error is returned if *columnName* contains less than 2 non-blank rows. +- An error is returned if `columnName` contains less than 2 non-blank rows. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/varx-p-function-dax.md b/query-languages/dax/varx-p-function-dax.md index 77be3f8f9..f1d291351 100644 --- a/query-languages/dax/varx-p-function-dax.md +++ b/query-languages/dax/varx-p-function-dax.md @@ -18,8 +18,8 @@ VARX.P(
, ) |Term|Definition| |--------|--------------| -| table| Any DAX expression that returns a table of data. | -| expression | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | +|`table`| Any DAX expression that returns a table of data. | +|`expression`| Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | ## Return value @@ -37,9 +37,9 @@ A number with the variance of the entire population. and n is the population size -- Blank rows are filtered out from *columnName* and not considered in the calculations. +- Blank rows are filtered out from `columnName` and not considered in the calculations. -- An error is returned if *columnName* contains less than 2 non-blank rows +- An error is returned if `columnName` contains less than 2 non-blank rows - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/varx-s-function-dax.md b/query-languages/dax/varx-s-function-dax.md index 6d9960fc7..907f004f5 100644 --- a/query-languages/dax/varx-s-function-dax.md +++ b/query-languages/dax/varx-s-function-dax.md @@ -18,8 +18,8 @@ VARX.S(
, ) |Term|Definition| |--------|--------------| -| table | Any DAX expression that returns a table of data. | -| expression | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | +|`table` | Any DAX expression that returns a table of data. | +|`expression` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | ## Return value @@ -27,7 +27,7 @@ A number that represents the variance of a sample population. ## Remarks -- VARX.S evaluates *expression* for each row of *table* and returns the variance of *expression*; on the assumption that *table* refers to a sample of the population. If *table* represents the entire population, then you should compute the variance by using VARX.P. +- VARX.S evaluates `expression` for each row of `table` and returns the variance of `expression`; on the assumption that `table` refers to a sample of the population. If `table` represents the entire population, then you should compute the variance by using VARX.P. - VAR.S uses the following formula: @@ -37,9 +37,9 @@ A number that represents the variance of a sample population. and n is the population size -- Blank rows are filtered out from *columnName* and not considered in the calculations. +- Blank rows are filtered out from `columnName` and not considered in the calculations. -- An error is returned if *columnName* contains less than 2 non-blank rows. +- An error is returned if `columnName` contains less than 2 non-blank rows. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/vdb-function-dax.md b/query-languages/dax/vdb-function-dax.md index 644bdc943..9ee2dfe12 100644 --- a/query-languages/dax/vdb-function-dax.md +++ b/query-languages/dax/vdb-function-dax.md @@ -20,13 +20,13 @@ VDB(, , , , [, [, - If no_switch evaluates to TRUE, VDB does not switch to straight-line depreciation, even when the depreciation is greater than the declining balance calculation.
- If no_switch evaluates to FALSE or is omitted, VDB switches to straight-line depreciation when depreciation is greater than the declining balance calculation.| +|`cost`|The initial cost of the asset.| +|`salvage`|The value at the end of the depreciation (sometimes called the salvage value of the asset). This value can be 0.| +|`life`|The number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).| +|`start_period`|The starting period for which you want to calculate the depreciation. Start_period must use the same units as life. Must be between 1 and life (inclusive).| +|`end_period`|The ending period for which you want to calculate the depreciation. End_period must use the same units as life. Must be between start_period and life (inclusive).| +|`factor`|(Optional) The rate at which the balance declines. If factor is omitted, it is assumed to be 2 (the double-declining balance method). Change factor if you do not want to use the double-declining balance method. For a description of the double-declining balance method, see DDB.| +|`no_switch`|(Optional) A logical value specifying whether to switch to straight-line depreciation when depreciation is greater than the declining balance calculation. If omitted, it is assumed to be `FALSE`.
- If no_switch evaluates to `TRUE` VDB does not switch to straight-line depreciation, even when the depreciation is greater than the declining balance calculation.
- If no_switch evaluates to `FALSE` or is omitted, VDB switches to straight-line depreciation when depreciation is greater than the declining balance calculation.| ## Return Value @@ -41,7 +41,7 @@ The depreciation over the specified period. - start_period < 1 or start_period > end_period. - end_period < start_period or end_period > life. - factor < 0. - - no_switch does not evaluate to either TRUE or FALSE. + - no_switch does not evaluate to either `TRUE` or `FALSE`. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/weekday-function-dax.md b/query-languages/dax/weekday-function-dax.md index 69ab9b884..a3709c02e 100644 --- a/query-languages/dax/weekday-function-dax.md +++ b/query-languages/dax/weekday-function-dax.md @@ -18,8 +18,8 @@ WEEKDAY(, ) |Term|Definition| |--------|--------------| -|date|A date in **datetime** format.

Dates should be entered by using the DATE function, by using expressions that result in a date, or as the result of other formulas.| -|return_type|A number that determines the Return value:

Return type: **1**, week begins on Sunday (1) and ends on Saturday (7). numbered 1 through 7.

Return type: **2**, week begins on Monday (1) and ends on Sunday (7).

Return type: **3**, week begins on Monday (0) and ends on Sunday (6).numbered 0 through 6.| +|`date`|A date in `datetime` format.

Dates should be entered by using the DATE function, by using expressions that result in a date, or as the result of other formulas.| +|`return_type`|A number that determines the Return value:

Return type: **1**, week begins on Sunday (1) and ends on Saturday (7). numbered 1 through 7.

Return type: **2**, week begins on Monday (1) and ends on Sunday (7).

Return type: **3**, week begins on Monday (0) and ends on Sunday (6).numbered 0 through 6.| ## Return value @@ -27,15 +27,15 @@ An integer number from 1 to 7. ## Remarks -- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX works with dates and times in a **datetime** format. If you need to display dates as serial numbers, you can use the formatting options in Excel. +- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX works with dates and times in a `datetime` format. If you need to display dates as serial numbers, you can use the formatting options in Excel. -- You can also type dates in an accepted text representation of a date, but to avoid unexpected results, it is best to convert the text date to a **datetime** format first. +- You can also type dates in an accepted text representation of a date, but to avoid unexpected results, it is best to convert the text date to a `datetime` format first. -- When the date argument is a text representation of the date, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. If the current date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is interpreted as a **datetime** value equivalent to January 8th of 2009. However, if the current date/time settings represent dates in the format of Day/Month/Year, then the same string would be interpreted as a **datetime** value equivalent to August 1st of 2009. +- When the date argument is a text representation of the date, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. If the current date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is interpreted as a `datetime` value equivalent to January 8th of 2009. However, if the current date/time settings represent dates in the format of Day/Month/Year, then the same string would be interpreted as a `datetime` value equivalent to August 1st of 2009. ## Example -The following example gets the date from the [HireDate] column, adds 1, and displays the weekday corresponding to that date. Because the **return_type** argument has been omitted, the default format is used, in which 1 is Sunday and 7 is Saturday. If the result is 4, the day would be Wednesday. +The following example gets the date from the [HireDate] column, adds 1, and displays the weekday corresponding to that date. Because the `return_type` argument has been omitted, the default format is used, in which 1 is Sunday and 7 is Saturday. If the result is 4, the day would be Wednesday. ```dax = WEEKDAY([HireDate]+1) diff --git a/query-languages/dax/weeknum-function-dax.md b/query-languages/dax/weeknum-function-dax.md index acfdcb911..fd797fe32 100644 --- a/query-languages/dax/weeknum-function-dax.md +++ b/query-languages/dax/weeknum-function-dax.md @@ -6,7 +6,7 @@ title: "WEEKNUM function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the week number for the given date according to the **return_type** value. The week number indicates where the week falls numerically within a year. +Returns the week number for the given date according to the `return_type` value. The week number indicates where the week falls numerically within a year. There are two *systems* used for this function: @@ -23,9 +23,8 @@ WEEKNUM([, ]) |Term|Definition| |--------|--------------| -|date|The date in **datetime** format.| -|return_type|(Optional) A number that determines on which day the week begins. Default is 1. See Remarks. -| +|`date`|The date in `datetime` format.| +|`return_type`|(Optional) A number that determines on which day the week begins. Default is 1. See Remarks. | ## Return value @@ -33,9 +32,9 @@ An integer number. ## Remarks -- By default, the WEEKNUM function uses a calendar convention in which the week containing January 1 is considered to be the first week of the year. However, the ISO 8601 calendar standard, widely used in Europe, defines the first week as the one with the majority of days (four or more) falling in the new year. This means that if **return_type** is any valid value other than 21, for any years in which there are three days or less in the first week of January, the WEEKNUM function returns week numbers that are different from the ISO 8601 definition. +- By default, the WEEKNUM function uses a calendar convention in which the week containing January 1 is considered to be the first week of the year. However, the ISO 8601 calendar standard, widely used in Europe, defines the first week as the one with the majority of days (four or more) falling in the new year. This means that if `return_type` is any valid value other than 21, for any years in which there are three days or less in the first week of January, the WEEKNUM function returns week numbers that are different from the ISO 8601 definition. -- For **return_type**, the following valid values may not be supported by some DirectQuery data sources: +- For `return_type`, the following valid values may not be supported by some DirectQuery data sources: |return_type |Week begins on |System | |---------|---------|---------| diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index baaef553a..2cc01bd23 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -19,17 +19,17 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, |Term|Definition| |--------|--------------| -|from|Indicates where the window starts. It can be any DAX expression that returns a scalar value.
The behavior depends on the \ parameter:
- If \ is REL, the number of rows to go back (negative value) or forward (positive value) from the current row to get the first row in the window.
- If \ is ABS, and \ is positive, then it’s the position of the start of the window from beginning of the partition. Indexing is 1-based. For example, 1 means window starts from the beginning of the partition. If \ is negative, then it’s the position of the start of the window from the end of the partition. -1 means the last row in the partition. | +|`from`|Indicates where the window starts. It can be any DAX expression that returns a scalar value.
The behavior depends on the \ parameter:
- If \ is REL, the number of rows to go back (negative value) or forward (positive value) from the current row to get the first row in the window.
- If \ is ABS, and \ is positive, then it’s the position of the start of the window from beginning of the partition. Indexing is 1-based. For example, 1 means window starts from the beginning of the partition. If \ is negative, then it’s the position of the start of the window from the end of the partition. -1 means the last row in the partition. | |from_type |Modifies behavior of the \ parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| -|to|Same as \, but indicates the end of the window. The last row is included in the window.| -|to_type|Same as \, but modifies the behavior of \.| -|relation|(Optional) A table expression from which the output rows are returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|axis|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. -|orderBy|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|blanks|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| -|partitionBy|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| -|matchBy|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|reset|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`to`|Same as \, but indicates the end of the window. The last row is included in the window.| +|`to_type`|Same as \, but modifies the behavior of \.| +|`relation`|(Optional) A table expression from which the output rows are returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| +|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. +|`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| +|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value diff --git a/query-languages/dax/xirr-function-dax.md b/query-languages/dax/xirr-function-dax.md index f34e2a055..c726d11c5 100644 --- a/query-languages/dax/xirr-function-dax.md +++ b/query-languages/dax/xirr-function-dax.md @@ -18,11 +18,11 @@ XIRR(
, , , [, [, ]]) |Term|Definition| |--------|--------------| -|table|A table for which the values and dates expressions should be calculated.| -|values|An expression that returns the cash flow value for each row of the table.| -|dates|An expression that returns the cash flow date for each row of the table.| -|guess|(Optional) An initial guess for the internal rate of return. If omitted, the default guess of 0.1 is used.| -|alternateResult | (Optional) A value returned in place of an error when a solution cannot be determined.| +|`table`|A table for which the values and dates expressions should be calculated.| +|`values`|An expression that returns the cash flow value for each row of the table.| +|`dates`|An expression that returns the cash flow date for each row of the table.| +|`guess`|(Optional) An initial guess for the internal rate of return. If omitted, the default guess of 0.1 is used.| +|`alternateResult` | (Optional) A value returned in place of an error when a solution cannot be determined.| ## Return value diff --git a/query-languages/dax/xnpv-function-dax.md b/query-languages/dax/xnpv-function-dax.md index e865e8142..dd8e4500c 100644 --- a/query-languages/dax/xnpv-function-dax.md +++ b/query-languages/dax/xnpv-function-dax.md @@ -18,10 +18,10 @@ XNPV(
, , , ) |Term|Definition| |--------|--------------| -|table|A table for which the values and dates expressions should be calculated.| -|values|An expression that returns the cash flow value for each row of the table.| -|dates|An expression that returns the cash flow date for each row of the table.| -|rate|The discount rate to apply to the cash flow for each row of the table.| +|`table`|A table for which the values and dates expressions should be calculated.| +|`values`|An expression that returns the cash flow value for each row of the table.| +|`dates`|An expression that returns the cash flow date for each row of the table.| +|`rate`|The discount rate to apply to the cash flow for each row of the table.| ## Return value @@ -51,12 +51,12 @@ The following calculates the present value of the CashFlows table: = XNPV( CashFlows, [Payment], [Date], 0.09 ) ``` -|Date|Payment| +|`Date`|Payment| |--------|-----------| -|1/1/2014|-10000| -|3/1/2014|2750| -|10/30/2014|4250| -|2/15/2015|3250| -|4/1/2015|2750| +|`1/1/2014`|-10000| +|`3/1/2014`|2750| +|`10/30/2014`|4250| +|`2/15/2015`|3250| +|`4/1/2015`|2750| Present value = 2089.50 diff --git a/query-languages/dax/year-function-dax.md b/query-languages/dax/year-function-dax.md index 73f2c9cc9..2ee9ce3d0 100644 --- a/query-languages/dax/year-function-dax.md +++ b/query-languages/dax/year-function-dax.md @@ -18,7 +18,7 @@ YEAR() |Term|Definition| |--------|--------------| -|date|A date in **datetime** or text format, containing the year you want to find.| +|`date`|A date in `datetime` or text format, containing the year you want to find.| ## Return value @@ -26,7 +26,7 @@ An integer in the range 1900-9999. ## Remarks -- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a **datetime** data type to work with dates and times. +- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a `datetime` data type to work with dates and times. - Dates should be entered by using the DATE function, or as results of other formulas or functions. You can also enter dates in accepted text representations of a date, such as March 3, 2007, or Mar-3-2003. diff --git a/query-languages/dax/yearfrac-function-dax.md b/query-languages/dax/yearfrac-function-dax.md index c577466b2..5d37af204 100644 --- a/query-languages/dax/yearfrac-function-dax.md +++ b/query-languages/dax/yearfrac-function-dax.md @@ -18,9 +18,9 @@ YEARFRAC(, , ) |Term|Definition| |--------|--------------| -|start_date|The start date in **datetime** format.| -|end_date|The end date in **datetime** format.| -|basis|(Optional) The type of day count basis to use. All arguments are truncated to integers.

Basis - Description

0 - US (NASD) 30/360 (Default value)

1 - Actual/actual

2 - Actual/360

3 - Actual/365

4 - European 30/360| +|`start_date`|The start date in `datetime` format.| +|`end_date`|The end date in `datetime` format.| +|`basis`|(Optional) The type of day count basis to use. All arguments are truncated to integers.

Basis - Description

0 - US (NASD) 30/360 (Default value)

1 - Actual/actual

2 - Actual/360

3 - Actual/365

4 - European 30/360| ## Return value @@ -28,11 +28,11 @@ A decimal number. The internal data type is a signed IEEE 64-bit (8-byte) double ## Remarks -- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a **datetime** format to work with dates and times. If you need to view dates as serial numbers, you can use the formatting options in Excel. +- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a `datetime` format to work with dates and times. If you need to view dates as serial numbers, you can use the formatting options in Excel. -- If **start_date** or **end_date** are not valid dates, YEARFRAC returns an error. +- If `start_date` or `end_date` are not valid dates, YEARFRAC returns an error. -- If **basis** < 0 or if **basis** > 4, YEARFRAC returns an error. +- If `basis` < 0 or if `basis` > 4, YEARFRAC returns an error. ## Example 1 @@ -52,7 +52,7 @@ The following example returns the fraction of a year represented by the differen Use four-digit years whenever possible, to avoid getting unexpected results. When the year is truncated, the current year is assumed. When the date is or omitted, the first date of the month is assumed. -The second argument, **basis**, has also been omitted. Therefore, the year fraction is calculated according to the US (NASD) 30/360 standard. +The second argument, `basis`, has also been omitted. Therefore, the year fraction is calculated according to the US (NASD) 30/360 standard. ## Related content diff --git a/query-languages/dax/yield-function-dax.md b/query-languages/dax/yield-function-dax.md index 57439e15e..550302a1f 100644 --- a/query-languages/dax/yield-function-dax.md +++ b/query-languages/dax/yield-function-dax.md @@ -20,17 +20,17 @@ YIELD(, , , , , [, , , , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|pr|The security's price per \\$100 face value.| -|redemption|The security's redemption value per \\$100 face value.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`pr`|The security's price per \\$100 face value.| +|`redemption`|The security's redemption value per \\$100 face value.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | diff --git a/query-languages/dax/yieldmat-function-dax.md b/query-languages/dax/yieldmat-function-dax.md index 43a1a667b..77e338b33 100644 --- a/query-languages/dax/yieldmat-function-dax.md +++ b/query-languages/dax/yieldmat-function-dax.md @@ -20,16 +20,16 @@ YIELDMAT(, , , , [, ]) |Term|Definition| |--------|--------------| -|settlement|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| -|maturity|The security's maturity date. The maturity date is the date when the security expires.| -|issue|The security's issue date.| -|rate|The security's interest rate at date of issue.| -|pr|The security's price per \\$100 face value.| -|basis|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|`maturity`|The security's maturity date. The maturity date is the date when the security expires.| +|`issue`|The security's issue date.| +|`rate`|The security's interest rate at date of issue.| +|`pr`|The security's price per \\$100 face value.| +|`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| -The **basis** parameter accepts the following values: +The `basis` parameter accepts the following values: -| **Basis** | **Day count basis** | +| `Basis` | **Day count basis** | | ------------ | ------------------- | | 0 or omitted | US (NASD) 30/360 | | 1 | Actual/actual | @@ -82,6 +82,6 @@ EVALUATE Returns the yield for a security using the terms specified above. -| **[Value]** | +| Value | | ------------------ | | 0.0609543336915387 | From 2ff02fb4f33dc23d748d60c473709b0982cbde77 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:18:24 -0800 Subject: [PATCH 633/934] Format table headers in ACCRINT function documentation --- query-languages/dax/accrint-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/accrint-function-dax.md b/query-languages/dax/accrint-function-dax.md index 8feb2733d..639977aef 100644 --- a/query-languages/dax/accrint-function-dax.md +++ b/query-languages/dax/accrint-function-dax.md @@ -96,7 +96,7 @@ EVALUATE Returns the accrued interest from issue to settlement, for a security with the terms specified above. -| **Value** | +| **[Value]** | | ---------------- | | 116.944444444444 | @@ -113,6 +113,6 @@ EVALUATE Returns the accrued interest from first_interest to settlement, for a security with the terms specified above. -| **Value** | +| **[Value]** | | ---------------- | | 66.9444444444445 | From 4c06d6e6918334c33419a07dccde340dab08627d Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:20:04 -0800 Subject: [PATCH 634/934] Update true-function-dax.md --- query-languages/dax/true-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/true-function-dax.md b/query-languages/dax/true-function-dax.md index 549f6275f..4d744ee31 100644 --- a/query-languages/dax/true-function-dax.md +++ b/query-languages/dax/true-function-dax.md @@ -1,6 +1,6 @@ --- -description: "Learn more about: `TRUE` -title: `TRUE` function (DAX) | Microsoft Docs" +description: "Learn more about: TRUE" +title: "TRUE function (DAX)" --- # TRUE From 00c6846c75d642c9455ae58386e4a5521cd415ca Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:20:58 -0800 Subject: [PATCH 635/934] Update cosh-function-dax.md --- query-languages/dax/cosh-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/cosh-function-dax.md b/query-languages/dax/cosh-function-dax.md index 3d9d614b1..8944b5be5 100644 --- a/query-languages/dax/cosh-function-dax.md +++ b/query-languages/dax/cosh-function-dax.md @@ -34,7 +34,7 @@ The hyperbolic cosine of a number. ## Example -Description|Result| +| Description|Result| Resulting value | |-----------|---------------|----------| |`= COSH(4)`|Hyperbolic cosine of 4|27.308233| |`= COSH(EXP(1))`|Hyperbolic cosine of the base of the natural logarithm.|7.6101251| From ec050ff0bff20b9964db94a7f90de77bd0161636 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:21:18 -0800 Subject: [PATCH 636/934] Update gcd-function-dax.md --- query-languages/dax/gcd-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/gcd-function-dax.md b/query-languages/dax/gcd-function-dax.md index 4f5d0d15f..21b849923 100644 --- a/query-languages/dax/gcd-function-dax.md +++ b/query-languages/dax/gcd-function-dax.md @@ -40,7 +40,7 @@ The greatest common divisor of two or more integers. ## Example -Description|Result| +|Description|Result| Resulting value| |-----------|---------------|----------| |`= GCD(5, 2)`|Greatest common divisor of 5 and 2.|1| |`= GCD(24, 36)`|Greatest common divisor of 24 and 36.|12| From d5286fc59b97db63e7f5509ea65cfb6d8f37d458 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:23:30 -0800 Subject: [PATCH 637/934] Update gcd-function-dax.md --- query-languages/dax/gcd-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/gcd-function-dax.md b/query-languages/dax/gcd-function-dax.md index 21b849923..77b7bcb6c 100644 --- a/query-languages/dax/gcd-function-dax.md +++ b/query-languages/dax/gcd-function-dax.md @@ -40,7 +40,7 @@ The greatest common divisor of two or more integers. ## Example -|Description|Result| Resulting value| +|DAX expression|Description|Result| |-----------|---------------|----------| |`= GCD(5, 2)`|Greatest common divisor of 5 and 2.|1| |`= GCD(24, 36)`|Greatest common divisor of 24 and 36.|12| From 209085a1fc8779a36c719ca8c2ba4a7db739c519 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:23:49 -0800 Subject: [PATCH 638/934] Update cosh-function-dax.md --- query-languages/dax/cosh-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/cosh-function-dax.md b/query-languages/dax/cosh-function-dax.md index 8944b5be5..9b4e6fd4d 100644 --- a/query-languages/dax/cosh-function-dax.md +++ b/query-languages/dax/cosh-function-dax.md @@ -34,7 +34,7 @@ The hyperbolic cosine of a number. ## Example -| Description|Result| Resulting value | +|DAX expression|Description|Result| |-----------|---------------|----------| |`= COSH(4)`|Hyperbolic cosine of 4|27.308233| |`= COSH(EXP(1))`|Hyperbolic cosine of the base of the natural logarithm.|7.6101251| From 4dc1c76bbc5b8843d723f4cdc645fc9f21caabbb Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:33:47 -0800 Subject: [PATCH 639/934] Symbols --- query-languages/dax/calculate-function-dax.md | 2 +- query-languages/dax/dax-operator-reference.md | 26 +++++++++---------- query-languages/dax/dax-syntax-reference.md | 4 +-- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/query-languages/dax/calculate-function-dax.md b/query-languages/dax/calculate-function-dax.md index c5ae8623c..af68d5de1 100644 --- a/query-languages/dax/calculate-function-dax.md +++ b/query-languages/dax/calculate-function-dax.md @@ -34,7 +34,7 @@ Filters can be: - Table filter expressions - Filter modification functions -When there are multiple filters, they can be evaluated by using the AND (&&) [logical operator](dax-operator-reference.md#logical-operators), meaning all conditions must be `TRUE`, or by the OR (||) logical operator, meaning either condition can be true. +When there are multiple filters, they can be evaluated by using the AND (`&&`) [logical operator](dax-operator-reference.md#logical-operators), meaning all conditions must be `TRUE`, or by the OR (`||`) logical operator, meaning either condition can be true. #### Boolean filter expressions diff --git a/query-languages/dax/dax-operator-reference.md b/query-languages/dax/dax-operator-reference.md index 68440035c..734c04cb4 100644 --- a/query-languages/dax/dax-operator-reference.md +++ b/query-languages/dax/dax-operator-reference.md @@ -48,17 +48,17 @@ Use the ampersand (`&`) to join, or concatenate, two or more text strings to pro |Text operator|Meaning|Example| |-----------------|-----------|-----------| -|& (ampersand)|Connects, or concatenates, two values to produce one continuous text value|[Region] & ", " & [City]| +|`&` (ampersand)|Connects, or concatenates, two values to produce one continuous text value|`[Region] & ", " & [City]`| ### Logical operators -Use logical operators (&&) and (||) to combine expressions to produce a single result. +Use logical operators (`&&`) and (`||`) to combine expressions to produce a single result. |Text operator|Meaning|Examples| |-----------------|-----------|------------| -|&& (double ampersand)|Creates an AND condition between two expressions that each have a Boolean result. If both expressions return `TRUE`, the combination of the expressions also returns `TRUE`; otherwise the combination returns `FALSE`.|([Region] = "France") && ([BikeBuyer] = "yes"))| -||| (double pipe symbol)|Creates an OR condition between two logical expressions. If either expression returns `TRUE`, the result is `TRUE`; only when both expressions are `FALSE` is the result `FALSE`.|(([Region] = "France") || ([BikeBuyer] = "yes"))| -|IN|Creates a logical OR condition between each row being compared to a table. Note: the table constructor syntax uses curly braces.|'Product'[Color] IN { "Red", "Blue", "Black" }| +|`&&`(double ampersand)|Creates an AND condition between two expressions that each have a Boolean result. If both expressions return `TRUE`, the combination of the expressions also returns `TRUE`; otherwise the combination returns `FALSE`.|`([Region] = "France") && ([BikeBuyer] = "yes"))`| +|`||` (double pipe symbol)|Creates an OR condition between two logical expressions. If either expression returns `TRUE`, the result is `TRUE`; only when both expressions are `FALSE` is the result `FALSE`. | `(([Region] = "France") || ([BikeBuyer] = "yes"))`| +|IN|Creates a logical OR condition between each row being compared to a table. Note: the table constructor syntax uses curly braces.|`'Product'[Color] IN { "Red", "Blue", "Black" }`| ## Operators and precedence order @@ -76,13 +76,13 @@ If you combine several operators in a single formula, the operations are ordered |Operator|Description| |------------|---------------| -|^|Exponentiation| -|–|Sign (as in –1)| -|* and /|Multiplication and division| -|+ and –|Addition and subtraction| -|&|Connects two strings of text (concatenation)| -|=,==,<,>,<=,>=,<>,IN|Comparison| -|NOT|NOT (unary operator)| +|`^`|Exponentiation| +|`–`|Sign (such as –1)| +|`*` and `/`|Multiplication and division| +|`+` and `–`|Addition and subtraction| +|`&`|Connects two strings of text (concatenation)| +|`=,==,<,>,<=,>=,<>,IN`|Comparison| +|`NOT`|`NOT` (unary operator)| ### Using parentheses to control calculation order @@ -98,7 +98,7 @@ In contrast, if you use parentheses to change the syntax, the order is changed s =(5+2)*3 ``` -In the following example, the parentheses around the first part of the formula force the calculation to evaluate the expression `(3 + 0.25)` first and then divide the result by the result of the expression, (`3 - 0.25)`. +In the following example, the parentheses around the first part of the formula force the calculation to evaluate the expression `(3 + 0.25)` first and then divide the result by the result of the expression, `(3 - 0.25)`. ```dax =(3 + 0.25)/(3 - 0.25) diff --git a/query-languages/dax/dax-syntax-reference.md b/query-languages/dax/dax-syntax-reference.md index 6540c98c2..8f0ac21af 100644 --- a/query-languages/dax/dax-syntax-reference.md +++ b/query-languages/dax/dax-syntax-reference.md @@ -9,9 +9,9 @@ This article describes syntax and requirements for the DAX formula expression la ## Syntax requirements -A DAX formula always starts with an equal sign (=). After the equals sign, you can provide any expression that evaluates to a scalar, or an expression that can be converted to a scalar. These include the following: +A DAX formula always starts with an equal sign (`=`). After the equals sign, you can provide any expression that evaluates to a scalar, or an expression that can be converted to a scalar. These include the following: -- A scalar constant, or expression that uses a scalar operator (+,-,*,/,>=,...,&&, ...) +- A scalar constant, or expression that uses a scalar operator (`+,-,*,/,>=,...,&&, ...`) - References to columns or tables. The DAX language always uses tables and columns as inputs to functions, never an array or arbitrary set of values. From c43f0a24acb3630d2429a3598eee6123fdb51839 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:36:07 -0800 Subject: [PATCH 640/934] Update dax-operator-reference.md --- query-languages/dax/dax-operator-reference.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/dax-operator-reference.md b/query-languages/dax/dax-operator-reference.md index 734c04cb4..aef97e83e 100644 --- a/query-languages/dax/dax-operator-reference.md +++ b/query-languages/dax/dax-operator-reference.md @@ -17,11 +17,11 @@ To perform basic mathematical operations such as addition, subtraction, or multi |Arithmetic operator|Meaning|Example| |-----------------------|-----------|-----------| -|+ (plus sign)|Addition|3+3| -|– (minus sign)|Subtraction or sign|3–1–1| -|* (asterisk)|Multiplication|3*3| -|/ (forward slash)|Division|3/3| -|^ (caret)|Exponentiation|16^4| +|`+` (plus sign)|Addition|`3+3`| +|`-` (minus sign)|Subtraction or sign|`3-1-1`| +|`*` (asterisk)|Multiplication|`3*3`| +|`/` (forward slash)|Division|`3/3`| +|`^` (caret)|Exponentiation|`16^4`| > [!NOTE] > The plus sign can function both as a *binary operator* and as a *unary operator*. A binary operator requires numbers on both sides of the operator and performs addition. When you use values in a DAX formula on both sides of the binary operator, DAX tries to cast the values to numeric data types if they are not already numbers. In contrast, the unary operator can be applied to any type of argument. The plus symbol does not affect the type or value and is simply ignored, whereas the minus operator creates a negative value, if applied to a numeric value. From 89dfec72cde05ea8fc8c7105843defebc94f1164 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:38:21 -0800 Subject: [PATCH 641/934] Update dax-operator-reference.md --- query-languages/dax/dax-operator-reference.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/query-languages/dax/dax-operator-reference.md b/query-languages/dax/dax-operator-reference.md index aef97e83e..447bddc02 100644 --- a/query-languages/dax/dax-operator-reference.md +++ b/query-languages/dax/dax-operator-reference.md @@ -32,13 +32,13 @@ You can compare two values with the following operators. When two values are com |Comparison operator|Meaning|Example| |-----------------------|-----------|-----------| -|=|Equal to|[Region] = "USA"| -|==|Strict equal to|[Region] == "USA"| -|>|Greater than|[Sales Date] > "Jan 2009"| -|<|Less than|[Sales Date] < "Jan 1 2009"| -|>=|Greater than or equal to|[Amount] >= 20000| -|<=|Less than or equal to|[Amount] <= 100| -|<>|Not equal to|[Region] <> "USA"| +|`=`|Equal to|[Region] = "USA"| +|`==`|Strict equal to|[Region] == "USA"| +|`>`|Greater than|[Sales Date] > "Jan 2009"| +|`<`|Less than|[Sales Date] < "Jan 1 2009"| +|`>=`|Greater than or equal to|[Amount] >= 20000| +|`<=`|Less than or equal to|[Amount] <= 100| +|`<>`|Not equal to|[Region] <> "USA"| All comparison operators except == treat BLANK as equal to number 0, empty string "", DATE(1899, 12, 30), or `FALSE`. As a result, [Column] = 0 will be true when the value of [Column] is either 0 or BLANK. In contrast, [Column] == 0 is true only when the value of [Column] is 0. @@ -58,7 +58,7 @@ Use logical operators (`&&`) and (`||`) to combine expressions to produce a sing |-----------------|-----------|------------| |`&&`(double ampersand)|Creates an AND condition between two expressions that each have a Boolean result. If both expressions return `TRUE`, the combination of the expressions also returns `TRUE`; otherwise the combination returns `FALSE`.|`([Region] = "France") && ([BikeBuyer] = "yes"))`| |`||` (double pipe symbol)|Creates an OR condition between two logical expressions. If either expression returns `TRUE`, the result is `TRUE`; only when both expressions are `FALSE` is the result `FALSE`. | `(([Region] = "France") || ([BikeBuyer] = "yes"))`| -|IN|Creates a logical OR condition between each row being compared to a table. Note: the table constructor syntax uses curly braces.|`'Product'[Color] IN { "Red", "Blue", "Black" }`| +|`IN`|Creates a logical OR condition between each row being compared to a table. Note: the table constructor syntax uses curly braces.|`'Product'[Color] IN { "Red", "Blue", "Black" }`| ## Operators and precedence order From 25dea0ce9c972b200053ceba8f44d7d4a3e1d166 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:41:34 -0800 Subject: [PATCH 642/934] Update asin-function-dax.md --- query-languages/dax/asin-function-dax.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/asin-function-dax.md b/query-languages/dax/asin-function-dax.md index 0a76f0f0c..e9c2d5c2f 100644 --- a/query-languages/dax/asin-function-dax.md +++ b/query-languages/dax/asin-function-dax.md @@ -30,8 +30,8 @@ To express the arcsine in degrees, multiply the result by 180/PI( ) or use the D ## Example -|`Formula`|Description|Result| +|Formula|Description|Result| |-----------|---------------|----------| -|= ASIN(-0.5)|Arcsine of -0.5 in radians, -pi/6|-0.523598776| -|= ASIN(-0.5)*180/PI()|Arcsine of -0.5 in degrees|-30| -|= DEGREES(ASIN(-0.5))|Arcsine of -0.5 in degrees|-30| +|`= ASIN(-0.5)`|Arcsine of -0.5 in radians, -pi/6|-0.523598776| +|`= ASIN(-0.5)*180/PI()`|Arcsine of -0.5 in degrees|-30| +|`= DEGREES(ASIN(-0.5))`|Arcsine of -0.5 in degrees|-30| From a37f70b741b4c785c12b3b9d7c255a32a3de3564 Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:52:26 -0800 Subject: [PATCH 643/934] Fixing `#VALUE!` and `#NUM!` --- query-languages/dax/beta-dist-function-dax.md | 6 +++--- query-languages/dax/beta-inv-function-dax.md | 8 ++++---- query-languages/dax/chisq-inv-function-dax.md | 6 +++--- query-languages/dax/chisq-inv-rt-function-dax.md | 6 +++--- query-languages/dax/combin-function-dax.md | 4 ++-- query-languages/dax/combina-function-dax.md | 4 ++-- query-languages/dax/confidence-norm-function-dax.md | 10 +++++----- query-languages/dax/confidence-t-function-dax.md | 6 +++--- query-languages/dax/even-function-dax.md | 2 +- query-languages/dax/expon-dist-function-dax.md | 6 +++--- query-languages/dax/floor-function-dax.md | 2 +- query-languages/dax/gcd-function-dax.md | 6 +++--- query-languages/dax/iseven-function-dax.md | 2 +- query-languages/dax/isodd-function-dax.md | 2 +- query-languages/dax/lcm-function-dax.md | 6 +++--- query-languages/dax/permut-function-dax.md | 6 +++--- query-languages/dax/poisson-dist-function-dax.md | 6 +++--- 17 files changed, 44 insertions(+), 44 deletions(-) diff --git a/query-languages/dax/beta-dist-function-dax.md b/query-languages/dax/beta-dist-function-dax.md index 60ddbfc34..17cf86391 100644 --- a/query-languages/dax/beta-dist-function-dax.md +++ b/query-languages/dax/beta-dist-function-dax.md @@ -30,13 +30,13 @@ Returns the beta distribution. ## Remarks -- If any argument is nonnumeric, BETA.DIST returns the #VALUE! error value. +- If any argument is nonnumeric, BETA.DIST returns the `#VALUE!` error value. - If any argument is not an integer, it is rounded. -- If alpha ≤ 0 or beta ≤ 0, BETA.DIST returns the #NUM! error value. +- If `alpha ≤ 0` or beta ≤ 0, BETA.DIST returns the`#NUM!` error value. -- If x < A, x > B, or A = B, BETA.DIST returns the #NUM! error value. +- If x < A, x > B, or A = B, BETA.DIST returns the`#NUM!` error value. - If you omit values for A and B, BETA.DIST uses the standard cumulative beta distribution, so that A = 0 and B = 1. diff --git a/query-languages/dax/beta-inv-function-dax.md b/query-languages/dax/beta-inv-function-dax.md index 0be745a3e..ad7b87c9c 100644 --- a/query-languages/dax/beta-inv-function-dax.md +++ b/query-languages/dax/beta-inv-function-dax.md @@ -32,14 +32,14 @@ Returns the inverse of the beta cumulative probability density function (BETA.DI ## Remarks -- If any argument is nonnumeric, BETA.INV returns the #VALUE! error value. +- If any argument is nonnumeric, `BETA.INV` returns the `#VALUE!` error value. - If any argument is not an integer, it is rounded. -- If alpha ≤ 0 or beta ≤ 0, BETA.INV returns the #NUM! error value. +- If `alpha` ≤ 0 or `beta` ≤ 0, `BETA.INV` returns the `#NUM!` error value. -- If probability ≤ 0 or probability > 1, BETA.INV returns the #NUM! error value. +- If probability ≤ 0 or probability > 1, `BETA.INV` returns the #NUM! error value. -- If you omit values for A and B, BETA.INV uses the standard cumulative beta distribution, so that A = 0 and B = 1. +- If you omit values for A and B, `BETA.INV` uses the standard cumulative beta distribution, so that A = 0 and B = 1. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/chisq-inv-function-dax.md b/query-languages/dax/chisq-inv-function-dax.md index f8fb48d88..04ea34de2 100644 --- a/query-languages/dax/chisq-inv-function-dax.md +++ b/query-languages/dax/chisq-inv-function-dax.md @@ -29,13 +29,13 @@ Returns the inverse of the left-tailed probability of the chi-squared distributi ## Remarks -- If argument is nonnumeric, CHISQ.INV returns the #VALUE! error value. +- If argument is nonnumeric, CHISQ.INV returns the `#VALUE!` error value. -- If probability \< 0 or probability > 1, CHISQ.INV returns the #NUM! error value. +- If probability \< 0 or probability > 1, CHISQ.INV returns the `#NUM!` error value. - If deg_freedom is not an integer, it is rounded. -- If deg_freedom \< 0 or deg_freedom > 10^10, CHISQ.INV returns the #NUM! error value. +- If deg_freedom \< 0 or deg_freedom > 10^10, CHISQ.INV returns the `#NUM!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/chisq-inv-rt-function-dax.md b/query-languages/dax/chisq-inv-rt-function-dax.md index 4c3aaba65..9f22c6a1e 100644 --- a/query-languages/dax/chisq-inv-rt-function-dax.md +++ b/query-languages/dax/chisq-inv-rt-function-dax.md @@ -29,13 +29,13 @@ Returns the inverse of the right-tailed probability of the chi-squared distribut ## Remarks -- If either argument is nonnumeric, CHISQ.INV.RT returns the #VALUE! error value. +- If either argument is nonnumeric, CHISQ.INV.RT returns the `#VALUE!` error value. -- If probability < 0 or probability > 1, CHISQ.INV.RT returns the #NUM! error value. +- If probability < 0 or probability > 1, CHISQ.INV.RT returns the `#NUM!` error value. - If deg_freedom is not an integer, it is rounded. -- If deg_freedom < 1, CHISQ.INV.RT returns the #NUM! error value. +- If deg_freedom < 1, CHISQ.INV.RT returns the `#NUM!` error value. - Given a value for probability, CHISQ.INV.RT seeks that value x such that CHISQ.DIST.RT(x, deg_freedom) = probability. Thus, precision of CHISQ.INV.RT depends on precision of CHISQ.DIST.RT. CHISQ.INV.RT uses an iterative search technique. If the search has not converged after 64 iterations, the function returns the #N/A error value. diff --git a/query-languages/dax/combin-function-dax.md b/query-languages/dax/combin-function-dax.md index 741bdfae8..097d10b86 100644 --- a/query-languages/dax/combin-function-dax.md +++ b/query-languages/dax/combin-function-dax.md @@ -30,9 +30,9 @@ Returns the number of combinations for a given number of items. - Numeric arguments are truncated to integers. -- If either argument is nonnumeric, COMBIN returns the #VALUE! error value. +- If either argument is nonnumeric, COMBIN returns the `#VALUE!` error value. -- If number < 0, number_chosen < 0, or number < number_chosen, COMBIN returns the #NUM! error value. +- If number < 0, number_chosen < 0, or number < number_chosen, COMBIN returns the `#NUM!` error value. - A combination is any set or subset of items, regardless of their internal order. Combinations are distinct from permutations, for which the internal order is significant. diff --git a/query-languages/dax/combina-function-dax.md b/query-languages/dax/combina-function-dax.md index ab7a861fe..319175e26 100644 --- a/query-languages/dax/combina-function-dax.md +++ b/query-languages/dax/combina-function-dax.md @@ -28,9 +28,9 @@ Returns the number of combinations (with repetitions) for a given number of item ## Remarks -- If the value of either argument is outside of its constraints, COMBINA returns the #NUM! error value. +- If the value of either argument is outside of its constraints, COMBINA returns the `#NUM!` error value. -- If either argument is a non-numeric value, COMBINA returns the #VALUE! error value. +- If either argument is a non-numeric value, COMBINA returns the `#VALUE!` error value. - The following equation is used, where $N$ is Number and $M$ is Number_chosen: diff --git a/query-languages/dax/confidence-norm-function-dax.md b/query-languages/dax/confidence-norm-function-dax.md index f0e1a8234..2f8c94778 100644 --- a/query-languages/dax/confidence-norm-function-dax.md +++ b/query-languages/dax/confidence-norm-function-dax.md @@ -28,15 +28,15 @@ A range of values ## Remarks -- If any argument is nonnumeric, CONFIDENCE.NORM returns the #VALUE! error value. +- If any argument is nonnumeric, CONFIDENCE.NORM returns the `#VALUE!` error value. -- If alpha ≤ 0 or alpha ≥ 1, CONFIDENCE.NORM returns the #NUM! error value. +- If `alpha ≤ 0` or `alpha ≥ 1`, CONFIDENCE.NORM returns the `#NUM!` error value. -- If standard_dev ≤ 0, CONFIDENCE.NORM returns the #NUM! error value. +- If `standard_dev ≤ 0`, CONFIDENCE.NORM returns the `#NUM!` error value. -- If size is not an integer, it is rounded. +- If `size` is not an integer, it is rounded. -- If size < 1, CONFIDENCE.NORM returns the #NUM! error value. +- If `size < 1`, CONFIDENCE.NORM returns the `#NUM!` error value. - If we assume alpha equals 0.05, we need to calculate the area under the standard normal curve that equals (1 - alpha), or 95 percent. This value is ± 1.96. The confidence interval is therefore: diff --git a/query-languages/dax/confidence-t-function-dax.md b/query-languages/dax/confidence-t-function-dax.md index 7b4642b85..081122c83 100644 --- a/query-languages/dax/confidence-t-function-dax.md +++ b/query-languages/dax/confidence-t-function-dax.md @@ -28,11 +28,11 @@ Returns the confidence interval for a population mean, using a Student's t distr ## Remarks -- If any argument is nonnumeric, CONFIDENCE.T returns the #VALUE! error value. +- If any argument is nonnumeric, CONFIDENCE.T returns the `#VALUE!` error value. -- If alpha ≤ 0 or alpha ≥ 1, CONFIDENCE.T returns the #NUM! error value. +- If `alpha ≤ 0` or `alpha ≥ 1`, CONFIDENCE.T returns the `#NUM!` error value. -- If standard_dev ≤ 0, CONFIDENCE.T returns the #NUM! error value. +- If `standard_dev ≤ 0`, CONFIDENCE.T returns the `#NUM!` error value. - If size is not an integer, it is rounded. diff --git a/query-languages/dax/even-function-dax.md b/query-languages/dax/even-function-dax.md index edc8968dc..d48362026 100644 --- a/query-languages/dax/even-function-dax.md +++ b/query-languages/dax/even-function-dax.md @@ -26,7 +26,7 @@ Returns number rounded up to the nearest even integer. ## Remarks -- If `number` is nonnumeric, EVEN returns the #VALUE! error value. +- If `number` is nonnumeric, EVEN returns the `#VALUE!` error value. - Regardless of the sign of number, a value is rounded up when adjusted away from zero. If number is an even integer, no rounding occurs. diff --git a/query-languages/dax/expon-dist-function-dax.md b/query-languages/dax/expon-dist-function-dax.md index 0135d986a..19528a4ee 100644 --- a/query-languages/dax/expon-dist-function-dax.md +++ b/query-languages/dax/expon-dist-function-dax.md @@ -28,13 +28,13 @@ Returns the exponential distribution. ## Remarks -- If x or lambda is nonnumeric, EXPON.DIST returns the #VALUE! error value. +- If x or lambda is nonnumeric, EXPON.DIST returns the `#VALUE!` error value. - If x or lambda is not an integer, it is rounded. -- If x < 0, EXPON.DIST returns the #NUM! error value. +- If x < 0, EXPON.DIST returns the `#NUM!` error value. -- If lambda ≤ 0, EXPON.DIST returns the #NUM! error value. +- If lambda ≤ 0, EXPON.DIST returns the `#NUM!` error value. - The equation for the probability density function is: diff --git a/query-languages/dax/floor-function-dax.md b/query-languages/dax/floor-function-dax.md index 87c8ffd00..9a659c34b 100644 --- a/query-languages/dax/floor-function-dax.md +++ b/query-languages/dax/floor-function-dax.md @@ -29,7 +29,7 @@ A decimal number. - If either argument is nonnumeric, FLOOR returns `#VALUE!` error value. -- If number and significance have different signs, FLOOR returns the `#NUM!`error value. +- If number and significance have different signs, FLOOR returns the `#NUM!` error value. - Regardless of the sign of the number, a value is rounded down when adjusted away from zero. If the number is an exact multiple of significance, no rounding occurs. diff --git a/query-languages/dax/gcd-function-dax.md b/query-languages/dax/gcd-function-dax.md index 77b7bcb6c..1c57d8e18 100644 --- a/query-languages/dax/gcd-function-dax.md +++ b/query-languages/dax/gcd-function-dax.md @@ -26,15 +26,15 @@ The greatest common divisor of two or more integers. ## Remarks -- If any argument is nonnumeric, GCD returns the #VALUE! error value. +- If any argument is nonnumeric, GCD returns the `#VALUE!` error value. -- If any argument is less than zero, GCD returns the #NUM! error value. +- If any argument is less than zero, GCD returns the `#NUM!` error value. - One divides any value evenly. - A prime number has only itself and one as even divisors. -- If a parameter to GCD is >=2^53, GCD returns the #NUM! error value. +- If a parameter to GCD is >=2^53, GCD returns the `#NUM!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/iseven-function-dax.md b/query-languages/dax/iseven-function-dax.md index d66360952..b20440ec0 100644 --- a/query-languages/dax/iseven-function-dax.md +++ b/query-languages/dax/iseven-function-dax.md @@ -26,6 +26,6 @@ Returns `TRUE` if number is even, or `FALSE` if number is odd. ## Remarks -- If number is nonnumeric, ISEVEN returns the #VALUE! error value. +- If number is nonnumeric, ISEVEN returns the `#VALUE!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/isodd-function-dax.md b/query-languages/dax/isodd-function-dax.md index ee09f7524..6a6b96ea5 100644 --- a/query-languages/dax/isodd-function-dax.md +++ b/query-languages/dax/isodd-function-dax.md @@ -26,6 +26,6 @@ Returns `TRUE` if number is odd, or `FALSE` if number is even. ## Remarks -- If number is nonnumeric, ISODD returns the #VALUE! error value. +- If number is nonnumeric, ISODD returns the `#VALUE!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/lcm-function-dax.md b/query-languages/dax/lcm-function-dax.md index 1ccf5ad03..2845af9b1 100644 --- a/query-languages/dax/lcm-function-dax.md +++ b/query-languages/dax/lcm-function-dax.md @@ -26,11 +26,11 @@ Returns the least common multiple of integers. ## Remarks -- If any argument is nonnumeric, LCM returns the #VALUE! error value. +- If any argument is nonnumeric, LCM returns the `#VALUE!` error value. -- If any argument is less than zero, LCM returns the #NUM! error value. +- If any argument is less than zero, LCM returns the `#NUM!` error value. -- If LCM(a,b) >=2^53, LCM returns the #NUM! error value. +- If LCM(a,b) >=2^53, LCM returns the `#NUM!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/permut-function-dax.md b/query-languages/dax/permut-function-dax.md index c9a3552b1..c433dc3e5 100644 --- a/query-languages/dax/permut-function-dax.md +++ b/query-languages/dax/permut-function-dax.md @@ -29,11 +29,11 @@ Returns the number of permutations for a given number of objects that can be sel - Both arguments are truncated to integers. -- If number or number_chosen is nonnumeric, PERMUT returns the #VALUE! error value. +- If number or number_chosen is nonnumeric, PERMUT returns the `#VALUE!` error value. -- If number ≤ 0 or if number_chosen < 0, PERMUT returns the #NUM! error value. +- If number ≤ 0 or if number_chosen < 0, PERMUT returns the `#NUM!` error value. -- If number < number_chosen, PERMUT returns the #NUM! error value. +- If number < number_chosen, PERMUT returns the `#NUM!` error value. - The equation for the number of permutations is: diff --git a/query-languages/dax/poisson-dist-function-dax.md b/query-languages/dax/poisson-dist-function-dax.md index b76f920a0..ceacc58e5 100644 --- a/query-languages/dax/poisson-dist-function-dax.md +++ b/query-languages/dax/poisson-dist-function-dax.md @@ -30,11 +30,11 @@ Returns the Poisson distribution. - If x is not an integer, it is rounded. -- If x or mean is nonnumeric, POISSON.DIST returns the #VALUE! error value. +- If x or mean is nonnumeric, POISSON.DIST returns the `#VALUE!` error value. -- If x < 0, POISSON.DIST returns the #NUM! error value. +- If x < 0, POISSON.DIST returns the `#NUM!` error value. -- If mean < 0, POISSON.DIST returns the #NUM! error value. +- If mean < 0, POISSON.DIST returns the `#NUM!` error value. - POISSON.DIST is calculated as follows. From 7cb16d4f23758d7b1edba7e078d0a1a205635725 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 6 Dec 2024 17:54:03 -0800 Subject: [PATCH 644/934] Update dax-syntax-reference.md --- query-languages/dax/dax-syntax-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-syntax-reference.md b/query-languages/dax/dax-syntax-reference.md index 8f0ac21af..c064c4d72 100644 --- a/query-languages/dax/dax-syntax-reference.md +++ b/query-languages/dax/dax-syntax-reference.md @@ -133,7 +133,7 @@ The following table lists the operators that are supported by DAX. For more info |Operator type|Symbol and use| |-----------------|------------------| |Parenthesis operator|`()` precedence order and grouping of arguments| -|Arithmetic operators|`+` (addition)

`-` (subtraction/

sign)

`*` (multiplication)

`/` (division)

`^` (exponentiation)| +|Arithmetic operators|`+` (addition)

`-` (subtraction)

`*` (multiplication)

`/` (division)

`^` (exponentiation)| |Comparison operators|`=` (equal to)

`>` (greater than)

`<` (less than)

`>=` (greater than or equal to)

`<=` (less than or equal to)

`<>` (not equal to)| |Text concatenation operator|`&` (concatenation)| |Logic operators|`&&` (and)

`||` (or)| From f3bc33d23dcce4765288ed1bf33a1f07c1a86385 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 9 Dec 2024 11:41:27 -0800 Subject: [PATCH 645/934] Updated descriptions and added examples to DateTime.LocalNow --- query-languages/m/datetime-localnow.md | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/query-languages/m/datetime-localnow.md b/query-languages/m/datetime-localnow.md index 5f465176e..34c37a039 100644 --- a/query-languages/m/datetime-localnow.md +++ b/query-languages/m/datetime-localnow.md @@ -13,3 +13,33 @@ DateTime.LocalNow() as datetime ## About Returns a `datetime` value set to the current date and time on the system. + +The value returned by this function depends on whether you're running your query on a local machine or online. For example, if you run your query on a system located in the U.S. Pacific Time zone, Power Query Desktop returns the date and time set on your local machine. However, if you run your query on the cloud, Power Query Online returns UTC time because it's reading the time set on the cloud virtual machines, which are all set to UTC. + +## Example 1 + +Invoke this function on a local machine running Power Query Desktop. + +**Usage** + +```powerquery-m +DateTime.LocalNow() +``` + +**Output** + +The current local date and time. + +## Example 2 + +Invoke this function on the cloud running Power Query Online. + +**Usage** + +```powerquery-m +DateTime.LocalNow() +``` + +**Output** + +The current online (UTC) date and time. From ab060098c7feb620ac5cf06c5b02207b2eaef9f1 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 9 Dec 2024 12:25:46 -0800 Subject: [PATCH 646/934] Format text in DAX function documentation --- query-languages/dax/allnoblankrow-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/allnoblankrow-function-dax.md b/query-languages/dax/allnoblankrow-function-dax.md index 9f1d3bfac..816998f86 100644 --- a/query-languages/dax/allnoblankrow-function-dax.md +++ b/query-languages/dax/allnoblankrow-function-dax.md @@ -50,7 +50,7 @@ In the sample data, the ResellerSales_USD table contains one row that has no val Step 1: Verify the unrelated data -Open the `Power Pivot window`, then select the ResellerSales_USD table. In the ProductKey column, filter for blank values. One row will remain. In that row, all column values should be blank except for SalesOrderLineNumber. +Open the **Power Pivot window**, then select the ResellerSales_USD table. In the ProductKey column, filter for blank values. One row will remain. In that row, all column values should be blank except for SalesOrderLineNumber. Step 2: Create a PivotTable From 33b4fd99d93c07f9663d54aa5887c65e190d23f6 Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 9 Dec 2024 15:42:44 -0800 Subject: [PATCH 647/934] remove Microsoft Docs suffix --- query-languages/dax/abs-function-dax.md | 2 +- query-languages/dax/accrint-function-dax.md | 2 +- query-languages/dax/accrintm-function-dax.md | 2 +- query-languages/dax/acos-function-dax.md | 2 +- query-languages/dax/acosh-function-dax.md | 2 +- query-languages/dax/acot-function-dax.md | 2 +- query-languages/dax/acoth-function-dax.md | 2 +- query-languages/dax/addcolumns-function-dax.md | 2 +- .../dax/addmissingitems-function-dax.md | 2 +- query-languages/dax/aggregation-functions-dax.md | 2 +- query-languages/dax/all-function-dax.md | 2 +- .../dax/allcrossfiltered-function-dax.md | 2 +- query-languages/dax/allexcept-function-dax.md | 2 +- .../dax/allnoblankrow-function-dax.md | 2 +- query-languages/dax/allselected-function-dax.md | 2 +- query-languages/dax/amordegrc-function-dax.md | 2 +- query-languages/dax/amorlinc-function-dax.md | 16 ++++++++-------- query-languages/dax/and-function-dax.md | 2 +- .../approximate-distinctcount-function-dax.md | 2 +- query-languages/dax/asin-function-dax.md | 2 +- query-languages/dax/asinh-function-dax.md | 2 +- query-languages/dax/atan-function-dax.md | 2 +- query-languages/dax/atanh-function-dax.md | 2 +- query-languages/dax/average-function-dax.md | 2 +- query-languages/dax/averagea-function-dax.md | 2 +- query-languages/dax/averagex-function-dax.md | 2 +- query-languages/dax/beta-dist-function-dax.md | 2 +- query-languages/dax/beta-inv-function-dax.md | 2 +- query-languages/dax/bitand-function-dax.md | 2 +- query-languages/dax/bitlshift-function-dax.md | 2 +- query-languages/dax/bitor-function-dax.md | 2 +- query-languages/dax/bitrshift-function-dax.md | 2 +- query-languages/dax/bitxor-function-dax.md | 2 +- query-languages/dax/blank-function-dax.md | 2 +- query-languages/dax/calculate-function-dax.md | 2 +- .../dax/calculatetable-function-dax.md | 2 +- query-languages/dax/calendar-function-dax.md | 2 +- query-languages/dax/calendarauto-function-dax.md | 2 +- query-languages/dax/ceiling-function-dax.md | 2 +- query-languages/dax/chisq-dist-function-dax.md | 2 +- .../dax/chisq-dist-rt-function-dax.md | 2 +- query-languages/dax/chisq-inv-function-dax.md | 2 +- query-languages/dax/chisq-inv-rt-function-dax.md | 2 +- .../dax/closingbalancemonth-function-dax.md | 2 +- .../dax/closingbalancequarter-function-dax.md | 2 +- .../dax/closingbalanceyear-function-dax.md | 2 +- query-languages/dax/coalesce-function-dax.md | 2 +- query-languages/dax/collapse-function-dax.md | 2 +- query-languages/dax/collapseall-function-dax.md | 2 +- .../dax/columnstatistics-function-dax.md | 2 +- query-languages/dax/combin-function-dax.md | 2 +- query-languages/dax/combina-function-dax.md | 2 +- .../dax/combinevalues-function-dax.md | 2 +- query-languages/dax/concatenate-function-dax.md | 2 +- query-languages/dax/concatenatex-function-dax.md | 2 +- .../dax/confidence-norm-function-dax.md | 2 +- query-languages/dax/confidence-t-function-dax.md | 2 +- query-languages/dax/contains-function-dax.md | 2 +- query-languages/dax/containsrow-function-dax.md | 2 +- .../dax/containsstring-function-dax.md | 2 +- .../dax/containsstringexact-function-dax.md | 2 +- query-languages/dax/convert-function-dax.md | 2 +- query-languages/dax/cos-function-dax.md | 2 +- query-languages/dax/cosh-function-dax.md | 2 +- query-languages/dax/cot-function-dax.md | 2 +- query-languages/dax/coth-function-dax.md | 2 +- query-languages/dax/count-function-dax.md | 2 +- query-languages/dax/counta-function-dax.md | 2 +- query-languages/dax/countax-function-dax.md | 2 +- query-languages/dax/countblank-function-dax.md | 2 +- query-languages/dax/countrows-function-dax.md | 2 +- query-languages/dax/countx-function-dax.md | 2 +- query-languages/dax/coupdaybs-function-dax.md | 2 +- query-languages/dax/coupdays-function-dax.md | 2 +- query-languages/dax/coupdaysnc-function-dax.md | 2 +- query-languages/dax/coupncd-function-dax.md | 2 +- query-languages/dax/coupnum-function-dax.md | 2 +- query-languages/dax/couppcd-function-dax.md | 2 +- query-languages/dax/crossfilter-function-dax.md | 2 +- query-languages/dax/crossjoin-function-dax.md | 2 +- query-languages/dax/cumipmt-function-dax.md | 2 +- query-languages/dax/cumprinc-function-dax.md | 2 +- query-languages/dax/currency-function-dax.md | 2 +- query-languages/dax/currentgroup-function-dax.md | 2 +- query-languages/dax/customdata-function-dax.md | 2 +- query-languages/dax/datatable-function-dax.md | 2 +- .../dax/date-and-time-functions-dax.md | 2 +- query-languages/dax/date-function-dax.md | 2 +- query-languages/dax/dateadd-function-dax.md | 2 +- query-languages/dax/datediff-function-dax.md | 2 +- query-languages/dax/datesbetween-function-dax.md | 2 +- .../dax/datesinperiod-function-dax.md | 2 +- query-languages/dax/datesmtd-function-dax.md | 2 +- query-languages/dax/datesqtd-function-dax.md | 2 +- query-languages/dax/datesytd-function-dax.md | 2 +- query-languages/dax/datevalue-function-dax.md | 2 +- query-languages/dax/dax-copilot.md | 2 +- query-languages/dax/dax-function-reference.md | 2 +- query-languages/dax/dax-glossary.md | 2 +- query-languages/dax/dax-learn-videos.md | 2 +- query-languages/dax/dax-operator-reference.md | 2 +- query-languages/dax/dax-overview.md | 2 +- .../dax/dax-parameter-naming-conventions.md | 2 +- query-languages/dax/dax-queries.md | 2 +- query-languages/dax/dax-syntax-reference.md | 2 +- query-languages/dax/day-function-dax.md | 2 +- query-languages/dax/db-function-dax.md | 2 +- query-languages/dax/ddb-function-dax.md | 2 +- query-languages/dax/define-statement-dax.md | 2 +- query-languages/dax/degrees-function-dax.md | 2 +- query-languages/dax/detailrows-function-dax.md | 2 +- query-languages/dax/disc-function-dax.md | 2 +- query-languages/dax/distinct-function-dax.md | 2 +- .../dax/distinct-table-function-dax.md | 2 +- .../dax/distinctcount-function-dax.md | 2 +- .../dax/distinctcountnoblank-function-dax.md | 2 +- query-languages/dax/divide-function-dax.md | 2 +- query-languages/dax/dollarde-function-dax.md | 2 +- query-languages/dax/dollarfr-function-dax.md | 2 +- query-languages/dax/duration-function-dax.md | 2 +- query-languages/dax/earlier-function-dax.md | 2 +- query-languages/dax/earliest-function-dax.md | 2 +- query-languages/dax/edate-function-dax.md | 2 +- query-languages/dax/effect-function-dax.md | 2 +- query-languages/dax/endofmonth-function-dax.md | 2 +- query-languages/dax/endofquarter-function-dax.md | 2 +- query-languages/dax/endofyear-function-dax.md | 2 +- query-languages/dax/eomonth-function-dax.md | 2 +- query-languages/dax/error-function-dax.md | 2 +- query-languages/dax/evaluate-statement-dax.md | 2 +- .../dax/evaluateandlog-function-dax.md | 2 +- query-languages/dax/even-function-dax.md | 2 +- query-languages/dax/exact-function-dax.md | 2 +- query-languages/dax/except-function-dax.md | 2 +- query-languages/dax/exp-function-dax.md | 2 +- query-languages/dax/expand-function-dax.md | 2 +- query-languages/dax/expandall-function-dax.md | 2 +- query-languages/dax/expon-dist-function-dax.md | 2 +- query-languages/dax/fact-function-dax.md | 2 +- query-languages/dax/false-function-dax.md | 2 +- query-languages/dax/filter-function-dax.md | 2 +- query-languages/dax/filter-functions-dax.md | 2 +- query-languages/dax/filters-function-dax.md | 2 +- query-languages/dax/financial-functions-dax.md | 2 +- query-languages/dax/find-function-dax.md | 2 +- query-languages/dax/first-function-dax.md | 2 +- query-languages/dax/firstdate-function-dax.md | 2 +- .../dax/firstnonblank-function-dax.md | 2 +- .../dax/firstnonblankvalue-function-dax.md | 2 +- query-languages/dax/fixed-function-dax.md | 2 +- query-languages/dax/floor-function-dax.md | 2 +- query-languages/dax/format-function-dax.md | 2 +- query-languages/dax/fv-function-dax.md | 2 +- query-languages/dax/gcd-function-dax.md | 2 +- query-languages/dax/generate-function-dax.md | 2 +- query-languages/dax/generateall-function-dax.md | 2 +- .../dax/generateseries-function-dax.md | 2 +- query-languages/dax/geomean-function-dax.md | 2 +- query-languages/dax/geomeanx-function-dax.md | 2 +- query-languages/dax/groupby-function-dax.md | 2 +- query-languages/dax/hasonefilter-function-dax.md | 2 +- query-languages/dax/hasonevalue-function-dax.md | 2 +- query-languages/dax/hour-function-dax.md | 2 +- query-languages/dax/if-eager-function-dax.md | 2 +- query-languages/dax/if-function-dax.md | 2 +- query-languages/dax/iferror-function-dax.md | 2 +- query-languages/dax/ignore-function-dax.md | 2 +- query-languages/dax/index-function-dax.md | 2 +- query-languages/dax/information-functions-dax.md | 2 +- query-languages/dax/int-function-dax.md | 2 +- query-languages/dax/intersect-function-dax.md | 2 +- query-languages/dax/intrate-function-dax.md | 2 +- query-languages/dax/ipmt-function-dax.md | 2 +- query-languages/dax/isafter-function-dax.md | 2 +- query-languages/dax/isatlevel-function-dax.md | 2 +- query-languages/dax/isblank-function-dax.md | 2 +- .../dax/iscrossfiltered-function-dax.md | 2 +- query-languages/dax/isempty-function-dax.md | 2 +- query-languages/dax/iserror-function-dax.md | 2 +- query-languages/dax/iseven-function-dax.md | 2 +- query-languages/dax/isfiltered-function-dax.md | 2 +- query-languages/dax/isinscope-function-dax.md | 2 +- query-languages/dax/islogical-function-dax.md | 2 +- query-languages/dax/isnontext-function-dax.md | 2 +- query-languages/dax/isnumber-function-dax.md | 2 +- query-languages/dax/iso-ceiling-function-dax.md | 2 +- query-languages/dax/isodd-function-dax.md | 2 +- query-languages/dax/isonorafter-function-dax.md | 2 +- query-languages/dax/ispmt-function-dax.md | 2 +- .../dax/isselectedmeasure-function-dax.md | 2 +- query-languages/dax/issubtotal-function-dax.md | 2 +- query-languages/dax/istext-function-dax.md | 2 +- query-languages/dax/keepfilters-function-dax.md | 2 +- query-languages/dax/last-function-dax.md | 2 +- query-languages/dax/lastdate-function-dax.md | 2 +- query-languages/dax/lastnonblank-function-dax.md | 2 +- .../dax/lastnonblankvalue-function-dax.md | 2 +- query-languages/dax/lcm-function-dax.md | 2 +- query-languages/dax/left-function-dax.md | 2 +- query-languages/dax/len-function-dax.md | 2 +- query-languages/dax/linest-function-dax.md | 2 +- query-languages/dax/linestx-function-dax.md | 2 +- query-languages/dax/ln-function-dax.md | 2 +- query-languages/dax/log-function-dax.md | 2 +- query-languages/dax/log10-function-dax.md | 2 +- query-languages/dax/logical-functions-dax.md | 2 +- query-languages/dax/lookupvalue-function-dax.md | 2 +- query-languages/dax/lower-function-dax.md | 2 +- query-languages/dax/matchby-function-dax.md | 2 +- .../dax/math-and-trig-functions-dax.md | 2 +- query-languages/dax/max-function-dax.md | 2 +- query-languages/dax/maxa-function-dax.md | 2 +- query-languages/dax/maxx-function-dax.md | 2 +- query-languages/dax/mduration-function-dax.md | 2 +- query-languages/dax/measure-statement-dax.md | 2 +- query-languages/dax/median-function-dax.md | 2 +- query-languages/dax/medianx-function-dax.md | 2 +- query-languages/dax/mid-function-dax.md | 2 +- query-languages/dax/min-function-dax.md | 2 +- query-languages/dax/mina-function-dax.md | 2 +- query-languages/dax/minute-function-dax.md | 2 +- query-languages/dax/minx-function-dax.md | 2 +- query-languages/dax/mod-function-dax.md | 2 +- query-languages/dax/month-function-dax.md | 2 +- .../dax/movingaverage-function-dax.md | 2 +- query-languages/dax/mround-function-dax.md | 2 +- .../dax/naturalinnerjoin-function-dax.md | 2 +- .../dax/naturalleftouterjoin-function-dax.md | 2 +- query-languages/dax/networkdays-function-dax.md | 2 +- query-languages/dax/new-dax-functions.md | 2 +- query-languages/dax/next-function-dax.md | 2 +- query-languages/dax/nextday-function-dax.md | 2 +- query-languages/dax/nextmonth-function-dax.md | 2 +- query-languages/dax/nextquarter-function-dax.md | 2 +- query-languages/dax/nextyear-function-dax.md | 2 +- query-languages/dax/nominal-function-dax.md | 2 +- query-languages/dax/nonvisual-function-dax.md | 2 +- query-languages/dax/norm-dist-function-dax.md | 2 +- query-languages/dax/norm-inv-function-dax.md | 2 +- query-languages/dax/norm-s-dist-function-dax.md | 2 +- query-languages/dax/norm-s-inv-function-dax.md | 2 +- query-languages/dax/not-function-dax.md | 2 +- query-languages/dax/now-function-dax.md | 2 +- query-languages/dax/nper-function-dax.md | 2 +- query-languages/dax/odd-function-dax.md | 2 +- query-languages/dax/oddfprice-function-dax.md | 2 +- query-languages/dax/oddfyield-function-dax.md | 2 +- query-languages/dax/oddlprice-function-dax.md | 2 +- query-languages/dax/oddlyield-function-dax.md | 2 +- query-languages/dax/offset-function-dax.md | 2 +- .../dax/openingbalancemonth-function-dax.md | 2 +- .../dax/openingbalancequarter-function-dax.md | 2 +- .../dax/openingbalanceyear-function-dax.md | 2 +- query-languages/dax/or-function-dax.md | 2 +- query-languages/dax/orderby-function-dax.md | 2 +- query-languages/dax/orderby-statement-dax.md | 2 +- query-languages/dax/other-functions-dax.md | 2 +- .../dax/parallelperiod-function-dax.md | 2 +- .../dax/parent-and-child-functions-dax.md | 2 +- query-languages/dax/partitionby-function-dax.md | 2 +- query-languages/dax/path-function-dax.md | 2 +- query-languages/dax/pathcontains-function-dax.md | 2 +- query-languages/dax/pathitem-function-dax.md | 2 +- .../dax/pathitemreverse-function-dax.md | 2 +- query-languages/dax/pathlength-function-dax.md | 2 +- query-languages/dax/pduration-function-dax.md | 2 +- .../dax/percentile-exc-function-dax.md | 2 +- .../dax/percentile-inc-function-dax.md | 2 +- .../dax/percentilex-exc-function-dax.md | 2 +- .../dax/percentilex-inc-function-dax.md | 2 +- query-languages/dax/permut-function-dax.md | 2 +- query-languages/dax/pi-function-dax.md | 2 +- query-languages/dax/pmt-function-dax.md | 2 +- query-languages/dax/poisson-dist-function-dax.md | 2 +- query-languages/dax/power-function-dax.md | 2 +- query-languages/dax/ppmt-function-dax.md | 2 +- query-languages/dax/previous-function-dax.md | 2 +- query-languages/dax/previousday-function-dax.md | 2 +- .../dax/previousmonth-function-dax.md | 2 +- .../dax/previousquarter-function-dax.md | 2 +- query-languages/dax/previousyear-function-dax.md | 2 +- query-languages/dax/price-function-dax.md | 2 +- query-languages/dax/pricedisc-function-dax.md | 2 +- query-languages/dax/pricemat-function-dax.md | 2 +- query-languages/dax/product-function-dax.md | 2 +- query-languages/dax/productx-function-dax.md | 2 +- query-languages/dax/pv-function-dax.md | 2 +- query-languages/dax/quarter-function-dax.md | 2 +- query-languages/dax/quotient-function-dax.md | 2 +- query-languages/dax/radians-function-dax.md | 2 +- query-languages/dax/rand-function-dax.md | 2 +- query-languages/dax/randbetween-function-dax.md | 2 +- query-languages/dax/range-function-dax.md | 2 +- query-languages/dax/rank-eq-function-dax.md | 2 +- query-languages/dax/rank-function-dax.md | 2 +- query-languages/dax/rankx-function-dax.md | 2 +- query-languages/dax/rate-function-dax.md | 2 +- query-languages/dax/received-function-dax.md | 2 +- query-languages/dax/related-function-dax.md | 2 +- query-languages/dax/relatedtable-function-dax.md | 2 +- .../dax/relationship-functions-dax.md | 2 +- .../dax/removefilters-function-dax.md | 2 +- query-languages/dax/replace-function-dax.md | 2 +- query-languages/dax/rept-function-dax.md | 2 +- query-languages/dax/right-function-dax.md | 2 +- query-languages/dax/rollup-function-dax.md | 2 +- .../dax/rollupaddissubtotal-function-dax.md | 2 +- query-languages/dax/rollupgroup-function-dax.md | 2 +- .../dax/rollupissubtotal-function-dax.md | 2 +- query-languages/dax/round-function-dax.md | 2 +- query-languages/dax/rounddown-function-dax.md | 2 +- query-languages/dax/roundup-function-dax.md | 2 +- query-languages/dax/row-function-dax.md | 2 +- query-languages/dax/rownumber-function-dax.md | 2 +- query-languages/dax/rri-function-dax.md | 2 +- query-languages/dax/runningsum-function-dax.md | 2 +- .../dax/sameperiodlastyear-function-dax.md | 2 +- query-languages/dax/sample-function-dax.md | 2 +- .../sampleaxiswithlocalminmax-function-dax.md | 2 +- query-languages/dax/search-function-dax.md | 2 +- query-languages/dax/second-function-dax.md | 2 +- .../dax/selectcolumns-function-dax.md | 2 +- .../dax/selectedmeasure-function-dax.md | 2 +- .../selectedmeasureformatstring-function-dax.md | 2 +- .../dax/selectedmeasurename-function-dax.md | 2 +- .../dax/selectedvalue-function-dax.md | 2 +- query-languages/dax/sign-function-dax.md | 2 +- query-languages/dax/sin-function-dax.md | 2 +- query-languages/dax/sinh-function-dax.md | 2 +- query-languages/dax/sln-function-dax.md | 2 +- query-languages/dax/sqrt-function-dax.md | 2 +- query-languages/dax/sqrtpi-function-dax.md | 2 +- query-languages/dax/startat-statement-dax.md | 2 +- query-languages/dax/startofmonth-function-dax.md | 2 +- .../dax/startofquarter-function-dax.md | 2 +- query-languages/dax/startofyear-function-dax.md | 2 +- query-languages/dax/statements-dax.md | 2 +- query-languages/dax/statistical-functions-dax.md | 2 +- query-languages/dax/stdev-p-function-dax.md | 2 +- query-languages/dax/stdev-s-function-dax.md | 2 +- query-languages/dax/stdevx-p-function-dax.md | 2 +- query-languages/dax/stdevx-s-function-dax.md | 2 +- query-languages/dax/substitute-function-dax.md | 2 +- .../dax/substitutewithindex-function-dax.md | 2 +- query-languages/dax/sum-function-dax.md | 2 +- query-languages/dax/summarize-function-dax.md | 2 +- .../dax/summarizecolumns-function-dax.md | 2 +- query-languages/dax/sumx-function-dax.md | 2 +- query-languages/dax/switch-function-dax.md | 2 +- query-languages/dax/syd-function-dax.md | 2 +- query-languages/dax/t-dist-2t-function-dax.md | 2 +- query-languages/dax/t-dist-function-dax.md | 2 +- query-languages/dax/t-dist-rt-function-dax.md | 2 +- query-languages/dax/t-inv-2t-function-dax.md | 2 +- query-languages/dax/t-inv-function-dax.md | 2 +- query-languages/dax/table-constructor.md | 2 +- .../dax/table-manipulation-functions-dax.md | 2 +- query-languages/dax/tan-function-dax.md | 2 +- query-languages/dax/tanh-function-dax.md | 2 +- query-languages/dax/tbilleq-function-dax.md | 2 +- query-languages/dax/tbillprice-function-dax.md | 2 +- query-languages/dax/tbillyield-function-dax.md | 2 +- query-languages/dax/text-functions-dax.md | 2 +- query-languages/dax/time-function-dax.md | 2 +- .../dax/time-intelligence-functions-dax.md | 2 +- query-languages/dax/timevalue-function-dax.md | 2 +- query-languages/dax/tocsv-function-dax.md | 2 +- query-languages/dax/today-function-dax.md | 2 +- query-languages/dax/tojson-function-dax.md | 2 +- query-languages/dax/topn-function-dax.md | 2 +- query-languages/dax/totalmtd-function-dax.md | 2 +- query-languages/dax/totalqtd-function-dax.md | 2 +- query-languages/dax/totalytd-function-dax.md | 2 +- query-languages/dax/treatas-function-dax.md | 2 +- query-languages/dax/trim-function-dax.md | 2 +- query-languages/dax/trunc-function-dax.md | 2 +- ...ctions-for-parent-child-hierarchies-in-dax.md | 2 +- query-languages/dax/unichar-function-dax.md | 2 +- query-languages/dax/unicode-function-dax.md | 2 +- query-languages/dax/union-function-dax.md | 2 +- query-languages/dax/upper-function-dax.md | 2 +- query-languages/dax/userculture-function-dax.md | 2 +- .../dax/userelationship-function-dax.md | 2 +- query-languages/dax/username-function-dax.md | 2 +- query-languages/dax/userobjectid-function-dax.md | 2 +- .../dax/userprincipalname-function-dax.md | 2 +- query-languages/dax/utcnow-function-dax.md | 2 +- query-languages/dax/utctoday-function-dax.md | 2 +- query-languages/dax/value-function-dax.md | 2 +- query-languages/dax/values-function-dax.md | 2 +- query-languages/dax/var-dax.md | 2 +- query-languages/dax/var-p-function-dax.md | 2 +- query-languages/dax/var-s-function-dax.md | 2 +- query-languages/dax/varx-p-function-dax.md | 2 +- query-languages/dax/varx-s-function-dax.md | 2 +- query-languages/dax/vdb-function-dax.md | 2 +- query-languages/dax/weekday-function-dax.md | 2 +- query-languages/dax/weeknum-function-dax.md | 2 +- query-languages/dax/window-function-dax.md | 2 +- query-languages/dax/xirr-function-dax.md | 2 +- query-languages/dax/xnpv-function-dax.md | 2 +- query-languages/dax/year-function-dax.md | 2 +- query-languages/dax/yearfrac-function-dax.md | 2 +- query-languages/dax/yield-function-dax.md | 2 +- query-languages/dax/yielddisc-function-dax.md | 2 +- query-languages/dax/yieldmat-function-dax.md | 2 +- 406 files changed, 413 insertions(+), 413 deletions(-) diff --git a/query-languages/dax/abs-function-dax.md b/query-languages/dax/abs-function-dax.md index d61d1b680..ebf2d7f15 100644 --- a/query-languages/dax/abs-function-dax.md +++ b/query-languages/dax/abs-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ABS" -title: "ABS function (DAX) | Microsoft Docs" +title: "ABS function (DAX) " --- # ABS diff --git a/query-languages/dax/accrint-function-dax.md b/query-languages/dax/accrint-function-dax.md index 639977aef..404826aaa 100644 --- a/query-languages/dax/accrint-function-dax.md +++ b/query-languages/dax/accrint-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ACCRINT" -title: "ACCRINT function (DAX) | Microsoft Docs" +title: "ACCRINT function (DAX) " author: jajin7 --- diff --git a/query-languages/dax/accrintm-function-dax.md b/query-languages/dax/accrintm-function-dax.md index 86bc4de1a..126316f0e 100644 --- a/query-languages/dax/accrintm-function-dax.md +++ b/query-languages/dax/accrintm-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ACCRINTM" -title: "ACCRINTM function (DAX) | Microsoft Docs" +title: "ACCRINTM function (DAX) " author: jajin7 --- diff --git a/query-languages/dax/acos-function-dax.md b/query-languages/dax/acos-function-dax.md index ebe647ebb..cb6672265 100644 --- a/query-languages/dax/acos-function-dax.md +++ b/query-languages/dax/acos-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ACOS" -title: "ACOS function (DAX) | Microsoft Docs" +title: "ACOS function (DAX)" --- # ACOS diff --git a/query-languages/dax/acosh-function-dax.md b/query-languages/dax/acosh-function-dax.md index 3f3fb55f8..d50306eb7 100644 --- a/query-languages/dax/acosh-function-dax.md +++ b/query-languages/dax/acosh-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ACOSH" -title: "ACOSH function (DAX) | Microsoft Docs" +title: "ACOSH function (DAX)" --- # ACOSH diff --git a/query-languages/dax/acot-function-dax.md b/query-languages/dax/acot-function-dax.md index 67ecc6204..09df17c47 100644 --- a/query-languages/dax/acot-function-dax.md +++ b/query-languages/dax/acot-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ACOT" -title: "ACOT function (DAX) | Microsoft Docs" +title: "ACOT function (DAX)" --- # ACOT diff --git a/query-languages/dax/acoth-function-dax.md b/query-languages/dax/acoth-function-dax.md index eb8e0d0d9..66bec6453 100644 --- a/query-languages/dax/acoth-function-dax.md +++ b/query-languages/dax/acoth-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ACOTH" -title: "ACOTH function (DAX) | Microsoft Docs" +title: "ACOTH function (DAX)" --- # ACOTH diff --git a/query-languages/dax/addcolumns-function-dax.md b/query-languages/dax/addcolumns-function-dax.md index fef9de8ad..c4c524e7a 100644 --- a/query-languages/dax/addcolumns-function-dax.md +++ b/query-languages/dax/addcolumns-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ADDCOLUMNS" -title: "ADDCOLUMNS function (DAX) | Microsoft Docs" +title: "ADDCOLUMNS function (DAX)" --- # ADDCOLUMNS diff --git a/query-languages/dax/addmissingitems-function-dax.md b/query-languages/dax/addmissingitems-function-dax.md index 7e47c8ca2..25ab05b35 100644 --- a/query-languages/dax/addmissingitems-function-dax.md +++ b/query-languages/dax/addmissingitems-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ADDMISSINGITEMS" -title: "ADDMISSINGITEMS function (DAX) | Microsoft Docs" +title: "ADDMISSINGITEMS function (DAX)" --- # ADDMISSINGITEMS diff --git a/query-languages/dax/aggregation-functions-dax.md b/query-languages/dax/aggregation-functions-dax.md index 4bf7de9d2..b228389ef 100644 --- a/query-languages/dax/aggregation-functions-dax.md +++ b/query-languages/dax/aggregation-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Aggregation functions" -title: "Aggregation functions (DAX) | Microsoft Docs" +title: "Aggregation functions (DAX)" --- # Aggregation functions diff --git a/query-languages/dax/all-function-dax.md b/query-languages/dax/all-function-dax.md index 418bb554c..bf423e5c1 100644 --- a/query-languages/dax/all-function-dax.md +++ b/query-languages/dax/all-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ALL" -title: "ALL function (DAX) | Microsoft Docs" +title: "ALL function (DAX)" --- # ALL diff --git a/query-languages/dax/allcrossfiltered-function-dax.md b/query-languages/dax/allcrossfiltered-function-dax.md index fd9dae58a..08b65807c 100644 --- a/query-languages/dax/allcrossfiltered-function-dax.md +++ b/query-languages/dax/allcrossfiltered-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ALLCROSSFILTERED" -title: "ALLCROSSFILTERED function (DAX) | Microsoft Docs" +title: "ALLCROSSFILTERED function (DAX)" --- # ALLCROSSFILTERED diff --git a/query-languages/dax/allexcept-function-dax.md b/query-languages/dax/allexcept-function-dax.md index 7ed6c9a1f..b3fa2cd45 100644 --- a/query-languages/dax/allexcept-function-dax.md +++ b/query-languages/dax/allexcept-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ALLEXCEPT" -title: "ALLEXCEPT function (DAX) | Microsoft Docs" +title: "ALLEXCEPT function (DAX)" --- # ALLEXCEPT diff --git a/query-languages/dax/allnoblankrow-function-dax.md b/query-languages/dax/allnoblankrow-function-dax.md index 816998f86..6164121d7 100644 --- a/query-languages/dax/allnoblankrow-function-dax.md +++ b/query-languages/dax/allnoblankrow-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ALLNOBLANKROW" -title: "ALLNOBLANKROW function (DAX) | Microsoft Docs" +title: "ALLNOBLANKROW function (DAX)" --- # ALLNOBLANKROW diff --git a/query-languages/dax/allselected-function-dax.md b/query-languages/dax/allselected-function-dax.md index 51f0c4638..7c8642e21 100644 --- a/query-languages/dax/allselected-function-dax.md +++ b/query-languages/dax/allselected-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ALLSELECTED" -title: "ALLSELECTED function (DAX) | Microsoft Docs" +title: "ALLSELECTED function (DAX)" --- # ALLSELECTED diff --git a/query-languages/dax/amordegrc-function-dax.md b/query-languages/dax/amordegrc-function-dax.md index dad9dd44d..cbe48dcb2 100644 --- a/query-languages/dax/amordegrc-function-dax.md +++ b/query-languages/dax/amordegrc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AMORDEGRC" -title: "AMORDEGRC function (DAX) | Microsoft Docs" +title: "AMORDEGRC function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/amorlinc-function-dax.md b/query-languages/dax/amorlinc-function-dax.md index 359d029a3..5d4c4f607 100644 --- a/query-languages/dax/amorlinc-function-dax.md +++ b/query-languages/dax/amorlinc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AMORLINC" -title: "AMORLINC function (DAX) | Microsoft Docs" +title: "AMORLINC function (DAX)" author: jajin7 --- @@ -48,13 +48,13 @@ The depreciation for each accounting period. - period and basis are rounded to the nearest integer. - An error is returned if: - - cost < 0. - - first_period or date_purchased is not a valid date. - - date_purchased > first_period. - - salvage < 0 or salvage > cost. - - period < 0. - - rate ≤ 0. - - basis is any number other than 0, 1, 3, or 4. + - `cost` < 0. + - `first_period` or `date_purchased` is not a valid date. + - `date_purchased` > `first_period`. + - `salvage` < 0 or `salvage` > `cost`. + - `period` < 0. + - `rate` ≤ 0. + - `basis` is any number other than 0, 1, 3, or 4. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/and-function-dax.md b/query-languages/dax/and-function-dax.md index b5219ce6d..f39adec95 100644 --- a/query-languages/dax/and-function-dax.md +++ b/query-languages/dax/and-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AND" -title: "AND function (DAX) | Microsoft Docs" +title: "AND function (DAX)" --- # AND diff --git a/query-languages/dax/approximate-distinctcount-function-dax.md b/query-languages/dax/approximate-distinctcount-function-dax.md index b9853ce71..858faa26d 100644 --- a/query-languages/dax/approximate-distinctcount-function-dax.md +++ b/query-languages/dax/approximate-distinctcount-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: APPROXIMATEDISTINCTCOUNT" -title: "APPROXIMATEDISTINCTCOUNT function (DAX) | Microsoft Docs" +title: "APPROXIMATEDISTINCTCOUNT function (DAX)" --- # APPROXIMATEDISTINCTCOUNT diff --git a/query-languages/dax/asin-function-dax.md b/query-languages/dax/asin-function-dax.md index e9c2d5c2f..01086fe05 100644 --- a/query-languages/dax/asin-function-dax.md +++ b/query-languages/dax/asin-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ASIN" -title: "ASIN function (DAX) | Microsoft Docs" +title: "ASIN function (DAX)" --- # ASIN diff --git a/query-languages/dax/asinh-function-dax.md b/query-languages/dax/asinh-function-dax.md index 8c9cd1e47..13c760a4e 100644 --- a/query-languages/dax/asinh-function-dax.md +++ b/query-languages/dax/asinh-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ASINH" -title: "ASINH function (DAX) | Microsoft Docs" +title: "ASINH function (DAX)" --- # ASINH diff --git a/query-languages/dax/atan-function-dax.md b/query-languages/dax/atan-function-dax.md index 757e57a14..a5859662f 100644 --- a/query-languages/dax/atan-function-dax.md +++ b/query-languages/dax/atan-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ATAN" -title: "ATAN function (DAX) | Microsoft Docs" +title: "ATAN function (DAX)" --- # ATAN diff --git a/query-languages/dax/atanh-function-dax.md b/query-languages/dax/atanh-function-dax.md index 2e27831e2..4065b9a41 100644 --- a/query-languages/dax/atanh-function-dax.md +++ b/query-languages/dax/atanh-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ATANH" -title: "ATANH function (DAX) | Microsoft Docs" +title: "ATANH function (DAX)" --- # ATANH diff --git a/query-languages/dax/average-function-dax.md b/query-languages/dax/average-function-dax.md index afe675e34..06009e62c 100644 --- a/query-languages/dax/average-function-dax.md +++ b/query-languages/dax/average-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AVERAGE" -title: "AVERAGE function (DAX) | Microsoft Docs" +title: "AVERAGE function (DAX)" --- # AVERAGE diff --git a/query-languages/dax/averagea-function-dax.md b/query-languages/dax/averagea-function-dax.md index 7f9afd53d..064774052 100644 --- a/query-languages/dax/averagea-function-dax.md +++ b/query-languages/dax/averagea-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AVERAGEA" -title: "AVERAGEA function (DAX) | Microsoft Docs" +title: "AVERAGEA function (DAX)" --- # AVERAGEA diff --git a/query-languages/dax/averagex-function-dax.md b/query-languages/dax/averagex-function-dax.md index d098a5408..b87b41b75 100644 --- a/query-languages/dax/averagex-function-dax.md +++ b/query-languages/dax/averagex-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: AVERAGEX" -title: "AVERAGEX function (DAX) | Microsoft Docs" +title: "AVERAGEX function (DAX)" --- # AVERAGEX diff --git a/query-languages/dax/beta-dist-function-dax.md b/query-languages/dax/beta-dist-function-dax.md index 17cf86391..33dc05803 100644 --- a/query-languages/dax/beta-dist-function-dax.md +++ b/query-languages/dax/beta-dist-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BETA.DIST" -title: "BETA.DIST function (DAX) | Microsoft Docs" +title: "BETA.DIST function (DAX)" --- # BETA.DIST diff --git a/query-languages/dax/beta-inv-function-dax.md b/query-languages/dax/beta-inv-function-dax.md index ad7b87c9c..79a4834c8 100644 --- a/query-languages/dax/beta-inv-function-dax.md +++ b/query-languages/dax/beta-inv-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BETA.INV" -title: "BETA.INV function (DAX) | Microsoft Docs" +title: "BETA.INV function (DAX)" --- # BETA.INV diff --git a/query-languages/dax/bitand-function-dax.md b/query-languages/dax/bitand-function-dax.md index e7a915e5d..be3c35c7f 100644 --- a/query-languages/dax/bitand-function-dax.md +++ b/query-languages/dax/bitand-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BITAND" -title: "BITAND function (DAX) | Microsoft Docs" +title: "BITAND function (DAX)" --- # BITAND diff --git a/query-languages/dax/bitlshift-function-dax.md b/query-languages/dax/bitlshift-function-dax.md index 85949d252..b9f97eda5 100644 --- a/query-languages/dax/bitlshift-function-dax.md +++ b/query-languages/dax/bitlshift-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BITLSHIFT" -title: "BITLSHIFT function (DAX) | Microsoft Docs" +title: "BITLSHIFT function (DAX)" --- # BITLSHIFT diff --git a/query-languages/dax/bitor-function-dax.md b/query-languages/dax/bitor-function-dax.md index 42a89d79e..101023549 100644 --- a/query-languages/dax/bitor-function-dax.md +++ b/query-languages/dax/bitor-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BITOR" -title: "BITOR function (DAX) | Microsoft Docs" +title: "BITOR function (DAX)" --- # BITOR diff --git a/query-languages/dax/bitrshift-function-dax.md b/query-languages/dax/bitrshift-function-dax.md index d274fe907..e069732d2 100644 --- a/query-languages/dax/bitrshift-function-dax.md +++ b/query-languages/dax/bitrshift-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BITRSHIFT" -title: "BITRSHIFT function (DAX) | Microsoft Docs" +title: "BITRSHIFT function (DAX)" --- # BITRSHIFT diff --git a/query-languages/dax/bitxor-function-dax.md b/query-languages/dax/bitxor-function-dax.md index 8ca1e9e76..6ca132972 100644 --- a/query-languages/dax/bitxor-function-dax.md +++ b/query-languages/dax/bitxor-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BITXOR" -title: "BITXOR function (DAX) | Microsoft Docs" +title: "BITXOR function (DAX)" --- # BITXOR diff --git a/query-languages/dax/blank-function-dax.md b/query-languages/dax/blank-function-dax.md index 90d0a851a..83738d544 100644 --- a/query-languages/dax/blank-function-dax.md +++ b/query-languages/dax/blank-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: BLANK" -title: "BLANK function (DAX) | Microsoft Docs" +title: "BLANK function (DAX)" --- # BLANK diff --git a/query-languages/dax/calculate-function-dax.md b/query-languages/dax/calculate-function-dax.md index af68d5de1..7da01e8db 100644 --- a/query-languages/dax/calculate-function-dax.md +++ b/query-languages/dax/calculate-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CALCULATE" -title: "CALCULATE function (DAX) | Microsoft Docs" +title: "CALCULATE function (DAX)" --- # CALCULATE diff --git a/query-languages/dax/calculatetable-function-dax.md b/query-languages/dax/calculatetable-function-dax.md index 72690f258..8d6a142d3 100644 --- a/query-languages/dax/calculatetable-function-dax.md +++ b/query-languages/dax/calculatetable-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CALCULATETABLE" -title: "CALCULATETABLE function (DAX) | Microsoft Docs" +title: "CALCULATETABLE function (DAX)" --- # CALCULATETABLE diff --git a/query-languages/dax/calendar-function-dax.md b/query-languages/dax/calendar-function-dax.md index 324902ce3..c931bddf0 100644 --- a/query-languages/dax/calendar-function-dax.md +++ b/query-languages/dax/calendar-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CALENDAR" -title: "CALENDAR function (DAX) | Microsoft Docs" +title: "CALENDAR function (DAX)" --- # CALENDAR diff --git a/query-languages/dax/calendarauto-function-dax.md b/query-languages/dax/calendarauto-function-dax.md index 53049f79f..4fdc46e5b 100644 --- a/query-languages/dax/calendarauto-function-dax.md +++ b/query-languages/dax/calendarauto-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CALENDARAUTO" -title: "CALENDARAUTO function (DAX) | Microsoft Docs" +title: "CALENDARAUTO function (DAX)" --- # CALENDARAUTO diff --git a/query-languages/dax/ceiling-function-dax.md b/query-languages/dax/ceiling-function-dax.md index 8183b9a56..3db64e069 100644 --- a/query-languages/dax/ceiling-function-dax.md +++ b/query-languages/dax/ceiling-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CEILING" -title: "CEILING function (DAX) | Microsoft Docs" +title: "CEILING function (DAX)" --- # CEILING diff --git a/query-languages/dax/chisq-dist-function-dax.md b/query-languages/dax/chisq-dist-function-dax.md index 61be0f572..73c3d7f2a 100644 --- a/query-languages/dax/chisq-dist-function-dax.md +++ b/query-languages/dax/chisq-dist-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CHISQ.DIST" -title: "CHISQ.DIST function (DAX) | Microsoft Docs" +title: "CHISQ.DIST function (DAX)" --- # CHISQ.DIST diff --git a/query-languages/dax/chisq-dist-rt-function-dax.md b/query-languages/dax/chisq-dist-rt-function-dax.md index 5028d418e..8b27ebca7 100644 --- a/query-languages/dax/chisq-dist-rt-function-dax.md +++ b/query-languages/dax/chisq-dist-rt-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CHISQ.DIST.RT" -title: "CHISQ.DIST.RT function (DAX) | Microsoft Docs" +title: "CHISQ.DIST.RT function (DAX)" --- # CHISQ.DIST.RT diff --git a/query-languages/dax/chisq-inv-function-dax.md b/query-languages/dax/chisq-inv-function-dax.md index 04ea34de2..b51da8d93 100644 --- a/query-languages/dax/chisq-inv-function-dax.md +++ b/query-languages/dax/chisq-inv-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CHISQ.INV" -title: "CHISQ.INV function (DAX) | Microsoft Docs" +title: "CHISQ.INV function (DAX)" --- # CHISQ.INV diff --git a/query-languages/dax/chisq-inv-rt-function-dax.md b/query-languages/dax/chisq-inv-rt-function-dax.md index 9f22c6a1e..1026b2a5c 100644 --- a/query-languages/dax/chisq-inv-rt-function-dax.md +++ b/query-languages/dax/chisq-inv-rt-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CHISQ.INV.RT" -title: "CHISQ.INV.RT function (DAX) | Microsoft Docs" +title: "CHISQ.INV.RT function (DAX)" --- # CHISQ.INV.RT diff --git a/query-languages/dax/closingbalancemonth-function-dax.md b/query-languages/dax/closingbalancemonth-function-dax.md index 1d0ecbe0f..eeed8c9b9 100644 --- a/query-languages/dax/closingbalancemonth-function-dax.md +++ b/query-languages/dax/closingbalancemonth-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CLOSINGBALANCEMONTH" -title: "CLOSINGBALANCEMONTH function (DAX) | Microsoft Docs" +title: "CLOSINGBALANCEMONTH function (DAX)" --- # CLOSINGBALANCEMONTH diff --git a/query-languages/dax/closingbalancequarter-function-dax.md b/query-languages/dax/closingbalancequarter-function-dax.md index f21ca68bd..a2b40d347 100644 --- a/query-languages/dax/closingbalancequarter-function-dax.md +++ b/query-languages/dax/closingbalancequarter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CLOSINGBALANCEQUARTER" -title: "CLOSINGBALANCEQUARTER function (DAX) | Microsoft Docs" +title: "CLOSINGBALANCEQUARTER function (DAX)" --- # CLOSINGBALANCEQUARTER diff --git a/query-languages/dax/closingbalanceyear-function-dax.md b/query-languages/dax/closingbalanceyear-function-dax.md index 96c789599..3f0f23e66 100644 --- a/query-languages/dax/closingbalanceyear-function-dax.md +++ b/query-languages/dax/closingbalanceyear-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CLOSINGBALANCEYEAR" -title: "CLOSINGBALANCEYEAR function (DAX) | Microsoft Docs" +title: "CLOSINGBALANCEYEAR function (DAX)" --- # CLOSINGBALANCEYEAR diff --git a/query-languages/dax/coalesce-function-dax.md b/query-languages/dax/coalesce-function-dax.md index 55b3fc70d..e265df9e0 100644 --- a/query-languages/dax/coalesce-function-dax.md +++ b/query-languages/dax/coalesce-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COALESCE" -title: "COALESCE function (DAX) | Microsoft Docs" +title: "COALESCE function (DAX)" --- # COALESCE diff --git a/query-languages/dax/collapse-function-dax.md b/query-languages/dax/collapse-function-dax.md index 4d498a085..2b2fa5522 100644 --- a/query-languages/dax/collapse-function-dax.md +++ b/query-languages/dax/collapse-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COLLAPSE" -title: "COLLAPSE function (DAX) | Microsoft Docs" +title: "COLLAPSE function (DAX)" ms.service: powerbi ms.subservice: dax ms.date: 02/20/2024 diff --git a/query-languages/dax/collapseall-function-dax.md b/query-languages/dax/collapseall-function-dax.md index 926d654b8..073dbf580 100644 --- a/query-languages/dax/collapseall-function-dax.md +++ b/query-languages/dax/collapseall-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COLLAPSEALL" -title: "COLLAPSEALL function (DAX) | Microsoft Docs" +title: "COLLAPSEALL function (DAX)" ms.service: powerbi ms.subservice: dax ms.date: 02/20/2024 diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index dbbf04996..18964704b 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COLUMNSTATISTICS" -title: "COLUMNSTATISTICS function (DAX) | Microsoft Docs" +title: "COLUMNSTATISTICS function (DAX)" --- # COLUMNSTATISTICS diff --git a/query-languages/dax/combin-function-dax.md b/query-languages/dax/combin-function-dax.md index 097d10b86..64bdd2055 100644 --- a/query-languages/dax/combin-function-dax.md +++ b/query-languages/dax/combin-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COMBIN" -title: "COMBIN function (DAX) | Microsoft Docs" +title: "COMBIN function (DAX)" --- # COMBIN diff --git a/query-languages/dax/combina-function-dax.md b/query-languages/dax/combina-function-dax.md index 319175e26..db4fc4494 100644 --- a/query-languages/dax/combina-function-dax.md +++ b/query-languages/dax/combina-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COMBINA" -title: "COMBINA function (DAX) | Microsoft Docs" +title: "COMBINA function (DAX)" --- # COMBINA diff --git a/query-languages/dax/combinevalues-function-dax.md b/query-languages/dax/combinevalues-function-dax.md index 55ae944fe..c46353300 100644 --- a/query-languages/dax/combinevalues-function-dax.md +++ b/query-languages/dax/combinevalues-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COMBINEVALUES" -title: "COMBINEVALUES function (DAX) | Microsoft Docs" +title: "COMBINEVALUES function (DAX)" --- # COMBINEVALUES diff --git a/query-languages/dax/concatenate-function-dax.md b/query-languages/dax/concatenate-function-dax.md index 96e891452..3c74fcea8 100644 --- a/query-languages/dax/concatenate-function-dax.md +++ b/query-languages/dax/concatenate-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CONCATENATE" -title: "CONCATENATE function (DAX) | Microsoft Docs" +title: "CONCATENATE function (DAX)" --- # CONCATENATE diff --git a/query-languages/dax/concatenatex-function-dax.md b/query-languages/dax/concatenatex-function-dax.md index 824830482..e7768977b 100644 --- a/query-languages/dax/concatenatex-function-dax.md +++ b/query-languages/dax/concatenatex-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CONCATENATEX" -title: "CONCATENATEX function (DAX) | Microsoft Docs" +title: "CONCATENATEX function (DAX)" --- # CONCATENATEX diff --git a/query-languages/dax/confidence-norm-function-dax.md b/query-languages/dax/confidence-norm-function-dax.md index 2f8c94778..1be7d8959 100644 --- a/query-languages/dax/confidence-norm-function-dax.md +++ b/query-languages/dax/confidence-norm-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CONFIDENCE.NORM" -title: "CONFIDENCE.NORM function (DAX) | Microsoft Docs" +title: "CONFIDENCE.NORM function (DAX)" --- # CONFIDENCE.NORM diff --git a/query-languages/dax/confidence-t-function-dax.md b/query-languages/dax/confidence-t-function-dax.md index 081122c83..3528ae4ca 100644 --- a/query-languages/dax/confidence-t-function-dax.md +++ b/query-languages/dax/confidence-t-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CONFIDENCE.T" -title: "CONFIDENCE.T function (DAX) | Microsoft Docs" +title: "CONFIDENCE.T function (DAX)" --- # CONFIDENCE.T diff --git a/query-languages/dax/contains-function-dax.md b/query-languages/dax/contains-function-dax.md index c02e5e4d5..c80774e7d 100644 --- a/query-languages/dax/contains-function-dax.md +++ b/query-languages/dax/contains-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CONTAINS" -title: "CONTAINS function (DAX) | Microsoft Docs" +title: "CONTAINS function (DAX)" --- # CONTAINS diff --git a/query-languages/dax/containsrow-function-dax.md b/query-languages/dax/containsrow-function-dax.md index 6e82af748..49fa531a5 100644 --- a/query-languages/dax/containsrow-function-dax.md +++ b/query-languages/dax/containsrow-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CONTAINSROW function" -title: "CONTAINSROW function | Microsoft Docs" +title: "CONTAINSROW function" --- # CONTAINSROW function diff --git a/query-languages/dax/containsstring-function-dax.md b/query-languages/dax/containsstring-function-dax.md index 8910f29fc..9c3218911 100644 --- a/query-languages/dax/containsstring-function-dax.md +++ b/query-languages/dax/containsstring-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CONTAINSSTRING" -title: "CONTAINSSTRING function (DAX) | Microsoft Docs" +title: "CONTAINSSTRING function (DAX)" --- # CONTAINSSTRING diff --git a/query-languages/dax/containsstringexact-function-dax.md b/query-languages/dax/containsstringexact-function-dax.md index 1a68bc1d6..c68e3a5e6 100644 --- a/query-languages/dax/containsstringexact-function-dax.md +++ b/query-languages/dax/containsstringexact-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CONTAINSSTRINGEXACT" -title: "CONTAINSSTRINGEXACT function (DAX) | Microsoft Docs" +title: "CONTAINSSTRINGEXACT function (DAX)" --- # CONTAINSSTRINGEXACT diff --git a/query-languages/dax/convert-function-dax.md b/query-languages/dax/convert-function-dax.md index 2e93498d4..c05ee9ed9 100644 --- a/query-languages/dax/convert-function-dax.md +++ b/query-languages/dax/convert-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CONVERT" -title: "CONVERT function (DAX) | Microsoft Docs" +title: "CONVERT function (DAX)" --- # CONVERT diff --git a/query-languages/dax/cos-function-dax.md b/query-languages/dax/cos-function-dax.md index 1e8c62bec..a78df7f9e 100644 --- a/query-languages/dax/cos-function-dax.md +++ b/query-languages/dax/cos-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COS" -title: "COS function (DAX) | Microsoft Docs" +title: "COS function (DAX)" --- # COS diff --git a/query-languages/dax/cosh-function-dax.md b/query-languages/dax/cosh-function-dax.md index 9b4e6fd4d..c5c419c02 100644 --- a/query-languages/dax/cosh-function-dax.md +++ b/query-languages/dax/cosh-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COSH" -title: "COSH function (DAX) | Microsoft Docs" +title: "COSH function (DAX)" --- # COSH diff --git a/query-languages/dax/cot-function-dax.md b/query-languages/dax/cot-function-dax.md index 9731a0ba9..900337968 100644 --- a/query-languages/dax/cot-function-dax.md +++ b/query-languages/dax/cot-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COT" -title: "COT function (DAX) | Microsoft Docs" +title: "COT function (DAX)" --- # COT diff --git a/query-languages/dax/coth-function-dax.md b/query-languages/dax/coth-function-dax.md index 029cba964..b3f1175aa 100644 --- a/query-languages/dax/coth-function-dax.md +++ b/query-languages/dax/coth-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COTH" -title: "COTH function (DAX) | Microsoft Docs" +title: "COTH function (DAX)" --- # COTH diff --git a/query-languages/dax/count-function-dax.md b/query-languages/dax/count-function-dax.md index afe31688f..d3063c268 100644 --- a/query-languages/dax/count-function-dax.md +++ b/query-languages/dax/count-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUNT" -title: "COUNT function (DAX) | Microsoft Docs" +title: "COUNT function (DAX)" --- # COUNT diff --git a/query-languages/dax/counta-function-dax.md b/query-languages/dax/counta-function-dax.md index ffda38c72..8bfdafe34 100644 --- a/query-languages/dax/counta-function-dax.md +++ b/query-languages/dax/counta-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUNTA" -title: "COUNTA function (DAX) | Microsoft Docs" +title: "COUNTA function (DAX)" --- # COUNTA diff --git a/query-languages/dax/countax-function-dax.md b/query-languages/dax/countax-function-dax.md index 1d921ecb4..79f4ee05d 100644 --- a/query-languages/dax/countax-function-dax.md +++ b/query-languages/dax/countax-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUNTAX" -title: "COUNTAX function (DAX) | Microsoft Docs" +title: "COUNTAX function (DAX)" --- # COUNTAX diff --git a/query-languages/dax/countblank-function-dax.md b/query-languages/dax/countblank-function-dax.md index 81fc878b7..cea13520d 100644 --- a/query-languages/dax/countblank-function-dax.md +++ b/query-languages/dax/countblank-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUNTBLANK" -title: "COUNTBLANK function (DAX) | Microsoft Docs" +title: "COUNTBLANK function (DAX)" --- # COUNTBLANK diff --git a/query-languages/dax/countrows-function-dax.md b/query-languages/dax/countrows-function-dax.md index 0e96eec3e..66bacb255 100644 --- a/query-languages/dax/countrows-function-dax.md +++ b/query-languages/dax/countrows-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUNTROWS" -title: "COUNTROWS function (DAX) | Microsoft Docs" +title: "COUNTROWS function (DAX)" --- # COUNTROWS diff --git a/query-languages/dax/countx-function-dax.md b/query-languages/dax/countx-function-dax.md index ede18b473..e6fb6b027 100644 --- a/query-languages/dax/countx-function-dax.md +++ b/query-languages/dax/countx-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUNTX" -title: "COUNTX function (DAX) | Microsoft Docs" +title: "COUNTX function (DAX)" --- # COUNTX diff --git a/query-languages/dax/coupdaybs-function-dax.md b/query-languages/dax/coupdaybs-function-dax.md index afdb7123e..5257ac2ab 100644 --- a/query-languages/dax/coupdaybs-function-dax.md +++ b/query-languages/dax/coupdaybs-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUPDAYBS" -title: "COUPDAYBS function (DAX) | Microsoft Docs" +title: "COUPDAYBS function (DAX)" --- # COUPDAYBS diff --git a/query-languages/dax/coupdays-function-dax.md b/query-languages/dax/coupdays-function-dax.md index 3c5a4310f..3091c7a04 100644 --- a/query-languages/dax/coupdays-function-dax.md +++ b/query-languages/dax/coupdays-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUPDAYS" -title: "COUPDAYS function (DAX) | Microsoft Docs" +title: "COUPDAYS function (DAX)" --- # COUPDAYS diff --git a/query-languages/dax/coupdaysnc-function-dax.md b/query-languages/dax/coupdaysnc-function-dax.md index eda6b8dfb..96b6b6716 100644 --- a/query-languages/dax/coupdaysnc-function-dax.md +++ b/query-languages/dax/coupdaysnc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUPDAYSNC" -title: "COUPDAYSNC function (DAX) | Microsoft Docs" +title: "COUPDAYSNC function (DAX)" --- # COUPDAYSNC diff --git a/query-languages/dax/coupncd-function-dax.md b/query-languages/dax/coupncd-function-dax.md index 2e241569a..175f79969 100644 --- a/query-languages/dax/coupncd-function-dax.md +++ b/query-languages/dax/coupncd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUPNCD" -title: "COUPNCD function (DAX) | Microsoft Docs" +title: "COUPNCD function (DAX)" --- # COUPNCD diff --git a/query-languages/dax/coupnum-function-dax.md b/query-languages/dax/coupnum-function-dax.md index 6a06accd7..dce3053b0 100644 --- a/query-languages/dax/coupnum-function-dax.md +++ b/query-languages/dax/coupnum-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUPNUM" -title: "COUPNUM function (DAX) | Microsoft Docs" +title: "COUPNUM function (DAX)" --- # COUPNUM diff --git a/query-languages/dax/couppcd-function-dax.md b/query-languages/dax/couppcd-function-dax.md index acb8616f8..e23527b03 100644 --- a/query-languages/dax/couppcd-function-dax.md +++ b/query-languages/dax/couppcd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: COUPPCD" -title: "COUPPCD function (DAX) | Microsoft Docs" +title: "COUPPCD function (DAX)" --- # COUPPCD diff --git a/query-languages/dax/crossfilter-function-dax.md b/query-languages/dax/crossfilter-function-dax.md index 3d8897086..f648eeea7 100644 --- a/query-languages/dax/crossfilter-function-dax.md +++ b/query-languages/dax/crossfilter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CROSSFILTER" -title: "CROSSFILTER function | Microsoft Docs" +title: "CROSSFILTER function" --- # CROSSFILTER diff --git a/query-languages/dax/crossjoin-function-dax.md b/query-languages/dax/crossjoin-function-dax.md index c1691cb2d..dfa5fbcc7 100644 --- a/query-languages/dax/crossjoin-function-dax.md +++ b/query-languages/dax/crossjoin-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CROSSJOIN" -title: "CROSSJOIN function (DAX) | Microsoft Docs" +title: "CROSSJOIN function (DAX)" --- # CROSSJOIN diff --git a/query-languages/dax/cumipmt-function-dax.md b/query-languages/dax/cumipmt-function-dax.md index c95b560c1..399d26668 100644 --- a/query-languages/dax/cumipmt-function-dax.md +++ b/query-languages/dax/cumipmt-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CUMIPMT" -title: "CUMIPMT function (DAX) | Microsoft Docs" +title: "CUMIPMT function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/cumprinc-function-dax.md b/query-languages/dax/cumprinc-function-dax.md index eaa7f6bd1..ce7f3a226 100644 --- a/query-languages/dax/cumprinc-function-dax.md +++ b/query-languages/dax/cumprinc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CUMPRINC" -title: "CUMPRINC function (DAX) | Microsoft Docs" +title: "CUMPRINC function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/currency-function-dax.md b/query-languages/dax/currency-function-dax.md index 460e40931..372f17c72 100644 --- a/query-languages/dax/currency-function-dax.md +++ b/query-languages/dax/currency-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CURRENCY" -title: "CURRENCY function (DAX) | Microsoft Docs" +title: "CURRENCY function (DAX)" --- # CURRENCY diff --git a/query-languages/dax/currentgroup-function-dax.md b/query-languages/dax/currentgroup-function-dax.md index b3605cda7..c89180f24 100644 --- a/query-languages/dax/currentgroup-function-dax.md +++ b/query-languages/dax/currentgroup-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CURRENTGROUP" -title: "CURRENTGROUP function (DAX) | Microsoft Docs" +title: "CURRENTGROUP function (DAX)" --- # CURRENTGROUP diff --git a/query-languages/dax/customdata-function-dax.md b/query-languages/dax/customdata-function-dax.md index 517cd5f3d..6f5418000 100644 --- a/query-languages/dax/customdata-function-dax.md +++ b/query-languages/dax/customdata-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: CUSTOMDATA" -title: "CUSTOMDATA function (DAX) | Microsoft Docs" +title: "CUSTOMDATA function (DAX)" --- # CUSTOMDATA diff --git a/query-languages/dax/datatable-function-dax.md b/query-languages/dax/datatable-function-dax.md index 01c0405b7..1a27eb244 100644 --- a/query-languages/dax/datatable-function-dax.md +++ b/query-languages/dax/datatable-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATATABLE" -title: "DATATABLE function | Microsoft Docs" +title: "DATATABLE function" --- # DATATABLE diff --git a/query-languages/dax/date-and-time-functions-dax.md b/query-languages/dax/date-and-time-functions-dax.md index a5221c600..cd010c662 100644 --- a/query-languages/dax/date-and-time-functions-dax.md +++ b/query-languages/dax/date-and-time-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Date and time functions" -title: "Date and time functions (DAX) | Microsoft Docs" +title: "Date and time functions (DAX)" --- # Date and time functions diff --git a/query-languages/dax/date-function-dax.md b/query-languages/dax/date-function-dax.md index b914cc490..bdf9f86d3 100644 --- a/query-languages/dax/date-function-dax.md +++ b/query-languages/dax/date-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATE" -title: "DATE function (DAX) | Microsoft Docs" +title: "DATE function (DAX)" --- # DATE diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index 354d2180b..5a557a221 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATEADD" -title: "DATEADD function (DAX) | Microsoft Docs" +title: "DATEADD function (DAX)" --- # DATEADD diff --git a/query-languages/dax/datediff-function-dax.md b/query-languages/dax/datediff-function-dax.md index 97fd8d547..77bfcba50 100644 --- a/query-languages/dax/datediff-function-dax.md +++ b/query-languages/dax/datediff-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATEDIFF" -title: "DATEDIFF function (DAX) | Microsoft Docs" +title: "DATEDIFF function (DAX)" --- # DATEDIFF diff --git a/query-languages/dax/datesbetween-function-dax.md b/query-languages/dax/datesbetween-function-dax.md index ee9787fe2..b11642000 100644 --- a/query-languages/dax/datesbetween-function-dax.md +++ b/query-languages/dax/datesbetween-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATESBETWEEN" -title: "DATESBETWEEN function (DAX) | Microsoft Docs" +title: "DATESBETWEEN function (DAX)" --- # DATESBETWEEN diff --git a/query-languages/dax/datesinperiod-function-dax.md b/query-languages/dax/datesinperiod-function-dax.md index 4d33081fb..34e45e2b9 100644 --- a/query-languages/dax/datesinperiod-function-dax.md +++ b/query-languages/dax/datesinperiod-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATESINPERIOD" -title: "DATESINPERIOD function (DAX) | Microsoft Docs" +title: "DATESINPERIOD function (DAX)" --- # DATESINPERIOD diff --git a/query-languages/dax/datesmtd-function-dax.md b/query-languages/dax/datesmtd-function-dax.md index 05323e07e..0090091f1 100644 --- a/query-languages/dax/datesmtd-function-dax.md +++ b/query-languages/dax/datesmtd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATESMTD" -title: "DATESMTD function (DAX) | Microsoft Docs" +title: "DATESMTD function (DAX)" --- # DATESMTD diff --git a/query-languages/dax/datesqtd-function-dax.md b/query-languages/dax/datesqtd-function-dax.md index 41dd2f2f0..633b8b1e9 100644 --- a/query-languages/dax/datesqtd-function-dax.md +++ b/query-languages/dax/datesqtd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATESQTD" -title: "DATESQTD function (DAX) | Microsoft Docs" +title: "DATESQTD function (DAX)" --- # DATESQTD diff --git a/query-languages/dax/datesytd-function-dax.md b/query-languages/dax/datesytd-function-dax.md index 31141dbb5..d0f165de8 100644 --- a/query-languages/dax/datesytd-function-dax.md +++ b/query-languages/dax/datesytd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATESYTD" -title: "DATESYTD function (DAX) | Microsoft Docs" +title: "DATESYTD function (DAX)" --- # DATESYTD diff --git a/query-languages/dax/datevalue-function-dax.md b/query-languages/dax/datevalue-function-dax.md index b5721ad72..2ccfc8040 100644 --- a/query-languages/dax/datevalue-function-dax.md +++ b/query-languages/dax/datevalue-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DATEVALUE" -title: "DATEVALUE function (DAX) | Microsoft Docs" +title: "DATEVALUE function (DAX)" --- # DATEVALUE diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 2efe779e8..5789660b8 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -1,5 +1,5 @@ --- -title: "Write DAX queries with Copilot | Microsoft Docs" +title: "Write DAX queries with Copilot" description: Use Copilot to create a DAX queries query. Type in a prompt to describe what DAX query you would like generated, and Copilot can create it. ms.service: powerbi ms.date: 10/21/2024 diff --git a/query-languages/dax/dax-function-reference.md b/query-languages/dax/dax-function-reference.md index ef0f3ae7b..827145c23 100644 --- a/query-languages/dax/dax-function-reference.md +++ b/query-languages/dax/dax-function-reference.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DAX function reference" -title: "DAX function reference | Microsoft Docs" +title: "DAX function reference" --- # DAX function reference diff --git a/query-languages/dax/dax-glossary.md b/query-languages/dax/dax-glossary.md index 246f8e173..a3b532ac5 100644 --- a/query-languages/dax/dax-glossary.md +++ b/query-languages/dax/dax-glossary.md @@ -1,5 +1,5 @@ --- -title: "DAX glossary | Microsoft Docs" +title: "DAX glossary" description: Describes common terms used in the Data Analysis Expressions (DAX) language. ms.topic: conceptual --- diff --git a/query-languages/dax/dax-learn-videos.md b/query-languages/dax/dax-learn-videos.md index 6489ed278..9e8c7f412 100644 --- a/query-languages/dax/dax-learn-videos.md +++ b/query-languages/dax/dax-learn-videos.md @@ -1,5 +1,5 @@ --- -title: "Learn DAX videos | Microsoft Docs" +title: "Learn DAX videos" description: Describes helpful videos used to learn Data Analysis Expressions (DAX) language. ms.topic: conceptual --- diff --git a/query-languages/dax/dax-operator-reference.md b/query-languages/dax/dax-operator-reference.md index 447bddc02..6f899544f 100644 --- a/query-languages/dax/dax-operator-reference.md +++ b/query-languages/dax/dax-operator-reference.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DAX operators" -title: "DAX operators | Microsoft Docs" +title: "DAX operators" ms.topic: conceptual --- # DAX operators diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index 478333f3f..d1efb9021 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -1,5 +1,5 @@ --- -title: "DAX overview | Microsoft Docs" +title: "DAX overview" description: Describes the Data Analysis Expressions (DAX) language. ms.topic: conceptual --- diff --git a/query-languages/dax/dax-parameter-naming-conventions.md b/query-languages/dax/dax-parameter-naming-conventions.md index 2d16a368d..d9509e278 100644 --- a/query-languages/dax/dax-parameter-naming-conventions.md +++ b/query-languages/dax/dax-parameter-naming-conventions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DAX parameter-naming conventions" -title: "DAX parameter-naming conventions | Microsoft Docs" +title: "DAX parameter-naming conventions" ms.topic: conceptual --- # DAX parameter-naming conventions diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 0cc7de0db..22afc8d74 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -1,5 +1,5 @@ --- -title: "DAX Queries | Microsoft Docs" +title: "DAX Queries" description: Describes Data Analysis Expressions (DAX) language queries. ms.topic: conceptual --- diff --git a/query-languages/dax/dax-syntax-reference.md b/query-languages/dax/dax-syntax-reference.md index c064c4d72..6d2bc29a8 100644 --- a/query-languages/dax/dax-syntax-reference.md +++ b/query-languages/dax/dax-syntax-reference.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DAX syntax" -title: "DAX syntax | Microsoft Docs" +title: "DAX syntax" ms.topic: conceptual --- # DAX syntax diff --git a/query-languages/dax/day-function-dax.md b/query-languages/dax/day-function-dax.md index 6b2c37f01..76e81b58c 100644 --- a/query-languages/dax/day-function-dax.md +++ b/query-languages/dax/day-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DAY" -title: "DAY function (DAX) | Microsoft Docs" +title: "DAY function (DAX)" --- # DAY diff --git a/query-languages/dax/db-function-dax.md b/query-languages/dax/db-function-dax.md index e870681d4..782835000 100644 --- a/query-languages/dax/db-function-dax.md +++ b/query-languages/dax/db-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DB" -title: "DB function (DAX) | Microsoft Docs" +title: "DB function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/ddb-function-dax.md b/query-languages/dax/ddb-function-dax.md index 63c2178cf..043e12acc 100644 --- a/query-languages/dax/ddb-function-dax.md +++ b/query-languages/dax/ddb-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DDB" -title: "DDB function (DAX) | Microsoft Docs" +title: "DDB function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 56e5bdd98..58451fbc2 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DEFINE" -title: "DEFINE keyword (DAX) | Microsoft Docs" +title: "DEFINE keyword (DAX)" --- # DEFINE diff --git a/query-languages/dax/degrees-function-dax.md b/query-languages/dax/degrees-function-dax.md index 2254d144d..c843493ca 100644 --- a/query-languages/dax/degrees-function-dax.md +++ b/query-languages/dax/degrees-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DEGREES" -title: "DEGREES function (DAX) | Microsoft Docs" +title: "DEGREES function (DAX)" --- # DEGREES diff --git a/query-languages/dax/detailrows-function-dax.md b/query-languages/dax/detailrows-function-dax.md index c2b38961e..b3a7c05ee 100644 --- a/query-languages/dax/detailrows-function-dax.md +++ b/query-languages/dax/detailrows-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DETAILROWS" -title: "DETAILROWS function (DAX) | Microsoft Docs" +title: "DETAILROWS function (DAX)" --- # DETAILROWS diff --git a/query-languages/dax/disc-function-dax.md b/query-languages/dax/disc-function-dax.md index 7267f100a..7a9bce79a 100644 --- a/query-languages/dax/disc-function-dax.md +++ b/query-languages/dax/disc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DISC" -title: "DISC function (DAX) | Microsoft Docs" +title: "DISC function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/distinct-function-dax.md b/query-languages/dax/distinct-function-dax.md index ee009429f..3e8f1a85b 100644 --- a/query-languages/dax/distinct-function-dax.md +++ b/query-languages/dax/distinct-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DISTINCT (column)" -title: "DISTINCT (column) function (DAX) | Microsoft Docs" +title: "DISTINCT (column) function (DAX)" --- # DISTINCT (column) diff --git a/query-languages/dax/distinct-table-function-dax.md b/query-languages/dax/distinct-table-function-dax.md index ac59c386b..7128f9a5c 100644 --- a/query-languages/dax/distinct-table-function-dax.md +++ b/query-languages/dax/distinct-table-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DISTINCT (table)" -title: "DISTINCT (table) function (DAX) | Microsoft Docs" +title: "DISTINCT (table) function (DAX)" --- # DISTINCT (table) diff --git a/query-languages/dax/distinctcount-function-dax.md b/query-languages/dax/distinctcount-function-dax.md index 1c1f2867f..6043ea8ed 100644 --- a/query-languages/dax/distinctcount-function-dax.md +++ b/query-languages/dax/distinctcount-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DISTINCTCOUNT" -title: "DISTINCTCOUNT function (DAX) | Microsoft Docs" +title: "DISTINCTCOUNT function (DAX)" --- # DISTINCTCOUNT diff --git a/query-languages/dax/distinctcountnoblank-function-dax.md b/query-languages/dax/distinctcountnoblank-function-dax.md index 5e1eb0fb5..82a2c2c10 100644 --- a/query-languages/dax/distinctcountnoblank-function-dax.md +++ b/query-languages/dax/distinctcountnoblank-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DISTINCTCOUNTNOBLANK" -title: "DISTINCTCOUNTNOBLANK function (DAX) | Microsoft Docs" +title: "DISTINCTCOUNTNOBLANK function (DAX)" --- # DISTINCTCOUNTNOBLANK diff --git a/query-languages/dax/divide-function-dax.md b/query-languages/dax/divide-function-dax.md index 39747b63f..ca8a3bb1c 100644 --- a/query-languages/dax/divide-function-dax.md +++ b/query-languages/dax/divide-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DIVIDE" -title: "DIVIDE function (DAX) | Microsoft Docs" +title: "DIVIDE function (DAX)" --- # DIVIDE diff --git a/query-languages/dax/dollarde-function-dax.md b/query-languages/dax/dollarde-function-dax.md index 8fefc37d6..1545d3691 100644 --- a/query-languages/dax/dollarde-function-dax.md +++ b/query-languages/dax/dollarde-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DOLLARDE" -title: "DOLLARDE function (DAX) | Microsoft Docs" +title: "DOLLARDE function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/dollarfr-function-dax.md b/query-languages/dax/dollarfr-function-dax.md index fbdd88387..e23710f42 100644 --- a/query-languages/dax/dollarfr-function-dax.md +++ b/query-languages/dax/dollarfr-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DOLLARFR" -title: "DOLLARFR function (DAX) | Microsoft Docs" +title: "DOLLARFR function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/duration-function-dax.md b/query-languages/dax/duration-function-dax.md index 30fb16d17..18f778437 100644 --- a/query-languages/dax/duration-function-dax.md +++ b/query-languages/dax/duration-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: DURATION" -title: "DURATION function (DAX) | Microsoft Docs" +title: "DURATION function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/earlier-function-dax.md b/query-languages/dax/earlier-function-dax.md index 1dfc6ed21..697c022fd 100644 --- a/query-languages/dax/earlier-function-dax.md +++ b/query-languages/dax/earlier-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EARLIER" -title: "EARLIER function (DAX) | Microsoft Docs" +title: "EARLIER function (DAX)" --- # EARLIER diff --git a/query-languages/dax/earliest-function-dax.md b/query-languages/dax/earliest-function-dax.md index f340e4516..77fe98bee 100644 --- a/query-languages/dax/earliest-function-dax.md +++ b/query-languages/dax/earliest-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EARLIEST" -title: "EARLIEST function (DAX) | Microsoft Docs" +title: "EARLIEST function (DAX)" --- # EARLIEST diff --git a/query-languages/dax/edate-function-dax.md b/query-languages/dax/edate-function-dax.md index 2f2c4a10d..27f7fbbf2 100644 --- a/query-languages/dax/edate-function-dax.md +++ b/query-languages/dax/edate-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EDATE" -title: "EDATE function (DAX) | Microsoft Docs" +title: "EDATE function (DAX)" --- # EDATE diff --git a/query-languages/dax/effect-function-dax.md b/query-languages/dax/effect-function-dax.md index 34abb6d6a..9fc6d1e97 100644 --- a/query-languages/dax/effect-function-dax.md +++ b/query-languages/dax/effect-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EFFECT" -title: "EFFECT function (DAX) | Microsoft Docs" +title: "EFFECT function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/endofmonth-function-dax.md b/query-languages/dax/endofmonth-function-dax.md index 93b1e869a..dcf320a1c 100644 --- a/query-languages/dax/endofmonth-function-dax.md +++ b/query-languages/dax/endofmonth-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ENDOFMONTH" -title: "ENDOFMONTH function (DAX) | Microsoft Docs" +title: "ENDOFMONTH function (DAX)" --- # ENDOFMONTH diff --git a/query-languages/dax/endofquarter-function-dax.md b/query-languages/dax/endofquarter-function-dax.md index db4ab2942..e6a34d735 100644 --- a/query-languages/dax/endofquarter-function-dax.md +++ b/query-languages/dax/endofquarter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ENDOFQUARTER" -title: "ENDOFQUARTER function (DAX) | Microsoft Docs" +title: "ENDOFQUARTER function (DAX)" --- # ENDOFQUARTER diff --git a/query-languages/dax/endofyear-function-dax.md b/query-languages/dax/endofyear-function-dax.md index e332a28a2..7b3500d41 100644 --- a/query-languages/dax/endofyear-function-dax.md +++ b/query-languages/dax/endofyear-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ENDOFYEAR" -title: "ENDOFYEAR function (DAX) | Microsoft Docs" +title: "ENDOFYEAR function (DAX)" --- # ENDOFYEAR diff --git a/query-languages/dax/eomonth-function-dax.md b/query-languages/dax/eomonth-function-dax.md index f9f13c3c0..bdd69999f 100644 --- a/query-languages/dax/eomonth-function-dax.md +++ b/query-languages/dax/eomonth-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EOMONTH" -title: "EOMONTH function (DAX) | Microsoft Docs" +title: "EOMONTH function (DAX)" --- # EOMONTH diff --git a/query-languages/dax/error-function-dax.md b/query-languages/dax/error-function-dax.md index 0a26ca032..6d330ddf1 100644 --- a/query-languages/dax/error-function-dax.md +++ b/query-languages/dax/error-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ERROR" -title: "ERROR function | Microsoft Docs" +title: "ERROR function" --- # ERROR diff --git a/query-languages/dax/evaluate-statement-dax.md b/query-languages/dax/evaluate-statement-dax.md index 737e3b58c..a2afa7844 100644 --- a/query-languages/dax/evaluate-statement-dax.md +++ b/query-languages/dax/evaluate-statement-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EVALUATE" -title: "EVALUATE keyword (DAX) | Microsoft Docs" +title: "EVALUATE keyword (DAX)" --- # EVALUATE diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index dd3857caa..acdab4a6e 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EVALUATEANDLOG" -title: "EVALUATEANDLOG function (DAX) | Microsoft Docs" +title: "EVALUATEANDLOG function (DAX)" --- # EVALUATEANDLOG diff --git a/query-languages/dax/even-function-dax.md b/query-languages/dax/even-function-dax.md index d48362026..81ac62560 100644 --- a/query-languages/dax/even-function-dax.md +++ b/query-languages/dax/even-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EVEN" -title: "EVEN function (DAX) | Microsoft Docs" +title: "EVEN function (DAX)" --- # EVEN diff --git a/query-languages/dax/exact-function-dax.md b/query-languages/dax/exact-function-dax.md index b4c955cd8..64076bb44 100644 --- a/query-languages/dax/exact-function-dax.md +++ b/query-languages/dax/exact-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EXACT" -title: "EXACT function (DAX) | Microsoft Docs" +title: "EXACT function (DAX)" --- # EXACT diff --git a/query-languages/dax/except-function-dax.md b/query-languages/dax/except-function-dax.md index 5ec3e0088..8a452d70c 100644 --- a/query-languages/dax/except-function-dax.md +++ b/query-languages/dax/except-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EXCEPT" -title: "EXCEPT function (DAX) | Microsoft Docs" +title: "EXCEPT function (DAX)" --- # EXCEPT diff --git a/query-languages/dax/exp-function-dax.md b/query-languages/dax/exp-function-dax.md index f06aa1238..818614463 100644 --- a/query-languages/dax/exp-function-dax.md +++ b/query-languages/dax/exp-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EXP" -title: "EXP function (DAX) | Microsoft Docs" +title: "EXP function (DAX)" --- # EXP diff --git a/query-languages/dax/expand-function-dax.md b/query-languages/dax/expand-function-dax.md index 85e2720da..40c7fc969 100644 --- a/query-languages/dax/expand-function-dax.md +++ b/query-languages/dax/expand-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EXPAND" -title: "EXPAND function (DAX) | Microsoft Docs" +title: "EXPAND function (DAX)" ms.service: powerbi ms.subservice: dax ms.date: 02/20/2024 diff --git a/query-languages/dax/expandall-function-dax.md b/query-languages/dax/expandall-function-dax.md index 7ee409a56..549ea7695 100644 --- a/query-languages/dax/expandall-function-dax.md +++ b/query-languages/dax/expandall-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EXPANDALL" -title: "EXPANDALL function (DAX) | Microsoft Docs" +title: "EXPANDALL function (DAX)" ms.service: powerbi ms.subservice: dax ms.date: 02/21/2024 diff --git a/query-languages/dax/expon-dist-function-dax.md b/query-languages/dax/expon-dist-function-dax.md index 19528a4ee..da5482a2b 100644 --- a/query-languages/dax/expon-dist-function-dax.md +++ b/query-languages/dax/expon-dist-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: EXPON.DIST" -title: "EXPON.DIST function (DAX) | Microsoft Docs" +title: "EXPON.DIST function (DAX)" --- # EXPON.DIST diff --git a/query-languages/dax/fact-function-dax.md b/query-languages/dax/fact-function-dax.md index a980d65a7..7a1162685 100644 --- a/query-languages/dax/fact-function-dax.md +++ b/query-languages/dax/fact-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FACT" -title: "FACT function (DAX) | Microsoft Docs" +title: "FACT function (DAX)" --- # FACT diff --git a/query-languages/dax/false-function-dax.md b/query-languages/dax/false-function-dax.md index 18c2dfff4..13b912eed 100644 --- a/query-languages/dax/false-function-dax.md +++ b/query-languages/dax/false-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FALSE" -title: "FALSE function (DAX) | Microsoft Docs" +title: "FALSE function (DAX)" --- # FALSE diff --git a/query-languages/dax/filter-function-dax.md b/query-languages/dax/filter-function-dax.md index 1b36063bd..b70cc3a6a 100644 --- a/query-languages/dax/filter-function-dax.md +++ b/query-languages/dax/filter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FILTER" -title: "FILTER function (DAX) | Microsoft Docs" +title: "FILTER function (DAX)" --- # FILTER diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index f2119ba69..52fe462ba 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Filter functions" -title: "Filter functions (DAX) | Microsoft Docs" +title: "Filter functions (DAX)" --- # Filter functions diff --git a/query-languages/dax/filters-function-dax.md b/query-languages/dax/filters-function-dax.md index c7be19044..fff23e160 100644 --- a/query-languages/dax/filters-function-dax.md +++ b/query-languages/dax/filters-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FILTERS" -title: "FILTERS function (DAX) | Microsoft Docs" +title: "FILTERS function (DAX)" --- # FILTERS diff --git a/query-languages/dax/financial-functions-dax.md b/query-languages/dax/financial-functions-dax.md index ed8558256..88f59a273 100644 --- a/query-languages/dax/financial-functions-dax.md +++ b/query-languages/dax/financial-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Financial functions" -title: "Financial functions (DAX) | Microsoft Docs" +title: "Financial functions (DAX)" --- # Financial functions diff --git a/query-languages/dax/find-function-dax.md b/query-languages/dax/find-function-dax.md index f66f7a014..862ef6a95 100644 --- a/query-languages/dax/find-function-dax.md +++ b/query-languages/dax/find-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FIND" -title: "FIND function (DAX) | Microsoft Docs" +title: "FIND function (DAX)" --- # FIND diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index fa1dfc55c..598365f77 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FIRST" -title: "FIRST function (DAX) | Microsoft Docs" +title: "FIRST function (DAX)" --- # FIRST diff --git a/query-languages/dax/firstdate-function-dax.md b/query-languages/dax/firstdate-function-dax.md index a530ff885..734cea451 100644 --- a/query-languages/dax/firstdate-function-dax.md +++ b/query-languages/dax/firstdate-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FIRSTDATE" -title: "FIRSTDATE function (DAX) | Microsoft Docs" +title: "FIRSTDATE function (DAX)" --- # FIRSTDATE diff --git a/query-languages/dax/firstnonblank-function-dax.md b/query-languages/dax/firstnonblank-function-dax.md index 4a3bcdf1e..c562c7cb5 100644 --- a/query-languages/dax/firstnonblank-function-dax.md +++ b/query-languages/dax/firstnonblank-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FIRSTNONBLANK" -title: "FIRSTNONBLANK function (DAX) | Microsoft Docs" +title: "FIRSTNONBLANK function (DAX)" --- # FIRSTNONBLANK diff --git a/query-languages/dax/firstnonblankvalue-function-dax.md b/query-languages/dax/firstnonblankvalue-function-dax.md index 6d1fd2e96..0d2c0bb20 100644 --- a/query-languages/dax/firstnonblankvalue-function-dax.md +++ b/query-languages/dax/firstnonblankvalue-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FIRSTNONBLANKVALUE" -title: "FIRSTNONBLANKVALUE function (DAX) | Microsoft Docs" +title: "FIRSTNONBLANKVALUE function (DAX)" --- # FIRSTNONBLANKVALUE diff --git a/query-languages/dax/fixed-function-dax.md b/query-languages/dax/fixed-function-dax.md index 6fd90cd0b..6346e53da 100644 --- a/query-languages/dax/fixed-function-dax.md +++ b/query-languages/dax/fixed-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FIXED" -title: "FIXED function (DAX) | Microsoft Docs" +title: "FIXED function (DAX)" --- # FIXED diff --git a/query-languages/dax/floor-function-dax.md b/query-languages/dax/floor-function-dax.md index 9a659c34b..c2c67b940 100644 --- a/query-languages/dax/floor-function-dax.md +++ b/query-languages/dax/floor-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FLOOR" -title: "FLOOR function (DAX) | Microsoft Docs" +title: "FLOOR function (DAX)" --- # FLOOR diff --git a/query-languages/dax/format-function-dax.md b/query-languages/dax/format-function-dax.md index a4178252c..a5244d1dc 100644 --- a/query-languages/dax/format-function-dax.md +++ b/query-languages/dax/format-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FORMAT" -title: "FORMAT function (DAX) | Microsoft Docs" +title: "FORMAT function (DAX)" --- # FORMAT diff --git a/query-languages/dax/fv-function-dax.md b/query-languages/dax/fv-function-dax.md index 94dd50cf2..a391e8156 100644 --- a/query-languages/dax/fv-function-dax.md +++ b/query-languages/dax/fv-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: FV" -title: "FV function (DAX) | Microsoft Docs" +title: "FV function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/gcd-function-dax.md b/query-languages/dax/gcd-function-dax.md index 1c57d8e18..20378abbd 100644 --- a/query-languages/dax/gcd-function-dax.md +++ b/query-languages/dax/gcd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GCD" -title: "GCD function (DAX) | Microsoft Docs" +title: "GCD function (DAX)" --- # GCD diff --git a/query-languages/dax/generate-function-dax.md b/query-languages/dax/generate-function-dax.md index 2dd27fd9e..f30b7520b 100644 --- a/query-languages/dax/generate-function-dax.md +++ b/query-languages/dax/generate-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GENERATE" -title: "GENERATE function (DAX) | Microsoft Docs" +title: "GENERATE function (DAX)" --- # GENERATE diff --git a/query-languages/dax/generateall-function-dax.md b/query-languages/dax/generateall-function-dax.md index 663f0f015..52fef573d 100644 --- a/query-languages/dax/generateall-function-dax.md +++ b/query-languages/dax/generateall-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GENERATEALL" -title: "GENERATEALL function (DAX) | Microsoft Docs" +title: "GENERATEALL function (DAX)" --- # GENERATEALL diff --git a/query-languages/dax/generateseries-function-dax.md b/query-languages/dax/generateseries-function-dax.md index da20069d1..9073c98ab 100644 --- a/query-languages/dax/generateseries-function-dax.md +++ b/query-languages/dax/generateseries-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GENERATESERIES" -title: "GENERATESERIES function | Microsoft Docs" +title: "GENERATESERIES function" --- # GENERATESERIES diff --git a/query-languages/dax/geomean-function-dax.md b/query-languages/dax/geomean-function-dax.md index f03b31312..1c4211e6e 100644 --- a/query-languages/dax/geomean-function-dax.md +++ b/query-languages/dax/geomean-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GEOMEAN" -title: "GEOMEAN function (DAX) | Microsoft Docs" +title: "GEOMEAN function (DAX)" --- # GEOMEAN diff --git a/query-languages/dax/geomeanx-function-dax.md b/query-languages/dax/geomeanx-function-dax.md index 6e0bc0851..13ceb460f 100644 --- a/query-languages/dax/geomeanx-function-dax.md +++ b/query-languages/dax/geomeanx-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GEOMEANX" -title: "GEOMEANX function (DAX) | Microsoft Docs" +title: "GEOMEANX function (DAX)" --- # GEOMEANX diff --git a/query-languages/dax/groupby-function-dax.md b/query-languages/dax/groupby-function-dax.md index 7976abc58..84d4530ba 100644 --- a/query-languages/dax/groupby-function-dax.md +++ b/query-languages/dax/groupby-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: GROUPBY" -title: "GROUPBY function (DAX) | Microsoft Docs" +title: "GROUPBY function (DAX)" --- # GROUPBY diff --git a/query-languages/dax/hasonefilter-function-dax.md b/query-languages/dax/hasonefilter-function-dax.md index 8240d160e..149c2db0f 100644 --- a/query-languages/dax/hasonefilter-function-dax.md +++ b/query-languages/dax/hasonefilter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: HASONEFILTER" -title: "HASONEFILTER function (DAX) | Microsoft Docs" +title: "HASONEFILTER function (DAX)" --- # HASONEFILTER diff --git a/query-languages/dax/hasonevalue-function-dax.md b/query-languages/dax/hasonevalue-function-dax.md index 704a221ce..af769854b 100644 --- a/query-languages/dax/hasonevalue-function-dax.md +++ b/query-languages/dax/hasonevalue-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: HASONEVALUE" -title: "HASONEVALUE function (DAX) | Microsoft Docs" +title: "HASONEVALUE function (DAX)" --- # HASONEVALUE diff --git a/query-languages/dax/hour-function-dax.md b/query-languages/dax/hour-function-dax.md index 5e9fdf592..c9033c631 100644 --- a/query-languages/dax/hour-function-dax.md +++ b/query-languages/dax/hour-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: HOUR" -title: "HOUR function (DAX) | Microsoft Docs" +title: "HOUR function (DAX)" --- # HOUR diff --git a/query-languages/dax/if-eager-function-dax.md b/query-languages/dax/if-eager-function-dax.md index c287d297f..87f0a8ecf 100644 --- a/query-languages/dax/if-eager-function-dax.md +++ b/query-languages/dax/if-eager-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: IF.EAGER" -title: "IF.EAGER function (DAX) | Microsoft Docs" +title: "IF.EAGER function (DAX)" --- # IF.EAGER diff --git a/query-languages/dax/if-function-dax.md b/query-languages/dax/if-function-dax.md index f5878f087..303fcd197 100644 --- a/query-languages/dax/if-function-dax.md +++ b/query-languages/dax/if-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: IF" -title: "IF function (DAX) | Microsoft Docs" +title: "IF function (DAX)" --- # IF diff --git a/query-languages/dax/iferror-function-dax.md b/query-languages/dax/iferror-function-dax.md index d32d2689e..53f70c2d3 100644 --- a/query-languages/dax/iferror-function-dax.md +++ b/query-languages/dax/iferror-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: IFERROR" -title: "IFERROR function (DAX) | Microsoft Docs" +title: "IFERROR function (DAX)" --- # IFERROR diff --git a/query-languages/dax/ignore-function-dax.md b/query-languages/dax/ignore-function-dax.md index ae772a455..3870587ab 100644 --- a/query-languages/dax/ignore-function-dax.md +++ b/query-languages/dax/ignore-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: IGNORE" -title: "IGNORE function (DAX) | Microsoft Docs" +title: "IGNORE function (DAX)" --- # IGNORE diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 3a215932f..73421959e 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: INDEX" -title: "INDEX function (DAX) | Microsoft Docs" +title: "INDEX function (DAX)" --- # INDEX diff --git a/query-languages/dax/information-functions-dax.md b/query-languages/dax/information-functions-dax.md index 04c6d2e2c..a743eda44 100644 --- a/query-languages/dax/information-functions-dax.md +++ b/query-languages/dax/information-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Information functions" -title: "Information functions (DAX) | Microsoft Docs" +title: "Information functions (DAX)" --- # Information functions diff --git a/query-languages/dax/int-function-dax.md b/query-languages/dax/int-function-dax.md index 18131a689..cbcb46b57 100644 --- a/query-languages/dax/int-function-dax.md +++ b/query-languages/dax/int-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: INT" -title: "INT function (DAX) | Microsoft Docs" +title: "INT function (DAX)" --- # INT diff --git a/query-languages/dax/intersect-function-dax.md b/query-languages/dax/intersect-function-dax.md index 384682a8c..e987c7748 100644 --- a/query-languages/dax/intersect-function-dax.md +++ b/query-languages/dax/intersect-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: INTERSECT" -title: "INTERSECT function (DAX) | Microsoft Docs" +title: "INTERSECT function (DAX)" --- # INTERSECT diff --git a/query-languages/dax/intrate-function-dax.md b/query-languages/dax/intrate-function-dax.md index 90405879c..6b72932e2 100644 --- a/query-languages/dax/intrate-function-dax.md +++ b/query-languages/dax/intrate-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: INTRATE" -title: "INTRATE function (DAX) | Microsoft Docs" +title: "INTRATE function (DAX)" --- # INTRATE diff --git a/query-languages/dax/ipmt-function-dax.md b/query-languages/dax/ipmt-function-dax.md index 4bdc9fd60..16bf3cf0f 100644 --- a/query-languages/dax/ipmt-function-dax.md +++ b/query-languages/dax/ipmt-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: IPMT" -title: "IPMT function (DAX) | Microsoft Docs" +title: "IPMT function (DAX)" --- # IPMT diff --git a/query-languages/dax/isafter-function-dax.md b/query-languages/dax/isafter-function-dax.md index 057160aaa..6790b7db6 100644 --- a/query-languages/dax/isafter-function-dax.md +++ b/query-languages/dax/isafter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISAFTER" -title: "ISAFTER function (DAX) | Microsoft Docs" +title: "ISAFTER function (DAX)" --- # ISAFTER diff --git a/query-languages/dax/isatlevel-function-dax.md b/query-languages/dax/isatlevel-function-dax.md index c0de9c42b..178299971 100644 --- a/query-languages/dax/isatlevel-function-dax.md +++ b/query-languages/dax/isatlevel-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISATLEVEL" -title: "ISATLEVEL function (DAX) | Microsoft Docs" +title: "ISATLEVEL function (DAX)" ms.service: powerbi ms.subservice: dax ms.date: 02/20/2024 diff --git a/query-languages/dax/isblank-function-dax.md b/query-languages/dax/isblank-function-dax.md index 67db0a29e..c76871fd7 100644 --- a/query-languages/dax/isblank-function-dax.md +++ b/query-languages/dax/isblank-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISBLANK" -title: "ISBLANK function (DAX) | Microsoft Docs" +title: "ISBLANK function (DAX)" --- # ISBLANK diff --git a/query-languages/dax/iscrossfiltered-function-dax.md b/query-languages/dax/iscrossfiltered-function-dax.md index f3b29904c..77e9eae2c 100644 --- a/query-languages/dax/iscrossfiltered-function-dax.md +++ b/query-languages/dax/iscrossfiltered-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISCROSSFILTERED" -title: "ISCROSSFILTERED function (DAX) | Microsoft Docs" +title: "ISCROSSFILTERED function (DAX)" --- # ISCROSSFILTERED diff --git a/query-languages/dax/isempty-function-dax.md b/query-languages/dax/isempty-function-dax.md index 9f8cdea66..943f0b96b 100644 --- a/query-languages/dax/isempty-function-dax.md +++ b/query-languages/dax/isempty-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISEMPTY" -title: "ISEMPTY function (DAX) | Microsoft Docs" +title: "ISEMPTY function (DAX)" --- # ISEMPTY diff --git a/query-languages/dax/iserror-function-dax.md b/query-languages/dax/iserror-function-dax.md index 75e1a9f93..b9c4d9477 100644 --- a/query-languages/dax/iserror-function-dax.md +++ b/query-languages/dax/iserror-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISERROR" -title: "ISERROR function (DAX) | Microsoft Docs" +title: "ISERROR function (DAX)" --- # ISERROR diff --git a/query-languages/dax/iseven-function-dax.md b/query-languages/dax/iseven-function-dax.md index b20440ec0..d104d7a0d 100644 --- a/query-languages/dax/iseven-function-dax.md +++ b/query-languages/dax/iseven-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISEVEN" -title: "ISEVEN function (DAX) | Microsoft Docs" +title: "ISEVEN function (DAX)" --- # ISEVEN diff --git a/query-languages/dax/isfiltered-function-dax.md b/query-languages/dax/isfiltered-function-dax.md index ea5b7ecf2..d23be5c4a 100644 --- a/query-languages/dax/isfiltered-function-dax.md +++ b/query-languages/dax/isfiltered-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISFILTERED" -title: "ISFILTERED function (DAX) | Microsoft Docs" +title: "ISFILTERED function (DAX)" --- # ISFILTERED diff --git a/query-languages/dax/isinscope-function-dax.md b/query-languages/dax/isinscope-function-dax.md index fa84e4092..7050f391a 100644 --- a/query-languages/dax/isinscope-function-dax.md +++ b/query-languages/dax/isinscope-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISINSCOPE" -title: "ISINSCOPE function (DAX) | Microsoft Docs" +title: "ISINSCOPE function (DAX)" --- # ISINSCOPE diff --git a/query-languages/dax/islogical-function-dax.md b/query-languages/dax/islogical-function-dax.md index 7f421a5bd..34d19180b 100644 --- a/query-languages/dax/islogical-function-dax.md +++ b/query-languages/dax/islogical-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISLOGICAL" -title: "ISLOGICAL function (DAX) | Microsoft Docs" +title: "ISLOGICAL function (DAX)" --- # ISLOGICAL diff --git a/query-languages/dax/isnontext-function-dax.md b/query-languages/dax/isnontext-function-dax.md index 8dd94f6cc..98b1dc2f4 100644 --- a/query-languages/dax/isnontext-function-dax.md +++ b/query-languages/dax/isnontext-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISNONTEXT" -title: "ISNONTEXT function (DAX) | Microsoft Docs" +title: "ISNONTEXT function (DAX)" --- # ISNONTEXT diff --git a/query-languages/dax/isnumber-function-dax.md b/query-languages/dax/isnumber-function-dax.md index 846b98e1f..426848e8a 100644 --- a/query-languages/dax/isnumber-function-dax.md +++ b/query-languages/dax/isnumber-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISNUMBER" -title: "ISNUMBER function (DAX) | Microsoft Docs" +title: "ISNUMBER function (DAX)" --- # ISNUMBER diff --git a/query-languages/dax/iso-ceiling-function-dax.md b/query-languages/dax/iso-ceiling-function-dax.md index 18bd45464..d586fb4e8 100644 --- a/query-languages/dax/iso-ceiling-function-dax.md +++ b/query-languages/dax/iso-ceiling-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISO.CEILING" -title: "ISO.CEILING function (DAX) | Microsoft Docs" +title: "ISO.CEILING function (DAX)" --- # ISO.CEILING diff --git a/query-languages/dax/isodd-function-dax.md b/query-languages/dax/isodd-function-dax.md index 6a6b96ea5..6843fbcad 100644 --- a/query-languages/dax/isodd-function-dax.md +++ b/query-languages/dax/isodd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISODD" -title: "ISODD function (DAX) | Microsoft Docs" +title: "ISODD function (DAX)" --- # ISODD diff --git a/query-languages/dax/isonorafter-function-dax.md b/query-languages/dax/isonorafter-function-dax.md index 9919af8af..a2a1a667d 100644 --- a/query-languages/dax/isonorafter-function-dax.md +++ b/query-languages/dax/isonorafter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISONORAFTER" -title: "ISONORAFTER function (DAX) | Microsoft Docs" +title: "ISONORAFTER function (DAX)" --- # ISONORAFTER diff --git a/query-languages/dax/ispmt-function-dax.md b/query-languages/dax/ispmt-function-dax.md index 590d2867f..b71ab3279 100644 --- a/query-languages/dax/ispmt-function-dax.md +++ b/query-languages/dax/ispmt-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISPMT" -title: "ISPMT function (DAX) | Microsoft Docs" +title: "ISPMT function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/isselectedmeasure-function-dax.md b/query-languages/dax/isselectedmeasure-function-dax.md index 0ebf824f9..ff920f4a1 100644 --- a/query-languages/dax/isselectedmeasure-function-dax.md +++ b/query-languages/dax/isselectedmeasure-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISSELECTEDMEASURE" -title: "ISSELECTEDMEASURE function (DAX) | Microsoft Docs" +title: "ISSELECTEDMEASURE function (DAX)" --- # ISSELECTEDMEASURE diff --git a/query-languages/dax/issubtotal-function-dax.md b/query-languages/dax/issubtotal-function-dax.md index b38025a9d..077cd3f3e 100644 --- a/query-languages/dax/issubtotal-function-dax.md +++ b/query-languages/dax/issubtotal-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISSUBTOTAL" -title: "ISSUBTOTAL function (DAX) | Microsoft Docs" +title: "ISSUBTOTAL function (DAX)" --- # ISSUBTOTAL diff --git a/query-languages/dax/istext-function-dax.md b/query-languages/dax/istext-function-dax.md index 37641bae3..a093760f7 100644 --- a/query-languages/dax/istext-function-dax.md +++ b/query-languages/dax/istext-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ISTEXT" -title: "ISTEXT function (DAX) | Microsoft Docs" +title: "ISTEXT function (DAX)" --- # ISTEXT diff --git a/query-languages/dax/keepfilters-function-dax.md b/query-languages/dax/keepfilters-function-dax.md index ca6ace689..1fed64815 100644 --- a/query-languages/dax/keepfilters-function-dax.md +++ b/query-languages/dax/keepfilters-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: KEEPFILTERS" -title: "KEEPFILTERS function (DAX) | Microsoft Docs" +title: "KEEPFILTERS function (DAX)" --- # KEEPFILTERS diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index c70478132..e8dfa47d7 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LAST" -title: "LAST function (DAX) | Microsoft Docs" +title: "LAST function (DAX)" --- # LAST diff --git a/query-languages/dax/lastdate-function-dax.md b/query-languages/dax/lastdate-function-dax.md index 11416a6f6..6ca0d3389 100644 --- a/query-languages/dax/lastdate-function-dax.md +++ b/query-languages/dax/lastdate-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LASTDATE" -title: "LASTDATE function (DAX) | Microsoft Docs" +title: "LASTDATE function (DAX)" --- # LASTDATE diff --git a/query-languages/dax/lastnonblank-function-dax.md b/query-languages/dax/lastnonblank-function-dax.md index 4b96019f1..65ae4158b 100644 --- a/query-languages/dax/lastnonblank-function-dax.md +++ b/query-languages/dax/lastnonblank-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LASTNONBLANK" -title: "LASTNONBLANK function (DAX) | Microsoft Docs" +title: "LASTNONBLANK function (DAX)" --- # LASTNONBLANK diff --git a/query-languages/dax/lastnonblankvalue-function-dax.md b/query-languages/dax/lastnonblankvalue-function-dax.md index fbe9fd70a..82e198648 100644 --- a/query-languages/dax/lastnonblankvalue-function-dax.md +++ b/query-languages/dax/lastnonblankvalue-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LASTNONBLANKVALUE" -title: "LASTNONBLANKVALUE function (DAX) | Microsoft Docs" +title: "LASTNONBLANKVALUE function (DAX)" --- # LASTNONBLANKVALUE diff --git a/query-languages/dax/lcm-function-dax.md b/query-languages/dax/lcm-function-dax.md index 2845af9b1..d6cd602fb 100644 --- a/query-languages/dax/lcm-function-dax.md +++ b/query-languages/dax/lcm-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LCM" -title: "LCM function (DAX) | Microsoft Docs" +title: "LCM function (DAX)" --- # LCM diff --git a/query-languages/dax/left-function-dax.md b/query-languages/dax/left-function-dax.md index b8832ef95..6441d7617 100644 --- a/query-languages/dax/left-function-dax.md +++ b/query-languages/dax/left-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LEFT" -title: "LEFT function (DAX) | Microsoft Docs" +title: "LEFT function (DAX)" --- # LEFT diff --git a/query-languages/dax/len-function-dax.md b/query-languages/dax/len-function-dax.md index f1eca2b07..62585846e 100644 --- a/query-languages/dax/len-function-dax.md +++ b/query-languages/dax/len-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LEN" -title: "LEN function (DAX) | Microsoft Docs" +title: "LEN function (DAX)" --- # LEN diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index fa22b9a53..b71b7daca 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LINEST" -title: "LINEST function (DAX) | Microsoft Docs" +title: "LINEST function (DAX)" author: masanto-msft ms.author: masanto --- diff --git a/query-languages/dax/linestx-function-dax.md b/query-languages/dax/linestx-function-dax.md index a6790e844..3c0a397d3 100644 --- a/query-languages/dax/linestx-function-dax.md +++ b/query-languages/dax/linestx-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LINESTX" -title: "LINESTX function (DAX) | Microsoft Docs" +title: "LINESTX function (DAX)" author: masanto-msft ms.author: masanto --- diff --git a/query-languages/dax/ln-function-dax.md b/query-languages/dax/ln-function-dax.md index b8a25819d..abd689bfc 100644 --- a/query-languages/dax/ln-function-dax.md +++ b/query-languages/dax/ln-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LN" -title: "LN function (DAX) | Microsoft Docs" +title: "LN function (DAX)" --- # LN diff --git a/query-languages/dax/log-function-dax.md b/query-languages/dax/log-function-dax.md index 211435898..be6e8dd01 100644 --- a/query-languages/dax/log-function-dax.md +++ b/query-languages/dax/log-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LOG" -title: "LOG function (DAX) | Microsoft Docs" +title: "LOG function (DAX)" --- # LOG diff --git a/query-languages/dax/log10-function-dax.md b/query-languages/dax/log10-function-dax.md index e8471f8b6..0dc472051 100644 --- a/query-languages/dax/log10-function-dax.md +++ b/query-languages/dax/log10-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LOG10" -title: "LOG10 function (DAX) | Microsoft Docs" +title: "LOG10 function (DAX)" --- # LOG10 diff --git a/query-languages/dax/logical-functions-dax.md b/query-languages/dax/logical-functions-dax.md index 30dc53184..d47a38092 100644 --- a/query-languages/dax/logical-functions-dax.md +++ b/query-languages/dax/logical-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Logical functions" -title: "Logical functions (DAX) | Microsoft Docs" +title: "Logical functions (DAX)" --- # Logical functions diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index bc66dd603..9ceead2f8 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LOOKUPVALUE" -title: "LOOKUPVALUE function (DAX) | Microsoft Docs" +title: "LOOKUPVALUE function (DAX)" --- # LOOKUPVALUE diff --git a/query-languages/dax/lower-function-dax.md b/query-languages/dax/lower-function-dax.md index f99d4b423..25a628969 100644 --- a/query-languages/dax/lower-function-dax.md +++ b/query-languages/dax/lower-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: LOWER" -title: "LOWER function (DAX) | Microsoft Docs" +title: "LOWER function (DAX)" --- # LOWER diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md index a740c1930..e232edc47 100644 --- a/query-languages/dax/matchby-function-dax.md +++ b/query-languages/dax/matchby-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MATCHBY" -title: "MATCHBY function (DAX) | Microsoft Docs" +title: "MATCHBY function (DAX)" author: keshen --- diff --git a/query-languages/dax/math-and-trig-functions-dax.md b/query-languages/dax/math-and-trig-functions-dax.md index 913f3ee0d..81202aa5b 100644 --- a/query-languages/dax/math-and-trig-functions-dax.md +++ b/query-languages/dax/math-and-trig-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Math and Trig functions" -title: "Math and Trig functions (DAX) | Microsoft Docs" +title: "Math and Trig functions (DAX)" --- # Math and Trig functions diff --git a/query-languages/dax/max-function-dax.md b/query-languages/dax/max-function-dax.md index 423072e1f..d7d593730 100644 --- a/query-languages/dax/max-function-dax.md +++ b/query-languages/dax/max-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MAX" -title: "MAX function (DAX) | Microsoft Docs" +title: "MAX function (DAX)" --- # MAX diff --git a/query-languages/dax/maxa-function-dax.md b/query-languages/dax/maxa-function-dax.md index 63e177ce2..ffc92120e 100644 --- a/query-languages/dax/maxa-function-dax.md +++ b/query-languages/dax/maxa-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MAXA" -title: "MAXA function (DAX) | Microsoft Docs" +title: "MAXA function (DAX)" --- # MAXA diff --git a/query-languages/dax/maxx-function-dax.md b/query-languages/dax/maxx-function-dax.md index 280736758..8853973f1 100644 --- a/query-languages/dax/maxx-function-dax.md +++ b/query-languages/dax/maxx-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MAXX" -title: "MAXX function (DAX) | Microsoft Docs" +title: "MAXX function (DAX)" --- # MAXX diff --git a/query-languages/dax/mduration-function-dax.md b/query-languages/dax/mduration-function-dax.md index e4c643caf..4480b9c3b 100644 --- a/query-languages/dax/mduration-function-dax.md +++ b/query-languages/dax/mduration-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MDURATION" -title: "MDURATION function (DAX) | Microsoft Docs" +title: "MDURATION function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index 6af267e76..8f909bebf 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MEASURE" -title: "MEASURE keyword (DAX) | Microsoft Docs" +title: "MEASURE keyword (DAX)" --- # MEASURE diff --git a/query-languages/dax/median-function-dax.md b/query-languages/dax/median-function-dax.md index b7ae7eb27..901f60931 100644 --- a/query-languages/dax/median-function-dax.md +++ b/query-languages/dax/median-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MEDIAN" -title: "MEDIAN function (DAX) | Microsoft Docs" +title: "MEDIAN function (DAX)" --- # MEDIAN diff --git a/query-languages/dax/medianx-function-dax.md b/query-languages/dax/medianx-function-dax.md index 8215722f1..6d0e61310 100644 --- a/query-languages/dax/medianx-function-dax.md +++ b/query-languages/dax/medianx-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MEDIANX" -title: "MEDIANX function (DAX) | Microsoft Docs" +title: "MEDIANX function (DAX)" --- # MEDIANX diff --git a/query-languages/dax/mid-function-dax.md b/query-languages/dax/mid-function-dax.md index cae32ac66..620af07ea 100644 --- a/query-languages/dax/mid-function-dax.md +++ b/query-languages/dax/mid-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MID" -title: "MID function (DAX) | Microsoft Docs" +title: "MID function (DAX)" --- # MID diff --git a/query-languages/dax/min-function-dax.md b/query-languages/dax/min-function-dax.md index a5671a609..ebe9f2d19 100644 --- a/query-languages/dax/min-function-dax.md +++ b/query-languages/dax/min-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MIN" -title: "MIN function (DAX) | Microsoft Docs" +title: "MIN function (DAX)" --- # MIN diff --git a/query-languages/dax/mina-function-dax.md b/query-languages/dax/mina-function-dax.md index 765166a82..34be53309 100644 --- a/query-languages/dax/mina-function-dax.md +++ b/query-languages/dax/mina-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MINA" -title: "MINA function (DAX) | Microsoft Docs" +title: "MINA function (DAX)" --- # MINA diff --git a/query-languages/dax/minute-function-dax.md b/query-languages/dax/minute-function-dax.md index aef1fdd92..fb3b30e3f 100644 --- a/query-languages/dax/minute-function-dax.md +++ b/query-languages/dax/minute-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MINUTE" -title: "MINUTE function (DAX) | Microsoft Docs" +title: "MINUTE function (DAX)" --- # MINUTE diff --git a/query-languages/dax/minx-function-dax.md b/query-languages/dax/minx-function-dax.md index 63cc35a4d..d658ba707 100644 --- a/query-languages/dax/minx-function-dax.md +++ b/query-languages/dax/minx-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MINX" -title: "MINX function (DAX) | Microsoft Docs" +title: "MINX function (DAX)" --- # MINX diff --git a/query-languages/dax/mod-function-dax.md b/query-languages/dax/mod-function-dax.md index ec7440440..373d5682c 100644 --- a/query-languages/dax/mod-function-dax.md +++ b/query-languages/dax/mod-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MOD" -title: "MOD function (DAX) | Microsoft Docs" +title: "MOD function (DAX)" --- # MOD diff --git a/query-languages/dax/month-function-dax.md b/query-languages/dax/month-function-dax.md index c10813b79..3ba06e7c9 100644 --- a/query-languages/dax/month-function-dax.md +++ b/query-languages/dax/month-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MONTH" -title: "MONTH function (DAX) | Microsoft Docs" +title: "MONTH function (DAX)" --- # MONTH diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index c048744ea..4dc2f5673 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MOVINGAVERAGE" -title: "MOVINGAVERAGE function (DAX) | Microsoft Docs" +title: "MOVINGAVERAGE function (DAX)" ms.service: powerbi ms.subservice: dax ms.date: 01/17/2023 diff --git a/query-languages/dax/mround-function-dax.md b/query-languages/dax/mround-function-dax.md index f413c3799..b6de2291d 100644 --- a/query-languages/dax/mround-function-dax.md +++ b/query-languages/dax/mround-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: MROUND" -title: "MROUND function (DAX) | Microsoft Docs" +title: "MROUND function (DAX)" --- # MROUND diff --git a/query-languages/dax/naturalinnerjoin-function-dax.md b/query-languages/dax/naturalinnerjoin-function-dax.md index 2ea106853..f64ffb5d1 100644 --- a/query-languages/dax/naturalinnerjoin-function-dax.md +++ b/query-languages/dax/naturalinnerjoin-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NATURALINNERJOIN" -title: "NATURALINNERJOIN function (DAX) | Microsoft Docs" +title: "NATURALINNERJOIN function (DAX)" --- # NATURALINNERJOIN diff --git a/query-languages/dax/naturalleftouterjoin-function-dax.md b/query-languages/dax/naturalleftouterjoin-function-dax.md index 94b2c7597..fffec1d14 100644 --- a/query-languages/dax/naturalleftouterjoin-function-dax.md +++ b/query-languages/dax/naturalleftouterjoin-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NATURALLEFTOUTERJOIN" -title: "NATURALLEFTOUTERJOIN function (DAX) | Microsoft Docs" +title: "NATURALLEFTOUTERJOIN function (DAX)" --- # NATURALLEFTOUTERJOIN diff --git a/query-languages/dax/networkdays-function-dax.md b/query-languages/dax/networkdays-function-dax.md index fb80997fd..eb560b849 100644 --- a/query-languages/dax/networkdays-function-dax.md +++ b/query-languages/dax/networkdays-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NETWORKDAYS" -title: "NETWORKDAYS function (DAX) | Microsoft Docs" +title: "NETWORKDAYS function (DAX)" --- # NETWORKDAYS diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 6814254f5..98cf9edca 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -1,6 +1,6 @@ --- description: "Learn more about: New DAX functions" -title: "New DAX functions | Microsoft Docs" +title: "New DAX functions" --- # New DAX functions diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 5484bf015..5e21a72f7 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NEXT" -title: "NEXT function (DAX) | Microsoft Docs" +title: "NEXT function (DAX)" --- # NEXT diff --git a/query-languages/dax/nextday-function-dax.md b/query-languages/dax/nextday-function-dax.md index 8ed769f6a..f0c711997 100644 --- a/query-languages/dax/nextday-function-dax.md +++ b/query-languages/dax/nextday-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NEXTDAY" -title: "NEXTDAY function (DAX) | Microsoft Docs" +title: "NEXTDAY function (DAX)" --- # NEXTDAY diff --git a/query-languages/dax/nextmonth-function-dax.md b/query-languages/dax/nextmonth-function-dax.md index 2ba4c7820..048a37f7b 100644 --- a/query-languages/dax/nextmonth-function-dax.md +++ b/query-languages/dax/nextmonth-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NEXTMONTH" -title: "NEXTMONTH function (DAX) | Microsoft Docs" +title: "NEXTMONTH function (DAX)" --- # NEXTMONTH diff --git a/query-languages/dax/nextquarter-function-dax.md b/query-languages/dax/nextquarter-function-dax.md index 939cc7dff..e797100e7 100644 --- a/query-languages/dax/nextquarter-function-dax.md +++ b/query-languages/dax/nextquarter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NEXTQUARTER" -title: "NEXTQUARTER function (DAX) | Microsoft Docs" +title: "NEXTQUARTER function (DAX)" --- # NEXTQUARTER diff --git a/query-languages/dax/nextyear-function-dax.md b/query-languages/dax/nextyear-function-dax.md index 710519f9e..c0fda083a 100644 --- a/query-languages/dax/nextyear-function-dax.md +++ b/query-languages/dax/nextyear-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NEXTYEAR" -title: "NEXTYEAR function (DAX) | Microsoft Docs" +title: "NEXTYEAR function (DAX)" --- # NEXTYEAR diff --git a/query-languages/dax/nominal-function-dax.md b/query-languages/dax/nominal-function-dax.md index 37bba3ea3..b08dab0ea 100644 --- a/query-languages/dax/nominal-function-dax.md +++ b/query-languages/dax/nominal-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NOMINAL" -title: "NOMINAL function (DAX) | Microsoft Docs" +title: "NOMINAL function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/nonvisual-function-dax.md b/query-languages/dax/nonvisual-function-dax.md index a325f0dd4..a4e4365d0 100644 --- a/query-languages/dax/nonvisual-function-dax.md +++ b/query-languages/dax/nonvisual-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NONVISUAL" -title: "NONVISUAL function (DAX) | Microsoft Docs" +title: "NONVISUAL function (DAX)" --- # NONVISUAL diff --git a/query-languages/dax/norm-dist-function-dax.md b/query-languages/dax/norm-dist-function-dax.md index 82c427e39..5c2742968 100644 --- a/query-languages/dax/norm-dist-function-dax.md +++ b/query-languages/dax/norm-dist-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NORM.DIST" -title: "NORM.DIST function (DAX) | Microsoft Docs" +title: "NORM.DIST function (DAX)" --- # NORM.DIST diff --git a/query-languages/dax/norm-inv-function-dax.md b/query-languages/dax/norm-inv-function-dax.md index 73159824e..82dcbf424 100644 --- a/query-languages/dax/norm-inv-function-dax.md +++ b/query-languages/dax/norm-inv-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NORM.INV" -title: "NORM.INV function (DAX) | Microsoft Docs" +title: "NORM.INV function (DAX)" --- # NORM.INV diff --git a/query-languages/dax/norm-s-dist-function-dax.md b/query-languages/dax/norm-s-dist-function-dax.md index 0c6def10f..7826b0079 100644 --- a/query-languages/dax/norm-s-dist-function-dax.md +++ b/query-languages/dax/norm-s-dist-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NORM.S.DIST" -title: "NORM.S.DIST function (DAX) | Microsoft Docs" +title: "NORM.S.DIST function (DAX)" --- # NORM.S.DIST diff --git a/query-languages/dax/norm-s-inv-function-dax.md b/query-languages/dax/norm-s-inv-function-dax.md index 8e1107416..5663f9bdf 100644 --- a/query-languages/dax/norm-s-inv-function-dax.md +++ b/query-languages/dax/norm-s-inv-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NORM.S.INV" -title: "NORM.S.INV function (DAX) | Microsoft Docs" +title: "NORM.S.INV function (DAX)" --- # NORM.S.INV diff --git a/query-languages/dax/not-function-dax.md b/query-languages/dax/not-function-dax.md index 814981efc..e03c1e84a 100644 --- a/query-languages/dax/not-function-dax.md +++ b/query-languages/dax/not-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NOT" -title: "NOT function (DAX) | Microsoft Docs" +title: "NOT function (DAX)" --- # NOT diff --git a/query-languages/dax/now-function-dax.md b/query-languages/dax/now-function-dax.md index 52def9839..72c5c3d02 100644 --- a/query-languages/dax/now-function-dax.md +++ b/query-languages/dax/now-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NOW" -title: "NOW function (DAX) | Microsoft Docs" +title: "NOW function (DAX)" --- # NOW diff --git a/query-languages/dax/nper-function-dax.md b/query-languages/dax/nper-function-dax.md index b2cdea251..81e4e0701 100644 --- a/query-languages/dax/nper-function-dax.md +++ b/query-languages/dax/nper-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: NPER" -title: "NPER function (DAX) | Microsoft Docs" +title: "NPER function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/odd-function-dax.md b/query-languages/dax/odd-function-dax.md index b05a9c1ca..ad5a9ceba 100644 --- a/query-languages/dax/odd-function-dax.md +++ b/query-languages/dax/odd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ODD" -title: "ODD function (DAX) | Microsoft Docs" +title: "ODD function (DAX)" --- # ODD diff --git a/query-languages/dax/oddfprice-function-dax.md b/query-languages/dax/oddfprice-function-dax.md index 66d864fa4..d4ca52e70 100644 --- a/query-languages/dax/oddfprice-function-dax.md +++ b/query-languages/dax/oddfprice-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ODDFPRICE" -title: "ODDFPRICE function (DAX) | Microsoft Docs" +title: "ODDFPRICE function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/oddfyield-function-dax.md b/query-languages/dax/oddfyield-function-dax.md index b2379028f..450348c9f 100644 --- a/query-languages/dax/oddfyield-function-dax.md +++ b/query-languages/dax/oddfyield-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ODDFYIELD" -title: "ODDFYIELD function (DAX) | Microsoft Docs" +title: "ODDFYIELD function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/oddlprice-function-dax.md b/query-languages/dax/oddlprice-function-dax.md index c212fa27e..85bf1f69d 100644 --- a/query-languages/dax/oddlprice-function-dax.md +++ b/query-languages/dax/oddlprice-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ODDLPRICE" -title: "ODDLPRICE function (DAX) | Microsoft Docs" +title: "ODDLPRICE function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/oddlyield-function-dax.md b/query-languages/dax/oddlyield-function-dax.md index 2d108a595..e3ce77f9c 100644 --- a/query-languages/dax/oddlyield-function-dax.md +++ b/query-languages/dax/oddlyield-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ODDLYIELD" -title: "ODDLYIELD function (DAX) | Microsoft Docs" +title: "ODDLYIELD function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 529a7e981..21db92bcd 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: OFFSET" -title: "OFFSET function (DAX) | Microsoft Docs" +title: "OFFSET function (DAX)" --- # OFFSET diff --git a/query-languages/dax/openingbalancemonth-function-dax.md b/query-languages/dax/openingbalancemonth-function-dax.md index 446c03e2e..855478c17 100644 --- a/query-languages/dax/openingbalancemonth-function-dax.md +++ b/query-languages/dax/openingbalancemonth-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: OPENINGBALANCEMONTH" -title: "OPENINGBALANCEMONTH function (DAX) | Microsoft Docs" +title: "OPENINGBALANCEMONTH function (DAX)" --- # OPENINGBALANCEMONTH diff --git a/query-languages/dax/openingbalancequarter-function-dax.md b/query-languages/dax/openingbalancequarter-function-dax.md index 57e6a19b2..ecb34f9e0 100644 --- a/query-languages/dax/openingbalancequarter-function-dax.md +++ b/query-languages/dax/openingbalancequarter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: OPENINGBALANCEQUARTER" -title: "OPENINGBALANCEQUARTER function (DAX) | Microsoft Docs" +title: "OPENINGBALANCEQUARTER function (DAX)" --- # OPENINGBALANCEQUARTER diff --git a/query-languages/dax/openingbalanceyear-function-dax.md b/query-languages/dax/openingbalanceyear-function-dax.md index 9a62f6c48..ac0ff369d 100644 --- a/query-languages/dax/openingbalanceyear-function-dax.md +++ b/query-languages/dax/openingbalanceyear-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: OPENINGBALANCEYEAR" -title: "OPENINGBALANCEYEAR function (DAX) | Microsoft Docs" +title: "OPENINGBALANCEYEAR function (DAX)" --- # OPENINGBALANCEYEAR diff --git a/query-languages/dax/or-function-dax.md b/query-languages/dax/or-function-dax.md index 86b68f06b..03b97921d 100644 --- a/query-languages/dax/or-function-dax.md +++ b/query-languages/dax/or-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: OR" -title: "OR function (DAX) | Microsoft Docs" +title: "OR function (DAX)" --- # OR diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index c9e88c2f8..e9a122377 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ORDERBY" -title: "ORDERBY function (DAX) | Microsoft Docs" +title: "ORDERBY function (DAX)" --- # ORDERBY diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index ad828efc6..1c02976d5 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ORDER BY" -title: "ORDER BY keyword (DAX) | Microsoft Docs" +title: "ORDER BY keyword (DAX)" --- # ORDER BY diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index d457ff4de..a4d38d1f8 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Other functions" -title: "Other functions (DAX) | Microsoft Docs" +title: "Other functions (DAX)" --- # Other functions diff --git a/query-languages/dax/parallelperiod-function-dax.md b/query-languages/dax/parallelperiod-function-dax.md index d771e2397..3669b5ca7 100644 --- a/query-languages/dax/parallelperiod-function-dax.md +++ b/query-languages/dax/parallelperiod-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PARALLELPERIOD" -title: "PARALLELPERIOD function (DAX) | Microsoft Docs" +title: "PARALLELPERIOD function (DAX)" --- # PARALLELPERIOD diff --git a/query-languages/dax/parent-and-child-functions-dax.md b/query-languages/dax/parent-and-child-functions-dax.md index 683877f18..b9b80c278 100644 --- a/query-languages/dax/parent-and-child-functions-dax.md +++ b/query-languages/dax/parent-and-child-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Parent and Child functions" -title: "Parent and Child functions (DAX) | Microsoft Docs" +title: "Parent and Child functions (DAX)" --- # Parent and Child functions diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index 382fd24b7..203b79bb4 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PARTITIONBY" -title: "PARTITIONBY function (DAX) | Microsoft Docs" +title: "PARTITIONBY function (DAX)" --- # PARTITIONBY diff --git a/query-languages/dax/path-function-dax.md b/query-languages/dax/path-function-dax.md index 52b0d9c82..43aa45b0e 100644 --- a/query-languages/dax/path-function-dax.md +++ b/query-languages/dax/path-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PATH" -title: "PATH function (DAX) | Microsoft Docs" +title: "PATH function (DAX)" --- # PATH diff --git a/query-languages/dax/pathcontains-function-dax.md b/query-languages/dax/pathcontains-function-dax.md index 780be7e36..9f2bd7286 100644 --- a/query-languages/dax/pathcontains-function-dax.md +++ b/query-languages/dax/pathcontains-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PATHCONTAINS" -title: "PATHCONTAINS function (DAX) | Microsoft Docs" +title: "PATHCONTAINS function (DAX)" --- # PATHCONTAINS diff --git a/query-languages/dax/pathitem-function-dax.md b/query-languages/dax/pathitem-function-dax.md index daa25a0cf..ed51cf975 100644 --- a/query-languages/dax/pathitem-function-dax.md +++ b/query-languages/dax/pathitem-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PATHITEM" -title: "PATHITEM function (DAX) | Microsoft Docs" +title: "PATHITEM function (DAX)" --- # PATHITEM diff --git a/query-languages/dax/pathitemreverse-function-dax.md b/query-languages/dax/pathitemreverse-function-dax.md index 9972cd0af..c93bbb1cf 100644 --- a/query-languages/dax/pathitemreverse-function-dax.md +++ b/query-languages/dax/pathitemreverse-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PATHITEMREVERSE" -title: "PATHITEMREVERSE function (DAX) | Microsoft Docs" +title: "PATHITEMREVERSE function (DAX)" --- # PATHITEMREVERSE diff --git a/query-languages/dax/pathlength-function-dax.md b/query-languages/dax/pathlength-function-dax.md index 787321454..3b47223d0 100644 --- a/query-languages/dax/pathlength-function-dax.md +++ b/query-languages/dax/pathlength-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PATHLENGTH" -title: "PATHLENGTH function (DAX) | Microsoft Docs" +title: "PATHLENGTH function (DAX)" --- # PATHLENGTH diff --git a/query-languages/dax/pduration-function-dax.md b/query-languages/dax/pduration-function-dax.md index 8f0744d0c..48870b9cc 100644 --- a/query-languages/dax/pduration-function-dax.md +++ b/query-languages/dax/pduration-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PDURATION" -title: "PDURATION function (DAX) | Microsoft Docs" +title: "PDURATION function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/percentile-exc-function-dax.md b/query-languages/dax/percentile-exc-function-dax.md index da30b1589..748f6d8aa 100644 --- a/query-languages/dax/percentile-exc-function-dax.md +++ b/query-languages/dax/percentile-exc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PERCENTILE.EXC" -title: "PERCENTILE.EXC function (DAX) | Microsoft Docs" +title: "PERCENTILE.EXC function (DAX)" --- # PERCENTILE.EXC diff --git a/query-languages/dax/percentile-inc-function-dax.md b/query-languages/dax/percentile-inc-function-dax.md index 697dc4614..be25241fa 100644 --- a/query-languages/dax/percentile-inc-function-dax.md +++ b/query-languages/dax/percentile-inc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PERCENTILE.INC" -title: "PERCENTILE.INC function (DAX) | Microsoft Docs" +title: "PERCENTILE.INC function (DAX)" --- # PERCENTILE.INC diff --git a/query-languages/dax/percentilex-exc-function-dax.md b/query-languages/dax/percentilex-exc-function-dax.md index 882286443..95a403791 100644 --- a/query-languages/dax/percentilex-exc-function-dax.md +++ b/query-languages/dax/percentilex-exc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PERCENTILEX.EXC" -title: "PERCENTILEX.EXC function (DAX) | Microsoft Docs" +title: "PERCENTILEX.EXC function (DAX)" --- # PERCENTILEX.EXC diff --git a/query-languages/dax/percentilex-inc-function-dax.md b/query-languages/dax/percentilex-inc-function-dax.md index 590682b5b..4e2ead4d2 100644 --- a/query-languages/dax/percentilex-inc-function-dax.md +++ b/query-languages/dax/percentilex-inc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PERCENTILEX.INC" -title: "PERCENTILEX.INC function (DAX) | Microsoft Docs" +title: "PERCENTILEX.INC function (DAX)" --- # PERCENTILEX.INC diff --git a/query-languages/dax/permut-function-dax.md b/query-languages/dax/permut-function-dax.md index c433dc3e5..5c208fe6d 100644 --- a/query-languages/dax/permut-function-dax.md +++ b/query-languages/dax/permut-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PERMUT" -title: "PERMUT function (DAX) | Microsoft Docs" +title: "PERMUT function (DAX)" --- # PERMUT diff --git a/query-languages/dax/pi-function-dax.md b/query-languages/dax/pi-function-dax.md index 2bf7ed3d2..98dacb8f2 100644 --- a/query-languages/dax/pi-function-dax.md +++ b/query-languages/dax/pi-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PI" -title: "PI function (DAX) | Microsoft Docs" +title: "PI function (DAX)" --- # PI diff --git a/query-languages/dax/pmt-function-dax.md b/query-languages/dax/pmt-function-dax.md index a7416fdd4..3432b0278 100644 --- a/query-languages/dax/pmt-function-dax.md +++ b/query-languages/dax/pmt-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PMT" -title: "PMT function (DAX) | Microsoft Docs" +title: "PMT function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/poisson-dist-function-dax.md b/query-languages/dax/poisson-dist-function-dax.md index ceacc58e5..b77cad4da 100644 --- a/query-languages/dax/poisson-dist-function-dax.md +++ b/query-languages/dax/poisson-dist-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: POISSON.DIST" -title: "POISSON.DIST function (DAX) | Microsoft Docs" +title: "POISSON.DIST function (DAX)" --- # POISSON.DIST diff --git a/query-languages/dax/power-function-dax.md b/query-languages/dax/power-function-dax.md index 73d7bbfea..54b2dd155 100644 --- a/query-languages/dax/power-function-dax.md +++ b/query-languages/dax/power-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: POWER" -title: "POWER function (DAX) | Microsoft Docs" +title: "POWER function (DAX)" --- # POWER diff --git a/query-languages/dax/ppmt-function-dax.md b/query-languages/dax/ppmt-function-dax.md index 7a104d847..c99885bf4 100644 --- a/query-languages/dax/ppmt-function-dax.md +++ b/query-languages/dax/ppmt-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PPMT" -title: "PPMT function (DAX) | Microsoft Docs" +title: "PPMT function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index d94791bca..7344d1589 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PREVIOUS" -title: "PREVIOUS function (DAX) | Microsoft Docs" +title: "PREVIOUS function (DAX)" --- # PREVIOUS diff --git a/query-languages/dax/previousday-function-dax.md b/query-languages/dax/previousday-function-dax.md index 73550f939..93acbe0f1 100644 --- a/query-languages/dax/previousday-function-dax.md +++ b/query-languages/dax/previousday-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PREVIOUSDAY" -title: "PREVIOUSDAY function (DAX) | Microsoft Docs" +title: "PREVIOUSDAY function (DAX)" --- # PREVIOUSDAY diff --git a/query-languages/dax/previousmonth-function-dax.md b/query-languages/dax/previousmonth-function-dax.md index b28817544..dfca76ea6 100644 --- a/query-languages/dax/previousmonth-function-dax.md +++ b/query-languages/dax/previousmonth-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PREVIOUSMONTH" -title: "PREVIOUSMONTH function (DAX) | Microsoft Docs" +title: "PREVIOUSMONTH function (DAX)" --- # PREVIOUSMONTH diff --git a/query-languages/dax/previousquarter-function-dax.md b/query-languages/dax/previousquarter-function-dax.md index 58c9f9c3a..101d5d224 100644 --- a/query-languages/dax/previousquarter-function-dax.md +++ b/query-languages/dax/previousquarter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PREVIOUSQUARTER" -title: "PREVIOUSQUARTER function (DAX) | Microsoft Docs" +title: "PREVIOUSQUARTER function (DAX)" --- # PREVIOUSQUARTER diff --git a/query-languages/dax/previousyear-function-dax.md b/query-languages/dax/previousyear-function-dax.md index 9ead84a0b..4abc8bf4f 100644 --- a/query-languages/dax/previousyear-function-dax.md +++ b/query-languages/dax/previousyear-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PREVIOUSYEAR" -title: "PREVIOUSYEAR function (DAX) | Microsoft Docs" +title: "PREVIOUSYEAR function (DAX)" --- # PREVIOUSYEAR diff --git a/query-languages/dax/price-function-dax.md b/query-languages/dax/price-function-dax.md index 3ae8f8382..4bb7364fc 100644 --- a/query-languages/dax/price-function-dax.md +++ b/query-languages/dax/price-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PRICE" -title: "PRICE function (DAX) | Microsoft Docs" +title: "PRICE function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/pricedisc-function-dax.md b/query-languages/dax/pricedisc-function-dax.md index f8ef64394..9f7334f75 100644 --- a/query-languages/dax/pricedisc-function-dax.md +++ b/query-languages/dax/pricedisc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PRICEDISC" -title: "PRICEDISC function (DAX) | Microsoft Docs" +title: "PRICEDISC function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/pricemat-function-dax.md b/query-languages/dax/pricemat-function-dax.md index c40156ce5..000c68139 100644 --- a/query-languages/dax/pricemat-function-dax.md +++ b/query-languages/dax/pricemat-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PRICEMAT" -title: "PRICEMAT function (DAX) | Microsoft Docs" +title: "PRICEMAT function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/product-function-dax.md b/query-languages/dax/product-function-dax.md index ea73d9e64..4f3bfca6e 100644 --- a/query-languages/dax/product-function-dax.md +++ b/query-languages/dax/product-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PRODUCT" -title: "PRODUCT function (DAX) | Microsoft Docs" +title: "PRODUCT function (DAX)" --- # PRODUCT diff --git a/query-languages/dax/productx-function-dax.md b/query-languages/dax/productx-function-dax.md index 9f21aeece..72c57f70f 100644 --- a/query-languages/dax/productx-function-dax.md +++ b/query-languages/dax/productx-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PRODUCTX" -title: "PRODUCTX function (DAX) | Microsoft Docs" +title: "PRODUCTX function (DAX)" --- # PRODUCTX diff --git a/query-languages/dax/pv-function-dax.md b/query-languages/dax/pv-function-dax.md index 1d1f884e1..d51c29251 100644 --- a/query-languages/dax/pv-function-dax.md +++ b/query-languages/dax/pv-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: PV" -title: "PV function (DAX) | Microsoft Docs" +title: "PV function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/quarter-function-dax.md b/query-languages/dax/quarter-function-dax.md index 226eefa49..a7faaddf8 100644 --- a/query-languages/dax/quarter-function-dax.md +++ b/query-languages/dax/quarter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: QUARTER" -title: "QUARTER function (DAX) | Microsoft Docs" +title: "QUARTER function (DAX)" --- # QUARTER diff --git a/query-languages/dax/quotient-function-dax.md b/query-languages/dax/quotient-function-dax.md index bba1b38c0..bd2deea6a 100644 --- a/query-languages/dax/quotient-function-dax.md +++ b/query-languages/dax/quotient-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: QUOTIENT" -title: "QUOTIENT function (DAX) | Microsoft Docs" +title: "QUOTIENT function (DAX)" --- # QUOTIENT diff --git a/query-languages/dax/radians-function-dax.md b/query-languages/dax/radians-function-dax.md index accbc3704..05caa40ce 100644 --- a/query-languages/dax/radians-function-dax.md +++ b/query-languages/dax/radians-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RADIANS" -title: "RADIANS function (DAX) | Microsoft Docs" +title: "RADIANS function (DAX)" --- # RADIANS diff --git a/query-languages/dax/rand-function-dax.md b/query-languages/dax/rand-function-dax.md index e78e93ed4..4bf88b9b4 100644 --- a/query-languages/dax/rand-function-dax.md +++ b/query-languages/dax/rand-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RAND" -title: "RAND function (DAX) | Microsoft Docs" +title: "RAND function (DAX)" --- # RAND diff --git a/query-languages/dax/randbetween-function-dax.md b/query-languages/dax/randbetween-function-dax.md index 11d9c7557..e8752e5b5 100644 --- a/query-languages/dax/randbetween-function-dax.md +++ b/query-languages/dax/randbetween-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RANDBETWEEN" -title: "RANDBETWEEN function (DAX) | Microsoft Docs" +title: "RANDBETWEEN function (DAX)" --- # RANDBETWEEN diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index d2d34eacd..1577dd371 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RANGE" -title: "RANGE function (DAX) | Microsoft Docs" +title: "RANGE function (DAX)" ms.service: powerbi ms.subservice: dax ms.date: 01/17/2023 diff --git a/query-languages/dax/rank-eq-function-dax.md b/query-languages/dax/rank-eq-function-dax.md index 3f0823d7f..23d4fbb74 100644 --- a/query-languages/dax/rank-eq-function-dax.md +++ b/query-languages/dax/rank-eq-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RANK.EQ" -title: "RANK.EQ function (DAX) | Microsoft Docs" +title: "RANK.EQ function (DAX)" --- # RANK.EQ diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 916cdaf8b..69f64bebf 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RANK" -title: "RANK function (DAX) | Microsoft Docs" +title: "RANK function (DAX)" author: rahulten --- diff --git a/query-languages/dax/rankx-function-dax.md b/query-languages/dax/rankx-function-dax.md index 10626c79d..2e6420013 100644 --- a/query-languages/dax/rankx-function-dax.md +++ b/query-languages/dax/rankx-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RANKX" -title: "RANKX function (DAX) | Microsoft Docs" +title: "RANKX function (DAX)" --- # RANKX diff --git a/query-languages/dax/rate-function-dax.md b/query-languages/dax/rate-function-dax.md index 36797a714..de47b1c02 100644 --- a/query-languages/dax/rate-function-dax.md +++ b/query-languages/dax/rate-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RATE" -title: "RATE function (DAX) | Microsoft Docs" +title: "RATE function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/received-function-dax.md b/query-languages/dax/received-function-dax.md index 1ec7c4122..bdb6c6331 100644 --- a/query-languages/dax/received-function-dax.md +++ b/query-languages/dax/received-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RECEIVED" -title: "RECEIVED function (DAX) | Microsoft Docs" +title: "RECEIVED function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/related-function-dax.md b/query-languages/dax/related-function-dax.md index ed623f81c..a3e51dd53 100644 --- a/query-languages/dax/related-function-dax.md +++ b/query-languages/dax/related-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RELATED" -title: "RELATED function (DAX) | Microsoft Docs" +title: "RELATED function (DAX)" --- # RELATED diff --git a/query-languages/dax/relatedtable-function-dax.md b/query-languages/dax/relatedtable-function-dax.md index 74d8b97b1..20ebd2324 100644 --- a/query-languages/dax/relatedtable-function-dax.md +++ b/query-languages/dax/relatedtable-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RELATEDTABLE" -title: "RELATEDTABLE function (DAX) | Microsoft Docs" +title: "RELATEDTABLE function (DAX)" --- # RELATEDTABLE diff --git a/query-languages/dax/relationship-functions-dax.md b/query-languages/dax/relationship-functions-dax.md index 2071e416e..df2aeb7ee 100644 --- a/query-languages/dax/relationship-functions-dax.md +++ b/query-languages/dax/relationship-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Relationship functions" -title: "Relationship functions (DAX) | Microsoft Docs" +title: "Relationship functions (DAX)" --- # Relationship functions diff --git a/query-languages/dax/removefilters-function-dax.md b/query-languages/dax/removefilters-function-dax.md index 3d13a5445..68105ec65 100644 --- a/query-languages/dax/removefilters-function-dax.md +++ b/query-languages/dax/removefilters-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: REMOVEFILTERS" -title: "REMOVEFILTERS function (DAX) | Microsoft Docs" +title: "REMOVEFILTERS function (DAX)" --- # REMOVEFILTERS diff --git a/query-languages/dax/replace-function-dax.md b/query-languages/dax/replace-function-dax.md index 7382ca82c..1a0c351a6 100644 --- a/query-languages/dax/replace-function-dax.md +++ b/query-languages/dax/replace-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: REPLACE" -title: "REPLACE function (DAX) | Microsoft Docs" +title: "REPLACE function (DAX)" --- # REPLACE diff --git a/query-languages/dax/rept-function-dax.md b/query-languages/dax/rept-function-dax.md index fb823f900..8e95a9a13 100644 --- a/query-languages/dax/rept-function-dax.md +++ b/query-languages/dax/rept-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: REPT" -title: "REPT function (DAX) | Microsoft Docs" +title: "REPT function (DAX)" --- # REPT diff --git a/query-languages/dax/right-function-dax.md b/query-languages/dax/right-function-dax.md index df70853b3..20ab02990 100644 --- a/query-languages/dax/right-function-dax.md +++ b/query-languages/dax/right-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RIGHT" -title: "RIGHT function (DAX) | Microsoft Docs" +title: "RIGHT function (DAX)" --- # RIGHT diff --git a/query-languages/dax/rollup-function-dax.md b/query-languages/dax/rollup-function-dax.md index 3016dae12..caf370b16 100644 --- a/query-languages/dax/rollup-function-dax.md +++ b/query-languages/dax/rollup-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ROLLUP" -title: "ROLLUP function (DAX) | Microsoft Docs" +title: "ROLLUP function (DAX)" --- # ROLLUP diff --git a/query-languages/dax/rollupaddissubtotal-function-dax.md b/query-languages/dax/rollupaddissubtotal-function-dax.md index 6a28130af..9b3a444d6 100644 --- a/query-languages/dax/rollupaddissubtotal-function-dax.md +++ b/query-languages/dax/rollupaddissubtotal-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ROLLUPADDISSUBTOTAL" -title: "ROLLUPADDISSUBTOTAL function (DAX) | Microsoft Docs" +title: "ROLLUPADDISSUBTOTAL function (DAX)" --- # ROLLUPADDISSUBTOTAL diff --git a/query-languages/dax/rollupgroup-function-dax.md b/query-languages/dax/rollupgroup-function-dax.md index 26f2a1466..d20e2d81f 100644 --- a/query-languages/dax/rollupgroup-function-dax.md +++ b/query-languages/dax/rollupgroup-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ROLLUPGROUP" -title: "ROLLUPGROUP function (DAX) | Microsoft Docs" +title: "ROLLUPGROUP function (DAX)" --- # ROLLUPGROUP diff --git a/query-languages/dax/rollupissubtotal-function-dax.md b/query-languages/dax/rollupissubtotal-function-dax.md index d2c0caef4..71cf733a5 100644 --- a/query-languages/dax/rollupissubtotal-function-dax.md +++ b/query-languages/dax/rollupissubtotal-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ROLLUPISSUBTOTAL" -title: "ROLLUPISSUBTOTAL function (DAX) | Microsoft Docs" +title: "ROLLUPISSUBTOTAL function (DAX)" --- # ROLLUPISSUBTOTAL diff --git a/query-languages/dax/round-function-dax.md b/query-languages/dax/round-function-dax.md index e354793c4..4711b4e3a 100644 --- a/query-languages/dax/round-function-dax.md +++ b/query-languages/dax/round-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ROUND" -title: "ROUND function (DAX) | Microsoft Docs" +title: "ROUND function (DAX)" --- # ROUND diff --git a/query-languages/dax/rounddown-function-dax.md b/query-languages/dax/rounddown-function-dax.md index 8a7c29de7..05ae29a13 100644 --- a/query-languages/dax/rounddown-function-dax.md +++ b/query-languages/dax/rounddown-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ROUNDDOWN" -title: "ROUNDDOWN function (DAX) | Microsoft Docs" +title: "ROUNDDOWN function (DAX)" --- # ROUNDDOWN diff --git a/query-languages/dax/roundup-function-dax.md b/query-languages/dax/roundup-function-dax.md index 2f1495f87..5e3c41764 100644 --- a/query-languages/dax/roundup-function-dax.md +++ b/query-languages/dax/roundup-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ROUNDUP" -title: "ROUNDUP function (DAX) | Microsoft Docs" +title: "ROUNDUP function (DAX)" --- # ROUNDUP diff --git a/query-languages/dax/row-function-dax.md b/query-languages/dax/row-function-dax.md index 36498ec3d..341b77aa2 100644 --- a/query-languages/dax/row-function-dax.md +++ b/query-languages/dax/row-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ROW function" -title: "ROW function (DAX) | Microsoft Docs" +title: "ROW function (DAX)" --- # ROW function diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 6f72d0b32..3bcef0cc5 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: ROWNUMBER" -title: "ROWNUMBER function (DAX) | Microsoft Docs" +title: "ROWNUMBER function (DAX)" author: rahulten --- # ROWNUMBER diff --git a/query-languages/dax/rri-function-dax.md b/query-languages/dax/rri-function-dax.md index 3085458c8..c2227d1cd 100644 --- a/query-languages/dax/rri-function-dax.md +++ b/query-languages/dax/rri-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RRI" -title: "RRI function (DAX) | Microsoft Docs" +title: "RRI function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index ae61b46eb..8be15f13d 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: RUNNINGSUM" -title: "RUNNINGSUM function (DAX) | Microsoft Docs" +title: "RUNNINGSUM function (DAX)" ms.service: powerbi ms.subservice: dax ms.date: 01/17/2023 diff --git a/query-languages/dax/sameperiodlastyear-function-dax.md b/query-languages/dax/sameperiodlastyear-function-dax.md index fb824e5ed..8f797f330 100644 --- a/query-languages/dax/sameperiodlastyear-function-dax.md +++ b/query-languages/dax/sameperiodlastyear-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SAMEPERIODLASTYEAR" -title: "SAMEPERIODLASTYEAR function (DAX) | Microsoft Docs" +title: "SAMEPERIODLASTYEAR function (DAX)" --- # SAMEPERIODLASTYEAR diff --git a/query-languages/dax/sample-function-dax.md b/query-languages/dax/sample-function-dax.md index 20f8886bc..403c48269 100644 --- a/query-languages/dax/sample-function-dax.md +++ b/query-languages/dax/sample-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SAMPLE" -title: "SAMPLE function (DAX) | Microsoft Docs" +title: "SAMPLE function (DAX)" --- # SAMPLE diff --git a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md index d2115c2cd..88bc6e342 100644 --- a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md +++ b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SAMPLEAXISWITHLOCALMINMAX" -title: "SAMPLEAXISWITHLOCALMINMAX function (DAX) | Microsoft Docs" +title: "SAMPLEAXISWITHLOCALMINMAX function (DAX)" author: jterh --- diff --git a/query-languages/dax/search-function-dax.md b/query-languages/dax/search-function-dax.md index a97c7e110..691c9da9b 100644 --- a/query-languages/dax/search-function-dax.md +++ b/query-languages/dax/search-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SEARCH" -title: "SEARCH function (DAX) | Microsoft Docs" +title: "SEARCH function (DAX)" --- # SEARCH diff --git a/query-languages/dax/second-function-dax.md b/query-languages/dax/second-function-dax.md index 779d79a84..1293f7d21 100644 --- a/query-languages/dax/second-function-dax.md +++ b/query-languages/dax/second-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SECOND" -title: "SECOND function (DAX) | Microsoft Docs" +title: "SECOND function (DAX)" --- # SECOND diff --git a/query-languages/dax/selectcolumns-function-dax.md b/query-languages/dax/selectcolumns-function-dax.md index 58746d9e0..babb67a88 100644 --- a/query-languages/dax/selectcolumns-function-dax.md +++ b/query-languages/dax/selectcolumns-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SELECTCOLUMNS" -title: "SELECTCOLUMNS function (DAX) | Microsoft Docs" +title: "SELECTCOLUMNS function (DAX)" --- # SELECTCOLUMNS diff --git a/query-languages/dax/selectedmeasure-function-dax.md b/query-languages/dax/selectedmeasure-function-dax.md index 3c057ff83..b8c78a61c 100644 --- a/query-languages/dax/selectedmeasure-function-dax.md +++ b/query-languages/dax/selectedmeasure-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SELECTEDMEASURE" -title: "SELECTEDMEASURE function (DAX) | Microsoft Docs" +title: "SELECTEDMEASURE function (DAX)" --- # SELECTEDMEASURE diff --git a/query-languages/dax/selectedmeasureformatstring-function-dax.md b/query-languages/dax/selectedmeasureformatstring-function-dax.md index 48cdc4929..0ecd76116 100644 --- a/query-languages/dax/selectedmeasureformatstring-function-dax.md +++ b/query-languages/dax/selectedmeasureformatstring-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SELECTEDMEASUREFORMATSTRING" -title: "SELECTEDMEASUREFORMATSTRING function (DAX) | Microsoft Docs" +title: "SELECTEDMEASUREFORMATSTRING function (DAX)" --- # SELECTEDMEASUREFORMATSTRING diff --git a/query-languages/dax/selectedmeasurename-function-dax.md b/query-languages/dax/selectedmeasurename-function-dax.md index 3d08c54f7..15606adc2 100644 --- a/query-languages/dax/selectedmeasurename-function-dax.md +++ b/query-languages/dax/selectedmeasurename-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SELECTEDMEASURENAME" -title: "SELECTEDMEASURENAME function (DAX) | Microsoft Docs" +title: "SELECTEDMEASURENAME function (DAX)" --- # SELECTEDMEASURENAME diff --git a/query-languages/dax/selectedvalue-function-dax.md b/query-languages/dax/selectedvalue-function-dax.md index 132e82b70..7d7ea1837 100644 --- a/query-languages/dax/selectedvalue-function-dax.md +++ b/query-languages/dax/selectedvalue-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SELECTEDVALUE" -title: "SELECTEDVALUE function | Microsoft Docs" +title: "SELECTEDVALUE function" --- # SELECTEDVALUE diff --git a/query-languages/dax/sign-function-dax.md b/query-languages/dax/sign-function-dax.md index 173f6acb0..d05510ed1 100644 --- a/query-languages/dax/sign-function-dax.md +++ b/query-languages/dax/sign-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SIGN" -title: "SIGN function (DAX) | Microsoft Docs" +title: "SIGN function (DAX)" --- # SIGN diff --git a/query-languages/dax/sin-function-dax.md b/query-languages/dax/sin-function-dax.md index 9432555f7..f5cea7dd7 100644 --- a/query-languages/dax/sin-function-dax.md +++ b/query-languages/dax/sin-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SIN" -title: "SIN function (DAX) | Microsoft Docs" +title: "SIN function (DAX)" --- # SIN diff --git a/query-languages/dax/sinh-function-dax.md b/query-languages/dax/sinh-function-dax.md index b237f0e8a..6744af8fc 100644 --- a/query-languages/dax/sinh-function-dax.md +++ b/query-languages/dax/sinh-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SINH" -title: "SINH function (DAX) | Microsoft Docs" +title: "SINH function (DAX)" --- # SINH diff --git a/query-languages/dax/sln-function-dax.md b/query-languages/dax/sln-function-dax.md index 1e2231732..f1ec42714 100644 --- a/query-languages/dax/sln-function-dax.md +++ b/query-languages/dax/sln-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SLN" -title: "SLN function (DAX) | Microsoft Docs" +title: "SLN function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/sqrt-function-dax.md b/query-languages/dax/sqrt-function-dax.md index 7220637ac..52d0e4983 100644 --- a/query-languages/dax/sqrt-function-dax.md +++ b/query-languages/dax/sqrt-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SQRT" -title: "SQRT function (DAX) | Microsoft Docs" +title: "SQRT function (DAX)" --- # SQRT diff --git a/query-languages/dax/sqrtpi-function-dax.md b/query-languages/dax/sqrtpi-function-dax.md index 4aa56fcd0..dcb81996a 100644 --- a/query-languages/dax/sqrtpi-function-dax.md +++ b/query-languages/dax/sqrtpi-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SQRTPI" -title: "SQRTPI function (DAX) | Microsoft Docs" +title: "SQRTPI function (DAX)" --- # SQRTPI diff --git a/query-languages/dax/startat-statement-dax.md b/query-languages/dax/startat-statement-dax.md index f1abb87dc..e867aec5c 100644 --- a/query-languages/dax/startat-statement-dax.md +++ b/query-languages/dax/startat-statement-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: START AT" -title: "START AT keyword (DAX) | Microsoft Docs" +title: "START AT keyword (DAX)" --- # START AT diff --git a/query-languages/dax/startofmonth-function-dax.md b/query-languages/dax/startofmonth-function-dax.md index c3507a35f..53f2b8c8c 100644 --- a/query-languages/dax/startofmonth-function-dax.md +++ b/query-languages/dax/startofmonth-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: STARTOFMONTH" -title: "STARTOFMONTH function (DAX) | Microsoft Docs" +title: "STARTOFMONTH function (DAX)" --- # STARTOFMONTH diff --git a/query-languages/dax/startofquarter-function-dax.md b/query-languages/dax/startofquarter-function-dax.md index 52f90ec02..4fc581738 100644 --- a/query-languages/dax/startofquarter-function-dax.md +++ b/query-languages/dax/startofquarter-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: STARTOFQUARTER" -title: "STARTOFQUARTER function (DAX) | Microsoft Docs" +title: "STARTOFQUARTER function (DAX)" --- # STARTOFQUARTER diff --git a/query-languages/dax/startofyear-function-dax.md b/query-languages/dax/startofyear-function-dax.md index 107530235..d1af92a7a 100644 --- a/query-languages/dax/startofyear-function-dax.md +++ b/query-languages/dax/startofyear-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: STARTOFYEAR" -title: "STARTOFYEAR function (DAX) | Microsoft Docs" +title: "STARTOFYEAR function (DAX)" --- # STARTOFYEAR diff --git a/query-languages/dax/statements-dax.md b/query-languages/dax/statements-dax.md index 5a7d4f7f1..205d548d4 100644 --- a/query-languages/dax/statements-dax.md +++ b/query-languages/dax/statements-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Statements" -title: "Statements(DAX) | Microsoft Docs" +title: "Statements(DAX)" --- # Statements diff --git a/query-languages/dax/statistical-functions-dax.md b/query-languages/dax/statistical-functions-dax.md index 6e79e42d2..635b6d45d 100644 --- a/query-languages/dax/statistical-functions-dax.md +++ b/query-languages/dax/statistical-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Statistical functions" -title: "Statistical functions (DAX) | Microsoft Docs" +title: "Statistical functions (DAX)" --- # Statistical functions diff --git a/query-languages/dax/stdev-p-function-dax.md b/query-languages/dax/stdev-p-function-dax.md index 3c706ebf1..fdb099275 100644 --- a/query-languages/dax/stdev-p-function-dax.md +++ b/query-languages/dax/stdev-p-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: STDEV.P" -title: "STDEV.P function (DAX) | Microsoft Docs" +title: "STDEV.P function (DAX)" --- # STDEV.P diff --git a/query-languages/dax/stdev-s-function-dax.md b/query-languages/dax/stdev-s-function-dax.md index 14f3a083a..ef24e961b 100644 --- a/query-languages/dax/stdev-s-function-dax.md +++ b/query-languages/dax/stdev-s-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: STDEV.S" -title: "STDEV.S function (DAX) | Microsoft Docs" +title: "STDEV.S function (DAX)" --- # STDEV.S diff --git a/query-languages/dax/stdevx-p-function-dax.md b/query-languages/dax/stdevx-p-function-dax.md index d73e5bf59..ff9b72a4f 100644 --- a/query-languages/dax/stdevx-p-function-dax.md +++ b/query-languages/dax/stdevx-p-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: STDEVX.P" -title: "STDEVX.P function (DAX) | Microsoft Docs" +title: "STDEVX.P function (DAX)" --- # STDEVX.P diff --git a/query-languages/dax/stdevx-s-function-dax.md b/query-languages/dax/stdevx-s-function-dax.md index 0c62c139a..699967a26 100644 --- a/query-languages/dax/stdevx-s-function-dax.md +++ b/query-languages/dax/stdevx-s-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: STDEVX.S" -title: "STDEVX.S function (DAX) | Microsoft Docs" +title: "STDEVX.S function (DAX)" --- # STDEVX.S diff --git a/query-languages/dax/substitute-function-dax.md b/query-languages/dax/substitute-function-dax.md index 5847603f2..049a9e494 100644 --- a/query-languages/dax/substitute-function-dax.md +++ b/query-languages/dax/substitute-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SUBSTITUTE" -title: "SUBSTITUTE function (DAX) | Microsoft Docs" +title: "SUBSTITUTE function (DAX)" --- # SUBSTITUTE diff --git a/query-languages/dax/substitutewithindex-function-dax.md b/query-languages/dax/substitutewithindex-function-dax.md index 8856d75f7..1a0c6606e 100644 --- a/query-languages/dax/substitutewithindex-function-dax.md +++ b/query-languages/dax/substitutewithindex-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SUBSTITUTEWITHINDEX" -title: "SUBSTITUTEWITHINDEX function (DAX) | Microsoft Docs" +title: "SUBSTITUTEWITHINDEX function (DAX)" --- # SUBSTITUTEWITHINDEX diff --git a/query-languages/dax/sum-function-dax.md b/query-languages/dax/sum-function-dax.md index f14811d9b..206c03939 100644 --- a/query-languages/dax/sum-function-dax.md +++ b/query-languages/dax/sum-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SUM" -title: "SUM function (DAX) | Microsoft Docs" +title: "SUM function (DAX)" --- # SUM diff --git a/query-languages/dax/summarize-function-dax.md b/query-languages/dax/summarize-function-dax.md index 65d57d370..57e390e5c 100644 --- a/query-languages/dax/summarize-function-dax.md +++ b/query-languages/dax/summarize-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SUMMARIZE" -title: "SUMMARIZE function (DAX) | Microsoft Docs" +title: "SUMMARIZE function (DAX)" --- # SUMMARIZE diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index ed2c57799..65e6211f2 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SUMMARIZECOLUMNS" -title: "SUMMARIZECOLUMNS function (DAX) | Microsoft Docs" +title: "SUMMARIZECOLUMNS function (DAX)" --- # SUMMARIZECOLUMNS diff --git a/query-languages/dax/sumx-function-dax.md b/query-languages/dax/sumx-function-dax.md index 48676f29c..cd92d25b9 100644 --- a/query-languages/dax/sumx-function-dax.md +++ b/query-languages/dax/sumx-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SUMX" -title: "SUMX function (DAX) | Microsoft Docs" +title: "SUMX function (DAX)" --- # SUMX diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index 924a44d22..f040fc721 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SWITCH" -title: "SWITCH function (DAX) | Microsoft Docs" +title: "SWITCH function (DAX)" --- # SWITCH diff --git a/query-languages/dax/syd-function-dax.md b/query-languages/dax/syd-function-dax.md index 9a365dfa8..d31e347fa 100644 --- a/query-languages/dax/syd-function-dax.md +++ b/query-languages/dax/syd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: SYD" -title: "SYD function (DAX) | Microsoft Docs" +title: "SYD function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/t-dist-2t-function-dax.md b/query-languages/dax/t-dist-2t-function-dax.md index 99e24d13a..1cda4ac28 100644 --- a/query-languages/dax/t-dist-2t-function-dax.md +++ b/query-languages/dax/t-dist-2t-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: T.DIST.2T" -title: "T.DIST.2T function (DAX) | Microsoft Docs" +title: "T.DIST.2T function (DAX)" --- # T.DIST.2T diff --git a/query-languages/dax/t-dist-function-dax.md b/query-languages/dax/t-dist-function-dax.md index 25ed16887..0775f773d 100644 --- a/query-languages/dax/t-dist-function-dax.md +++ b/query-languages/dax/t-dist-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: T.DIST" -title: "T.DIST function (DAX) | Microsoft Docs" +title: "T.DIST function (DAX)" --- # T.DIST diff --git a/query-languages/dax/t-dist-rt-function-dax.md b/query-languages/dax/t-dist-rt-function-dax.md index c75b319b9..4f94b3f1a 100644 --- a/query-languages/dax/t-dist-rt-function-dax.md +++ b/query-languages/dax/t-dist-rt-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: T.DIST.RT" -title: "T.DIST.RT function (DAX) | Microsoft Docs" +title: "T.DIST.RT function (DAX)" --- # T.DIST.RT diff --git a/query-languages/dax/t-inv-2t-function-dax.md b/query-languages/dax/t-inv-2t-function-dax.md index 9ce432534..458ef9e4a 100644 --- a/query-languages/dax/t-inv-2t-function-dax.md +++ b/query-languages/dax/t-inv-2t-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: T.INV.2T" -title: "T.INV.2T function (DAX) | Microsoft Docs" +title: "T.INV.2T function (DAX)" --- # T.INV.2T diff --git a/query-languages/dax/t-inv-function-dax.md b/query-languages/dax/t-inv-function-dax.md index 1958f43d8..f7808f6aa 100644 --- a/query-languages/dax/t-inv-function-dax.md +++ b/query-languages/dax/t-inv-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: T.INV" -title: "T.INV function (DAX) | Microsoft Docs" +title: "T.INV function (DAX)" --- # T.INV diff --git a/query-languages/dax/table-constructor.md b/query-languages/dax/table-constructor.md index c0a8e9ba3..17f9432a3 100644 --- a/query-languages/dax/table-constructor.md +++ b/query-languages/dax/table-constructor.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table constructor" -title: "Table constructor | Microsoft Docs" +title: "Table constructor" --- # Table constructor diff --git a/query-languages/dax/table-manipulation-functions-dax.md b/query-languages/dax/table-manipulation-functions-dax.md index f145d5bba..75c7e4bf9 100644 --- a/query-languages/dax/table-manipulation-functions-dax.md +++ b/query-languages/dax/table-manipulation-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Table manipulation functions" -title: "Table manipulation functions (DAX) | Microsoft Docs" +title: "Table manipulation functions (DAX)" --- # Table manipulation functions diff --git a/query-languages/dax/tan-function-dax.md b/query-languages/dax/tan-function-dax.md index 7bb4f005d..47bc82d03 100644 --- a/query-languages/dax/tan-function-dax.md +++ b/query-languages/dax/tan-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TAN" -title: "TAN function (DAX) | Microsoft Docs" +title: "TAN function (DAX)" --- # TAN diff --git a/query-languages/dax/tanh-function-dax.md b/query-languages/dax/tanh-function-dax.md index 02461ec86..36768b1df 100644 --- a/query-languages/dax/tanh-function-dax.md +++ b/query-languages/dax/tanh-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TANH" -title: "TANH function (DAX) | Microsoft Docs" +title: "TANH function (DAX)" --- # TANH diff --git a/query-languages/dax/tbilleq-function-dax.md b/query-languages/dax/tbilleq-function-dax.md index 7cfa38f3d..d35392cb5 100644 --- a/query-languages/dax/tbilleq-function-dax.md +++ b/query-languages/dax/tbilleq-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TBILLEQ" -title: "TBILLEQ function (DAX) | Microsoft Docs" +title: "TBILLEQ function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/tbillprice-function-dax.md b/query-languages/dax/tbillprice-function-dax.md index c97bcfb0c..d688f7a66 100644 --- a/query-languages/dax/tbillprice-function-dax.md +++ b/query-languages/dax/tbillprice-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TBILLPRICE" -title: "TBILLPRICE function (DAX) | Microsoft Docs" +title: "TBILLPRICE function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/tbillyield-function-dax.md b/query-languages/dax/tbillyield-function-dax.md index 8f5b53946..af7dcc61a 100644 --- a/query-languages/dax/tbillyield-function-dax.md +++ b/query-languages/dax/tbillyield-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TBILLYIELD" -title: "TBILLYIELD function (DAX) | Microsoft Docs" +title: "TBILLYIELD function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/text-functions-dax.md b/query-languages/dax/text-functions-dax.md index b5e90cd28..c33b315b1 100644 --- a/query-languages/dax/text-functions-dax.md +++ b/query-languages/dax/text-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Text functions" -title: "Text functions (DAX) | Microsoft Docs" +title: "Text functions (DAX)" --- # Text functions diff --git a/query-languages/dax/time-function-dax.md b/query-languages/dax/time-function-dax.md index 99d01ec3b..ae4faee5c 100644 --- a/query-languages/dax/time-function-dax.md +++ b/query-languages/dax/time-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TIME" -title: "TIME function (DAX) | Microsoft Docs" +title: "TIME function (DAX)" --- # TIME diff --git a/query-languages/dax/time-intelligence-functions-dax.md b/query-languages/dax/time-intelligence-functions-dax.md index d7abc265f..330525ae8 100644 --- a/query-languages/dax/time-intelligence-functions-dax.md +++ b/query-languages/dax/time-intelligence-functions-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Time intelligence functions" -title: "Time intelligence functions (DAX) | Microsoft Docs" +title: "Time intelligence functions (DAX)" --- # Time intelligence functions diff --git a/query-languages/dax/timevalue-function-dax.md b/query-languages/dax/timevalue-function-dax.md index 74edc5254..f4ded61e5 100644 --- a/query-languages/dax/timevalue-function-dax.md +++ b/query-languages/dax/timevalue-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TIMEVALUE" -title: "TIMEVALUE function (DAX) | Microsoft Docs" +title: "TIMEVALUE function (DAX)" --- # TIMEVALUE diff --git a/query-languages/dax/tocsv-function-dax.md b/query-languages/dax/tocsv-function-dax.md index 62aec8311..4716bf370 100644 --- a/query-languages/dax/tocsv-function-dax.md +++ b/query-languages/dax/tocsv-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TOCSV" -title: "TOCSV function (DAX) | Microsoft Docs" +title: "TOCSV function (DAX)" --- # TOCSV diff --git a/query-languages/dax/today-function-dax.md b/query-languages/dax/today-function-dax.md index de6d11091..1ff4a4f19 100644 --- a/query-languages/dax/today-function-dax.md +++ b/query-languages/dax/today-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TODAY" -title: "TODAY function (DAX) | Microsoft Docs" +title: "TODAY function (DAX)" --- # TODAY diff --git a/query-languages/dax/tojson-function-dax.md b/query-languages/dax/tojson-function-dax.md index defd97b4a..881028d33 100644 --- a/query-languages/dax/tojson-function-dax.md +++ b/query-languages/dax/tojson-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TOJSON" -title: "TOJSON function (DAX) | Microsoft Docs" +title: "TOJSON function (DAX)" --- # TOJSON diff --git a/query-languages/dax/topn-function-dax.md b/query-languages/dax/topn-function-dax.md index e693e6a76..550c24fd2 100644 --- a/query-languages/dax/topn-function-dax.md +++ b/query-languages/dax/topn-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TOPN" -title: "TOPN function (DAX) | Microsoft Docs" +title: "TOPN function (DAX)" --- # TOPN diff --git a/query-languages/dax/totalmtd-function-dax.md b/query-languages/dax/totalmtd-function-dax.md index dea1bc745..24179a344 100644 --- a/query-languages/dax/totalmtd-function-dax.md +++ b/query-languages/dax/totalmtd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TOTALMTD" -title: "TOTALMTD function (DAX) | Microsoft Docs" +title: "TOTALMTD function (DAX)" --- # TOTALMTD diff --git a/query-languages/dax/totalqtd-function-dax.md b/query-languages/dax/totalqtd-function-dax.md index 321e80996..b310ee2d2 100644 --- a/query-languages/dax/totalqtd-function-dax.md +++ b/query-languages/dax/totalqtd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TOTALQTD" -title: "TOTALQTD function (DAX) | Microsoft Docs" +title: "TOTALQTD function (DAX)" --- # TOTALQTD diff --git a/query-languages/dax/totalytd-function-dax.md b/query-languages/dax/totalytd-function-dax.md index aa56cdcfb..ba5358436 100644 --- a/query-languages/dax/totalytd-function-dax.md +++ b/query-languages/dax/totalytd-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TOTALYTD" -title: "TOTALYTD function (DAX) | Microsoft Docs" +title: "TOTALYTD function (DAX)" --- # TOTALYTD diff --git a/query-languages/dax/treatas-function-dax.md b/query-languages/dax/treatas-function-dax.md index efa90216a..548ee4641 100644 --- a/query-languages/dax/treatas-function-dax.md +++ b/query-languages/dax/treatas-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TREATAS" -title: "TREATAS function | Microsoft Docs" +title: "TREATAS function" --- # TREATAS diff --git a/query-languages/dax/trim-function-dax.md b/query-languages/dax/trim-function-dax.md index 71f17c7ef..a6095fafc 100644 --- a/query-languages/dax/trim-function-dax.md +++ b/query-languages/dax/trim-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TRIM" -title: "TRIM function (DAX) | Microsoft Docs" +title: "TRIM function (DAX)" --- # TRIM diff --git a/query-languages/dax/trunc-function-dax.md b/query-languages/dax/trunc-function-dax.md index 54cc39c30..9b4053fac 100644 --- a/query-languages/dax/trunc-function-dax.md +++ b/query-languages/dax/trunc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: TRUNC" -title: "TRUNC function (DAX) | Microsoft Docs" +title: "TRUNC function (DAX)" --- # TRUNC diff --git a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md index 14f2f5e8e..a432537df 100644 --- a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md +++ b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: Understanding functions for parent-child hierarchies in DAX" -title: "Understanding functions for parent-child hierarchies in DAX | Microsoft Docs" +title: "Understanding functions for parent-child hierarchies in DAX" --- # Understanding functions for parent-child hierarchies in DAX diff --git a/query-languages/dax/unichar-function-dax.md b/query-languages/dax/unichar-function-dax.md index 4bac3647d..40f25681d 100644 --- a/query-languages/dax/unichar-function-dax.md +++ b/query-languages/dax/unichar-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: UNICHAR" -title: "UNICHAR function (DAX) | Microsoft Docs" +title: "UNICHAR function (DAX)" --- # UNICHAR diff --git a/query-languages/dax/unicode-function-dax.md b/query-languages/dax/unicode-function-dax.md index d437e244f..fe69d4981 100644 --- a/query-languages/dax/unicode-function-dax.md +++ b/query-languages/dax/unicode-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: UNICODE" -title: "UNICODE function (DAX) | Microsoft Docs" +title: "UNICODE function (DAX)" --- # UNICODE diff --git a/query-languages/dax/union-function-dax.md b/query-languages/dax/union-function-dax.md index c6be76eda..1d54f2b88 100644 --- a/query-languages/dax/union-function-dax.md +++ b/query-languages/dax/union-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: UNION" -title: "UNION function (DAX) | Microsoft Docs" +title: "UNION function (DAX)" --- # UNION diff --git a/query-languages/dax/upper-function-dax.md b/query-languages/dax/upper-function-dax.md index 9aca762aa..62604fb7b 100644 --- a/query-languages/dax/upper-function-dax.md +++ b/query-languages/dax/upper-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: UPPER" -title: "UPPER function (DAX) | Microsoft Docs" +title: "UPPER function (DAX)" --- # UPPER diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index e63d3e411..184dde7a3 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: USERCULTURE" -title: "USERCULTURE function (DAX) | Microsoft Docs" +title: "USERCULTURE function (DAX)" --- # USERCULTURE diff --git a/query-languages/dax/userelationship-function-dax.md b/query-languages/dax/userelationship-function-dax.md index 7e3cebaa8..5be2f9b4b 100644 --- a/query-languages/dax/userelationship-function-dax.md +++ b/query-languages/dax/userelationship-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: USERELATIONSHIP" -title: "USERELATIONSHIP function (DAX) | Microsoft Docs" +title: "USERELATIONSHIP function (DAX)" --- # USERELATIONSHIP diff --git a/query-languages/dax/username-function-dax.md b/query-languages/dax/username-function-dax.md index e7fe90888..fa635cc3f 100644 --- a/query-languages/dax/username-function-dax.md +++ b/query-languages/dax/username-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: USERNAME" -title: "USERNAME function (DAX) | Microsoft Docs" +title: "USERNAME function (DAX)" --- # USERNAME diff --git a/query-languages/dax/userobjectid-function-dax.md b/query-languages/dax/userobjectid-function-dax.md index 8453fac3f..f4f8f3f24 100644 --- a/query-languages/dax/userobjectid-function-dax.md +++ b/query-languages/dax/userobjectid-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: USEROBJECTID" -title: "USEROBJECTID function (DAX) | Microsoft Docs" +title: "USEROBJECTID function (DAX)" --- # USEROBJECTID diff --git a/query-languages/dax/userprincipalname-function-dax.md b/query-languages/dax/userprincipalname-function-dax.md index 854841d00..f79470d1d 100644 --- a/query-languages/dax/userprincipalname-function-dax.md +++ b/query-languages/dax/userprincipalname-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: USERPRINCIPALNAME" -title: "USERPRINCIPALNAME function (DAX) | Microsoft Docs" +title: "USERPRINCIPALNAME function (DAX)" --- # USERPRINCIPALNAME diff --git a/query-languages/dax/utcnow-function-dax.md b/query-languages/dax/utcnow-function-dax.md index 21e59b888..183a01829 100644 --- a/query-languages/dax/utcnow-function-dax.md +++ b/query-languages/dax/utcnow-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: UTCNOW" -title: "UTCNOW function (DAX) | Microsoft Docs" +title: "UTCNOW function (DAX)" --- # UTCNOW diff --git a/query-languages/dax/utctoday-function-dax.md b/query-languages/dax/utctoday-function-dax.md index 01186cd74..cdaf1b98c 100644 --- a/query-languages/dax/utctoday-function-dax.md +++ b/query-languages/dax/utctoday-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: UTCTODAY" -title: "UTCTODAY function (DAX) | Microsoft Docs" +title: "UTCTODAY function (DAX)" --- # UTCTODAY diff --git a/query-languages/dax/value-function-dax.md b/query-languages/dax/value-function-dax.md index f77b46120..09453ad6b 100644 --- a/query-languages/dax/value-function-dax.md +++ b/query-languages/dax/value-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: VALUE" -title: "VALUE function (DAX) | Microsoft Docs" +title: "VALUE function (DAX)" --- # VALUE diff --git a/query-languages/dax/values-function-dax.md b/query-languages/dax/values-function-dax.md index 13d9cf923..108c7f77e 100644 --- a/query-languages/dax/values-function-dax.md +++ b/query-languages/dax/values-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: VALUES" -title: "VALUES function (DAX) | Microsoft Docs" +title: "VALUES function (DAX)" --- # VALUES diff --git a/query-languages/dax/var-dax.md b/query-languages/dax/var-dax.md index 3879f744e..84f6860de 100644 --- a/query-languages/dax/var-dax.md +++ b/query-languages/dax/var-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: VAR" -title: "VAR keyword (DAX) | Microsoft Docs" +title: "VAR keyword (DAX)" --- # VAR diff --git a/query-languages/dax/var-p-function-dax.md b/query-languages/dax/var-p-function-dax.md index 94070fdc4..b88455aea 100644 --- a/query-languages/dax/var-p-function-dax.md +++ b/query-languages/dax/var-p-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: VAR.P" -title: "VAR.P function (DAX) | Microsoft Docs" +title: "VAR.P function (DAX)" --- # VAR.P diff --git a/query-languages/dax/var-s-function-dax.md b/query-languages/dax/var-s-function-dax.md index ce71b4cdf..2a44de14c 100644 --- a/query-languages/dax/var-s-function-dax.md +++ b/query-languages/dax/var-s-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: VAR.S" -title: "VAR.S function (DAX) | Microsoft Docs" +title: "VAR.S function (DAX)" --- # VAR.S diff --git a/query-languages/dax/varx-p-function-dax.md b/query-languages/dax/varx-p-function-dax.md index f1d291351..b08390be3 100644 --- a/query-languages/dax/varx-p-function-dax.md +++ b/query-languages/dax/varx-p-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: VARX.P" -title: "VARX.P function (DAX) | Microsoft Docs" +title: "VARX.P function (DAX)" --- # VARX.P diff --git a/query-languages/dax/varx-s-function-dax.md b/query-languages/dax/varx-s-function-dax.md index 907f004f5..4fba74967 100644 --- a/query-languages/dax/varx-s-function-dax.md +++ b/query-languages/dax/varx-s-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: VARX.S" -title: "VARX.S function (DAX) | Microsoft Docs" +title: "VARX.S function (DAX)" --- # VARX.S diff --git a/query-languages/dax/vdb-function-dax.md b/query-languages/dax/vdb-function-dax.md index 9ee2dfe12..e1215a1ab 100644 --- a/query-languages/dax/vdb-function-dax.md +++ b/query-languages/dax/vdb-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: VDB" -title: "VDB function (DAX) | Microsoft Docs" +title: "VDB function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/weekday-function-dax.md b/query-languages/dax/weekday-function-dax.md index a3709c02e..51b756f4c 100644 --- a/query-languages/dax/weekday-function-dax.md +++ b/query-languages/dax/weekday-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: WEEKDAY" -title: "WEEKDAY function (DAX) | Microsoft Docs" +title: "WEEKDAY function (DAX)" --- # WEEKDAY diff --git a/query-languages/dax/weeknum-function-dax.md b/query-languages/dax/weeknum-function-dax.md index fd797fe32..2f036d870 100644 --- a/query-languages/dax/weeknum-function-dax.md +++ b/query-languages/dax/weeknum-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: WEEKNUM" -title: "WEEKNUM function (DAX) | Microsoft Docs" +title: "WEEKNUM function (DAX)" --- # WEEKNUM diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 2cc01bd23..f7a91fdbb 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: WINDOW" -title: "WINDOW function (DAX) | Microsoft Docs" +title: "WINDOW function (DAX)" --- # WINDOW diff --git a/query-languages/dax/xirr-function-dax.md b/query-languages/dax/xirr-function-dax.md index c726d11c5..a69eabf0d 100644 --- a/query-languages/dax/xirr-function-dax.md +++ b/query-languages/dax/xirr-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: XIRR" -title: "XIRR function (DAX) | Microsoft Docs" +title: "XIRR function (DAX)" --- # XIRR diff --git a/query-languages/dax/xnpv-function-dax.md b/query-languages/dax/xnpv-function-dax.md index dd8e4500c..f069b49df 100644 --- a/query-languages/dax/xnpv-function-dax.md +++ b/query-languages/dax/xnpv-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: XNPV" -title: "XNPV function (DAX) | Microsoft Docs" +title: "XNPV function (DAX)" --- # XNPV diff --git a/query-languages/dax/year-function-dax.md b/query-languages/dax/year-function-dax.md index 2ee9ce3d0..8b3500b8e 100644 --- a/query-languages/dax/year-function-dax.md +++ b/query-languages/dax/year-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: YEAR" -title: "YEAR function (DAX) | Microsoft Docs" +title: "YEAR function (DAX)" --- # YEAR diff --git a/query-languages/dax/yearfrac-function-dax.md b/query-languages/dax/yearfrac-function-dax.md index 5d37af204..f833f3c7a 100644 --- a/query-languages/dax/yearfrac-function-dax.md +++ b/query-languages/dax/yearfrac-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: YEARFRAC" -title: "YEARFRAC function (DAX) | Microsoft Docs" +title: "YEARFRAC function (DAX)" --- # YEARFRAC diff --git a/query-languages/dax/yield-function-dax.md b/query-languages/dax/yield-function-dax.md index 550302a1f..ba6f91986 100644 --- a/query-languages/dax/yield-function-dax.md +++ b/query-languages/dax/yield-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: YIELD" -title: "YIELD function (DAX) | Microsoft Docs" +title: "YIELD function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/yielddisc-function-dax.md b/query-languages/dax/yielddisc-function-dax.md index c438af637..a08a651f4 100644 --- a/query-languages/dax/yielddisc-function-dax.md +++ b/query-languages/dax/yielddisc-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: YIELDDISC" -title: "YIELDDISC function (DAX) | Microsoft Docs" +title: "YIELDDISC function (DAX)" author: jajin7 --- diff --git a/query-languages/dax/yieldmat-function-dax.md b/query-languages/dax/yieldmat-function-dax.md index 77e338b33..7d4f08b30 100644 --- a/query-languages/dax/yieldmat-function-dax.md +++ b/query-languages/dax/yieldmat-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: YIELDMAT" -title: "YIELDMAT function (DAX) | Microsoft Docs" +title: "YIELDMAT function (DAX)" author: jajin7 --- From deeeb60db4a27c3a90443b76b0aa8dcd3fd0248a Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 9 Dec 2024 15:57:49 -0800 Subject: [PATCH 648/934] Fixing more parameters --- query-languages/dax/chisq-dist-function-dax.md | 8 ++++---- query-languages/dax/chisq-dist-rt-function-dax.md | 8 ++++---- query-languages/dax/chisq-inv-function-dax.md | 4 ++-- query-languages/dax/chisq-inv-rt-function-dax.md | 6 +++--- query-languages/dax/expon-dist-function-dax.md | 8 ++++---- query-languages/dax/groupby-function-dax.md | 2 +- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/query-languages/dax/chisq-dist-function-dax.md b/query-languages/dax/chisq-dist-function-dax.md index 73c3d7f2a..3419329ec 100644 --- a/query-languages/dax/chisq-dist-function-dax.md +++ b/query-languages/dax/chisq-dist-function-dax.md @@ -30,13 +30,13 @@ The chi-squared distribution. ## Remarks -- If x or deg_freedom is nonnumeric, an error is returned. +- If `x` or `deg_freedom` is nonnumeric, an error is returned. -- If deg_freedom is not an integer, it is rounded. +- If `deg_freedom` is not an integer, it is rounded. -- If x < 0, an error is returned. +- If `x` < 0, an error is returned. -- If deg_freedom < 1 or deg_freedom > 10^10, an error is returned. +- If `deg_freedom` < 1 or `deg_freedom` > 10^10, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/chisq-dist-rt-function-dax.md b/query-languages/dax/chisq-dist-rt-function-dax.md index 8b27ebca7..eb5560103 100644 --- a/query-languages/dax/chisq-dist-rt-function-dax.md +++ b/query-languages/dax/chisq-dist-rt-function-dax.md @@ -29,13 +29,13 @@ The right-tailed probability of the chi-squared distribution. ## Remarks -- If x or deg_freedom is nonnumeric, an error is returned. +- If `x` or `deg_freedom` is nonnumeric, an error is returned. -- If deg_freedom is not an integer, it is rounded. +- If `deg_freedom` is not an integer, it is rounded. -- If x < 0, an error is returned. +- If `x` < 0, an error is returned. -- If deg_freedom < 1 or deg_freedom > 10^10, an error is returned. +- If `deg_freedom` < 1 or `deg_freedom` > 10^10, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/chisq-inv-function-dax.md b/query-languages/dax/chisq-inv-function-dax.md index b51da8d93..cccb580f5 100644 --- a/query-languages/dax/chisq-inv-function-dax.md +++ b/query-languages/dax/chisq-inv-function-dax.md @@ -33,9 +33,9 @@ Returns the inverse of the left-tailed probability of the chi-squared distributi - If probability \< 0 or probability > 1, CHISQ.INV returns the `#NUM!` error value. -- If deg_freedom is not an integer, it is rounded. +- If `deg_freedom` is not an integer, it is rounded. -- If deg_freedom \< 0 or deg_freedom > 10^10, CHISQ.INV returns the `#NUM!` error value. +- If `deg_freedom` \< 0 or `deg_freedom` > 10^10, CHISQ.INV returns the `#NUM!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/chisq-inv-rt-function-dax.md b/query-languages/dax/chisq-inv-rt-function-dax.md index 1026b2a5c..639b036d2 100644 --- a/query-languages/dax/chisq-inv-rt-function-dax.md +++ b/query-languages/dax/chisq-inv-rt-function-dax.md @@ -31,11 +31,11 @@ Returns the inverse of the right-tailed probability of the chi-squared distribut - If either argument is nonnumeric, CHISQ.INV.RT returns the `#VALUE!` error value. -- If probability < 0 or probability > 1, CHISQ.INV.RT returns the `#NUM!` error value. +- If `probability` < 0 or `probability` > 1, CHISQ.INV.RT returns the `#NUM!` error value. -- If deg_freedom is not an integer, it is rounded. +- If `deg_freedom` is not an integer, it is rounded. -- If deg_freedom < 1, CHISQ.INV.RT returns the `#NUM!` error value. +- If `deg_freedom` < 1, CHISQ.INV.RT returns the `#NUM!` error value. - Given a value for probability, CHISQ.INV.RT seeks that value x such that CHISQ.DIST.RT(x, deg_freedom) = probability. Thus, precision of CHISQ.INV.RT depends on precision of CHISQ.DIST.RT. CHISQ.INV.RT uses an iterative search technique. If the search has not converged after 64 iterations, the function returns the #N/A error value. diff --git a/query-languages/dax/expon-dist-function-dax.md b/query-languages/dax/expon-dist-function-dax.md index da5482a2b..57a0283f1 100644 --- a/query-languages/dax/expon-dist-function-dax.md +++ b/query-languages/dax/expon-dist-function-dax.md @@ -28,13 +28,13 @@ Returns the exponential distribution. ## Remarks -- If x or lambda is nonnumeric, EXPON.DIST returns the `#VALUE!` error value. +- If `x` or `lambda` is nonnumeric, EXPON.DIST returns the `#VALUE!` error value. -- If x or lambda is not an integer, it is rounded. +- If `x` or `lambda` is not an integer, it is rounded. -- If x < 0, EXPON.DIST returns the `#NUM!` error value. +- If `x` < 0, EXPON.DIST returns the `#NUM!` error value. -- If lambda ≤ 0, EXPON.DIST returns the `#NUM!` error value. +- If `lambda` ≤ 0, EXPON.DIST returns the `#NUM!` error value. - The equation for the probability density function is: diff --git a/query-languages/dax/groupby-function-dax.md b/query-languages/dax/groupby-function-dax.md index 84d4530ba..a4250c954 100644 --- a/query-languages/dax/groupby-function-dax.md +++ b/query-languages/dax/groupby-function-dax.md @@ -41,7 +41,7 @@ A table with the selected columns for the groupBy_columnName arguments and the e - Each column for which you define a name must have a corresponding expression; otherwise, an error is returned. The first argument, name, defines the name of the column in the results. The second argument, expression, defines the calculation performed to obtain the value for each row in that column. -- groupBy_columnName must be either in table or in a related table. +- `groupBy_columnName` must be either in table or in a related table. - Each name must be enclosed in double quotation marks. From acefd992f5a8a2add3425b1e7ae7039e07032533 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Mon, 9 Dec 2024 16:48:46 -0800 Subject: [PATCH 649/934] Update dax-copilot.md --- query-languages/dax/dax-copilot.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 2efe779e8..226ab8d68 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -181,7 +181,9 @@ DAX queries from multiple Power BI semantic models using a variety of user reque - To use Copilot to help write DAX queries, you need to select a workspace with a Fabric capacity. - Copilot uses the model metadata (tables, columns, measures), so DAX query responses will answer only in context of the current semantic model. - Copilot uses the model metadata (tables, columns, measures), so providing rich metadata that is descriptive and understandable will yield better results. -- Copilot cannot use the data in the tables of the semantic model. +- Copilot may use min/max to get sample values in import storage mode, but cannot use other data in the tables of the semantic model. +- Copilot may not be available or only see limited model metadata (tables, columns, measures) when the number of model metadata items exceeds 100 tables, 250 columns or measures in a table, 100 relationhips, 5,000 total columns or measures, 1,024 characters in a single DAX expression, or 256 characters in a name. +- Copilot may use the description property on model metadata, but is limited to only the first 200 characters. - DAX functions added recently may not be known to the Copilot, and explanations may be incorrect. - Copilot requests include all text in the current query window, and if text is selected the selection information it is noted as selected, but all text in the query window is included. From f690a9b193c854ef6862e2eb0c9a66e8c7efd1af Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Tue, 10 Dec 2024 08:39:27 -0800 Subject: [PATCH 650/934] Update Copilot model metadata limits in DAX --- query-languages/dax/dax-copilot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 226ab8d68..7f2c63bf2 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -182,7 +182,7 @@ DAX queries from multiple Power BI semantic models using a variety of user reque - Copilot uses the model metadata (tables, columns, measures), so DAX query responses will answer only in context of the current semantic model. - Copilot uses the model metadata (tables, columns, measures), so providing rich metadata that is descriptive and understandable will yield better results. - Copilot may use min/max to get sample values in import storage mode, but cannot use other data in the tables of the semantic model. -- Copilot may not be available or only see limited model metadata (tables, columns, measures) when the number of model metadata items exceeds 100 tables, 250 columns or measures in a table, 100 relationhips, 5,000 total columns or measures, 1,024 characters in a single DAX expression, or 256 characters in a name. +- Copilot may not be available or use reduced version of the model metadata (tables, columns, measures) when the number of model metadata items exceeds 500 tables, 1,000 columns or 3,000 measures in a table, 2,000 relationhips, 10,000 total columns, 5,000 total measures, 5,000 characters in a single DAX expression, or 256 characters in a name. - Copilot may use the description property on model metadata, but is limited to only the first 200 characters. - DAX functions added recently may not be known to the Copilot, and explanations may be incorrect. - Copilot requests include all text in the current query window, and if text is selected the selection information it is noted as selected, but all text in the query window is included. From a97bdfcb85f0feb2ce3690dce4282f3028af8624 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Wed, 11 Dec 2024 11:53:54 -0800 Subject: [PATCH 651/934] Update acos-function-dax.md --- query-languages/dax/acos-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/acos-function-dax.md b/query-languages/dax/acos-function-dax.md index cb6672265..91d189c50 100644 --- a/query-languages/dax/acos-function-dax.md +++ b/query-languages/dax/acos-function-dax.md @@ -16,7 +16,7 @@ ACOS(number) ### Parameters -|`Term`|Definition| +|Term|Definition| |--------|--------------| |`Number`|The cosine of the angle you want and must be from -1 to 1.| From 0317dd9ceca58db10d5bf3929b10207071742b61 Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Wed, 11 Dec 2024 12:11:38 -0800 Subject: [PATCH 652/934] Removing parameters from the noloc list --- query-languages/m/docfx.json | 353 +---------------------------------- 1 file changed, 1 insertion(+), 352 deletions(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 25f891586..336f770fd 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -50,7 +50,6 @@ "searchScope": ["Power Query","M formula language"], "ms.date": "11/13/2024", "no-loc": [ - "a b c d", "#binary", "#date", "#datetime", @@ -58,80 +57,21 @@ "#duration", "#table", "#time", - "absoluteUri", "Access.Database", "AccessControlEntry.ConditionToIdentities", "AccessControlKind.Type", - "account", - "accumulator", - "action", "Action.WithErrorContext", "ActiveDirectory.Domains", - "additionalAggregates", "AdobeAnalytics.Cubes", "AdoDotNet.DataSource", "AdoDotNet.Query", - "after", - "aggregatedColumns", - "aggregationFunction", - "aggregations", - "alternates", "AnalysisServices.Database", "AnalysisServices.Databases", - "args", - "arguments", - "as action", - "as any", - "as any ", - "as anynonnull", - "as binary", - "as date", - "as datetime", - "as datetimezone", - "as duration", - "as function", - "as function ", - "as list", - "as list ", - "as logical", - "as logical ", - "as nullable binary", - "as nullable date", - "as nullable date ", - "as nullable datetime", - "as nullable datetimezone", - "as nullable duration", - "as nullable function", - "as nullable list", - "as nullable logical", - "as nullable logical ", - "as nullable number", - "as nullable number ", - "as nullable record", - "as nullable table", - "as nullable text", - "as nullable time", - "as nullable type", - "as number", - "as number ", - "as record", - "as table", - "as text", - "as time", - "as type", - "attribute", - "attributeColumn", - "attributeNames", "AzureStorage.BlobContents", "AzureStorage.Blobs", "AzureStorage.DataLake", "AzureStorage.DataLakeContents", "AzureStorage.Tables", - "base", - "baseUri", - "before", - "binaries", - "binary", "Binary.ApproximateLength", "Binary.Buffer", "Binary.Combine", @@ -150,7 +90,6 @@ "Binary.ViewError", "Binary.ViewFunction", "BinaryEncoding.Type", - "binaryFormat", "BinaryFormat.7BitEncodedSignedInteger", "BinaryFormat.7BitEncodedUnsignedInteger", "BinaryFormat.Binary", @@ -174,60 +113,24 @@ "BinaryFormat.UnsignedInteger32", "BinaryFormat.UnsignedInteger64", "BinaryOccurrence.Type", - "bottom", "BufferMode.Type", "Byte.From", - "byteOrder", "ByteOrder.Type", "Cdm.Contents", - "character", "Character.FromNumber", "Character.ToNumber", - "characters", - "chooseFunction", - "clientId", - "collection", - "collectionTransform", - "column", - "columnGenerator", - "columnName", - "columnNames", - "columnNameSelectorPairs", - "columnNamesOrNumber", - "columnOrder", - "columns", - "columnsToSearch", - "columnType", - "combinationSize", - "combineFunction", - "combiner", "Combiner.CombineTextByDelimiter", "Combiner.CombineTextByEachDelimiter", "Combiner.CombineTextByLengths", "Combiner.CombineTextByPositions", "Combiner.CombineTextByRanges", - "Comments", - "comparer", "Comparer.Equals", "Comparer.FromCulture", "Comparer.Ordinal", "Comparer.OrdinalIgnoreCase", - "comparisonCriteria", "Compression.Type", - "compressionType", - "condition", - "Conditionals", - "connectionString", - "Constants", - "containerName", - "contents", - "context", - "count", - "countOrCondition", "Csv.Document", - "csvStyle", "CsvStyle.Type", - "cube", "Cube.AddAndExpandDimensionColumn", "Cube.AddMeasureColumn", "Cube.ApplyParameter", @@ -244,14 +147,8 @@ "Cube.PropertyKey", "Cube.ReplaceDimensions", "Cube.Transform", - "culture", "Culture.Current", "Currency.From", - "data", - "database", - "dataColumn", - "dataTableIdentifier", - "date", "Date.AddDays", "Date.AddMonths", "Date.AddQuarters", @@ -309,7 +206,6 @@ "Date.WeekOfMonth", "Date.WeekOfYear", "Date.Year", - "dateTime", "DateTime.AddZone", "DateTime.Date", "DateTime.FixedLocalNow", @@ -335,7 +231,6 @@ "DateTime.Time", "DateTime.ToRecord", "DateTime.ToText", - "dateTimeZone", "DateTimeZone.FixedLocalNow", "DateTimeZone.FixedUtcNow", "DateTimeZone.From", @@ -351,33 +246,15 @@ "DateTimeZone.UtcNow", "DateTimeZone.ZoneHours", "DateTimeZone.ZoneMinutes", - "day", "Day.Type", - "days", "DB2.Database", "Decimal.From", - "default", - "defaultTransformation", - "defaultValue", - "delay", - "delayed", - "delayTypes", - "delimiter", - "delimiters", "DeltaLake.Table", - "detail", "Diagnostics.ActivityId", "Diagnostics.CorrelationId", "Diagnostics.Trace", - "digits", - "dimensions", - "dimensionSelector", - "directory", "DirectQueryCapabilities.From", - "divisor", - "document", "Double.From", - "duration", "Duration.Days", "Duration.From", "Duration.FromText", @@ -391,18 +268,7 @@ "Duration.TotalSeconds", "Duration.ToText", "Embedded.Value", - "encoding", - "endDelimiter", - "endIndex", - "endpoint", - "Enumerations", - "environment", - "equationCriteria", "Error.Record", - "errorCode", - "errorRecord", - "errorReplacement", - "Errors", "Essbase.Cubes", "Excel.CurrentWorkbook", "Excel.ShapeTable", @@ -412,33 +278,16 @@ "Expression.Constant", "Expression.Evaluate", "Expression.Identifier", - "extra", - "extraColumns", - "extraValues", "ExtraValues.Type", - "facets", - "field", - "fieldName", - "fieldNames", - "fieldOrder", - "fields", "File.Contents", - "fileTime", - "firstDayOfWeek", "Folder.Contents", "Folder.Files", - "forestRootDomainName", - "format", - "formatString", - "function", "Function.From", "Function.Invoke", "Function.InvokeAfter", "Function.InvokeWithErrorContext", "Function.IsDataSource", "Function.ScalarVector", - "Functions", - "functionType", "Geography.FromWellKnownText", "Geography.ToWellKnownText", "GeographyPoint.From", @@ -446,74 +295,35 @@ "Geometry.ToWellKnownText", "GeometryPoint.From", "GoogleAnalytics.Accounts", - "graph", "Graph.Nodes", - "group", - "groupKind", "GroupKind.Type", "Guid.From", - "handlers", "Hdfs.Contents", "Hdfs.Files", "HdInsight.Containers", "HdInsight.Contents", "HdInsight.Files", - "headers", - "hour", - "hours", - "html", "Html.Table", - "identifier", - "identity", "Identity.From", "Identity.IsMemberOf", - "identityProvider", "IdentityProvider.Default", - "ignoreCase", - "includeByteOrderMark", - "includeLineSeparators", - "includeNulls", - "increment", - "index", "Informix.Database", - "initial", - "initialValue", - "input", "Int16.From", "Int32.From", "Int64.From", "Int8.From", - "Introduction", - "isPrimary", "ItemExpression.From", "ItemExpression.Item", - "joinAlgorithm", "JoinAlgorithm.Type", - "joinKind", "JoinKind.Type", - "joinOptions", "JoinSide.Type", "Json.Document", "Json.FromValue", - "jsonText", - "key", - "key1", - "key2", - "keyEqualityComparers", - "keys", - "lastKey", - "latitude", - "length", - "lengths", - "Let", "LimitClauseKind.Type", - "lines", "Lines.FromBinary", "Lines.FromText", "Lines.ToBinary", "Lines.ToText", - "lineSeparator", - "list", "List.Accumulate", "List.AllTrue", "List.Alternate", @@ -585,42 +395,12 @@ "List.TransformMany", "List.Union", "List.Zip", - "list1", - "list2", - "listOfTypes", - "lists", "Logical.From", "Logical.FromText", "Logical.ToText", - "logicalValue", - "loginUrl", - "longitude", - "m", - "mailboxAddress", - "measure", - "measureSelector", - "message", - "Metadata", - "metaValue", - "method", - "min", - "minute", - "minutes", - "missingField", "MissingField.Type", "Module.Versions", - "month", - "months", "MySQL.Database", - "name", - "nameGenerator", - "new", - "newColumnName", - "newColumnNames", - "newText", - "newValue", - "next", - "number", "Number.Abs", "Number.Acos", "Number.Asin", @@ -669,73 +449,25 @@ "Number.Tan", "Number.Tanh", "Number.ToText", - "number1", - "number2", - "numberList1", - "numberList2", - "numberOfDays", - "numberOfMonths", - "numberOfQuarters", - "numberOfWeeks", - "numberOfYears", - "numbersList", - "occurrence", "Occurrence.Type", "OData.Feed", "ODataOmitValues.Type", "Odbc.DataSource", "Odbc.InferOptions", "Odbc.Query", - "offset", - "offsetHours", - "offsetMinutes", - "old", - "oldValue", "OleDb.DataSource", "OleDb.Query", - "omitSRID", - "open", - "Operators", - "optional ", - "optional arguments", - "options", - "optionsOrLogonGroup", "Oracle.Database", "Order.Type", - "pageSize", - "parameter", - "parameters", - "partitionColumn", - "partitionColumnType", - "partitions", - "path", - "pdf", "Pdf.Tables", "Percentage.From", "PercentileMode.Type", - "percentiles", - "permutationSize", - "pivotColumns", - "pivotValues", - "positions", "PostgreSQL.Database", - "power", - "precision", "Precision.Type", - "prefix", "Progress.DataSourceProgress", - "property", - "propertyName", - "providerName", - "quarters", - "query", - "quoteStyle", "QuoteStyle.Type", - "ranges", "RankKind.Type", "RData.FromBinary", - "reason", - "record", "Record.AddField", "Record.Combine", "Record.Field", @@ -753,25 +485,13 @@ "Record.ToList", "Record.ToTable", "Record.TransformFields", - "records", "RelativePosition.Type", - "relativeUri", - "removeChars", - "renames", - "repeatInterval", - "replacements", - "replacer", "Replacer.ReplaceText", "Replacer.ReplaceValue", - "replaceWith", - "resultTransform", - "roundingMode", "RoundingMode.Type", - "row", "RowExpression.Column", "RowExpression.From", "RowExpression.Row", - "rows", "Salesforce.Data", "Salesforce.Reports", "SapBusinessWarehouse.Cubes", @@ -779,32 +499,11 @@ "SapHana.Database", "SapHanaDistribution.Type", "SapHanaRangeOperator.Type", - "scalarFunctionType", - "schema", - "second", - "seconds", - "Sections", - "seed", - "selectChars", - "selection", - "selector", - "separator", - "separators", - "server", - "serviceUri", - "setSize", - "shapingFunction", "SharePoint.Contents", "SharePoint.Files", "SharePoint.Tables", - "signature", "Single.From", - "skip", "Soda.Feed", - "source", - "sourceColumn", - "sourceColumns", - "splitter", "Splitter.SplitByNothing", "Splitter.SplitTextByAnyDelimiter", "Splitter.SplitTextByCharacterTransition", @@ -815,22 +514,11 @@ "Splitter.SplitTextByRanges", "Splitter.SplitTextByRepeatedLengths", "Splitter.SplitTextByWhitespace", - "sql", "Sql.Database", "Sql.Databases", "SqlExpression.SchemaFrom", "SqlExpression.ToExpression", - "srid", - "start", - "startAtEnd", - "startDelimiter", - "startIndex", - "step", - "stream", - "substring", "Sybase.Database", - "systemNumberOrSystemId", - "table", "Table.AddColumn", "Table.AddFuzzyClusterColumn", "Table.AddIndexColumn", @@ -942,15 +630,8 @@ "Table.ViewError", "Table.ViewFunction", "Table.WithErrorContext", - "table1", - "table2", - "tables", "Tables.GetRelationships", - "tableType", - "take", - "template", "Teradata.Database", - "text", "Text.AfterDelimiter", "Text.At", "Text.BeforeDelimiter", @@ -993,8 +674,6 @@ "Text.TrimStart", "Text.Upper", "TextEncoding.Type", - "texts", - "time", "Time.EndOfHour", "Time.From", "Time.FromText", @@ -1005,16 +684,7 @@ "Time.ToRecord", "Time.ToText", "TimeZone.Current", - "timezoneHours", - "timezoneMinutes", - "top", - "traceLevel", "TraceLevel.Type", - "transform", - "transformOperations", - "transforms", - "trim", - "type", "Type.AddTableKey", "Type.ClosedRecord", "Type.Facets", @@ -1037,18 +707,10 @@ "Type.TableRow", "Type.TableSchema", "Type.Union", - "type1", - "type2", - "types", - "Types", - "typeTransformations", "Uri.BuildQueryString", "Uri.Combine", "Uri.EscapeDataString", "Uri.Parts", - "url", - "useHeaders", - "value", "Value.Add", "Value.Alternates", "Value.As", @@ -1075,28 +737,15 @@ "Value.Versions", "Value.ViewError", "Value.ViewFunction", - "value1", - "value2", - "valueColumn", - "values", - "Values", "Variable.Value", - "vectorFunction", "Web.BrowserContents", "Web.Contents", "Web.Headers", "Web.Page", "WebAction.Request", "WebMethod.Type", - "weeks", - "workbook", - "x", "Xml.Document", - "Xml.Tables", - "y", - "year", - "years", - "z" + "Xml.Tables" ] }, "fileMetadata": { }, From d0a603b62d8a6bcf2f5383c127a403d38f52cf20 Mon Sep 17 00:00:00 2001 From: Vishal <126564878+visharavana@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:14:14 +0530 Subject: [PATCH 653/934] Update rownumber-function-dax.md --- query-languages/dax/rownumber-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index b533849c4..f7c8cce4d 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -7,7 +7,7 @@ author: rahulten [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the unique ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then then rownumber is blank. +Returns the unique ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then rownumber is blank. ## Syntax From 80581c4af201c345b42fbd5121ced42fb7da94cf Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 12 Dec 2024 08:18:36 -0800 Subject: [PATCH 654/934] Added missing character in operator --- query-languages/m/m-spec-operators.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 4cd14b2ed..ca16042e2 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -2,7 +2,7 @@ title: M Language Operators description: Describes using operators in the Power Query M formula language ms.topic: conceptual -ms.date: 7/31/2024 +ms.date: 12/12/2024 ms.custom: "nonautomated-date" --- @@ -335,7 +335,7 @@ For example: [A=1,B=2][C]? // null ``` -Collective access of multiple fields is supported by the operators for _required record projection_ and _optional record projection_. The operator `x[[y1],[y2],...]` projects the record to a new record with fewer fields (selected by `y1`, `y2`, `...`). If a selected field does not exist, an error is raised. The operator `x[[y1],[y2],...]` projects the record to a new record with the fields selected by `y1`, `y2`, `...`; if a field is missing, `null` is used instead. +Collective access of multiple fields is supported by the operators for _required record projection_ and _optional record projection_. The operator `x[[y1],[y2],...]` projects the record to a new record with fewer fields (selected by `y1`, `y2`, `...`). If a selected field does not exist, an error is raised. The operator `x[[y1],[y2],...]?` projects the record to a new record with the fields selected by `y1`, `y2`, `...`; if a field is missing, `null` is used instead. For example: ```powerquery-m From 8811da5ccc7e4ce1e445c915d7335a86352d00a6 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:21:07 -0800 Subject: [PATCH 655/934] Update dax-copilot.md Fixed spelling errors --- query-languages/dax/dax-copilot.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 7f2c63bf2..f649d8b0b 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -154,7 +154,7 @@ Copilot can also explain DAX functions with more detail. Let's ask about SUMMARI Again, Copilot generates brief description: -:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="Screenshot showing a brief description of the SUMMARIZECOLUMNS DAX funtion."::: +:::image type="content" source="media/dax-copilot/dax-copilot-summarize-columns-brief.png" alt-text="Screenshot showing a brief description of the SUMMARIZECOLUMNS DAX function."::: I can select **Show more** to see a more detailed explanation with an example. @@ -182,7 +182,7 @@ DAX queries from multiple Power BI semantic models using a variety of user reque - Copilot uses the model metadata (tables, columns, measures), so DAX query responses will answer only in context of the current semantic model. - Copilot uses the model metadata (tables, columns, measures), so providing rich metadata that is descriptive and understandable will yield better results. - Copilot may use min/max to get sample values in import storage mode, but cannot use other data in the tables of the semantic model. -- Copilot may not be available or use reduced version of the model metadata (tables, columns, measures) when the number of model metadata items exceeds 500 tables, 1,000 columns or 3,000 measures in a table, 2,000 relationhips, 10,000 total columns, 5,000 total measures, 5,000 characters in a single DAX expression, or 256 characters in a name. +- Copilot may not be available or use reduced version of the model metadata (tables, columns, measures) when the number of model metadata items exceeds 500 tables, 1,000 columns or 3,000 measures in a table, 2,000 relationships, 10,000 total columns, 5,000 total measures, 5,000 characters in a single DAX expression, or 256 characters in a name. - Copilot may use the description property on model metadata, but is limited to only the first 200 characters. - DAX functions added recently may not be known to the Copilot, and explanations may be incorrect. - Copilot requests include all text in the current query window, and if text is selected the selection information it is noted as selected, but all text in the query window is included. From c68f1090075397727dacc87cae164bf17998a55b Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:16:05 -0800 Subject: [PATCH 656/934] Update dax-queries.md --- query-languages/dax/dax-queries.md | 137 ++++++++++++++++++++--------- 1 file changed, 93 insertions(+), 44 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index ce4a2b7a2..8e5a69d10 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -5,13 +5,21 @@ ms.topic: conceptual --- # DAX queries -Reporting clients like Power BI and Excel execute DAX queries whenever a field is placed on a report or when a filter is applied. By using [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), you can create and run your own DAX queries. DAX queries return results as a table right within the tool, allowing you to quickly create and test the performance of your DAX formulas. +Reporting clients like Power BI and Excel execute DAX queries whenever visuals display in a report, or a field added to a table, and these DAX queries adjust when a filter is applied. The [performance analyzer](/power-bi/create-reports/desktop-performance-analyzer) in Power BI Desktop can show you these DAX queries and even run them in the DAX query view. By using [DAX query view](/power-bi/transform-model/dax-query-view) in Power BI Desktop, [Write DAX queries](/power-bi/transform-model/dax-query-view#dax-query-view-in-web) in Power BI service, you can create and run your own DAX queries. With [Microsoft Fabric](/fabric/get-started/microsoft-fabric-overview), you can increase your productivity with Fabric [Copilot to write DAX queries](/dax/dax-copilot) in DAX query view of Desktop or web. Other tools such as [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), also allow you to create and run DAX queries. DAX queries return results as a table right within the tool, allowing you to quickly create and test the performance of your DAX formulas in measures or simply view the data in your semantic model. INFO and INFO.VIEW DAX functions can also get information about your semantic model, such as a listing of tables, columns, measures, and much more. -Before learning about queries, it's important you have a solid understanding of DAX basics. If you haven't already, be sure to checkout [DAX overview](dax-overview.md). +Before learning about queries, it is important you have a solid understanding of DAX basics. If you haven't already, be sure to check out [DAX overview](dax-overview.md). ## Keywords -DAX queries have a simple syntax comprised of just one required keyword, EVALUATE, and several optional keywords: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, and COLUMN. Each keyword defines a statement used for the duration of the query. +DAX queries have a simple syntax comprised of just one required keyword, EVALUATE. EVALUATE is followed by a table expression, such as a DAX function or table name, that when run outputs a result table. +Table expressions that output a result table include: + +1. Common DAX functions that output a table, such as [SUMMARIZE](summarize-function-dax), [SUMMARIZECOLUMNS](summarizecolumns-function-dax), [SELECTCOLUMNS](selectcolumns-function-dax), [FILTER](filter-function-dax), [UNION](union-function-dax), [TOPN](topn-function-dax), [ADDCOLUMNS](addcolumns-function-dax), [DATATABLE](datatable-function-dax), and many others, work with EVALUATE to output a result table. +2. Tables in the model when referenced by name work with EVALUATE to output a result table showing the data in the table. For example, **EVALUATE ‘Table name’** can be ran as a DAX query. +3. Measures in the model or any DAX formula, which return a scalar value, work with EVALUATE to show the value as a result table when enclosed in curly braces. For example, **EVALUATE {[Total Sales]}** or **EVALUATE {COUNTROWS(‘Sales’)}** can be ran as a DAX query. These are called [table constructors](table-constructor). + +There are several optional keywords specific to DAX queries: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, and COLUMN. + ### EVALUATE (Required) @@ -33,16 +41,18 @@ EVALUATE
```dax EVALUATE - 'Internet Sales' + 'Sales Order' ``` -Returns all rows and columns from the Internet Sales table, as a table. +Returns all rows and columns from the Sales Order table, as a result table. This can be limited with the use of [TOPN](topn-function-dax) or [FILTER](filter-function-dax), and sorted with ORDER BY. ![DAX Evaluate statement](media/dax-queries/dax-evaluate.png) ### ORDER BY (Optional) -The optional **ORDER BY** keyword defines one or more expressions used to sort query results. Any expression that can be evaluated for each row of the result is valid. +The optional **ORDER BY** keyword defines one or more columns in the query or expressions used to sort query results. Any expression that can be evaluated for each row of the result is valid. Any column in the query itself is also valid. + +Sort by column property in semantic models do not apply to DAX query results. If a column should be sorted by a different column in the model, such as in the case of Month Name, the sort by column should also be included in the DAX query to be used in the ORDER BY. #### ORDER BY Syntax @@ -55,7 +65,7 @@ EVALUATE
|Term |Definition | |---------|---------| -| expression | Any DAX expression that returns a single scalar value. | +| expression | Any DAX expression that returns a single scalar value, or column included in the DAX query. | | ASC | (default) Ascending sort order. | | DESC | Descending sort order. | @@ -63,19 +73,39 @@ EVALUATE
```dax EVALUATE - 'Internet Sales' - -ORDER BY - 'Internet Sales'[Order Date] + SUMMARIZECOLUMNS( + // Group by columns + 'Date'[Month Name], + 'Date'[Month of Year], + 'Product'[Category], + // Optional filters + FILTER( + VALUES('Product'[Category]), + [Category] = "Clothing" + ), + // Measures or explicit DAX formulas to aggregate and analyze the data by row + "Orders", [Orders], + "Avg Profit per Order", DIVIDE( + [Total Sales Profit], + [Orders] + ) + ) + // DAX queries do not use sort order defined in Power BI, + // sort by columns must be included in the DAX query to be used in order by + ORDER BY 'Date'[Month of Year] ASC ``` -Returns all rows and columns from the Internet Sales table, in ascending order by Order Date, as a table. +Returns clothing orders and average profit per order by month, in ascending order by month, as a result table. ![DAX Evaluate order by statement](media/dax-queries/dax-evaluate-orderby.png) +TOPN does not choose the specified number of rows to return based on the sort order specified in ORDER BY. Instead, TOPN has its own syntax to optionally specify a sort before the top 100 rows are return. ORDER BY only sorts the result table returned by TOPN. + +![DAX Evaluate order by with topn statement](media/dax-queries/dax-evaluate-topn.png) + ### START AT (Optional) -The optional **START AT** keyword is used inside an **ORDER BY** clause. It defines the value at which the query results begin. +The optional **START AT** keyword is used inside an **ORDER BY** clause. It defines the value at which the query results begin. #### START AT Syntax @@ -100,20 +130,23 @@ START AT arguments have a one-to-one correspondence with the columns in the ORDE ```dax EVALUATE - 'Internet Sales' - -ORDER BY - 'Internet Sales'[Sales Order Number] -START AT "SO7000" + 'Sales Order' + ORDER BY 'Sales Order'[Sales Order] ASC + // Start at this order, orders before this order will not be displayed + START AT "SO43661" ``` -Returns all rows and columns from the Internet Sales table, in ascending order by Sales Order Number, beginning at SO7000. +Returns all columns from the Sales Order table, in ascending order by Sales Order, beginning at SO43661. Rows before this sales order are not included in the result table. ![DAX Evaluate order by Sales order number statement](media/dax-queries/dax-evaluate-startat.png) ### DEFINE (Optional) -The optional **DEFINE** keyword introduces one or more calculated entity definitions that exist only for the duration of the query. Definitions precede the EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec). Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included in a query. +The optional **DEFINE** keyword introduces one or more calculated entity definitions that exist only for the duration of the query. Unlike EVALUATE, there can only be one DEFINE block with one or more definitions in a DAX query. DEFINE must precede the first EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec).Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included in a query. + +**DEFINE MEASURE** is a common scenario to build new measures or edit existing measures in a semantic model. When the measure already exists in the model, the DAX query will use the measure DAX formula defined in the query. This is helpful for testing measures with a DAX query before updating the model. + +**DEFINE MEASURE** is also helpful to build additional analysis with DAX formulas for a specific DAX query where you may not have permission to add a model measure or it is not necessary to have it in the model. #### DEFINE Syntax @@ -154,32 +187,50 @@ The optional **DEFINE** keyword introduces one or more calculated entity definit ```dax DEFINE - MEASURE 'Internet Sales'[Internet Total Sales] = - SUM ( 'Internet Sales'[Sales Amount] ) - + VAR _firstyear = MIN('Date'[Fiscal Year]) + VAR _lastyear = MAX('Date'[Fiscal Year]) + TABLE 'Unbought products' = FILTER('Product', [Orders] + 0 = 0) + COLUMN 'Unbought products'[Year Range] = _firstyear & " - " & _lastyear + MEASURE 'Unbought products'[Unbought products] = COUNTROWS('Unbought products') + EVALUATE -SUMMARIZECOLUMNS ( - 'Date'[Calendar Year], - TREATAS ( - { - 2013, - 2014 - }, - 'Date'[Calendar Year] - ), - "Total Sales", [Internet Total Sales], - "Combined Years Total Sales", - CALCULATE ( - [Internet Total Sales], - ALLSELECTED ( 'Date'[Calendar Year] ) - ) -) -ORDER BY [Calendar Year] + 'Unbought products' + +EVALUATE + {[Unbought products]} ``` -Returns the calculated total sales for years 2013 and 2014, and combined calculated total sales for years 2013 and 2014, as a table. The measure in the DEFINE statement, Internet Total Sales, is used in both Total Sales and Combined Years Total Sales expressions. +Returns the table defined in the DAX query to show unbought products with an additional defined column referencing defined variables. A measures is also defined and evulated counting the rows of unbought products. + +![DAX Evaluate with define defnitions](media/dax-queries/dax-evaluate-define.png) + +```dax +DEFINE + MEASURE 'Pick a sales measure'[Orders] = DISTINCTCOUNT('Sales Order'[Sales Order]) + MEASURE 'Pick a sales measure'[Customers] = CALCULATE( + COUNTROWS(Customer), + FILTER( + 'Sales', + [Orders] > 0 + ) + ) + MEASURE 'Pick a sales measure'[Orders per Customer] = DIVIDE( + [Orders], + [Customers], + 0 + ) + +EVALUATE + SUMMARIZECOLUMNS( + 'Date'[Fiscal Year], + "Orders", [Orders], + "Customers", [Customers], + "Orders per Customer", [Orders per Customer] + ) +``` +Returns a table evaluating three defined measures to show the results by fiscal year. All measures also exist in the model, and Orders per Customer is modified in the DAX query. -![DAX Evaluate with measure defnition](media/dax-queries/dax-evaluate-define.png) +![DAX Evaluate with measure defnitions](media/dax-queries/dax-evaluate-define-measures.png) ## Parameters in DAX queries @@ -197,5 +248,3 @@ Reference XMLA parameters by prefixing the name of the parameter with an `@` cha [DAX statements](statements-dax.md) [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) -[TREATAS](treatas-function-dax.md) -[FILTER](filter-function-dax.md) From 75c8fa34d3aefaf6ce3ccf35402ffdfba1aa4023 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:17:47 -0800 Subject: [PATCH 657/934] Add files via upload --- .../dax-evaluate-define-measures.png | Bin 0 -> 210793 bytes .../media/dax-queries/dax-evaluate-define.png | Bin 41676 -> 211890 bytes .../dax-queries/dax-evaluate-orderby.png | Bin 50457 -> 220648 bytes .../dax-queries/dax-evaluate-startat.png | Bin 39250 -> 209867 bytes .../media/dax-queries/dax-evaluate-topn.png | Bin 0 -> 201465 bytes .../dax/media/dax-queries/dax-evaluate.png | Bin 36166 -> 172544 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/dax-queries/dax-evaluate-define-measures.png create mode 100644 query-languages/dax/media/dax-queries/dax-evaluate-topn.png diff --git a/query-languages/dax/media/dax-queries/dax-evaluate-define-measures.png b/query-languages/dax/media/dax-queries/dax-evaluate-define-measures.png new file mode 100644 index 0000000000000000000000000000000000000000..286141bc9420f278e14d3e098422c9bc9623ec6e GIT binary patch literal 210793 zcmce;XH-*L)Gi$H2#N|eP`ZVpRO!-16r}eSs?vM!RZ&q8P>^0iZvjFJy(kDsF9AZ2 zh_r+bA$0D_DepP=$9KO!cicS&BP4sRz1LoAt~sAMpE>sjH5Iwb1dc(DK1OE*4c_GD=VR3M1LQ_)I8$DXaD&IJ_Rn3nEw0Kn&o`(ng98k z9(x-?eA2&;V4c^HTmO84K%f`?PaWT1!vEFua$aGfLY^v2=h?HjFJHbK&Q(rUqr3ot zq(2k$*~(T)70t=dzyC~DmR&rhjvexNTNZMO*s=Jjwzjr1L}~9L1Tyf@@HCg5hX-*X z=)$WrkY1V~MdBDAb7*L5=X7-`w0-~n#`iw4ldO``M|KVl(3J|C0fDHo{WU~u3l*4T zacOC(8YOu2^pW!yFQS%Fc`_2?q8!KG__jRs1c4XRwhla}%3E0)gy#EDhWNgOTOsj?d(x;p5yXV0XI{kVmkW;o?( zCH-qKXn0|vmZ4#hOen?j-sT*ba9wlrY*7zv_N%jGg+}$BcMd}zYiq}Lb#<9njJvOl z@uo@!KnDj0u>%<)b)Kt*#*Mz`=nafIE)yRM|2bArI$FSY$9mcw)hmgZT=nEKIq_N@ zE0ft?=p7j@7+02fN^A&$MzE%m_zq@1i_VshVU>@j=G05i&(9Y{CyV=(cWhBnQPD~T z`p;b+E~pBwEicz#3f#+RIz90t3Jp8Eg2QB$wvSJ3B)v!`Va88&y3RvWLqj8rY-FYo z4oA8zs*JCC{wZJLhQy{87CFSG>rIC$WR#3ruCC>G@80zvb;53fsf1WJ=Bfm!MelsS zUg7cW+|50scGHLV#STv&@T@D(&(GToW?Fe*0%DR}6aE}}CG8GG@}h->#YDM9I2g=u zg_Y`MM)9$%q$=V-{Wo5%c-D`W7{S%EWCitEoWbmk78~RNnFVVmt!wD=R_=!Z5MnU7 z%U@reohW?~@{WR`&~tS{uyc%fhoj1#WMSQoNCxy-O7U9{k38bj0vjbykK9(LYBlZ9 zB_m6NS;?kfh)shl$~%W9;Y8gWt1kX;Hb#s1y-5EHbj~<>zsG z$Ly;y1n~TymnqDf7 z(>5|Hj*>dj13zLh&CSF%FmlYshBFH*tL=|ZcM9|K2M*Vp5$nyTO@kdowed3#?Cs|! zf%|W{n~z*C(+b>Q!W&jdG@hO;w9`VvJ&*QWB=&#DKxzGnpXj{_vyeJix+ih8(OP%BJBiQ{%e9vm!^YJi=9XgW|>oj{^~e7=XHDygdkveQXoiWVNj-4ho#yeAi_ zl`Q12GoouE*tcJ05SyA-vSSZlx!jD0#W7IlS3?i9Xp}%lWi*byGo5|8_TXjR2oJ02wBSA531dX^F6K5h(i(=XHyKDyiJr1i)Psnc_tCDJ1pig$pB9PtDo4|w$$-t%DkQCYUc8yd!9RW1EN;=om$RacJ!|m3LEtNL zHdfyzRfR7;AN2kBxVn1j7LgH8^ey#rD#y=M1EUFzy2wL+TmE1n`Im2X(gSX89WAZ7 zHQm=rmA1deC~f z#$|38z^7G(y}f|gjy-}K#FjnkqF!a(YOnZpcg5BC3k}sf7!*rZVA^LP-v%n zp1x~Cm;A*!XP9IFiR8iVs=>Ai8YZ)O(H@9EOKYn(6bi*O@l~E6PDL*0$27Ri|*ePdW2lj{JndZ_NT5Or5ll ze6;qt8SQ*Aa`V_>siwE2PV$!X^SyDMmg>3iEdiSZrRd!o`zaS3FuxyN@8a1gc*-^P zGIrPmnHH8|JZl}TUx8wt%w2U{Y*d50+Vl0gUWBK1>zjDOvm^R9j<$loWf$nn!pf*h zDu2WY)w4c|yJnGQ5xwOWPza+_{PkUYzL&2vE{3MGtKl{#f4G2#Z@<2exzkibHp#p@ zago>2&$y(BuS+~_d5YnhMPK*5OJtBrC|CfXB}Ra<#vx~bg~*DIzGf7-KYv-2G2~nN znX{xz5yCSAGmU<@qtwMvroaKr$*yp~&Y)b~$pH?3h&eST?mtDI#_Xdbe_)VCI1kr@ zP7QdP_AU->Qx9uGlj%iT%D3EnCGPdpL~UjkucaT3o!$?2^h!Ylv$`8o$1e z^UbTqTUcZ$UBAv!ue}X~$db#(g&)jPaD}k#uyrF|CykohFugM-Z@AW9zVmA1W;-qn z7`CNBGg@~}fcJ-#g{QMEy5p94g7(9S04Y(4)nj#H#ELWr>}L)h9#vu^0Eum(tA?(f zEZ7lvys_V^Ai$S;7cN|g&fe}5Q{}hn8$Nf_P^}`uak|cCw&m@?QdZQLxVVL~V?AjxuND0JWs&M{^G&$dJsZ7gmi@SbQ^X$wdg$)bQ)k`Za&=eJT@UA z9{~B~+Ql>!P};-A2G#FGT!_oRGiDa`*7yA5#y6E@&Tcmu85xJ~eR68rm&F7SQeT>x zQQf?WUYd&t4@d1U!Vo~X$L*_vyHjy4Bf7KHcFJRx&*ftWEeF|~W8XFfXaxA0t(ESr zo-;t9h8x)mym++NXL3E^<*AcfD|qZ^{cvqW4}G$E#eG!cO^5WdM`#yB8mHk3eKOpu zP%cPIw_i)@kn-!NX!fiIcmac^c=Ed>!Ja&g5h@DG?NpuGNXh!$2K$a$xCrc|uNl2N z)rVAFpLAQ1UU}rHJ6|B(sY}N)N$TK*S^9Q&+v{F|JjnlZh zDXcsy28#-$L&pLoZ_dDKef>$NVU+G%2aTg>vbx1bQs^@!i@^w=k6db$KcQy z*-$20Zyh$GEIf9Y@&lv2Fg5&S^lVLL<`YWsjbPwo+WL-;?q0N2ETHuiasC-hgs(q- zJU8;0k3HkJC6rxS`q0R8++w1}C5wo6!GI5T-rM>bYe&2@&!L^KE-!U^i)jVb zSrOzftWGiTe)`%ue>w}}XkE?EHUN59TGoY49iT<+2O4||l9J*Vbu4g#tcxOE>kK#) zldh-!O(#UZ{k*xXhDA@=qZXaTpY$f83B^xY6l{#CTKZ0!3nZoOj12Gi zzFRzu{>cXMj4Tt1+!!k|kBU83R&-GFe@$?U=&ydF-`Ah0UZ9z(I;;(3i8<{vH=G$& zberS!*q_@F9j`?=y@cmj@_S7{8s}&3pR9@K%rB5hvaYjlB#l%#eo|(&_@nSU0+;ra zz=$ofjkl7rms`gV`@+~kq-rRPio<>5r!*3{GUv{nDA4CmHmcWw1?(mQhs76(bm%PUb#+`w}D4fttRNo{xtx{ zd8yo=a|9EB`~VQ%HP?K?$khuX6g!=4u={*`8bIzZLzNBUfoE#uF`^yz@#8QX%s=xi z8HK=j)3NKjXscWX3N?M}YIb4F{q1Xn0n}~O)Ht7y{lh_34>-rtL%S4?F`x0PkfiBd zyCmCPg8=&;=&#x-2Ubkj&^uEc;^PP7jA~fnkMAEUETXk*CAD9z`S)kZ2^M;tE3Bv! z5NwOxsp}&cMmcwVl0;Vr6*G@#4;LWccm=kY$d}*r(`BGDPa6A*3KBcZi;GL*&j6NZ zth?-{3{RH17>Z}yB~7F8HM)+9yU$(8LXvl{>jh@!I|Wc?a(l*;BKU>8MK?{ib759} zsi*yOG=2T4zwtgrsqmZSa!yms6>;XN7JCLTzt{c9wFJ+pxQed1w0UyZvnmB?zw-{J zw53x8xqrrsVVl_YYC|Wg?LvB)HIohny>g*+Km+NQy?hH0e%9{lq}{jIZ|mmcFwe+aax}kk4j=siXZ07I8Hs%Uym;b!1s`7ULI?nDJ0$w(b-gpgjQ%}#c#lP3*14O&eN zI@y<;T>%0)QlQC(bizpHZ-$133U}U&Ai~g}hQPVMFCif@+-iN}q{XDOg3b9p`zsmA zbMBa?0Ho`@LUR&{+_fVFgbMxP`Ib8kMd7D1i!&Tz(<{`6 zZW<@5{_4m-Zoxbjm@WA-#OiPzwevWBNuLkrNT%D5m z#>Ia{NQuH(q;_Ut*hQh}h8e_w!>|FcEvtrS8k%l1`cyG2F&%>j+?5}Tr4s;mr)ETce0e3NxLqKj&^#~;i#tsbD~5Z zwG(8vtpM^Q@k-J$3=^+!pN${UN?WC_#W+}E_Y?vi^0-~Tp_QOvHn^yIeabK zUj1m}y2y;?3$mX{X;Xq+Zpt1`=_9Wj*=|JxC+SgMPF$5!d8fNU=A~&(iyjvhv4D-9 zFB>2#BB;AJS?iXP=8NT#M3{KbzOCD6xhV6n{A)u96!;y$1z*K9o17)Rly9m05&hzKkjQM!`u7x17@$|1t07#*afYrqwH#gx$!s9`UNX?)nuMTv|lltAIlQvI+&ZHv6#h^nP3XHHhCaHY12pbr2wo22MT*-!aSGnrsdVau_T9mNkJ6*awbV%|dq%KyJXHgX`x4 zb_G~;QSXiPUvqOIv?jpM60{z;4Pd(paZQ)y{-jfS+d!ZS58Oqu{NDS{HNF2!(9uzQq!r?MU0Ar5Rfvmo^^!2)#Rq``KcY0v=|BV`ZCPu(lQO>F|S>V z!n%#Qk@ojMbakO=C~W!VY0pi)rp?62{tE2dyBfAf&E{&Qt-MrK>w-&B6?xtuE)#H& zacCkr=Jy(xG_#g+A~J{!d~H7cQhU(&6lHxDGLT?6>s0MHon!=13t)1Rq=K4qRbeIZ zCV~3E|H;)UF)Uz9^L|2%i3Z}~CIyP|+|k)%V|vHGZZ;2e#;^$no%lC`IN8AtN)>6@ zODnPY{W=l31A>A@{`iof3j&vw?#mj)xC~R!QJJy#>^Ts^=P{);4Fa5*fai)HFnmOq z<-3YRYw79b69e&xhOMyOHHS}5&cxXHSA9i!`N397siJP4W27(oZ_g5}K)t_c2(pVh3Un#=hL#((jE6 z5!@gq3-GDA<1}l&Z@3Z)sarfW3(Abn?iqU>C<=rOe&ld5r?V#PL3r z3`>KnFo@wBYAAWdK#g#_m5+e0^VXDv@}nIxIQfhCER`LmY82ed{aj^77E5Noo6-VjPA;5#9T+R&VCWh^HfMnpNy)Yv= z@y3P8PEGoNJ&4XG`t&VtF4X;eeQ~FY1F-~R{5oKN16oHN!T2@WtUXuiXqJ*z(DqA} z!(=Wo$VUtY5d(g}-U}`56YXwr1(A>do}Ctm&|lc|2Js{VhdtaDxVd1bs1;m3H#m*Y zB8+*Nc=y$6ObG}{j2yi*0x@o2m78(3X#``|fi2}?mN(7Z$`TBfSsI94NXuaLNT#-! z5+56lc~bq;uD;<;TK5m%mzTde(pl4C(K}8#nckL{NLk)r^>e^pM&v8}W=MM^iAH^4WGltvH#=(?7nVd zW46^xQXch3Jm`&i*D27-4(G*B`8u41s8Oz=B>R&D#fDoi+-GH#1)S{2K!!|+aULN3 zKs>$BtyVJNVCm#=o#1l<1Z#7z7BrFU_aP$jlI9a%V&pE+1mQsU&7O%U1_K9gW8>m< zgxexP9H`Rt8%g8gTK(m!UJ!1y1Jvu~s>Xx8g=8ndua!_=J*fj!@DPy#ATom>-X!6- zdkOyua{Cd8t;5PXoW9O5|4F}CAD#RH(czH)oxx5vhw1BIAFg$?lE4qclFf;xiJq%gdL8?#W}vA^$8!&N43&Y0=^6I^y|wx*!aeue9+1jng1b3n zLvsN;FCM#b69S+033Z@z-Ty!tE4 z0{Q_&OWuZtasZM{>SQlVCFPMc%R`{(Me+ej_u)F*&RmofJ2(lRk=V~N>aW2P2MpF* zLG8?+mjAD>#ebXuUH>^Mul@1$pZ|$XuR#9I2zksQ{Z~T7Uk(1Bbi7J~CF07zk4M6B zTaBe2eLTqXC_MK1cFTFUY|ACQ(eJTD)|?KHU&94zlw_BS0+c@1efJztZ03bKEpkg2%lzlzD%DzVN@O4+>7#E@V>8kR zwLp`S34ctMG?y}Qk^er@&z0Nz=!Pmrg>O_NFQR6L=D>I1{G1E_X37LpFM;tU?C!Ju z`d*;vyPWkpJ&xr+sWZ^@%;Z5>^~1IexOT%iNWD=DTJCz5|} z3<)$EU%&h0C-uAk;ZpIfSN?Ay(!1}IDw%*QqK z+4AyoS6>C0@m1^3E9I7X91_!+EozkKBJ$PZcHDEU3`VBbUjpmd;255BMj)D@jE z7990e`RCq`W&B#)v)YZLix^XX`5P_G_h-++eYTg z?~ZK=A|PWAcCF05Oh`@O#vQ|)aC@3NEClP$(;3w7Ig)|%zAW84ZkY6H1I#XdMys~B z@NKt==9F@`hpL9mrIK3qc&?xfSCa@-Z}+N9?S)LlyT&EI$)=t-OQgU5I= zde2*5R=t&fR!-48MFQEkfwma*TVEPpMkz$94)BnrT6{)dZuRg;=5v593L>``_Oa-e z!k{3L`(-nW8N7ZEguBUqimsO44|pfI#F(*LTwBgrUFaNC&_z{Tqc|ks(tiy2wJUS>C$_I^5&!#o5V{T# z$0;m zqE2Q(!ZIShWb) zm2WH^FM0E!TTr-oYPEqStWV=VlwJg+iqoeL-1rIAu@ zC9{L!!-xOuE9IY`?ShK0=c(9kXi}bQ?BgM0u^lhAlpiue=QQN+(fx=Sx{{Z_X1p^C$vRTE<~nsuAs%>sKBdsT=( z7PDkRi75)jh^+0^8r}5xAX(JvnLK)Y{G#}9kyZj9wSN!`+urTPCej}EYe#2$IW zCbRJ-v)#&fzrGZ>KA|fPp915F`I2wC2`mP;*O8w7+U~?vhyKn{_CvLZ`u^0An;CI!3$C&&= z_uJ50sM~FI8vgbN($RIp^aWi6#OMxLd>8egVrR2ZxA<)pmP6sCVzjQ^%=d^13A-|o zy`ZZr|7t2;}FL;5K^{U1Zw zJ8(Uhj*5;UYf%WX>BCiE#bgxwP)#ao9bU33rr@e{Jf#MBCa#HNWG?HiSjiV3S*6y+ zNKL$!LPT0UKI7!10$v9kUWm7e!3RcoyzOaa8kW>_TCIfUs0(AULPLX%2sq5`bOu-7 zO#S0@m3tV-W95oYMclM)$#w&XT~7G&!Qi6|kjXf9vApN^EIHA?Z|IJFF1m`oG}uzq zVbM9BKb&~)_4#pVF5%>ng3O6tv&U|uQ18`~D!NShaB7>DoW4SXL%*aLL3uYYPqmFTr(3L=`>>El$1VC)-<@)BX)!TWs**_clZG^CerB;&c_#T zXEF|l*1AM%lz6PnZ5X)i{FEX*u>7u6d;oL7E*BXeFTi31)}q#J_IKv_8U>}>sZB=M z-zd7J9d&zG4XPGSdM)<1%A`sg;tEf*nuAy zP5*u)WM%h}yk{F-Ol->UstASTIF;)BC2U8ffAnFk!pNs{gr!aTaG^+VrF)`v#T5ju zV)ABvw|ES*nev&U=}o3d^2WG_2H{q9PY%o@p0DJ7h;faDnWSHudpMGUkJPmVX;!rA zF)&sRpT{3rRl2kto0N0wvA!`9&j`=8Tq)~U5Q=sb-@6l{IiuuR*d4l3YqhE(S$hLV zi=Lt{bF=814V9pVLd%i9qc2&S1hiWx6f`~vaqq!}82Nnz9BI=eG zMkj$)Y|(hxo&05QCw^DysoZWLJMRi>!4r^~YJ70Hj!wOA(a zr1?#OZn{7=O)??&WpK_eDzN1uQ_tXPZU@r2VzDapBcIJ;9jAvUT+(>YG}3Y1SB*!x z9#gimL5A#i&)QX13wirh`Ra*6ZzWkN7n>#kTxn7Ea1P%K8nxtG+uARC26`VDUv;uC zFJWNd2&mDl=b&@`$z?RJQtWS;$Glt^x(K@v#M0>;n=2tAFTrB74Tm1au482w6Bf<~ zu@uOJwOiG^E>26@5F>JC3@3ICjjX1W+#@1FG%mB)VX$4aF?&Y(-m zUaOsJW|3W|v-wt*o&&m%r$MLu8EztUy4A$%p7}|!?psgT3)*oRcFbw2!c>~j$6Gk+ zle#!T+xOW+G4r<8k!BI2?~Cfe(7DTGEvAH?49?SOZ)CV(+UW4u(0Q!K?im!P}7~!li)D>SFSM}b~NscUx@ul>_=!h)`Kko8-yrqGT#AM%yIN(`7FqXfWXZbrs_$=H!JV-}ei9 zOvuRCgMd4~kBln>yO36Mw6#`Wb4*sW%DS`-QSi~I5YG`Gm)%>L(kCQcRmXxq?mKW+ zal9{nqk}L{3|y0Fk;bl^n7vW2R-(-kq)95$OnErSXytU}Ddnx~KOBa4d3F_ABl_%kby!sd`fc(>>pt`KP($MKjVQ`aS3;b-oppd3qDNC#!J z{sQz+nKa9gs)L!uVySHB4W#=iN0V7_JoHt<7&q40n5-G$@d1xgBuqBCK5gOEU_fyO zZ6CXIxLOJGdF)X1+wM+l>P{!Ingv$|eS#U*iR2$AA-fOWT0#7OeZL@28j)x|TKZTd z(Lfa)EZWXq7%1Zqc&(!|C01|oWm)`m)`tgn0#0@xuCYlJ{Pxv~i-U2-{vPE)M=co} zJ3W2k|I<`RbgaUdeX?9mAYk4&wmL$yg{70$eH^Kv94*w-rENBBB^Ei7Uh|kx#SQWr zIv0v0Jq^P*vD6O{g7+n*HI^@=ej-syWP*P$YJ(2gl`Slk3^Y98s2uoIRCb+>V~+2& z>EFB3+L3$RErWUaaOnC$D>feaYmO3Yn5W)i;+4Dz$1LzdkH;eFe1}8ooGPpYol;ZI zxUz}lhNZ3SrsVMj92PI~pB1ZgQ{hj|(wC&;hNEA2hkl(5-xabUZYxO5x2KBiQQD_p z%&$uSk>RFF!!qu!P-tem5-36Y=tJ?imuf^;Lbl6{=3o`y;MHiY%q7N7g{ExYUA0Un z%IDaebhvr4#3USAC#d6M#ICi6RT!7WT=$n+dT%X1AEx|V$5k`%!_Nv`LAQBhmMNs3 zTSvX_7`1KG@clETb9$@nBCMSz=lzSmt7p(J=9hsPdUjCt^o&AVDtf4Y&bB#9_B;EX zfI{j#Wv$JHSZGo`l*7`}c0ELKXYBdf*S{xdAZ16KM`f~U25!O`SlDNwnkqTHH|rE3 zNPD>K%uriY-F_*a`kcB4?x8GPj%H+ez|teFxnaidxPOzcpcS38=`A6%2$_=knM(o0 zZ{lptiyd^jB6C2ML4D9AydL!Z+64t$HhBZ26bB%FT)K+*1^6W*@3|u*`s#NqGuOnpdIl{><-X_#S!*K`%G$a zkLr)1x^~}iO^e*3k8e)}JRYt5_deLv}{zk{3MWAM?M?GgVwcH!T2%xtzllQh=<-UFbmPc__w&@T^sy6S3AQ-W%Z3Yzo_EIUcyKHsl!|Z&3GTs#*eE;@62dYV)vt_Uh4roxc#HzKvtti zS(u|ZBe|C`>ea$(K>XX?9wU=G3DaPy#mS4CtE#&FJ& z-6K<(iioa&kp-Us-3f~TR^2u}+o>Or03(B2lUr=agHm-bRr-uaA@YQeQJS0G708#( zi>@vb2a3@uDI1rh%wjZR>A4&X4_=cuf^^5W@+Jq(xd%hlnEF%0!j|}W+d~ltewEDt zmgP4p-T`NB?}oYXd2piJ>7_cLwwi0*blNj4%IKU&bB1#sT@Mx7cn<5S6)P?EOTw~Z zJQN+!Ls2>G_%y-WRmpY8_~EJmT)`8vzvM1hCsXoOHph{XC%jg=!x{4?59!o$tDh}Y zDnB6J13lQ7%%J&*%psyllDohzh|7I)boh@%m4Q0@Uffn&rD2X0c7kTiVcz(8A zqt8pE^TLkTzr&4t8V$1?lv14j^p>#v`G>^mS8c25W8uFNgFGC!|f&3 zMx!flSH(P(m9a+&T39BvN6_DuX>-&+^+HzNRBSIQ;1hIL!`vd*?Tps^dFUViqU#nc zUvE-FqPF~LqoZH>g7-&Z<zIpBapeW*PrXyk3I*^NWkOPca_ zc3#IfJ%olVzncbv$0gIWE^{6VtJk>>+30pgCnvSVU8|HLoUPw|(V{V_w8r;5VDG(! zc)_4*y?CJAr5nTo7FziXgVb&HAzA&C#V6VyBS+R=hV;x`&#C&*^+U+!kQ1JZL27n3 zGxDHU?7K)bQkU)inq0kS({Yjx)B6~km#)E0-~QG_!EwKu;3e8h=B*uJsn;Bb zKZ^+aiWBxj_3M5`95~r+9ic}KLEz~yg?^e_9$3H^NSi`cKuwNXuguw1ZhTAO$0_*O%-o3=vYgi(^ACCNq=jt*lRoAHeMapcu@-eaNIXNDZobf)5mLP=_ zSW2az=j=u=oYIfZmf!NAd1Po)JzXG%pv&a`whM|ZJY{x5V{z^yirYIY-Rrh_)2zu7 zvPPu2OCZxZ0~5hC^jwT0Vhm(GiN_b^T;zntI1TQOXt>LTe3a>hI(OVUUDa!RMnKm{ z8RzY_xy9ByBNe){s3zIeg?m$qK6XQY{O)g?w7?4=mhu|U1u_)to;E;PjFgfN?5fF! z$ILCvS?%VI414|j@)zn9hUVI>u{{Xw4iV{-!(40`j(i|~rXV%XJiKG+Jj#>@U z*xmxbD$W{TXXe;zS7OH@%%*F1QmYnqdcVLS1%(BQ&M<14=e0l&`M#rjQJ2nQeO z?HTU)OtTRVnK#Ejo{-0hJv?$bX=<{f>MFA9r}3SOem?c81;OgQuX&k7H))B}dU zEtD_guh??>o}8o~tdc_e2tIP}aTO_tT0_7nn{a6=s;0rT`@7~A9uUh$MTbKmY9^pQ zh2P?{zT!gC>x<$41d|@ahwMg=rMbM!Ra8P&5ZjeSq~jEQ#+x7WaE7@ay8q!5q+I@} zmg1VtVEkLyh#%=M{=XTA%EwnU+!j?xss>2s9G$Pw*5p;u=_ur_el1NC35-%IP5d@7V0Fr`CP#KSSdB?DyzdQEQnKj$F-*GhT+Pc^_Fe!QCk>{bFu*`m67HRJvJ^B~_?@b|($asnnt8_-oc zpz4xXf(y7u(n-gVKfeBz^rc~L9Y@OzbgUBH_+1?)7L(O7K2DmYMA|dyT==Sxeu$2&p7{C6Vq=y zYW<&c5^q97;dOO&fw+|3KXc~(J{Q5k$yqdm`y+LsF4}^`^xq!VqWA(5)?SBpP--P3 z0Sb=65ls5+bP)pOk;H)9FCP5be_23l+K8F|a0QS7@pDv=dJPNqf0-;u`tqI#PzCAf0ob_#N zB@~j!_|iv>9vju+au54-Z<*l#UgTid7oD3Bgh4ei>A2u-%RPYs>tRqDC?k<=xd^fi zZHJBAKeI=^-$>aR&npSRXN zmGj0jF{-%_C(5vMPauNyi<5*;gPuGpTv(PmEfeevB&84#>I?)`ulEVHGQO2X&(RFw zDE^9r2jaha>|l=UC?}zSjFrV*yJgK|8R6%*^};Jb2;;B!0(@sx`Y{ZWL;$C2A=n?V zm+>W@kPF1}#&wh|F%1)(CZD~3^@q=49X2#D^a-e3e|%9(pDR{JL5?Fkj9m^P5EW_T zD5a&VgWK73)sEGDz|N;+)EBOiw|kYGl9HH2J#Y<~1lb$6f~mV}Wpg)qm&!)c7QcW0 zyf|R-bZ0rQzS4OXl_b7@qDEOZo__Zx1lkle8iyS$zZ)SsBp;MGF?sJOHai^Qm={X! zhy5&MVz)jTqww73deSSBJLNCi$hnN_p0cUXqd|^~`?Lodt_qu}`$-Z4cd;XuC*&_}vc1WPz!7bQgQwcU#hWCP~|I%rN z*P@HM_WIclDKAUCr&n&cbXtlSoG!KF8~tBKoY9%>UFJCUiMXfw*Ah?;sP&>bP5 zsmP+KSTN-(b0gmMraJXG^Tc@qS>N{`5dMb`)B6wczs~hcr(N_CA&3)F+(KMu=9gx& z*o=)W&JaIAzD|mm+q(j$z+lx0pF((vm4O^=dG;-1{guq$`c?Kekth-p66;aU+i0IH zKG)y*{yZFvj&egW`ulR6_#uVOHn`w@BNYdiCdO~ZN>IPgQYT88ve((3$mySwd{R*7 z_0MsyWmm|h;kPXHz*#~hk2dbTe*L;9H=fHNuH2$q17R!yYVJCwYTd>f{e(gGm<6Uu zivCL3l@>f&dg?bAFK|CAn)~Gk?pgs0gtHHJ=9Fo0*xZ?OR`6 z?FA)qPpy|+pUA{-gRQ^O$;KakSL@ExJD)Nf-(2~yOxh$B(>0MV5Y2Zf`1QB+e*4Xf zxjpNRvR{|X)-vnUUWdcUb#(<*xNX;HZ)75@oVTmu$kSK~u}a_(!E>g+VF|uWAYayQ zx1d3JEmOS~^~lg%H?e za@wCn=#(&yTaNWH)389Tt6%jxldnBa6;UA@sk^D>jVt~D;WVn_?Emeg)B5gm$Mkfn z&-TI=NYxua!W)?N0JL^X!8ApFW$C*t;aeFyDdvsx)}*W*!3oEJ?0d{}jo*fEWwU*lUds=8aqlslWjsrP&z{mwHGT&7h%e`jS8 z|FMg}jwrXA9Gl*$_y*aoGU@1*X)|k-2)i$Ohu*F;x{Y3BOBg%}$Xu)w;yK+xozCUK zsv_B{3XzY-#L3v2#~F-E#=jNP9wMf!Si_iMGWpj;>$qiIG)Vn1K&J1Pgl z(3AH^@`JQve*4^3zt%Dn$a@d`c-}9mKQs?4nK~>HHmyk-$5+I_Y1_0T`g&DOy1h9)011bzC97QreKm(s&$=TnyfZyLJt-jc&*Je+I8d?#Uv$l zfttz=@P>t2@M47w`+J<6AJfxs_oYb~+{f{79=MSs$+YK?5jnt^Q60>1y^!<7FPz{yp2RR?|D&6in_FbqEX`5T4SG8F*sF{lFXnxJlkQAGt zsmQ~4aU$h(G0GXppOKQYP+q}YF#uZ#K(a2HZXQlp7v-z@>ojb{4-U&~K5B*4zFgJH(ys_^G zkmIDE(gbDzij4l)YEA281zU5!9C!88;?@ca6A$*Eygn+au_8@HKFj;n6rrJkL>4&Q`Q(a_lJ`k0#DZVjc(^CPT15)-@W zWB99?JH42Swk`!!>Ob_`O?eXbLx?owRd+m3Mc}b7K(itsq1pxtDloml3o@3+EAr0X zyOHUQqPdh3(cCKKRWi4hEtA9dX&kE?m1(|TGWEa6dJC{B*KTVV1607E8wBZ)?h+-W zySpU>=>`=QC6#WJ6zT4emQ;Gt-Hmj8bM5_}^Plsd>)LJ=*LvcP8Dow)Zks!~D^?nL z=xLsVP2;lu5fOod?koh&^U^XyU%m}|t;wO8*I>+=DCNr;qF0#FFnI5$NHEcvQ?y$g zkux}`2CWqB(BR4Measf~SpRw>*au+d?eDfz%r7pQH{6Y8gSIBQBmq1(H@7L@vzJ`) zw^C(Flv>)_I2`80!SHvfDhiwLUnnDu+5HdLhC1kLW*!@crecT=tx@Hip%q-z)*QSK znHRI(Cg0k%RMKq@THKHStoa{Q(Y_(e2HGD;81RfQFLo^_&d^(dK7)3dH6AF+1XGBT zYiepr1yJuXJbd`IqarRcvIS-KXh#hhB~ZBWJI68}vHN;)adGF~y-dzv z_~Of|ewD>L8TQq>i5j? zu5zS-M%ye~M6olp-9~Qobac#sE=YQ2rU0LevfjdB_c5EOV&Z!RY)gE?D#F1Ceg(*xN_GTlm0~_ zUa1@B3z1HoR)uZKBz~t4KnO1Z8I$WbZV+*p-BwUgK+&sme18noT+ccmp6Gxk<_O&M z#FPC#QDE#6E%hepnuIriuFG7-G`gFfr>wWPH=&>_vuc(?hQoZ@@!1)H2PV=4zN!sZ zHtCee>W#)}gsbvvpuDK%#Q9hznVW@=U_vJ!=AF+Jz2cJ&s@S>F%6n%5wiB|SSSmpI zJ17Z^7Mb1}%F%RlrcZqx&yDd_yChZidRBTm8|bXSeuxwG6Z!e`r^<;Q3TPCWuJ&he z*-uUU`KCp48m5*!>H8reS*JcnGp77vkNn7Op;TGoK^(mm%m8FhGkc3&q4!!Xbn;+R zzYX!wuXeV2ShDy|SUpcC3Y2l8zQ6Ny_~y{{%~craVMrlC&bsQe255th=U(cy9#Dfy>9 zO)!}mqd@;KYyL!kXI;VBnG5s|h|N1Ajp3=d>?SH(4EpxMryZA|4PFaY5ZI4&$HmU~ zxRd@g4<8~MUUz{+&Ec_UmQ8|mOyo~#M6M+!z*{=5sYUj5Eex)(v=Hsg~;dnJ( zVMF(kLdFxO7XRmY8U*g=dZu#~F6%spx1~qL+Q{-+`wl*#g-4}Rh0yS&V^gAMN<*AD5-VFYr2b=X}38_p-AG29l85 z8aGWcgoEboJ~k<-oVfT+Sf#F`IA`vsB?nc$lhQq3qh@Qf1y^z|GHj&Vw{IJrAMYj#dkx#xgB_-oi*0;&2j^p0m?bpR!`|ZbI<$T0)ZGb=KQ%24 zQST$@b9UI;-W~u0N)t=u3cj`s2w#qvIQGHcX2eG1$qz1$H%`x z#w(gx+k|HuT-SHa0&?i?F#%np#osPGWlI8S6PDk|zu5{!BM z8s+@rB97mQ7Gz;wl))?@OawHMt_7aRZg}8r-LPq7iYX@*)mzGEAGCxB=I7=J*^E%Y z^`jYe$FjqVF1ViyjAh`gVov&ez$|<7yW00=7?-_%-$fpPT(AZc)6mqW(cCUA4-1BAZ>%zyEjxsM^(7$=}#^T6BcBJ*J>n7+iQG$xm zs9Tuel~k8LH6t&V9>2|{-(>wc0i%W5&lyvG{tf!T)UPV$el4ASb!%XFgGu@OoqG~E z%+WRT^@omJLNo%M^9FtwE(2xhPRqTyhW3}FM$D{)BM6Y60+kJ=+z-)(&cXM| zg>DlN5WqZ1MbOG4z>0%DT0KI@zIIoDF)9#bMP?y)>W)h(beR7@_35NHNe~n|-hhk# z4N?OM;SCH749tf0i8C`supf4gj+Q|rfNN5*xOl`VM0neDm^^DZdbYT@-GxnbIgMpG znPymz$(T?nB(h=Y!$j3WgA?MzA4V%ov>TQP%~&6pC5E+1C%nyJysPQL_&8ljM*63G z)Kdl;{{0%peXms&D_0Ngc~D3b7Z+#qK7Iv{&97fWz^v5>iEhtQj}E?^w6yW=T&u+a znr^wRSkA?^uXVOuIEhWy;0cQ*Ee#Ej>&0MK$~|*guxtospD;As?dI%@U8CF+5Oo$H z109WYh-CC?-Pv_>9UL4mN%=m5tWMg%s@zET*}8Ks|9yhTdM|c~{`P0c{#_di>JvHZ zo^v{kWKfkmvVg@0OYIn>_5ywQm5?FW;n9-{6druL4|hrI)PH)n2L9H|I$HVTpCKC) zAKnNqt*4Bpko{yFR-4Jl_2bu_eLqf2gwA76U-D64u3DUKAX6CoEQ7jJo^}l-I)y|d z@OA0njh$DNKtWLw{8El)fd#0W;p+YvM8tcP(^AJnc9*)@{?LHop z#?G*=J-gimpG9A?JT&OLpRQ(|tY)Re3VCp#q)CPGkh#GtBLltHAV}sf6U7Ll^)r}= z^SP|7DeP>p$*{a+!OR{*#+t2FL{y*baX06ufUsv zZW~#NM}c8O?`(5`2Z)yK?(L;g-?^h5y=^WPT55Py(-xQwA=Ee*xr%RZ%y@-;LTFx} z=v5;0`{T3dyi>?(?&}K!xuX3h3|8oLWi7Nta6ncf_5As5`2?P_GtWII+bu*%0GI`& zVF9!X$7peyb6-Mb*}_W>5g4L7$V>;d8o?~^@JVb4Le%g!)iFW0m`e0VweoCE#+T9vOT zVGYT}alF^9u*1T}HrcI?RgIg0ene)Cv&f-^sPU7_K{8?wB0?ME4wob^v}whOZW|KA zn=@fOeh!y4vXz8-tEZkyf6x*FU{0O(m*giVuSgR38jgN||4D}a%D13ulng7R5Ec;_ z|3=6#kPSGY>{_~8Ty6No#GR0gT8-qBA>VmmAObp@OKv{3wPl8-MkgYY3?r|ctwMuL zwLpETd9f>oNYK@`h%oF=Kj(CxsC|}Nwo2x7Um|}qs7c5*Kyz~-sP{nE)h(2Go|iI? zj@Te{Lk8}S;cqM}WH_M770c(4Dz86kSmzma2Z#36+91OROrj2icfd+{2+Y+MTa7a_^dpJMZP|2A69TQFM#h>pkW-FY(XW!xDc}n;j*gsLmo#>2tyz}s8+s#=} z4U+-4VXI?zae7b-En%596#)Ua&JH){A;4Y$u%OW0URq9W0X|5@!0;(d6m@J<_i#88QH625^{nqQo7ofn*qm zNz3hlvSCP!VKbM2TnUV{NxbGi`R=WD(To_jVcIuAPJ6r?c@s4*mj~Me!H8FZYKn%E zYW3#P=XdXD8;s84J%9T2ItWslmv2RkRoE*w_+Ge!*xAWk5bMtVej4n8%*DqBwa;~Q zh@pRupv-!R!|VIU;9zQq7r@3KGY!}ll69U3gzP3aA+e;RrhW$o?HXvrI3bg$DknNc z(Th^6MA0ajR?tjYnW!qsemDiXCg5a5FaF{{bczi7wzm~e_7)jbGlN${96%6H?}%Sm zI0>4G(UKI}L99jY{ssgUe^>rAKQ^U>5PTncz4jon=>IBqW8f4vNFN4kZR63jUmxg! znZ+9xjFf<28&buo+IjV@WEv$UR?tG z*!QVmQ+PrGBB%Gw=i5TMQ$$k$eIb@mzKx050z(Z}Y5>;%QeTRFAkwTN*CBX0FqSwa zPF>{dMF*q7Fyj!WTbzw&%9A7}CL;4lcuBQftuOEZvDoh+QObmvndeF|Q0D!Zg6(m- zLFhnG7rTy<&2TPzPUOb#Z#TBKw$5P*V3G^Po*r--@}R!H}t|bsj&~i^TXIf zp-|{-qXc2#%>Z=jNmSSM;SfzjpCM=a)xm5Wh>0x_#pb2fL+D`r26!4ymPkr2?m`GY z+2?z<$%|ZT)(oWpf&n-v+ZD|sI~ZFA>NAWWn1HWaejZzJa|aTN6L4sO`in;ptj0nx zheM~pMS}=#?}j|(#Y82$by@ZE&YOok&WDn|Bg2jQNlo)1EDdJ!Dt|te#$rahUPL?7 z+_jIokIv|wlJoo`x^>wv3cwb)+KWG_@3je{PO3DC3Y67S7E z@KDxbF0*4)|AEVEKLr_KAdI=nx2LEkruMO!UY?%u;SG|Y5NHneK@U{qew)_2?^6Bx z^$Uc-M%K)cI121+F#V9)v~9!>6&Q+IbjSWAF!UCKAVK~}s<6)~L|JUxw45}nZ8VRe z8F41?qU+?vy2xbTn2m%%UvQPYpyywD2+EgWWzn*+{Z_k#+-DAa;W9Kr8+S%B&^YEQ zq29=5P*xkJ{>rhU%y5L=fKHE=gxI!jeX>~`Hj{o@AS3r@O)072V~|XcOu@4dPMy*h zY6>fu#HBJ8Ygz>=Pn36lsH6FtJYjf3%*W3k2eHWP_O|`uoRR^wOZS2^jNTk0!^IUp z+M4tL=L!`Y?Q*Zyx2PDgf^LsNNP+D@1F&IU>yi8(h^WA|dS<%mp_L|i z7hp|foP+!*qyz)2e9kKmCTrZ5;U0SR-f>do9yebDDCq>4!qtB=p1^(wQ)}a1H6NYdzT?I@p26g+ev`clzF5fRAdj&y)UKfc5nMue7{FK= z$92=8rh-W(5D6`;Sa{|lJbyvAhY->&*sA5nl2%|9yLH}xio|PL`S{;Cnye-0BKPm# zhl~(BL9n)_w1I&E(ll*|>7@Npg2EG6J_r@Nj;0sDCqpYQ>pxqKF&DxfSs2j$I=hYy zoh`5|sQ~04$kAZq|1u2|Zi5KB%Ihe9bstKN~t2$l)aSJ9j9#;GXKs*Q?rl;*2p; zY|aF){|qi%{@7sO@n}mQ3C#8P_iGooTe3(%Cd-w1VZO^a3b1BYJ?iXzuBr^T* z=pc3+yZ)JII9gCuRTTj+0@#oRkP7T7Lft;uUq+PK5Wu|g$STnXJ_Q{yP!bf#QqZ1$ zrlhP}?abc%LAdW|Isl7|4C3Yt8H8bSjuPd5YlWa2dV}8Q$VhSUi7y$O7hUsfs;l=P zKSS9WG4wOnE&tlbEs0tewzz!K5znD#tcQ%AF!s7*rfuG{fN=-W<}_#s2j@1HE2IR* z3$WEs;6fl8KbiVqN<<&!5ZbwRlhFn{J6+*xvA~zWAMh7DRpqGXGzVmi-?4XTY|X0DWtK8&W7GZY>f z`7S0VW=Ps?{;CL;D0m&V@iIXO7NC^B2fi1Zgv5p?&ux1Oxm|3(U$?Zh1Z`(&fG{E1 zEMvHQ8=3vmVX+gh6XTD+$A57FqL>1*va(uN%eP`OPSJIH?<*=QA_H=;6FmmF)gJq_ zAY7gf@5|q2-R0UD!>R}v8lS`5yVY7bIXP+$j&M+dK!Y!Vtg4mHB_NGlwxge|hknGp z92gkD$K>eE4BeDH^Q*W6xxef{yti35bZP==OE5d~51!CdWuIS$bI{t7p< zNZ}V0oZr}x3nAt%Rv%ta^GF-A=J(j6hKFAOAC)NN5e}XUX5DP4Qh@&iVi~Y5=>U`> zG8qC@X42O{!iLXnixiB-EW`pue2NgSRD!wCKJx5I;O%q02h#NblP@Q@-0%V9GL&4n z6F^Nps%b7(h2TjIZKj50S%A%pg?|$>VQ&|_7D(JrBZs;}r9DlfatX_j08LfZVH zC5)tfDnWAdyC$UmeWQV?AVP1EH@s~rA2 zid=+YI2K@V5nG?MCq;R_Wq3vJ`nt}y-GzO-x8agXeY_A6_jluj4-_0}xt#gI9riiJ zfuCcu9(<0{7UGqrG`DwjM2EBx)0L1|c|5jRtz;wTBw#h*(qGr9Iqp&Z6R{hjaJ2O2L?d_{WD#qj2xNGDL4d!TuK_(2iqP(<) zY%YTvEj9J4!wqeiBuBEh^8gdlfRBe{bD2*O@DRtuC79%k?y0&nP(5eeIqKVBdBinX zE0qS)kG5S&f^PSYS+Vp+ZCQ}J@`lpV_V*;4;Rgh|+Y5!9(36mI+^V<>gl=Fc~=EXSugiq8sE(xgxW(IwJ; z*7@=mswPE1x^Kj$r5<2@F3JNA3z!fV3Hcg1*@g`wIU0FXw6txxL$+X>SzNj8Yb_?O z_KXbBRWi%7&NoIb4)Ds8DZqeHb8!vklB|Fe0ystzR+;0u;aGLjQcpsO&zUO-@X*5! zfb^YJCodZ5RTet1fXo)6kTnm8E2*e&qGSlM`I#=^_BB*1_lHng{TRObMgfJO{4Amo zRw`@JFT>X&B^6lPtD3eE4Ja%+r5$DC`L#M?a2$k6z8-&gL}Qp8Rgcx+)++&o#pSb`!yE54#f?LqefX zLvwWD$oto3Wrcb7_qX|UqU{!T%lpkQ5GArsWRFIZ+h2$oN)|1}K37zvdM~ECYT1qU4^TB&Um1ZLJ50; zPEm5N1xHbP1N#(&*lnlI(-;ZFUZ1wG;${>bp0fj2 zt~SkfTwbB`nXkr$Lui+P8;4%!Op^B}P#@YOy`*k{qazvz6h-B&tr#InWS^mJ+{KopnZRvW6QU_;Pj0U!_mJ#OU*gU4*3%R~YZNah0T z=R65L=f74+AO=Eki&NX}sp;LL0!`{O^*T=%!2K&77XybTpDeo|-4!IPcu3{|asTy= zeZ2^m%eT4h!^@9sx?UaD-y3rj!C#1D6&*p>CDKh0fkfo*_Vo0eP?bxG?gYaVa{^0e zB3>n?xcLi4v^pyxqgFoh!s{8rB+8u`6LlG{gE5^g72n9BF@{{DX?`94?OB?pDVy2X z9yyXUsrOST3PVhDYW29NWH(29dO{#{bee5K9VpQ@$hG3ugU5muTpVQziasyN=XrTi z8C1t3^3Ke&>zju6p${@1vYyVtyQMmL79gT{^XAQk(+Sgc*R{cHf0>LqNWvk~j{&TH z0FpjP6U5>44kR)G!3Q-ht>e}NKiWOgW2MNW_fVfPCWG>l(lGTaX@$${8!4xvnZ6{+ zHhXR@A8U30OccRWAKxP8 zVjjWfe0UB+dq&j=a8QU&YzfIc#$XE&x>b!`z6ybq+QKX02V zWT?cok@k(vt@^f^F2ly>&tHfCyL))x>Bzo+tCBMW1rZ48oorjL*w)4?c%h~O{|EjN4||WOt5+hSniIp@|u1G@-Xn zXz1V*zd~P*Ui{ENO5XD8&ij^iw_er_?6P>p+_e;b-E^f}SzXQXYUT;les15n^9``Q zOoDqGJ_X1CfH;Jsz6Ec&RzZ9cohF zY&vplP-jU3&lZuG*aBHS)RnmB+ZE}<2?0WsgM=1QVNU@v{2fJ1Te-nk6=#P1oFMy3 z2io7@{vfU2Aai_!cet;ttbeN{ISh3&E0unPxC=JALg|Y?R3kBqGE@@Es*_n{zlzqC z{<GPg+up7&X8T?<7w28rH1G=E4oMQE&7s+KiWQjyA?$oCHY<~r}^u^T(0Id z#=ionO0Vpc$hlA{lzRZN1kLIl&g2lgRw6#Vy>`z*bTxLn0t8=%mDLqH&9Vv?#o z$I8te1(`@(&-&)3JR~(xz{G?q9jfmuh>nOLVqXH7GCd;$i-_nK;CAOv>NCc2wNZNF z@#L{9!LdO2=?_pvG#Fc5@0}V$2O&dS<89M@U&g2(qqJ8W=E#D5Ig2Uk(YI#-D=^6A z>xocX10WOFwvYOTU+}ZLa$0Vnb7a|l4QW>Zj1HoR?_jQMX2g{=_*_tk{QXXOGPM! zd#9!;&Tkur@lKN}PS;-qQn$gLN7m9n22dJ;2j)YKSEBPSS8$L57sP1ef1yz02s&B- z%&9OJESHN=AeyE|#BBQ7-)=?ZjRXQ~!71K?nGO!ZNQ7c1_IN)pU0`aaNf|peliR}s z(m)<8JRP-FX?m*)N?|g*3?)6{xyZEu$3^0?Qq2B2`-r^(S|L3Sw(ke@#KJFJ=mogZ z^3eSiuGOLY8;Ip;Dsd_B3G3js{t{W%fVw|y{JXH60k{?E;P$xf5##0}KqeJR`g3H2 zSGP}Txi6){-TMO8sknp$LXR>og~P?SGfq86qfE=sxbLE~@8nOliw#t>n*jcnV|}&Y zl2Ym-2q`&mBVqxKcYrqqEqM8nG(a(tJ`w3BJr5W|NO;SSkB|{QpzJiIHf~TPOFbrL zH>qUMJnZK5KiR4o!e3rT>^ng5qz9nHYk^#M&Yv_~s>ia#ZjC^d3OnVzO!9e$CTLTdYrQ!rIQ&DGP*1co#&9@vZdQHZ6T{gariRp&&{*?yX&8 zJ78VrkzWCLEgW9;1^k5h_%b*)-3dw9to#5%L2AM!sEDjB01(i;{0(}lP3_9YImMmTn7wpY6fayi2OI6 zb;%HuLxO^iyS?8^d?>=Ry}Y<60kM~(t^OlhRd5)9Mnh`s2O*nRF*eQ7Nm2xy->}RBSNO?K*c)-$gzY>5Kz%MkfUUGQ8y&zhHMYwMJU3A zZ=TD`$WRFh2~DrNIyiiL`W`(!D=Q{8I$crtfST97O{KmzjN!y)5HM1Wywm8-akoM@ z`vuhx%lYLRQyN-CE6d{X9&S#r`E& zLnN62reiUVv^aAD)LV#PlQh9w0YM>0Tl1&((065j_%LXVTLVVZlL=sE2|#xy!uc~$ zw*w#d^Jv=M>~Mo0lY}P`QL-GH*^?|B0C-SvYfwy~*O5I`#@_i}ybWR&DbwlsO!*AD z2e6RkAQ+PIt0p71R}jk&luaJbO#>x8V$&}iNS|X3t4+V zx0=5HDu?Tf%HO7gYSG@S;nov1mq@bl-vKOC=B?LFEczs!j?fuLFxB#j=<`><>v1-6 zlVzw0$Yf(is;qwB@);Rq2^$-^HF%hJz{*#ML*;JB$~$T_SaoJf9lYr#?w+$XXg2zx>qBH)3pVmJeW%X;wR zf7qY#TvjGU67Eo&1|nI^O(c8V*pia6OaAUdR=wkxtdw4nT7UMFgcB!Lt82{SVv(?e zz>4gF?qEMi+`?%zGLR&H3JtY@-^|R+cHmWK7Z=sd*gZTwv4Oh^7&99orqJc_JkpZ_ z&E-Ba-GxXmu4j90?rlm61+<9}Az6t~)`0K{8yDBi;R2%hS||k9?sYO@5^=o4dL*gz zpE4lS`GCRlq&zSb0;qu+H+x#eg4Frge zIOOCC;Kh(+C3LPsbGRp=sIL$}M{~fdxOwZAYMHeu~??z{RIeRSK9XK@Lxii6n zRYl(+U7f7IhKY!N-X5nry01V{VujZgWxTjkj%iSz^1ym&4EuPRi(qh-cXcY&3rjqy z1`Ia`JOR|m<>vjyJPWLWD++^UzA;(^DOUdD~}cgnQ>`A z%YNzF*R?|U^b`>Aot>SBz>f=&Yz7++90U^>ZzRP<2qHRUbb$l{Ao+nxC}h2AP6&&F9Me}gReCK}q@)|P^#BpTrFq$1w2kh$E5y92u4o}Zv3%?@JC zP+ocpF*vel3^POp01bRkdt)|(uke7c?0sE<|1dJj~@4;9+)<^-BW z2zbUlILK^vW5bs53LGG#pWpG^Q{``tKTs63u~Q6)K5qm$THMvEL6atUxGMBvTtH?1 z?+OQ3q}^gbY9C78y;AGn=DwPL88HQbF4_2X1y8N#TuG*8jMYqnl8-MIYK{AFvI4R$ z{cq_r&NRjlN)yOq{UAl!Ux-k={=3***1&U>27=gDL%)kw5Vu7RA27v$;0@nugXpy6 zpm+!>k#M*JpX0)9pzSQfBzVJ-6G-wayzZh6Ve~n`p)8ib!ukTM9Vr+JB?s*nXXfiC z#-wxBz(i5|uJi_EI}sonC;=J|O^YD|`(cbb+IH4=yf??x-};{wSq+4}_SmbCjmfV)nu??fQ^anZ zdouv6J@7s4;WV;ZkndXdC1-#!z$E7S2s;e_L^sU3EFRFx*}1u=KrMkd{2O>CxfGEk zpdajlY-wB%lnmf_11d;c;F)K(wtA5ShIJl57-WGo2ISsZ_*e$`KqO74py4teWIi8_ zpF?p5c^Qb*irjZi@L3JuZ$8Ix4kP>|MEg1+2U7-+g1dgG=V(DN_wCy^7zm_wOyqZh zB6i8Dy-DuJO5cm>R=ag_TsZxXmfB1^bYL?HwqZSbuK8{6m4pC3R5qM6(NO9l5m@IJ0X23mi4Y9n&8fCIQD z((NKC-5{2Zs^bSCEs*{MfDvp40TVC*5ei?%N5G<0x^6N;VnoTj;UyKI%527h;|{a2l+;eHcF#ktpK4wGWk^F$=S< zq%)vj+hOT{!6kGw;RH3BLP&T43wT+tnXSeM;Ky?{HQXS4mN{7Dz==+TBpbP>Ra*;a zz_OGWV8pN*_CmDs%FQhcEKx1steGdli|-)|#{td?j3BZ$3?*}@$Z?It%2YQgToS`c zC<#DN0h`?m))vXb0Rju8#J?d9M2-U_H8$}LupV>us>0!_u!LzXdJ{ht6tIFb=DE<* zLwF{RbtWV83@NXT2$p~Ij06jzWe5p+AvQ-cLqY0!v8bJ#GsO6^QJG&XidM-&^xO%x z|1V*`b9%AOB(Y)p|Nv!lb29M>> z3oamHCjxw0{4Z%)yTUGM)l&#)(4L1IR*ZC(EZdKPWC#a);80K~LN^A5&tEJkbXFWc zHSdY%CgOVW06Y;#l#kcnm7h?Jm4uD6hv((nIanUe86vC!ov}b|ov~%5AGc}PbMl2F z2qU35IRjBNOgo0TU~+P@5S)D_E-BexYNc9YmoGj0Pk;b!1)s*YrKI>nAH|R`)*11E|qkl49on)9BQ3fy7jo)-7#z z)9^dTmMm^xG`&HdW8w(ZzyC^2m)V4=qbA`oJ=LxkdgpT%D76S{y*=>dNKWbkl2Zoz z3wpk|#z)md!#{s+gj$;d5*6TcFexHUfVMO7U1a7{^=j7ehx)$x=9o+9Jt^GA@RX~W z2vMBh9$MrTf;m`G_U5wJM=p&>GXA=KN<1_(ey?Q~Xj+v={YwB%)fjS1-!J#w9tB1x zhP`j5JRtQH-Y~c;IAZ*+uVnn@_XDhy2y`^hlA8AIdHkK#2~$M`wua;{bjMl4!6pKvy#I`Id15dW1&K zB4Dh@1qt+^%I5~d;hu6Zr1v>x`;bSd&hPhGB3_a}pdhAa-4Cl%%S%&Aj{JtEv`qy|FAZ?P%#6(Dt~2J^mA{k`?qimhXm0xPo0>f_!Zmj$?5D z>a~WX`UeK(vb?zly%U8td%U7Dw%12LyFWZ4qQ0j0!qy{4qydj@?q^hZc+-8+^CwVx z*_-T%gi=Ak2!yijP{#TW=!bnh!>lPDdPJak7aP2{B1sup)-Ce0K3rgJ zj4dBJ=EFw2By0{+e-y{X=fphYrm-<&D@SE)uWg_p+^pWKaDl@t3IYZVC1-6KcER^2N z6#qQda*u#R_W?y!VI0fu6mzvoa_fMrv67(wH(Zt^>>xH1SY{p$TEYQ2By0D==KrL# z*k!MN<(OIccHPC|sV0abqwP=QMd4Id`a1!x%%7`=iwe~bl_9h$}NG@N*^LG9pX%VyFY&R+uF2QY&MeTYN-b>0e!769QUUJ?**lji z5rkyoq&>radRw{a-8*JWNFSMX@#j{Q#3{Xaok>J#G`l!YZ2lg|`mCNT-#JXG?ruHC zC05&8_{DSgh1Plz)kh7uuk_c-D9KHY_*yi|aGrX2l6Md0#J*C~(Jk}8{_@j^&8Moe z64E(6+#l;sRP ziUh9NPQ2F1YwPLBoB4zO-=9K$9r^hVWr#+B4VFnBp9e7JL`;cBPMI*r|M}bl9%)(G z5)UF6BA}x~dqe^+^?%**zpnM5NkAa!UXp_4z9SFa>ub^|82|svh*QddMICX}pm`nQ zBTaG(pN9~00vag{NpSyt`2W7t)7xK4;4aPrNerSG!y#7~C$`se>CvIg6@C-{|9n;u zb~-nLY|J{oJRfs0zEgDn04+ITYdZ};+l2I!xAe7u5k+2`2Uk2-lgT|Hw@ z!P4_+ai$?hd}RF~Q!JoNhXq~~U@J&F&Cd+}$AkU*QZ3Jzfu;v#gTJ1_#35*9Iw3lF zk{K$93DnY|J4PLHm&6Ulv~LbPh2fEbPOPV|@8IOrJT!zCA{nur`Ro6@!tU38>oUM? zzrZtTPL@m{L@SIzh-dmTI!IsgQKIPGa)>`%;Rg7VDUChxqh*md zA3xtC*!zOQV@GczYh?Nm&HrcQd0oRnK^jhj_Agzn|21eE;CZF78{ub;QQUC}Wl;qg z1!v0@67}1X(bfLF@qbxD=da$DqWrJbV(e#Krn8m|1uCt@%bNum>Gr-64N9+X7CJOX zhc_ynV>d{8)=hEQ75&e(a@+X+e|>9|I?K#nEWAOf@#d>xl;Tj-#Df}T2kG0EJzxL# zVn2N7(g%;W7e3W(^UGFHY~0@^!0k>7dNnRM@W(; z-XRNU|2^`f34_9Lar(z*;+`Zu7cT`#!pIgD4w%x{OCd@?>9xKaruL&VBCLF7sImQ} z4i8jhVOc`kW{^DZB3y@qA|48Ukhel}Rr{aWe=n@eEM52E!69YeSNH@u7f_n_o~a9T zcXTuYF=T1+vI?)OV7Bzvuq*OY zy*N)lnzR_PeFm2XF#{05(g2gJgu@pEnE!o^K-BD!2Tk=G2bl4&zG3N6iqpd|j7nlR zYOD#_S5y1Re#}(2*;!|ba7tQ+1E%*RQyx5xe9)$G7rQJ7(h^zF^YS7v=7M{ocLHz;qbU{epXvDb zn~MK@GtxO6rM&6ax+W>v+d^f#E2P1in3xD;BZd#7E-o!e!b#(4&Hv72(`>rIvyV-5 z{|vZ{KuFpR`aAtDV^rhOB|6XK?I}|2^_YrZihOiDOCiEU!0 zd9@$FwGIWWJCx$TGU?G_WBf7xcOqwBNhlXkwlpjJ_ai-)L_;lI9PstuedR#2cWN$j zVa};bb>-@;)g%dkl=<<_tgE&rq@9p?S9DeXf2%PUbbG`Ava7J4=JCnY$XT6k5RGC~ zzdi$ySgv6MIaqcFGDvlyk*LGH^`9A$ki%|lZAnxA!FlD^{7JsL`S81`&`>%JQ$Q%? zTneY$i4~cjVg1a?gZEM3;GY3o7m{#P9YrXyK+Ua0Rqfw-MZSs$04B>&<}-uS9}$_5 zPa#V&fMTK`iI9dq2Y8-!BJBqZflUxuW3U+fGap})s9y(tQgETTW+Zt`tFdtva&_i{ zk#a~Tt~4n%da`H6Ln_=THO~8r{W9AB5uQi3S~fOhpAP@num8L_PXd<}HXM(=RMIDs z1^{AJ`P3!^KG5{heRxu8HGpjGMA3Qq=WZVDKi}ZUCMA2_v9Pvq^GRD>kxgHV!E*Lz z1SVz@fSD1|8x*1;t3GHm>YY7bzM%^u10I%oX{P@kAsVG^eiNp%K-^`XJ$Gp6&u4r4u+pDX38w<|1m ztY_x=ax$*DNh43>LBS}As zgaYmsU(wU4X+PTcBH`{E6uI&25v&!7k9x+;^9wBh*7+oQ6tekusiphf|If;&{{|-s zp*>MjQmT&z6hZ*FsL1}Xg|ZQY5>qq&v$KJ2%dYCQ;fMyh6_Y1!2@$#$dwcUeoJSc$ z-tEFQOG+uKq?f&WwyZD~T76qYEzm*-gxll-^MFv2cL$f3u3V}y zS=W}o4|v}3S^VtzFr6&%@@kiWbeA5D@r}+59=pWtKPD}X;t6885AuHY zv&XAsZEGf;&~i6CNT}sv@Ud*MkWAW6=fdHz=2(0$lkw*jv%_;r>|ZLSxSelnNyCL0 z_s-@?w*qo*iTQ|9+$Y~EIU2Jm@Zs;!NvRvAGO?yY9nf$xQoh|5c-NeEkEfl}-U0pR zC#jEh81zgJ&0Pr{&faS8ZCO(Zj~C7Wdzgx<-vrhyS|g(BB(1ORZ@=t0oa4Nlos~QX zsy=n6O|g5=eO}&Ws5$&{VD)A3y{YAW?;BFsCle}}_t|-(n_ZgZ4pXw&%+2c;P2KEk z*~?yjNx!>L$ow#nS~nqal4!yYpvHI`7X2K;tK+Uj{{x<^1ukF*2{I1 zQo&3NQMRk3kYG>qYuigca@%$ldm~a7pD%NktFo>h)=>0~wkFlw$SR&+rT4Wxny?pv zIyDkAi>I@U3Le``H6(uggVmBNN0UZ%jG?3>J{6F?(OdK8dV1z$ zZW)^2GyJ-~FWsBAeZe$^Awe{o&#l-4?wc3C+*DZ-pOF0>`QBDwY=M20*zJ%nPFLf> znK<)!eUV`~%t-l|Ig0yOsntvUcdjfA$GVvX`Vz-Eelt6~hO>UU_9}iS%=YJVnwV=2 zx)@F@i__cZ*cBepDWCo7`=pjxbc2QcTFxC@nJ(q60LVasLl8G2PjrUzKLN5D1_wJ! zK}Tf}0jtJ?(M)fZrN>nKEQZ_l<)&>lOT{$Hw{KnIhQ@pw`*4nHf=?acD(ANC84<%3 z)?zBzl#(D{$oY!#JwGK@OKqYIPk!atShgl#QQys`EeY!M)#M=P&i^>UyfL*uk|=f_ ztiBNS)}aFv+jWEHXa_5ll>h10n>yR8b-h~q$leB&jAi<358wTEFnFm)XhrZr66F^^nozJMtIuCkApdU0rH!Si44 zo|Ij*7o>Fl-*z#HcYeJ&2)^oLUnhxHz+B@UCYPvZfMcVg0a!O>BSe-a0DZ}s02)yn zQ$cO&!@`fH6q#J%SK;@QOX7%h@YXi@9!3)Fk{}X_K6H4x9^CT_R_ac#Pn1jcy!P*i z>;Q-J_-y*B7lbZeqWLjNirGZ_*GNA`-Jv;*(rUWpZd7Vv?0nGZHDPN)F*xze@y5Ey z>l!IEEVW%u3l8OdoY7hvx*R_uqomYTKIuOgqaNiUU2s-YkE+GoXlO>ar@)&eL%oH$ zxMo`&Qi<+(Vb}ZD4I{`KiTkS#^cYy_Jg#nGo=x)^NKf}>FqsSOrm^RqBXBfRJT%y| z7^Cm14@g`wEU7E7`a}(2n0(AHlU*#2{r)5BsO^<^w)sVUO4WYJEt3udBl)9#nNU&T zh`0&^ABXX@)3*%(>qhPKR3tpy$;P!fIi7+3^K)M|zvQOW?6jTz-Jf(uxT?Mpa^-mn zK46lj^jaeS_(I-1!|RD2G}YbgT$MZ@8P_o#)t$O>TM|_(bQuR%@^4r6f+mRy&zU)e zw|C~}7Z-_qL-DQ_=n_N4Ok*+6yIGqEXXpLH!YI-*+ddx~AK)G^c{)YYD5kg>TGJT@}8KnctQ8q@BG)qRYg|0^Dk~U z`C>g=i{a@X_Oy@+4zm~%Az2iNlJ8_H+gctZ#J0)GJD9ZEt4i!NQg?1G5qw*?qHdPR z_|QD_pt`}$J6Wb5R+(&_Bx+0dFXHPUrZ13$#r?bd4*a`;bXM%cXDwkdu3>hmS?i=u@+vU*o=-5d$qL`8}IR zR}3ez+Zk`s$}J~U$!=C(3`(SX8&q(Yz3@Zt${EUI-X#ANwTTk7YF$c#`?=Z({Sh>H zdu8bON3DxX7JKnAle|UcO52v&|anJi_=|H``%)M1h%=Oil+oW4x45al>S<4 z2rXHi=v9Z9liaU(83$(A!!y*P_o|H(QTrzL>WH!ZLpSB@`#ZSx0s*nyajth^`J)tm zaJKWwAn0M9+Qk>^^6g?6&?YA(etxSxr>4$F>L9hi<)o`%s^;|R^~uxoK+$Qz*m|-& zCeoypG0u+!e&pI7xg@PnvC)Pm?$FRsD2WfQoallQBT@kYyiPGxQ$Ua;-&lH`!>=&$ zpy*Ea-o>*Za5(wC7IFdKk_I;!AJ`1=pV-@`}OX2V@xs|_U8*ch2w)o+s>k=a8 zwwE>5FDuka&$BtfmK*bN-u=TZ4-VZqPVnC3>iX;+9OaW*54*f(t-q{4K3vmLmf5?s zM>nMiqC04&5<2(UC7TPh@?+d>AneNJCCMRIa|@3=F&3{Yz8~@Db}YkKS>pE&caB3k z4jPUREw-;*%JqW&a+loJ4Oix**NK&J-l0!5P@tKQy<^IHUyoh&uNCnpr$>Z>yk!c% zD~+7EOzGOb)HdAaloZnIF)IjqMCFLZQ(&Nd&8i6NU5`BVrtHq)QL7uuLKY1+r-Muv zBmd>2ygGi>Uq8qTnY!p~Vq83&c!qcveQIx@6#SlbABo5dXke|s!ML5Ak$YM1&Nm`& zGe*=G`N<(2*T^I2Ku*M}Kzw&}jaKpjhU%wFX~L4+5pv7>Le&W!S8P$w;Ot;p*K=cZ ztRe!Zf6j+D?;iKACrAWm??Mzx9}XnrxJhKRKlOqf-toi-aMkiA>a=y ze%#EUGPD-QyV%N9N}q9P5IJMRAgdDr5_({AJvd zoBhMj!_;d2L&CNQ3+;i+LV~5IrlvA}gQF>m`SxI{-WO#>LhS97os_lhD z7bk>fd^uLr$}5ju8p^@ok>YecXP)D={OpG&Thkfm&A~&F`fcRA=WITXC?S;S5#_GU z$GUY%Vu}g;M`B?;CZz|evzfw!x39%Sz4AUni*6HYN@u?Y{N4u-9<=zVnrM}8x`&kK zCf@8i{64}oykTtoqE)1;BRjgB&jyESsc-Jf?}zJ$C|e=15*zDrxHdQ0u)bKZA0{-` zinei{1W=pI8Dza^DalRrqj+D?YcjQdh;hB*7il9@{YQTP&ij7;!|By>yXYk=&#i+Z zZy~?fNVj|eRTNKm=f#No!w>kbVk$3;g}0MRa(SolJG?2*NYm>0{4Rw6fP=b}1GFIV z#sl|y+Y%ZxkxYbfATSa~7W)2Ta(i$-Qb+m=(KXfmh;+32^#jWpEh=`u9Q3u=e(cza zo}2ERbvmaLWU?zhjMJ`5WI`Wk1-x|Ff#xJ*>l-&|6x_RB3R59>?W~32#1$)E& zo!=}T8ICnYSCkhnx_xsuy7N_nwX03Y2u=Fdk3E4xU$m)M=`eknHKK8e?@S?imL?uo zJJ$}kel0dmTh5>=#XcV#T>R^9Ay^gXg-CFDogNqcHI|>@{Un~t?_%%plu*jeU~`d) zkT|K1$G(8GRIFtCdzH*TU;TBQ@UC`Wt;qo3{ClyVNji!Y|m>)tDBH$mA`JfrnB zyq5;ze-lm!+gWBWa_geki{??b+XIZKQ(7!>5=1xh9r%9U*THx5)?+a`@<0=0Wc-n_ zN-ChCjec*F6(u;hp{pWU?nc}$ym_sf$C1`)^x`E;oRV8?ekAwmyIf(TDvN+=%U^u5 z<}6pNy1(o;yt@(1e*K=C0o_I}o^~P2t}g<{1k*oPGQCT`F}!|JKof15;H~j84>4aJ z(We)FNJ{Azma#F;d9TnjJ_C!=V^bpm?{}ojiQKe~!(%V$ST%>o3}$NQ?fTJDbKdLT z8uR#ti;Y=?FcloqO^C9j@4!51alJde zf!NZj(A}Np7Du_J2;Hsn%fvS!p|#O{-}F%^kMF%;&U=~fhK7TQYqrd*B~5_b)nL8} z!fYdA$pU?$lWC zn;SVSV$1zzmqk4q^0aX+`jpWE%U>RmdOUtWPh~E~#n2x7?tJUQ+C|Eyu3UpeMt`_^ zKga0~+QZnY0-bRY3$*J!Hn(0V2ucTyIWcZ1P=6V!_&O?|qm?T12{}MYIuK8XD=AZjqAi zuAv*Gd+3g#Yl!#w#OM3`)_Tt$18ask+~=Hq@4WW40l}>N`t{y~S&_+0n)b%$YN)2z z^_nqRvcc@>)snT&!>ge6?k}nK4={1Ydv|7XXR0mN&Ewyup%M#npAP7$;l&6 zwr!UQur%(S8H3si=9@Oc6lxiU)*c#CUw(e7E|sGZe$U7Wx_Qg^oQaF+$SKrsP1f~D zTwF&e%&q^@tszel2|~!rTYWF+!h70r9n|Ns_0GoOPmgmC73KQKlS;_-=jpYWP1VGk`4FJ1^bhur3Mlb2 z!p;E5X{FgH)$OJA!o%-YI~EPj(pMk0g^h(Pl(qakQJHtAp+DXoxbhJ4tnfK7S4@qQ zqf1pDa}MWFZBC4$K2(O{j|ex zvkK!tH@>R39+h6yy1*yr(MZNbzwWCVW{8TXdm;Qv_71ha-1nie->)b9C2- zqhj<+JR!t#JXQgHu)HZ#;3STv;h8Jw2?8p-2wFJ&_!S-X8v$JVNwmzg*|ep(xD?dJ zM^^fFroZ@IbB59j=bQ^hvgTk9!$y+^-puR>QQSNoOARM%TU@5q3-!06MbL96O78Sy z1EEnF?sipU)q-lg-G~nT*!V0YSuiwsTZN27Qz$O?WNPn{j%6PG#r@YB zGVL;3!)$*`CD1zA+Z{Uoan<W0(>M6SiEWhEAp=Dwyi$h`UK zIRS@4@ozQA^jg^W-}LcRBoJTAtMp&z(7v9Xbgv0nDl4O<<`hqY%-26{4*#<2nIE7f zj5FCFj+!%+E@{sU=uU&-D&NH&PwyhvHKF>wiGaN~NIcjX$Ji{j2lPBFL1}3e+;t_U z)3*CV?PX+Juo|Z5yAWEY@k~h=c3oIIeFNR#*Z0b!L zWwvLswcZ^qX`(Z4Qv4<~bH6BG_uVK&fzMFhPAy1~^!dMy-BfI^%-(?2T9HfS9Z>_& zV;Yp$z~T1d(T&)91GHV4Gof1;D`x0vzon9A`N7kmS`DIDv)dSL<;w5ld94$IX<2-R zN2Mf7#bE?~MO$xBkIxMSqk~ARoOILt?nDRqNJ%xT42?G7*(a}QDTcOlNSh;U&#N2< zdwz4FOt-o&A!CqYn8OQ8M4W;>0}$L;$zYwdsoNia-`&I@L_xT&zbiqHL~)a8y40nn z+s^cd92uc1Qrx>arqr|sZ#g|u6fq&yTqp|#rhE@FHSW)@&KOaw@ceb;AD9Xf0^|rt zCt6mkr?c_3S!~6QBi$oaP4ixG_=i6l$3ANClin9(FOyYrojrySKaFL}v&Wg2fx~jJ9oyxGyxjxYM+cq4OZ|LPflzrNne7`&< z6?sy6Gycx={pd%e71OSois}n4=bAh5U)MSSxfgHM}X%<)uzJ8e*k!pxhEY|%y>8bSeFJgDD-*~e!I$KDm;zKXiV?A&^ z)80JHpl(oB#gu-cH?qKC(~hnieFhP&59Xv^s5vhxB<9Pf{2_EmuQri^%wNj0A{qzb zimoKb3{~{u`?Z+k?j)`O(n_FZiZD0SnN+yVG^?~oBt;w2KRiuAJWchj$gt5t{t4a0 zak)w{2jLlx9LT7P@nFn$uF{$An4_2xYp1nO6>u~3*s#|-7A5Boieb%>uIip??D8k| zKVAsJY&2vUO}X)?gI4bk9qfVYj#qMQteKZtXRDt{t#zBHM>tqn`Arnmvbs3o{j@DA zsb?i4VbyOLe(<8r^D5Kh;c$knuO!a9?Tj~8e5dpL*t}WL0zn5J&ai9F^ix-^(()-PI9M$A%ic{0aL-6o za(Y!Vm62$$I@Fq9cNh-F?s`(Mq&|>vt<=S;L<3v@yq5W%p%wgMLQht|-Cv;J_V4(9 zoc#|Hva+&hzje)S#*rvT!R)g1o#^Ff?wj6cZdP+7xOe>Z?=D`SJ!~o@8zd*7YoA=Nw5|iQc4Og_Ecn828|BJ zC+YH|uLa~=+oP1r;M@?LvTti3Yml9t3%UbWFP`T>FS>)^r5kQ?Z`eyw$7XKDRTl={ zZFcgdrK}-^)l~{{p*XpR7^4HB&$1^cou9Ftov%Nu$gC3J$6zvKTCe5mu^DTPzEovR z3g_~~7~}AUMC+C5uf`#0m!59s@gE|xvQ3N*`!9<OVd8O? zC$o(3gY(gQF(wA>-N2 z+~9$0qZN=O+a+?4427qmgzQ%eISxq89EiU7wgMr#!mG))n5j7M({UJqYhf3O^BGap zePigqcnm?IFpb8_!&TKj0%hD?_XceFKf4aRq$9%1|*%GlYCx*Pz^}{FggekModil<_zj9?Z zCWX#VVJ))MnJthvl?CcMz3Mn~?_a`?RG3%&eE-91U+k+I$}SO&?GiB_jYp*lR&l{a z?za3QV&szeD9XnIk!-~WnO!GI?VF%-Y-93{Yj7cDQ?buo)Seh~*j_w>5vaMO^ZH2e z_u8D}LC@gAJh`(T87Y5YhMuD7uF{$uTgc@f6bd-DC8A^-NJ(+%f!Jk$juu2ND{a}ve!sMe86e$sWX*vRlQ^! z$Dh`?8!8xQ?dI+;DOvccKs^xDs;TQ)qWHXNV$LORx@Vk~+j$DwDGP#yo(+}4n8)m!I#3XJ`l)$OJx`81W=I9qA$4pmX5H@+>gr^0tG$u`xN$%UV6oIWY5Aw5 zF)JTa-{r$GtF%U2KI z#^p_ktiZ8NkH=d4fSt~znnHK;fEkP+I@U+@VZ?k^h-us&5*mEli+E>stA2!1&lgPm zDDtgIr1tH{9F1nld;+A`!gk7kGHVDEqy%|9s6c9My<+zBkk3hbvciF-NL2OBX!NPc z)b>xE6V~_K$kKU_#fIWUdT(jjR@42|41*ub3%Lz%T?x+;_$KAK!-_*)hz1ml?+mCy zE>K|M(*_>S2Spi~0yGj>#iGuO3w%Y4TOHV{EotvRA~TdTt@p{A;vvYIjV*rRd*$`6 zi3tDfJ)*wxtq}nW`138)$Wx@=R*1{H5Ayk=8@EZ7g_o#PX$Du)@0Ww1hw2+1jSIWs zfy`ZfOgnE&x6#i=`kbo>Af~hVAk<@h&d!p@G4-t{fpKlcw8+PpHLWPWlW?Ui@y;m^ zEOXzWG3UyReBec1eiShWcAXStDI5 zOjN>~)H6993gyZOnBP^B>|p9)z+gynre+PEPlHc*{7Fs*(o0$+2kDZ5`edwW(H4s+ z4b>}IY)bU#HxG#s^d&(zUo$p^FwSjmKA8RGXN@y1mN*0v5$bqG+#YDiyR=h@x$}a0 zqXu-HcI467Nn7UVjyNS<;H3F?8GdDouoHF~)g3dyI`E)|%FGabL!u#rjt|P(+TrnTg;!<4vOJzu zL4>1Sl?4vZF;3dL_9qCtnyYa}_2vcsh;TJnlgIQ~3Qck{f8C#3bBA~Vx+ ziB^u_Jk+=yCdu|@-iVnsMK}Tf4IK$SZvr#cCsv0=?4b^!&cvOXIWMzoA zK8gX}yQf5=ej2@RlMEbOY4xNZhU}aD;#H0@$hv>!e|m}3OeI%-7o#lB?9jUg6coB7 z@uk8qJ2~h>H)Re)=xzP6TZg=?F=$4n8@~B@9FvQM;)@f`j0A(uH4S?|!w(N7{J$k9 z>{&ddyp+biG?I#@7N^TAcbawF(-os@A1$uYhK*Y#$V5Uwjwtwe8b@QnL2I%FW)F#s zb~yB|*ssw@;V(9zkiu;v$cMoO&oo6U>7M1yg=*2DaQbo5A3k4V#KTF%LN!41LafVT zak(Kp$7n;q7R28$a#KR`AUXL>i(9iZlY`#A&Pr%@)~FGV8S=t#?d6@<_u#sc?Z!D1 zTr*vdC(@8+mdFbKdlEi(6mc(uArX~Pmn@j$vtsy08)@fkdjd?ktLx+SO$5VUyvM7I zYrnc|k}nnaSx-9rdY{#i+v3ugelofmiHCqCeMD=IERWM+?w`Yneur=Wsc=h4&Eo(q z5(q#ejN_Es;ZhT^55NP$2kISsm(xli*`+MKA~1_iO-=1_C(U_DT*QjldXz;kN~{Y? zmG*Z>D9W-#PSTHJYiFpYLb$WJdC+GZL5y1 zhm1fXrGK%d>Rk})1NTJZMreg(YuwXI zk`npzwESC?7R6qL?r8bKKDpkdD~JoJaXsfv8ucEQSia#&CNBFpmh(n8R`v8Da;i%S zv!@B%tw~2E`8FB9Ev5z5^K3`^@c~+;TF&4l49&gS$V4Qmvyc&W)^PsxjVd_b+$2ubX}CwkXE8C7>dVKZgLY&)`|FK!FR=s z^`;3ajmx*lDb3EGIHu^b(&PsFEqZ-Nvd1az*2k3t#hoDrt2>>InnTYW(*8X$E!iZ} zP!I>*mdd-NG_hlx^!D!;u&T{nh~^m=IfjQboz_}D!R+9ZBrbAKwwar`lUkNaU~R2U zi8~z`d;Fs@Xr@i{dQeo`+*?tU3e`(V$Qm)i z+q?2u4Q@FH=aLjYx42oz^fVdHwK5g#xk;#e>z_*eoh+X;+o9IcLZ#8!^KKQz8U3t4 z6f>MI82~IDZZ|UANHnKhJ&Mnq9vJ5J9lY6@kZW!$Y=!xmWVUD#B;oHxurQwDZN<0@ z5W;?wvTC$_>(fOj#rCun&XNp&PBB#F!4%&5ZA3wTFk|YQfWeMUlpO&EYNg)N{P}7g zOH!3AJf9TE{+(D*$^4ZWHYad_x-kKqpVYwMFW4U<6M)oJr|RtGt5=3VpX(n0hUhT_ z8R+nS(b11cv#EJ{wE;PH>#6Y%dtFB-b- z!;UiAqOL4^)GaWJJQ-_M;AZivwbq}zdwJ9%5K5?#P_<7T0~vV4_%%JfG2%0T79b$& zzRuZg`lC8Jt;;N_s`i1aGD3%?^#gb|**R&gih;r#%oK#E3>%xaPHt{>#tX>xX-HaM zNO;!b8kMfBEw#b8LIufg^N9Pg5aEM=74vb(T@Z5Au7?l=kX9@>-K_wrtO{Uw3V=an zNi4GLcLxLTm1h7I5$LC8om*SAC8-rDkL{CG)1lnsMe|Cm)(x*^13_WI=#y^z3~w{K zIaD@^uro$y_uV4?8Sm46rbV~y^qG2IJ{)SBNrg*| zldqJG^bNhl^PZpnPoK3VPT|!JzZh_PB$n=~M9M1@g7|SMKJL>=m}44nnAT~|Ep);_ zf5afBc6#2MI1}K_2k>Z@2MvuYBLI^ZAPsI+3#(G|VF?~H0I)m=fUIIgCUjQ%y!=ik zza^T~UlHcI)!tq|nLz*#!;yN&%8)-Io~?0h z{!@0qEzoCNjI{-XOTKq5v!^_{79{x4!F`D!njxj6@S0#mMM|nP9yfxiLHG}CaeKS( z>8U*h1%+nwgLEC!BWGA`+qkDN8%4jhzVdw{6qUD2u z&@bL56C>+!D{mj+R7^(=8YqP9Mh2ef^+rUN(~$4WEh8fw?-7V^mjw`95VpsL>;w+M?8aX~<# zZX|t@e+a%Fl9UpB6GC6xi#nk%u~Lcj$utPRjw6WyR?1k}-C4m`EOz$*m~ec2bIaQ% z^^N)ZS}`90Dt1sb<&FSQ?Jh7-1AOj(<~1ZXYZhi_ArlX>>%|)Bur?L1luUOe09u1JF^%-7t$pb7i>bs!l7{E_WTQW{-jvkH??{GYpm&p;>a$3wh922*0%L* zE_Bm;e|h0AulDdA`0LEmhOu1{Mq1h#ktTGX!+SJCfcxPvMNj_v@^oYU?QlC-?Bwu^ z_f-|payC@{MH+nTZ?V5f}j()6PXN}e-vG?eQX8OwH!lD<`u@zy5EbQZ`zz_o1bQ~3CCjE^-wIJo-r$B+1?RT}Mjf9^g0 zpR>&WwJ365B#2_1;6)-Pk{&v64hFkD4syjApjr42xqJu#)1RvF=BB_G8CU!m=d$MJ zG(h1vtaV`k9~VJ!{<@=6zjP$KTK_&>M4*oiFz5!1o+>`43@v!eo}g1})Sr_pOeVat zFc{nK0-e$y)zbnvh6TZwtN=;p2NOA|97;P|+aJId1gJ+9K{|gWR3;@4$!ISP%7lLf z`VisAT)sv83p4Q7^6_Jea{d%Ss)@;vH2?O({(0R%%lf-I@@KRCb@buqtA4C2P z3G&y%|Mw#B1oe*;{^ziHiiz-dV&~rzExve;@R#KNy#(O3;f>?heWdCDp!K-M3I9J| z27Wy_%ELx*0Z@e{VL&VPKS#-r=H}*i<^c0(2hbf0&<=6~%vv}{k7t?wV_!9>xKSQ1 zIF8T1&FETwjM*d`?CblX*X9L)XV!MqU7{7x(SxMVex+{#^8~*10_3*l0yYExx!A=t zD^zcm>G;G%6;;*guT=Q>2?)n4?Y8GHu}KgpC&%5FcE)qDfTmvn;|S
M&sEF=L2 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趣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�&{nuWe0s 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 V4Kj0H+t^)8<|em|s}0>B{RgJgIe!2E literal 41676 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 RU)AS$E*n}v%Jg0D{TG#2>dpWF diff --git a/query-languages/dax/media/dax-queries/dax-evaluate-orderby.png b/query-languages/dax/media/dax-queries/dax-evaluate-orderby.png index 55c7165828b8e814da713a8d4c3c7296390c8840..4cfddce35f27ea5da49b55d1658429d662182a6b 100644 GIT binary patch literal 220648 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

DYJ9&>|*bB`*#dl6Er%@^pJtR227_BIsQ` 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 literal 50457 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 Hzj*!+9(7p@ diff --git a/query-languages/dax/media/dax-queries/dax-evaluate-startat.png b/query-languages/dax/media/dax-queries/dax-evaluate-startat.png index 4df56d86f9b23a255b70597983285dc3f519496d..2f6e9df72c5a740ddcdfb272ee67127f6b45ef94 100644 GIT binary patch literal 209867 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 RpY579wx{f11nV2o{{=NpOCJCL diff --git a/query-languages/dax/media/dax-queries/dax-evaluate-topn.png b/query-languages/dax/media/dax-queries/dax-evaluate-topn.png new file mode 100644 index 0000000000000000000000000000000000000000..1629aece18e15b8a54cb9f7dcb3985ad407ce74a GIT binary patch literal 201465 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%0DJChHY^Y6Yc~tpcJRi%0j%l+O$+=DG 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%0A&n=gYmFW{iqW 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'of` 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

-)7D>$OfI5kTed54Hwl=U6k4H7_&%a{C<_v?Xtc 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 G{{H|=(<}-A From 8bb9efdc8e9799ad1771be5cfdcf9a9cf7fc0265 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:21:33 -0800 Subject: [PATCH 658/934] Add DAX query examples and explanations --- query-languages/dax/dax-queries.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 8e5a69d10..44b83bc07 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -78,11 +78,13 @@ EVALUATE 'Date'[Month Name], 'Date'[Month of Year], 'Product'[Category], + // Optional filters FILTER( VALUES('Product'[Category]), [Category] = "Clothing" ), + // Measures or explicit DAX formulas to aggregate and analyze the data by row "Orders", [Orders], "Avg Profit per Order", DIVIDE( @@ -90,6 +92,7 @@ EVALUATE [Orders] ) ) + // DAX queries do not use sort order defined in Power BI, // sort by columns must be included in the DAX query to be used in order by ORDER BY 'Date'[Month of Year] ASC @@ -101,6 +104,22 @@ Returns clothing orders and average profit per order by month, in ascending orde TOPN does not choose the specified number of rows to return based on the sort order specified in ORDER BY. Instead, TOPN has its own syntax to optionally specify a sort before the top 100 rows are return. ORDER BY only sorts the result table returned by TOPN. +```dax +EVALUATE + TOPN( + 100, + 'Sales Order', + // The way the data is sorted before the top 100 rows are selected + 'Sales Order'[SalesOrderLineKey], ASC + ) + // The way the data is sorted for the results + ORDER BY + 'Sales Order'[Sales Order] ASC, + 'Sales Order'[Sales Order Line] ASC +``` + +Returns the top 100 sales orders sorted by SalesOrderLienKey ascending, then sorts the results first by sales order, then by sales order line. + ![DAX Evaluate order by with topn statement](media/dax-queries/dax-evaluate-topn.png) ### START AT (Optional) From bd91f0e8f0ef162d773866593000e6109bbebd45 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:24:35 -0800 Subject: [PATCH 659/934] Update DAX function links to .md files --- query-languages/dax/dax-queries.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 44b83bc07..5dac9c835 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -14,9 +14,9 @@ Before learning about queries, it is important you have a solid understanding of DAX queries have a simple syntax comprised of just one required keyword, EVALUATE. EVALUATE is followed by a table expression, such as a DAX function or table name, that when run outputs a result table. Table expressions that output a result table include: -1. Common DAX functions that output a table, such as [SUMMARIZE](summarize-function-dax), [SUMMARIZECOLUMNS](summarizecolumns-function-dax), [SELECTCOLUMNS](selectcolumns-function-dax), [FILTER](filter-function-dax), [UNION](union-function-dax), [TOPN](topn-function-dax), [ADDCOLUMNS](addcolumns-function-dax), [DATATABLE](datatable-function-dax), and many others, work with EVALUATE to output a result table. +1. Common DAX functions that output a table, such as [SUMMARIZE](summarize-function-dax.md), [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md), [SELECTCOLUMNS](selectcolumns-function-dax), [FILTER](filter-function-dax.md), [UNION](union-function-dax.md), [TOPN](topn-function-dax.md), [ADDCOLUMNS](addcolumns-function-dax.md), [DATATABLE](datatable-function-dax.md), and many others, work with EVALUATE to output a result table. 2. Tables in the model when referenced by name work with EVALUATE to output a result table showing the data in the table. For example, **EVALUATE ‘Table name’** can be ran as a DAX query. -3. Measures in the model or any DAX formula, which return a scalar value, work with EVALUATE to show the value as a result table when enclosed in curly braces. For example, **EVALUATE {[Total Sales]}** or **EVALUATE {COUNTROWS(‘Sales’)}** can be ran as a DAX query. These are called [table constructors](table-constructor). +3. Measures in the model or any DAX formula, which return a scalar value, work with EVALUATE to show the value as a result table when enclosed in curly braces. For example, **EVALUATE {[Total Sales]}** or **EVALUATE {COUNTROWS(‘Sales’)}** can be ran as a DAX query. These are called [table constructors](table-constructor.md). There are several optional keywords specific to DAX queries: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, and COLUMN. @@ -44,7 +44,7 @@ EVALUATE 'Sales Order' ``` -Returns all rows and columns from the Sales Order table, as a result table. This can be limited with the use of [TOPN](topn-function-dax) or [FILTER](filter-function-dax), and sorted with ORDER BY. +Returns all rows and columns from the Sales Order table, as a result table. This can be limited with the use of [TOPN](topn-function-dax.md) or [FILTER](filter-function-dax.md), and sorted with ORDER BY. ![DAX Evaluate statement](media/dax-queries/dax-evaluate.png) From f92a0a7b930a1d29de7620f699f1ca9a68e8d423 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:25:55 -0800 Subject: [PATCH 660/934] Fix broken link in DAX queries documentation --- query-languages/dax/dax-queries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 5dac9c835..ed16d0b31 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -14,7 +14,7 @@ Before learning about queries, it is important you have a solid understanding of DAX queries have a simple syntax comprised of just one required keyword, EVALUATE. EVALUATE is followed by a table expression, such as a DAX function or table name, that when run outputs a result table. Table expressions that output a result table include: -1. Common DAX functions that output a table, such as [SUMMARIZE](summarize-function-dax.md), [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md), [SELECTCOLUMNS](selectcolumns-function-dax), [FILTER](filter-function-dax.md), [UNION](union-function-dax.md), [TOPN](topn-function-dax.md), [ADDCOLUMNS](addcolumns-function-dax.md), [DATATABLE](datatable-function-dax.md), and many others, work with EVALUATE to output a result table. +1. Common DAX functions that output a table, such as [SUMMARIZE](summarize-function-dax.md), [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md), [SELECTCOLUMNS](selectcolumns-function-dax.md), [FILTER](filter-function-dax.md), [UNION](union-function-dax.md), [TOPN](topn-function-dax.md), [ADDCOLUMNS](addcolumns-function-dax.md), [DATATABLE](datatable-function-dax.md), and many others, work with EVALUATE to output a result table. 2. Tables in the model when referenced by name work with EVALUATE to output a result table showing the data in the table. For example, **EVALUATE ‘Table name’** can be ran as a DAX query. 3. Measures in the model or any DAX formula, which return a scalar value, work with EVALUATE to show the value as a result table when enclosed in curly braces. For example, **EVALUATE {[Total Sales]}** or **EVALUATE {COUNTROWS(‘Sales’)}** can be ran as a DAX query. These are called [table constructors](table-constructor.md). From 77789cb12726f54c655a6cd843d1ab00ad7b5e19 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:27:29 -0800 Subject: [PATCH 661/934] Refactor DAX queries documentation for clarity --- query-languages/dax/dax-queries.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index ed16d0b31..247143a38 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -5,7 +5,11 @@ ms.topic: conceptual --- # DAX queries -Reporting clients like Power BI and Excel execute DAX queries whenever visuals display in a report, or a field added to a table, and these DAX queries adjust when a filter is applied. The [performance analyzer](/power-bi/create-reports/desktop-performance-analyzer) in Power BI Desktop can show you these DAX queries and even run them in the DAX query view. By using [DAX query view](/power-bi/transform-model/dax-query-view) in Power BI Desktop, [Write DAX queries](/power-bi/transform-model/dax-query-view#dax-query-view-in-web) in Power BI service, you can create and run your own DAX queries. With [Microsoft Fabric](/fabric/get-started/microsoft-fabric-overview), you can increase your productivity with Fabric [Copilot to write DAX queries](/dax/dax-copilot) in DAX query view of Desktop or web. Other tools such as [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), also allow you to create and run DAX queries. DAX queries return results as a table right within the tool, allowing you to quickly create and test the performance of your DAX formulas in measures or simply view the data in your semantic model. INFO and INFO.VIEW DAX functions can also get information about your semantic model, such as a listing of tables, columns, measures, and much more. +Reporting clients like Power BI and Excel execute DAX queries whenever visuals display in a report, or a field added to a table, and these DAX queries adjust when a filter is applied. The [performance analyzer](/power-bi/create-reports/desktop-performance-analyzer) in Power BI Desktop can show you these DAX queries and even run them in the DAX query view. + +By using [DAX query view](/power-bi/transform-model/dax-query-view) in Power BI Desktop, [Write DAX queries](/power-bi/transform-model/dax-query-view#dax-query-view-in-web) in Power BI service, you can create and run your own DAX queries. With [Microsoft Fabric](/fabric/get-started/microsoft-fabric-overview), you can increase your productivity with Fabric [Copilot to write DAX queries](/dax/dax-copilot) in DAX query view of Desktop or web. Other tools such as [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), also allow you to create and run DAX queries. + +DAX queries return results as a table right within the tool, allowing you to quickly create and test the performance of your DAX formulas in measures or simply view the data in your semantic model. INFO and INFO.VIEW DAX functions can also get information about your semantic model, such as a listing of tables, columns, measures, and much more. Before learning about queries, it is important you have a solid understanding of DAX basics. If you haven't already, be sure to check out [DAX overview](dax-overview.md). From 52bdd174c4db4275b0300ab2e14c47e284b79036 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:32:17 -0800 Subject: [PATCH 662/934] Update image syntax in DAX queries documentation --- query-languages/dax/dax-queries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 247143a38..44212f4a9 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -50,7 +50,7 @@ EVALUATE Returns all rows and columns from the Sales Order table, as a result table. This can be limited with the use of [TOPN](topn-function-dax.md) or [FILTER](filter-function-dax.md), and sorted with ORDER BY. -![DAX Evaluate statement](media/dax-queries/dax-evaluate.png) +:::image type="content" source="media/dax-queries/dax-evaluate.png" alt-text="Screenshot showing how to use EVALUATE for a DAX query in DAX query view of Power BI Desktop." lightbox="media/dax-queries/dax-evaluate.png"::: ### ORDER BY (Optional) From 0a688b026bb2833eecdcee8d02baffa9752b19db Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:38:57 -0800 Subject: [PATCH 663/934] Update image syntax in DAX queries documentation --- query-languages/dax/dax-queries.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 44212f4a9..62a8e3518 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -104,7 +104,7 @@ EVALUATE Returns clothing orders and average profit per order by month, in ascending order by month, as a result table. -![DAX Evaluate order by statement](media/dax-queries/dax-evaluate-orderby.png) +:::image type="content" source="media/dax-queries/dax-evaluate-orderby.png" alt-text="Screenshot showing how to use ORDER BY for a DAX query in DAX query view of Power BI Desktop." lightbox="media/dax-queries/dax-evaluate-orderby.png"::: TOPN does not choose the specified number of rows to return based on the sort order specified in ORDER BY. Instead, TOPN has its own syntax to optionally specify a sort before the top 100 rows are return. ORDER BY only sorts the result table returned by TOPN. @@ -124,7 +124,7 @@ EVALUATE Returns the top 100 sales orders sorted by SalesOrderLienKey ascending, then sorts the results first by sales order, then by sales order line. -![DAX Evaluate order by with topn statement](media/dax-queries/dax-evaluate-topn.png) +:::image type="content" source="media/dax-queries/dax-evaluate-topn.png" alt-text="Screenshot showing how to use TOPN and ORDER BY for a DAX query in DAX query view of Power BI Desktop." lightbox="media/dax-queries/dax-evaluate-topn.png"::: ### START AT (Optional) @@ -161,7 +161,7 @@ EVALUATE Returns all columns from the Sales Order table, in ascending order by Sales Order, beginning at SO43661. Rows before this sales order are not included in the result table. -![DAX Evaluate order by Sales order number statement](media/dax-queries/dax-evaluate-startat.png) +:::image type="content" source="media/dax-queries/dax-evaluate-startat.png" alt-text="Screenshot showing how to use ORDER BY and START AT for a DAX query in DAX query view of Power BI Desktop." lightbox="media/dax-queries/dax-evaluate-startat.png"::: ### DEFINE (Optional) @@ -225,7 +225,7 @@ EVALUATE Returns the table defined in the DAX query to show unbought products with an additional defined column referencing defined variables. A measures is also defined and evulated counting the rows of unbought products. -![DAX Evaluate with define defnitions](media/dax-queries/dax-evaluate-define.png) +:::image type="content" source="media/dax-queries/dax-evaluate-define.png" alt-text="Screenshot showing how to use DEFINE for a DAX query in DAX query view of Power BI Desktop." lightbox="media/dax-queries/dax-evaluate-define.png"::: ```dax DEFINE @@ -253,7 +253,7 @@ EVALUATE ``` Returns a table evaluating three defined measures to show the results by fiscal year. All measures also exist in the model, and Orders per Customer is modified in the DAX query. -![DAX Evaluate with measure defnitions](media/dax-queries/dax-evaluate-define-measures.png) +:::image type="content" source="media/dax-queries/dax-evaluate-define-measures.png" alt-text="Screenshot showing how to use DEFINE MEASURE for a DAX query in DAX query view of Power BI Desktop." lightbox="media/dax-queries/dax-evaluate-define-measures.png"::: ## Parameters in DAX queries From 74ef0787c0df1c9e1ea2145ad1ec2095aaa852a8 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:44:31 -0800 Subject: [PATCH 664/934] Clarify DAX query view usage in Power BI --- query-languages/dax/dax-queries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 62a8e3518..df765d3e6 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -7,7 +7,7 @@ ms.topic: conceptual Reporting clients like Power BI and Excel execute DAX queries whenever visuals display in a report, or a field added to a table, and these DAX queries adjust when a filter is applied. The [performance analyzer](/power-bi/create-reports/desktop-performance-analyzer) in Power BI Desktop can show you these DAX queries and even run them in the DAX query view. -By using [DAX query view](/power-bi/transform-model/dax-query-view) in Power BI Desktop, [Write DAX queries](/power-bi/transform-model/dax-query-view#dax-query-view-in-web) in Power BI service, you can create and run your own DAX queries. With [Microsoft Fabric](/fabric/get-started/microsoft-fabric-overview), you can increase your productivity with Fabric [Copilot to write DAX queries](/dax/dax-copilot) in DAX query view of Desktop or web. Other tools such as [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), also allow you to create and run DAX queries. +By using [DAX query view](/power-bi/transform-model/dax-query-view) in Power BI Desktop or [Write DAX queries](/power-bi/transform-model/dax-query-view#dax-query-view-in-web) in Power BI service, you can create and run your own DAX queries. With [Microsoft Fabric](/fabric/get-started/microsoft-fabric-overview), you can further increase your productivity with [Copilot to write DAX queries](/dax/dax-copilot) in DAX query view of Desktop or web. Other tools such as [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), also allow you to create and run DAX queries. DAX queries return results as a table right within the tool, allowing you to quickly create and test the performance of your DAX formulas in measures or simply view the data in your semantic model. INFO and INFO.VIEW DAX functions can also get information about your semantic model, such as a listing of tables, columns, measures, and much more. From 8c3df412b5485750d21a33bff6aac043dd5ca6d6 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 13 Dec 2024 08:20:39 -0800 Subject: [PATCH 665/934] Fix typos in DAX query documentation --- query-languages/dax/dax-queries.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index df765d3e6..517f6d234 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -165,7 +165,7 @@ Returns all columns from the Sales Order table, in ascending order by Sales Orde ### DEFINE (Optional) -The optional **DEFINE** keyword introduces one or more calculated entity definitions that exist only for the duration of the query. Unlike EVALUATE, there can only be one DEFINE block with one or more definitions in a DAX query. DEFINE must precede the first EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec).Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included in a query. +The optional **DEFINE** keyword introduces one or more calculated entity definitions that exist only for the duration of the query. Unlike EVALUATE, there can only be one DEFINE block with one or more definitions in a DAX query. DEFINE must precede the first EVALUATE statement and are valid for all EVALUATE statements in the query. Definitions can be variables, measures, tables[1](#not-rec), and columns[1](#not-rec). Definitions can reference other definitions that appear before or after the current definition. At least one definition is required if the DEFINE keyword is included in a query. **DEFINE MEASURE** is a common scenario to build new measures or edit existing measures in a semantic model. When the measure already exists in the model, the DAX query will use the measure DAX formula defined in the query. This is helpful for testing measures with a DAX query before updating the model. @@ -223,7 +223,7 @@ EVALUATE {[Unbought products]} ``` -Returns the table defined in the DAX query to show unbought products with an additional defined column referencing defined variables. A measures is also defined and evulated counting the rows of unbought products. +Returns the table defined in the DAX query to show unbought products with an additional defined column referencing defined variables. A measure is also defined and evaluated to count the rows of unbought products. :::image type="content" source="media/dax-queries/dax-evaluate-define.png" alt-text="Screenshot showing how to use DEFINE for a DAX query in DAX query view of Power BI Desktop." lightbox="media/dax-queries/dax-evaluate-define.png"::: From a3adad1840007c71064e6c898b5b0d8ee4e09430 Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 13 Dec 2024 13:49:37 -0800 Subject: [PATCH 666/934] Replace with `parameter` formatting --- query-languages/dax/convert-function-dax.md | 2 +- .../dax/crossfilter-function-dax.md | 2 +- query-languages/dax/currency-function-dax.md | 6 ++-- query-languages/dax/dax-glossary.md | 2 +- query-languages/dax/filter-functions-dax.md | 2 +- query-languages/dax/find-function-dax.md | 2 +- query-languages/dax/first-function-dax.md | 2 +- .../dax/firstnonblankvalue-function-dax.md | 6 ++-- query-languages/dax/last-function-dax.md | 2 +- .../dax/lastnonblankvalue-function-dax.md | 6 ++-- query-languages/dax/linest-function-dax.md | 2 +- query-languages/dax/matchby-function-dax.md | 2 +- .../dax/movingaverage-function-dax.md | 4 +-- query-languages/dax/next-function-dax.md | 2 +- query-languages/dax/offset-function-dax.md | 28 ++++++++-------- query-languages/dax/orderby-function-dax.md | 2 +- .../dax/partitionby-function-dax.md | 4 +-- query-languages/dax/previous-function-dax.md | 2 +- query-languages/dax/range-function-dax.md | 4 +-- query-languages/dax/rank-function-dax.md | 22 ++++++------- query-languages/dax/rankx-function-dax.md | 2 +- query-languages/dax/rownumber-function-dax.md | 22 ++++++------- .../dax/runningsum-function-dax.md | 2 +- query-languages/dax/search-function-dax.md | 2 +- .../dax/selectcolumns-function-dax.md | 4 +-- query-languages/dax/window-function-dax.md | 32 +++++++++---------- 26 files changed, 84 insertions(+), 84 deletions(-) diff --git a/query-languages/dax/convert-function-dax.md b/query-languages/dax/convert-function-dax.md index c05ee9ed9..20e0f6ae1 100644 --- a/query-languages/dax/convert-function-dax.md +++ b/query-languages/dax/convert-function-dax.md @@ -23,7 +23,7 @@ CONVERT(, ) ## Return value -Returns the value of \, translated to \. +Returns the value of `Expression`, translated to `Datatype`. ## Remarks diff --git a/query-languages/dax/crossfilter-function-dax.md b/query-languages/dax/crossfilter-function-dax.md index f648eeea7..0a0d4c107 100644 --- a/query-languages/dax/crossfilter-function-dax.md +++ b/query-languages/dax/crossfilter-function-dax.md @@ -20,7 +20,7 @@ CROSSFILTER(, , ) |--------|--------------| |`columnName1`|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| |`columnName2`|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| -|`Direction`|The cross-filter direction to be used. Must be one of the following:

`None` - No cross-filtering occurs along this relationship.

`Both` - Filters on either side filters the other side.

`OneWay` - Filters on the one side or the lookup side of a relationship filter the other side. This option cannot be used with a one-to-one relationship . Don’t use this option on a many-to-many relationship because it is unclear which side is the lookup side; use OneWay_LeftFiltersRight or OneWay_RightFiltersLeft instead.

`OneWay_LeftFiltersRight` - Filters on the side of \ filter the side of \. This option cannot be used with a one-to-one or many-to-one relationship.

`OneWay_RightFiltersLeft` - Filters on the side of \ filter the side of \. This option cannot be used with a one-to-one or many-to-one relationship.| +|`Direction`|The cross-filter direction to be used. Must be one of the following:

`None` - No cross-filtering occurs along this relationship.

`Both` - Filters on either side filters the other side.

`OneWay` - Filters on the one side or the lookup side of a relationship filter the other side. This option cannot be used with a one-to-one relationship . Don’t use this option on a many-to-many relationship because it is unclear which side is the lookup side; use OneWay_LeftFiltersRight or OneWay_RightFiltersLeft instead.

`OneWay_LeftFiltersRight` - Filters on the side of `columnName1` filter the side of `columnName2`. This option cannot be used with a one-to-one or many-to-one relationship.

`OneWay_RightFiltersLeft` - Filters on the side of `columnName2` filter the side of `columnName1`. This option cannot be used with a one-to-one or many-to-one relationship.| ## Return value diff --git a/query-languages/dax/currency-function-dax.md b/query-languages/dax/currency-function-dax.md index 372f17c72..6298e5da6 100644 --- a/query-languages/dax/currency-function-dax.md +++ b/query-languages/dax/currency-function-dax.md @@ -28,11 +28,11 @@ The value of the expression evaluated and returned as a currency type value. - The CURRENCY function rounds up the 5th significant decimal, in value, to return the 4th decimal digit. Rounding up occurs if the 5th significant decimal is equal or larger than 5. For example, if value is 3.6666666666666 then converting to currency returns \\$3.6667. However, if value is 3.0123456789 then converting to currency returns \\$3.0123. -- If the data type of the expression is TrueFalse then CURRENCY(\) will return \\$1.0000 for True values and \\$0.0000 for False values. +- If the data type of the expression is TrueFalse then CURRENCY(`TrueFalse`) will return \\$1.0000 for True values and \\$0.0000 for False values. -- If the data type of the expression is Text then CURRENCY(\) will try to convert text to a number. If conversion succeeds the number will be converted to currency, otherwise an error is returned. +- If the data type of the expression is Text then CURRENCY(`Text`) will try to convert text to a number. If conversion succeeds the number will be converted to currency, otherwise an error is returned. -- If the data type of the expression is DateTime then CURRENCY(\) will convert the datetime value to a number and that number to currency. DateTime values have an integer part that represents the number of days between the given date and 1900-03-01 and a fraction that represents the fraction of a day (where 12 hours or noon is 0.5 day). If the value of the expression is not a proper DateTime value an error is returned. +- If the data type of the expression is DateTime then CURRENCY(`DateTime`) will convert the datetime value to a number and that number to currency. DateTime values have an integer part that represents the number of days between the given date and 1900-03-01 and a fraction that represents the fraction of a day (where 12 hours or noon is 0.5 day). If the value of the expression is not a proper DateTime value an error is returned. ## Example diff --git a/query-languages/dax/dax-glossary.md b/query-languages/dax/dax-glossary.md index a3b532ac5..ff55a13a4 100644 --- a/query-languages/dax/dax-glossary.md +++ b/query-languages/dax/dax-glossary.md @@ -80,7 +80,7 @@ A model table that contains at least one measure, and has no hierarchies or visi ## Model calculation -A named formula that's used to add a calculated table, calculated column, or measure to a tabular data model. Its structure is \ = \. Most calculations are added by data modelers in Power BI Desktop, but measures can also be added to a live connection report. See [Report measures](#report-measures). +A named formula that's used to add a calculated table, calculated column, or measure to a tabular data model. Its structure is `NAME` = `FORMULA`. Most calculations are added by data modelers in Power BI Desktop, but measures can also be added to a live connection report. See [Report measures](#report-measures). ## Quick measures diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 52fe462ba..fd8107759 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -30,7 +30,7 @@ The filter and value functions in DAX are some of the most complex and powerful, |[NEXT](next-function-dax.md) | Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix. | |[OFFSET](offset-function-dax.md)|Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. | |[ORDERBY](orderby-function-dax.md)|Defines the columns that determine the sort order within each of a window function’s partitions.| -|[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a window function’s \ parameter.| +|[PARTITIONBY](partitionby-function-dax.md)|Defines the columns that are used to partition a window function’s `relation` parameter.| |[PREVIOUS](previous-function-dax.md)| Used in visual calculations only. Retrieves a value in the previous row of an axis in the visual matrix. | |[RANGE](range-function-dax.md)|Returns an interval of rows within the given axis, relative to the current row. A shortcut for WINDOW.| |[RANK](rank-function-dax.md)| Returns the ranking of a row within the given interval. | diff --git a/query-languages/dax/find-function-dax.md b/query-languages/dax/find-function-dax.md index 862ef6a95..02fa09a31 100644 --- a/query-languages/dax/find-function-dax.md +++ b/query-languages/dax/find-function-dax.md @@ -39,7 +39,7 @@ Number that shows the starting point of the text string you want to find. The following DAX query finds the position of the first letter of "Bike", in the string that contains the reseller name. If not found, Blank is returned. -Keep in mind, FIND is case-sensitive. In this example, if "bike" were used in the \ argument, no results would be returned. Use [SEARCH](search-function-dax.md) for case-insensitive. +Keep in mind, FIND is case-sensitive. In this example, if "bike" were used in the `find_text` argument, no results would be returned. Use [SEARCH](search-function-dax.md) for case-insensitive. [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 598365f77..32116b75b 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -27,7 +27,7 @@ FIRST ( [, ][, ][, reset] ) ## Return value -The value of \ from the first element of the axis. +The value of `column` from the first element of the axis. ## Remarks diff --git a/query-languages/dax/firstnonblankvalue-function-dax.md b/query-languages/dax/firstnonblankvalue-function-dax.md index 0d2c0bb20..849bc82b3 100644 --- a/query-languages/dax/firstnonblankvalue-function-dax.md +++ b/query-languages/dax/firstnonblankvalue-function-dax.md @@ -19,11 +19,11 @@ FIRSTNONBLANKVALUE(, ) |Term|Definition| |--------|--------------| |`column`|A column or an expression that returns a single-column table.| -|`expression`|An expression evaluated for each value of \.| +|`expression`|An expression evaluated for each value of `column`.| ## Return value -The first non-blank value of \ corresponding to the sorted values of \. +The first non-blank value of `expression` corresponding to the sorted values of `column`. ## Remarks @@ -31,7 +31,7 @@ The first non-blank value of \ corresponding to the sorted values of - A reference to any column. - A table with a single column. -- This function is different from FIRSTNONBLANK in that the \ is added to the filter context for the evaluation of \. +- This function is different from FIRSTNONBLANK in that the `column` is added to the filter context for the evaluation of `expression`. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index e8dfa47d7..78491e9de 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -27,7 +27,7 @@ LAST ( [, ][, ][, reset] ) ## Return value -The value of \ from the last element of the axis. +The value of `column` from the last element of the axis. ## Remarks diff --git a/query-languages/dax/lastnonblankvalue-function-dax.md b/query-languages/dax/lastnonblankvalue-function-dax.md index 82e198648..f574a449a 100644 --- a/query-languages/dax/lastnonblankvalue-function-dax.md +++ b/query-languages/dax/lastnonblankvalue-function-dax.md @@ -19,11 +19,11 @@ LASTNONBLANKVALUE(, ) |Term|Definition| |--------|--------------| |`column`|A column or an expression that returns a single-column table.| -|`expression`|An expression evaluated for each value of \.| +|`expression`|An expression evaluated for each value of `column`.| ## Return value -The last non-blank value of \ corresponding to the sorted values of \. +The last non-blank value of `expression` corresponding to the sorted values of `column`. ## Remarks @@ -31,7 +31,7 @@ The last non-blank value of \ corresponding to the sorted values of - A reference to any column. - A table with a single column. -- This function is different from LASTNONBLANK in that the \ is added to the filter context for the evaluation of \. +- This function is different from LASTNONBLANK in that the `column` is added to the filter context for the evaluation of `expression`. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index b71b7daca..3a42d067f 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -42,7 +42,7 @@ A single-row table describing the line, plus additional statistics. These are th ## Remarks -\ and the \’s must all belong to the same table. +`columnY` and the `columnX`’s must all belong to the same table. ## Example 1 diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md index e232edc47..0d48e66fb 100644 --- a/query-languages/dax/matchby-function-dax.md +++ b/query-languages/dax/matchby-function-dax.md @@ -20,7 +20,7 @@ MATCHBY ( [[, matchBy_columnName [, …]]] ) |Term|Definition| |--------|--------------| -|`matchBy_columnName`| (Optional) The name of an existing column to be used to identify current row in the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| +|`matchBy_columnName`| (Optional) The name of an existing column to be used to identify current row in the window function’s `relation`.
RELATED() may also be used to refer to a column in a table related to `relation`.| ## Return value diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 4dc2f5673..fa27d3641 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -15,7 +15,7 @@ recommendations: false [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns a moving average calculated along the given axis of the visual matrix. That is, the average of the given column calculated over the last \ rows. +Returns a moving average calculated along the given axis of the visual matrix. That is, the average of the given column calculated over the last `windowSize` rows. ## Syntax @@ -42,7 +42,7 @@ A scalar value, the moving average at the current element of the axis. This function can be used in visual calculations only. -The \, \, \ and \ parameters can be omitted. +The `includeCurrent`, `axis`, `blanks` and `reset` parameters can be omitted. ## Example 1 diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 5e21a72f7..d6fa2de09 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -28,7 +28,7 @@ NEXT ( [, ][, ][, ][, reset] ) ## Return value -The value of \ from the next element of the axis. +The value of `column` from the next element of the axis. ## Remarks diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 21db92bcd..0df8cc818 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -20,21 +20,21 @@ OFFSET ( [, or ][, ][, ][, If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. -|`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| +|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| -|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | ## Return value -One or more rows from \. +One or more rows from `relation`. ## Remarks -Except for columns added by DAX table functions, each column in \, when \ is not present, or each column in \ and \, when \ is present, must have a corresponding outer value to help define the current row on which to operate, with the following behavior: +Except for columns added by DAX table functions, each column in `relation`, when `matchBy` is not present, or each column in `matchBy` and `partitionBy`, when `matchBy` is present, must have a corresponding outer value to help define the current row on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column, then: @@ -43,23 +43,23 @@ Except for columns added by DAX table functions, each column in \, whe - OFFSET’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If all of \'s columns were added by DAX table functions, an error is returned. +If all of `relation`'s columns were added by DAX table functions, an error is returned. -If \ is present, OFFSET will try to use \ and \ columns to identify the row. -If \ is not present and the columns specified within \ and \ can't uniquely identify every row in \, then: +If `matchBy` is present, OFFSET will try to use `matchBy` and `partitionBy` columns to identify the row. +If `matchBy` is not present and the columns specified within `orderBy` and `partitionBy` can't uniquely identify every row in `relation`, then: - OFFSET will try to find the least number of additional columns required to uniquely identify every row. -- If such columns can be found, OFFSET will automatically append these new columns to \, and each partition is sorted using this new set of OrderBy columns. +- If such columns can be found, OFFSET will automatically append these new columns to `orderBy`, and each partition is sorted using this new set of OrderBy columns. - If such columns cannot be found, an error is returned. An empty table is returned if: -- The corresponding outer value of an OrderBy or PartitionBy column does not exist within \. -- The \ value causes a shift to a row that does not exist within the partition. +- The corresponding outer value of an OrderBy or PartitionBy column does not exist within `relation`. +- The `delta` value causes a shift to a row that does not exist within the partition. -If OFFSET is used within a calculated column defined on the same table as \, and \ is omitted, an error is returned. +If OFFSET is used within a calculated column defined on the same table as `relation`, and `orderBy` is omitted, an error is returned. -\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. +`reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. ## Example 1 - calculated column diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index e9a122377..e823789ea 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -20,7 +20,7 @@ ORDERBY ( [[, [, [, ]] … |Term|Definition| |--------|--------------| |`orderBy_expression`|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| -|`order`|(Optional) A two-part value of the form "\ [\]".

\ specifies how to sort \ values (i.e. ascending or descending). Valid values include:
`DESC`. Alternative value: `0`(zero)/`FALSE`. Sorts in descending order of values of \.
`ASC`. Alternative value: `1`/`TRUE`. Sorts in ascending order of values of \. This is the default value if \ is omitted.

\ part is optional. It specifies how blanks are ordered. Valid values include:
`BLANKS DEFAULT`. This is the default value. The behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
`BLANKS FIRST`. Blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
`BLANKS LAST`. Blanks are always ordered on the end, regardless of ascending or descending sorting order.| +|`order`|(Optional) A two-part value of the form "`OrderDirection` [`BlankHandling`]".

`OrderDirection` specifies how to sort `orderBy_expression` values (i.e. ascending or descending). Valid values include:
`DESC`. Alternative value: `0`(zero)/`FALSE`. Sorts in descending order of values of `orderBy_expression`.
`ASC`. Alternative value: `1`/`TRUE`. Sorts in ascending order of values of `orderBy_expression`. This is the default value if `order` is omitted.

`BlankHandling` part is optional. It specifies how blanks are ordered. Valid values include:
`BLANKS DEFAULT`. This is the default value. The behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
`BLANKS FIRST`. Blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
`BLANKS LAST`. Blanks are always ordered on the end, regardless of ascending or descending sorting order.| ## Return value diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index 203b79bb4..f08d3a6bb 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -7,7 +7,7 @@ title: "PARTITIONBY function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Defines the columns that are used to partition a window function’s \ parameter. +Defines the columns that are used to partition a window function’s `relation` parameter. ## Syntax @@ -19,7 +19,7 @@ PARTITIONBY ( [[, partitionBy_columnName [, …]]] ) |Term|Definition| |--------|--------------| -|`partitionBy_columnName`| (Optional) The name of an existing column to be used to partition the window function’s \.
RELATED() may also be used to refer to a column in a table related to \.| +|`partitionBy_columnName`| (Optional) The name of an existing column to be used to partition the window function’s `relation`.
RELATED() may also be used to refer to a column in a table related to `relation`.| ## Return value diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index 7344d1589..62d3def3a 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -28,7 +28,7 @@ PREVIOUS ( [, ][, ][, ][, reset] ) ## Return value -The value of \ from the previous element of the axis. +The value of `column` from the previous element of the axis. ## Remarks diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 1577dd371..690bfe5b2 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -15,7 +15,7 @@ recommendations: false [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns an interval of rows within the given axis, relative to the current row. This interval will be comprised of either the last \ rows before the current one, or the first \ rows after the current one. +Returns an interval of rows within the given axis, relative to the current row. This interval will be comprised of either the last `step` rows before the current one, or the first `step` rows after the current one. ## Syntax @@ -41,7 +41,7 @@ An interval of data rows. This function can be used in visual calculations only. -The \, \, \ and \ parameters can be omitted. +The `includeCurrent`, `axis`, `blanks` and `reset` parameters can be omitted. ## Example 1 diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 69f64bebf..5325c627f 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -21,11 +21,11 @@ RANK ( [][, or ][, ][, ][, |Term|Definition| |--------|--------------| |`ties`|(Optional) Defines how to handle the ranking when two or more rows are tied.
If specified, the supported value is either DENSE, or SKIP.
If omitted:
- Defaults to SKIP | -|`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. -|`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:

  • KEEP (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| -|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `orderBy` and `partitionBy` must come from it.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| +|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • KEEP (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| +|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | @@ -35,18 +35,18 @@ The rank number for the current context. ## Remarks -- Each \, \, and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: +- Each `orderBy`, `partitionBy`, and `matchBy` column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column, then: - - RANK will first determine all \, \, and \ columns that have no corresponding outer column. + - RANK will first determine all `orderBy`, `partitionBy`, and `matchBy` columns that have no corresponding outer column. - For every combination of existing values for these columns in RANK parent context, RANK is evaluated and a row is returned. - RANK’s final output is a rank number. -- If \ is present, then RANK will try to use columns in \ and \ to idenfity the current row. -- If the columns specified within \ and \ cannot uniquely identify every row in \, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. +- If `matchBy` is present, then RANK will try to use columns in `matchBy` and `partitionBy` to idenfity the current row. +- If the columns specified within `orderBy` and `partitionBy` cannot uniquely identify every row in `relation`, then two or more rows may have the same ranking and the ranking will be determined by the ties parameter. - RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. - RANK does not compare to RANKX as SUM compares to SUMX. -- \ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. +- `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. ## Example 1 - calculated column @@ -69,7 +69,7 @@ ADDCOLUMNS( ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc ``` -Returns a table that ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. Blank \ column values are sorted on the end. +Returns a table that ranks each geography with the same EnglishCountryRegionName, by their StateProvinceName and City. Blank `orderBy` column values are sorted on the end. ## Example 2 - visual calculation diff --git a/query-languages/dax/rankx-function-dax.md b/query-languages/dax/rankx-function-dax.md index 2e6420013..ffa35b17b 100644 --- a/query-languages/dax/rankx-function-dax.md +++ b/query-languages/dax/rankx-function-dax.md @@ -55,7 +55,7 @@ The rank number of `value` among all possible values of `expression` evaluated f - Optional arguments might be skipped by placing an empty comma (,) in the argument list, i.e. RANKX(Inventory, [InventoryCost],,,"Dense") -- Equality related comparisons (=, \< \>, \>= and \<=) between values with the *Decimal Number* data type can potentially return unexpected results when using RANKX function. Incorrect results can occur because values with *Decimal Number* data type are stored as IEEE Standard 754 floating point numbers and have inherent limitations in their precision. To avoid unexpected results, change the data type to *Fixed Decimal Number* or do a forced rounding using [ROUND](/dax/round-function-dax). +- Equality related comparisons (`=`, `<`, `>`, `>=` and `<=`) between values with the *Decimal Number* data type can potentially return unexpected results when using RANKX function. Incorrect results can occur because values with *Decimal Number* data type are stored as IEEE Standard 754 floating point numbers and have inherent limitations in their precision. To avoid unexpected results, change the data type to *Fixed Decimal Number* or do a forced rounding using [ROUND](/dax/round-function-dax). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 3bcef0cc5..6caab37b9 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -19,11 +19,11 @@ ROWNUMBER ( [ or ][, ][, ][, ][, < |Term|Definition| |--------|--------------| -|`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in \ and \ must come from it.
If omitted:
- \ must be explicitly specified.
- All \ and \ columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. -|`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when \ parameter and blanks in ORDERBY() function on individual expression are both specified, \ on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without \ being specified will honor \ parameter on parent Window function.| -|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned.
If omitted, \ is treated as a single partition. | +|`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `orderBy` and `partitionBy` must come from it.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| +|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| +|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | @@ -33,26 +33,26 @@ The rownumber number for the current context. ## Remarks -Each \, \, and \ column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: +Each `orderBy`, `partitionBy`, and `matchBy` column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column, then: - - ROWNUMBER will first determine all \, \, and \ columns that have no corresponding outer column. + - ROWNUMBER will first determine all `orderBy`, `partitionBy`, and `matchBy` columns that have no corresponding outer column. - For every combination of existing values for these columns in ROWNUMBER parent context, ROWNUMBER is evaluated and a row is returned. - ROWNUMBER’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If \ is present, then ROWNUMBER will try to use columns in \ and \ to idenfity the current row. -If the columns specified within \ and \ cannot uniquely identify every row in \, then: +If `matchBy` is present, then ROWNUMBER will try to use columns in `matchBy` and `partitionBy` to idenfity the current row. +If the columns specified within `orderBy` and `partitionBy` cannot uniquely identify every row in `relation`, then: - ROWNUMBER will try to find the least number of additional columns required to uniquely identify every row. - If such columns can be found, ROWNUMBER will - Try to find the least number of additional columns required to uniquely identify every row. - - Automatically append these new columns to \ clause. + - Automatically append these new columns to `orderBy` clause. - Sort each partition using this new set of orderBy columns. - If such columns cannot be found and the function detects a tie at runtime, an error is returned. -\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. +`reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. ## Example 1 - calculated column diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 8be15f13d..493987542 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -40,7 +40,7 @@ A scalar value, the running sum up to the current element of the axis. This function can be used in visual calculations only. -The \, \ and \ parameters can be omitted. +The `axis`, `blanks` and `reset` parameters can be omitted. ## Example diff --git a/query-languages/dax/search-function-dax.md b/query-languages/dax/search-function-dax.md index 691c9da9b..471089dd6 100644 --- a/query-languages/dax/search-function-dax.md +++ b/query-languages/dax/search-function-dax.md @@ -43,7 +43,7 @@ The number of the starting position of the first text string from the first char The following DAX query finds the position of the first letter of "cycle", in the string that contains the reseller name. If not found, Blank is returned. -SEARCH is case-insensitive. In this example, if "cycle" or "Cycle" is used in the \ argument, results are returned for either case. Use [FIND](FIND-function-dax.md) for case-sensitive. +SEARCH is case-insensitive. In this example, if "cycle" or "Cycle" is used in the `find_text` argument, results are returned for either case. Use [FIND](FIND-function-dax.md) for case-sensitive. [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] diff --git a/query-languages/dax/selectcolumns-function-dax.md b/query-languages/dax/selectcolumns-function-dax.md index babb67a88..0455947ca 100644 --- a/query-languages/dax/selectcolumns-function-dax.md +++ b/query-languages/dax/selectcolumns-function-dax.md @@ -24,11 +24,11 @@ SELECTCOLUMNS(
, [], , [], …) ## Return value -A table with the same number of rows as the table specified as the first argument. The returned table has one column for each pair of \, \ arguments, and each expression is evaluated in the context of a row from the specified \
argument. +A table with the same number of rows as the table specified as the first argument. The returned table has one column for each pair of `Name`, `Expression` arguments, and each expression is evaluated in the context of a row from the specified `Table` argument. ## Remarks -SELECTCOLUMNS has the same signature as ADDCOLUMNS, and has the same behavior except that instead of starting with the \
specified, SELECTCOLUMNS starts with an empty table before adding columns. +SELECTCOLUMNS has the same signature as ADDCOLUMNS, and has the same behavior except that instead of starting with the `Table` specified, SELECTCOLUMNS starts with an empty table before adding columns. [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index f7a91fdbb..fc3c70153 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -19,15 +19,15 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, |Term|Definition| |--------|--------------| -|`from`|Indicates where the window starts. It can be any DAX expression that returns a scalar value.
The behavior depends on the \ parameter:
- If \ is REL, the number of rows to go back (negative value) or forward (positive value) from the current row to get the first row in the window.
- If \ is ABS, and \ is positive, then it’s the position of the start of the window from beginning of the partition. Indexing is 1-based. For example, 1 means window starts from the beginning of the partition. If \ is negative, then it’s the position of the start of the window from the end of the partition. -1 means the last row in the partition. | -|from_type |Modifies behavior of the \ parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| -|`to`|Same as \, but indicates the end of the window. The last row is included in the window.| -|`to_type`|Same as \, but modifies the behavior of \.| -|`relation`|(Optional) A table expression from which the output rows are returned.
If specified, all columns in \ must come from it or a related table.
If omitted:
- \ must be explicitly specified.
- All \ and \ expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in \ and \.| -|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces \. -|`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- \ must be explicitly specified.
- Defaults to ordering by every column in \ that is not already specified in \.| +|`from`|Indicates where the window starts. It can be any DAX expression that returns a scalar value.
The behavior depends on the `from_type` parameter:
- If `from_type` is REL, the number of rows to go back (negative value) or forward (positive value) from the current row to get the first row in the window.
- If `from_type` is ABS, and `from` is positive, then it’s the position of the start of the window from beginning of the partition. Indexing is 1-based. For example, 1 means window starts from the beginning of the partition. If `from` is negative, then it’s the position of the start of the window from the end of the partition. -1 means the last row in the partition. | +|from_type |Modifies behavior of the `from` parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| +|`to`|Same as `from`, but indicates the end of the window. The last row is included in the window.| +|`to_type`|Same as `from_type`, but modifies the behavior of `to`.| +|`relation`|(Optional) A table expression from which the output rows are returned.
If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| +|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| -|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how \ is partitioned. If omitted, \ is treated as a single partition.| +|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | @@ -36,7 +36,7 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, All rows from the window. ## Remarks -Except for columns added by DAX table functions, each column in \, when \ is not present, or each column in \ and \, when \ is present, must have a corresponding outer value to help define the current row on which to operate. If \ and \ both have value ABS, then the following applies only to the \ columns: +Except for columns added by DAX table functions, each column in `relation`, when `matchBy` is not present, or each column in `matchBy` and `partitionBy`, when `matchBy` is present, must have a corresponding outer value to help define the current row on which to operate. If `from_type` and `to_type` both have value ABS, then the following applies only to the `partitionBy` columns: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column: @@ -45,25 +45,25 @@ Except for columns added by DAX table functions, each column in \, whe - WINDOW final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If all of \'s columns were added by DAX table functions, an error is returned. +If all of `relation`'s columns were added by DAX table functions, an error is returned. -If \ is present, WINDOW will try to use \ and \ columns to identify the row. -If \ is not present and the columns specified within \ and \ cannot uniquely identify every row in \, then: +If `matchBy` is present, WINDOW will try to use `matchBy` and `partitionBy` columns to identify the row. +If `matchBy` is not present and the columns specified within `orderBy` and `partitionBy` cannot uniquely identify every row in `relation`, then: - WINDOW will try to find the least number of additional columns required to uniquely identify every row. -- If such columns can be found, WINDOW will automatically append these new columns to \, and each partition is sorted using this new set of orderBy columns. +- If such columns can be found, WINDOW will automatically append these new columns to `orderBy`, and each partition is sorted using this new set of orderBy columns. - If such columns cannot be found, an error is returned. An empty table is returned if: -- The corresponding outer value of an \ or \ column does not exist within \. +- The corresponding outer value of an `orderBy` or `partitionBy` column does not exist within `relation`. - The whole window is outside the partition, or the beginning of the window is after its ending. -If WINDOW is used within a calculated column defined on the same table as \, and \ is omitted, an error is returned. +If WINDOW is used within a calculated column defined on the same table as `relation`, and `orderBy` is omitted, an error is returned. If the beginning of the window turns out be before the first row, then it’s set to the first row. Similarly, if the end of the window is after the last row of the partition, then it's set to the last row. -\ can be used in visual calculations only, and cannot be used in combination with \ or \. If \ is present, \ can be specified but \ cannot. +`reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. ## Example 1 - measure From 0e2ab565788238c16afdd1f11077d99bd8ff4f52 Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 13 Dec 2024 13:51:52 -0800 Subject: [PATCH 667/934] Fix another formula example --- query-languages/dax/rankx-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/rankx-function-dax.md b/query-languages/dax/rankx-function-dax.md index ffa35b17b..38b706439 100644 --- a/query-languages/dax/rankx-function-dax.md +++ b/query-languages/dax/rankx-function-dax.md @@ -53,7 +53,7 @@ The rank number of `value` among all possible values of `expression` evaluated f - If `value` is not among all possible values of `expression` then RANKX temporarily adds `value` to the values from `expression` and re-evaluates RANKX to determine the proper rank of `value`. -- Optional arguments might be skipped by placing an empty comma (,) in the argument list, i.e. RANKX(Inventory, [InventoryCost],,,"Dense") +- Optional arguments might be skipped by placing an empty comma (,) in the argument list, such as `RANKX(Inventory, [InventoryCost],,,"Dense")`. - Equality related comparisons (`=`, `<`, `>`, `>=` and `<=`) between values with the *Decimal Number* data type can potentially return unexpected results when using RANKX function. Incorrect results can occur because values with *Decimal Number* data type are stored as IEEE Standard 754 floating point numbers and have inherent limitations in their precision. To avoid unexpected results, change the data type to *Fixed Decimal Number* or do a forced rounding using [ROUND](/dax/round-function-dax). From bf88c0b410c5509134936f6e7ca5c7f8b221a2c0 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Fri, 13 Dec 2024 13:58:53 -0800 Subject: [PATCH 668/934] Format table terms as code in DAX queries Fix parameters in table that need code formatting --- query-languages/dax/dax-queries.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index dc93e1d11..b426ecab1 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -39,7 +39,7 @@ EVALUATE
|Term |Definition | |---------|---------| -| table | A table expression. | +| `table` | A table expression. | #### EVALUATE Example @@ -70,9 +70,9 @@ EVALUATE
|Term |Definition | |---------|---------| -| expression | Any DAX expression that returns a single scalar value, or column included in the DAX query. | -| ASC | (default) Ascending sort order. | -| DESC | Descending sort order. | +| `expression` | Any DAX expression that returns a single scalar value, or column included in the DAX query. | +| `ASC` | (default) Ascending sort order. | +| `DESC` | Descending sort order. | #### ORDER BY Example @@ -144,8 +144,8 @@ EVALUATE
|Term |Definition | |---------|---------| -| value | A constant value. Cannot be an expression. | -| parameter | The name of a parameter in an XMLA statement prefixed with an `@` character. | +| `value` | A constant value. Cannot be an expression. | +| `parameter` | The name of a parameter in an XMLA statement prefixed with an `@` character. | #### START AT Remarks From ee471cef80a13a9f29ee4832b8658bee5b88c391 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 13 Dec 2024 14:47:16 -0800 Subject: [PATCH 669/934] Updated about section and fixed example in Table.Buffer --- query-languages/m/table-buffer.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/query-languages/m/table-buffer.md b/query-languages/m/table-buffer.md index 4a794b5e2..f6a6abc2a 100644 --- a/query-languages/m/table-buffer.md +++ b/query-languages/m/table-buffer.md @@ -14,11 +14,15 @@ Table.Buffer(table as table, optional options as nullable record) Buffers a table in memory, isolating it from external changes during evaluation. Buffering is shallow. It forces the evaluation of any scalar cell values, but leaves non-scalar values (records, lists, tables, and so on) as-is. -Note that using this function might or might not make your queries run faster. In some cases, it can make your queries run more slowly due to the added cost of reading all the data and storing it in memory, as well as the fact that buffering prevents downstream folding. If the data doesn't need to be buffered but you just want to prevent downstream folding, use [Table.StopFolding](/powerquery-m/table-stopfolding) instead. +* `table`: The table to buffer in memory. +* `options`: [Optional] The following options record values can be used: + * `BufferMode`: The buffer mode that describes the type of buffering to be performed. This option can be either [BufferMode.Eager](buffermode-type.md) or [BufferMode.Delayed](buffermode-type.md). + +Using this function might or might not make your queries run faster. In some cases, it can make your queries run more slowly due to the added cost of reading all the data and storing it in memory, as well as the fact that buffering prevents downstream folding. If the data doesn't need to be buffered but you just want to prevent downstream folding, use [Table.StopFolding](/powerquery-m/table-stopfolding) instead. ## Example 1 -Load all the rows of a SQL table into memory, so that any downstream operations will no longer be able to query the SQL server. +Load all the rows of a SQL table into memory, so that any downstream operations are no longer able to query the SQL server. **Usage** @@ -26,7 +30,7 @@ Load all the rows of a SQL table into memory, so that any downstream operations let Source = Sql.Database("SomeSQLServer", "MyDb"), MyTable = Source{[Item="MyTable"]}[Data], - BufferMyTable = Table.Buffer(dbo_MyTable) + BufferMyTable = Table.Buffer(MyTable) in BufferMyTable ``` From faa57515dc907b7d338e91d899f2ea81879ebced Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Fri, 13 Dec 2024 22:20:46 -0800 Subject: [PATCH 670/934] Update dax-queries.md --- query-languages/dax/dax-queries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index b426ecab1..517f11b55 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -7,7 +7,7 @@ ms.topic: conceptual Reporting clients like Power BI and Excel execute DAX queries whenever visuals display in a report, or a field added to a table, and these DAX queries adjust when a filter is applied. The [performance analyzer](/power-bi/create-reports/desktop-performance-analyzer) in Power BI Desktop can show you these DAX queries and even run them in the DAX query view. -By using [DAX query view](/power-bi/transform-model/dax-query-view) in Power BI Desktop or [Write DAX queries](/power-bi/transform-model/dax-query-view#dax-query-view-in-web) in Power BI service, you can create and run your own DAX queries. With [Microsoft Fabric](/fabric/get-started/microsoft-fabric-overview), you can further increase your productivity with [Copilot to write DAX queries](/dax/dax-copilot) in DAX query view of Desktop or web. Other tools such as [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), also allow you to create and run DAX queries. +By using [DAX query view](/power-bi/transform-model/dax-query-view) in Power BI Desktop or [Write DAX queries](/power-bi/transform-model/dax-query-view#dax-query-view-in-web) in Power BI service, you can create and run your own DAX queries. With [Microsoft Fabric](/fabric/get-started/microsoft-fabric-overview), you can further increase your productivity with [Copilot to write DAX queries](/dax/dax-copilot) in DAX query view of Desktop or web. In addition to Power BI tools, DAX queries can be run in [Fabric notebooks](/fabric/data-engineering/how-to-use-notebook) using [semantic link](/fabric/data-science/read-write-power-bi-python) to read data from semantic models with python, and with the [Execute Queries REST API](/rest/api/power-bi/datasets/execute-queries), also available in [Power Automate](https://powerbi.microsoft.com/blog/unlocking-new-self-service-bi-scenarios-with-executequeries-support-in-power-automate/). Other tools such as [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), also allow you to create and run DAX queries. DAX queries return results as a table right within the tool, allowing you to quickly create and test the performance of your DAX formulas in measures or simply view the data in your semantic model. INFO and INFO.VIEW DAX functions can also get information about your semantic model, such as a listing of tables, columns, measures, and much more. From 75aebd30691086e2c1bba7bc3a7f36cc75d1df19 Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 16 Dec 2024 12:49:42 -0800 Subject: [PATCH 671/934] More no-loc words --- query-languages/dax/docfx.json | 3 +++ query-languages/dax/first-function-dax.md | 2 +- query-languages/dax/index-function-dax.md | 4 ++-- query-languages/dax/last-function-dax.md | 4 ++-- query-languages/dax/movingaverage-function-dax.md | 4 ++-- query-languages/dax/next-function-dax.md | 2 +- query-languages/dax/offset-function-dax.md | 4 ++-- query-languages/dax/previous-function-dax.md | 2 +- query-languages/dax/range-function-dax.md | 4 ++-- query-languages/dax/rank-function-dax.md | 4 ++-- query-languages/dax/rownumber-function-dax.md | 4 ++-- query-languages/dax/runningsum-function-dax.md | 4 ++-- .../dax/sampleaxiswithlocalminmax-function-dax.md | 2 +- query-languages/dax/window-function-dax.md | 8 ++++---- 14 files changed, 27 insertions(+), 24 deletions(-) diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index d15ce9197..7a359e2bd 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -203,6 +203,7 @@ "GROUPBY", "HASONEFILTER", "HASONEVALUE", + "HIGHESTPARENT", "HOUR", "IF.EAGER", "IF", @@ -237,6 +238,7 @@ "LASTDATE", "LASTNONBLANK", "LASTNONBLANKVALUE", + "LOWESTPARENT", "LCM", "LEFT", "LEN", @@ -273,6 +275,7 @@ "NEXTQUARTER", "NEXTYEAR", "NOMINAL", + "NONE", "NONVISUAL", "NORM.DIST", "NORM.INV", diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 32116b75b..9553ec31a 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -21,7 +21,7 @@ FIRST ( [, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 73421959e..596a8b03f 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -23,10 +23,10 @@ INDEX([, or ][, ][, ][, If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to `ALLSELECTED()` of all columns in `orderBy` and `partitionBy`. |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is`DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A `PARTITIONBY()` clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A `MATCHBY()` clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 78491e9de..a4b009cc9 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -21,7 +21,7 @@ LAST ( [, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT ` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| @@ -47,6 +47,6 @@ The screenshot below shows the visual matrix and the visual calculation expressi ## Related content -[FIRST](first-function-dax.md) +[`FIRST`](first-function-dax.md) [PREVIOUS](previous-function-dax.md) [NEXT](next-function-dax.md) diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index fa27d3641..5b430e3e1 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -31,8 +31,8 @@ MOVINGAVERAGE ( , [, ][, ][, ] |`windowSize`|The number of rows to include in the calculation. Must be a constant value.| |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |`axis`|(Optional) An axis reference, the direction along which the moving average will be calculated.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index d6fa2de09..1a617b814 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -22,7 +22,7 @@ NEXT ( [, ][, ][, ][, reset] ) |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 0df8cc818..3f8c579a2 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -23,10 +23,10 @@ OFFSET ( [, or ][, ][, ][, If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index 62d3def3a..7945634f6 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -22,7 +22,7 @@ PREVIOUS ( [, ][, ][, ][, reset] ) |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, `1` is used (the exactly previous row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 690bfe5b2..4746fc002 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -30,8 +30,8 @@ RANGE ( [, ][, ][, ][, ] ) |`step`|The number of rows before (negative value) or after (positive value) the current row to include in the range. Must be a constant value.
- If negative, the window will contain the last -step rows before the current row.
- Otherwise, the window will contain the first step rows after the current row.| |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |`axis`|(Optional) An axis reference, the direction along which the interval will be created.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 5325c627f..40747c69c 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -24,10 +24,10 @@ RANK ( [][, or ][, ][, ][, |`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `orderBy` and `partitionBy` must come from it.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • KEEP (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `KEEP` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index ded001111..59e32c3f1 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -22,10 +22,10 @@ ROWNUMBER ( [ or ][, ][, ][, ][, < |`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `orderBy` and `partitionBy` must come from it.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 493987542..71c47c865 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -29,8 +29,8 @@ RUNNINGSUM ( [, ][, ][, ] ) |--------|--------------| |`column`|The column that provides the value for each element.| |`axis`|(Optional) An axis reference, the direction along which the running sum will be calculated.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • DEFAULT (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • FIRST, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • LAST, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value diff --git a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md index 88bc6e342..e32c01e7b 100644 --- a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md +++ b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md @@ -26,7 +26,7 @@ SAMPLEAXISWITHLOCALMINMAX(,
, , , [ [, ...] |`Measure`| Column reference from Table to be sampled. At least one Measure is required, but you can specify multiple.| |`MinResolution`| Minimum number of selected rows that spans the full non-empty range of X| |`DynamicSeries`| (Optional) Column to be used as series. You can specify zero, or or multiple.| -|`DynamicSeriesSelectionCriteria`| (Optional) Decides which series values to retain if not all DynamicSeries can be preserved. Valid values are NONE or ALPHABETICAL| +|`DynamicSeriesSelectionCriteria`| (Optional) Decides which series values to retain if not all DynamicSeries can be preserved. Valid values are `NONE` or `ALPHABETICAL`| |`DynamicSeriesSelectionOrder`| (Optional) Decides to use ascending or descending sorting on the criteria identified by DynamicSeriesSelectionCriteria. Valid values are ASC or DESC.| |`MaxResolution`| Maximum number of selected rows for a line that spans the full non-empty range of X| |`MaxDynamicSeries`|Maximum allowed DynamicSeries. If the number of DynamicSeries is higher than MaxDynamicSeries remove DynamicSeries based on DynamicSeriesSelectionCriteria.| diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index fc3c70153..5c8372597 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -20,16 +20,16 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, |Term|Definition| |--------|--------------| |`from`|Indicates where the window starts. It can be any DAX expression that returns a scalar value.
The behavior depends on the `from_type` parameter:
- If `from_type` is REL, the number of rows to go back (negative value) or forward (positive value) from the current row to get the first row in the window.
- If `from_type` is ABS, and `from` is positive, then it’s the position of the start of the window from beginning of the partition. Indexing is 1-based. For example, 1 means window starts from the beginning of the partition. If `from` is negative, then it’s the position of the start of the window from the end of the partition. -1 means the last row in the partition. | -|from_type |Modifies behavior of the `from` parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| +|`from_type` |Modifies behavior of the `from` parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| |`to`|Same as `from`, but indicates the end of the window. The last row is included in the window.| |`to_type`|Same as `from_type`, but modifies the behavior of `to`.| |`relation`|(Optional) A table expression from which the output rows are returned.
If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is DEFAULT, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT,` where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: NONE, LOWESTPARENT, HIGHESTPARENT, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to NONE.
- If positive, the integer identifies the column starting from the highest, independent of grain. HIGHESTPARENT is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. LOWESTPARENT is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value @@ -155,7 +155,7 @@ The following visual calculation DAX query: TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount]) ``` -Returns the cumulative total sales by month, calculated along each year. The values 1 and -2 could be used instead of HIGHESTPARENT, with the same results. +Returns the cumulative total sales by month, calculated along each year. The values 1 and -2 could be used instead of `HIGHESTPARENT`, with the same results. The screenshot below shows the visual matrix and the visual calculation expression: From 9980ddb2a4d2f43e4a42e801f86d03ab5e30122d Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 16 Dec 2024 12:50:53 -0800 Subject: [PATCH 672/934] Add `DEFAULT` value description for `blanks` enumeration --- query-languages/dax/first-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 9553ec31a..bb0c16be8 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -21,7 +21,7 @@ FIRST ( [, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| From 010237761f5b08c9a8ba0b5ac00b8df424cc1af9 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 16 Dec 2024 12:51:55 -0800 Subject: [PATCH 673/934] Fix typo in `blanks` parameter description --- query-languages/dax/index-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 596a8b03f..fc60e05b9 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -23,7 +23,7 @@ INDEX([, or ][, ][, ][, If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to `ALLSELECTED()` of all columns in `orderBy` and `partitionBy`. |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is`DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A `PARTITIONBY()` clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A `MATCHBY()` clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | From 1ccc52325e2244392796439d878fa09f1d86c577 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 16 Dec 2024 12:52:30 -0800 Subject: [PATCH 674/934] Fix formatting and link in DAX documentation --- query-languages/dax/last-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index a4b009cc9..25f3a4cf2 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -21,7 +21,7 @@ LAST ( [, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT ` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| @@ -47,6 +47,6 @@ The screenshot below shows the visual matrix and the visual calculation expressi ## Related content -[`FIRST`](first-function-dax.md) +[FIRST](first-function-dax.md) [PREVIOUS](previous-function-dax.md) [NEXT](next-function-dax.md) From 8de4161f25b4abb0ba1e0d75d225bc4f5d3b4718 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 16 Dec 2024 12:54:48 -0800 Subject: [PATCH 675/934] Fix typo in `blanks` parameter description --- query-languages/dax/window-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 5c8372597..f03f107ab 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -26,7 +26,7 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, |`relation`|(Optional) A table expression from which the output rows are returned.
If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT,` where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | From 59b9ec870f6179c3d5b359b1c195a0ab03ace90e Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 16 Dec 2024 13:03:47 -0800 Subject: [PATCH 676/934] Fixing two other patterns --- query-languages/dax/concatenatex-function-dax.md | 2 +- query-languages/dax/first-function-dax.md | 2 +- query-languages/dax/last-function-dax.md | 2 +- query-languages/dax/next-function-dax.md | 2 +- query-languages/dax/previous-function-dax.md | 2 +- query-languages/dax/sampleaxiswithlocalminmax-function-dax.md | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/query-languages/dax/concatenatex-function-dax.md b/query-languages/dax/concatenatex-function-dax.md index e7768977b..053f484c2 100644 --- a/query-languages/dax/concatenatex-function-dax.md +++ b/query-languages/dax/concatenatex-function-dax.md @@ -29,7 +29,7 @@ The optional `order` parameter accepts the following values: |Value|Alternate Values|Description| |-----|-----|-----| |0 (zero)|`FALSE`, DESC|Sorts in descending order of values of `orderBy_expression`. This is the default value when the `order` parameter is omitted.| -|1|`TRUE`, ASC|Sorts in ascending order of values of `orderBy_expression`.| +|1|`TRUE`, `ASC`|Sorts in ascending order of values of `orderBy_expression`.| ## Return value diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index bb0c16be8..7fa2aabab 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -22,7 +22,7 @@ FIRST ( [, ][, ][, reset] ) |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| +|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| ## Return value diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 25f3a4cf2..f7711ba78 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -22,7 +22,7 @@ LAST ( [, ][, ][, reset] ) |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| +|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| ## Return value diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 1a617b814..4916c06b5 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -23,7 +23,7 @@ NEXT ( [, ][, ][, ][, reset] ) |`steps`| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| +|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| ## Return value diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index 7945634f6..e23ceb314 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -23,7 +23,7 @@ PREVIOUS ( [, ][, ][, ][, reset] ) |`steps`| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, `1` is used (the exactly previous row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: None, LowestParent, HighestParent, or an integer. None is the default value.| +|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| ## Return value diff --git a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md index e32c01e7b..949d35981 100644 --- a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md +++ b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md @@ -27,10 +27,10 @@ SAMPLEAXISWITHLOCALMINMAX(,
, , , [ [, ...] |`MinResolution`| Minimum number of selected rows that spans the full non-empty range of X| |`DynamicSeries`| (Optional) Column to be used as series. You can specify zero, or or multiple.| |`DynamicSeriesSelectionCriteria`| (Optional) Decides which series values to retain if not all DynamicSeries can be preserved. Valid values are `NONE` or `ALPHABETICAL`| -|`DynamicSeriesSelectionOrder`| (Optional) Decides to use ascending or descending sorting on the criteria identified by DynamicSeriesSelectionCriteria. Valid values are ASC or DESC.| +|`DynamicSeriesSelectionOrder`| (Optional) Decides to use ascending or descending sorting on the criteria identified by DynamicSeriesSelectionCriteria. Valid values are `ASC` or `DESC`.| |`MaxResolution`| Maximum number of selected rows for a line that spans the full non-empty range of X| |`MaxDynamicSeries`|Maximum allowed DynamicSeries. If the number of DynamicSeries is higher than MaxDynamicSeries remove DynamicSeries based on DynamicSeriesSelectionCriteria.| -|`MaxIterations`|Maximum number of iterations to try to reach the Size number of rows. +|`MaxIterations`|Maximum number of iterations to try to reach the Size number of rows. | ## Return Value From 9d2f3a76ea6a1a64e72c77318c9188afdbbcd17e Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 16 Dec 2024 13:05:30 -0800 Subject: [PATCH 677/934] Update concatenatex-function-dax.md --- query-languages/dax/concatenatex-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/concatenatex-function-dax.md b/query-languages/dax/concatenatex-function-dax.md index 053f484c2..b91a3cb0f 100644 --- a/query-languages/dax/concatenatex-function-dax.md +++ b/query-languages/dax/concatenatex-function-dax.md @@ -28,7 +28,7 @@ The optional `order` parameter accepts the following values: |Value|Alternate Values|Description| |-----|-----|-----| -|0 (zero)|`FALSE`, DESC|Sorts in descending order of values of `orderBy_expression`. This is the default value when the `order` parameter is omitted.| +|0 (zero)|`FALSE`, `DESC`|Sorts in descending order of values of `orderBy_expression`. This is the default value when the `order` parameter is omitted.| |1|`TRUE`, `ASC`|Sorts in ascending order of values of `orderBy_expression`.| ## Return value From 9e82e3a40627fa8f19794cc9e0776975a3f235ad Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 16 Dec 2024 13:58:17 -0800 Subject: [PATCH 678/934] Add "ALPHABETICAL" to DAX functions list --- query-languages/dax/docfx.json | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index 7a359e2bd..a17dbccb3 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -65,6 +65,7 @@ "ALLEXCEPT", "ALLNOBLANKROW", "ALLSELECTED", + "ALPHABETICAL", "AMORDEGRC", "AMORLINC", "AND", From 21c9ccb2c81706939901c89ae45a10be04d33900 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Mon, 16 Dec 2024 14:58:01 -0800 Subject: [PATCH 679/934] Fix typo in "noloc" key to "no-loc" --- query-languages/dax/docfx.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index a17dbccb3..94f15ec18 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -50,7 +50,7 @@ "ms.date": "10/20/2023", "show_latex": true, "contributors_to_exclude": [ "mikekinsman" ], - "noloc": [ + "no-loc": [ "ABS", "ACCRINT", "ACCRINTM", From c3e1bed8c6056aebd931a37d30162a215e5d3207 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 17 Dec 2024 13:06:49 -0800 Subject: [PATCH 680/934] Added appropriate subservice metadata to M articles --- query-languages/m/access-database.md | 1 + query-languages/m/accesscontrolentry-conditiontoidentities.md | 2 ++ query-languages/m/accesscontrolkind-type.md | 1 + query-languages/m/action-witherrorcontext.md | 1 + query-languages/m/activedirectory-domains.md | 1 + query-languages/m/adobeanalytics-cubes.md | 1 + query-languages/m/adodotnet-datasource.md | 1 + query-languages/m/adodotnet-query.md | 1 + query-languages/m/analysisservices-database.md | 1 + query-languages/m/analysisservices-databases.md | 1 + query-languages/m/azurestorage-blobcontents.md | 1 + query-languages/m/azurestorage-blobs.md | 1 + query-languages/m/azurestorage-datalake.md | 1 + query-languages/m/azurestorage-datalakecontents.md | 1 + query-languages/m/azurestorage-tables.md | 1 + query-languages/m/binary-approximatelength.md | 1 + query-languages/m/binary-buffer.md | 1 + query-languages/m/binary-combine.md | 1 + query-languages/m/binary-compress.md | 1 + query-languages/m/binary-decompress.md | 1 + query-languages/m/binary-from.md | 1 + query-languages/m/binary-fromlist.md | 1 + query-languages/m/binary-fromtext.md | 1 + query-languages/m/binary-infercontenttype.md | 1 + query-languages/m/binary-length.md | 1 + query-languages/m/binary-range.md | 1 + query-languages/m/binary-split.md | 1 + query-languages/m/binary-tolist.md | 1 + query-languages/m/binary-totext.md | 1 + query-languages/m/binary-view.md | 1 + query-languages/m/binary-viewerror.md | 1 + query-languages/m/binary-viewfunction.md | 1 + query-languages/m/binaryencoding-type.md | 1 + query-languages/m/binaryformat-7bitencodedsignedinteger.md | 1 + query-languages/m/binaryformat-7bitencodedunsignedinteger.md | 1 + query-languages/m/binaryformat-binary.md | 1 + query-languages/m/binaryformat-byte.md | 1 + query-languages/m/binaryformat-byteorder.md | 1 + query-languages/m/binaryformat-choice.md | 1 + query-languages/m/binaryformat-decimal.md | 1 + query-languages/m/binaryformat-double.md | 1 + query-languages/m/binaryformat-group.md | 1 + query-languages/m/binaryformat-length.md | 1 + query-languages/m/binaryformat-list.md | 1 + query-languages/m/binaryformat-null.md | 1 + query-languages/m/binaryformat-record.md | 1 + query-languages/m/binaryformat-signedinteger16.md | 1 + query-languages/m/binaryformat-signedinteger32.md | 1 + query-languages/m/binaryformat-signedinteger64.md | 1 + query-languages/m/binaryformat-single.md | 1 + query-languages/m/binaryformat-text.md | 1 + query-languages/m/binaryformat-transform.md | 1 + query-languages/m/binaryformat-unsignedinteger16.md | 1 + query-languages/m/binaryformat-unsignedinteger32.md | 1 + query-languages/m/binaryformat-unsignedinteger64.md | 1 + query-languages/m/binaryoccurrence-type.md | 1 + query-languages/m/buffermode-type.md | 1 + query-languages/m/byte-from.md | 1 + query-languages/m/byteorder-type.md | 1 + query-languages/m/cdm-contents.md | 1 + query-languages/m/character-fromnumber.md | 1 + query-languages/m/character-tonumber.md | 1 + query-languages/m/combiner-combinetextbydelimiter.md | 1 + query-languages/m/combiner-combinetextbyeachdelimiter.md | 1 + query-languages/m/combiner-combinetextbylengths.md | 1 + query-languages/m/combiner-combinetextbypositions.md | 1 + query-languages/m/combiner-combinetextbyranges.md | 1 + query-languages/m/comments.md | 1 + query-languages/m/comparer-equals.md | 1 + query-languages/m/comparer-fromculture.md | 1 + query-languages/m/comparer-ordinal.md | 1 + query-languages/m/comparer-ordinalignorecase.md | 1 + query-languages/m/compression-type.md | 1 + query-languages/m/csv-document.md | 1 + query-languages/m/csvstyle-type.md | 1 + query-languages/m/cube-addandexpanddimensioncolumn.md | 1 + query-languages/m/cube-addmeasurecolumn.md | 1 + query-languages/m/cube-applyparameter.md | 1 + query-languages/m/cube-attributememberid.md | 1 + query-languages/m/cube-attributememberproperty.md | 1 + query-languages/m/cube-collapseandremovecolumns.md | 1 + query-languages/m/cube-dimensions.md | 1 + query-languages/m/cube-displayfolders.md | 1 + query-languages/m/cube-measureproperties.md | 1 + query-languages/m/cube-measureproperty.md | 1 + query-languages/m/cube-measures.md | 1 + query-languages/m/cube-parameters.md | 1 + query-languages/m/cube-properties.md | 1 + query-languages/m/cube-propertykey.md | 1 + query-languages/m/cube-replacedimensions.md | 1 + query-languages/m/cube-transform.md | 1 + query-languages/m/culture-current.md | 1 + query-languages/m/currency-from.md | 1 + query-languages/m/custom-date-and-time-format-strings.md | 1 + query-languages/m/custom-numeric-format-strings.md | 1 + query-languages/m/date-adddays.md | 1 + query-languages/m/date-addmonths.md | 1 + query-languages/m/date-addquarters.md | 1 + query-languages/m/date-addweeks.md | 1 + query-languages/m/date-addyears.md | 1 + query-languages/m/date-day.md | 1 + query-languages/m/date-dayofweek.md | 1 + query-languages/m/date-dayofweekname.md | 1 + query-languages/m/date-dayofyear.md | 1 + query-languages/m/date-daysinmonth.md | 1 + query-languages/m/date-endofday.md | 1 + query-languages/m/date-endofmonth.md | 1 + query-languages/m/date-endofquarter.md | 1 + query-languages/m/date-endofweek.md | 1 + query-languages/m/date-endofyear.md | 1 + query-languages/m/date-from.md | 1 + query-languages/m/date-fromtext.md | 1 + query-languages/m/date-isincurrentday.md | 1 + query-languages/m/date-isincurrentmonth.md | 1 + query-languages/m/date-isincurrentquarter.md | 1 + query-languages/m/date-isincurrentweek.md | 1 + query-languages/m/date-isincurrentyear.md | 1 + query-languages/m/date-isinnextday.md | 1 + query-languages/m/date-isinnextmonth.md | 1 + query-languages/m/date-isinnextndays.md | 1 + query-languages/m/date-isinnextnmonths.md | 1 + query-languages/m/date-isinnextnquarters.md | 1 + query-languages/m/date-isinnextnweeks.md | 1 + query-languages/m/date-isinnextnyears.md | 1 + query-languages/m/date-isinnextquarter.md | 1 + query-languages/m/date-isinnextweek.md | 1 + query-languages/m/date-isinnextyear.md | 1 + query-languages/m/date-isinpreviousday.md | 1 + query-languages/m/date-isinpreviousmonth.md | 1 + query-languages/m/date-isinpreviousndays.md | 1 + query-languages/m/date-isinpreviousnmonths.md | 1 + query-languages/m/date-isinpreviousnquarters.md | 1 + query-languages/m/date-isinpreviousnweeks.md | 1 + query-languages/m/date-isinpreviousnyears.md | 1 + query-languages/m/date-isinpreviousquarter.md | 1 + query-languages/m/date-isinpreviousweek.md | 1 + query-languages/m/date-isinpreviousyear.md | 1 + query-languages/m/date-isinyeartodate.md | 1 + query-languages/m/date-isleapyear.md | 1 + query-languages/m/date-month.md | 1 + query-languages/m/date-monthname.md | 1 + query-languages/m/date-quarterofyear.md | 1 + query-languages/m/date-startofday.md | 1 + query-languages/m/date-startofmonth.md | 1 + query-languages/m/date-startofquarter.md | 1 + query-languages/m/date-startofweek.md | 1 + query-languages/m/date-startofyear.md | 1 + query-languages/m/date-torecord.md | 1 + query-languages/m/date-totext.md | 1 + query-languages/m/date-weekofmonth.md | 1 + query-languages/m/date-weekofyear.md | 1 + query-languages/m/date-year.md | 1 + query-languages/m/datetime-addzone.md | 1 + query-languages/m/datetime-date.md | 1 + query-languages/m/datetime-fixedlocalnow.md | 1 + query-languages/m/datetime-from.md | 1 + query-languages/m/datetime-fromfiletime.md | 1 + query-languages/m/datetime-fromtext.md | 1 + query-languages/m/datetime-isincurrenthour.md | 1 + query-languages/m/datetime-isincurrentminute.md | 1 + query-languages/m/datetime-isincurrentsecond.md | 1 + query-languages/m/datetime-isinnexthour.md | 1 + query-languages/m/datetime-isinnextminute.md | 1 + query-languages/m/datetime-isinnextnhours.md | 1 + query-languages/m/datetime-isinnextnminutes.md | 1 + query-languages/m/datetime-isinnextnseconds.md | 1 + query-languages/m/datetime-isinnextsecond.md | 1 + query-languages/m/datetime-isinprevioushour.md | 1 + query-languages/m/datetime-isinpreviousminute.md | 1 + query-languages/m/datetime-isinpreviousnhours.md | 1 + query-languages/m/datetime-isinpreviousnminutes.md | 1 + query-languages/m/datetime-isinpreviousnseconds.md | 1 + query-languages/m/datetime-isinprevioussecond.md | 1 + query-languages/m/datetime-localnow.md | 1 + query-languages/m/datetime-time.md | 1 + query-languages/m/datetime-torecord.md | 1 + query-languages/m/datetime-totext.md | 1 + query-languages/m/datetimezone-fixedlocalnow.md | 1 + query-languages/m/datetimezone-fixedutcnow.md | 1 + query-languages/m/datetimezone-from.md | 1 + query-languages/m/datetimezone-fromfiletime.md | 1 + query-languages/m/datetimezone-fromtext.md | 1 + query-languages/m/datetimezone-localnow.md | 1 + query-languages/m/datetimezone-removezone.md | 1 + query-languages/m/datetimezone-switchzone.md | 1 + query-languages/m/datetimezone-tolocal.md | 1 + query-languages/m/datetimezone-torecord.md | 1 + query-languages/m/datetimezone-totext.md | 1 + query-languages/m/datetimezone-toutc.md | 1 + query-languages/m/datetimezone-utcnow.md | 1 + query-languages/m/datetimezone-zonehours.md | 1 + query-languages/m/datetimezone-zoneminutes.md | 1 + query-languages/m/day-type.md | 1 + query-languages/m/db2-database.md | 1 + query-languages/m/decimal-from.md | 1 + query-languages/m/deltalake-table.md | 1 + query-languages/m/diagnostics-activityid.md | 1 + query-languages/m/diagnostics-correlationid.md | 1 + query-languages/m/diagnostics-trace.md | 1 + query-languages/m/directquerycapabilities-from.md | 1 + query-languages/m/double-from.md | 1 + query-languages/m/duration-days.md | 1 + query-languages/m/duration-from.md | 1 + query-languages/m/duration-fromtext.md | 1 + query-languages/m/duration-hours.md | 1 + query-languages/m/duration-minutes.md | 1 + query-languages/m/duration-seconds.md | 1 + query-languages/m/duration-torecord.md | 1 + query-languages/m/duration-totaldays.md | 1 + query-languages/m/duration-totalhours.md | 1 + query-languages/m/duration-totalminutes.md | 1 + query-languages/m/duration-totalseconds.md | 1 + query-languages/m/duration-totext.md | 1 + query-languages/m/embedded-value.md | 1 + query-languages/m/error-record.md | 1 + query-languages/m/errors.md | 1 + query-languages/m/essbase-cubes.md | 1 + query-languages/m/evaluation-model.md | 1 + query-languages/m/excel-currentworkbook.md | 1 + query-languages/m/excel-shapetable.md | 1 + query-languages/m/excel-workbook.md | 1 + query-languages/m/exchange-contents.md | 1 + query-languages/m/expression-constant.md | 1 + query-languages/m/expression-evaluate.md | 1 + query-languages/m/expression-identifier.md | 1 + query-languages/m/expressions-values-and-let-expression.md | 2 ++ query-languages/m/extravalues-type.md | 1 + query-languages/m/file-contents.md | 1 + query-languages/m/folder-contents.md | 1 + query-languages/m/folder-files.md | 1 + query-languages/m/function-from.md | 1 + query-languages/m/function-invoke.md | 1 + query-languages/m/function-invokeafter.md | 1 + query-languages/m/function-invokewitherrorcontext.md | 1 + query-languages/m/function-isdatasource.md | 1 + query-languages/m/function-scalarvector.md | 1 + query-languages/m/geography-fromwellknowntext.md | 1 + query-languages/m/geography-towellknowntext.md | 1 + query-languages/m/geographypoint-from.md | 1 + query-languages/m/geometry-fromwellknowntext.md | 1 + query-languages/m/geometry-towellknowntext.md | 1 + query-languages/m/geometrypoint-from.md | 1 + query-languages/m/googleanalytics-accounts.md | 1 + query-languages/m/graph-nodes.md | 1 + query-languages/m/groupkind-type.md | 1 + query-languages/m/guid-from.md | 1 + query-languages/m/hdfs-contents.md | 1 + query-languages/m/hdfs-files.md | 1 + query-languages/m/hdinsight-containers.md | 1 + query-languages/m/hdinsight-contents.md | 1 + query-languages/m/hdinsight-files.md | 1 + query-languages/m/how-culture-affects-text-formatting.md | 2 ++ query-languages/m/html-table.md | 1 + query-languages/m/identity-from.md | 1 + query-languages/m/identity-ismemberof.md | 1 + query-languages/m/identityprovider-default.md | 1 + query-languages/m/informix-database.md | 1 + query-languages/m/int16-from.md | 1 + query-languages/m/int32-from.md | 1 + query-languages/m/int64-from.md | 1 + query-languages/m/int8-from.md | 1 + query-languages/m/itemexpression-from.md | 1 + query-languages/m/itemexpression-item.md | 1 + query-languages/m/joinalgorithm-type.md | 1 + query-languages/m/joinkind-type.md | 1 + query-languages/m/joinside-type.md | 1 + query-languages/m/json-document.md | 1 + query-languages/m/json-fromvalue.md | 1 + query-languages/m/limitclausekind-type.md | 1 + query-languages/m/lines-frombinary.md | 1 + query-languages/m/lines-fromtext.md | 1 + query-languages/m/lines-tobinary.md | 1 + query-languages/m/lines-totext.md | 1 + query-languages/m/list-accumulate.md | 1 + query-languages/m/list-alltrue.md | 1 + query-languages/m/list-alternate.md | 1 + query-languages/m/list-anytrue.md | 1 + query-languages/m/list-average.md | 1 + query-languages/m/list-buffer.md | 1 + query-languages/m/list-combine.md | 1 + query-languages/m/list-conformtopagereader.md | 1 + query-languages/m/list-contains.md | 1 + query-languages/m/list-containsall.md | 1 + query-languages/m/list-containsany.md | 1 + query-languages/m/list-count.md | 1 + query-languages/m/list-covariance.md | 1 + query-languages/m/list-dates.md | 1 + query-languages/m/list-datetimes.md | 1 + query-languages/m/list-datetimezones.md | 1 + query-languages/m/list-difference.md | 1 + query-languages/m/list-distinct.md | 1 + query-languages/m/list-durations.md | 1 + query-languages/m/list-findtext.md | 1 + query-languages/m/list-first.md | 1 + query-languages/m/list-firstn.md | 1 + query-languages/m/list-generate.md | 1 + query-languages/m/list-insertrange.md | 1 + query-languages/m/list-intersect.md | 1 + query-languages/m/list-isdistinct.md | 1 + query-languages/m/list-isempty.md | 1 + query-languages/m/list-last.md | 1 + query-languages/m/list-lastn.md | 1 + query-languages/m/list-matchesall.md | 1 + query-languages/m/list-matchesany.md | 1 + query-languages/m/list-max.md | 1 + query-languages/m/list-maxn.md | 1 + query-languages/m/list-median.md | 1 + query-languages/m/list-min.md | 1 + query-languages/m/list-minn.md | 1 + query-languages/m/list-mode.md | 1 + query-languages/m/list-modes.md | 1 + query-languages/m/list-nonnullcount.md | 1 + query-languages/m/list-numbers.md | 1 + query-languages/m/list-percentile.md | 1 + query-languages/m/list-positionof.md | 1 + query-languages/m/list-positionofany.md | 1 + query-languages/m/list-positions.md | 1 + query-languages/m/list-product.md | 1 + query-languages/m/list-random.md | 1 + query-languages/m/list-range.md | 1 + query-languages/m/list-removefirstn.md | 1 + query-languages/m/list-removeitems.md | 1 + query-languages/m/list-removelastn.md | 1 + query-languages/m/list-removematchingitems.md | 1 + query-languages/m/list-removenulls.md | 1 + query-languages/m/list-removerange.md | 1 + query-languages/m/list-repeat.md | 1 + query-languages/m/list-replacematchingitems.md | 1 + query-languages/m/list-replacerange.md | 1 + query-languages/m/list-replacevalue.md | 1 + query-languages/m/list-reverse.md | 1 + query-languages/m/list-select.md | 1 + query-languages/m/list-single.md | 1 + query-languages/m/list-singleordefault.md | 1 + query-languages/m/list-skip.md | 1 + query-languages/m/list-sort.md | 1 + query-languages/m/list-split.md | 1 + query-languages/m/list-standarddeviation.md | 1 + query-languages/m/list-sum.md | 1 + query-languages/m/list-times.md | 1 + query-languages/m/list-transform.md | 1 + query-languages/m/list-transformmany.md | 1 + query-languages/m/list-union.md | 1 + query-languages/m/list-zip.md | 1 + query-languages/m/logical-from.md | 1 + query-languages/m/logical-fromtext.md | 1 + query-languages/m/logical-totext.md | 1 + query-languages/m/m-spec-basic-concepts.md | 2 ++ query-languages/m/m-spec-conditionals.md | 1 + query-languages/m/m-spec-consolidated-grammar.md | 1 + query-languages/m/m-spec-error-handling.md | 1 + query-languages/m/m-spec-functions.md | 1 + query-languages/m/m-spec-introduction.md | 1 + query-languages/m/m-spec-let.md | 1 + query-languages/m/m-spec-lexical-structure.md | 1 + query-languages/m/m-spec-operators.md | 1 + query-languages/m/m-spec-sections.md | 1 + query-languages/m/m-spec-types.md | 1 + query-languages/m/m-spec-values.md | 1 + query-languages/m/metadata.md | 1 + query-languages/m/missingfield-type.md | 1 + query-languages/m/module-versions.md | 1 + query-languages/m/mysql-database.md | 1 + query-languages/m/number-abs.md | 1 + query-languages/m/number-acos.md | 1 + query-languages/m/number-asin.md | 1 + query-languages/m/number-atan.md | 1 + query-languages/m/number-atan2.md | 1 + query-languages/m/number-bitwiseand.md | 1 + query-languages/m/number-bitwisenot.md | 1 + query-languages/m/number-bitwiseor.md | 1 + query-languages/m/number-bitwiseshiftleft.md | 1 + query-languages/m/number-bitwiseshiftright.md | 1 + query-languages/m/number-bitwisexor.md | 1 + query-languages/m/number-combinations.md | 1 + query-languages/m/number-cos.md | 1 + query-languages/m/number-cosh.md | 1 + query-languages/m/number-e.md | 1 + query-languages/m/number-epsilon.md | 1 + query-languages/m/number-exp.md | 1 + query-languages/m/number-factorial.md | 1 + query-languages/m/number-from.md | 1 + query-languages/m/number-fromtext.md | 1 + query-languages/m/number-integerdivide.md | 1 + query-languages/m/number-iseven.md | 1 + query-languages/m/number-isnan.md | 1 + query-languages/m/number-isodd.md | 1 + query-languages/m/number-ln.md | 1 + query-languages/m/number-log.md | 1 + query-languages/m/number-log10.md | 1 + query-languages/m/number-mod.md | 1 + query-languages/m/number-nan.md | 1 + query-languages/m/number-negativeinfinity.md | 1 + query-languages/m/number-permutations.md | 1 + query-languages/m/number-pi.md | 1 + query-languages/m/number-positiveinfinity.md | 1 + query-languages/m/number-power.md | 1 + query-languages/m/number-random.md | 1 + query-languages/m/number-randombetween.md | 1 + query-languages/m/number-round.md | 1 + query-languages/m/number-roundawayfromzero.md | 1 + query-languages/m/number-rounddown.md | 1 + query-languages/m/number-roundtowardzero.md | 1 + query-languages/m/number-roundup.md | 1 + query-languages/m/number-sign.md | 1 + query-languages/m/number-sin.md | 1 + query-languages/m/number-sinh.md | 1 + query-languages/m/number-sqrt.md | 1 + query-languages/m/number-tan.md | 1 + query-languages/m/number-tanh.md | 1 + query-languages/m/number-totext.md | 1 + query-languages/m/occurrence-type.md | 1 + query-languages/m/odata-feed.md | 1 + query-languages/m/odataomitvalues-type.md | 1 + query-languages/m/odbc-datasource.md | 1 + query-languages/m/odbc-inferoptions.md | 1 + query-languages/m/odbc-query.md | 1 + query-languages/m/oledb-datasource.md | 1 + query-languages/m/oledb-query.md | 1 + query-languages/m/operators.md | 1 + query-languages/m/oracle-database.md | 1 + query-languages/m/order-type.md | 1 + query-languages/m/pdf-tables.md | 1 + query-languages/m/percentage-from.md | 1 + query-languages/m/percentilemode-type.md | 1 + query-languages/m/postgresql-database.md | 1 + query-languages/m/power-query-m-language-specification.md | 1 + query-languages/m/power-query-m-type-system.md | 1 + query-languages/m/precision-type.md | 1 + query-languages/m/progress-datasourceprogress.md | 1 + .../m/quick-tour-of-the-power-query-m-formula-language.md | 1 + query-languages/m/quotestyle-type.md | 1 + query-languages/m/rankkind-type.md | 1 + query-languages/m/rdata-frombinary.md | 1 + query-languages/m/record-addfield.md | 1 + query-languages/m/record-combine.md | 1 + query-languages/m/record-field.md | 1 + query-languages/m/record-fieldcount.md | 1 + query-languages/m/record-fieldnames.md | 1 + query-languages/m/record-fieldordefault.md | 1 + query-languages/m/record-fieldvalues.md | 1 + query-languages/m/record-fromlist.md | 1 + query-languages/m/record-fromtable.md | 1 + query-languages/m/record-hasfields.md | 1 + query-languages/m/record-removefields.md | 1 + query-languages/m/record-renamefields.md | 1 + query-languages/m/record-reorderfields.md | 1 + query-languages/m/record-selectfields.md | 1 + query-languages/m/record-tolist.md | 1 + query-languages/m/record-totable.md | 1 + query-languages/m/record-transformfields.md | 1 + query-languages/m/relativeposition-type.md | 1 + query-languages/m/replacer-replacetext.md | 1 + query-languages/m/replacer-replacevalue.md | 1 + query-languages/m/roundingmode-type.md | 1 + query-languages/m/rowexpression-column.md | 1 + query-languages/m/rowexpression-from.md | 1 + query-languages/m/rowexpression-row.md | 1 + query-languages/m/salesforce-data.md | 1 + query-languages/m/salesforce-reports.md | 1 + query-languages/m/sapbusinesswarehouse-cubes.md | 1 + query-languages/m/sapbusinesswarehouseexecutionmode-type.md | 1 + query-languages/m/saphana-database.md | 1 + query-languages/m/saphanadistribution-type.md | 1 + query-languages/m/saphanarangeoperator-type.md | 1 + query-languages/m/sharepoint-contents.md | 1 + query-languages/m/sharepoint-files.md | 1 + query-languages/m/sharepoint-tables.md | 1 + query-languages/m/sharpbinary.md | 1 + query-languages/m/sharpdate.md | 1 + query-languages/m/sharpdatetime.md | 1 + query-languages/m/sharpdatetimezone.md | 1 + query-languages/m/sharpduration.md | 1 + query-languages/m/sharptable.md | 1 + query-languages/m/sharptime.md | 1 + query-languages/m/single-from.md | 1 + query-languages/m/soda-feed.md | 1 + query-languages/m/splitter-splitbynothing.md | 1 + query-languages/m/splitter-splittextbyanydelimiter.md | 1 + query-languages/m/splitter-splittextbycharactertransition.md | 1 + query-languages/m/splitter-splittextbydelimiter.md | 1 + query-languages/m/splitter-splittextbyeachdelimiter.md | 1 + query-languages/m/splitter-splittextbylengths.md | 1 + query-languages/m/splitter-splittextbypositions.md | 1 + query-languages/m/splitter-splittextbyranges.md | 1 + query-languages/m/splitter-splittextbyrepeatedlengths.md | 1 + query-languages/m/splitter-splittextbywhitespace.md | 1 + query-languages/m/sql-database.md | 1 + query-languages/m/sql-databases.md | 1 + query-languages/m/sqlexpression-schemafrom.md | 1 + query-languages/m/sqlexpression-toexpression.md | 1 + query-languages/m/standard-date-and-time-format-strings.md | 1 + query-languages/m/standard-numeric-format-strings.md | 1 + query-languages/m/sybase-database.md | 1 + query-languages/m/table-addcolumn.md | 1 + query-languages/m/table-addfuzzyclustercolumn.md | 1 + query-languages/m/table-addindexcolumn.md | 1 + query-languages/m/table-addjoincolumn.md | 1 + query-languages/m/table-addkey.md | 1 + query-languages/m/table-addrankcolumn.md | 1 + query-languages/m/table-aggregatetablecolumn.md | 1 + query-languages/m/table-alternaterows.md | 1 + query-languages/m/table-approximaterowcount.md | 1 + query-languages/m/table-buffer.md | 1 + query-languages/m/table-column.md | 1 + query-languages/m/table-columncount.md | 1 + query-languages/m/table-columnnames.md | 1 + query-languages/m/table-columnsoftype.md | 1 + query-languages/m/table-combine.md | 1 + query-languages/m/table-combinecolumns.md | 1 + query-languages/m/table-combinecolumnstorecord.md | 1 + query-languages/m/table-conformtopagereader.md | 1 + query-languages/m/table-contains.md | 1 + query-languages/m/table-containsall.md | 1 + query-languages/m/table-containsany.md | 1 + query-languages/m/table-demoteheaders.md | 1 + query-languages/m/table-distinct.md | 1 + query-languages/m/table-duplicatecolumn.md | 1 + query-languages/m/table-expandlistcolumn.md | 1 + query-languages/m/table-expandrecordcolumn.md | 1 + query-languages/m/table-expandtablecolumn.md | 1 + query-languages/m/table-filldown.md | 1 + query-languages/m/table-fillup.md | 1 + query-languages/m/table-filterwithdatatable.md | 1 + query-languages/m/table-findtext.md | 1 + query-languages/m/table-first.md | 1 + query-languages/m/table-firstn.md | 1 + query-languages/m/table-firstvalue.md | 1 + query-languages/m/table-fromcolumns.md | 1 + query-languages/m/table-fromlist.md | 1 + query-languages/m/table-frompartitions.md | 1 + query-languages/m/table-fromrecords.md | 1 + query-languages/m/table-fromrows.md | 1 + query-languages/m/table-fromvalue.md | 1 + query-languages/m/table-functions.md | 1 + query-languages/m/table-fuzzygroup.md | 1 + query-languages/m/table-fuzzyjoin.md | 1 + query-languages/m/table-fuzzynestedjoin.md | 1 + query-languages/m/table-group.md | 1 + query-languages/m/table-hascolumns.md | 1 + query-languages/m/table-insertrows.md | 1 + query-languages/m/table-isdistinct.md | 1 + query-languages/m/table-isempty.md | 1 + query-languages/m/table-join.md | 1 + query-languages/m/table-keys.md | 1 + query-languages/m/table-last.md | 1 + query-languages/m/table-lastn.md | 1 + query-languages/m/table-matchesallrows.md | 1 + query-languages/m/table-matchesanyrows.md | 1 + query-languages/m/table-max.md | 1 + query-languages/m/table-maxn.md | 1 + query-languages/m/table-min.md | 1 + query-languages/m/table-minn.md | 1 + query-languages/m/table-nestedjoin.md | 1 + query-languages/m/table-partition.md | 1 + query-languages/m/table-partitionvalues.md | 1 + query-languages/m/table-pivot.md | 1 + query-languages/m/table-positionof.md | 1 + query-languages/m/table-positionofany.md | 1 + query-languages/m/table-prefixcolumns.md | 1 + query-languages/m/table-profile.md | 1 + query-languages/m/table-promoteheaders.md | 1 + query-languages/m/table-range.md | 1 + query-languages/m/table-removecolumns.md | 1 + query-languages/m/table-removefirstn.md | 1 + query-languages/m/table-removelastn.md | 1 + query-languages/m/table-removematchingrows.md | 1 + query-languages/m/table-removerows.md | 1 + query-languages/m/table-removerowswitherrors.md | 1 + query-languages/m/table-renamecolumns.md | 1 + query-languages/m/table-reordercolumns.md | 1 + query-languages/m/table-repeat.md | 1 + query-languages/m/table-replaceerrorvalues.md | 1 + query-languages/m/table-replacekeys.md | 1 + query-languages/m/table-replacematchingrows.md | 1 + query-languages/m/table-replacerelationshipidentity.md | 1 + query-languages/m/table-replacerows.md | 1 + query-languages/m/table-replacevalue.md | 1 + query-languages/m/table-reverserows.md | 1 + query-languages/m/table-rowcount.md | 1 + query-languages/m/table-schema.md | 1 + query-languages/m/table-selectcolumns.md | 1 + query-languages/m/table-selectrows.md | 1 + query-languages/m/table-selectrowswitherrors.md | 1 + query-languages/m/table-singlerow.md | 1 + query-languages/m/table-skip.md | 1 + query-languages/m/table-sort.md | 1 + query-languages/m/table-split.md | 1 + query-languages/m/table-splitat.md | 1 + query-languages/m/table-splitcolumn.md | 1 + query-languages/m/table-stopfolding.md | 1 + query-languages/m/table-tocolumns.md | 1 + query-languages/m/table-tolist.md | 1 + query-languages/m/table-torecords.md | 1 + query-languages/m/table-torows.md | 1 + query-languages/m/table-transformcolumnnames.md | 1 + query-languages/m/table-transformcolumns.md | 1 + query-languages/m/table-transformcolumntypes.md | 1 + query-languages/m/table-transformrows.md | 1 + query-languages/m/table-transpose.md | 1 + query-languages/m/table-unpivot.md | 1 + query-languages/m/table-unpivotothercolumns.md | 1 + query-languages/m/table-view.md | 1 + query-languages/m/table-viewerror.md | 1 + query-languages/m/table-viewfunction.md | 1 + query-languages/m/table-witherrorcontext.md | 1 + query-languages/m/tables-getrelationships.md | 1 + query-languages/m/teradata-database.md | 1 + query-languages/m/text-afterdelimiter.md | 1 + query-languages/m/text-at.md | 1 + query-languages/m/text-beforedelimiter.md | 1 + query-languages/m/text-betweendelimiters.md | 1 + query-languages/m/text-clean.md | 1 + query-languages/m/text-combine.md | 1 + query-languages/m/text-contains.md | 1 + query-languages/m/text-end.md | 1 + query-languages/m/text-endswith.md | 1 + query-languages/m/text-format.md | 1 + query-languages/m/text-from.md | 1 + query-languages/m/text-frombinary.md | 1 + query-languages/m/text-infernumbertype.md | 1 + query-languages/m/text-insert.md | 1 + query-languages/m/text-length.md | 1 + query-languages/m/text-lower.md | 1 + query-languages/m/text-middle.md | 1 + query-languages/m/text-newguid.md | 1 + query-languages/m/text-padend.md | 1 + query-languages/m/text-padstart.md | 1 + query-languages/m/text-positionof.md | 1 + query-languages/m/text-positionofany.md | 1 + query-languages/m/text-proper.md | 1 + query-languages/m/text-range.md | 1 + query-languages/m/text-remove.md | 1 + query-languages/m/text-removerange.md | 1 + query-languages/m/text-repeat.md | 1 + query-languages/m/text-replace.md | 1 + query-languages/m/text-replacerange.md | 1 + query-languages/m/text-reverse.md | 1 + query-languages/m/text-select.md | 1 + query-languages/m/text-split.md | 1 + query-languages/m/text-splitany.md | 1 + query-languages/m/text-start.md | 1 + query-languages/m/text-startswith.md | 1 + query-languages/m/text-tobinary.md | 1 + query-languages/m/text-tolist.md | 1 + query-languages/m/text-trim.md | 1 + query-languages/m/text-trimend.md | 1 + query-languages/m/text-trimstart.md | 1 + query-languages/m/text-upper.md | 1 + query-languages/m/textencoding-type.md | 1 + query-languages/m/time-endofhour.md | 1 + query-languages/m/time-from.md | 1 + query-languages/m/time-fromtext.md | 1 + query-languages/m/time-hour.md | 1 + query-languages/m/time-minute.md | 1 + query-languages/m/time-second.md | 1 + query-languages/m/time-startofhour.md | 1 + query-languages/m/time-torecord.md | 1 + query-languages/m/time-totext.md | 1 + query-languages/m/timezone-current.md | 1 + query-languages/m/tracelevel-type.md | 1 + query-languages/m/type-addtablekey.md | 1 + query-languages/m/type-closedrecord.md | 1 + query-languages/m/type-conversion.md | 1 + query-languages/m/type-facets.md | 1 + query-languages/m/type-forfunction.md | 1 + query-languages/m/type-forrecord.md | 1 + query-languages/m/type-functionparameters.md | 1 + query-languages/m/type-functionrequiredparameters.md | 1 + query-languages/m/type-functionreturn.md | 1 + query-languages/m/type-is.md | 1 + query-languages/m/type-isnullable.md | 1 + query-languages/m/type-isopenrecord.md | 1 + query-languages/m/type-listitem.md | 1 + query-languages/m/type-nonnullable.md | 1 + query-languages/m/type-openrecord.md | 1 + query-languages/m/type-recordfields.md | 1 + query-languages/m/type-replacefacets.md | 1 + query-languages/m/type-replacetablekeys.md | 1 + query-languages/m/type-tablecolumn.md | 1 + query-languages/m/type-tablekeys.md | 1 + query-languages/m/type-tablerow.md | 1 + query-languages/m/type-tableschema.md | 1 + query-languages/m/type-union.md | 1 + query-languages/m/understanding-power-query-m-functions.md | 1 + query-languages/m/uri-buildquerystring.md | 1 + query-languages/m/uri-combine.md | 1 + query-languages/m/uri-escapedatastring.md | 1 + query-languages/m/uri-parts.md | 1 + query-languages/m/value-add.md | 1 + query-languages/m/value-alternates.md | 1 + query-languages/m/value-as.md | 1 + query-languages/m/value-compare.md | 1 + query-languages/m/value-divide.md | 1 + query-languages/m/value-equals.md | 1 + query-languages/m/value-expression.md | 1 + query-languages/m/value-firewall.md | 1 + query-languages/m/value-fromtext.md | 1 + query-languages/m/value-is.md | 1 + query-languages/m/value-lineage.md | 1 + query-languages/m/value-metadata.md | 1 + query-languages/m/value-multiply.md | 1 + query-languages/m/value-nativequery.md | 1 + query-languages/m/value-nullableequals.md | 1 + query-languages/m/value-optimize.md | 1 + query-languages/m/value-removemetadata.md | 1 + query-languages/m/value-replacemetadata.md | 1 + query-languages/m/value-replacetype.md | 1 + query-languages/m/value-subtract.md | 1 + query-languages/m/value-traits.md | 1 + query-languages/m/value-type.md | 1 + query-languages/m/value-versionidentity.md | 1 + query-languages/m/value-versions.md | 1 + query-languages/m/value-viewerror.md | 1 + query-languages/m/value-viewfunction.md | 1 + query-languages/m/variable-value.md | 1 + query-languages/m/web-browsercontents.md | 1 + query-languages/m/web-contents.md | 1 + query-languages/m/web-headers.md | 1 + query-languages/m/web-page.md | 1 + query-languages/m/webaction-request.md | 1 + query-languages/m/webmethod-type.md | 1 + query-languages/m/xml-document.md | 1 + query-languages/m/xml-tables.md | 1 + 724 files changed, 728 insertions(+) diff --git a/query-languages/m/access-database.md b/query-languages/m/access-database.md index af89e4749..7684b72bf 100644 --- a/query-languages/m/access-database.md +++ b/query-languages/m/access-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Access.Database" title: "Access.Database" +ms.subservice: m-source --- # Access.Database diff --git a/query-languages/m/accesscontrolentry-conditiontoidentities.md b/query-languages/m/accesscontrolentry-conditiontoidentities.md index d4bb8ce68..7c235a8af 100644 --- a/query-languages/m/accesscontrolentry-conditiontoidentities.md +++ b/query-languages/m/accesscontrolentry-conditiontoidentities.md @@ -1,7 +1,9 @@ --- description: "Learn more about: AccessControlEntry.ConditionToIdentities" title: "AccessControlEntry.ConditionToIdentities" +ms.subservice: m-source --- + # AccessControlEntry.ConditionToIdentities ## Syntax diff --git a/query-languages/m/accesscontrolkind-type.md b/query-languages/m/accesscontrolkind-type.md index b201f03d4..9d24f151f 100644 --- a/query-languages/m/accesscontrolkind-type.md +++ b/query-languages/m/accesscontrolkind-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AccessControlKind.Type" title: "AccessControlKind.Type" +ms.subservice: m-source --- # AccessControlKind.Type diff --git a/query-languages/m/action-witherrorcontext.md b/query-languages/m/action-witherrorcontext.md index 3014f292e..c86ffc48e 100644 --- a/query-languages/m/action-witherrorcontext.md +++ b/query-languages/m/action-witherrorcontext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Action.WithErrorContext" title: "Action.WithErrorContext" +ms.subservice: m-source --- # Action.WithErrorContext diff --git a/query-languages/m/activedirectory-domains.md b/query-languages/m/activedirectory-domains.md index 258768ffa..500996959 100644 --- a/query-languages/m/activedirectory-domains.md +++ b/query-languages/m/activedirectory-domains.md @@ -1,6 +1,7 @@ --- description: "Learn more about: ActiveDirectory.Domains" title: "ActiveDirectory.Domains" +ms.subservice: m-source --- # ActiveDirectory.Domains diff --git a/query-languages/m/adobeanalytics-cubes.md b/query-languages/m/adobeanalytics-cubes.md index c7f70d952..5b11090f9 100644 --- a/query-languages/m/adobeanalytics-cubes.md +++ b/query-languages/m/adobeanalytics-cubes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AdobeAnalytics.Cubes" title: "AdobeAnalytics.Cubes" +ms.subservice: m-source --- # AdobeAnalytics.Cubes diff --git a/query-languages/m/adodotnet-datasource.md b/query-languages/m/adodotnet-datasource.md index 7e94765f9..7bf500d5a 100644 --- a/query-languages/m/adodotnet-datasource.md +++ b/query-languages/m/adodotnet-datasource.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AdoDotNet.DataSource" title: "AdoDotNet.DataSource" +ms.subservice: m-source --- # AdoDotNet.DataSource diff --git a/query-languages/m/adodotnet-query.md b/query-languages/m/adodotnet-query.md index 1e02e9e81..fec29195e 100644 --- a/query-languages/m/adodotnet-query.md +++ b/query-languages/m/adodotnet-query.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AdoDotNet.Query" title: "AdoDotNet.Query" +ms.subservice: m-source --- # AdoDotNet.Query diff --git a/query-languages/m/analysisservices-database.md b/query-languages/m/analysisservices-database.md index cfd40969b..284542ab5 100644 --- a/query-languages/m/analysisservices-database.md +++ b/query-languages/m/analysisservices-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AnalysisServices.Database" title: "AnalysisServices.Database" +ms.subservice: m-source --- # AnalysisServices.Database diff --git a/query-languages/m/analysisservices-databases.md b/query-languages/m/analysisservices-databases.md index 88353dc88..e78504509 100644 --- a/query-languages/m/analysisservices-databases.md +++ b/query-languages/m/analysisservices-databases.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AnalysisServices.Databases" title: "AnalysisServices.Databases" +ms.subservice: m-source --- # AnalysisServices.Databases diff --git a/query-languages/m/azurestorage-blobcontents.md b/query-languages/m/azurestorage-blobcontents.md index 988d27554..e18362fcd 100644 --- a/query-languages/m/azurestorage-blobcontents.md +++ b/query-languages/m/azurestorage-blobcontents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AzureStorage.BlobContents" title: "AzureStorage.BlobContents" +ms.subservice: m-source --- # AzureStorage.BlobContents diff --git a/query-languages/m/azurestorage-blobs.md b/query-languages/m/azurestorage-blobs.md index 36c6f44dc..42713f835 100644 --- a/query-languages/m/azurestorage-blobs.md +++ b/query-languages/m/azurestorage-blobs.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AzureStorage.Blobs" title: "AzureStorage.Blobs" +ms.subservice: m-source --- # AzureStorage.Blobs diff --git a/query-languages/m/azurestorage-datalake.md b/query-languages/m/azurestorage-datalake.md index 3edb01dca..09bef5ba6 100644 --- a/query-languages/m/azurestorage-datalake.md +++ b/query-languages/m/azurestorage-datalake.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AzureStorage.DataLake" title: "AzureStorage.DataLake" +ms.subservice: m-source --- # AzureStorage.DataLake diff --git a/query-languages/m/azurestorage-datalakecontents.md b/query-languages/m/azurestorage-datalakecontents.md index 0051ea59b..6a5dab2c6 100644 --- a/query-languages/m/azurestorage-datalakecontents.md +++ b/query-languages/m/azurestorage-datalakecontents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AzureStorage.DataLakeContents" title: "AzureStorage.DataLakeContents" +ms.subservice: m-source --- # AzureStorage.DataLakeContents diff --git a/query-languages/m/azurestorage-tables.md b/query-languages/m/azurestorage-tables.md index 20acd7fb5..560ac99bf 100644 --- a/query-languages/m/azurestorage-tables.md +++ b/query-languages/m/azurestorage-tables.md @@ -1,6 +1,7 @@ --- description: "Learn more about: AzureStorage.Tables" title: "AzureStorage.Tables" +ms.subservice: m-source --- # AzureStorage.Tables diff --git a/query-languages/m/binary-approximatelength.md b/query-languages/m/binary-approximatelength.md index 3d8ccb16a..9b2ceb7ce 100644 --- a/query-languages/m/binary-approximatelength.md +++ b/query-languages/m/binary-approximatelength.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.ApproximateLength" title: "Binary.ApproximateLength" +ms.subservice: m-source --- # Binary.ApproximateLength diff --git a/query-languages/m/binary-buffer.md b/query-languages/m/binary-buffer.md index 55520e3f0..a7bc71345 100644 --- a/query-languages/m/binary-buffer.md +++ b/query-languages/m/binary-buffer.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.Buffer" title: "Binary.Buffer" +ms.subservice: m-source --- # Binary.Buffer diff --git a/query-languages/m/binary-combine.md b/query-languages/m/binary-combine.md index 56038484b..c4f58f05b 100644 --- a/query-languages/m/binary-combine.md +++ b/query-languages/m/binary-combine.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.Combine" title: "Binary.Combine" +ms.subservice: m-source --- # Binary.Combine diff --git a/query-languages/m/binary-compress.md b/query-languages/m/binary-compress.md index 08089a5ec..2d441b753 100644 --- a/query-languages/m/binary-compress.md +++ b/query-languages/m/binary-compress.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.Compress" title: "Binary.Compress" +ms.subservice: m-source --- # Binary.Compress diff --git a/query-languages/m/binary-decompress.md b/query-languages/m/binary-decompress.md index 912f5cd41..aab17f3f7 100644 --- a/query-languages/m/binary-decompress.md +++ b/query-languages/m/binary-decompress.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.Decompress" title: "Binary.Decompress" +ms.subservice: m-source --- # Binary.Decompress diff --git a/query-languages/m/binary-from.md b/query-languages/m/binary-from.md index b3dbf7bf4..46780c569 100644 --- a/query-languages/m/binary-from.md +++ b/query-languages/m/binary-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.From" title: "Binary.From" +ms.subservice: m-source --- # Binary.From diff --git a/query-languages/m/binary-fromlist.md b/query-languages/m/binary-fromlist.md index a2a4dc555..1ff4f7cbf 100644 --- a/query-languages/m/binary-fromlist.md +++ b/query-languages/m/binary-fromlist.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.FromList" title: "Binary.FromList" +ms.subservice: m-source --- # Binary.FromList diff --git a/query-languages/m/binary-fromtext.md b/query-languages/m/binary-fromtext.md index 2d09cf0b7..bf892a198 100644 --- a/query-languages/m/binary-fromtext.md +++ b/query-languages/m/binary-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.FromText" title: "Binary.FromText" +ms.subservice: m-source --- # Binary.FromText diff --git a/query-languages/m/binary-infercontenttype.md b/query-languages/m/binary-infercontenttype.md index 5733e34d6..e43225bcd 100644 --- a/query-languages/m/binary-infercontenttype.md +++ b/query-languages/m/binary-infercontenttype.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.InferContentType" title: "Binary.InferContentType" +ms.subservice: m-source --- # Binary.InferContentType diff --git a/query-languages/m/binary-length.md b/query-languages/m/binary-length.md index 40fcc9397..f2fdc6420 100644 --- a/query-languages/m/binary-length.md +++ b/query-languages/m/binary-length.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.Length" title: "Binary.Length" +ms.subservice: m-source --- # Binary.Length diff --git a/query-languages/m/binary-range.md b/query-languages/m/binary-range.md index 32c8bd5a9..4530ad271 100644 --- a/query-languages/m/binary-range.md +++ b/query-languages/m/binary-range.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.Range" title: "Binary.Range" +ms.subservice: m-source --- # Binary.Range diff --git a/query-languages/m/binary-split.md b/query-languages/m/binary-split.md index 1436b9118..a3d19374b 100644 --- a/query-languages/m/binary-split.md +++ b/query-languages/m/binary-split.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.Split" title: "Binary.Split" +ms.subservice: m-source --- # Binary.Split diff --git a/query-languages/m/binary-tolist.md b/query-languages/m/binary-tolist.md index a3218d280..4d85451ce 100644 --- a/query-languages/m/binary-tolist.md +++ b/query-languages/m/binary-tolist.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.ToList" title: "Binary.ToList" +ms.subservice: m-source --- # Binary.ToList diff --git a/query-languages/m/binary-totext.md b/query-languages/m/binary-totext.md index 071e95e9c..3130bd36d 100644 --- a/query-languages/m/binary-totext.md +++ b/query-languages/m/binary-totext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.ToText" title: "Binary.ToText" +ms.subservice: m-source --- # Binary.ToText diff --git a/query-languages/m/binary-view.md b/query-languages/m/binary-view.md index ba511adbb..adcc3d5d3 100644 --- a/query-languages/m/binary-view.md +++ b/query-languages/m/binary-view.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.View" title: "Binary.View" +ms.subservice: m-source --- # Binary.View diff --git a/query-languages/m/binary-viewerror.md b/query-languages/m/binary-viewerror.md index 88c872e90..b764ea6a6 100644 --- a/query-languages/m/binary-viewerror.md +++ b/query-languages/m/binary-viewerror.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.ViewError" title: "Binary.ViewError" +ms.subservice: m-source --- # Binary.ViewError diff --git a/query-languages/m/binary-viewfunction.md b/query-languages/m/binary-viewfunction.md index 73b51ad09..1fa9d2de7 100644 --- a/query-languages/m/binary-viewfunction.md +++ b/query-languages/m/binary-viewfunction.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Binary.ViewFunction" title: "Binary.ViewFunction" +ms.subservice: m-source --- # Binary.ViewFunction diff --git a/query-languages/m/binaryencoding-type.md b/query-languages/m/binaryencoding-type.md index 9655682e2..de5dfab68 100644 --- a/query-languages/m/binaryencoding-type.md +++ b/query-languages/m/binaryencoding-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryEncoding.Type" title: "BinaryEncoding.Type" +ms.subservice: m-source --- # BinaryEncoding.Type diff --git a/query-languages/m/binaryformat-7bitencodedsignedinteger.md b/query-languages/m/binaryformat-7bitencodedsignedinteger.md index 36b322b0e..560138d9a 100644 --- a/query-languages/m/binaryformat-7bitencodedsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedsignedinteger.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.7BitEncodedSignedInteger" title: "BinaryFormat.7BitEncodedSignedInteger" +ms.subservice: m-source --- # BinaryFormat.7BitEncodedSignedInteger diff --git a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md index 167b4b274..fb9c95dae 100644 --- a/query-languages/m/binaryformat-7bitencodedunsignedinteger.md +++ b/query-languages/m/binaryformat-7bitencodedunsignedinteger.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.7BitEncodedUnsignedInteger" title: "BinaryFormat.7BitEncodedUnsignedInteger" +ms.subservice: m-source --- # BinaryFormat.7BitEncodedUnsignedInteger diff --git a/query-languages/m/binaryformat-binary.md b/query-languages/m/binaryformat-binary.md index a446e5535..0414a6f99 100644 --- a/query-languages/m/binaryformat-binary.md +++ b/query-languages/m/binaryformat-binary.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Binary" title: "BinaryFormat.Binary" +ms.subservice: m-source --- # BinaryFormat.Binary diff --git a/query-languages/m/binaryformat-byte.md b/query-languages/m/binaryformat-byte.md index 00261c535..43d19b271 100644 --- a/query-languages/m/binaryformat-byte.md +++ b/query-languages/m/binaryformat-byte.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Byte" title: "BinaryFormat.Byte" +ms.subservice: m-source --- # BinaryFormat.Byte diff --git a/query-languages/m/binaryformat-byteorder.md b/query-languages/m/binaryformat-byteorder.md index 23a9bd270..9eb863c13 100644 --- a/query-languages/m/binaryformat-byteorder.md +++ b/query-languages/m/binaryformat-byteorder.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.ByteOrder" title: "BinaryFormat.ByteOrder" +ms.subservice: m-source --- # BinaryFormat.ByteOrder diff --git a/query-languages/m/binaryformat-choice.md b/query-languages/m/binaryformat-choice.md index 094ab9159..29e22f652 100644 --- a/query-languages/m/binaryformat-choice.md +++ b/query-languages/m/binaryformat-choice.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Choice" title: "BinaryFormat.Choice" +ms.subservice: m-source --- # BinaryFormat.Choice diff --git a/query-languages/m/binaryformat-decimal.md b/query-languages/m/binaryformat-decimal.md index 2edb13cad..9bbf584f9 100644 --- a/query-languages/m/binaryformat-decimal.md +++ b/query-languages/m/binaryformat-decimal.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Decimal" title: "BinaryFormat.Decimal" +ms.subservice: m-source --- # BinaryFormat.Decimal diff --git a/query-languages/m/binaryformat-double.md b/query-languages/m/binaryformat-double.md index 6ba9a960a..8a6a21414 100644 --- a/query-languages/m/binaryformat-double.md +++ b/query-languages/m/binaryformat-double.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Double" title: "BinaryFormat.Double" +ms.subservice: m-source --- # BinaryFormat.Double diff --git a/query-languages/m/binaryformat-group.md b/query-languages/m/binaryformat-group.md index 81057b234..0ce0fce43 100644 --- a/query-languages/m/binaryformat-group.md +++ b/query-languages/m/binaryformat-group.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Group" title: "BinaryFormat.Group" +ms.subservice: m-source --- # BinaryFormat.Group diff --git a/query-languages/m/binaryformat-length.md b/query-languages/m/binaryformat-length.md index f3c8843c8..f2756e2ad 100644 --- a/query-languages/m/binaryformat-length.md +++ b/query-languages/m/binaryformat-length.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Length" title: "BinaryFormat.Length" +ms.subservice: m-source --- # BinaryFormat.Length diff --git a/query-languages/m/binaryformat-list.md b/query-languages/m/binaryformat-list.md index 8e96505a1..85a89e079 100644 --- a/query-languages/m/binaryformat-list.md +++ b/query-languages/m/binaryformat-list.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.List" title: "BinaryFormat.List" +ms.subservice: m-source --- # BinaryFormat.List diff --git a/query-languages/m/binaryformat-null.md b/query-languages/m/binaryformat-null.md index 14e3218fa..e3f2fe297 100644 --- a/query-languages/m/binaryformat-null.md +++ b/query-languages/m/binaryformat-null.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Null" title: "BinaryFormat.Null" +ms.subservice: m-source --- # BinaryFormat.Null diff --git a/query-languages/m/binaryformat-record.md b/query-languages/m/binaryformat-record.md index 28cbcba51..0b949ab85 100644 --- a/query-languages/m/binaryformat-record.md +++ b/query-languages/m/binaryformat-record.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Record" title: "BinaryFormat.Record" +ms.subservice: m-source --- # BinaryFormat.Record diff --git a/query-languages/m/binaryformat-signedinteger16.md b/query-languages/m/binaryformat-signedinteger16.md index b4017d4cf..e65ef7bcd 100644 --- a/query-languages/m/binaryformat-signedinteger16.md +++ b/query-languages/m/binaryformat-signedinteger16.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.SignedInteger16" title: "BinaryFormat.SignedInteger16" +ms.subservice: m-source --- # BinaryFormat.SignedInteger16 diff --git a/query-languages/m/binaryformat-signedinteger32.md b/query-languages/m/binaryformat-signedinteger32.md index d33c91142..12e1f6041 100644 --- a/query-languages/m/binaryformat-signedinteger32.md +++ b/query-languages/m/binaryformat-signedinteger32.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.SignedInteger32" title: "BinaryFormat.SignedInteger32" +ms.subservice: m-source --- # BinaryFormat.SignedInteger32 diff --git a/query-languages/m/binaryformat-signedinteger64.md b/query-languages/m/binaryformat-signedinteger64.md index 807a05577..b477d3040 100644 --- a/query-languages/m/binaryformat-signedinteger64.md +++ b/query-languages/m/binaryformat-signedinteger64.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.SignedInteger64" title: "BinaryFormat.SignedInteger64" +ms.subservice: m-source --- # BinaryFormat.SignedInteger64 diff --git a/query-languages/m/binaryformat-single.md b/query-languages/m/binaryformat-single.md index afe19ea56..02e6e7115 100644 --- a/query-languages/m/binaryformat-single.md +++ b/query-languages/m/binaryformat-single.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Single" title: "BinaryFormat.Single" +ms.subservice: m-source --- # BinaryFormat.Single diff --git a/query-languages/m/binaryformat-text.md b/query-languages/m/binaryformat-text.md index d752bda91..351da76a1 100644 --- a/query-languages/m/binaryformat-text.md +++ b/query-languages/m/binaryformat-text.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Text" title: "BinaryFormat.Text" +ms.subservice: m-source --- # BinaryFormat.Text diff --git a/query-languages/m/binaryformat-transform.md b/query-languages/m/binaryformat-transform.md index a21f6e0e2..66be2169c 100644 --- a/query-languages/m/binaryformat-transform.md +++ b/query-languages/m/binaryformat-transform.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.Transform" title: "BinaryFormat.Transform" +ms.subservice: m-source --- # BinaryFormat.Transform diff --git a/query-languages/m/binaryformat-unsignedinteger16.md b/query-languages/m/binaryformat-unsignedinteger16.md index 6c133ab24..944243897 100644 --- a/query-languages/m/binaryformat-unsignedinteger16.md +++ b/query-languages/m/binaryformat-unsignedinteger16.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger16" title: "BinaryFormat.UnsignedInteger16" +ms.subservice: m-source --- # BinaryFormat.UnsignedInteger16 diff --git a/query-languages/m/binaryformat-unsignedinteger32.md b/query-languages/m/binaryformat-unsignedinteger32.md index 34ef0186c..bb208e530 100644 --- a/query-languages/m/binaryformat-unsignedinteger32.md +++ b/query-languages/m/binaryformat-unsignedinteger32.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger32" title: "BinaryFormat.UnsignedInteger32" +ms.subservice: m-source --- # BinaryFormat.UnsignedInteger32 diff --git a/query-languages/m/binaryformat-unsignedinteger64.md b/query-languages/m/binaryformat-unsignedinteger64.md index 3ab7d1578..1a10d4638 100644 --- a/query-languages/m/binaryformat-unsignedinteger64.md +++ b/query-languages/m/binaryformat-unsignedinteger64.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryFormat.UnsignedInteger64" title: "BinaryFormat.UnsignedInteger64" +ms.subservice: m-source --- # BinaryFormat.UnsignedInteger64 diff --git a/query-languages/m/binaryoccurrence-type.md b/query-languages/m/binaryoccurrence-type.md index e2a63505f..3f456d3b3 100644 --- a/query-languages/m/binaryoccurrence-type.md +++ b/query-languages/m/binaryoccurrence-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BinaryOccurrence.Type" title: "BinaryOccurrence.Type" +ms.subservice: m-source --- # BinaryOccurrence.Type diff --git a/query-languages/m/buffermode-type.md b/query-languages/m/buffermode-type.md index 9bd42efdb..8d921d949 100644 --- a/query-languages/m/buffermode-type.md +++ b/query-languages/m/buffermode-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: BufferMode.Type" title: "BufferMode.Type" +ms.subservice: m-source --- # BufferMode.Type diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index f731a99fe..51533c2fe 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Byte.From" title: "Byte.From" +ms.subservice: m-source --- # Byte.From diff --git a/query-languages/m/byteorder-type.md b/query-languages/m/byteorder-type.md index 752c58044..72158784c 100644 --- a/query-languages/m/byteorder-type.md +++ b/query-languages/m/byteorder-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: ByteOrder.Type" title: "ByteOrder.Type" +ms.subservice: m-source --- # ByteOrder.Type diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index a91aea845..c7b6f0221 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cdm.Contents" title: "Cdm.Contents" +ms.subservice: m-source --- # Cdm.Contents diff --git a/query-languages/m/character-fromnumber.md b/query-languages/m/character-fromnumber.md index 03f8c5659..8af4720ee 100644 --- a/query-languages/m/character-fromnumber.md +++ b/query-languages/m/character-fromnumber.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Character.FromNumber" title: "Character.FromNumber" +ms.subservice: m-source --- # Character.FromNumber diff --git a/query-languages/m/character-tonumber.md b/query-languages/m/character-tonumber.md index 130d18207..c04afa1af 100644 --- a/query-languages/m/character-tonumber.md +++ b/query-languages/m/character-tonumber.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Character.ToNumber" title: "Character.ToNumber" +ms.subservice: m-source --- # Character.ToNumber diff --git a/query-languages/m/combiner-combinetextbydelimiter.md b/query-languages/m/combiner-combinetextbydelimiter.md index 12ab81cf4..f8158b07b 100644 --- a/query-languages/m/combiner-combinetextbydelimiter.md +++ b/query-languages/m/combiner-combinetextbydelimiter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Combiner.CombineTextByDelimiter" title: "Combiner.CombineTextByDelimiter" +ms.subservice: m-source --- # Combiner.CombineTextByDelimiter diff --git a/query-languages/m/combiner-combinetextbyeachdelimiter.md b/query-languages/m/combiner-combinetextbyeachdelimiter.md index 42681fcb1..67e974263 100644 --- a/query-languages/m/combiner-combinetextbyeachdelimiter.md +++ b/query-languages/m/combiner-combinetextbyeachdelimiter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Combiner.CombineTextByEachDelimiter" title: "Combiner.CombineTextByEachDelimiter" +ms.subservice: m-source --- # Combiner.CombineTextByEachDelimiter diff --git a/query-languages/m/combiner-combinetextbylengths.md b/query-languages/m/combiner-combinetextbylengths.md index 64cec4df5..10025d92a 100644 --- a/query-languages/m/combiner-combinetextbylengths.md +++ b/query-languages/m/combiner-combinetextbylengths.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Combiner.CombineTextByLengths" title: "Combiner.CombineTextByLengths" +ms.subservice: m-source --- # Combiner.CombineTextByLengths diff --git a/query-languages/m/combiner-combinetextbypositions.md b/query-languages/m/combiner-combinetextbypositions.md index 1494d02c0..b8081e404 100644 --- a/query-languages/m/combiner-combinetextbypositions.md +++ b/query-languages/m/combiner-combinetextbypositions.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Combiner.CombineTextByPositions" title: "Combiner.CombineTextByPositions" +ms.subservice: m-source --- # Combiner.CombineTextByPositions diff --git a/query-languages/m/combiner-combinetextbyranges.md b/query-languages/m/combiner-combinetextbyranges.md index 8e3c8ff8c..1b9712439 100644 --- a/query-languages/m/combiner-combinetextbyranges.md +++ b/query-languages/m/combiner-combinetextbyranges.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Combiner.CombineTextByRanges" title: "Combiner.CombineTextByRanges" +ms.subservice: m-source --- # Combiner.CombineTextByRanges diff --git a/query-languages/m/comments.md b/query-languages/m/comments.md index fb58953da..6d709d082 100644 --- a/query-languages/m/comments.md +++ b/query-languages/m/comments.md @@ -4,6 +4,7 @@ title: "Comments" ms.topic: conceptual ms.date: 10/7/2022 ms.custom: "nonautomated-date" +ms.subservice: m-background --- # Comments diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index cdb195b43..c31000504 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Comparer.Equals" title: "Comparer.Equals" +ms.subservice: m-source --- # Comparer.Equals diff --git a/query-languages/m/comparer-fromculture.md b/query-languages/m/comparer-fromculture.md index dea3a7b3e..6cf1f3a8e 100644 --- a/query-languages/m/comparer-fromculture.md +++ b/query-languages/m/comparer-fromculture.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Comparer.FromCulture" title: "Comparer.FromCulture" +ms.subservice: m-source --- # Comparer.FromCulture diff --git a/query-languages/m/comparer-ordinal.md b/query-languages/m/comparer-ordinal.md index b1518b015..0526bfcb1 100644 --- a/query-languages/m/comparer-ordinal.md +++ b/query-languages/m/comparer-ordinal.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Comparer.Ordinal" title: "Comparer.Ordinal" +ms.subservice: m-source --- # Comparer.Ordinal diff --git a/query-languages/m/comparer-ordinalignorecase.md b/query-languages/m/comparer-ordinalignorecase.md index 445fc3de4..b2aee4bb0 100644 --- a/query-languages/m/comparer-ordinalignorecase.md +++ b/query-languages/m/comparer-ordinalignorecase.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Comparer.OrdinalIgnoreCase" title: "Comparer.OrdinalIgnoreCase" +ms.subservice: m-source --- # Comparer.OrdinalIgnoreCase diff --git a/query-languages/m/compression-type.md b/query-languages/m/compression-type.md index 967e70ec2..96b498f25 100644 --- a/query-languages/m/compression-type.md +++ b/query-languages/m/compression-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Compression.Type" title: "Compression.Type" +ms.subservice: m-source --- # Compression.Type diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 8428d3319..69451c18f 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Csv.Document" title: "Csv.Document" +ms.subservice: m-source --- # Csv.Document diff --git a/query-languages/m/csvstyle-type.md b/query-languages/m/csvstyle-type.md index 2e04c9023..7b5bcc67a 100644 --- a/query-languages/m/csvstyle-type.md +++ b/query-languages/m/csvstyle-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: CsvStyle.Type" title: "CsvStyle.Type" +ms.subservice: m-source --- # CsvStyle.Type diff --git a/query-languages/m/cube-addandexpanddimensioncolumn.md b/query-languages/m/cube-addandexpanddimensioncolumn.md index f7277d4f9..0a7e09a0c 100644 --- a/query-languages/m/cube-addandexpanddimensioncolumn.md +++ b/query-languages/m/cube-addandexpanddimensioncolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.AddAndExpandDimensionColumn" title: "Cube.AddAndExpandDimensionColumn" +ms.subservice: m-source --- # Cube.AddAndExpandDimensionColumn diff --git a/query-languages/m/cube-addmeasurecolumn.md b/query-languages/m/cube-addmeasurecolumn.md index 777b8ef62..c33ea69ef 100644 --- a/query-languages/m/cube-addmeasurecolumn.md +++ b/query-languages/m/cube-addmeasurecolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.AddMeasureColumn" title: "Cube.AddMeasureColumn" +ms.subservice: m-source --- # Cube.AddMeasureColumn diff --git a/query-languages/m/cube-applyparameter.md b/query-languages/m/cube-applyparameter.md index 6824b1a7f..7b7ac62c7 100644 --- a/query-languages/m/cube-applyparameter.md +++ b/query-languages/m/cube-applyparameter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.ApplyParameter" title: "Cube.ApplyParameter" +ms.subservice: m-source --- # Cube.ApplyParameter diff --git a/query-languages/m/cube-attributememberid.md b/query-languages/m/cube-attributememberid.md index c7c5c99c5..23474f86d 100644 --- a/query-languages/m/cube-attributememberid.md +++ b/query-languages/m/cube-attributememberid.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.AttributeMemberId" title: "Cube.AttributeMemberId" +ms.subservice: m-source --- # Cube.AttributeMemberId diff --git a/query-languages/m/cube-attributememberproperty.md b/query-languages/m/cube-attributememberproperty.md index 6e1d14a31..8d123712a 100644 --- a/query-languages/m/cube-attributememberproperty.md +++ b/query-languages/m/cube-attributememberproperty.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.AttributeMemberProperty" title: "Cube.AttributeMemberProperty" +ms.subservice: m-source --- # Cube.AttributeMemberProperty diff --git a/query-languages/m/cube-collapseandremovecolumns.md b/query-languages/m/cube-collapseandremovecolumns.md index 9da814f58..5180efd7a 100644 --- a/query-languages/m/cube-collapseandremovecolumns.md +++ b/query-languages/m/cube-collapseandremovecolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.CollapseAndRemoveColumns" title: "Cube.CollapseAndRemoveColumns" +ms.subservice: m-source --- # Cube.CollapseAndRemoveColumns diff --git a/query-languages/m/cube-dimensions.md b/query-languages/m/cube-dimensions.md index 3805c6444..819804bca 100644 --- a/query-languages/m/cube-dimensions.md +++ b/query-languages/m/cube-dimensions.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.Dimensions" title: "Cube.Dimensions" +ms.subservice: m-source --- # Cube.Dimensions diff --git a/query-languages/m/cube-displayfolders.md b/query-languages/m/cube-displayfolders.md index 23e0a83be..db1b708a5 100644 --- a/query-languages/m/cube-displayfolders.md +++ b/query-languages/m/cube-displayfolders.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.DisplayFolders" title: "Cube.DisplayFolders" +ms.subservice: m-source --- # Cube.DisplayFolders diff --git a/query-languages/m/cube-measureproperties.md b/query-languages/m/cube-measureproperties.md index 5ccfa0552..cf75182ef 100644 --- a/query-languages/m/cube-measureproperties.md +++ b/query-languages/m/cube-measureproperties.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.MeasureProperties" title: "Cube.MeasureProperties" +ms.subservice: m-source --- # Cube.MeasureProperties diff --git a/query-languages/m/cube-measureproperty.md b/query-languages/m/cube-measureproperty.md index 7e26bb5a7..a8cb9fe8f 100644 --- a/query-languages/m/cube-measureproperty.md +++ b/query-languages/m/cube-measureproperty.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.MeasureProperty" title: "Cube.MeasureProperty" +ms.subservice: m-source --- # Cube.MeasureProperty diff --git a/query-languages/m/cube-measures.md b/query-languages/m/cube-measures.md index 28dd7b1a0..f29da4409 100644 --- a/query-languages/m/cube-measures.md +++ b/query-languages/m/cube-measures.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.Measures" title: "Cube.Measures" +ms.subservice: m-source --- # Cube.Measures diff --git a/query-languages/m/cube-parameters.md b/query-languages/m/cube-parameters.md index 70b005e0f..cb270e0f1 100644 --- a/query-languages/m/cube-parameters.md +++ b/query-languages/m/cube-parameters.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.Parameters" title: "Cube.Parameters" +ms.subservice: m-source --- # Cube.Parameters diff --git a/query-languages/m/cube-properties.md b/query-languages/m/cube-properties.md index 315159e57..88c12a538 100644 --- a/query-languages/m/cube-properties.md +++ b/query-languages/m/cube-properties.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.Properties" title: "Cube.Properties" +ms.subservice: m-source --- # Cube.Properties diff --git a/query-languages/m/cube-propertykey.md b/query-languages/m/cube-propertykey.md index e2beb19d5..5517ebbb8 100644 --- a/query-languages/m/cube-propertykey.md +++ b/query-languages/m/cube-propertykey.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.PropertyKey" title: "Cube.PropertyKey" +ms.subservice: m-source --- # Cube.PropertyKey diff --git a/query-languages/m/cube-replacedimensions.md b/query-languages/m/cube-replacedimensions.md index 6b3962bc6..73c25129e 100644 --- a/query-languages/m/cube-replacedimensions.md +++ b/query-languages/m/cube-replacedimensions.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.ReplaceDimensions" title: "Cube.ReplaceDimensions" +ms.subservice: m-source --- # Cube.ReplaceDimensions diff --git a/query-languages/m/cube-transform.md b/query-languages/m/cube-transform.md index bcd42e4a7..131c9f5d3 100644 --- a/query-languages/m/cube-transform.md +++ b/query-languages/m/cube-transform.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Cube.Transform" title: "Cube.Transform" +ms.subservice: m-source --- # Cube.Transform diff --git a/query-languages/m/culture-current.md b/query-languages/m/culture-current.md index f0e6f7756..124382daa 100644 --- a/query-languages/m/culture-current.md +++ b/query-languages/m/culture-current.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Culture.Current" title: "Culture.Current" +ms.subservice: m-source --- # Culture.Current diff --git a/query-languages/m/currency-from.md b/query-languages/m/currency-from.md index bddea47b9..60592a05c 100644 --- a/query-languages/m/currency-from.md +++ b/query-languages/m/currency-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Currency.From" title: "Currency.From" +ms.subservice: m-source --- # Currency.From diff --git a/query-languages/m/custom-date-and-time-format-strings.md b/query-languages/m/custom-date-and-time-format-strings.md index 6e0f31258..d306154ac 100644 --- a/query-languages/m/custom-date-and-time-format-strings.md +++ b/query-languages/m/custom-date-and-time-format-strings.md @@ -5,6 +5,7 @@ author: DougKlopfenstein ms.author: dougklo ms.date: 10/7/2024 ms.topic: reference +ms.subservice: m-background --- # Custom date and time format strings diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index b5f5770f9..0cab15ee5 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -3,6 +3,7 @@ title: "Custom numeric format strings" description: Learn how to create a custom numeric format string to format numeric data in .NET. A custom numeric format string has one or more custom numeric specifiers. ms.date: 9/30/2024 ms.topic: reference +ms.subservice: m-background --- # Custom numeric format strings diff --git a/query-languages/m/date-adddays.md b/query-languages/m/date-adddays.md index 4526284f9..3b1e6e922 100644 --- a/query-languages/m/date-adddays.md +++ b/query-languages/m/date-adddays.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.AddDays" title: "Date.AddDays" +ms.subservice: m-source --- # Date.AddDays diff --git a/query-languages/m/date-addmonths.md b/query-languages/m/date-addmonths.md index 28f958cf3..402457b7d 100644 --- a/query-languages/m/date-addmonths.md +++ b/query-languages/m/date-addmonths.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.AddMonths" title: "Date.AddMonths" +ms.subservice: m-source --- # Date.AddMonths diff --git a/query-languages/m/date-addquarters.md b/query-languages/m/date-addquarters.md index bcca06312..366bb6641 100644 --- a/query-languages/m/date-addquarters.md +++ b/query-languages/m/date-addquarters.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.AddQuarters" title: "Date.AddQuarters" +ms.subservice: m-source --- # Date.AddQuarters diff --git a/query-languages/m/date-addweeks.md b/query-languages/m/date-addweeks.md index cce6b359c..985d90eb5 100644 --- a/query-languages/m/date-addweeks.md +++ b/query-languages/m/date-addweeks.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.AddWeeks" title: "Date.AddWeeks" +ms.subservice: m-source --- # Date.AddWeeks diff --git a/query-languages/m/date-addyears.md b/query-languages/m/date-addyears.md index 066f58de8..d1f5f8a62 100644 --- a/query-languages/m/date-addyears.md +++ b/query-languages/m/date-addyears.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.AddYears" title: "Date.AddYears" +ms.subservice: m-source --- # Date.AddYears diff --git a/query-languages/m/date-day.md b/query-languages/m/date-day.md index 20f54bc47..1fef49216 100644 --- a/query-languages/m/date-day.md +++ b/query-languages/m/date-day.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.Day" title: "Date.Day" +ms.subservice: m-source --- # Date.Day diff --git a/query-languages/m/date-dayofweek.md b/query-languages/m/date-dayofweek.md index 6f3036b7f..1f68bae58 100644 --- a/query-languages/m/date-dayofweek.md +++ b/query-languages/m/date-dayofweek.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.DayOfWeek" title: "Date.DayOfWeek" +ms.subservice: m-source --- # Date.DayOfWeek diff --git a/query-languages/m/date-dayofweekname.md b/query-languages/m/date-dayofweekname.md index 027117064..ceb3d618c 100644 --- a/query-languages/m/date-dayofweekname.md +++ b/query-languages/m/date-dayofweekname.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.DayOfWeekName" title: "Date.DayOfWeekName" +ms.subservice: m-source --- # Date.DayOfWeekName diff --git a/query-languages/m/date-dayofyear.md b/query-languages/m/date-dayofyear.md index effb2b43e..a3f8d2774 100644 --- a/query-languages/m/date-dayofyear.md +++ b/query-languages/m/date-dayofyear.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.DayOfYear" title: "Date.DayOfYear" +ms.subservice: m-source --- # Date.DayOfYear diff --git a/query-languages/m/date-daysinmonth.md b/query-languages/m/date-daysinmonth.md index d69b7a85a..b92b887cf 100644 --- a/query-languages/m/date-daysinmonth.md +++ b/query-languages/m/date-daysinmonth.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.DaysInMonth" title: "Date.DaysInMonth" +ms.subservice: m-source --- # Date.DaysInMonth diff --git a/query-languages/m/date-endofday.md b/query-languages/m/date-endofday.md index 3a0c447f2..a0a36e754 100644 --- a/query-languages/m/date-endofday.md +++ b/query-languages/m/date-endofday.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.EndOfDay" title: "Date.EndOfDay" +ms.subservice: m-source --- # Date.EndOfDay diff --git a/query-languages/m/date-endofmonth.md b/query-languages/m/date-endofmonth.md index 7c33b7a67..803438083 100644 --- a/query-languages/m/date-endofmonth.md +++ b/query-languages/m/date-endofmonth.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.EndOfMonth" title: "Date.EndOfMonth" +ms.subservice: m-source --- # Date.EndOfMonth diff --git a/query-languages/m/date-endofquarter.md b/query-languages/m/date-endofquarter.md index 932da4624..801168cab 100644 --- a/query-languages/m/date-endofquarter.md +++ b/query-languages/m/date-endofquarter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.EndOfQuarter" title: "Date.EndOfQuarter" +ms.subservice: m-source --- # Date.EndOfQuarter diff --git a/query-languages/m/date-endofweek.md b/query-languages/m/date-endofweek.md index c3753fc8e..4979a2e4b 100644 --- a/query-languages/m/date-endofweek.md +++ b/query-languages/m/date-endofweek.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.EndOfWeek" title: "Date.EndOfWeek" +ms.subservice: m-source --- # Date.EndOfWeek diff --git a/query-languages/m/date-endofyear.md b/query-languages/m/date-endofyear.md index db3d764e9..594eb4bc7 100644 --- a/query-languages/m/date-endofyear.md +++ b/query-languages/m/date-endofyear.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.EndOfYear" title: "Date.EndOfYear" +ms.subservice: m-source --- # Date.EndOfYear diff --git a/query-languages/m/date-from.md b/query-languages/m/date-from.md index a24c732e7..e13e07936 100644 --- a/query-languages/m/date-from.md +++ b/query-languages/m/date-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.From" title: "Date.From" +ms.subservice: m-source --- # Date.From diff --git a/query-languages/m/date-fromtext.md b/query-languages/m/date-fromtext.md index bf43afa77..0792ac19f 100644 --- a/query-languages/m/date-fromtext.md +++ b/query-languages/m/date-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.FromText" title: "Date.FromText" +ms.subservice: m-source --- # Date.FromText diff --git a/query-languages/m/date-isincurrentday.md b/query-languages/m/date-isincurrentday.md index 456186538..95f7ef8bc 100644 --- a/query-languages/m/date-isincurrentday.md +++ b/query-languages/m/date-isincurrentday.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInCurrentDay" title: "Date.IsInCurrentDay" +ms.subservice: m-source --- # Date.IsInCurrentDay diff --git a/query-languages/m/date-isincurrentmonth.md b/query-languages/m/date-isincurrentmonth.md index b1702640f..617c6121d 100644 --- a/query-languages/m/date-isincurrentmonth.md +++ b/query-languages/m/date-isincurrentmonth.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInCurrentMonth" title: "Date.IsInCurrentMonth" +ms.subservice: m-source --- # Date.IsInCurrentMonth diff --git a/query-languages/m/date-isincurrentquarter.md b/query-languages/m/date-isincurrentquarter.md index 3c01a7e48..cb9a5bacd 100644 --- a/query-languages/m/date-isincurrentquarter.md +++ b/query-languages/m/date-isincurrentquarter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInCurrentQuarter" title: "Date.IsInCurrentQuarter" +ms.subservice: m-source --- # Date.IsInCurrentQuarter diff --git a/query-languages/m/date-isincurrentweek.md b/query-languages/m/date-isincurrentweek.md index a47938cda..acbe5bdf9 100644 --- a/query-languages/m/date-isincurrentweek.md +++ b/query-languages/m/date-isincurrentweek.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInCurrentWeek" title: "Date.IsInCurrentWeek" +ms.subservice: m-source --- # Date.IsInCurrentWeek diff --git a/query-languages/m/date-isincurrentyear.md b/query-languages/m/date-isincurrentyear.md index bfa8365db..39b3cf6ce 100644 --- a/query-languages/m/date-isincurrentyear.md +++ b/query-languages/m/date-isincurrentyear.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInCurrentYear" title: "Date.IsInCurrentYear" +ms.subservice: m-source --- # Date.IsInCurrentYear diff --git a/query-languages/m/date-isinnextday.md b/query-languages/m/date-isinnextday.md index 04f6f3f15..eba978a34 100644 --- a/query-languages/m/date-isinnextday.md +++ b/query-languages/m/date-isinnextday.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextDay" title: "Date.IsInNextDay" +ms.subservice: m-source --- # Date.IsInNextDay diff --git a/query-languages/m/date-isinnextmonth.md b/query-languages/m/date-isinnextmonth.md index 66d2e4288..d2bba61dc 100644 --- a/query-languages/m/date-isinnextmonth.md +++ b/query-languages/m/date-isinnextmonth.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextMonth" title: "Date.IsInNextMonth" +ms.subservice: m-source --- # Date.IsInNextMonth diff --git a/query-languages/m/date-isinnextndays.md b/query-languages/m/date-isinnextndays.md index 0495e4027..eb945eb38 100644 --- a/query-languages/m/date-isinnextndays.md +++ b/query-languages/m/date-isinnextndays.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextNDays" title: "Date.IsInNextNDays" +ms.subservice: m-source --- # Date.IsInNextNDays diff --git a/query-languages/m/date-isinnextnmonths.md b/query-languages/m/date-isinnextnmonths.md index ddb9470c7..07815583a 100644 --- a/query-languages/m/date-isinnextnmonths.md +++ b/query-languages/m/date-isinnextnmonths.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextNMonths" title: "Date.IsInNextNMonths" +ms.subservice: m-source --- # Date.IsInNextNMonths diff --git a/query-languages/m/date-isinnextnquarters.md b/query-languages/m/date-isinnextnquarters.md index 05af22d25..0a3f6bd93 100644 --- a/query-languages/m/date-isinnextnquarters.md +++ b/query-languages/m/date-isinnextnquarters.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextNQuarters" title: "Date.IsInNextNQuarters" +ms.subservice: m-source --- # Date.IsInNextNQuarters diff --git a/query-languages/m/date-isinnextnweeks.md b/query-languages/m/date-isinnextnweeks.md index e7174d2f0..6b9262863 100644 --- a/query-languages/m/date-isinnextnweeks.md +++ b/query-languages/m/date-isinnextnweeks.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextNWeeks" title: "Date.IsInNextNWeeks" +ms.subservice: m-source --- # Date.IsInNextNWeeks diff --git a/query-languages/m/date-isinnextnyears.md b/query-languages/m/date-isinnextnyears.md index d69daacfa..ccad94129 100644 --- a/query-languages/m/date-isinnextnyears.md +++ b/query-languages/m/date-isinnextnyears.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextNYears" title: "Date.IsInNextNYears" +ms.subservice: m-source --- # Date.IsInNextNYears diff --git a/query-languages/m/date-isinnextquarter.md b/query-languages/m/date-isinnextquarter.md index 214055f97..e41498ee6 100644 --- a/query-languages/m/date-isinnextquarter.md +++ b/query-languages/m/date-isinnextquarter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextQuarter" title: "Date.IsInNextQuarter" +ms.subservice: m-source --- # Date.IsInNextQuarter diff --git a/query-languages/m/date-isinnextweek.md b/query-languages/m/date-isinnextweek.md index 105123730..b169b6fea 100644 --- a/query-languages/m/date-isinnextweek.md +++ b/query-languages/m/date-isinnextweek.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextWeek" title: "Date.IsInNextWeek" +ms.subservice: m-source --- # Date.IsInNextWeek diff --git a/query-languages/m/date-isinnextyear.md b/query-languages/m/date-isinnextyear.md index 689d0a9a1..41da43f89 100644 --- a/query-languages/m/date-isinnextyear.md +++ b/query-languages/m/date-isinnextyear.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInNextYear" title: "Date.IsInNextYear" +ms.subservice: m-source --- # Date.IsInNextYear diff --git a/query-languages/m/date-isinpreviousday.md b/query-languages/m/date-isinpreviousday.md index 1a7e4aa42..8edd1d117 100644 --- a/query-languages/m/date-isinpreviousday.md +++ b/query-languages/m/date-isinpreviousday.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousDay" title: "Date.IsInPreviousDay" +ms.subservice: m-source --- # Date.IsInPreviousDay diff --git a/query-languages/m/date-isinpreviousmonth.md b/query-languages/m/date-isinpreviousmonth.md index 75f24779b..f59ccaf0b 100644 --- a/query-languages/m/date-isinpreviousmonth.md +++ b/query-languages/m/date-isinpreviousmonth.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousMonth" title: "Date.IsInPreviousMonth" +ms.subservice: m-source --- # Date.IsInPreviousMonth diff --git a/query-languages/m/date-isinpreviousndays.md b/query-languages/m/date-isinpreviousndays.md index 88dd4fe73..b747db68d 100644 --- a/query-languages/m/date-isinpreviousndays.md +++ b/query-languages/m/date-isinpreviousndays.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousNDays" title: "Date.IsInPreviousNDays" +ms.subservice: m-source --- # Date.IsInPreviousNDays diff --git a/query-languages/m/date-isinpreviousnmonths.md b/query-languages/m/date-isinpreviousnmonths.md index 6d3c69685..544814e54 100644 --- a/query-languages/m/date-isinpreviousnmonths.md +++ b/query-languages/m/date-isinpreviousnmonths.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousNMonths" title: "Date.IsInPreviousNMonths" +ms.subservice: m-source --- # Date.IsInPreviousNMonths diff --git a/query-languages/m/date-isinpreviousnquarters.md b/query-languages/m/date-isinpreviousnquarters.md index 43b6d309d..3ddcc1554 100644 --- a/query-languages/m/date-isinpreviousnquarters.md +++ b/query-languages/m/date-isinpreviousnquarters.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousNQuarters" title: "Date.IsInPreviousNQuarters" +ms.subservice: m-source --- # Date.IsInPreviousNQuarters diff --git a/query-languages/m/date-isinpreviousnweeks.md b/query-languages/m/date-isinpreviousnweeks.md index 034e8db08..115e5fb60 100644 --- a/query-languages/m/date-isinpreviousnweeks.md +++ b/query-languages/m/date-isinpreviousnweeks.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousNWeeks" title: "Date.IsInPreviousNWeeks" +ms.subservice: m-source --- # Date.IsInPreviousNWeeks diff --git a/query-languages/m/date-isinpreviousnyears.md b/query-languages/m/date-isinpreviousnyears.md index 78f0da6f4..3fd14faa0 100644 --- a/query-languages/m/date-isinpreviousnyears.md +++ b/query-languages/m/date-isinpreviousnyears.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousNYears" title: "Date.IsInPreviousNYears" +ms.subservice: m-source --- # Date.IsInPreviousNYears diff --git a/query-languages/m/date-isinpreviousquarter.md b/query-languages/m/date-isinpreviousquarter.md index cf5d7d4b6..0fc2d2cef 100644 --- a/query-languages/m/date-isinpreviousquarter.md +++ b/query-languages/m/date-isinpreviousquarter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousQuarter" title: "Date.IsInPreviousQuarter" +ms.subservice: m-source --- # Date.IsInPreviousQuarter diff --git a/query-languages/m/date-isinpreviousweek.md b/query-languages/m/date-isinpreviousweek.md index d64a7af37..55d595699 100644 --- a/query-languages/m/date-isinpreviousweek.md +++ b/query-languages/m/date-isinpreviousweek.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousWeek" title: "Date.IsInPreviousWeek" +ms.subservice: m-source --- # Date.IsInPreviousWeek diff --git a/query-languages/m/date-isinpreviousyear.md b/query-languages/m/date-isinpreviousyear.md index 9320fc102..51c9954f6 100644 --- a/query-languages/m/date-isinpreviousyear.md +++ b/query-languages/m/date-isinpreviousyear.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInPreviousYear" title: "Date.IsInPreviousYear" +ms.subservice: m-source --- # Date.IsInPreviousYear diff --git a/query-languages/m/date-isinyeartodate.md b/query-languages/m/date-isinyeartodate.md index e6f46d72e..fa28b179f 100644 --- a/query-languages/m/date-isinyeartodate.md +++ b/query-languages/m/date-isinyeartodate.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsInYearToDate" title: "Date.IsInYearToDate" +ms.subservice: m-source --- # Date.IsInYearToDate diff --git a/query-languages/m/date-isleapyear.md b/query-languages/m/date-isleapyear.md index 4d07bf348..8a23c650a 100644 --- a/query-languages/m/date-isleapyear.md +++ b/query-languages/m/date-isleapyear.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.IsLeapYear" title: "Date.IsLeapYear" +ms.subservice: m-source --- # Date.IsLeapYear diff --git a/query-languages/m/date-month.md b/query-languages/m/date-month.md index a187af8a4..a477f9217 100644 --- a/query-languages/m/date-month.md +++ b/query-languages/m/date-month.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.Month" title: "Date.Month" +ms.subservice: m-source --- # Date.Month diff --git a/query-languages/m/date-monthname.md b/query-languages/m/date-monthname.md index 9281e7097..823269dd3 100644 --- a/query-languages/m/date-monthname.md +++ b/query-languages/m/date-monthname.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.MonthName" title: "Date.MonthName" +ms.subservice: m-source --- # Date.MonthName diff --git a/query-languages/m/date-quarterofyear.md b/query-languages/m/date-quarterofyear.md index f5d3b9a86..9a38ea6a5 100644 --- a/query-languages/m/date-quarterofyear.md +++ b/query-languages/m/date-quarterofyear.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.QuarterOfYear" title: "Date.QuarterOfYear" +ms.subservice: m-source --- # Date.QuarterOfYear diff --git a/query-languages/m/date-startofday.md b/query-languages/m/date-startofday.md index ac7faa256..eabf40d6a 100644 --- a/query-languages/m/date-startofday.md +++ b/query-languages/m/date-startofday.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.StartOfDay" title: "Date.StartOfDay" +ms.subservice: m-source --- # Date.StartOfDay diff --git a/query-languages/m/date-startofmonth.md b/query-languages/m/date-startofmonth.md index ed551a57b..7ae7c01c6 100644 --- a/query-languages/m/date-startofmonth.md +++ b/query-languages/m/date-startofmonth.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.StartOfMonth" title: "Date.StartOfMonth" +ms.subservice: m-source --- # Date.StartOfMonth diff --git a/query-languages/m/date-startofquarter.md b/query-languages/m/date-startofquarter.md index 8776f28bf..f44804274 100644 --- a/query-languages/m/date-startofquarter.md +++ b/query-languages/m/date-startofquarter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.StartOfQuarter" title: "Date.StartOfQuarter" +ms.subservice: m-source --- # Date.StartOfQuarter diff --git a/query-languages/m/date-startofweek.md b/query-languages/m/date-startofweek.md index ba526548b..643c324a8 100644 --- a/query-languages/m/date-startofweek.md +++ b/query-languages/m/date-startofweek.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.StartOfWeek" title: "Date.StartOfWeek" +ms.subservice: m-source --- # Date.StartOfWeek diff --git a/query-languages/m/date-startofyear.md b/query-languages/m/date-startofyear.md index 891279188..36f9d5531 100644 --- a/query-languages/m/date-startofyear.md +++ b/query-languages/m/date-startofyear.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.StartOfYear" title: "Date.StartOfYear" +ms.subservice: m-source --- # Date.StartOfYear diff --git a/query-languages/m/date-torecord.md b/query-languages/m/date-torecord.md index 7f344b56c..cd0f4ee39 100644 --- a/query-languages/m/date-torecord.md +++ b/query-languages/m/date-torecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.ToRecord" title: "Date.ToRecord" +ms.subservice: m-source --- # Date.ToRecord diff --git a/query-languages/m/date-totext.md b/query-languages/m/date-totext.md index 5639915bd..a427889b4 100644 --- a/query-languages/m/date-totext.md +++ b/query-languages/m/date-totext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.ToText" title: "Date.ToText" +ms.subservice: m-source --- # Date.ToText diff --git a/query-languages/m/date-weekofmonth.md b/query-languages/m/date-weekofmonth.md index 4605f6f8d..ac0d9d206 100644 --- a/query-languages/m/date-weekofmonth.md +++ b/query-languages/m/date-weekofmonth.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.WeekOfMonth" title: "Date.WeekOfMonth" +ms.subservice: m-source --- # Date.WeekOfMonth diff --git a/query-languages/m/date-weekofyear.md b/query-languages/m/date-weekofyear.md index e0bc65910..01ec9805a 100644 --- a/query-languages/m/date-weekofyear.md +++ b/query-languages/m/date-weekofyear.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.WeekOfYear" title: "Date.WeekOfYear" +ms.subservice: m-source --- # Date.WeekOfYear diff --git a/query-languages/m/date-year.md b/query-languages/m/date-year.md index 7686b69e7..caeccd5a7 100644 --- a/query-languages/m/date-year.md +++ b/query-languages/m/date-year.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Date.Year" title: "Date.Year" +ms.subservice: m-source --- # Date.Year diff --git a/query-languages/m/datetime-addzone.md b/query-languages/m/datetime-addzone.md index 0829ffc21..d53a43593 100644 --- a/query-languages/m/datetime-addzone.md +++ b/query-languages/m/datetime-addzone.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.AddZone" title: "DateTime.AddZone" +ms.subservice: m-source --- # DateTime.AddZone diff --git a/query-languages/m/datetime-date.md b/query-languages/m/datetime-date.md index ee37a3a85..c77fb0a33 100644 --- a/query-languages/m/datetime-date.md +++ b/query-languages/m/datetime-date.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.Date" title: "DateTime.Date" +ms.subservice: m-source --- # DateTime.Date diff --git a/query-languages/m/datetime-fixedlocalnow.md b/query-languages/m/datetime-fixedlocalnow.md index 73b427f72..23fbcbab0 100644 --- a/query-languages/m/datetime-fixedlocalnow.md +++ b/query-languages/m/datetime-fixedlocalnow.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.FixedLocalNow" title: "DateTime.FixedLocalNow" +ms.subservice: m-source --- # DateTime.FixedLocalNow diff --git a/query-languages/m/datetime-from.md b/query-languages/m/datetime-from.md index 2a40d325d..27792df7a 100644 --- a/query-languages/m/datetime-from.md +++ b/query-languages/m/datetime-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.From" title: "DateTime.From" +ms.subservice: m-source --- # DateTime.From diff --git a/query-languages/m/datetime-fromfiletime.md b/query-languages/m/datetime-fromfiletime.md index f56f6912a..31ec36964 100644 --- a/query-languages/m/datetime-fromfiletime.md +++ b/query-languages/m/datetime-fromfiletime.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.FromFileTime" title: "DateTime.FromFileTime" +ms.subservice: m-source --- # DateTime.FromFileTime diff --git a/query-languages/m/datetime-fromtext.md b/query-languages/m/datetime-fromtext.md index 37ad36466..f4492e4c8 100644 --- a/query-languages/m/datetime-fromtext.md +++ b/query-languages/m/datetime-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.FromText" title: "DateTime.FromText" +ms.subservice: m-source --- # DateTime.FromText diff --git a/query-languages/m/datetime-isincurrenthour.md b/query-languages/m/datetime-isincurrenthour.md index 66bef53d9..bde2882f3 100644 --- a/query-languages/m/datetime-isincurrenthour.md +++ b/query-languages/m/datetime-isincurrenthour.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInCurrentHour" title: "DateTime.IsInCurrentHour" +ms.subservice: m-source --- # DateTime.IsInCurrentHour diff --git a/query-languages/m/datetime-isincurrentminute.md b/query-languages/m/datetime-isincurrentminute.md index 14add1de1..a98cf92dc 100644 --- a/query-languages/m/datetime-isincurrentminute.md +++ b/query-languages/m/datetime-isincurrentminute.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInCurrentMinute" title: "DateTime.IsInCurrentMinute" +ms.subservice: m-source --- # DateTime.IsInCurrentMinute diff --git a/query-languages/m/datetime-isincurrentsecond.md b/query-languages/m/datetime-isincurrentsecond.md index b1751f389..b6b7daf07 100644 --- a/query-languages/m/datetime-isincurrentsecond.md +++ b/query-languages/m/datetime-isincurrentsecond.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInCurrentSecond" title: "DateTime.IsInCurrentSecond" +ms.subservice: m-source --- # DateTime.IsInCurrentSecond diff --git a/query-languages/m/datetime-isinnexthour.md b/query-languages/m/datetime-isinnexthour.md index b934eccb5..ae25110ed 100644 --- a/query-languages/m/datetime-isinnexthour.md +++ b/query-languages/m/datetime-isinnexthour.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInNextHour" title: "DateTime.IsInNextHour" +ms.subservice: m-source --- # DateTime.IsInNextHour diff --git a/query-languages/m/datetime-isinnextminute.md b/query-languages/m/datetime-isinnextminute.md index 7ca4b971f..615e0264d 100644 --- a/query-languages/m/datetime-isinnextminute.md +++ b/query-languages/m/datetime-isinnextminute.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInNextMinute" title: "DateTime.IsInNextMinute" +ms.subservice: m-source --- # DateTime.IsInNextMinute diff --git a/query-languages/m/datetime-isinnextnhours.md b/query-languages/m/datetime-isinnextnhours.md index cf46508fb..4f53f83bf 100644 --- a/query-languages/m/datetime-isinnextnhours.md +++ b/query-languages/m/datetime-isinnextnhours.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInNextNHours" title: "DateTime.IsInNextNHours" +ms.subservice: m-source --- # DateTime.IsInNextNHours diff --git a/query-languages/m/datetime-isinnextnminutes.md b/query-languages/m/datetime-isinnextnminutes.md index 9dbf2d6e4..225928958 100644 --- a/query-languages/m/datetime-isinnextnminutes.md +++ b/query-languages/m/datetime-isinnextnminutes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInNextNMinutes" title: "DateTime.IsInNextNMinutes" +ms.subservice: m-source --- # DateTime.IsInNextNMinutes diff --git a/query-languages/m/datetime-isinnextnseconds.md b/query-languages/m/datetime-isinnextnseconds.md index 16588c940..e45fe90a8 100644 --- a/query-languages/m/datetime-isinnextnseconds.md +++ b/query-languages/m/datetime-isinnextnseconds.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInNextNSeconds" title: "DateTime.IsInNextNSeconds" +ms.subservice: m-source --- # DateTime.IsInNextNSeconds diff --git a/query-languages/m/datetime-isinnextsecond.md b/query-languages/m/datetime-isinnextsecond.md index 5edf1d100..b76d65b77 100644 --- a/query-languages/m/datetime-isinnextsecond.md +++ b/query-languages/m/datetime-isinnextsecond.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInNextSecond" title: "DateTime.IsInNextSecond" +ms.subservice: m-source --- # DateTime.IsInNextSecond diff --git a/query-languages/m/datetime-isinprevioushour.md b/query-languages/m/datetime-isinprevioushour.md index 10932cb72..36e67f543 100644 --- a/query-languages/m/datetime-isinprevioushour.md +++ b/query-languages/m/datetime-isinprevioushour.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInPreviousHour" title: "DateTime.IsInPreviousHour" +ms.subservice: m-source --- # DateTime.IsInPreviousHour diff --git a/query-languages/m/datetime-isinpreviousminute.md b/query-languages/m/datetime-isinpreviousminute.md index 4029ebe19..730fa100d 100644 --- a/query-languages/m/datetime-isinpreviousminute.md +++ b/query-languages/m/datetime-isinpreviousminute.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInPreviousMinute" title: "DateTime.IsInPreviousMinute" +ms.subservice: m-source --- # DateTime.IsInPreviousMinute diff --git a/query-languages/m/datetime-isinpreviousnhours.md b/query-languages/m/datetime-isinpreviousnhours.md index 204d7d949..490418d41 100644 --- a/query-languages/m/datetime-isinpreviousnhours.md +++ b/query-languages/m/datetime-isinpreviousnhours.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInPreviousNHours" title: "DateTime.IsInPreviousNHours" +ms.subservice: m-source --- # DateTime.IsInPreviousNHours diff --git a/query-languages/m/datetime-isinpreviousnminutes.md b/query-languages/m/datetime-isinpreviousnminutes.md index 27cbc6e6e..e1f387914 100644 --- a/query-languages/m/datetime-isinpreviousnminutes.md +++ b/query-languages/m/datetime-isinpreviousnminutes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInPreviousNMinutes" title: "DateTime.IsInPreviousNMinutes" +ms.subservice: m-source --- # DateTime.IsInPreviousNMinutes diff --git a/query-languages/m/datetime-isinpreviousnseconds.md b/query-languages/m/datetime-isinpreviousnseconds.md index 04070fcc3..d9698b14b 100644 --- a/query-languages/m/datetime-isinpreviousnseconds.md +++ b/query-languages/m/datetime-isinpreviousnseconds.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInPreviousNSeconds" title: "DateTime.IsInPreviousNSeconds" +ms.subservice: m-source --- # DateTime.IsInPreviousNSeconds diff --git a/query-languages/m/datetime-isinprevioussecond.md b/query-languages/m/datetime-isinprevioussecond.md index 4843576ed..9d4c77adb 100644 --- a/query-languages/m/datetime-isinprevioussecond.md +++ b/query-languages/m/datetime-isinprevioussecond.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.IsInPreviousSecond" title: "DateTime.IsInPreviousSecond" +ms.subservice: m-source --- # DateTime.IsInPreviousSecond diff --git a/query-languages/m/datetime-localnow.md b/query-languages/m/datetime-localnow.md index 34c37a039..d950b1827 100644 --- a/query-languages/m/datetime-localnow.md +++ b/query-languages/m/datetime-localnow.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.LocalNow" title: "DateTime.LocalNow" +ms.subservice: m-source --- # DateTime.LocalNow diff --git a/query-languages/m/datetime-time.md b/query-languages/m/datetime-time.md index 703360749..bcd0e59a4 100644 --- a/query-languages/m/datetime-time.md +++ b/query-languages/m/datetime-time.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.Time" title: "DateTime.Time" +ms.subservice: m-source --- # DateTime.Time diff --git a/query-languages/m/datetime-torecord.md b/query-languages/m/datetime-torecord.md index 2a761cabb..11beb940d 100644 --- a/query-languages/m/datetime-torecord.md +++ b/query-languages/m/datetime-torecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.ToRecord" title: "DateTime.ToRecord" +ms.subservice: m-source --- # DateTime.ToRecord diff --git a/query-languages/m/datetime-totext.md b/query-languages/m/datetime-totext.md index a28c119b9..a554ed6e8 100644 --- a/query-languages/m/datetime-totext.md +++ b/query-languages/m/datetime-totext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTime.ToText" title: "DateTime.ToText" +ms.subservice: m-source --- # DateTime.ToText diff --git a/query-languages/m/datetimezone-fixedlocalnow.md b/query-languages/m/datetimezone-fixedlocalnow.md index b4e8c3a43..96284c964 100644 --- a/query-languages/m/datetimezone-fixedlocalnow.md +++ b/query-languages/m/datetimezone-fixedlocalnow.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.FixedLocalNow" title: "DateTimeZone.FixedLocalNow" +ms.subservice: m-source --- # DateTimeZone.FixedLocalNow diff --git a/query-languages/m/datetimezone-fixedutcnow.md b/query-languages/m/datetimezone-fixedutcnow.md index 0cba2ceee..c8b7a86ae 100644 --- a/query-languages/m/datetimezone-fixedutcnow.md +++ b/query-languages/m/datetimezone-fixedutcnow.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.FixedUtcNow" title: "DateTimeZone.FixedUtcNow" +ms.subservice: m-source --- # DateTimeZone.FixedUtcNow diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index 9a8a2f1d0..8e4d6e6e5 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.From" title: "DateTimeZone.From" +ms.subservice: m-source --- # DateTimeZone.From diff --git a/query-languages/m/datetimezone-fromfiletime.md b/query-languages/m/datetimezone-fromfiletime.md index 0de8dd6f3..2ac0d7112 100644 --- a/query-languages/m/datetimezone-fromfiletime.md +++ b/query-languages/m/datetimezone-fromfiletime.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.FromFileTime" title: "DateTimeZone.FromFileTime" +ms.subservice: m-source --- # DateTimeZone.FromFileTime diff --git a/query-languages/m/datetimezone-fromtext.md b/query-languages/m/datetimezone-fromtext.md index e15e1b572..a1a6b003f 100644 --- a/query-languages/m/datetimezone-fromtext.md +++ b/query-languages/m/datetimezone-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.FromText" title: "DateTimeZone.FromText" +ms.subservice: m-source --- # DateTimeZone.FromText diff --git a/query-languages/m/datetimezone-localnow.md b/query-languages/m/datetimezone-localnow.md index cb056cb9a..fb0ac595d 100644 --- a/query-languages/m/datetimezone-localnow.md +++ b/query-languages/m/datetimezone-localnow.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.LocalNow" title: "DateTimeZone.LocalNow" +ms.subservice: m-source --- # DateTimeZone.LocalNow diff --git a/query-languages/m/datetimezone-removezone.md b/query-languages/m/datetimezone-removezone.md index d406b21d3..97a3708fd 100644 --- a/query-languages/m/datetimezone-removezone.md +++ b/query-languages/m/datetimezone-removezone.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.RemoveZone" title: "DateTimeZone.RemoveZone" +ms.subservice: m-source --- # DateTimeZone.RemoveZone diff --git a/query-languages/m/datetimezone-switchzone.md b/query-languages/m/datetimezone-switchzone.md index 25554449a..a0d56a7d8 100644 --- a/query-languages/m/datetimezone-switchzone.md +++ b/query-languages/m/datetimezone-switchzone.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.SwitchZone" title: "DateTimeZone.SwitchZone" +ms.subservice: m-source --- # DateTimeZone.SwitchZone diff --git a/query-languages/m/datetimezone-tolocal.md b/query-languages/m/datetimezone-tolocal.md index d37d265d1..bb690002b 100644 --- a/query-languages/m/datetimezone-tolocal.md +++ b/query-languages/m/datetimezone-tolocal.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.ToLocal" title: "DateTimeZone.ToLocal" +ms.subservice: m-source --- # DateTimeZone.ToLocal diff --git a/query-languages/m/datetimezone-torecord.md b/query-languages/m/datetimezone-torecord.md index f906934fe..9f54d3672 100644 --- a/query-languages/m/datetimezone-torecord.md +++ b/query-languages/m/datetimezone-torecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.ToRecord" title: "DateTimeZone.ToRecord" +ms.subservice: m-source --- # DateTimeZone.ToRecord diff --git a/query-languages/m/datetimezone-totext.md b/query-languages/m/datetimezone-totext.md index b54749af6..9da8d11f1 100644 --- a/query-languages/m/datetimezone-totext.md +++ b/query-languages/m/datetimezone-totext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.ToText" title: "DateTimeZone.ToText" +ms.subservice: m-source --- # DateTimeZone.ToText diff --git a/query-languages/m/datetimezone-toutc.md b/query-languages/m/datetimezone-toutc.md index a67714142..284fa3028 100644 --- a/query-languages/m/datetimezone-toutc.md +++ b/query-languages/m/datetimezone-toutc.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.ToUtc" title: "DateTimeZone.ToUtc" +ms.subservice: m-source --- # DateTimeZone.ToUtc diff --git a/query-languages/m/datetimezone-utcnow.md b/query-languages/m/datetimezone-utcnow.md index eb516f871..227f64bdb 100644 --- a/query-languages/m/datetimezone-utcnow.md +++ b/query-languages/m/datetimezone-utcnow.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.UtcNow" title: "DateTimeZone.UtcNow" +ms.subservice: m-source --- # DateTimeZone.UtcNow diff --git a/query-languages/m/datetimezone-zonehours.md b/query-languages/m/datetimezone-zonehours.md index 15a84accb..9a0122d27 100644 --- a/query-languages/m/datetimezone-zonehours.md +++ b/query-languages/m/datetimezone-zonehours.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.ZoneHours" title: "DateTimeZone.ZoneHours" +ms.subservice: m-source --- # DateTimeZone.ZoneHours diff --git a/query-languages/m/datetimezone-zoneminutes.md b/query-languages/m/datetimezone-zoneminutes.md index 88de1353e..bb3a4e032 100644 --- a/query-languages/m/datetimezone-zoneminutes.md +++ b/query-languages/m/datetimezone-zoneminutes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DateTimeZone.ZoneMinutes" title: "DateTimeZone.ZoneMinutes" +ms.subservice: m-source --- # DateTimeZone.ZoneMinutes diff --git a/query-languages/m/day-type.md b/query-languages/m/day-type.md index aa9136a2b..6188bfc31 100644 --- a/query-languages/m/day-type.md +++ b/query-languages/m/day-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Day.Type" title: "Day.Type" +ms.subservice: m-source --- # Day.Type diff --git a/query-languages/m/db2-database.md b/query-languages/m/db2-database.md index fa13c11bb..b9301fee7 100644 --- a/query-languages/m/db2-database.md +++ b/query-languages/m/db2-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DB2.Database" title: "DB2.Database" +ms.subservice: m-source --- # DB2.Database diff --git a/query-languages/m/decimal-from.md b/query-languages/m/decimal-from.md index 18c68d74d..2a586c392 100644 --- a/query-languages/m/decimal-from.md +++ b/query-languages/m/decimal-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Decimal.From" title: "Decimal.From" +ms.subservice: m-source --- # Decimal.From diff --git a/query-languages/m/deltalake-table.md b/query-languages/m/deltalake-table.md index bb2fa08ff..cf599a2d6 100644 --- a/query-languages/m/deltalake-table.md +++ b/query-languages/m/deltalake-table.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DeltaLake.Table" title: "DeltaLake.Table" +ms.subservice: m-source --- # DeltaLake.Table diff --git a/query-languages/m/diagnostics-activityid.md b/query-languages/m/diagnostics-activityid.md index ff7f693db..721f2c19a 100644 --- a/query-languages/m/diagnostics-activityid.md +++ b/query-languages/m/diagnostics-activityid.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Diagnostics.ActivityId" title: "Diagnostics.ActivityId" +ms.subservice: m-source --- # Diagnostics.ActivityId diff --git a/query-languages/m/diagnostics-correlationid.md b/query-languages/m/diagnostics-correlationid.md index b579d5971..d0175f9b0 100644 --- a/query-languages/m/diagnostics-correlationid.md +++ b/query-languages/m/diagnostics-correlationid.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Diagnostics.CorrelationId" title: "Diagnostics.CorrelationId" +ms.subservice: m-source --- # Diagnostics.CorrelationId diff --git a/query-languages/m/diagnostics-trace.md b/query-languages/m/diagnostics-trace.md index 1d0397a17..265963231 100644 --- a/query-languages/m/diagnostics-trace.md +++ b/query-languages/m/diagnostics-trace.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Diagnostics.Trace" title: "Diagnostics.Trace" +ms.subservice: m-source --- # Diagnostics.Trace diff --git a/query-languages/m/directquerycapabilities-from.md b/query-languages/m/directquerycapabilities-from.md index ed61b189b..3233de819 100644 --- a/query-languages/m/directquerycapabilities-from.md +++ b/query-languages/m/directquerycapabilities-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: DirectQueryCapabilities.From" title: "DirectQueryCapabilities.From" +ms.subservice: m-source --- # DirectQueryCapabilities.From diff --git a/query-languages/m/double-from.md b/query-languages/m/double-from.md index 7963a1457..31c836f6e 100644 --- a/query-languages/m/double-from.md +++ b/query-languages/m/double-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Double.From" title: "Double.From" +ms.subservice: m-source --- # Double.From diff --git a/query-languages/m/duration-days.md b/query-languages/m/duration-days.md index 2de3ee0d4..8629578b0 100644 --- a/query-languages/m/duration-days.md +++ b/query-languages/m/duration-days.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.Days" title: "Duration.Days" +ms.subservice: m-source --- # Duration.Days diff --git a/query-languages/m/duration-from.md b/query-languages/m/duration-from.md index ff2bad173..318fced91 100644 --- a/query-languages/m/duration-from.md +++ b/query-languages/m/duration-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.From" title: "Duration.From" +ms.subservice: m-source --- # Duration.From diff --git a/query-languages/m/duration-fromtext.md b/query-languages/m/duration-fromtext.md index 9b1822055..f9f4760ea 100644 --- a/query-languages/m/duration-fromtext.md +++ b/query-languages/m/duration-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.FromText" title: "Duration.FromText" +ms.subservice: m-source --- # Duration.FromText diff --git a/query-languages/m/duration-hours.md b/query-languages/m/duration-hours.md index bf8212cda..e3929c830 100644 --- a/query-languages/m/duration-hours.md +++ b/query-languages/m/duration-hours.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.Hours" title: "Duration.Hours" +ms.subservice: m-source --- # Duration.Hours diff --git a/query-languages/m/duration-minutes.md b/query-languages/m/duration-minutes.md index dd50d8e9b..0fdb0eb74 100644 --- a/query-languages/m/duration-minutes.md +++ b/query-languages/m/duration-minutes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.Minutes" title: "Duration.Minutes" +ms.subservice: m-source --- # Duration.Minutes diff --git a/query-languages/m/duration-seconds.md b/query-languages/m/duration-seconds.md index 34c7fc2c0..05ce0e4a9 100644 --- a/query-languages/m/duration-seconds.md +++ b/query-languages/m/duration-seconds.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.Seconds" title: "Duration.Seconds" +ms.subservice: m-source --- # Duration.Seconds diff --git a/query-languages/m/duration-torecord.md b/query-languages/m/duration-torecord.md index 8285b94cc..fab05a75f 100644 --- a/query-languages/m/duration-torecord.md +++ b/query-languages/m/duration-torecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.ToRecord" title: "Duration.ToRecord" +ms.subservice: m-source --- # Duration.ToRecord diff --git a/query-languages/m/duration-totaldays.md b/query-languages/m/duration-totaldays.md index e305165e6..50585a8b6 100644 --- a/query-languages/m/duration-totaldays.md +++ b/query-languages/m/duration-totaldays.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.TotalDays" title: "Duration.TotalDays" +ms.subservice: m-source --- # Duration.TotalDays diff --git a/query-languages/m/duration-totalhours.md b/query-languages/m/duration-totalhours.md index 1372e6635..4b6a679b3 100644 --- a/query-languages/m/duration-totalhours.md +++ b/query-languages/m/duration-totalhours.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.TotalHours" title: "Duration.TotalHours" +ms.subservice: m-source --- # Duration.TotalHours diff --git a/query-languages/m/duration-totalminutes.md b/query-languages/m/duration-totalminutes.md index cce94e57c..41ee1afb9 100644 --- a/query-languages/m/duration-totalminutes.md +++ b/query-languages/m/duration-totalminutes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.TotalMinutes" title: "Duration.TotalMinutes" +ms.subservice: m-source --- # Duration.TotalMinutes diff --git a/query-languages/m/duration-totalseconds.md b/query-languages/m/duration-totalseconds.md index cf0366425..5b492aa44 100644 --- a/query-languages/m/duration-totalseconds.md +++ b/query-languages/m/duration-totalseconds.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.TotalSeconds" title: "Duration.TotalSeconds" +ms.subservice: m-source --- # Duration.TotalSeconds diff --git a/query-languages/m/duration-totext.md b/query-languages/m/duration-totext.md index a40c700e5..9aba19a32 100644 --- a/query-languages/m/duration-totext.md +++ b/query-languages/m/duration-totext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Duration.ToText" title: "Duration.ToText" +ms.subservice: m-source --- # Duration.ToText diff --git a/query-languages/m/embedded-value.md b/query-languages/m/embedded-value.md index 528c19e09..61a0b11d9 100644 --- a/query-languages/m/embedded-value.md +++ b/query-languages/m/embedded-value.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Embedded.Value" title: "Embedded.Value" +ms.subservice: m-source --- # Embedded.Value diff --git a/query-languages/m/error-record.md b/query-languages/m/error-record.md index e0faca0d4..eaf8f6389 100644 --- a/query-languages/m/error-record.md +++ b/query-languages/m/error-record.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Error.Record" title: "Error.Record" +ms.subservice: m-source --- # Error.Record diff --git a/query-languages/m/errors.md b/query-languages/m/errors.md index 9add5179e..4de066bda 100644 --- a/query-languages/m/errors.md +++ b/query-languages/m/errors.md @@ -4,6 +4,7 @@ title: "Errors" ms.topic: conceptual ms.date: 10/7/2022 ms.custom: "nonautomated-date" +ms.subservice: m-background --- # Errors diff --git a/query-languages/m/essbase-cubes.md b/query-languages/m/essbase-cubes.md index d11f1aed7..f1e14d9d3 100644 --- a/query-languages/m/essbase-cubes.md +++ b/query-languages/m/essbase-cubes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Essbase.Cubes" title: "Essbase.Cubes" +ms.subservice: m-source --- # Essbase.Cubes diff --git a/query-languages/m/evaluation-model.md b/query-languages/m/evaluation-model.md index 452408b33..ae2b5e086 100644 --- a/query-languages/m/evaluation-model.md +++ b/query-languages/m/evaluation-model.md @@ -4,6 +4,7 @@ title: "Evaluation model" ms.topic: conceptual ms.date: 10/7/2022 ms.custom: "nonautomated-date" +ms.subservice: m-background --- # Evaluation model diff --git a/query-languages/m/excel-currentworkbook.md b/query-languages/m/excel-currentworkbook.md index 996b1da88..7b1529967 100644 --- a/query-languages/m/excel-currentworkbook.md +++ b/query-languages/m/excel-currentworkbook.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Excel.CurrentWorkbook" title: "Excel.CurrentWorkbook" +ms.subservice: m-source --- # Excel.CurrentWorkbook diff --git a/query-languages/m/excel-shapetable.md b/query-languages/m/excel-shapetable.md index 81af961ce..f33522be4 100644 --- a/query-languages/m/excel-shapetable.md +++ b/query-languages/m/excel-shapetable.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Excel.ShapeTable" title: "Excel.ShapeTable" +ms.subservice: m-source --- # Excel.ShapeTable diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md index 7a32780f1..74d613291 100644 --- a/query-languages/m/excel-workbook.md +++ b/query-languages/m/excel-workbook.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Excel.Workbook" title: "Excel.Workbook" +ms.subservice: m-source --- # Excel.Workbook diff --git a/query-languages/m/exchange-contents.md b/query-languages/m/exchange-contents.md index 9832bc262..2e8a0193a 100644 --- a/query-languages/m/exchange-contents.md +++ b/query-languages/m/exchange-contents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Exchange.Contents" title: "Exchange.Contents" +ms.subservice: m-source --- # Exchange.Contents diff --git a/query-languages/m/expression-constant.md b/query-languages/m/expression-constant.md index dfefed8e8..89419a6f7 100644 --- a/query-languages/m/expression-constant.md +++ b/query-languages/m/expression-constant.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Expression.Constant" title: "Expression.Constant" +ms.subservice: m-source --- # Expression.Constant diff --git a/query-languages/m/expression-evaluate.md b/query-languages/m/expression-evaluate.md index 1f01d2bfe..06d603759 100644 --- a/query-languages/m/expression-evaluate.md +++ b/query-languages/m/expression-evaluate.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Expression.Evaluate" title: "Expression.Evaluate" +ms.subservice: m-source --- # Expression.Evaluate diff --git a/query-languages/m/expression-identifier.md b/query-languages/m/expression-identifier.md index 6b217a392..06c442707 100644 --- a/query-languages/m/expression-identifier.md +++ b/query-languages/m/expression-identifier.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Expression.Identifier" title: "Expression.Identifier" +ms.subservice: m-source --- # Expression.Identifier diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index cfc9b4645..e4bac4d92 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -4,6 +4,8 @@ title: "Expressions, values, and let expression" ms.topic: conceptual ms.date: 7/9/2024 ms.custom: "nonautomated-date" +ms.subservice: m-background + --- # Expressions, values, and let expression diff --git a/query-languages/m/extravalues-type.md b/query-languages/m/extravalues-type.md index d2aefad9d..216f00250 100644 --- a/query-languages/m/extravalues-type.md +++ b/query-languages/m/extravalues-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: ExtraValues.Type" title: "ExtraValues.Type" +ms.subservice: m-source --- # ExtraValues.Type diff --git a/query-languages/m/file-contents.md b/query-languages/m/file-contents.md index 2bcf0295e..6978fce6d 100644 --- a/query-languages/m/file-contents.md +++ b/query-languages/m/file-contents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: File.Contents" title: "File.Contents" +ms.subservice: m-source --- # File.Contents diff --git a/query-languages/m/folder-contents.md b/query-languages/m/folder-contents.md index e78da4ba5..708c5ab26 100644 --- a/query-languages/m/folder-contents.md +++ b/query-languages/m/folder-contents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Folder.Contents" title: "Folder.Contents" +ms.subservice: m-source --- # Folder.Contents diff --git a/query-languages/m/folder-files.md b/query-languages/m/folder-files.md index be0574295..c7ff4455f 100644 --- a/query-languages/m/folder-files.md +++ b/query-languages/m/folder-files.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Folder.Files" title: "Folder.Files" +ms.subservice: m-source --- # Folder.Files diff --git a/query-languages/m/function-from.md b/query-languages/m/function-from.md index 4e38cbdbf..01307dd91 100644 --- a/query-languages/m/function-from.md +++ b/query-languages/m/function-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Function.From" title: "Function.From" +ms.subservice: m-source --- # Function.From diff --git a/query-languages/m/function-invoke.md b/query-languages/m/function-invoke.md index 11d42db95..599dbe1ad 100644 --- a/query-languages/m/function-invoke.md +++ b/query-languages/m/function-invoke.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Function.Invoke" title: "Function.Invoke" +ms.subservice: m-source --- # Function.Invoke diff --git a/query-languages/m/function-invokeafter.md b/query-languages/m/function-invokeafter.md index c092f7006..71671b800 100644 --- a/query-languages/m/function-invokeafter.md +++ b/query-languages/m/function-invokeafter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Function.InvokeAfter" title: "Function.InvokeAfter" +ms.subservice: m-source --- # Function.InvokeAfter diff --git a/query-languages/m/function-invokewitherrorcontext.md b/query-languages/m/function-invokewitherrorcontext.md index 6924e002b..8c9f5cb6c 100644 --- a/query-languages/m/function-invokewitherrorcontext.md +++ b/query-languages/m/function-invokewitherrorcontext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Function.InvokeWithErrorContext" title: "Function.InvokeWithErrorContext" +ms.subservice: m-source --- # Function.InvokeWithErrorContext diff --git a/query-languages/m/function-isdatasource.md b/query-languages/m/function-isdatasource.md index c52a41774..f5ab32415 100644 --- a/query-languages/m/function-isdatasource.md +++ b/query-languages/m/function-isdatasource.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Function.IsDataSource" title: "Function.IsDataSource" +ms.subservice: m-source --- # Function.IsDataSource diff --git a/query-languages/m/function-scalarvector.md b/query-languages/m/function-scalarvector.md index ca7a70cbe..d91575038 100644 --- a/query-languages/m/function-scalarvector.md +++ b/query-languages/m/function-scalarvector.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Function.ScalarVector" title: "Function.ScalarVector" +ms.subservice: m-source --- # Function.ScalarVector diff --git a/query-languages/m/geography-fromwellknowntext.md b/query-languages/m/geography-fromwellknowntext.md index 2bad7f841..54011aafb 100644 --- a/query-languages/m/geography-fromwellknowntext.md +++ b/query-languages/m/geography-fromwellknowntext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Geography.FromWellKnownText" title: "Geography.FromWellKnownText" +ms.subservice: m-source --- # Geography.FromWellKnownText diff --git a/query-languages/m/geography-towellknowntext.md b/query-languages/m/geography-towellknowntext.md index 3b9484665..4e5ea9f36 100644 --- a/query-languages/m/geography-towellknowntext.md +++ b/query-languages/m/geography-towellknowntext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Geography.ToWellKnownText" title: "Geography.ToWellKnownText" +ms.subservice: m-source --- # Geography.ToWellKnownText diff --git a/query-languages/m/geographypoint-from.md b/query-languages/m/geographypoint-from.md index 3e2dc626f..7ce94ced8 100644 --- a/query-languages/m/geographypoint-from.md +++ b/query-languages/m/geographypoint-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: GeographyPoint.From" title: "GeographyPoint.From" +ms.subservice: m-source --- # GeographyPoint.From diff --git a/query-languages/m/geometry-fromwellknowntext.md b/query-languages/m/geometry-fromwellknowntext.md index 4dae92604..7b77c5002 100644 --- a/query-languages/m/geometry-fromwellknowntext.md +++ b/query-languages/m/geometry-fromwellknowntext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Geometry.FromWellKnownText" title: "Geometry.FromWellKnownText" +ms.subservice: m-source --- # Geometry.FromWellKnownText diff --git a/query-languages/m/geometry-towellknowntext.md b/query-languages/m/geometry-towellknowntext.md index eb783b342..4d2d1baf9 100644 --- a/query-languages/m/geometry-towellknowntext.md +++ b/query-languages/m/geometry-towellknowntext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Geometry.ToWellKnownText" title: "Geometry.ToWellKnownText" +ms.subservice: m-source --- # Geometry.ToWellKnownText diff --git a/query-languages/m/geometrypoint-from.md b/query-languages/m/geometrypoint-from.md index 3c91b0e10..52581292c 100644 --- a/query-languages/m/geometrypoint-from.md +++ b/query-languages/m/geometrypoint-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: GeometryPoint.From" title: "GeometryPoint.From" +ms.subservice: m-source --- # GeometryPoint.From diff --git a/query-languages/m/googleanalytics-accounts.md b/query-languages/m/googleanalytics-accounts.md index eded6444b..96621c364 100644 --- a/query-languages/m/googleanalytics-accounts.md +++ b/query-languages/m/googleanalytics-accounts.md @@ -1,6 +1,7 @@ --- description: "Learn more about: GoogleAnalytics.Accounts" title: "GoogleAnalytics.Accounts" +ms.subservice: m-source --- # GoogleAnalytics.Accounts diff --git a/query-languages/m/graph-nodes.md b/query-languages/m/graph-nodes.md index f71cbf9f3..8b6f51d59 100644 --- a/query-languages/m/graph-nodes.md +++ b/query-languages/m/graph-nodes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Graph.Nodes" title: "Graph.Nodes" +ms.subservice: m-source --- # Graph.Nodes diff --git a/query-languages/m/groupkind-type.md b/query-languages/m/groupkind-type.md index 36ff2155f..38e301538 100644 --- a/query-languages/m/groupkind-type.md +++ b/query-languages/m/groupkind-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: GroupKind.Type" title: "GroupKind.Type" +ms.subservice: m-source --- # GroupKind.Type diff --git a/query-languages/m/guid-from.md b/query-languages/m/guid-from.md index 6dba9474a..5cf49cc3c 100644 --- a/query-languages/m/guid-from.md +++ b/query-languages/m/guid-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Guid.From" title: "Guid.From" +ms.subservice: m-source --- # Guid.From diff --git a/query-languages/m/hdfs-contents.md b/query-languages/m/hdfs-contents.md index 08a3ea8be..5f5752aa3 100644 --- a/query-languages/m/hdfs-contents.md +++ b/query-languages/m/hdfs-contents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Hdfs.Contents" title: "Hdfs.Contents" +ms.subservice: m-source --- # Hdfs.Contents diff --git a/query-languages/m/hdfs-files.md b/query-languages/m/hdfs-files.md index 25743a873..c9896e78e 100644 --- a/query-languages/m/hdfs-files.md +++ b/query-languages/m/hdfs-files.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Hdfs.Files" title: "Hdfs.Files" +ms.subservice: m-source --- # Hdfs.Files diff --git a/query-languages/m/hdinsight-containers.md b/query-languages/m/hdinsight-containers.md index 9371de6b8..f1d377f56 100644 --- a/query-languages/m/hdinsight-containers.md +++ b/query-languages/m/hdinsight-containers.md @@ -1,6 +1,7 @@ --- description: "Learn more about: HdInsight.Containers" title: "HdInsight.Containers" +ms.subservice: m-source --- # HdInsight.Containers diff --git a/query-languages/m/hdinsight-contents.md b/query-languages/m/hdinsight-contents.md index 4f79dc6f9..65c7cb9fa 100644 --- a/query-languages/m/hdinsight-contents.md +++ b/query-languages/m/hdinsight-contents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: HdInsight.Contents" title: "HdInsight.Contents" +ms.subservice: m-source --- # HdInsight.Contents diff --git a/query-languages/m/hdinsight-files.md b/query-languages/m/hdinsight-files.md index a87933678..72f39f0a3 100644 --- a/query-languages/m/hdinsight-files.md +++ b/query-languages/m/hdinsight-files.md @@ -1,6 +1,7 @@ --- description: "Learn more about: HdInsight.Files" title: "HdInsight.Files" +ms.subservice: m-source --- # HdInsight.Files diff --git a/query-languages/m/how-culture-affects-text-formatting.md b/query-languages/m/how-culture-affects-text-formatting.md index 80bced6cb..af29f15f8 100644 --- a/query-languages/m/how-culture-affects-text-formatting.md +++ b/query-languages/m/how-culture-affects-text-formatting.md @@ -5,6 +5,8 @@ author: DougKlopfenstein ms-author: dougklo ms.date: 10/7/2024 ms.topic: reference +ms.subservice: m-background + --- # How culture affects text formatting diff --git a/query-languages/m/html-table.md b/query-languages/m/html-table.md index 71f913d7c..8f0367252 100644 --- a/query-languages/m/html-table.md +++ b/query-languages/m/html-table.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Html.Table" title: "Html.Table" +ms.subservice: m-source --- # Html.Table diff --git a/query-languages/m/identity-from.md b/query-languages/m/identity-from.md index cc2d3be01..98e20e38d 100644 --- a/query-languages/m/identity-from.md +++ b/query-languages/m/identity-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Identity.From" title: "Identity.From" +ms.subservice: m-source --- # Identity.From diff --git a/query-languages/m/identity-ismemberof.md b/query-languages/m/identity-ismemberof.md index 7fca22a25..9b4cebf1e 100644 --- a/query-languages/m/identity-ismemberof.md +++ b/query-languages/m/identity-ismemberof.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Identity.IsMemberOf" title: "Identity.IsMemberOf" +ms.subservice: m-source --- # Identity.IsMemberOf diff --git a/query-languages/m/identityprovider-default.md b/query-languages/m/identityprovider-default.md index 1b9339dd2..a187680a6 100644 --- a/query-languages/m/identityprovider-default.md +++ b/query-languages/m/identityprovider-default.md @@ -1,6 +1,7 @@ --- description: "Learn more about: IdentityProvider.Default" title: "IdentityProvider.Default" +ms.subservice: m-source --- # IdentityProvider.Default diff --git a/query-languages/m/informix-database.md b/query-languages/m/informix-database.md index b0590b543..30b4d7249 100644 --- a/query-languages/m/informix-database.md +++ b/query-languages/m/informix-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Informix.Database" title: "Informix.Database" +ms.subservice: m-source --- # Informix.Database diff --git a/query-languages/m/int16-from.md b/query-languages/m/int16-from.md index c5153c518..626cdb09b 100644 --- a/query-languages/m/int16-from.md +++ b/query-languages/m/int16-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Int16.From" title: "Int16.From" +ms.subservice: m-source --- # Int16.From diff --git a/query-languages/m/int32-from.md b/query-languages/m/int32-from.md index a0a4fcd03..d8ef4093c 100644 --- a/query-languages/m/int32-from.md +++ b/query-languages/m/int32-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Int32.From" title: "Int32.From" +ms.subservice: m-source --- # Int32.From diff --git a/query-languages/m/int64-from.md b/query-languages/m/int64-from.md index d37d670aa..6921bdca4 100644 --- a/query-languages/m/int64-from.md +++ b/query-languages/m/int64-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Int64.From" title: "Int64.From" +ms.subservice: m-source --- # Int64.From diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index 45b279eac..5cde227f8 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Int8.From" title: "Int8.From" +ms.subservice: m-source --- # Int8.From diff --git a/query-languages/m/itemexpression-from.md b/query-languages/m/itemexpression-from.md index adf3b3296..2bc3b8709 100644 --- a/query-languages/m/itemexpression-from.md +++ b/query-languages/m/itemexpression-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: ItemExpression.From" title: "ItemExpression.From" +ms.subservice: m-source --- # ItemExpression.From diff --git a/query-languages/m/itemexpression-item.md b/query-languages/m/itemexpression-item.md index 524e477dc..dfbfb7039 100644 --- a/query-languages/m/itemexpression-item.md +++ b/query-languages/m/itemexpression-item.md @@ -1,6 +1,7 @@ --- description: "Learn more about: ItemExpression.Item" title: "ItemExpression.Item" +ms.subservice: m-source --- # ItemExpression.Item diff --git a/query-languages/m/joinalgorithm-type.md b/query-languages/m/joinalgorithm-type.md index d7e06e3ea..a969093be 100644 --- a/query-languages/m/joinalgorithm-type.md +++ b/query-languages/m/joinalgorithm-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: JoinAlgorithm.Type" title: "JoinAlgorithm.Type" +ms.subservice: m-source --- # JoinAlgorithm.Type diff --git a/query-languages/m/joinkind-type.md b/query-languages/m/joinkind-type.md index 903620445..d425c2883 100644 --- a/query-languages/m/joinkind-type.md +++ b/query-languages/m/joinkind-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: JoinKind.Type" title: "JoinKind.Type" +ms.subservice: m-source --- # JoinKind.Type diff --git a/query-languages/m/joinside-type.md b/query-languages/m/joinside-type.md index bb697d5aa..846b7c253 100644 --- a/query-languages/m/joinside-type.md +++ b/query-languages/m/joinside-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: JoinSide.Type" title: "JoinSide.Type" +ms.subservice: m-source --- # JoinSide.Type diff --git a/query-languages/m/json-document.md b/query-languages/m/json-document.md index 71200540a..c6810bcaf 100644 --- a/query-languages/m/json-document.md +++ b/query-languages/m/json-document.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Json.Document" title: "Json.Document" +ms.subservice: m-source --- # Json.Document diff --git a/query-languages/m/json-fromvalue.md b/query-languages/m/json-fromvalue.md index 3b52faa41..5f17efc65 100644 --- a/query-languages/m/json-fromvalue.md +++ b/query-languages/m/json-fromvalue.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Json.FromValue" title: "Json.FromValue" +ms.subservice: m-source --- # Json.FromValue diff --git a/query-languages/m/limitclausekind-type.md b/query-languages/m/limitclausekind-type.md index 73b3e4ecb..e13e0ce39 100644 --- a/query-languages/m/limitclausekind-type.md +++ b/query-languages/m/limitclausekind-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: LimitClauseKind.Type" title: "LimitClauseKind.Type" +ms.subservice: m-source --- # LimitClauseKind.Type diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index 1a3a5c693..76beb1703 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Lines.FromBinary" title: "Lines.FromBinary" +ms.subservice: m-source --- # Lines.FromBinary diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index c958c87bc..35ac16792 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Lines.FromText" title: "Lines.FromText" +ms.subservice: m-source --- # Lines.FromText diff --git a/query-languages/m/lines-tobinary.md b/query-languages/m/lines-tobinary.md index ef8512c65..730891f23 100644 --- a/query-languages/m/lines-tobinary.md +++ b/query-languages/m/lines-tobinary.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Lines.ToBinary" title: "Lines.ToBinary" +ms.subservice: m-source --- # Lines.ToBinary diff --git a/query-languages/m/lines-totext.md b/query-languages/m/lines-totext.md index 69dccf55b..f616002f3 100644 --- a/query-languages/m/lines-totext.md +++ b/query-languages/m/lines-totext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Lines.ToText" title: "Lines.ToText" +ms.subservice: m-source --- # Lines.ToText diff --git a/query-languages/m/list-accumulate.md b/query-languages/m/list-accumulate.md index 7af8eeb2b..08d0c9412 100644 --- a/query-languages/m/list-accumulate.md +++ b/query-languages/m/list-accumulate.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Accumulate" title: "List.Accumulate" +ms.subservice: m-source --- # List.Accumulate diff --git a/query-languages/m/list-alltrue.md b/query-languages/m/list-alltrue.md index 7102f78f0..59b10b136 100644 --- a/query-languages/m/list-alltrue.md +++ b/query-languages/m/list-alltrue.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.AllTrue" title: "List.AllTrue" +ms.subservice: m-source --- # List.AllTrue diff --git a/query-languages/m/list-alternate.md b/query-languages/m/list-alternate.md index e009f9c9f..a9f43738f 100644 --- a/query-languages/m/list-alternate.md +++ b/query-languages/m/list-alternate.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Alternate" title: "List.Alternate" +ms.subservice: m-source --- # List.Alternate diff --git a/query-languages/m/list-anytrue.md b/query-languages/m/list-anytrue.md index 838b7bffd..c84f08edd 100644 --- a/query-languages/m/list-anytrue.md +++ b/query-languages/m/list-anytrue.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.AnyTrue" title: "List.AnyTrue" +ms.subservice: m-source --- # List.AnyTrue diff --git a/query-languages/m/list-average.md b/query-languages/m/list-average.md index 09705675c..6d7a68c85 100644 --- a/query-languages/m/list-average.md +++ b/query-languages/m/list-average.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Average" title: "List.Average" +ms.subservice: m-source --- # List.Average diff --git a/query-languages/m/list-buffer.md b/query-languages/m/list-buffer.md index 91f95bfc8..c89e260e2 100644 --- a/query-languages/m/list-buffer.md +++ b/query-languages/m/list-buffer.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Buffer" title: "List.Buffer" +ms.subservice: m-source --- # List.Buffer diff --git a/query-languages/m/list-combine.md b/query-languages/m/list-combine.md index b482eb92c..bf5289cc8 100644 --- a/query-languages/m/list-combine.md +++ b/query-languages/m/list-combine.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Combine" title: "List.Combine" +ms.subservice: m-source --- # List.Combine diff --git a/query-languages/m/list-conformtopagereader.md b/query-languages/m/list-conformtopagereader.md index 3d18ce69a..341bfba88 100644 --- a/query-languages/m/list-conformtopagereader.md +++ b/query-languages/m/list-conformtopagereader.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.ConformToPageReader" title: "List.ConformToPageReader" +ms.subservice: m-source --- # List.ConformToPageReader diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index b9c72fbc7..a4b74cbd7 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Contains" title: "List.Contains" +ms.subservice: m-source --- # List.Contains diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index 80050aa8a..560904c8b 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.ContainsAll" title: "List.ContainsAll" +ms.subservice: m-source --- # List.ContainsAll diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index 979834eb4..8f51d529c 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.ContainsAny" title: "List.ContainsAny" +ms.subservice: m-source --- # List.ContainsAny diff --git a/query-languages/m/list-count.md b/query-languages/m/list-count.md index 0d32193ae..0004f0957 100644 --- a/query-languages/m/list-count.md +++ b/query-languages/m/list-count.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Count" title: "List.Count" +ms.subservice: m-source --- # List.Count diff --git a/query-languages/m/list-covariance.md b/query-languages/m/list-covariance.md index 6fff7d754..1ca4ae1de 100644 --- a/query-languages/m/list-covariance.md +++ b/query-languages/m/list-covariance.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Covariance" title: "List.Covariance" +ms.subservice: m-source --- # List.Covariance diff --git a/query-languages/m/list-dates.md b/query-languages/m/list-dates.md index 27b84218d..cfa281b2d 100644 --- a/query-languages/m/list-dates.md +++ b/query-languages/m/list-dates.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Dates" title: "List.Dates" +ms.subservice: m-source --- # List.Dates diff --git a/query-languages/m/list-datetimes.md b/query-languages/m/list-datetimes.md index 62ca5f7c9..25982efa2 100644 --- a/query-languages/m/list-datetimes.md +++ b/query-languages/m/list-datetimes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.DateTimes" title: "List.DateTimes" +ms.subservice: m-source --- # List.DateTimes diff --git a/query-languages/m/list-datetimezones.md b/query-languages/m/list-datetimezones.md index 2c7e056d0..92c61d952 100644 --- a/query-languages/m/list-datetimezones.md +++ b/query-languages/m/list-datetimezones.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.DateTimeZones" title: "List.DateTimeZones" +ms.subservice: m-source --- # List.DateTimeZones diff --git a/query-languages/m/list-difference.md b/query-languages/m/list-difference.md index dbd1d1a3f..df54a71a3 100644 --- a/query-languages/m/list-difference.md +++ b/query-languages/m/list-difference.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Difference" title: "List.Difference" +ms.subservice: m-source --- # List.Difference diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index 95b75a03d..6c1d8e9c3 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Distinct" title: "List.Distinct" +ms.subservice: m-source --- # List.Distinct diff --git a/query-languages/m/list-durations.md b/query-languages/m/list-durations.md index 2908c3c36..fc524988a 100644 --- a/query-languages/m/list-durations.md +++ b/query-languages/m/list-durations.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Durations" title: "List.Durations" +ms.subservice: m-source --- # List.Durations diff --git a/query-languages/m/list-findtext.md b/query-languages/m/list-findtext.md index 880ee252d..bfb1cc3b7 100644 --- a/query-languages/m/list-findtext.md +++ b/query-languages/m/list-findtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.FindText" title: "List.FindText" +ms.subservice: m-source --- # List.FindText diff --git a/query-languages/m/list-first.md b/query-languages/m/list-first.md index 74f00c4aa..21ff0dcd2 100644 --- a/query-languages/m/list-first.md +++ b/query-languages/m/list-first.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.First" title: "List.First" +ms.subservice: m-source --- # List.First diff --git a/query-languages/m/list-firstn.md b/query-languages/m/list-firstn.md index 2d779e366..2526decd7 100644 --- a/query-languages/m/list-firstn.md +++ b/query-languages/m/list-firstn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.FirstN" title: "List.FirstN" +ms.subservice: m-source --- # List.FirstN diff --git a/query-languages/m/list-generate.md b/query-languages/m/list-generate.md index 756108c81..6f65f2be8 100644 --- a/query-languages/m/list-generate.md +++ b/query-languages/m/list-generate.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Generate" title: "List.Generate" +ms.subservice: m-source --- # List.Generate diff --git a/query-languages/m/list-insertrange.md b/query-languages/m/list-insertrange.md index 4229c76c8..e8409f9d0 100644 --- a/query-languages/m/list-insertrange.md +++ b/query-languages/m/list-insertrange.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.InsertRange" title: "List.InsertRange" +ms.subservice: m-source --- # List.InsertRange diff --git a/query-languages/m/list-intersect.md b/query-languages/m/list-intersect.md index 691057f1d..185995908 100644 --- a/query-languages/m/list-intersect.md +++ b/query-languages/m/list-intersect.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Intersect" title: "List.Intersect" +ms.subservice: m-source --- # List.Intersect diff --git a/query-languages/m/list-isdistinct.md b/query-languages/m/list-isdistinct.md index bc6f6af4c..8dad8b842 100644 --- a/query-languages/m/list-isdistinct.md +++ b/query-languages/m/list-isdistinct.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.IsDistinct" title: "List.IsDistinct" +ms.subservice: m-source --- # List.IsDistinct diff --git a/query-languages/m/list-isempty.md b/query-languages/m/list-isempty.md index 4d68b9671..c72a9ad46 100644 --- a/query-languages/m/list-isempty.md +++ b/query-languages/m/list-isempty.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.IsEmpty" title: "List.IsEmpty" +ms.subservice: m-source --- # List.IsEmpty diff --git a/query-languages/m/list-last.md b/query-languages/m/list-last.md index a4d5708c3..0717a360d 100644 --- a/query-languages/m/list-last.md +++ b/query-languages/m/list-last.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Last" title: "List.Last" +ms.subservice: m-source --- # List.Last diff --git a/query-languages/m/list-lastn.md b/query-languages/m/list-lastn.md index e6442d8a1..46cd1e33c 100644 --- a/query-languages/m/list-lastn.md +++ b/query-languages/m/list-lastn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.LastN" title: "List.LastN" +ms.subservice: m-source --- # List.LastN diff --git a/query-languages/m/list-matchesall.md b/query-languages/m/list-matchesall.md index f2644a155..be47488dd 100644 --- a/query-languages/m/list-matchesall.md +++ b/query-languages/m/list-matchesall.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.MatchesAll" title: "List.MatchesAll" +ms.subservice: m-source --- # List.MatchesAll diff --git a/query-languages/m/list-matchesany.md b/query-languages/m/list-matchesany.md index fc8babded..793de3987 100644 --- a/query-languages/m/list-matchesany.md +++ b/query-languages/m/list-matchesany.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.MatchesAny" title: "List.MatchesAny" +ms.subservice: m-source --- # List.MatchesAny diff --git a/query-languages/m/list-max.md b/query-languages/m/list-max.md index b7aa8ef88..9987c1864 100644 --- a/query-languages/m/list-max.md +++ b/query-languages/m/list-max.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Max" title: "List.Max" +ms.subservice: m-source --- # List.Max diff --git a/query-languages/m/list-maxn.md b/query-languages/m/list-maxn.md index 2494d3cb8..484ab707d 100644 --- a/query-languages/m/list-maxn.md +++ b/query-languages/m/list-maxn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.MaxN" title: "List.MaxN" +ms.subservice: m-source --- # List.MaxN diff --git a/query-languages/m/list-median.md b/query-languages/m/list-median.md index 43bdba396..0313d0cc6 100644 --- a/query-languages/m/list-median.md +++ b/query-languages/m/list-median.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Median" title: "List.Median" +ms.subservice: m-source --- # List.Median diff --git a/query-languages/m/list-min.md b/query-languages/m/list-min.md index 98b88e7f4..663999168 100644 --- a/query-languages/m/list-min.md +++ b/query-languages/m/list-min.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Min" title: "List.Min" +ms.subservice: m-source --- # List.Min diff --git a/query-languages/m/list-minn.md b/query-languages/m/list-minn.md index c03d3790c..997a1ecbb 100644 --- a/query-languages/m/list-minn.md +++ b/query-languages/m/list-minn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.MinN" title: "List.MinN" +ms.subservice: m-source --- # List.MinN diff --git a/query-languages/m/list-mode.md b/query-languages/m/list-mode.md index 410504b30..fff490b8a 100644 --- a/query-languages/m/list-mode.md +++ b/query-languages/m/list-mode.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Mode" title: "List.Mode" +ms.subservice: m-source --- # List.Mode diff --git a/query-languages/m/list-modes.md b/query-languages/m/list-modes.md index fba12a6e6..f44b6aa44 100644 --- a/query-languages/m/list-modes.md +++ b/query-languages/m/list-modes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Modes" title: "List.Modes" +ms.subservice: m-source --- # List.Modes diff --git a/query-languages/m/list-nonnullcount.md b/query-languages/m/list-nonnullcount.md index 63751c5b3..2cd72349e 100644 --- a/query-languages/m/list-nonnullcount.md +++ b/query-languages/m/list-nonnullcount.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.NonNullCount" title: "List.NonNullCount" +ms.subservice: m-source --- # List.NonNullCount diff --git a/query-languages/m/list-numbers.md b/query-languages/m/list-numbers.md index db272e77e..e8c4e0557 100644 --- a/query-languages/m/list-numbers.md +++ b/query-languages/m/list-numbers.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Numbers" title: "List.Numbers" +ms.subservice: m-source --- # List.Numbers diff --git a/query-languages/m/list-percentile.md b/query-languages/m/list-percentile.md index 87a656cf2..243773e50 100644 --- a/query-languages/m/list-percentile.md +++ b/query-languages/m/list-percentile.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Percentile" title: "List.Percentile" +ms.subservice: m-source --- # List.Percentile diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index c14686d13..43babeb61 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.PositionOf" title: "List.PositionOf" +ms.subservice: m-source --- # List.PositionOf diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index cc83329b7..6d6f450c1 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.PositionOfAny" title: "List.PositionOfAny" +ms.subservice: m-source --- # List.PositionOfAny diff --git a/query-languages/m/list-positions.md b/query-languages/m/list-positions.md index 96c2799c0..7422ccd8c 100644 --- a/query-languages/m/list-positions.md +++ b/query-languages/m/list-positions.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Positions" title: "List.Positions" +ms.subservice: m-source --- # List.Positions diff --git a/query-languages/m/list-product.md b/query-languages/m/list-product.md index acc240b56..3006b9773 100644 --- a/query-languages/m/list-product.md +++ b/query-languages/m/list-product.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Product" title: "List.Product" +ms.subservice: m-source --- # List.Product diff --git a/query-languages/m/list-random.md b/query-languages/m/list-random.md index af1fd70aa..afd9d81c0 100644 --- a/query-languages/m/list-random.md +++ b/query-languages/m/list-random.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Random" title: "List.Random" +ms.subservice: m-source --- # List.Random diff --git a/query-languages/m/list-range.md b/query-languages/m/list-range.md index a434b8e81..887e4e8ee 100644 --- a/query-languages/m/list-range.md +++ b/query-languages/m/list-range.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Range" title: "List.Range" +ms.subservice: m-source --- # List.Range diff --git a/query-languages/m/list-removefirstn.md b/query-languages/m/list-removefirstn.md index b4e0c3a99..8d5c2787b 100644 --- a/query-languages/m/list-removefirstn.md +++ b/query-languages/m/list-removefirstn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.RemoveFirstN" title: "List.RemoveFirstN" +ms.subservice: m-source --- # List.RemoveFirstN diff --git a/query-languages/m/list-removeitems.md b/query-languages/m/list-removeitems.md index a1dd2d164..e3c35c773 100644 --- a/query-languages/m/list-removeitems.md +++ b/query-languages/m/list-removeitems.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.RemoveItems" title: "List.RemoveItems" +ms.subservice: m-source --- # List.RemoveItems diff --git a/query-languages/m/list-removelastn.md b/query-languages/m/list-removelastn.md index 3dd377a05..27f30154e 100644 --- a/query-languages/m/list-removelastn.md +++ b/query-languages/m/list-removelastn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.RemoveLastN" title: "List.RemoveLastN" +ms.subservice: m-source --- # List.RemoveLastN diff --git a/query-languages/m/list-removematchingitems.md b/query-languages/m/list-removematchingitems.md index 8a2b1e848..5e03e63ae 100644 --- a/query-languages/m/list-removematchingitems.md +++ b/query-languages/m/list-removematchingitems.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.RemoveMatchingItems" title: "List.RemoveMatchingItems" +ms.subservice: m-source --- # List.RemoveMatchingItems diff --git a/query-languages/m/list-removenulls.md b/query-languages/m/list-removenulls.md index 5bffbad84..c4b21900c 100644 --- a/query-languages/m/list-removenulls.md +++ b/query-languages/m/list-removenulls.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.RemoveNulls" title: "List.RemoveNulls" +ms.subservice: m-source --- # List.RemoveNulls diff --git a/query-languages/m/list-removerange.md b/query-languages/m/list-removerange.md index 6278414d3..3145559e1 100644 --- a/query-languages/m/list-removerange.md +++ b/query-languages/m/list-removerange.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.RemoveRange" title: "List.RemoveRange" +ms.subservice: m-source --- # List.RemoveRange diff --git a/query-languages/m/list-repeat.md b/query-languages/m/list-repeat.md index 0ebf39f54..bb91d7474 100644 --- a/query-languages/m/list-repeat.md +++ b/query-languages/m/list-repeat.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Repeat" title: "List.Repeat" +ms.subservice: m-source --- # List.Repeat diff --git a/query-languages/m/list-replacematchingitems.md b/query-languages/m/list-replacematchingitems.md index 7c0b2b9e0..e32b55fbc 100644 --- a/query-languages/m/list-replacematchingitems.md +++ b/query-languages/m/list-replacematchingitems.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.ReplaceMatchingItems" title: "List.ReplaceMatchingItems" +ms.subservice: m-source --- # List.ReplaceMatchingItems diff --git a/query-languages/m/list-replacerange.md b/query-languages/m/list-replacerange.md index 57e5df408..d2e8cbf94 100644 --- a/query-languages/m/list-replacerange.md +++ b/query-languages/m/list-replacerange.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.ReplaceRange" title: "List.ReplaceRange" +ms.subservice: m-source --- # List.ReplaceRange diff --git a/query-languages/m/list-replacevalue.md b/query-languages/m/list-replacevalue.md index 151ce3267..33dcfc7b5 100644 --- a/query-languages/m/list-replacevalue.md +++ b/query-languages/m/list-replacevalue.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.ReplaceValue" title: "List.ReplaceValue" +ms.subservice: m-source --- # List.ReplaceValue diff --git a/query-languages/m/list-reverse.md b/query-languages/m/list-reverse.md index 0d46723f9..f4794430f 100644 --- a/query-languages/m/list-reverse.md +++ b/query-languages/m/list-reverse.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Reverse" title: "List.Reverse" +ms.subservice: m-source --- # List.Reverse diff --git a/query-languages/m/list-select.md b/query-languages/m/list-select.md index ee107008a..803cb77c9 100644 --- a/query-languages/m/list-select.md +++ b/query-languages/m/list-select.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Select" title: "List.Select" +ms.subservice: m-source --- # List.Select diff --git a/query-languages/m/list-single.md b/query-languages/m/list-single.md index ab663b5f9..1ca4f4ea1 100644 --- a/query-languages/m/list-single.md +++ b/query-languages/m/list-single.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Single" title: "List.Single" +ms.subservice: m-source --- # List.Single diff --git a/query-languages/m/list-singleordefault.md b/query-languages/m/list-singleordefault.md index a33d6e2ce..a53d9277b 100644 --- a/query-languages/m/list-singleordefault.md +++ b/query-languages/m/list-singleordefault.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.SingleOrDefault" title: "List.SingleOrDefault" +ms.subservice: m-source --- # List.SingleOrDefault diff --git a/query-languages/m/list-skip.md b/query-languages/m/list-skip.md index dd4651542..b947b09cc 100644 --- a/query-languages/m/list-skip.md +++ b/query-languages/m/list-skip.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Skip" title: "List.Skip" +ms.subservice: m-source --- # List.Skip diff --git a/query-languages/m/list-sort.md b/query-languages/m/list-sort.md index 671bdd603..4be38caa8 100644 --- a/query-languages/m/list-sort.md +++ b/query-languages/m/list-sort.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Sort" title: "List.Sort" +ms.subservice: m-source --- # List.Sort diff --git a/query-languages/m/list-split.md b/query-languages/m/list-split.md index 99f2dc20c..6f4f1a5db 100644 --- a/query-languages/m/list-split.md +++ b/query-languages/m/list-split.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Split" title: "List.Split" +ms.subservice: m-source --- # List.Split diff --git a/query-languages/m/list-standarddeviation.md b/query-languages/m/list-standarddeviation.md index 45890a214..26be73cf9 100644 --- a/query-languages/m/list-standarddeviation.md +++ b/query-languages/m/list-standarddeviation.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.StandardDeviation" title: "List.StandardDeviation" +ms.subservice: m-source --- # List.StandardDeviation diff --git a/query-languages/m/list-sum.md b/query-languages/m/list-sum.md index 1f8f1ff27..f06b6862e 100644 --- a/query-languages/m/list-sum.md +++ b/query-languages/m/list-sum.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Sum" title: "List.Sum" +ms.subservice: m-source --- # List.Sum diff --git a/query-languages/m/list-times.md b/query-languages/m/list-times.md index 481cae6b0..a018692df 100644 --- a/query-languages/m/list-times.md +++ b/query-languages/m/list-times.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Times" title: "List.Times" +ms.subservice: m-source --- # List.Times diff --git a/query-languages/m/list-transform.md b/query-languages/m/list-transform.md index 3ed433a49..5b6b5c417 100644 --- a/query-languages/m/list-transform.md +++ b/query-languages/m/list-transform.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Transform" title: "List.Transform" +ms.subservice: m-source --- # List.Transform diff --git a/query-languages/m/list-transformmany.md b/query-languages/m/list-transformmany.md index 68664ec5a..300b862ee 100644 --- a/query-languages/m/list-transformmany.md +++ b/query-languages/m/list-transformmany.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.TransformMany" title: "List.TransformMany" +ms.subservice: m-source --- # List.TransformMany diff --git a/query-languages/m/list-union.md b/query-languages/m/list-union.md index ff893b0ca..ace03ec9e 100644 --- a/query-languages/m/list-union.md +++ b/query-languages/m/list-union.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Union" title: "List.Union" +ms.subservice: m-source --- # List.Union diff --git a/query-languages/m/list-zip.md b/query-languages/m/list-zip.md index 97793f901..3c8344748 100644 --- a/query-languages/m/list-zip.md +++ b/query-languages/m/list-zip.md @@ -1,6 +1,7 @@ --- description: "Learn more about: List.Zip" title: "List.Zip" +ms.subservice: m-source --- # List.Zip diff --git a/query-languages/m/logical-from.md b/query-languages/m/logical-from.md index 365cdf58f..03622b627 100644 --- a/query-languages/m/logical-from.md +++ b/query-languages/m/logical-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Logical.From" title: "Logical.From" +ms.subservice: m-source --- # Logical.From diff --git a/query-languages/m/logical-fromtext.md b/query-languages/m/logical-fromtext.md index 7f3ae93dc..c484bc4e2 100644 --- a/query-languages/m/logical-fromtext.md +++ b/query-languages/m/logical-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Logical.FromText" title: "Logical.FromText" +ms.subservice: m-source --- # Logical.FromText diff --git a/query-languages/m/logical-totext.md b/query-languages/m/logical-totext.md index 962c824a3..a01a90ba4 100644 --- a/query-languages/m/logical-totext.md +++ b/query-languages/m/logical-totext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Logical.ToText" title: "Logical.ToText" +ms.subservice: m-source --- # Logical.ToText diff --git a/query-languages/m/m-spec-basic-concepts.md b/query-languages/m/m-spec-basic-concepts.md index 426351773..58c487a8a 100644 --- a/query-languages/m/m-spec-basic-concepts.md +++ b/query-languages/m/m-spec-basic-concepts.md @@ -4,6 +4,8 @@ description: Discusses basic concepts that appear throughout the subsequent sect ms.topic: conceptual ms.date: 8/2/2022 ms.custom: nonautomated-date, intro-internal +ms.subservice: m-specification + --- # Basic concepts diff --git a/query-languages/m/m-spec-conditionals.md b/query-languages/m/m-spec-conditionals.md index b18561036..16c4b590c 100644 --- a/query-languages/m/m-spec-conditionals.md +++ b/query-languages/m/m-spec-conditionals.md @@ -4,6 +4,7 @@ description: Describes using conditionals in the Power Query M formula language ms.topic: conceptual ms.date: 03/29/2024 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index d6bf65e73..d8237bea1 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -4,6 +4,7 @@ description: Describes all of the grammar associated with the Power Query M form ms.topic: conceptual ms.date: 02/02/2024 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- # Consolidated Grammar diff --git a/query-languages/m/m-spec-error-handling.md b/query-languages/m/m-spec-error-handling.md index d1cd3886a..ab62496c9 100644 --- a/query-languages/m/m-spec-error-handling.md +++ b/query-languages/m/m-spec-error-handling.md @@ -4,6 +4,7 @@ description: Describes error handling in the Power Query M formula language ms.topic: conceptual ms.date: 8/2/2022 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- # Error Handling diff --git a/query-languages/m/m-spec-functions.md b/query-languages/m/m-spec-functions.md index 5e0040b81..6fe331ff7 100644 --- a/query-languages/m/m-spec-functions.md +++ b/query-languages/m/m-spec-functions.md @@ -4,6 +4,7 @@ description: Describes using functions in the Power Query M formula language ms.topic: conceptual ms.date: 7/7/2023 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index b4c59756c..7a779c5cc 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -4,6 +4,7 @@ description: Provides an overview of the Power Query M formula language ms.topic: overview ms.date: 7/21/2023 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- # Introduction diff --git a/query-languages/m/m-spec-let.md b/query-languages/m/m-spec-let.md index 34ff24c68..7c96a6f0e 100644 --- a/query-languages/m/m-spec-let.md +++ b/query-languages/m/m-spec-let.md @@ -4,6 +4,7 @@ description: Describes using the let expression in the Power Query M formula lan ms.topic: conceptual ms.date: 10/7/2022 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- diff --git a/query-languages/m/m-spec-lexical-structure.md b/query-languages/m/m-spec-lexical-structure.md index c5616ca21..fa406c045 100644 --- a/query-languages/m/m-spec-lexical-structure.md +++ b/query-languages/m/m-spec-lexical-structure.md @@ -4,6 +4,7 @@ description: Describes the lexical structure of the Power Query M formula langua ms.topic: conceptual ms.date: 8/2/2022 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index ca16042e2..520c42b81 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -4,6 +4,7 @@ description: Describes using operators in the Power Query M formula language ms.topic: conceptual ms.date: 12/12/2024 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- # Operator behavior diff --git a/query-languages/m/m-spec-sections.md b/query-languages/m/m-spec-sections.md index ba9adef03..f33748a3b 100644 --- a/query-languages/m/m-spec-sections.md +++ b/query-languages/m/m-spec-sections.md @@ -4,6 +4,7 @@ description: Describes using sections in the Power Query M formula language ms.topic: conceptual ms.date: 10/7/2022 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- # Sections diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 05b3a6d6f..e44eea8a9 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -4,6 +4,7 @@ description: Describes using types in the Power Query M formula language ms.topic: conceptual ms.date: 1/31/2024 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- # Types diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index ba57bfa0a..c28c13775 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -4,6 +4,7 @@ description: Describes using values in the Power Query M formula language ms.topic: conceptual ms.date: 8/2/2022 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- # Values diff --git a/query-languages/m/metadata.md b/query-languages/m/metadata.md index a76c526e3..14659bbe0 100644 --- a/query-languages/m/metadata.md +++ b/query-languages/m/metadata.md @@ -4,6 +4,7 @@ title: "Metadata" ms.topic: conceptual ms.date: 8/28/2024 ms.custom: "nonautomated-date" +ms.subservice: m-background --- # Metadata diff --git a/query-languages/m/missingfield-type.md b/query-languages/m/missingfield-type.md index e09a34ba5..17eab34b0 100644 --- a/query-languages/m/missingfield-type.md +++ b/query-languages/m/missingfield-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: MissingField.Type" title: "MissingField.Type" +ms.subservice: m-source --- # MissingField.Type diff --git a/query-languages/m/module-versions.md b/query-languages/m/module-versions.md index c016254ba..37ccf55ac 100644 --- a/query-languages/m/module-versions.md +++ b/query-languages/m/module-versions.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Module.Versions" title: "Module.Versions" +ms.subservice: m-source --- # Module.Versions diff --git a/query-languages/m/mysql-database.md b/query-languages/m/mysql-database.md index 68b819dfa..e52cfbd9b 100644 --- a/query-languages/m/mysql-database.md +++ b/query-languages/m/mysql-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: MySQL.Database" title: "MySQL.Database" +ms.subservice: m-source --- # MySQL.Database diff --git a/query-languages/m/number-abs.md b/query-languages/m/number-abs.md index aa6c990ac..2aeee3f04 100644 --- a/query-languages/m/number-abs.md +++ b/query-languages/m/number-abs.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Abs" title: "Number.Abs" +ms.subservice: m-source --- # Number.Abs diff --git a/query-languages/m/number-acos.md b/query-languages/m/number-acos.md index dc4a0debe..723ff31d1 100644 --- a/query-languages/m/number-acos.md +++ b/query-languages/m/number-acos.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Acos" title: "Number.Acos" +ms.subservice: m-source --- # Number.Acos diff --git a/query-languages/m/number-asin.md b/query-languages/m/number-asin.md index 5f25ba787..cf0b7ae7b 100644 --- a/query-languages/m/number-asin.md +++ b/query-languages/m/number-asin.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Asin" title: "Number.Asin" +ms.subservice: m-source --- # Number.Asin diff --git a/query-languages/m/number-atan.md b/query-languages/m/number-atan.md index 0018defe2..a0e685f5d 100644 --- a/query-languages/m/number-atan.md +++ b/query-languages/m/number-atan.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Atan" title: "Number.Atan" +ms.subservice: m-source --- # Number.Atan diff --git a/query-languages/m/number-atan2.md b/query-languages/m/number-atan2.md index 72610f7ad..2d2e7b7c2 100644 --- a/query-languages/m/number-atan2.md +++ b/query-languages/m/number-atan2.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Atan2" title: "Number.Atan2" +ms.subservice: m-source --- # Number.Atan2 diff --git a/query-languages/m/number-bitwiseand.md b/query-languages/m/number-bitwiseand.md index ade11c7eb..9bc768652 100644 --- a/query-languages/m/number-bitwiseand.md +++ b/query-languages/m/number-bitwiseand.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.BitwiseAnd" title: "Number.BitwiseAnd" +ms.subservice: m-source --- # Number.BitwiseAnd diff --git a/query-languages/m/number-bitwisenot.md b/query-languages/m/number-bitwisenot.md index 59c93d10b..1a4ec6433 100644 --- a/query-languages/m/number-bitwisenot.md +++ b/query-languages/m/number-bitwisenot.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.BitwiseNot" title: "Number.BitwiseNot" +ms.subservice: m-source --- # Number.BitwiseNot diff --git a/query-languages/m/number-bitwiseor.md b/query-languages/m/number-bitwiseor.md index a9c4665bc..a9c3464d7 100644 --- a/query-languages/m/number-bitwiseor.md +++ b/query-languages/m/number-bitwiseor.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.BitwiseOr" title: "Number.BitwiseOr" +ms.subservice: m-source --- # Number.BitwiseOr diff --git a/query-languages/m/number-bitwiseshiftleft.md b/query-languages/m/number-bitwiseshiftleft.md index 178a60cfe..b52a080ed 100644 --- a/query-languages/m/number-bitwiseshiftleft.md +++ b/query-languages/m/number-bitwiseshiftleft.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.BitwiseShiftLeft" title: "Number.BitwiseShiftLeft" +ms.subservice: m-source --- # Number.BitwiseShiftLeft diff --git a/query-languages/m/number-bitwiseshiftright.md b/query-languages/m/number-bitwiseshiftright.md index 023b4fc14..d7ab9a98b 100644 --- a/query-languages/m/number-bitwiseshiftright.md +++ b/query-languages/m/number-bitwiseshiftright.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.BitwiseShiftRight" title: "Number.BitwiseShiftRight" +ms.subservice: m-source --- # Number.BitwiseShiftRight diff --git a/query-languages/m/number-bitwisexor.md b/query-languages/m/number-bitwisexor.md index ddc8f2e1e..925d5f448 100644 --- a/query-languages/m/number-bitwisexor.md +++ b/query-languages/m/number-bitwisexor.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.BitwiseXor" title: "Number.BitwiseXor" +ms.subservice: m-source --- # Number.BitwiseXor diff --git a/query-languages/m/number-combinations.md b/query-languages/m/number-combinations.md index 544f2f0ec..01773b321 100644 --- a/query-languages/m/number-combinations.md +++ b/query-languages/m/number-combinations.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Combinations" title: "Number.Combinations" +ms.subservice: m-source --- # Number.Combinations diff --git a/query-languages/m/number-cos.md b/query-languages/m/number-cos.md index 438096167..a347ebb3e 100644 --- a/query-languages/m/number-cos.md +++ b/query-languages/m/number-cos.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Cos" title: "Number.Cos" +ms.subservice: m-source --- # Number.Cos diff --git a/query-languages/m/number-cosh.md b/query-languages/m/number-cosh.md index 129f44579..41df4cae1 100644 --- a/query-languages/m/number-cosh.md +++ b/query-languages/m/number-cosh.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Cosh" title: "Number.Cosh" +ms.subservice: m-source --- # Number.Cosh diff --git a/query-languages/m/number-e.md b/query-languages/m/number-e.md index dea5969c1..36f14b8c2 100644 --- a/query-languages/m/number-e.md +++ b/query-languages/m/number-e.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.E" title: "Number.E" +ms.subservice: m-source --- # Number.E diff --git a/query-languages/m/number-epsilon.md b/query-languages/m/number-epsilon.md index 9e9aa23d8..b0bc9b7fe 100644 --- a/query-languages/m/number-epsilon.md +++ b/query-languages/m/number-epsilon.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Epsilon" title: "Number.Epsilon" +ms.subservice: m-source --- # Number.Epsilon diff --git a/query-languages/m/number-exp.md b/query-languages/m/number-exp.md index eabf3fbe7..575d0dcf3 100644 --- a/query-languages/m/number-exp.md +++ b/query-languages/m/number-exp.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Exp" title: "Number.Exp" +ms.subservice: m-source --- # Number.Exp diff --git a/query-languages/m/number-factorial.md b/query-languages/m/number-factorial.md index 0b549b410..bc3723f31 100644 --- a/query-languages/m/number-factorial.md +++ b/query-languages/m/number-factorial.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Factorial" title: "Number.Factorial" +ms.subservice: m-source --- # Number.Factorial diff --git a/query-languages/m/number-from.md b/query-languages/m/number-from.md index 44dee9981..2ed2d05c7 100644 --- a/query-languages/m/number-from.md +++ b/query-languages/m/number-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.From" title: "Number.From" +ms.subservice: m-source --- # Number.From diff --git a/query-languages/m/number-fromtext.md b/query-languages/m/number-fromtext.md index 5b401ade7..4cdbaeefd 100644 --- a/query-languages/m/number-fromtext.md +++ b/query-languages/m/number-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.FromText" title: "Number.FromText" +ms.subservice: m-source --- # Number.FromText diff --git a/query-languages/m/number-integerdivide.md b/query-languages/m/number-integerdivide.md index 051225ce0..9ae8a7e00 100644 --- a/query-languages/m/number-integerdivide.md +++ b/query-languages/m/number-integerdivide.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.IntegerDivide" title: "Number.IntegerDivide" +ms.subservice: m-source --- # Number.IntegerDivide diff --git a/query-languages/m/number-iseven.md b/query-languages/m/number-iseven.md index b33f404da..8f30887f9 100644 --- a/query-languages/m/number-iseven.md +++ b/query-languages/m/number-iseven.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.IsEven" title: "Number.IsEven" +ms.subservice: m-source --- # Number.IsEven diff --git a/query-languages/m/number-isnan.md b/query-languages/m/number-isnan.md index fa90ff635..8b07b02c7 100644 --- a/query-languages/m/number-isnan.md +++ b/query-languages/m/number-isnan.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.IsNaN" title: "Number.IsNaN" +ms.subservice: m-source --- # Number.IsNaN diff --git a/query-languages/m/number-isodd.md b/query-languages/m/number-isodd.md index 848d2a648..5127aec1e 100644 --- a/query-languages/m/number-isodd.md +++ b/query-languages/m/number-isodd.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.IsOdd" title: "Number.IsOdd" +ms.subservice: m-source --- # Number.IsOdd diff --git a/query-languages/m/number-ln.md b/query-languages/m/number-ln.md index 537eb1570..6dd17a156 100644 --- a/query-languages/m/number-ln.md +++ b/query-languages/m/number-ln.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Ln" title: "Number.Ln" +ms.subservice: m-source --- # Number.Ln diff --git a/query-languages/m/number-log.md b/query-languages/m/number-log.md index 6bb2a2ea0..1c817f957 100644 --- a/query-languages/m/number-log.md +++ b/query-languages/m/number-log.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Log" title: "Number.Log" +ms.subservice: m-source --- # Number.Log diff --git a/query-languages/m/number-log10.md b/query-languages/m/number-log10.md index 1f699bf98..2bcecf289 100644 --- a/query-languages/m/number-log10.md +++ b/query-languages/m/number-log10.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Log10" title: "Number.Log10" +ms.subservice: m-source --- # Number.Log10 diff --git a/query-languages/m/number-mod.md b/query-languages/m/number-mod.md index 6678fe92e..a301df9f5 100644 --- a/query-languages/m/number-mod.md +++ b/query-languages/m/number-mod.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Mod" title: "Number.Mod" +ms.subservice: m-source --- # Number.Mod diff --git a/query-languages/m/number-nan.md b/query-languages/m/number-nan.md index 7e2848c32..8caaf9f15 100644 --- a/query-languages/m/number-nan.md +++ b/query-languages/m/number-nan.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.NaN" title: "Number.NaN" +ms.subservice: m-source --- # Number.NaN diff --git a/query-languages/m/number-negativeinfinity.md b/query-languages/m/number-negativeinfinity.md index 0bc6d123d..d3373c653 100644 --- a/query-languages/m/number-negativeinfinity.md +++ b/query-languages/m/number-negativeinfinity.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.NegativeInfinity" title: "Number.NegativeInfinity" +ms.subservice: m-source --- # Number.NegativeInfinity diff --git a/query-languages/m/number-permutations.md b/query-languages/m/number-permutations.md index 93618fdb4..72a39f06b 100644 --- a/query-languages/m/number-permutations.md +++ b/query-languages/m/number-permutations.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Permutations" title: "Number.Permutations" +ms.subservice: m-source --- # Number.Permutations diff --git a/query-languages/m/number-pi.md b/query-languages/m/number-pi.md index 35dc91bfc..5a16826a6 100644 --- a/query-languages/m/number-pi.md +++ b/query-languages/m/number-pi.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.PI" title: "Number.PI" +ms.subservice: m-source --- # Number.PI diff --git a/query-languages/m/number-positiveinfinity.md b/query-languages/m/number-positiveinfinity.md index 01dc62638..337757b3c 100644 --- a/query-languages/m/number-positiveinfinity.md +++ b/query-languages/m/number-positiveinfinity.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.PositiveInfinity" title: "Number.PositiveInfinity" +ms.subservice: m-source --- # Number.PositiveInfinity diff --git a/query-languages/m/number-power.md b/query-languages/m/number-power.md index a7479e035..e4f72d331 100644 --- a/query-languages/m/number-power.md +++ b/query-languages/m/number-power.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Power" title: "Number.Power" +ms.subservice: m-source --- # Number.Power diff --git a/query-languages/m/number-random.md b/query-languages/m/number-random.md index 191e2e966..ecf2a9a49 100644 --- a/query-languages/m/number-random.md +++ b/query-languages/m/number-random.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Random" title: "Number.Random" +ms.subservice: m-source --- # Number.Random diff --git a/query-languages/m/number-randombetween.md b/query-languages/m/number-randombetween.md index 6ea5eb066..70a7254c7 100644 --- a/query-languages/m/number-randombetween.md +++ b/query-languages/m/number-randombetween.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.RandomBetween" title: "Number.RandomBetween" +ms.subservice: m-source --- # Number.RandomBetween diff --git a/query-languages/m/number-round.md b/query-languages/m/number-round.md index 32439e928..0a7faf0df 100644 --- a/query-languages/m/number-round.md +++ b/query-languages/m/number-round.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Round" title: "Number.Round" +ms.subservice: m-source --- # Number.Round diff --git a/query-languages/m/number-roundawayfromzero.md b/query-languages/m/number-roundawayfromzero.md index 7b5709099..d9c15f822 100644 --- a/query-languages/m/number-roundawayfromzero.md +++ b/query-languages/m/number-roundawayfromzero.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.RoundAwayFromZero" title: "Number.RoundAwayFromZero" +ms.subservice: m-source --- # Number.RoundAwayFromZero diff --git a/query-languages/m/number-rounddown.md b/query-languages/m/number-rounddown.md index 2952b0b33..e704d0fd1 100644 --- a/query-languages/m/number-rounddown.md +++ b/query-languages/m/number-rounddown.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.RoundDown" title: "Number.RoundDown" +ms.subservice: m-source --- # Number.RoundDown diff --git a/query-languages/m/number-roundtowardzero.md b/query-languages/m/number-roundtowardzero.md index ec19cd21e..6faeee29d 100644 --- a/query-languages/m/number-roundtowardzero.md +++ b/query-languages/m/number-roundtowardzero.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.RoundTowardZero" title: "Number.RoundTowardZero" +ms.subservice: m-source --- # Number.RoundTowardZero diff --git a/query-languages/m/number-roundup.md b/query-languages/m/number-roundup.md index 173fd1bf1..7bca5155f 100644 --- a/query-languages/m/number-roundup.md +++ b/query-languages/m/number-roundup.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.RoundUp" title: "Number.RoundUp" +ms.subservice: m-source --- # Number.RoundUp diff --git a/query-languages/m/number-sign.md b/query-languages/m/number-sign.md index 81b0f44a6..8c9cbfaed 100644 --- a/query-languages/m/number-sign.md +++ b/query-languages/m/number-sign.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Sign" title: "Number.Sign" +ms.subservice: m-source --- # Number.Sign diff --git a/query-languages/m/number-sin.md b/query-languages/m/number-sin.md index 679cab63c..9bb675efb 100644 --- a/query-languages/m/number-sin.md +++ b/query-languages/m/number-sin.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Sin" title: "Number.Sin" +ms.subservice: m-source --- # Number.Sin diff --git a/query-languages/m/number-sinh.md b/query-languages/m/number-sinh.md index 016786801..3406a925e 100644 --- a/query-languages/m/number-sinh.md +++ b/query-languages/m/number-sinh.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Sinh" title: "Number.Sinh" +ms.subservice: m-source --- # Number.Sinh diff --git a/query-languages/m/number-sqrt.md b/query-languages/m/number-sqrt.md index e8776dc61..8f3246723 100644 --- a/query-languages/m/number-sqrt.md +++ b/query-languages/m/number-sqrt.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Sqrt" title: "Number.Sqrt" +ms.subservice: m-source --- # Number.Sqrt diff --git a/query-languages/m/number-tan.md b/query-languages/m/number-tan.md index 454559cf5..c04ffb1ee 100644 --- a/query-languages/m/number-tan.md +++ b/query-languages/m/number-tan.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Tan" title: "Number.Tan" +ms.subservice: m-source --- # Number.Tan diff --git a/query-languages/m/number-tanh.md b/query-languages/m/number-tanh.md index e6378c7fb..1fc724a6b 100644 --- a/query-languages/m/number-tanh.md +++ b/query-languages/m/number-tanh.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.Tanh" title: "Number.Tanh" +ms.subservice: m-source --- # Number.Tanh diff --git a/query-languages/m/number-totext.md b/query-languages/m/number-totext.md index 02e580021..8f8371ad8 100644 --- a/query-languages/m/number-totext.md +++ b/query-languages/m/number-totext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Number.ToText" title: "Number.ToText" +ms.subservice: m-source --- # Number.ToText diff --git a/query-languages/m/occurrence-type.md b/query-languages/m/occurrence-type.md index 7050f5b44..0d6060c90 100644 --- a/query-languages/m/occurrence-type.md +++ b/query-languages/m/occurrence-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Occurrence.Type" title: "Occurrence.Type" +ms.subservice: m-source --- # Occurrence.Type diff --git a/query-languages/m/odata-feed.md b/query-languages/m/odata-feed.md index 8a90f91af..ed1e14313 100644 --- a/query-languages/m/odata-feed.md +++ b/query-languages/m/odata-feed.md @@ -1,6 +1,7 @@ --- description: "Learn more about: OData.Feed" title: "OData.Feed" +ms.subservice: m-source --- # OData.Feed diff --git a/query-languages/m/odataomitvalues-type.md b/query-languages/m/odataomitvalues-type.md index a8e858990..07a20cc92 100644 --- a/query-languages/m/odataomitvalues-type.md +++ b/query-languages/m/odataomitvalues-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: ODataOmitValues.Type" title: "ODataOmitValues.Type" +ms.subservice: m-source --- # ODataOmitValues.Type diff --git a/query-languages/m/odbc-datasource.md b/query-languages/m/odbc-datasource.md index 42f76a823..6b4128f16 100644 --- a/query-languages/m/odbc-datasource.md +++ b/query-languages/m/odbc-datasource.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Odbc.DataSource" title: "Odbc.DataSource" +ms.subservice: m-source --- # Odbc.DataSource diff --git a/query-languages/m/odbc-inferoptions.md b/query-languages/m/odbc-inferoptions.md index 5be1562ac..40975e9c9 100644 --- a/query-languages/m/odbc-inferoptions.md +++ b/query-languages/m/odbc-inferoptions.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Odbc.InferOptions" title: "Odbc.InferOptions" +ms.subservice: m-source --- # Odbc.InferOptions diff --git a/query-languages/m/odbc-query.md b/query-languages/m/odbc-query.md index 4894149e6..53f81d344 100644 --- a/query-languages/m/odbc-query.md +++ b/query-languages/m/odbc-query.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Odbc.Query" title: "Odbc.Query" +ms.subservice: m-source --- # Odbc.Query diff --git a/query-languages/m/oledb-datasource.md b/query-languages/m/oledb-datasource.md index 835379e4a..23b3392d9 100644 --- a/query-languages/m/oledb-datasource.md +++ b/query-languages/m/oledb-datasource.md @@ -1,6 +1,7 @@ --- description: "Learn more about: OleDb.DataSource" title: "OleDb.DataSource" +ms.subservice: m-source --- # OleDb.DataSource diff --git a/query-languages/m/oledb-query.md b/query-languages/m/oledb-query.md index fa770a082..8701e77d4 100644 --- a/query-languages/m/oledb-query.md +++ b/query-languages/m/oledb-query.md @@ -1,6 +1,7 @@ --- description: "Learn more about: OleDb.Query" title: "OleDb.Query" +ms.subservice: m-source --- # OleDb.Query diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index d159d0b8f..a3d1e226d 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -4,6 +4,7 @@ title: "Operators" ms.topic: conceptual ms.date: 03/29/2024 ms.custom: "nonautomated-date" +ms.subservice: m-background --- # Operators diff --git a/query-languages/m/oracle-database.md b/query-languages/m/oracle-database.md index 16cd9a4a0..95413b2c4 100644 --- a/query-languages/m/oracle-database.md +++ b/query-languages/m/oracle-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Oracle.Database" title: "Oracle.Database" +ms.subservice: m-source --- # Oracle.Database diff --git a/query-languages/m/order-type.md b/query-languages/m/order-type.md index 76108d9dd..da9f8e4ac 100644 --- a/query-languages/m/order-type.md +++ b/query-languages/m/order-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Order.Type" title: "Order.Type" +ms.subservice: m-source --- # Order.Type diff --git a/query-languages/m/pdf-tables.md b/query-languages/m/pdf-tables.md index bc8813c4c..31a97248b 100644 --- a/query-languages/m/pdf-tables.md +++ b/query-languages/m/pdf-tables.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Pdf.Tables" title: "Pdf.Tables" +ms.subservice: m-source --- # Pdf.Tables diff --git a/query-languages/m/percentage-from.md b/query-languages/m/percentage-from.md index c5747d47e..727abef14 100644 --- a/query-languages/m/percentage-from.md +++ b/query-languages/m/percentage-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Percentage.From" title: "Percentage.From" +ms.subservice: m-source --- # Percentage.From diff --git a/query-languages/m/percentilemode-type.md b/query-languages/m/percentilemode-type.md index 149286c21..4cef140d6 100644 --- a/query-languages/m/percentilemode-type.md +++ b/query-languages/m/percentilemode-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: PercentileMode.Type" title: "PercentileMode.Type" +ms.subservice: m-source --- # PercentileMode.Type diff --git a/query-languages/m/postgresql-database.md b/query-languages/m/postgresql-database.md index 732382af9..8d1595a6b 100644 --- a/query-languages/m/postgresql-database.md +++ b/query-languages/m/postgresql-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: PostgreSQL.Database" title: "PostgreSQL.Database" +ms.subservice: m-source --- # PostgreSQL.Database diff --git a/query-languages/m/power-query-m-language-specification.md b/query-languages/m/power-query-m-language-specification.md index b91fd70a4..9505bd5cb 100644 --- a/query-languages/m/power-query-m-language-specification.md +++ b/query-languages/m/power-query-m-language-specification.md @@ -4,6 +4,7 @@ title: "Power Query M language specification" ms.topic: conceptual ms.date: 11/14/2024 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- # Power Query M language specification diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index 39a4f16ea..ac15ddda3 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -4,6 +4,7 @@ title: "Power Query M type system" ms.topic: conceptual ms.date: 8/2/2022 ms.custom: "nonautomated-date" +ms.subservice: m-specification --- # Types in the Power Query M formula language diff --git a/query-languages/m/precision-type.md b/query-languages/m/precision-type.md index 9955c8af2..7b2b924ff 100644 --- a/query-languages/m/precision-type.md +++ b/query-languages/m/precision-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Precision.Type" title: "Precision.Type" +ms.subservice: m-source --- # Precision.Type diff --git a/query-languages/m/progress-datasourceprogress.md b/query-languages/m/progress-datasourceprogress.md index 96f9fceca..9cdeef2fe 100644 --- a/query-languages/m/progress-datasourceprogress.md +++ b/query-languages/m/progress-datasourceprogress.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Progress.DataSourceProgress" title: "Progress.DataSourceProgress" +ms.subservice: m-source --- # Progress.DataSourceProgress diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index f98cae14d..d9b1e1b19 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -4,6 +4,7 @@ title: "Quick tour" ms.date: 12/22/2023 ms.custom: nonautomated-date, intro-internal ms.topic: conceptual +ms.subservice: m-background --- # Quick tour of the Power Query M formula language diff --git a/query-languages/m/quotestyle-type.md b/query-languages/m/quotestyle-type.md index 73a539e66..0cf40d016 100644 --- a/query-languages/m/quotestyle-type.md +++ b/query-languages/m/quotestyle-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: QuoteStyle.Type" title: "QuoteStyle.Type" +ms.subservice: m-source --- # QuoteStyle.Type diff --git a/query-languages/m/rankkind-type.md b/query-languages/m/rankkind-type.md index 684ed867d..6fdc6c232 100644 --- a/query-languages/m/rankkind-type.md +++ b/query-languages/m/rankkind-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: RankKind.Type" title: "RankKind.Type" +ms.subservice: m-source --- # RankKind.Type diff --git a/query-languages/m/rdata-frombinary.md b/query-languages/m/rdata-frombinary.md index b5f683501..cfd3d66ac 100644 --- a/query-languages/m/rdata-frombinary.md +++ b/query-languages/m/rdata-frombinary.md @@ -1,6 +1,7 @@ --- description: "Learn more about: RData.FromBinary" title: "RData.FromBinary" +ms.subservice: m-source --- # RData.FromBinary diff --git a/query-languages/m/record-addfield.md b/query-languages/m/record-addfield.md index fbaabf8db..ed195b8f3 100644 --- a/query-languages/m/record-addfield.md +++ b/query-languages/m/record-addfield.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.AddField" title: "Record.AddField" +ms.subservice: m-source --- # Record.AddField diff --git a/query-languages/m/record-combine.md b/query-languages/m/record-combine.md index b72ebe497..36922daa8 100644 --- a/query-languages/m/record-combine.md +++ b/query-languages/m/record-combine.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.Combine" title: "Record.Combine" +ms.subservice: m-source --- # Record.Combine diff --git a/query-languages/m/record-field.md b/query-languages/m/record-field.md index f57ad3deb..6a7996cf3 100644 --- a/query-languages/m/record-field.md +++ b/query-languages/m/record-field.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.Field" title: "Record.Field" +ms.subservice: m-source --- # Record.Field diff --git a/query-languages/m/record-fieldcount.md b/query-languages/m/record-fieldcount.md index ccff2f17f..c38eb9616 100644 --- a/query-languages/m/record-fieldcount.md +++ b/query-languages/m/record-fieldcount.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.FieldCount" title: "Record.FieldCount" +ms.subservice: m-source --- # Record.FieldCount diff --git a/query-languages/m/record-fieldnames.md b/query-languages/m/record-fieldnames.md index b9b87a0da..d53570f37 100644 --- a/query-languages/m/record-fieldnames.md +++ b/query-languages/m/record-fieldnames.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.FieldNames" title: "Record.FieldNames" +ms.subservice: m-source --- # Record.FieldNames diff --git a/query-languages/m/record-fieldordefault.md b/query-languages/m/record-fieldordefault.md index 714ce993c..6cb4574c7 100644 --- a/query-languages/m/record-fieldordefault.md +++ b/query-languages/m/record-fieldordefault.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.FieldOrDefault" title: "Record.FieldOrDefault" +ms.subservice: m-source --- # Record.FieldOrDefault diff --git a/query-languages/m/record-fieldvalues.md b/query-languages/m/record-fieldvalues.md index 03bd9ebcc..75ad89ea7 100644 --- a/query-languages/m/record-fieldvalues.md +++ b/query-languages/m/record-fieldvalues.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.FieldValues" title: "Record.FieldValues" +ms.subservice: m-source --- # Record.FieldValues diff --git a/query-languages/m/record-fromlist.md b/query-languages/m/record-fromlist.md index e1ee0596a..25e27c39a 100644 --- a/query-languages/m/record-fromlist.md +++ b/query-languages/m/record-fromlist.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.FromList" title: "Record.FromList" +ms.subservice: m-source --- # Record.FromList diff --git a/query-languages/m/record-fromtable.md b/query-languages/m/record-fromtable.md index 96c5ca015..f16422cd8 100644 --- a/query-languages/m/record-fromtable.md +++ b/query-languages/m/record-fromtable.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.FromTable" title: "Record.FromTable" +ms.subservice: m-source --- # Record.FromTable diff --git a/query-languages/m/record-hasfields.md b/query-languages/m/record-hasfields.md index 36d7427b2..49e6a24bb 100644 --- a/query-languages/m/record-hasfields.md +++ b/query-languages/m/record-hasfields.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.HasFields" title: "Record.HasFields" +ms.subservice: m-source --- # Record.HasFields diff --git a/query-languages/m/record-removefields.md b/query-languages/m/record-removefields.md index 6efdd90b0..11c552303 100644 --- a/query-languages/m/record-removefields.md +++ b/query-languages/m/record-removefields.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.RemoveFields" title: "Record.RemoveFields" +ms.subservice: m-source --- # Record.RemoveFields diff --git a/query-languages/m/record-renamefields.md b/query-languages/m/record-renamefields.md index c82944a97..b0a1c2ee4 100644 --- a/query-languages/m/record-renamefields.md +++ b/query-languages/m/record-renamefields.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.RenameFields" title: "Record.RenameFields" +ms.subservice: m-source --- # Record.RenameFields diff --git a/query-languages/m/record-reorderfields.md b/query-languages/m/record-reorderfields.md index 89709a68b..630a5736e 100644 --- a/query-languages/m/record-reorderfields.md +++ b/query-languages/m/record-reorderfields.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.ReorderFields" title: "Record.ReorderFields" +ms.subservice: m-source --- # Record.ReorderFields diff --git a/query-languages/m/record-selectfields.md b/query-languages/m/record-selectfields.md index 9c7f8af2c..506a7ca7f 100644 --- a/query-languages/m/record-selectfields.md +++ b/query-languages/m/record-selectfields.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.SelectFields" title: "Record.SelectFields" +ms.subservice: m-source --- # Record.SelectFields diff --git a/query-languages/m/record-tolist.md b/query-languages/m/record-tolist.md index 874d6acae..656a1ba40 100644 --- a/query-languages/m/record-tolist.md +++ b/query-languages/m/record-tolist.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.ToList" title: "Record.ToList" +ms.subservice: m-source --- # Record.ToList diff --git a/query-languages/m/record-totable.md b/query-languages/m/record-totable.md index da5c4af67..04ea58a2d 100644 --- a/query-languages/m/record-totable.md +++ b/query-languages/m/record-totable.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.ToTable" title: "Record.ToTable" +ms.subservice: m-source --- # Record.ToTable diff --git a/query-languages/m/record-transformfields.md b/query-languages/m/record-transformfields.md index 958ca93b8..59302fcb9 100644 --- a/query-languages/m/record-transformfields.md +++ b/query-languages/m/record-transformfields.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Record.TransformFields" title: "Record.TransformFields" +ms.subservice: m-source --- # Record.TransformFields diff --git a/query-languages/m/relativeposition-type.md b/query-languages/m/relativeposition-type.md index 599f16b08..1e63ba463 100644 --- a/query-languages/m/relativeposition-type.md +++ b/query-languages/m/relativeposition-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: RelativePosition.Type" title: "RelativePosition.Type" +ms.subservice: m-source --- # RelativePosition.Type diff --git a/query-languages/m/replacer-replacetext.md b/query-languages/m/replacer-replacetext.md index d3ac98ee5..a808b1ff4 100644 --- a/query-languages/m/replacer-replacetext.md +++ b/query-languages/m/replacer-replacetext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Replacer.ReplaceText" title: "Replacer.ReplaceText" +ms.subservice: m-source --- # Replacer.ReplaceText diff --git a/query-languages/m/replacer-replacevalue.md b/query-languages/m/replacer-replacevalue.md index 2fce61de8..5bfbb6e4b 100644 --- a/query-languages/m/replacer-replacevalue.md +++ b/query-languages/m/replacer-replacevalue.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Replacer.ReplaceValue" title: "Replacer.ReplaceValue" +ms.subservice: m-source --- # Replacer.ReplaceValue diff --git a/query-languages/m/roundingmode-type.md b/query-languages/m/roundingmode-type.md index 1948eb0eb..73b5c244c 100644 --- a/query-languages/m/roundingmode-type.md +++ b/query-languages/m/roundingmode-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: RoundingMode.Type" title: "RoundingMode.Type" +ms.subservice: m-source --- # RoundingMode.Type diff --git a/query-languages/m/rowexpression-column.md b/query-languages/m/rowexpression-column.md index ba2feadaa..bdbb7a405 100644 --- a/query-languages/m/rowexpression-column.md +++ b/query-languages/m/rowexpression-column.md @@ -1,6 +1,7 @@ --- description: "Learn more about: RowExpression.Column" title: "RowExpression.Column" +ms.subservice: m-source --- # RowExpression.Column diff --git a/query-languages/m/rowexpression-from.md b/query-languages/m/rowexpression-from.md index 804a9ad54..8334e08a8 100644 --- a/query-languages/m/rowexpression-from.md +++ b/query-languages/m/rowexpression-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: RowExpression.From" title: "RowExpression.From" +ms.subservice: m-source --- # RowExpression.From diff --git a/query-languages/m/rowexpression-row.md b/query-languages/m/rowexpression-row.md index a47c1bc2c..b2f5f0a15 100644 --- a/query-languages/m/rowexpression-row.md +++ b/query-languages/m/rowexpression-row.md @@ -1,6 +1,7 @@ --- description: "Learn more about: RowExpression.Row" title: "RowExpression.Row" +ms.subservice: m-source --- # RowExpression.Row diff --git a/query-languages/m/salesforce-data.md b/query-languages/m/salesforce-data.md index 9675e41f1..db053e5b6 100644 --- a/query-languages/m/salesforce-data.md +++ b/query-languages/m/salesforce-data.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Salesforce.Data" title: "Salesforce.Data" +ms.subservice: m-source --- # Salesforce.Data diff --git a/query-languages/m/salesforce-reports.md b/query-languages/m/salesforce-reports.md index 939d87f14..8d3e4e8c9 100644 --- a/query-languages/m/salesforce-reports.md +++ b/query-languages/m/salesforce-reports.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Salesforce.Reports" title: "Salesforce.Reports" +ms.subservice: m-source --- # Salesforce.Reports diff --git a/query-languages/m/sapbusinesswarehouse-cubes.md b/query-languages/m/sapbusinesswarehouse-cubes.md index 7f1c17265..ec4a6ad67 100644 --- a/query-languages/m/sapbusinesswarehouse-cubes.md +++ b/query-languages/m/sapbusinesswarehouse-cubes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SapBusinessWarehouse.Cubes" title: "SapBusinessWarehouse.Cubes" +ms.subservice: m-source --- # SapBusinessWarehouse.Cubes diff --git a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md index c9266f293..32e0a5e8d 100644 --- a/query-languages/m/sapbusinesswarehouseexecutionmode-type.md +++ b/query-languages/m/sapbusinesswarehouseexecutionmode-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SapBusinessWarehouseExecutionMode.Type" title: "SapBusinessWarehouseExecutionMode.Type" +ms.subservice: m-source --- # SapBusinessWarehouseExecutionMode.Type diff --git a/query-languages/m/saphana-database.md b/query-languages/m/saphana-database.md index 66efa5f69..98c053cd3 100644 --- a/query-languages/m/saphana-database.md +++ b/query-languages/m/saphana-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SapHana.Database" title: "SapHana.Database" +ms.subservice: m-source --- # SapHana.Database diff --git a/query-languages/m/saphanadistribution-type.md b/query-languages/m/saphanadistribution-type.md index 1b34bfcc9..873ea355d 100644 --- a/query-languages/m/saphanadistribution-type.md +++ b/query-languages/m/saphanadistribution-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SapHanaDistribution.Type" title: "SapHanaDistribution.Type" +ms.subservice: m-source --- # SapHanaDistribution.Type diff --git a/query-languages/m/saphanarangeoperator-type.md b/query-languages/m/saphanarangeoperator-type.md index 3547749ee..58539e179 100644 --- a/query-languages/m/saphanarangeoperator-type.md +++ b/query-languages/m/saphanarangeoperator-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SapHanaRangeOperator.Type" title: "SapHanaRangeOperator.Type" +ms.subservice: m-source --- # SapHanaRangeOperator.Type diff --git a/query-languages/m/sharepoint-contents.md b/query-languages/m/sharepoint-contents.md index 4228b04c5..152f00795 100644 --- a/query-languages/m/sharepoint-contents.md +++ b/query-languages/m/sharepoint-contents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SharePoint.Contents" title: "SharePoint.Contents" +ms.subservice: m-source --- # SharePoint.Contents diff --git a/query-languages/m/sharepoint-files.md b/query-languages/m/sharepoint-files.md index 476fa131e..d922e9a53 100644 --- a/query-languages/m/sharepoint-files.md +++ b/query-languages/m/sharepoint-files.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SharePoint.Files" title: "SharePoint.Files" +ms.subservice: m-source --- # SharePoint.Files diff --git a/query-languages/m/sharepoint-tables.md b/query-languages/m/sharepoint-tables.md index 5da3021fd..f44ad0ad9 100644 --- a/query-languages/m/sharepoint-tables.md +++ b/query-languages/m/sharepoint-tables.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SharePoint.Tables" title: "SharePoint.Tables" +ms.subservice: m-source --- # SharePoint.Tables diff --git a/query-languages/m/sharpbinary.md b/query-languages/m/sharpbinary.md index 58f70c834..56481c3bb 100644 --- a/query-languages/m/sharpbinary.md +++ b/query-languages/m/sharpbinary.md @@ -1,6 +1,7 @@ --- description: "Learn more about: #binary" title: "#binary" +ms.subservice: m-source --- # #binary ## Syntax diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index d94ff5bb0..99dff4402 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -1,6 +1,7 @@ --- description: "Learn more about: #date" title: "#date" +ms.subservice: m-source --- # #date diff --git a/query-languages/m/sharpdatetime.md b/query-languages/m/sharpdatetime.md index dc659bf25..6144d74bc 100644 --- a/query-languages/m/sharpdatetime.md +++ b/query-languages/m/sharpdatetime.md @@ -1,6 +1,7 @@ --- description: "Learn more about: #datetime" title: "#datetime" +ms.subservice: m-source --- # #datetime diff --git a/query-languages/m/sharpdatetimezone.md b/query-languages/m/sharpdatetimezone.md index 611f0ba69..6edee3226 100644 --- a/query-languages/m/sharpdatetimezone.md +++ b/query-languages/m/sharpdatetimezone.md @@ -1,6 +1,7 @@ --- description: "Learn more about: #datetimezone" title: "#datetimezone" +ms.subservice: m-source --- # #datetimezone diff --git a/query-languages/m/sharpduration.md b/query-languages/m/sharpduration.md index d5609d0c6..2d90321e1 100644 --- a/query-languages/m/sharpduration.md +++ b/query-languages/m/sharpduration.md @@ -1,6 +1,7 @@ --- description: "Learn more about: #duration" title: "#duration" +ms.subservice: m-source --- # #duration diff --git a/query-languages/m/sharptable.md b/query-languages/m/sharptable.md index c574ac547..9b597ca8a 100644 --- a/query-languages/m/sharptable.md +++ b/query-languages/m/sharptable.md @@ -1,6 +1,7 @@ --- description: "Learn more about: #table" title: "#table" +ms.subservice: m-source --- # #table diff --git a/query-languages/m/sharptime.md b/query-languages/m/sharptime.md index def5daa2c..25f21696f 100644 --- a/query-languages/m/sharptime.md +++ b/query-languages/m/sharptime.md @@ -1,6 +1,7 @@ --- description: "Learn more about: #time" title: "#time" +ms.subservice: m-source --- # #time diff --git a/query-languages/m/single-from.md b/query-languages/m/single-from.md index 80ecf9a23..b86a4119b 100644 --- a/query-languages/m/single-from.md +++ b/query-languages/m/single-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Single.From" title: "Single.From" +ms.subservice: m-source --- # Single.From diff --git a/query-languages/m/soda-feed.md b/query-languages/m/soda-feed.md index df8dbdd4a..34dc8297b 100644 --- a/query-languages/m/soda-feed.md +++ b/query-languages/m/soda-feed.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Soda.Feed" title: "Soda.Feed" +ms.subservice: m-source --- # Soda.Feed diff --git a/query-languages/m/splitter-splitbynothing.md b/query-languages/m/splitter-splitbynothing.md index b2f6ce40c..0a631ced7 100644 --- a/query-languages/m/splitter-splitbynothing.md +++ b/query-languages/m/splitter-splitbynothing.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitByNothing" title: "Splitter.SplitByNothing" +ms.subservice: m-source --- # Splitter.SplitByNothing diff --git a/query-languages/m/splitter-splittextbyanydelimiter.md b/query-languages/m/splitter-splittextbyanydelimiter.md index 8901121c9..b127b4107 100644 --- a/query-languages/m/splitter-splittextbyanydelimiter.md +++ b/query-languages/m/splitter-splittextbyanydelimiter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitTextByAnyDelimiter" title: "Splitter.SplitTextByAnyDelimiter" +ms.subservice: m-source --- # Splitter.SplitTextByAnyDelimiter diff --git a/query-languages/m/splitter-splittextbycharactertransition.md b/query-languages/m/splitter-splittextbycharactertransition.md index 9f27b65ee..039169366 100644 --- a/query-languages/m/splitter-splittextbycharactertransition.md +++ b/query-languages/m/splitter-splittextbycharactertransition.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitTextByCharacterTransition" title: "Splitter.SplitTextByCharacterTransition" +ms.subservice: m-source --- # Splitter.SplitTextByCharacterTransition diff --git a/query-languages/m/splitter-splittextbydelimiter.md b/query-languages/m/splitter-splittextbydelimiter.md index 67d366d60..bb2dfd046 100644 --- a/query-languages/m/splitter-splittextbydelimiter.md +++ b/query-languages/m/splitter-splittextbydelimiter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitTextByDelimiter" title: "Splitter.SplitTextByDelimiter" +ms.subservice: m-source --- # Splitter.SplitTextByDelimiter diff --git a/query-languages/m/splitter-splittextbyeachdelimiter.md b/query-languages/m/splitter-splittextbyeachdelimiter.md index 584f50bdf..96f17be24 100644 --- a/query-languages/m/splitter-splittextbyeachdelimiter.md +++ b/query-languages/m/splitter-splittextbyeachdelimiter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitTextByEachDelimiter" title: "Splitter.SplitTextByEachDelimiter" +ms.subservice: m-source --- # Splitter.SplitTextByEachDelimiter diff --git a/query-languages/m/splitter-splittextbylengths.md b/query-languages/m/splitter-splittextbylengths.md index 57c7ff445..1dc3ad6d4 100644 --- a/query-languages/m/splitter-splittextbylengths.md +++ b/query-languages/m/splitter-splittextbylengths.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitTextByLengths" title: "Splitter.SplitTextByLengths" +ms.subservice: m-source --- # Splitter.SplitTextByLengths diff --git a/query-languages/m/splitter-splittextbypositions.md b/query-languages/m/splitter-splittextbypositions.md index f320ae462..fd23921cf 100644 --- a/query-languages/m/splitter-splittextbypositions.md +++ b/query-languages/m/splitter-splittextbypositions.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitTextByPositions" title: "Splitter.SplitTextByPositions" +ms.subservice: m-source --- # Splitter.SplitTextByPositions diff --git a/query-languages/m/splitter-splittextbyranges.md b/query-languages/m/splitter-splittextbyranges.md index f8be1b7a5..6583bdb01 100644 --- a/query-languages/m/splitter-splittextbyranges.md +++ b/query-languages/m/splitter-splittextbyranges.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitTextByRanges" title: "Splitter.SplitTextByRanges" +ms.subservice: m-source --- # Splitter.SplitTextByRanges diff --git a/query-languages/m/splitter-splittextbyrepeatedlengths.md b/query-languages/m/splitter-splittextbyrepeatedlengths.md index 3cc87060c..bda24c80d 100644 --- a/query-languages/m/splitter-splittextbyrepeatedlengths.md +++ b/query-languages/m/splitter-splittextbyrepeatedlengths.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitTextByRepeatedLengths" title: "Splitter.SplitTextByRepeatedLengths" +ms.subservice: m-source --- # Splitter.SplitTextByRepeatedLengths diff --git a/query-languages/m/splitter-splittextbywhitespace.md b/query-languages/m/splitter-splittextbywhitespace.md index d07985a9e..5c04f6396 100644 --- a/query-languages/m/splitter-splittextbywhitespace.md +++ b/query-languages/m/splitter-splittextbywhitespace.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Splitter.SplitTextByWhitespace" title: "Splitter.SplitTextByWhitespace" +ms.subservice: m-source --- # Splitter.SplitTextByWhitespace diff --git a/query-languages/m/sql-database.md b/query-languages/m/sql-database.md index e2ad8295c..3a8cb4d56 100644 --- a/query-languages/m/sql-database.md +++ b/query-languages/m/sql-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Sql.Database" title: "Sql.Database" +ms.subservice: m-source --- # Sql.Database diff --git a/query-languages/m/sql-databases.md b/query-languages/m/sql-databases.md index 43d91debe..a61923384 100644 --- a/query-languages/m/sql-databases.md +++ b/query-languages/m/sql-databases.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Sql.Databases" title: "Sql.Databases" +ms.subservice: m-source --- # Sql.Databases diff --git a/query-languages/m/sqlexpression-schemafrom.md b/query-languages/m/sqlexpression-schemafrom.md index 43f5c4c1c..8b380ad4f 100644 --- a/query-languages/m/sqlexpression-schemafrom.md +++ b/query-languages/m/sqlexpression-schemafrom.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SqlExpression.SchemaFrom" title: "SqlExpression.SchemaFrom" +ms.subservice: m-source --- # SqlExpression.SchemaFrom diff --git a/query-languages/m/sqlexpression-toexpression.md b/query-languages/m/sqlexpression-toexpression.md index 5694a8fb5..9a93614fd 100644 --- a/query-languages/m/sqlexpression-toexpression.md +++ b/query-languages/m/sqlexpression-toexpression.md @@ -1,6 +1,7 @@ --- description: "Learn more about: SqlExpression.ToExpression" title: "SqlExpression.ToExpression" +ms.subservice: m-source --- # SqlExpression.ToExpression diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index df17421a6..a8b422cd7 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -5,6 +5,7 @@ author: DougKlopfenstein ms-author: dougklo ms.date: 10/11/2024 ms.topic: reference +ms.subservice: m-background --- # Standard date and time format strings diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index 717d84c3b..f10709a5f 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -3,6 +3,7 @@ title: Standard numeric format strings description: In this article, learn to use standard numeric format strings to format common numeric types into text representations in Power Query M. ms.date: 9/30/2024 ms.topic: reference +ms.subservice: m-background --- # Standard numeric format strings diff --git a/query-languages/m/sybase-database.md b/query-languages/m/sybase-database.md index c600d8933..c9001730a 100644 --- a/query-languages/m/sybase-database.md +++ b/query-languages/m/sybase-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Sybase.Database" title: "Sybase.Database" +ms.subservice: m-source --- # Sybase.Database diff --git a/query-languages/m/table-addcolumn.md b/query-languages/m/table-addcolumn.md index 4178f7dbe..30bb21531 100644 --- a/query-languages/m/table-addcolumn.md +++ b/query-languages/m/table-addcolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.AddColumn" title: "Table.AddColumn" +ms.subservice: m-source --- # Table.AddColumn diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index b90917da2..fff892bbf 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.AddFuzzyClusterColumn" title: "Table.AddFuzzyClusterColumn" +ms.subservice: m-source --- # Table.AddFuzzyClusterColumn diff --git a/query-languages/m/table-addindexcolumn.md b/query-languages/m/table-addindexcolumn.md index 117c54535..4d1baf6b2 100644 --- a/query-languages/m/table-addindexcolumn.md +++ b/query-languages/m/table-addindexcolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.AddIndexColumn" title: "Table.AddIndexColumn" +ms.subservice: m-source --- # Table.AddIndexColumn diff --git a/query-languages/m/table-addjoincolumn.md b/query-languages/m/table-addjoincolumn.md index f4bbe53b1..6b645da21 100644 --- a/query-languages/m/table-addjoincolumn.md +++ b/query-languages/m/table-addjoincolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.AddJoinColumn" title: "Table.AddJoinColumn" +ms.subservice: m-source --- # Table.AddJoinColumn diff --git a/query-languages/m/table-addkey.md b/query-languages/m/table-addkey.md index b76a7d274..3a148d1b6 100644 --- a/query-languages/m/table-addkey.md +++ b/query-languages/m/table-addkey.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.AddKey" title: "Table.AddKey" +ms.subservice: m-source --- # Table.AddKey diff --git a/query-languages/m/table-addrankcolumn.md b/query-languages/m/table-addrankcolumn.md index c27a5fdfa..c614df047 100644 --- a/query-languages/m/table-addrankcolumn.md +++ b/query-languages/m/table-addrankcolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.AddRankColumn" title: "Table.AddRankColumn" +ms.subservice: m-source --- # Table.AddRankColumn diff --git a/query-languages/m/table-aggregatetablecolumn.md b/query-languages/m/table-aggregatetablecolumn.md index 24d3396c0..5cf8eb356 100644 --- a/query-languages/m/table-aggregatetablecolumn.md +++ b/query-languages/m/table-aggregatetablecolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.AggregateTableColumn" title: "Table.AggregateTableColumn" +ms.subservice: m-source --- # Table.AggregateTableColumn diff --git a/query-languages/m/table-alternaterows.md b/query-languages/m/table-alternaterows.md index 4c4d8b748..98d0db4b7 100644 --- a/query-languages/m/table-alternaterows.md +++ b/query-languages/m/table-alternaterows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.AlternateRows" title: "Table.AlternateRows" +ms.subservice: m-source --- # Table.AlternateRows diff --git a/query-languages/m/table-approximaterowcount.md b/query-languages/m/table-approximaterowcount.md index 771c905ff..0a434e1f7 100644 --- a/query-languages/m/table-approximaterowcount.md +++ b/query-languages/m/table-approximaterowcount.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ApproximateRowCount" title: "Table.ApproximateRowCount" +ms.subservice: m-source --- # Table.ApproximateRowCount diff --git a/query-languages/m/table-buffer.md b/query-languages/m/table-buffer.md index f6a6abc2a..aa08f5e3e 100644 --- a/query-languages/m/table-buffer.md +++ b/query-languages/m/table-buffer.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Buffer" title: "Table.Buffer" +ms.subservice: m-source --- # Table.Buffer diff --git a/query-languages/m/table-column.md b/query-languages/m/table-column.md index ede25620e..29f22c33a 100644 --- a/query-languages/m/table-column.md +++ b/query-languages/m/table-column.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Column" title: "Table.Column" +ms.subservice: m-source --- # Table.Column diff --git a/query-languages/m/table-columncount.md b/query-languages/m/table-columncount.md index c8e47a8b2..e0ffd77ec 100644 --- a/query-languages/m/table-columncount.md +++ b/query-languages/m/table-columncount.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ColumnCount" title: "Table.ColumnCount" +ms.subservice: m-source --- # Table.ColumnCount diff --git a/query-languages/m/table-columnnames.md b/query-languages/m/table-columnnames.md index e7d03d92c..6f3844045 100644 --- a/query-languages/m/table-columnnames.md +++ b/query-languages/m/table-columnnames.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ColumnNames" title: "Table.ColumnNames" +ms.subservice: m-source --- # Table.ColumnNames diff --git a/query-languages/m/table-columnsoftype.md b/query-languages/m/table-columnsoftype.md index c04ddb098..0b2a0dc13 100644 --- a/query-languages/m/table-columnsoftype.md +++ b/query-languages/m/table-columnsoftype.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ColumnsOfType" title: "Table.ColumnsOfType" +ms.subservice: m-source --- # Table.ColumnsOfType diff --git a/query-languages/m/table-combine.md b/query-languages/m/table-combine.md index 512c3adb0..65f06f7d3 100644 --- a/query-languages/m/table-combine.md +++ b/query-languages/m/table-combine.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Combine" title: "Table.Combine" +ms.subservice: m-source --- # Table.Combine diff --git a/query-languages/m/table-combinecolumns.md b/query-languages/m/table-combinecolumns.md index a6e5ea266..ad3db4ac4 100644 --- a/query-languages/m/table-combinecolumns.md +++ b/query-languages/m/table-combinecolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.CombineColumns" title: "Table.CombineColumns" +ms.subservice: m-source --- # Table.CombineColumns diff --git a/query-languages/m/table-combinecolumnstorecord.md b/query-languages/m/table-combinecolumnstorecord.md index 3b37d8c88..85803e001 100644 --- a/query-languages/m/table-combinecolumnstorecord.md +++ b/query-languages/m/table-combinecolumnstorecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.CombineColumnsToRecord" title: "Table.CombineColumnsToRecord" +ms.subservice: m-source --- # Table.CombineColumnsToRecord diff --git a/query-languages/m/table-conformtopagereader.md b/query-languages/m/table-conformtopagereader.md index be1a68035..9e9e17fce 100644 --- a/query-languages/m/table-conformtopagereader.md +++ b/query-languages/m/table-conformtopagereader.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ConformToPageReader" title: "Table.ConformToPageReader" +ms.subservice: m-source --- # Table.ConformToPageReader diff --git a/query-languages/m/table-contains.md b/query-languages/m/table-contains.md index d2ea9db5e..80969b2ac 100644 --- a/query-languages/m/table-contains.md +++ b/query-languages/m/table-contains.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Contains" title: "Table.Contains" +ms.subservice: m-source --- # Table.Contains diff --git a/query-languages/m/table-containsall.md b/query-languages/m/table-containsall.md index b33dcd942..d7dc4c162 100644 --- a/query-languages/m/table-containsall.md +++ b/query-languages/m/table-containsall.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ContainsAll" title: "Table.ContainsAll" +ms.subservice: m-source --- # Table.ContainsAll diff --git a/query-languages/m/table-containsany.md b/query-languages/m/table-containsany.md index 69a750c4b..695026668 100644 --- a/query-languages/m/table-containsany.md +++ b/query-languages/m/table-containsany.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ContainsAny" title: "Table.ContainsAny" +ms.subservice: m-source --- # Table.ContainsAny diff --git a/query-languages/m/table-demoteheaders.md b/query-languages/m/table-demoteheaders.md index 72fe65fa6..c4181e637 100644 --- a/query-languages/m/table-demoteheaders.md +++ b/query-languages/m/table-demoteheaders.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.DemoteHeaders" title: "Table.DemoteHeaders" +ms.subservice: m-source --- # Table.DemoteHeaders diff --git a/query-languages/m/table-distinct.md b/query-languages/m/table-distinct.md index a5f962332..a73b486b9 100644 --- a/query-languages/m/table-distinct.md +++ b/query-languages/m/table-distinct.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Distinct" title: "Table.Distinct" +ms.subservice: m-source --- # Table.Distinct diff --git a/query-languages/m/table-duplicatecolumn.md b/query-languages/m/table-duplicatecolumn.md index 48d00f77b..4df37d773 100644 --- a/query-languages/m/table-duplicatecolumn.md +++ b/query-languages/m/table-duplicatecolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.DuplicateColumn" title: "Table.DuplicateColumn" +ms.subservice: m-source --- # Table.DuplicateColumn diff --git a/query-languages/m/table-expandlistcolumn.md b/query-languages/m/table-expandlistcolumn.md index 654f69ef9..b4a411d9a 100644 --- a/query-languages/m/table-expandlistcolumn.md +++ b/query-languages/m/table-expandlistcolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ExpandListColumn" title: "Table.ExpandListColumn" +ms.subservice: m-source --- # Table.ExpandListColumn diff --git a/query-languages/m/table-expandrecordcolumn.md b/query-languages/m/table-expandrecordcolumn.md index ba35a9736..0774581d9 100644 --- a/query-languages/m/table-expandrecordcolumn.md +++ b/query-languages/m/table-expandrecordcolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ExpandRecordColumn" title: "Table.ExpandRecordColumn" +ms.subservice: m-source --- # Table.ExpandRecordColumn diff --git a/query-languages/m/table-expandtablecolumn.md b/query-languages/m/table-expandtablecolumn.md index 56e6cdb44..208c159f0 100644 --- a/query-languages/m/table-expandtablecolumn.md +++ b/query-languages/m/table-expandtablecolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ExpandTableColumn" title: "Table.ExpandTableColumn" +ms.subservice: m-source --- # Table.ExpandTableColumn diff --git a/query-languages/m/table-filldown.md b/query-languages/m/table-filldown.md index 66e3293bd..9a25d3fd5 100644 --- a/query-languages/m/table-filldown.md +++ b/query-languages/m/table-filldown.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FillDown" title: "Table.FillDown" +ms.subservice: m-source --- # Table.FillDown diff --git a/query-languages/m/table-fillup.md b/query-languages/m/table-fillup.md index 337071b39..6982f6477 100644 --- a/query-languages/m/table-fillup.md +++ b/query-languages/m/table-fillup.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FillUp" title: "Table.FillUp" +ms.subservice: m-source --- # Table.FillUp diff --git a/query-languages/m/table-filterwithdatatable.md b/query-languages/m/table-filterwithdatatable.md index 1be59afa7..efb12c334 100644 --- a/query-languages/m/table-filterwithdatatable.md +++ b/query-languages/m/table-filterwithdatatable.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FilterWithDataTable" title: "Table.FilterWithDataTable" +ms.subservice: m-source --- # Table.FilterWithDataTable diff --git a/query-languages/m/table-findtext.md b/query-languages/m/table-findtext.md index c1d57e509..876e4cad1 100644 --- a/query-languages/m/table-findtext.md +++ b/query-languages/m/table-findtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FindText" title: "Table.FindText" +ms.subservice: m-source --- # Table.FindText diff --git a/query-languages/m/table-first.md b/query-languages/m/table-first.md index 7a32b5665..4de7aa672 100644 --- a/query-languages/m/table-first.md +++ b/query-languages/m/table-first.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.First" title: "Table.First" +ms.subservice: m-source --- # Table.First diff --git a/query-languages/m/table-firstn.md b/query-languages/m/table-firstn.md index b999a11e6..c43914b8f 100644 --- a/query-languages/m/table-firstn.md +++ b/query-languages/m/table-firstn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FirstN" title: "Table.FirstN" +ms.subservice: m-source --- # Table.FirstN diff --git a/query-languages/m/table-firstvalue.md b/query-languages/m/table-firstvalue.md index c7b5e42fa..8fbc2e700 100644 --- a/query-languages/m/table-firstvalue.md +++ b/query-languages/m/table-firstvalue.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FirstValue" title: "Table.FirstValue" +ms.subservice: m-source --- # Table.FirstValue diff --git a/query-languages/m/table-fromcolumns.md b/query-languages/m/table-fromcolumns.md index db91eda52..48e5955e5 100644 --- a/query-languages/m/table-fromcolumns.md +++ b/query-languages/m/table-fromcolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FromColumns" title: "Table.FromColumns" +ms.subservice: m-source --- # Table.FromColumns diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index 4b7640bf1..48b3fa4da 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FromList" title: "Table.FromList" +ms.subservice: m-source --- # Table.FromList diff --git a/query-languages/m/table-frompartitions.md b/query-languages/m/table-frompartitions.md index ba5bc6a3d..273140690 100644 --- a/query-languages/m/table-frompartitions.md +++ b/query-languages/m/table-frompartitions.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FromPartitions" title: "Table.FromPartitions" +ms.subservice: m-source --- # Table.FromPartitions diff --git a/query-languages/m/table-fromrecords.md b/query-languages/m/table-fromrecords.md index c389879b0..fd7ec2c8d 100644 --- a/query-languages/m/table-fromrecords.md +++ b/query-languages/m/table-fromrecords.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FromRecords" title: "Table.FromRecords" +ms.subservice: m-source --- # Table.FromRecords diff --git a/query-languages/m/table-fromrows.md b/query-languages/m/table-fromrows.md index 88a065cef..6221a1596 100644 --- a/query-languages/m/table-fromrows.md +++ b/query-languages/m/table-fromrows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FromRows" title: "Table.FromRows" +ms.subservice: m-source --- # Table.FromRows diff --git a/query-languages/m/table-fromvalue.md b/query-languages/m/table-fromvalue.md index 3d4357858..0e5804133 100644 --- a/query-languages/m/table-fromvalue.md +++ b/query-languages/m/table-fromvalue.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FromValue" title: "Table.FromValue" +ms.subservice: m-source --- # Table.FromValue diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index 8342e7b38..0871059cb 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -3,6 +3,7 @@ description: "Learn more about: Table functions" title: "Table functions" ms.date: 10/21/2022 ms.custom: "nonautomated-date" +ms.subservice: m-source --- # Table functions diff --git a/query-languages/m/table-fuzzygroup.md b/query-languages/m/table-fuzzygroup.md index c8f485953..04efa6d39 100644 --- a/query-languages/m/table-fuzzygroup.md +++ b/query-languages/m/table-fuzzygroup.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FuzzyGroup" title: "Table.FuzzyGroup" +ms.subservice: m-source --- # Table.FuzzyGroup diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index 836e6b32d..dd369fd78 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FuzzyJoin" title: "Table.FuzzyJoin" +ms.subservice: m-source --- # Table.FuzzyJoin diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index 007d0ed0b..369db5223 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.FuzzyNestedJoin" title: "Table.FuzzyNestedJoin" +ms.subservice: m-source --- # Table.FuzzyNestedJoin diff --git a/query-languages/m/table-group.md b/query-languages/m/table-group.md index 10cef88ba..30f968582 100644 --- a/query-languages/m/table-group.md +++ b/query-languages/m/table-group.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Group" title: "Table.Group" +ms.subservice: m-source --- # Table.Group diff --git a/query-languages/m/table-hascolumns.md b/query-languages/m/table-hascolumns.md index b0a9c2a1c..06bda2c51 100644 --- a/query-languages/m/table-hascolumns.md +++ b/query-languages/m/table-hascolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.HasColumns" title: "Table.HasColumns" +ms.subservice: m-source --- # Table.HasColumns diff --git a/query-languages/m/table-insertrows.md b/query-languages/m/table-insertrows.md index dd2919920..b222ebd52 100644 --- a/query-languages/m/table-insertrows.md +++ b/query-languages/m/table-insertrows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.InsertRows" title: "Table.InsertRows" +ms.subservice: m-source --- # Table.InsertRows diff --git a/query-languages/m/table-isdistinct.md b/query-languages/m/table-isdistinct.md index 2277dfd17..2667d3dae 100644 --- a/query-languages/m/table-isdistinct.md +++ b/query-languages/m/table-isdistinct.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.IsDistinct" title: "Table.IsDistinct" +ms.subservice: m-source --- # Table.IsDistinct diff --git a/query-languages/m/table-isempty.md b/query-languages/m/table-isempty.md index badf07985..a7d69f464 100644 --- a/query-languages/m/table-isempty.md +++ b/query-languages/m/table-isempty.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.IsEmpty" title: "Table.IsEmpty" +ms.subservice: m-source --- # Table.IsEmpty diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index 45084b347..0ddc74a47 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Join" title: "Table.Join" +ms.subservice: m-source --- # Table.Join diff --git a/query-languages/m/table-keys.md b/query-languages/m/table-keys.md index a3630daa6..af63a94c2 100644 --- a/query-languages/m/table-keys.md +++ b/query-languages/m/table-keys.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Keys" title: "Table.Keys" +ms.subservice: m-source --- # Table.Keys diff --git a/query-languages/m/table-last.md b/query-languages/m/table-last.md index 28438e1c3..32dc32b5e 100644 --- a/query-languages/m/table-last.md +++ b/query-languages/m/table-last.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Last" title: "Table.Last" +ms.subservice: m-source --- # Table.Last diff --git a/query-languages/m/table-lastn.md b/query-languages/m/table-lastn.md index 58ec0e9e1..c747415d0 100644 --- a/query-languages/m/table-lastn.md +++ b/query-languages/m/table-lastn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.LastN" title: "Table.LastN" +ms.subservice: m-source --- # Table.LastN diff --git a/query-languages/m/table-matchesallrows.md b/query-languages/m/table-matchesallrows.md index 048c980b1..c568e3447 100644 --- a/query-languages/m/table-matchesallrows.md +++ b/query-languages/m/table-matchesallrows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.MatchesAllRows" title: "Table.MatchesAllRows" +ms.subservice: m-source --- # Table.MatchesAllRows diff --git a/query-languages/m/table-matchesanyrows.md b/query-languages/m/table-matchesanyrows.md index 1752754a8..2b5b30fc6 100644 --- a/query-languages/m/table-matchesanyrows.md +++ b/query-languages/m/table-matchesanyrows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.MatchesAnyRows" title: "Table.MatchesAnyRows" +ms.subservice: m-source --- # Table.MatchesAnyRows diff --git a/query-languages/m/table-max.md b/query-languages/m/table-max.md index 0de9a93a1..84181f554 100644 --- a/query-languages/m/table-max.md +++ b/query-languages/m/table-max.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Max" title: "Table.Max" +ms.subservice: m-source --- # Table.Max diff --git a/query-languages/m/table-maxn.md b/query-languages/m/table-maxn.md index e51c8e55a..9e6a4b040 100644 --- a/query-languages/m/table-maxn.md +++ b/query-languages/m/table-maxn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.MaxN" title: "Table.MaxN" +ms.subservice: m-source --- # Table.MaxN diff --git a/query-languages/m/table-min.md b/query-languages/m/table-min.md index 157090b21..046ed6e08 100644 --- a/query-languages/m/table-min.md +++ b/query-languages/m/table-min.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Min" title: "Table.Min" +ms.subservice: m-source --- # Table.Min diff --git a/query-languages/m/table-minn.md b/query-languages/m/table-minn.md index 3e1de2d4c..018c1f327 100644 --- a/query-languages/m/table-minn.md +++ b/query-languages/m/table-minn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.MinN" title: "Table.MinN" +ms.subservice: m-source --- # Table.MinN diff --git a/query-languages/m/table-nestedjoin.md b/query-languages/m/table-nestedjoin.md index a9654116b..13f6542b9 100644 --- a/query-languages/m/table-nestedjoin.md +++ b/query-languages/m/table-nestedjoin.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.NestedJoin" title: "Table.NestedJoin" +ms.subservice: m-source --- # Table.NestedJoin diff --git a/query-languages/m/table-partition.md b/query-languages/m/table-partition.md index f4935c668..d515675e1 100644 --- a/query-languages/m/table-partition.md +++ b/query-languages/m/table-partition.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Partition" title: "Table.Partition" +ms.subservice: m-source --- # Table.Partition diff --git a/query-languages/m/table-partitionvalues.md b/query-languages/m/table-partitionvalues.md index 813fdc1d0..e5ee7bd8c 100644 --- a/query-languages/m/table-partitionvalues.md +++ b/query-languages/m/table-partitionvalues.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.PartitionValues" title: "Table.PartitionValues" +ms.subservice: m-source --- # Table.PartitionValues diff --git a/query-languages/m/table-pivot.md b/query-languages/m/table-pivot.md index c9706551c..16f904fea 100644 --- a/query-languages/m/table-pivot.md +++ b/query-languages/m/table-pivot.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Pivot" title: "Table.Pivot" +ms.subservice: m-source --- # Table.Pivot diff --git a/query-languages/m/table-positionof.md b/query-languages/m/table-positionof.md index d9c5a8f1a..d6145a530 100644 --- a/query-languages/m/table-positionof.md +++ b/query-languages/m/table-positionof.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.PositionOf" title: "Table.PositionOf" +ms.subservice: m-source --- # Table.PositionOf diff --git a/query-languages/m/table-positionofany.md b/query-languages/m/table-positionofany.md index 5682e2012..0829de1c1 100644 --- a/query-languages/m/table-positionofany.md +++ b/query-languages/m/table-positionofany.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.PositionOfAny" title: "Table.PositionOfAny" +ms.subservice: m-source --- # Table.PositionOfAny diff --git a/query-languages/m/table-prefixcolumns.md b/query-languages/m/table-prefixcolumns.md index 1699492b4..b185b6e9b 100644 --- a/query-languages/m/table-prefixcolumns.md +++ b/query-languages/m/table-prefixcolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.PrefixColumns" title: "Table.PrefixColumns" +ms.subservice: m-source --- # Table.PrefixColumns diff --git a/query-languages/m/table-profile.md b/query-languages/m/table-profile.md index 379914a0c..1874647a4 100644 --- a/query-languages/m/table-profile.md +++ b/query-languages/m/table-profile.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Profile" title: "Table.Profile" +ms.subservice: m-source --- # Table.Profile diff --git a/query-languages/m/table-promoteheaders.md b/query-languages/m/table-promoteheaders.md index 53ee511be..b63d5bc12 100644 --- a/query-languages/m/table-promoteheaders.md +++ b/query-languages/m/table-promoteheaders.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.PromoteHeaders" title: "Table.PromoteHeaders" +ms.subservice: m-source --- # Table.PromoteHeaders diff --git a/query-languages/m/table-range.md b/query-languages/m/table-range.md index f190aa45b..0708807b1 100644 --- a/query-languages/m/table-range.md +++ b/query-languages/m/table-range.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Range" title: "Table.Range" +ms.subservice: m-source --- # Table.Range diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index 88bccf9af..6f8c9cda5 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.RemoveColumns" title: "Table.RemoveColumns" +ms.subservice: m-source --- # Table.RemoveColumns diff --git a/query-languages/m/table-removefirstn.md b/query-languages/m/table-removefirstn.md index faf8cb99a..8788b6d75 100644 --- a/query-languages/m/table-removefirstn.md +++ b/query-languages/m/table-removefirstn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.RemoveFirstN" title: "Table.RemoveFirstN" +ms.subservice: m-source --- # Table.RemoveFirstN diff --git a/query-languages/m/table-removelastn.md b/query-languages/m/table-removelastn.md index dafac5f61..c201953e7 100644 --- a/query-languages/m/table-removelastn.md +++ b/query-languages/m/table-removelastn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.RemoveLastN" title: "Table.RemoveLastN" +ms.subservice: m-source --- # Table.RemoveLastN diff --git a/query-languages/m/table-removematchingrows.md b/query-languages/m/table-removematchingrows.md index bc9362c04..27e27c4d1 100644 --- a/query-languages/m/table-removematchingrows.md +++ b/query-languages/m/table-removematchingrows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.RemoveMatchingRows" title: "Table.RemoveMatchingRows" +ms.subservice: m-source --- # Table.RemoveMatchingRows diff --git a/query-languages/m/table-removerows.md b/query-languages/m/table-removerows.md index dc2b8d827..2c6484f63 100644 --- a/query-languages/m/table-removerows.md +++ b/query-languages/m/table-removerows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.RemoveRows" title: "Table.RemoveRows" +ms.subservice: m-source --- # Table.RemoveRows diff --git a/query-languages/m/table-removerowswitherrors.md b/query-languages/m/table-removerowswitherrors.md index 0da9de0fd..4f657a7bc 100644 --- a/query-languages/m/table-removerowswitherrors.md +++ b/query-languages/m/table-removerowswitherrors.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.RemoveRowsWithErrors" title: "Table.RemoveRowsWithErrors" +ms.subservice: m-source --- # Table.RemoveRowsWithErrors diff --git a/query-languages/m/table-renamecolumns.md b/query-languages/m/table-renamecolumns.md index ab8c6866e..11718ee06 100644 --- a/query-languages/m/table-renamecolumns.md +++ b/query-languages/m/table-renamecolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.RenameColumns" title: "Table.RenameColumns" +ms.subservice: m-source --- # Table.RenameColumns diff --git a/query-languages/m/table-reordercolumns.md b/query-languages/m/table-reordercolumns.md index 9a3a0457a..05cdc70d6 100644 --- a/query-languages/m/table-reordercolumns.md +++ b/query-languages/m/table-reordercolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ReorderColumns" title: "Table.ReorderColumns" +ms.subservice: m-source --- # Table.ReorderColumns diff --git a/query-languages/m/table-repeat.md b/query-languages/m/table-repeat.md index a4d1f42ca..f8bff6cb9 100644 --- a/query-languages/m/table-repeat.md +++ b/query-languages/m/table-repeat.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Repeat" title: "Table.Repeat" +ms.subservice: m-source --- # Table.Repeat diff --git a/query-languages/m/table-replaceerrorvalues.md b/query-languages/m/table-replaceerrorvalues.md index d5f16724e..9a5ee6a67 100644 --- a/query-languages/m/table-replaceerrorvalues.md +++ b/query-languages/m/table-replaceerrorvalues.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ReplaceErrorValues" title: "Table.ReplaceErrorValues" +ms.subservice: m-source --- # Table.ReplaceErrorValues diff --git a/query-languages/m/table-replacekeys.md b/query-languages/m/table-replacekeys.md index 8b9eab01c..ff478642c 100644 --- a/query-languages/m/table-replacekeys.md +++ b/query-languages/m/table-replacekeys.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ReplaceKeys" title: "Table.ReplaceKeys" +ms.subservice: m-source --- # Table.ReplaceKeys diff --git a/query-languages/m/table-replacematchingrows.md b/query-languages/m/table-replacematchingrows.md index 0a39f4792..eb6c50a89 100644 --- a/query-languages/m/table-replacematchingrows.md +++ b/query-languages/m/table-replacematchingrows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ReplaceMatchingRows" title: "Table.ReplaceMatchingRows" +ms.subservice: m-source --- # Table.ReplaceMatchingRows diff --git a/query-languages/m/table-replacerelationshipidentity.md b/query-languages/m/table-replacerelationshipidentity.md index 9c3b42faf..de5475799 100644 --- a/query-languages/m/table-replacerelationshipidentity.md +++ b/query-languages/m/table-replacerelationshipidentity.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ReplaceRelationshipIdentity" title: "Table.ReplaceRelationshipIdentity" +ms.subservice: m-source --- # Table.ReplaceRelationshipIdentity diff --git a/query-languages/m/table-replacerows.md b/query-languages/m/table-replacerows.md index c550293ae..005899164 100644 --- a/query-languages/m/table-replacerows.md +++ b/query-languages/m/table-replacerows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ReplaceRows" title: "Table.ReplaceRows" +ms.subservice: m-source --- # Table.ReplaceRows diff --git a/query-languages/m/table-replacevalue.md b/query-languages/m/table-replacevalue.md index 17f8959af..e4981cf22 100644 --- a/query-languages/m/table-replacevalue.md +++ b/query-languages/m/table-replacevalue.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ReplaceValue" title: "Table.ReplaceValue" +ms.subservice: m-source --- # Table.ReplaceValue diff --git a/query-languages/m/table-reverserows.md b/query-languages/m/table-reverserows.md index 95382b817..1464ee301 100644 --- a/query-languages/m/table-reverserows.md +++ b/query-languages/m/table-reverserows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ReverseRows" title: "Table.ReverseRows" +ms.subservice: m-source --- # Table.ReverseRows diff --git a/query-languages/m/table-rowcount.md b/query-languages/m/table-rowcount.md index 18437533c..5fd93e075 100644 --- a/query-languages/m/table-rowcount.md +++ b/query-languages/m/table-rowcount.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.RowCount" title: "Table.RowCount" +ms.subservice: m-source --- # Table.RowCount diff --git a/query-languages/m/table-schema.md b/query-languages/m/table-schema.md index 3b988af3d..2ba47acdb 100644 --- a/query-languages/m/table-schema.md +++ b/query-languages/m/table-schema.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Schema" title: "Table.Schema" +ms.subservice: m-source --- # Table.Schema diff --git a/query-languages/m/table-selectcolumns.md b/query-languages/m/table-selectcolumns.md index 9091473ab..715cc453b 100644 --- a/query-languages/m/table-selectcolumns.md +++ b/query-languages/m/table-selectcolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.SelectColumns" title: "Table.SelectColumns" +ms.subservice: m-source --- # Table.SelectColumns diff --git a/query-languages/m/table-selectrows.md b/query-languages/m/table-selectrows.md index 798ab4a64..5c4d98072 100644 --- a/query-languages/m/table-selectrows.md +++ b/query-languages/m/table-selectrows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.SelectRows" title: "Table.SelectRows" +ms.subservice: m-source --- # Table.SelectRows diff --git a/query-languages/m/table-selectrowswitherrors.md b/query-languages/m/table-selectrowswitherrors.md index af3ecdd27..331560c2c 100644 --- a/query-languages/m/table-selectrowswitherrors.md +++ b/query-languages/m/table-selectrowswitherrors.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.SelectRowsWithErrors" title: "Table.SelectRowsWithErrors" +ms.subservice: m-source --- # Table.SelectRowsWithErrors diff --git a/query-languages/m/table-singlerow.md b/query-languages/m/table-singlerow.md index 4d24561a9..c2fe43a64 100644 --- a/query-languages/m/table-singlerow.md +++ b/query-languages/m/table-singlerow.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.SingleRow" title: "Table.SingleRow" +ms.subservice: m-source --- # Table.SingleRow diff --git a/query-languages/m/table-skip.md b/query-languages/m/table-skip.md index 5b73f0e00..5a5264730 100644 --- a/query-languages/m/table-skip.md +++ b/query-languages/m/table-skip.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Skip" title: "Table.Skip" +ms.subservice: m-source --- # Table.Skip diff --git a/query-languages/m/table-sort.md b/query-languages/m/table-sort.md index b41808b97..305b749d7 100644 --- a/query-languages/m/table-sort.md +++ b/query-languages/m/table-sort.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Sort" title: "Table.Sort" +ms.subservice: m-source --- # Table.Sort diff --git a/query-languages/m/table-split.md b/query-languages/m/table-split.md index fc62ad6ad..e24041136 100644 --- a/query-languages/m/table-split.md +++ b/query-languages/m/table-split.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Split" title: "Table.Split" +ms.subservice: m-source --- # Table.Split diff --git a/query-languages/m/table-splitat.md b/query-languages/m/table-splitat.md index 820b26991..1620be374 100644 --- a/query-languages/m/table-splitat.md +++ b/query-languages/m/table-splitat.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.SplitAt" title: "Table.SplitAt" +ms.subservice: m-source --- # Table.SplitAt diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index 1f8fbedbc..dd1a4adee 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.SplitColumn" title: "Table.SplitColumn" +ms.subservice: m-source --- # Table.SplitColumn diff --git a/query-languages/m/table-stopfolding.md b/query-languages/m/table-stopfolding.md index 4c0a06b8f..5c7a72c8e 100644 --- a/query-languages/m/table-stopfolding.md +++ b/query-languages/m/table-stopfolding.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.StopFolding" title: "Table.StopFolding" +ms.subservice: m-source --- # Table.StopFolding diff --git a/query-languages/m/table-tocolumns.md b/query-languages/m/table-tocolumns.md index 3bcd02f62..8c0fc4d1d 100644 --- a/query-languages/m/table-tocolumns.md +++ b/query-languages/m/table-tocolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ToColumns" title: "Table.ToColumns" +ms.subservice: m-source --- # Table.ToColumns diff --git a/query-languages/m/table-tolist.md b/query-languages/m/table-tolist.md index 63befe7c6..a0e9d1e6b 100644 --- a/query-languages/m/table-tolist.md +++ b/query-languages/m/table-tolist.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ToList" title: "Table.ToList" +ms.subservice: m-source --- # Table.ToList diff --git a/query-languages/m/table-torecords.md b/query-languages/m/table-torecords.md index c59359c94..06edb214f 100644 --- a/query-languages/m/table-torecords.md +++ b/query-languages/m/table-torecords.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ToRecords" title: "Table.ToRecords" +ms.subservice: m-source --- # Table.ToRecords diff --git a/query-languages/m/table-torows.md b/query-languages/m/table-torows.md index b90c3ff0f..ce65b5ea9 100644 --- a/query-languages/m/table-torows.md +++ b/query-languages/m/table-torows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ToRows" title: "Table.ToRows" +ms.subservice: m-source --- # Table.ToRows diff --git a/query-languages/m/table-transformcolumnnames.md b/query-languages/m/table-transformcolumnnames.md index ddad4d9b1..6efab668e 100644 --- a/query-languages/m/table-transformcolumnnames.md +++ b/query-languages/m/table-transformcolumnnames.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.TransformColumnNames" title: "Table.TransformColumnNames" +ms.subservice: m-source --- # Table.TransformColumnNames diff --git a/query-languages/m/table-transformcolumns.md b/query-languages/m/table-transformcolumns.md index cdcce9631..fe677f976 100644 --- a/query-languages/m/table-transformcolumns.md +++ b/query-languages/m/table-transformcolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.TransformColumns" title: "Table.TransformColumns" +ms.subservice: m-source --- # Table.TransformColumns diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 351236c48..22e4b23ee 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.TransformColumnTypes" title: "Table.TransformColumnTypes" +ms.subservice: m-source --- # Table.TransformColumnTypes diff --git a/query-languages/m/table-transformrows.md b/query-languages/m/table-transformrows.md index d2934b70f..92c6e0ee4 100644 --- a/query-languages/m/table-transformrows.md +++ b/query-languages/m/table-transformrows.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.TransformRows" title: "Table.TransformRows" +ms.subservice: m-source --- # Table.TransformRows diff --git a/query-languages/m/table-transpose.md b/query-languages/m/table-transpose.md index b7c93b9df..f92c83711 100644 --- a/query-languages/m/table-transpose.md +++ b/query-languages/m/table-transpose.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Transpose" title: "Table.Transpose" +ms.subservice: m-source --- # Table.Transpose diff --git a/query-languages/m/table-unpivot.md b/query-languages/m/table-unpivot.md index 95e2a2f87..4969cceff 100644 --- a/query-languages/m/table-unpivot.md +++ b/query-languages/m/table-unpivot.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.Unpivot" title: "Table.Unpivot" +ms.subservice: m-source --- # Table.Unpivot diff --git a/query-languages/m/table-unpivotothercolumns.md b/query-languages/m/table-unpivotothercolumns.md index cea323d26..eea2283ed 100644 --- a/query-languages/m/table-unpivotothercolumns.md +++ b/query-languages/m/table-unpivotothercolumns.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.UnpivotOtherColumns" title: "Table.UnpivotOtherColumns" +ms.subservice: m-source --- # Table.UnpivotOtherColumns diff --git a/query-languages/m/table-view.md b/query-languages/m/table-view.md index a29f07d70..c4647c4e0 100644 --- a/query-languages/m/table-view.md +++ b/query-languages/m/table-view.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.View" title: "Table.View" +ms.subservice: m-source --- # Table.View diff --git a/query-languages/m/table-viewerror.md b/query-languages/m/table-viewerror.md index 8ddc2ffd1..e3ef32b18 100644 --- a/query-languages/m/table-viewerror.md +++ b/query-languages/m/table-viewerror.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ViewError" title: "Table.ViewError" +ms.subservice: m-source --- # Table.ViewError diff --git a/query-languages/m/table-viewfunction.md b/query-languages/m/table-viewfunction.md index 0a5e46d7e..3cb85553f 100644 --- a/query-languages/m/table-viewfunction.md +++ b/query-languages/m/table-viewfunction.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.ViewFunction" title: "Table.ViewFunction" +ms.subservice: m-source --- # Table.ViewFunction diff --git a/query-languages/m/table-witherrorcontext.md b/query-languages/m/table-witherrorcontext.md index c3fa19886..f63dca654 100644 --- a/query-languages/m/table-witherrorcontext.md +++ b/query-languages/m/table-witherrorcontext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Table.WithErrorContext" title: "Table.WithErrorContext" +ms.subservice: m-source --- # Table.WithErrorContext diff --git a/query-languages/m/tables-getrelationships.md b/query-languages/m/tables-getrelationships.md index 40a8fc01a..530e320f4 100644 --- a/query-languages/m/tables-getrelationships.md +++ b/query-languages/m/tables-getrelationships.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Tables.GetRelationships" title: "Tables.GetRelationships" +ms.subservice: m-source --- # Tables.GetRelationships diff --git a/query-languages/m/teradata-database.md b/query-languages/m/teradata-database.md index f8620e02f..0260f40b9 100644 --- a/query-languages/m/teradata-database.md +++ b/query-languages/m/teradata-database.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Teradata.Database" title: "Teradata.Database" +ms.subservice: m-source --- # Teradata.Database diff --git a/query-languages/m/text-afterdelimiter.md b/query-languages/m/text-afterdelimiter.md index ae009960b..6998afe25 100644 --- a/query-languages/m/text-afterdelimiter.md +++ b/query-languages/m/text-afterdelimiter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.AfterDelimiter" title: "Text.AfterDelimiter" +ms.subservice: m-source --- # Text.AfterDelimiter diff --git a/query-languages/m/text-at.md b/query-languages/m/text-at.md index 9eca747b6..4bae37965 100644 --- a/query-languages/m/text-at.md +++ b/query-languages/m/text-at.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.At" title: "Text.At" +ms.subservice: m-source --- # Text.At diff --git a/query-languages/m/text-beforedelimiter.md b/query-languages/m/text-beforedelimiter.md index 5d3729d65..4020b2ca2 100644 --- a/query-languages/m/text-beforedelimiter.md +++ b/query-languages/m/text-beforedelimiter.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.BeforeDelimiter" title: "Text.BeforeDelimiter" +ms.subservice: m-source --- # Text.BeforeDelimiter diff --git a/query-languages/m/text-betweendelimiters.md b/query-languages/m/text-betweendelimiters.md index 6a1a119ea..f176f6532 100644 --- a/query-languages/m/text-betweendelimiters.md +++ b/query-languages/m/text-betweendelimiters.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.BetweenDelimiters" title: "Text.BetweenDelimiters" +ms.subservice: m-source --- # Text.BetweenDelimiters diff --git a/query-languages/m/text-clean.md b/query-languages/m/text-clean.md index f16883a41..52e4c3a62 100644 --- a/query-languages/m/text-clean.md +++ b/query-languages/m/text-clean.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Clean" title: "Text.Clean" +ms.subservice: m-source --- # Text.Clean diff --git a/query-languages/m/text-combine.md b/query-languages/m/text-combine.md index 35e491b29..0f28e4c4b 100644 --- a/query-languages/m/text-combine.md +++ b/query-languages/m/text-combine.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Combine" title: "Text.Combine" +ms.subservice: m-source --- # Text.Combine diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index 670848817..45f2f76ef 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Contains" title: "Text.Contains" +ms.subservice: m-source --- # Text.Contains diff --git a/query-languages/m/text-end.md b/query-languages/m/text-end.md index f9b666a7b..b033372a1 100644 --- a/query-languages/m/text-end.md +++ b/query-languages/m/text-end.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.End" title: "Text.End" +ms.subservice: m-source --- # Text.End diff --git a/query-languages/m/text-endswith.md b/query-languages/m/text-endswith.md index c0932d8c0..cabdc9517 100644 --- a/query-languages/m/text-endswith.md +++ b/query-languages/m/text-endswith.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.EndsWith" title: "Text.EndsWith" +ms.subservice: m-source --- # Text.EndsWith diff --git a/query-languages/m/text-format.md b/query-languages/m/text-format.md index dfabf81f6..50a79aca6 100644 --- a/query-languages/m/text-format.md +++ b/query-languages/m/text-format.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Format" title: "Text.Format" +ms.subservice: m-source --- # Text.Format diff --git a/query-languages/m/text-from.md b/query-languages/m/text-from.md index 0f81c05bc..e2d76846b 100644 --- a/query-languages/m/text-from.md +++ b/query-languages/m/text-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.From" title: "Text.From" +ms.subservice: m-source --- # Text.From diff --git a/query-languages/m/text-frombinary.md b/query-languages/m/text-frombinary.md index 36fceaccb..ace2fdb63 100644 --- a/query-languages/m/text-frombinary.md +++ b/query-languages/m/text-frombinary.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.FromBinary" title: "Text.FromBinary" +ms.subservice: m-source --- # Text.FromBinary diff --git a/query-languages/m/text-infernumbertype.md b/query-languages/m/text-infernumbertype.md index e8bd827b5..2aa13db53 100644 --- a/query-languages/m/text-infernumbertype.md +++ b/query-languages/m/text-infernumbertype.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.InferNumberType" title: "Text.InferNumberType" +ms.subservice: m-source --- # Text.InferNumberType diff --git a/query-languages/m/text-insert.md b/query-languages/m/text-insert.md index 202f55c8d..98e8f31b8 100644 --- a/query-languages/m/text-insert.md +++ b/query-languages/m/text-insert.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Insert" title: "Text.Insert" +ms.subservice: m-source --- # Text.Insert diff --git a/query-languages/m/text-length.md b/query-languages/m/text-length.md index 8310e7f33..4854a71c6 100644 --- a/query-languages/m/text-length.md +++ b/query-languages/m/text-length.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Length" title: "Text.Length" +ms.subservice: m-source --- # Text.Length diff --git a/query-languages/m/text-lower.md b/query-languages/m/text-lower.md index f11448ef3..383ff37cb 100644 --- a/query-languages/m/text-lower.md +++ b/query-languages/m/text-lower.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Lower" title: "Text.Lower" +ms.subservice: m-source --- # Text.Lower diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index e183a2780..aef969f89 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Middle" title: "Text.Middle" +ms.subservice: m-source --- # Text.Middle diff --git a/query-languages/m/text-newguid.md b/query-languages/m/text-newguid.md index f545a004c..cf2201c09 100644 --- a/query-languages/m/text-newguid.md +++ b/query-languages/m/text-newguid.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.NewGuid" title: "Text.NewGuid" +ms.subservice: m-source --- # Text.NewGuid diff --git a/query-languages/m/text-padend.md b/query-languages/m/text-padend.md index 8cafbd25c..f1ff954c2 100644 --- a/query-languages/m/text-padend.md +++ b/query-languages/m/text-padend.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.PadEnd" title: "Text.PadEnd" +ms.subservice: m-source --- # Text.PadEnd diff --git a/query-languages/m/text-padstart.md b/query-languages/m/text-padstart.md index a44d06d92..7c275aae1 100644 --- a/query-languages/m/text-padstart.md +++ b/query-languages/m/text-padstart.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.PadStart" title: "Text.PadStart" +ms.subservice: m-source --- # Text.PadStart diff --git a/query-languages/m/text-positionof.md b/query-languages/m/text-positionof.md index ba9754f16..de5fd2a12 100644 --- a/query-languages/m/text-positionof.md +++ b/query-languages/m/text-positionof.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.PositionOf" title: "Text.PositionOf" +ms.subservice: m-source --- # Text.PositionOf diff --git a/query-languages/m/text-positionofany.md b/query-languages/m/text-positionofany.md index 45e9ddd19..58a08860a 100644 --- a/query-languages/m/text-positionofany.md +++ b/query-languages/m/text-positionofany.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.PositionOfAny" title: "Text.PositionOfAny" +ms.subservice: m-source --- # Text.PositionOfAny diff --git a/query-languages/m/text-proper.md b/query-languages/m/text-proper.md index 2af1b9241..5a4dd9c93 100644 --- a/query-languages/m/text-proper.md +++ b/query-languages/m/text-proper.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Proper" title: "Text.Proper" +ms.subservice: m-source --- # Text.Proper diff --git a/query-languages/m/text-range.md b/query-languages/m/text-range.md index 7320dd7e2..1edf776ce 100644 --- a/query-languages/m/text-range.md +++ b/query-languages/m/text-range.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Range" title: "Text.Range" +ms.subservice: m-source --- # Text.Range diff --git a/query-languages/m/text-remove.md b/query-languages/m/text-remove.md index 026954365..fb09ef848 100644 --- a/query-languages/m/text-remove.md +++ b/query-languages/m/text-remove.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Remove" title: "Text.Remove" +ms.subservice: m-source --- # Text.Remove diff --git a/query-languages/m/text-removerange.md b/query-languages/m/text-removerange.md index e6a3cc724..49b3591f9 100644 --- a/query-languages/m/text-removerange.md +++ b/query-languages/m/text-removerange.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.RemoveRange" title: "Text.RemoveRange" +ms.subservice: m-source --- # Text.RemoveRange diff --git a/query-languages/m/text-repeat.md b/query-languages/m/text-repeat.md index 59d5734e2..fc9d76356 100644 --- a/query-languages/m/text-repeat.md +++ b/query-languages/m/text-repeat.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Repeat" title: "Text.Repeat" +ms.subservice: m-source --- # Text.Repeat diff --git a/query-languages/m/text-replace.md b/query-languages/m/text-replace.md index 96bec78d6..dbb07e8f2 100644 --- a/query-languages/m/text-replace.md +++ b/query-languages/m/text-replace.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Replace" title: "Text.Replace" +ms.subservice: m-source --- # Text.Replace diff --git a/query-languages/m/text-replacerange.md b/query-languages/m/text-replacerange.md index bda8ea911..6019771ed 100644 --- a/query-languages/m/text-replacerange.md +++ b/query-languages/m/text-replacerange.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.ReplaceRange" title: "Text.ReplaceRange" +ms.subservice: m-source --- # Text.ReplaceRange diff --git a/query-languages/m/text-reverse.md b/query-languages/m/text-reverse.md index 92046e4a6..742f5eb89 100644 --- a/query-languages/m/text-reverse.md +++ b/query-languages/m/text-reverse.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Reverse" title: "Text.Reverse" +ms.subservice: m-source --- # Text.Reverse diff --git a/query-languages/m/text-select.md b/query-languages/m/text-select.md index 07ba06d5b..03042471d 100644 --- a/query-languages/m/text-select.md +++ b/query-languages/m/text-select.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Select" title: "Text.Select" +ms.subservice: m-source --- # Text.Select diff --git a/query-languages/m/text-split.md b/query-languages/m/text-split.md index 875b0599f..f12f88988 100644 --- a/query-languages/m/text-split.md +++ b/query-languages/m/text-split.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Split" title: "Text.Split" +ms.subservice: m-source --- # Text.Split diff --git a/query-languages/m/text-splitany.md b/query-languages/m/text-splitany.md index 07d4d7478..5f5bc519b 100644 --- a/query-languages/m/text-splitany.md +++ b/query-languages/m/text-splitany.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.SplitAny" title: "Text.SplitAny" +ms.subservice: m-source --- # Text.SplitAny diff --git a/query-languages/m/text-start.md b/query-languages/m/text-start.md index 1e3bda842..656321605 100644 --- a/query-languages/m/text-start.md +++ b/query-languages/m/text-start.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Start" title: "Text.Start" +ms.subservice: m-source --- # Text.Start diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index 372e6d1ae..7a93b6186 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.StartsWith" title: "Text.StartsWith" +ms.subservice: m-source --- # Text.StartsWith diff --git a/query-languages/m/text-tobinary.md b/query-languages/m/text-tobinary.md index 905a4f533..3241a7e9d 100644 --- a/query-languages/m/text-tobinary.md +++ b/query-languages/m/text-tobinary.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.ToBinary" title: "Text.ToBinary" +ms.subservice: m-source --- # Text.ToBinary diff --git a/query-languages/m/text-tolist.md b/query-languages/m/text-tolist.md index bf99907f3..d74882c39 100644 --- a/query-languages/m/text-tolist.md +++ b/query-languages/m/text-tolist.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.ToList" title: "Text.ToList" +ms.subservice: m-source --- # Text.ToList diff --git a/query-languages/m/text-trim.md b/query-languages/m/text-trim.md index 968aecb3c..e1f6623ac 100644 --- a/query-languages/m/text-trim.md +++ b/query-languages/m/text-trim.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Trim" title: "Text.Trim" +ms.subservice: m-source --- # Text.Trim diff --git a/query-languages/m/text-trimend.md b/query-languages/m/text-trimend.md index a8dbe9bf0..a2b66be15 100644 --- a/query-languages/m/text-trimend.md +++ b/query-languages/m/text-trimend.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.TrimEnd" title: "Text.TrimEnd" +ms.subservice: m-source --- # Text.TrimEnd diff --git a/query-languages/m/text-trimstart.md b/query-languages/m/text-trimstart.md index 77c751962..6d6d2fa26 100644 --- a/query-languages/m/text-trimstart.md +++ b/query-languages/m/text-trimstart.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.TrimStart" title: "Text.TrimStart" +ms.subservice: m-source --- # Text.TrimStart diff --git a/query-languages/m/text-upper.md b/query-languages/m/text-upper.md index 0e4332749..1630de19f 100644 --- a/query-languages/m/text-upper.md +++ b/query-languages/m/text-upper.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Text.Upper" title: "Text.Upper" +ms.subservice: m-source --- # Text.Upper diff --git a/query-languages/m/textencoding-type.md b/query-languages/m/textencoding-type.md index 2ac028afb..0f0e317d7 100644 --- a/query-languages/m/textencoding-type.md +++ b/query-languages/m/textencoding-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: TextEncoding.Type" title: "TextEncoding.Type" +ms.subservice: m-source --- # TextEncoding.Type diff --git a/query-languages/m/time-endofhour.md b/query-languages/m/time-endofhour.md index 84d844b25..c51bde619 100644 --- a/query-languages/m/time-endofhour.md +++ b/query-languages/m/time-endofhour.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Time.EndOfHour" title: "Time.EndOfHour" +ms.subservice: m-source --- # Time.EndOfHour diff --git a/query-languages/m/time-from.md b/query-languages/m/time-from.md index d37e3688e..3f19e34ec 100644 --- a/query-languages/m/time-from.md +++ b/query-languages/m/time-from.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Time.From" title: "Time.From" +ms.subservice: m-source --- # Time.From diff --git a/query-languages/m/time-fromtext.md b/query-languages/m/time-fromtext.md index 6cb1be988..21e22b6fa 100644 --- a/query-languages/m/time-fromtext.md +++ b/query-languages/m/time-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Time.FromText" title: "Time.FromText" +ms.subservice: m-source --- # Time.FromText diff --git a/query-languages/m/time-hour.md b/query-languages/m/time-hour.md index 55ef5318f..460827ad8 100644 --- a/query-languages/m/time-hour.md +++ b/query-languages/m/time-hour.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Time.Hour" title: "Time.Hour" +ms.subservice: m-source --- # Time.Hour diff --git a/query-languages/m/time-minute.md b/query-languages/m/time-minute.md index d5142c90b..f5703d7e0 100644 --- a/query-languages/m/time-minute.md +++ b/query-languages/m/time-minute.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Time.Minute" title: "Time.Minute" +ms.subservice: m-source --- # Time.Minute diff --git a/query-languages/m/time-second.md b/query-languages/m/time-second.md index 2ec5d4d6a..246071240 100644 --- a/query-languages/m/time-second.md +++ b/query-languages/m/time-second.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Time.Second" title: "Time.Second" +ms.subservice: m-source --- # Time.Second diff --git a/query-languages/m/time-startofhour.md b/query-languages/m/time-startofhour.md index aa7bed533..06ebf6239 100644 --- a/query-languages/m/time-startofhour.md +++ b/query-languages/m/time-startofhour.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Time.StartOfHour" title: "Time.StartOfHour" +ms.subservice: m-source --- # Time.StartOfHour diff --git a/query-languages/m/time-torecord.md b/query-languages/m/time-torecord.md index feed7d9d5..93d0c71c9 100644 --- a/query-languages/m/time-torecord.md +++ b/query-languages/m/time-torecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Time.ToRecord" title: "Time.ToRecord" +ms.subservice: m-source --- # Time.ToRecord diff --git a/query-languages/m/time-totext.md b/query-languages/m/time-totext.md index 8bacd02a9..58470b7b6 100644 --- a/query-languages/m/time-totext.md +++ b/query-languages/m/time-totext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Time.ToText" title: "Time.ToText" +ms.subservice: m-source --- # Time.ToText diff --git a/query-languages/m/timezone-current.md b/query-languages/m/timezone-current.md index 122f27517..6396b9ec1 100644 --- a/query-languages/m/timezone-current.md +++ b/query-languages/m/timezone-current.md @@ -1,6 +1,7 @@ --- description: "Learn more about: TimeZone.Current" title: "TimeZone.Current" +ms.subservice: m-source --- # TimeZone.Current diff --git a/query-languages/m/tracelevel-type.md b/query-languages/m/tracelevel-type.md index 8a8873c62..00098be04 100644 --- a/query-languages/m/tracelevel-type.md +++ b/query-languages/m/tracelevel-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: TraceLevel.Type" title: "TraceLevel.Type" +ms.subservice: m-source --- # TraceLevel.Type diff --git a/query-languages/m/type-addtablekey.md b/query-languages/m/type-addtablekey.md index 1c94f033d..d91b0294c 100644 --- a/query-languages/m/type-addtablekey.md +++ b/query-languages/m/type-addtablekey.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.AddTableKey" title: "Type.AddTableKey" +ms.subservice: m-source --- # Type.AddTableKey diff --git a/query-languages/m/type-closedrecord.md b/query-languages/m/type-closedrecord.md index e4bd3285a..859424bab 100644 --- a/query-languages/m/type-closedrecord.md +++ b/query-languages/m/type-closedrecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.ClosedRecord" title: "Type.ClosedRecord" +ms.subservice: m-source --- # Type.ClosedRecord diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 8c34d6573..2d1821319 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -4,6 +4,7 @@ title: "Type conversion" ms.topic: conceptual ms.date: 11/14/2024 ms.custom: "nonautomated-date" +ms.subservice: m-background --- # Type conversion diff --git a/query-languages/m/type-facets.md b/query-languages/m/type-facets.md index b2f2b68fb..e982e8378 100644 --- a/query-languages/m/type-facets.md +++ b/query-languages/m/type-facets.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.Facets" title: "Type.Facets" +ms.subservice: m-source --- # Type.Facets diff --git a/query-languages/m/type-forfunction.md b/query-languages/m/type-forfunction.md index 3d64a619d..4cd9ff3ee 100644 --- a/query-languages/m/type-forfunction.md +++ b/query-languages/m/type-forfunction.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.ForFunction" title: "Type.ForFunction" +ms.subservice: m-source --- # Type.ForFunction diff --git a/query-languages/m/type-forrecord.md b/query-languages/m/type-forrecord.md index 882d916c7..fb14bc86c 100644 --- a/query-languages/m/type-forrecord.md +++ b/query-languages/m/type-forrecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.ForRecord" title: "Type.ForRecord" +ms.subservice: m-source --- # Type.ForRecord diff --git a/query-languages/m/type-functionparameters.md b/query-languages/m/type-functionparameters.md index fde88721e..60cf3698e 100644 --- a/query-languages/m/type-functionparameters.md +++ b/query-languages/m/type-functionparameters.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.FunctionParameters" title: "Type.FunctionParameters" +ms.subservice: m-source --- # Type.FunctionParameters diff --git a/query-languages/m/type-functionrequiredparameters.md b/query-languages/m/type-functionrequiredparameters.md index 5aa3ce98d..15a050848 100644 --- a/query-languages/m/type-functionrequiredparameters.md +++ b/query-languages/m/type-functionrequiredparameters.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.FunctionRequiredParameters" title: "Type.FunctionRequiredParameters" +ms.subservice: m-source --- # Type.FunctionRequiredParameters diff --git a/query-languages/m/type-functionreturn.md b/query-languages/m/type-functionreturn.md index 6705caa62..62706583e 100644 --- a/query-languages/m/type-functionreturn.md +++ b/query-languages/m/type-functionreturn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.FunctionReturn" title: "Type.FunctionReturn" +ms.subservice: m-source --- # Type.FunctionReturn diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index d78b22efb..ff6496f3e 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.Is" title: "Type.Is" +ms.subservice: m-source --- # Type.Is diff --git a/query-languages/m/type-isnullable.md b/query-languages/m/type-isnullable.md index 1ec95c88e..92f37cd36 100644 --- a/query-languages/m/type-isnullable.md +++ b/query-languages/m/type-isnullable.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.IsNullable" title: "Type.IsNullable" +ms.subservice: m-source --- # Type.IsNullable diff --git a/query-languages/m/type-isopenrecord.md b/query-languages/m/type-isopenrecord.md index 8bfb061b6..292e3882c 100644 --- a/query-languages/m/type-isopenrecord.md +++ b/query-languages/m/type-isopenrecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.IsOpenRecord" title: "Type.IsOpenRecord" +ms.subservice: m-source --- # Type.IsOpenRecord diff --git a/query-languages/m/type-listitem.md b/query-languages/m/type-listitem.md index 6c88d2628..01698c367 100644 --- a/query-languages/m/type-listitem.md +++ b/query-languages/m/type-listitem.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.ListItem" title: "Type.ListItem" +ms.subservice: m-source --- # Type.ListItem diff --git a/query-languages/m/type-nonnullable.md b/query-languages/m/type-nonnullable.md index 64093ce9b..a2972241b 100644 --- a/query-languages/m/type-nonnullable.md +++ b/query-languages/m/type-nonnullable.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.NonNullable" title: "Type.NonNullable" +ms.subservice: m-source --- # Type.NonNullable diff --git a/query-languages/m/type-openrecord.md b/query-languages/m/type-openrecord.md index ebdc7fef8..f89758b12 100644 --- a/query-languages/m/type-openrecord.md +++ b/query-languages/m/type-openrecord.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.OpenRecord" title: "Type.OpenRecord" +ms.subservice: m-source --- # Type.OpenRecord diff --git a/query-languages/m/type-recordfields.md b/query-languages/m/type-recordfields.md index 418b6b0b0..dff667c80 100644 --- a/query-languages/m/type-recordfields.md +++ b/query-languages/m/type-recordfields.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.RecordFields" title: "Type.RecordFields" +ms.subservice: m-source --- # Type.RecordFields diff --git a/query-languages/m/type-replacefacets.md b/query-languages/m/type-replacefacets.md index eade8d9df..5af1e60a1 100644 --- a/query-languages/m/type-replacefacets.md +++ b/query-languages/m/type-replacefacets.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.ReplaceFacets" title: "Type.ReplaceFacets" +ms.subservice: m-source --- # Type.ReplaceFacets diff --git a/query-languages/m/type-replacetablekeys.md b/query-languages/m/type-replacetablekeys.md index 4d4e6674d..dbf463bc3 100644 --- a/query-languages/m/type-replacetablekeys.md +++ b/query-languages/m/type-replacetablekeys.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.ReplaceTableKeys" title: "Type.ReplaceTableKeys" +ms.subservice: m-source --- # Type.ReplaceTableKeys diff --git a/query-languages/m/type-tablecolumn.md b/query-languages/m/type-tablecolumn.md index 0b7f2a094..71c066a4b 100644 --- a/query-languages/m/type-tablecolumn.md +++ b/query-languages/m/type-tablecolumn.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.TableColumn" title: "Type.TableColumn" +ms.subservice: m-source --- # Type.TableColumn diff --git a/query-languages/m/type-tablekeys.md b/query-languages/m/type-tablekeys.md index a4e8916bd..c8dc456ab 100644 --- a/query-languages/m/type-tablekeys.md +++ b/query-languages/m/type-tablekeys.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.TableKeys" title: "Type.TableKeys" +ms.subservice: m-source --- # Type.TableKeys diff --git a/query-languages/m/type-tablerow.md b/query-languages/m/type-tablerow.md index dd9d1e770..faa7669b1 100644 --- a/query-languages/m/type-tablerow.md +++ b/query-languages/m/type-tablerow.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.TableRow" title: "Type.TableRow" +ms.subservice: m-source --- # Type.TableRow diff --git a/query-languages/m/type-tableschema.md b/query-languages/m/type-tableschema.md index ad4f627a1..0938d5c2c 100644 --- a/query-languages/m/type-tableschema.md +++ b/query-languages/m/type-tableschema.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.TableSchema" title: "Type.TableSchema" +ms.subservice: m-source --- # Type.TableSchema diff --git a/query-languages/m/type-union.md b/query-languages/m/type-union.md index 918974127..a83c2709e 100644 --- a/query-languages/m/type-union.md +++ b/query-languages/m/type-union.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Type.Union" title: "Type.Union" +ms.subservice: m-source --- # Type.Union diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index 4cdde510c..8fdc218ea 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -4,6 +4,7 @@ title: "Understanding Power Query M functions" ms.topic: conceptual ms.date: 11/14/2024 ms.custom: "nonautomated-date" +ms.subservice: m-background --- # Understanding Power Query M functions diff --git a/query-languages/m/uri-buildquerystring.md b/query-languages/m/uri-buildquerystring.md index d89d90d3d..553fd953c 100644 --- a/query-languages/m/uri-buildquerystring.md +++ b/query-languages/m/uri-buildquerystring.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Uri.BuildQueryString" title: "Uri.BuildQueryString" +ms.subservice: m-source --- # Uri.BuildQueryString diff --git a/query-languages/m/uri-combine.md b/query-languages/m/uri-combine.md index e364edd83..d1d77c74f 100644 --- a/query-languages/m/uri-combine.md +++ b/query-languages/m/uri-combine.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Uri.Combine" title: "Uri.Combine" +ms.subservice: m-source --- # Uri.Combine diff --git a/query-languages/m/uri-escapedatastring.md b/query-languages/m/uri-escapedatastring.md index e74aafb67..ff98dcbd3 100644 --- a/query-languages/m/uri-escapedatastring.md +++ b/query-languages/m/uri-escapedatastring.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Uri.EscapeDataString" title: "Uri.EscapeDataString" +ms.subservice: m-source --- # Uri.EscapeDataString diff --git a/query-languages/m/uri-parts.md b/query-languages/m/uri-parts.md index 8c57cd485..fc5e3a754 100644 --- a/query-languages/m/uri-parts.md +++ b/query-languages/m/uri-parts.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Uri.Parts" title: "Uri.Parts" +ms.subservice: m-source --- # Uri.Parts diff --git a/query-languages/m/value-add.md b/query-languages/m/value-add.md index 6695405f3..ef91e08ba 100644 --- a/query-languages/m/value-add.md +++ b/query-languages/m/value-add.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Add" title: "Value.Add" +ms.subservice: m-source --- # Value.Add diff --git a/query-languages/m/value-alternates.md b/query-languages/m/value-alternates.md index 31aa7f966..7dc5dc93b 100644 --- a/query-languages/m/value-alternates.md +++ b/query-languages/m/value-alternates.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Alternates" title: "Value.Alternates" +ms.subservice: m-source --- # Value.Alternates diff --git a/query-languages/m/value-as.md b/query-languages/m/value-as.md index 46cb5efc5..93c75e0f8 100644 --- a/query-languages/m/value-as.md +++ b/query-languages/m/value-as.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.As" title: "Value.As" +ms.subservice: m-source --- # Value.As diff --git a/query-languages/m/value-compare.md b/query-languages/m/value-compare.md index 86e9b5d3d..08bc6a7c6 100644 --- a/query-languages/m/value-compare.md +++ b/query-languages/m/value-compare.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Compare" title: "Value.Compare" +ms.subservice: m-source --- # Value.Compare diff --git a/query-languages/m/value-divide.md b/query-languages/m/value-divide.md index 1cd49fcfe..39c5d0d66 100644 --- a/query-languages/m/value-divide.md +++ b/query-languages/m/value-divide.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Divide" title: "Value.Divide" +ms.subservice: m-source --- # Value.Divide diff --git a/query-languages/m/value-equals.md b/query-languages/m/value-equals.md index fe74d91c8..df7eaab33 100644 --- a/query-languages/m/value-equals.md +++ b/query-languages/m/value-equals.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Equals" title: "Value.Equals" +ms.subservice: m-source --- # Value.Equals diff --git a/query-languages/m/value-expression.md b/query-languages/m/value-expression.md index ed8c06fc5..4ffd63147 100644 --- a/query-languages/m/value-expression.md +++ b/query-languages/m/value-expression.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Expression" title: "Value.Expression" +ms.subservice: m-source --- # Value.Expression diff --git a/query-languages/m/value-firewall.md b/query-languages/m/value-firewall.md index f7ee9f95d..dccdb3fb6 100644 --- a/query-languages/m/value-firewall.md +++ b/query-languages/m/value-firewall.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Firewall" title: "Value.Firewall" +ms.subservice: m-source --- # Value.Firewall diff --git a/query-languages/m/value-fromtext.md b/query-languages/m/value-fromtext.md index 3b2912116..977a882c0 100644 --- a/query-languages/m/value-fromtext.md +++ b/query-languages/m/value-fromtext.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.FromText" title: "Value.FromText" +ms.subservice: m-source --- # Value.FromText diff --git a/query-languages/m/value-is.md b/query-languages/m/value-is.md index bc68933c9..c9e523dc9 100644 --- a/query-languages/m/value-is.md +++ b/query-languages/m/value-is.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Is" title: "Value.Is" +ms.subservice: m-source --- # Value.Is diff --git a/query-languages/m/value-lineage.md b/query-languages/m/value-lineage.md index 7c41db96f..61724a1ac 100644 --- a/query-languages/m/value-lineage.md +++ b/query-languages/m/value-lineage.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Lineage" title: "Value.Lineage" +ms.subservice: m-source --- # Value.Lineage diff --git a/query-languages/m/value-metadata.md b/query-languages/m/value-metadata.md index cb4d14031..6d40e19d1 100644 --- a/query-languages/m/value-metadata.md +++ b/query-languages/m/value-metadata.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Metadata" title: "Value.Metadata" +ms.subservice: m-source --- # Value.Metadata diff --git a/query-languages/m/value-multiply.md b/query-languages/m/value-multiply.md index 524ea169a..2977c265e 100644 --- a/query-languages/m/value-multiply.md +++ b/query-languages/m/value-multiply.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Multiply" title: "Value.Multiply" +ms.subservice: m-source --- # Value.Multiply diff --git a/query-languages/m/value-nativequery.md b/query-languages/m/value-nativequery.md index 930ea94d9..c6c32494c 100644 --- a/query-languages/m/value-nativequery.md +++ b/query-languages/m/value-nativequery.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.NativeQuery" title: "Value.NativeQuery" +ms.subservice: m-source --- # Value.NativeQuery diff --git a/query-languages/m/value-nullableequals.md b/query-languages/m/value-nullableequals.md index 56e34c94e..67f7bc92f 100644 --- a/query-languages/m/value-nullableequals.md +++ b/query-languages/m/value-nullableequals.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.NullableEquals" title: "Value.NullableEquals" +ms.subservice: m-source --- # Value.NullableEquals diff --git a/query-languages/m/value-optimize.md b/query-languages/m/value-optimize.md index 750d67a7e..72d0874e0 100644 --- a/query-languages/m/value-optimize.md +++ b/query-languages/m/value-optimize.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Optimize" title: "Value.Optimize" +ms.subservice: m-source --- # Value.Optimize diff --git a/query-languages/m/value-removemetadata.md b/query-languages/m/value-removemetadata.md index d0b6df7f4..ecffdb5af 100644 --- a/query-languages/m/value-removemetadata.md +++ b/query-languages/m/value-removemetadata.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.RemoveMetadata" title: "Value.RemoveMetadata" +ms.subservice: m-source --- # Value.RemoveMetadata diff --git a/query-languages/m/value-replacemetadata.md b/query-languages/m/value-replacemetadata.md index cf0eebd96..78069b786 100644 --- a/query-languages/m/value-replacemetadata.md +++ b/query-languages/m/value-replacemetadata.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.ReplaceMetadata" title: "Value.ReplaceMetadata" +ms.subservice: m-source --- # Value.ReplaceMetadata diff --git a/query-languages/m/value-replacetype.md b/query-languages/m/value-replacetype.md index 25d763722..3579605b3 100644 --- a/query-languages/m/value-replacetype.md +++ b/query-languages/m/value-replacetype.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.ReplaceType" title: "Value.ReplaceType" +ms.subservice: m-source --- # Value.ReplaceType diff --git a/query-languages/m/value-subtract.md b/query-languages/m/value-subtract.md index 69490592e..2591f8750 100644 --- a/query-languages/m/value-subtract.md +++ b/query-languages/m/value-subtract.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Subtract" title: "Value.Subtract" +ms.subservice: m-source --- # Value.Subtract diff --git a/query-languages/m/value-traits.md b/query-languages/m/value-traits.md index 5a4701097..daf58739e 100644 --- a/query-languages/m/value-traits.md +++ b/query-languages/m/value-traits.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Traits" title: "Value.Traits" +ms.subservice: m-source --- # Value.Traits diff --git a/query-languages/m/value-type.md b/query-languages/m/value-type.md index 47345780c..c7fafd419 100644 --- a/query-languages/m/value-type.md +++ b/query-languages/m/value-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Type" title: "Value.Type" +ms.subservice: m-source --- # Value.Type diff --git a/query-languages/m/value-versionidentity.md b/query-languages/m/value-versionidentity.md index 9ada8491f..f88601b26 100644 --- a/query-languages/m/value-versionidentity.md +++ b/query-languages/m/value-versionidentity.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.VersionIdentity" title: "Value.VersionIdentity" +ms.subservice: m-source --- # Value.VersionIdentity diff --git a/query-languages/m/value-versions.md b/query-languages/m/value-versions.md index 760ad9eb2..e1566fbb0 100644 --- a/query-languages/m/value-versions.md +++ b/query-languages/m/value-versions.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.Versions" title: "Value.Versions" +ms.subservice: m-source --- # Value.Versions diff --git a/query-languages/m/value-viewerror.md b/query-languages/m/value-viewerror.md index 440ba9818..c75912a47 100644 --- a/query-languages/m/value-viewerror.md +++ b/query-languages/m/value-viewerror.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.ViewError" title: "Value.ViewError" +ms.subservice: m-source --- # Value.ViewError diff --git a/query-languages/m/value-viewfunction.md b/query-languages/m/value-viewfunction.md index d4eb7bffb..7c851f108 100644 --- a/query-languages/m/value-viewfunction.md +++ b/query-languages/m/value-viewfunction.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Value.ViewFunction" title: "Value.ViewFunction" +ms.subservice: m-source --- # Value.ViewFunction diff --git a/query-languages/m/variable-value.md b/query-languages/m/variable-value.md index e99c9b770..d86dceed2 100644 --- a/query-languages/m/variable-value.md +++ b/query-languages/m/variable-value.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Variable.Value" title: "Variable.Value" +ms.subservice: m-source --- # Variable.Value diff --git a/query-languages/m/web-browsercontents.md b/query-languages/m/web-browsercontents.md index 43e106bf9..aa69499ee 100644 --- a/query-languages/m/web-browsercontents.md +++ b/query-languages/m/web-browsercontents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Web.BrowserContents" title: "Web.BrowserContents" +ms.subservice: m-source --- # Web.BrowserContents diff --git a/query-languages/m/web-contents.md b/query-languages/m/web-contents.md index 0521ba86b..47a215dd0 100644 --- a/query-languages/m/web-contents.md +++ b/query-languages/m/web-contents.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Web.Contents" title: "Web.Contents" +ms.subservice: m-source --- # Web.Contents diff --git a/query-languages/m/web-headers.md b/query-languages/m/web-headers.md index 24cf8cf68..4a62b25f3 100644 --- a/query-languages/m/web-headers.md +++ b/query-languages/m/web-headers.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Web.Headers" title: "Web.Headers" +ms.subservice: m-source --- # Web.Headers diff --git a/query-languages/m/web-page.md b/query-languages/m/web-page.md index 7fda906f9..d7abbf56d 100644 --- a/query-languages/m/web-page.md +++ b/query-languages/m/web-page.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Web.Page" title: "Web.Page" +ms.subservice: m-source --- # Web.Page diff --git a/query-languages/m/webaction-request.md b/query-languages/m/webaction-request.md index 967bec5fa..2df8e8abd 100644 --- a/query-languages/m/webaction-request.md +++ b/query-languages/m/webaction-request.md @@ -1,6 +1,7 @@ --- description: "Learn more about: WebAction.Request" title: "WebAction.Request" +ms.subservice: m-source --- # WebAction.Request diff --git a/query-languages/m/webmethod-type.md b/query-languages/m/webmethod-type.md index f2d5768fe..ba3b458fe 100644 --- a/query-languages/m/webmethod-type.md +++ b/query-languages/m/webmethod-type.md @@ -1,6 +1,7 @@ --- description: "Learn more about: WebMethod.Type" title: "WebMethod.Type" +ms.subservice: m-source --- # WebMethod.Type diff --git a/query-languages/m/xml-document.md b/query-languages/m/xml-document.md index 65dda7e65..0373d2efb 100644 --- a/query-languages/m/xml-document.md +++ b/query-languages/m/xml-document.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Xml.Document" title: "Xml.Document" +ms.subservice: m-source --- # Xml.Document diff --git a/query-languages/m/xml-tables.md b/query-languages/m/xml-tables.md index 660f8f803..9fe09f044 100644 --- a/query-languages/m/xml-tables.md +++ b/query-languages/m/xml-tables.md @@ -1,6 +1,7 @@ --- description: "Learn more about: Xml.Tables" title: "Xml.Tables" +ms.subservice: m-source --- # Xml.Tables From 55733dd531eeccb3d1f796fd6114a998abb59f6e Mon Sep 17 00:00:00 2001 From: Jasonwhowell <5067358+JasonWHowell@users.noreply.github.com> Date: Wed, 18 Dec 2024 20:11:23 -0800 Subject: [PATCH 681/934] Remove trailing white space --- query-languages/dax/abs-function-dax.md | 44 +- query-languages/dax/accrint-function-dax.md | 6 +- query-languages/dax/accrintm-function-dax.md | 4 +- query-languages/dax/acos-function-dax.md | 42 +- query-languages/dax/acosh-function-dax.md | 42 +- query-languages/dax/acot-function-dax.md | 24 +- query-languages/dax/acoth-function-dax.md | 24 +- .../dax/addcolumns-function-dax.md | 46 +- .../dax/addmissingitems-function-dax.md | 22 +- query-languages/dax/all-function-dax.md | 188 +++--- .../dax/allcrossfiltered-function-dax.md | 28 +- query-languages/dax/allexcept-function-dax.md | 68 +- .../dax/allnoblankrow-function-dax.md | 194 +++--- .../dax/allselected-function-dax.md | 194 +++--- query-languages/dax/amordegrc-function-dax.md | 6 +- query-languages/dax/amorlinc-function-dax.md | 6 +- query-languages/dax/and-function-dax.md | 148 ++--- .../approximate-distinctcount-function-dax.md | 18 +- query-languages/dax/asin-function-dax.md | 46 +- query-languages/dax/asinh-function-dax.md | 38 +- query-languages/dax/atan-function-dax.md | 44 +- query-languages/dax/atanh-function-dax.md | 42 +- query-languages/dax/average-function-dax.md | 56 +- query-languages/dax/averagea-function-dax.md | 80 +-- query-languages/dax/averagex-function-dax.md | 56 +- .../dax/best-practices/dax-error-functions.md | 2 +- .../best-practices/dax-understand-orderby.md | 20 +- query-languages/dax/beta-dist-function-dax.md | 48 +- query-languages/dax/beta-inv-function-dax.md | 52 +- query-languages/dax/bitand-function-dax.md | 16 +- query-languages/dax/bitlshift-function-dax.md | 16 +- query-languages/dax/bitor-function-dax.md | 18 +- query-languages/dax/bitrshift-function-dax.md | 20 +- query-languages/dax/bitxor-function-dax.md | 18 +- query-languages/dax/blank-function-dax.md | 54 +- query-languages/dax/calculate-function-dax.md | 10 +- .../dax/calculatetable-function-dax.md | 24 +- query-languages/dax/calendar-function-dax.md | 48 +- .../dax/calendarauto-function-dax.md | 50 +- query-languages/dax/ceiling-function-dax.md | 82 +-- .../dax/chisq-dist-function-dax.md | 36 +- .../dax/chisq-dist-rt-function-dax.md | 30 +- query-languages/dax/chisq-inv-function-dax.md | 60 +- .../dax/chisq-inv-rt-function-dax.md | 52 +- .../dax/closingbalancemonth-function-dax.md | 76 +-- .../dax/closingbalancequarter-function-dax.md | 74 +-- .../dax/closingbalanceyear-function-dax.md | 86 +-- query-languages/dax/coalesce-function-dax.md | 30 +- query-languages/dax/collapse-function-dax.md | 7 +- .../dax/collapseall-function-dax.md | 7 +- .../dax/columnstatistics-function-dax.md | 5 +- query-languages/dax/combin-function-dax.md | 52 +- query-languages/dax/combina-function-dax.md | 48 +- .../dax/combinevalues-function-dax.md | 44 +- .../dax/concatenate-function-dax.md | 94 +-- .../dax/concatenatex-function-dax.md | 54 +- .../dax/confidence-norm-function-dax.md | 44 +- .../dax/confidence-t-function-dax.md | 60 +- query-languages/dax/contains-function-dax.md | 48 +- .../dax/containsrow-function-dax.md | 22 +- .../dax/containsstring-function-dax.md | 26 +- .../dax/containsstringexact-function-dax.md | 24 +- query-languages/dax/convert-function-dax.md | 32 +- query-languages/dax/cos-function-dax.md | 44 +- query-languages/dax/cosh-function-dax.md | 40 +- query-languages/dax/cot-function-dax.md | 30 +- query-languages/dax/coth-function-dax.md | 28 +- query-languages/dax/count-function-dax.md | 56 +- query-languages/dax/counta-function-dax.md | 44 +- query-languages/dax/countax-function-dax.md | 50 +- .../dax/countblank-function-dax.md | 62 +- query-languages/dax/countrows-function-dax.md | 78 +-- query-languages/dax/countx-function-dax.md | 62 +- query-languages/dax/coupdaybs-function-dax.md | 6 +- query-languages/dax/coupdays-function-dax.md | 6 +- .../dax/coupdaysnc-function-dax.md | 6 +- query-languages/dax/coupncd-function-dax.md | 6 +- query-languages/dax/coupnum-function-dax.md | 6 +- query-languages/dax/couppcd-function-dax.md | 6 +- .../dax/crossfilter-function-dax.md | 96 +-- query-languages/dax/crossjoin-function-dax.md | 96 +-- query-languages/dax/cumipmt-function-dax.md | 6 +- query-languages/dax/cumprinc-function-dax.md | 4 +- query-languages/dax/currency-function-dax.md | 50 +- .../dax/currentgroup-function-dax.md | 14 +- .../dax/customdata-function-dax.md | 22 +- query-languages/dax/datatable-function-dax.md | 56 +- .../dax/date-and-time-functions-dax.md | 4 +- query-languages/dax/date-function-dax.md | 93 ++- query-languages/dax/dateadd-function-dax.md | 80 +-- query-languages/dax/datediff-function-dax.md | 38 +- .../dax/datesbetween-function-dax.md | 6 +- .../dax/datesinperiod-function-dax.md | 6 +- query-languages/dax/datesmtd-function-dax.md | 66 +- query-languages/dax/datesqtd-function-dax.md | 66 +- query-languages/dax/datesytd-function-dax.md | 74 +-- query-languages/dax/datevalue-function-dax.md | 58 +- query-languages/dax/dax-copilot.md | 10 +- query-languages/dax/dax-function-reference.md | 50 +- query-languages/dax/dax-learn-videos.md | 2 +- query-languages/dax/dax-operator-reference.md | 170 ++--- query-languages/dax/dax-overview.md | 592 +++++++++--------- .../dax/dax-parameter-naming-conventions.md | 46 +- query-languages/dax/dax-queries.md | 47 +- query-languages/dax/dax-sample-model.md | 1 - query-languages/dax/dax-syntax-reference.md | 286 ++++----- query-languages/dax/day-function-dax.md | 78 +-- query-languages/dax/db-function-dax.md | 4 +- query-languages/dax/ddb-function-dax.md | 4 +- query-languages/dax/define-statement-dax.md | 22 +- query-languages/dax/degrees-function-dax.md | 34 +- .../dax/detailrows-function-dax.md | 20 +- query-languages/dax/disc-function-dax.md | 4 +- query-languages/dax/distinct-function-dax.md | 78 +-- .../dax/distinct-table-function-dax.md | 40 +- .../dax/distinctcount-function-dax.md | 62 +- .../dax/distinctcountnoblank-function-dax.md | 28 +- query-languages/dax/divide-function-dax.md | 64 +- query-languages/dax/dollarde-function-dax.md | 4 +- query-languages/dax/dollarfr-function-dax.md | 4 +- query-languages/dax/duration-function-dax.md | 4 +- query-languages/dax/earlier-function-dax.md | 188 +++--- query-languages/dax/earliest-function-dax.md | 42 +- query-languages/dax/edate-function-dax.md | 64 +- query-languages/dax/effect-function-dax.md | 4 +- .../dax/endofmonth-function-dax.md | 60 +- .../dax/endofquarter-function-dax.md | 60 +- query-languages/dax/endofyear-function-dax.md | 64 +- query-languages/dax/eomonth-function-dax.md | 64 +- query-languages/dax/error-function-dax.md | 30 +- query-languages/dax/evaluate-statement-dax.md | 32 +- .../dax/evaluateandlog-function-dax.md | 28 +- query-languages/dax/even-function-dax.md | 50 +- query-languages/dax/exact-function-dax.md | 36 +- query-languages/dax/except-function-dax.md | 128 ++-- query-languages/dax/exp-function-dax.md | 54 +- query-languages/dax/expand-function-dax.md | 7 +- query-languages/dax/expandall-function-dax.md | 7 +- .../dax/expon-dist-function-dax.md | 40 +- query-languages/dax/fact-function-dax.md | 66 +- query-languages/dax/false-function-dax.md | 50 +- query-languages/dax/filter-function-dax.md | 104 +-- query-languages/dax/filter-functions-dax.md | 4 +- query-languages/dax/filters-function-dax.md | 26 +- .../dax/financial-functions-dax.md | 2 +- query-languages/dax/find-function-dax.md | 46 +- query-languages/dax/first-function-dax.md | 25 +- query-languages/dax/firstdate-function-dax.md | 68 +- .../dax/firstnonblank-function-dax.md | 56 +- .../dax/firstnonblankvalue-function-dax.md | 32 +- query-languages/dax/fixed-function-dax.md | 70 +-- query-languages/dax/floor-function-dax.md | 64 +- query-languages/dax/format-function-dax.md | 67 +- query-languages/dax/fv-function-dax.md | 4 +- query-languages/dax/gcd-function-dax.md | 58 +- query-languages/dax/generate-function-dax.md | 128 ++-- .../dax/generateall-function-dax.md | 138 ++-- .../dax/generateseries-function-dax.md | 24 +- query-languages/dax/geomean-function-dax.md | 50 +- query-languages/dax/geomeanx-function-dax.md | 52 +- query-languages/dax/groupby-function-dax.md | 96 +-- .../dax/hasonefilter-function-dax.md | 38 +- .../dax/hasonevalue-function-dax.md | 36 +- query-languages/dax/hour-function-dax.md | 58 +- query-languages/dax/if-eager-function-dax.md | 8 +- query-languages/dax/if-function-dax.md | 8 +- query-languages/dax/iferror-function-dax.md | 58 +- query-languages/dax/ignore-function-dax.md | 24 +- query-languages/dax/index-function-dax.md | 36 +- query-languages/dax/index.yml | 4 +- .../dax/information-functions-dax.md | 6 +- query-languages/dax/int-function-dax.md | 50 +- query-languages/dax/intersect-function-dax.md | 142 ++--- query-languages/dax/intrate-function-dax.md | 4 +- query-languages/dax/ipmt-function-dax.md | 4 +- query-languages/dax/isafter-function-dax.md | 64 +- query-languages/dax/isatlevel-function-dax.md | 15 +- query-languages/dax/isblank-function-dax.md | 58 +- .../dax/iscrossfiltered-function-dax.md | 34 +- query-languages/dax/isempty-function-dax.md | 50 +- query-languages/dax/iserror-function-dax.md | 54 +- query-languages/dax/iseven-function-dax.md | 30 +- .../dax/isfiltered-function-dax.md | 32 +- query-languages/dax/isinscope-function-dax.md | 24 +- query-languages/dax/islogical-function-dax.md | 50 +- query-languages/dax/isnontext-function-dax.md | 56 +- query-languages/dax/isnumber-function-dax.md | 50 +- .../dax/iso-ceiling-function-dax.md | 92 +-- query-languages/dax/isodd-function-dax.md | 30 +- .../dax/isonorafter-function-dax.md | 64 +- query-languages/dax/ispmt-function-dax.md | 4 +- .../dax/isselectedmeasure-function-dax.md | 30 +- .../dax/issubtotal-function-dax.md | 16 +- query-languages/dax/istext-function-dax.md | 56 +- .../dax/keepfilters-function-dax.md | 176 +++--- query-languages/dax/last-function-dax.md | 25 +- query-languages/dax/lastdate-function-dax.md | 66 +- .../dax/lastnonblank-function-dax.md | 54 +- .../dax/lastnonblankvalue-function-dax.md | 30 +- query-languages/dax/lcm-function-dax.md | 50 +- query-languages/dax/left-function-dax.md | 46 +- query-languages/dax/len-function-dax.md | 46 +- query-languages/dax/linest-function-dax.md | 4 +- query-languages/dax/linestx-function-dax.md | 4 +- query-languages/dax/ln-function-dax.md | 44 +- query-languages/dax/log-function-dax.md | 58 +- query-languages/dax/log10-function-dax.md | 54 +- query-languages/dax/logical-functions-dax.md | 4 +- .../dax/lookupvalue-function-dax.md | 4 +- query-languages/dax/lower-function-dax.md | 42 +- query-languages/dax/matchby-function-dax.md | 24 +- .../dax/math-and-trig-functions-dax.md | 4 +- query-languages/dax/max-function-dax.md | 46 +- query-languages/dax/maxa-function-dax.md | 60 +- query-languages/dax/maxx-function-dax.md | 56 +- query-languages/dax/mduration-function-dax.md | 4 +- query-languages/dax/measure-statement-dax.md | 8 +- query-languages/dax/median-function-dax.md | 48 +- query-languages/dax/medianx-function-dax.md | 52 +- query-languages/dax/mid-function-dax.md | 42 +- query-languages/dax/min-function-dax.md | 54 +- query-languages/dax/mina-function-dax.md | 54 +- query-languages/dax/minute-function-dax.md | 60 +- query-languages/dax/minx-function-dax.md | 50 +- query-languages/dax/mod-function-dax.md | 66 +- query-languages/dax/month-function-dax.md | 70 +-- .../dax/movingaverage-function-dax.md | 10 +- query-languages/dax/mround-function-dax.md | 76 +-- .../dax/naturalinnerjoin-function-dax.md | 46 +- .../dax/naturalleftouterjoin-function-dax.md | 44 +- .../dax/networkdays-function-dax.md | 4 +- query-languages/dax/new-dax-functions.md | 2 +- query-languages/dax/next-function-dax.md | 25 +- query-languages/dax/nextday-function-dax.md | 64 +- query-languages/dax/nextmonth-function-dax.md | 66 +- .../dax/nextquarter-function-dax.md | 66 +- query-languages/dax/nextyear-function-dax.md | 68 +- query-languages/dax/nominal-function-dax.md | 4 +- query-languages/dax/nonvisual-function-dax.md | 16 +- query-languages/dax/norm-dist-function-dax.md | 34 +- query-languages/dax/norm-inv-function-dax.md | 32 +- .../dax/norm-s-dist-function-dax.md | 30 +- .../dax/norm-s-inv-function-dax.md | 32 +- query-languages/dax/not-function-dax.md | 52 +- query-languages/dax/now-function-dax.md | 40 +- query-languages/dax/nper-function-dax.md | 4 +- query-languages/dax/odd-function-dax.md | 52 +- query-languages/dax/oddfprice-function-dax.md | 4 +- query-languages/dax/oddfyield-function-dax.md | 4 +- query-languages/dax/oddlprice-function-dax.md | 4 +- query-languages/dax/oddlyield-function-dax.md | 4 +- query-languages/dax/offset-function-dax.md | 46 +- .../dax/openingbalancemonth-function-dax.md | 66 +- .../dax/openingbalancequarter-function-dax.md | 64 +- .../dax/openingbalanceyear-function-dax.md | 72 +-- query-languages/dax/or-function-dax.md | 94 +-- query-languages/dax/orderby-function-dax.md | 34 +- query-languages/dax/orderby-statement-dax.md | 34 +- query-languages/dax/other-functions-dax.md | 4 +- .../dax/parallelperiod-function-dax.md | 82 +-- .../dax/parent-and-child-functions-dax.md | 4 +- .../dax/partitionby-function-dax.md | 34 +- query-languages/dax/path-function-dax.md | 56 +- .../dax/pathcontains-function-dax.md | 34 +- query-languages/dax/pathitem-function-dax.md | 52 +- .../dax/pathitemreverse-function-dax.md | 54 +- .../dax/pathlength-function-dax.md | 30 +- query-languages/dax/pduration-function-dax.md | 4 +- .../dax/percentile-exc-function-dax.md | 56 +- .../dax/percentile-inc-function-dax.md | 56 +- .../dax/percentilex-exc-function-dax.md | 54 +- .../dax/percentilex-inc-function-dax.md | 54 +- query-languages/dax/permut-function-dax.md | 42 +- query-languages/dax/pi-function-dax.md | 30 +- query-languages/dax/pmt-function-dax.md | 4 +- .../dax/poisson-dist-function-dax.md | 46 +- query-languages/dax/power-function-dax.md | 40 +- query-languages/dax/ppmt-function-dax.md | 4 +- query-languages/dax/previous-function-dax.md | 25 +- .../dax/previousday-function-dax.md | 68 +- .../dax/previousmonth-function-dax.md | 64 +- .../dax/previousquarter-function-dax.md | 64 +- .../dax/previousyear-function-dax.md | 68 +- query-languages/dax/price-function-dax.md | 4 +- query-languages/dax/pricedisc-function-dax.md | 4 +- query-languages/dax/pricemat-function-dax.md | 4 +- query-languages/dax/product-function-dax.md | 44 +- query-languages/dax/productx-function-dax.md | 48 +- query-languages/dax/pv-function-dax.md | 4 +- query-languages/dax/quarter-function-dax.md | 36 +- query-languages/dax/quotient-function-dax.md | 48 +- query-languages/dax/radians-function-dax.md | 34 +- query-languages/dax/rand-function-dax.md | 40 +- .../dax/randbetween-function-dax.md | 44 +- query-languages/dax/range-function-dax.md | 8 +- query-languages/dax/rank-eq-function-dax.md | 60 +- query-languages/dax/rank-function-dax.md | 30 +- query-languages/dax/rankx-function-dax.md | 82 +-- query-languages/dax/rate-function-dax.md | 4 +- query-languages/dax/received-function-dax.md | 4 +- query-languages/dax/related-function-dax.md | 128 ++-- .../dax/relatedtable-function-dax.md | 60 +- .../dax/removefilters-function-dax.md | 24 +- query-languages/dax/replace-function-dax.md | 52 +- query-languages/dax/rept-function-dax.md | 76 +-- query-languages/dax/right-function-dax.md | 68 +- query-languages/dax/rollup-function-dax.md | 18 +- .../dax/rollupaddissubtotal-function-dax.md | 22 +- .../dax/rollupgroup-function-dax.md | 20 +- .../dax/rollupissubtotal-function-dax.md | 22 +- query-languages/dax/round-function-dax.md | 82 +-- query-languages/dax/rounddown-function-dax.md | 72 +-- query-languages/dax/roundup-function-dax.md | 102 +-- query-languages/dax/row-function-dax.md | 36 +- query-languages/dax/rownumber-function-dax.md | 34 +- query-languages/dax/rri-function-dax.md | 4 +- .../dax/runningsum-function-dax.md | 10 +- .../dax/sameperiodlastyear-function-dax.md | 62 +- query-languages/dax/sample-function-dax.md | 28 +- .../sampleaxiswithlocalminmax-function-dax.md | 4 +- query-languages/dax/search-function-dax.md | 58 +- query-languages/dax/second-function-dax.md | 68 +- .../dax/selectcolumns-function-dax.md | 30 +- .../dax/selectedmeasure-function-dax.md | 28 +- ...electedmeasureformatstring-function-dax.md | 28 +- .../dax/selectedmeasurename-function-dax.md | 28 +- .../dax/selectedvalue-function-dax.md | 36 +- query-languages/dax/sign-function-dax.md | 50 +- query-languages/dax/sin-function-dax.md | 48 +- query-languages/dax/sinh-function-dax.md | 34 +- query-languages/dax/sln-function-dax.md | 6 +- query-languages/dax/sqrt-function-dax.md | 42 +- query-languages/dax/sqrtpi-function-dax.md | 38 +- query-languages/dax/startat-statement-dax.md | 20 +- .../dax/startofmonth-function-dax.md | 58 +- .../dax/startofquarter-function-dax.md | 60 +- .../dax/startofyear-function-dax.md | 62 +- query-languages/dax/statements-dax.md | 2 +- .../dax/statistical-functions-dax.md | 2 +- query-languages/dax/stdev-p-function-dax.md | 60 +- query-languages/dax/stdev-s-function-dax.md | 64 +- query-languages/dax/stdevx-p-function-dax.md | 60 +- query-languages/dax/stdevx-s-function-dax.md | 62 +- .../dax/substitute-function-dax.md | 56 +- .../dax/substitutewithindex-function-dax.md | 46 +- query-languages/dax/sum-function-dax.md | 44 +- query-languages/dax/summarize-function-dax.md | 288 ++++----- .../dax/summarizecolumns-function-dax.md | 210 +++---- query-languages/dax/sumx-function-dax.md | 54 +- query-languages/dax/switch-function-dax.md | 25 +- query-languages/dax/syd-function-dax.md | 4 +- query-languages/dax/t-dist-2t-function-dax.md | 36 +- query-languages/dax/t-dist-function-dax.md | 36 +- query-languages/dax/t-dist-rt-function-dax.md | 32 +- query-languages/dax/t-inv-2t-function-dax.md | 32 +- query-languages/dax/t-inv-function-dax.md | 32 +- query-languages/dax/table-constructor.md | 24 +- query-languages/dax/tan-function-dax.md | 46 +- query-languages/dax/tanh-function-dax.md | 44 +- query-languages/dax/tbilleq-function-dax.md | 4 +- .../dax/tbillprice-function-dax.md | 4 +- .../dax/tbillyield-function-dax.md | 4 +- query-languages/dax/text-functions-dax.md | 4 +- query-languages/dax/time-function-dax.md | 68 +- .../dax/time-intelligence-functions-dax.md | 2 +- query-languages/dax/timevalue-function-dax.md | 46 +- query-languages/dax/toc.yml | 4 +- query-languages/dax/tocsv-function-dax.md | 30 +- query-languages/dax/today-function-dax.md | 40 +- query-languages/dax/tojson-function-dax.md | 26 +- query-languages/dax/topn-function-dax.md | 44 +- query-languages/dax/totalmtd-function-dax.md | 62 +- query-languages/dax/totalqtd-function-dax.md | 66 +- query-languages/dax/totalytd-function-dax.md | 80 +-- query-languages/dax/treatas-function-dax.md | 30 +- query-languages/dax/trim-function-dax.md | 56 +- query-languages/dax/true-function-dax.md | 48 +- query-languages/dax/trunc-function-dax.md | 62 +- ...ons-for-parent-child-hierarchies-in-dax.md | 176 +++--- query-languages/dax/unichar-function-dax.md | 32 +- query-languages/dax/unicode-function-dax.md | 22 +- query-languages/dax/union-function-dax.md | 102 +-- query-languages/dax/upper-function-dax.md | 40 +- .../dax/userculture-function-dax.md | 28 +- .../dax/userelationship-function-dax.md | 66 +- query-languages/dax/username-function-dax.md | 26 +- .../dax/userobjectid-function-dax.md | 14 +- .../dax/userprincipalname-function-dax.md | 14 +- query-languages/dax/utcnow-function-dax.md | 22 +- query-languages/dax/utctoday-function-dax.md | 22 +- query-languages/dax/value-function-dax.md | 48 +- query-languages/dax/values-function-dax.md | 80 +-- query-languages/dax/var-dax.md | 74 +-- query-languages/dax/var-p-function-dax.md | 66 +- query-languages/dax/var-s-function-dax.md | 64 +- query-languages/dax/varx-p-function-dax.md | 66 +- query-languages/dax/varx-s-function-dax.md | 64 +- query-languages/dax/vdb-function-dax.md | 4 +- query-languages/dax/weekday-function-dax.md | 54 +- query-languages/dax/weeknum-function-dax.md | 30 +- query-languages/dax/window-function-dax.md | 43 +- query-languages/dax/xirr-function-dax.md | 66 +- query-languages/dax/xnpv-function-dax.md | 66 +- query-languages/dax/year-function-dax.md | 80 +-- query-languages/dax/yearfrac-function-dax.md | 74 +-- query-languages/dax/yield-function-dax.md | 4 +- query-languages/dax/yielddisc-function-dax.md | 4 +- query-languages/dax/yieldmat-function-dax.md | 4 +- 408 files changed, 9281 insertions(+), 9303 deletions(-) diff --git a/query-languages/dax/abs-function-dax.md b/query-languages/dax/abs-function-dax.md index ebf2d7f15..b03009702 100644 --- a/query-languages/dax/abs-function-dax.md +++ b/query-languages/dax/abs-function-dax.md @@ -7,37 +7,37 @@ title: "ABS function (DAX) " [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the absolute value of a number. - -## Syntax - +Returns the absolute value of a number. + +## Syntax + ```dax -ABS() +ABS() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number for which you want the absolute value.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number for which you want the absolute value.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -The absolute value of a number is a decimal number, whole or decimal, without its sign. You can use the ABS function to ensure that only non-negative numbers are returned from expressions when nested in functions that require a positive number. - +The absolute value of a number is a decimal number, whole or decimal, without its sign. You can use the ABS function to ensure that only non-negative numbers are returned from expressions when nested in functions that require a positive number. + ## Example -The following example returns the absolute value of the difference between the list price and the dealer price, which you might use in a new calculated column, **DealerMarkup**. - +The following example returns the absolute value of the difference between the list price and the dealer price, which you might use in a new calculated column, **DealerMarkup**. + ```dax -= ABS([DealerPrice]-[ListPrice]) += ABS([DealerPrice]-[ListPrice]) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[SIGN function](sign-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[SIGN function](sign-function-dax.md) diff --git a/query-languages/dax/accrint-function-dax.md b/query-languages/dax/accrint-function-dax.md index 404826aaa..732f651d9 100644 --- a/query-languages/dax/accrint-function-dax.md +++ b/query-languages/dax/accrint-function-dax.md @@ -18,9 +18,9 @@ ACCRINT(, , , , , [, , , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`issue`|The security's issue date.| |`maturity`|The security's maturity date.| |`rate`|The security's annual coupon rate.| diff --git a/query-languages/dax/acos-function-dax.md b/query-languages/dax/acos-function-dax.md index 91d189c50..769e2c1f9 100644 --- a/query-languages/dax/acos-function-dax.md +++ b/query-languages/dax/acos-function-dax.md @@ -6,31 +6,31 @@ title: "ACOS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the arccosine, or inverse cosine, of a number. The arccosine is the angle whose cosine is`number`. The returned angle is given in radians in the range 0 (zero) to pi. - -## Syntax - +Returns the arccosine, or inverse cosine, of a number. The arccosine is the angle whose cosine is`number`. The returned angle is given in radians in the range 0 (zero) to pi. + +## Syntax + ```dax -ACOS(number) +ACOS(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Number`|The cosine of the angle you want and must be from -1 to 1.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Number`|The cosine of the angle you want and must be from -1 to 1.| + ## Return value -Returns the arccosine, or inverse cosine, of a number. - +Returns the arccosine, or inverse cosine, of a number. + ## Remarks -If you want to convert the result from radians to degrees, multiply it by 180/PI() or use the DEGREES function. - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= ACOS(-0.5)`|Arccosine of -0.5 in radians, 2*pi/3.|2.094395102| +If you want to convert the result from radians to degrees, multiply it by 180/PI() or use the DEGREES function. + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= ACOS(-0.5)`|Arccosine of -0.5 in radians, 2*pi/3.|2.094395102| |`= ACOS(-0.5)*180/PI()`|Arccosine of -0.5 in degrees.|120| diff --git a/query-languages/dax/acosh-function-dax.md b/query-languages/dax/acosh-function-dax.md index d50306eb7..484ff971f 100644 --- a/query-languages/dax/acosh-function-dax.md +++ b/query-languages/dax/acosh-function-dax.md @@ -6,32 +6,32 @@ title: "ACOSH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the inverse hyperbolic cosine of a number. The number must be greater than or equal to 1. The inverse hyperbolic cosine is the value whose hyperbolic cosine is `number`, so ACOSH(COSH(number)) equals number. - -## Syntax - +Returns the inverse hyperbolic cosine of a number. The number must be greater than or equal to 1. The inverse hyperbolic cosine is the value whose hyperbolic cosine is `number`, so ACOSH(COSH(number)) equals number. + +## Syntax + ```dax -ACOSH(number) +ACOSH(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Any real number equal to or greater than 1.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Any real number equal to or greater than 1.| + ## Return value -Returns the inverse hyperbolic cosine of a number. +Returns the inverse hyperbolic cosine of a number. ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= ACOSH(1)`|Inverse hyperbolic cosine of 1.|0| -|`= ACOSH(10)`|Inverse hyperbolic cosine of 10.|2.993228| - + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= ACOSH(1)`|Inverse hyperbolic cosine of 1.|0| +|`= ACOSH(10)`|Inverse hyperbolic cosine of 10.|2.993228| + diff --git a/query-languages/dax/acot-function-dax.md b/query-languages/dax/acot-function-dax.md index 09df17c47..e2d5bf7fa 100644 --- a/query-languages/dax/acot-function-dax.md +++ b/query-languages/dax/acot-function-dax.md @@ -7,19 +7,19 @@ title: "ACOT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the principal value of the arccotangent, or inverse cotangent of a number. - -## Syntax - + +## Syntax + ```dax -ACOT(number) +ACOT(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Number`|The cosine of the angle you want. Must be a real number.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Number`|The cosine of the angle you want. Must be a real number.| + ## Return value -A single decimal value. +A single decimal value. diff --git a/query-languages/dax/acoth-function-dax.md b/query-languages/dax/acoth-function-dax.md index 66bec6453..48b750842 100644 --- a/query-languages/dax/acoth-function-dax.md +++ b/query-languages/dax/acoth-function-dax.md @@ -7,22 +7,22 @@ title: "ACOTH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the inverse hyperbolic cotangent of a number. - -## Syntax - + +## Syntax + ```dax -ACOTH(number) +ACOTH(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Number`|The absolute value of Number must be greater than 1.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Number`|The absolute value of Number must be greater than 1.| + ## Return value -A single decimal value. +A single decimal value. ## Remarks diff --git a/query-languages/dax/addcolumns-function-dax.md b/query-languages/dax/addcolumns-function-dax.md index c4c524e7a..9444d5693 100644 --- a/query-languages/dax/addcolumns-function-dax.md +++ b/query-languages/dax/addcolumns-function-dax.md @@ -6,45 +6,45 @@ title: "ADDCOLUMNS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Adds calculated columns to the given table or table expression. - -## Syntax - +Adds calculated columns to the given table or table expression. + +## Syntax + ```dax -ADDCOLUMNS(
, , [, , ]…) +ADDCOLUMNS(
, , [, , ]…) ``` - -### Parameters -|Term|Definition| -|--------|--------------| +### Parameters + +|Term|Definition| +|--------|--------------| |`table`|Any DAX expression that returns a table of data.| |`name`|The name given to the column, enclosed in double quotes. | |`expression`|Any DAX expression that returns a scalar expression, evaluated for each row of `table`. | - + ## Return value -A table with all its original columns and the added ones. +A table with all its original columns and the added ones. ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example returns an extended version of the Product Category table that includes total sales values from the reseller channel and the internet sales. - +The following example returns an extended version of the Product Category table that includes total sales values from the reseller channel and the internet sales. + ```dax ADDCOLUMNS(ProductCategory - , "Internet Sales", SUMX(RELATEDTABLE(InternetSales_USD), InternetSales_USD[SalesAmount_USD]) - , "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])) + , "Internet Sales", SUMX(RELATEDTABLE(InternetSales_USD), InternetSales_USD[SalesAmount_USD]) + , "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])) ``` -The following table shows a preview of the data as it would be received by any function expecting to receive a table: +The following table shows a preview of the data as it would be received by any function expecting to receive a table: -|ProductCategory[ProductCategoryName]|ProductCategory[ProductCategoryAlternateKey]|ProductCategory[ProductCategoryKey]|[Internet Sales]|[Reseller Sales]| -|-----|-----|-----|-----|-----| -|Bikes|1|1|25107749.77|63084675.04| -|Components|2|2||11205837.96| -|Clothing|3|3|306157.5829|1669943.267| -|Accessories|4|4|640920.1338|534301.9888| +|ProductCategory[ProductCategoryName]|ProductCategory[ProductCategoryAlternateKey]|ProductCategory[ProductCategoryKey]|[Internet Sales]|[Reseller Sales]| +|-----|-----|-----|-----|-----| +|Bikes|1|1|25107749.77|63084675.04| +|Components|2|2||11205837.96| +|Clothing|3|3|306157.5829|1669943.267| +|Accessories|4|4|640920.1338|534301.9888| diff --git a/query-languages/dax/addmissingitems-function-dax.md b/query-languages/dax/addmissingitems-function-dax.md index 25ab05b35..74382ede3 100644 --- a/query-languages/dax/addmissingitems-function-dax.md +++ b/query-languages/dax/addmissingitems-function-dax.md @@ -7,21 +7,21 @@ title: "ADDMISSINGITEMS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Adds rows with empty values to a table returned by [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md). - -## Syntax - + +## Syntax + ```dax ADDMISSINGITEMS ( [ [, [, … ] ] ],
[, [, [] [, [, [] [, … ] ] ] ] ] ] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`showAll_columnName`| (Optional) A column for which to return items with no data for the measures used. If not specified, all columns are returned.| -|`table`|A SUMMARIZECOLUMNS table.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`showAll_columnName`| (Optional) A column for which to return items with no data for the measures used. If not specified, all columns are returned.| +|`table`|A SUMMARIZECOLUMNS table.| |`groupBy_columnName`|(Optional) A column to group by in the supplied table argument.| -|`filterTable`|(Optional) A table expression that defines which rows are returned.| +|`filterTable`|(Optional) A table expression that defines which rows are returned.| ## Return value diff --git a/query-languages/dax/all-function-dax.md b/query-languages/dax/all-function-dax.md index bf423e5c1..170ebe28f 100644 --- a/query-languages/dax/all-function-dax.md +++ b/query-languages/dax/all-function-dax.md @@ -6,134 +6,134 @@ title: "ALL function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns all the rows in a table, or all the values in a column, ignoring any filters that might have been applied. This function is useful for clearing filters and creating calculations on all the rows in a table. - -## Syntax - +Returns all the rows in a table, or all the values in a column, ignoring any filters that might have been applied. This function is useful for clearing filters and creating calculations on all the rows in a table. + +## Syntax + ```dax -ALL( [
| [, [, [,…]]]] ) +ALL( [
| [, [, [,…]]]] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table that you want to clear filters on.| -|`column`|The column that you want to clear filters on.| - -The argument to the ALL function must be either a reference to a base table or a reference to a base column. You cannot use table expressions or column expressions with the ALL function. - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table that you want to clear filters on.| +|`column`|The column that you want to clear filters on.| + +The argument to the ALL function must be either a reference to a base table or a reference to a base column. You cannot use table expressions or column expressions with the ALL function. + ## Return value -The table or column with filters removed. - +The table or column with filters removed. + ## Remarks -- This function is not used by itself, but serves as an intermediate function that can be used to change the set of results over which some other calculation is performed. +- This function is not used by itself, but serves as an intermediate function that can be used to change the set of results over which some other calculation is performed. - The normal behavior for DAX expressions containing the ALL() function is that any filters applied will be ignored. However, there are some scenarios where this is not the case because of `auto-exist`, a DAX technology that optimizes filtering in order to reduce the amount of processing required for certain DAX queries. An example where auto-exist and ALL() provide unexpected results is when filtering on two or more columns of the same table (like when using slicers), and there is a measure on that same table that uses ALL(). In this case, auto-exist will *merge* the multiple filters into one and will only filter on existing combinations of values. Because of this merge, the measure will be calculated on the existing combinations of values and the result will be based on filtered values instead of all values as expected. To learn more about auto-exist and its effect on calculations, see Microsoft MVP Alberto Ferrari's [Understanding DAX Auto-Exist](https://www.sqlbi.com/articles/understanding-dax-auto-exist/) article on :::no-loc text="sql.bi.com":::. - -- The following table describes how you can use the ALL and ALLEXCEPT functions in different scenarios. - - |Function and usage|Description| - |----------------------|---------------| + +- The following table describes how you can use the ALL and ALLEXCEPT functions in different scenarios. + + |Function and usage|Description| + |----------------------|---------------| |ALL()|Removes all filters everywhere. ALL() can only be used to clear filters but not to return a table.| - |ALL(Table)|Removes all filters from the specified table. In effect, ALL(Table) returns all of the values in the table, removing any filters from the context that otherwise might have been applied. This function is useful when you are working with many levels of grouping, and want to create a calculation that creates a ratio of an aggregated value to the total value. The first example demonstrates this scenario.| - |ALL (Column[, Column[, …]])|Removes all filters from the specified columns in the table; all other filters on other columns in the table still apply. All column arguments must come from the same table. The ALL(Column) variant is useful when you want to remove the context filters for one or more specific columns and to keep all other context filters. The second and third examples demonstrate this scenario.| - |ALLEXCEPT(Table, Column1 [,Column2]...)|Removes all context filters in the table except filters that are applied to the specified columns. This is a convenient shortcut for situations in which you want to remove the filters on many, but not all, columns in a table.| + |ALL(Table)|Removes all filters from the specified table. In effect, ALL(Table) returns all of the values in the table, removing any filters from the context that otherwise might have been applied. This function is useful when you are working with many levels of grouping, and want to create a calculation that creates a ratio of an aggregated value to the total value. The first example demonstrates this scenario.| + |ALL (Column[, Column[, …]])|Removes all filters from the specified columns in the table; all other filters on other columns in the table still apply. All column arguments must come from the same table. The ALL(Column) variant is useful when you want to remove the context filters for one or more specific columns and to keep all other context filters. The second and third examples demonstrate this scenario.| + |ALLEXCEPT(Table, Column1 [,Column2]...)|Removes all context filters in the table except filters that are applied to the specified columns. This is a convenient shortcut for situations in which you want to remove the filters on many, but not all, columns in a table.| - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example 1 -Calculate ratio of Category Sales to Total Sales - -Assume that you want to find the amount of sales for the current cell, in your PivotTable, divided by the total sales for all resellers. To ensure that the denominator is the same regardless of how the PivotTable user might be filtering or grouping the data, you define a formula that uses ALL to create the correct grand total. - -The following table shows the results when a new measure, **All Reseller Sales Ratio**, is created using the formula shown in the code section. To see how this works, add the field, CalendarYear, to the **Row Labels** area of the PivotTable, and add the field, ProductCategoryName, to the **Column Labels** area. Then, drag the measure, **All Reseller Sales Ratio**, to the **Values** area of the Pivot Table. To view the results as percentages, use the formatting features of Excel to apply a percentage number formatting to the cells that contains the measure. - -|Row Labels|Accessories|Bikes|Clothing|Components|Grand Total| -|----------------------|-----------------|----|----|----|----| -|2005|0.02%|9.10%|0.04%|0.75%|9.91%| -|2006|0.11%|24.71%|0.60%|4.48%|29.90%| -|2007|0.36%|31.71%|1.07%|6.79%|39.93%| -|2008|0.20%|16.95%|0.48%|2.63%|20.26%| -|Grand Total|0.70%|82.47%|2.18%|14.65%|100.00%| - +Calculate ratio of Category Sales to Total Sales + +Assume that you want to find the amount of sales for the current cell, in your PivotTable, divided by the total sales for all resellers. To ensure that the denominator is the same regardless of how the PivotTable user might be filtering or grouping the data, you define a formula that uses ALL to create the correct grand total. + +The following table shows the results when a new measure, **All Reseller Sales Ratio**, is created using the formula shown in the code section. To see how this works, add the field, CalendarYear, to the **Row Labels** area of the PivotTable, and add the field, ProductCategoryName, to the **Column Labels** area. Then, drag the measure, **All Reseller Sales Ratio**, to the **Values** area of the Pivot Table. To view the results as percentages, use the formatting features of Excel to apply a percentage number formatting to the cells that contains the measure. + +|Row Labels|Accessories|Bikes|Clothing|Components|Grand Total| +|----------------------|-----------------|----|----|----|----| +|2005|0.02%|9.10%|0.04%|0.75%|9.91%| +|2006|0.11%|24.71%|0.60%|4.48%|29.90%| +|2007|0.36%|31.71%|1.07%|6.79%|39.93%| +|2008|0.20%|16.95%|0.48%|2.63%|20.26%| +|Grand Total|0.70%|82.47%|2.18%|14.65%|100.00%| + **Formula** - + ```dax -= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]) += SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/SUMX(ALL(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]) ``` -The formula is constructed as follows: - -1. The numerator, `SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])`, is the sum of the values in ResellerSales_USD[SalesAmount_USD] for the current cell in the PivotTable, with context filters applied on CalendarYear and ProductCategoryName. - -1. For the denominator, you start by specifying a table, ResellerSales_USD, and use the ALL function to remove all context filters on the table. - -1. You then use the SUMX function to sum the values in the ResellerSales_USD[SalesAmount_USD] column. In other words, you get the sum of ResellerSales_USD[SalesAmount_USD] for all resellers sales. - +The formula is constructed as follows: + +1. The numerator, `SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])`, is the sum of the values in ResellerSales_USD[SalesAmount_USD] for the current cell in the PivotTable, with context filters applied on CalendarYear and ProductCategoryName. + +1. For the denominator, you start by specifying a table, ResellerSales_USD, and use the ALL function to remove all context filters on the table. + +1. You then use the SUMX function to sum the values in the ResellerSales_USD[SalesAmount_USD] column. In other words, you get the sum of ResellerSales_USD[SalesAmount_USD] for all resellers sales. + ## Example 2 Calculate Ratio of Product Sales to Total Sales Through Current Year -Assume that you want to create a table showing the percentage of sales compared over the years for each product category (ProductCategoryName). To obtain the percentage for each year over each value of ProductCategoryName, you need to divide the sum of sales for that particular year and product category by the sum of sales for the same product category over all years. In other words, you want to keep the filter on ProductCategoryName but remove the filter on the year when calculating the denominator of the percentage. - -The following table shows the results when a new measure, **Reseller Sales Year**, is created using the formula shown in the code section. To see how this works, add the field, CalendarYear, to the **Row Labels** area of a PivotTable, and add the field, ProductCategoryName, to the **Column Labels** area. To view the results as percentages, use Excel's formatting features to apply a percentage number format to the cells containing the measure, **Reseller Sales Year**. - -|Row labels|Accessories|Bikes|Clothing|Components|Grand Total| -|-----------------------|-----------------|----|----|----|----| -|2005|3.48%|11.03%|1.91%|5.12%|9.91%| -|2006|16.21%|29.96%|27.29%|30.59%|29.90%| -|2007|51.62%|38.45%|48.86%|46.36%|39.93%| -|2008|28.69%|20.56%|21.95%|17.92%|20.26%| -|Grand Total|100.00%|100.00%|100.00%|100.00%|100.00%| +Assume that you want to create a table showing the percentage of sales compared over the years for each product category (ProductCategoryName). To obtain the percentage for each year over each value of ProductCategoryName, you need to divide the sum of sales for that particular year and product category by the sum of sales for the same product category over all years. In other words, you want to keep the filter on ProductCategoryName but remove the filter on the year when calculating the denominator of the percentage. + +The following table shows the results when a new measure, **Reseller Sales Year**, is created using the formula shown in the code section. To see how this works, add the field, CalendarYear, to the **Row Labels** area of a PivotTable, and add the field, ProductCategoryName, to the **Column Labels** area. To view the results as percentages, use Excel's formatting features to apply a percentage number format to the cells containing the measure, **Reseller Sales Year**. + +|Row labels|Accessories|Bikes|Clothing|Components|Grand Total| +|-----------------------|-----------------|----|----|----|----| +|2005|3.48%|11.03%|1.91%|5.12%|9.91%| +|2006|16.21%|29.96%|27.29%|30.59%|29.90%| +|2007|51.62%|38.45%|48.86%|46.36%|39.93%| +|2008|28.69%|20.56%|21.95%|17.92%|20.26%| +|Grand Total|100.00%|100.00%|100.00%|100.00%|100.00%| **Formula** ```dax -= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear])) += SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(DateTime[CalendarYear])) ``` -The formula is constructed as follows: - -1. The numerator, `SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])`, is the sum of the values in ResellerSales_USD[SalesAmount_USD] for the current cell in the pivot table, with context filters applied on the columns CalendarYear and ProductCategoryName. - -1. For the denominator, you remove the existing filter on CalendarYear by using the ALL(Column) function. This calculates the sum over the remaining rows on the ResellerSales_USD table, after applying the existing context filters from the column labels. The net effect is that for the denominator the sum is calculated over the selected ProductCategoryName (the implied context filter) and for all values in Year. - +The formula is constructed as follows: + +1. The numerator, `SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])`, is the sum of the values in ResellerSales_USD[SalesAmount_USD] for the current cell in the pivot table, with context filters applied on the columns CalendarYear and ProductCategoryName. + +1. For the denominator, you remove the existing filter on CalendarYear by using the ALL(Column) function. This calculates the sum over the remaining rows on the ResellerSales_USD table, after applying the existing context filters from the column labels. The net effect is that for the denominator the sum is calculated over the selected ProductCategoryName (the implied context filter) and for all values in Year. + ## Example 3 Calculate Contribution of Product Categories to Total Sales Per Year - -Assume that you want to create a table that shows the percentage of sales for each product category, on a year-by-year basis. To obtain the percentage for each product category in a particular year, you need to calculate the sum of sales for that particular product category (ProductCategoryName) in year n, and then divide the resulting value by the sum of sales for the year n over all product categories. In other words, you want to keep the filter on year but remove the filter on ProductCategoryName when calculating the denominator of the percentage. - -The following table shows the results when a new measure, **Reseller Sales CategoryName**, is created using the formula shown in the code section. To see how this works, add the field, CalendarYear to the **Row Labels** area of the PivotTable, and add the field, ProductCategoryName, to the **Column Labels** area. Then add the new measure to the **Values** area of the PivotTable. To view the results as percentages, use Excel's formatting features to apply a percentage number format to the cells that contain the new measure, **Reseller Sales CategoryName**. - -|Row Labels|Accessories|Bikes|Clothing|Components|Grand Total| -|-------------------------------|-----------------|----|----|----|----| -|2005|0.25%|91.76%|0.42%|7.57%|100.00%| -|2006|0.38%|82.64%|1.99%|14.99%|100.00%| -|2007|0.90%|79.42%|2.67%|17.01%|100.00%| -|2008|0.99%|83.69%|2.37%|12.96%|100.00%| -|Grand Total|0.70%|82.47%|2.18%|14.65%|100.00%| - + +Assume that you want to create a table that shows the percentage of sales for each product category, on a year-by-year basis. To obtain the percentage for each product category in a particular year, you need to calculate the sum of sales for that particular product category (ProductCategoryName) in year n, and then divide the resulting value by the sum of sales for the year n over all product categories. In other words, you want to keep the filter on year but remove the filter on ProductCategoryName when calculating the denominator of the percentage. + +The following table shows the results when a new measure, **Reseller Sales CategoryName**, is created using the formula shown in the code section. To see how this works, add the field, CalendarYear to the **Row Labels** area of the PivotTable, and add the field, ProductCategoryName, to the **Column Labels** area. Then add the new measure to the **Values** area of the PivotTable. To view the results as percentages, use Excel's formatting features to apply a percentage number format to the cells that contain the new measure, **Reseller Sales CategoryName**. + +|Row Labels|Accessories|Bikes|Clothing|Components|Grand Total| +|-------------------------------|-----------------|----|----|----|----| +|2005|0.25%|91.76%|0.42%|7.57%|100.00%| +|2006|0.38%|82.64%|1.99%|14.99%|100.00%| +|2007|0.90%|79.42%|2.67%|17.01%|100.00%| +|2008|0.99%|83.69%|2.37%|12.96%|100.00%| +|Grand Total|0.70%|82.47%|2.18%|14.65%|100.00%| + **Formula** - + ```dax -= SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName])) += SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])/CALCULATE( SUM( ResellerSales_USD[SalesAmount_USD]), ALL(ProductCategory[ProductCategoryName])) ``` -The formula is constructed as follows: - -1. The numerator, `SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])`, is the sum of the values in ResellerSales_USD[SalesAmount_USD] for the current cell in the PivotTable, with context filters applied on the fields, CalendarYear and ProductCategoryName. - -1. For the denominator, you use the function, ALL(Column), to remove the filter on ProductCategoryName and calculate the sum over the remaining rows on the ResellerSales_USD table, after applying the existing context filters from the row labels. The net effect is that, for the denominator, the sum is calculated over the selected Year (the implied context filter) and for all values of ProductCategoryName. - +The formula is constructed as follows: + +1. The numerator, `SUMX(ResellerSales_USD, ResellerSales_USD[SalesAmount_USD])`, is the sum of the values in ResellerSales_USD[SalesAmount_USD] for the current cell in the PivotTable, with context filters applied on the fields, CalendarYear and ProductCategoryName. + +1. For the denominator, you use the function, ALL(Column), to remove the filter on ProductCategoryName and calculate the sum over the remaining rows on the ResellerSales_USD table, after applying the existing context filters from the row labels. The net effect is that, for the denominator, the sum is calculated over the selected Year (the implied context filter) and for all values of ProductCategoryName. + ## Related content -[Filter functions](filter-functions-dax.md) -[ALL function](all-function-dax.md) -[ALLEXCEPT function](allexcept-function-dax.md) -[FILTER function](filter-function-dax.md) - +[Filter functions](filter-functions-dax.md) +[ALL function](all-function-dax.md) +[ALLEXCEPT function](allexcept-function-dax.md) +[FILTER function](filter-function-dax.md) + diff --git a/query-languages/dax/allcrossfiltered-function-dax.md b/query-languages/dax/allcrossfiltered-function-dax.md index 08b65807c..aaa828a17 100644 --- a/query-languages/dax/allcrossfiltered-function-dax.md +++ b/query-languages/dax/allcrossfiltered-function-dax.md @@ -7,30 +7,30 @@ title: "ALLCROSSFILTERED function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Clear all filters which are applied to a table. - -## Syntax - + +## Syntax + ```dax ALLCROSSFILTERED(
) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table that you want to clear filters on. | - -## Return value + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table that you want to clear filters on. | + +## Return value N/A. See remarks. - -## Remarks + +## Remarks - ALLCROSSFILTERED can only be used to clear filters but not to return a table. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Example ```dax DEFINE diff --git a/query-languages/dax/allexcept-function-dax.md b/query-languages/dax/allexcept-function-dax.md index b3fa2cd45..f3b878268 100644 --- a/query-languages/dax/allexcept-function-dax.md +++ b/query-languages/dax/allexcept-function-dax.md @@ -6,53 +6,53 @@ title: "ALLEXCEPT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] -Removes all context filters in the table except filters that have been applied to the specified columns. - -## Syntax - +Removes all context filters in the table except filters that have been applied to the specified columns. + +## Syntax + ```dax -ALLEXCEPT(
,[,[,…]]) +ALLEXCEPT(
,[,[,…]]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table over which all context filters are removed, except filters on those columns that are specified in subsequent arguments.| -|`column`|The column for which context filters must be preserved.| - -The first argument to the ALLEXCEPT function must be a reference to a base table. All subsequent arguments must be references to base columns. You cannot use table expressions or column expressions with the ALLEXCEPT function. - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table over which all context filters are removed, except filters on those columns that are specified in subsequent arguments.| +|`column`|The column for which context filters must be preserved.| + +The first argument to the ALLEXCEPT function must be a reference to a base table. All subsequent arguments must be references to base columns. You cannot use table expressions or column expressions with the ALLEXCEPT function. + ## Return value -A table with all filters removed except for the filters on the specified columns. - +A table with all filters removed except for the filters on the specified columns. + ## Remarks -- This function is not used by itself, but serves as an intermediate function that can be used to change the set of results over which some other calculation is performed. - -- ALL and ALLEXCEPT can be used in different scenarios: - - |Function and usage|Description| - |----------------------|---------------| - |ALL(Table)|Removes all filters from the specified table. In effect, ALL(Table) returns all of the values in the table, removing any filters from the context that otherwise might have been applied. This function is useful when you are working with many levels of grouping, and want to create a calculation that creates a ratio of an aggregated value to the total value.| - |ALL (Column[, Column[, …]])|Removes all filters from the specified columns in the table; all other filters on other columns in the table still apply. All column arguments must come from the same table. The ALL(Column) variant is useful when you want to remove the context filters for one or more specific columns and to keep all other context filters.| - |ALLEXCEPT(Table, Column1 [,Column2]...)|Removes all context filters in the table except filters that are applied to the specified columns. This is a convenient shortcut for situations in which you want to remove the filters on many, but not all, columns in a table.| +- This function is not used by itself, but serves as an intermediate function that can be used to change the set of results over which some other calculation is performed. + +- ALL and ALLEXCEPT can be used in different scenarios: + + |Function and usage|Description| + |----------------------|---------------| + |ALL(Table)|Removes all filters from the specified table. In effect, ALL(Table) returns all of the values in the table, removing any filters from the context that otherwise might have been applied. This function is useful when you are working with many levels of grouping, and want to create a calculation that creates a ratio of an aggregated value to the total value.| + |ALL (Column[, Column[, …]])|Removes all filters from the specified columns in the table; all other filters on other columns in the table still apply. All column arguments must come from the same table. The ALL(Column) variant is useful when you want to remove the context filters for one or more specific columns and to keep all other context filters.| + |ALLEXCEPT(Table, Column1 [,Column2]...)|Removes all context filters in the table except filters that are applied to the specified columns. This is a convenient shortcut for situations in which you want to remove the filters on many, but not all, columns in a table.| - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example - -The following measure formula sums SalesAmount_USD and uses the ALLEXCEPT function to remove any context filters on the DateTime table except if the filter has been applied to the CalendarYear column. - + +The following measure formula sums SalesAmount_USD and uses the ALLEXCEPT function to remove any context filters on the DateTime table except if the filter has been applied to the CalendarYear column. + ```dax -= CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLEXCEPT(DateTime, DateTime[CalendarYear])) += CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), ALLEXCEPT(DateTime, DateTime[CalendarYear])) ``` Because the formula uses ALLEXCEPT, whenever any column but CalendarYear from the table DateTime is used to slice a visualization, the formula will remove any slicer filters, providing a value equal to the sum of SalesAmount_USD. However, if the column CalendarYear is used to slice the visualization, the results are different. Because CalendarYear is specified as the argument to ALLEXCEPT, when the data is sliced on the year, a filter will be applied on years at the row level - + ## Related content -[Filter functions](filter-functions-dax.md) -[ALL function](all-function-dax.md) -[FILTER function](filter-function-dax.md) +[Filter functions](filter-functions-dax.md) +[ALL function](all-function-dax.md) +[FILTER function](filter-function-dax.md) diff --git a/query-languages/dax/allnoblankrow-function-dax.md b/query-languages/dax/allnoblankrow-function-dax.md index 6164121d7..b3160520e 100644 --- a/query-languages/dax/allnoblankrow-function-dax.md +++ b/query-languages/dax/allnoblankrow-function-dax.md @@ -6,121 +6,121 @@ title: "ALLNOBLANKROW function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -From the parent table of a relationship, returns all rows but the blank row, or all distinct values of a column but the blank row, and disregards any context filters that might exist. - -## Syntax - +From the parent table of a relationship, returns all rows but the blank row, or all distinct values of a column but the blank row, and disregards any context filters that might exist. + +## Syntax + ```dax ALLNOBLANKROW( {
| [, [, [,…]]]} ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table over which all context filters are removed.| -|`column`|A column over which all context filters are removed.| - -Only one parameter must be passed; the parameter is either a table or a column. - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table over which all context filters are removed.| +|`column`|A column over which all context filters are removed.| + +Only one parameter must be passed; the parameter is either a table or a column. + ## Return value -A table, when the passed parameter was a table, or a column of values, when the passed parameter was a column. - +A table, when the passed parameter was a table, or a column of values, when the passed parameter was a column. + ## Remarks -- The ALLNOBLANKROW function only filters the blank row that a parent table, in a relationship, will show when there are one or more rows in the child table that have non-matching values to the parent column. See the example below for a thorough explanation. - -- The following table summarizes the variations of `ALL` that are provided in DAX, and their differences: - - |Function and usage|Description| - |----------------------|---------------| - |`ALL(Column)`|Removes all filters from the specified column in the table; all other filters in the table, over other columns, still apply.| - |`ALL(Table)`|Removes all filters from the specified table.| - |`ALLEXCEPT(Table,Col1,Col2...)`|Overrides all context filters in the table except over the specified columns.| - |`ALLNOBLANK(table|column)`| From the parent table of a relationship, returns all rows but the blank row, or all distinct values of a column but the blank row, and disregards any context filters that might exist| +- The ALLNOBLANKROW function only filters the blank row that a parent table, in a relationship, will show when there are one or more rows in the child table that have non-matching values to the parent column. See the example below for a thorough explanation. + +- The following table summarizes the variations of `ALL` that are provided in DAX, and their differences: - For a general description of how the ALL function works, together with step-by-step examples that use ALL(Table) and ALL(Column), see [ALL function](all-function-dax.md). + |Function and usage|Description| + |----------------------|---------------| + |`ALL(Column)`|Removes all filters from the specified column in the table; all other filters in the table, over other columns, still apply.| + |`ALL(Table)`|Removes all filters from the specified table.| + |`ALLEXCEPT(Table,Col1,Col2...)`|Overrides all context filters in the table except over the specified columns.| + |`ALLNOBLANK(table|column)`| From the parent table of a relationship, returns all rows but the blank row, or all distinct values of a column but the blank row, and disregards any context filters that might exist| + + For a general description of how the ALL function works, together with step-by-step examples that use ALL(Table) and ALL(Column), see [ALL function](all-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -In the sample data, the ResellerSales_USD table contains one row that has no values and therefore cannot be related to any of the parent tables in the relationships within the workbook. You will use this table in a PivotTable so that you can see the blank row behavior and how to handle counts on unrelated data. - +In the sample data, the ResellerSales_USD table contains one row that has no values and therefore cannot be related to any of the parent tables in the relationships within the workbook. You will use this table in a PivotTable so that you can see the blank row behavior and how to handle counts on unrelated data. + Step 1: Verify the unrelated data - -Open the **Power Pivot window**, then select the ResellerSales_USD table. In the ProductKey column, filter for blank values. One row will remain. In that row, all column values should be blank except for SalesOrderLineNumber. - -Step 2: Create a PivotTable - -Create a new PivotTable, then drag the column, datetime.[Calendar Year], to the Row Labels pane. The following table shows the expected results: - -|Row Labels| -|--------------| -|2005| -|2006| -|2007| -|2008| -|| -|Grand Total| - -Note the blank label between **2008** and **Grand Total**. This blank label represents the Unknown member, which is a special group that is created to account for any values in the child table that have no matching value in the parent table, in this example the datetime.[Calendar Year] column. - -When you see this blank label in the PivotTable, you know that in some of the tables that are related to the column, datetime.[Calendar Year], there are either blank values or non-matching values. The parent table is the one that shows the blank label, but the rows that do not match are in one or more of the child tables. - -The rows that get added to this blank label group are either values that do not match any value in the parent table-- for example, a date that does not exist in the datetime table-- or null values, meaning no value for date at all. In this example we have placed a blank value in all columns of the child sales table. Having more values in the parent table than in the children tables does not cause a problem. - + +Open the **Power Pivot window**, then select the ResellerSales_USD table. In the ProductKey column, filter for blank values. One row will remain. In that row, all column values should be blank except for SalesOrderLineNumber. + +Step 2: Create a PivotTable + +Create a new PivotTable, then drag the column, datetime.[Calendar Year], to the Row Labels pane. The following table shows the expected results: + +|Row Labels| +|--------------| +|2005| +|2006| +|2007| +|2008| +|| +|Grand Total| + +Note the blank label between **2008** and **Grand Total**. This blank label represents the Unknown member, which is a special group that is created to account for any values in the child table that have no matching value in the parent table, in this example the datetime.[Calendar Year] column. + +When you see this blank label in the PivotTable, you know that in some of the tables that are related to the column, datetime.[Calendar Year], there are either blank values or non-matching values. The parent table is the one that shows the blank label, but the rows that do not match are in one or more of the child tables. + +The rows that get added to this blank label group are either values that do not match any value in the parent table-- for example, a date that does not exist in the datetime table-- or null values, meaning no value for date at all. In this example we have placed a blank value in all columns of the child sales table. Having more values in the parent table than in the children tables does not cause a problem. + Step 3: Count rows using ALL and ALLNOBLANK - -Add the following two measures to the datetime table, to count the table rows: **Countrows ALLNOBLANK of datetime**, **Countrows ALL of datetime**. The formulas that you can use to define these measures are: + +Add the following two measures to the datetime table, to count the table rows: **Countrows ALLNOBLANK of datetime**, **Countrows ALL of datetime**. The formulas that you can use to define these measures are: ```dax -// Countrows ALLNOBLANK of datetime -= COUNTROWS(ALLNOBLANKROW('DateTime')) - -// Countrows ALL of datetime -= COUNTROWS(ALL('DateTime')) - -// Countrows ALLNOBLANKROW of ResellerSales_USD -= COUNTROWS(ALLNOBLANKROW('ResellerSales_USD')) - -// Countrows ALL of ResellerSales_USD -= COUNTROWS(ALL('ResellerSales_USD')) +// Countrows ALLNOBLANK of datetime += COUNTROWS(ALLNOBLANKROW('DateTime')) + +// Countrows ALL of datetime += COUNTROWS(ALL('DateTime')) + +// Countrows ALLNOBLANKROW of ResellerSales_USD += COUNTROWS(ALLNOBLANKROW('ResellerSales_USD')) + +// Countrows ALL of ResellerSales_USD += COUNTROWS(ALL('ResellerSales_USD')) ``` - -On a blank PivotTable add datetime.[Calendar Year] column to the row labels, and then add the newly created measures. The results should look like the following table: - -|Row Labels|Countrows ALLNOBLANK of datetime|Countrows ALL of datetime| -|--------------|------------------------------------|-----------------------------| -|2005|1280|1281| -|2006|1280|1281| -|2007|1280|1281| -|2008|1280|1281| -||1280|1281| -|Grand Total|1280|1281| - -The results show a difference of 1 row in the table rows count. However, if you open the **Power Pivot window** and select the datetime table, you cannot find any blank row in the table because the special blank row mentioned here is the Unknown member. - + +On a blank PivotTable add datetime.[Calendar Year] column to the row labels, and then add the newly created measures. The results should look like the following table: + +|Row Labels|Countrows ALLNOBLANK of datetime|Countrows ALL of datetime| +|--------------|------------------------------------|-----------------------------| +|2005|1280|1281| +|2006|1280|1281| +|2007|1280|1281| +|2008|1280|1281| +||1280|1281| +|Grand Total|1280|1281| + +The results show a difference of 1 row in the table rows count. However, if you open the **Power Pivot window** and select the datetime table, you cannot find any blank row in the table because the special blank row mentioned here is the Unknown member. + Step 4: Verify that the count is accurate - -In order to prove that the ALLNOBLANKROW does not count any truly blank rows, and only handles the special blank row on the parent table only, add the following two measures to the ResellerSales_USD table: **Countrows ALLNOBLANKROW of ResellerSales_USD**, **Countrows ALL of ResellerSales_USD**. - -Create a new PivotTable, and drag the column, datetime.[Calendar Year], to the Row Labels pane. Now add the measures that you just created. The results should look like the following: - -|Row Labels|Countrows ALLNOBLANKROW of ResellerSales_USD|Countrows ALL of ResellerSales_USD| -|--------------|-------------------------------------------------|---------------------------------------| -|2005|60856|60856| -|2006|60856|60856| -|2007|60856|60856| -|2008|60856|60856| -||60856|60856| -|Grand Total|60856|60856| - -Now the two measures have the same results. That is because the ALLNOBLANKROW function does not count truly blank rows in a table, but only handles the blank row that is a special case generated in a parent table, when one or more of the child tables in the relationship contain non-matching values or blank values. - + +In order to prove that the ALLNOBLANKROW does not count any truly blank rows, and only handles the special blank row on the parent table only, add the following two measures to the ResellerSales_USD table: **Countrows ALLNOBLANKROW of ResellerSales_USD**, **Countrows ALL of ResellerSales_USD**. + +Create a new PivotTable, and drag the column, datetime.[Calendar Year], to the Row Labels pane. Now add the measures that you just created. The results should look like the following: + +|Row Labels|Countrows ALLNOBLANKROW of ResellerSales_USD|Countrows ALL of ResellerSales_USD| +|--------------|-------------------------------------------------|---------------------------------------| +|2005|60856|60856| +|2006|60856|60856| +|2007|60856|60856| +|2008|60856|60856| +||60856|60856| +|Grand Total|60856|60856| + +Now the two measures have the same results. That is because the ALLNOBLANKROW function does not count truly blank rows in a table, but only handles the blank row that is a special case generated in a parent table, when one or more of the child tables in the relationship contain non-matching values or blank values. + ## Related content -[Filter functions](filter-functions-dax.md) -[ALL function](all-function-dax.md) -[FILTER function](filter-function-dax.md) +[Filter functions](filter-functions-dax.md) +[ALL function](all-function-dax.md) +[FILTER function](filter-function-dax.md) diff --git a/query-languages/dax/allselected-function-dax.md b/query-languages/dax/allselected-function-dax.md index 7c8642e21..7d931c225 100644 --- a/query-languages/dax/allselected-function-dax.md +++ b/query-languages/dax/allselected-function-dax.md @@ -6,118 +6,118 @@ title: "ALLSELECTED function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Removes context filters from columns and rows in the current query, while retaining all other context filters or explicit filters. - -The ALLSELECTED function gets the context that represents all rows and columns in the query, while keeping explicit filters and contexts other than row and column filters. This function can be used to obtain visual totals in queries. - -## Syntax - +Removes context filters from columns and rows in the current query, while retaining all other context filters or explicit filters. + +The ALLSELECTED function gets the context that represents all rows and columns in the query, while keeping explicit filters and contexts other than row and column filters. This function can be used to obtain visual totals in queries. + +## Syntax + ```dax ALLSELECTED([ | [, [, [,…]]]] ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| +### Parameters + +|Term|Definition| +|--------|--------------| |`tableName`|The name of an existing table, using standard DAX syntax. This parameter cannot be an expression. This parameter is optional. | |`columnName`|The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. This parameter is optional. | - + ## Return value -The context of the query without any column and row filters. - -## Remarks - -- If there is one argument, the argument is either `tableName` or `columnName`. If there is more than one argument, they must be columns from the same table. - -- This function is different from ALL() because it retains all filters explicitly set within the query, and it retains all context filters other than row and column filters. +The context of the query without any column and row filters. + +## Remarks + +- If there is one argument, the argument is either `tableName` or `columnName`. If there is more than one argument, they must be columns from the same table. + +- This function is different from ALL() because it retains all filters explicitly set within the query, and it retains all context filters other than row and column filters. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example shows how to generate different levels of visual totals in a table report using DAX expressions. In the report two (2) previous filters have been applied to the Reseller Sales data; one on Sales Territory Group = *Europe* and the other on Promotion Type = *Volume Discount*. Once filters have been applied, visual totals can be calculated for the entire report, for All Years, or for All Product Categories. Also, for illustration purposes the grand total for All Reseller Sales is obtained too, removing all filters in the report. Evaluating the following DAX expression results in a table with all the information needed to build a table with Visual Totals. - +The following example shows how to generate different levels of visual totals in a table report using DAX expressions. In the report two (2) previous filters have been applied to the Reseller Sales data; one on Sales Territory Group = *Europe* and the other on Promotion Type = *Volume Discount*. Once filters have been applied, visual totals can be calculated for the entire report, for All Years, or for All Product Categories. Also, for illustration purposes the grand total for All Reseller Sales is obtained too, removing all filters in the report. Evaluating the following DAX expression results in a table with all the information needed to build a table with Visual Totals. + ```dax -define -measure 'Reseller Sales'[Reseller Sales Amount]=sum('Reseller Sales'[Sales Amount]) -measure 'Reseller Sales'[Reseller Grand Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALL('Reseller Sales')) -measure 'Reseller Sales'[Reseller Visual Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED()) -measure 'Reseller Sales'[Reseller Visual Total for All of Calendar Year]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Date'[Calendar Year])) -measure 'Reseller Sales'[Reseller Visual Total for All of Product Category Name]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Product Category'[Product Category Name])) -evaluate -CalculateTable( - //CT table expression +define +measure 'Reseller Sales'[Reseller Sales Amount]=sum('Reseller Sales'[Sales Amount]) +measure 'Reseller Sales'[Reseller Grand Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALL('Reseller Sales')) +measure 'Reseller Sales'[Reseller Visual Total]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED()) +measure 'Reseller Sales'[Reseller Visual Total for All of Calendar Year]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Date'[Calendar Year])) +measure 'Reseller Sales'[Reseller Visual Total for All of Product Category Name]=calculate(sum('Reseller Sales'[Sales Amount]), ALLSELECTED('Product Category'[Product Category Name])) +evaluate +CalculateTable( + //CT table expression summarize( -//summarize table expression -crossjoin(distinct('Product Category'[Product Category Name]), distinct('Date'[Calendar Year])) -//First Group by expression -, 'Product Category'[Product Category Name] -//Second Group by expression -, 'Date'[Calendar Year] -//Summary expressions -, "Reseller Sales Amount", [Reseller Sales Amount] -, "Reseller Grand Total", [Reseller Grand Total] -, "Reseller Visual Total", [Reseller Visual Total] -, "Reseller Visual Total for All of Calendar Year", [Reseller Visual Total for All of Calendar Year] -, "Reseller Visual Total for All of Product Category Name", [Reseller Visual Total for All of Product Category Name] -) -//CT filters -, 'Sales Territory'[Sales Territory Group]="Europe", 'Promotion'[Promotion Type]="Volume Discount" -) -order by [Product Category Name], [Calendar Year] +//summarize table expression +crossjoin(distinct('Product Category'[Product Category Name]), distinct('Date'[Calendar Year])) +//First Group by expression +, 'Product Category'[Product Category Name] +//Second Group by expression +, 'Date'[Calendar Year] +//Summary expressions +, "Reseller Sales Amount", [Reseller Sales Amount] +, "Reseller Grand Total", [Reseller Grand Total] +, "Reseller Visual Total", [Reseller Visual Total] +, "Reseller Visual Total for All of Calendar Year", [Reseller Visual Total for All of Calendar Year] +, "Reseller Visual Total for All of Product Category Name", [Reseller Visual Total for All of Product Category Name] +) +//CT filters +, 'Sales Territory'[Sales Territory Group]="Europe", 'Promotion'[Promotion Type]="Volume Discount" +) +order by [Product Category Name], [Calendar Year] ``` -After executing the above expression in SQL Server Management Studio against AdventureWorks DW Tabular Model, you obtain the following results: - -|[Product Category Name]|[Calendar Year]|[Reseller Sales Amount]|[Reseller Grand Total]|[Reseller Visual Total]|[Reseller Visual Total for All of Calendar Year]|[Reseller Visual Total for All of Product Category Name]| -|----------------------------|--------------------|----------------------------|---------------------------|----------------------------|-----------------------------------------------------|-------------------------------------------------------------| -|Accessories|2000||80450596.9823|877006.7987|38786.018|| -|Accessories|2001||80450596.9823|877006.7987|38786.018|| -|Accessories|2002|625.7933|80450596.9823|877006.7987|38786.018|91495.3104| -|Accessories|2003|26037.3132|80450596.9823|877006.7987|38786.018|572927.0136| -|Accessories|2004|12122.9115|80450596.9823|877006.7987|38786.018|212584.4747| -|Accessories|2005||80450596.9823|877006.7987|38786.018|| -|Accessories|2006||80450596.9823|877006.7987|38786.018|| -|Bikes|2000||80450596.9823|877006.7987|689287.7939|| -|Bikes|2001||80450596.9823|877006.7987|689287.7939|| -|Bikes|2002|73778.938|80450596.9823|877006.7987|689287.7939|91495.3104| -|Bikes|2003|439771.4136|80450596.9823|877006.7987|689287.7939|572927.0136| -|Bikes|2004|175737.4423|80450596.9823|877006.7987|689287.7939|212584.4747| -|Bikes|2005||80450596.9823|877006.7987|689287.7939|| -|Bikes|2006||80450596.9823|877006.7987|689287.7939|| -|Clothing|2000||80450596.9823|877006.7987|95090.7757|| -|Clothing|2001||80450596.9823|877006.7987|95090.7757|| -|Clothing|2002|12132.4334|80450596.9823|877006.7987|95090.7757|91495.3104| -|Clothing|2003|58234.2214|80450596.9823|877006.7987|95090.7757|572927.0136| -|Clothing|2004|24724.1209|80450596.9823|877006.7987|95090.7757|212584.4747| -|Clothing|2005||80450596.9823|877006.7987|95090.7757|| -|Clothing|2006||80450596.9823|877006.7987|95090.7757|| -|Components|2000||80450596.9823|877006.7987|53842.2111|| -|Components|2001||80450596.9823|877006.7987|53842.2111|| -|Components|2002|4958.1457|80450596.9823|877006.7987|53842.2111|91495.3104| -|Components|2003|48884.0654|80450596.9823|877006.7987|53842.2111|572927.0136| -|Components|2004||80450596.9823|877006.7987|53842.2111|212584.4747| -|Components|2005||80450596.9823|877006.7987|53842.2111|| -|Components|2006||80450596.9823|877006.7987|53842.2111|| - -The columns in the report are: - -Reseller Sales Amount -The actual value of Reseller Sales for the year and product category. This value appears in a cell in the center of your report, at the intersection of year and catergory. - -Reseller Visual Total for All of Calendar Year -The total value for a product category across all years. This value appears at the end of a column or row for a given product category and across all years in the report. - -Reseller Visual Total for All of Product Category Name -The total value for a year across all product categories. This value appears at the end of a column or row for a given year and across all product categories in the report. - -Reseller Visual Total -The total value for all years and product categories. This value usually appears in the bottom rightmost corner of the table. - -Reseller Grand Total -This is the grand total for all reseller sales, before any filter has been applied; you should notice the difference with [Reseller Visual Total]. You do remember that this report includes two (2) filters, one on Product Category Group and the other in Promotion Type. - +After executing the above expression in SQL Server Management Studio against AdventureWorks DW Tabular Model, you obtain the following results: + +|[Product Category Name]|[Calendar Year]|[Reseller Sales Amount]|[Reseller Grand Total]|[Reseller Visual Total]|[Reseller Visual Total for All of Calendar Year]|[Reseller Visual Total for All of Product Category Name]| +|----------------------------|--------------------|----------------------------|---------------------------|----------------------------|-----------------------------------------------------|-------------------------------------------------------------| +|Accessories|2000||80450596.9823|877006.7987|38786.018|| +|Accessories|2001||80450596.9823|877006.7987|38786.018|| +|Accessories|2002|625.7933|80450596.9823|877006.7987|38786.018|91495.3104| +|Accessories|2003|26037.3132|80450596.9823|877006.7987|38786.018|572927.0136| +|Accessories|2004|12122.9115|80450596.9823|877006.7987|38786.018|212584.4747| +|Accessories|2005||80450596.9823|877006.7987|38786.018|| +|Accessories|2006||80450596.9823|877006.7987|38786.018|| +|Bikes|2000||80450596.9823|877006.7987|689287.7939|| +|Bikes|2001||80450596.9823|877006.7987|689287.7939|| +|Bikes|2002|73778.938|80450596.9823|877006.7987|689287.7939|91495.3104| +|Bikes|2003|439771.4136|80450596.9823|877006.7987|689287.7939|572927.0136| +|Bikes|2004|175737.4423|80450596.9823|877006.7987|689287.7939|212584.4747| +|Bikes|2005||80450596.9823|877006.7987|689287.7939|| +|Bikes|2006||80450596.9823|877006.7987|689287.7939|| +|Clothing|2000||80450596.9823|877006.7987|95090.7757|| +|Clothing|2001||80450596.9823|877006.7987|95090.7757|| +|Clothing|2002|12132.4334|80450596.9823|877006.7987|95090.7757|91495.3104| +|Clothing|2003|58234.2214|80450596.9823|877006.7987|95090.7757|572927.0136| +|Clothing|2004|24724.1209|80450596.9823|877006.7987|95090.7757|212584.4747| +|Clothing|2005||80450596.9823|877006.7987|95090.7757|| +|Clothing|2006||80450596.9823|877006.7987|95090.7757|| +|Components|2000||80450596.9823|877006.7987|53842.2111|| +|Components|2001||80450596.9823|877006.7987|53842.2111|| +|Components|2002|4958.1457|80450596.9823|877006.7987|53842.2111|91495.3104| +|Components|2003|48884.0654|80450596.9823|877006.7987|53842.2111|572927.0136| +|Components|2004||80450596.9823|877006.7987|53842.2111|212584.4747| +|Components|2005||80450596.9823|877006.7987|53842.2111|| +|Components|2006||80450596.9823|877006.7987|53842.2111|| + +The columns in the report are: + +Reseller Sales Amount +The actual value of Reseller Sales for the year and product category. This value appears in a cell in the center of your report, at the intersection of year and catergory. + +Reseller Visual Total for All of Calendar Year +The total value for a product category across all years. This value appears at the end of a column or row for a given product category and across all years in the report. + +Reseller Visual Total for All of Product Category Name +The total value for a year across all product categories. This value appears at the end of a column or row for a given year and across all product categories in the report. + +Reseller Visual Total +The total value for all years and product categories. This value usually appears in the bottom rightmost corner of the table. + +Reseller Grand Total +This is the grand total for all reseller sales, before any filter has been applied; you should notice the difference with [Reseller Visual Total]. You do remember that this report includes two (2) filters, one on Product Category Group and the other in Promotion Type. + > [!NOTE] -> if you have explicit filters in your expression, those filters are also applied to the expression. +> if you have explicit filters in your expression, those filters are also applied to the expression. diff --git a/query-languages/dax/amordegrc-function-dax.md b/query-languages/dax/amordegrc-function-dax.md index cbe48dcb2..25a0ab99b 100644 --- a/query-languages/dax/amordegrc-function-dax.md +++ b/query-languages/dax/amordegrc-function-dax.md @@ -18,9 +18,9 @@ AMORDEGRC(, , , , , [ ### Parameters -|Term|Definition| -|--------|--------------| -|`cost`|The cost of the asset.| +|Term|Definition| +|--------|--------------| +|`cost`|The cost of the asset.| |`date_purchased`|The date of the purchase of the asset.| |`first_period`|The date of the end of the first period.| |`salvage`|The salvage value at the end of the life of the asset.| diff --git a/query-languages/dax/amorlinc-function-dax.md b/query-languages/dax/amorlinc-function-dax.md index 5d4c4f607..3fe105294 100644 --- a/query-languages/dax/amorlinc-function-dax.md +++ b/query-languages/dax/amorlinc-function-dax.md @@ -18,9 +18,9 @@ AMORLINC(, , , , , [, ### Parameters -|Term|Definition| -|--------|--------------| -|`cost`|The cost of the asset.| +|Term|Definition| +|--------|--------------| +|`cost`|The cost of the asset.| |`date_purchased`|The date of the purchase of the asset.| |`first_period`|The date of the end of the first period.| |`salvage`|The salvage value at the end of the life of the asset.| diff --git a/query-languages/dax/and-function-dax.md b/query-languages/dax/and-function-dax.md index f39adec95..fb48e0d1c 100644 --- a/query-languages/dax/and-function-dax.md +++ b/query-languages/dax/and-function-dax.md @@ -6,97 +6,97 @@ title: "AND function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether both arguments are `TRUE`, and returns `TRUE` if both arguments are `TRUE`. Otherwise returns `FALSE`. - -## Syntax - +Checks whether both arguments are `TRUE`, and returns `TRUE` if both arguments are `TRUE`. Otherwise returns `FALSE`. + +## Syntax + ```dax -AND(,) +AND(,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`logical_1, logical_2`|The logical values you want to test.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`logical_1, logical_2`|The logical values you want to test.| + ## Return value -Returns true or false depending on the combination of values that you test. - +Returns true or false depending on the combination of values that you test. + ## Remarks -The `AND` function in DAX accepts only two (2) arguments. If you need to perform an AND operation on multiple expressions, you can create a series of calculations or, better, use the `AND` operator (`&&`) to join all of them in a simpler expression. - +The `AND` function in DAX accepts only two (2) arguments. If you need to perform an AND operation on multiple expressions, you can create a series of calculations or, better, use the `AND` operator (`&&`) to join all of them in a simpler expression. + ## Example 1 -The following formula shows the syntax of the `AND` function. - +The following formula shows the syntax of the `AND` function. + ```dax -= IF(AND(10 > 9, -10 < -1), "All true", "One or more false" += IF(AND(10 > 9, -10 < -1), "All true", "One or more false" ``` -Because both conditions, passed as arguments, to the `AND` function are true, the formula returns "All True". - +Because both conditions, passed as arguments, to the `AND` function are true, the formula returns "All True". + ## Example 2 -The following sample uses the `AND` function with nested formulas to compare two sets of calculations at the same time. For each product category, the formula determines if the current year sales and previous year sales of the Internet channel are larger than the Reseller channel for the same periods. If both conditions are true, for each category the formula returns the value, "Internet hit". +The following sample uses the `AND` function with nested formulas to compare two sets of calculations at the same time. For each product category, the formula determines if the current year sales and previous year sales of the Internet channel are larger than the Reseller channel for the same periods. If both conditions are true, for each category the formula returns the value, "Internet hit". ```dax -= IF( AND( SUM( 'InternetSales_USD'[SalesAmount_USD]) - >SUM('ResellerSales_USD'[SalesAmount_USD]) - , CALCULATE(SUM('InternetSales_USD'[SalesAmount_USD]), PREVIOUSYEAR('DateTime'[DateKey] )) - >CALCULATE(SUM('ResellerSales_USD'[SalesAmount_USD]), PREVIOUSYEAR('DateTime'[DateKey] )) - ) - , "Internet Hit" - , "" - ) += IF( AND( SUM( 'InternetSales_USD'[SalesAmount_USD]) + >SUM('ResellerSales_USD'[SalesAmount_USD]) + , CALCULATE(SUM('InternetSales_USD'[SalesAmount_USD]), PREVIOUSYEAR('DateTime'[DateKey] )) + >CALCULATE(SUM('ResellerSales_USD'[SalesAmount_USD]), PREVIOUSYEAR('DateTime'[DateKey] )) + ) + , "Internet Hit" + , "" + ) ``` Returns - -|Row Labels|2005|2006|2007|2008|-|Grand Total| -|----------------|-----------------|----|----|----|----|----| -|Bib-Shorts||||||| -|Bike Racks||||||| -|Bike Stands||||Internet Hit||| -|Bottles and Cages||||Internet Hit||| -|Bottom Brackets||||||| -|Brakes||||||| -|Caps||||||| -|Chains||||||| -|Cleaners||||||| -|Cranksets||||||| -|Derailleurs||||||| -|Fenders||||Internet Hit||| -|Forks||||||| -|Gloves||||||| -|Handlebars||||||| -|Headsets||||||| -|Helmets||||||| -|Hydration Packs||||||| -|Jerseys||||||| -|Lights||||||| -|Locks||||||| -|Mountain Bikes||||||| -|Mountain Frames||||||| -|Panniers||||||| -|Pedals||||||| -|Pumps||||||| -|Road Bikes||||||| -|Road Frames||||||| -|Saddles||||||| -|Shorts||||||| -|Socks||||||| -|Tights||||||| -|Tires and Tubes||||Internet Hit||| -|Touring Bikes||||||| -|Touring Frames||||||| -|Vests||||||| -|Wheels||||||| -|||||||| -|Grand Total||||||| - + +|Row Labels|2005|2006|2007|2008|-|Grand Total| +|----------------|-----------------|----|----|----|----|----| +|Bib-Shorts||||||| +|Bike Racks||||||| +|Bike Stands||||Internet Hit||| +|Bottles and Cages||||Internet Hit||| +|Bottom Brackets||||||| +|Brakes||||||| +|Caps||||||| +|Chains||||||| +|Cleaners||||||| +|Cranksets||||||| +|Derailleurs||||||| +|Fenders||||Internet Hit||| +|Forks||||||| +|Gloves||||||| +|Handlebars||||||| +|Headsets||||||| +|Helmets||||||| +|Hydration Packs||||||| +|Jerseys||||||| +|Lights||||||| +|Locks||||||| +|Mountain Bikes||||||| +|Mountain Frames||||||| +|Panniers||||||| +|Pedals||||||| +|Pumps||||||| +|Road Bikes||||||| +|Road Frames||||||| +|Saddles||||||| +|Shorts||||||| +|Socks||||||| +|Tights||||||| +|Tires and Tubes||||Internet Hit||| +|Touring Bikes||||||| +|Touring Frames||||||| +|Vests||||||| +|Wheels||||||| +|||||||| +|Grand Total||||||| + ## Related content -[Logical functions](logical-functions-dax.md) +[Logical functions](logical-functions-dax.md) diff --git a/query-languages/dax/approximate-distinctcount-function-dax.md b/query-languages/dax/approximate-distinctcount-function-dax.md index 858faa26d..5ac71dc65 100644 --- a/query-languages/dax/approximate-distinctcount-function-dax.md +++ b/query-languages/dax/approximate-distinctcount-function-dax.md @@ -7,23 +7,23 @@ title: "APPROXIMATEDISTINCTCOUNT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Returns an *estimated* count of unique values in a column. This function invokes a corresponding aggregation operation in the data source, which is optimized for query performance, but with slightly reduced accuracy. This function can be used with the following data sources: Azure SQL, Azure Synapse dedicated SQL pool, BigQuery, Databricks, and Snowflake. This function requires DirectQuery mode. Import mode and dual storage mode are not supported. - -## Syntax - + +## Syntax + ```dax APPROXIMATEDISTINCTCOUNT() ``` - -### Parameters -|Term |Description| +### Parameters + +|Term |Description| |---------|---------| |`column` | The column that contains the values to be counted. This cannot be an expression. | ## Return value -The approximate number of distinct values in `column`. - -## Remarks +The approximate number of distinct values in `column`. + +## Remarks The only argument to this function is a column. You can use columns containing any type of data. When the function finds no rows to count, it returns a BLANK, otherwise it returns the count of distinct values. diff --git a/query-languages/dax/asin-function-dax.md b/query-languages/dax/asin-function-dax.md index 01086fe05..e58d1641b 100644 --- a/query-languages/dax/asin-function-dax.md +++ b/query-languages/dax/asin-function-dax.md @@ -6,32 +6,32 @@ title: "ASIN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the arcsine, or inverse sine, of a number. The arcsine is the angle whose sine is `number`. The returned angle is given in radians in the range -pi/2 to pi/2. - -## Syntax - +Returns the arcsine, or inverse sine, of a number. The arcsine is the angle whose sine is `number`. The returned angle is given in radians in the range -pi/2 to pi/2. + +## Syntax + ```dax -ASIN(number) +ASIN(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The sine of the angle you want and must be from -1 to 1.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The sine of the angle you want and must be from -1 to 1.| + ## Return value -Returns the arcsine, or inverse sine, of a number. - +Returns the arcsine, or inverse sine, of a number. + ## Remarks -To express the arcsine in degrees, multiply the result by 180/PI( ) or use the DEGREES function. - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= ASIN(-0.5)`|Arcsine of -0.5 in radians, -pi/6|-0.523598776| -|`= ASIN(-0.5)*180/PI()`|Arcsine of -0.5 in degrees|-30| -|`= DEGREES(ASIN(-0.5))`|Arcsine of -0.5 in degrees|-30| +To express the arcsine in degrees, multiply the result by 180/PI( ) or use the DEGREES function. + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= ASIN(-0.5)`|Arcsine of -0.5 in radians, -pi/6|-0.523598776| +|`= ASIN(-0.5)*180/PI()`|Arcsine of -0.5 in degrees|-30| +|`= DEGREES(ASIN(-0.5))`|Arcsine of -0.5 in degrees|-30| diff --git a/query-languages/dax/asinh-function-dax.md b/query-languages/dax/asinh-function-dax.md index 13c760a4e..801622fd4 100644 --- a/query-languages/dax/asinh-function-dax.md +++ b/query-languages/dax/asinh-function-dax.md @@ -6,31 +6,31 @@ title: "ASINH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the inverse hyperbolic sine of a number. The inverse hyperbolic sine is the value whose hyperbolic sine is `number`, so ASINH(SINH(number)) equals `number`. - -## Syntax - +Returns the inverse hyperbolic sine of a number. The inverse hyperbolic sine is the value whose hyperbolic sine is `number`, so ASINH(SINH(number)) equals `number`. + +## Syntax + ```dax -ASINH(number) +ASINH(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Any real number.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Any real number.| + ## Return value -Returns the inverse hyperbolic sine of a number. +Returns the inverse hyperbolic sine of a number. ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= ASINH(-2.5)`|Inverse hyperbolic sine of -2.5|-1.647231146| -|`= ASINH(10)`|Inverse hyperbolic sine of 10|2.99822295| +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= ASINH(-2.5)`|Inverse hyperbolic sine of -2.5|-1.647231146| +|`= ASINH(10)`|Inverse hyperbolic sine of 10|2.99822295| diff --git a/query-languages/dax/atan-function-dax.md b/query-languages/dax/atan-function-dax.md index a5859662f..3796cb4d5 100644 --- a/query-languages/dax/atan-function-dax.md +++ b/query-languages/dax/atan-function-dax.md @@ -6,31 +6,31 @@ title: "ATAN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the arctangent, or inverse tangent, of a number. The arctangent is the angle whose tangent is `number`. The returned angle is given in radians in the range -pi/2 to pi/2. - -## Syntax - +Returns the arctangent, or inverse tangent, of a number. The arctangent is the angle whose tangent is `number`. The returned angle is given in radians in the range -pi/2 to pi/2. + +## Syntax + ```dax -ATAN(number) +ATAN(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The tangent of the angle you want.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The tangent of the angle you want.| + ## Return value -Returns the inverse hyperbolic tangent of a number. - +Returns the inverse hyperbolic tangent of a number. + ## Remarks -To express the arctangent in degrees, multiply the result by 180/PI( ) or use the DEGREES function. - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= ATAN(1)`|Arctangent of 1 in radians, pi/4|0.785398163| -|`= ATAN(1)*180/PI()`|Arctangent of 1 in degrees|45| +To express the arctangent in degrees, multiply the result by 180/PI( ) or use the DEGREES function. + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= ATAN(1)`|Arctangent of 1 in radians, pi/4|0.785398163| +|`= ATAN(1)*180/PI()`|Arctangent of 1 in degrees|45| diff --git a/query-languages/dax/atanh-function-dax.md b/query-languages/dax/atanh-function-dax.md index 4065b9a41..a67ce3c7f 100644 --- a/query-languages/dax/atanh-function-dax.md +++ b/query-languages/dax/atanh-function-dax.md @@ -6,35 +6,35 @@ title: "ATANH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the inverse hyperbolic tangent of a number. Number must be between -1 and 1 (excluding -1 and 1). The inverse hyperbolic tangent is the value whose hyperbolic tangent is `number`, so ATANH(TANH(number)) equals `number`. - -## Syntax - +Returns the inverse hyperbolic tangent of a number. Number must be between -1 and 1 (excluding -1 and 1). The inverse hyperbolic tangent is the value whose hyperbolic tangent is `number`, so ATANH(TANH(number)) equals `number`. + +## Syntax + ```dax -ATANH(number) +ATANH(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Any real number between 1 and -1.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Any real number between 1 and -1.| + ## Return value -Returns the inverse hyperbolic tangent of a number. +Returns the inverse hyperbolic tangent of a number. ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= ATANH(0.76159416)`|Inverse hyperbolic tangent of 0.76159416|1.00000001| -|`= ATANH(-0.1)`||-0.100335348| + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= ATANH(0.76159416)`|Inverse hyperbolic tangent of 0.76159416|1.00000001| +|`= ATANH(-0.1)`||-0.100335348| ## Related content -[ATAN function](atan-function-dax.md) +[ATAN function](atan-function-dax.md) diff --git a/query-languages/dax/average-function-dax.md b/query-languages/dax/average-function-dax.md index 06009e62c..3337f6df6 100644 --- a/query-languages/dax/average-function-dax.md +++ b/query-languages/dax/average-function-dax.md @@ -6,49 +6,49 @@ title: "AVERAGE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the average (arithmetic mean) of all the numbers in a column. - -## Syntax - +Returns the average (arithmetic mean) of all the numbers in a column. + +## Syntax + ```dax -AVERAGE() +AVERAGE() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column that contains the numbers for which you want the average.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|The column that contains the numbers for which you want the average.| + ## Return value -Returns a decimal number that represents the arithmetic mean of the numbers in the column. - +Returns a decimal number that represents the arithmetic mean of the numbers in the column. + ## Remarks -- This function takes the specified column as an argument and finds the average of the values in that column. If you want to find the average of an expression that evaluates to a set of numbers, use the AVERAGEX function instead. +- This function takes the specified column as an argument and finds the average of the values in that column. If you want to find the average of an expression that evaluates to a set of numbers, use the AVERAGEX function instead. -- Nonnumeric values in the column are handled as follows: +- Nonnumeric values in the column are handled as follows: - If the column contains text, no aggregation can be performed, and the functions returns blanks. - - If the column contains logical values or empty cells, those values are ignored. + - If the column contains logical values or empty cells, those values are ignored. - Cells with the value zero are included. - -- When you average cells, you must keep in mind the difference between an empty cell and a cell that contains the value 0 (zero). When a cell contains 0, it is added to the sum of numbers and the row is counted among the number of rows used as the divisor. However, when a cell contains a blank, the row is not counted. - -- Whenever there are no rows to aggregate, the function returns a blank. However, if there are rows, but none of them meet the specified criteria, the function returns 0. Excel also returns a zero if no rows are found that meet the conditions. + +- When you average cells, you must keep in mind the difference between an empty cell and a cell that contains the value 0 (zero). When a cell contains 0, it is added to the sum of numbers and the row is counted among the number of rows used as the divisor. However, when a cell contains a blank, the row is not counted. + +- Whenever there are no rows to aggregate, the function returns a blank. However, if there are rows, but none of them meet the specified criteria, the function returns 0. Excel also returns a zero if no rows are found that meet the conditions. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following formula returns the average of the values in the column, ExtendedSalesAmount, in the table, InternetSales. - +The following formula returns the average of the values in the column, ExtendedSalesAmount, in the table, InternetSales. + ```dax -= AVERAGE(InternetSales[ExtendedSalesAmount]) += AVERAGE(InternetSales[ExtendedSalesAmount]) ``` - + ## Related functions -The AVERAGEX function can take as its argument an expression that is evaluated for each row in a table. This enables you to perform calculations and then take the average of the calculated values. - -The AVERAGEA function takes a column as its argument, but otherwise is like the Excel function of the same name. By using the AVERAGEA function, you can calculate a mean on a column that contains empty values. +The AVERAGEX function can take as its argument an expression that is evaluated for each row in a table. This enables you to perform calculations and then take the average of the calculated values. + +The AVERAGEA function takes a column as its argument, but otherwise is like the Excel function of the same name. By using the AVERAGEA function, you can calculate a mean on a column that contains empty values. diff --git a/query-languages/dax/averagea-function-dax.md b/query-languages/dax/averagea-function-dax.md index 064774052..230258ab6 100644 --- a/query-languages/dax/averagea-function-dax.md +++ b/query-languages/dax/averagea-function-dax.md @@ -6,57 +6,57 @@ title: "AVERAGEA function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the average (arithmetic mean) of the values in a column. Handles text and non-numeric values. - -## Syntax - +Returns the average (arithmetic mean) of the values in a column. Handles text and non-numeric values. + +## Syntax + ```dax -AVERAGEA() +AVERAGEA() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|A column that contains the values for which you want the average.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|A column that contains the values for which you want the average.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- The AVERAGEA function takes a column and averages the numbers in it, but also handles non-numeric data types according to the following rules: - - - Values that evaluates to `TRUE` count as 1. - - Values that evaluate to `FALSE` count as 0 (zero). - - Values that contain non-numeric text count as 0 (zero). - - Empty text ("") counts as 0 (zero). - -- If you do not want to include logical values and text representations of numbers in a reference as part of the calculation, use the AVERAGE function. - -- Whenever there are no rows to aggregate, the function returns a blank. However, if there are rows, but none of them meet the specified criteria, the function returns 0. Microsoft Excel also returns a zero if no rows are found that meet the conditions. +- The AVERAGEA function takes a column and averages the numbers in it, but also handles non-numeric data types according to the following rules: + + - Values that evaluates to `TRUE` count as 1. + - Values that evaluate to `FALSE` count as 0 (zero). + - Values that contain non-numeric text count as 0 (zero). + - Empty text ("") counts as 0 (zero). + +- If you do not want to include logical values and text representations of numbers in a reference as part of the calculation, use the AVERAGE function. + +- Whenever there are no rows to aggregate, the function returns a blank. However, if there are rows, but none of them meet the specified criteria, the function returns 0. Microsoft Excel also returns a zero if no rows are found that meet the conditions. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example returns the average of non-blank cells in the referenced column, given the following table. If you used the AVERAGE function, the mean would be 21/2; with the AVERAGEA function, the result is 22/5. - -|Transaction ID|Amount|Result| -|------------------|----------|----------| -|0000123|1|Counts as 1| -|0000124|20|Counts as 20| -|0000125|n/a|Counts as 0| -|0000126||Counts as 0| -|0000126|``TRUE``|Counts as 1| - +The following example returns the average of non-blank cells in the referenced column, given the following table. If you used the AVERAGE function, the mean would be 21/2; with the AVERAGEA function, the result is 22/5. + +|Transaction ID|Amount|Result| +|------------------|----------|----------| +|0000123|1|Counts as 1| +|0000124|20|Counts as 20| +|0000125|n/a|Counts as 0| +|0000126||Counts as 0| +|0000126|``TRUE``|Counts as 1| + ```dax -= AVERAGEA([Amount]) += AVERAGEA([Amount]) ``` - + ## Related content -[AVERAGE function](average-function-dax.md) -[AVERAGEX function](averagex-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[AVERAGE function](average-function-dax.md) +[AVERAGEX function](averagex-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/averagex-function-dax.md b/query-languages/dax/averagex-function-dax.md index b87b41b75..466848cf4 100644 --- a/query-languages/dax/averagex-function-dax.md +++ b/query-languages/dax/averagex-function-dax.md @@ -6,47 +6,47 @@ title: "AVERAGEX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Calculates the average (arithmetic mean) of a set of expressions evaluated over a table. - -## Syntax - +Calculates the average (arithmetic mean) of a set of expressions evaluated over a table. + +## Syntax + ```dax -AVERAGEX(
,) +AVERAGEX(
,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|Name of a table, or an expression that specifies the table over which the aggregation can be performed.| -|`expression`|An expression with a scalar result, which will be evaluated for each row of the table in the first argument.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|Name of a table, or an expression that specifies the table over which the aggregation can be performed.| +|`expression`|An expression with a scalar result, which will be evaluated for each row of the table in the first argument.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- The AVERAGEX function enables you to evaluate expressions for each row of a table, and then take the resulting set of values and calculate its arithmetic mean. Therefore, the function takes a table as its first argument, and an expression as the second argument. - -- In all other respects, AVERAGEX follows the same rules as AVERAGE. You cannot include non-numeric or null cells. Both the table and expression arguments are required. - -- When there are no rows to aggregate, the function returns a blank. When there are rows, but none of them meet the specified criteria, then the function returns 0. +- The AVERAGEX function enables you to evaluate expressions for each row of a table, and then take the resulting set of values and calculate its arithmetic mean. Therefore, the function takes a table as its first argument, and an expression as the second argument. + +- In all other respects, AVERAGEX follows the same rules as AVERAGE. You cannot include non-numeric or null cells. Both the table and expression arguments are required. + +- When there are no rows to aggregate, the function returns a blank. When there are rows, but none of them meet the specified criteria, then the function returns 0. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example calculates the average freight and tax on each order in the InternetSales table, by first summing Freight plus TaxAmt in each row, and then averaging those sums. - +The following example calculates the average freight and tax on each order in the InternetSales table, by first summing Freight plus TaxAmt in each row, and then averaging those sums. + ```dax -= AVERAGEX(InternetSales, InternetSales[Freight]+ InternetSales[TaxAmt]) += AVERAGEX(InternetSales, InternetSales[Freight]+ InternetSales[TaxAmt]) ``` -If you use multiple operations in the expression used as the second argument, you must use parentheses to control the order of calculations. For more information, see [DAX Syntax Reference](dax-syntax-reference.md). - +If you use multiple operations in the expression used as the second argument, you must use parentheses to control the order of calculations. For more information, see [DAX Syntax Reference](dax-syntax-reference.md). + ## Related content -[AVERAGE function](average-function-dax.md) -[AVERAGEA function](averagea-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[AVERAGE function](average-function-dax.md) +[AVERAGEA function](averagea-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/best-practices/dax-error-functions.md b/query-languages/dax/best-practices/dax-error-functions.md index 61d631800..57bc1f607 100644 --- a/query-languages/dax/best-practices/dax-error-functions.md +++ b/query-languages/dax/best-practices/dax-error-functions.md @@ -54,4 +54,4 @@ Profit Margin - Learning path: [Use DAX in Power BI Desktop](/training/paths/dax-power-bi/) - Questions? [Try asking the Power BI Community](https://community.powerbi.com/) -- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) +- Suggestions? [Contribute ideas to improve Power BI](https://ideas.powerbi.com) diff --git a/query-languages/dax/best-practices/dax-understand-orderby.md b/query-languages/dax/best-practices/dax-understand-orderby.md index ab44b499e..f6512fb07 100644 --- a/query-languages/dax/best-practices/dax-understand-orderby.md +++ b/query-languages/dax/best-practices/dax-understand-orderby.md @@ -133,7 +133,7 @@ That definition above is equivalent to: OFFSET ( -1, vRelation, - ORDERBY ([Color], ASC, [CalendarYear], ASC, [CurrentYearSales], ASC) + ORDERBY ([Color], ASC, [CalendarYear], ASC, [CurrentYearSales], ASC) ), [CurrentYearSales] ) @@ -218,12 +218,10 @@ UsingPARTITIONBYWithoutORDERBY = [CurrentYearSales] ) ) - - ``` > [!NOTE] -> While ORDERBY is set to CalendarYear and CurrentYearSales automatically, no guarantee is given as to what order in which they'll be added. If CurrentYearSales is added before CalendarYear, the resulting order isn't inline with what's expected. **Be explicit when specifying ORDERBY and PARTITIONBY to avoid confusion and unexpected results**. +> While ORDERBY is set to CalendarYear and CurrentYearSales automatically, no guarantee is given as to what order in which they'll be added. If CurrentYearSales is added before CalendarYear, the resulting order isn't inline with what's expected. **Be explicit when specifying ORDERBY and PARTITIONBY to avoid confusion and unexpected results**. Both expressions return the result we're after: @@ -485,11 +483,11 @@ And this expression does indeed return the results we're after: ## Related content -[ORDERBY](../orderby-function-dax.md) -[PARTITIONBY](../partitionby-function-dax.md) -[MATCHBY](../matchby-function-dax.md) -[INDEX](../index-function-dax.md) -[OFFSET](../offset-function-dax.md) -[WINDOW](../window-function-dax.md) -[RANK](../rank-function-dax.md) +[ORDERBY](../orderby-function-dax.md) +[PARTITIONBY](../partitionby-function-dax.md) +[MATCHBY](../matchby-function-dax.md) +[INDEX](../index-function-dax.md) +[OFFSET](../offset-function-dax.md) +[WINDOW](../window-function-dax.md) +[RANK](../rank-function-dax.md) [ROWNUMBER](../rownumber-function-dax.md) diff --git a/query-languages/dax/beta-dist-function-dax.md b/query-languages/dax/beta-dist-function-dax.md index 33dc05803..6569c47f4 100644 --- a/query-languages/dax/beta-dist-function-dax.md +++ b/query-languages/dax/beta-dist-function-dax.md @@ -6,38 +6,38 @@ title: "BETA.DIST function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the beta distribution. The beta distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television. - -## Syntax - +Returns the beta distribution. The beta distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television. + +## Syntax + ```dax -BETA.DIST(x,alpha,beta,cumulative,[A],[B]) +BETA.DIST(x,alpha,beta,cumulative,[A],[B]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`x`|The value between A and B at which to evaluate the function| -|`Alpha`|A parameter of the distribution.| -|`Beta`|A parameter of the distribution.| -|`A`|Optional. A lower bound to the interval of x.| -|`B`|Optional. An upper bound to the interval of x.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`x`|The value between A and B at which to evaluate the function| +|`Alpha`|A parameter of the distribution.| +|`Beta`|A parameter of the distribution.| +|`A`|Optional. A lower bound to the interval of x.| +|`B`|Optional. An upper bound to the interval of x.| + ## Return value -Returns the beta distribution. - +Returns the beta distribution. + ## Remarks - If any argument is nonnumeric, BETA.DIST returns the `#VALUE!` error value. - If any argument is not an integer, it is rounded. - -- If `alpha ≤ 0` or beta ≤ 0, BETA.DIST returns the`#NUM!` error value. - -- If x < A, x > B, or A = B, BETA.DIST returns the`#NUM!` error value. - -- If you omit values for A and B, BETA.DIST uses the standard cumulative beta distribution, so that A = 0 and B = 1. + +- If `alpha ≤ 0` or beta ≤ 0, BETA.DIST returns the`#NUM!` error value. + +- If x < A, x > B, or A = B, BETA.DIST returns the`#NUM!` error value. + +- If you omit values for A and B, BETA.DIST uses the standard cumulative beta distribution, so that A = 0 and B = 1. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/beta-inv-function-dax.md b/query-languages/dax/beta-inv-function-dax.md index 79a4834c8..7c4cde214 100644 --- a/query-languages/dax/beta-inv-function-dax.md +++ b/query-languages/dax/beta-inv-function-dax.md @@ -6,40 +6,40 @@ title: "BETA.INV function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the inverse of the beta cumulative probability density function (BETA.DIST). - -If probability `= BETA.DIST(x,...TRUE)`, then `BETA.INV(probability,...) = x`. The beta distribution can be used in project planning to model probable completion times given an expected completion time and variability. - -## Syntax - +Returns the inverse of the beta cumulative probability density function (BETA.DIST). + +If probability `= BETA.DIST(x,...TRUE)`, then `BETA.INV(probability,...) = x`. The beta distribution can be used in project planning to model probable completion times given an expected completion time and variability. + +## Syntax + ```dax -BETA.INV(probability,alpha,beta,[A],[B]) +BETA.INV(probability,alpha,beta,[A],[B]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Probability`|A probability associated with the beta distribution.| -|`Alpha`|A parameter of the distribution.| -|`Beta`|A parameter the distribution.| -|`A`|Optional. A lower bound to the interval of x.| -|`B`|Optional. An upper bound to the interval of x.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Probability`|A probability associated with the beta distribution.| +|`Alpha`|A parameter of the distribution.| +|`Beta`|A parameter the distribution.| +|`A`|Optional. A lower bound to the interval of x.| +|`B`|Optional. An upper bound to the interval of x.| + ## Return value -Returns the inverse of the beta cumulative probability density function (BETA.DIST). - +Returns the inverse of the beta cumulative probability density function (BETA.DIST). + ## Remarks - If any argument is nonnumeric, `BETA.INV` returns the `#VALUE!` error value. - If any argument is not an integer, it is rounded. - -- If `alpha` ≤ 0 or `beta` ≤ 0, `BETA.INV` returns the `#NUM!` error value. - -- If probability ≤ 0 or probability > 1, `BETA.INV` returns the #NUM! error value. - -- If you omit values for A and B, `BETA.INV` uses the standard cumulative beta distribution, so that A = 0 and B = 1. + +- If `alpha` ≤ 0 or `beta` ≤ 0, `BETA.INV` returns the `#NUM!` error value. + +- If probability ≤ 0 or probability > 1, `BETA.INV` returns the #NUM! error value. + +- If you omit values for A and B, `BETA.INV` uses the standard cumulative beta distribution, so that A = 0 and B = 1. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/bitand-function-dax.md b/query-languages/dax/bitand-function-dax.md index be3c35c7f..d6ba3f24c 100644 --- a/query-languages/dax/bitand-function-dax.md +++ b/query-languages/dax/bitand-function-dax.md @@ -7,9 +7,9 @@ title: "BITAND function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns a bitwise AND of two numbers. - -## Syntax - + +## Syntax + ```dax BITAND(, ) ``` @@ -19,11 +19,11 @@ BITAND(, ) |Term|Definition| |--------|--------------| |`Number`|Any scalar expression that returns number. If not an integer, it is truncated.| - + ## Return value A bitwise AND of two numbers. - + ## Remarks - This function supports both positive and negative numbers. @@ -40,7 +40,7 @@ Returns 9. ## Related content -[BITLSHIFT](bitlshift-function-dax.md) -[BITRSHIFT](bitrshift-function-dax.md) -[BITOR](bitor-function-dax.md) +[BITLSHIFT](bitlshift-function-dax.md) +[BITRSHIFT](bitrshift-function-dax.md) +[BITOR](bitor-function-dax.md) [BITXOR](bitxor-function-dax.md) diff --git a/query-languages/dax/bitlshift-function-dax.md b/query-languages/dax/bitlshift-function-dax.md index b9f97eda5..03d62a7e3 100644 --- a/query-languages/dax/bitlshift-function-dax.md +++ b/query-languages/dax/bitlshift-function-dax.md @@ -6,10 +6,10 @@ title: "BITLSHIFT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a number shifted left by the specified number of bits. - -## Syntax - +Returns a number shifted left by the specified number of bits. + +## Syntax + ```dax BITLSHIFT(, ) ``` @@ -24,7 +24,7 @@ BITLSHIFT(, ) ## Return value An integer value. - + ## Remarks - Be sure to understand the nature of bitshift operations and overflow/underflow of integers before using DAX bitshift functions. @@ -76,7 +76,7 @@ Shifts left each sales amount with 3 bits and returns the bit-shifted sales amou ## Related content -[BITRSHIFT](bitrshift-function-dax.md) -[BITAND](bitand-function-dax.md) -[BITOR](bitor-function-dax.md) +[BITRSHIFT](bitrshift-function-dax.md) +[BITAND](bitand-function-dax.md) +[BITOR](bitor-function-dax.md) [BITXOR](bitxor-function-dax.md) diff --git a/query-languages/dax/bitor-function-dax.md b/query-languages/dax/bitor-function-dax.md index 101023549..8a8d67d70 100644 --- a/query-languages/dax/bitor-function-dax.md +++ b/query-languages/dax/bitor-function-dax.md @@ -7,9 +7,9 @@ title: "BITOR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns a bitwise OR of two numbers. - -## Syntax - + +## Syntax + ```dax BITOR(, ) ``` @@ -19,11 +19,11 @@ BITOR(, ) |Term|Definition| |--------|--------------| |`Number`|Any scalar expression that returns number. If not an integer, it is truncated.| - + ## Return value A bitwise OR of two numbers. - + ## Remarks - This function supports both positive and negative numbers. @@ -41,7 +41,7 @@ Returns 11. ## Related content -[BITAND](bitand-function-dax.md) -[BITXOR](bitxor-function-dax.md) -[BITLSHIFT](bitlshift-function-dax.md) -[BITRSHIFT](bitrshift-function-dax.md) +[BITAND](bitand-function-dax.md) +[BITXOR](bitxor-function-dax.md) +[BITLSHIFT](bitlshift-function-dax.md) +[BITRSHIFT](bitrshift-function-dax.md) diff --git a/query-languages/dax/bitrshift-function-dax.md b/query-languages/dax/bitrshift-function-dax.md index e069732d2..a2696828d 100644 --- a/query-languages/dax/bitrshift-function-dax.md +++ b/query-languages/dax/bitrshift-function-dax.md @@ -6,10 +6,10 @@ title: "BITRSHIFT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a number shifted right by the specified number of bits. - -## Syntax - +Returns a number shifted right by the specified number of bits. + +## Syntax + ```dax BITRSHIFT(, ) ``` @@ -20,18 +20,18 @@ BITRSHIFT(, ) |--------|--------------| |`Number`|Any DAX expression that returns an integer expression.| |`Shift_Amount`|Any DAX expression that returns an integer expression.| - + ## Return value An integer value. - + ## Remarks - Be sure to understand the nature of bitshift operations and overflow/underflow of integers before using DAX bitshift functions. - If Shift_Amount is negative, it will shift in the opposite direction. - If absolute value of Shift_Amount is larger than 64, there will be no error but will result in overflow/underflow. - There’s no limit on Number, but the result may overflow/underflow. - + ## Examples ### Example 1 @@ -76,7 +76,7 @@ Shifts right each sales amount with 3 bits and returns the bit-shifted sales amo ## Related content -[BITLSHIFT](bitlshift-function-dax.md) -[BITAND](bitand-function-dax.md) -[BITOR](bitor-function-dax.md) +[BITLSHIFT](bitlshift-function-dax.md) +[BITAND](bitand-function-dax.md) +[BITOR](bitor-function-dax.md) [BITXOR](bitxor-function-dax.md) diff --git a/query-languages/dax/bitxor-function-dax.md b/query-languages/dax/bitxor-function-dax.md index 6ca132972..e8b477eea 100644 --- a/query-languages/dax/bitxor-function-dax.md +++ b/query-languages/dax/bitxor-function-dax.md @@ -7,9 +7,9 @@ title: "BITXOR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns a bitwise XOR of two numbers. - -## Syntax - + +## Syntax + ```dax BITXOR(, ) ``` @@ -19,11 +19,11 @@ BITXOR(, ) |Term|Definition| |--------|--------------| |`Number`|Any scalar expression that returns number. If not an integer, it is truncated.| - + ## Return value A bitwise XOR of two numbers. - + ## Remarks - This function supports both positive and negative numbers. @@ -40,7 +40,7 @@ Returns 3. ## Related content -[BITOR](bitor-function-dax.md) -[BITAND](bitand-function-dax.md) -[BITLSHIFT](bitlshift-function-dax.md) -[BITRSHIFT](bitrshift-function-dax.md) +[BITOR](bitor-function-dax.md) +[BITAND](bitand-function-dax.md) +[BITLSHIFT](bitlshift-function-dax.md) +[BITRSHIFT](bitrshift-function-dax.md) diff --git a/query-languages/dax/blank-function-dax.md b/query-languages/dax/blank-function-dax.md index 83738d544..1820585fb 100644 --- a/query-languages/dax/blank-function-dax.md +++ b/query-languages/dax/blank-function-dax.md @@ -6,46 +6,46 @@ title: "BLANK function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a blank. - -## Syntax - +Returns a blank. + +## Syntax + ```dax -BLANK() +BLANK() ``` - + ## Return value -A blank. - +A blank. + ## Remarks -- Blanks are not equivalent to nulls. DAX uses blanks for both database nulls and for blank cells in Excel. - +- Blanks are not equivalent to nulls. DAX uses blanks for both database nulls and for blank cells in Excel. + - Some DAX functions treat blank cells somewhat differently from Microsoft Excel. Blanks and empty strings ("") are not always equivalent, but some operations may treat them as such. - + ## Example -The following example illustrates how you can work with blanks in formulas. The formula calculates the ratio of sales between the Resellers and the Internet channels. However, before attempting to calculate the ratio the denominator should be checked for zero values. If the denominator is zero then a blank value should be returned; otherwise, the ratio is calculated. - +The following example illustrates how you can work with blanks in formulas. The formula calculates the ratio of sales between the Resellers and the Internet channels. However, before attempting to calculate the ratio the denominator should be checked for zero values. If the denominator is zero then a blank value should be returned; otherwise, the ratio is calculated. + ```dax -= IF( SUM(InternetSales_USD[SalesAmount_USD])= 0 , BLANK() , SUM(ResellerSales_USD[SalesAmount_USD])/SUM(InternetSales_USD[SalesAmount_USD]) ) += IF( SUM(InternetSales_USD[SalesAmount_USD])= 0 , BLANK() , SUM(ResellerSales_USD[SalesAmount_USD])/SUM(InternetSales_USD[SalesAmount_USD]) ) ``` -The table shows the expected results when this formula is used to create a table visualization. - +The table shows the expected results when this formula is used to create a table visualization. + |Row Labels|Accessories|Bikes|Clothing|Grand Total| |------------------------------------|-----------------|----|----|----| -|2005||2.65||2.89| -|2006||3.33||4.03| -|2007|1.04|2.92|6.63|3.51| -|2008|0.41|1.53|2.00|1.71| -|Grand Total|0.83|2.51|5.45|2.94| - -In the original data source, the column evaluated by the BLANK function might have included text, empty strings, or nulls. If the original data source was a SQL Server database, nulls and empty strings are different kinds of data. However, for this operation an implicit type cast is performed and DAX treats them as the same. - +|2005||2.65||2.89| +|2006||3.33||4.03| +|2007|1.04|2.92|6.63|3.51| +|2008|0.41|1.53|2.00|1.71| +|Grand Total|0.83|2.51|5.45|2.94| + +In the original data source, the column evaluated by the BLANK function might have included text, empty strings, or nulls. If the original data source was a SQL Server database, nulls and empty strings are different kinds of data. However, for this operation an implicit type cast is performed and DAX treats them as the same. + ## Related content -[Text functions](text-functions-dax.md) -[ISBLANK function](isblank-function-dax.md) - +[Text functions](text-functions-dax.md) +[ISBLANK function](isblank-function-dax.md) + diff --git a/query-languages/dax/calculate-function-dax.md b/query-languages/dax/calculate-function-dax.md index 7da01e8db..b21f1ad11 100644 --- a/query-languages/dax/calculate-function-dax.md +++ b/query-languages/dax/calculate-function-dax.md @@ -114,7 +114,7 @@ The CALCULATE function evaluates the sum of the **Sales** table **Sales Amount** The following **Sales** table measure definition produces a ratio of sales over sales for all sales channels. -|Channel|Sales Amount|Revenue % Total Channel| +|Channel|Sales Amount|Revenue % Total Channel| |-------|------------|-----------------------| |Internet|$29,358,677.22|26.74%| |Reseller|$80,450,596.98|73.26%| @@ -148,7 +148,7 @@ In this example, row context is converted to the filter context. It's known as _ ## Related content -[Filter context](dax-overview.md#filter-context) -[Row context](dax-overview.md#row-context) -[CALCULATETABLE function](calculatetable-function-dax.md) -[Filter functions](filter-functions-dax.md) +[Filter context](dax-overview.md#filter-context) +[Row context](dax-overview.md#row-context) +[CALCULATETABLE function](calculatetable-function-dax.md) +[Filter functions](filter-functions-dax.md) diff --git a/query-languages/dax/calculatetable-function-dax.md b/query-languages/dax/calculatetable-function-dax.md index 8d6a142d3..9610890d5 100644 --- a/query-languages/dax/calculatetable-function-dax.md +++ b/query-languages/dax/calculatetable-function-dax.md @@ -13,7 +13,7 @@ Evaluates a table expression in a modified filter context. > > -## Syntax +## Syntax ```dax CALCULATETABLE([, [, [, …]]]) @@ -21,8 +21,8 @@ CALCULATETABLE([, [, [, …]]]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`expression`|The table expression to be evaluated.| |`filter1, filter2,…`|(Optional) Boolean expressions or table expressions that defines filters, or filter modifier functions.| @@ -81,7 +81,7 @@ A table of values. ## Example -The following example uses the CALCULATETABLE function to get the sum of Internet sales for 2006. This value is later used to calculate the ratio of Internet sales compared to all sales for the year 2006. +The following example uses the CALCULATETABLE function to get the sum of Internet sales for 2006. This value is later used to calculate the ratio of Internet sales compared to all sales for the year 2006. The following formula: @@ -92,18 +92,18 @@ The following formula: 'DateTime'[CalendarYear] = 2006 ), [SalesAmount_USD] -) +) ``` It results in the following table: -|Row Labels|Internet SalesAmount_USD|CalculateTable 2006 Internet Sales|Internet Sales to 2006 ratio| -|--------------|-----------------------------|--------------------------------------|--------------------------------| -|2005|$2,627,031.40|$5,681,440.58|0.46| -|2006|$5,681,440.58|$5,681,440.58|1.00| -|2007|$8,705,066.67|$5,681,440.58|1.53| -|2008|$9,041,288.80|$5,681,440.58|1.59| -|Grand Total|$26,054,827.45|$5,681,440.58|4.59| +|Row Labels|Internet SalesAmount_USD|CalculateTable 2006 Internet Sales|Internet Sales to 2006 ratio| +|--------------|-----------------------------|--------------------------------------|--------------------------------| +|2005|$2,627,031.40|$5,681,440.58|0.46| +|2006|$5,681,440.58|$5,681,440.58|1.00| +|2007|$8,705,066.67|$5,681,440.58|1.53| +|2008|$9,041,288.80|$5,681,440.58|1.59| +|Grand Total|$26,054,827.45|$5,681,440.58|4.59| ## Related content diff --git a/query-languages/dax/calendar-function-dax.md b/query-languages/dax/calendar-function-dax.md index c931bddf0..3bfc5bdb8 100644 --- a/query-languages/dax/calendar-function-dax.md +++ b/query-languages/dax/calendar-function-dax.md @@ -5,42 +5,42 @@ title: "CALENDAR function (DAX)" # CALENDAR [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is from the specified start date to the specified end date, inclusive of those two dates. - -## Syntax - + +Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is from the specified start date to the specified end date, inclusive of those two dates. + +## Syntax + ```dax -CALENDAR(, ) +CALENDAR(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`start_date`|Any DAX expression that returns a datetime value.| -|`end_date`|Any DAX expression that returns a datetime value.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`start_date`|Any DAX expression that returns a datetime value.| +|`end_date`|Any DAX expression that returns a datetime value.| + ## Return value -Returns a table with a single column named "Date" containing a contiguous set of dates. The range of dates is from the specified start date to the specified end date, inclusive of those two dates. - +Returns a table with a single column named "Date" containing a contiguous set of dates. The range of dates is from the specified start date to the specified end date, inclusive of those two dates. + ## Remarks -- An error is returned if start_date is greater than end_date. +- An error is returned if start_date is greater than end_date. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Examples -The following formula returns a table with dates between January 1st, 2015 and December 31st, 2021. - +The following formula returns a table with dates between January 1st, 2015 and December 31st, 2021. + ```dax = CALENDAR (DATE (2015, 1, 1), DATE (2021, 12, 31)) ``` - -For a data model which includes actual sales data and future sales forecasts, the following expression returns a date table covering the range of dates in both the Sales and Forecast tables. - + +For a data model which includes actual sales data and future sales forecasts, the following expression returns a date table covering the range of dates in both the Sales and Forecast tables. + ```dax = CALENDAR (MINX (Sales, [Date]), MAXX (Forecast, [Date])) -``` +``` diff --git a/query-languages/dax/calendarauto-function-dax.md b/query-languages/dax/calendarauto-function-dax.md index 4fdc46e5b..4326d1ee3 100644 --- a/query-languages/dax/calendarauto-function-dax.md +++ b/query-languages/dax/calendarauto-function-dax.md @@ -5,41 +5,41 @@ title: "CALENDARAUTO function (DAX)" # CALENDARAUTO [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] - -Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is calculated automatically based on data in the model. - -## Syntax - + +Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is calculated automatically based on data in the model. + +## Syntax + ```dax -CALENDARAUTO([fiscal_year_end_month]) +CALENDARAUTO([fiscal_year_end_month]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`fiscal_year_end_month`|Any DAX expression that returns an integer from 1 to 12. If omitted, defaults to the value specified in the calendar table template for the current user, if present; otherwise, defaults to 12.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`fiscal_year_end_month`|Any DAX expression that returns an integer from 1 to 12. If omitted, defaults to the value specified in the calendar table template for the current user, if present; otherwise, defaults to 12.| + ## Return value -Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is calculated automatically based on data in the model. - +Returns a table with a single column named "Date" that contains a contiguous set of dates. The range of dates is calculated automatically based on data in the model. + ## Remarks -- The date range is calculated as follows: - +- The date range is calculated as follows: + - The earliest date in the model which is not in a calculated column or calculated table is taken as the MinDate. - The latest date in the model which is not in a calculated column or calculated table is taken as the MaxDate. - - The date range returned is dates between the beginning of the fiscal year associated with MinDate and the end of the fiscal year associated with MaxDate. - -- An error is returned if the model does not contain any datetime values which are not in calculated columns or calculated tables. + - The date range returned is dates between the beginning of the fiscal year associated with MinDate and the end of the fiscal year associated with MaxDate. + +- An error is returned if the model does not contain any datetime values which are not in calculated columns or calculated tables. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -In this example, the MinDate and MaxDate in the data model are July 1, 2010 and June 30, 2011. - -`CALENDARAUTO()` will return all dates between January 1, 2010 and December 31, 2011. - -`CALENDARAUTO(3)` will return all dates between April 1, 2010 and March 31, 2012. +In this example, the MinDate and MaxDate in the data model are July 1, 2010 and June 30, 2011. + +`CALENDARAUTO()` will return all dates between January 1, 2010 and December 31, 2011. + +`CALENDARAUTO(3)` will return all dates between April 1, 2010 and March 31, 2012. diff --git a/query-languages/dax/ceiling-function-dax.md b/query-languages/dax/ceiling-function-dax.md index 3db64e069..8b1d68381 100644 --- a/query-languages/dax/ceiling-function-dax.md +++ b/query-languages/dax/ceiling-function-dax.md @@ -6,60 +6,60 @@ title: "CEILING function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Rounds a number up, to the nearest integer or to the nearest multiple of significance. - -## Syntax - +Rounds a number up, to the nearest integer or to the nearest multiple of significance. + +## Syntax + ```dax -CEILING(, ) +CEILING(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number you want to round, or a reference to a column that contains numbers.| -|`significance`|The multiple of significance to which you want to round. For example, to round to the nearest integer, type 1.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number you want to round, or a reference to a column that contains numbers.| +|`significance`|The multiple of significance to which you want to round. For example, to round to the nearest integer, type 1.| + ## Return value -A number rounded as specified. - +A number rounded as specified. + ## Remarks -- There are two CEILING functions in DAX, with the following differences: - - - The CEILING function emulates the behavior of the CEILING function in Excel. - - The ISO.CEILING function follows the ISO-defined behavior for determining the ceiling value. - -- The two functions return the same value for positive numbers, but different values for negative numbers. When using a positive multiple of significance, both CEILING and ISO.CEILING round negative numbers upward (toward positive infinity). When using a negative multiple of significance, CEILING rounds negative numbers downward (toward negative infinity), while ISO.CEILING rounds negative numbers upward (toward positive infinity). - -- The return type is usually of the same type of the significant argument, with the following exceptions: - - - If the number argument type is currency, the return type is currency. - - If the significance argument type is Boolean, the return type is integer. - - If the significance argument type is non-numeric, the return type is real. - +- There are two CEILING functions in DAX, with the following differences: + + - The CEILING function emulates the behavior of the CEILING function in Excel. + - The ISO.CEILING function follows the ISO-defined behavior for determining the ceiling value. + +- The two functions return the same value for positive numbers, but different values for negative numbers. When using a positive multiple of significance, both CEILING and ISO.CEILING round negative numbers upward (toward positive infinity). When using a negative multiple of significance, CEILING rounds negative numbers downward (toward negative infinity), while ISO.CEILING rounds negative numbers upward (toward positive infinity). + +- The return type is usually of the same type of the significant argument, with the following exceptions: + + - If the number argument type is currency, the return type is currency. + - If the significance argument type is Boolean, the return type is integer. + - If the significance argument type is non-numeric, the return type is real. + ## Example 1 -The following formula returns 4.45. This might be useful if you want to avoid using smaller units in your pricing. If an existing product is priced at $4.42, you can use CEILING to round prices up to the nearest unit of five cents. - +The following formula returns 4.45. This might be useful if you want to avoid using smaller units in your pricing. If an existing product is priced at $4.42, you can use CEILING to round prices up to the nearest unit of five cents. + ```dax -= CEILING(4.42,0.05) += CEILING(4.42,0.05) ``` - + ## Example 2 -The following formula returns similar results as the previous example, but uses numeric values stored in the column, **ProductPrice**. - +The following formula returns similar results as the previous example, but uses numeric values stored in the column, **ProductPrice**. + ```dax -= CEILING([ProductPrice],0.05) += CEILING([ProductPrice],0.05) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[FLOOR function](floor-function-dax.md) -[ISO.CEILING function](iso-ceiling-function-dax.md) -[ROUNDUP function](roundup-function-dax.md) - +[Math and Trig functions](math-and-trig-functions-dax.md) +[FLOOR function](floor-function-dax.md) +[ISO.CEILING function](iso-ceiling-function-dax.md) +[ROUNDUP function](roundup-function-dax.md) + diff --git a/query-languages/dax/chisq-dist-function-dax.md b/query-languages/dax/chisq-dist-function-dax.md index 3419329ec..346ae9cc0 100644 --- a/query-languages/dax/chisq-dist-function-dax.md +++ b/query-languages/dax/chisq-dist-function-dax.md @@ -7,43 +7,43 @@ title: "CHISQ.DIST function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the chi-squared distribution. - + The chi-squared distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television. - -## Syntax - + +## Syntax + ```dax CHISQ.DIST(, , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`x`|The value at which you want to evaluate the distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`x`|The value at which you want to evaluate the distribution.| |`Deg_freedom`|The number of degrees of freedom.| |`cumulative`|A logical value that determines the form of the function. If cumulative is `TRUE`, CHISQ.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| - + ## Return value -The chi-squared distribution. - +The chi-squared distribution. + ## Remarks - If `x` or `deg_freedom` is nonnumeric, an error is returned. - + - If `deg_freedom` is not an integer, it is rounded. - + - If `x` < 0, an error is returned. - If `deg_freedom` < 1 or `deg_freedom` > 10^10, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + The following DAX query, - + ```dax EVALUATE { CHISQ.DIST(2, 2, TRUE) } ``` diff --git a/query-languages/dax/chisq-dist-rt-function-dax.md b/query-languages/dax/chisq-dist-rt-function-dax.md index eb5560103..0d585d0e3 100644 --- a/query-languages/dax/chisq-dist-rt-function-dax.md +++ b/query-languages/dax/chisq-dist-rt-function-dax.md @@ -7,26 +7,26 @@ title: "CHISQ.DIST.RT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the right-tailed probability of the chi-squared distribution. - + The chi-squared distribution is associated with a chi-squared test. Use the chi-squared test to compare observed and expected values. For example, a genetic experiment might hypothesize that the next generation of plants will exhibit a certain set of colors. By comparing the observed results with the expected ones, you can decide whether your original hypothesis is valid. - -## Syntax - + +## Syntax + ```dax CHISQ.DIST.RT(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`x`|The value at which you want to evaluate the distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`x`|The value at which you want to evaluate the distribution.| |`Deg_freedom`|The number of degrees of freedom.| - + ## Return value The right-tailed probability of the chi-squared distribution. - + ## Remarks - If `x` or `deg_freedom` is nonnumeric, an error is returned. @@ -39,10 +39,10 @@ The right-tailed probability of the chi-squared distribution. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + The following DAX query, - + ```dax EVALUATE { CHISQ.DIST.RT(2, 5) } ``` diff --git a/query-languages/dax/chisq-inv-function-dax.md b/query-languages/dax/chisq-inv-function-dax.md index cccb580f5..51e6c5d52 100644 --- a/query-languages/dax/chisq-inv-function-dax.md +++ b/query-languages/dax/chisq-inv-function-dax.md @@ -6,42 +6,42 @@ title: "CHISQ.INV function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the inverse of the left-tailed probability of the chi-squared distribution. - -The chi-squared distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television. - -## Syntax - +Returns the inverse of the left-tailed probability of the chi-squared distribution. + +The chi-squared distribution is commonly used to study variation in the percentage of something across samples, such as the fraction of the day people spend watching television. + +## Syntax + ```dax -CHISQ.INV(probability,deg_freedom) +CHISQ.INV(probability,deg_freedom) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Probability`|A probability associated with the chi-squared distribution.| -|`Deg_freedom`|The number of degrees of freedom.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Probability`|A probability associated with the chi-squared distribution.| +|`Deg_freedom`|The number of degrees of freedom.| + ## Return value -Returns the inverse of the left-tailed probability of the chi-squared distribution. - +Returns the inverse of the left-tailed probability of the chi-squared distribution. + ## Remarks -- If argument is nonnumeric, CHISQ.INV returns the `#VALUE!` error value. - -- If probability \< 0 or probability > 1, CHISQ.INV returns the `#NUM!` error value. - -- If `deg_freedom` is not an integer, it is rounded. - -- If `deg_freedom` \< 0 or `deg_freedom` > 10^10, CHISQ.INV returns the `#NUM!` error value. +- If argument is nonnumeric, CHISQ.INV returns the `#VALUE!` error value. + +- If probability \< 0 or probability > 1, CHISQ.INV returns the `#NUM!` error value. + +- If `deg_freedom` is not an integer, it is rounded. + +- If `deg_freedom` \< 0 or `deg_freedom` > 10^10, CHISQ.INV returns the `#NUM!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= CHISQ.INV(0.93,1)`|Inverse of the left-tailed probability of the chi-squared distribution for 0.93, using 1 degree of freedom.|5.318520074| -|`= CHISQ.INV(0.6,2)`|Inverse of the left-tailed probability of the chi-squared distribution for 0.6, using 2 degrees of freedom.|1.832581464| +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= CHISQ.INV(0.93,1)`|Inverse of the left-tailed probability of the chi-squared distribution for 0.93, using 1 degree of freedom.|5.318520074| +|`= CHISQ.INV(0.6,2)`|Inverse of the left-tailed probability of the chi-squared distribution for 0.6, using 2 degrees of freedom.|1.832581464| diff --git a/query-languages/dax/chisq-inv-rt-function-dax.md b/query-languages/dax/chisq-inv-rt-function-dax.md index 639b036d2..c5e6a05ef 100644 --- a/query-languages/dax/chisq-inv-rt-function-dax.md +++ b/query-languages/dax/chisq-inv-rt-function-dax.md @@ -6,37 +6,37 @@ title: "CHISQ.INV.RT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the inverse of the right-tailed probability of the chi-squared distribution. - -If probability = CHISQ.DIST.RT(x,...), then CHISQ.INV.RT(probability,...) = x. Use this function to compare observed results with expected ones in order to decide whether your original hypothesis is valid. - -## Syntax - +Returns the inverse of the right-tailed probability of the chi-squared distribution. + +If probability = CHISQ.DIST.RT(x,...), then CHISQ.INV.RT(probability,...) = x. Use this function to compare observed results with expected ones in order to decide whether your original hypothesis is valid. + +## Syntax + ```dax -CHISQ.INV.RT(probability,deg_freedom) +CHISQ.INV.RT(probability,deg_freedom) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Probability`|A probability associated with the chi-squared distribution.| -|`Deg_freedom`|The number of degrees of freedom.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Probability`|A probability associated with the chi-squared distribution.| +|`Deg_freedom`|The number of degrees of freedom.| + ## Return value -Returns the inverse of the right-tailed probability of the chi-squared distribution. - +Returns the inverse of the right-tailed probability of the chi-squared distribution. + ## Remarks -- If either argument is nonnumeric, CHISQ.INV.RT returns the `#VALUE!` error value. - -- If `probability` < 0 or `probability` > 1, CHISQ.INV.RT returns the `#NUM!` error value. - -- If `deg_freedom` is not an integer, it is rounded. - -- If `deg_freedom` < 1, CHISQ.INV.RT returns the `#NUM!` error value. - -- Given a value for probability, CHISQ.INV.RT seeks that value x such that CHISQ.DIST.RT(x, deg_freedom) = probability. Thus, precision of CHISQ.INV.RT depends on precision of CHISQ.DIST.RT. CHISQ.INV.RT uses an iterative search technique. If the search has not converged after 64 iterations, the function returns the #N/A error value. +- If either argument is nonnumeric, CHISQ.INV.RT returns the `#VALUE!` error value. + +- If `probability` < 0 or `probability` > 1, CHISQ.INV.RT returns the `#NUM!` error value. + +- If `deg_freedom` is not an integer, it is rounded. + +- If `deg_freedom` < 1, CHISQ.INV.RT returns the `#NUM!` error value. + +- Given a value for probability, CHISQ.INV.RT seeks that value x such that CHISQ.DIST.RT(x, deg_freedom) = probability. Thus, precision of CHISQ.INV.RT depends on precision of CHISQ.DIST.RT. CHISQ.INV.RT uses an iterative search technique. If the search has not converged after 64 iterations, the function returns the #N/A error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/closingbalancemonth-function-dax.md b/query-languages/dax/closingbalancemonth-function-dax.md index eeed8c9b9..cfe38fc18 100644 --- a/query-languages/dax/closingbalancemonth-function-dax.md +++ b/query-languages/dax/closingbalancemonth-function-dax.md @@ -6,54 +6,54 @@ title: "CLOSINGBALANCEMONTH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the `expression` at the last date of the month in the current context. - -## Syntax - +Evaluates the `expression` at the last date of the month in the current context. + +## Syntax + ```dax -CLOSINGBALANCEMONTH(,[,]) +CLOSINGBALANCEMONTH(,[,]) ``` - -### Parameters - -|Parameter|Definition| -|-------------|--------------| -|`expression`|An expression that returns a scalar value.| -|`dates`|A column that contains dates.| -|`filter`|(optional) An expression that specifies a filter to apply to the current context.| - + +### Parameters + +|Parameter|Definition| +|-------------|--------------| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| + ## Return value -A scalar value that represents the `expression` evaluated at the last date of the month in the current context. - +A scalar value that represents the `expression` evaluated at the last date of the month in the current context. + ## Remarks -- The `dates` argument can be any of the following: - - - A reference to a date/time column. - - - A table expression that returns a single column of date/time values. - - - A Boolean expression that defines a single-column table of date/time values. - - > [!NOTE] - > Constraints on Boolean expressions are described in [CALCULATE function](calculate-function-dax.md). - - > [!NOTE] - > The `filter` expression has restrictions described in [CALCULATE function](calculate-function-dax.md). - +- The `dates` argument can be any of the following: + + - A reference to a date/time column. + + - A table expression that returns a single column of date/time values. + + - A Boolean expression that defines a single-column table of date/time values. + + > [!NOTE] + > Constraints on Boolean expressions are described in [CALCULATE function](calculate-function-dax.md). + + > [!NOTE] + > The `filter` expression has restrictions described in [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'Month End Inventory Value' of the product inventory. - +The following sample formula creates a measure that calculates the 'Month End Inventory Value' of the product inventory. + ```dax -= CLOSINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) += CLOSINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) -[CLOSINGBALANCEQUARTER function](closingbalancequarter-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) +[CLOSINGBALANCEQUARTER function](closingbalancequarter-function-dax.md) diff --git a/query-languages/dax/closingbalancequarter-function-dax.md b/query-languages/dax/closingbalancequarter-function-dax.md index a2b40d347..fee14572d 100644 --- a/query-languages/dax/closingbalancequarter-function-dax.md +++ b/query-languages/dax/closingbalancequarter-function-dax.md @@ -6,54 +6,54 @@ title: "CLOSINGBALANCEQUARTER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the `expression` at the last date of the quarter in the current context. - -## Syntax - +Evaluates the `expression` at the last date of the quarter in the current context. + +## Syntax + ```dax -CLOSINGBALANCEQUARTER(,[,]) +CLOSINGBALANCEQUARTER(,[,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`expression`|An expression that returns a scalar value.| -|`dates`|A column that contains dates.| -|`filter`|(optional) An expression that specifies a filter to apply to the current context.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| + ## Return value -A scalar value that represents the `expression` evaluated at the last date of the quarter in the current context. - +A scalar value that represents the `expression` evaluated at the last date of the quarter in the current context. + ## Remarks -- The `dates` argument can be any of the following: - - - A reference to a date/time column. - - - A table expression that returns a single column of date/time values. - - - A Boolean expression that defines a single-column table of date/time values. - - > [!NOTE] - > Constraints on Boolean expressions are described in [CALCULATE function](calculate-function-dax.md). - - > [!NOTE] - > The `filter` expression has restrictions described in [CALCULATE function](calculate-function-dax.md). - +- The `dates` argument can be any of the following: + + - A reference to a date/time column. + + - A table expression that returns a single column of date/time values. + + - A Boolean expression that defines a single-column table of date/time values. + + > [!NOTE] + > Constraints on Boolean expressions are described in [CALCULATE function](calculate-function-dax.md). + + > [!NOTE] + > The `filter` expression has restrictions described in [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'Quarter End Inventory Value' of the product inventory. - +The following sample formula creates a measure that calculates the 'Quarter End Inventory Value' of the product inventory. + ```dax -= CLOSINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) += CLOSINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) [CLOSINGBALANCEMONTH function](closingbalancemonth-function-dax.md) diff --git a/query-languages/dax/closingbalanceyear-function-dax.md b/query-languages/dax/closingbalanceyear-function-dax.md index 3f0f23e66..2204ba642 100644 --- a/query-languages/dax/closingbalanceyear-function-dax.md +++ b/query-languages/dax/closingbalanceyear-function-dax.md @@ -6,58 +6,58 @@ title: "CLOSINGBALANCEYEAR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the `expression` at the last date of the year in the current context. - -## Syntax - +Evaluates the `expression` at the last date of the year in the current context. + +## Syntax + ```dax -CLOSINGBALANCEYEAR(,[,][,]) +CLOSINGBALANCEYEAR(,[,][,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`expression`|An expression that returns a scalar value.| -|`dates`|A column that contains dates.| -|`filter`|(optional) An expression that specifies a filter to apply to the current context.| -|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| + ## Return value -A scalar value that represents the `expression` evaluated at the last date of the year in the current context. - -## Remarks - -- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. - -- The `dates` argument can be any of the following: - - - A reference to a date/time column. - - - A table expression that returns a single column of date/time values. - - - A Boolean expression that defines a single-column table of date/time values. - - > [!NOTE] - > Constraints on Boolean expressions are described in [CALCULATE function](calculate-function-dax.md). - - > [!NOTE] - > The `filter` expression has restrictions described in [CALCULATE function](calculate-function-dax.md). - +A scalar value that represents the `expression` evaluated at the last date of the year in the current context. + +## Remarks + +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. + +- The `dates` argument can be any of the following: + + - A reference to a date/time column. + + - A table expression that returns a single column of date/time values. + + - A Boolean expression that defines a single-column table of date/time values. + + > [!NOTE] + > Constraints on Boolean expressions are described in [CALCULATE function](calculate-function-dax.md). + + > [!NOTE] + > The `filter` expression has restrictions described in [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following sample formula creates a measure that calculates the 'Year End Inventory Value' of the product inventory. - +The following sample formula creates a measure that calculates the 'Year End Inventory Value' of the product inventory. + ```dax -= CLOSINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) += CLOSINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) -[CLOSINGBALANCEQUARTER function](closingbalancequarter-function-dax.md) -[CLOSINGBALANCEMONTH function](closingbalancemonth-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) +[CLOSINGBALANCEQUARTER function](closingbalancequarter-function-dax.md) +[CLOSINGBALANCEMONTH function](closingbalancemonth-function-dax.md) diff --git a/query-languages/dax/coalesce-function-dax.md b/query-languages/dax/coalesce-function-dax.md index e265df9e0..bb9ca69e2 100644 --- a/query-languages/dax/coalesce-function-dax.md +++ b/query-languages/dax/coalesce-function-dax.md @@ -7,39 +7,39 @@ title: "COALESCE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the first expression that does not evaluate to BLANK. If all expressions evaluate to BLANK, BLANK is returned. - -## Syntax - + +## Syntax + ```dax COALESCE(, [, ]…) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`expression`|Any DAX expression that returns a scalar expression.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`expression`|Any DAX expression that returns a scalar expression.| + ## Return value A scalar value coming from one of the expressions or BLANK if all expressions evaluate to BLANK. - + ## Remarks Input expressions may be of different data types. - + ## Example 1 - + The following DAX query: ```dax EVALUATE { COALESCE(BLANK(), 10, DATE(2008, 3, 3)) } ``` - Returns `10`, which is the first expression that does not evaluate to BLANK. + Returns `10`, which is the first expression that does not evaluate to BLANK. ## Example 2 - + The following DAX expression: ```dax diff --git a/query-languages/dax/collapse-function-dax.md b/query-languages/dax/collapse-function-dax.md index 2b2fa5522..9b1f8e5a6 100644 --- a/query-languages/dax/collapse-function-dax.md +++ b/query-languages/dax/collapse-function-dax.md @@ -71,8 +71,7 @@ The screenshot below shows the matrix with the three visual calculations. ## See also -[EXPAND](expand-function-dax.md) -[EXPANDALL](expandall-function-dax.md) -[COLLAPSEALL](collapseall-function-dax.md) - +[EXPAND](expand-function-dax.md) +[EXPANDALL](expandall-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) diff --git a/query-languages/dax/collapseall-function-dax.md b/query-languages/dax/collapseall-function-dax.md index 073dbf580..c46521a54 100644 --- a/query-languages/dax/collapseall-function-dax.md +++ b/query-languages/dax/collapseall-function-dax.md @@ -61,8 +61,7 @@ The screenshot below shows the matrix with the visual calculation. ## See also -[EXPAND](expand-function-dax.md) -[EXPANDALL](expandall-function-dax.md) -[COLLAPSE](collapse-function-dax.md) - +[EXPAND](expand-function-dax.md) +[EXPANDALL](expandall-function-dax.md) +[COLLAPSE](collapse-function-dax.md) diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index 18964704b..4587c1724 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -37,7 +37,6 @@ A table of statistics. Each row of this table represents a different column in t - For binary-typed columns, the Min and Max statistics will have BLANK values. - ## Example [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] @@ -64,5 +63,5 @@ Returns a table with statistics regarding all columns from all tables in the mod ## Related content -[Filter context](dax-overview.md#filter-context) -[CALCULATETABLE function](calculatetable-function-dax.md) +[Filter context](dax-overview.md#filter-context) +[CALCULATETABLE function](calculatetable-function-dax.md) diff --git a/query-languages/dax/combin-function-dax.md b/query-languages/dax/combin-function-dax.md index 64bdd2055..e12721b84 100644 --- a/query-languages/dax/combin-function-dax.md +++ b/query-languages/dax/combin-function-dax.md @@ -7,47 +7,47 @@ title: "COMBIN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the number of combinations for a given number of items. Use COMBIN to determine the total possible number of groups for a given number of items. - -## Syntax - +Returns the number of combinations for a given number of items. Use COMBIN to determine the total possible number of groups for a given number of items. + +## Syntax + ```dax -COMBIN(number, number_chosen) +COMBIN(number, number_chosen) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number of items.| -|`number_chosen`|The number of items in each combination.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number of items.| +|`number_chosen`|The number of items in each combination.| + ## Return value -Returns the number of combinations for a given number of items. - +Returns the number of combinations for a given number of items. + ## Remarks -- Numeric arguments are truncated to integers. +- Numeric arguments are truncated to integers. -- If either argument is nonnumeric, COMBIN returns the `#VALUE!` error value. +- If either argument is nonnumeric, COMBIN returns the `#VALUE!` error value. -- If number < 0, number_chosen < 0, or number < number_chosen, COMBIN returns the `#NUM!` error value. +- If number < 0, number_chosen < 0, or number < number_chosen, COMBIN returns the `#NUM!` error value. -- A combination is any set or subset of items, regardless of their internal order. Combinations are distinct from permutations, for which the internal order is significant. +- A combination is any set or subset of items, regardless of their internal order. Combinations are distinct from permutations, for which the internal order is significant. -- The number of combinations is as follows, where number = $n$ and number_chosen = $k$: +- The number of combinations is as follows, where number = $n$ and number_chosen = $k$: $${n \choose k} = \frac{P\_{k,n}}{k!} = \frac{n!}{k!(n-k)!}$$ - Where + Where $$P\_{k,n} = \frac{n!}{(n-k)!}$$ - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= COMBIN(8,2)`|Possible two-person teams that can be formed from 8 candidates.|28| +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= COMBIN(8,2)`|Possible two-person teams that can be formed from 8 candidates.|28| diff --git a/query-languages/dax/combina-function-dax.md b/query-languages/dax/combina-function-dax.md index db4fc4494..8c921e023 100644 --- a/query-languages/dax/combina-function-dax.md +++ b/query-languages/dax/combina-function-dax.md @@ -7,40 +7,40 @@ title: "COMBINA function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the number of combinations (with repetitions) for a given number of items. - -## Syntax - +Returns the number of combinations (with repetitions) for a given number of items. + +## Syntax + ```dax -COMBINA(number, number_chosen) +COMBINA(number, number_chosen) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Must be greater than or equal to 0, and greater than or equal to Number_chosen. Non-integer values are truncated.| -|`number_chosen`|Must be greater than or equal to 0. Non-integer values are truncated.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Must be greater than or equal to 0, and greater than or equal to Number_chosen. Non-integer values are truncated.| +|`number_chosen`|Must be greater than or equal to 0. Non-integer values are truncated.| + ## Return value -Returns the number of combinations (with repetitions) for a given number of items. - +Returns the number of combinations (with repetitions) for a given number of items. + ## Remarks -- If the value of either argument is outside of its constraints, COMBINA returns the `#NUM!` error value. +- If the value of either argument is outside of its constraints, COMBINA returns the `#NUM!` error value. -- If either argument is a non-numeric value, COMBINA returns the `#VALUE!` error value. +- If either argument is a non-numeric value, COMBINA returns the `#VALUE!` error value. -- The following equation is used, where $N$ is Number and $M$ is Number_chosen: +- The following equation is used, where $N$ is Number and $M$ is Number_chosen: $${N+M-1 \choose N-1}$$ - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= COMBINA(4,3)`|Returns the number of combinations (with repetitions) for 4 and 3.|20| -|`= COMBINA(10,3)`|Returns the number of combinations (with repetitions) for 10 and 3.|220| +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= COMBINA(4,3)`|Returns the number of combinations (with repetitions) for 4 and 3.|20| +|`= COMBINA(10,3)`|Returns the number of combinations (with repetitions) for 10 and 3.|220| diff --git a/query-languages/dax/combinevalues-function-dax.md b/query-languages/dax/combinevalues-function-dax.md index c46353300..dc4805f55 100644 --- a/query-languages/dax/combinevalues-function-dax.md +++ b/query-languages/dax/combinevalues-function-dax.md @@ -7,28 +7,28 @@ title: "COMBINEVALUES function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Joins two or more text strings into one text string. The primary purpose of this function is to support multi-column relationships in DirectQuery models. See [remarks](#remarks) for details. - -## Syntax - +Joins two or more text strings into one text string. The primary purpose of this function is to support multi-column relationships in DirectQuery models. See [remarks](#remarks) for details. + +## Syntax + ```dax COMBINEVALUES(, , [, ]…) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`delimiter`|A separator to use during concatenation. Must be a constant value.| -|`expression`|A DAX expression whose value will be joined into a single text string.| - -## Return value - -A concatenated string. - -## Remarks - -- The COMBINEVALUES function assumes, but does not validate, that when the input values are different, the output strings are also different. Based on this assumption, when COMBINEVALUES is used to create calculated columns in order to build a relationship that joins multiple columns from two DirectQuery tables, an optimized join condition is generated at query time. For example, if users want to create a relationship between Table1(Column1, Column2) and Table2(Column1, Column2), they can create two calculated columns, one on each table, as: + +### Parameters + +|Term|Definition| +|--------|--------------| +|`delimiter`|A separator to use during concatenation. Must be a constant value.| +|`expression`|A DAX expression whose value will be joined into a single text string.| + +## Return value + +A concatenated string. + +## Remarks + +- The COMBINEVALUES function assumes, but does not validate, that when the input values are different, the output strings are also different. Based on this assumption, when COMBINEVALUES is used to create calculated columns in order to build a relationship that joins multiple columns from two DirectQuery tables, an optimized join condition is generated at query time. For example, if users want to create a relationship between Table1(Column1, Column2) and Table2(Column1, Column2), they can create two calculated columns, one on each table, as: ```dax Table1[CalcColumn] = COMBINEVALUES(",", Table1[Column1], Table1[Column2]) @@ -50,16 +50,16 @@ A concatenated string. ```dax (Table1.Column2 = Table2.Column2 OR Table1.Column2 IS NULL AND Table2.Column2 IS NULL) - ``` + ``` - The join predicate can potentially deliver much better query performance than one that involves complex SQL operators and functions. - The COMBINEVALUES function relies on users to choose the appropriate delimiter to ensure that unique combinations of input values produce distinct output strings but it does not validate that the assumption is true. For example, if users choose `"| "` as the delimiter, but one row in Table1 has `Table1[Column1] = "| "` and `Table2 [Column2] = " "`, while one row in Table2 has `Table2[Column1] = " "` and `Table2[Column2] = "| "`, the two concatenated outputs will be the same `"|| "`, which seem to indicate that the two rows are a match in the join operation. The two rows are not joined together if both tables are from the same DirectQuery source although they are joined together if both tables are imported. -## Example +## Example The following DAX query: - + ```dax EVALUATE DISTINCT ( diff --git a/query-languages/dax/concatenate-function-dax.md b/query-languages/dax/concatenate-function-dax.md index 3a6be81d9..cefa0403d 100644 --- a/query-languages/dax/concatenate-function-dax.md +++ b/query-languages/dax/concatenate-function-dax.md @@ -6,80 +6,80 @@ title: "CONCATENATE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Joins two text strings into one text string. - -## Syntax - +Joins two text strings into one text string. + +## Syntax + ```dax -CONCATENATE(, ) +CONCATENATE(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text1`|The first text string to be joined into a single text string. The string can include text or numbers. You can also use column references.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text1`|The first text string to be joined into a single text string. The string can include text or numbers. You can also use column references.| |`text2`|The second text string to be joined into a single text string. The string can include text or numbers. You can also use column references.| - + ## Return value -A concatenated string. - +A concatenated string. + ## Remarks -- The CONCATENATE function joins two text strings into one text string. The joined items can be text, numbers, Boolean values represented as text, or a combination of those items. You can also use a column reference if the column contains appropriate values. - -- The CONCATENATE function in DAX accepts only two arguments, whereas the Excel CONCATENATE function accepts up to 255 arguments. If you need to concatenate multiple columns, you can create a series of calculations or use the concatenation operator (`&`) to join all of them in a simpler expression. - -- If you want to use text strings directly, rather than using a column reference, you must enclose each string in double quotation marks. - +- The CONCATENATE function joins two text strings into one text string. The joined items can be text, numbers, Boolean values represented as text, or a combination of those items. You can also use a column reference if the column contains appropriate values. + +- The CONCATENATE function in DAX accepts only two arguments, whereas the Excel CONCATENATE function accepts up to 255 arguments. If you need to concatenate multiple columns, you can create a series of calculations or use the concatenation operator (`&`) to join all of them in a simpler expression. + +- If you want to use text strings directly, rather than using a column reference, you must enclose each string in double quotation marks. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example: Concatenation of Literals - -The sample formula creates a new string value by combining two string values that you provide as arguments. + +## Example: Concatenation of Literals + +The sample formula creates a new string value by combining two string values that you provide as arguments. ```dax = CONCATENATE("Hello ", "World") ``` - -## Example: Concatenation of strings in columns -The sample formula returns the customer's full name as listed in a phone book. Note how a nested function is used as the second argument. This is one way to concatenate multiple strings when you have more than two values that you want to use as arguments. +## Example: Concatenation of strings in columns + +The sample formula returns the customer's full name as listed in a phone book. Note how a nested function is used as the second argument. This is one way to concatenate multiple strings when you have more than two values that you want to use as arguments. ```dax = CONCATENATE(Customer[LastName], CONCATENATE(", ", Customer[FirstName])) ``` - -## Example: Conditional concatenation of strings in columns - -The sample formula creates a new calculated column in the Customer table with the full customer name as a combination of first name, middle initial, and last name. If there is no middle name, the last name comes directly after the first name. If there is a middle name, only the first letter of the middle name is used and the initial letter is followed by a period. + +## Example: Conditional concatenation of strings in columns + +The sample formula creates a new calculated column in the Customer table with the full customer name as a combination of first name, middle initial, and last name. If there is no middle name, the last name comes directly after the first name. If there is a middle name, only the first letter of the middle name is used and the initial letter is followed by a period. ```dax = CONCATENATE( [FirstName]&" ", CONCATENATE( IF( LEN([MiddleName])>1, LEFT([MiddleName],1)&". ", ""), [LastName])) ``` - -This formula uses nested CONCATENATE and IF functions, together with the ampersand (`&`) operator, to conditionally concatenate three string values and add spaces as separators. - + +This formula uses nested CONCATENATE and IF functions, together with the ampersand (`&`) operator, to conditionally concatenate three string values and add spaces as separators. + ## Example: Concatenation of columns with different data types -The following example demonstrates how to concatenate values in columns that have different data types. If the value that you are concatenating is numeric, the value will be implicitly converted to text. If both values are numeric, both values will be cast to text and concatenated as if they were strings. - -|Product description|Product abbreviation (column 1 of composite key)|Product number (column 2 of composite key)|New generated key column| -|-----------------------|----------------------------------------------------|----------------------------------------------|----------------------------| -|Mountain bike|MTN|40|MTN40| -|Mountain bike|MTN|42|MTN42| +The following example demonstrates how to concatenate values in columns that have different data types. If the value that you are concatenating is numeric, the value will be implicitly converted to text. If both values are numeric, both values will be cast to text and concatenated as if they were strings. + +|Product description|Product abbreviation (column 1 of composite key)|Product number (column 2 of composite key)|New generated key column| +|-----------------------|----------------------------------------------------|----------------------------------------------|----------------------------| +|Mountain bike|MTN|40|MTN40| +|Mountain bike|MTN|42|MTN42| ```dax -= CONCATENATE('Products'[Product abbreviation],'Products'[Product number]) += CONCATENATE('Products'[Product abbreviation],'Products'[Product number]) ``` - -The CONCATENATE function in DAX accepts only two arguments, whereas the Excel CONCATENATE function accepts up to 255 arguments. If you need to add more arguments, you can use the ampersand (&) operator. For example, the following formula produces the results, MTN-40 and MTN-42. - + +The CONCATENATE function in DAX accepts only two arguments, whereas the Excel CONCATENATE function accepts up to 255 arguments. If you need to add more arguments, you can use the ampersand (&) operator. For example, the following formula produces the results, MTN-40 and MTN-42. + ```dax -= [Product abbreviation] & "-" & [Product number] += [Product abbreviation] & "-" & [Product number] ``` - + ## Related content -[CONCATENATEX](concatenatex-function-dax.md) +[CONCATENATEX](concatenatex-function-dax.md) diff --git a/query-languages/dax/concatenatex-function-dax.md b/query-languages/dax/concatenatex-function-dax.md index b91a3cb0f..12c53d5e3 100644 --- a/query-languages/dax/concatenatex-function-dax.md +++ b/query-languages/dax/concatenatex-function-dax.md @@ -5,22 +5,22 @@ title: "CONCATENATEX function (DAX)" # CONCATENATEX [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Concatenates the result of an expression evaluated for each row in a table. - -## Syntax - + +Concatenates the result of an expression evaluated for each row in a table. + +## Syntax + ```dax -CONCATENATEX(
, [, [, [, ]]...]) +CONCATENATEX(
, [, [, [, ]]...]) ``` - -### Parameters - -|Term|Definition| -|-----|-----| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of `table`.| -|`delimiter`|(Optional) A separator to use during concatenation.| + +### Parameters + +|Term|Definition| +|-----|-----| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of `table`.| +|`delimiter`|(Optional) A separator to use during concatenation.| |`orderBy_expression`|(Optional) Any DAX expression where the result value is used to sort the concatenated values in the output string. It is evaluated for each row of `table`.| |`order`|(Optional) A value that specifies how to sort `orderBy_expression` values, ascending or descending.| @@ -34,10 +34,10 @@ The optional `order` parameter accepts the following values: ## Return value A concatenated string. - + ## Remarks -- This function takes as its first argument a table or an expression that returns a table. The second argument is a column that contains the values you want to concatenate, or an expression that returns a value. +- This function takes as its first argument a table or an expression that returns a table. The second argument is a column that contains the values you want to concatenate, or an expression that returns a value. - Concatenated values are not necessarily sorted in any particular order, unless `orderBy_expression` is specified. @@ -45,18 +45,18 @@ A concatenated string. ## Example -Employees table - -|FirstName|LastName| -|-------------|------------| -|Alan|Brewer| -|Michael|Blythe| +Employees table -The following formula: +|FirstName|LastName| +|-------------|------------| +|Alan|Brewer| +|Michael|Blythe| + +The following formula: ```dax -= CONCATENATEX(Employees, [FirstName] & " " & [LastName], ",") += CONCATENATEX(Employees, [FirstName] & " " & [LastName], ",") ``` - -Returns: -"Alan Brewer, Michael Blythe" + +Returns: +"Alan Brewer, Michael Blythe" diff --git a/query-languages/dax/confidence-norm-function-dax.md b/query-languages/dax/confidence-norm-function-dax.md index 1be7d8959..919e7c229 100644 --- a/query-languages/dax/confidence-norm-function-dax.md +++ b/query-languages/dax/confidence-norm-function-dax.md @@ -6,39 +6,39 @@ title: "CONFIDENCE.NORM function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -The confidence interval is a range of values. Your sample mean, x, is at the center of this range and the range is x ± CONFIDENCE.NORM. For example, if x is the sample mean of delivery times for products ordered through the mail, x ± CONFIDENCE.NORM is a range of population means. For any population mean, μ0, in this range, the probability of obtaining a sample mean further from μ0 than x is greater than alpha; for any population mean, μ0, not in this range, the probability of obtaining a sample mean further from μ0 than x is less than alpha. In other words, assume that we use x, standard_dev, and size to construct a two-tailed test at significance level alpha of the hypothesis that the population mean is μ0. Then we will not reject that hypothesis if μ0 is in the confidence interval and will reject that hypothesis if μ0 is not in the confidence interval. The confidence interval does not allow us to infer that there is probability 1 – alpha that our next package will take a delivery time that is in the confidence interval. - -## Syntax - +The confidence interval is a range of values. Your sample mean, x, is at the center of this range and the range is x ± CONFIDENCE.NORM. For example, if x is the sample mean of delivery times for products ordered through the mail, x ± CONFIDENCE.NORM is a range of population means. For any population mean, μ0, in this range, the probability of obtaining a sample mean further from μ0 than x is greater than alpha; for any population mean, μ0, not in this range, the probability of obtaining a sample mean further from μ0 than x is less than alpha. In other words, assume that we use x, standard_dev, and size to construct a two-tailed test at significance level alpha of the hypothesis that the population mean is μ0. Then we will not reject that hypothesis if μ0 is in the confidence interval and will reject that hypothesis if μ0 is not in the confidence interval. The confidence interval does not allow us to infer that there is probability 1 – alpha that our next package will take a delivery time that is in the confidence interval. + +## Syntax + ```dax -CONFIDENCE.NORM(alpha,standard_dev,size) +CONFIDENCE.NORM(alpha,standard_dev,size) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`alpha`|The significance level used to compute the confidence level. The confidence level equals 100*(1 - alpha)%, or in other words, an alpha of 0.05 indicates a 95 percent confidence level.| -|`standard_dev`|The population standard deviation for the data range and is assumed to be known.| -|`standard_dev,size`|The sample size.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`alpha`|The significance level used to compute the confidence level. The confidence level equals 100*(1 - alpha)%, or in other words, an alpha of 0.05 indicates a 95 percent confidence level.| +|`standard_dev`|The population standard deviation for the data range and is assumed to be known.| +|`standard_dev,size`|The sample size.| + ## Return value -A range of values - +A range of values + ## Remarks -- If any argument is nonnumeric, CONFIDENCE.NORM returns the `#VALUE!` error value. +- If any argument is nonnumeric, CONFIDENCE.NORM returns the `#VALUE!` error value. -- If `alpha ≤ 0` or `alpha ≥ 1`, CONFIDENCE.NORM returns the `#NUM!` error value. +- If `alpha ≤ 0` or `alpha ≥ 1`, CONFIDENCE.NORM returns the `#NUM!` error value. -- If `standard_dev ≤ 0`, CONFIDENCE.NORM returns the `#NUM!` error value. +- If `standard_dev ≤ 0`, CONFIDENCE.NORM returns the `#NUM!` error value. -- If `size` is not an integer, it is rounded. +- If `size` is not an integer, it is rounded. -- If `size < 1`, CONFIDENCE.NORM returns the `#NUM!` error value. +- If `size < 1`, CONFIDENCE.NORM returns the `#NUM!` error value. -- If we assume alpha equals 0.05, we need to calculate the area under the standard normal curve that equals (1 - alpha), or 95 percent. This value is ± 1.96. The confidence interval is therefore: +- If we assume alpha equals 0.05, we need to calculate the area under the standard normal curve that equals (1 - alpha), or 95 percent. This value is ± 1.96. The confidence interval is therefore: $$\overline{x} \pm 1.96 \bigg( \frac{\sigma}{\sqrt{n}} \bigg) $$ diff --git a/query-languages/dax/confidence-t-function-dax.md b/query-languages/dax/confidence-t-function-dax.md index 3528ae4ca..31b52393c 100644 --- a/query-languages/dax/confidence-t-function-dax.md +++ b/query-languages/dax/confidence-t-function-dax.md @@ -6,42 +6,42 @@ title: "CONFIDENCE.T function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the confidence interval for a population mean, using a Student's t distribution. - -## Syntax - +Returns the confidence interval for a population mean, using a Student's t distribution. + +## Syntax + ```dax -CONFIDENCE.T(alpha,standard_dev,size) +CONFIDENCE.T(alpha,standard_dev,size) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`alpha`|The significance level used to compute the confidence level. The confidence level equals 100*(1 - alpha)%, or in other words, an alpha of 0.05 indicates a 95 percent confidence level.| -|`standard_dev`|The population standard deviation for the data range and is assumed to be known.| -|`size`|The sample size.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`alpha`|The significance level used to compute the confidence level. The confidence level equals 100*(1 - alpha)%, or in other words, an alpha of 0.05 indicates a 95 percent confidence level.| +|`standard_dev`|The population standard deviation for the data range and is assumed to be known.| +|`size`|The sample size.| + ## Return value -Returns the confidence interval for a population mean, using a Student's t distribution. - +Returns the confidence interval for a population mean, using a Student's t distribution. + ## Remarks -- If any argument is nonnumeric, CONFIDENCE.T returns the `#VALUE!` error value. - -- If `alpha ≤ 0` or `alpha ≥ 1`, CONFIDENCE.T returns the `#NUM!` error value. - -- If `standard_dev ≤ 0`, CONFIDENCE.T returns the `#NUM!` error value. - -- If size is not an integer, it is rounded. - -- If size equals 1, CONFIDENCE.T returns #DIV/0! error value. +- If any argument is nonnumeric, CONFIDENCE.T returns the `#VALUE!` error value. + +- If `alpha ≤ 0` or `alpha ≥ 1`, CONFIDENCE.T returns the `#NUM!` error value. + +- If `standard_dev ≤ 0`, CONFIDENCE.T returns the `#NUM!` error value. + +- If size is not an integer, it is rounded. + +- If size equals 1, CONFIDENCE.T returns #DIV/0! error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= CONFIDENCE.T(0.05,1,50)`|Confidence interval for the mean of a population based on a sample size of 50, with a 5% significance level and a standard deviation of 1. This is based on a Student's t-distribution.|0.284196855| +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= CONFIDENCE.T(0.05,1,50)`|Confidence interval for the mean of a population based on a sample size of 50, with a 5% significance level and a standard deviation of 1. This is based on a Student's t-distribution.|0.284196855| diff --git a/query-languages/dax/contains-function-dax.md b/query-languages/dax/contains-function-dax.md index c80774e7d..6d02cf204 100644 --- a/query-languages/dax/contains-function-dax.md +++ b/query-languages/dax/contains-function-dax.md @@ -6,40 +6,40 @@ title: "CONTAINS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns true if values for all referred columns exist, or are contained, in those columns; otherwise, the function returns false. - -## Syntax - +Returns true if values for all referred columns exist, or are contained, in those columns; otherwise, the function returns false. + +## Syntax + ```dax -CONTAINS(
, , [, , ]…) +CONTAINS(
, , [, , ]…) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`table`|Any DAX expression that returns a table of data.| -|`columnName`|The name of an existing column, using standard DAX syntax. It cannot be an expression. | -|`value`|Any DAX expression that returns a single scalar value, that is to be sought in `columnName`. The expression is to be evaluated exactly once and before it is passed to the argument list. | +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|Any DAX expression that returns a table of data.| +|`columnName`|The name of an existing column, using standard DAX syntax. It cannot be an expression. | +|`value`|Any DAX expression that returns a single scalar value, that is to be sought in `columnName`. The expression is to be evaluated exactly once and before it is passed to the argument list. | ## Return value -A value of `TRUE` if each specified `value` can be found in the corresponding `columnName`, or are contained, in those columns; otherwise, the function returns `FALSE`. - -## Remarks - -- The arguments `columnName` and `value` must come in pairs; otherwise an error is returned. - -- `columnName` must belong to the specified `table`, or to a table that is related to `table`. - -- If `columnName` refers to a column in a related table then it must be fully qualified; otherwise, an error is returned. +A value of `TRUE` if each specified `value` can be found in the corresponding `columnName`, or are contained, in those columns; otherwise, the function returns `FALSE`. + +## Remarks + +- The arguments `columnName` and `value` must come in pairs; otherwise an error is returned. + +- `columnName` must belong to the specified `table`, or to a table that is related to `table`. + +- If `columnName` refers to a column in a related table then it must be fully qualified; otherwise, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example creates a measure that tells you whether there were any Internet sales of product 214 and to customer 11185 at the same time. - +The following example creates a measure that tells you whether there were any Internet sales of product 214 and to customer 11185 at the same time. + ```dax -= CONTAINS(InternetSales, [ProductKey], 214, [CustomerKey], 11185) += CONTAINS(InternetSales, [ProductKey], 214, [CustomerKey], 11185) ``` diff --git a/query-languages/dax/containsrow-function-dax.md b/query-languages/dax/containsrow-function-dax.md index 49fa531a5..824d581e4 100644 --- a/query-languages/dax/containsrow-function-dax.md +++ b/query-languages/dax/containsrow-function-dax.md @@ -13,22 +13,22 @@ Returns `TRUE` if there exists at least one row where all columns have specified ```dax CONTAINSROW(
, [, [, …] ] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Table`|A table to test.| -|`Value`|Any valid DAX expression that returns a scalar value.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Table`|A table to test.| +|`Value`|Any valid DAX expression that returns a scalar value.| ## Return value `TRUE` or `FALSE`. - + ## Remarks - Except syntax, the `IN` operator and CONTAINSROW function are functionally equivalent. - + ```dax IN ( , , … ) IN @@ -129,7 +129,7 @@ Return the following table with a single column: ---------|--------- Black | Grey | -Multi | +Multi | NA | Silver | Silver\Black | @@ -137,5 +137,5 @@ White | ## Related content -[IN operator](dax-operator-reference.md#logical-operators) +[IN operator](dax-operator-reference.md#logical-operators) [DAX queries](dax-queries.md) diff --git a/query-languages/dax/containsstring-function-dax.md b/query-languages/dax/containsstring-function-dax.md index 9c3218911..5211da960 100644 --- a/query-languages/dax/containsstring-function-dax.md +++ b/query-languages/dax/containsstring-function-dax.md @@ -6,22 +6,22 @@ title: "CONTAINSSTRING function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns `TRUE` or `FALSE` indicating whether one string contains another string. - -## Syntax - +Returns `TRUE` or `FALSE` indicating whether one string contains another string. + +## Syntax + ```dax CONTAINSSTRING(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`within_text`|The text in which you want to search for find_text.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`within_text`|The text in which you want to search for find_text.| |`find_text`|The text you want to find.| - -## Return value + +## Return value `TRUE` if find_text is a substring of within_text; otherwise `FALSE`. @@ -31,7 +31,7 @@ CONTAINSSTRING(, ) - You can use `?` and `*` wildcard characters. Use `~` to escape wildcard characters. -## Example +## Example DAX query diff --git a/query-languages/dax/containsstringexact-function-dax.md b/query-languages/dax/containsstringexact-function-dax.md index c68e3a5e6..dc35ec8f1 100644 --- a/query-languages/dax/containsstringexact-function-dax.md +++ b/query-languages/dax/containsstringexact-function-dax.md @@ -7,21 +7,21 @@ title: "CONTAINSSTRINGEXACT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns `TRUE` or `FALSE` indicating whether one string contains another string. - -## Syntax - + +## Syntax + ```dax CONTAINSSTRINGEXACT(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`within_text`|The text in which you want to search for find_text.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`within_text`|The text in which you want to search for find_text.| |`find_text`|The text you want to find.| - -## Return value + +## Return value `TRUE` if find_text is a substring of within_text; otherwise `FALSE`. @@ -29,7 +29,7 @@ CONTAINSSTRINGEXACT(, ) CONTAINSSTRINGEXACT is case-sensitive. -## Example +## Example DAX query diff --git a/query-languages/dax/convert-function-dax.md b/query-languages/dax/convert-function-dax.md index 20e0f6ae1..e3fdf0d32 100644 --- a/query-languages/dax/convert-function-dax.md +++ b/query-languages/dax/convert-function-dax.md @@ -7,40 +7,40 @@ title: "CONVERT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Converts an expression of one data type to another. - -## Syntax - + +## Syntax + ```dax -CONVERT(, ) +CONVERT(, ) ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`Expression`|Any valid expression.| -|`Datatype`|An enumeration that includes: INTEGER(Whole Number), DOUBLE(Decimal Number), STRING(Text), BOOLEAN(True/False), CURRENCY(Fixed Decimal Number), DATETIME(Date, Time, etc).| - + +|Term|Definition| +|--------|--------------| +|`Expression`|Any valid expression.| +|`Datatype`|An enumeration that includes: INTEGER(Whole Number), DOUBLE(Decimal Number), STRING(Text), BOOLEAN(True/False), CURRENCY(Fixed Decimal Number), DATETIME(Date, Time, etc).| + ## Return value Returns the value of `Expression`, translated to `Datatype`. - -## Remarks + +## Remarks - The function returns an error when a value cannot be converted to the specified data type. - DAX calculated columns must be of a single data type. Since MEDIAN and MEDIANX functions over an integer column return mixed data types, either integer or double, the following calculated column expression will return an error as a result: `MedianNumberCarsOwned = MEDIAN(DimCustomer[NumberCarsOwned])`. -- To avoid mixed data types, change the expression to always return the double data type, for example: +- To avoid mixed data types, change the expression to always return the double data type, for example: `MedianNumberCarsOwned = MEDIANX(DimCustomer, CONVERT([NumberCarsOwned], DOUBLE))`. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Example DAX query ```dax -EVALUATE { CONVERT(DATE(1900, 1, 1), INTEGER) } +EVALUATE { CONVERT(DATE(1900, 1, 1), INTEGER) } ``` Returns diff --git a/query-languages/dax/cos-function-dax.md b/query-languages/dax/cos-function-dax.md index a78df7f9e..93c6f4ea1 100644 --- a/query-languages/dax/cos-function-dax.md +++ b/query-languages/dax/cos-function-dax.md @@ -6,32 +6,32 @@ title: "COS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the cosine of the given angle. - -## Syntax - +Returns the cosine of the given angle. + +## Syntax + ```dax -COS(number) +COS(number) ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Required. The angle in radians for which you want the cosine.| - + +|Term|Definition| +|--------|--------------| +|`number`|Required. The angle in radians for which you want the cosine.| + ## Return value -Returns the cosine of the given angle. - +Returns the cosine of the given angle. + ## Remarks -If the angle is in degrees, either multiply the angle by PI()/180 or use the RADIANS function to convert the angle to radians. - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= COS(1.047)`|Cosine of 1.047 radians|0.5001711| -|`= COS(60*PI()/180)`|Cosine of 60 degrees|0.5| -|`= COS(RADIANS(60))`|Cosine of 60 degrees|0.5| +If the angle is in degrees, either multiply the angle by PI()/180 or use the RADIANS function to convert the angle to radians. + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= COS(1.047)`|Cosine of 1.047 radians|0.5001711| +|`= COS(60*PI()/180)`|Cosine of 60 degrees|0.5| +|`= COS(RADIANS(60))`|Cosine of 60 degrees|0.5| diff --git a/query-languages/dax/cosh-function-dax.md b/query-languages/dax/cosh-function-dax.md index c5c419c02..b154326fd 100644 --- a/query-languages/dax/cosh-function-dax.md +++ b/query-languages/dax/cosh-function-dax.md @@ -6,35 +6,35 @@ title: "COSH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the hyperbolic cosine of a number. - -## Syntax - +Returns the hyperbolic cosine of a number. + +## Syntax + ```dax -COSH(number) +COSH(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Required. Any real number for which you want to find the hyperbolic cosine.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Required. Any real number for which you want to find the hyperbolic cosine.| + ## Return value -The hyperbolic cosine of a number. - +The hyperbolic cosine of a number. + ## Remarks -- The formula for the hyperbolic cosine is: +- The formula for the hyperbolic cosine is: $$\text{COSH}(z) = \frac{e^{z} + e^{-z}}{2}$$ - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + |DAX expression|Description|Result| -|-----------|---------------|----------| -|`= COSH(4)`|Hyperbolic cosine of 4|27.308233| -|`= COSH(EXP(1))`|Hyperbolic cosine of the base of the natural logarithm.|7.6101251| +|-----------|---------------|----------| +|`= COSH(4)`|Hyperbolic cosine of 4|27.308233| +|`= COSH(EXP(1))`|Hyperbolic cosine of the base of the natural logarithm.|7.6101251| diff --git a/query-languages/dax/cot-function-dax.md b/query-languages/dax/cot-function-dax.md index 900337968..347f1b1a9 100644 --- a/query-languages/dax/cot-function-dax.md +++ b/query-languages/dax/cot-function-dax.md @@ -6,24 +6,24 @@ title: "COT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the cotangent of an angle specified in radians. - -## Syntax - +Returns the cotangent of an angle specified in radians. + +## Syntax + ```dax COT () ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The angle in radians for which you want the cotangent.| - + +|Term|Definition| +|--------|--------------| +|`number`|The angle in radians for which you want the cotangent.| + ## Return value -The cotangent of the given angle. - +The cotangent of the given angle. + ## Remarks - The absolute value of number must be less than 2^27 and cannot be 0. @@ -32,10 +32,10 @@ The cotangent of the given angle. - If number is a non-numeric value, an error is returned. -## Example - +## Example + The following DAX query, - + ```dax EVALUATE { COT(30) } ``` diff --git a/query-languages/dax/coth-function-dax.md b/query-languages/dax/coth-function-dax.md index b3f1175aa..f93faa488 100644 --- a/query-languages/dax/coth-function-dax.md +++ b/query-languages/dax/coth-function-dax.md @@ -7,23 +7,23 @@ title: "COTH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the hyperbolic cotangent of a hyperbolic angle. - -## Syntax - + +## Syntax + ```dax COTH () ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The hyperbolic angle in radians for which you want the hyperbolic cotangent.| - + +|Term|Definition| +|--------|--------------| +|`number`|The hyperbolic angle in radians for which you want the hyperbolic cotangent.| + ## Return value -The hyperbolic cotangent of the given angle. - +The hyperbolic cotangent of the given angle. + ## Remarks - The hyperbolic cotangent is an analog of the ordinary (circular) cotangent. @@ -40,10 +40,10 @@ The hyperbolic cotangent of the given angle. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + The following DAX query, - + ```dax EVALUATE { COTH(2) } ``` diff --git a/query-languages/dax/count-function-dax.md b/query-languages/dax/count-function-dax.md index d3063c268..01573c2da 100644 --- a/query-languages/dax/count-function-dax.md +++ b/query-languages/dax/count-function-dax.md @@ -7,31 +7,31 @@ title: "COUNT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Counts the number of rows in the specified column that contain non-blank values. - -## Syntax - + +## Syntax + ```dax -COUNT() +COUNT() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column that contains the values to be counted.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|The column that contains the values to be counted.| + ## Return value -A whole number. - +A whole number. + ## Remarks -- The only argument allowed to this function is a column. The COUNT function counts rows that contain the following kinds of values: - - - Numbers - - Dates +- The only argument allowed to this function is a column. The COUNT function counts rows that contain the following kinds of values: + + - Numbers + - Dates - Strings - + - When the function finds no rows to count, it returns a blank. - Blank values are skipped. `TRUE`/`FALSE` values are not supported. @@ -44,17 +44,17 @@ A whole number. ## Example -The following example shows how to count the number of values in the column, ShipDate. - +The following example shows how to count the number of values in the column, ShipDate. + ```dax -= COUNT([ShipDate]) += COUNT([ShipDate]) ``` -To count logical values or text, use the COUNTA or COUNTAX functions. - -## Related content +To count logical values or text, use the COUNTA or COUNTAX functions. + +## Related content -[COUNTA function](counta-function-dax.md) -[COUNTAX function](countax-function-dax.md) -[COUNTX function](countx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[COUNTA function](counta-function-dax.md) +[COUNTAX function](countax-function-dax.md) +[COUNTX function](countx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/counta-function-dax.md b/query-languages/dax/counta-function-dax.md index 8bfdafe34..a4ec78ae0 100644 --- a/query-languages/dax/counta-function-dax.md +++ b/query-languages/dax/counta-function-dax.md @@ -7,41 +7,41 @@ title: "COUNTA function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Counts the number of rows in the specified column that contain non-blank values. - -## Syntax - + +## Syntax + ```dax -COUNTA() +COUNTA() ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column that contains the values to be counted.| - + +|Term|Definition| +|--------|--------------| +|`column`|The column that contains the values to be counted.| + ## Return value -A whole number. - -## Remarks - +A whole number. + +## Remarks + - When the function does not find any rows to count, the function returns a blank. - Unlike [COUNT](count-function-dax.md), COUNTA supports Boolean data type. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example The following example returns the number of all rows in the `Reseller` table that have any kind of value in the column that stores phone numbers. - + ```dax -= COUNTA(Reseller[Phone]) += COUNTA(Reseller[Phone]) ``` - + ## Related content -[COUNT function](count-function-dax.md) -[COUNTAX function](countax-function-dax.md) -[COUNTX function](countx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[COUNT function](count-function-dax.md) +[COUNTAX function](countax-function-dax.md) +[COUNTX function](countx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/countax-function-dax.md b/query-languages/dax/countax-function-dax.md index 79f4ee05d..54c87e5d6 100644 --- a/query-languages/dax/countax-function-dax.md +++ b/query-languages/dax/countax-function-dax.md @@ -6,44 +6,44 @@ title: "COUNTAX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -The COUNTAX function counts non-blank results when evaluating the result of an expression over a table. That is, it works just like the COUNTA function, but is used to iterate through the rows in a table and count rows where the specified expressions results in a non-blank result. - -## Syntax - +The COUNTAX function counts non-blank results when evaluating the result of an expression over a table. That is, it works just like the COUNTA function, but is used to iterate through the rows in a table and count rows where the specified expressions results in a non-blank result. + +## Syntax + ```dax -COUNTAX(
,) +COUNTAX(
,) ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of the table.| - + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| + ## Return value -A whole number. - +A whole number. + ## Remarks -- Like the COUNTA function, the COUNTAX function counts cells containing any type of information, including other expressions. For example, if the column contains an expression that evaluates to an empty string, the COUNTAX function treats that result as non-blank. Usually the COUNTAX function does not count empty cells but in this case the cell contains a formula, so it is counted. - +- Like the COUNTA function, the COUNTAX function counts cells containing any type of information, including other expressions. For example, if the column contains an expression that evaluates to an empty string, the COUNTAX function treats that result as non-blank. Usually the COUNTAX function does not count empty cells but in this case the cell contains a formula, so it is counted. + - Whenever the function finds no rows to aggregate, the function returns a blank. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example counts the number of nonblank rows in the column, Phone, using the table that results from filtering the Reseller table on `[Status] = Active`. - +The following example counts the number of nonblank rows in the column, Phone, using the table that results from filtering the Reseller table on `[Status] = Active`. + ```dax -= COUNTAX(FILTER('Reseller',[Status]="Active"),[Phone]) += COUNTAX(FILTER('Reseller',[Status]="Active"),[Phone]) ``` - + ## Related content -[COUNT function](count-function-dax.md) -[COUNTA function](counta-function-dax.md) -[COUNTX function](countx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[COUNT function](count-function-dax.md) +[COUNTA function](counta-function-dax.md) +[COUNTX function](countx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/countblank-function-dax.md b/query-languages/dax/countblank-function-dax.md index cea13520d..671565490 100644 --- a/query-languages/dax/countblank-function-dax.md +++ b/query-languages/dax/countblank-function-dax.md @@ -6,48 +6,48 @@ title: "COUNTBLANK function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Counts the number of blank cells in a column. - -## Syntax - +Counts the number of blank cells in a column. + +## Syntax + ```dax -COUNTBLANK() +COUNTBLANK() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column that contains the blank cells to be counted.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|The column that contains the blank cells to be counted.| + ## Return value -A whole number. If no rows are found that meet the condition, blanks are returned. - +A whole number. If no rows are found that meet the condition, blanks are returned. + ## Remarks -- The only argument allowed to this function is a column. You can use columns containing any type of data, but only blank cells are counted. Cells that have the value zero (0) are not counted, as zero is considered a numeric value and not a blank. - -- Whenever there are no rows to aggregate, the function returns a blank. However, if there are rows, but none of them meet the specified criteria, the function returns 0. Microsoft Excel also returns a zero if no rows are found that meet the conditions. - -- In other words, if the COUNTBLANK function finds no blanks, the result will be zero, but if there are no rows to check, the result will be blank. - +- The only argument allowed to this function is a column. You can use columns containing any type of data, but only blank cells are counted. Cells that have the value zero (0) are not counted, as zero is considered a numeric value and not a blank. + +- Whenever there are no rows to aggregate, the function returns a blank. However, if there are rows, but none of them meet the specified criteria, the function returns 0. Microsoft Excel also returns a zero if no rows are found that meet the conditions. + +- In other words, if the COUNTBLANK function finds no blanks, the result will be zero, but if there are no rows to check, the result will be blank. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows how to count the number of rows in the table Reseller that have blank values for BankName. - +The following example shows how to count the number of rows in the table Reseller that have blank values for BankName. + ```dax -= COUNTBLANK(Reseller[BankName]) += COUNTBLANK(Reseller[BankName]) ``` -To count logical values or text, use the COUNTA or COUNTAX functions. - +To count logical values or text, use the COUNTA or COUNTAX functions. + ## Related content -[COUNT function](count-function-dax.md) -[COUNTA function](counta-function-dax.md) -[COUNTAX function](countax-function-dax.md) -[COUNTX function](countx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[COUNT function](count-function-dax.md) +[COUNTA function](counta-function-dax.md) +[COUNTAX function](countax-function-dax.md) +[COUNTX function](countx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/countrows-function-dax.md b/query-languages/dax/countrows-function-dax.md index 66bacb255..c04bee395 100644 --- a/query-languages/dax/countrows-function-dax.md +++ b/query-languages/dax/countrows-function-dax.md @@ -6,64 +6,64 @@ title: "COUNTROWS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -The COUNTROWS function counts the number of rows in the specified table, or in a table defined by an expression. - -## Syntax - +The COUNTROWS function counts the number of rows in the specified table, or in a table defined by an expression. + +## Syntax + ```dax -COUNTROWS([
]) +COUNTROWS([
]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|(Optional) The name of the table that contains the rows to be counted, or an expression that returns a table. When not provided, the default value is the home table of the current expression. | - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|(Optional) The name of the table that contains the rows to be counted, or an expression that returns a table. When not provided, the default value is the home table of the current expression. | + ## Return value -A whole number. - +A whole number. + ## Remarks -- This function can be used to count the number of rows in a base table, but more often is used to count the number of rows that result from filtering a table, or applying context to a table. - +- This function can be used to count the number of rows in a base table, but more often is used to count the number of rows that result from filtering a table, or applying context to a table. + - When the table argument contains no rows, the function returns BLANK. - To learn more about best practices when using COUNT and COUNTROWS, see [Use COUNTROWS instead of COUNT in DAX](best-practices/dax-countrows.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example 1 -The following example shows how to count the number of rows in the table Orders. The expected result is 52761. - +The following example shows how to count the number of rows in the table Orders. The expected result is 52761. + ```dax -= COUNTROWS('Orders') += COUNTROWS('Orders') ``` - + ## Example 2 -The following example demonstrates how to use COUNTROWS with a row context. In this scenario, there are two sets of data that are related by order number. The table Reseller contains one row for each reseller; the table ResellerSales contains multiple rows for each order, each row containing one order for a particular reseller. The tables are connected by a relationship on the column, ResellerKey. - -The formula gets the value of ResellerKey and then counts the number of rows in the related table that have the same reseller ID. The result is output in the column, **CalculatedColumn1**. - +The following example demonstrates how to use COUNTROWS with a row context. In this scenario, there are two sets of data that are related by order number. The table Reseller contains one row for each reseller; the table ResellerSales contains multiple rows for each order, each row containing one order for a particular reseller. The tables are connected by a relationship on the column, ResellerKey. + +The formula gets the value of ResellerKey and then counts the number of rows in the related table that have the same reseller ID. The result is output in the column, **CalculatedColumn1**. + ```dax -= COUNTROWS(RELATEDTABLE(ResellerSales)) += COUNTROWS(RELATEDTABLE(ResellerSales)) ``` -The following table shows a portion of the expected results: - -|ResellerKey|CalculatedColumn1| -|---------------|---------------------| -|1|73| -|2|70| -|3|394| - +The following table shows a portion of the expected results: + +|ResellerKey|CalculatedColumn1| +|---------------|---------------------| +|1|73| +|2|70| +|3|394| + ## Related content -[COUNT function](count-function-dax.md) -[COUNTA function](counta-function-dax.md) -[COUNTAX function](countax-function-dax.md) -[COUNTX function](countx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[COUNT function](count-function-dax.md) +[COUNTA function](counta-function-dax.md) +[COUNTAX function](countax-function-dax.md) +[COUNTX function](countx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/countx-function-dax.md b/query-languages/dax/countx-function-dax.md index e6fb6b027..bb105da04 100644 --- a/query-languages/dax/countx-function-dax.md +++ b/query-languages/dax/countx-function-dax.md @@ -6,54 +6,54 @@ title: "COUNTX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Counts the number of rows that contain a non-blank value or an expression that evaluates to a non-blank value, when evaluating an expression over a table. - -## Syntax - +Counts the number of rows that contain a non-blank value or an expression that evaluates to a non-blank value, when evaluating an expression over a table. + +## Syntax + ```dax -COUNTX(
,) +COUNTX(
,) ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows to be counted.| -|`expression`|An expression that returns the set of values that contains the values you want to count.| - + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows to be counted.| +|`expression`|An expression that returns the set of values that contains the values you want to count.| + ## Return value -An integer. - +An integer. + ## Remarks -- The COUNTX function takes two arguments. The first argument must always be a table, or any expression that returns a table. The second argument is the column or expression that is searched by COUNTX. - +- The COUNTX function takes two arguments. The first argument must always be a table, or any expression that returns a table. The second argument is the column or expression that is searched by COUNTX. + - The COUNTX function counts only values, dates, or strings. If the function finds no rows to count, it returns a blank. - -- If you want to count logical values, use the COUNTAX function. + +- If you want to count logical values, use the COUNTAX function. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example 1 -The following formula returns a count of all rows in the Product table that have a list price. - +The following formula returns a count of all rows in the Product table that have a list price. + ```dax -= COUNTX(Product,[ListPrice]) += COUNTX(Product,[ListPrice]) ``` - + ## Example 2 -The following formula illustrates how to pass a filtered table to COUNTX for the first argument. The formula uses a filter expression to get only the rows in the Product table that meet the condition, ProductSubCategory = "Caps", and then counts the rows in the resulting table that have a list price. The FILTER expression applies to the table Products but uses a value that you look up in the related table, ProductSubCategory. - +The following formula illustrates how to pass a filtered table to COUNTX for the first argument. The formula uses a filter expression to get only the rows in the Product table that meet the condition, ProductSubCategory = "Caps", and then counts the rows in the resulting table that have a list price. The FILTER expression applies to the table Products but uses a value that you look up in the related table, ProductSubCategory. + ```dax -= COUNTX(FILTER(Product,RELATED(ProductSubcategory[EnglishProductSubcategoryName])="Caps"), Product[ListPrice]) += COUNTX(FILTER(Product,RELATED(ProductSubcategory[EnglishProductSubcategoryName])="Caps"), Product[ListPrice]) ``` - + ## Related content -[COUNT function](count-function-dax.md) -[COUNTA function](counta-function-dax.md) -[COUNTAX function](countax-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[COUNT function](count-function-dax.md) +[COUNTA function](counta-function-dax.md) +[COUNTAX function](countax-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/coupdaybs-function-dax.md b/query-languages/dax/coupdaybs-function-dax.md index 5257ac2ab..9c8861fac 100644 --- a/query-languages/dax/coupdaybs-function-dax.md +++ b/query-languages/dax/coupdaybs-function-dax.md @@ -17,9 +17,9 @@ COUPDAYBS(, , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| -|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|Term|Definition| +|--------|--------------| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| |`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| diff --git a/query-languages/dax/coupdays-function-dax.md b/query-languages/dax/coupdays-function-dax.md index 3091c7a04..5b3083f79 100644 --- a/query-languages/dax/coupdays-function-dax.md +++ b/query-languages/dax/coupdays-function-dax.md @@ -17,9 +17,9 @@ COUPDAYS(, , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| -|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|Term|Definition| +|--------|--------------| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| |`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| diff --git a/query-languages/dax/coupdaysnc-function-dax.md b/query-languages/dax/coupdaysnc-function-dax.md index 96b6b6716..4a915d22d 100644 --- a/query-languages/dax/coupdaysnc-function-dax.md +++ b/query-languages/dax/coupdaysnc-function-dax.md @@ -17,9 +17,9 @@ COUPDAYSNC(, , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| -|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|Term|Definition| +|--------|--------------| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| |`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| diff --git a/query-languages/dax/coupncd-function-dax.md b/query-languages/dax/coupncd-function-dax.md index 175f79969..9f8dbc695 100644 --- a/query-languages/dax/coupncd-function-dax.md +++ b/query-languages/dax/coupncd-function-dax.md @@ -17,9 +17,9 @@ COUPNCD(, , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| -|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|Term|Definition| +|--------|--------------| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| |`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| diff --git a/query-languages/dax/coupnum-function-dax.md b/query-languages/dax/coupnum-function-dax.md index dce3053b0..d856e1062 100644 --- a/query-languages/dax/coupnum-function-dax.md +++ b/query-languages/dax/coupnum-function-dax.md @@ -17,9 +17,9 @@ COUPNUM(, , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| -|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|Term|Definition| +|--------|--------------| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| |`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| diff --git a/query-languages/dax/couppcd-function-dax.md b/query-languages/dax/couppcd-function-dax.md index e23527b03..0d9d27a43 100644 --- a/query-languages/dax/couppcd-function-dax.md +++ b/query-languages/dax/couppcd-function-dax.md @@ -17,9 +17,9 @@ COUPPCD(, , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| -|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| +|Term|Definition| +|--------|--------------| +|`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`frequency`|The number of coupon payments per year. For annual payments, frequency = 1; for semiannual, frequency = 2; for quarterly, frequency = 4.| |`basis`|(Optional) The type of day count basis to use. If basis is omitted, it is assumed to be 0. The accepted values are listed below this table.| diff --git a/query-languages/dax/crossfilter-function-dax.md b/query-languages/dax/crossfilter-function-dax.md index 0a0d4c107..a0516409f 100644 --- a/query-languages/dax/crossfilter-function-dax.md +++ b/query-languages/dax/crossfilter-function-dax.md @@ -6,64 +6,64 @@ title: "CROSSFILTER function" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] -Specifies the cross-filtering direction to be used in a calculation for a relationship that exists between two columns. - -## Syntax - +Specifies the cross-filtering direction to be used in a calculation for a relationship that exists between two columns. + +## Syntax + ```dax -CROSSFILTER(, , ) +CROSSFILTER(, , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`columnName1`|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| -|`columnName2`|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| -|`Direction`|The cross-filter direction to be used. Must be one of the following:

`None` - No cross-filtering occurs along this relationship.

`Both` - Filters on either side filters the other side.

`OneWay` - Filters on the one side or the lookup side of a relationship filter the other side. This option cannot be used with a one-to-one relationship . Don’t use this option on a many-to-many relationship because it is unclear which side is the lookup side; use OneWay_LeftFiltersRight or OneWay_RightFiltersLeft instead.

`OneWay_LeftFiltersRight` - Filters on the side of `columnName1` filter the side of `columnName2`. This option cannot be used with a one-to-one or many-to-one relationship.

`OneWay_RightFiltersLeft` - Filters on the side of `columnName2` filter the side of `columnName1`. This option cannot be used with a one-to-one or many-to-one relationship.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`columnName1`|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| +|`columnName2`|The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression.| +|`Direction`|The cross-filter direction to be used. Must be one of the following:

`None` - No cross-filtering occurs along this relationship.

`Both` - Filters on either side filters the other side.

`OneWay` - Filters on the one side or the lookup side of a relationship filter the other side. This option cannot be used with a one-to-one relationship . Don’t use this option on a many-to-many relationship because it is unclear which side is the lookup side; use OneWay_LeftFiltersRight or OneWay_RightFiltersLeft instead.

`OneWay_LeftFiltersRight` - Filters on the side of `columnName1` filter the side of `columnName2`. This option cannot be used with a one-to-one or many-to-one relationship.

`OneWay_RightFiltersLeft` - Filters on the side of `columnName2` filter the side of `columnName1`. This option cannot be used with a one-to-one or many-to-one relationship.| + ## Return value -The function returns no value; the function only sets the cross-filtering direction for the indicated relationship, for the duration of the query. - -## Remarks - -- In the case of a 1:1 relationship, there is no difference between the one and both direction. - -- CROSSFILTER can only be used in functions that take a filter as an argument, for example: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD and TOTALYTD functions. - -- CROSSFILTER uses existing relationships in the model, identifying relationships by their ending point columns. - -- In CROSSFILTER, the cross-filtering setting of a relationship is not important; that is, whether the relationship is set to filter one, or both directions in the model does not affect the usage of the function. CROSSFILTER will override any existing cross-filtering setting. - -- An error is returned if any of the columns named as an argument is not part of a relationship or the arguments belong to different relationships. - -- If CALCULATE expressions are nested, and more than one CALCULATE expression contains a CROSSFILTER function, then the innermost CROSSFILTER is the one that prevails in case of a conflict or ambiguity. +The function returns no value; the function only sets the cross-filtering direction for the indicated relationship, for the duration of the query. + +## Remarks + +- In the case of a 1:1 relationship, there is no difference between the one and both direction. + +- CROSSFILTER can only be used in functions that take a filter as an argument, for example: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD and TOTALYTD functions. + +- CROSSFILTER uses existing relationships in the model, identifying relationships by their ending point columns. + +- In CROSSFILTER, the cross-filtering setting of a relationship is not important; that is, whether the relationship is set to filter one, or both directions in the model does not affect the usage of the function. CROSSFILTER will override any existing cross-filtering setting. + +- An error is returned if any of the columns named as an argument is not part of a relationship or the arguments belong to different relationships. + +- If CALCULATE expressions are nested, and more than one CALCULATE expression contains a CROSSFILTER function, then the innermost CROSSFILTER is the one that prevails in case of a conflict or ambiguity. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -In the following model diagram, both DimProduct and DimDate have a single direction relationship with FactInternetSales. - -![CROSSFILTER_Examp_DiagView](media/crossfilter-function/crossfilter-examp-diagview.png "CROSSFILTER_Examp_DiagView") - -By default, we cannot get the Count of Products sold by year: - -![CROSSFILTER_Examp_PivotTable1](media/crossfilter-function/crossfilter-examp-pivottable1.png "CROSSFILTER_Examp_PivotTable1") - -There are two ways to get the count of products by year: - -- Turn on bi-directional cross-filtering on the relationship. This will change how filters work for all data between these two tables. - -- Use the CROSSFILTER function to change how the relationships work for just this measure. - -When using DAX, we can use the CROSSFILTER function to change how the cross-filter direction behaves between two columns defined by a relationship. In this case, the DAX expression looks like this: - +In the following model diagram, both DimProduct and DimDate have a single direction relationship with FactInternetSales. + +![CROSSFILTER_Examp_DiagView](media/crossfilter-function/crossfilter-examp-diagview.png "CROSSFILTER_Examp_DiagView") + +By default, we cannot get the Count of Products sold by year: + +![CROSSFILTER_Examp_PivotTable1](media/crossfilter-function/crossfilter-examp-pivottable1.png "CROSSFILTER_Examp_PivotTable1") + +There are two ways to get the count of products by year: + +- Turn on bi-directional cross-filtering on the relationship. This will change how filters work for all data between these two tables. + +- Use the CROSSFILTER function to change how the relationships work for just this measure. + +When using DAX, we can use the CROSSFILTER function to change how the cross-filter direction behaves between two columns defined by a relationship. In this case, the DAX expression looks like this: + ```dax BiDi:= CALCULATE([Distinct Count of ProductKey], CROSSFILTER(FactInternetSales[ProductKey], DimProduct[ProductKey] , Both)) ``` -By using the CROSSFILTER function in our measure expression, we get the expected results: - -![CROSSFILTER_Examp_PivotTable2](media/crossfilter-function/crossfilter-examp-pivottable2.png "CROSSFILTER_Examp_PivotTable2") +By using the CROSSFILTER function in our measure expression, we get the expected results: + +![CROSSFILTER_Examp_PivotTable2](media/crossfilter-function/crossfilter-examp-pivottable2.png "CROSSFILTER_Examp_PivotTable2") diff --git a/query-languages/dax/crossjoin-function-dax.md b/query-languages/dax/crossjoin-function-dax.md index dfa5fbcc7..a9962373c 100644 --- a/query-languages/dax/crossjoin-function-dax.md +++ b/query-languages/dax/crossjoin-function-dax.md @@ -6,64 +6,64 @@ title: "CROSSJOIN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a table that contains the Cartesian product of all rows from all tables in the arguments. The columns in the new table are all the columns in all the argument tables. - -## Syntax - +Returns a table that contains the Cartesian product of all rows from all tables in the arguments. The columns in the new table are all the columns in all the argument tables. + +## Syntax + ```dax -CROSSJOIN(
,
[,
]…) +CROSSJOIN(
,
[,
]…) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`table`|Any DAX expression that returns a table of data| - +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|Any DAX expression that returns a table of data| + ## Return value -A table that contains the Cartesian product of all rows from all tables in the arguments. - -## Remarks - -- Column names from `table` arguments must all be different in all tables or an error is returned. - -- The total number of rows returned by CROSSJOIN() is equal to the product of the number of rows from all tables in the arguments; also, the total number of columns in the result table is the sum of the number of columns in all tables. For example, if **TableA** has **rA** rows and **cA** columns, and **TableB** has **rB** rows and **cB** columns, and **TableC** has **rC** rows and **cC** column; then, the resulting table has **rA × rb × rC** rows and **cA + cB + cC** columns. +A table that contains the Cartesian product of all rows from all tables in the arguments. + +## Remarks + +- Column names from `table` arguments must all be different in all tables or an error is returned. + +- The total number of rows returned by CROSSJOIN() is equal to the product of the number of rows from all tables in the arguments; also, the total number of columns in the result table is the sum of the number of columns in all tables. For example, if **TableA** has **rA** rows and **cA** columns, and **TableB** has **rB** rows and **cB** columns, and **TableC** has **rC** rows and **cC** column; then, the resulting table has **rA × rb × rC** rows and **cA + cB + cC** columns. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example shows the results of applying CROSSJOIN() to two tables: **Colors** and **Stationery**. - -The table **Colors** contains colors and patterns: - -|Color|Pattern| -|---------|-----------| -|Red|Horizontal Stripe| -|Green|Vertical Stripe| -|Blue|Crosshatch| - -The table **Stationery** contains fonts and presentation: - -|Font|Presentation| -|--------|----------------| -|serif|embossed| -|sans-serif|engraved| - -The expression to generate the cross join is presented below: - +The following example shows the results of applying CROSSJOIN() to two tables: **Colors** and **Stationery**. + +The table **Colors** contains colors and patterns: + +|Color|Pattern| +|---------|-----------| +|Red|Horizontal Stripe| +|Green|Vertical Stripe| +|Blue|Crosshatch| + +The table **Stationery** contains fonts and presentation: + +|Font|Presentation| +|--------|----------------| +|serif|embossed| +|sans-serif|engraved| + +The expression to generate the cross join is presented below: + ```dax -CROSSJOIN( Colors, Stationery) +CROSSJOIN( Colors, Stationery) ``` -When the above expression is used wherever a table expression is expected, the results of the expression would be as follows: - -|Color|Pattern|Font|Presentation| -|---------|-----------|---------|-----------| -|Red|Horizontal Stripe|serif|embossed| -|Green|Vertical Stripe|serif|embossed| -|Blue|Crosshatch|serif|embossed| -|Red|Horizontal Stripe|sans-serif|engraved| -|Green|Vertical Stripe|sans-serif|engraved| -|Blue|Crosshatch|sans-serif|engraved| +When the above expression is used wherever a table expression is expected, the results of the expression would be as follows: + +|Color|Pattern|Font|Presentation| +|---------|-----------|---------|-----------| +|Red|Horizontal Stripe|serif|embossed| +|Green|Vertical Stripe|serif|embossed| +|Blue|Crosshatch|serif|embossed| +|Red|Horizontal Stripe|sans-serif|engraved| +|Green|Vertical Stripe|sans-serif|engraved| +|Blue|Crosshatch|sans-serif|engraved| diff --git a/query-languages/dax/cumipmt-function-dax.md b/query-languages/dax/cumipmt-function-dax.md index 399d26668..089b934e1 100644 --- a/query-languages/dax/cumipmt-function-dax.md +++ b/query-languages/dax/cumipmt-function-dax.md @@ -18,9 +18,9 @@ CUMIPMT(, , , , , ) ### Parameters -|Term|Definition| -|--------|--------------| -|`rate`|The interest rate.| +|Term|Definition| +|--------|--------------| +|`rate`|The interest rate.| |`nper`|The total number of payment periods.| |`pv`|The present value.| |`start_period`|The first period in the calculation. Must be between 1 and end_period (inclusive).| diff --git a/query-languages/dax/cumprinc-function-dax.md b/query-languages/dax/cumprinc-function-dax.md index ce7f3a226..60d38cbdb 100644 --- a/query-languages/dax/cumprinc-function-dax.md +++ b/query-languages/dax/cumprinc-function-dax.md @@ -18,8 +18,8 @@ CUMPRINC(, , , , , ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`rate`|The interest rate.| |`nper`|The total number of payment periods.| |`pv`|The present value.| diff --git a/query-languages/dax/currency-function-dax.md b/query-languages/dax/currency-function-dax.md index 6298e5da6..073c39909 100644 --- a/query-languages/dax/currency-function-dax.md +++ b/query-languages/dax/currency-function-dax.md @@ -6,40 +6,40 @@ title: "CURRENCY function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Evaluates the argument and returns the result as currency data type. - -## Syntax - +Evaluates the argument and returns the result as currency data type. + +## Syntax + ```dax -CURRENCY() +CURRENCY() ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`value`|Any DAX expression that returns a single scalar value where the expression is to be evaluated exactly once before all other operations. | +### Parameters + +|Term|Definition| +|--------|--------------| +|`value`|Any DAX expression that returns a single scalar value where the expression is to be evaluated exactly once before all other operations. | ## Return value -The value of the expression evaluated and returned as a currency type value. - -## Remarks - -- The CURRENCY function rounds up the 5th significant decimal, in value, to return the 4th decimal digit. Rounding up occurs if the 5th significant decimal is equal or larger than 5. For example, if value is 3.6666666666666 then converting to currency returns \\$3.6667. However, if value is 3.0123456789 then converting to currency returns \\$3.0123. - -- If the data type of the expression is TrueFalse then CURRENCY(`TrueFalse`) will return \\$1.0000 for True values and \\$0.0000 for False values. - -- If the data type of the expression is Text then CURRENCY(`Text`) will try to convert text to a number. If conversion succeeds the number will be converted to currency, otherwise an error is returned. - -- If the data type of the expression is DateTime then CURRENCY(`DateTime`) will convert the datetime value to a number and that number to currency. DateTime values have an integer part that represents the number of days between the given date and 1900-03-01 and a fraction that represents the fraction of a day (where 12 hours or noon is 0.5 day). If the value of the expression is not a proper DateTime value an error is returned. - +The value of the expression evaluated and returned as a currency type value. + +## Remarks + +- The CURRENCY function rounds up the 5th significant decimal, in value, to return the 4th decimal digit. Rounding up occurs if the 5th significant decimal is equal or larger than 5. For example, if value is 3.6666666666666 then converting to currency returns \\$3.6667. However, if value is 3.0123456789 then converting to currency returns \\$3.0123. + +- If the data type of the expression is TrueFalse then CURRENCY(`TrueFalse`) will return \\$1.0000 for True values and \\$0.0000 for False values. + +- If the data type of the expression is Text then CURRENCY(`Text`) will try to convert text to a number. If conversion succeeds the number will be converted to currency, otherwise an error is returned. + +- If the data type of the expression is DateTime then CURRENCY(`DateTime`) will convert the datetime value to a number and that number to currency. DateTime values have an integer part that represents the number of days between the given date and 1900-03-01 and a fraction that represents the fraction of a day (where 12 hours or noon is 0.5 day). If the value of the expression is not a proper DateTime value an error is returned. + ## Example -Convert number 1234.56 to currency data type. - +Convert number 1234.56 to currency data type. + ```dax -= CURRENCY(1234.56) += CURRENCY(1234.56) ``` Returns value 1234.56000. diff --git a/query-languages/dax/currentgroup-function-dax.md b/query-languages/dax/currentgroup-function-dax.md index c89180f24..68dcd809b 100644 --- a/query-languages/dax/currentgroup-function-dax.md +++ b/query-languages/dax/currentgroup-function-dax.md @@ -8,16 +8,16 @@ title: "CURRENTGROUP function (DAX)" Returns a set of rows from the table argument of a [GROUPBY](groupby-function-dax.md) expression that belong to the current row of the [GROUPBY](groupby-function-dax.md) result. -## Syntax - +## Syntax + ```dax CURRENTGROUP ( ) ``` - -### Parameters - + +### Parameters + None - + ## Return value The rows in the table argument of the [GROUPBY](groupby-function-dax.md) function corresponding to one group of values of the groupBy_columnName arguments. @@ -27,7 +27,7 @@ The rows in the table argument of the [GROUPBY](groupby-function-dax.md) functio - This function can only be used within a [GROUPBY](groupby-function-dax.md) expression. - This function takes no arguments and is only supported as the first argument to one of the following aggregation functions: [AVERAGEX](averagex-function-dax.md), [COUNTAX](countax-function-dax.md), [COUNTX](countx-function-dax.md), [GEOMEANX](geomeanx-function-dax.md), [MAXX](maxx-function-dax.md), [MINX](minx-function-dax.md), [PRODUCTX](productx-function-dax.md), [STDEVX.S](stdevx-s-function-dax.md), [STDEVX.P](stdevx-s-function-dax.md), [SUMX](sumx-function-dax.md), [VARX.S](varx-s-function-dax.md), [VARX.P](varx-p-function-dax.md). - + ## Example See [GROUPBY](groupby-function-dax.md). diff --git a/query-languages/dax/customdata-function-dax.md b/query-languages/dax/customdata-function-dax.md index 6f5418000..2a8206bd0 100644 --- a/query-languages/dax/customdata-function-dax.md +++ b/query-languages/dax/customdata-function-dax.md @@ -6,19 +6,19 @@ title: "CUSTOMDATA function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the content of the `CustomData` property in the connection string. - -## Syntax - +Returns the content of the `CustomData` property in the connection string. + +## Syntax + ```dax -CUSTOMDATA() +CUSTOMDATA() ``` - + ## Return value -The content of the `CustomData` property in the connection string. - -Blank, if `CustomData` property was not defined at connection time. +The content of the `CustomData` property in the connection string. + +Blank, if `CustomData` property was not defined at connection time. ## Remarks @@ -27,7 +27,7 @@ Blank, if `CustomData` property was not defined at connection time. ## Example The following DAX formula verifies if the CustomData property was set to **`OK`**. - + ```dax -= IF(CUSTOMDATA()="OK", "Correct Custom data in connection string", "No custom data in connection string property or unexpected value") += IF(CUSTOMDATA()="OK", "Correct Custom data in connection string", "No custom data in connection string property or unexpected value") ``` diff --git a/query-languages/dax/datatable-function-dax.md b/query-languages/dax/datatable-function-dax.md index 1a27eb244..b8a6d5ac7 100644 --- a/query-languages/dax/datatable-function-dax.md +++ b/query-languages/dax/datatable-function-dax.md @@ -6,43 +6,43 @@ title: "DATATABLE function" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Provides a mechanism for declaring an inline set of data values. - -## Syntax - +Provides a mechanism for declaring an inline set of data values. + +## Syntax + ```dax -DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2..., {{Value1, Value2...}, {ValueN, ValueN+1...}...}) +DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2..., {{Value1, Value2...}, {ValueN, ValueN+1...}...}) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`ColumnName`|Any DAX expression that returns a table.| -|`DataType`|An enumeration that includes: INTEGER, DOUBLE, STRING, BOOLEAN, CURRENCY, DATETIME| -|`value`|A single argument using Excel syntax for a one dimensional array constant, nested to provide an array of arrays. This argument represents the set of data values that will be in the table

For example,
{ {values in row1}, {values in row2}, {values in row3}, etc. }
Where {values in row1} is a comma delimited set of constant expressions, namely a combination of constants, combined with a handful of basic functions including DATE, TIME, and BLANK, as well as a plus operator between DATE and TIME and a unary minus operator so that negative values can be expressed.

The following are all valid values: 3, -5, BLANK(), "2009-04-15 02:45:21". Values may not refer to anything outside the immediate expression, and cannot refer to columns, tables, relationships, or anything else.

A missing value will be treated identically to BLANK(). For example, the following are the same: {1,2,BLANK(),4} {1,2,,4}| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`ColumnName`|Any DAX expression that returns a table.| +|`DataType`|An enumeration that includes: INTEGER, DOUBLE, STRING, BOOLEAN, CURRENCY, DATETIME| +|`value`|A single argument using Excel syntax for a one dimensional array constant, nested to provide an array of arrays. This argument represents the set of data values that will be in the table

For example,
{ {values in row1}, {values in row2}, {values in row3}, etc. }
Where {values in row1} is a comma delimited set of constant expressions, namely a combination of constants, combined with a handful of basic functions including DATE, TIME, and BLANK, as well as a plus operator between DATE and TIME and a unary minus operator so that negative values can be expressed.

The following are all valid values: 3, -5, BLANK(), "2009-04-15 02:45:21". Values may not refer to anything outside the immediate expression, and cannot refer to columns, tables, relationships, or anything else.

A missing value will be treated identically to BLANK(). For example, the following are the same: {1,2,BLANK(),4} {1,2,,4}| + ## Return value -A table declaring an inline set of values. +A table declaring an inline set of values. ## Remarks - Unlike DATATABLE, [Table Constructor](table-constructor.md) allows any scalar expressions as input values. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example - + +## Example + ```dax -= DataTable("Name", STRING, - "Region", STRING - ,{ - {" User1","East"}, - {" User2","East"}, - {" User3","West"}, - {" User4","West"}, - {" User4","East"} - } - ) += DataTable("Name", STRING, + "Region", STRING + ,{ + {" User1","East"}, + {" User2","East"}, + {" User3","West"}, + {" User4","West"}, + {" User4","East"} + } + ) ``` diff --git a/query-languages/dax/date-and-time-functions-dax.md b/query-languages/dax/date-and-time-functions-dax.md index cd010c662..176444733 100644 --- a/query-languages/dax/date-and-time-functions-dax.md +++ b/query-languages/dax/date-and-time-functions-dax.md @@ -4,8 +4,8 @@ title: "Date and time functions (DAX)" --- # Date and time functions -These functions help you create calculations based on dates and time. Many of the functions in DAX are similar to the Excel date and time functions. However, DAX functions use a `datetime` data type, and can take values from a column as an argument. - +These functions help you create calculations based on dates and time. Many of the functions in DAX are similar to the Excel date and time functions. However, DAX functions use a `datetime` data type, and can take values from a column as an argument. + ## In this category |Function |Description | diff --git a/query-languages/dax/date-function-dax.md b/query-languages/dax/date-function-dax.md index bdf9f86d3..5b0fcc4b8 100644 --- a/query-languages/dax/date-function-dax.md +++ b/query-languages/dax/date-function-dax.md @@ -6,82 +6,81 @@ title: "DATE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the specified date in `datetime` format. - -## Syntax - +Returns the specified date in `datetime` format. + +## Syntax + ```dax -DATE(, , ) +DATE(, , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`year`|A number representing the year.

The value of the `year` argument can include one to four digits. The `year` argument is interpreted according to the date system used by your computer.

Dates beginning with March 1, 1900 are supported.

If you enter a number that has decimal places, the number is rounded.

For values greater than 9999 or less than zero (negative values), the function returns a `#VALUE!` error.

If the `year` value is between 0 and 1899, the value is added to 1900 to produce the final value. See the examples below. **Note:** You should use four digits for the `year` argument whenever possible to prevent unwanted results. For example, using 07 returns 1907 as the year value.| -|`month`|A number representing the month or a calculation according to the following rules:

Negative integers are not supported. Valid values are 1-12.

If `month` is a number from 1 to 12, then it represents a month of the year. 1 represents January, 2 represents February, and so on until 12 that represents December.

If you enter an integer larger than 12, the following computation occurs: the date is calculated by adding the value of `month` to the `year`. For example, if you have DATE( 2008, 18, 1), the function returns a datetime value equivalent to June 1st of 2009, because 18 months are added to the beginning of 2008 yielding a value of June 2009. See examples below.| -|`day`|A number representing the day or a calculation according to the following rules:

Negative integers are not supported. Valid values are 1-31.

If `day` is a number from 1 to the last day of the given month then it represents a day of the month.

If you enter an integer larger than last day of the given month, the following computation occurs: the date is calculated by adding the value of `day` to `month`. For example, in the formula `DATE( 2008, 3, 32)`, the DATE function returns a `datetime` value equivalent to April 1st of 2008, because 32 days are added to the beginning of March yielding a value of April 1st.

If `day` contains a decimal portion, it is rounded to the nearest integer value.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`year`|A number representing the year.

The value of the `year` argument can include one to four digits. The `year` argument is interpreted according to the date system used by your computer.

Dates beginning with March 1, 1900 are supported.

If you enter a number that has decimal places, the number is rounded.

For values greater than 9999 or less than zero (negative values), the function returns a `#VALUE!` error.

If the `year` value is between 0 and 1899, the value is added to 1900 to produce the final value. See the examples below. **Note:** You should use four digits for the `year` argument whenever possible to prevent unwanted results. For example, using 07 returns 1907 as the year value.| +|`month`|A number representing the month or a calculation according to the following rules:

Negative integers are not supported. Valid values are 1-12.

If `month` is a number from 1 to 12, then it represents a month of the year. 1 represents January, 2 represents February, and so on until 12 that represents December.

If you enter an integer larger than 12, the following computation occurs: the date is calculated by adding the value of `month` to the `year`. For example, if you have DATE( 2008, 18, 1), the function returns a datetime value equivalent to June 1st of 2009, because 18 months are added to the beginning of 2008 yielding a value of June 2009. See examples below.| +|`day`|A number representing the day or a calculation according to the following rules:

Negative integers are not supported. Valid values are 1-31.

If `day` is a number from 1 to the last day of the given month then it represents a day of the month.

If you enter an integer larger than last day of the given month, the following computation occurs: the date is calculated by adding the value of `day` to `month`. For example, in the formula `DATE( 2008, 3, 32)`, the DATE function returns a `datetime` value equivalent to April 1st of 2008, because 32 days are added to the beginning of March yielding a value of April 1st.

If `day` contains a decimal portion, it is rounded to the nearest integer value.| + ## Return value -Returns the specified date (`datetime`). - +Returns the specified date (`datetime`). + ## Remarks -- The DATE function takes the integers that are input as arguments, and generates the corresponding date. The DATE function is most useful in situations where the year, month, and day are supplied by formulas. For example, the underlying data might contain dates in a format that is not recognized as a date, such as YYYYMMDD. You can use the DATE function in conjunction with other functions to convert the dates to a number that can be recognized as a date. - -- In contrast to Microsoft Excel, which stores dates as a serial number, DAX date functions always return a `datetime` data type. However, you can use formatting to display dates as serial numbers if you want. +- The DATE function takes the integers that are input as arguments, and generates the corresponding date. The DATE function is most useful in situations where the year, month, and day are supplied by formulas. For example, the underlying data might contain dates in a format that is not recognized as a date, such as YYYYMMDD. You can use the DATE function in conjunction with other functions to convert the dates to a number that can be recognized as a date. + +- In contrast to Microsoft Excel, which stores dates as a serial number, DAX date functions always return a `datetime` data type. However, you can use formatting to display dates as serial numbers if you want. - Date and datetime can also be specified as a literal in the format `dt"YYYY-MM-DD"`, `dt"YYYY-MM-DDThh:mm:ss"`, or `dt"YYYY-MM-DD hh:mm:ss"`. When specified as a literal, using the DATE function in the expression is not necessary. To learn more, see [DAX Syntax | Date and time](dax-syntax-reference.md#date-and-time). - + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Examples - + ### Simple Date -The following formula returns the date July 8, 2009: - +The following formula returns the date July 8, 2009: + ```dax -= DATE(2009,7,8) += DATE(2009,7,8) ``` - -### Years before 1899 -If the value that you enter for the `year` argument is between 0 (zero) and 1899 (inclusive), that value is added to 1900 to calculate the year. The following formula returns January 2, 1908: (1900+08). - +### Years before 1899 + +If the value that you enter for the `year` argument is between 0 (zero) and 1899 (inclusive), that value is added to 1900 to calculate the year. The following formula returns January 2, 1908: (1900+08). + ```dax -= DATE(08,1,2) += DATE(08,1,2) ``` - -### Years after 1899 -If `year` is between 1900 and 9999 (inclusive), that value is used as the year. The following formula returns January 2, 2008: - +### Years after 1899 + +If `year` is between 1900 and 9999 (inclusive), that value is used as the year. The following formula returns January 2, 2008: + ```dax -= DATE(2008,1,2) += DATE(2008,1,2) ``` - -### Months -If `month` is greater than 12, `month` adds that number of months to the first month in the year specified. The following formula returns the date February 2, 2009: - +### Months + +If `month` is greater than 12, `month` adds that number of months to the first month in the year specified. The following formula returns the date February 2, 2009: + ```dax -= DATE(2008,14,2) += DATE(2008,14,2) ``` - -### Days -If `day` is greater than the number of days in the month specified, `day` adds that number of days to the first day in the month. The following formula returns the date February 4, 2008: +### Days + +If `day` is greater than the number of days in the month specified, `day` adds that number of days to the first day in the month. The following formula returns the date February 4, 2008: ```dax -= DATE(2008,1,35) += DATE(2008,1,35) ``` - ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[DAY function](day-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[DAY function](day-function-dax.md) [TODAY function](today-function-dax.md) diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index 5a557a221..aa0837ad7 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -6,58 +6,58 @@ title: "DATEADD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of dates, shifted either forward or backward in time by the specified number of intervals from the dates in the current context. - -## Syntax - +Returns a table that contains a column of dates, shifted either forward or backward in time by the specified number of intervals from the dates in the current context. + +## Syntax + ```dax -DATEADD(,,) +DATEADD(,,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| -|`number_of_intervals`|An integer that specifies the number of intervals to add to or subtract from the dates.| -|`interval`|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`, `day`| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| +|`number_of_intervals`|An integer that specifies the number of intervals to add to or subtract from the dates.| +|`interval`|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`, `day`| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -The `dates` argument can be any of the following: - -- A reference to a date/time column, - -- A table expression that returns a single column of date/time values, - -- A Boolean expression that defines a single-column table of date/time values. - - > [!NOTE] - > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- If the number specified for `number_of_intervals` is positive, the dates in `dates` are moved forward in time; if the number is negative, the dates in `dates` are shifted back in time. - -- The `interval` parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month`, `day` should be spelled in full when using them. - -- The result table includes only dates that exist in the `dates` column. +The `dates` argument can be any of the following: + +- A reference to a date/time column, + +- A table expression that returns a single column of date/time values, + +- A Boolean expression that defines a single-column table of date/time values. + + > [!NOTE] + > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- If the number specified for `number_of_intervals` is positive, the dates in `dates` are moved forward in time; if the number is negative, the dates in `dates` are shifted back in time. + +- The `interval` parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month`, `day` should be spelled in full when using them. + +- The result table includes only dates that exist in the `dates` column. - If the dates in the current context do not form a contiguous interval, the function returns an error. - + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example - Shifting a set of dates - -The following formula calculates dates that are one year before the dates in the current context. + +## Example - Shifting a set of dates + +The following formula calculates dates that are one year before the dates in the current context. ```dax -= DATEADD(DateTime[DateKey],-1,year) += DATEADD(DateTime[DateKey],-1,year) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) [Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/datediff-function-dax.md b/query-languages/dax/datediff-function-dax.md index 77bfcba50..551849f4e 100644 --- a/query-languages/dax/datediff-function-dax.md +++ b/query-languages/dax/datediff-function-dax.md @@ -5,32 +5,32 @@ title: "DATEDIFF function (DAX)" # DATEDIFF [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the number of interval boundaries between two dates. - -## Syntax - + +Returns the number of interval boundaries between two dates. + +## Syntax + ```dax -DATEDIFF(, , ) +DATEDIFF(, , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Date1`|A scalar datetime value.| -|`Date2`|A scalar datetime value.| -|`Interval`|The interval to use when comparing dates. The value can be one of the following:

- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Date1`|A scalar datetime value.| +|`Date2`|A scalar datetime value.| +|`Interval`|The interval to use when comparing dates. The value can be one of the following:

- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR| + ## Return value -The count of interval boundaries between two dates. - +The count of interval boundaries between two dates. + ## Remarks A positive result is returned if Date2 is larger than Date1. A negative result is returned if Date1 is larger than Date2. - + ## Example [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] @@ -48,7 +48,7 @@ RETURN ( "Month", DATEDIFF ( StartDate, EndDate, MONTH ) ), ( "Week", DATEDIFF ( StartDate, EndDate, WEEK ) ), ( "Day", DATEDIFF ( StartDate, EndDate, DAY ) ) - } + } ``` Returns the following: diff --git a/query-languages/dax/datesbetween-function-dax.md b/query-languages/dax/datesbetween-function-dax.md index b11642000..7f29d4766 100644 --- a/query-languages/dax/datesbetween-function-dax.md +++ b/query-languages/dax/datesbetween-function-dax.md @@ -58,9 +58,9 @@ Customers LTD = CALCULATE( DISTINCTCOUNT(Sales[CustomerKey]), DATESBETWEEN( - 'Date'[Date], - BLANK(), - MAX('Date'[Date]) + 'Date'[Date], + BLANK(), + MAX('Date'[Date]) ) ) ``` diff --git a/query-languages/dax/datesinperiod-function-dax.md b/query-languages/dax/datesinperiod-function-dax.md index 34e45e2b9..1b05b41fd 100644 --- a/query-languages/dax/datesinperiod-function-dax.md +++ b/query-languages/dax/datesinperiod-function-dax.md @@ -66,6 +66,6 @@ Consider that the report is filtered by the month of June 2020. The MAX function ## Related content -[Time intelligence functions (DAX)](time-intelligence-functions-dax.md) -[Date and time functions (DAX)](date-and-time-functions-dax.md) -[DATESBETWEEN function (DAX)](datesbetween-function-dax.md) +[Time intelligence functions (DAX)](time-intelligence-functions-dax.md) +[Date and time functions (DAX)](date-and-time-functions-dax.md) +[DATESBETWEEN function (DAX)](datesbetween-function-dax.md) diff --git a/query-languages/dax/datesmtd-function-dax.md b/query-languages/dax/datesmtd-function-dax.md index 0090091f1..a87444e50 100644 --- a/query-languages/dax/datesmtd-function-dax.md +++ b/query-languages/dax/datesmtd-function-dax.md @@ -6,50 +6,50 @@ title: "DATESMTD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of the dates for the month to date, in the current context. - -## Syntax - +Returns a table that contains a column of the dates for the month to date, in the current context. + +## Syntax + ```dax -DATESMTD() +DATESMTD() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -The `dates` argument can be any of the following: - -- A reference to a date/time column. - -- A table expression that returns a single column of date/time values. - -- A Boolean expression that defines a single-column table of date/time values. - - > [!NOTE] - > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - +The `dates` argument can be any of the following: + +- A reference to a date/time column. + +- A table expression that returns a single column of date/time values. + +- A Boolean expression that defines a single-column table of date/time values. + + > [!NOTE] + > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'Month To Date Total' for Internet Sales. - +The following sample formula creates a measure that calculates the 'Month To Date Total' for Internet Sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESMTD(DateTime[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESMTD(DateTime[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[DATESYTD function](datesytd-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[DATESYTD function](datesytd-function-dax.md) [DATESQTD function](datesqtd-function-dax.md) diff --git a/query-languages/dax/datesqtd-function-dax.md b/query-languages/dax/datesqtd-function-dax.md index 633b8b1e9..36894012f 100644 --- a/query-languages/dax/datesqtd-function-dax.md +++ b/query-languages/dax/datesqtd-function-dax.md @@ -6,50 +6,50 @@ title: "DATESQTD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of the dates for the quarter to date, in the current context. - -## Syntax - +Returns a table that contains a column of the dates for the quarter to date, in the current context. + +## Syntax + ```dax -DATESQTD() +DATESQTD() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -The `dates` argument can be any of the following: - -- A reference to a date/time column. - -- A table expression that returns a single column of date/time values. - -- A Boolean expression that defines a single-column table of date/time values. - - > [!NOTE] - > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - +The `dates` argument can be any of the following: + +- A reference to a date/time column. + +- A table expression that returns a single column of date/time values. + +- A Boolean expression that defines a single-column table of date/time values. + + > [!NOTE] + > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'Quarterly Running Total' of Internet Sales. - +The following sample formula creates a measure that calculates the 'Quarterly Running Total' of Internet Sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESQTD(DateTime[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESQTD(DateTime[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[DATESYTD function](datesytd-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[DATESYTD function](datesytd-function-dax.md) [DATESMTD function](datesmtd-function-dax.md) diff --git a/query-languages/dax/datesytd-function-dax.md b/query-languages/dax/datesytd-function-dax.md index d0f165de8..761a0d55e 100644 --- a/query-languages/dax/datesytd-function-dax.md +++ b/query-languages/dax/datesytd-function-dax.md @@ -6,52 +6,52 @@ title: "DATESYTD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of the dates for the year to date, in the current context. - -## Syntax - +Returns a table that contains a column of the dates for the year to date, in the current context. + +## Syntax + ```dax -DATESYTD( [,]) +DATESYTD( [,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| -|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -The `dates` argument can be any of the following: - -- A reference to a date/time column, - -- A table expression that returns a single column of date/time values, - -- A Boolean expression that defines a single-column table of date/time values. - - > [!NOTE] - > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - +The `dates` argument can be any of the following: + +- A reference to a date/time column, + +- A table expression that returns a single column of date/time values, + +- A Boolean expression that defines a single-column table of date/time values. + + > [!NOTE] + > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + - The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. Depending on locale, the format might be something like "m-dd" or "dd-m". - + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'Running Total' for Internet sales. - +The following sample formula creates a measure that calculates the 'Running Total' for Internet sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESYTD(DateTime[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), DATESYTD(DateTime[DateKey])) ``` -The following sample formula creates a measure that calculates the 'Fiscal Year Running Total' for Internet sales, using a US Locale for the Date format. - +The following sample formula creates a measure that calculates the 'Fiscal Year Running Total' for Internet sales, using a US Locale for the Date format. + ```dax = CALCULATE( SUM(InternetSales_USD[SalesAmount_USD]), @@ -60,10 +60,10 @@ The following sample formula creates a measure that calculates the 'Fiscal Year ) ) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[DATESMTD function](datesmtd-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[DATESMTD function](datesmtd-function-dax.md) [DATESQTD function](datesqtd-function-dax.md) diff --git a/query-languages/dax/datevalue-function-dax.md b/query-languages/dax/datevalue-function-dax.md index 2ccfc8040..54677590c 100644 --- a/query-languages/dax/datevalue-function-dax.md +++ b/query-languages/dax/datevalue-function-dax.md @@ -6,48 +6,48 @@ title: "DATEVALUE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Converts a date in text format to a date in datetime format. - -## Syntax - +Converts a date in text format to a date in datetime format. + +## Syntax + ```dax -DATEVALUE(date_text) +DATEVALUE(date_text) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`date_text`|Text that represents a date.| - -## Property Value/Return value - -A date in `datetime` format. - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`date_text`|Text that represents a date.| + +## Property Value/Return value + +A date in `datetime` format. + ## Remarks -- When converting, DATEVALUE uses the locale and date/time settings of the model to determine a date value. If the model date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is converted to a `datetime` value equivalent to January 8th of 2009. However, if the model date/time settings represent dates in the format of Day/Month/Year, the same string is converted as a `datetime` value equivalent to August 1st of 2009. +- When converting, DATEVALUE uses the locale and date/time settings of the model to determine a date value. If the model date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is converted to a `datetime` value equivalent to January 8th of 2009. However, if the model date/time settings represent dates in the format of Day/Month/Year, the same string is converted as a `datetime` value equivalent to August 1st of 2009. - If conversion using the locale and date/time settings of the model fails, DATEVALUE will attempt to use other date formats. In this case, some rows may be converted using one format and other rows are converted using a different format. For example, "5/4/2018" may convert to May 4th of 2018, and "20/4/2018" may convert to April 20th. - -- If the year portion of the `date_text` argument is omitted, the DATEVALUE function uses the current year from your computer's built-in clock. Time information in the `date_text` argument is ignored. + +- If the year portion of the `date_text` argument is omitted, the DATEVALUE function uses the current year from your computer's built-in clock. Time information in the `date_text` argument is ignored. - Model locale and data/time settings are initially determined by the application and computer when the model is created. - Date and datetime can also be specified as a literal in the format `dt"YYYY-MM-DD"`, `dt"YYYY-MM-DDThh:mm:ss"`, or `dt"YYYY-MM-DD hh:mm:ss"`. When specified as a literal, using the DATEVALUE function in the expression is not necessary. To learn more, see [DAX Syntax | Date and time](dax-syntax-reference.md#date-and-time). -## Example +## Example + +The following example returns a different `datetime` value depending on the model locale and settings for how dates and times are presented. + +- In date/time settings where the day precedes the month, the example returns a `datetime` value corresponding to January 8th of 2009. + +- In date/time settings where the month precedes the day, the example returns a `datetime` value corresponding to August 1st of 2009. -The following example returns a different `datetime` value depending on the model locale and settings for how dates and times are presented. - -- In date/time settings where the day precedes the month, the example returns a `datetime` value corresponding to January 8th of 2009. - -- In date/time settings where the month precedes the day, the example returns a `datetime` value corresponding to August 1st of 2009. - ```dax -= DATEVALUE("8/1/2009") += DATEVALUE("8/1/2009") ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 8631e94e6..c00fb2212 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -47,7 +47,7 @@ Let’s look at what Copilot can help you with in [DAX query view](/power-bi/tra - **Natural language to DAX query**. Just ask for what you want from your semantic model and have the DAX query generated by Copilot. You can also select an existing DAX query and have Copilot modify it. - **DAX query to natural language**. Ask Copilot to explain what any DAX query is doing. -- **Understand DAX concepts**. Maybe you heard about a certain DAX function or need to find the right DAX function for the job. Copilot can help you here too. +- **Understand DAX concepts**. Maybe you heard about a certain DAX function or need to find the right DAX function for the job. Copilot can help you here too. To use Copilot to create a DAX query, type in a prompt to describe what DAX query you would like generated and select **Send** or press Enter. Alternatively, you can click the **Write DAX query** inspire button. To run what is returned, select **Run** or press F5 to see the results of the DAX query. To keep the query and exit Copilot, select **Keep query** to add it to query tab. @@ -104,7 +104,7 @@ After a few moments I get a DAX query. I can select **run** to see the results before I keep the query. -:::image type="content" source="media/dax-copilot/dax-copilot-run-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-run-query.png"::: +:::image type="content" source="media/dax-copilot/dax-copilot-run-query.png" alt-text="Screenshot showing Run DAX query generated by Fabric Copilot." lightbox="media/dax-copilot/dax-copilot-run-query.png"::: I can conversationally make updates to my initial request. Type in "Add in Orders" and hit enter and Copilot adds in the additional measure. I can again **run** the query to see the results. @@ -120,7 +120,7 @@ Let's now add a column to the existing DAX query. First I select the DAX query, :::image type="content" source="media/dax-copilot/dax-copilot-show-diff.png" alt-text="Screenshot showing a selection included with the Copilot prompt." lightbox="media/dax-copilot/dax-copilot-show-diff.png"::: -Now the diff styling in the DAX query editor shows exactly what Copilot has changed. +Now the diff styling in the DAX query editor shows exactly what Copilot has changed. :::image type="content" source="media/dax-copilot/dax-copilot-highlight-diff.png" alt-text="Screenshot showing diff styling to see what Copilot has changed." lightbox="media/dax-copilot/dax-copilot-highlight-diff.png"::: @@ -142,7 +142,7 @@ Copilot generates a few lines. I select **Show more** to see the full explanatio :::image type="content" source="media/dax-copilot/dax-copilot-explain-query-more.png" alt-text="Screenshot showing a long explanation of what the query does."::: -Now I understand each part and the DAX functions used. +Now I understand each part and the DAX functions used. ### Explain a DAX topic @@ -162,7 +162,6 @@ I can select **Show more** to see a more detailed explanation with an example. The example also uses columns in my model. - ## Fabric Copilot to help write DAX queries: Responsible AI FAQ ### What is Fabric Copilot to help write DAX queries? @@ -195,7 +194,6 @@ DAX queries from multiple Power BI semantic models using a variety of user reque - Use the thumbs up and thumbs down icons in the inline Copilot to provide feedback. - Submit feedback using the [Power BI support](/power-bi/support/). - ## Learn more with these resources - [Overview of Copilot in Fabric and Power BI](/fabric/get-started/copilot-fabric-overview#enable-copilot) diff --git a/query-languages/dax/dax-function-reference.md b/query-languages/dax/dax-function-reference.md index 827145c23..1737da8b3 100644 --- a/query-languages/dax/dax-function-reference.md +++ b/query-languages/dax/dax-function-reference.md @@ -4,45 +4,45 @@ title: "DAX function reference" --- # DAX function reference -The DAX function reference provides detailed information including syntax, parameters, return values, and examples for each of the over 250 functions used in Data Analysis Expression (DAX) formulas. +The DAX function reference provides detailed information including syntax, parameters, return values, and examples for each of the over 250 functions used in Data Analysis Expression (DAX) formulas. > [!IMPORTANT] -> Not all DAX functions are supported or included in earlier versions of Power BI Desktop, Analysis Services, and Power Pivot in Excel. +> Not all DAX functions are supported or included in earlier versions of Power BI Desktop, Analysis Services, and Power Pivot in Excel. -## In this section +## In this section -[New DAX functions](new-dax-functions.md) - These functions are new or are existing functions that have been significantly updated. +[New DAX functions](new-dax-functions.md) - These functions are new or are existing functions that have been significantly updated. [Aggregation functions](aggregation-functions-dax.md) - These functions calculate a (scalar) value such as count, sum, average, minimum, or maximum for all rows in a column or table as defined by the expression. -[Date and time functions](date-and-time-functions-dax.md) - These functions in DAX are similar to date and time functions in Microsoft Excel. However, DAX functions are based on the datetime data types used by Microsoft SQL Server. - -[Filter functions](filter-functions-dax.md) - These functions help you return specific data types, look up values in related tables, and filter by related values. Lookup functions work by using tables and relationships between them. Filtering functions let you manipulate data context to create dynamic calculations. +[Date and time functions](date-and-time-functions-dax.md) - These functions in DAX are similar to date and time functions in Microsoft Excel. However, DAX functions are based on the datetime data types used by Microsoft SQL Server. + +[Filter functions](filter-functions-dax.md) - These functions help you return specific data types, look up values in related tables, and filter by related values. Lookup functions work by using tables and relationships between them. Filtering functions let you manipulate data context to create dynamic calculations. [Financial functions](financial-functions-dax.md) - These functions are used in formulas that perform financial calculations, such as net present value and rate of return. - -[Information functions](information-functions-dax.md) - These functions look at a table or column provided as an argument to another function and returns whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value you reference contains an error. - -[Logical functions](logical-functions-dax.md) - These functions return information about values in an expression. For example, the `TRUE` function lets you know whether an expression that you are evaluating returns a `TRUE` value. - -[Math and Trig functions](math-and-trig-functions-dax.md) - Mathematical functions in DAX are similar to Excel's mathematical and trigonometric functions. However, there are some differences in the numeric data types used by DAX functions. - -[Other functions](other-functions-dax.md) - These functions perform unique actions that cannot be defined by any of the categories most other functions belong to. - -[Parent and Child functions](parent-and-child-functions-dax.md) - These functions help users manage data that is presented as a parent/child hierarchy in their data models. - -[Relationship functions](relationship-functions-dax.md) - These functions are for managing and utilizing relationships between tables. For example, you can specify a particular relationship to be used in a calculation. + +[Information functions](information-functions-dax.md) - These functions look at a table or column provided as an argument to another function and returns whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value you reference contains an error. + +[Logical functions](logical-functions-dax.md) - These functions return information about values in an expression. For example, the `TRUE` function lets you know whether an expression that you are evaluating returns a `TRUE` value. + +[Math and Trig functions](math-and-trig-functions-dax.md) - Mathematical functions in DAX are similar to Excel's mathematical and trigonometric functions. However, there are some differences in the numeric data types used by DAX functions. + +[Other functions](other-functions-dax.md) - These functions perform unique actions that cannot be defined by any of the categories most other functions belong to. + +[Parent and Child functions](parent-and-child-functions-dax.md) - These functions help users manage data that is presented as a parent/child hierarchy in their data models. + +[Relationship functions](relationship-functions-dax.md) - These functions are for managing and utilizing relationships between tables. For example, you can specify a particular relationship to be used in a calculation. [Statistical functions](statistical-functions-dax.md) - These functions calculate values related to statistical distributions and probability, such as standard deviation and number of permutations. [Table manipulation functions](table-manipulation-functions-dax.md) - These functions return a table or manipulate existing tables. - -[Text functions](text-functions-dax.md) - With these functions, you can return part of a string, search for text within a string, or concatenate string values. Additional functions are for controlling the formats for dates, times, and numbers. -[Time intelligence functions](time-intelligence-functions-dax.md) - These functions help you create calculations that use built-in knowledge about calendars and dates. By using time and date ranges in combination with aggregations or calculations, you can build meaningful comparisons across comparable time periods for sales, inventory, and so on. - +[Text functions](text-functions-dax.md) - With these functions, you can return part of a string, search for text within a string, or concatenate string values. Additional functions are for controlling the formats for dates, times, and numbers. + +[Time intelligence functions](time-intelligence-functions-dax.md) - These functions help you create calculations that use built-in knowledge about calendars and dates. By using time and date ranges in combination with aggregations or calculations, you can build meaningful comparisons across comparable time periods for sales, inventory, and so on. + ## Related content -[DAX Syntax Reference](dax-syntax-reference.md) -[DAX Operator Reference](dax-operator-reference.md) +[DAX Syntax Reference](dax-syntax-reference.md) +[DAX Operator Reference](dax-operator-reference.md) [DAX Parameter-Naming Conventions](dax-parameter-naming-conventions.md) diff --git a/query-languages/dax/dax-learn-videos.md b/query-languages/dax/dax-learn-videos.md index 9e8c7f412..4f6384249 100644 --- a/query-languages/dax/dax-learn-videos.md +++ b/query-languages/dax/dax-learn-videos.md @@ -5,7 +5,7 @@ ms.topic: conceptual --- # Videos -Whether you're using Power BI Desktop, Power Pivot in Excel, or Analysis Services, learning Data Analysis Expressions (DAX) is essential to creating effective data models. Here are some videos to help you get started using this powerful expression language. +Whether you're using Power BI Desktop, Power Pivot in Excel, or Analysis Services, learning Data Analysis Expressions (DAX) is essential to creating effective data models. Here are some videos to help you get started using this powerful expression language. ## DAX 101 diff --git a/query-languages/dax/dax-operator-reference.md b/query-languages/dax/dax-operator-reference.md index 6f899544f..987627cb4 100644 --- a/query-languages/dax/dax-operator-reference.md +++ b/query-languages/dax/dax-operator-reference.md @@ -6,128 +6,128 @@ ms.topic: conceptual # DAX operators The Data Analysis Expression (DAX) language uses operators to create expressions that compare values, perform arithmetic calculations, or work with strings. - + ## Types of operators -There are four different types of calculation operators: arithmetic, comparison, text concatenation, and logical. - +There are four different types of calculation operators: arithmetic, comparison, text concatenation, and logical. + ### Arithmetic operators -To perform basic mathematical operations such as addition, subtraction, or multiplication; combine numbers; and produce numeric results, use the following arithmetic operators. - -|Arithmetic operator|Meaning|Example| -|-----------------------|-----------|-----------| -|`+` (plus sign)|Addition|`3+3`| -|`-` (minus sign)|Subtraction or sign|`3-1-1`| -|`*` (asterisk)|Multiplication|`3*3`| -|`/` (forward slash)|Division|`3/3`| -|`^` (caret)|Exponentiation|`16^4`| - -> [!NOTE] -> The plus sign can function both as a *binary operator* and as a *unary operator*. A binary operator requires numbers on both sides of the operator and performs addition. When you use values in a DAX formula on both sides of the binary operator, DAX tries to cast the values to numeric data types if they are not already numbers. In contrast, the unary operator can be applied to any type of argument. The plus symbol does not affect the type or value and is simply ignored, whereas the minus operator creates a negative value, if applied to a numeric value. - +To perform basic mathematical operations such as addition, subtraction, or multiplication; combine numbers; and produce numeric results, use the following arithmetic operators. + +|Arithmetic operator|Meaning|Example| +|-----------------------|-----------|-----------| +|`+` (plus sign)|Addition|`3+3`| +|`-` (minus sign)|Subtraction or sign|`3-1-1`| +|`*` (asterisk)|Multiplication|`3*3`| +|`/` (forward slash)|Division|`3/3`| +|`^` (caret)|Exponentiation|`16^4`| + +> [!NOTE] +> The plus sign can function both as a *binary operator* and as a *unary operator*. A binary operator requires numbers on both sides of the operator and performs addition. When you use values in a DAX formula on both sides of the binary operator, DAX tries to cast the values to numeric data types if they are not already numbers. In contrast, the unary operator can be applied to any type of argument. The plus symbol does not affect the type or value and is simply ignored, whereas the minus operator creates a negative value, if applied to a numeric value. + ### Comparison operators -You can compare two values with the following operators. When two values are compared by using these operators, the result is a logical value, either `TRUE` or `FALSE`. - -|Comparison operator|Meaning|Example| -|-----------------------|-----------|-----------| +You can compare two values with the following operators. When two values are compared by using these operators, the result is a logical value, either `TRUE` or `FALSE`. + +|Comparison operator|Meaning|Example| +|-----------------------|-----------|-----------| |`=`|Equal to|[Region] = "USA"| -|`==`|Strict equal to|[Region] == "USA"| -|`>`|Greater than|[Sales Date] > "Jan 2009"| -|`<`|Less than|[Sales Date] < "Jan 1 2009"| -|`>=`|Greater than or equal to|[Amount] >= 20000| -|`<=`|Less than or equal to|[Amount] <= 100| +|`==`|Strict equal to|[Region] == "USA"| +|`>`|Greater than|[Sales Date] > "Jan 2009"| +|`<`|Less than|[Sales Date] < "Jan 1 2009"| +|`>=`|Greater than or equal to|[Amount] >= 20000| +|`<=`|Less than or equal to|[Amount] <= 100| |`<>`|Not equal to|[Region] <> "USA"| All comparison operators except == treat BLANK as equal to number 0, empty string "", DATE(1899, 12, 30), or `FALSE`. As a result, [Column] = 0 will be true when the value of [Column] is either 0 or BLANK. In contrast, [Column] == 0 is true only when the value of [Column] is 0. ### Text concatenation operator -Use the ampersand (`&`) to join, or concatenate, two or more text strings to produce a single piece of text. - -|Text operator|Meaning|Example| -|-----------------|-----------|-----------| -|`&` (ampersand)|Connects, or concatenates, two values to produce one continuous text value|`[Region] & ", " & [City]`| - +Use the ampersand (`&`) to join, or concatenate, two or more text strings to produce a single piece of text. + +|Text operator|Meaning|Example| +|-----------------|-----------|-----------| +|`&` (ampersand)|Connects, or concatenates, two values to produce one continuous text value|`[Region] & ", " & [City]`| + ### Logical operators -Use logical operators (`&&`) and (`||`) to combine expressions to produce a single result. - -|Text operator|Meaning|Examples| -|-----------------|-----------|------------| -|`&&`(double ampersand)|Creates an AND condition between two expressions that each have a Boolean result. If both expressions return `TRUE`, the combination of the expressions also returns `TRUE`; otherwise the combination returns `FALSE`.|`([Region] = "France") && ([BikeBuyer] = "yes"))`| +Use logical operators (`&&`) and (`||`) to combine expressions to produce a single result. + +|Text operator|Meaning|Examples| +|-----------------|-----------|------------| +|`&&`(double ampersand)|Creates an AND condition between two expressions that each have a Boolean result. If both expressions return `TRUE`, the combination of the expressions also returns `TRUE`; otherwise the combination returns `FALSE`.|`([Region] = "France") && ([BikeBuyer] = "yes"))`| |`||` (double pipe symbol)|Creates an OR condition between two logical expressions. If either expression returns `TRUE`, the result is `TRUE`; only when both expressions are `FALSE` is the result `FALSE`. | `(([Region] = "France") || ([BikeBuyer] = "yes"))`| |`IN`|Creates a logical OR condition between each row being compared to a table. Note: the table constructor syntax uses curly braces.|`'Product'[Color] IN { "Red", "Blue", "Black" }`| - + ## Operators and precedence order -In some cases, the order in which calculation is performed can affect the Return value; therefore, it is important to understand how the order is determined and how you can change the order to obtain the desired results. - +In some cases, the order in which calculation is performed can affect the Return value; therefore, it is important to understand how the order is determined and how you can change the order to obtain the desired results. + ### Calculation order -An expression evaluates the operators and values in a specific order. All expressions always begin with an equal sign (=). The equal sign indicates that the succeeding characters constitute an expression. - -Following the equal sign are the elements to be calculated (the operands), which are separated by calculation operators. Expressions are always read from left to right, but the order in which the elements are grouped can be controlled to some degree by using parentheses. - +An expression evaluates the operators and values in a specific order. All expressions always begin with an equal sign (=). The equal sign indicates that the succeeding characters constitute an expression. + +Following the equal sign are the elements to be calculated (the operands), which are separated by calculation operators. Expressions are always read from left to right, but the order in which the elements are grouped can be controlled to some degree by using parentheses. + ### Operator precedence -If you combine several operators in a single formula, the operations are ordered according to the following table. If the operators have equal precedence value, they are ordered from left to right. For example, if an expression contains both a multiplication and division operator, they are evaluated in the order that they appear in the expression, from left to right. - -|Operator|Description| -|------------|---------------| -|`^`|Exponentiation| -|`–`|Sign (such as –1)| -|`*` and `/`|Multiplication and division| -|`+` and `–`|Addition and subtraction| -|`&`|Connects two strings of text (concatenation)| -|`=,==,<,>,<=,>=,<>,IN`|Comparison| -|`NOT`|`NOT` (unary operator)| - +If you combine several operators in a single formula, the operations are ordered according to the following table. If the operators have equal precedence value, they are ordered from left to right. For example, if an expression contains both a multiplication and division operator, they are evaluated in the order that they appear in the expression, from left to right. + +|Operator|Description| +|------------|---------------| +|`^`|Exponentiation| +|`–`|Sign (such as –1)| +|`*` and `/`|Multiplication and division| +|`+` and `–`|Addition and subtraction| +|`&`|Connects two strings of text (concatenation)| +|`=,==,<,>,<=,>=,<>,IN`|Comparison| +|`NOT`|`NOT` (unary operator)| + ### Using parentheses to control calculation order -To change the order of evaluation, you should enclose in parentheses that part of the formula that must be calculated first. For example, the following formula produces 11 because multiplication is calculated before addition. The formula multiplies 2 by 3, and then adds 5 to the result. - +To change the order of evaluation, you should enclose in parentheses that part of the formula that must be calculated first. For example, the following formula produces 11 because multiplication is calculated before addition. The formula multiplies 2 by 3, and then adds 5 to the result. + ```dax -=5+2*3 +=5+2*3 ``` -In contrast, if you use parentheses to change the syntax, the order is changed so that 5 and 2 are added together, and the result multiplied by 3 to produce 21. - +In contrast, if you use parentheses to change the syntax, the order is changed so that 5 and 2 are added together, and the result multiplied by 3 to produce 21. + ```dax -=(5+2)*3 +=(5+2)*3 ``` -In the following example, the parentheses around the first part of the formula force the calculation to evaluate the expression `(3 + 0.25)` first and then divide the result by the result of the expression, `(3 - 0.25)`. - +In the following example, the parentheses around the first part of the formula force the calculation to evaluate the expression `(3 + 0.25)` first and then divide the result by the result of the expression, `(3 - 0.25)`. + ```dax -=(3 + 0.25)/(3 - 0.25) +=(3 + 0.25)/(3 - 0.25) ``` -In the following example, the exponentiation operator is applied first, according to the rules of precedence for operators, and then the sign operator is applied. The result for this expression is -4. - +In the following example, the exponentiation operator is applied first, according to the rules of precedence for operators, and then the sign operator is applied. The result for this expression is -4. + ```dax -=-2^2 +=-2^2 ``` -To ensure that the sign operator is applied to the numeric value first, you can use parentheses to control operators, as shown in the following example. The result for this expression is 4. - +To ensure that the sign operator is applied to the numeric value first, you can use parentheses to control operators, as shown in the following example. The result for this expression is 4. + ```dax -= (-2)^2 += (-2)^2 ``` - + ## Compatibility -DAX easily handles and compares various data types, much like Microsoft Excel. However, the underlying computation engine is based on SQL Server Analysis Services and provides additional advanced features of a relational data store, including richer support for date and time types. Therefore, in some cases the results of calculations or the behavior of functions may not be the same as in Excel. Moreover, DAX supports more data types than does Excel. This section describes the key differences. - +DAX easily handles and compares various data types, much like Microsoft Excel. However, the underlying computation engine is based on SQL Server Analysis Services and provides additional advanced features of a relational data store, including richer support for date and time types. Therefore, in some cases the results of calculations or the behavior of functions may not be the same as in Excel. Moreover, DAX supports more data types than does Excel. This section describes the key differences. + ### Coercing data types of operands -In general, the two operands on the left and right sides of any operator should be the same data type. However, if the data types are different, DAX will convert them to a common data type to apply the operator in some cases: - +In general, the two operands on the left and right sides of any operator should be the same data type. However, if the data types are different, DAX will convert them to a common data type to apply the operator in some cases: + 1. Both operands are converted to the largest possible common data type. 1. The operator is applied, if possible. - -For example, suppose you have two numbers that you want to combine. One number results from a formula, such as =`[Price] * .20`, and the result may contain many decimal places. The other number is an integer that has been provided as a string value. + +For example, suppose you have two numbers that you want to combine. One number results from a formula, such as =`[Price] * .20`, and the result may contain many decimal places. The other number is an integer that has been provided as a string value. In this case, DAX will convert both numbers to real numbers in a numeric format, using the largest numeric format that can store both kinds of numbers. Then DAX will apply the multiplication. @@ -135,7 +135,7 @@ Depending on the data-type combination, type coercion may not be applied for com Integer, Real Number, Currency, Date/time and Blank are considered numeric for comparison purposes. Blank evaluates to zero when performing a comparison. The following data-type combinations are supported for comparison operations. -Left Side Data Type |Right Side Data Type +Left Side Data Type |Right Side Data Type ---------|--------- Numeric | Numeric Boolean | Boolean @@ -143,21 +143,21 @@ String | String Other mixed data-type comparisons will return an error. For example, a formula such as ="1" > 0 returns an error stating that *DAX comparison operations do not support comparing values of type Text with values of type Integer*. -|Data Types used in DAX|Data Types used in Excel| +|Data Types used in DAX|Data Types used in Excel| |--------------------------|----------------------------| |Numbers (I8, R8)|Numbers (R8)| |String|String| |Boolean|Boolean| |DateTime|Variant| |Currency|Currency| - + ### Differences in precedence order -The precedence order of operations in DAX formulas is basically the same as that used by Microsoft Excel, but some Excel operators are not supported, such as percent. Also, ranges are not supported. - -Therefore, whenever you copy and paste formulas from Excel, be sure to review the formula carefully, as some operators or elements in the formulas may not be valid. When there is any doubt about the order in which operations are performed, it's recommended you use parentheses to control the order of operations and remove any ambiguity about the result. - +The precedence order of operations in DAX formulas is basically the same as that used by Microsoft Excel, but some Excel operators are not supported, such as percent. Also, ranges are not supported. + +Therefore, whenever you copy and paste formulas from Excel, be sure to review the formula carefully, as some operators or elements in the formulas may not be valid. When there is any doubt about the order in which operations are performed, it's recommended you use parentheses to control the order of operations and remove any ambiguity about the result. + ## Related content -[DAX syntax](dax-syntax-reference.md) +[DAX syntax](dax-syntax-reference.md) [DAX parameter-naming](dax-parameter-naming-conventions.md) diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index d1efb9021..0333a5e7b 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -11,32 +11,32 @@ This article provides only a basic introduction to the most important concepts i ## Calculations -DAX formulas are used in measures, calculated columns, calculated tables, and row-level security. +DAX formulas are used in measures, calculated columns, calculated tables, and row-level security. -### Measures +### Measures + +Measures are dynamic calculation formulas where the results change depending on context. Measures are used in reporting that support combining and filtering model data by using multiple attributes such as a Power BI report or Excel PivotTable or PivotChart. Measures are created by using the DAX formula bar in the model designer. -Measures are dynamic calculation formulas where the results change depending on context. Measures are used in reporting that support combining and filtering model data by using multiple attributes such as a Power BI report or Excel PivotTable or PivotChart. Measures are created by using the DAX formula bar in the model designer. - A formula in a measure can use standard aggregation functions automatically created by using the Autosum feature, such as COUNT or SUM, or you can define your own formula by using the DAX formula bar. Named measures can be passed as an argument to other measures. When you define a formula for a measure in the formula bar, a Tooltip feature shows a preview of what the results would be for the total in the current context, but otherwise the results are not immediately output anywhere. The reason you cannot see the (filtered) results of the calculation immediately is because the result of a measure cannot be determined without context. To evaluate a measure requires a reporting client application that can provide the context needed to retrieve the data relevant to each cell and then evaluate the expression for each cell. That client might be an Excel PivotTable or PivotChart, a Power BI report, or a table expression in a DAX query in SQL Server Management Studio (SSMS). -Regardless of the client, a separate query is run for each cell in the results. That is to say, each combination of row and column headers in a PivotTable, or each selection of slicers and filters in a Power BI report, generates a different subset of data over which the measure is calculated. For example, using this very simple measure formula: +Regardless of the client, a separate query is run for each cell in the results. That is to say, each combination of row and column headers in a PivotTable, or each selection of slicers and filters in a Power BI report, generates a different subset of data over which the measure is calculated. For example, using this very simple measure formula: ```dax Total Sales = SUM([Sales Amount]) ``` -When a user places the TotalSales measure in a report, and then places the Product Category column from a Product table into Filters, the sum of Sales Amount is calculated and displayed for each product category. - -Unlike calculated columns, the syntax for a measure includes the measure's name preceding the formula. In the example just provided, the name **Total Sales** appears preceding the formula. After you've created a measure, the name and its definition appear in the reporting client application Fields list, and depending on perspectives and roles is available to all users of the model. +When a user places the TotalSales measure in a report, and then places the Product Category column from a Product table into Filters, the sum of Sales Amount is calculated and displayed for each product category. + +Unlike calculated columns, the syntax for a measure includes the measure's name preceding the formula. In the example just provided, the name **Total Sales** appears preceding the formula. After you've created a measure, the name and its definition appear in the reporting client application Fields list, and depending on perspectives and roles is available to all users of the model. -To learn more, see: -[Measures in Power BI Desktop](/power-bi/transform-model/desktop-measures) -[Measures in Analysis Services](/analysis-services/tabular-models/measures-ssas-tabular) +To learn more, see: +[Measures in Power BI Desktop](/power-bi/transform-model/desktop-measures) +[Measures in Analysis Services](/analysis-services/tabular-models/measures-ssas-tabular) [Measures in Power Pivot](https://support.office.com/article/Measures-in-Power-Pivot-86484821-a324-4da3-803b-82fd2e5033f4) - -### Calculated columns + +### Calculated columns A calculated column is a column that you add to an existing table (in the model designer) and then create a DAX formula that defines the column's values. When a calculated column contains a valid DAX formula, values are calculated for each row as soon as the formula is entered. Values are then stored in the in-memory data model. For example, in a Date table, when the formula is entered into the formula bar: @@ -44,23 +44,23 @@ To learn more, see: = [Calendar Year] & " Q" & [Calendar Quarter] ``` -A value for each row in the table is calculated by taking values from the Calendar Year column (in the same Date table), adding a space and the capital letter Q, and then adding the values from the Calendar Quarter column (in the same Date table). The result for each row in the calculated column is calculated immediately and appears, for example, as **2017 Q1**. Column values are only recalculated if the table or any related table is processed (refresh) or the model is unloaded from memory and then reloaded, like when closing and reopening a Power BI Desktop file. - - To learn more, see: -[Calculated columns in Power BI Desktop](/power-bi/transform-model/desktop-calculated-columns) -[Calculated columns in Analysis Services](/analysis-services/tabular-models/ssas-calculated-columns) -[Calculated Columns in Power Pivot](https://support.office.com/article/calculated-columns-in-power-pivot-a0eb7167-33fc-4ade-a23f-fb9217c193af). - +A value for each row in the table is calculated by taking values from the Calendar Year column (in the same Date table), adding a space and the capital letter Q, and then adding the values from the Calendar Quarter column (in the same Date table). The result for each row in the calculated column is calculated immediately and appears, for example, as **2017 Q1**. Column values are only recalculated if the table or any related table is processed (refresh) or the model is unloaded from memory and then reloaded, like when closing and reopening a Power BI Desktop file. + + To learn more, see: +[Calculated columns in Power BI Desktop](/power-bi/transform-model/desktop-calculated-columns) +[Calculated columns in Analysis Services](/analysis-services/tabular-models/ssas-calculated-columns) +[Calculated Columns in Power Pivot](https://support.office.com/article/calculated-columns-in-power-pivot-a0eb7167-33fc-4ade-a23f-fb9217c193af). + ### Calculated tables - + A calculated table is a computed object, based on a formula expression, derived from all or part of other tables in the same model. Instead of querying and loading values into your new table's columns from a data source, a DAX formula defines the table's values. Calculated tables can be helpful in a role-playing dimension. An example is the Date table, as OrderDate, ShipDate, or DueDate, depending on the foreign key relationship. By creating a calculated table for ShipDate explicitly, you get a standalone table that is available for queries, as fully operable as any other table. Calculated tables are also useful when configuring a filtered rowset, or a subset or superset of columns from other existing tables. This allows you to keep the original table intact while creating variations of that table to support specific scenarios. Calculated tables support relationships with other tables. The columns in your calculated table have data types, formatting, and can belong to a data category. Calculated tables can be named, and surfaced or hidden just like any other table. Calculated tables are re-calculated if any of the tables it pulls data from are refreshed or updated. -To learn more, see: -[Calculated tables in Power BI Desktop](/power-bi/transform-model/desktop-calculated-tables) +To learn more, see: +[Calculated tables in Power BI Desktop](/power-bi/transform-model/desktop-calculated-tables) [Calculated tables in Analysis Services](/analysis-services/tabular-models/create-a-calculated-table-ssas-tabular). ### Row-level security @@ -72,14 +72,14 @@ With row-level security, a DAX formula must evaluate to a Boolean `TRUE`/`FALSE` ``` Members of the Sales role will only be able to view data for customers in the USA, and aggregates, such as SUM are returned only for customers in the USA. Row-level security is not available in Power Pivot in Excel. - -When defining row-level secuirty by using DAX formula, you are creating an allowed row set. This does not deny access to other rows; rather, they are simply not returned as part of the allowed row set. Other roles can allow access to the rows excluded by the DAX formula. If a user is a member of another role, and that role's row-level security allows access to that particular row set, the user can view data for that row. - -Row-level security formulas apply to the specified rows as well as related rows. When a table has multiple relationships, filters apply security for the relationship that is active. Row-level security formulas will be intersected with other formulas defined for related tables. -To learn more, see: -[Row-level security (RLS) with Power BI](/power-bi/admin/service-admin-rls) -[Roles in Analysis Services](/analysis-services/tabular-models/roles-ssas-tabular) +When defining row-level secuirty by using DAX formula, you are creating an allowed row set. This does not deny access to other rows; rather, they are simply not returned as part of the allowed row set. Other roles can allow access to the rows excluded by the DAX formula. If a user is a member of another role, and that role's row-level security allows access to that particular row set, the user can view data for that row. + +Row-level security formulas apply to the specified rows as well as related rows. When a table has multiple relationships, filters apply security for the relationship that is active. Row-level security formulas will be intersected with other formulas defined for related tables. + +To learn more, see: +[Row-level security (RLS) with Power BI](/power-bi/admin/service-admin-rls) +[Roles in Analysis Services](/analysis-services/tabular-models/roles-ssas-tabular) ## Queries @@ -98,144 +98,144 @@ Returns in Results a table listing only those products with a SafetyStockLevel l You can create measures as part of the query. Measures exist only for the duration of the query. To learn more, see [DAX queries](dax-queries.md). -## Formulas - -DAX formulas are essential for creating calculations in calculated columns and measures, and securing your data by using row-level security. To create formulas for calculated columns and measures, use the formula bar along the top of the model designer window or the DAX Editor. To create formulas for row-level security, use the Role Manager or Manage roles dialog box. Information in this section is meant to get you started with understanding the basics of DAX formulas. - -### Formula basics - -DAX formulas can be very simple or quite complex. The following table shows some examples of simple formulas that could be used in a calculated column. - -|Formula|Definition| -|--------|--------------| -|`= TODAY()`|Inserts today's date in every row of a calculated column.| -|`= 3`|Inserts the value 3 in every row of a calculated column.| -|`= [Column1] + [Column2]`|Adds the values in the same row of [Column1] and [Column2] and puts the results in the calculated column of the same row.| - -Whether the formula you create is simple or complex, you can use the following steps when building a formula: - -1. Each formula must begin with an equal sign (=). - -2. You can either type or select a function name, or type an expression. - -3. Begin to type the first few letters of the function or name you want, and AutoComplete displays a list of available functions, tables, and columns. Press TAB to add an item from the AutoComplete list to the formula. - - You can also click the **Fx** button to display a list of available functions. To select a function from the dropdown list, use the arrow keys to highlight the item, and click **OK** to add the function to the formula. - -4. Supply the arguments to the function by selecting them from a dropdown list of possible tables and columns, or by typing in values. - -5. Check for syntax errors: ensure that all parentheses are closed and columns, tables and values are referenced correctly. - -6. Press ENTER to accept the formula. - -> [!NOTE] ->In a calculated column, as soon as you enter the formula and the formula is validated, the column is populated with values. In a measure, pressing ENTER saves the measure definition with the table. If a formula is invalid, an error is displayed. - - In this example, let's look at a formula in a measure named **Days in Current Quarter**: - +## Formulas + +DAX formulas are essential for creating calculations in calculated columns and measures, and securing your data by using row-level security. To create formulas for calculated columns and measures, use the formula bar along the top of the model designer window or the DAX Editor. To create formulas for row-level security, use the Role Manager or Manage roles dialog box. Information in this section is meant to get you started with understanding the basics of DAX formulas. + +### Formula basics + +DAX formulas can be very simple or quite complex. The following table shows some examples of simple formulas that could be used in a calculated column. + +|Formula|Definition| +|--------|--------------| +|`= TODAY()`|Inserts today's date in every row of a calculated column.| +|`= 3`|Inserts the value 3 in every row of a calculated column.| +|`= [Column1] + [Column2]`|Adds the values in the same row of [Column1] and [Column2] and puts the results in the calculated column of the same row.| + +Whether the formula you create is simple or complex, you can use the following steps when building a formula: + +1. Each formula must begin with an equal sign (=). + +2. You can either type or select a function name, or type an expression. + +3. Begin to type the first few letters of the function or name you want, and AutoComplete displays a list of available functions, tables, and columns. Press TAB to add an item from the AutoComplete list to the formula. + + You can also click the **Fx** button to display a list of available functions. To select a function from the dropdown list, use the arrow keys to highlight the item, and click **OK** to add the function to the formula. + +4. Supply the arguments to the function by selecting them from a dropdown list of possible tables and columns, or by typing in values. + +5. Check for syntax errors: ensure that all parentheses are closed and columns, tables and values are referenced correctly. + +6. Press ENTER to accept the formula. + +> [!NOTE] +>In a calculated column, as soon as you enter the formula and the formula is validated, the column is populated with values. In a measure, pressing ENTER saves the measure definition with the table. If a formula is invalid, an error is displayed. + + In this example, let's look at a formula in a measure named **Days in Current Quarter**: + ```dax Days in Current Quarter = COUNTROWS( DATESBETWEEN( 'Date'[Date], STARTOFQUARTER( LASTDATE('Date'[Date])), ENDOFQUARTER('Date'[Date]))) -``` - -This measure is used to create a comparison ratio between an incomplete period and the previous period. The formula must take into account the proportion of the period that has elapsed, and compare it to the same proportion in the previous period. In this case, [Days Current Quarter to Date]/[Days in Current Quarter] gives the proportion elapsed in the current period. - -This formula contains the following elements: - -|Formula element|Description| -|---------------------|-----------------| -|`Days in Current Quarter`|The name of the measure.| -|`=`|The equals sign (=) begins the formula.| -|`COUNTROWS`|[COUNTROWS](countrows-function-dax.md) counts the number of rows in the Date table| -|`()`|Open and closing parenthesis specifies arguments.| -|`DATESBETWEEN`|The DATESBETWEEN function returns the dates between the last date for each value in the Date column in the Date table.| -|`'Date'`|Specifies the Date table. Tables are in single quotes.| -|`[Date]`|Specifies the Date column in the Date table. Columns are in brackets.| -|`,`|| -|`STARTOFQUARTER`|The STARTOFQUARTER function returns the date of the start of the quarter.| -|`LASTDATE`|The LASTDATE function returns the last date of the quarter.| -|`'Date'`|Specifies the Date table.| -|`[Date]`|Specifies the Date column in the Date table.| -|`,`|| -|`ENDOFQUARTER`|The ENDOFQUARTER function| -|`'Date'`|Specifies the Date table.| -|`[Date]`|Specifies the Date column in the Date table.| - -#### Using formula AutoComplete - -AutoComplete helps you enter a valid formula syntax by providing you with options for each element in the formula. - -- You can use formula AutoComplete in the middle of an existing formula with nested functions. The text immediately before the insertion point is used to display values in the drop-down list, and all of the text after the insertion point remains unchanged. - -- AutoComplete does not add the closing parenthesis of functions or automatically match parentheses. You must make sure that each function is syntactically correct or you cannot save or use the formula. - -#### Using multiple functions in a formula +``` + +This measure is used to create a comparison ratio between an incomplete period and the previous period. The formula must take into account the proportion of the period that has elapsed, and compare it to the same proportion in the previous period. In this case, [Days Current Quarter to Date]/[Days in Current Quarter] gives the proportion elapsed in the current period. + +This formula contains the following elements: + +|Formula element|Description| +|---------------------|-----------------| +|`Days in Current Quarter`|The name of the measure.| +|`=`|The equals sign (=) begins the formula.| +|`COUNTROWS`|[COUNTROWS](countrows-function-dax.md) counts the number of rows in the Date table| +|`()`|Open and closing parenthesis specifies arguments.| +|`DATESBETWEEN`|The DATESBETWEEN function returns the dates between the last date for each value in the Date column in the Date table.| +|`'Date'`|Specifies the Date table. Tables are in single quotes.| +|`[Date]`|Specifies the Date column in the Date table. Columns are in brackets.| +|`,`|| +|`STARTOFQUARTER`|The STARTOFQUARTER function returns the date of the start of the quarter.| +|`LASTDATE`|The LASTDATE function returns the last date of the quarter.| +|`'Date'`|Specifies the Date table.| +|`[Date]`|Specifies the Date column in the Date table.| +|`,`|| +|`ENDOFQUARTER`|The ENDOFQUARTER function| +|`'Date'`|Specifies the Date table.| +|`[Date]`|Specifies the Date column in the Date table.| + +#### Using formula AutoComplete + +AutoComplete helps you enter a valid formula syntax by providing you with options for each element in the formula. + +- You can use formula AutoComplete in the middle of an existing formula with nested functions. The text immediately before the insertion point is used to display values in the drop-down list, and all of the text after the insertion point remains unchanged. + +- AutoComplete does not add the closing parenthesis of functions or automatically match parentheses. You must make sure that each function is syntactically correct or you cannot save or use the formula. + +#### Using multiple functions in a formula You can nest functions, meaning that you use the results from one function as an argument of another function. You can nest up to 64 levels of functions in calculated columns. However, nesting can make it difficult to create or troubleshoot formulas. Many functions are designed to be used solely as nested functions. These functions return a table, which cannot be directly saved as a result; it must be provided as input to a table function. For example, the functions SUMX, AVERAGEX, and MINX all require a table as the first argument. - -## Functions - -A function is a named formula within an expression. Most functions have required and optional arguments, also known as parameters, as input. When the function is executed, a value is returned. DAX includes functions you can use to perform calculations using dates and times, create conditional values, work with strings, perform lookups based on relationships, and the ability to iterate over a table to perform recursive calculations. If you are familiar with Excel formulas, many of these functions will appear very similar; however, DAX formulas are different in the following important ways: - -- A DAX function always references a complete column or a table. If you want to use only particular values from a table or column, you can add filters to the formula. - -- If you need to customize calculations on a row-by-row basis, DAX provides functions that let you use the current row value or a related value as a kind of parameter, to perform calculations that vary by context. To understand how these functions work, see [Context](#context) in this article. - -- DAX includes many functions that return a table, rather than a value. The table is not displayed in a reporting client, but is used to provide input to other functions. For example, you can retrieve a table and then count the distinct values in it, or calculate dynamic sums across filtered tables or columns. - -- DAX functions include a variety of *time intelligence* functions. These functions let you define or select date ranges, and perform dynamic calculations based on these dates or range. For example, you can compare sums across parallel periods. + +## Functions + +A function is a named formula within an expression. Most functions have required and optional arguments, also known as parameters, as input. When the function is executed, a value is returned. DAX includes functions you can use to perform calculations using dates and times, create conditional values, work with strings, perform lookups based on relationships, and the ability to iterate over a table to perform recursive calculations. If you are familiar with Excel formulas, many of these functions will appear very similar; however, DAX formulas are different in the following important ways: + +- A DAX function always references a complete column or a table. If you want to use only particular values from a table or column, you can add filters to the formula. + +- If you need to customize calculations on a row-by-row basis, DAX provides functions that let you use the current row value or a related value as a kind of parameter, to perform calculations that vary by context. To understand how these functions work, see [Context](#context) in this article. + +- DAX includes many functions that return a table, rather than a value. The table is not displayed in a reporting client, but is used to provide input to other functions. For example, you can retrieve a table and then count the distinct values in it, or calculate dynamic sums across filtered tables or columns. + +- DAX functions include a variety of *time intelligence* functions. These functions let you define or select date ranges, and perform dynamic calculations based on these dates or range. For example, you can compare sums across parallel periods. ### Aggregation functions Aggregation functions calculate a (scalar) value such as count, sum, average, minimum, or maximum for all rows in a column or table as defined by the expression. To learn more, see [Aggregation functions](aggregation-functions-dax.md). -### Date and time functions +### Date and time functions The date and time functions in DAX are similar to date and time functions in Microsoft Excel. However, DAX functions are based on a **datetime** data type starting March 1, 1900. To learn more, see [Date and time functions](date-and-time-functions-dax.md). -### Filter functions +### Filter functions -The filter functions in DAX return specific data types, look up values in related tales, and filter by related values. The lookup functions work by using tables and relationships, like a database. The filtering functions let you manipulate data context to create dynamic calculations. To learn more, see [Filter functions](filter-functions-dax.md). +The filter functions in DAX return specific data types, look up values in related tales, and filter by related values. The lookup functions work by using tables and relationships, like a database. The filtering functions let you manipulate data context to create dynamic calculations. To learn more, see [Filter functions](filter-functions-dax.md). ### Financial functions The financial functions in DAX are used in formulas that perform financial calculations, such as net present value and rate of return. These functions are similar to financial functions used in Microsoft Excel. To learn more, see [Financial functions](financial-functions-dax.md). - -### Information functions -An information function looks at the cell or row that is provided as an argument and tells you whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value that you reference contains an error. To learn more, see [Information functions](information-functions-dax.md). - -### Logical functions +### Information functions -Logical functions act upon an expression to return information about the values in the expression. For example, the `TRUE` function lets you know whether an expression that you are evaluating returns a `TRUE` value. To learn more, see [Logical functions](logical-functions-dax.md). - -### Mathematical and trigonometric functions +An information function looks at the cell or row that is provided as an argument and tells you whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value that you reference contains an error. To learn more, see [Information functions](information-functions-dax.md). -The mathematical functions in DAX are very similar to the Excel mathematical and trigonometric functions. Some minor differences exist in the numeric data types used by DAX functions. To learn more, see [Math and trig functions](math-and-trig-functions-dax.md). +### Logical functions -### Other functions +Logical functions act upon an expression to return information about the values in the expression. For example, the `TRUE` function lets you know whether an expression that you are evaluating returns a `TRUE` value. To learn more, see [Logical functions](logical-functions-dax.md). + +### Mathematical and trigonometric functions + +The mathematical functions in DAX are very similar to the Excel mathematical and trigonometric functions. Some minor differences exist in the numeric data types used by DAX functions. To learn more, see [Math and trig functions](math-and-trig-functions-dax.md). + +### Other functions These functions perform unique actions that cannot be defined by any of the categories most other functions belong to. To learn more, see [Other functions](other-functions-dax.md). ### Relationship functions Relationship functions in DAX allow you to return values from another related table, specify a particular relationship to use in an expression, and specify cross filtering direction. To learn more, see [Relationship functions](relationship-functions-dax.md). - -### Statistical functions -Statistical functions calculate values related to statistical distributions and probability, such as standard deviation and number of permutations. To learn more, see [Statistical functions](statistical-functions-dax.md). - -### Text functions +### Statistical functions + +Statistical functions calculate values related to statistical distributions and probability, such as standard deviation and number of permutations. To learn more, see [Statistical functions](statistical-functions-dax.md). + +### Text functions + +Text functions in DAX are very similar to their counterparts in Excel. You can return part of a string, search for text within a string, or concatenate string values. DAX also provides functions for controlling the formats for dates, times, and numbers. To learn more, see [Text functions](text-functions-dax.md). + +### Time intelligence functions -Text functions in DAX are very similar to their counterparts in Excel. You can return part of a string, search for text within a string, or concatenate string values. DAX also provides functions for controlling the formats for dates, times, and numbers. To learn more, see [Text functions](text-functions-dax.md). - -### Time intelligence functions +The time intelligence functions provided in DAX let you create calculations that use built-in knowledge about calendars and dates. By using time and date ranges in combination with aggregations or calculations, you can build meaningful comparisons across comparable time periods for sales, inventory, and so on. To learn more, see [Time intelligence functions (DAX)](time-intelligence-functions-dax.md). -The time intelligence functions provided in DAX let you create calculations that use built-in knowledge about calendars and dates. By using time and date ranges in combination with aggregations or calculations, you can build meaningful comparisons across comparable time periods for sales, inventory, and so on. To learn more, see [Time intelligence functions (DAX)](time-intelligence-functions-dax.md). - -### Table manipulation functions +### Table manipulation functions These functions return a table or manipulate existing tables. For example, by using ADDCOLUMNS you can add calculated columns to a specified table, or you can return a summary table over a set of groups with the SUMMARIZECOLUMNS function. To learn more, see [Table manipulation functions](table-manipulation-functions-dax.md). - + ## Variables You can create variables within an expression by using [VAR](var-dax.md). VAR is technically not a function, it's a keyword to store the result of an expression as a named variable. That variable can then be passed as an argument to other measure expressions. For example: @@ -255,161 +255,161 @@ Return In this example, TotalQty can be passed as a named variable to other expressions. Variables can be of any scalar data type, including tables. Using variables in your DAX formulas can be incredibly powerful. -## Data types - - You can import data into a model from many different data sources that might support different data types. When you import data into a model, the data is converted to one of the tabular model data types. When the model data is used in a calculation, the data is then converted to a DAX data type for the duration and output of the calculation. When you create a DAX formula, the terms used in the formula will automatically determine the value data type returned. - - DAX supports the following data types: - -|Data type in model|Data type in DAX|Description| -|------------------------|----------------------|-----------------| -|`Whole Number`|A 64 bit (eight-bytes) integer value 1, 2|Numbers that have no decimal places. Integers can be positive or negative numbers, but must be whole numbers between -9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1).| -|`Decimal Number`|A 64 bit (eight-bytes) real number 1, 2|Real numbers are numbers that can have decimal places. Real numbers cover a wide range of values:

Negative values from -1.79E +308 through -2.23E -308

Zero

Positive values from 2.23E -308 through 1.79E + 308

However, the number of significant digits is limited to 17 decimal digits.| -|`Boolean`|Boolean|Either a True or False value.| -|`Text`|String|A Unicode character data string. Can be strings, numbers or dates represented in a text format.| -|`Date`|Date/time|Dates and times in an accepted date-time representation.

Valid dates are all dates after March 1, 1900.| -|`Currency`|Currency|Currency data type allows values between -922,337,203,685,477.5808 to 922,337,203,685,477.5807 with four decimal digits of fixed precision.| -|`N/A`|Blank|A blank is a data type in DAX that represents and replaces SQL nulls. You can create a blank by using the BLANK function, and test for blanks by using the logical function, ISBLANK.| - -Tabular data models also include the *Table* data type as the input or output to many DAX functions. For example, the FILTER function takes a table as input and outputs another table that contains only the rows that meet the filter conditions. By combining table functions with aggregation functions, you can perform complex calculations over dynamically defined data sets. - -While data types are typically automatically set, it is important to understand data types and how they apply, in-particular, to DAX formulas. Errors in formulas or unexpected results, for example, are often caused by using a particular operator that cannot be used with a data type specified in an argument. For example, the formula, `= 1 & 2`, returns a string result of 12. The formula, `= "1" + "2"`, however, returns an integer result of 3. +## Data types + + You can import data into a model from many different data sources that might support different data types. When you import data into a model, the data is converted to one of the tabular model data types. When the model data is used in a calculation, the data is then converted to a DAX data type for the duration and output of the calculation. When you create a DAX formula, the terms used in the formula will automatically determine the value data type returned. + + DAX supports the following data types: + +|Data type in model|Data type in DAX|Description| +|------------------------|----------------------|-----------------| +|`Whole Number`|A 64 bit (eight-bytes) integer value 1, 2|Numbers that have no decimal places. Integers can be positive or negative numbers, but must be whole numbers between -9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1).| +|`Decimal Number`|A 64 bit (eight-bytes) real number 1, 2|Real numbers are numbers that can have decimal places. Real numbers cover a wide range of values:

Negative values from -1.79E +308 through -2.23E -308

Zero

Positive values from 2.23E -308 through 1.79E + 308

However, the number of significant digits is limited to 17 decimal digits.| +|`Boolean`|Boolean|Either a True or False value.| +|`Text`|String|A Unicode character data string. Can be strings, numbers or dates represented in a text format.| +|`Date`|Date/time|Dates and times in an accepted date-time representation.

Valid dates are all dates after March 1, 1900.| +|`Currency`|Currency|Currency data type allows values between -922,337,203,685,477.5808 to 922,337,203,685,477.5807 with four decimal digits of fixed precision.| +|`N/A`|Blank|A blank is a data type in DAX that represents and replaces SQL nulls. You can create a blank by using the BLANK function, and test for blanks by using the logical function, ISBLANK.| + +Tabular data models also include the *Table* data type as the input or output to many DAX functions. For example, the FILTER function takes a table as input and outputs another table that contains only the rows that meet the filter conditions. By combining table functions with aggregation functions, you can perform complex calculations over dynamically defined data sets. + +While data types are typically automatically set, it is important to understand data types and how they apply, in-particular, to DAX formulas. Errors in formulas or unexpected results, for example, are often caused by using a particular operator that cannot be used with a data type specified in an argument. For example, the formula, `= 1 & 2`, returns a string result of 12. The formula, `= "1" + "2"`, however, returns an integer result of 3. ## Context -*Context* is an important concept to understand when creating DAX formulas. Context is what enables you to perform dynamic analysis, as the results of a formula change to reflect the current row or cell selection and also any related data. Understanding context and using context effectively are critical for building high-performing, dynamic analyses, and for troubleshooting problems in formulas. - -Formulas in tabular models can be evaluated in a different context, depending on other design elements: - -- Filters applied in a PivotTable or report -- Filters defined within a formula -- Relationships specified by using special functions within a formula - -There are different types of context: *row context*, *query context*, and *filter context*. - -### Row context - -*Row context* can be thought of as "the current row". If you create a formula in a calculated column, the row context for that formula includes the values from all columns in the current row. If the table is related to another table, the content also includes all the values from the other table that are related to the current row. - -For example, suppose you create a calculated column, `= [Freight] + [Tax]`, that adds together values from two columns, Freight and Tax, from the same table. This formula automatically gets only the values from the current row in the specified columns. - -Row context also follows any relationships that have been defined between tables, including relationships defined within a calculated column by using DAX formulas, to determine which rows in related tables are associated with the current row. - -For example, the following formula uses the RELATED function to fetch a tax value from a related table, based on the region that the order was shipped to. The tax value is determined by using the value for region in the current table, looking up the region in the related table, and then getting the tax rate for that region from the related table. - -```dax -= [Freight] + RELATED('Region'[TaxRate]) -``` - -This formula gets the tax rate for the current region from the Region table and adds it to the value of the Freight column. In DAX formulas, you do not need to know or specify the specific relationship that connects the tables. - -#### Multiple row context - -DAX includes functions that iterate calculations over a table. These functions can have multiple current rows, each with its own row context. In essence, these functions let you create formulas that perform operations recursively over an inner and outer loop. - -For example, suppose your model contains a **Products** table and a **Sales** table. Users might want to go through the entire sales table, which is full of transactions involving multiple products, and find the largest quantity ordered for each product in any one transaction. - -With DAX you can build a single formula that returns the correct value, and the results are automatically updated any time a user adds data to the tables. - -```dax -= MAXX(FILTER(Sales,[ProdKey] = EARLIER([ProdKey])),Sales[OrderQty]) -``` - -For a detailed example of this formula, see [EARLIER](earlier-function-dax.md). - -To summarize, the EARLIER function stores the row context from the operation that preceded the current operation. At all times, the function stores in memory two sets of context: one set of context represents the current row for the inner loop of the formula, and another set of context represents the current row for the outer loop of the formula. DAX automatically feeds values between the two loops so that you can create complex aggregates. - -### Query context - -*Query context* refers to the subset of data that is implicitly retrieved for a formula. For example, when a user places a measure or field into a report, the engine examines row and column headers, slicers, and report filters to determine the context. The necessary queries are then run against model data to get the correct subset of data, make the calculations defined by the formula, and then populate values in the report. - +*Context* is an important concept to understand when creating DAX formulas. Context is what enables you to perform dynamic analysis, as the results of a formula change to reflect the current row or cell selection and also any related data. Understanding context and using context effectively are critical for building high-performing, dynamic analyses, and for troubleshooting problems in formulas. + +Formulas in tabular models can be evaluated in a different context, depending on other design elements: + +- Filters applied in a PivotTable or report +- Filters defined within a formula +- Relationships specified by using special functions within a formula + +There are different types of context: *row context*, *query context*, and *filter context*. + +### Row context + +*Row context* can be thought of as "the current row". If you create a formula in a calculated column, the row context for that formula includes the values from all columns in the current row. If the table is related to another table, the content also includes all the values from the other table that are related to the current row. + +For example, suppose you create a calculated column, `= [Freight] + [Tax]`, that adds together values from two columns, Freight and Tax, from the same table. This formula automatically gets only the values from the current row in the specified columns. + +Row context also follows any relationships that have been defined between tables, including relationships defined within a calculated column by using DAX formulas, to determine which rows in related tables are associated with the current row. + +For example, the following formula uses the RELATED function to fetch a tax value from a related table, based on the region that the order was shipped to. The tax value is determined by using the value for region in the current table, looking up the region in the related table, and then getting the tax rate for that region from the related table. + +```dax += [Freight] + RELATED('Region'[TaxRate]) +``` + +This formula gets the tax rate for the current region from the Region table and adds it to the value of the Freight column. In DAX formulas, you do not need to know or specify the specific relationship that connects the tables. + +#### Multiple row context + +DAX includes functions that iterate calculations over a table. These functions can have multiple current rows, each with its own row context. In essence, these functions let you create formulas that perform operations recursively over an inner and outer loop. + +For example, suppose your model contains a **Products** table and a **Sales** table. Users might want to go through the entire sales table, which is full of transactions involving multiple products, and find the largest quantity ordered for each product in any one transaction. + +With DAX you can build a single formula that returns the correct value, and the results are automatically updated any time a user adds data to the tables. + +```dax += MAXX(FILTER(Sales,[ProdKey] = EARLIER([ProdKey])),Sales[OrderQty]) +``` + +For a detailed example of this formula, see [EARLIER](earlier-function-dax.md). + +To summarize, the EARLIER function stores the row context from the operation that preceded the current operation. At all times, the function stores in memory two sets of context: one set of context represents the current row for the inner loop of the formula, and another set of context represents the current row for the outer loop of the formula. DAX automatically feeds values between the two loops so that you can create complex aggregates. + +### Query context + +*Query context* refers to the subset of data that is implicitly retrieved for a formula. For example, when a user places a measure or field into a report, the engine examines row and column headers, slicers, and report filters to determine the context. The necessary queries are then run against model data to get the correct subset of data, make the calculations defined by the formula, and then populate values in the report. + Because context changes depending on where you place the formula, the results of the formula can also change. For example, suppose you create a formula that sums the values in the **Profit** column of the **Sales** table: `= SUM('Sales'[Profit])`. If you use this formula in a calculated column within the **Sales** table, the results for the formula will be the same for the entire table, because the query context for the formula is always the entire data set of the **Sales** table. Results will have profit for all regions, all products, all years, and so on. - -However, users typically don't want to see the same result hundreds of times, but instead want to get the profit for a particular year, a particular country, a particular product, or some combination of these, and then get a grand total. - -In a report, context is changed by filtering, adding or removing fields, and using slicers. For each change, the query context in which the measure is evaluated. Therefore, the same formula, used in a measure, is evaluated in a different *query context* for each cell. - -### Filter context - -*Filter context* is the set of values allowed in each column, or in the values retrieved from a related table. Filters can be applied to the column in the designer, or in the presentation layer (reports and PivotTables). Filters can also be defined explicitly by filter expressions within the formula. - -Filter context is added when you specify filter constraints on the set of values allowed in a column or table, by using arguments to a formula. Filter context applies on top of other contexts, such as row context or query context. - -In tabular models, there are many ways to create filter context. Within the context of clients that can consume the model, such as Power BI reports, users can create filters on the fly by adding slicers or report filters on the row and column headings. You can also specify filter expressions directly within the formula, to specify related values, to filter tables that are used as inputs, or to dynamically get context for the values that are used in calculations. You can also completely clear or selectively clear the filters on particular columns. This is very useful when creating formulas that calculate grand totals. - -To learn more about how to create filters within formulas, see the [FILTER Function (DAX)](filter-function-dax.md). -For an example of how filters can be cleared to create grand totals, see the [ALL Function (DAX)](all-function-dax.md). - -For examples of how to selectively clear and apply filters within formulas, see [ALLEXCEPT](allexcept-function-dax.md). - -### Determining context in formulas - - When you create a DAX formula, the formula is first tested for valid syntax, and then tested to make sure the names of the columns and tables included in the formula can be found in the current context. If any column or table specified by the formula cannot be found, an error is returned. - - Context during validation (and recalculation operations) is determined as described in the preceding sections, by using the available tables in the model, any relationships between the tables, and any filters that have been applied. - - For example, if you have just imported some data into a new table and it is not related to any other tables (and you have not applied any filters), the *current context* is the entire set of columns in the table. If the table is linked by relationships to other tables, the current context includes the related tables. If you add a column from the table to a report that has Slicers and maybe some report filters, the context for the formula is the subset of data in each cell of the report. - - Context is a powerful concept that can also make it difficult to troubleshoot formulas. We recommend that you begin with simple formulas and relationships to see how context works. The following section provides some examples of how formulas use different types of context to dynamically return results. - -## Operators - -The DAX language uses four different types of calculation operators in formulas: - -- Comparison operators to compare values and return a logical `TRUE`\`FALSE` value. -- Arithmetic operators to perform arithmetic calculations that return numeric values. -- Text concatenation operators to join two or more text strings. -- Logical operators that combine two or more expressions to return a single result. - -For detailed information about operators used in DAX formulas, see [DAX operators](dax-operator-reference.md). - -## Working with tables and columns - - Tables in tabular data models look like Excel tables, but are different in the way they work with data and with formulas: - -- Formulas work only with tables and columns, not with individual cells, range references, or arrays. -- Formulas can use relationships to get values from related tables. The values that are retrieved are always related to the current row value. -- You cannot have irregular or "ragged" data like you can in an Excel worksheet. Each row in a table must contain the same number of columns. However, you can have empty values in some columns. Excel data tables and tabular model data tables are not interchangeable. -- Because a data type is set for each column, each value in that column must be of the same type. - -### Referring to tables and columns in formulas - -You can refer to any table and column by using its name. For example, the following formula illustrates how to refer to columns from two tables by using the *fully qualified* name: - -```dax - -= SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount]) - -``` - -When a formula is evaluated, the model designer first checks for general syntax, and then checks the names of columns and tables that you provide against possible columns and tables in the current context. If the name is ambiguous or if the column or table cannot be found, you will get an error on your formula (an #ERROR string instead of a data value in cells where the error occurs). To learn more about naming requirements for tables, columns, and other objects, see Naming Requirements in [DAX syntax](dax-syntax-reference.md#naming-requirements). - -### Table relationships - -By creating relationships between tables, you gain the ability for related values in other tables to be used in calculations. For example, you can use a calculated column to determine all the shipping records related to the current reseller, and then sum the shipping costs for each. In many cases, however, a relationship might not be necessary. You can use the [LOOKUPVALUE](lookupvalue-function-dax.md) function in a formula to return the value in *result_columnName* for the row that meets criteria specified in the *search_column* and *search_value* arguments. - + +However, users typically don't want to see the same result hundreds of times, but instead want to get the profit for a particular year, a particular country, a particular product, or some combination of these, and then get a grand total. + +In a report, context is changed by filtering, adding or removing fields, and using slicers. For each change, the query context in which the measure is evaluated. Therefore, the same formula, used in a measure, is evaluated in a different *query context* for each cell. + +### Filter context + +*Filter context* is the set of values allowed in each column, or in the values retrieved from a related table. Filters can be applied to the column in the designer, or in the presentation layer (reports and PivotTables). Filters can also be defined explicitly by filter expressions within the formula. + +Filter context is added when you specify filter constraints on the set of values allowed in a column or table, by using arguments to a formula. Filter context applies on top of other contexts, such as row context or query context. + +In tabular models, there are many ways to create filter context. Within the context of clients that can consume the model, such as Power BI reports, users can create filters on the fly by adding slicers or report filters on the row and column headings. You can also specify filter expressions directly within the formula, to specify related values, to filter tables that are used as inputs, or to dynamically get context for the values that are used in calculations. You can also completely clear or selectively clear the filters on particular columns. This is very useful when creating formulas that calculate grand totals. + +To learn more about how to create filters within formulas, see the [FILTER Function (DAX)](filter-function-dax.md). +For an example of how filters can be cleared to create grand totals, see the [ALL Function (DAX)](all-function-dax.md). + +For examples of how to selectively clear and apply filters within formulas, see [ALLEXCEPT](allexcept-function-dax.md). + +### Determining context in formulas + + When you create a DAX formula, the formula is first tested for valid syntax, and then tested to make sure the names of the columns and tables included in the formula can be found in the current context. If any column or table specified by the formula cannot be found, an error is returned. + + Context during validation (and recalculation operations) is determined as described in the preceding sections, by using the available tables in the model, any relationships between the tables, and any filters that have been applied. + + For example, if you have just imported some data into a new table and it is not related to any other tables (and you have not applied any filters), the *current context* is the entire set of columns in the table. If the table is linked by relationships to other tables, the current context includes the related tables. If you add a column from the table to a report that has Slicers and maybe some report filters, the context for the formula is the subset of data in each cell of the report. + + Context is a powerful concept that can also make it difficult to troubleshoot formulas. We recommend that you begin with simple formulas and relationships to see how context works. The following section provides some examples of how formulas use different types of context to dynamically return results. + +## Operators + +The DAX language uses four different types of calculation operators in formulas: + +- Comparison operators to compare values and return a logical `TRUE`\`FALSE` value. +- Arithmetic operators to perform arithmetic calculations that return numeric values. +- Text concatenation operators to join two or more text strings. +- Logical operators that combine two or more expressions to return a single result. + +For detailed information about operators used in DAX formulas, see [DAX operators](dax-operator-reference.md). + +## Working with tables and columns + + Tables in tabular data models look like Excel tables, but are different in the way they work with data and with formulas: + +- Formulas work only with tables and columns, not with individual cells, range references, or arrays. +- Formulas can use relationships to get values from related tables. The values that are retrieved are always related to the current row value. +- You cannot have irregular or "ragged" data like you can in an Excel worksheet. Each row in a table must contain the same number of columns. However, you can have empty values in some columns. Excel data tables and tabular model data tables are not interchangeable. +- Because a data type is set for each column, each value in that column must be of the same type. + +### Referring to tables and columns in formulas + +You can refer to any table and column by using its name. For example, the following formula illustrates how to refer to columns from two tables by using the *fully qualified* name: + +```dax + += SUM('New Sales'[Amount]) + SUM('Past Sales'[Amount]) + +``` + +When a formula is evaluated, the model designer first checks for general syntax, and then checks the names of columns and tables that you provide against possible columns and tables in the current context. If the name is ambiguous or if the column or table cannot be found, you will get an error on your formula (an #ERROR string instead of a data value in cells where the error occurs). To learn more about naming requirements for tables, columns, and other objects, see Naming Requirements in [DAX syntax](dax-syntax-reference.md#naming-requirements). + +### Table relationships + +By creating relationships between tables, you gain the ability for related values in other tables to be used in calculations. For example, you can use a calculated column to determine all the shipping records related to the current reseller, and then sum the shipping costs for each. In many cases, however, a relationship might not be necessary. You can use the [LOOKUPVALUE](lookupvalue-function-dax.md) function in a formula to return the value in *result_columnName* for the row that meets criteria specified in the *search_column* and *search_value* arguments. + Many DAX functions require that a relationship exist between the tables, or among multiple tables, in order to locate the columns that you have referenced and return results that make sense. Other functions will attempt to identify the relationship; however, for best results you should always create a relationship where possible. -Tabular data models support multiple relationships among tables. To avoid confusion or incorrect results, only one relationship at a time is designated as the active relationship, but you can change the active relationship as necessary to traverse different connections in the data in calculations. [USERELATIONSHIP](userelationship-function-dax.md) function can be used to specify one or more relationships to be used in a specific calculation. - -It's important to observe these formula design rules when using relationships: - -- When tables are connected by a relationship, you must ensure the two columns used as keys have values that match. Referential integrity is not enforced, therefore it is possible to have non-matching values in a key column and still create a relationship. If this happens, you should be aware that blank values or non-matching values might affect the results of formulas. - -- When you link tables in your model by using relationships, you enlarge the scope, or *context*, in which your formulas are evaluated. Changes in context resulting from the addition of new tables, new relationships, or from changes in the active relationship can cause your results to change in ways that you might not anticipate. To learn more, see [Context](#context) in this article. - +Tabular data models support multiple relationships among tables. To avoid confusion or incorrect results, only one relationship at a time is designated as the active relationship, but you can change the active relationship as necessary to traverse different connections in the data in calculations. [USERELATIONSHIP](userelationship-function-dax.md) function can be used to specify one or more relationships to be used in a specific calculation. + +It's important to observe these formula design rules when using relationships: + +- When tables are connected by a relationship, you must ensure the two columns used as keys have values that match. Referential integrity is not enforced, therefore it is possible to have non-matching values in a key column and still create a relationship. If this happens, you should be aware that blank values or non-matching values might affect the results of formulas. + +- When you link tables in your model by using relationships, you enlarge the scope, or *context*, in which your formulas are evaluated. Changes in context resulting from the addition of new tables, new relationships, or from changes in the active relationship can cause your results to change in ways that you might not anticipate. To learn more, see [Context](#context) in this article. + ## Process and refresh -*Process* and *recalculation* are two separate but related operations. You should thoroughly understand these concepts when designing a model that contains complex formulas, large amounts of data, or data that is obtained from external data sources. - -*Process (refresh)* is updating the data in a model with new data from an external data source. - -*Recalculation* is the process of updating the results of formulas to reflect any changes to the formulas themselves and to reflect changes in the underlying data. Recalculation can affect performance in the following ways: - -- The values in a calculated column are computed and stored in the model. To update the values in the calculated column, you must process the model using one of three processing commands – Process Full, Process Data, or Process Recalc. The result of the formula must always be recalculated for the entire column, whenever you change the formula. - -- The values calculated by measures are dynamically evaluated whenever a user adds the measure to a PivotTable or open a report; as the user modifies the context, values returned by the measure change. The results of the measure always reflect the latest in the in-memory cache. - -Processing and recalculation have no effect on row-level security formulas unless the result of a recalculation returns a different value, thus making the row queryable or not queryable by role members. +*Process* and *recalculation* are two separate but related operations. You should thoroughly understand these concepts when designing a model that contains complex formulas, large amounts of data, or data that is obtained from external data sources. + +*Process (refresh)* is updating the data in a model with new data from an external data source. + +*Recalculation* is the process of updating the results of formulas to reflect any changes to the formulas themselves and to reflect changes in the underlying data. Recalculation can affect performance in the following ways: + +- The values in a calculated column are computed and stored in the model. To update the values in the calculated column, you must process the model using one of three processing commands – Process Full, Process Data, or Process Recalc. The result of the formula must always be recalculated for the entire column, whenever you change the formula. + +- The values calculated by measures are dynamically evaluated whenever a user adds the measure to a PivotTable or open a report; as the user modifies the context, values returned by the measure change. The results of the measure always reflect the latest in the in-memory cache. + +Processing and recalculation have no effect on row-level security formulas unless the result of a recalculation returns a different value, thus making the row queryable or not queryable by role members. ## Updates @@ -419,19 +419,19 @@ Not all functions are supported in earlier versions of SQL Server Analysis Servi ## Troubleshooting -If you get an error when defining a formula, the formula might contain either a *syntactic error*, *semantic error*, or *calculation error*. - +If you get an error when defining a formula, the formula might contain either a *syntactic error*, *semantic error*, or *calculation error*. + Syntactic errors are the easiest to resolve. They typically involve a missing parenthesis or comma. - -The other type of error occurs when the syntax is correct, but the value or a column referenced does not make sense in the context of the formula. Such semantic and calculation errors might be caused by any of the following problems: - -- The formula refers to a non-existing column, table, or function. -- The formula appears to be correct, but when the data engine fetches the data, it finds a type mismatch and raises an error. -- The formula passes an incorrect number or type of arguments to a function. -- The formula refers to a different column that has an error, and therefore its values are invalid. -- The formula refers to a column that has not been processed, meaning it has metadata but no actual data to use for calculations. - -In the first four cases, DAX flags the entire column that contains the invalid formula. In the last case, DAX grays out the column to indicate that the column is in an unprocessed state. + +The other type of error occurs when the syntax is correct, but the value or a column referenced does not make sense in the context of the formula. Such semantic and calculation errors might be caused by any of the following problems: + +- The formula refers to a non-existing column, table, or function. +- The formula appears to be correct, but when the data engine fetches the data, it finds a type mismatch and raises an error. +- The formula passes an incorrect number or type of arguments to a function. +- The formula refers to a different column that has an error, and therefore its values are invalid. +- The formula refers to a column that has not been processed, meaning it has metadata but no actual data to use for calculations. + +In the first four cases, DAX flags the entire column that contains the invalid formula. In the last case, DAX grays out the column to indicate that the column is in an unprocessed state. ## Apps and tools diff --git a/query-languages/dax/dax-parameter-naming-conventions.md b/query-languages/dax/dax-parameter-naming-conventions.md index d9509e278..c89efc6eb 100644 --- a/query-languages/dax/dax-parameter-naming-conventions.md +++ b/query-languages/dax/dax-parameter-naming-conventions.md @@ -4,26 +4,26 @@ title: "DAX parameter-naming conventions" ms.topic: conceptual --- # DAX parameter-naming conventions -Parameter names are standardized in DAX reference to facilitate the usage and understanding of the functions. - -## Parameter names - -|Term|Definition| -|--------|--------------| -|`expression`|Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context).| -|`value`|Any DAX expression that returns a single scalar value where the expression is to be evaluated exactly once before all other operations.| -|`table`|Any DAX expression that returns a table of data.| -|`tableName`|The name of an existing table using standard DAX syntax. It cannot be an expression.| -|`columnName`|The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression.| -|`name`|A string constant that will be used to provide the name of a new object.| -|`order`|An enumeration used to determine the sort order.| -|`ties`|An enumeration used to determine the handling of tie values.| -|`type`|An enumeration used to determine the data type for PathItem and PathItemReverse.| - -### Prefixing parameter names or using the prefix only - -|Term|Definition| -|--------|--------------| -|`prefixing`|Parameter names may be further qualified with a prefix that is descriptive of how the argument is used and to avoid ambiguous reading of the parameters. For example:

Result_ColumnName - Refers to an existing column used to get the result values in the LOOKUPVALUE() function.

Search_ColumnName - Refers to an existing column used to search for a value in the LOOKUPVALUE() function.| -|`omitting`|Parameter names will be omitted if the prefix is clear enough to describe the parameter.

For example, instead of having the following syntax DATE (Year_Value, Month_Value, Day_Value) it is clearer for the user to read DATE (Year, Month, Day); repeating three times the suffix value does not add anything to a better comprehension of the function and it clutters the reading unnecessarily.

However, if the prefixed parameter is Year_columnName then the parameter name and the prefix will stay to make sure the user understands that the parameter requires a reference to an existing column of Years.| - +Parameter names are standardized in DAX reference to facilitate the usage and understanding of the functions. + +## Parameter names + +|Term|Definition| +|--------|--------------| +|`expression`|Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context).| +|`value`|Any DAX expression that returns a single scalar value where the expression is to be evaluated exactly once before all other operations.| +|`table`|Any DAX expression that returns a table of data.| +|`tableName`|The name of an existing table using standard DAX syntax. It cannot be an expression.| +|`columnName`|The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression.| +|`name`|A string constant that will be used to provide the name of a new object.| +|`order`|An enumeration used to determine the sort order.| +|`ties`|An enumeration used to determine the handling of tie values.| +|`type`|An enumeration used to determine the data type for PathItem and PathItemReverse.| + +### Prefixing parameter names or using the prefix only + +|Term|Definition| +|--------|--------------| +|`prefixing`|Parameter names may be further qualified with a prefix that is descriptive of how the argument is used and to avoid ambiguous reading of the parameters. For example:

Result_ColumnName - Refers to an existing column used to get the result values in the LOOKUPVALUE() function.

Search_ColumnName - Refers to an existing column used to search for a value in the LOOKUPVALUE() function.| +|`omitting`|Parameter names will be omitted if the prefix is clear enough to describe the parameter.

For example, instead of having the following syntax DATE (Year_Value, Month_Value, Day_Value) it is clearer for the user to read DATE (Year, Month, Day); repeating three times the suffix value does not add anything to a better comprehension of the function and it clutters the reading unnecessarily.

However, if the prefixed parameter is Year_columnName then the parameter name and the prefix will stay to make sure the user understands that the parameter requires a reference to an existing column of Years.| + diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index 517f11b55..07fc7cb27 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -24,15 +24,14 @@ Table expressions that output a result table include: There are several optional keywords specific to DAX queries: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, and COLUMN. - ### EVALUATE (Required) At the most basic level, a DAX query is an `EVALUATE` statement containing a table expression. At least one EVALUATE statement is required, however, a query can contain any number of EVALUATE statements. #### EVALUATE Syntax - + ```dax -EVALUATE
+EVALUATE
``` #### EVALUATE Parameters @@ -58,12 +57,11 @@ The optional `ORDER BY` keyword defines one or more columns in the query or expr Sort by column property in semantic models do not apply to DAX query results. If a column should be sorted by a different column in the model, such as in the case of Month Name, the sort by column should also be included in the DAX query to be used in the ORDER BY. - #### ORDER BY Syntax ```dax -EVALUATE
-[ORDER BY { [{ASC | DESC}]}[, …]] +EVALUATE
+[ORDER BY { [{ASC | DESC}]}[, …]] ``` #### ORDER BY Parameters @@ -129,14 +127,13 @@ Returns the top 100 sales orders sorted by SalesOrderLienKey ascending, then sor ### START AT (Optional) - The optional `START AT` keyword is used inside an `ORDER BY` clause. It defines the value at which the query results begin. #### START AT Syntax ```dax -EVALUATE
-[ORDER BY { [{ASC | DESC}]}[, …] +EVALUATE
+[ORDER BY { [{ASC | DESC}]}[, …] [START AT {|} [, …]]] ``` @@ -148,8 +145,8 @@ EVALUATE
| `parameter` | The name of a parameter in an XMLA statement prefixed with an `@` character. | #### START AT Remarks - -START AT arguments have a one-to-one correspondence with the columns in the ORDER BY clause. There can be as many arguments in the START AT clause as there are in the ORDER BY clause, but not more. The first argument in the START AT defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. + +START AT arguments have a one-to-one correspondence with the columns in the ORDER BY clause. There can be as many arguments in the START AT clause as there are in the ORDER BY clause, but not more. The first argument in the START AT defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. #### START AT Example @@ -190,11 +187,11 @@ The optional `DEFINE` keyword introduces one or more calculated entity definitio #### DEFINE Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`Entity`|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | -|`name`|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| -|`expression`|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If there is a need to convert a scalar expression into a table expression, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| +|`name`|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| +|`expression`|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If there is a need to convert a scalar expression into a table expression, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| [1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query without syntax error, they may produce runtime errors and are not recommended. @@ -257,19 +254,19 @@ Returns a table evaluating three defined measures to show the results by fiscal :::image type="content" source="media/dax-queries/dax-evaluate-define-measures.png" alt-text="Screenshot showing how to use DEFINE MEASURE for a DAX query in DAX query view of Power BI Desktop." lightbox="media/dax-queries/dax-evaluate-define-measures.png"::: -## Parameters in DAX queries +## Parameters in DAX queries + +A well-defined DAX query statement can be parameterized and then used over and over with just changes in the parameter values. + +The [Execute Method (XMLA)](/analysis-services/xmla/xml-elements-methods-execute) method has a [Parameters Element (XMLA)](/analysis-services/xmla/xml-elements-properties/parameters-element-xmla) collection element that allows parameters to be defined and assigned a value. Within the collection, each [Parameter Element (XMLA)](/analysis-services/xmla/xml-elements-properties/parameter-element-xmla) element defines the name of the parameter and a value to it. + +Reference XMLA parameters by prefixing the name of the parameter with an `@` character. Any place in the syntax where a value is allowed, the value can be replaced with a parameter call. All XMLA parameters are typed as text. -A well-defined DAX query statement can be parameterized and then used over and over with just changes in the parameter values. - -The [Execute Method (XMLA)](/analysis-services/xmla/xml-elements-methods-execute) method has a [Parameters Element (XMLA)](/analysis-services/xmla/xml-elements-properties/parameters-element-xmla) collection element that allows parameters to be defined and assigned a value. Within the collection, each [Parameter Element (XMLA)](/analysis-services/xmla/xml-elements-properties/parameter-element-xmla) element defines the name of the parameter and a value to it. - -Reference XMLA parameters by prefixing the name of the parameter with an `@` character. Any place in the syntax where a value is allowed, the value can be replaced with a parameter call. All XMLA parameters are typed as text. - > [!IMPORTANT] > Parameters defined in the parameters section and not used in the `` element generate an error response in XMLA. > Parameters used and not defined in the `` element generate an error response in XMLA. - + ## Related content -[DAX statements](statements-dax.md) -[SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) +[DAX statements](statements-dax.md) +[SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) diff --git a/query-languages/dax/dax-sample-model.md b/query-languages/dax/dax-sample-model.md index be3471389..1d9cf87c8 100644 --- a/query-languages/dax/dax-sample-model.md +++ b/query-languages/dax/dax-sample-model.md @@ -31,7 +31,6 @@ The model has seven tables: |**Sales Order**|Describes sales order and order line numbers, and also the sales channel, which is either **Reseller** or **Internet**. This table has a one-to-one relationship with the **Sales** table.| |**Sales Territory**|Sales territories are organized into groups (North America, Europe, and Pacific), countries, and regions. Only the United States sells products at the region level.| - ## Download sample Download the Power BI Desktop sample model file [here](https://aka.ms/dax-docs-sample-file). diff --git a/query-languages/dax/dax-syntax-reference.md b/query-languages/dax/dax-syntax-reference.md index 6d2bc29a8..1171282c9 100644 --- a/query-languages/dax/dax-syntax-reference.md +++ b/query-languages/dax/dax-syntax-reference.md @@ -5,154 +5,154 @@ ms.topic: conceptual --- # DAX syntax -This article describes syntax and requirements for the DAX formula expression language. - -## Syntax requirements - -A DAX formula always starts with an equal sign (`=`). After the equals sign, you can provide any expression that evaluates to a scalar, or an expression that can be converted to a scalar. These include the following: - -- A scalar constant, or expression that uses a scalar operator (`+,-,*,/,>=,...,&&, ...`) - -- References to columns or tables. The DAX language always uses tables and columns as inputs to functions, never an array or arbitrary set of values. - -- Operators, constants, and values provided as part of an expression. - -- The result of a function and its required arguments. Some DAX functions return a table instead of a scalar, and must be wrapped in a function that evaluates the table and returns a scalar; unless the table is a single column, single row table, then it is treated as a scalar value. - - Most DAX functions require one or more arguments, which can include tables, columns, expressions, and values. However, some functions, such as PI, do not require any arguments, but always require parentheses to indicate the null argument. For example, you must always type PI(), not PI. You can also nest functions within other functions. - -- Expressions. An expression can contain any or all of the following: operators, constants, or references to columns. - -For example, the following are all valid formulas. - -|Formula|Result| -|-----------|----------| -|`= 3`|3| -|`= "Sales"`|**Sales**| -|`= 'Sales'[Amount]`|If you use this formula within the Sales table, you will get the value of the column Amount in the Sales table for the current row.| -|`= (0.03 *[Amount])`

`=0.03 * [Amount]`|Three percent of the value in the Amount column of the current table.

Although this formula can be used to calculate a percentage, the result is not shown as a percentage unless you apply formatting in the table.| -|`= PI()`|The value of the constant pi.| - -Formulas can behave differently depending on how they are used. You must always be aware of the context and how the data that you use in the formula is related to other data that might be used in the calculation. - -## Naming requirements - -A data model often contains multiple tables. Together the tables and their columns comprise a database stored in the in-memory analytics engine (VertiPaq). Within that database, all tables must have unique names. The names of columns must also be unique within each table. All object names are *case-insensitive*; for example, the names **SALES** and **Sales** would represent the same table. - -Each column and measure you add to an existing data model must belong to a specific table. You specify the table that contains the column either implicitly, when you create a calculated column within a table, or explicitly, when you create a measure and specify the name of the table where the measure definition should be stored. - -When you use a table or column as an input to a function, you must generally *qualify* the column name. The *fully qualified* name of a column is the table name, followed by the column name in square brackets: for examples, 'U.S. Sales'[Products]. A fully qualified name is always required when you reference a column in the following contexts: - -- As an argument to the function, `VALUES` - +This article describes syntax and requirements for the DAX formula expression language. + +## Syntax requirements + +A DAX formula always starts with an equal sign (`=`). After the equals sign, you can provide any expression that evaluates to a scalar, or an expression that can be converted to a scalar. These include the following: + +- A scalar constant, or expression that uses a scalar operator (`+,-,*,/,>=,...,&&, ...`) + +- References to columns or tables. The DAX language always uses tables and columns as inputs to functions, never an array or arbitrary set of values. + +- Operators, constants, and values provided as part of an expression. + +- The result of a function and its required arguments. Some DAX functions return a table instead of a scalar, and must be wrapped in a function that evaluates the table and returns a scalar; unless the table is a single column, single row table, then it is treated as a scalar value. + + Most DAX functions require one or more arguments, which can include tables, columns, expressions, and values. However, some functions, such as PI, do not require any arguments, but always require parentheses to indicate the null argument. For example, you must always type PI(), not PI. You can also nest functions within other functions. + +- Expressions. An expression can contain any or all of the following: operators, constants, or references to columns. + +For example, the following are all valid formulas. + +|Formula|Result| +|-----------|----------| +|`= 3`|3| +|`= "Sales"`|**Sales**| +|`= 'Sales'[Amount]`|If you use this formula within the Sales table, you will get the value of the column Amount in the Sales table for the current row.| +|`= (0.03 *[Amount])`

`=0.03 * [Amount]`|Three percent of the value in the Amount column of the current table.

Although this formula can be used to calculate a percentage, the result is not shown as a percentage unless you apply formatting in the table.| +|`= PI()`|The value of the constant pi.| + +Formulas can behave differently depending on how they are used. You must always be aware of the context and how the data that you use in the formula is related to other data that might be used in the calculation. + +## Naming requirements + +A data model often contains multiple tables. Together the tables and their columns comprise a database stored in the in-memory analytics engine (VertiPaq). Within that database, all tables must have unique names. The names of columns must also be unique within each table. All object names are *case-insensitive*; for example, the names **SALES** and **Sales** would represent the same table. + +Each column and measure you add to an existing data model must belong to a specific table. You specify the table that contains the column either implicitly, when you create a calculated column within a table, or explicitly, when you create a measure and specify the name of the table where the measure definition should be stored. + +When you use a table or column as an input to a function, you must generally *qualify* the column name. The *fully qualified* name of a column is the table name, followed by the column name in square brackets: for examples, 'U.S. Sales'[Products]. A fully qualified name is always required when you reference a column in the following contexts: + +- As an argument to the function, `VALUES` + - As an argument to the functions, `ALL` or `ALLEXCEPT` - -- In a filter argument for the functions, `CALCULATE` or `CALCULATETABLE` - -- As an argument to the function, `RELATEDTABLE` - -- As an argument to any time intelligence function - -An *unqualified* column name is just the name of the column, enclosed in brackets: for example, [Sales Amount]. For example, when you are referencing a scalar value from the same row of the current table, you can use the unqualified column name. - -If the name of a table contains spaces, reserved keywords, or disallowed characters, you must enclose the table name in single quotation marks. You must also enclose table names in quotation marks if the name contains any characters outside the ANSI alphanumeric character range, regardless of whether your locale supports the character set or not. For example, if you open a workbook that contains table names written in Cyrillic characters, such as 'Таблица', the table name must be enclosed in quotation marks, even though it does not contain spaces. - -> [!NOTE] -> To make it easier to enter the fully qualified names of columns, use the AutoComplete feature in the formula editor. - -#### Tables - -- Table names are required whenever the column is from a different table than the current table. Table names must be unique within the database. - -- Table names must be enclosed in single quotation marks if they contain spaces, other special characters or any non-English alphanumeric characters. - -#### Measures - -- Measure names must always be in brackets. - -- Measure names can contain spaces. - -- Each measure name must be unique within a model. Therefore, the table name is optional in front of a measure name when referencing an existing measure. However, when you create a measure you must always specify a table where the measure definition will be stored. - -#### Columns - -Column names must be unique in the context of a table; however, multiple tables can have columns with the same names (disambiguation comes with the table name). - -In general, columns can be referenced without referencing the base table that they belong to, except when there might be a name conflict to resolve or with certain functions that require column names to be fully qualified. - -#### Reserved keywords - -If the name that you use for a table is the same as an Analysis Services reserved keyword, an error is raised, and you must rename the table. However, you can use keywords in object names if the object name is enclosed in brackets (for columns) or quotation marks (for tables). - -> [!NOTE] -> Quotation marks can be represented by several different characters, depending on the application. If you paste formulas from an external document or Web page, make sure to check the ASCII code of the character that is used for opening and closing quotes, to ensure that they are the same. Otherwise DAX may be unable to recognize the symbols as quotation marks, making the reference invalid. - -#### Special characters - -The following characters and character types are not valid in the names of tables, columns, or measures: - -- Leading or trailing spaces; unless the spaces are enclosed by name delimiters, brackets, or single apostrophes. - -- Control characters - -- The following characters that are not valid in the names of objects: - + +- In a filter argument for the functions, `CALCULATE` or `CALCULATETABLE` + +- As an argument to the function, `RELATEDTABLE` + +- As an argument to any time intelligence function + +An *unqualified* column name is just the name of the column, enclosed in brackets: for example, [Sales Amount]. For example, when you are referencing a scalar value from the same row of the current table, you can use the unqualified column name. + +If the name of a table contains spaces, reserved keywords, or disallowed characters, you must enclose the table name in single quotation marks. You must also enclose table names in quotation marks if the name contains any characters outside the ANSI alphanumeric character range, regardless of whether your locale supports the character set or not. For example, if you open a workbook that contains table names written in Cyrillic characters, such as 'Таблица', the table name must be enclosed in quotation marks, even though it does not contain spaces. + +> [!NOTE] +> To make it easier to enter the fully qualified names of columns, use the AutoComplete feature in the formula editor. + +#### Tables + +- Table names are required whenever the column is from a different table than the current table. Table names must be unique within the database. + +- Table names must be enclosed in single quotation marks if they contain spaces, other special characters or any non-English alphanumeric characters. + +#### Measures + +- Measure names must always be in brackets. + +- Measure names can contain spaces. + +- Each measure name must be unique within a model. Therefore, the table name is optional in front of a measure name when referencing an existing measure. However, when you create a measure you must always specify a table where the measure definition will be stored. + +#### Columns + +Column names must be unique in the context of a table; however, multiple tables can have columns with the same names (disambiguation comes with the table name). + +In general, columns can be referenced without referencing the base table that they belong to, except when there might be a name conflict to resolve or with certain functions that require column names to be fully qualified. + +#### Reserved keywords + +If the name that you use for a table is the same as an Analysis Services reserved keyword, an error is raised, and you must rename the table. However, you can use keywords in object names if the object name is enclosed in brackets (for columns) or quotation marks (for tables). + +> [!NOTE] +> Quotation marks can be represented by several different characters, depending on the application. If you paste formulas from an external document or Web page, make sure to check the ASCII code of the character that is used for opening and closing quotes, to ensure that they are the same. Otherwise DAX may be unable to recognize the symbols as quotation marks, making the reference invalid. + +#### Special characters + +The following characters and character types are not valid in the names of tables, columns, or measures: + +- Leading or trailing spaces; unless the spaces are enclosed by name delimiters, brackets, or single apostrophes. + +- Control characters + +- The following characters that are not valid in the names of objects: + `.,;':/\\*|?&%$!+=()[]{}<>` - -#### Examples of object names -The following table shows examples of some object names: +#### Examples of object names -|Object Types|Examples|Comment| +The following table shows examples of some object names: + +|Object Types|Examples|Comment| |-----|-----|----| -|Table name|**Sales**|If the table name does not contain spaces or other special characters, the name does not need to be enclosed in quotation marks.| -|Table name|**'Canada Sales'**|If the name contains spaces, tabs or other special characters, enclose the name in single quotation marks.| -|Fully qualified column name|**Sales[Amount]**|The table name precedes the column name, and the column name is enclosed in brackets.| -|Fully qualified measure name|**Sales[Profit]**|The table name precedes the measure name, and the measure name is enclosed in brackets. In certain contexts, a fully qualified name is always required.| -|Unqualified column name|**[Amount]**|The unqualified name is just the column name, in brackets. Contexts where you can use the unqualified name include formulas in a calculated column within the same table, or in an aggregation function that is scanning over the same table.| -|Fully qualified column in table with spaces|**'Canada Sales'[Qty]**|The table name contains spaces, so it must be surrounded by single quotes.| - - -### Other restrictions - -The syntax required for each function, and the type of operation it can perform, varies greatly depending on the function. In general, however, the following rules apply to all formulas and expressions: - -- DAX formulas and expressions cannot modify or insert individual values in tables. - -- You cannot create calculated rows by using DAX. You can create only calculated columns and measures. - -- When defining calculated columns, you can nest functions to any level. - -- DAX has several functions that return a table. Typically, you use the values returned by these functions as input to other functions, which require a table as input. - - -## DAX operators and constants - -The following table lists the operators that are supported by DAX. For more information about the syntax of individual operators, see [DAX operators](dax-operator-reference.md). - -|Operator type|Symbol and use| -|-----------------|------------------| -|Parenthesis operator|`()` precedence order and grouping of arguments| -|Arithmetic operators|`+` (addition)

`-` (subtraction)

`*` (multiplication)

`/` (division)

`^` (exponentiation)| -|Comparison operators|`=` (equal to)

`>` (greater than)

`<` (less than)

`>=` (greater than or equal to)

`<=` (less than or equal to)

`<>` (not equal to)| -|Text concatenation operator|`&` (concatenation)| -|Logic operators|`&&` (and)

`||` (or)| - -## Data types - -You do not need to cast, convert, or otherwise specify the data type of a column or value that you use in a DAX formula. When you use data in a DAX formula, DAX automatically identifies the data types in referenced columns and of the values that you type in, and performs implicit conversions where necessary to complete the specified operation. - -For example, if you try to add a number to a date value, the engine will interpret the operation in the context of the function, and convert the numbers to a common data type, and then present the result in the intended format, a date. - -However, there are some limitations on the values that can be successfully converted. If a value or a column has a data type that is incompatible with the current operation, DAX returns an error. Also, DAX does not provide functions that let you explicitly change, convert, or cast the data type of existing data that you have imported into a data model. - -> [!IMPORTANT] -> DAX does not support use of the variant data type. Therefore, when you load or import data into a data model, it's expected the data in each column is generally of a consistent data type. - -Some functions return scalar values, including strings, whereas other functions work with numbers, both integers and real numbers, or dates and times. The data type required for each function is described in the section, [DAX functions](dax-function-reference.md). - -You can use tables containing multiple columns and multiple rows of data as the argument to a function. Some functions also return tables, which are stored in memory and can be used as arguments to other functions. - +|Table name|**Sales**|If the table name does not contain spaces or other special characters, the name does not need to be enclosed in quotation marks.| +|Table name|**'Canada Sales'**|If the name contains spaces, tabs or other special characters, enclose the name in single quotation marks.| +|Fully qualified column name|**Sales[Amount]**|The table name precedes the column name, and the column name is enclosed in brackets.| +|Fully qualified measure name|**Sales[Profit]**|The table name precedes the measure name, and the measure name is enclosed in brackets. In certain contexts, a fully qualified name is always required.| +|Unqualified column name|**[Amount]**|The unqualified name is just the column name, in brackets. Contexts where you can use the unqualified name include formulas in a calculated column within the same table, or in an aggregation function that is scanning over the same table.| +|Fully qualified column in table with spaces|**'Canada Sales'[Qty]**|The table name contains spaces, so it must be surrounded by single quotes.| + + +### Other restrictions + +The syntax required for each function, and the type of operation it can perform, varies greatly depending on the function. In general, however, the following rules apply to all formulas and expressions: + +- DAX formulas and expressions cannot modify or insert individual values in tables. + +- You cannot create calculated rows by using DAX. You can create only calculated columns and measures. + +- When defining calculated columns, you can nest functions to any level. + +- DAX has several functions that return a table. Typically, you use the values returned by these functions as input to other functions, which require a table as input. + + +## DAX operators and constants + +The following table lists the operators that are supported by DAX. For more information about the syntax of individual operators, see [DAX operators](dax-operator-reference.md). + +|Operator type|Symbol and use| +|-----------------|------------------| +|Parenthesis operator|`()` precedence order and grouping of arguments| +|Arithmetic operators|`+` (addition)

`-` (subtraction)

`*` (multiplication)

`/` (division)

`^` (exponentiation)| +|Comparison operators|`=` (equal to)

`>` (greater than)

`<` (less than)

`>=` (greater than or equal to)

`<=` (less than or equal to)

`<>` (not equal to)| +|Text concatenation operator|`&` (concatenation)| +|Logic operators|`&&` (and)

`||` (or)| + +## Data types + +You do not need to cast, convert, or otherwise specify the data type of a column or value that you use in a DAX formula. When you use data in a DAX formula, DAX automatically identifies the data types in referenced columns and of the values that you type in, and performs implicit conversions where necessary to complete the specified operation. + +For example, if you try to add a number to a date value, the engine will interpret the operation in the context of the function, and convert the numbers to a common data type, and then present the result in the intended format, a date. + +However, there are some limitations on the values that can be successfully converted. If a value or a column has a data type that is incompatible with the current operation, DAX returns an error. Also, DAX does not provide functions that let you explicitly change, convert, or cast the data type of existing data that you have imported into a data model. + +> [!IMPORTANT] +> DAX does not support use of the variant data type. Therefore, when you load or import data into a data model, it's expected the data in each column is generally of a consistent data type. + +Some functions return scalar values, including strings, whereas other functions work with numbers, both integers and real numbers, or dates and times. The data type required for each function is described in the section, [DAX functions](dax-function-reference.md). + +You can use tables containing multiple columns and multiple rows of data as the argument to a function. Some functions also return tables, which are stored in memory and can be used as arguments to other functions. + ## Date and time DAX stores date and time values using the datetime data type used by Microsoft SQL Server. Datetime format uses a floating-point number where Date values correspond to the integer portion representing the number of days since December 30, 1899. Time values correspond to the decimal portion of a date value where Hours, minutes, and seconds are represented by decimal fractions of a day. DAX date and time functions implicitly convert arguments to datetime data type. diff --git a/query-languages/dax/day-function-dax.md b/query-languages/dax/day-function-dax.md index 76e81b58c..04ec42260 100644 --- a/query-languages/dax/day-function-dax.md +++ b/query-languages/dax/day-function-dax.md @@ -6,59 +6,59 @@ title: "DAY function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the day of the month, a number from 1 to 31. - -## Syntax - +Returns the day of the month, a number from 1 to 31. + +## Syntax + ```dax -DAY() +DAY() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`date`|A date in `datetime` format, or a text representation of a date.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`date`|A date in `datetime` format, or a text representation of a date.| + ## Return value -An integer number indicating the day of the month. - +An integer number indicating the day of the month. + ## Remarks -- The DAY function takes as an argument the date of the day you are trying to find. Dates can be provided to the function by using another date function, by using an expression that returns a date, or by typing a date in a `datetime` format. You can also type a date in one of the accepted string formats for dates. - -- Values returned by the YEAR, MONTH and DAY functions will be Gregorian values regardless of the display format for the supplied date value. For example, if the display format of the supplied date is Hijri, the returned values for the YEAR, MONTH and DAY functions will be values associated with the equivalent Gregorian date. - -- When the date argument is a text representation of the date, the day function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. If the current date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is interpreted as a `datetime` value equivalent to January 8th of 2009, and the function returns 8. However, if the current date/time settings represent dates in the format of Day/Month/Year, the same string would be interpreted as a `datetime` value equivalent to August 1st of 2009, and the function returns 1. - -## Example: Getting the day from a date column +- The DAY function takes as an argument the date of the day you are trying to find. Dates can be provided to the function by using another date function, by using an expression that returns a date, or by typing a date in a `datetime` format. You can also type a date in one of the accepted string formats for dates. + +- Values returned by the YEAR, MONTH and DAY functions will be Gregorian values regardless of the display format for the supplied date value. For example, if the display format of the supplied date is Hijri, the returned values for the YEAR, MONTH and DAY functions will be values associated with the equivalent Gregorian date. + +- When the date argument is a text representation of the date, the day function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. If the current date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is interpreted as a `datetime` value equivalent to January 8th of 2009, and the function returns 8. However, if the current date/time settings represent dates in the format of Day/Month/Year, the same string would be interpreted as a `datetime` value equivalent to August 1st of 2009, and the function returns 1. + +## Example: Getting the day from a date column + +The following formula returns the day from the date in the column, [Birthdate]. -The following formula returns the day from the date in the column, [Birthdate]. - ```dax -= DAY([Birthdate]) += DAY([Birthdate]) ``` - -## Example - Getting the day from a string date -The following formulas return the day, 4, using dates that have been supplied as strings in an accepted text format. - +## Example - Getting the day from a string date + +The following formulas return the day, 4, using dates that have been supplied as strings in an accepted text format. + ```dax -= DAY("3-4-1007") -= DAY("March 4 2007") += DAY("3-4-1007") += DAY("March 4 2007") ``` - -## Example - Using a day value as a condition -The following expression returns the day that each sales order was placed, and flags the row as a promotional sale item if the order was placed on the 10th of the month. - +## Example - Using a day value as a condition + +The following expression returns the day that each sales order was placed, and flags the row as a promotional sale item if the order was placed on the 10th of the month. + ```dax -= IF( DAY([SalesDate])=10,"promotion","") += IF( DAY([SalesDate])=10,"promotion","") ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[TODAY function](today-function-dax.md) -[DATE function](date-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[TODAY function](today-function-dax.md) +[DATE function](date-function-dax.md) diff --git a/query-languages/dax/db-function-dax.md b/query-languages/dax/db-function-dax.md index 782835000..ff617b9e1 100644 --- a/query-languages/dax/db-function-dax.md +++ b/query-languages/dax/db-function-dax.md @@ -18,8 +18,8 @@ DB(, , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`cost`|The initial cost of the asset.| |`salvage`|The value at the end of the depreciation (sometimes called the salvage value of the asset). This value can be 0.| |`life`|The number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).| diff --git a/query-languages/dax/ddb-function-dax.md b/query-languages/dax/ddb-function-dax.md index 043e12acc..4e005ba78 100644 --- a/query-languages/dax/ddb-function-dax.md +++ b/query-languages/dax/ddb-function-dax.md @@ -18,8 +18,8 @@ DDB(, , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`cost`|The initial cost of the asset.| |`salvage`|The value at the end of the depreciation (sometimes called the salvage value of the asset). This value can be 0.| |`life`|The number of periods over which the asset is being depreciated (sometimes called the useful life of the asset).| diff --git a/query-languages/dax/define-statement-dax.md b/query-languages/dax/define-statement-dax.md index 58451fbc2..503e5e5ba 100644 --- a/query-languages/dax/define-statement-dax.md +++ b/query-languages/dax/define-statement-dax.md @@ -3,11 +3,11 @@ description: "Learn more about: DEFINE" title: "DEFINE keyword (DAX)" --- # DEFINE - + Introduces a statement with one or more entity definitions that can be applied to one or more EVALUATE statements of a [DAX query](dax-queries.md). -## Syntax - +## Syntax + ```dax [DEFINE ( @@ -20,13 +20,13 @@ Introduces a statement with one or more entity definitions that can be applied t (EVALUATE
) + ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| + +|Term|Definition| +|--------|--------------| |`Entity`|MEASURE, VAR, TABLE[1](#not-rec), or COLUMN[1](#not-rec). | -|`name`|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| +|`name`|The name of a measure, var, table, or column definition. It cannot be an expression. The name does not have to be unique. The name exists only for the duration of the query.| |`expression`|Any DAX expression that returns a table or scalar value. The expression can use any of the defined entities. If there is a need to convert a scalar expression into a table expression, wrap the expression inside a table constructor with curly braces `{}`, or use the `ROW()` function to return a single row table.| [1] **Caution:** Query scoped TABLE and COLUMN definitions are meant for internal use only. While you can define TABLE and COLUMN expressions for a query without syntax error, they may produce runtime errors and are not recommended. @@ -45,7 +45,7 @@ Introduces a statement with one or more entity definitions that can be applied t ## Related content -[EVALUATE](evaluate-statement-dax.md) -[VAR](var-dax.md) -[MEASURE](measure-statement-dax.md) +[EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[MEASURE](measure-statement-dax.md) [DAX queries](dax-queries.md) diff --git a/query-languages/dax/degrees-function-dax.md b/query-languages/dax/degrees-function-dax.md index c843493ca..eab1f59cb 100644 --- a/query-languages/dax/degrees-function-dax.md +++ b/query-languages/dax/degrees-function-dax.md @@ -6,22 +6,22 @@ title: "DEGREES function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Converts radians into degrees. - -## Syntax - +Converts radians into degrees. + +## Syntax + ```dax -DEGREES(angle) +DEGREES(angle) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`angle`|Required. The angle in radians that you want to convert.| - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= DEGREES(PI())`|Degrees of pi radians|180| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`angle`|Required. The angle in radians that you want to convert.| + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= DEGREES(PI())`|Degrees of pi radians|180| diff --git a/query-languages/dax/detailrows-function-dax.md b/query-languages/dax/detailrows-function-dax.md index b3a7c05ee..8d3ef5a2f 100644 --- a/query-languages/dax/detailrows-function-dax.md +++ b/query-languages/dax/detailrows-function-dax.md @@ -8,18 +8,18 @@ title: "DETAILROWS function (DAX)" Evaluates a Detail Rows Expression defined for a measure and returns the data. -## Syntax - +## Syntax + ```dax -DETAILROWS([Measure]) +DETAILROWS([Measure]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Measure`|Name of a measure.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Measure`|Name of a measure.| + ## Return value A table with the data returned by the Detail Rows Expression. If no Detail Rows Expression is defined, the data for the table containing the measure is returned. diff --git a/query-languages/dax/disc-function-dax.md b/query-languages/dax/disc-function-dax.md index 7a9bce79a..cef768395 100644 --- a/query-languages/dax/disc-function-dax.md +++ b/query-languages/dax/disc-function-dax.md @@ -18,8 +18,8 @@ DISC(, , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`pr`|The security's price per \\$100 face value.| diff --git a/query-languages/dax/distinct-function-dax.md b/query-languages/dax/distinct-function-dax.md index 3e8f1a85b..0418a6f13 100644 --- a/query-languages/dax/distinct-function-dax.md +++ b/query-languages/dax/distinct-function-dax.md @@ -6,30 +6,30 @@ title: "DISTINCT (column) function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a one-column table that contains the distinct values from the specified column. In other words, duplicate values are removed and only unique values are returned. - -> [!NOTE] -> This function cannot be used to Return values into a cell or column on a worksheet; rather, you nest the DISTINCT function within a formula, to get a list of distinct values that can be passed to another function and then counted, summed, or used for other operations. - -## Syntax - +Returns a one-column table that contains the distinct values from the specified column. In other words, duplicate values are removed and only unique values are returned. + +> [!NOTE] +> This function cannot be used to Return values into a cell or column on a worksheet; rather, you nest the DISTINCT function within a formula, to get a list of distinct values that can be passed to another function and then counted, summed, or used for other operations. + +## Syntax + ```dax -DISTINCT() +DISTINCT() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column from which unique values are to be returned. Or, an expression that returns a column.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|The column from which unique values are to be returned. Or, an expression that returns a column.| + ## Return value -A column of unique values. - +A column of unique values. + ## Remarks -- The results of DISTINCT are affected by the current filter context. For example, if you use the formula in the following example to create a measure, the results would change whenever the table was filtered to show only a particular region or a time period. +- The results of DISTINCT are affected by the current filter context. For example, if you use the formula in the following example to create a measure, the results would change whenever the table was filtered to show only a particular region or a time period. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] @@ -37,31 +37,31 @@ A column of unique values. There is another version of the DISTINCT function, [DISTINCT (table)](distinct-table-function-dax.md), that returns a table by removing duplicate rows from another table or expression.. -The VALUES function is similar to DISTINCT; it can also be used to return a list of unique values, and generally will return exactly the same results as DISTINCT. However, in some context VALUES will return one additional special value. For more information, see [VALUES function](values-function-dax.md). - +The VALUES function is similar to DISTINCT; it can also be used to return a list of unique values, and generally will return exactly the same results as DISTINCT. However, in some context VALUES will return one additional special value. For more information, see [VALUES function](values-function-dax.md). + ## Example -The following formula counts the number of unique customers who have generated orders over the internet channel. The table that follows illustrates the possible results when the formula is added to a report. - +The following formula counts the number of unique customers who have generated orders over the internet channel. The table that follows illustrates the possible results when the formula is added to a report. + ```dax -= COUNTROWS(DISTINCT(InternetSales_USD[CustomerKey])) += COUNTROWS(DISTINCT(InternetSales_USD[CustomerKey])) ``` -You cannot paste the list of values that DISTINCT returns directly into a column. Instead, you pass the results of the DISTINCT function to another function that counts, filters, or aggregates values by using the list. To make the example as simple as possible, here the table of distinct values has been passed to the COUNTROWS function. - -|Row Labels|Accessories|Bikes|Clothing|Grand Total| -|-----------------------------|-----------------|----|----|----| -|2005||1013||1013| -|2006||2677||2677| -|2007|6792|4875|2867|9309| -|2008|9435|5451|4196|11377| -|Grand Total|15114|9132|6852|18484| - -Also, note that the results are not additive. That is to say, the total number of unique customers in *2007* is not the sum of unique customers of *Accessories*, *Bikes* and *Clothing* for that year. The reason is that a customer can be counted in multiple groups. - +You cannot paste the list of values that DISTINCT returns directly into a column. Instead, you pass the results of the DISTINCT function to another function that counts, filters, or aggregates values by using the list. To make the example as simple as possible, here the table of distinct values has been passed to the COUNTROWS function. + +|Row Labels|Accessories|Bikes|Clothing|Grand Total| +|-----------------------------|-----------------|----|----|----| +|2005||1013||1013| +|2006||2677||2677| +|2007|6792|4875|2867|9309| +|2008|9435|5451|4196|11377| +|Grand Total|15114|9132|6852|18484| + +Also, note that the results are not additive. That is to say, the total number of unique customers in *2007* is not the sum of unique customers of *Accessories*, *Bikes* and *Clothing* for that year. The reason is that a customer can be counted in multiple groups. + ## Related content -[Filter functions](filter-functions-dax.md) -[FILTER function](filter-function-dax.md) -[RELATED function](related-function-dax.md) -[VALUES function](values-function-dax.md) +[Filter functions](filter-functions-dax.md) +[FILTER function](filter-function-dax.md) +[RELATED function](related-function-dax.md) +[VALUES function](values-function-dax.md) diff --git a/query-languages/dax/distinct-table-function-dax.md b/query-languages/dax/distinct-table-function-dax.md index 7128f9a5c..710a10aa0 100644 --- a/query-languages/dax/distinct-table-function-dax.md +++ b/query-languages/dax/distinct-table-function-dax.md @@ -7,28 +7,28 @@ title: "DISTINCT (table) function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns a table by removing duplicate rows from another table or expression. - -## Syntax - + +## Syntax + ```dax -DISTINCT(
) +DISTINCT(
) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table from which unique rows are to be returned. The table can also be an expression that results in a table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table from which unique rows are to be returned. The table can also be an expression that results in a table.| + ## Return value -A table containing only distinct rows. - +A table containing only distinct rows. + ## Related functions There is another version of the DISTINCT function, [DISTINCT (column)](distinct-function-dax.md), that takes a column name as input parameter. - -## Example + +## Example The following query: @@ -45,8 +45,8 @@ Returns table: ## Related content -[Filter functions](filter-functions-dax.md) -[DISTINCT (column)](distinct-function-dax.md) -[FILTER function](filter-function-dax.md) -[RELATED function](related-function-dax.md) -[VALUES function](values-function-dax.md) +[Filter functions](filter-functions-dax.md) +[DISTINCT (column)](distinct-function-dax.md) +[FILTER function](filter-function-dax.md) +[RELATED function](related-function-dax.md) +[VALUES function](values-function-dax.md) diff --git a/query-languages/dax/distinctcount-function-dax.md b/query-languages/dax/distinctcount-function-dax.md index 6043ea8ed..61c754ace 100644 --- a/query-languages/dax/distinctcount-function-dax.md +++ b/query-languages/dax/distinctcount-function-dax.md @@ -6,27 +6,27 @@ title: "DISTINCTCOUNT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Counts the number of distinct values in a column. - -## Syntax - +Counts the number of distinct values in a column. + +## Syntax + ```dax -DISTINCTCOUNT() +DISTINCTCOUNT() ``` - -### Parameters -|Term |Description| +### Parameters + +|Term |Description| |---------|---------| |`column`| The column that contains the values to be counted | ## Return value -The number of distinct values in `column`. - +The number of distinct values in `column`. + ## Remarks -- The only argument allowed to this function is a column. You can use columns containing any type of data. When the function finds no rows to count, it returns a BLANK, otherwise it returns the count of distinct values. +- The only argument allowed to this function is a column. You can use columns containing any type of data. When the function finds no rows to count, it returns a BLANK, otherwise it returns the count of distinct values. - DISTINCTCOUNT function counts the BLANK value. To skip the BLANK value, use the [DISTINCTCOUNTNOBLANK](distinctcountnoblank-function-dax.md) function. @@ -34,29 +34,29 @@ The number of distinct values in `column`. ## Example -The following example shows how to count the number of distinct sales orders in the column ResellerSales_USD[SalesOrderNumber]. - +The following example shows how to count the number of distinct sales orders in the column ResellerSales_USD[SalesOrderNumber]. + ```dax -= DISTINCTCOUNT(ResellerSales_USD[SalesOrderNumber]) += DISTINCTCOUNT(ResellerSales_USD[SalesOrderNumber]) ``` -Using the above measure in a table with calendar year in the side and product category on top returns the following results: - +Using the above measure in a table with calendar year in the side and product category on top returns the following results: + |Row Labels|Accessories|Bikes|Clothing|Components|-|Grand Total| -|-----|-----|-----|-----|-----|-----|-----| -|2005|135|345|242|205||366| -|2006|356|850|644|702||1015| -|2007|531|1234|963|1138||1521| -|2008|293|724|561|601||894| -||||||1|1| -|**Grand Total**|**1315**|**3153**|**2410**|**2646**|**1**|**3797**| - -In the above example, note that the rows Grand Total numbers do not add up, this happens because the same order might contain line items, in the same order, from different product categories. - +|-----|-----|-----|-----|-----|-----|-----| +|2005|135|345|242|205||366| +|2006|356|850|644|702||1015| +|2007|531|1234|963|1138||1521| +|2008|293|724|561|601||894| +||||||1|1| +|**Grand Total**|**1315**|**3153**|**2410**|**2646**|**1**|**3797**| + +In the above example, note that the rows Grand Total numbers do not add up, this happens because the same order might contain line items, in the same order, from different product categories. + ## Related content -[COUNT function](count-function-dax.md) -[COUNTA function](counta-function-dax.md) -[COUNTAX function](countax-function-dax.md) -[COUNTX function](countx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[COUNT function](count-function-dax.md) +[COUNTA function](counta-function-dax.md) +[COUNTAX function](countax-function-dax.md) +[COUNTX function](countx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/distinctcountnoblank-function-dax.md b/query-languages/dax/distinctcountnoblank-function-dax.md index 82a2c2c10..509f1146a 100644 --- a/query-languages/dax/distinctcountnoblank-function-dax.md +++ b/query-languages/dax/distinctcountnoblank-function-dax.md @@ -7,35 +7,35 @@ title: "DISTINCTCOUNTNOBLANK function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Counts the number of distinct values in a column. - -## Syntax - + +## Syntax + ```dax -DISTINCTCOUNTNOBLANK() +DISTINCTCOUNTNOBLANK() ``` - -### Parameters -|Term |Description| +### Parameters + +|Term |Description| |---------|---------| |`column`| The column that contains the values to be counted | ## Return value -The number of distinct values in `column`. - -## Remarks +The number of distinct values in `column`. + +## Remarks - Unlike [DISTINCTCOUNT](distinctcount-function-dax.md) function, DISTINCTCOUNTNOBLANK does not count the BLANK value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows how to count the number of distinct sales orders in the column ResellerSales_USD[SalesOrderNumber]. - +The following example shows how to count the number of distinct sales orders in the column ResellerSales_USD[SalesOrderNumber]. + ```dax -= DISTINCTCOUNT(ResellerSales_USD[SalesOrderNumber]) += DISTINCTCOUNT(ResellerSales_USD[SalesOrderNumber]) ``` DAX query diff --git a/query-languages/dax/divide-function-dax.md b/query-languages/dax/divide-function-dax.md index ca8a3bb1c..c197b14c7 100644 --- a/query-languages/dax/divide-function-dax.md +++ b/query-languages/dax/divide-function-dax.md @@ -6,57 +6,57 @@ title: "DIVIDE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Performs division and returns alternate result or BLANK() on division by 0. - -## Syntax - +Performs division and returns alternate result or BLANK() on division by 0. + +## Syntax + ```dax -DIVIDE(, [,]) +DIVIDE(, [,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`numerator`|The dividend or number to divide.| -|`denominator`|The divisor or number to divide by.| -|`alternateresult`|(Optional) The value returned when division by zero results in an error. When not provided, the default value is BLANK().| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`numerator`|The dividend or number to divide.| +|`denominator`|The divisor or number to divide by.| +|`alternateresult`|(Optional) The value returned when division by zero results in an error. When not provided, the default value is BLANK().| + ## Return value -- A decimal number. - +- A decimal number. + ## Remarks -- Alternate result on divide by 0 must be a constant. +- Alternate result on divide by 0 must be a constant. - For best practices when using DIVIDE, see [DIVIDE function vs. divide operator (/) in DAX](best-practices/dax-divide-function-operator.md). - + ## Example -The following example returns 2.5. - +The following example returns 2.5. + ```dax -= DIVIDE(5,2) += DIVIDE(5,2) ``` - + ## Example 1 -The following example returns BLANK. - +The following example returns BLANK. + ```dax -= DIVIDE(5,0) += DIVIDE(5,0) ``` - + ## Example 2 -The following example returns 1. - +The following example returns 1. + ```dax -= DIVIDE(5,0,1) += DIVIDE(5,0,1) ``` - + ## Related content -[QUOTIENT function](quotient-function-dax.md) -[Math and Trig functions](math-and-trig-functions-dax.md) +[QUOTIENT function](quotient-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/dollarde-function-dax.md b/query-languages/dax/dollarde-function-dax.md index 1545d3691..5730906fc 100644 --- a/query-languages/dax/dollarde-function-dax.md +++ b/query-languages/dax/dollarde-function-dax.md @@ -18,8 +18,8 @@ DOLLARDE(, ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`fractional_dollar`|A number expressed as an integer part and a fraction part, separated by a decimal symbol.| |`fraction`|The integer to use in the denominator of the fraction.| diff --git a/query-languages/dax/dollarfr-function-dax.md b/query-languages/dax/dollarfr-function-dax.md index e23710f42..d475f2d58 100644 --- a/query-languages/dax/dollarfr-function-dax.md +++ b/query-languages/dax/dollarfr-function-dax.md @@ -18,8 +18,8 @@ DOLLARFR(, ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`decimal_dollar`|A decimal number.| |`fraction`|The integer to use in the denominator of the fraction.| diff --git a/query-languages/dax/duration-function-dax.md b/query-languages/dax/duration-function-dax.md index 18f778437..ec68b6a58 100644 --- a/query-languages/dax/duration-function-dax.md +++ b/query-languages/dax/duration-function-dax.md @@ -18,8 +18,8 @@ DURATION(, , , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`coupon`|The security's annual coupon rate.| diff --git a/query-languages/dax/earlier-function-dax.md b/query-languages/dax/earlier-function-dax.md index 697c022fd..4ec485021 100644 --- a/query-languages/dax/earlier-function-dax.md +++ b/query-languages/dax/earlier-function-dax.md @@ -6,117 +6,117 @@ title: "EARLIER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] -Returns the current value of the specified column in an outer evaluation pass of the mentioned column. - -EARLIER is useful for nested calculations where you want to use a certain value as an input and produce calculations based on that input. In Microsoft Excel, you can do such calculations only within the context of the current row; however, in DAX you can store the value of the input and then make calculation using data from the entire table. - -EARLIER is mostly used in the context of calculated columns. - -## Syntax - +Returns the current value of the specified column in an outer evaluation pass of the mentioned column. + +EARLIER is useful for nested calculations where you want to use a certain value as an input and produce calculations based on that input. In Microsoft Excel, you can do such calculations only within the context of the current row; however, in DAX you can store the value of the input and then make calculation using data from the entire table. + +EARLIER is mostly used in the context of calculated columns. + +## Syntax + ```dax -EARLIER(, ) +EARLIER(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|A column or expression that resolves to a column.| -|`num`|(Optional) A positive number to the outer evaluation pass.

The next evaluation level out is represented by 1; two levels out is represented by 2 and so on.

When omitted default value is 1.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|A column or expression that resolves to a column.| +|`num`|(Optional) A positive number to the outer evaluation pass.

The next evaluation level out is represented by 1; two levels out is represented by 2 and so on.

When omitted default value is 1.| + ## Return value -The current value of row, from `column`, at `number` of outer evaluation passes. - +The current value of row, from `column`, at `number` of outer evaluation passes. + ## Exceptions -Description of errors - +Description of errors + ## Remarks -- `EARLIER` succeeds if there is a row context prior to the beginning of the table scan. Otherwise it returns an error. - -- The performance of `EARLIER` might be slow because theoretically, it might have to perform a number of operations that is close to the total number of rows (in the column) times the same number (depending on the syntax of the expression). For example if you have 10 rows in the column, approximately a 100 operations could be required; if you have 100 rows then close to 10,000 operations might be performed. +- `EARLIER` succeeds if there is a row context prior to the beginning of the table scan. Otherwise it returns an error. + +- The performance of `EARLIER` might be slow because theoretically, it might have to perform a number of operations that is close to the total number of rows (in the column) times the same number (depending on the syntax of the expression). For example if you have 10 rows in the column, approximately a 100 operations could be required; if you have 100 rows then close to 10,000 operations might be performed. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -> [!NOTE] -> In practice, the VertiPaq in-memory analytics engine performs optimizations to reduce the actual number of calculations, but you should be cautious when creating formulas that involve recursion. - +> [!NOTE] +> In practice, the VertiPaq in-memory analytics engine performs optimizations to reduce the actual number of calculations, but you should be cautious when creating formulas that involve recursion. + ## Example -To illustrate the use of EARLIER, it is necessary to build a scenario that calculates a rank value and then uses that rank value in other calculations. - -The following example is based on this simple table, `ProductSubcategory`, which shows the total sales for each ProductSubcategory. - -The final table, including the ranking column is shown here. - -|ProductSubcategoryKey|EnglishProductSubcategoryName|TotalSubcategorySales|SubcategoryRanking| -|-------------------------|---------------------------------|-------------------------|----------------------| -|18|Bib-Shorts|$156,167.88|18| -|26|Bike Racks|$220,720.70|14| -|27|Bike Stands|$35,628.69|30| -|28|Bottles and Cages|$59,342.43|24| -|5|Bottom Brackets|$48,643.47|27| -|6|Brakes|$62,113.16|23| -|19|Caps|$47,934.54|28| -|7|Chains|$8,847.08|35| -|29|Cleaners|$16,882.62|32| -|8|Cranksets|$191,522.09|15| -|9|Derailleurs|$64,965.33|22| -|30|Fenders|$41,974.10|29| -|10|Forks|$74,727.66|21| -|20|Gloves|$228,353.58|12| -|4|Handlebars|$163,257.06|17| -|11|Headsets|$57,659.99|25| -|31|Helmets|$451,192.31|9| -|32|Hydration Packs|$96,893.78|20| -|21|Jerseys|$699,429.78|7| -|33|Lights||36| -|34|Locks|$15,059.47|33| -|1|Mountain Bikes|$34,305,864.29|2| -|12|Mountain Frames|$4,511,170.68|4| -|35|Panniers||36| -|13|Pedals|$140,422.20|19| -|36|Pumps|$12,695.18|34| -|2|Road Bikes|$40,551,696.34|1| -|14|Road Frames|$3,636,398.71|5| -|15|Saddles|$52,526.47|26| -|22|Shorts|$385,707.80|10| -|23|Socks|$28,337.85|31| -|24|Tights|$189,179.37|16| -|37|Tires and Tubes|$224,832.81|13| -|3|Touring Bikes|$13,334,864.18|3| -|16|Touring Frames|$1,545,344.02|6| -|25|Vests|$240,990.04|11| -|17|Wheels|$648,240.04|8| - +To illustrate the use of EARLIER, it is necessary to build a scenario that calculates a rank value and then uses that rank value in other calculations. + +The following example is based on this simple table, `ProductSubcategory`, which shows the total sales for each ProductSubcategory. + +The final table, including the ranking column is shown here. + +|ProductSubcategoryKey|EnglishProductSubcategoryName|TotalSubcategorySales|SubcategoryRanking| +|-------------------------|---------------------------------|-------------------------|----------------------| +|18|Bib-Shorts|$156,167.88|18| +|26|Bike Racks|$220,720.70|14| +|27|Bike Stands|$35,628.69|30| +|28|Bottles and Cages|$59,342.43|24| +|5|Bottom Brackets|$48,643.47|27| +|6|Brakes|$62,113.16|23| +|19|Caps|$47,934.54|28| +|7|Chains|$8,847.08|35| +|29|Cleaners|$16,882.62|32| +|8|Cranksets|$191,522.09|15| +|9|Derailleurs|$64,965.33|22| +|30|Fenders|$41,974.10|29| +|10|Forks|$74,727.66|21| +|20|Gloves|$228,353.58|12| +|4|Handlebars|$163,257.06|17| +|11|Headsets|$57,659.99|25| +|31|Helmets|$451,192.31|9| +|32|Hydration Packs|$96,893.78|20| +|21|Jerseys|$699,429.78|7| +|33|Lights||36| +|34|Locks|$15,059.47|33| +|1|Mountain Bikes|$34,305,864.29|2| +|12|Mountain Frames|$4,511,170.68|4| +|35|Panniers||36| +|13|Pedals|$140,422.20|19| +|36|Pumps|$12,695.18|34| +|2|Road Bikes|$40,551,696.34|1| +|14|Road Frames|$3,636,398.71|5| +|15|Saddles|$52,526.47|26| +|22|Shorts|$385,707.80|10| +|23|Socks|$28,337.85|31| +|24|Tights|$189,179.37|16| +|37|Tires and Tubes|$224,832.81|13| +|3|Touring Bikes|$13,334,864.18|3| +|16|Touring Frames|$1,545,344.02|6| +|25|Vests|$240,990.04|11| +|17|Wheels|$648,240.04|8| + ## Creating a Rank Value -One way to obtain a rank value for a given value in a row is to count the number of rows, in the same table, that have a value larger (or smaller) than the one that is being compared. This technique returns a blank or zero value for the highest value in the table, whereas equal values will have the same rank value and next value (after the equal values) will have a non consecutive rank value. See the sample below. - -A new calculated column, **SubCategorySalesRanking**, is created by using the following formula. - +One way to obtain a rank value for a given value in a row is to count the number of rows, in the same table, that have a value larger (or smaller) than the one that is being compared. This technique returns a blank or zero value for the highest value in the table, whereas equal values will have the same rank value and next value (after the equal values) will have a non consecutive rank value. See the sample below. + +A new calculated column, **SubCategorySalesRanking**, is created by using the following formula. + ```dax -= COUNTROWS(FILTER(ProductSubcategory, EARLIER(ProductSubcategory[TotalSubcategorySales])) +EARLIEST() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|A reference to a column.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|A reference to a column.| + ## Return value -A column with filters removed. - +A column with filters removed. + ## Remarks -- The EARLIEST function is similar to EARLIER, but lets you specify one additional level of recursion. +- The EARLIEST function is similar to EARLIER, but lets you specify one additional level of recursion. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The current sample data does not support this scenario. - +The current sample data does not support this scenario. + ```dax -= EARLIEST() += EARLIEST() ``` - + ## Related content -[EARLIER function](earlier-function-dax.md) -[Filter functions](filter-functions-dax.md) +[EARLIER function](earlier-function-dax.md) +[Filter functions](filter-functions-dax.md) diff --git a/query-languages/dax/edate-function-dax.md b/query-languages/dax/edate-function-dax.md index 27f7fbbf2..62dfaafa6 100644 --- a/query-languages/dax/edate-function-dax.md +++ b/query-languages/dax/edate-function-dax.md @@ -6,48 +6,48 @@ title: "EDATE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the date that is the indicated number of months before or after the start date. Use EDATE to calculate maturity dates or due dates that fall on the same day of the month as the date of issue. - -## Syntax - +Returns the date that is the indicated number of months before or after the start date. Use EDATE to calculate maturity dates or due dates that fall on the same day of the month as the date of issue. + +## Syntax + ```dax -EDATE(, ) +EDATE(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`start_date`|A date in `datetime` or `text` format that represents the start date.| -|`months`|An integer that represents the number of months before or after `start_date`.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`start_date`|A date in `datetime` or `text` format that represents the start date.| +|`months`|An integer that represents the number of months before or after `start_date`.| + ## Return value -A date (`datetime`). - +A date (`datetime`). + ## Remarks -- In contrast to Microsoft Excel, which stores dates as sequential serial numbers, DAX works with dates in a `datetime` format. Dates stored in other formats are converted implicitly. - -- If `start_date` is not a valid date, EDATE returns an error. Make sure that the column reference or date that you supply as the first argument is a date. - -- If `months` is not an integer, it is truncated. - -- When the date argument is a text representation of the date, the EDATE function uses the locale and date time settings of the client computer to understand the text value in order to perform the conversion. If the current date time settings represent a date in the format of Month/Day/Year, then the following string "1/8/2009" is interpreted as a datetime value equivalent to January 8th of 2009. However, if the current date time settings represent a date in the format of Day/Month/Year, the same string would be interpreted as a datetime value equivalent to August 1st of 2009. - -- If the requested date is past the last day of the corresponding month, then the last day of the month is returned. For example, the following functions: EDATE("2009-01-29", 1), EDATE("2009-01-30", 1), EDATE("2009-01-31", 1) return February 28th of 2009; that corresponds to one month after the start date. - +- In contrast to Microsoft Excel, which stores dates as sequential serial numbers, DAX works with dates in a `datetime` format. Dates stored in other formats are converted implicitly. + +- If `start_date` is not a valid date, EDATE returns an error. Make sure that the column reference or date that you supply as the first argument is a date. + +- If `months` is not an integer, it is truncated. + +- When the date argument is a text representation of the date, the EDATE function uses the locale and date time settings of the client computer to understand the text value in order to perform the conversion. If the current date time settings represent a date in the format of Month/Day/Year, then the following string "1/8/2009" is interpreted as a datetime value equivalent to January 8th of 2009. However, if the current date time settings represent a date in the format of Day/Month/Year, the same string would be interpreted as a datetime value equivalent to August 1st of 2009. + +- If the requested date is past the last day of the corresponding month, then the last day of the month is returned. For example, the following functions: EDATE("2009-01-29", 1), EDATE("2009-01-30", 1), EDATE("2009-01-31", 1) return February 28th of 2009; that corresponds to one month after the start date. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example returns the date three months after the order date, which is stored in the column [TransactionDate]. - +The following example returns the date three months after the order date, which is stored in the column [TransactionDate]. + ```dax -= EDATE([TransactionDate],3) += EDATE([TransactionDate],3) ``` - + ## Related content -[EOMONTH function](eomonth-function-dax.md) -[Date and time functions](date-and-time-functions-dax.md) +[EOMONTH function](eomonth-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/effect-function-dax.md b/query-languages/dax/effect-function-dax.md index 9fc6d1e97..5223ed9eb 100644 --- a/query-languages/dax/effect-function-dax.md +++ b/query-languages/dax/effect-function-dax.md @@ -18,8 +18,8 @@ EFFECT(, ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`nominal_rate`|The nominal interest rate.| |`npery`|The number of compounding periods per year.| diff --git a/query-languages/dax/endofmonth-function-dax.md b/query-languages/dax/endofmonth-function-dax.md index dcf320a1c..26d84e35b 100644 --- a/query-languages/dax/endofmonth-function-dax.md +++ b/query-languages/dax/endofmonth-function-dax.md @@ -6,47 +6,47 @@ title: "ENDOFMONTH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the last date of the month in the current context for the specified column of dates. - -## Syntax - +Returns the last date of the month in the current context for the specified column of dates. + +## Syntax + ```dax -ENDOFMONTH() +ENDOFMONTH() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| + ## Return value -A table containing a single column and single row with a date value. - +A table containing a single column and single row with a date value. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that returns the end of the month, for the current context. +The following sample formula creates a measure that returns the end of the month, for the current context. ```dax -= ENDOFMONTH(DateTime[DateKey]) += ENDOFMONTH(DateTime[DateKey]) ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[ENDOFYEAR function](endofyear-function-dax.md) -[ENDOFQUARTER function](endofquarter-function-dax.md) - +[Date and time functions](date-and-time-functions-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[ENDOFYEAR function](endofyear-function-dax.md) +[ENDOFQUARTER function](endofquarter-function-dax.md) + diff --git a/query-languages/dax/endofquarter-function-dax.md b/query-languages/dax/endofquarter-function-dax.md index e6a34d735..18899d913 100644 --- a/query-languages/dax/endofquarter-function-dax.md +++ b/query-languages/dax/endofquarter-function-dax.md @@ -6,46 +6,46 @@ title: "ENDOFQUARTER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the last date of the quarter in the current context for the specified column of dates. - -## Syntax - +Returns the last date of the quarter in the current context for the specified column of dates. + +## Syntax + ```dax -ENDOFQUARTER() +ENDOFQUARTER() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| + ## Return value -A table containing a single column and single row with a date value. - +A table containing a single column and single row with a date value. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column, - - A table expression that returns a single column of date/time values, - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - +- The `dates` argument can be any of the following: + - A reference to a date/time column, + - A table expression that returns a single column of date/time values, + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that returns the end of the quarter, for the current context. - +The following sample formula creates a measure that returns the end of the quarter, for the current context. + ```dax -= ENDOFQUARTER(DateTime[DateKey]) += ENDOFQUARTER(DateTime[DateKey]) ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[ENDOFYEAR function](endofyear-function-dax.md) -[ENDOFMONTH function](endofmonth-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[ENDOFYEAR function](endofyear-function-dax.md) +[ENDOFMONTH function](endofmonth-function-dax.md) diff --git a/query-languages/dax/endofyear-function-dax.md b/query-languages/dax/endofyear-function-dax.md index 7b3500d41..b568c1107 100644 --- a/query-languages/dax/endofyear-function-dax.md +++ b/query-languages/dax/endofyear-function-dax.md @@ -6,49 +6,49 @@ title: "ENDOFYEAR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the last date of the year in the current context for the specified column of dates. - -## Syntax - +Returns the last date of the year in the current context for the specified column of dates. + +## Syntax + ```dax -ENDOFYEAR( [,]) +ENDOFYEAR( [,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| -|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| + ## Return value -A table containing a single column and single row with a date value. - +A table containing a single column and single row with a date value. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column, - - A table expression that returns a single column of date/time values, - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. - +- The `dates` argument can be any of the following: + - A reference to a date/time column, + - A table expression that returns a single column of date/time values, + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that returns the end of the fiscal year that ends on June 30, for the current context. +The following sample formula creates a measure that returns the end of the fiscal year that ends on June 30, for the current context. ```dax -= ENDOFYEAR(DateTime[DateKey],"06/30/2004") += ENDOFYEAR(DateTime[DateKey],"06/30/2004") ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[ENDOFMONTH function](endofmonth-function-dax.md) -[ENDOFQUARTER function](endofquarter-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[ENDOFMONTH function](endofmonth-function-dax.md) +[ENDOFQUARTER function](endofquarter-function-dax.md) diff --git a/query-languages/dax/eomonth-function-dax.md b/query-languages/dax/eomonth-function-dax.md index bdd69999f..c6674b0eb 100644 --- a/query-languages/dax/eomonth-function-dax.md +++ b/query-languages/dax/eomonth-function-dax.md @@ -6,48 +6,48 @@ title: "EOMONTH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the date in `datetime` format of the last day of the month, before or after a specified number of months. Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month. - -## Syntax - +Returns the date in `datetime` format of the last day of the month, before or after a specified number of months. Use EOMONTH to calculate maturity dates or due dates that fall on the last day of the month. + +## Syntax + ```dax -EOMONTH(, ) +EOMONTH(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`start_date`|The start date in `datetime` format, or in an accepted text representation of a date.| -|`months`|A number representing the number of months before or after the `start_date`. **Note:** If you enter a number that is not an integer, the number is rounded up or down to the nearest integer.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`start_date`|The start date in `datetime` format, or in an accepted text representation of a date.| +|`months`|A number representing the number of months before or after the `start_date`. **Note:** If you enter a number that is not an integer, the number is rounded up or down to the nearest integer.| + ## Return value -A date (`datetime`). - +A date (`datetime`). + ## Remarks -- In contrast to Microsoft Excel, which stores dates as sequential serial numbers, DAX works with dates in a `datetime` format. The EOMONTH function can accept dates in other formats, with the following restrictions: - -- If `start_date` is not a valid date, EOMONTH returns an error. - -- If `start_date` is a numeric value that is not in a `datetime` format, EOMONTH will convert the number to a date. To avoid unexpected results, convert the number to a `datetime` format before using the EOMONTH function. - -- If `start_date` plus months yields an invalid date, EOMONTH returns an error. Dates before March 1st of 1900 and after December 31st of 9999 are invalid. - -- When the date argument is a text representation of the date, the EDATE function uses the locale and date time settings, of the client computer, to understand the text value in order to perform the conversion. If current date time settings represent a date in the format of Month/Day/Year, then the following string "1/8/2009" is interpreted as a datetime value equivalent to January 8th of 2009. However, if the current date time settings represent a date in the format of Day/Month/Year, the same string would be interpreted as a datetime value equivalent to August 1st of 2009. - +- In contrast to Microsoft Excel, which stores dates as sequential serial numbers, DAX works with dates in a `datetime` format. The EOMONTH function can accept dates in other formats, with the following restrictions: + +- If `start_date` is not a valid date, EOMONTH returns an error. + +- If `start_date` is a numeric value that is not in a `datetime` format, EOMONTH will convert the number to a date. To avoid unexpected results, convert the number to a `datetime` format before using the EOMONTH function. + +- If `start_date` plus months yields an invalid date, EOMONTH returns an error. Dates before March 1st of 1900 and after December 31st of 9999 are invalid. + +- When the date argument is a text representation of the date, the EDATE function uses the locale and date time settings, of the client computer, to understand the text value in order to perform the conversion. If current date time settings represent a date in the format of Month/Day/Year, then the following string "1/8/2009" is interpreted as a datetime value equivalent to January 8th of 2009. However, if the current date time settings represent a date in the format of Day/Month/Year, the same string would be interpreted as a datetime value equivalent to August 1st of 2009. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following expression returns May 31, 2008, because the `months` argument is rounded to 2. - +The following expression returns May 31, 2008, because the `months` argument is rounded to 2. + ```dax -= EOMONTH("March 3, 2008",1.5) += EOMONTH("March 3, 2008",1.5) ``` - + ## Related content -[EDATE function](edate-function-dax.md) -[Date and time functions](date-and-time-functions-dax.md) +[EDATE function](edate-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/error-function-dax.md b/query-languages/dax/error-function-dax.md index 6d330ddf1..a2d337ab7 100644 --- a/query-languages/dax/error-function-dax.md +++ b/query-languages/dax/error-function-dax.md @@ -6,24 +6,24 @@ title: "ERROR function" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Raises an error with an error message. - -## Syntax - +Raises an error with an error message. + +## Syntax + ```dax -ERROR() +ERROR() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|A text string containing an error message.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|A text string containing an error message.| + ## Return value None - + ## Remarks - The ERROR function can be placed in a DAX expression anywhere a scalar value is expected. @@ -69,14 +69,14 @@ Returns the following table: DimProduct[Color] |[Measure] ---------|--------- Black | Black -Blue | Blue +Blue | Blue Grey | Grey Multi | Multi NA | NA Red | Red Silver | Silver Silver\Black | Silver\Black -White | White +White | White Yellow | Yellow Because Magenta is not one of the product colors, the ERROR function is not executed. diff --git a/query-languages/dax/evaluate-statement-dax.md b/query-languages/dax/evaluate-statement-dax.md index a2afa7844..136c516ab 100644 --- a/query-languages/dax/evaluate-statement-dax.md +++ b/query-languages/dax/evaluate-statement-dax.md @@ -3,21 +3,21 @@ description: "Learn more about: EVALUATE" title: "EVALUATE keyword (DAX)" --- # EVALUATE - + Introduces a statement containing a table expression required in a [DAX query](dax-queries.md). -## Syntax - +## Syntax + ```dax -EVALUATE
+EVALUATE
``` - -## Parameters - -|Term|Definition| -|--------|--------------| -|`table`|A table expression| - + +## Parameters + +|Term|Definition| +|--------|--------------| +|`table`|A table expression| + ## Return value The result of a table expression. @@ -39,8 +39,8 @@ Returns all rows and columns from the Internet Sales table, as a table. ## Related content -[ORDER BY](orderby-statement-dax.md) -[START AT](startat-statement-dax.md) -[DEFINE](define-statement-dax.md) -[VAR](var-dax.md) -[DAX queries](dax-queries.md) +[ORDER BY](orderby-statement-dax.md) +[START AT](startat-statement-dax.md) +[DEFINE](define-statement-dax.md) +[VAR](var-dax.md) +[DAX queries](dax-queries.md) diff --git a/query-languages/dax/evaluateandlog-function-dax.md b/query-languages/dax/evaluateandlog-function-dax.md index acdab4a6e..99cbae94a 100644 --- a/query-languages/dax/evaluateandlog-function-dax.md +++ b/query-languages/dax/evaluateandlog-function-dax.md @@ -7,21 +7,21 @@ title: "EVALUATEANDLOG function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the value of the first argument and logs it in a DAX Evaluation Log profiler event. This function is fully functional in Power BI Desktop only. It acts as a simple passthrough function in other environments. - -## Syntax - + +## Syntax + ```dax EVALUATEANDLOG(, [Label], [MaxRows]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Value`|Any scalar expression or table expression to be evaluated and logged.| -|`Label`|(Optional) A constant string included in both the json text and the Label column of the DAX Evaluation Log event that can be used to easily identify an instance of the function call.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Value`|Any scalar expression or table expression to be evaluated and logged.| +|`Label`|(Optional) A constant string included in both the json text and the Label column of the DAX Evaluation Log event that can be used to easily identify an instance of the function call.| |`MaxRows`|(Optional) The maximum number of rows in the json text of the DAX Evaluation Log event when the first argument is a table expression. Default is 10.| - + ## Return value The value of the first argument. @@ -49,7 +49,7 @@ The JSON structure logged in a DAX Evaluation Log profiler event includes: - In some cases, this function is not executed due to optimizations. - If the DAX Evaluation Log event is greater than one million characters, it's truncated to preserve correct json structure. - + ## Example 1 The following DAX query: @@ -142,5 +142,5 @@ Returns the following DAX Evaluation Log event: ## Related content -[TOCSV](tocsv-function-dax.md) -[TOJSON](tojson-function-dax.md) +[TOCSV](tocsv-function-dax.md) +[TOJSON](tojson-function-dax.md) diff --git a/query-languages/dax/even-function-dax.md b/query-languages/dax/even-function-dax.md index 81ac62560..65de028b5 100644 --- a/query-languages/dax/even-function-dax.md +++ b/query-languages/dax/even-function-dax.md @@ -6,37 +6,37 @@ title: "EVEN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns number rounded up to the nearest even integer. You can use this function for processing items that come in twos. For example, a packing crate accepts rows of one or two items. The crate is full when the number of items, rounded up to the nearest two, matches the crate's capacity. - -## Syntax - +Returns number rounded up to the nearest even integer. You can use this function for processing items that come in twos. For example, a packing crate accepts rows of one or two items. The crate is full when the number of items, rounded up to the nearest two, matches the crate's capacity. + +## Syntax + ```dax -EVEN(number) +EVEN(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The value to round.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The value to round.| + ## Return value -Returns number rounded up to the nearest even integer. - +Returns number rounded up to the nearest even integer. + ## Remarks -- If `number` is nonnumeric, EVEN returns the `#VALUE!` error value. - -- Regardless of the sign of number, a value is rounded up when adjusted away from zero. If number is an even integer, no rounding occurs. +- If `number` is nonnumeric, EVEN returns the `#VALUE!` error value. + +- Regardless of the sign of number, a value is rounded up when adjusted away from zero. If number is an even integer, no rounding occurs. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= EVEN(1.5)`|Rounds 1.5 to the nearest even integer|2| -|`= EVEN(3)`|Rounds 3 to the nearest even integer|4| -|`= EVEN(2)`|Rounds 2 to the nearest even integer|2| -|`= EVEN(-1)`|Rounds -1 to the nearest even integer|-2| +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= EVEN(1.5)`|Rounds 1.5 to the nearest even integer|2| +|`= EVEN(3)`|Rounds 3 to the nearest even integer|4| +|`= EVEN(2)`|Rounds 2 to the nearest even integer|2| +|`= EVEN(-1)`|Rounds -1 to the nearest even integer|-2| diff --git a/query-languages/dax/exact-function-dax.md b/query-languages/dax/exact-function-dax.md index 64076bb44..9d7a1a5a2 100644 --- a/query-languages/dax/exact-function-dax.md +++ b/query-languages/dax/exact-function-dax.md @@ -7,34 +7,34 @@ title: "EXACT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Compares two text strings and returns `TRUE` if they are exactly the same, otherwise returns `FALSE`. EXACT is case-sensitive but ignores formatting differences. EXACT is case-sensitive - -## Syntax - + +## Syntax + ```dax -EXACT(,) +EXACT(,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text1`|The first text string or column that contains text.| -|`text2`|The second text string or column that contains text.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text1`|The first text string or column that contains text.| +|`text2`|The second text string or column that contains text.| + ## Return value -True or False. (Boolean) - +True or False. (Boolean) + ## Example -The following formula used in a calculated column in the Product table checks the value of Product for the current row against the value of Model for the current row, and returns True if they are the same, and returns False if they are different. +The following formula used in a calculated column in the Product table checks the value of Product for the current row against the value of Model for the current row, and returns True if they are the same, and returns False if they are different. [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] ```dax -= EXACT([Product], [Model]) += EXACT([Product], [Model]) ``` - + ## Related content -[Text functions](text-functions-dax.md) +[Text functions](text-functions-dax.md) diff --git a/query-languages/dax/except-function-dax.md b/query-languages/dax/except-function-dax.md index 8a452d70c..9cc836188 100644 --- a/query-languages/dax/except-function-dax.md +++ b/query-languages/dax/except-function-dax.md @@ -6,79 +6,79 @@ title: "EXCEPT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the rows of the first table in the expression which do not appear in the second table. - -## Syntax - +Returns the rows of the first table in the expression which do not appear in the second table. + +## Syntax + ```dax EXCEPT(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Table_expression`|Any DAX expression that returns a table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Table_expression`|Any DAX expression that returns a table.| + ## Return value -A table that contains the rows of one table minus all the rows of another table. - +A table that contains the rows of one table minus all the rows of another table. + ## Remarks -- If a row appears at all in both tables, it and its duplicates are not present in the result set. If a row appears in only table_expression1, it and its duplicates will appear in the result set. - -- The column names will match the column names in table_expression1. - -- The returned table has lineage based on the columns in table_expression1 , regardless of the lineage of the columns in the second table. For example, if the first column of first table_expression has lineage to the base column C1 in the model, the Except will reduce the rows based on the availability of values in the first column of second table_expression and keep the lineage on base column C1 intact. - -- The two tables must have the same number of columns. - -- Columns are compared based on positioning, and data comparison with no type coercion. - -- The set of rows returned depends on the order of the two expressions. - -- The returned table does not include columns from tables related to table_expression1. +- If a row appears at all in both tables, it and its duplicates are not present in the result set. If a row appears in only table_expression1, it and its duplicates will appear in the result set. + +- The column names will match the column names in table_expression1. + +- The returned table has lineage based on the columns in table_expression1 , regardless of the lineage of the columns in the second table. For example, if the first column of first table_expression has lineage to the base column C1 in the model, the Except will reduce the rows based on the availability of values in the first column of second table_expression and keep the lineage on base column C1 intact. + +- The two tables must have the same number of columns. + +- Columns are compared based on positioning, and data comparison with no type coercion. + +- The set of rows returned depends on the order of the two expressions. + +- The returned table does not include columns from tables related to table_expression1. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -States1 - -|State| -|---------| -|A| -|B| -|B| -|B| -|C| -|D| -|D| - -States2 - -|State| -|---------| -|B| -|C| -|D| -|D| -|D| -|E| -|E| -|E| - -Except(States1, States2) - -|State| -|---------| -|A| - -Except(States2, States1) - -|State| -|---------| -|E| -|E| -|E| +States1 + +|State| +|---------| +|A| +|B| +|B| +|B| +|C| +|D| +|D| + +States2 + +|State| +|---------| +|B| +|C| +|D| +|D| +|D| +|E| +|E| +|E| + +Except(States1, States2) + +|State| +|---------| +|A| + +Except(States2, States1) + +|State| +|---------| +|E| +|E| +|E| diff --git a/query-languages/dax/exp-function-dax.md b/query-languages/dax/exp-function-dax.md index 818614463..4696ab31e 100644 --- a/query-languages/dax/exp-function-dax.md +++ b/query-languages/dax/exp-function-dax.md @@ -6,44 +6,44 @@ title: "EXP function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns e raised to the power of a given number. The constant e equals 2.71828182845904, the base of the natural logarithm. - -## Syntax - +Returns e raised to the power of a given number. The constant e equals 2.71828182845904, the base of the natural logarithm. + +## Syntax + ```dax -EXP() +EXP() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The exponent applied to the base e. The constant e equals 2.71828182845904, the base of the natural logarithm.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The exponent applied to the base e. The constant e equals 2.71828182845904, the base of the natural logarithm.| + ## Return value -A decimal number. - -## Exceptions - +A decimal number. + +## Exceptions + ## Remarks -- EXP is the inverse of LN, which is the natural logarithm of the given number. - +- EXP is the inverse of LN, which is the natural logarithm of the given number. + - To calculate powers of bases other than e, use the exponentiation operator (^). For more information, see [DAX Operator Reference](dax-operator-reference.md). ## Example -The following formula calculates e raised to the power of the number contained in the column, `[Power]`. - +The following formula calculates e raised to the power of the number contained in the column, `[Power]`. + ```dax -= EXP([Power]) += EXP([Power]) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[LN function](ln-function-dax.md) -[EXP function](exp-function-dax.md) -[LOG function](log-function-dax.md) -[LOG function](log-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[LN function](ln-function-dax.md) +[EXP function](exp-function-dax.md) +[LOG function](log-function-dax.md) +[LOG function](log-function-dax.md) diff --git a/query-languages/dax/expand-function-dax.md b/query-languages/dax/expand-function-dax.md index 40c7fc969..859730c0b 100644 --- a/query-languages/dax/expand-function-dax.md +++ b/query-languages/dax/expand-function-dax.md @@ -72,8 +72,7 @@ The screenshot below shows the matrix with the three visual calculations. ## See also -[EXPANDALL](expandall-function-dax.md) -[COLLAPSE](collapse-function-dax.md) -[COLLAPSEALL](collapseall-function-dax.md) - +[EXPANDALL](expandall-function-dax.md) +[COLLAPSE](collapse-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) diff --git a/query-languages/dax/expandall-function-dax.md b/query-languages/dax/expandall-function-dax.md index 549ea7695..d0da2168f 100644 --- a/query-languages/dax/expandall-function-dax.md +++ b/query-languages/dax/expandall-function-dax.md @@ -62,8 +62,7 @@ The screenshot below shows the matrix with the visual calculation. ## See also -[EXPAND](expand-function-dax.md) -[COLLAPSE](collapse-function-dax.md) -[COLLAPSEALL](collapseall-function-dax.md) - +[EXPAND](expand-function-dax.md) +[COLLAPSE](collapse-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) diff --git a/query-languages/dax/expon-dist-function-dax.md b/query-languages/dax/expon-dist-function-dax.md index 57a0283f1..b8cf1e95b 100644 --- a/query-languages/dax/expon-dist-function-dax.md +++ b/query-languages/dax/expon-dist-function-dax.md @@ -6,41 +6,41 @@ title: "EXPON.DIST function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the exponential distribution. Use EXPON.DIST to model the time between events, such as how long an automated bank teller takes to deliver cash. For example, you can use EXPON.DIST to determine the probability that the process takes at most 1 minute. - -## Syntax - +Returns the exponential distribution. Use EXPON.DIST to model the time between events, such as how long an automated bank teller takes to deliver cash. For example, you can use EXPON.DIST to determine the probability that the process takes at most 1 minute. + +## Syntax + ```dax -EXPON.DIST(x,lambda,cumulative) +EXPON.DIST(x,lambda,cumulative) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`x`|Required. The value of the function.| -|`lambda`|Required. The parameter value.| -|`cumulative`|Required. A logical value that indicates which form of the exponential function to provide. If cumulative is `TRUE`, EXPON.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`x`|Required. The value of the function.| +|`lambda`|Required. The parameter value.| +|`cumulative`|Required. A logical value that indicates which form of the exponential function to provide. If cumulative is `TRUE`, EXPON.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| + ## Return value -Returns the exponential distribution. - +Returns the exponential distribution. + ## Remarks - If `x` or `lambda` is nonnumeric, EXPON.DIST returns the `#VALUE!` error value. - If `x` or `lambda` is not an integer, it is rounded. -- If `x` < 0, EXPON.DIST returns the `#NUM!` error value. +- If `x` < 0, EXPON.DIST returns the `#NUM!` error value. -- If `lambda` ≤ 0, EXPON.DIST returns the `#NUM!` error value. +- If `lambda` ≤ 0, EXPON.DIST returns the `#NUM!` error value. -- The equation for the probability density function is: +- The equation for the probability density function is: $$f(x; \lambda) = \lambda e^{-\lambda x}$$ -- The equation for the cumulative distribution function is: +- The equation for the cumulative distribution function is: $$F(x; \lambda) = 1 - e^{-\lambda x}$$ diff --git a/query-languages/dax/fact-function-dax.md b/query-languages/dax/fact-function-dax.md index 7a1162685..b3aa69d6e 100644 --- a/query-languages/dax/fact-function-dax.md +++ b/query-languages/dax/fact-function-dax.md @@ -6,51 +6,51 @@ title: "FACT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the factorial of a number, equal to the series 1*2\*3\*...\* , ending in the given number. - -## Syntax - +Returns the factorial of a number, equal to the series 1*2\*3\*...\* , ending in the given number. + +## Syntax + ```dax -FACT() +FACT() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The non-negative number for which you want to calculate the factorial.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The non-negative number for which you want to calculate the factorial.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- If the number is not an integer, it is truncated and an error is returned. If the result is too large, an error is returned. +- If the number is not an integer, it is truncated and an error is returned. If the result is too large, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following formula returns the factorial for the series of integers in the column, `[Values]`. - +The following formula returns the factorial for the series of integers in the column, `[Values]`. + ```dax -= FACT([Values]) += FACT([Values]) ``` -The following table shows the expected results: - -|Values|Results| -|----------|-----------| -|0|1| -|1|1| -|2|2| -|3|6| -|4|24| -|5|120| -|170|7.257415615308E+306| - +The following table shows the expected results: + +|Values|Results| +|----------|-----------| +|0|1| +|1|1| +|2|2| +|3|6| +|4|24| +|5|120| +|170|7.257415615308E+306| + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[TRUNC function](trunc-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[TRUNC function](trunc-function-dax.md) diff --git a/query-languages/dax/false-function-dax.md b/query-languages/dax/false-function-dax.md index 13b912eed..608355e4c 100644 --- a/query-languages/dax/false-function-dax.md +++ b/query-languages/dax/false-function-dax.md @@ -6,43 +6,43 @@ title: "FALSE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the logical value `FALSE`. - -## Syntax - +Returns the logical value `FALSE`. + +## Syntax + ```dax -FALSE() +FALSE() ``` - + ## Return value -Always `FALSE`. - +Always `FALSE`. + ## Remarks -The word `FALSE` is also interpreted as the logical value `FALSE`. - +The word `FALSE` is also interpreted as the logical value `FALSE`. + ## Example -The formula returns the logical value `FALSE` when the value in the column, 'InternetSales_USD'[SalesAmount_USD], is less than or equal to 200000. - +The formula returns the logical value `FALSE` when the value in the column, 'InternetSales_USD'[SalesAmount_USD], is less than or equal to 200000. + ```dax -= IF(SUM('InternetSales_USD'[SalesAmount_USD]) >200000, TRUE(), false()) += IF(SUM('InternetSales_USD'[SalesAmount_USD]) >200000, TRUE(), false()) ``` -The following table shows the results when the example formula is used with 'ProductCategory'[ProductCategoryName] in Row Labels and 'DateTime'[CalendarYear] in Column Labels. - +The following table shows the results when the example formula is used with 'ProductCategory'[ProductCategoryName] in Row Labels and 'DateTime'[CalendarYear] in Column Labels. + |Row Labels|2005|2006|2007|2008|-|Grand Total| -|---------------|-----------------|----|----|----|----|----| -|Accessories|``FALSE``|``FALSE``|``TRUE``|``TRUE``|``FALSE``|``TRUE``| -|Bikes|``TRUE``|``TRUE``|``TRUE``|``TRUE``|``FALSE``|``TRUE``| -|Clothing|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``TRUE``| -|Components|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``| -||``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``| -|Grand Total|``TRUE``|``TRUE``|``TRUE``|``TRUE``|``FALSE``|``TRUE``| +|---------------|-----------------|----|----|----|----|----| +|Accessories|``FALSE``|``FALSE``|``TRUE``|``TRUE``|``FALSE``|``TRUE``| +|Bikes|``TRUE``|``TRUE``|``TRUE``|``TRUE``|``FALSE``|``TRUE``| +|Clothing|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``TRUE``| +|Components|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``| +||``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``|``FALSE``| +|Grand Total|``TRUE``|``TRUE``|``TRUE``|``TRUE``|``FALSE``|``TRUE``| ## Related content -[TRUE function](true-function-dax.md) -[NOT function](not-function-dax.md) -[IF function](if-function-dax.md) +[TRUE function](true-function-dax.md) +[NOT function](not-function-dax.md) +[IF function](if-function-dax.md) diff --git a/query-languages/dax/filter-function-dax.md b/query-languages/dax/filter-function-dax.md index b70cc3a6a..fd0f645b3 100644 --- a/query-languages/dax/filter-function-dax.md +++ b/query-languages/dax/filter-function-dax.md @@ -6,25 +6,25 @@ title: "FILTER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a table that represents a subset of another table or expression. - -## Syntax - +Returns a table that represents a subset of another table or expression. + +## Syntax + ```dax -FILTER(
,) +FILTER(
,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table to be filtered. The table can also be an expression that results in a table.| -|`filter`|A Boolean expression that is to be evaluated for each row of the table. For example, `[Amount] > 0` or `[Region] = "France"`| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table to be filtered. The table can also be an expression that results in a table.| +|`filter`|A Boolean expression that is to be evaluated for each row of the table. For example, `[Amount] > 0` or `[Region] = "France"`| + ## Return value -A table containing only the filtered rows. - +A table containing only the filtered rows. + ## Remarks - You can use FILTER to reduce the number of rows in the table that you are working with, and use only specific data in calculations. FILTER is not used independently, but as a function that is embedded in other functions that require a table as an argument. @@ -34,54 +34,54 @@ A table containing only the filtered rows. Use COUNTROWS instead of COUNT in DAX - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example creates a report of Internet sales outside the United States by using a measure that filters out sales in the United States, and then slicing by calendar year and product categories. To create this measure, you filter the table, Internet Sales USD, by using Sales Territory, and then use the filtered table in a SUMX function. - +The following example creates a report of Internet sales outside the United States by using a measure that filters out sales in the United States, and then slicing by calendar year and product categories. To create this measure, you filter the table, Internet Sales USD, by using Sales Territory, and then use the filtered table in a SUMX function. + In this example, the expression: ```dax FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") ``` -Returns a table that is a subset of Internet Sales minus all rows that belong to the United States sales territory. The RELATED function is what links the Territory key in the Internet Sales table to SalesTerritoryCountry in the SalesTerritory table. - -The following table demonstrates the proof of concept for the measure, NON USA Internet Sales, the formula for which is provided in the code section below. The table compares all Internet sales with non- USA Internet sales, to show that the filter expression works, by excluding United States sales from the computation. - -To re-create this table, add the field, SalesTerritoryCountry, to the **Row Labels** area of a report or PivotTable. - -### Table 1. Comparing total sales for U.S. vs. all other regions - +Returns a table that is a subset of Internet Sales minus all rows that belong to the United States sales territory. The RELATED function is what links the Territory key in the Internet Sales table to SalesTerritoryCountry in the SalesTerritory table. + +The following table demonstrates the proof of concept for the measure, NON USA Internet Sales, the formula for which is provided in the code section below. The table compares all Internet sales with non- USA Internet sales, to show that the filter expression works, by excluding United States sales from the computation. + +To re-create this table, add the field, SalesTerritoryCountry, to the **Row Labels** area of a report or PivotTable. + +### Table 1. Comparing total sales for U.S. vs. all other regions + |Row Labels|Internet Sales|Non USA Internet Sales| -|--------------|------------------|--------------------------| -|Australia|$4,999,021.84|$4,999,021.84| -|Canada|$1,343,109.10|$1,343,109.10| -|France|$2,490,944.57|$2,490,944.57| -|Germany|$2,775,195.60|$2,775,195.60| -|United Kingdom|$5,057,076.55|$5,057,076.55| -|United States|$9,389,479.79|| -|Grand Total|$26,054,827.45|$16,665,347.67| - -The final report table shows the results when you create a PivotTable by using the measure, NON USA Internet Sales. Add the field, CalendarYear, to the **Row Labels** area of the PivotTable and add the field, ProductCategoryName, to the **Column Labels** area. - -### Table 2. Comparing non- U.S. sales by product categories - +|--------------|------------------|--------------------------| +|Australia|$4,999,021.84|$4,999,021.84| +|Canada|$1,343,109.10|$1,343,109.10| +|France|$2,490,944.57|$2,490,944.57| +|Germany|$2,775,195.60|$2,775,195.60| +|United Kingdom|$5,057,076.55|$5,057,076.55| +|United States|$9,389,479.79|| +|Grand Total|$26,054,827.45|$16,665,347.67| + +The final report table shows the results when you create a PivotTable by using the measure, NON USA Internet Sales. Add the field, CalendarYear, to the **Row Labels** area of the PivotTable and add the field, ProductCategoryName, to the **Column Labels** area. + +### Table 2. Comparing non- U.S. sales by product categories + |Row Labels|Accessories|Bikes|Clothing|Grand Total| -|--------------------------|-----------------|----|----|----| -|2005||$1,526,481.95||$1,526,481.95| -|2006||$3,554,744.04||$3,554,744.04| -|2007|$156,480.18|$5,640,106.05|$70,142.77|$5,866,729.00| -|2008|$228,159.45|$5,386,558.19|$102,675.04|$5,717,392.68| -|Grand Total|$384,639.63|$16,107,890.23|$172,817.81|$16,665,347.67| - +|--------------------------|-----------------|----|----|----| +|2005||$1,526,481.95||$1,526,481.95| +|2006||$3,554,744.04||$3,554,744.04| +|2007|$156,480.18|$5,640,106.05|$70,142.77|$5,866,729.00| +|2008|$228,159.45|$5,386,558.19|$102,675.04|$5,717,392.68| +|Grand Total|$384,639.63|$16,107,890.23|$172,817.81|$16,665,347.67| + ```dax -SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") - ,'InternetSales_USD'[SalesAmount_USD]) +SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") + ,'InternetSales_USD'[SalesAmount_USD]) ``` - + ## Related content -[Filter functions](filter-functions-dax.md) -[ALL function](all-function-dax.md) -[ALLEXCEPT function](allexcept-function-dax.md) +[Filter functions](filter-functions-dax.md) +[ALL function](all-function-dax.md) +[ALLEXCEPT function](allexcept-function-dax.md) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index fd8107759..f032c7d64 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -4,8 +4,8 @@ title: "Filter functions (DAX)" --- # Filter functions -The filter and value functions in DAX are some of the most complex and powerful, and differ greatly from Excel functions. The lookup functions work by using tables and relationships, like a database. The filtering functions let you manipulate data context to create dynamic calculations. - +The filter and value functions in DAX are some of the most complex and powerful, and differ greatly from Excel functions. The lookup functions work by using tables and relationships, like a database. The filtering functions let you manipulate data context to create dynamic calculations. + ## In this category |Function |Description | diff --git a/query-languages/dax/filters-function-dax.md b/query-languages/dax/filters-function-dax.md index fff23e160..66bc73afb 100644 --- a/query-languages/dax/filters-function-dax.md +++ b/query-languages/dax/filters-function-dax.md @@ -6,34 +6,34 @@ title: "FILTERS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the values that are directly applied as filters to `columnName`. - +Returns the values that are directly applied as filters to `columnName`. + ## Syntax - + ```dax -FILTERS() +FILTERS() ``` - + ### Parameters -|Term |Description| +|Term |Description| |---------|---------| |`columnName`| The name of an existing column, using standard DAX syntax. It cannot be an expression. | ## Return value -The values that are directly applied as filters to `columnName`. - +The values that are directly applied as filters to `columnName`. + ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows how to determine the number of direct filters a column has. - +The following example shows how to determine the number of direct filters a column has. + ```dax -= COUNTROWS(FILTERS(ResellerSales_USD[ProductKey])) += COUNTROWS(FILTERS(ResellerSales_USD[ProductKey])) ``` -This example lets you know how many direct filters on ResellerSales_USD[ProductKey] have been applied to the context where the expression is being evaluated. +This example lets you know how many direct filters on ResellerSales_USD[ProductKey] have been applied to the context where the expression is being evaluated. diff --git a/query-languages/dax/financial-functions-dax.md b/query-languages/dax/financial-functions-dax.md index 88f59a273..e23444cae 100644 --- a/query-languages/dax/financial-functions-dax.md +++ b/query-languages/dax/financial-functions-dax.md @@ -5,7 +5,7 @@ title: "Financial functions (DAX)" # Financial functions Financial functions in DAX are used in formulas that perform financial calculations, such as net present value and rate of return. These functions are similar to financial functions used in Microsoft Excel. - + ## In this category |Function |Description | diff --git a/query-languages/dax/find-function-dax.md b/query-languages/dax/find-function-dax.md index 02fa09a31..8aa45c93b 100644 --- a/query-languages/dax/find-function-dax.md +++ b/query-languages/dax/find-function-dax.md @@ -6,35 +6,35 @@ title: "FIND function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the starting position of one text string within another text string. FIND is case-sensitive. - -## Syntax - +Returns the starting position of one text string within another text string. FIND is case-sensitive. + +## Syntax + ```dax -FIND(, [, [][, ]]) +FIND(, [, [][, ]]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`find_text`|The text you want to find. Use double quotes (empty text) to match the first character in `within_text`. | -|`within_text`|The text containing the text you want to find.| -|`start_num`|(optional) The character at which to start the search; if omitted, `start_num` = 1. The first character in `within_text` is character number 1.| -|`NotFoundValue`|(optional, but strongly recommended) The value that should be returned when the operation does not find a matching substring, typically 0, -1, or BLANK(). If not specified, an error is returned.| - +|`within_text`|The text containing the text you want to find.| +|`start_num`|(optional) The character at which to start the search; if omitted, `start_num` = 1. The first character in `within_text` is character number 1.| +|`NotFoundValue`|(optional, but strongly recommended) The value that should be returned when the operation does not find a matching substring, typically 0, -1, or BLANK(). If not specified, an error is returned.| + ## Return value -Number that shows the starting point of the text string you want to find. - +Number that shows the starting point of the text string you want to find. + ## Remarks -- Whereas Microsoft Excel has multiple versions of the FIND function to accommodate single-byte character set (SBCS) and double-byte character set (DBCS) languages, DAX uses Unicode and counts each character the same way; therefore, you do not need to use a different version depending on the character type. - +- Whereas Microsoft Excel has multiple versions of the FIND function to accommodate single-byte character set (SBCS) and double-byte character set (DBCS) languages, DAX uses Unicode and counts each character the same way; therefore, you do not need to use a different version depending on the character type. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - FIND does not support wildcards. To use wildcards, use [SEARCH](search-function-dax.md). - + ## Example The following DAX query finds the position of the first letter of "Bike", in the string that contains the reseller name. If not found, Blank is returned. @@ -42,7 +42,7 @@ The following DAX query finds the position of the first letter of "Bike", in the Keep in mind, FIND is case-sensitive. In this example, if "bike" were used in the `find_text` argument, no results would be returned. Use [SEARCH](search-function-dax.md) for case-insensitive. [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] - + ```dax EVALUATE CALCULATETABLE ( @@ -54,7 +54,7 @@ CALCULATETABLE ( ) ``` -Returns, +Returns, |Reseller |Business Type | Position of Bike | |---------|---------|---------| @@ -71,5 +71,5 @@ Returns, ## Related content -[SEARCH](search-function-dax.md) -[Text functions](text-functions-dax.md) +[SEARCH](search-function-dax.md) +[Text functions](text-functions-dax.md) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 7fa2aabab..fbd07f4c8 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -8,27 +8,26 @@ title: "FIRST function (DAX)" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] Used in visual calculations only. Retrieves a value in the visual matrix from the first element of an axis. - -## Syntax - + +## Syntax + ```dax FIRST ( [, ][, ][, reset] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| - ## Return value The value of `column` from the first element of the axis. - + ## Remarks This function can only be used in a visual calculation. @@ -36,7 +35,7 @@ This function can only be used in a visual calculation. ## Example The following visual calculation returns the sales amount of the first row on ROWS axis, that resets on the lowest parent. - + ```dax FirstInternetSalesAmount = FIRST ( [Sum of SalesAmount], ROWS, LowestParent ) ``` @@ -47,6 +46,6 @@ The screenshot below shows the visual matrix and the visual calculation expressi ## Related content -[LAST](last-function-dax.md) -[PREVIOUS](previous-function-dax.md) +[LAST](last-function-dax.md) +[PREVIOUS](previous-function-dax.md) [NEXT](next-function-dax.md) diff --git a/query-languages/dax/firstdate-function-dax.md b/query-languages/dax/firstdate-function-dax.md index 734cea451..3d6ab1e17 100644 --- a/query-languages/dax/firstdate-function-dax.md +++ b/query-languages/dax/firstdate-function-dax.md @@ -6,50 +6,50 @@ title: "FIRSTDATE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the first date in the current context for the specified column of dates. - -## Syntax - +Returns the first date in the current context for the specified column of dates. + +## Syntax + ```dax -FIRSTDATE() +FIRSTDATE() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| + ## Return value -A table containing a single column and single row with a date value. - +A table containing a single column and single row with a date value. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- When the current context is a single date, the date returned by the FIRSTDATE and LASTDATE functions will be equal. - -- The Return value is a table that contains a single column and single value. Therefore, this function can be used as an argument to any function that requires a table in its arguments. Also, the returned value can be used whenever a date value is required. - +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- When the current context is a single date, the date returned by the FIRSTDATE and LASTDATE functions will be equal. + +- The Return value is a table that contains a single column and single value. Therefore, this function can be used as an argument to any function that requires a table in its arguments. Also, the returned value can be used whenever a date value is required. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that obtains the first date when a sale was made in the Internet sales channel for the current context. - +The following sample formula creates a measure that obtains the first date when a sale was made in the Internet sales channel for the current context. + ```dax -= FIRSTDATE('InternetSales_USD'[SaleDateKey]) += FIRSTDATE('InternetSales_USD'[SaleDateKey]) ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[LASTDATE function](lastdate-function-dax.md) -[FIRSTNONBLANK function](firstnonblank-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[LASTDATE function](lastdate-function-dax.md) +[FIRSTNONBLANK function](firstnonblank-function-dax.md) diff --git a/query-languages/dax/firstnonblank-function-dax.md b/query-languages/dax/firstnonblank-function-dax.md index c562c7cb5..5d4e8c338 100644 --- a/query-languages/dax/firstnonblank-function-dax.md +++ b/query-languages/dax/firstnonblank-function-dax.md @@ -6,40 +6,40 @@ title: "FIRSTNONBLANK function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the first value in the column, ``, filtered by the current context, where the expression is not blank. - -## Syntax - +Returns the first value in the column, ``, filtered by the current context, where the expression is not blank. + +## Syntax + ```dax -FIRSTNONBLANK(,) +FIRSTNONBLANK(,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|A column expression.| -|`expression`|An expression evaluated for blanks for each value of `column`.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|A column expression.| +|`expression`|An expression evaluated for blanks for each value of `column`.| + ## Return value -A table containing a single column and single row with the computed first value. - +A table containing a single column and single row with the computed first value. + ## Remarks -- The `column` argument can be any of the following: - - A reference to any column. - - A table with a single column. - -- A Boolean expression that defines a single-column table . - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- This function is typically used to return the first value of a column for which the expression is not blank. For example, you could get the last value for which there were sales of a product. - +- The `column` argument can be any of the following: + - A reference to any column. + - A table with a single column. + +- A Boolean expression that defines a single-column table . + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- This function is typically used to return the first value of a column for which the expression is not blank. For example, you could get the last value for which there were sales of a product. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Related content -[LASTNONBLANK function](lastnonblank-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[LASTNONBLANK function](lastnonblank-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/firstnonblankvalue-function-dax.md b/query-languages/dax/firstnonblankvalue-function-dax.md index 849bc82b3..62ebf433d 100644 --- a/query-languages/dax/firstnonblankvalue-function-dax.md +++ b/query-languages/dax/firstnonblankvalue-function-dax.md @@ -7,25 +7,25 @@ title: "FIRSTNONBLANKVALUE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] Evaluates an expression filtered by the sorted values of a column and returns the first value of the expression that is not blank. - -## Syntax - + +## Syntax + ```dax FIRSTNONBLANKVALUE(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|A column or an expression that returns a single-column table.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|A column or an expression that returns a single-column table.| |`expression`|An expression evaluated for each value of `column`.| - -## Return value + +## Return value The first non-blank value of `expression` corresponding to the sorted values of `column`. - -## Remarks + +## Remarks - The column argument can be any of the following: - A reference to any column. @@ -33,9 +33,9 @@ The first non-blank value of `expression` corresponding to the sorted values of - This function is different from FIRSTNONBLANK in that the `column` is added to the filter context for the evaluation of `expression`. -- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] +- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Example The following DAX query, @@ -54,7 +54,7 @@ SUMMARIZECOLUMNS( Returns, |DimProduct[Class]|[FNBV]| -|-----------|---------------|----------| +|-----------|---------------|----------| |L|699.0982| |H|13778.24| |M|1000.4375| diff --git a/query-languages/dax/fixed-function-dax.md b/query-languages/dax/fixed-function-dax.md index 6346e53da..94de79fe4 100644 --- a/query-languages/dax/fixed-function-dax.md +++ b/query-languages/dax/fixed-function-dax.md @@ -6,54 +6,54 @@ title: "FIXED function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Rounds a number to the specified number of decimals and returns the result as text. You can specify that the result be returned with or without commas. - -## Syntax - +Rounds a number to the specified number of decimals and returns the result as text. You can specify that the result be returned with or without commas. + +## Syntax + ```dax -FIXED(, , ) +FIXED(, , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number you want to round and convert to text, or a column containing a number.| -|`decimals`|(optional) The number of digits to the right of the decimal point; if omitted, 2.| -|`no_commas`|(optional) A logical value: if 1, do not display commas in the returned text; if 0 or omitted, display commas in the returned text.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number you want to round and convert to text, or a column containing a number.| +|`decimals`|(optional) The number of digits to the right of the decimal point; if omitted, 2.| +|`no_commas`|(optional) A logical value: if 1, do not display commas in the returned text; if 0 or omitted, display commas in the returned text.| + ## Return value -A number represented as text. - +A number represented as text. + ## Remarks -- If the value used for the `decimals` parameter is negative, `number` is rounded to the left of the decimal point. - -- If you omit `decimals`, it is assumed to be 2. - -- If `no_commas` is 0 or is omitted, then the returned text includes commas as usual. - -- The major difference between formatting a cell containing a number by using a command and formatting a number directly with the FIXED function is that FIXED converts its result to text. A number formatted with a command from the formatting menu is still a number. - +- If the value used for the `decimals` parameter is negative, `number` is rounded to the left of the decimal point. + +- If you omit `decimals`, it is assumed to be 2. + +- If `no_commas` is 0 or is omitted, then the returned text includes commas as usual. + +- The major difference between formatting a cell containing a number by using a command and formatting a number directly with the FIXED function is that FIXED converts its result to text. A number formatted with a command from the formatting menu is still a number. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following formula used in a calculated column gets the numeric value for the current row in Product[List Price] and returns it as text with 2 decimal places and no commas. +The following formula used in a calculated column gets the numeric value for the current row in Product[List Price] and returns it as text with 2 decimal places and no commas. [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] - + ```dax -= FIXED([List Price],2,1) += FIXED([List Price],2,1) ``` ## Related content -[CEILING](ceiling-function-dax.md) -[FLOOR](floor-function-dax.md) -[ISO.CEILING](iso-ceiling-function-dax.md) -[MROUND](mround-function-dax.md) -[ROUND](round-function-dax.md) -[ROUNDDOWN](rounddown-function-dax.md) -[ROUNDUP](roundup-function-dax.md) +[CEILING](ceiling-function-dax.md) +[FLOOR](floor-function-dax.md) +[ISO.CEILING](iso-ceiling-function-dax.md) +[MROUND](mround-function-dax.md) +[ROUND](round-function-dax.md) +[ROUNDDOWN](rounddown-function-dax.md) +[ROUNDUP](roundup-function-dax.md) diff --git a/query-languages/dax/floor-function-dax.md b/query-languages/dax/floor-function-dax.md index c2c67b940..7fce7bfc9 100644 --- a/query-languages/dax/floor-function-dax.md +++ b/query-languages/dax/floor-function-dax.md @@ -6,51 +6,51 @@ title: "FLOOR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Rounds a number down, toward zero, to the nearest multiple of significance. - -## Syntax - +Rounds a number down, toward zero, to the nearest multiple of significance. + +## Syntax + ```dax -FLOOR(, ) +FLOOR(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The numeric value you want to round.| -|`significance`|The multiple to which you want to round. The arguments`number` and `significance` must either both be positive, or both be negative.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The numeric value you want to round.| +|`significance`|The multiple to which you want to round. The arguments`number` and `significance` must either both be positive, or both be negative.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- If either argument is nonnumeric, FLOOR returns `#VALUE!` error value. - -- If number and significance have different signs, FLOOR returns the `#NUM!` error value. - -- Regardless of the sign of the number, a value is rounded down when adjusted away from zero. If the number is an exact multiple of significance, no rounding occurs. +- If either argument is nonnumeric, FLOOR returns `#VALUE!` error value. + +- If number and significance have different signs, FLOOR returns the `#NUM!` error value. + +- Regardless of the sign of the number, a value is rounded down when adjusted away from zero. If the number is an exact multiple of significance, no rounding occurs. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following formula takes the values in the [Total Product Cost] column from the table, InternetSales, and rounds down to the nearest multiple of .1. - +The following formula takes the values in the [Total Product Cost] column from the table, InternetSales, and rounds down to the nearest multiple of .1. + ```dax -= FLOOR(InternetSales[Total Product Cost],.1) += FLOOR(InternetSales[Total Product Cost],.1) ``` -The following table shows the expected results for some sample values: - -|Values|Expected Result| -|----------|-------------------| -|10.8423|10.8| -|8.0373|8| -|2.9733|2.9| - +The following table shows the expected results for some sample values: + +|Values|Expected Result| +|----------|-------------------| +|10.8423|10.8| +|8.0373|8| +|2.9733|2.9| + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/format-function-dax.md b/query-languages/dax/format-function-dax.md index a5244d1dc..f2bdb6986 100644 --- a/query-languages/dax/format-function-dax.md +++ b/query-languages/dax/format-function-dax.md @@ -48,26 +48,26 @@ A string containing `value` formatted as defined by `format_string`. #### Format strings ```dax -= FORMAT( 12345.67, "General Number") -= FORMAT( 12345.67, "Currency") -= FORMAT( 12345.67, "Fixed") -= FORMAT( 12345.67, "Standard") -= FORMAT( 12345.67, "Percent") += FORMAT( 12345.67, "General Number") += FORMAT( 12345.67, "Currency") += FORMAT( 12345.67, "Fixed") += FORMAT( 12345.67, "Standard") += FORMAT( 12345.67, "Percent") = FORMAT( 12345.67, "Scientific") ``` -Returns: - -**12345.67** "General Number" displays the number with no formatting. - -**$12,345.67** "Currency" displays the number with your currency locale formatting. The sample here shows the default United States currency formatting. - -**12345.67** "Fixed" displays at least one digit to the left of the decimal separator and two digits to the right of the decimal separator. - -**12,345.67** "Standard" displays at least one digit to the left of the decimal separator and two digits to the right of the decimal separator, and includes thousand separators. The sample here shows the default United States number formatting. - -**1,234,567.00 %** "Percent" displays the number as a percentage (multiplied by 100) with formatting and the percent sign at the right of the number separated by a single space. - +Returns: + +**12345.67** "General Number" displays the number with no formatting. + +**$12,345.67** "Currency" displays the number with your currency locale formatting. The sample here shows the default United States currency formatting. + +**12345.67** "Fixed" displays at least one digit to the left of the decimal separator and two digits to the right of the decimal separator. + +**12,345.67** "Standard" displays at least one digit to the left of the decimal separator and two digits to the right of the decimal separator, and includes thousand separators. The sample here shows the default United States number formatting. + +**1,234,567.00 %** "Percent" displays the number as a percentage (multiplied by 100) with formatting and the percent sign at the right of the number separated by a single space. + **1.23E+04** "Scientific" displays the number in scientific notation with two decimal digits. #### Datetime with optional locale_name @@ -84,23 +84,23 @@ Returns: **15/12/2020 12:30:59** Where day precedes month and time is 24-hour format. -**12/15/2020 12:30:59** Where month precedes day and time is 24-hour format. Because a non-locale dependent format string is specified, the locale is not applied and the non-locale format is returned. +**12/15/2020 12:30:59** Where month precedes day and time is 24-hour format. Because a non-locale dependent format string is specified, the locale is not applied and the non-locale format is returned. ## Predefined numeric formats -The following predefined numeric formats can be specified in the `format_string` argument: - -|`Format`|Description| -|------------------------|---------------| -|`"General Number"`|Displays number with no thousand separators.| -|`"Currency"`|Displays number with thousand separators, if appropriate; displays two digits to the right of the decimal separator. Output is based on system locale settings.| -|`"Fixed"`|Displays at least one digit to the left and two digits to the right of the decimal separator.| -|`"Standard"`|Displays number with thousand separators, at least one digit to the left and two digits to the right of the decimal separator.| -|`"Percent"`|Displays number multiplied by 100 with a percent sign (%) appended immediately to the right; always displays two digits to the right of the decimal separator.| -|`"Scientific"`|Uses standard scientific notation, providing two significant digits.| -|`"Yes/No"`|Displays No if number is 0; otherwise, displays Yes.| -|`"True/False"`|Displays False if number is 0; otherwise, displays True.| -|`"On/Off"`|Displays Off if number is 0; otherwise, displays On.| +The following predefined numeric formats can be specified in the `format_string` argument: + +|`Format`|Description| +|------------------------|---------------| +|`"General Number"`|Displays number with no thousand separators.| +|`"Currency"`|Displays number with thousand separators, if appropriate; displays two digits to the right of the decimal separator. Output is based on system locale settings.| +|`"Fixed"`|Displays at least one digit to the left and two digits to the right of the decimal separator.| +|`"Standard"`|Displays number with thousand separators, at least one digit to the left and two digits to the right of the decimal separator.| +|`"Percent"`|Displays number multiplied by 100 with a percent sign (%) appended immediately to the right; always displays two digits to the right of the decimal separator.| +|`"Scientific"`|Uses standard scientific notation, providing two significant digits.| +|`"Yes/No"`|Displays No if number is 0; otherwise, displays Yes.| +|`"True/False"`|Displays False if number is 0; otherwise, displays True.| +|`"On/Off"`|Displays Off if number is 0; otherwise, displays On.| ## Custom numeric formats @@ -126,7 +126,7 @@ If you include semicolons with nothing between them, the missing section is show ### Custom numeric format characters -The following custom numeric format characters can be specified in the `format_string` argument: +The following custom numeric format characters can be specified in the `format_string` argument: |Character|Description| |:-----|:-----| @@ -151,7 +151,7 @@ The following predefined date/time formats can be specified in the `format_strin |------------------------|---------------| |`"General Date"`|Displays a date and/or time. For example, 3/12/2008 11:07:31 AM. Date display is determined by your application's current culture value.| |`"Long Date"` or `"Medium Date"`|Displays a date according to your current culture's long date format. For example, Wednesday, March 12, 2008.| -|`"Short Date"`|Displays a date using your current culture's short date format. For example, 3/12/2008.| +|`"Short Date"`|Displays a date using your current culture's short date format. For example, 3/12/2008.| |`"Long Time"` or|Displays a time using your current culture's long time format; typically includes hours, minutes, seconds. For example, 11:07:31 AM.| |`"Medium Time"`|Displays a time in 12 hour format. For example, 11:07 AM.| |`"Short Time"`|Displays a time in 24 hour format. For example, 11:07.| @@ -236,4 +236,3 @@ The following examples use the date/time Thursday, June 25, 2020, at 1:23:45 PM. |`"ttttt AMPM"`|13:23:45 PM|13:23:45| |`"mm/dd/yyyy hh:nn:ss AMPM"`|06/25/2020 01:23:45 PM|6.25.2020 01:23:45| - diff --git a/query-languages/dax/fv-function-dax.md b/query-languages/dax/fv-function-dax.md index a391e8156..e315a71d0 100644 --- a/query-languages/dax/fv-function-dax.md +++ b/query-languages/dax/fv-function-dax.md @@ -18,8 +18,8 @@ FV(, , [, [, ]]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`rate`|The interest rate per period.| |`nper`|The total number of payment periods in an annuity.| |`pmt`|The payment made each period; it cannot change over the life of the annuity. Typically, pmt contains principal and interest but no other fees or taxes.| diff --git a/query-languages/dax/gcd-function-dax.md b/query-languages/dax/gcd-function-dax.md index 20378abbd..eeceab031 100644 --- a/query-languages/dax/gcd-function-dax.md +++ b/query-languages/dax/gcd-function-dax.md @@ -6,42 +6,42 @@ title: "GCD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the greatest common divisor of two or more integers. The greatest common divisor is the largest integer that divides both number1 and number2 without a remainder. - -## Syntax - +Returns the greatest common divisor of two or more integers. The greatest common divisor is the largest integer that divides both number1 and number2 without a remainder. + +## Syntax + ```dax -GCD(number1, [number2], ...) +GCD(number1, [number2], ...) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number1, number2, ...`|Number1 is required, subsequent numbers are optional. 1 to 255 values. If any value is not an integer, it is truncated.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number1, number2, ...`|Number1 is required, subsequent numbers are optional. 1 to 255 values. If any value is not an integer, it is truncated.| + ## Return value -The greatest common divisor of two or more integers. - +The greatest common divisor of two or more integers. + ## Remarks -- If any argument is nonnumeric, GCD returns the `#VALUE!` error value. - -- If any argument is less than zero, GCD returns the `#NUM!` error value. - -- One divides any value evenly. - -- A prime number has only itself and one as even divisors. - -- If a parameter to GCD is >=2^53, GCD returns the `#NUM!` error value. +- If any argument is nonnumeric, GCD returns the `#VALUE!` error value. + +- If any argument is less than zero, GCD returns the `#NUM!` error value. + +- One divides any value evenly. + +- A prime number has only itself and one as even divisors. + +- If a parameter to GCD is >=2^53, GCD returns the `#NUM!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + |DAX expression|Description|Result| -|-----------|---------------|----------| -|`= GCD(5, 2)`|Greatest common divisor of 5 and 2.|1| -|`= GCD(24, 36)`|Greatest common divisor of 24 and 36.|12| -|`= GCD(7, 1)`|Greatest common divisor of 7 and 1.|1| +|-----------|---------------|----------| +|`= GCD(5, 2)`|Greatest common divisor of 5 and 2.|1| +|`= GCD(24, 36)`|Greatest common divisor of 24 and 36.|12| +|`= GCD(7, 1)`|Greatest common divisor of 7 and 1.|1| diff --git a/query-languages/dax/generate-function-dax.md b/query-languages/dax/generate-function-dax.md index f30b7520b..e75a19909 100644 --- a/query-languages/dax/generate-function-dax.md +++ b/query-languages/dax/generate-function-dax.md @@ -6,80 +6,80 @@ title: "GENERATE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. - -## Syntax - +Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. + +## Syntax + ```dax -GENERATE(, ) +GENERATE(, ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`table1`|Any DAX expression that returns a table. | -|`table2`|Any DAX expression that returns a table. | +### Parameters + +|Term|Definition| +|--------|--------------| +|`table1`|Any DAX expression that returns a table. | +|`table2`|Any DAX expression that returns a table. | ## Return value -A table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1* - -## Remarks - -- If the evaluation of *table2* for the current row in *table1* returns an empty table, then the result table will not contain the current row from *table1*. This is different than GENERATEALL() where the current row from *table1* will be included in the results and columns corresponding to *table2* will have null values for that row. - -- All column names from *table1* and *table2* must be different or an error is returned. +A table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1* + +## Remarks + +- If the evaluation of *table2* for the current row in *table1* returns an empty table, then the result table will not contain the current row from *table1*. This is different than GENERATEALL() where the current row from *table1* will be included in the results and columns corresponding to *table2* will have null values for that row. + +- All column names from *table1* and *table2* must be different or an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -In the following example the user wants a summary table of the sales by Region and Product Category for the Resellers channel, like the following table: - -|SalesTerritory[SalesTerritoryGroup]|ProductCategory[ProductCategoryName]|[Reseller Sales]| -|-----|-----|-----| -|Europe|Accessories|$ 142,227.27| -|Europe|Bikes|$ 9,970,200.44| -|Europe|Clothing|$ 365,847.63| -|Europe|Components|$ 2,214,440.19| -|North America|Accessories|$ 379,305.15| -|North America|Bikes|$ 52,403,796.85| -|North America|Clothing|$ 1,281,193.26| -|North America|Components|$ 8,882,848.05| -|Pacific|Accessories|$ 12,769.57| -|Pacific|Bikes|$ 710,677.75| -|Pacific|Clothing|$ 22,902.38| -|Pacific|Components|$ 108,549.71| - -The following formula produces the above table: - +In the following example the user wants a summary table of the sales by Region and Product Category for the Resellers channel, like the following table: + +|SalesTerritory[SalesTerritoryGroup]|ProductCategory[ProductCategoryName]|[Reseller Sales]| +|-----|-----|-----| +|Europe|Accessories|$ 142,227.27| +|Europe|Bikes|$ 9,970,200.44| +|Europe|Clothing|$ 365,847.63| +|Europe|Components|$ 2,214,440.19| +|North America|Accessories|$ 379,305.15| +|North America|Bikes|$ 52,403,796.85| +|North America|Clothing|$ 1,281,193.26| +|North America|Components|$ 8,882,848.05| +|Pacific|Accessories|$ 12,769.57| +|Pacific|Bikes|$ 710,677.75| +|Pacific|Clothing|$ 22,902.38| +|Pacific|Components|$ 108,549.71| + +The following formula produces the above table: + ```dax -GENERATE( -SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup]) -,SUMMARIZE(ProductCategory -, [ProductCategoryName] -, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]) -) -) +GENERATE( +SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup]) +,SUMMARIZE(ProductCategory +, [ProductCategoryName] +, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]) +) +) ``` - -1. The first SUMMARIZE statement, `SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])`, produces a table of territory groups, where each row is a territory group, as shown below: - - |SalesTerritory[SalesTerritoryGroup]| - |----------------------------------------| - |North America| - |Europe| - |Pacific| - |NA| - -2. The second SUMMARIZE statement, `SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))`, produces a table of Product Category groups with the Reseller sales for each group, as shown below: - - |ProductCategory[ProductCategoryName]|[Reseller Sales]| - |-----------------------------------------|---------------------| - |Bikes|$ 63,084,675.04| - |Components|$ 11,205,837.96| - |Clothing|$ 1,669,943.27| - |Accessories|$ 534,301.99| - -3. However, when you take the above table and evaluate it under the context of each row from the territory groups table, you obtain different results for each territory. + +1. The first SUMMARIZE statement, `SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])`, produces a table of territory groups, where each row is a territory group, as shown below: + + |SalesTerritory[SalesTerritoryGroup]| + |----------------------------------------| + |North America| + |Europe| + |Pacific| + |NA| + +2. The second SUMMARIZE statement, `SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))`, produces a table of Product Category groups with the Reseller sales for each group, as shown below: + + |ProductCategory[ProductCategoryName]|[Reseller Sales]| + |-----------------------------------------|---------------------| + |Bikes|$ 63,084,675.04| + |Components|$ 11,205,837.96| + |Clothing|$ 1,669,943.27| + |Accessories|$ 534,301.99| + +3. However, when you take the above table and evaluate it under the context of each row from the territory groups table, you obtain different results for each territory. diff --git a/query-languages/dax/generateall-function-dax.md b/query-languages/dax/generateall-function-dax.md index 52fef573d..bfcf3c283 100644 --- a/query-languages/dax/generateall-function-dax.md +++ b/query-languages/dax/generateall-function-dax.md @@ -6,84 +6,84 @@ title: "GENERATEALL function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. - -## Syntax - +Returns a table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1*. + +## Syntax + ```dax -GENERATEALL(, ) +GENERATEALL(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table1`|Any DAX expression that returns a table. | -|`table2`|Any DAX expression that returns a table. | - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table1`|Any DAX expression that returns a table. | +|`table2`|Any DAX expression that returns a table. | + ## Return value -A table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1* - -## Remarks - -- If the evaluation of *table2* for the current row in *table1* returns an empty table, then the current row from *table1* will be included in the results and columns corresponding to *table2* will have null values for that row. This is different than GENERATE() where the current row from *table1* will **not** be included in the results. - -- All column names from *table1* and *table2* must be different or an error is returned. +A table with the Cartesian product between each row in *table1* and the table that results from evaluating *table2* in the context of the current row from *table1* + +## Remarks + +- If the evaluation of *table2* for the current row in *table1* returns an empty table, then the current row from *table1* will be included in the results and columns corresponding to *table2* will have null values for that row. This is different than GENERATE() where the current row from *table1* will **not** be included in the results. + +- All column names from *table1* and *table2* must be different or an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -In the following example, the user wants a summary table of the sales by Region and Product Category for the Resellers channel, like the following table: - -|SalesTerritory[SalesTerritoryGroup]|ProductCategory[ProductCategoryName]|[Reseller Sales]| -|----------------------------------------|-----------------------------------------|---------------------| -|Europe|Accessories|$ 142,227.27| -|Europe|Bikes|$ 9,970,200.44| -|Europe|Clothing|$ 365,847.63| -|Europe|Components|$ 2,214,440.19| -|NA|Accessories|| -|NA|Bikes|| -|NA|Clothing|| -|NA|Components|| -|North America|Accessories|$ 379,305.15| -|North America|Bikes|$ 52,403,796.85| -|North America|Clothing|$ 1,281,193.26| -|North America|Components|$ 8,882,848.05| -|Pacific|Accessories|$ 12,769.57| -|Pacific|Bikes|$ 710,677.75| -|Pacific|Clothing|$ 22,902.38| -|Pacific|Components|$ 108,549.71| - -The following formula produces the above table: - +In the following example, the user wants a summary table of the sales by Region and Product Category for the Resellers channel, like the following table: + +|SalesTerritory[SalesTerritoryGroup]|ProductCategory[ProductCategoryName]|[Reseller Sales]| +|----------------------------------------|-----------------------------------------|---------------------| +|Europe|Accessories|$ 142,227.27| +|Europe|Bikes|$ 9,970,200.44| +|Europe|Clothing|$ 365,847.63| +|Europe|Components|$ 2,214,440.19| +|NA|Accessories|| +|NA|Bikes|| +|NA|Clothing|| +|NA|Components|| +|North America|Accessories|$ 379,305.15| +|North America|Bikes|$ 52,403,796.85| +|North America|Clothing|$ 1,281,193.26| +|North America|Components|$ 8,882,848.05| +|Pacific|Accessories|$ 12,769.57| +|Pacific|Bikes|$ 710,677.75| +|Pacific|Clothing|$ 22,902.38| +|Pacific|Components|$ 108,549.71| + +The following formula produces the above table: + ```dax -GENERATEALL( -SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup]) +GENERATEALL( +SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup]) ,SUMMARIZE(ProductCategory -, [ProductCategoryName] -, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]) -) -) +, [ProductCategoryName] +, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]) +) +) ``` - -1. The first SUMMARIZE produces a table of territory groups, where each row is a territory group, like those listed below: - - |SalesTerritory[SalesTerritoryGroup]| - |----------------------------------------| - |North America| - |Europe| - |Pacific| - |NA| - -2. The second SUMMARIZE produces a table of Product Category groups with the Reseller sales for each group, as shown below: - - |ProductCategory[ProductCategoryName]|[Reseller Sales]| - |-----------------------------------------|---------------------| - |Bikes|$ 63,084,675.04| - |Components|$ 11,205,837.96| - |Clothing|$ 1,669,943.27| - |Accessories|$ 534,301.99| - -3. However, when you take the above table and evaluate the table under the context of each row from the territory groups table, you obtain different results for each territory. + +1. The first SUMMARIZE produces a table of territory groups, where each row is a territory group, like those listed below: + + |SalesTerritory[SalesTerritoryGroup]| + |----------------------------------------| + |North America| + |Europe| + |Pacific| + |NA| + +2. The second SUMMARIZE produces a table of Product Category groups with the Reseller sales for each group, as shown below: + + |ProductCategory[ProductCategoryName]|[Reseller Sales]| + |-----------------------------------------|---------------------| + |Bikes|$ 63,084,675.04| + |Components|$ 11,205,837.96| + |Clothing|$ 1,669,943.27| + |Accessories|$ 534,301.99| + +3. However, when you take the above table and evaluate the table under the context of each row from the territory groups table, you obtain different results for each territory. diff --git a/query-languages/dax/generateseries-function-dax.md b/query-languages/dax/generateseries-function-dax.md index 9073c98ab..0faebb8f8 100644 --- a/query-languages/dax/generateseries-function-dax.md +++ b/query-languages/dax/generateseries-function-dax.md @@ -6,26 +6,26 @@ title: "GENERATESERIES function" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a single column table containing the values of an arithmetic series, that is, a sequence of values in which each differs from the preceding by a constant quantity. The name of the column returned is Value. - -## Syntax - +Returns a single column table containing the values of an arithmetic series, that is, a sequence of values in which each differs from the preceding by a constant quantity. The name of the column returned is Value. + +## Syntax + ```dax GENERATESERIES(, [, ]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`startValue`|The initial value used to generate the sequence.| -|`endValue`|The end value used to generate the sequence.| +|`endValue`|The end value used to generate the sequence.| |`incrementValue`|(Optional) The increment value of the sequence. When not provided, the default value is 1.| - + ## Return value A single column table containing the values of an arithmetic series. The name of the column is Value. - + ## Remarks - When endValue is less than startValue, an empty table is returned. diff --git a/query-languages/dax/geomean-function-dax.md b/query-languages/dax/geomean-function-dax.md index 1c4211e6e..1489c5844 100644 --- a/query-languages/dax/geomean-function-dax.md +++ b/query-languages/dax/geomean-function-dax.md @@ -5,43 +5,43 @@ title: "GEOMEAN function (DAX)" # GEOMEAN [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the geometric mean of the numbers in a column. - -To return the geometric mean of an expression evaluated for each row in a table, use [GEOMEANX function](geomeanx-function-dax.md). - -## Syntax - + +Returns the geometric mean of the numbers in a column. + +To return the geometric mean of an expression evaluated for each row in a table, use [GEOMEANX function](geomeanx-function-dax.md). + +## Syntax + ```dax -GEOMEAN() +GEOMEAN() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column that contains the numbers for which the geometric mean is to be computed.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|The column that contains the numbers for which the geometric mean is to be computed.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- Only the numbers in the column are counted. Blanks, logical values, and text are ignored. - -- GEOMEAN( Table[Column] ) is equivalent to GEOMEANX( Table, Table[Column] ) +- Only the numbers in the column are counted. Blanks, logical values, and text are ignored. + +- GEOMEAN( Table[Column] ) is equivalent to GEOMEANX( Table, Table[Column] ) - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following computes the geometric mean of the Return column in the Investment table: - +The following computes the geometric mean of the Return column in the Investment table: + ```dax -= GEOMEAN( Investment[Return] ) += GEOMEAN( Investment[Return] ) ``` - + ## Related content -[GEOMEANX function](geomeanx-function-dax.md) +[GEOMEANX function](geomeanx-function-dax.md) diff --git a/query-languages/dax/geomeanx-function-dax.md b/query-languages/dax/geomeanx-function-dax.md index 13ceb460f..8b987b658 100644 --- a/query-languages/dax/geomeanx-function-dax.md +++ b/query-languages/dax/geomeanx-function-dax.md @@ -5,44 +5,44 @@ title: "GEOMEANX function (DAX)" # GEOMEANX [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the geometric mean of an expression evaluated for each row in a table. - -To return the geometric mean of the numbers in a column, use [GEOMEAN function](geomean-function-dax.md). - -## Syntax - + +Returns the geometric mean of an expression evaluated for each row in a table. + +To return the geometric mean of the numbers in a column, use [GEOMEAN function](geomean-function-dax.md). + +## Syntax + ```dax -GEOMEANX(
, ) +GEOMEANX(
, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of the table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- The GEOMEANX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers for which you want to compute the geometric mean, or an expression that evaluates to a column. - -- Only the numbers in the column are counted. Blanks, logical values, and text are ignored. +- The GEOMEANX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers for which you want to compute the geometric mean, or an expression that evaluates to a column. + +- Only the numbers in the column are counted. Blanks, logical values, and text are ignored. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following computes the geometric mean of the ReturnPct column in the Investments table: - +The following computes the geometric mean of the ReturnPct column in the Investments table: + ```dax -= GEOMEANX( Investments, Investments[ReturnPct] + 1 ) += GEOMEANX( Investments, Investments[ReturnPct] + 1 ) ``` - + ## Related content -[GEOMEAN function](geomean-function-dax.md) +[GEOMEAN function](geomean-function-dax.md) diff --git a/query-languages/dax/groupby-function-dax.md b/query-languages/dax/groupby-function-dax.md index a4250c954..a55ad806d 100644 --- a/query-languages/dax/groupby-function-dax.md +++ b/query-languages/dax/groupby-function-dax.md @@ -5,47 +5,47 @@ title: "GROUPBY function (DAX)" # GROUPBY [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] - + The GROUPBY function is similar to the [SUMMARIZE](summarize-function-dax.md) function. However, GROUPBY does not do an implicit [CALCULATE](calculate-function-dax.md) for any extension columns that it adds. GROUPBY permits a new function, [CURRENTGROUP](currentgroup-function-dax.md), to be used inside aggregation functions in the extension columns that it adds. GROUPBY is used to perform multiple aggregations in a single table scan. - -## Syntax - + +## Syntax + ```dax GROUPBY (
[, [, [, …]]] [, , [, , [, …]]]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|Any DAX expression that returns a table of data.| -|`groupBy_columnName`|The name of an existing column in the table (or in a related table,) by which the data is to be grouped. This parameter cannot be an expression.| -|`name`|The name given to a new column that is being added to the list of GroupBy columns, enclosed in double quotes.| -|`expression`|One of the X aggregation functions with the first argument being CURRENTGROUP(). See With CURRENTGROUP section below for the full list of supported X aggregation functions.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|Any DAX expression that returns a table of data.| +|`groupBy_columnName`|The name of an existing column in the table (or in a related table,) by which the data is to be grouped. This parameter cannot be an expression.| +|`name`|The name given to a new column that is being added to the list of GroupBy columns, enclosed in double quotes.| +|`expression`|One of the X aggregation functions with the first argument being CURRENTGROUP(). See With CURRENTGROUP section below for the full list of supported X aggregation functions.| + ## Return value -A table with the selected columns for the groupBy_columnName arguments and the extension columns designated by the name arguments. - +A table with the selected columns for the groupBy_columnName arguments and the extension columns designated by the name arguments. + ## Remarks -- The GROUPBY function does the following: - - 1. Start with the specified table (and all related tables in the "to-one" direction). - - 2. Create a grouping using all of the GroupBy columns (which are required to exist in the table from step #1.). - - 3. Each group is one row in the result, but represents a set of rows in the original table. - - 4. For each group, evaluate the extension columns being added. Unlike the SUMMARIZE function, an implied CALCULATE is not performed, and the group isn't placed into the filter context. - -- Each column for which you define a name must have a corresponding expression; otherwise, an error is returned. The first argument, name, defines the name of the column in the results. The second argument, expression, defines the calculation performed to obtain the value for each row in that column. - -- `groupBy_columnName` must be either in table or in a related table. - -- Each name must be enclosed in double quotation marks. - -- The function groups a selected set of rows into a set of summary rows by the values of one or more groupBy_columnName columns. One row is returned for each group. +- The GROUPBY function does the following: + + 1. Start with the specified table (and all related tables in the "to-one" direction). + + 2. Create a grouping using all of the GroupBy columns (which are required to exist in the table from step #1.). + + 3. Each group is one row in the result, but represents a set of rows in the original table. + + 4. For each group, evaluate the extension columns being added. Unlike the SUMMARIZE function, an implied CALCULATE is not performed, and the group isn't placed into the filter context. + +- Each column for which you define a name must have a corresponding expression; otherwise, an error is returned. The first argument, name, defines the name of the column in the results. The second argument, expression, defines the calculation performed to obtain the value for each row in that column. + +- `groupBy_columnName` must be either in table or in a related table. + +- Each name must be enclosed in double quotation marks. + +- The function groups a selected set of rows into a set of summary rows by the values of one or more groupBy_columnName columns. One row is returned for each group. - GROUPBY is primarily used to perform aggregations over intermediate results from DAX table expressions. For efficient aggregations over physical tables in the model, consider using [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) or [SUMMARIZE](summarize-function-dax.md) function. @@ -53,30 +53,30 @@ A table with the selected columns for the groupBy_columnName arguments and the e ## With CURRENTGROUP -[CURRENTGROUP](currentgroup-function-dax.md) can only be used in an expression that defines an extension column within the GROUPBY function. In-effect, [CURRENTGROUP](currentgroup-function-dax.md) returns a set of rows from the table argument of GROUPBY that belong to the current row of the GROUPBY result. The [CURRENTGROUP](currentgroup-function-dax.md) function takes no arguments and is only supported as the first argument to one of the following aggregation functions: [AVERAGEX](averagex-function-dax.md), [COUNTAX](countax-function-dax.md), [COUNTX](countx-function-dax.md), [GEOMEANX](geomeanx-function-dax.md), [MAXX](maxx-function-dax.md), [MINX](minx-function-dax.md), [PRODUCTX](productx-function-dax.md), [STDEVX.S](stdevx-s-function-dax.md), [STDEVX.P](stdevx-s-function-dax.md), [SUMX](sumx-function-dax.md), [VARX.S](varx-s-function-dax.md), [VARX.P](varx-p-function-dax.md). - +[CURRENTGROUP](currentgroup-function-dax.md) can only be used in an expression that defines an extension column within the GROUPBY function. In-effect, [CURRENTGROUP](currentgroup-function-dax.md) returns a set of rows from the table argument of GROUPBY that belong to the current row of the GROUPBY result. The [CURRENTGROUP](currentgroup-function-dax.md) function takes no arguments and is only supported as the first argument to one of the following aggregation functions: [AVERAGEX](averagex-function-dax.md), [COUNTAX](countax-function-dax.md), [COUNTX](countx-function-dax.md), [GEOMEANX](geomeanx-function-dax.md), [MAXX](maxx-function-dax.md), [MINX](minx-function-dax.md), [PRODUCTX](productx-function-dax.md), [STDEVX.S](stdevx-s-function-dax.md), [STDEVX.P](stdevx-s-function-dax.md), [SUMX](sumx-function-dax.md), [VARX.S](varx-s-function-dax.md), [VARX.P](varx-p-function-dax.md). + ### Example The following example first calculates the total sales grouped by country and product category over physical tables by using the [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) function. It then uses the GROUPBY function to scan the intermediate result from the first step to find the maximum sales in each country across the product categories. - + ```dax -DEFINE -VAR SalesByCountryAndCategory = -SUMMARIZECOLUMNS( +DEFINE +VAR SalesByCountryAndCategory = +SUMMARIZECOLUMNS( Geography[Country], Product[Category], -"Total Sales", SUMX(Sales, Sales[Price] * Sales[Qty]) -) - +"Total Sales", SUMX(Sales, Sales[Price] * Sales[Qty]) +) + EVALUATE -GROUPBY( +GROUPBY( SalesByCountryAndCategory, Geography[Country], -"Max Sales", MAXX(CURRENTGROUP(), [Total Sales]) -) +"Max Sales", MAXX(CURRENTGROUP(), [Total Sales]) +) ``` - + ## Related content -[SUMMARIZE function](summarize-function-dax.md) -[SUMMARIZECOLUMNS function](summarizecolumns-function-dax.md) +[SUMMARIZE function](summarize-function-dax.md) +[SUMMARIZECOLUMNS function](summarizecolumns-function-dax.md) diff --git a/query-languages/dax/hasonefilter-function-dax.md b/query-languages/dax/hasonefilter-function-dax.md index 149c2db0f..22615f5c6 100644 --- a/query-languages/dax/hasonefilter-function-dax.md +++ b/query-languages/dax/hasonefilter-function-dax.md @@ -6,34 +6,34 @@ title: "HASONEFILTER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns `TRUE` when the number of directly filtered values on `columnName` is one; otherwise returns `FALSE`. - -## Syntax - +Returns `TRUE` when the number of directly filtered values on `columnName` is one; otherwise returns `FALSE`. + +## Syntax + ```dax -HASONEFILTER() +HASONEFILTER() ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`columnName`| The name of an existing column, using standard DAX syntax. It cannot be an expression. | - +### Parameters + +|Term|Definition| +|--------|--------------| +|`columnName`| The name of an existing column, using standard DAX syntax. It cannot be an expression. | + ## Return value -`TRUE` when the number of directly filtered values on `columnName` is one; otherwise returns `FALSE`. - -## Remarks - -- This function is similar to HASONEVALUE() with the difference that HASONEVALUE() works based on cross-filters while HASONEFILTER() works by a direct filter. +`TRUE` when the number of directly filtered values on `columnName` is one; otherwise returns `FALSE`. + +## Remarks + +- This function is similar to HASONEVALUE() with the difference that HASONEVALUE() works based on cross-filters while HASONEFILTER() works by a direct filter. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example shows how to use HASONEFILTER() to return the filter for ResellerSales_USD[ProductKey]) if there is one filter, or to return BLANK if there are no filters or more than one filter on ResellerSales_USD[ProductKey]). - +The following example shows how to use HASONEFILTER() to return the filter for ResellerSales_USD[ProductKey]) if there is one filter, or to return BLANK if there are no filters or more than one filter on ResellerSales_USD[ProductKey]). + ```dax -= IF(HASONEFILTER(ResellerSales_USD[ProductKey]),FILTERS(ResellerSales_USD[ProductKey]),BLANK()) += IF(HASONEFILTER(ResellerSales_USD[ProductKey]),FILTERS(ResellerSales_USD[ProductKey]),BLANK()) ``` diff --git a/query-languages/dax/hasonevalue-function-dax.md b/query-languages/dax/hasonevalue-function-dax.md index af769854b..caa520ff1 100644 --- a/query-languages/dax/hasonevalue-function-dax.md +++ b/query-languages/dax/hasonevalue-function-dax.md @@ -6,34 +6,34 @@ title: "HASONEVALUE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns `TRUE` when the context for `columnName` has been filtered down to one distinct value only. Otherwise is `FALSE`. - -## Syntax - -```html -HASONEVALUE() +Returns `TRUE` when the context for `columnName` has been filtered down to one distinct value only. Otherwise is `FALSE`. + +## Syntax + +```html +HASONEVALUE() ``` - -### Parameters -|Term|Definition| -|--------|--------------| -| columnName | The name of an existing column, using standard DAX syntax. It cannot be an expression. | +### Parameters + +|Term|Definition| +|--------|--------------| +| columnName | The name of an existing column, using standard DAX syntax. It cannot be an expression. | ## Return value -`TRUE` when the context for `columnName` has been filtered down to one distinct value only. Otherwise is `FALSE`. - -## Remarks - -- An equivalent expression for HASONEVALUE() is `COUNTROWS(VALUES()) = 1`. +`TRUE` when the context for `columnName` has been filtered down to one distinct value only. Otherwise is `FALSE`. + +## Remarks + +- An equivalent expression for HASONEVALUE() is `COUNTROWS(VALUES()) = 1`. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example The following measure formula verifies if the context is being sliced by one value in order to estimate a percentage against a predefined scenario; in this case you want to compare Reseller Sales against sales in 2007, then you need to know if the context is filtered by single years. Also, if the comparison is meaningless you want to return BLANK. - + ```dax -= IF(HASONEVALUE(DateTime[CalendarYear]),SUM(ResellerSales_USD[SalesAmount_USD])/CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]),DateTime[CalendarYear]=2007),BLANK()) += IF(HASONEVALUE(DateTime[CalendarYear]),SUM(ResellerSales_USD[SalesAmount_USD])/CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]),DateTime[CalendarYear]=2007),BLANK()) ``` diff --git a/query-languages/dax/hour-function-dax.md b/query-languages/dax/hour-function-dax.md index c9033c631..b3c287334 100644 --- a/query-languages/dax/hour-function-dax.md +++ b/query-languages/dax/hour-function-dax.md @@ -6,49 +6,49 @@ title: "HOUR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.). - -## Syntax - +Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.). + +## Syntax + ```dax -HOUR() +HOUR() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`datetime`|A `datetime` value, such as 16:48:00 or 4:48 PM.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`datetime`|A `datetime` value, such as 16:48:00 or 4:48 PM.| + ## Return value -An integer number from 0 to 23. +An integer number from 0 to 23. ## Remarks -- The HOUR function takes as argument the time that contains the hour you want to find. You can supply the time by using a date/time function, an expression that returns a `datetime`, or by typing the value directly in one of the accepted time formats. Times can also be entered as any accepted text representation of a time. - -- When the `datetime` argument is a text representation of the date and time, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator and any input text using colons as time separators will parse correctly. Review your locale settings to understand your results. - +- The HOUR function takes as argument the time that contains the hour you want to find. You can supply the time by using a date/time function, an expression that returns a `datetime`, or by typing the value directly in one of the accepted time formats. Times can also be entered as any accepted text representation of a time. + +- When the `datetime` argument is a text representation of the date and time, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator and any input text using colons as time separators will parse correctly. Review your locale settings to understand your results. + ## Example 1 -The following example returns the hour from the **TransactionTime** column of a table named **Orders**. - +The following example returns the hour from the **TransactionTime** column of a table named **Orders**. + ```dax -= HOUR('Orders'[TransactionTime]) += HOUR('Orders'[TransactionTime]) ``` - + ## Example 2 -The following example returns 15, meaning the hour corresponding to 3 PM in a 24-hour clock. The text value is automatically parsed and converted to a date/time value. - +The following example returns 15, meaning the hour corresponding to 3 PM in a 24-hour clock. The text value is automatically parsed and converted to a date/time value. + ```dax -= HOUR("March 3, 2008 3:00 PM") += HOUR("March 3, 2008 3:00 PM") ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[MINUTE function](minute-function-dax.md) -[YEAR function](year-function-dax.md) -[SECOND function](second-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[MINUTE function](minute-function-dax.md) +[YEAR function](year-function-dax.md) +[SECOND function](second-function-dax.md) diff --git a/query-languages/dax/if-eager-function-dax.md b/query-languages/dax/if-eager-function-dax.md index 87f0a8ecf..8d0e09d9c 100644 --- a/query-languages/dax/if-eager-function-dax.md +++ b/query-languages/dax/if-eager-function-dax.md @@ -18,7 +18,7 @@ IF.EAGER(, [, ]) |Term|Definition| |--------|--------------| -|`logical_test`|Any value or expression that can be evaluated to `TRUE` or `FALSE`.| +|`logical_test`|Any value or expression that can be evaluated to `TRUE` or `FALSE`.| |`value_if_true`|The value that's returned if the logical test is `TRUE`.| |`value_if_false`|(Optional) The value that's returned if the logical test is `FALSE`. If omitted, `BLANK` is returned.| @@ -35,7 +35,7 @@ Either `value_if_true`, `value_if_false`, or `BLANK`. - IF.EAGER has the same functional behavior as the IF function, but performance may differ due to differences in execution plans. `IF.EAGER(, , )` has the same execution plan as the following DAX expression: ```dax - + VAR _value_if_true = VAR _value_if_false = RETURN @@ -50,5 +50,5 @@ See [IF Examples](if-function-dax.md#examples). ## Related content -[IF function](if-function-dax.md) -[Logical functions](logical-functions-dax.md) +[IF function](if-function-dax.md) +[Logical functions](logical-functions-dax.md) diff --git a/query-languages/dax/if-function-dax.md b/query-languages/dax/if-function-dax.md index 303fcd197..984ba18a9 100644 --- a/query-languages/dax/if-function-dax.md +++ b/query-languages/dax/if-function-dax.md @@ -18,7 +18,7 @@ IF(, [, ]) |Term|Definition| |--------|--------------| -|`logical_test`|Any value or expression that can be evaluated to `TRUE` or `FALSE`.| +|`logical_test`|Any value or expression that can be evaluated to `TRUE` or `FALSE`.| |`value_if_true`|The value that's returned if the logical test is `TRUE`.| |`value_if_false`|(Optional) The value that's returned if the logical test is `FALSE`. If omitted, BLANK is returned.| @@ -81,6 +81,6 @@ IF( ## Related content -[IF.EAGER function](if-eager-function-dax.md) -[SWITCH function (DAX)](switch-function-dax.md) -[Logical functions](logical-functions-dax.md) +[IF.EAGER function](if-eager-function-dax.md) +[SWITCH function (DAX)](switch-function-dax.md) +[Logical functions](logical-functions-dax.md) diff --git a/query-languages/dax/iferror-function-dax.md b/query-languages/dax/iferror-function-dax.md index 53f70c2d3..b3c358a29 100644 --- a/query-languages/dax/iferror-function-dax.md +++ b/query-languages/dax/iferror-function-dax.md @@ -6,36 +6,36 @@ title: "IFERROR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Evaluates an expression and returns a specified value if the expression returns an error; otherwise returns the value of the expression itself. - -## Syntax - +Evaluates an expression and returns a specified value if the expression returns an error; otherwise returns the value of the expression itself. + +## Syntax + ```dax -IFERROR(value, value_if_error) +IFERROR(value, value_if_error) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`value`|Any value or expression.| -|`value_if_error`|Any value or expression.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`value`|Any value or expression.| +|`value_if_error`|Any value or expression.| + ## Return value -A scalar of the same type as `value` - +A scalar of the same type as `value` + ## Remarks -- You can use the IFERROR function to trap and handle errors in an expression. - -- If `value` or `value_if_error` is an empty cell, IFERROR treats it as an empty string value (""). - -- The IFERROR function is based on the IF function, and uses the same error messages, but has fewer arguments. The relationship between the IFERROR function and the IF function as follows: - - `IFERROR(A,B) := IF(ISERROR(A), B, A)` - - Values that are returned for A and B must be of the same data type; therefore, the column or expression used for `value` and the value returned for `value_if_error` must be the same data type. +- You can use the IFERROR function to trap and handle errors in an expression. + +- If `value` or `value_if_error` is an empty cell, IFERROR treats it as an empty string value (""). + +- The IFERROR function is based on the IF function, and uses the same error messages, but has fewer arguments. The relationship between the IFERROR function and the IF function as follows: + + `IFERROR(A,B) := IF(ISERROR(A), B, A)` + + Values that are returned for A and B must be of the same data type; therefore, the column or expression used for `value` and the value returned for `value_if_error` must be the same data type. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] @@ -43,12 +43,12 @@ A scalar of the same type as `value` ## Example -The following example returns 9999 if the expression 25/0 evaluates to an error. If the expression returns a value other than error, that value is passed to the invoking expression. - +The following example returns 9999 if the expression 25/0 evaluates to an error. If the expression returns a value other than error, that value is passed to the invoking expression. + ```dax -= IFERROR(25/0,9999) += IFERROR(25/0,9999) ``` - + ## Related content -[Logical functions](logical-functions-dax.md) +[Logical functions](logical-functions-dax.md) diff --git a/query-languages/dax/ignore-function-dax.md b/query-languages/dax/ignore-function-dax.md index 3870587ab..b31f2149c 100644 --- a/query-languages/dax/ignore-function-dax.md +++ b/query-languages/dax/ignore-function-dax.md @@ -7,32 +7,32 @@ title: "IGNORE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Modifies the behavior of the [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) function by omitting specific expressions from the BLANK/NULL evaluation. Rows for which all expressions not using IGNORE return BLANK/NULL will be excluded independent of whether the expressions which do use IGNORE evaluate to BLANK/NULL or not. This function can only be used within a [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression. - -## Syntax - + +## Syntax + ```dax IGNORE() ``` With SUMMARIZECOLUMNS, - + ```dax SUMMARIZECOLUMNS([, < groupBy_columnName >]…, []…[, , IGNORE(…)]…) -``` - -### Parameters +``` + +### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`expression`|Any DAX expression that returns a single value (not a table).| ## Return value The function does not return a value. - -## Remarks -IGNORE can only be used as an expression argument to [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md). +## Remarks + +IGNORE can only be used as an expression argument to [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md). ## Example diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index fc60e05b9..497383157 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -8,30 +8,30 @@ title: "INDEX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns a row at an absolute position, specified by the position parameter, within the specified partition, sorted by the specified order. If the current partition can't be deduced to a single partition, multiple rows may be returned. - -## Syntax - + +## Syntax + ```dax INDEX([, or ][, ][, ][, ][, ][, ] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`position`|The absolute position (1-based) from which to obtain the data:
- `position` is positive: 1 is the first row, 2 is the second row, etc.
- `position` is negative: -1 is the last row, -2 is the second last row, etc.
When `position` is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| |`relation`|(Optional) A table expression from which the output is returned.
If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to `ALLSELECTED()` of all columns in `orderBy` and `partitionBy`. |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A `PARTITIONBY()` clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | -|`matchBy`|(Optional) A `MATCHBY()` clause containing the columns that define how to match data and identify the current row. | +|`matchBy`|(Optional) A `MATCHBY()` clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value A row at an absolute position. - + ## Remarks Each `partitionBy` and `matchBy` column must have a corresponding outer value to help define the "current partition" on which to operate, with the following behavior: @@ -47,13 +47,13 @@ If `matchBy` is present, INDEX will try to use `matchBy` and `partitionBy` colum If `matchBy` is not present and the columns specified within `orderBy` and `partitionBy` cannot uniquely identify every row in `relation`: - INDEX will try to find the least number of additional columns required to uniquely identify every row. -- If such columns can be found, INDEX will automatically append these new columns to `orderBy`, and each partition is sorted using this new set of OrderBy columns. +- If such columns can be found, INDEX will automatically append these new columns to `orderBy`, and each partition is sorted using this new set of OrderBy columns. - If such columns cannot be found, an error is returned. An empty table is returned if: - The corresponding outer value of a PartitionBy column does not exist within `relation`. -- The `position` value refers to a position that does not exist within the partition. +- The `position` value refers to a position that does not exist within the partition. If INDEX is used within a calculated column defined on the same table as `relation` and `orderBy` is omitted, an error is returned. @@ -62,7 +62,7 @@ If INDEX is used within a calculated column defined on the same table as `relati ## Example 1 - calculated column The following DAX query: - + ```dax EVALUATE INDEX(1, ALL(DimDate[CalendarYear])) ``` @@ -146,9 +146,9 @@ The screenshot below shows the visual matrix and the first visual calculation ex ## Related content -[OFFSET](offset-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) -[RANK](rank-function-dax.md) +[OFFSET](offset-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) diff --git a/query-languages/dax/index.yml b/query-languages/dax/index.yml index 0ea5ef215..a35b2e4cd 100644 --- a/query-languages/dax/index.yml +++ b/query-languages/dax/index.yml @@ -31,7 +31,7 @@ landingContent: links: - text: New DAX functions url: new-dax-functions.md - + # Card - title: Learn about DAX linkLists: @@ -47,7 +47,7 @@ landingContent: links: - text: Use DAX in Power BI Desktop url: /training/paths/dax-power-bi/ - + # Card - title: Understand diff --git a/query-languages/dax/information-functions-dax.md b/query-languages/dax/information-functions-dax.md index a743eda44..fd5236382 100644 --- a/query-languages/dax/information-functions-dax.md +++ b/query-languages/dax/information-functions-dax.md @@ -4,9 +4,9 @@ title: "Information functions (DAX)" --- # Information functions -DAX information functions look at the cell or row that is provided as an argument and tells you whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value that you reference contains an error. - -## In this category +DAX information functions look at the cell or row that is provided as an argument and tells you whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value that you reference contains an error. + +## In this category |Function |Description | |---------|---------| diff --git a/query-languages/dax/int-function-dax.md b/query-languages/dax/int-function-dax.md index cbcb46b57..42ea54aa6 100644 --- a/query-languages/dax/int-function-dax.md +++ b/query-languages/dax/int-function-dax.md @@ -6,40 +6,40 @@ title: "INT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Rounds a number down to the nearest integer. - -## Syntax - +Rounds a number down to the nearest integer. + +## Syntax + ```dax -INT() +INT() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number you want to round down to an integer| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number you want to round down to an integer| + ## Return value -A whole number. - +A whole number. + ## Remarks -TRUNC and INT are similar in that both return integers. TRUNC removes the fractional part of the number. INT rounds numbers down to the nearest integer based on the value of the fractional part of the number. INT and TRUNC are different only when using negative numbers: `TRUNC(-4.3)` returns -4, but `INT(-4.3)` returns -5 because -5 is the lower number. - +TRUNC and INT are similar in that both return integers. TRUNC removes the fractional part of the number. INT rounds numbers down to the nearest integer based on the value of the fractional part of the number. INT and TRUNC are different only when using negative numbers: `TRUNC(-4.3)` returns -4, but `INT(-4.3)` returns -5 because -5 is the lower number. + ## Example -The following expression rounds the value to 1. If you use the ROUND function, the result would be 2. - +The following expression rounds the value to 1. If you use the ROUND function, the result would be 2. + ```dax -= INT(1.5) += INT(1.5) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[ROUND function](round-function-dax.md) -[ROUNDUP function](roundup-function-dax.md) -[ROUNDDOWN function](rounddown-function-dax.md) -[MROUND function](mround-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[ROUND function](round-function-dax.md) +[ROUNDUP function](roundup-function-dax.md) +[ROUNDDOWN function](rounddown-function-dax.md) +[MROUND function](mround-function-dax.md) diff --git a/query-languages/dax/intersect-function-dax.md b/query-languages/dax/intersect-function-dax.md index e987c7748..86e049cd5 100644 --- a/query-languages/dax/intersect-function-dax.md +++ b/query-languages/dax/intersect-function-dax.md @@ -6,85 +6,85 @@ title: "INTERSECT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the row intersection of two tables, retaining duplicates. - -## Syntax - +Returns the row intersection of two tables, retaining duplicates. + +## Syntax + ```dax -INTERSECT(, ) +INTERSECT(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Table_expression`|Any DAX expression that returns a table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Table_expression`|Any DAX expression that returns a table.| + ## Return value -A table that contains all the rows in table_expression1 that are also in table_expression2 - -## Exceptions - +A table that contains all the rows in table_expression1 that are also in table_expression2 + +## Exceptions + ## Remarks -- Intersect is not commutative. In general, Intersect(T1, T2) will have a different result set than Intersect(T2, T1). - -- Duplicate rows are retained. If a row appears in table_expression1 and table_expression2, it and all duplicates in table_expression_1 are included in the result set. - -- The column names will match the column names in table_expression1. - -- The returned table has lineage based on the columns in table_expression1 , regardless of the lineage of the columns in the second table. For example, if the first column of first table_expression has lineage to the base column C1 in the model, the intersect will reduce the rows based on the intersect on first column of second table_expression and keep the lineage on base column C1 intact. - -- Columns are compared based on positioning, and data comparison with no type coercion. - -- The returned table does not include columns from tables related to table_expression1. +- Intersect is not commutative. In general, Intersect(T1, T2) will have a different result set than Intersect(T2, T1). + +- Duplicate rows are retained. If a row appears in table_expression1 and table_expression2, it and all duplicates in table_expression_1 are included in the result set. + +- The column names will match the column names in table_expression1. + +- The returned table has lineage based on the columns in table_expression1 , regardless of the lineage of the columns in the second table. For example, if the first column of first table_expression has lineage to the base column C1 in the model, the intersect will reduce the rows based on the intersect on first column of second table_expression and keep the lineage on base column C1 intact. + +- Columns are compared based on positioning, and data comparison with no type coercion. + +- The returned table does not include columns from tables related to table_expression1. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -States1 - -|State| -|---------| -|A| -|A| -|B| -|B| -|B| -|C| -|D| -|D| - -States2 - -|State| -|---------| -|B| -|C| -|D| -|D| -|D| -|E| - -Intersect(States1, States2) - -|State| -|---------| -|B| -|B| -|B| -|C| -|D| -|D| - -Intersect(States2, States1) - -|State| -|---------| -|B| -|C| -|D| -|D| -|D| +States1 + +|State| +|---------| +|A| +|A| +|B| +|B| +|B| +|C| +|D| +|D| + +States2 + +|State| +|---------| +|B| +|C| +|D| +|D| +|D| +|E| + +Intersect(States1, States2) + +|State| +|---------| +|B| +|B| +|B| +|C| +|D| +|D| + +Intersect(States2, States1) + +|State| +|---------| +|B| +|C| +|D| +|D| +|D| diff --git a/query-languages/dax/intrate-function-dax.md b/query-languages/dax/intrate-function-dax.md index 6b72932e2..4f3e54fc5 100644 --- a/query-languages/dax/intrate-function-dax.md +++ b/query-languages/dax/intrate-function-dax.md @@ -17,8 +17,8 @@ INTRATE(, , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`investment`|The amount invested in the security.| diff --git a/query-languages/dax/ipmt-function-dax.md b/query-languages/dax/ipmt-function-dax.md index 16bf3cf0f..c31bdfcd8 100644 --- a/query-languages/dax/ipmt-function-dax.md +++ b/query-languages/dax/ipmt-function-dax.md @@ -17,8 +17,8 @@ IPMT(, , , [, [, ]]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`rate`|The interest rate per period.| |`per`|The period for which you want to find the interest. Must be between 1 and nper (inclusive).| |`nper`|The total number of payment periods in an annuity.| diff --git a/query-languages/dax/isafter-function-dax.md b/query-languages/dax/isafter-function-dax.md index 6790b7db6..e3ea87705 100644 --- a/query-languages/dax/isafter-function-dax.md +++ b/query-languages/dax/isafter-function-dax.md @@ -5,27 +5,27 @@ title: "ISAFTER function (DAX)" # ISAFTER [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -A boolean function that emulates the behavior of a 'Start At' clause and returns true for a row that meets all of the condition parameters. - -Based on the sort order, the first parameter is compared with the second parameter. If the sort order is ascending, the comparison to be done is first parameter greater than the second parameter. If the sort order is descending, the comparison to be done is second parameter less than the first parameter. - -## Syntax - -```DAX -ISAFTER(, [, sort_order [, , [, sort_order]]…) + +A boolean function that emulates the behavior of a 'Start At' clause and returns true for a row that meets all of the condition parameters. + +Based on the sort order, the first parameter is compared with the second parameter. If the sort order is ascending, the comparison to be done is first parameter greater than the second parameter. If the sort order is descending, the comparison to be done is second parameter less than the first parameter. + +## Syntax + +```DAX +ISAFTER(, [, sort_order [, , [, sort_order]]…) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`scalar expression`|Any expression that returns a scalar value like a column reference or integer or string value. Typically the first parameter is a column reference and the second parameter is a scalar value.| -|`sort order`|(optional) The order in which the column is sorted. Can be ascending (ASC) or descending (DEC). By default the sort order is ascending.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`scalar expression`|Any expression that returns a scalar value like a column reference or integer or string value. Typically the first parameter is a column reference and the second parameter is a scalar value.| +|`sort order`|(optional) The order in which the column is sorted. Can be ascending (ASC) or descending (DEC). By default the sort order is ascending.| + ## Return value -True or false. +True or false. ## Remarks @@ -35,15 +35,15 @@ This function is similar to [ISONORAFTER](isonorafter-function-dax.md). The diff ## Example -Table name: 'Info' - -|Country/Region|State|Count|Total| -|-----------|---------|---------|---------| -|IND|JK|20|800| -|IND|MH|25|1000| -|IND|WB|10|900| -|USA|CA|5|500| -|USA|WA|10|900| +Table name: 'Info' + +|Country/Region|State|Count|Total| +|-----------|---------|---------|---------| +|IND|JK|20|800| +|IND|MH|25|1000| +|IND|WB|10|900| +|USA|CA|5|500| +|USA|WA|10|900| The following expression: @@ -58,11 +58,11 @@ FILTER ( Returns: -|Country|State|Count|Total| -|-----------|---------|---------|---------| -|IND|WB|10|900| -|USA|CA|5|500| -|USA|WA|10|900| +|Country|State|Count|Total| +|-----------|---------|---------|---------| +|IND|WB|10|900| +|USA|CA|5|500| +|USA|WA|10|900| ## Related content diff --git a/query-languages/dax/isatlevel-function-dax.md b/query-languages/dax/isatlevel-function-dax.md index 178299971..cadabb480 100644 --- a/query-languages/dax/isatlevel-function-dax.md +++ b/query-languages/dax/isatlevel-function-dax.md @@ -57,12 +57,11 @@ The screenshot below shows the matrix with the five visual calculations. ## See also -[EXPAND](expand-function-dax.md) -[EXPANDALL](expandall-function-dax.md) -[COLLAPSE](collapse-function-dax.md) -[COLLAPSEALL](collapseall-function-dax.md) -[ISINSCOPE](isinscope-function-dax.md) -[ISFILTERED](isfiltered-function-dax.md) -[HASONEVALUE](hasonevalue-function-dax.md) - +[EXPAND](expand-function-dax.md) +[EXPANDALL](expandall-function-dax.md) +[COLLAPSE](collapse-function-dax.md) +[COLLAPSEALL](collapseall-function-dax.md) +[ISINSCOPE](isinscope-function-dax.md) +[ISFILTERED](isfiltered-function-dax.md) +[HASONEVALUE](hasonevalue-function-dax.md) diff --git a/query-languages/dax/isblank-function-dax.md b/query-languages/dax/isblank-function-dax.md index c76871fd7..66ab4ebd4 100644 --- a/query-languages/dax/isblank-function-dax.md +++ b/query-languages/dax/isblank-function-dax.md @@ -6,23 +6,23 @@ title: "ISBLANK function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether a value is blank, and returns `TRUE` or `FALSE`. - -## Syntax - +Checks whether a value is blank, and returns `TRUE` or `FALSE`. + +## Syntax + ```dax -ISBLANK() +ISBLANK() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`value`|The value or expression you want to test.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`value`|The value or expression you want to test.| + ## Return value -A Boolean value of `TRUE` if the value is blank; otherwise `FALSE`. +A Boolean value of `TRUE` if the value is blank; otherwise `FALSE`. ## Remarks @@ -30,27 +30,27 @@ To learn more about best practices when working with BLANKS, see [Avoid converti ## Example -This formula computes the increase or decrease ratio in sales compared to the previous year. The example uses the IF function to check the value for the previous year's sales in order to avoid a divide by zero error. +This formula computes the increase or decrease ratio in sales compared to the previous year. The example uses the IF function to check the value for the previous year's sales in order to avoid a divide by zero error. ```dax -//Sales to Previous Year Ratio - -= IF( ISBLANK('CalculatedMeasures'[PreviousYearTotalSales]) - , BLANK() - , ( 'CalculatedMeasures'[Total Sales]-'CalculatedMeasures'[PreviousYearTotalSales] ) - /'CalculatedMeasures'[PreviousYearTotalSales]) +//Sales to Previous Year Ratio + += IF( ISBLANK('CalculatedMeasures'[PreviousYearTotalSales]) + , BLANK() + , ( 'CalculatedMeasures'[Total Sales]-'CalculatedMeasures'[PreviousYearTotalSales] ) + /'CalculatedMeasures'[PreviousYearTotalSales]) ``` Result, -|Row Labels|Total Sales|Total Sales Previous Year|Sales to Previous Year Ratio| -|--------------|---------------|-----------------------------|--------------------------------| -|2005|$10,209,985.08||| -|2006|$28,553,348.43|$10,209,985.08|179.66%| -|2007|$39,248,847.52|$28,553,348.43|37.46%| -|2008|$24,542,444.68|$39,248,847.52|-37.47%| -|Grand Total|$102,554,625.71||| - +|Row Labels|Total Sales|Total Sales Previous Year|Sales to Previous Year Ratio| +|--------------|---------------|-----------------------------|--------------------------------| +|2005|$10,209,985.08||| +|2006|$28,553,348.43|$10,209,985.08|179.66%| +|2007|$39,248,847.52|$28,553,348.43|37.46%| +|2008|$24,542,444.68|$39,248,847.52|-37.47%| +|Grand Total|$102,554,625.71||| + ## Related content -[Information functions](information-functions-dax.md) +[Information functions](information-functions-dax.md) diff --git a/query-languages/dax/iscrossfiltered-function-dax.md b/query-languages/dax/iscrossfiltered-function-dax.md index 77e9eae2c..f5f0b88fe 100644 --- a/query-languages/dax/iscrossfiltered-function-dax.md +++ b/query-languages/dax/iscrossfiltered-function-dax.md @@ -7,34 +7,34 @@ title: "ISCROSSFILTERED function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns `TRUE` when the specified table or column is cross-filtered. - -## Syntax - + +## Syntax + ```dax -ISCROSSFILTERED() +ISCROSSFILTERED() ``` - -### Parameters -|Term|Definition| -|--------|--------------| +### Parameters + +|Term|Definition| +|--------|--------------| |`TableNameOrColumnName`|The name of an existing table or column. It cannot be an expression.| - + ## Return value ``TRUE`` when `ColumnName` or a column of `TableName` is being cross-filtered. Otherwise returns `FALSE`. - -## Remarks - + +## Remarks + - A column or table is said to be cross-filtered when a filter is applied to `ColumnName`, any column of `TableName`, or to any column of a related table. -- A column or table is said to be filtered directly when a filter is applied to `ColumnName` or to any column of `TableName`. Therefore, the [ISFILTERED](isfiltered-function-dax.md) function also returns `TRUE` when `ColumnName` or any column of `TableName` is filtered. +- A column or table is said to be filtered directly when a filter is applied to `ColumnName` or to any column of `TableName`. Therefore, the [ISFILTERED](isfiltered-function-dax.md) function also returns `TRUE` when `ColumnName` or any column of `TableName` is filtered. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Related content -[ISFILTERED function](isfiltered-function-dax.md) -[FILTERS function](filters-function-dax.md) -[HASONEFILTER function](hasonefilter-function-dax.md) -[HASONEVALUE function](hasonevalue-function-dax.md) +[ISFILTERED function](isfiltered-function-dax.md) +[FILTERS function](filters-function-dax.md) +[HASONEFILTER function](hasonefilter-function-dax.md) +[HASONEVALUE function](hasonevalue-function-dax.md) diff --git a/query-languages/dax/isempty-function-dax.md b/query-languages/dax/isempty-function-dax.md index 943f0b96b..a9bcef77e 100644 --- a/query-languages/dax/isempty-function-dax.md +++ b/query-languages/dax/isempty-function-dax.md @@ -5,24 +5,24 @@ title: "ISEMPTY function (DAX)" # ISEMPTY [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Checks if a table is empty. - -## Syntax - + +Checks if a table is empty. + +## Syntax + ```dax -ISEMPTY() +ISEMPTY() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table_expression`|A table reference or a DAX expression that returns a table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table_expression`|A table reference or a DAX expression that returns a table.| + ## Return value -True if the table is empty (has no rows), if else, False. +True if the table is empty (has no rows), if else, False. ## Remarks @@ -30,19 +30,19 @@ True if the table is empty (has no rows), if else, False. ## Example -For the below table named 'Info': - -|Country/Region|State|County|Total| -|-----------|---------|----------|---------| -|IND|JK|20|800| -|IND|MH|25|1000| -|IND|WB|10|900| -|USA|CA|5|500| -|USA|WA|10|900| - +For the below table named 'Info': + +|Country/Region|State|County|Total| +|-----------|---------|----------|---------| +|IND|JK|20|800| +|IND|MH|25|1000| +|IND|WB|10|900| +|USA|CA|5|500| +|USA|WA|10|900| + ```dax EVALUATE -ROW("Any countries with count > 25?", NOT(ISEMPTY(FILTER(Info, [County]>25)))) +ROW("Any countries with count > 25?", NOT(ISEMPTY(FILTER(Info, [County]>25)))) ``` Return value: `FALSE`` diff --git a/query-languages/dax/iserror-function-dax.md b/query-languages/dax/iserror-function-dax.md index b9c4d9477..0eb42e029 100644 --- a/query-languages/dax/iserror-function-dax.md +++ b/query-languages/dax/iserror-function-dax.md @@ -6,23 +6,23 @@ title: "ISERROR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether a value is an error, and returns `TRUE` or `FALSE`. - -## Syntax - +Checks whether a value is an error, and returns `TRUE` or `FALSE`. + +## Syntax + ```dax -ISERROR() +ISERROR() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`value`|The value you want to test.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`value`|The value you want to test.| + ## Return value -A Boolean value of `TRUE` if the value is an error; otherwise `FALSE`. +A Boolean value of `TRUE` if the value is an error; otherwise `FALSE`. ## Remarks @@ -32,21 +32,21 @@ A Boolean value of `TRUE` if the value is an error; otherwise `FALSE`. ## Example -The following example calculates the ratio of total Internet sales to total reseller sales. The ISERROR function is used to check for errors, such as division by zero. If there is an error a blank is returned, otherwise the ratio is returned. - +The following example calculates the ratio of total Internet sales to total reseller sales. The ISERROR function is used to check for errors, such as division by zero. If there is an error a blank is returned, otherwise the ratio is returned. + ```dax -= IF( ISERROR( - SUM('ResellerSales_USD'[SalesAmount_USD]) - /SUM('InternetSales_USD'[SalesAmount_USD]) - ) - , BLANK() - , SUM('ResellerSales_USD'[SalesAmount_USD]) - /SUM('InternetSales_USD'[SalesAmount_USD]) - ) += IF( ISERROR( + SUM('ResellerSales_USD'[SalesAmount_USD]) + /SUM('InternetSales_USD'[SalesAmount_USD]) + ) + , BLANK() + , SUM('ResellerSales_USD'[SalesAmount_USD]) + /SUM('InternetSales_USD'[SalesAmount_USD]) + ) ``` - + ## Related content -[Information functions](information-functions-dax.md) -[IFERROR function](iferror-function-dax.md) -[IF function](if-function-dax.md) +[Information functions](information-functions-dax.md) +[IFERROR function](iferror-function-dax.md) +[IF function](if-function-dax.md) diff --git a/query-languages/dax/iseven-function-dax.md b/query-languages/dax/iseven-function-dax.md index d104d7a0d..dedde6e00 100644 --- a/query-languages/dax/iseven-function-dax.md +++ b/query-languages/dax/iseven-function-dax.md @@ -6,26 +6,26 @@ title: "ISEVEN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns `TRUE` if number is even, or `FALSE` if number is odd. - -## Syntax - +Returns `TRUE` if number is even, or `FALSE` if number is odd. + +## Syntax + ```dax -ISEVEN(number) +ISEVEN(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The value to test. If number is not an integer, it is truncated.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The value to test. If number is not an integer, it is truncated.| + ## Return value -Returns `TRUE` if number is even, or `FALSE` if number is odd. - +Returns `TRUE` if number is even, or `FALSE` if number is odd. + ## Remarks -- If number is nonnumeric, ISEVEN returns the `#VALUE!` error value. +- If number is nonnumeric, ISEVEN returns the `#VALUE!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/isfiltered-function-dax.md b/query-languages/dax/isfiltered-function-dax.md index d23be5c4a..05a33b2ec 100644 --- a/query-languages/dax/isfiltered-function-dax.md +++ b/query-languages/dax/isfiltered-function-dax.md @@ -7,34 +7,34 @@ title: "ISFILTERED function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns `TRUE` when the specified table or column is being filtered directly. - -## Syntax - + +## Syntax + ```dax -ISFILTERED() +ISFILTERED() ``` - -### Parameters -|Term|Definition| -|--------|--------------| +### Parameters + +|Term|Definition| +|--------|--------------| |`TableNameOrColumnName`|The name of an existing table or column. It cannot be an expression.| - + ## Return value `TRUE` when `ColumnName` or a column of `TableName` is being filtered directly. Otherwise returns `FALSE`. - -## Remarks + +## Remarks - A column or table is said to be filtered directly when a filter is applied to `ColumnName` or any column of `TableName`. - + - A column or table is said to be cross-filtered when a filter is applied to `ColumnName`, any column of `TableName`, or to any column of a related table. Therefore, the [ISCROSSFILTERED](iscrossfiltered-function-dax.md) function also returns `TRUE` when `ColumnName`, any column of `TableName`, or a column of a related table is filtered. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Related content -[ISCROSSFILTERED function](iscrossfiltered-function-dax.md) -[FILTERS function](filters-function-dax.md) -[HASONEFILTER function](hasonefilter-function-dax.md) -[HASONEVALUE function](hasonevalue-function-dax.md) +[ISCROSSFILTERED function](iscrossfiltered-function-dax.md) +[FILTERS function](filters-function-dax.md) +[HASONEFILTER function](hasonefilter-function-dax.md) +[HASONEVALUE function](hasonevalue-function-dax.md) diff --git a/query-languages/dax/isinscope-function-dax.md b/query-languages/dax/isinscope-function-dax.md index 7050f391a..df6af8b31 100644 --- a/query-languages/dax/isinscope-function-dax.md +++ b/query-languages/dax/isinscope-function-dax.md @@ -7,19 +7,19 @@ title: "ISINSCOPE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns true when the specified column is the level in a hierarchy of levels. - -## Syntax - + +## Syntax + ```dax ISINSCOPE() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`columnName`|The name of an existing column, using standard DAX syntax. It cannot be an expression.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`columnName`|The name of an existing column, using standard DAX syntax. It cannot be an expression.| + ## Return value `TRUE` when the specified column is the level in a hierarchy of levels. @@ -28,7 +28,7 @@ ISINSCOPE() [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Example ```dax DEFINE @@ -84,5 +84,5 @@ Returns, ## Related content -[SUMMARIZECOLUMNS function](summarizecolumns-function-dax.md) +[SUMMARIZECOLUMNS function](summarizecolumns-function-dax.md) [CALCULATE function](calculate-function-dax.md) diff --git a/query-languages/dax/islogical-function-dax.md b/query-languages/dax/islogical-function-dax.md index 34d19180b..8c5235182 100644 --- a/query-languages/dax/islogical-function-dax.md +++ b/query-languages/dax/islogical-function-dax.md @@ -6,23 +6,23 @@ title: "ISLOGICAL function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether a value is a logical value, (`TRUE` or `FALSE`), and returns `TRUE` or `FALSE`. - -## Syntax - +Checks whether a value is a logical value, (`TRUE` or `FALSE`), and returns `TRUE` or `FALSE`. + +## Syntax + ```dax -ISLOGICAL() +ISLOGICAL() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`value`|The value that you want to test.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`value`|The value that you want to test.| + ## Return value -`TRUE` if the value is a logical value; `FALSE` if any value other than `TRUE` OR `FALSE`. +`TRUE` if the value is a logical value; `FALSE` if any value other than `TRUE` OR `FALSE`. ## Remarks @@ -30,19 +30,19 @@ ISLOGICAL() ## Example -The following three samples show the behavior of ISLOGICAL. - +The following three samples show the behavior of ISLOGICAL. + ```dax -//RETURNS: Is Boolean type or Logical -= IF(ISLOGICAL(true), "Is Boolean type or Logical", "Is different type") - -//RETURNS: Is Boolean type or Logical -= IF(ISLOGICAL(false), "Is Boolean type or Logical", "Is different type") - -//RETURNS: Is different type -= IF(ISLOGICAL(25), "Is Boolean type or Logical", "Is different type") +//RETURNS: Is Boolean type or Logical += IF(ISLOGICAL(true), "Is Boolean type or Logical", "Is different type") + +//RETURNS: Is Boolean type or Logical += IF(ISLOGICAL(false), "Is Boolean type or Logical", "Is different type") + +//RETURNS: Is different type += IF(ISLOGICAL(25), "Is Boolean type or Logical", "Is different type") ``` - + ## Related content -[Information functions](information-functions-dax.md) +[Information functions](information-functions-dax.md) diff --git a/query-languages/dax/isnontext-function-dax.md b/query-languages/dax/isnontext-function-dax.md index 98b1dc2f4..f68429bb6 100644 --- a/query-languages/dax/isnontext-function-dax.md +++ b/query-languages/dax/isnontext-function-dax.md @@ -6,45 +6,45 @@ title: "ISNONTEXT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks if a value is not text (blank cells are not text), and returns `TRUE` or `FALSE`. - -## Syntax - +Checks if a value is not text (blank cells are not text), and returns `TRUE` or `FALSE`. + +## Syntax + ```dax -ISNONTEXT() +ISNONTEXT() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`value`|The value you want to check.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`value`|The value you want to check.| + ## Return value -`TRUE` if the value is not text or blank; `FALSE` if the value is text. - +`TRUE` if the value is not text or blank; `FALSE` if the value is text. + ## Remarks -- An empty string is considered text. +- An empty string is considered text. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following examples show the behavior of the ISNONTEXT function. - +The following examples show the behavior of the ISNONTEXT function. + ```dax -//RETURNS: Is Non-Text -= IF(ISNONTEXT(1), "Is Non-Text", "Is Text") - -//RETURNS: Is Non-Text -= IF(ISNONTEXT(BLANK()), "Is Non-Text", "Is Text") - -//RETURNS: Is Text -= IF(ISNONTEXT(""), "Is Non-Text", "Is Text") +//RETURNS: Is Non-Text += IF(ISNONTEXT(1), "Is Non-Text", "Is Text") + +//RETURNS: Is Non-Text += IF(ISNONTEXT(BLANK()), "Is Non-Text", "Is Text") + +//RETURNS: Is Text += IF(ISNONTEXT(""), "Is Non-Text", "Is Text") ``` - + ## Related content -[Information functions](information-functions-dax.md) +[Information functions](information-functions-dax.md) diff --git a/query-languages/dax/isnumber-function-dax.md b/query-languages/dax/isnumber-function-dax.md index 426848e8a..51271c66a 100644 --- a/query-languages/dax/isnumber-function-dax.md +++ b/query-languages/dax/isnumber-function-dax.md @@ -6,23 +6,23 @@ title: "ISNUMBER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether a value is a number, and returns `TRUE` or `FALSE`. - -## Syntax - +Checks whether a value is a number, and returns `TRUE` or `FALSE`. + +## Syntax + ```dax -ISNUMBER() +ISNUMBER() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`value`|The value you want to test.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`value`|The value you want to test.| + ## Return value -`TRUE` if the value is numeric; otherwise `FALSE`. +`TRUE` if the value is numeric; otherwise `FALSE`. ## Remarks @@ -30,19 +30,19 @@ ISNUMBER() ## Example -The following three samples show the behavior of ISNUMBER. - +The following three samples show the behavior of ISNUMBER. + ```dax -//RETURNS: Is number -= IF(ISNUMBER(0), "Is number", "Is Not number") - -//RETURNS: Is number -= IF(ISNUMBER(3.1E-1),"Is number", "Is Not number") - -//RETURNS: Is Not number -= IF(ISNUMBER("123"), "Is number", "Is Not number") +//RETURNS: Is number += IF(ISNUMBER(0), "Is number", "Is Not number") + +//RETURNS: Is number += IF(ISNUMBER(3.1E-1),"Is number", "Is Not number") + +//RETURNS: Is Not number += IF(ISNUMBER("123"), "Is number", "Is Not number") ``` - + ## Related content -[Information functions](information-functions-dax.md) +[Information functions](information-functions-dax.md) diff --git a/query-languages/dax/iso-ceiling-function-dax.md b/query-languages/dax/iso-ceiling-function-dax.md index d586fb4e8..503f0585e 100644 --- a/query-languages/dax/iso-ceiling-function-dax.md +++ b/query-languages/dax/iso-ceiling-function-dax.md @@ -6,64 +6,64 @@ title: "ISO.CEILING function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Rounds a number up, to the nearest integer or to the nearest multiple of significance. - -## Syntax - +Rounds a number up, to the nearest integer or to the nearest multiple of significance. + +## Syntax + ```dax -ISO.CEILING([, ]) +ISO.CEILING([, ]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number you want to round, or a reference to a column that contains numbers.| -|`significance`|(optional) The multiple of significance to which you want to round. For example, to round to the nearest integer, type 1. If the unit of significance is not specified, the number is rounded up to the nearest integer.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number you want to round, or a reference to a column that contains numbers.| +|`significance`|(optional) The multiple of significance to which you want to round. For example, to round to the nearest integer, type 1. If the unit of significance is not specified, the number is rounded up to the nearest integer.| + ## Return value -A number, of the same type as the `number` argument, rounded as specified. - +A number, of the same type as the `number` argument, rounded as specified. + ## Remarks -There are two CEILING functions in DAX, with the following differences: - -- The CEILING function emulates the behavior of the CEILING function in Excel. - -- The ISO.CEILING function follows the ISO-defined behavior for determining the ceiling value. - -The two functions return the same value for positive numbers, but different values for negative numbers. When using a positive multiple of significance, both CEILING and ISO.CEILING round negative numbers upward (toward positive infinity). When using a negative multiple of significance, CEILING rounds negative numbers downward (toward negative infinity), while ISO.CEILING rounds negative numbers upward (toward positive infinity). - -The result type is usually the same type of the significance used as argument with the following exceptions: - -- If the first argument is of currency type then the result will be currency type. - -- If the optional argument is not included the result is of integer type. - -- If the significance argument is of Boolean type then the result is of integer type. - -- If the significance argument is non-numeric type then the result is of real type. - -## Example: Positive Numbers +There are two CEILING functions in DAX, with the following differences: + +- The CEILING function emulates the behavior of the CEILING function in Excel. + +- The ISO.CEILING function follows the ISO-defined behavior for determining the ceiling value. + +The two functions return the same value for positive numbers, but different values for negative numbers. When using a positive multiple of significance, both CEILING and ISO.CEILING round negative numbers upward (toward positive infinity). When using a negative multiple of significance, CEILING rounds negative numbers downward (toward negative infinity), while ISO.CEILING rounds negative numbers upward (toward positive infinity). + +The result type is usually the same type of the significance used as argument with the following exceptions: + +- If the first argument is of currency type then the result will be currency type. + +- If the optional argument is not included the result is of integer type. + +- If the significance argument is of Boolean type then the result is of integer type. + +- If the significance argument is non-numeric type then the result is of real type. + +## Example: Positive Numbers The following formula returns 4.45. This might be useful if you want to avoid using smaller units in your pricing. If an existing product is priced at $4.42, you can use ISO.CEILING to round prices up to the nearest unit of five cents. - + ```dax -= ISO.CEILING(4.42,0.05) += ISO.CEILING(4.42,0.05) ``` - -## Example: Negative Numbers -The following formula returns the ISO ceiling value of -4.40. - +## Example: Negative Numbers + +The following formula returns the ISO ceiling value of -4.40. + ```dax -= ISO.CEILING(-4.42,0.05) += ISO.CEILING(-4.42,0.05) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[FLOOR function](floor-function-dax.md) -[CEILING function](ceiling-function-dax.md) -[ROUNDUP function](roundup-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[FLOOR function](floor-function-dax.md) +[CEILING function](ceiling-function-dax.md) +[ROUNDUP function](roundup-function-dax.md) diff --git a/query-languages/dax/isodd-function-dax.md b/query-languages/dax/isodd-function-dax.md index 6843fbcad..5b12770fd 100644 --- a/query-languages/dax/isodd-function-dax.md +++ b/query-languages/dax/isodd-function-dax.md @@ -6,26 +6,26 @@ title: "ISODD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns `TRUE` if number is odd, or `FALSE` if number is even. - -## Syntax - +Returns `TRUE` if number is odd, or `FALSE` if number is even. + +## Syntax + ```dax -ISODD(number) +ISODD(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The value to test. If number is not an integer, it is truncated.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The value to test. If number is not an integer, it is truncated.| + ## Return value -Returns `TRUE` if number is odd, or `FALSE` if number is even. - +Returns `TRUE` if number is odd, or `FALSE` if number is even. + ## Remarks -- If number is nonnumeric, ISODD returns the `#VALUE!` error value. +- If number is nonnumeric, ISODD returns the `#VALUE!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/isonorafter-function-dax.md b/query-languages/dax/isonorafter-function-dax.md index a2a1a667d..5e05596cd 100644 --- a/query-languages/dax/isonorafter-function-dax.md +++ b/query-languages/dax/isonorafter-function-dax.md @@ -5,27 +5,27 @@ title: "ISONORAFTER function (DAX)" # ISONORAFTER [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - + A boolean function that emulates the behavior of a Start At clause and returns true for a row that meets all of the condition parameters. - -Based on the sort order, the first parameter is compared with the second parameter. If the sort order is ascending, the comparison to be done is first parameter greater than the second parameter. If the sort order is descending, the comparison to be done is second parameter less than the first parameter. - -## Syntax - -```DAX -ISONORAFTER(, [, sort_order [, , [, sort_order]]…) + +Based on the sort order, the first parameter is compared with the second parameter. If the sort order is ascending, the comparison to be done is first parameter greater than the second parameter. If the sort order is descending, the comparison to be done is second parameter less than the first parameter. + +## Syntax + +```DAX +ISONORAFTER(, [, sort_order [, , [, sort_order]]…) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`scalar expression`|Any expression that returns a scalar value like a column reference or integer or string value. Typically the first parameter is a column reference and the second parameter is a scalar value.| -|`sort order`|(optional) The order in which the column is sorted. Can be ascending (ASC) or descending (DESC). By default the sort order is ascending.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`scalar expression`|Any expression that returns a scalar value like a column reference or integer or string value. Typically the first parameter is a column reference and the second parameter is a scalar value.| +|`sort order`|(optional) The order in which the column is sorted. Can be ascending (ASC) or descending (DESC). By default the sort order is ascending.| + ## Return value -True or false. +True or false. ## Remarks @@ -35,15 +35,15 @@ This function is similar to [ISAFTER](isafter-function-dax.md). The difference i ## Example -For the following table named, Info: - -|Country/Region|State|Count|Total| -|-----------|---------|---------|---------| -|IND|JK|20|800| -|IND|MH|25|1000| -|IND|WB|10|900| -|USA|CA|5|500| -|USA|WA|10|900| +For the following table named, Info: + +|Country/Region|State|Count|Total| +|-----------|---------|---------|---------| +|IND|JK|20|800| +|IND|MH|25|1000| +|IND|WB|10|900| +|USA|CA|5|500| +|USA|WA|10|900| The following expression: @@ -58,12 +58,12 @@ FILTER ( Returns: -|Country/Region|State|Count|Total| -|-----------|---------|---------|---------| -|IND|MH|25|1000| -|IND|WB|10|900| -|USA|CA|5|500| -|USA|WA|10|900| +|Country/Region|State|Count|Total| +|-----------|---------|---------|---------| +|IND|MH|25|1000| +|IND|WB|10|900| +|USA|CA|5|500| +|USA|WA|10|900| ## Related content diff --git a/query-languages/dax/ispmt-function-dax.md b/query-languages/dax/ispmt-function-dax.md index b71ab3279..a89e1bece 100644 --- a/query-languages/dax/ispmt-function-dax.md +++ b/query-languages/dax/ispmt-function-dax.md @@ -18,8 +18,8 @@ ISPMT(, , , ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`rate`|The interest rate for the investment.| |`per`|The period for which you want to find the interest. Must be between 0 and nper-1 (inclusive).| |`nper`|The total number of payment periods for the investment.| diff --git a/query-languages/dax/isselectedmeasure-function-dax.md b/query-languages/dax/isselectedmeasure-function-dax.md index ff920f4a1..bddccbdef 100644 --- a/query-languages/dax/isselectedmeasure-function-dax.md +++ b/query-languages/dax/isselectedmeasure-function-dax.md @@ -8,19 +8,19 @@ title: "ISSELECTEDMEASURE function (DAX)" Used by expressions for calculation items to determine the measure that is in context is one of those specified in a list of measures. -## Syntax - +## Syntax + ```dax -ISSELECTEDMEASURE( M1, M2, ... ) +ISSELECTEDMEASURE( M1, M2, ... ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`M1, M2, ...`|A list of measures.| - -## Return value + +### Parameters + +|Term|Definition| +|--------|--------------| +|`M1, M2, ...`|A list of measures.| + +## Return value A Boolean indicating whether the measure that is currently in context is one of those specified in the list of parameters. @@ -30,10 +30,10 @@ A Boolean indicating whether the measure that is currently in context is one of - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Example The following calculation item expression checks if the current measure is one of those specified in the list of parameters. If the measures are renamed, formula fixup will reflect the name changes in the expression. - + ```dax IF ( ISSELECTEDMEASURE ( [Expense Ratio 1], [Expense Ratio 2] ), @@ -42,8 +42,8 @@ IF ( ) ``` - + ## Related content -[SELECTEDMEASURE](selectedmeasure-function-dax.md) +[SELECTEDMEASURE](selectedmeasure-function-dax.md) [SELECTEDMEASURENAME](selectedmeasurename-function-dax.md) diff --git a/query-languages/dax/issubtotal-function-dax.md b/query-languages/dax/issubtotal-function-dax.md index 077cd3f3e..eabc4225e 100644 --- a/query-languages/dax/issubtotal-function-dax.md +++ b/query-languages/dax/issubtotal-function-dax.md @@ -8,8 +8,8 @@ title: "ISSUBTOTAL function (DAX)" Creates another column in a [SUMMARIZE](summarize-function-dax.md) expression that returns True if the row contains subtotal values for the column given as argument, otherwise returns False. -## Syntax - +## Syntax + ```dax ISSUBTOTAL() ``` @@ -17,20 +17,20 @@ ISSUBTOTAL() With [SUMMARIZE](summarize-function-dax.md), ```dax -SUMMARIZE(
, [, ]…[, ROLLUP([,< groupBy_columnName>…])][, , {|ISSUBTOTAL()}]…) +SUMMARIZE(
, [, ]…[, ROLLUP([,< groupBy_columnName>…])][, , {|ISSUBTOTAL()}]…) ``` - -### Parameters -|Term|Definition| +### Parameters + +|Term|Definition| |--------|--------------| |`columnName` |The name of any column in table of the SUMMARIZE function or any column in a related table to table. | ## Return value A True value if the row contains a subtotal value for the column given as argument, otherwise returns False. - -## Remarks + +## Remarks - This function can only be used in the expression of a [SUMMARIZE](summarize-function-dax.md) function. diff --git a/query-languages/dax/istext-function-dax.md b/query-languages/dax/istext-function-dax.md index a093760f7..f0314a6f4 100644 --- a/query-languages/dax/istext-function-dax.md +++ b/query-languages/dax/istext-function-dax.md @@ -6,20 +6,20 @@ title: "ISTEXT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks if a value is text, and returns `TRUE` or `FALSE`. - -## Syntax - +Checks if a value is text, and returns `TRUE` or `FALSE`. + +## Syntax + ```dax -ISTEXT() +ISTEXT() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`value`|The value you want to check.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`value`|The value you want to check.| + ## Return value `TRUE` if the value is text; otherwise `FALSE`. @@ -27,25 +27,25 @@ ISTEXT() ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following examples show the behavior of the ISTEXT function. - +The following examples show the behavior of the ISTEXT function. + ```dax -//RETURNS: Is Text -= IF(ISTEXT("text"), "Is Text", "Is Non-Text") - -//RETURNS: Is Text -= IF(ISTEXT(""), "Is Text", "Is Non-Text") - -//RETURNS: Is Non-Text -= IF(ISTEXT(1), "Is Text", "Is Non-Text") - -//RETURNS: Is Non-Text -= IF(ISTEXT(BLANK()), "Is Text", "Is Non-Text") +//RETURNS: Is Text += IF(ISTEXT("text"), "Is Text", "Is Non-Text") + +//RETURNS: Is Text += IF(ISTEXT(""), "Is Text", "Is Non-Text") + +//RETURNS: Is Non-Text += IF(ISTEXT(1), "Is Text", "Is Non-Text") + +//RETURNS: Is Non-Text += IF(ISTEXT(BLANK()), "Is Text", "Is Non-Text") ``` - + ## Related content -[Information functions](information-functions-dax.md) +[Information functions](information-functions-dax.md) diff --git a/query-languages/dax/keepfilters-function-dax.md b/query-languages/dax/keepfilters-function-dax.md index 1fed64815..630a589d3 100644 --- a/query-languages/dax/keepfilters-function-dax.md +++ b/query-languages/dax/keepfilters-function-dax.md @@ -6,107 +6,107 @@ title: "KEEPFILTERS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. - -## Syntax - +Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. + +## Syntax + ```dax -KEEPFILTERS() +KEEPFILTERS() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`expression`|Any expression.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`expression`|Any expression.| + ## Return value -A table of values. - +A table of values. + ## Remarks -- You use KEEPFILTERS within the context CALCULATE and CALCULATETABLE functions, to override the standard behavior of those functions. - -- By default, filter arguments in functions such as CALCULATE are used as the context for evaluating the expression, and as such filter arguments for CALCULATE replace all existing filters over the same columns. The new context effected by the filter argument for CALCULATE affects only existing filters on columns mentioned as part of the filter argument. Filters on columns other than those mentioned in the arguments of CALCULATE or other related functions remain in effect and unaltered. - -- The KEEPFILTERS function allows you to modify this behavior. When you use KEEPFILTERS, any existing filters in the current context are compared with the columns in the filter arguments, and the intersection of those arguments is used as the context for evaluating the expression. The net effect over any one column is that both sets of arguments apply: both the filter arguments used in CALCULATE and the filters in the arguments of the KEEPFILTER function. In other words, whereas CALCULATE filters replace the current context, KEEPFILTERS adds filters to the current context. +- You use KEEPFILTERS within the context CALCULATE and CALCULATETABLE functions, to override the standard behavior of those functions. + +- By default, filter arguments in functions such as CALCULATE are used as the context for evaluating the expression, and as such filter arguments for CALCULATE replace all existing filters over the same columns. The new context effected by the filter argument for CALCULATE affects only existing filters on columns mentioned as part of the filter argument. Filters on columns other than those mentioned in the arguments of CALCULATE or other related functions remain in effect and unaltered. + +- The KEEPFILTERS function allows you to modify this behavior. When you use KEEPFILTERS, any existing filters in the current context are compared with the columns in the filter arguments, and the intersection of those arguments is used as the context for evaluating the expression. The net effect over any one column is that both sets of arguments apply: both the filter arguments used in CALCULATE and the filters in the arguments of the KEEPFILTER function. In other words, whereas CALCULATE filters replace the current context, KEEPFILTERS adds filters to the current context. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example takes you through some common scenarios that demonstrate use of the KEEPFILTERS function as part of a CALCULATE or CALCULATETABLE formula. - -The first three expressions obtain simple data to be used for comparisons: - -- Internet Sales for the state of Washington. - -- Internet Sales for the states of Washington and Oregon (both states combined). - -- Internet Sales for the state of Washington and the province of British Columbia (both regions combined). - -The fourth expression calculates Internet Sales for Washington and Oregon, while the filter for Washington and British Columbia is applied. - -The next expression calculates Internet Sales for Washington and Oregon but uses KEEPFILTERS; the filter for Washington and British Columbia is part of the prior context. - +The following example takes you through some common scenarios that demonstrate use of the KEEPFILTERS function as part of a CALCULATE or CALCULATETABLE formula. + +The first three expressions obtain simple data to be used for comparisons: + +- Internet Sales for the state of Washington. + +- Internet Sales for the states of Washington and Oregon (both states combined). + +- Internet Sales for the state of Washington and the province of British Columbia (both regions combined). + +The fourth expression calculates Internet Sales for Washington and Oregon, while the filter for Washington and British Columbia is applied. + +The next expression calculates Internet Sales for Washington and Oregon but uses KEEPFILTERS; the filter for Washington and British Columbia is part of the prior context. + ```dax -EVALUATE ROW( - "$$ in WA" - , CALCULATE('Internet Sales'[Internet Total Sales] - , 'Geography'[State Province Code]="WA" - ) -, "$$ in WA and OR" - , CALCULATE('Internet Sales'[Internet Total Sales] - , 'Geography'[State Province Code]="WA" - || 'Geography'[State Province Code]="OR" - ) -, "$$ in WA and BC" - , CALCULATE('Internet Sales'[Internet Total Sales] - , 'Geography'[State Province Code]="WA" - || 'Geography'[State Province Code]="BC" - ) -, "$$ in WA and OR ??" - , CALCULATE( - CALCULATE('Internet Sales'[Internet Total Sales] - ,'Geography'[State Province Code]="WA" - || 'Geography'[State Province Code]="OR" - ) - , 'Geography'[State Province Code]="WA" - || 'Geography'[State Province Code]="BC" - ) -, "$$ in WA !!" - , CALCULATE( - CALCULATE('Internet Sales'[Internet Total Sales] - , KEEPFILTERS('Geography'[State Province Code]="WA" - || 'Geography'[State Province Code]="OR" - ) - ) - , 'Geography'[State Province Code]="WA" - || 'Geography'[State Province Code]="BC" - ) -) +EVALUATE ROW( + "$$ in WA" + , CALCULATE('Internet Sales'[Internet Total Sales] + , 'Geography'[State Province Code]="WA" + ) +, "$$ in WA and OR" + , CALCULATE('Internet Sales'[Internet Total Sales] + , 'Geography'[State Province Code]="WA" + || 'Geography'[State Province Code]="OR" + ) +, "$$ in WA and BC" + , CALCULATE('Internet Sales'[Internet Total Sales] + , 'Geography'[State Province Code]="WA" + || 'Geography'[State Province Code]="BC" + ) +, "$$ in WA and OR ??" + , CALCULATE( + CALCULATE('Internet Sales'[Internet Total Sales] + ,'Geography'[State Province Code]="WA" + || 'Geography'[State Province Code]="OR" + ) + , 'Geography'[State Province Code]="WA" + || 'Geography'[State Province Code]="BC" + ) +, "$$ in WA !!" + , CALCULATE( + CALCULATE('Internet Sales'[Internet Total Sales] + , KEEPFILTERS('Geography'[State Province Code]="WA" + || 'Geography'[State Province Code]="OR" + ) + ) + , 'Geography'[State Province Code]="WA" + || 'Geography'[State Province Code]="BC" + ) +) ``` -When this expression is evaluated against the sample database AdventureWorks DW, the following results are obtained. - -|Column|Value| -|----------|---------| -|`[$$ in WA]`|$ 2,467,248.34| -|`[$$ in WA and OR]`|$ 3,638,239.88| -|`[$$ in WA and BC]`|$ 4,422,588.44| -|`[$$ in WA and OR ??]`|$ 3,638,239.88| -|`[$$ in WA !!]`|$ 2,467,248.34| - -> [!NOTE] -> The above results were formatted to a table, instead of a single row, for educational purposes. - -First, examine the expression, `[$$ in WA and OR ??]`. You might wonder how this formula could return the value for sales in Washington and Oregon, since the outer CALCULATE expression includes a filter for Washington and British Columbia. The answer is that the default behavior of CALCULATE overrides the outer filters in 'Geography'[State Province Code] and substitutes its own filter arguments, because the filters apply to the same column. - -Next, examine the expression, `[$$ in WA !!]`. You might wonder how this formula could return the value for sales in Washington and nothing else, since the argument filter includes Oregon and the outer CALCULATE expression includes a filter in Washington and British Columbia. The answer is that KEEPFILTERS modifies the default behavior of CALCULATE and adds an additional filter. Because the intersection of filters is used, now the outer filter `'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")` is added to the filter argument `'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"`,. Because both filters apply to the same column, the resulting filter `'Geography'[State Province Code]="WA"` is the filter that is applied when evaluating the expression. - +When this expression is evaluated against the sample database AdventureWorks DW, the following results are obtained. + +|Column|Value| +|----------|---------| +|`[$$ in WA]`|$ 2,467,248.34| +|`[$$ in WA and OR]`|$ 3,638,239.88| +|`[$$ in WA and BC]`|$ 4,422,588.44| +|`[$$ in WA and OR ??]`|$ 3,638,239.88| +|`[$$ in WA !!]`|$ 2,467,248.34| + +> [!NOTE] +> The above results were formatted to a table, instead of a single row, for educational purposes. + +First, examine the expression, `[$$ in WA and OR ??]`. You might wonder how this formula could return the value for sales in Washington and Oregon, since the outer CALCULATE expression includes a filter for Washington and British Columbia. The answer is that the default behavior of CALCULATE overrides the outer filters in 'Geography'[State Province Code] and substitutes its own filter arguments, because the filters apply to the same column. + +Next, examine the expression, `[$$ in WA !!]`. You might wonder how this formula could return the value for sales in Washington and nothing else, since the argument filter includes Oregon and the outer CALCULATE expression includes a filter in Washington and British Columbia. The answer is that KEEPFILTERS modifies the default behavior of CALCULATE and adds an additional filter. Because the intersection of filters is used, now the outer filter `'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")` is added to the filter argument `'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"`,. Because both filters apply to the same column, the resulting filter `'Geography'[State Province Code]="WA"` is the filter that is applied when evaluating the expression. + ## Related content -[Filter functions](filter-functions-dax.md) -[CALCULATE function](calculate-function-dax.md) -[CALCULATETABLE function](calculatetable-function-dax.md) +[Filter functions](filter-functions-dax.md) +[CALCULATE function](calculate-function-dax.md) +[CALCULATETABLE function](calculatetable-function-dax.md) diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index f7711ba78..45b8679f4 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -8,27 +8,26 @@ title: "LAST function (DAX)" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] Used in visual calculations only. Retrieves a value in the visual matrix from the last element of an axis. - -## Syntax - + +## Syntax + ```dax LAST ( [, ][, ][, reset] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| - ## Return value The value of `column` from the last element of the axis. - + ## Remarks This function can only be used in a visual calculation. @@ -36,7 +35,7 @@ This function can only be used in a visual calculation. ## Example The following visual calculation returns the sales amount of the last row on ROWS axis, that resets on the lowest parent. - + ```dax LastInternetSalesAmount = LAST ( [Sum of SalesAmount], ROWS, LowestParent ) ``` @@ -47,6 +46,6 @@ The screenshot below shows the visual matrix and the visual calculation expressi ## Related content -[FIRST](first-function-dax.md) -[PREVIOUS](previous-function-dax.md) +[FIRST](first-function-dax.md) +[PREVIOUS](previous-function-dax.md) [NEXT](next-function-dax.md) diff --git a/query-languages/dax/lastdate-function-dax.md b/query-languages/dax/lastdate-function-dax.md index 6ca0d3389..e8ff54d62 100644 --- a/query-languages/dax/lastdate-function-dax.md +++ b/query-languages/dax/lastdate-function-dax.md @@ -6,50 +6,50 @@ title: "LASTDATE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the last date in the current context for the specified column of dates. - -## Syntax - +Returns the last date in the current context for the specified column of dates. + +## Syntax + ```dax -LASTDATE() +LASTDATE() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| + ## Return value -A table containing a single column and single row with a date value. - +A table containing a single column and single row with a date value. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column, - - A table expression that returns a single column of date/time values, - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- When the current context is a single date, the date returned by the FIRSTDATE and LASTDATE functions will be equal. - -- Technically, the Return value is a table that contains a single column and single value. Therefore, this function can be used as an argument to any function that requires a table in its arguments. Also, the returned value can be used whenever a date value is required. - +- The `dates` argument can be any of the following: + - A reference to a date/time column, + - A table expression that returns a single column of date/time values, + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- When the current context is a single date, the date returned by the FIRSTDATE and LASTDATE functions will be equal. + +- Technically, the Return value is a table that contains a single column and single value. Therefore, this function can be used as an argument to any function that requires a table in its arguments. Also, the returned value can be used whenever a date value is required. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that obtains the last date, for the current context, when a sale was made in the Internet sales channel. - +The following sample formula creates a measure that obtains the last date, for the current context, when a sale was made in the Internet sales channel. + ```dax -= LASTDATE('InternetSales_USD'[SaleDateKey]) += LASTDATE('InternetSales_USD'[SaleDateKey]) ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[FIRSTDATE function](firstdate-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[FIRSTDATE function](firstdate-function-dax.md) [LASTNONBLANK function](lastnonblank-function-dax.md) diff --git a/query-languages/dax/lastnonblank-function-dax.md b/query-languages/dax/lastnonblank-function-dax.md index 65ae4158b..f6c256d01 100644 --- a/query-languages/dax/lastnonblank-function-dax.md +++ b/query-languages/dax/lastnonblank-function-dax.md @@ -6,39 +6,39 @@ title: "LASTNONBLANK function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the last value in the column, `column`, filtered by the current context, where the expression is not blank. - -## Syntax - +Returns the last value in the column, `column`, filtered by the current context, where the expression is not blank. + +## Syntax + ```dax -LASTNONBLANK(,) +LASTNONBLANK(,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|A column expression.| -|`expression`|An expression evaluated for blanks for each value of `column`.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|A column expression.| +|`expression`|An expression evaluated for blanks for each value of `column`.| + ## Return value -A table containing a single column and single row with the computed last value. - +A table containing a single column and single row with the computed last value. + ## Remarks -- The `column` argument can be any of the following: - - A reference to any column. - - A table with a single column. - - A Boolean expression that defines a single-column table - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- This function is typically used to return the last value of a column for which the expression is not blank. For example, you could get the last value for which there were sales of a product. - +- The `column` argument can be any of the following: + - A reference to any column. + - A table with a single column. + - A Boolean expression that defines a single-column table + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- This function is typically used to return the last value of a column for which the expression is not blank. For example, you could get the last value for which there were sales of a product. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Related content -[FIRSTNONBLANK function](firstnonblank-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[FIRSTNONBLANK function](firstnonblank-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/lastnonblankvalue-function-dax.md b/query-languages/dax/lastnonblankvalue-function-dax.md index f574a449a..58a041811 100644 --- a/query-languages/dax/lastnonblankvalue-function-dax.md +++ b/query-languages/dax/lastnonblankvalue-function-dax.md @@ -7,25 +7,25 @@ title: "LASTNONBLANKVALUE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] Evaluates an expression filtered by the sorted values of a column and returns the last value of the expression that is not blank. - -## Syntax - + +## Syntax + ```dax LASTNONBLANKVALUE(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|A column or an expression that returns a single-column table.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|A column or an expression that returns a single-column table.| |`expression`|An expression evaluated for each value of `column`.| - -## Return value + +## Return value The last non-blank value of `expression` corresponding to the sorted values of `column`. - -## Remarks + +## Remarks - The column argument can be any of the following: - A reference to any column. @@ -35,7 +35,7 @@ The last non-blank value of `expression` corresponding to the sorted values of ` - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Example The following DAX query, @@ -54,7 +54,7 @@ SUMMARIZECOLUMNS( Returns, |DimProduct[Class]|[LNBV]| -|-----------|---------------|----------| +|-----------|---------------|----------| |L|132.44| |H|137.6| |M|84.97| diff --git a/query-languages/dax/lcm-function-dax.md b/query-languages/dax/lcm-function-dax.md index d6cd602fb..246b29187 100644 --- a/query-languages/dax/lcm-function-dax.md +++ b/query-languages/dax/lcm-function-dax.md @@ -6,37 +6,37 @@ title: "LCM function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the least common multiple of integers. The least common multiple is the smallest positive integer that is a multiple of all integer arguments number1, number2, and so on. Use LCM to add fractions with different denominators. - -## Syntax - +Returns the least common multiple of integers. The least common multiple is the smallest positive integer that is a multiple of all integer arguments number1, number2, and so on. Use LCM to add fractions with different denominators. + +## Syntax + ```dax -LCM(number1, [number2], ...) +LCM(number1, [number2], ...) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number1, number2,...`|Number1 is required, subsequent numbers are optional. 1 to 255 values for which you want the least common multiple. If value is not an integer, it is truncated.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number1, number2,...`|Number1 is required, subsequent numbers are optional. 1 to 255 values for which you want the least common multiple. If value is not an integer, it is truncated.| + ## Return value -Returns the least common multiple of integers. - +Returns the least common multiple of integers. + ## Remarks -- If any argument is nonnumeric, LCM returns the `#VALUE!` error value. - -- If any argument is less than zero, LCM returns the `#NUM!` error value. - -- If LCM(a,b) >=2^53, LCM returns the `#NUM!` error value. +- If any argument is nonnumeric, LCM returns the `#VALUE!` error value. + +- If any argument is less than zero, LCM returns the `#NUM!` error value. + +- If LCM(a,b) >=2^53, LCM returns the `#NUM!` error value. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= LCM(5, 2)`|Least common multiple of 5 and 2.|10| -|`= LCM(24, 36)`|Least common multiple of 24 and 36.|72| +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= LCM(5, 2)`|Least common multiple of 5 and 2.|10| +|`= LCM(24, 36)`|Least common multiple of 24 and 36.|72| diff --git a/query-languages/dax/left-function-dax.md b/query-languages/dax/left-function-dax.md index 6441d7617..cf9dc6d1d 100644 --- a/query-languages/dax/left-function-dax.md +++ b/query-languages/dax/left-function-dax.md @@ -6,41 +6,41 @@ title: "LEFT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the specified number of characters from the start of a text string. - -## Syntax - +Returns the specified number of characters from the start of a text string. + +## Syntax + ```dax -LEFT(, ) +LEFT(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text string containing the characters you want to extract, or a reference to a column that contains text.| -|`num_chars`|(optional) The number of characters you want LEFT to extract; if omitted, 1.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text string containing the characters you want to extract, or a reference to a column that contains text.| +|`num_chars`|(optional) The number of characters you want LEFT to extract; if omitted, 1.| + ## Return value -A text string. - +A text string. + ## Remarks -- Whereas Microsoft Excel contains different functions for working with text in single-byte and double-byte character languages, DAX works with Unicode and stores all characters as the same length; therefore, a single function is enough. - +- Whereas Microsoft Excel contains different functions for working with text in single-byte and double-byte character languages, DAX works with Unicode and stores all characters as the same length; therefore, a single function is enough. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example returns the first five characters of the company name in the column [ResellerName] and the first five letters of the geographical code in the column [GeographyKey] and concatenates them, to create an identifier. - +The following example returns the first five characters of the company name in the column [ResellerName] and the first five letters of the geographical code in the column [GeographyKey] and concatenates them, to create an identifier. + ```dax -= CONCATENATE(LEFT('Reseller'[ResellerName],LEFT(GeographyKey,3)) += CONCATENATE(LEFT('Reseller'[ResellerName],LEFT(GeographyKey,3)) ``` -If the `num_chars` argument is a number that is larger than the number of characters available, the function returns the maximum characters available and does not raise an error. For example, the column [GeographyKey] contains numbers such as 1, 12 and 311; therefore the result also has variable length. - +If the `num_chars` argument is a number that is larger than the number of characters available, the function returns the maximum characters available and does not raise an error. For example, the column [GeographyKey] contains numbers such as 1, 12 and 311; therefore the result also has variable length. + ## Related content [Text functions](text-functions-dax.md) diff --git a/query-languages/dax/len-function-dax.md b/query-languages/dax/len-function-dax.md index 62585846e..f1262297c 100644 --- a/query-languages/dax/len-function-dax.md +++ b/query-languages/dax/len-function-dax.md @@ -6,36 +6,36 @@ title: "LEN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the number of characters in a text string. - -## Syntax - +Returns the number of characters in a text string. + +## Syntax + ```dax -LEN() +LEN() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text whose length you want to find, or a column that contains text. Spaces count as characters.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text whose length you want to find, or a column that contains text. Spaces count as characters.| + ## Return value -A whole number indicating the number of characters in the text string. - +A whole number indicating the number of characters in the text string. + ## Remarks -- Whereas Microsoft Excel has different functions for working with single-byte and double-byte character languages, DAX uses Unicode and stores all characters with the same length. - -- LEN always counts each character as 1, no matter what the default language setting is. - -- If you use LEN with a column that contains non-text values, such as dates or Booleans, the function implicitly casts the value to text, using the current column format. - +- Whereas Microsoft Excel has different functions for working with single-byte and double-byte character languages, DAX uses Unicode and stores all characters with the same length. + +- LEN always counts each character as 1, no matter what the default language setting is. + +- If you use LEN with a column that contains non-text values, such as dates or Booleans, the function implicitly casts the value to text, using the current column format. + ## Example -The following formula sums the lengths of addresses in the columns, [AddressLine1] and [AddressLine2]. - +The following formula sums the lengths of addresses in the columns, [AddressLine1] and [AddressLine2]. + ```dax -= LEN([AddressLine1])+LEN([AddressLin2]) += LEN([AddressLine1])+LEN([AddressLin2]) ``` diff --git a/query-languages/dax/linest-function-dax.md b/query-languages/dax/linest-function-dax.md index 3a42d067f..e96c5de01 100644 --- a/query-languages/dax/linest-function-dax.md +++ b/query-languages/dax/linest-function-dax.md @@ -113,5 +113,5 @@ TotalSalesAmount = Slope1 * YearlyIncome + Slope2 * TotalChildren + Slope3 * Bir ## Related content -[LINESTX](linestx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[LINESTX](linestx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/linestx-function-dax.md b/query-languages/dax/linestx-function-dax.md index 3c0a397d3..ad59b7a89 100644 --- a/query-languages/dax/linestx-function-dax.md +++ b/query-languages/dax/linestx-function-dax.md @@ -119,5 +119,5 @@ Total Sales = Slope1 * Age + Slope2 * NumOfChildren + Intercept ## Related content -[LINEST](linest-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[LINEST](linest-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/ln-function-dax.md b/query-languages/dax/ln-function-dax.md index abd689bfc..f137416e6 100644 --- a/query-languages/dax/ln-function-dax.md +++ b/query-languages/dax/ln-function-dax.md @@ -6,37 +6,37 @@ title: "LN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the natural logarithm of a number. Natural logarithms are based on the constant e (2.71828182845904). - -## Syntax - +Returns the natural logarithm of a number. Natural logarithms are based on the constant e (2.71828182845904). + +## Syntax + ```dax -LN() +LN() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The positive number for which you want the natural logarithm.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The positive number for which you want the natural logarithm.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -LN is the inverse of the EXP function. - +LN is the inverse of the EXP function. + ## Example -The following example returns the natural logarithm of the number in the column, `[Values]`. - +The following example returns the natural logarithm of the number in the column, `[Values]`. + ```dax -= LN([Values]) += LN([Values]) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[EXP function](exp-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[EXP function](exp-function-dax.md) diff --git a/query-languages/dax/log-function-dax.md b/query-languages/dax/log-function-dax.md index be6e8dd01..2d3517545 100644 --- a/query-languages/dax/log-function-dax.md +++ b/query-languages/dax/log-function-dax.md @@ -6,44 +6,44 @@ title: "LOG function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the logarithm of a number to the base you specify. - -## Syntax - +Returns the logarithm of a number to the base you specify. + +## Syntax + ```dax -LOG(,) +LOG(,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The positive number for which you want the logarithm.| -|`base`|The base of the logarithm. If omitted, the base is 10.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The positive number for which you want the logarithm.| +|`base`|The base of the logarithm. If omitted, the base is 10.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -You might receive an error if the value is too large to be displayed. - -The function LOG10 is similar, but always returns the common logarithm, meaning the logarithm for the base 10. - +You might receive an error if the value is too large to be displayed. + +The function LOG10 is similar, but always returns the common logarithm, meaning the logarithm for the base 10. + ## Example -The following formulas return the same result, 2. - +The following formulas return the same result, 2. + ```dax -= LOG(100,10) -= LOG(100) -= LOG10(100) += LOG(100,10) += LOG(100) += LOG10(100) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[EXP function](exp-function-dax.md) -[LOG function](log-function-dax.md) -[LOG function](log-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[EXP function](exp-function-dax.md) +[LOG function](log-function-dax.md) +[LOG function](log-function-dax.md) diff --git a/query-languages/dax/log10-function-dax.md b/query-languages/dax/log10-function-dax.md index 0dc472051..a2b56a750 100644 --- a/query-languages/dax/log10-function-dax.md +++ b/query-languages/dax/log10-function-dax.md @@ -6,42 +6,42 @@ title: "LOG10 function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the base-10 logarithm of a number. - -## Syntax - +Returns the base-10 logarithm of a number. + +## Syntax + ```dax -LOG10() +LOG10() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|A positive number for which you want the base-10 logarithm.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|A positive number for which you want the base-10 logarithm.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -The LOG function lets you change the base of the logarithm, instead of using the base 10. - +The LOG function lets you change the base of the logarithm, instead of using the base 10. + ## Example -The following formulas return the same result, 2: - +The following formulas return the same result, 2: + ```dax -= LOG(100,10) -= LOG(100) -= LOG10(100) += LOG(100,10) += LOG(100) += LOG10(100) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[EXP function](exp-function-dax.md) -[LOG function](log-function-dax.md) -[LOG function](log-function-dax.md) - +[Math and Trig functions](math-and-trig-functions-dax.md) +[EXP function](exp-function-dax.md) +[LOG function](log-function-dax.md) +[LOG function](log-function-dax.md) + diff --git a/query-languages/dax/logical-functions-dax.md b/query-languages/dax/logical-functions-dax.md index d47a38092..88d235cb4 100644 --- a/query-languages/dax/logical-functions-dax.md +++ b/query-languages/dax/logical-functions-dax.md @@ -4,8 +4,8 @@ title: "Logical functions (DAX)" --- # Logical functions -Logical functions act upon an expression to return information about the values or sets in the expression. For example, you can use the IF function to check the result of an expression and create conditional results. - +Logical functions act upon an expression to return information about the values or sets in the expression. For example, you can use the IF function to check the result of an expression and create conditional results. + ## In this category |Function |Description | diff --git a/query-languages/dax/lookupvalue-function-dax.md b/query-languages/dax/lookupvalue-function-dax.md index 9ceead2f8..43b5b51a5 100644 --- a/query-languages/dax/lookupvalue-function-dax.md +++ b/query-languages/dax/lookupvalue-function-dax.md @@ -96,5 +96,5 @@ CHANNEL = RELATED('Sales Order'[Channel]) ## Related content -[RELATED function (DAX)](related-function-dax.md) -[Information functions](information-functions-dax.md) +[RELATED function (DAX)](related-function-dax.md) +[Information functions](information-functions-dax.md) diff --git a/query-languages/dax/lower-function-dax.md b/query-languages/dax/lower-function-dax.md index 25a628969..2dbf08169 100644 --- a/query-languages/dax/lower-function-dax.md +++ b/query-languages/dax/lower-function-dax.md @@ -6,36 +6,36 @@ title: "LOWER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Converts all letters in a text string to lowercase. - -## Syntax - +Converts all letters in a text string to lowercase. + +## Syntax + ```dax -LOWER() +LOWER() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text you want to convert to lowercase, or a reference to a column that contains text.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text you want to convert to lowercase, or a reference to a column that contains text.| + ## Return value -Text in lowercase. - +Text in lowercase. + ## Remarks -Characters that are not letters are not changed. For example, the formula `= LOWER("123ABC")` returns `123abc`. - +Characters that are not letters are not changed. For example, the formula `= LOWER("123ABC")` returns `123abc`. + ## Example -The following formula gets each row in the column, [ProductCode], and converts the value to all lowercase. Numbers in the column are not affected. - +The following formula gets each row in the column, [ProductCode], and converts the value to all lowercase. Numbers in the column are not affected. + ```dax -= LOWER('New Products'[ProductCode]) += LOWER('New Products'[ProductCode]) ``` - + ## Related content -[Text functions](text-functions-dax.md) +[Text functions](text-functions-dax.md) diff --git a/query-languages/dax/matchby-function-dax.md b/query-languages/dax/matchby-function-dax.md index 0d48e66fb..db6d763d7 100644 --- a/query-languages/dax/matchby-function-dax.md +++ b/query-languages/dax/matchby-function-dax.md @@ -10,21 +10,21 @@ author: keshen In window functions, defines the columns that are used to determine how to match data and identify the current row. -## Syntax +## Syntax ```dax MATCHBY ( [[, matchBy_columnName [, …]]] ) ``` -### Parameters +### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`matchBy_columnName`| (Optional) The name of an existing column to be used to identify current row in the window function’s `relation`.
RELATED() may also be used to refer to a column in a table related to `relation`.| ## Return value -This function does not return a value. +This function does not return a value. ## Remarks @@ -36,11 +36,11 @@ See [OFFSET](offset-function-dax.md). ## Related content -[Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) -[INDEX](index-function-dax.md) -[OFFSET](offset-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) -[RANK](rank-function-dax.md) +[Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) +[INDEX](index-function-dax.md) +[OFFSET](offset-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) diff --git a/query-languages/dax/math-and-trig-functions-dax.md b/query-languages/dax/math-and-trig-functions-dax.md index 81202aa5b..e890d59fd 100644 --- a/query-languages/dax/math-and-trig-functions-dax.md +++ b/query-languages/dax/math-and-trig-functions-dax.md @@ -4,8 +4,8 @@ title: "Math and Trig functions (DAX)" --- # Math and Trig functions -The mathematical functions in Data Analysis Expressions (DAX) are very similar to the Excel mathematical and trigonometric functions. This section lists the mathematical functions provided by DAX. - +The mathematical functions in Data Analysis Expressions (DAX) are very similar to the Excel mathematical and trigonometric functions. This section lists the mathematical functions provided by DAX. + ## In this category |Function |Description | diff --git a/query-languages/dax/max-function-dax.md b/query-languages/dax/max-function-dax.md index d7d593730..da2f6ff4d 100644 --- a/query-languages/dax/max-function-dax.md +++ b/query-languages/dax/max-function-dax.md @@ -6,53 +6,53 @@ title: "MAX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the largest value in a column, or between two scalar expressions. - -## Syntax - +Returns the largest value in a column, or between two scalar expressions. + +## Syntax + ```dax -MAX() +MAX() ``` ```dax MAX(, ) ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column in which you want to find the largest value.| -|`expression`|Any DAX expression which returns a single value.| - + +|Term|Definition| +|--------|--------------| +|`column`|The column in which you want to find the largest value.| +|`expression`|Any DAX expression which returns a single value.| + ## Return value The largest value. - -## Remarks + +## Remarks - When comparing two expressions, blank is treated as 0 when comparing. That is, Max(1, Blank() ) returns 1, and Max( -1, Blank() ) returns 0. If both arguments are blank, MAX returns a blank. If either expression returns a value which is not allowed, MAX returns an error. - `TRUE`/`FALSE` values are not supported. If you want to evaluate a column of `TRUE`/`FALSE` values, use the MAXA function. - + ## Example 1 -The following example returns the largest value found in the ExtendedAmount column of the InternetSales table. - +The following example returns the largest value found in the ExtendedAmount column of the InternetSales table. + ```dax -= MAX(InternetSales[ExtendedAmount]) += MAX(InternetSales[ExtendedAmount]) ``` ## Example 2 -The following example returns the largest value between the result of two expressions. - +The following example returns the largest value between the result of two expressions. + ```dax = Max([TotalSales], [TotalPurchases]) ``` ## Related content -[MAXA function](maxa-function-dax.md) -[MAXX function](maxx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[MAXA function](maxa-function-dax.md) +[MAXX function](maxx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/maxa-function-dax.md b/query-languages/dax/maxa-function-dax.md index ffc92120e..8235addc7 100644 --- a/query-languages/dax/maxa-function-dax.md +++ b/query-languages/dax/maxa-function-dax.md @@ -7,32 +7,32 @@ title: "MAXA function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the largest value in a column. - -## Syntax - + +## Syntax + ```dax -MAXA() +MAXA() ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column in which you want to find the largest value.| - + +|Term|Definition| +|--------|--------------| +|`column`|The column in which you want to find the largest value.| + ## Return value -The largest value. - +The largest value. + ## Remarks -- The MAXA function takes as argument a column, and looks for the largest value among the following types of values: - - Numbers - - Dates - -- Logical values, such as `TRUE` and `FALSE`. Rows that evaluate to `TRUE` count as 1; rows that evaluate to `FALSE` count as 0 (zero). - -- Empty cells are ignored. If the column contains no values that can be used, MAXA returns 0 (zero). +- The MAXA function takes as argument a column, and looks for the largest value among the following types of values: + - Numbers + - Dates + +- Logical values, such as `TRUE` and `FALSE`. Rows that evaluate to `TRUE` count as 1; rows that evaluate to `FALSE` count as 0 (zero). + +- Empty cells are ignored. If the column contains no values that can be used, MAXA returns 0 (zero). - If you want to compare text values, use the MAX function. @@ -40,22 +40,22 @@ The largest value. ## Example 1 -The following example returns the greatest value from a calculated column, named **ResellerMargin**, that computes the difference between list price and reseller price. - +The following example returns the greatest value from a calculated column, named **ResellerMargin**, that computes the difference between list price and reseller price. + ```dax -= MAXA([ResellerMargin]) += MAXA([ResellerMargin]) ``` - + ## Example 2 -The following example returns the largest value from a column that contains dates and times. Therefore, this formula gets the most recent transaction date. - +The following example returns the largest value from a column that contains dates and times. Therefore, this formula gets the most recent transaction date. + ```dax -= MAXA([TransactionDate]) += MAXA([TransactionDate]) ``` - + ## Related content -[MAX function](max-function-dax.md) -[MAXX function](maxx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[MAX function](max-function-dax.md) +[MAXX function](maxx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/maxx-function-dax.md b/query-languages/dax/maxx-function-dax.md index 8853973f1..15d865424 100644 --- a/query-languages/dax/maxx-function-dax.md +++ b/query-languages/dax/maxx-function-dax.md @@ -7,34 +7,34 @@ title: "MAXX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the highest value that results from evaluating an expression for each row of a table. - -## Syntax - + +## Syntax + ```dax -MAXX(
,,[]) +MAXX(
,,[]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of the table.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| |`variant`|(Optional) If `TRUE`, and if there are variant or mixed value types, the highest value based on ORDER BY DESC is returned.| - + ## Return value The highest value. - + ## Remarks -- The `table` argument to the MAXX function can be a table name or an expression that evaluates to a table. The second argument indicates the expression to be evaluated for each row of the table. - -- Of the values to evaluate, only the following are counted: +- The `table` argument to the MAXX function can be a table name or an expression that evaluates to a table. The second argument indicates the expression to be evaluated for each row of the table. + +- Of the values to evaluate, only the following are counted: - Numbers - Texts - Dates - + - Blank values are skipped. `TRUE`/`FALSE` values are not supported. - If the expression has variant or mixed value types such as text and number, then by default MAXX considers only numbers. If ` = `TRUE``, the maximum value is returned. @@ -43,22 +43,22 @@ The highest value. ## Example 1 -The following formula uses an expression as the second argument to calculate the total amount of taxes and shipping for each order in the InternetSales table. The expected result is 375.7184. - +The following formula uses an expression as the second argument to calculate the total amount of taxes and shipping for each order in the InternetSales table. The expected result is 375.7184. + ```dax -= MAXX(InternetSales, InternetSales[TaxAmt]+ InternetSales[Freight]) += MAXX(InternetSales, InternetSales[TaxAmt]+ InternetSales[Freight]) ``` - + ## Example 2 -The following formula first filters the InternetSales table by using a FILTER expression to return a subset of orders for a specific sales region defined as, [SalesTerritory] = 5. The MAXX function then evaluates the expression used as the second argument for each row of the filtered table and returns the highest amount for taxes and shipping for just those orders. The expected result is 250.3724. - +The following formula first filters the InternetSales table by using a FILTER expression to return a subset of orders for a specific sales region defined as, [SalesTerritory] = 5. The MAXX function then evaluates the expression used as the second argument for each row of the filtered table and returns the highest amount for taxes and shipping for just those orders. The expected result is 250.3724. + ```dax -= MAXX(FILTER(InternetSales,[SalesTerritoryCode]="5"), InternetSales[TaxAmt]+ InternetSales[Freight]) += MAXX(FILTER(InternetSales,[SalesTerritoryCode]="5"), InternetSales[TaxAmt]+ InternetSales[Freight]) ``` - + ## Related content -[MAX function](max-function-dax.md) -[MAXA function](maxa-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[MAX function](max-function-dax.md) +[MAXA function](maxa-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/mduration-function-dax.md b/query-languages/dax/mduration-function-dax.md index 4480b9c3b..16777cb65 100644 --- a/query-languages/dax/mduration-function-dax.md +++ b/query-languages/dax/mduration-function-dax.md @@ -18,8 +18,8 @@ MDURATION(, , , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`coupon`|The security's annual coupon rate.| diff --git a/query-languages/dax/measure-statement-dax.md b/query-languages/dax/measure-statement-dax.md index 8f909bebf..e88da2b46 100644 --- a/query-languages/dax/measure-statement-dax.md +++ b/query-languages/dax/measure-statement-dax.md @@ -40,7 +40,7 @@ The calculated result of the measure expression. ## Related content -[DEFINE](define-statement-dax.md) -[EVALUATE](evaluate-statement-dax.md) -[VAR](var-dax.md) -[DAX queries](dax-queries.md) +[DEFINE](define-statement-dax.md) +[EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[DAX queries](dax-queries.md) diff --git a/query-languages/dax/median-function-dax.md b/query-languages/dax/median-function-dax.md index 901f60931..1ddb09f78 100644 --- a/query-languages/dax/median-function-dax.md +++ b/query-languages/dax/median-function-dax.md @@ -5,43 +5,43 @@ title: "MEDIAN function (DAX)" # MEDIAN [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the median of numbers in a column. - -To return the median of an expresssion evaluated for each row in a table, use [MEDIANX function](medianx-function-dax.md). - -## Syntax - + +Returns the median of numbers in a column. + +To return the median of an expresssion evaluated for each row in a table, use [MEDIANX function](medianx-function-dax.md). + +## Syntax + ```dax -MEDIAN() +MEDIAN() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column that contains the numbers for which the median is to be computed.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|The column that contains the numbers for which the median is to be computed.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks - Only the numbers in the column are counted. Blanks are ignored. Logical values, dates, and text are not supported. - -- MEDIAN( Table[Column] ) is equivalent to MEDIANX( Table, Table[Column] ). + +- MEDIAN( Table[Column] ) is equivalent to MEDIANX( Table, Table[Column] ). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following computes the median of a column named Age in a table named Customers: - +The following computes the median of a column named Age in a table named Customers: + ```dax -= MEDIAN( Customers[Age] ) += MEDIAN( Customers[Age] ) ``` - + ## Related content -[MEDIANX function](medianx-function-dax.md) +[MEDIANX function](medianx-function-dax.md) diff --git a/query-languages/dax/medianx-function-dax.md b/query-languages/dax/medianx-function-dax.md index 6d0e61310..a1ecbbad9 100644 --- a/query-languages/dax/medianx-function-dax.md +++ b/query-languages/dax/medianx-function-dax.md @@ -5,48 +5,48 @@ title: "MEDIANX function (DAX)" # MEDIANX [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the median number of an expression evaluated for each row in a table. - -To return the median of numbers in a column, use [MEDIAN function](median-function-dax.md). - -## Syntax - + +Returns the median number of an expression evaluated for each row in a table. + +To return the median of numbers in a column, use [MEDIAN function](median-function-dax.md). + +## Syntax + ```dax -MEDIANX(
, ) +MEDIANX(
, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of the table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- The MEDIANX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers for which you want to compute the median, or an expression that evaluates to a column. - +- The MEDIANX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers for which you want to compute the median, or an expression that evaluates to a column. + - Only the numbers in the column are counted. - Logical values and text are ignored. -- MEDIANX does not ignore blanks; however, MEDIAN does ignore blanks +- MEDIANX does not ignore blanks; however, MEDIAN does ignore blanks - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following computes the median age of customers who live in the USA. - +The following computes the median age of customers who live in the USA. + ```dax -= MEDIANX( FILTER(Customers, RELATED( Geography[Country]="USA" ) ), Customers[Age] ) += MEDIANX( FILTER(Customers, RELATED( Geography[Country]="USA" ) ), Customers[Age] ) ``` - + ## Related content -[MEDIAN function](median-function-dax.md) +[MEDIAN function](median-function-dax.md) diff --git a/query-languages/dax/mid-function-dax.md b/query-languages/dax/mid-function-dax.md index 620af07ea..a7fc84d27 100644 --- a/query-languages/dax/mid-function-dax.md +++ b/query-languages/dax/mid-function-dax.md @@ -6,30 +6,30 @@ title: "MID function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a string of characters from the middle of a text string, given a starting position and length. - -## Syntax - +Returns a string of characters from the middle of a text string, given a starting position and length. + +## Syntax + ```dax -MID(, , ) +MID(, , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text string from which you want to extract the characters, or a column that contains text.| -|`start_num`|The position of the first character you want to extract. Positions start at 1.| -|`num_chars`|The number of characters to return.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text string from which you want to extract the characters, or a column that contains text.| +|`start_num`|The position of the first character you want to extract. Positions start at 1.| +|`num_chars`|The number of characters to return.| + ## Return value -A string of text of the specified length. - +A string of text of the specified length. + ## Remarks -Whereas Microsoft Excel has different functions for working with single-byte and double-byte characters languages, DAX uses Unicode and stores all characters with the same length. - -## Examples +Whereas Microsoft Excel has different functions for working with single-byte and double-byte characters languages, DAX uses Unicode and stores all characters with the same length. + +## Examples The following expression, @@ -46,7 +46,7 @@ MID('Reseller'[ResellerName],1,5)) ``` Returns the same result as `LEFT([ResellerName],5)`. Both expressions return the first 5 letters of column, `[ResellerName]`. - + ## Related content -[Text functions](text-functions-dax.md) +[Text functions](text-functions-dax.md) diff --git a/query-languages/dax/min-function-dax.md b/query-languages/dax/min-function-dax.md index ebe9f2d19..118bf9ae2 100644 --- a/query-languages/dax/min-function-dax.md +++ b/query-languages/dax/min-function-dax.md @@ -7,11 +7,11 @@ title: "MIN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the smallest value in a column, or between two scalar expressions. - -## Syntax - + +## Syntax + ```dax -MIN() +MIN() ``` ```dax @@ -19,54 +19,54 @@ MIN(, ) ``` ### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column in which you want to find the smallest value.| -|`expression`|Any DAX expression which returns a single value.| - + +|Term|Definition| +|--------|--------------| +|`column`|The column in which you want to find the smallest value.| +|`expression`|Any DAX expression which returns a single value.| + ## Return value -The smallest value. - +The smallest value. + ## Remarks -- The MIN function takes a column or two expressions as an argument, and returns the smallest value. The following types of values in the columns are counted: +- The MIN function takes a column or two expressions as an argument, and returns the smallest value. The following types of values in the columns are counted: - Numbers - Texts - - Dates + - Dates - Blanks - When comparing expressions, blank is treated as 0 when comparing. That is, Min(1,Blank() ) returns 0, and Min( -1, Blank() ) returns -1. If both arguments are blank, MIN returns a blank. If either expression returns a value which is not allowed, MIN returns an error. - `TRUE`/`FALSE` values are not supported. If you want to evaluate a column of `TRUE`/`FALSE` values, use the MINA function. - + ## Example 1 -The following example returns the smallest value from the calculated column, ResellerMargin. - +The following example returns the smallest value from the calculated column, ResellerMargin. + ```dax -= MIN([ResellerMargin]) += MIN([ResellerMargin]) ``` - + ## Example 2 -The following example returns the smallest value from a column that contains dates and times, TransactionDate. This formula therefore returns the date that is earliest. - +The following example returns the smallest value from a column that contains dates and times, TransactionDate. This formula therefore returns the date that is earliest. + ```dax -= MIN([TransactionDate]) += MIN([TransactionDate]) ``` ## Example 3 -The following example returns the smallest value from the result of two scalar expressions. - +The following example returns the smallest value from the result of two scalar expressions. + ```dax = Min([TotalSales], [TotalPurchases]) ``` ## Related content -[MINA function](mina-function-dax.md) -[MINX function](minx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[MINA function](mina-function-dax.md) +[MINX function](minx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/mina-function-dax.md b/query-languages/dax/mina-function-dax.md index 34be53309..254a4b71c 100644 --- a/query-languages/dax/mina-function-dax.md +++ b/query-languages/dax/mina-function-dax.md @@ -7,52 +7,52 @@ title: "MINA function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the smallest value in a column. - -## Syntax - + +## Syntax + ```dax -MINA() +MINA() ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column for which you want to find the minimum value.| - + +|Term|Definition| +|--------|--------------| +|`column`|The column for which you want to find the minimum value.| + ## Return value -The smallest value. - +The smallest value. + ## Remarks -- The MINA function takes as argument a column that contains numbers, and determines the smallest value as follows: - - If the column contains no values, MINA returns 0 (zero). +- The MINA function takes as argument a column that contains numbers, and determines the smallest value as follows: + - If the column contains no values, MINA returns 0 (zero). - Rows in the column that evaluates to logical values, such as `TRUE` and `FALSE` are treated as 1 if `TRUE` and 0 (zero) if `FALSE`. - - Empty cells are ignored. - + - Empty cells are ignored. + - If you want to compare text values, use the MIN function. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example 1 -The following expression returns the minimum freight charge from the table, InternetSales. - +The following expression returns the minimum freight charge from the table, InternetSales. + ```dax -= MINA(InternetSales[Freight]) += MINA(InternetSales[Freight]) ``` - + ## Example 2 -The following expression returns the minimum value in the column, PostalCode. Because the data type of the column is text, the function does not find any values, and the formula returns zero (0). - +The following expression returns the minimum value in the column, PostalCode. Because the data type of the column is text, the function does not find any values, and the formula returns zero (0). + ```dax -= MINA([PostalCode]) += MINA([PostalCode]) ``` - + ## Related content -[MIN function](min-function-dax.md) -[MINX function](minx-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[MIN function](min-function-dax.md) +[MINX function](minx-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/minute-function-dax.md b/query-languages/dax/minute-function-dax.md index fb3b30e3f..3f8e974d4 100644 --- a/query-languages/dax/minute-function-dax.md +++ b/query-languages/dax/minute-function-dax.md @@ -6,49 +6,49 @@ title: "MINUTE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the minute as a number from 0 to 59, given a date and time value. - -## Syntax - +Returns the minute as a number from 0 to 59, given a date and time value. + +## Syntax + ```dax -MINUTE() +MINUTE() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`datetime`|A `datetime` value or text in an accepted time format, such as 16:48:00 or 4:48 PM.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`datetime`|A `datetime` value or text in an accepted time format, such as 16:48:00 or 4:48 PM.| + ## Return value -An integer number from 0 to 59. - +An integer number from 0 to 59. + ## Remarks -- In contrast to Microsoft Excel, which stores dates and times in a serial numeric format, DAX uses a `datetime` data type for dates and times. You can provide the `datetime` value to the MINUTE function by referencing a column that stores dates and times, by using a date/time function, or by using an expression that returns a date and time. - -- When the `datetime` argument is a text representation of the date and time, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator and any input text using colons as time separators will parse correctly. Verify your locale settings to understand your results. - +- In contrast to Microsoft Excel, which stores dates and times in a serial numeric format, DAX uses a `datetime` data type for dates and times. You can provide the `datetime` value to the MINUTE function by referencing a column that stores dates and times, by using a date/time function, or by using an expression that returns a date and time. + +- When the `datetime` argument is a text representation of the date and time, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator and any input text using colons as time separators will parse correctly. Verify your locale settings to understand your results. + ## Example 1 -The following example returns the minute from the value stored in the **TransactionTime** column of the **Orders** table. - +The following example returns the minute from the value stored in the **TransactionTime** column of the **Orders** table. + ```dax -= MINUTE(Orders[TransactionTime]) += MINUTE(Orders[TransactionTime]) ``` - + ## Example 2 -The following example returns 45, which is the number of minutes in the time 1:45 PM. - +The following example returns 45, which is the number of minutes in the time 1:45 PM. + ```dax -= MINUTE("March 23, 2008 1:45 PM") += MINUTE("March 23, 2008 1:45 PM") ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[HOUR function](hour-function-dax.md) -[YEAR function](year-function-dax.md) -[SECOND function](second-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[HOUR function](hour-function-dax.md) +[YEAR function](year-function-dax.md) +[SECOND function](second-function-dax.md) diff --git a/query-languages/dax/minx-function-dax.md b/query-languages/dax/minx-function-dax.md index d658ba707..60c5730b3 100644 --- a/query-languages/dax/minx-function-dax.md +++ b/query-languages/dax/minx-function-dax.md @@ -6,30 +6,30 @@ title: "MINX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the lowest value that results from evaluating an expression for each row of a table. +Returns the lowest value that results from evaluating an expression for each row of a table. ## Syntax ```dax -MINX(
, < expression>,[]) +MINX(
, < expression>,[]) ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of the table.| + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| |`variant`|(Optional) If `TRUE`, and if there are variant or mixed value types, the lowest value based on ORDER BY ASC is returned.| - + ## Return value -The lowest value. - +The lowest value. + ## Remarks -- The MINX function takes as its first argument a table or an expression that returns a table. The second argument contains the expression that is evaluated for each row of the table. - +- The MINX function takes as its first argument a table or an expression that returns a table. The second argument contains the expression that is evaluated for each row of the table. + - Blank values are skipped. `TRUE`/`FALSE` values are not supported. - If the expression has variant or mixed value types such as text and number, then by default MINX considers only numbers. If ` = TRUE`, the minimum value is returned. @@ -38,24 +38,24 @@ The lowest value. ## Example 1 -The following example filters the InternetSales table and returns only rows for a specific sales territory. The formula then finds the minimum value in the Freight column. - +The following example filters the InternetSales table and returns only rows for a specific sales territory. The formula then finds the minimum value in the Freight column. + ```dax -= MINX( FILTER(InternetSales, [SalesTerritoryKey] = 5),[Freight]) += MINX( FILTER(InternetSales, [SalesTerritoryKey] = 5),[Freight]) ``` - + ## Example 2 -The following example uses the same filtered table as in the previous example, but instead of merely looking up values in the column for each row of the filtered table, the function calculates the sum of two columns, Freight and TaxAmt, and returns the lowest value resulting from that calculation. - +The following example uses the same filtered table as in the previous example, but instead of merely looking up values in the column for each row of the filtered table, the function calculates the sum of two columns, Freight and TaxAmt, and returns the lowest value resulting from that calculation. + ```dax -= MINX( FILTER(InternetSales, InternetSales[SalesTerritoryKey] = 5), InternetSales[Freight] + InternetSales[TaxAmt]) += MINX( FILTER(InternetSales, InternetSales[SalesTerritoryKey] = 5), InternetSales[Freight] + InternetSales[TaxAmt]) ``` -In the first example, the names of the columns are unqualified. In the second example, the column names are fully qualified. - +In the first example, the names of the columns are unqualified. In the second example, the column names are fully qualified. + ## Related content -[MIN function](min-function-dax.md) -[MINA function](mina-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[MIN function](min-function-dax.md) +[MINA function](mina-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/mod-function-dax.md b/query-languages/dax/mod-function-dax.md index 373d5682c..3509ff935 100644 --- a/query-languages/dax/mod-function-dax.md +++ b/query-languages/dax/mod-function-dax.md @@ -6,52 +6,52 @@ title: "MOD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the remainder after a number is divided by a divisor. The result always has the same sign as the divisor. - -## Syntax - +Returns the remainder after a number is divided by a divisor. The result always has the same sign as the divisor. + +## Syntax + ```dax -MOD(, ) +MOD(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number for which you want to find the remainder after the division is performed.| -|`divisor`|The number by which you want to divide.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number for which you want to find the remainder after the division is performed.| +|`divisor`|The number by which you want to divide.| + ## Return value -A whole number. - +A whole number. + ## Remarks -- If the divisor is 0 (zero), MOD returns an error. You cannot divide by 0. - -- The MOD function can be expressed in terms of the INT function: MOD(n, d) = n - d*INT(n/d) - +- If the divisor is 0 (zero), MOD returns an error. You cannot divide by 0. + +- The MOD function can be expressed in terms of the INT function: MOD(n, d) = n - d*INT(n/d) + ## Example 1 -The following formula returns 1, the remainder of 3 divided by 2. - +The following formula returns 1, the remainder of 3 divided by 2. + ```dax -= MOD(3,2) += MOD(3,2) ``` - + ## Example 2 -The following formula returns -1, the remainder of 3 divided by 2. Note that the sign is always the same as the sign of the divisor. - +The following formula returns -1, the remainder of 3 divided by 2. Note that the sign is always the same as the sign of the divisor. + ```dax -= MOD(-3,-2) += MOD(-3,-2) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[ROUND function](round-function-dax.md) -[ROUNDUP function](roundup-function-dax.md) -[ROUNDDOWN function](rounddown-function-dax.md) -[MROUND function](mround-function-dax.md) -[INT function](int-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[ROUND function](round-function-dax.md) +[ROUNDUP function](roundup-function-dax.md) +[ROUNDDOWN function](rounddown-function-dax.md) +[MROUND function](mround-function-dax.md) +[INT function](int-function-dax.md) diff --git a/query-languages/dax/month-function-dax.md b/query-languages/dax/month-function-dax.md index 3ba06e7c9..1a2331e78 100644 --- a/query-languages/dax/month-function-dax.md +++ b/query-languages/dax/month-function-dax.md @@ -6,54 +6,54 @@ title: "MONTH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the month as a number from 1 (January) to 12 (December). - -## Syntax - +Returns the month as a number from 1 (January) to 12 (December). + +## Syntax + ```dax -MONTH() +MONTH() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`date`|A date in `datetime` or text format.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`date`|A date in `datetime` or text format.| + ## Return value -An integer number from 1 to 12. - +An integer number from 1 to 12. + ## Remarks -- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a `datetime` format when working with dates. You can enter the date used as argument to the MONTH function by typing an accepted `datetime` format, by providing a reference to a column that contains dates, or by using an expression that returns a date. - -- Values returned by the YEAR, MONTH and DAY functions will be Gregorian values regardless of the display format for the supplied date value. For example, if the display format of the supplied date is Hijri, the returned values for the YEAR, MONTH and DAY functions will be values associated with the equivalent Gregorian date. - -- When the date argument is a text representation of the date, the function uses the locale and date time settings of the client computer to understand the text value in order to perform the conversion. If the current date time settings represent a date in the format of Month/Day/Year, then the following string "1/8/2009" is interpreted as a datetime value equivalent to January 8th of 2009, and the function yields a result of 1. However, if the current date time settings represent a date in the format of Day/Month/Year, then the same string would be interpreted as a datetime value equivalent to August 1st of 2009, and the function yields a result of 8. - -- If the text representation of the date cannot be correctly converted to a datetime value, the function returns an error. - +- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a `datetime` format when working with dates. You can enter the date used as argument to the MONTH function by typing an accepted `datetime` format, by providing a reference to a column that contains dates, or by using an expression that returns a date. + +- Values returned by the YEAR, MONTH and DAY functions will be Gregorian values regardless of the display format for the supplied date value. For example, if the display format of the supplied date is Hijri, the returned values for the YEAR, MONTH and DAY functions will be values associated with the equivalent Gregorian date. + +- When the date argument is a text representation of the date, the function uses the locale and date time settings of the client computer to understand the text value in order to perform the conversion. If the current date time settings represent a date in the format of Month/Day/Year, then the following string "1/8/2009" is interpreted as a datetime value equivalent to January 8th of 2009, and the function yields a result of 1. However, if the current date time settings represent a date in the format of Day/Month/Year, then the same string would be interpreted as a datetime value equivalent to August 1st of 2009, and the function yields a result of 8. + +- If the text representation of the date cannot be correctly converted to a datetime value, the function returns an error. + ## Example 1 -The following expression returns 3, which is the integer corresponding to March, the month in the `date` argument. - +The following expression returns 3, which is the integer corresponding to March, the month in the `date` argument. + ```dax -= MONTH("March 3, 2008 3:45 PM") += MONTH("March 3, 2008 3:45 PM") ``` - + ## Example 2 -The following expression returns the month from the date in the `TransactionDate` column of the `Orders` table. - +The following expression returns the month from the date in the `TransactionDate` column of the `Orders` table. + ```dax -= MONTH(Orders[TransactionDate]) += MONTH(Orders[TransactionDate]) ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[HOUR function](hour-function-dax.md) -[MINUTE function](minute-function-dax.md) -[YEAR function](year-function-dax.md) -[SECOND function](second-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[HOUR function](hour-function-dax.md) +[MINUTE function](minute-function-dax.md) +[YEAR function](year-function-dax.md) +[SECOND function](second-function-dax.md) diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 5b430e3e1..b2754cc25 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -66,8 +66,8 @@ AvgSalesPrev12Months = MOVINGAVERAGE([SalesAmount], 12, FALSE, Rows, KEEP) ## See also -[INDEX](index-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[RUNNINGSUM](runningsum-function-dax.md) -[WINDOW](window-function-dax.md) +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[RUNNINGSUM](runningsum-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/mround-function-dax.md b/query-languages/dax/mround-function-dax.md index b6de2291d..7ed69ec60 100644 --- a/query-languages/dax/mround-function-dax.md +++ b/query-languages/dax/mround-function-dax.md @@ -6,58 +6,58 @@ title: "MROUND function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a number rounded to the desired multiple. - -## Syntax - +Returns a number rounded to the desired multiple. + +## Syntax + ```dax -MROUND(, ) +MROUND(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number to round.| -|`multiple`|The multiple of significance to which you want to round the number.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number to round.| +|`multiple`|The multiple of significance to which you want to round the number.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -MROUND rounds up, away from zero, if the remainder of dividing `number` by the specified `multiple` is greater than or equal to half the value of `multiple`. - -## Example: Decimal Places +MROUND rounds up, away from zero, if the remainder of dividing `number` by the specified `multiple` is greater than or equal to half the value of `multiple`. + +## Example: Decimal Places + +The following expression rounds 1.3 to the nearest multiple of .2. The expected result is 1.4. -The following expression rounds 1.3 to the nearest multiple of .2. The expected result is 1.4. - ```dax -= MROUND(1.3,0.2) += MROUND(1.3,0.2) ``` - -## Example: Negative Numbers - -The following expression rounds -10 to the nearest multiple of -3. The expected result is -9. - + +## Example: Negative Numbers + +The following expression rounds -10 to the nearest multiple of -3. The expected result is -9. + ```dax -= MROUND(-10,-3) += MROUND(-10,-3) ``` - -## Example: Error + +## Example: Error The following expression returns an error, because the numbers have different signs. - + ```dax -= MROUND(5,-2) += MROUND(5,-2) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[ROUND function](round-function-dax.md) -[ROUNDUP function](roundup-function-dax.md) -[ROUNDDOWN function](rounddown-function-dax.md) -[MROUND function](mround-function-dax.md) -[INT function](int-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[ROUND function](round-function-dax.md) +[ROUNDUP function](roundup-function-dax.md) +[ROUNDDOWN function](rounddown-function-dax.md) +[MROUND function](mround-function-dax.md) +[INT function](int-function-dax.md) diff --git a/query-languages/dax/naturalinnerjoin-function-dax.md b/query-languages/dax/naturalinnerjoin-function-dax.md index f64ffb5d1..4602a67a3 100644 --- a/query-languages/dax/naturalinnerjoin-function-dax.md +++ b/query-languages/dax/naturalinnerjoin-function-dax.md @@ -5,37 +5,37 @@ title: "NATURALINNERJOIN function (DAX)" # NATURALINNERJOIN [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - + Performs an inner join of a table with another table. - -## Syntax - + +## Syntax + ```dax -NATURALINNERJOIN(, ) +NATURALINNERJOIN(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`LeftTable`|A table expression defining the table on the left side of the join.| -|`RightTable`|A table expression defining the table on the right side of the join.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`LeftTable`|A table expression defining the table on the left side of the join.| +|`RightTable`|A table expression defining the table on the right side of the join.| + ## Return value -A table which includes only rows for which the values in the common columns specified are present in both tables. The table returned will have the common columns from the left table and other columns from both the tables. - +A table which includes only rows for which the values in the common columns specified are present in both tables. The table returned will have the common columns from the left table and other columns from both the tables. + ## Remarks -- Tables are joined on common columns (by name) in the two tables. If the two tables have no common column names, an error is returned. +- Tables are joined on common columns (by name) in the two tables. If the two tables have no common column names, an error is returned. + +- There is no sort order guarantee for the results. + +- Columns being joined on must have the same data type in both tables. + +- Only columns from the same source table (have the same lineage) are joined on. For example, Products[ProductID], WebSales[ProductdID], StoreSales[ProductdID] with many-to-one relationships between WebSales and StoreSales and the Products table based on the ProductID column, WebSales and StoreSales tables are joined on [ProductID]. -- There is no sort order guarantee for the results. - -- Columns being joined on must have the same data type in both tables. - -- Only columns from the same source table (have the same lineage) are joined on. For example, Products[ProductID], WebSales[ProductdID], StoreSales[ProductdID] with many-to-one relationships between WebSales and StoreSales and the Products table based on the ProductID column, WebSales and StoreSales tables are joined on [ProductID]. - -- Strict comparison semantics are used during join. There is no type coercion; for example, 1 does not equal 1.0. +- Strict comparison semantics are used during join. There is no type coercion; for example, 1 does not equal 1.0. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/naturalleftouterjoin-function-dax.md b/query-languages/dax/naturalleftouterjoin-function-dax.md index fffec1d14..07bc474f2 100644 --- a/query-languages/dax/naturalleftouterjoin-function-dax.md +++ b/query-languages/dax/naturalleftouterjoin-function-dax.md @@ -5,37 +5,37 @@ title: "NATURALLEFTOUTERJOIN function (DAX)" # NATURALLEFTOUTERJOIN [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - + Performs a join of the LeftTable with the RightTable by using the Left Outer Join semantics. - -## Syntax - + +## Syntax + ```dax -NATURALLEFTOUTERJOIN(, ) +NATURALLEFTOUTERJOIN(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`LeftTable`|A table expression defining the table on the left side of the join.| -|`RightTable`|A table expression defining the table on the right side of the join.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`LeftTable`|A table expression defining the table on the left side of the join.| +|`RightTable`|A table expression defining the table on the right side of the join.| + ## Return value -A table which includes only rows from RightTable for which the values in the common columns specified are also present in LeftTable. The table returned will have the common columns from the left table and the other columns from both the tables. - +A table which includes only rows from RightTable for which the values in the common columns specified are also present in LeftTable. The table returned will have the common columns from the left table and the other columns from both the tables. + ## Remarks - Tables are joined on common columns (by name) in the two tables. If the two tables have no common column names, an error is returned. -- There is no sort order guarantee for the results. - -- Columns being joined on must have the same data type in both tables. - -- Only columns from the same source table (have the same lineage) are joined on. For example, Products[ProductID], WebSales[ProductdID], StoreSales[ProductdID] with many-to-one relationships between WebSales and StoreSales and the Products table based on the ProductID column, WebSales and StoreSales tables are joined on [ProductID]. - -- Strict comparison semantics are used during join. There is no type coercion; for example, 1 does not equal 1.0. +- There is no sort order guarantee for the results. + +- Columns being joined on must have the same data type in both tables. + +- Only columns from the same source table (have the same lineage) are joined on. For example, Products[ProductID], WebSales[ProductdID], StoreSales[ProductdID] with many-to-one relationships between WebSales and StoreSales and the Products table based on the ProductID column, WebSales and StoreSales tables are joined on [ProductID]. + +- Strict comparison semantics are used during join. There is no type coercion; for example, 1 does not equal 1.0. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/networkdays-function-dax.md b/query-languages/dax/networkdays-function-dax.md index eb560b849..ff47fe11b 100644 --- a/query-languages/dax/networkdays-function-dax.md +++ b/query-languages/dax/networkdays-function-dax.md @@ -17,8 +17,8 @@ NETWORKDAYS(, [, , ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`start_date`|A date that represents the start date. The dates for which the difference is to be computed. The start_date can be earlier than, the same as, or later than the end_date.| |`end_date`|A date that represents the end date. The dates for which the difference is to be computed. The start_date can be earlier than, the same as, or later than the end_date.| |`weekend`|Indicates the days of the week that are weekend days and are not included in the number of whole working days between start_date and end_date. Weekend is a weekend number that specifies when weekends occur.
Weekend number values indicate the following weekend days:
1 or omitted: Saturday, Sunday
2: Sunday, Monday
3: Monday, Tuesday
4: Tuesday, Wednesday
5: Wednesday, Thursday
6: Thursday, Friday
7: Friday, Saturday
11: Sunday only
12: Monday only
13: Tuesday only
14: Wednesday only
15: Thursday only
16: Friday only
17: Saturday only| diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 98cf9edca..fe1028031 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -10,7 +10,7 @@ While functions and functionality are being updated all the time, only those upd > [!IMPORTANT] > Not all functions are supported in all versions of Power BI Desktop, Analysis Services, and Power Pivot in Excel. New and updated functions are typically first introduced in Power BI Desktop, and then later in Analysis Services, Power Pivot in Excel, and tools. - + ## New functions |Function |Month | Description | diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 4916c06b5..f83241f73 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -8,28 +8,27 @@ title: "NEXT function (DAX)" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] Used in visual calculations only. Retrieves a value in the next element of an axis in the visual matrix. - -## Syntax - + +## Syntax + ```dax NEXT ( [, ][, ][, ][, reset] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| - ## Return value The value of `column` from the next element of the axis. - + ## Remarks This function can only be used in a visual calculation. @@ -37,7 +36,7 @@ This function can only be used in a visual calculation. ## Example The following visual calculation returns the sales amount of the next row on ROWS axis, that resets on the lowest parent. - + ```dax NextInternetSalesAmount = NEXT ( [Sum of SalesAmount], ROWS, LowestParent ) ``` @@ -47,6 +46,6 @@ The screenshot below shows the visual matrix and the visual calculation expressi ![DAX visual calculation](media/dax-queries/dax-visualcalc-next.png) ## Related content -[FIRST](first-function-dax.md) -[LAST](last-function-dax.md) +[FIRST](first-function-dax.md) +[LAST](last-function-dax.md) [PREVIOUS](PREVIOUS-function-dax.md) diff --git a/query-languages/dax/nextday-function-dax.md b/query-languages/dax/nextday-function-dax.md index f0c711997..a09a1a037 100644 --- a/query-languages/dax/nextday-function-dax.md +++ b/query-languages/dax/nextday-function-dax.md @@ -6,49 +6,49 @@ title: "NEXTDAY function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the next day, based on the first date specified in the `dates` column in the current context. - -## Syntax - +Returns a table that contains a column of all dates from the next day, based on the first date specified in the `dates` column in the current context. + +## Syntax + ```dax -NEXTDAY() +NEXTDAY() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column containing dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column containing dates.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -- This function returns all dates from the next day to the first date in the input parameter. For example, if the first date in the `dates` argument refers to June 10, 2009; then this function returns all dates equal to June 11, 2009. - -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. +- This function returns all dates from the next day to the first date in the input parameter. For example, if the first date in the `dates` argument refers to June 10, 2009; then this function returns all dates equal to June 11, 2009. + +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'next day sales' of Internet sales. - +The following sample formula creates a measure that calculates the 'next day sales' of Internet sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTDAY('DateTime'[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTDAY('DateTime'[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[NEXTQUARTER function](nextquarter-function-dax.md) -[NEXTMONTH function](nextmonth-function-dax.md) -[NEXTYEAR function](nextyear-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[NEXTQUARTER function](nextquarter-function-dax.md) +[NEXTMONTH function](nextmonth-function-dax.md) +[NEXTYEAR function](nextyear-function-dax.md) diff --git a/query-languages/dax/nextmonth-function-dax.md b/query-languages/dax/nextmonth-function-dax.md index 048a37f7b..c0836baf1 100644 --- a/query-languages/dax/nextmonth-function-dax.md +++ b/query-languages/dax/nextmonth-function-dax.md @@ -6,49 +6,49 @@ title: "NEXTMONTH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the next month, based on the first date in the `dates` column in the current context. - -## Syntax - +Returns a table that contains a column of all dates from the next month, based on the first date in the `dates` column in the current context. + +## Syntax + ```dax -NEXTMONTH() +NEXTMONTH() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column containing dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column containing dates.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -- This function returns all dates from the next day to the first date in the input parameter. For example, if the first date in the `dates` argument refers to June 10, 2009; then this function returns all dates for the month of July, 2009. - -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - +- This function returns all dates from the next day to the first date in the input parameter. For example, if the first date in the `dates` argument refers to June 10, 2009; then this function returns all dates for the month of July, 2009. + +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'next month sales' for Internet sales. - +The following sample formula creates a measure that calculates the 'next month sales' for Internet sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTMONTH('DateTime'[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTMONTH('DateTime'[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[NEXTDAY function](nextday-function-dax.md) -[NEXTQUARTER function](nextquarter-function-dax.md) -[NEXTYEAR function](nextyear-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[NEXTDAY function](nextday-function-dax.md) +[NEXTQUARTER function](nextquarter-function-dax.md) +[NEXTYEAR function](nextyear-function-dax.md) diff --git a/query-languages/dax/nextquarter-function-dax.md b/query-languages/dax/nextquarter-function-dax.md index e797100e7..3b0caaa3c 100644 --- a/query-languages/dax/nextquarter-function-dax.md +++ b/query-languages/dax/nextquarter-function-dax.md @@ -6,49 +6,49 @@ title: "NEXTQUARTER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates in the next quarter, based on the first date specified in the `dates` column, in the current context. - -## Syntax - +Returns a table that contains a column of all dates in the next quarter, based on the first date specified in the `dates` column, in the current context. + +## Syntax + ```dax -NEXTQUARTER() +NEXTQUARTER() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column containing dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column containing dates.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -- This function returns all dates in the next quarter, based on the first date in the input parameter. For example, if the first date in the `dates` column refers to June 10, 2009, this function returns all dates for the quarter July to September, 2009. - -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - +- This function returns all dates in the next quarter, based on the first date in the input parameter. For example, if the first date in the `dates` column refers to June 10, 2009, this function returns all dates for the quarter July to September, 2009. + +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'next quarter sales' for Internet sales. - +The following sample formula creates a measure that calculates the 'next quarter sales' for Internet sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTQUARTER('DateTime'[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTQUARTER('DateTime'[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[NEXTDAY function](nextday-function-dax.md) -[NEXTMONTH function](nextmonth-function-dax.md) -[NEXTYEAR function](nextyear-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[NEXTDAY function](nextday-function-dax.md) +[NEXTMONTH function](nextmonth-function-dax.md) +[NEXTYEAR function](nextyear-function-dax.md) diff --git a/query-languages/dax/nextyear-function-dax.md b/query-languages/dax/nextyear-function-dax.md index c0fda083a..bd2eb405d 100644 --- a/query-languages/dax/nextyear-function-dax.md +++ b/query-languages/dax/nextyear-function-dax.md @@ -6,52 +6,52 @@ title: "NEXTYEAR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates in the next year, based on the first date in the `dates` column, in the current context. - -## Syntax - +Returns a table that contains a column of all dates in the next year, based on the first date in the `dates` column, in the current context. + +## Syntax + ```dax -NEXTYEAR([,]) +NEXTYEAR([,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column containing dates.| -|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column containing dates.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -- This function returns all dates in the next year, based on the first date in the input column. For example, if the first date in the `dates` column refers to the year 2007, this function returns all dates for the year 2008. - -- The `dates` argument can be any of the following: +- This function returns all dates in the next year, based on the first date in the input column. For example, if the first date in the `dates` column refers to the year 2007, this function returns all dates for the year 2008. + +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. - + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'next year sales' for Internet sales. - +The following sample formula creates a measure that calculates the 'next year sales' for Internet sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTYEAR('DateTime'[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), NEXTYEAR('DateTime'[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[NEXTDAY function](nextday-function-dax.md) -[NEXTQUARTER function](nextquarter-function-dax.md) -[NEXTMONTH function](nextmonth-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[NEXTDAY function](nextday-function-dax.md) +[NEXTQUARTER function](nextquarter-function-dax.md) +[NEXTMONTH function](nextmonth-function-dax.md) diff --git a/query-languages/dax/nominal-function-dax.md b/query-languages/dax/nominal-function-dax.md index b08dab0ea..652920c09 100644 --- a/query-languages/dax/nominal-function-dax.md +++ b/query-languages/dax/nominal-function-dax.md @@ -18,8 +18,8 @@ NOMINAL(, ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`effect_rate`|The effective interest rate.| |`npery`|The number of compounding periods per year.| diff --git a/query-languages/dax/nonvisual-function-dax.md b/query-languages/dax/nonvisual-function-dax.md index a4e4365d0..2ce88bc61 100644 --- a/query-languages/dax/nonvisual-function-dax.md +++ b/query-languages/dax/nonvisual-function-dax.md @@ -8,23 +8,23 @@ title: "NONVISUAL function (DAX)" Marks a value filter in a [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression as non-visual. This function can only be used within a [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression. -## Syntax - +## Syntax + ```dax NONVISUAL() ``` - -### Parameters -|Term|Definition| -|--------|--------------| +### Parameters + +|Term|Definition| +|--------|--------------| |`expression`|Any DAX expression that returns a single value (not a table).| ## Return value A table of values. - -## Remarks + +## Remarks - Marks a value filter in [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) as not affecting measure values, but only applying to group-by columns. diff --git a/query-languages/dax/norm-dist-function-dax.md b/query-languages/dax/norm-dist-function-dax.md index 5c2742968..7393962f1 100644 --- a/query-languages/dax/norm-dist-function-dax.md +++ b/query-languages/dax/norm-dist-function-dax.md @@ -8,31 +8,31 @@ title: "NORM.DIST function (DAX)" Returns the normal distribution for the specified mean and standard deviation. -## Syntax - +## Syntax + ```dax -NORM.DIST(X, Mean, Standard_dev, Cumulative) +NORM.DIST(X, Mean, Standard_dev, Cumulative) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`X`|The value for which you want the distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`X`|The value for which you want the distribution.| |`Mean`|The arithmetic mean of the distribution.| |`Standard_dev`|The standard deviation of the distribution.| |`Cumulative*`|A logical value that determines the form of the function. If cumulative is `TRUE`, NORM.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| - + ## Return value -The normal distribution for the specified mean and standard deviation. +The normal distribution for the specified mean and standard deviation. ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + ```dax EVALUATE { NORM.DIST(42, 40, 1.5, TRUE) } ``` @@ -43,8 +43,8 @@ Returns |---------| |0.908788780274132 | -## Related content +## Related content -[NORM.S.DIST function](norm-s-dist-function-dax.md) -[NORM.INV function](norm-inv-function-dax.md) -[NORM.S.INV](norm-s-inv-function-dax.md) +[NORM.S.DIST function](norm-s-dist-function-dax.md) +[NORM.INV function](norm-inv-function-dax.md) +[NORM.S.INV](norm-s-inv-function-dax.md) diff --git a/query-languages/dax/norm-inv-function-dax.md b/query-languages/dax/norm-inv-function-dax.md index 82dcbf424..c59023be2 100644 --- a/query-languages/dax/norm-inv-function-dax.md +++ b/query-languages/dax/norm-inv-function-dax.md @@ -8,21 +8,21 @@ title: "NORM.INV function (DAX)" The inverse of the normal cumulative distribution for the specified mean and standard deviation. - -## Syntax - + +## Syntax + ```dax NORM.INV(Probability, Mean, Standard_dev) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Probability`|A probability corresponding to the normal distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Probability`|A probability corresponding to the normal distribution.| |`Mean`|The arithmetic mean of the distribution.| |`Standard_dev`|The standard deviation of the distribution.| - + ## Return value Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation. @@ -31,8 +31,8 @@ Returns the inverse of the normal cumulative distribution for the specified mean [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + ```dax EVALUATE { NORM.INV(0.908789, 40, 1.5) } ``` @@ -43,8 +43,8 @@ Returns |---------| |42.00000200956628780274132 | -## Related content +## Related content -[NORM.S.INV](norm-s-inv-function-dax.md) -[NORM.S.DIST function](norm-s-dist-function-dax.md) -[NORM.DIST function](norm-dist-function-dax.md) +[NORM.S.INV](norm-s-inv-function-dax.md) +[NORM.S.DIST function](norm-s-dist-function-dax.md) +[NORM.DIST function](norm-dist-function-dax.md) diff --git a/query-languages/dax/norm-s-dist-function-dax.md b/query-languages/dax/norm-s-dist-function-dax.md index 7826b0079..dcd0a363d 100644 --- a/query-languages/dax/norm-s-dist-function-dax.md +++ b/query-languages/dax/norm-s-dist-function-dax.md @@ -8,19 +8,19 @@ title: "NORM.S.DIST function (DAX)" Returns the standard normal distribution (has a mean of zero and a standard deviation of one). -## Syntax - +## Syntax + ```dax NORM.S.DIST(Z, Cumulative) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Z`|The value for which you want the distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Z`|The value for which you want the distribution.| |`Cumulative`|Cumulative is a logical value that determines the form of the function. If cumulative is `TRUE`, NORM.S.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| - + ## Return value The standard normal distribution (has a mean of zero and a standard deviation of one. @@ -29,8 +29,8 @@ The standard normal distribution (has a mean of zero and a standard deviation of [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + ```dax EVALUATE { NORM.S.DIST(1.333333, TRUE) } ``` @@ -41,8 +41,8 @@ Returns |---------| |0.908788725604095 | -## Related content +## Related content -[NORM.INV function](norm-inv-function-dax.md) -[NORM.DIST function](norm-dist-function-dax.md) -[NORM.S.INV](norm-s-inv-function-dax.md) +[NORM.INV function](norm-inv-function-dax.md) +[NORM.DIST function](norm-dist-function-dax.md) +[NORM.S.INV](norm-s-inv-function-dax.md) diff --git a/query-languages/dax/norm-s-inv-function-dax.md b/query-languages/dax/norm-s-inv-function-dax.md index 5663f9bdf..c2649b490 100644 --- a/query-languages/dax/norm-s-inv-function-dax.md +++ b/query-languages/dax/norm-s-inv-function-dax.md @@ -8,28 +8,28 @@ title: "NORM.S.INV function (DAX)" Returns the inverse of the standard normal cumulative distribution. The distribution has a mean of zero and a standard deviation of one. -## Syntax - +## Syntax + ```dax NORM.S.INV(Probability) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Probability`|A probability corresponding to the normal distribution.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Probability`|A probability corresponding to the normal distribution.| + ## Return value The inverse of the standard normal cumulative distribution. The distribution has a mean of zero and a standard deviation of one. - + ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + ```dax EVALUATE { NORM.S.INV(0.908789) } ``` @@ -40,8 +40,8 @@ Returns |---------| |1.33333467304411 | -## Related content +## Related content -[NORM.INV](norm-inv-function-dax.md) -[NORM.S.DIST function](norm-s-dist-function-dax.md) -[NORM.DIST function](norm-dist-function-dax.md) +[NORM.INV](norm-inv-function-dax.md) +[NORM.S.DIST function](norm-s-dist-function-dax.md) +[NORM.DIST function](norm-dist-function-dax.md) diff --git a/query-languages/dax/not-function-dax.md b/query-languages/dax/not-function-dax.md index e03c1e84a..53c4e1468 100644 --- a/query-languages/dax/not-function-dax.md +++ b/query-languages/dax/not-function-dax.md @@ -6,40 +6,40 @@ title: "NOT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Changes `FALSE` to `TRUE`, or `TRUE` to `FALSE`. - -## Syntax - +Changes `FALSE` to `TRUE`, or `TRUE` to `FALSE`. + +## Syntax + ```dax -NOT() +NOT() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`logical`|A value or expression that can be evaluated to `TRUE` or `FALSE`.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`logical`|A value or expression that can be evaluated to `TRUE` or `FALSE`.| + ## Return value -`TRUE` OR `FALSE`. - +`TRUE` OR `FALSE`. + ## Example -The following example retrieves values from the calculated column that was created to illustrate the IF function. For that example, the calculated column was named using the default name, **Calculated Column1**, and contains the following formula: `= IF([Orders]<300,"true","false")` - -The formula checks the value in the column, [Orders], and returns "true" if the number of orders is under 300. - -Now create a new calculated column, **Calculated Column2**, and type the following formula. - +The following example retrieves values from the calculated column that was created to illustrate the IF function. For that example, the calculated column was named using the default name, **Calculated Column1**, and contains the following formula: `= IF([Orders]<300,"true","false")` + +The formula checks the value in the column, [Orders], and returns "true" if the number of orders is under 300. + +Now create a new calculated column, **Calculated Column2**, and type the following formula. + ```dax -= NOT([CalculatedColumn1]) += NOT([CalculatedColumn1]) ``` -For each row in **Calculated Column1**, the values "true" and "false" are interpreted as the logical values `TRUE` or `FALSE`, and the NOT function returns the logical opposite of that value. - +For each row in **Calculated Column1**, the values "true" and "false" are interpreted as the logical values `TRUE` or `FALSE`, and the NOT function returns the logical opposite of that value. + ## Related content -[TRUE function](true-function-dax.md) -[FALSE function](false-function-dax.md) -[IF function](if-function-dax.md) +[TRUE function](true-function-dax.md) +[FALSE function](false-function-dax.md) +[IF function](if-function-dax.md) diff --git a/query-languages/dax/now-function-dax.md b/query-languages/dax/now-function-dax.md index 72c5c3d02..ea62b9580 100644 --- a/query-languages/dax/now-function-dax.md +++ b/query-languages/dax/now-function-dax.md @@ -6,37 +6,37 @@ title: "NOW function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the current date and time in `datetime` format. - -The NOW function is useful when you need to display the current date and time on a worksheet or calculate a value based on the current date and time, and have that value updated each time you open the worksheet. - -## Syntax - +Returns the current date and time in `datetime` format. + +The NOW function is useful when you need to display the current date and time on a worksheet or calculate a value based on the current date and time, and have that value updated each time you open the worksheet. + +## Syntax + ```dax -NOW() +NOW() ``` - + ## Return value -A date (`datetime)`. - -## Remarks +A date (`datetime)`. -- The result of the `NOW` function changes only when the column that contains the formula is refreshed. It is not updated continuously. +## Remarks + +- The result of the `NOW` function changes only when the column that contains the formula is refreshed. It is not updated continuously. - In the Power BI Service, the result of the `NOW` function is always in the UTC timezone. -- The `TODAY` function returns the same date but is not precise with regard to time; the time returned is always 12:00:00 AM and only the date is updated. - +- The `TODAY` function returns the same date but is not precise with regard to time; the time returned is always 12:00:00 AM and only the date is updated. + ## Example -The following example returns the current date and time plus 3.5 days: - +The following example returns the current date and time plus 3.5 days: + ```dax -= NOW()+3.5 += NOW()+3.5 ``` - + ## Related content -[UTCNOW function](utcnow-function-dax.md) -[TODAY function](today-function-dax.md) +[UTCNOW function](utcnow-function-dax.md) +[TODAY function](today-function-dax.md) diff --git a/query-languages/dax/nper-function-dax.md b/query-languages/dax/nper-function-dax.md index 81e4e0701..432fc118b 100644 --- a/query-languages/dax/nper-function-dax.md +++ b/query-languages/dax/nper-function-dax.md @@ -18,8 +18,8 @@ NPER(, , [, [, ]]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`rate`|The interest rate per period.| |`pmt`|The payment made each period; it cannot change over the life of the annuity. Typically, pmt contains principal and interest but no other fees or taxes.| |`pv`|The present value, or the lump-sum amount that a series of future payments is worth right now.| diff --git a/query-languages/dax/odd-function-dax.md b/query-languages/dax/odd-function-dax.md index ad5a9ceba..5a2dd07be 100644 --- a/query-languages/dax/odd-function-dax.md +++ b/query-languages/dax/odd-function-dax.md @@ -6,38 +6,38 @@ title: "ODD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns number rounded up to the nearest odd integer. - -## Syntax - +Returns number rounded up to the nearest odd integer. + +## Syntax + ```dax -ODD(number) +ODD(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Required. The value to round.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Required. The value to round.| + ## Return value -Returns number rounded up to the nearest odd integer. - +Returns number rounded up to the nearest odd integer. + ## Remarks -- If `number` is nonnumeric, ODD returns the `#VALUE!` error value. - -- Regardless of the sign of number, a value is rounded up when adjusted away from zero. If number is an odd integer, no rounding occurs. +- If `number` is nonnumeric, ODD returns the `#VALUE!` error value. + +- Regardless of the sign of number, a value is rounded up when adjusted away from zero. If number is an odd integer, no rounding occurs. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= ODD(1.5)`|Rounds 1.5 up to the nearest odd integer.|3| -|`= ODD(3)`|Rounds 3 up to the nearest odd integer.|3| -|`= ODD(2)`|Rounds 2 up to the nearest odd integer.|3| -|`= ODD(-1)`|Rounds -1 up to the nearest odd integer.|-1| -|`= ODD(-2)`|Rounds -2 up (away from 0) to the nearest odd integer.|-3| +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= ODD(1.5)`|Rounds 1.5 up to the nearest odd integer.|3| +|`= ODD(3)`|Rounds 3 up to the nearest odd integer.|3| +|`= ODD(2)`|Rounds 2 up to the nearest odd integer.|3| +|`= ODD(-1)`|Rounds -1 up to the nearest odd integer.|-1| +|`= ODD(-2)`|Rounds -2 up (away from 0) to the nearest odd integer.|-3| diff --git a/query-languages/dax/oddfprice-function-dax.md b/query-languages/dax/oddfprice-function-dax.md index d4ca52e70..3e7a598d3 100644 --- a/query-languages/dax/oddfprice-function-dax.md +++ b/query-languages/dax/oddfprice-function-dax.md @@ -18,8 +18,8 @@ ODDFPRICE(, , , , , , , , , , , , , , , , , ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`last_interest`|The security's last coupon date.| diff --git a/query-languages/dax/oddlyield-function-dax.md b/query-languages/dax/oddlyield-function-dax.md index e3ce77f9c..a77bd26ad 100644 --- a/query-languages/dax/oddlyield-function-dax.md +++ b/query-languages/dax/oddlyield-function-dax.md @@ -18,8 +18,8 @@ ODDLYIELD(, , , , , , ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`last_interest`|The security's last coupon date.| diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 3f8c579a2..4427ffaa8 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -8,30 +8,30 @@ title: "OFFSET function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns a single row that is positioned either before or after the *current row* within the same table, by a given offset. If the current row cannot be deduced to a single row, multiple rows may be returned. - -## Syntax - + +## Syntax + ```dax OFFSET ( [, or ][, ][, ][, ][, ][, ] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`delta`|The number of rows before (negative value) or after (positive value) the current row from which to obtain the data. It can be any DAX expression that returns a scalar value. | |`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | -|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | - + ## Return value -One or more rows from `relation`. - +One or more rows from `relation`. + ## Remarks Except for columns added by DAX table functions, each column in `relation`, when `matchBy` is not present, or each column in `matchBy` and `partitionBy`, when `matchBy` is present, must have a corresponding outer value to help define the current row on which to operate, with the following behavior: @@ -45,17 +45,17 @@ Except for columns added by DAX table functions, each column in `relation`, when If all of `relation`'s columns were added by DAX table functions, an error is returned. -If `matchBy` is present, OFFSET will try to use `matchBy` and `partitionBy` columns to identify the row. -If `matchBy` is not present and the columns specified within `orderBy` and `partitionBy` can't uniquely identify every row in `relation`, then: +If `matchBy` is present, OFFSET will try to use `matchBy` and `partitionBy` columns to identify the row. +If `matchBy` is not present and the columns specified within `orderBy` and `partitionBy` can't uniquely identify every row in `relation`, then: - OFFSET will try to find the least number of additional columns required to uniquely identify every row. -- If such columns can be found, OFFSET will automatically append these new columns to `orderBy`, and each partition is sorted using this new set of OrderBy columns. +- If such columns can be found, OFFSET will automatically append these new columns to `orderBy`, and each partition is sorted using this new set of OrderBy columns. - If such columns cannot be found, an error is returned. An empty table is returned if: - The corresponding outer value of an OrderBy or PartitionBy column does not exist within `relation`. -- The `delta` value causes a shift to a row that does not exist within the partition. +- The `delta` value causes a shift to a row that does not exist within the partition. If OFFSET is used within a calculated column defined on the same table as `relation`, and `orderBy` is omitted, an error is returned. @@ -64,7 +64,7 @@ If OFFSET is used within a calculated column defined on the same table as `relat ## Example 1 - calculated column The following DAX query: - + ```dax DEFINE VAR vRelation = SUMMARIZECOLUMNS ( @@ -149,10 +149,10 @@ The screenshot below shows the visual matrix and the visual calculation expressi ## Related content -[INDEX](index-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[MATCHBY](matchby-function-dax.md) -[WINDOW](window-function-dax.md) -[RANK](rank-function-dax.md) +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[MATCHBY](matchby-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) diff --git a/query-languages/dax/openingbalancemonth-function-dax.md b/query-languages/dax/openingbalancemonth-function-dax.md index 855478c17..e79181c81 100644 --- a/query-languages/dax/openingbalancemonth-function-dax.md +++ b/query-languages/dax/openingbalancemonth-function-dax.md @@ -6,50 +6,50 @@ title: "OPENINGBALANCEMONTH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the `expression` at the date corresponding to the end of the previous month in the current context. - -## Syntax - +Evaluates the `expression` at the date corresponding to the end of the previous month in the current context. + +## Syntax + ```dax -OPENINGBALANCEMONTH(,[,]) +OPENINGBALANCEMONTH(,[,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`expression`|An expression that returns a scalar value.| -|`dates`|A column that contains dates.| -|`filter`|(optional) An expression that specifies a filter to apply to the current context.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| + ## Return value -A scalar value that represents the `expression` evaluated at the first date of the month in the current context. - +A scalar value that represents the `expression` evaluated at the first date of the month in the current context. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- The `filter` expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- The `filter` expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'Month Start Inventory Value' of the product inventory. - +The following sample formula creates a measure that calculates the 'Month Start Inventory Value' of the product inventory. + ```dax -= OPENINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) += OPENINGBALANCEMONTH(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` - + ## Related content -[OPENINGBALANCEYEAR function](openingbalanceyear-function-dax.md) -[OPENINGBALANCEQUARTER function](openingbalancequarter-function-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[CLOSINGBALANCEMONTH function](closingbalancemonth-function-dax.md) +[OPENINGBALANCEYEAR function](openingbalanceyear-function-dax.md) +[OPENINGBALANCEQUARTER function](openingbalancequarter-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[CLOSINGBALANCEMONTH function](closingbalancemonth-function-dax.md) diff --git a/query-languages/dax/openingbalancequarter-function-dax.md b/query-languages/dax/openingbalancequarter-function-dax.md index ecb34f9e0..97ddd3ff8 100644 --- a/query-languages/dax/openingbalancequarter-function-dax.md +++ b/query-languages/dax/openingbalancequarter-function-dax.md @@ -6,50 +6,50 @@ title: "OPENINGBALANCEQUARTER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the `expression` at the date corresponding to the end of the previous quarter in the current context. - -## Syntax - +Evaluates the `expression` at the date corresponding to the end of the previous quarter in the current context. + +## Syntax + ```dax -OPENINGBALANCEQUARTER(,[,]) +OPENINGBALANCEQUARTER(,[,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`expression`|An expression that returns a scalar value.| -|`dates`|A column that contains dates.| -|`filter`|(optional) An expression that specifies a filter to apply to the current context.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| + ## Return value -A scalar value that represents the `expression` evaluated at the first date of the quarter in the current context. - +A scalar value that represents the `expression` evaluated at the first date of the quarter in the current context. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. +- The `dates` argument can be any of the following: + - A reference to a date/time column. - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- The `filter` expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- The `filter` expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'Quarter Start Inventory Value' of the product inventory. - +The following sample formula creates a measure that calculates the 'Quarter Start Inventory Value' of the product inventory. + ```dax -= OPENINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) += OPENINGBALANCEQUARTER(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` - + ## Related content -[OPENINGBALANCEYEAR function](openingbalanceyear-function-dax.md) -[OPENINGBALANCEMONTH function](openingbalancemonth-function-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[CLOSINGBALANCEQUARTER function](closingbalancequarter-function-dax.md) +[OPENINGBALANCEYEAR function](openingbalanceyear-function-dax.md) +[OPENINGBALANCEMONTH function](openingbalancemonth-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[CLOSINGBALANCEQUARTER function](closingbalancequarter-function-dax.md) diff --git a/query-languages/dax/openingbalanceyear-function-dax.md b/query-languages/dax/openingbalanceyear-function-dax.md index ac0ff369d..cae39c56f 100644 --- a/query-languages/dax/openingbalanceyear-function-dax.md +++ b/query-languages/dax/openingbalanceyear-function-dax.md @@ -6,53 +6,53 @@ title: "OPENINGBALANCEYEAR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the `expression` at the date corresponding to the end of the previous year in the current context. - -## Syntax - +Evaluates the `expression` at the date corresponding to the end of the previous year in the current context. + +## Syntax + ```dax -OPENINGBALANCEYEAR(,[,][,]) +OPENINGBALANCEYEAR(,[,][,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`expression`|An expression that returns a scalar value.| -|`dates`|A column that contains dates.| -|`filter`|(optional) An expression that specifies a filter to apply to the current context.| -|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| + ## Return value -A scalar value that represents the `expression` evaluated at the first date of the year in the current context. - +A scalar value that represents the `expression` evaluated at the first date of the year in the current context. + ## Remarks - The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- The `filter` expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). - -- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. - + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- The `filter` expression has restrictions described in the topic, [CALCULATE function](calculate-function-dax.md). + +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'Year Start Inventory Value' of the product inventory. - +The following sample formula creates a measure that calculates the 'Year Start Inventory Value' of the product inventory. + ```dax -= OPENINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) += OPENINGBALANCEYEAR(SUMX(ProductInventory,ProductInventory[UnitCost]*ProductInventory[UnitsBalance]),DateTime[DateKey]) ``` - + ## Related content -[OPENINGBALANCEQUARTER function](openingbalancequarter-function-dax.md) -[OPENINGBALANCEMONTH function](openingbalancemonth-function-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) +[OPENINGBALANCEQUARTER function](openingbalancequarter-function-dax.md) +[OPENINGBALANCEMONTH function](openingbalancemonth-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[CLOSINGBALANCEYEAR function](closingbalanceyear-function-dax.md) diff --git a/query-languages/dax/or-function-dax.md b/query-languages/dax/or-function-dax.md index 03b97921d..d00603b88 100644 --- a/query-languages/dax/or-function-dax.md +++ b/query-languages/dax/or-function-dax.md @@ -7,66 +7,66 @@ title: "OR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Checks whether one of the arguments is `TRUE` to return `TRUE`. The function returns `FALSE` if both arguments are `FALSE`. - -## Syntax - +Checks whether one of the arguments is `TRUE` to return `TRUE`. The function returns `FALSE` if both arguments are `FALSE`. + +## Syntax + ```dax -OR(,) +OR(,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`logical_1, logical_2`|The logical values you want to test.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`logical_1, logical_2`|The logical values you want to test.| + ## Return value -A Boolean value. The value is `TRUE` if any of the two arguments is `TRUE`; the value is FALSE if both the arguments are `FALSE`. - +A Boolean value. The value is `TRUE` if any of the two arguments is `TRUE`; the value is FALSE if both the arguments are `FALSE`. + ## Remarks -- The `OR` function in DAX accepts only two (2) arguments. If you need to perform an OR operation on multiple expressions, you can create a series of calculations or, better, use the OR operator (**||**) to join all of them in a simpler expression. - -- The function evaluates the arguments until the first `TRUE` argument, then returns `TRUE`. - +- The `OR` function in DAX accepts only two (2) arguments. If you need to perform an OR operation on multiple expressions, you can create a series of calculations or, better, use the OR operator (**||**) to join all of them in a simpler expression. + +- The function evaluates the arguments until the first `TRUE` argument, then returns `TRUE`. + ## Example -The following example shows how to use the OR function to obtain the sales people that belong to the Circle of Excellence. The Circle of Excellence recognizes those who have achieved more than a million dollars in Touring Bikes sales or sales of over two and a half million dollars in 2007. +The following example shows how to use the OR function to obtain the sales people that belong to the Circle of Excellence. The Circle of Excellence recognizes those who have achieved more than a million dollars in Touring Bikes sales or sales of over two and a half million dollars in 2007. ```dax -IF( OR( CALCULATE(SUM('ResellerSales_USD'[SalesAmount_USD]), 'ProductSubcategory'[ProductSubcategoryName]="Touring Bikes") > 1000000 - , CALCULATE(SUM('ResellerSales_USD'[SalesAmount_USD]), 'DateTime'[CalendarYear]=2007) > 2500000 - ) - , "Circle of Excellence" - , "" - ) +IF( OR( CALCULATE(SUM('ResellerSales_USD'[SalesAmount_USD]), 'ProductSubcategory'[ProductSubcategoryName]="Touring Bikes") > 1000000 + , CALCULATE(SUM('ResellerSales_USD'[SalesAmount_USD]), 'DateTime'[CalendarYear]=2007) > 2500000 + ) + , "Circle of Excellence" + , "" + ) ``` Returns - -|Row Labels|2005|2006|2007|2008|-|Grand Total| -|-------------------|--------|----|----|----|----|----| -|Abbas, Syed E||||||| -|Alberts, Amy E||||||| -|Ansman-Wolfe, Pamela O||||||| -|Blythe, Michael G|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| -|Campbell, David R||||||| -|Carson, Jillian|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| -|Ito, Shu K||||||| -|Jiang, Stephen Y||||||| -|Mensa-Annan, Tete A||||||| -|Mitchell, Linda C|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| -|Pak, Jae B|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| -|Reiter, Tsvi Michael||||||| -|Saraiva, José Edvaldo|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| -|Tsoflias, Lynn N||||||| -|Valdez, Rachel B||||||| -|Vargas, Garrett R||||||| -|Varkey Chudukatil, Ranjit R||||||Circle of Excellence| -|Grand Total|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| + +|Row Labels|2005|2006|2007|2008|-|Grand Total| +|-------------------|--------|----|----|----|----|----| +|Abbas, Syed E||||||| +|Alberts, Amy E||||||| +|Ansman-Wolfe, Pamela O||||||| +|Blythe, Michael G|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| +|Campbell, David R||||||| +|Carson, Jillian|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| +|Ito, Shu K||||||| +|Jiang, Stephen Y||||||| +|Mensa-Annan, Tete A||||||| +|Mitchell, Linda C|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| +|Pak, Jae B|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| +|Reiter, Tsvi Michael||||||| +|Saraiva, José Edvaldo|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| +|Tsoflias, Lynn N||||||| +|Valdez, Rachel B||||||| +|Vargas, Garrett R||||||| +|Varkey Chudukatil, Ranjit R||||||Circle of Excellence| +|Grand Total|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence|Circle of Excellence| ## Related content -[Logical functions](logical-functions-dax.md) +[Logical functions](logical-functions-dax.md) diff --git a/query-languages/dax/orderby-function-dax.md b/query-languages/dax/orderby-function-dax.md index e823789ea..10c307d8a 100644 --- a/query-languages/dax/orderby-function-dax.md +++ b/query-languages/dax/orderby-function-dax.md @@ -8,24 +8,24 @@ title: "ORDERBY function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Defines the expressions that determine the sort order within each of a window function’s partitions. - -## Syntax - + +## Syntax + ```dax ORDERBY ( [[, [, [, ]] …]] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`orderBy_expression`|(Optional) Any scalar expression that will be used used to sort the data within each of a window function’s partitions.| |`order`|(Optional) A two-part value of the form "`OrderDirection` [`BlankHandling`]".

`OrderDirection` specifies how to sort `orderBy_expression` values (i.e. ascending or descending). Valid values include:
`DESC`. Alternative value: `0`(zero)/`FALSE`. Sorts in descending order of values of `orderBy_expression`.
`ASC`. Alternative value: `1`/`TRUE`. Sorts in ascending order of values of `orderBy_expression`. This is the default value if `order` is omitted.

`BlankHandling` part is optional. It specifies how blanks are ordered. Valid values include:
`BLANKS DEFAULT`. This is the default value. The behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
`BLANKS FIRST`. Blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
`BLANKS LAST`. Blanks are always ordered on the end, regardless of ascending or descending sorting order.| ## Return value -This function does not return a value. - +This function does not return a value. + ## Remarks This function can only be used within a window function expression. @@ -36,12 +36,12 @@ See [OFFSET](offset-function-dax.md). ## Related content -[Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) -[INDEX](index-function-dax.md) -[OFFSET](offset-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[MATCHBY](matchby-function-dax.md) -[WINDOW](window-function-dax.md) -[RANK](rank-function-dax.md) +[Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) +[INDEX](index-function-dax.md) +[OFFSET](offset-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[MATCHBY](matchby-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) diff --git a/query-languages/dax/orderby-statement-dax.md b/query-languages/dax/orderby-statement-dax.md index 1c02976d5..b81d77076 100644 --- a/query-languages/dax/orderby-statement-dax.md +++ b/query-languages/dax/orderby-statement-dax.md @@ -3,23 +3,23 @@ description: "Learn more about: ORDER BY" title: "ORDER BY keyword (DAX)" --- # ORDER BY - + Introduces a statement that defines sort order of query results returned by an EVALUATE statement in a [DAX query](dax-queries.md). -## Syntax - +## Syntax + ```dax -[ORDER BY { [{ASC | DESC}]}[, …]] +[ORDER BY { [{ASC | DESC}]}[, …]] ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`expression`|Any DAX expression that returns a single scalar value.| -|`ASC`|(default) Ascending sort order.| -|`DESC`|Descending sort order.| - + +|Term|Definition| +|--------|--------------| +|`expression`|Any DAX expression that returns a single scalar value.| +|`ASC`|(default) Ascending sort order.| +|`DESC`|Descending sort order.| + ## Return value The result of an EVALUATE statement in ascending (ASC) or descending (DESC) order. @@ -30,8 +30,8 @@ To learn more about how ORDER BY statements are used, see [DAX queries](dax-quer ## Related content -[START AT](startat-statement-dax.md) -[EVALUATE](evaluate-statement-dax.md) -[VAR](var-dax.md) -[DEFINE](define-statement-dax.md) -[DAX queries](dax-queries.md) \ No newline at end of file +[START AT](startat-statement-dax.md) +[EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[DEFINE](define-statement-dax.md) +[DAX queries](dax-queries.md) \ No newline at end of file diff --git a/query-languages/dax/other-functions-dax.md b/query-languages/dax/other-functions-dax.md index a4d38d1f8..702f10a35 100644 --- a/query-languages/dax/other-functions-dax.md +++ b/query-languages/dax/other-functions-dax.md @@ -5,8 +5,8 @@ title: "Other functions (DAX)" # Other functions These functions perform unique actions that cannot be defined by any of the categories. - -## In this category + +## In this category |Function |Description | |---------|---------| diff --git a/query-languages/dax/parallelperiod-function-dax.md b/query-languages/dax/parallelperiod-function-dax.md index 3669b5ca7..65ad61007 100644 --- a/query-languages/dax/parallelperiod-function-dax.md +++ b/query-languages/dax/parallelperiod-function-dax.md @@ -6,57 +6,57 @@ title: "PARALLELPERIOD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of dates that represents a period parallel to the dates in the specified `dates` column, in the current context, with the dates shifted a number of intervals either forward in time or back in time. - -## Syntax - +Returns a table that contains a column of dates that represents a period parallel to the dates in the specified `dates` column, in the current context, with the dates shifted a number of intervals either forward in time or back in time. + +## Syntax + ```dax -PARALLELPERIOD(,,) +PARALLELPERIOD(,,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| -|`number_of_intervals`|An integer that specifies the number of intervals to add to or subtract from the dates.| -|`interval`|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| +|`number_of_intervals`|An integer that specifies the number of intervals to add to or subtract from the dates.| +|`interval`|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -- This function takes the current set of dates in the column specified by `dates`, shifts the first date and the last date the specified number of intervals, and then returns all contiguous dates between the two shifted dates. If the interval is a partial range of month, quarter, or year then any partial months in the result are also filled out to complete the entire interval. - -- The `dates` argument can be any of the following: - - A reference to a date/time column, - - A table expression that returns a single column of date/time values, - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- If the number specified for `number_of_intervals` is positive, the dates in `dates` are moved forward in time; if the number is negative, the dates in `dates` are shifted back in time. - -- The `interval` parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month` should be spelled in full when using them. - -- The result table includes only dates that appear in the values of the underlying table column. - -- The PARALLELPERIOD function is similar to the DATEADD function except that PARALLELPERIOD always returns full periods at the given granularity level instead of the partial periods that DATEADD returns. For example, if you have a selection of dates that starts at June 10 and finishes at June 21 of the same year, and you want to shift that selection forward by one month then the PARALLELPERIOD function will return all dates from the next month (July 1 to July 31); however, if DATEADD is used instead, then the result will include only dates from July 10 to July 21. - +- This function takes the current set of dates in the column specified by `dates`, shifts the first date and the last date the specified number of intervals, and then returns all contiguous dates between the two shifted dates. If the interval is a partial range of month, quarter, or year then any partial months in the result are also filled out to complete the entire interval. + +- The `dates` argument can be any of the following: + - A reference to a date/time column, + - A table expression that returns a single column of date/time values, + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- If the number specified for `number_of_intervals` is positive, the dates in `dates` are moved forward in time; if the number is negative, the dates in `dates` are shifted back in time. + +- The `interval` parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month` should be spelled in full when using them. + +- The result table includes only dates that appear in the values of the underlying table column. + +- The PARALLELPERIOD function is similar to the DATEADD function except that PARALLELPERIOD always returns full periods at the given granularity level instead of the partial periods that DATEADD returns. For example, if you have a selection of dates that starts at June 10 and finishes at June 21 of the same year, and you want to shift that selection forward by one month then the PARALLELPERIOD function will return all dates from the next month (July 1 to July 31); however, if DATEADD is used instead, then the result will include only dates from July 10 to July 21. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the previous year sales for Internet sales. - +The following sample formula creates a measure that calculates the previous year sales for Internet sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PARALLELPERIOD(DateTime[DateKey],-1,year)) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PARALLELPERIOD(DateTime[DateKey],-1,year)) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[DATEADD function](dateadd-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[DATEADD function](dateadd-function-dax.md) diff --git a/query-languages/dax/parent-and-child-functions-dax.md b/query-languages/dax/parent-and-child-functions-dax.md index b9b80c278..04c95a047 100644 --- a/query-languages/dax/parent-and-child-functions-dax.md +++ b/query-languages/dax/parent-and-child-functions-dax.md @@ -4,8 +4,8 @@ title: "Parent and Child functions (DAX)" --- # Parent and Child functions -These functions manage data that is presented as parent/child hierarchies. To learn more, see [Understanding functions for Parent-Child Hierarchies in DAX](understanding-functions-for-parent-child-hierarchies-in-dax.md). - +These functions manage data that is presented as parent/child hierarchies. To learn more, see [Understanding functions for Parent-Child Hierarchies in DAX](understanding-functions-for-parent-child-hierarchies-in-dax.md). + ## In this category |Function |Description | diff --git a/query-languages/dax/partitionby-function-dax.md b/query-languages/dax/partitionby-function-dax.md index f08d3a6bb..ac0b419e0 100644 --- a/query-languages/dax/partitionby-function-dax.md +++ b/query-languages/dax/partitionby-function-dax.md @@ -8,23 +8,23 @@ title: "PARTITIONBY function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Defines the columns that are used to partition a window function’s `relation` parameter. - -## Syntax - + +## Syntax + ```dax PARTITIONBY ( [[, partitionBy_columnName [, …]]] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`partitionBy_columnName`| (Optional) The name of an existing column to be used to partition the window function’s `relation`.
RELATED() may also be used to refer to a column in a table related to `relation`.| ## Return value -This function does not return a value. - +This function does not return a value. + ## Remarks This function can only be used within a window function expression. @@ -35,11 +35,11 @@ See [OFFSET](offset-function-dax.md). ## Related content -[Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) -[INDEX](index-function-dax.md) -[OFFSET](offset-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[MATCHBY](matchby-function-dax.md) -[WINDOW](window-function-dax.md) -[RANK](rank-function-dax.md) +[Understanding ORDERBY, PARTITIONBY, and MATCHBY functions](../dax/best-practices/dax-understand-orderby.md) +[INDEX](index-function-dax.md) +[OFFSET](offset-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[MATCHBY](matchby-function-dax.md) +[WINDOW](window-function-dax.md) +[RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) \ No newline at end of file diff --git a/query-languages/dax/path-function-dax.md b/query-languages/dax/path-function-dax.md index 43aa45b0e..2fc163902 100644 --- a/query-languages/dax/path-function-dax.md +++ b/query-languages/dax/path-function-dax.md @@ -6,44 +6,44 @@ title: "PATH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a delimited text string with the identifiers of all the parents of the current identifier, starting with the oldest and continuing until current. - -## Syntax - +Returns a delimited text string with the identifiers of all the parents of the current identifier, starting with the oldest and continuing until current. + +## Syntax + ```dax -PATH(, ) +PATH(, ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`ID_columnName`| The name of an existing column containing the unique identifier for rows in the table. This cannot be an expression. The data type of the value in `ID_columnName` must be text or integer, and must also be the same data type as the column referenced in `parent_columnName`.| +### Parameters + +|Term|Definition| +|--------|--------------| +|`ID_columnName`| The name of an existing column containing the unique identifier for rows in the table. This cannot be an expression. The data type of the value in `ID_columnName` must be text or integer, and must also be the same data type as the column referenced in `parent_columnName`.| |`parent_columnName`| The name of an existing column containing the unique identifier for the parent of the current row. This cannot be an expression. The data type of the value in `parent_columnName` data type must be text or integer, and must be the same data type as the value in `ID_columnName`. | - + ## Return value -A delimited text string containing the identifiers of all the parents to the current identifier. - +A delimited text string containing the identifiers of all the parents to the current identifier. + ## Remarks -- This function is used in tables that have some kind of internal hierarchy, to return the items that are related to the current row value. For example, in an Employees table that contains employees, the managers of employees, and the managers of the managers, you can return the path that connects an employee to his or her manager. - -- The path is not constrained to a single level of parent-child relationships; it can return related rows that are several levels up from the specified starting row. - - The delimiter used to separate the ascendants is the vertical bar, `|`. - - The values in `ID_columnName` and `parent_columnName` must have the same data type, text or integer. - - Values in `parent_columnName` must be present in `ID_columnName`. That is, you cannot look up a parent if there is no value at the child level. - - If `parent_columnName` is `BLANK` then `PATH()` returns `ID_columnName` value. In other words, if you look for the manager of an employee but the `parent_columnName` column has no data, the PATH function returns just the employee ID. - - If `ID_columnName` has duplicates and `parent_columnName` is the same for those duplicates then `PATH()` returns the common `parent_columnName` value; however, if `parent_columnName` value is different for those duplicates then `PATH()` returns an error. In other words, if you have two listings for the same employee ID and they have the same manager ID, the PATH function returns the ID for that manager. However, if there are two identical employee IDs that have different manager IDs, the PATH function returns an error. - - If `ID_columnName` is `BLANK` then `PATH()` returns `BLANK`. - - If `ID_columnName` contains a vertical bar `|` then `PATH()` returns an error. - +- This function is used in tables that have some kind of internal hierarchy, to return the items that are related to the current row value. For example, in an Employees table that contains employees, the managers of employees, and the managers of the managers, you can return the path that connects an employee to his or her manager. + +- The path is not constrained to a single level of parent-child relationships; it can return related rows that are several levels up from the specified starting row. + - The delimiter used to separate the ascendants is the vertical bar, `|`. + - The values in `ID_columnName` and `parent_columnName` must have the same data type, text or integer. + - Values in `parent_columnName` must be present in `ID_columnName`. That is, you cannot look up a parent if there is no value at the child level. + - If `parent_columnName` is `BLANK` then `PATH()` returns `ID_columnName` value. In other words, if you look for the manager of an employee but the `parent_columnName` column has no data, the PATH function returns just the employee ID. + - If `ID_columnName` has duplicates and `parent_columnName` is the same for those duplicates then `PATH()` returns the common `parent_columnName` value; however, if `parent_columnName` value is different for those duplicates then `PATH()` returns an error. In other words, if you have two listings for the same employee ID and they have the same manager ID, the PATH function returns the ID for that manager. However, if there are two identical employee IDs that have different manager IDs, the PATH function returns an error. + - If `ID_columnName` is `BLANK` then `PATH()` returns `BLANK`. + - If `ID_columnName` contains a vertical bar `|` then `PATH()` returns an error. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example creates a calculated column that lists all the managers for each employee. - +The following example creates a calculated column that lists all the managers for each employee. + ```dax -= PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]) += PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]) ``` diff --git a/query-languages/dax/pathcontains-function-dax.md b/query-languages/dax/pathcontains-function-dax.md index 9f2bd7286..16a5c01ea 100644 --- a/query-languages/dax/pathcontains-function-dax.md +++ b/query-languages/dax/pathcontains-function-dax.md @@ -6,35 +6,35 @@ title: "PATHCONTAINS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns `TRUE` if the specified `item` exists within the specified `path`. - -## Syntax - +Returns `TRUE` if the specified `item` exists within the specified `path`. + +## Syntax + ```dax -PATHCONTAINS(, ) +PATHCONTAINS(, ) ``` - + ### Parameters -|Term|Definition| -|--------|--------------| -|`path`| A string created as the result of evaluating a PATH function. | +|Term|Definition| +|--------|--------------| +|`path`| A string created as the result of evaluating a PATH function. | |`item`| A text expression to look for in the path result. | ## Return value -A value of `TRUE` if `item` exists in `path`; otherwise `FALSE`. - +A value of `TRUE` if `item` exists in `path`; otherwise `FALSE`. + ## Remarks -- If `item` is an integer number it is converted to text and then the function is evaluated. If conversion fails then the function returns an error. - +- If `item` is an integer number it is converted to text and then the function is evaluated. If conversion fails then the function returns an error. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example creates a calculated column that takes a manager ID and checks a set of employees. If the manager ID is among the list of managers returned by the PATH function, the PATHCONTAINS function returns true; otherwise it returns false. - +The following example creates a calculated column that takes a manager ID and checks a set of employees. If the manager ID is among the list of managers returned by the PATH function, the PATHCONTAINS function returns true; otherwise it returns false. + ```dax -= PATHCONTAINS(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]), "23") += PATHCONTAINS(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]), "23") ``` diff --git a/query-languages/dax/pathitem-function-dax.md b/query-languages/dax/pathitem-function-dax.md index ed51cf975..2b2a624da 100644 --- a/query-languages/dax/pathitem-function-dax.md +++ b/query-languages/dax/pathitem-function-dax.md @@ -5,19 +5,19 @@ title: "PATHITEM function (DAX)" # PATHITEM [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the item at the specified `position` from a string resulting from evaluation of a PATH function. Positions are counted from left to right. - -## Syntax - +Returns the item at the specified `position` from a string resulting from evaluation of a PATH function. Positions are counted from left to right. + +## Syntax + ```dax -PATHITEM(, [, ]) +PATHITEM(, [, ]) ``` - + ### Parameters -|Term|Definition| -|--------|--------------| -|`path`| A text string in the form of the results of a PATH function. | +|Term|Definition| +|--------|--------------| +|`path`| A text string in the form of the results of a PATH function. | |`position`| An integer expression with the position of the item to be returned. | |`type`| (Optional)An enumeration that defines the data type of the result: | @@ -25,27 +25,27 @@ PATHITEM(, [, ]) |Enumeration|Alternate Enumeration|Description| |-----|-----|-----| -|`TEXT`|0|Results are returned with the data type text. (default).| -|`INTEGER`|1|Results are returned as integers.| - +|`TEXT`|0|Results are returned with the data type text. (default).| +|`INTEGER`|1|Results are returned as integers.| + ## Return value -The identifier returned by the PATH function at the specified position in the list of identifiers. Items returned by the PATH function are ordered by most distant to current. - -## Remarks - -- This function can be used to return a specific level from a hierarchy returned by a PATH function. For example, you could return just the skip-level managers for all employees. - -- If you specify a number for `position` that is less than one (1) or greater than the number of elements in `path`, the PATHITEM function returns BLANK - -- If `type` is not a valid enumeration element an error is returned. - +The identifier returned by the PATH function at the specified position in the list of identifiers. Items returned by the PATH function are ordered by most distant to current. + +## Remarks + +- This function can be used to return a specific level from a hierarchy returned by a PATH function. For example, you could return just the skip-level managers for all employees. + +- If you specify a number for `position` that is less than one (1) or greater than the number of elements in `path`, the PATHITEM function returns BLANK + +- If `type` is not a valid enumeration element an error is returned. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example returns the third tier manager of the current employee; it takes the employee and manager IDs as the input to a PATH function that returns a string with the hierarchy of parents to current employee. From that string PATHITEM returns the third entry as an integer. - +The following example returns the third tier manager of the current employee; it takes the employee and manager IDs as the input to a PATH function that returns a string with the hierarchy of parents to current employee. From that string PATHITEM returns the third entry as an integer. + ```dax -= PATHITEM(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]), 3, 1) += PATHITEM(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]), 3, 1) ``` diff --git a/query-languages/dax/pathitemreverse-function-dax.md b/query-languages/dax/pathitemreverse-function-dax.md index c93bbb1cf..e9a07512e 100644 --- a/query-languages/dax/pathitemreverse-function-dax.md +++ b/query-languages/dax/pathitemreverse-function-dax.md @@ -6,19 +6,19 @@ title: "PATHITEMREVERSE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the item at the specified `position` from a string resulting from evaluation of a PATH function. Positions are counted backwards from right to left. - -## Syntax - +Returns the item at the specified `position` from a string resulting from evaluation of a PATH function. Positions are counted backwards from right to left. + +## Syntax + ```dax -PATHITEMREVERSE(, [, ]) +PATHITEMREVERSE(, [, ]) ``` - + ### Parameters -|Term|Definition| -|--------|--------------| -|`path`| A text string resulting from evaluation of a PATH function. | +|Term|Definition| +|--------|--------------| +|`path`| A text string resulting from evaluation of a PATH function. | |`position`| An integer expression with the position of the item to be returned. Position is counted backwards from right to left. | |`type`| (Optional)An enumeration that defines the data type of the result: | @@ -26,29 +26,29 @@ PATHITEMREVERSE(, [, ]) |Enumeration|Alternate Enumeration|Description| |-----|-----|-----| -|`TEXT`|0|Results are returned with the data type text. (default).| -|`INTEGER`|1|Results are returned as integers.| +|`TEXT`|0|Results are returned with the data type text. (default).| +|`INTEGER`|1|Results are returned as integers.| ## Return value -The n-position ascendant in the given path, counting from current to the oldest. - -## Remarks - -- This function can be used to get an individual item from a hierarchy resulting from a PATH function. - -- This function reverses the standard order of the hierarchy, so that closest items are listed first, For example, if the PATh function returns a list of managers above an employee in a hierarchy, the PATHITEMREVERSE function returns the employee's immediate manager in position 2 because position 1 contains the employee's id. - -- If the number specified for `position` is less than one (1) or greater than the number of elements in `path`, the PATHITEM function returns BLANK. - -- If `type` is not a valid enumeration element an error is returned. - +The n-position ascendant in the given path, counting from current to the oldest. + +## Remarks + +- This function can be used to get an individual item from a hierarchy resulting from a PATH function. + +- This function reverses the standard order of the hierarchy, so that closest items are listed first, For example, if the PATh function returns a list of managers above an employee in a hierarchy, the PATHITEMREVERSE function returns the employee's immediate manager in position 2 because position 1 contains the employee's id. + +- If the number specified for `position` is less than one (1) or greater than the number of elements in `path`, the PATHITEM function returns BLANK. + +- If `type` is not a valid enumeration element an error is returned. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example takes an employee ID column as the input to a PATH function, and reverses the list of grandparent elements that are returned. The position specified is 3 and the return type is 1; therefore, the PATHITEMREVERSE function returns an integer representing the manager two levels up from the employee. - +The following example takes an employee ID column as the input to a PATH function, and reverses the list of grandparent elements that are returned. The position specified is 3 and the return type is 1; therefore, the PATHITEMREVERSE function returns an integer representing the manager two levels up from the employee. + ```dax -= PATHITEMREVERSE(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]), 3, 1) += PATHITEMREVERSE(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey]), 3, 1) ``` diff --git a/query-languages/dax/pathlength-function-dax.md b/query-languages/dax/pathlength-function-dax.md index 3b47223d0..2be10bde5 100644 --- a/query-languages/dax/pathlength-function-dax.md +++ b/query-languages/dax/pathlength-function-dax.md @@ -5,32 +5,32 @@ title: "PATHLENGTH function (DAX)" # PATHLENGTH [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the number of parents to the specified item in a given PATH result, including self. - -## Syntax - +Returns the number of parents to the specified item in a given PATH result, including self. + +## Syntax + ```dax -PATHLENGTH() +PATHLENGTH() ``` -### Parameters +### Parameters + +|Term|Definition| +|--------|--------------| +|`path`| A text expression resulting from evaluation of a PATH function. | -|Term|Definition| -|--------|--------------| -|`path`| A text expression resulting from evaluation of a PATH function. | - ## Return value -The number of items that are parents to the specified item in a given PATH result, including the specified item. - +The number of items that are parents to the specified item in a given PATH result, including the specified item. + ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example takes an employee ID as input to a PATH function and returns a list of the managers above that employee in the hierarchy, The PATHLENGTH function takes that result and counts the different levels of employees and managers, including the employee you started with. - +The following example takes an employee ID as input to a PATH function and returns a list of the managers above that employee in the hierarchy, The PATHLENGTH function takes that result and counts the different levels of employees and managers, including the employee you started with. + ```dax -= PATHLENGTH(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey])) += PATHLENGTH(PATH(Employee[EmployeeKey], Employee[ParentEmployeeKey])) ``` diff --git a/query-languages/dax/pduration-function-dax.md b/query-languages/dax/pduration-function-dax.md index 48870b9cc..1b301066c 100644 --- a/query-languages/dax/pduration-function-dax.md +++ b/query-languages/dax/pduration-function-dax.md @@ -18,8 +18,8 @@ PDURATION(, , ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`rate`|The interest rate per period.| |`pv`|The present value of the investment.| |`fv`|The desired future value of the investment.| diff --git a/query-languages/dax/percentile-exc-function-dax.md b/query-languages/dax/percentile-exc-function-dax.md index 748f6d8aa..48c012c75 100644 --- a/query-languages/dax/percentile-exc-function-dax.md +++ b/query-languages/dax/percentile-exc-function-dax.md @@ -5,42 +5,42 @@ title: "PERCENTILE.EXC function (DAX)" # PERCENTILE.EXC [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the k-th percentile of values in a range, where k is in the range 0..1, exclusive. - -To return the percentile number of an expression evaluated for each row in a table, use [PERCENTILEX.EXC function](percentilex-exc-function-dax.md). - -## Syntax - + +Returns the k-th percentile of values in a range, where k is in the range 0..1, exclusive. + +To return the percentile number of an expression evaluated for each row in a table, use [PERCENTILEX.EXC function](percentilex-exc-function-dax.md). + +## Syntax + ```dax -PERCENTILE.EXC(, ) +PERCENTILE.EXC(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|A column containing the values that define relative standing.| -|`k`|The percentile value in the range 0..1, exclusive.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|A column containing the values that define relative standing.| +|`k`|The percentile value in the range 0..1, exclusive.| + ## Return value -The k-th percentile of values in a range, where k is in the range 0..1, exclusive. - +The k-th percentile of values in a range, where k is in the range 0..1, exclusive. + ## Remarks -- If column is empty, BLANK() is returned. - -- If k is zero or blank, percentile rank of 1/(n+1) returns the smallest value. If zero, it is out of range and an error is returned. - -- If k is nonnumeric or outside the range 0 to 1, an error is returned. - -- If k is not a multiple of 1/(n + 1), PERCENTILE.EXC will interpolate to determine the value at the k-th percentile. - -- PERCENTILE.EXC will interpolate when the value for the specified percentile is between two values in the array. If it cannot interpolate for the k percentile specified, an error is returned. +- If column is empty, BLANK() is returned. + +- If k is zero or blank, percentile rank of 1/(n+1) returns the smallest value. If zero, it is out of range and an error is returned. + +- If k is nonnumeric or outside the range 0 to 1, an error is returned. + +- If k is not a multiple of 1/(n + 1), PERCENTILE.EXC will interpolate to determine the value at the k-th percentile. + +- PERCENTILE.EXC will interpolate when the value for the specified percentile is between two values in the array. If it cannot interpolate for the k percentile specified, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Related content -[PERCENTILEX.EXC](percentilex-exc-function-dax.md) +[PERCENTILEX.EXC](percentilex-exc-function-dax.md) diff --git a/query-languages/dax/percentile-inc-function-dax.md b/query-languages/dax/percentile-inc-function-dax.md index be25241fa..77a314a74 100644 --- a/query-languages/dax/percentile-inc-function-dax.md +++ b/query-languages/dax/percentile-inc-function-dax.md @@ -5,42 +5,42 @@ title: "PERCENTILE.INC function (DAX)" # PERCENTILE.INC [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the k-th percentile of values in a range, where k is in the range 0..1, inclusive. - -To return the percentile number of an expression evaluated for each row in a table, use [PERCENTILEX.INC](percentilex-inc-function-dax.md). - -## Syntax - + +Returns the k-th percentile of values in a range, where k is in the range 0..1, inclusive. + +To return the percentile number of an expression evaluated for each row in a table, use [PERCENTILEX.INC](percentilex-inc-function-dax.md). + +## Syntax + ```dax -PERCENTILE.INC(, ) +PERCENTILE.INC(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|A column containing the values that define relative standing.| -|`k`|The percentile value in the range 0..1, inclusive.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|A column containing the values that define relative standing.| +|`k`|The percentile value in the range 0..1, inclusive.| + ## Return value -The k-th percentile of values in a range, where k is in the range 0..1, inclusive. - +The k-th percentile of values in a range, where k is in the range 0..1, inclusive. + ## Remarks -- If column is empty, BLANK() is returned. - -- If k is zero or blank, percentile rank of 1/(n+1) returns the smallest value. If zero, it is out of range and an error is returned. - -- If k is nonnumeric or outside the range 0 to 1, an error is returned. - -- If k is not a multiple of 1/(n + 1), PERCENTILE.INC will interpolate to determine the value at the k-th percentile. - -- PERCENTILE.INC will interpolate when the value for the specified percentile is between two values in the array. If it cannot interpolate for the k percentile specified, an error is returned. +- If column is empty, BLANK() is returned. + +- If k is zero or blank, percentile rank of 1/(n+1) returns the smallest value. If zero, it is out of range and an error is returned. + +- If k is nonnumeric or outside the range 0 to 1, an error is returned. + +- If k is not a multiple of 1/(n + 1), PERCENTILE.INC will interpolate to determine the value at the k-th percentile. + +- PERCENTILE.INC will interpolate when the value for the specified percentile is between two values in the array. If it cannot interpolate for the k percentile specified, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Related content -[PERCENTILEX.INC](percentilex-inc-function-dax.md) +[PERCENTILEX.INC](percentilex-inc-function-dax.md) diff --git a/query-languages/dax/percentilex-exc-function-dax.md b/query-languages/dax/percentilex-exc-function-dax.md index 95a403791..371c899c4 100644 --- a/query-languages/dax/percentilex-exc-function-dax.md +++ b/query-languages/dax/percentilex-exc-function-dax.md @@ -5,41 +5,41 @@ title: "PERCENTILEX.EXC function (DAX)" # PERCENTILEX.EXC [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the percentile number of an expression evaluated for each row in a table. - -To return the percentile of numbers in a column, use [PERCENTILE.EXC function](percentile-exc-function-dax.md). - -## Syntax - + +Returns the percentile number of an expression evaluated for each row in a table. + +To return the percentile of numbers in a column, use [PERCENTILE.EXC function](percentile-exc-function-dax.md). + +## Syntax + ```dax -PERCENTILEX.EXC(
, , k) +PERCENTILEX.EXC(
, , k) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of the table.| -|`k`|The desired percentile value in the range 0 to 1 exclusive.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| +|`k`|The desired percentile value in the range 0 to 1 exclusive.| + ## Return value -The percentile number of an expression evaluated for each row in a table. - +The percentile number of an expression evaluated for each row in a table. + ## Remarks -- If k is zero or blank, percentile rank of 1/(n+1) returns the smallest value. If zero, it is out of range and an error is returned. - -- If k is nonnumeric or outside the range 0 to 1, an error is returned. - -- If k is not a multiple of 1/(n + 1), PERCENTILEX.EXC will interpolate to determine the value at the k-th percentile. - -- PERCENTILEX.EXC will interpolate when the value for the specified percentile is between two values in the array. If it cannot interpolate for the k percentile specified, an error is returned. +- If k is zero or blank, percentile rank of 1/(n+1) returns the smallest value. If zero, it is out of range and an error is returned. + +- If k is nonnumeric or outside the range 0 to 1, an error is returned. + +- If k is not a multiple of 1/(n + 1), PERCENTILEX.EXC will interpolate to determine the value at the k-th percentile. + +- PERCENTILEX.EXC will interpolate when the value for the specified percentile is between two values in the array. If it cannot interpolate for the k percentile specified, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Related content -[PERCENTILE.EXC](percentile-exc-function-dax.md) +[PERCENTILE.EXC](percentile-exc-function-dax.md) diff --git a/query-languages/dax/percentilex-inc-function-dax.md b/query-languages/dax/percentilex-inc-function-dax.md index 4e2ead4d2..498764ca3 100644 --- a/query-languages/dax/percentilex-inc-function-dax.md +++ b/query-languages/dax/percentilex-inc-function-dax.md @@ -5,41 +5,41 @@ title: "PERCENTILEX.INC function (DAX)" # PERCENTILEX.INC [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the percentile number of an expression evaluated for each row in a table. - -To return the percentile of numbers in a column, use [PERCENTILE.INC](percentile-inc-function-dax.md). - -## Syntax - + +Returns the percentile number of an expression evaluated for each row in a table. + +To return the percentile of numbers in a column, use [PERCENTILE.INC](percentile-inc-function-dax.md). + +## Syntax + ```dax -PERCENTILEX.INC(
, ;, k) +PERCENTILEX.INC(
, ;, k) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of the table.| -|`k`|The desired percentile value in the range 0 to 1 inclusive.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| +|`k`|The desired percentile value in the range 0 to 1 inclusive.| + ## Return value -The percentile number of an expression evaluated for each row in a table. - +The percentile number of an expression evaluated for each row in a table. + ## Remarks -- If k is zero or blank, percentile rank of 1/(n - 1) returns the smallest value. If zero, it is out of range and an error is returned. - -- If k is nonnumeric or outside the range 0 to 1, an error is returned. - -- If k is not a multiple of 1/(n - 1), PERCENTILEX.EXC will interpolate to determine the value at the k-th percentile. - -- PERCENTILEX.INC will interpolate when the value for the specified percentile is between two values in the array. If it cannot interpolate for the k percentile specified, an error is returned. +- If k is zero or blank, percentile rank of 1/(n - 1) returns the smallest value. If zero, it is out of range and an error is returned. + +- If k is nonnumeric or outside the range 0 to 1, an error is returned. + +- If k is not a multiple of 1/(n - 1), PERCENTILEX.EXC will interpolate to determine the value at the k-th percentile. + +- PERCENTILEX.INC will interpolate when the value for the specified percentile is between two values in the array. If it cannot interpolate for the k percentile specified, an error is returned. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Related content -[PERCENTILE.INC](percentile-inc-function-dax.md) +[PERCENTILE.INC](percentile-inc-function-dax.md) diff --git a/query-languages/dax/permut-function-dax.md b/query-languages/dax/permut-function-dax.md index 5c208fe6d..9caf4b2cf 100644 --- a/query-languages/dax/permut-function-dax.md +++ b/query-languages/dax/permut-function-dax.md @@ -6,42 +6,42 @@ title: "PERMUT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the number of permutations for a given number of objects that can be selected from number objects. A permutation is any set or subset of objects or events where internal order is significant. Permutations are different from combinations, for which the internal order is not significant. Use this function for lottery-style probability calculations. - -## Syntax - +Returns the number of permutations for a given number of objects that can be selected from number objects. A permutation is any set or subset of objects or events where internal order is significant. Permutations are different from combinations, for which the internal order is not significant. Use this function for lottery-style probability calculations. + +## Syntax + ```dax -PERMUT(number, number_chosen) +PERMUT(number, number_chosen) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Required. An integer that describes the number of objects.| -|`number_chosen`|Required. An integer that describes the number of objects in each permutation.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Required. An integer that describes the number of objects.| +|`number_chosen`|Required. An integer that describes the number of objects in each permutation.| + ## Return value -Returns the number of permutations for a given number of objects that can be selected from number objects - +Returns the number of permutations for a given number of objects that can be selected from number objects + ## Remarks -- Both arguments are truncated to integers. +- Both arguments are truncated to integers. -- If number or number_chosen is nonnumeric, PERMUT returns the `#VALUE!` error value. +- If number or number_chosen is nonnumeric, PERMUT returns the `#VALUE!` error value. -- If number ≤ 0 or if number_chosen < 0, PERMUT returns the `#NUM!` error value. +- If number ≤ 0 or if number_chosen < 0, PERMUT returns the `#NUM!` error value. -- If number < number_chosen, PERMUT returns the `#NUM!` error value. +- If number < number_chosen, PERMUT returns the `#NUM!` error value. -- The equation for the number of permutations is: +- The equation for the number of permutations is: $$P\_{k,n} = \frac{n!}{(n-k)!}$$ - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Example In the following formula, permutations possible for a group of 3 objects where 2 are chosen: diff --git a/query-languages/dax/pi-function-dax.md b/query-languages/dax/pi-function-dax.md index 98dacb8f2..876b13dd5 100644 --- a/query-languages/dax/pi-function-dax.md +++ b/query-languages/dax/pi-function-dax.md @@ -6,30 +6,30 @@ title: "PI function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the value of Pi, 3.14159265358979, accurate to 15 digits. - -## Syntax - +Returns the value of Pi, 3.14159265358979, accurate to 15 digits. + +## Syntax + ```dax -PI() +PI() ``` - + ## Return value -A decimal number with the value of Pi, 3.14159265358979, accurate to 15 digits. - +A decimal number with the value of Pi, 3.14159265358979, accurate to 15 digits. + ## Remarks -Pi is a mathematical constant. In DAX, Pi is represented as a real number accurate to 15 digits, the same as Excel. - +Pi is a mathematical constant. In DAX, Pi is represented as a real number accurate to 15 digits, the same as Excel. + ## Example -The following formula calculates the area of a circle given the radius in the column, `[Radius]`. - +The following formula calculates the area of a circle given the radius in the column, `[Radius]`. + ```dax -= PI()*([Radius]*2) += PI()*([Radius]*2) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/pmt-function-dax.md b/query-languages/dax/pmt-function-dax.md index 3432b0278..54d99fe5c 100644 --- a/query-languages/dax/pmt-function-dax.md +++ b/query-languages/dax/pmt-function-dax.md @@ -18,8 +18,8 @@ PMT(, , [, [, ]]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`rate`|The interest rate for the loan.| |`nper`|The total number of payments for the loan.| |`pv`|The present value, or the total amount that a series of future payments is worth now; also known as the principal.| diff --git a/query-languages/dax/poisson-dist-function-dax.md b/query-languages/dax/poisson-dist-function-dax.md index b77cad4da..9b3e22736 100644 --- a/query-languages/dax/poisson-dist-function-dax.md +++ b/query-languages/dax/poisson-dist-function-dax.md @@ -6,43 +6,43 @@ title: "POISSON.DIST function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the Poisson distribution. A common application of the Poisson distribution is predicting the number of events over a specific time, such as the number of cars arriving at a toll plaza in 1 minute. - -## Syntax - +Returns the Poisson distribution. A common application of the Poisson distribution is predicting the number of events over a specific time, such as the number of cars arriving at a toll plaza in 1 minute. + +## Syntax + ```dax -POISSON.DIST(x,mean,cumulative) +POISSON.DIST(x,mean,cumulative) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`x`|Required. The number of events.| -|`mean`|Required. The expected numeric value.| -|`cumulative`|Required. A logical value that determines the form of the probability distribution returned. If cumulative is `TRUE`, POISSON.DIST returns the cumulative Poisson probability that the number of random events occurring will be between zero and x inclusive; if `FALSE`, it returns the Poisson probability mass function that the number of events occurring will be exactly x.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`x`|Required. The number of events.| +|`mean`|Required. The expected numeric value.| +|`cumulative`|Required. A logical value that determines the form of the probability distribution returned. If cumulative is `TRUE`, POISSON.DIST returns the cumulative Poisson probability that the number of random events occurring will be between zero and x inclusive; if `FALSE`, it returns the Poisson probability mass function that the number of events occurring will be exactly x.| + ## Return value -Returns the Poisson distribution. - +Returns the Poisson distribution. + ## Remarks -- If x is not an integer, it is rounded. +- If x is not an integer, it is rounded. -- If x or mean is nonnumeric, POISSON.DIST returns the `#VALUE!` error value. +- If x or mean is nonnumeric, POISSON.DIST returns the `#VALUE!` error value. -- If x < 0, POISSON.DIST returns the `#NUM!` error value. +- If x < 0, POISSON.DIST returns the `#NUM!` error value. -- If mean < 0, POISSON.DIST returns the `#NUM!` error value. +- If mean < 0, POISSON.DIST returns the `#NUM!` error value. -- POISSON.DIST is calculated as follows. +- POISSON.DIST is calculated as follows. - - For cumulative = `FALSE`: + - For cumulative = `FALSE`: $$\text{POISSON} = \frac{e^{-\lambda} \lambda^{x}}{x!}$$ - - For cumulative = `TRUE`: + - For cumulative = `TRUE`: $$\text{CUMPOISSON} = \sum^{x}\_{k=0} \frac{e^{-\lambda} \lambda^{x}}{k!}$$ diff --git a/query-languages/dax/power-function-dax.md b/query-languages/dax/power-function-dax.md index 54b2dd155..bf7dc4aaa 100644 --- a/query-languages/dax/power-function-dax.md +++ b/query-languages/dax/power-function-dax.md @@ -6,33 +6,33 @@ title: "POWER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the result of a number raised to a power. - -## Syntax - +Returns the result of a number raised to a power. + +## Syntax + ```dax -POWER(, ) +POWER(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The base number, which can be any real number.| -|`power`|The exponent to which the base number is raised.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The base number, which can be any real number.| +|`power`|The exponent to which the base number is raised.| + ## Return value -A decimal number. - +A decimal number. + ## Example -The following example returns 25. - +The following example returns 25. + ```dax -= POWER(5,2) += POWER(5,2) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/ppmt-function-dax.md b/query-languages/dax/ppmt-function-dax.md index c99885bf4..a95dce82d 100644 --- a/query-languages/dax/ppmt-function-dax.md +++ b/query-languages/dax/ppmt-function-dax.md @@ -18,8 +18,8 @@ PPMT(, , , [, [, ]]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`rate`|The interest rate for the loan.| |`per`|Specifies the period. Must be between 1 and nper (inclusive).| |`nper`|The total number of payment periods in an annuity.| diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index e23ceb314..9b00d9636 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -8,28 +8,27 @@ title: "PREVIOUS function (DAX)" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] Used in visual calculations only. Retrieves a value in the previous element of an axis in the visual matrix. - -## Syntax - + +## Syntax + ```dax PREVIOUS ( [, ][, ][, ][, reset] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, `1` is used (the exactly previous row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| - ## Return value The value of `column` from the previous element of the axis. - + ## Remarks This function can only be used in a visual calculation. @@ -37,7 +36,7 @@ This function can only be used in a visual calculation. ## Example The following visual calculation returns the sales amount of the previous row on ROWS axis, that resets on the lowest parent. - + ```dax PreviousInternetSalesAmount = PREVIOUS ( [Sum of SalesAmount], ROWS, LowestParent ) ``` @@ -48,6 +47,6 @@ The screenshot below shows the visual matrix and the visual calculation expressi ## Related content -[FIRST](first-function-dax.md) -[LAST](last-function-dax.md) +[FIRST](first-function-dax.md) +[LAST](last-function-dax.md) [NEXT](next-function-dax.md) diff --git a/query-languages/dax/previousday-function-dax.md b/query-languages/dax/previousday-function-dax.md index 93acbe0f1..8e490a994 100644 --- a/query-languages/dax/previousday-function-dax.md +++ b/query-languages/dax/previousday-function-dax.md @@ -6,50 +6,50 @@ title: "PREVIOUSDAY function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates representing the day that is previous to the first date in the `dates` column, in the current context. - -## Syntax - +Returns a table that contains a column of all dates representing the day that is previous to the first date in the `dates` column, in the current context. + +## Syntax + ```dax -PREVIOUSDAY() +PREVIOUSDAY() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column containing dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column containing dates.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -- This function determines the first date in the input parameter, and then returns all dates corresponding to the day previous to that first date. For example, if the first date in the `dates` argument refers to June 10, 2009; this function returns all dates equal to June 9, 2009. - -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - +- This function determines the first date in the input parameter, and then returns all dates corresponding to the day previous to that first date. For example, if the first date in the `dates` argument refers to June 10, 2009; this function returns all dates equal to June 9, 2009. + +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'previous day sales' for Internet sales. - +The following sample formula creates a measure that calculates the 'previous day sales' for Internet sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSDAY('DateTime'[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSDAY('DateTime'[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[PREVIOUSMONTH function](previousmonth-function-dax.md) -[PREVIOUSQUARTER function](previousquarter-function-dax.md) -[PREVIOUSYEAR function](previousyear-function-dax.md) - +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[PREVIOUSMONTH function](previousmonth-function-dax.md) +[PREVIOUSQUARTER function](previousquarter-function-dax.md) +[PREVIOUSYEAR function](previousyear-function-dax.md) + diff --git a/query-languages/dax/previousmonth-function-dax.md b/query-languages/dax/previousmonth-function-dax.md index dfca76ea6..11e3d5a34 100644 --- a/query-languages/dax/previousmonth-function-dax.md +++ b/query-languages/dax/previousmonth-function-dax.md @@ -6,49 +6,49 @@ title: "PREVIOUSMONTH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the previous month, based on the first date in the `` column, in the current context. - -## Syntax - +Returns a table that contains a column of all dates from the previous month, based on the first date in the `` column, in the current context. + +## Syntax + ```dax -PREVIOUSMONTH() +PREVIOUSMONTH() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Dates`|A column containing dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Dates`|A column containing dates.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -- This function returns all dates from the previous month, using the first date in the column used as input. For example, if the first date in the `Dates` argument refers to June 10, 2009, this function returns all dates for the month of May, 2009. - -- The `Dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - +- This function returns all dates from the previous month, using the first date in the column used as input. For example, if the first date in the `Dates` argument refers to June 10, 2009, this function returns all dates for the month of May, 2009. + +- The `Dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'previous month sales' for Internet sales. +The following sample formula creates a measure that calculates the 'previous month sales' for Internet sales. ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSMONTH('DateTime'[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSMONTH('DateTime'[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[PREVIOUSDAY](previousday-function-dax.md) -[PREVIOUSQUARTER](previousquarter-function-dax.md) -[PREVIOUSYEAR](previousyear-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[PREVIOUSDAY](previousday-function-dax.md) +[PREVIOUSQUARTER](previousquarter-function-dax.md) +[PREVIOUSYEAR](previousyear-function-dax.md) diff --git a/query-languages/dax/previousquarter-function-dax.md b/query-languages/dax/previousquarter-function-dax.md index 101d5d224..517afc787 100644 --- a/query-languages/dax/previousquarter-function-dax.md +++ b/query-languages/dax/previousquarter-function-dax.md @@ -6,49 +6,49 @@ title: "PREVIOUSQUARTER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the previous quarter, based on the first date in the `dates` column, in the current context. - -## Syntax - +Returns a table that contains a column of all dates from the previous quarter, based on the first date in the `dates` column, in the current context. + +## Syntax + ```dax -PREVIOUSQUARTER() +PREVIOUSQUARTER() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column containing dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column containing dates.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -- This function returns all dates from the previous quarter, using the first date in the input column. For example, if the first date in the `dates` argument refers to June 10, 2009, this function returns all dates for the quarter January to March, 2009. - -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - +- This function returns all dates from the previous quarter, using the first date in the input column. For example, if the first date in the `dates` argument refers to June 10, 2009, this function returns all dates for the quarter January to March, 2009. + +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'previous quarter sales' for Internet sales. - +The following sample formula creates a measure that calculates the 'previous quarter sales' for Internet sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSQUARTER('DateTime'[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSQUARTER('DateTime'[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[PREVIOUSMONTH](previousmonth-function-dax.md) -[PREVIOUSDAY](previousday-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[PREVIOUSMONTH](previousmonth-function-dax.md) +[PREVIOUSDAY](previousday-function-dax.md) [PREVIOUSYEAR](previousyear-function-dax.md) diff --git a/query-languages/dax/previousyear-function-dax.md b/query-languages/dax/previousyear-function-dax.md index 4abc8bf4f..d90b0efd7 100644 --- a/query-languages/dax/previousyear-function-dax.md +++ b/query-languages/dax/previousyear-function-dax.md @@ -6,52 +6,52 @@ title: "PREVIOUSYEAR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of all dates from the previous year, given the last date in the `dates` column, in the current context. - -## Syntax - +Returns a table that contains a column of all dates from the previous year, given the last date in the `dates` column, in the current context. + +## Syntax + ```dax -PREVIOUSYEAR([,]) +PREVIOUSYEAR([,]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column containing dates.| -|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column containing dates.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| + ## Return value -A table containing a single column of date values. - +A table containing a single column of date values. + ## Remarks -- This function returns all dates from the previous year given the latest date in the input parameter. For example, if the latest date in the `dates` argument refers to the year 2009, then this function returns all dates for the year of 2008, up to the specified `year_end_date`. - -- The `dates` argument can be any of the following: +- This function returns all dates from the previous year given the latest date in the input parameter. For example, if the latest date in the `dates` argument refers to the year 2009, then this function returns all dates for the year of 2008, up to the specified `year_end_date`. + +- The `dates` argument can be any of the following: - A reference to a date/time column. - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - -- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. - + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is ignored. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the previous year sales for Internet sales. - +The following sample formula creates a measure that calculates the previous year sales for Internet sales. + ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSYEAR('DateTime'[DateKey])) += CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSYEAR('DateTime'[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) -[PREVIOUSMONTH](previousmonth-function-dax.md) -[PREVIOUSDAY](previousday-function-dax.md) -[PREVIOUSQUARTER](previousquarter-function-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[PREVIOUSMONTH](previousmonth-function-dax.md) +[PREVIOUSDAY](previousday-function-dax.md) +[PREVIOUSQUARTER](previousquarter-function-dax.md) diff --git a/query-languages/dax/price-function-dax.md b/query-languages/dax/price-function-dax.md index 4bb7364fc..4329d435b 100644 --- a/query-languages/dax/price-function-dax.md +++ b/query-languages/dax/price-function-dax.md @@ -18,8 +18,8 @@ PRICE(, , , , , [, , , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`discount`|The security's discount rate.| diff --git a/query-languages/dax/pricemat-function-dax.md b/query-languages/dax/pricemat-function-dax.md index 000c68139..b087167fa 100644 --- a/query-languages/dax/pricemat-function-dax.md +++ b/query-languages/dax/pricemat-function-dax.md @@ -18,8 +18,8 @@ PRICEMAT(, , , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`issue`|The security's issue date.| diff --git a/query-languages/dax/product-function-dax.md b/query-languages/dax/product-function-dax.md index 4f3bfca6e..1c7b73cf8 100644 --- a/query-languages/dax/product-function-dax.md +++ b/query-languages/dax/product-function-dax.md @@ -5,43 +5,43 @@ title: "PRODUCT function (DAX)" # PRODUCT [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the product of the numbers in a column. - -## Syntax - + +Returns the product of the numbers in a column. + +## Syntax + ```dax -PRODUCT() +PRODUCT() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column that contains the numbers for which the product is to be computed.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|The column that contains the numbers for which the product is to be computed.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- To return the product of an expression evaluated for each row in a table, use [PRODUCTX function](productx-function-dax.md). +- To return the product of an expression evaluated for each row in a table, use [PRODUCTX function](productx-function-dax.md). - Only the numbers in the column are counted. Blanks, logical values, and text are ignored. For example, - `PRODUCT( Table[Column] )` is equivalent to `PRODUCTX( Table, Table[Column] )`. + `PRODUCT( Table[Column] )` is equivalent to `PRODUCTX( Table, Table[Column] )`. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following computes the product of the AdjustedRates column in an Annuity table: - +The following computes the product of the AdjustedRates column in an Annuity table: + ```dax -= PRODUCT( Annuity[AdjustedRates] ) += PRODUCT( Annuity[AdjustedRates] ) ``` - + ## Related content -[PRODUCTX](productx-function-dax.md) +[PRODUCTX](productx-function-dax.md) diff --git a/query-languages/dax/productx-function-dax.md b/query-languages/dax/productx-function-dax.md index 72c57f70f..bb40aae41 100644 --- a/query-languages/dax/productx-function-dax.md +++ b/query-languages/dax/productx-function-dax.md @@ -6,43 +6,43 @@ title: "PRODUCTX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the product of an expression evaluated for each row in a table. - -## Syntax - +Returns the product of an expression evaluated for each row in a table. + +## Syntax + ```dax -PRODUCTX(
, ) +PRODUCTX(
, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of the table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- To return the product of the numbers in a column, use [PRODUCT](product-function-dax.md). +- To return the product of the numbers in a column, use [PRODUCT](product-function-dax.md). + +- The PRODUCTX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers for which you want to compute the product, or an expression that evaluates to a column. -- The PRODUCTX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers for which you want to compute the product, or an expression that evaluates to a column. - -- Only the numbers in the column are counted. Blanks, logical values, and text are ignored. +- Only the numbers in the column are counted. Blanks, logical values, and text are ignored. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following computes the future value of an investment: - +The following computes the future value of an investment: + ```dax -= [PresentValue] * PRODUCTX( AnnuityPeriods, 1+[FixedInterestRate] ) += [PresentValue] * PRODUCTX( AnnuityPeriods, 1+[FixedInterestRate] ) ``` - + ## Related content -[PRODUCT](product-function-dax.md) +[PRODUCT](product-function-dax.md) diff --git a/query-languages/dax/pv-function-dax.md b/query-languages/dax/pv-function-dax.md index d51c29251..52a6440b6 100644 --- a/query-languages/dax/pv-function-dax.md +++ b/query-languages/dax/pv-function-dax.md @@ -18,8 +18,8 @@ PV(, , [, [, ]]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`rate`|The interest rate per period. For example, if you obtain an automobile loan at a 10 percent annual interest rate and make monthly payments, your interest rate per month is 0.1/12, or 0.0083. You would enter 0.1/12, or 0.0083, into the formula as the rate.| |`nper`|The total number of payment periods in an annuity. For example, if you get a four-year car loan and make monthly payments, your loan has 4*12 (or 48) periods. You would enter 48 into the formula for nper.| |`pmt`|The payment made each period that cannot change over the life of the annuity. Typically, pmt includes principal and interest but no other fees or taxes. For example, the monthly payments on a \\$10,000, four-year car loan at 12 percent are \\$263.33. You would enter -263.33 into the formula as the pmt.| diff --git a/query-languages/dax/quarter-function-dax.md b/query-languages/dax/quarter-function-dax.md index a7faaddf8..93580ce9a 100644 --- a/query-languages/dax/quarter-function-dax.md +++ b/query-languages/dax/quarter-function-dax.md @@ -8,23 +8,23 @@ title: "QUARTER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the quarter as a number from 1 (January – March) to 4 (October – December). - -## Syntax - + +## Syntax + ```dax QUARTER() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`date`|A date.| - -## Return value - -An integer number from 1 to 4. - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`date`|A date.| + +## Return value + +An integer number from 1 to 4. + ## Remarks If the input value is BLANK, the output value is also BLANK. @@ -32,7 +32,7 @@ If the input value is BLANK, the output value is also BLANK. ## Example 1 The following DAX query: - + ```dax EVALUATE { QUARTER(DATE(2019, 2, 1)), QUARTER(DATE(2018, 12, 31)) } ``` @@ -47,7 +47,7 @@ Returns: ## Example 2 The following DAX query: - + ```dax EVALUATE ADDCOLUMNS( @@ -69,6 +69,6 @@ Returns: ## Related content -[YEAR](year-function-dax.md) -[MONTH](month-function-dax.md) +[YEAR](year-function-dax.md) +[MONTH](month-function-dax.md) [DAY](day-function-dax.md) diff --git a/query-languages/dax/quotient-function-dax.md b/query-languages/dax/quotient-function-dax.md index bd2deea6a..5aa649553 100644 --- a/query-languages/dax/quotient-function-dax.md +++ b/query-languages/dax/quotient-function-dax.md @@ -6,43 +6,43 @@ title: "QUOTIENT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Performs division and returns only the integer portion of the division result. Use this function when you want to discard the remainder of division. - -## Syntax - +Performs division and returns only the integer portion of the division result. Use this function when you want to discard the remainder of division. + +## Syntax + ```dax -QUOTIENT(, ) +QUOTIENT(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`numerator`|The dividend, or number to divide.| -|`denominator`|The divisor, or number to divide by.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`numerator`|The dividend, or number to divide.| +|`denominator`|The divisor, or number to divide by.| + ## Return value -A whole number. - +A whole number. + ## Remarks -- If either argument is non-numeric, QUOTIENT returns the `#VALUE!` error value. - -- You can use a column reference instead of a literal value for either argument. However, if the column that you reference contains a 0 (zero), an error is returned for the entire column of values. - +- If either argument is non-numeric, QUOTIENT returns the `#VALUE!` error value. + +- You can use a column reference instead of a literal value for either argument. However, if the column that you reference contains a 0 (zero), an error is returned for the entire column of values. + ## Example -The following formulas return the same result, 2. - +The following formulas return the same result, 2. + ```dax = QUOTIENT(5,2) ``` ```dax -= QUOTIENT(10/2,2) += QUOTIENT(10/2,2) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/radians-function-dax.md b/query-languages/dax/radians-function-dax.md index 05caa40ce..134137697 100644 --- a/query-languages/dax/radians-function-dax.md +++ b/query-languages/dax/radians-function-dax.md @@ -6,22 +6,22 @@ title: "RADIANS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Converts degrees to radians. - -## Syntax - +Converts degrees to radians. + +## Syntax + ```dax -RADIANS(angle) +RADIANS(angle) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`angle`|Required. An angle in degrees that you want to convert.| - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= RADIANS(270)`|270 degrees as radians (4.712389 or 3π/2 radians)|4.712389| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`angle`|Required. An angle in degrees that you want to convert.| + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= RADIANS(270)`|270 degrees as radians (4.712389 or 3π/2 radians)|4.712389| diff --git a/query-languages/dax/rand-function-dax.md b/query-languages/dax/rand-function-dax.md index 4bf88b9b4..63948867f 100644 --- a/query-languages/dax/rand-function-dax.md +++ b/query-languages/dax/rand-function-dax.md @@ -6,32 +6,32 @@ title: "RAND function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a random number greater than or equal to 0 and less than 1, evenly distributed. The number that is returned changes each time the cell containing this function is recalculated. - -## Syntax - +Returns a random number greater than or equal to 0 and less than 1, evenly distributed. The number that is returned changes each time the cell containing this function is recalculated. + +## Syntax + ```dax -RAND() +RAND() ``` - + ## Return value -A decimal number. - +A decimal number. + ## Remarks - Recalculation depends on various factors, including whether the model is set to `Manual` or `Automatic` recalculation mode, and whether data has been refreshed. - -- RAND and other volatile functions that do not have fixed values are not always recalculated. For example, execution of a query or filtering will usually not cause such functions to be re-evaluated. However, the results for these functions will be recalculated when the entire column is recalculated. These situations include refresh from an external data source or manual editing of data that causes re-evaluation of formulas that contain these functions. - -- RAND is always recalculated if the function is used in the definition of a measure. - -- RAND function cannot return a result of zero, to prevent errors such as division by zero. - + +- RAND and other volatile functions that do not have fixed values are not always recalculated. For example, execution of a query or filtering will usually not cause such functions to be re-evaluated. However, the results for these functions will be recalculated when the entire column is recalculated. These situations include refresh from an external data source or manual editing of data that causes re-evaluation of formulas that contain these functions. + +- RAND is always recalculated if the function is used in the definition of a measure. + +- RAND function cannot return a result of zero, to prevent errors such as division by zero. + ## Examples -To generate a random real number between two other numbers, use: - +To generate a random real number between two other numbers, use: + ```dax = RAND()*(b-a)+a @@ -60,6 +60,6 @@ INT(RAND()*100) ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[Statistical functions](statistical-functions-dax.md) - +[Math and Trig functions](math-and-trig-functions-dax.md) +[Statistical functions](statistical-functions-dax.md) + diff --git a/query-languages/dax/randbetween-function-dax.md b/query-languages/dax/randbetween-function-dax.md index e8752e5b5..55ee49bae 100644 --- a/query-languages/dax/randbetween-function-dax.md +++ b/query-languages/dax/randbetween-function-dax.md @@ -6,38 +6,38 @@ title: "RANDBETWEEN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a random number in the range between two numbers you specify. - -## Syntax - +Returns a random number in the range between two numbers you specify. + +## Syntax + ```dax -RANDBETWEEN(,) +RANDBETWEEN(,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Bottom`|The smallest integer the function will return.| -|`Top`|The largest integer the function will return.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Bottom`|The smallest integer the function will return.| +|`Top`|The largest integer the function will return.| + ## Return value -A whole number. - +A whole number. + ## Remarks [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following formula returns a random number between 1 and 10. - +The following formula returns a random number between 1 and 10. + ```dax -= RANDBETWEEN(1,10) += RANDBETWEEN(1,10) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[Statistical functions](statistical-functions-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 4746fc002..69889b043 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -65,7 +65,7 @@ TotalSalesFollowingYear = CALCULATE(SUM([SalesAmount]), RANGE(12, FALSE, Rows, K ## See also -[INDEX](index-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/rank-eq-function-dax.md b/query-languages/dax/rank-eq-function-dax.md index 23d4fbb74..e9a702999 100644 --- a/query-languages/dax/rank-eq-function-dax.md +++ b/query-languages/dax/rank-eq-function-dax.md @@ -6,55 +6,55 @@ title: "RANK.EQ function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the ranking of a number in a list of numbers. - -## Syntax - +Returns the ranking of a number in a list of numbers. + +## Syntax + ```dax -RANK.EQ(, [, ]) +RANK.EQ(, [, ]) ``` - + ### Parameters -|Term|Definition| -|--------|--------------| -|`value` |Any DAX expression that returns a single scalar value whose rank is to be found. The expression is to be evaluated exactly once, before the function is evaluated, and it's value passed to the argument list. | +|Term|Definition| +|--------|--------------| +|`value` |Any DAX expression that returns a single scalar value whose rank is to be found. The expression is to be evaluated exactly once, before the function is evaluated, and it's value passed to the argument list. | |`columnName` |The name of an existing column against which ranks will be determined. It cannot be an expression or a column created using these functions: `ADDCOLUMNS`, `ROW`, or `SUMMARIZE`. | |`order` |(Optional) A value that specifies how to rank *numbers*, low to high or high to low: | #### order values -|value|alternate value|Description| -|-----|-----|-----| -|`0` (zero)|`FALSE`|Ranks in descending order of `columnName`. If `value` is equal to the highest number in `columnName` then `RANK.EQ` is 1.| -|`1`|`TRUE`|Ranks in ascending order of `columnName`. If `value` is equal to the lowest number in `columnName` then `RANK.EQ` is 1.| - +|value|alternate value|Description| +|-----|-----|-----| +|`0` (zero)|`FALSE`|Ranks in descending order of `columnName`. If `value` is equal to the highest number in `columnName` then `RANK.EQ` is 1.| +|`1`|`TRUE`|Ranks in ascending order of `columnName`. If `value` is equal to the lowest number in `columnName` then `RANK.EQ` is 1.| + ## Return value -A number indicating the rank of `value` among the numbers in `columnName`. - -## Remarks - -- `columnName` cannot refer to any column created using these functions: ADDCOLUMNS, ROW or SUMMARIZE.I - -- If `value` is not in `columnName` or value is a blank, then *RANK.EQ* returns a blank value. - -- Duplicate values of `value` receive the same rank value; the next rank value assigned will be the rank value plus the number of duplicate values. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 16 (11 + 5). +A number indicating the rank of `value` among the numbers in `columnName`. + +## Remarks + +- `columnName` cannot refer to any column created using these functions: ADDCOLUMNS, ROW or SUMMARIZE.I + +- If `value` is not in `columnName` or value is a blank, then *RANK.EQ* returns a blank value. + +- Duplicate values of `value` receive the same rank value; the next rank value assigned will be the rank value plus the number of duplicate values. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 16 (11 + 5). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example 1 -The following example creates a calculated column that ranks the values in SalesAmount_USD, from the *InternetSales_USD* table, against all numbers in the same column. - +The following example creates a calculated column that ranks the values in SalesAmount_USD, from the *InternetSales_USD* table, against all numbers in the same column. + ```dax -= RANK.EQ(InternetSales_USD[SalesAmount_USD], InternetSales_USD[SalesAmount_USD]) += RANK.EQ(InternetSales_USD[SalesAmount_USD], InternetSales_USD[SalesAmount_USD]) ``` - + ## Example 2 -The following example ranks a subset of values against a given sample. Assume that you have a table of local students with their performance in a specific national test and, also, you have the entire set of scores in that national test. The following calculated column will give you the national ranking for each of the local students. - +The following example ranks a subset of values against a given sample. Assume that you have a table of local students with their performance in a specific national test and, also, you have the entire set of scores in that national test. The following calculated column will give you the national ranking for each of the local students. + ```dax -= RANK.EQ(Students[Test_Score], NationalScores[Test_Score]) += RANK.EQ(Students[Test_Score], NationalScores[Test_Score]) ``` diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 40747c69c..547b051d5 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -9,17 +9,17 @@ author: rahulten [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then then rank is blank. - -## Syntax - + +## Syntax + ```dax RANK ( [][, or ][, ][, ][, ][, ][, ] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`ties`|(Optional) Defines how to handle the ranking when two or more rows are tied.
If specified, the supported value is either DENSE, or SKIP.
If omitted:
- Defaults to SKIP | |`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `orderBy` and `partitionBy` must come from it.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. @@ -28,11 +28,11 @@ RANK ( [][, or ][, ][, ][, |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | - + ## Return value The rank number for the current context. - + ## Remarks - Each `orderBy`, `partitionBy`, and `matchBy` column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: @@ -51,7 +51,7 @@ The rank number for the current context. ## Example 1 - calculated column The following DAX query: - + ```dax EVALUATE ADDCOLUMNS( @@ -89,8 +89,8 @@ The screenshot below shows the visual matrix and the first visual calculation ex ## Related content -[INDEX](index-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) diff --git a/query-languages/dax/rankx-function-dax.md b/query-languages/dax/rankx-function-dax.md index 38b706439..e7dd57c79 100644 --- a/query-languages/dax/rankx-function-dax.md +++ b/query-languages/dax/rankx-function-dax.md @@ -6,53 +6,53 @@ title: "RANKX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the ranking of a number in a list of numbers for each row in the `table` argument. - -## Syntax - +Returns the ranking of a number in a list of numbers for each row in the `table` argument. + +## Syntax + ```dax -RANKX(
, [, [, [, ]]]) +RANKX(
, [, [, [, ]]]) ``` - + ### Parameters -`table` -Any DAX expression that returns a table of data over which the expression is evaluated. - -`expression` -Any DAX expression that returns a single scalar value. The expression is evaluated for each row of `table`, to generate all possible values for ranking. See the remarks section to understand the function behavior when `expression` evaluates to BLANK. - -`value` -(Optional) Any DAX expression that returns a single scalar value whose rank is to be found. See the remarks section to understand the function's behavior when `value` is not found in the expression. - -When the `value` parameter is omitted, the value of expression at the current row is used instead. - -`order` -(Optional) A value that specifies how to rank `value`, low to high or high to low: +`table` +Any DAX expression that returns a table of data over which the expression is evaluated. + +`expression` +Any DAX expression that returns a single scalar value. The expression is evaluated for each row of `table`, to generate all possible values for ranking. See the remarks section to understand the function behavior when `expression` evaluates to BLANK. + +`value` +(Optional) Any DAX expression that returns a single scalar value whose rank is to be found. See the remarks section to understand the function's behavior when `value` is not found in the expression. + +When the `value` parameter is omitted, the value of expression at the current row is used instead. + +`order` +(Optional) A value that specifies how to rank `value`, low to high or high to low: |value|alternate value|Description| |-----|-----|-----| -|0 (zero)|`FALSE`|Ranks in descending order of values of expression. If value is equal to the highest number in expression then RANKX returns 1.

This is the default value when order parameter is omitted.| -|1|`TRUE`|Ranks in ascending order of expression. If value is equal to the lowest number in expression then RANKX returns 1.| - -`ties` -(Optional) An enumeration that defines how to determine ranking when there are ties. - -|enumeration|Description| -|-----|-----| -|`Skip`|The next rank value, after a tie, is the rank value of the tie plus the count of tied values. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 16 (11 + 5).

This is the default value when `ties` parameter is omitted.| -|`Dense`|The next rank value, after a tie, is the next rank value. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 12.| - +|0 (zero)|`FALSE`|Ranks in descending order of values of expression. If value is equal to the highest number in expression then RANKX returns 1.

This is the default value when order parameter is omitted.| +|1|`TRUE`|Ranks in ascending order of expression. If value is equal to the lowest number in expression then RANKX returns 1.| + +`ties` +(Optional) An enumeration that defines how to determine ranking when there are ties. + +|enumeration|Description| +|-----|-----| +|`Skip`|The next rank value, after a tie, is the rank value of the tie plus the count of tied values. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 16 (11 + 5).

This is the default value when `ties` parameter is omitted.| +|`Dense`|The next rank value, after a tie, is the next rank value. For example if five (5) values are tied with a rank of 11 then the next value will receive a rank of 12.| + ## Return value -The rank number of `value` among all possible values of `expression` evaluated for all rows of `table` numbers. - -## Remarks - -- If `expression` or `value` evaluates to BLANK it is treated as a 0 (zero) for all expressions that result in a number, or as an empty text for all text expressions. - -- If `value` is not among all possible values of `expression` then RANKX temporarily adds `value` to the values from `expression` and re-evaluates RANKX to determine the proper rank of `value`. - +The rank number of `value` among all possible values of `expression` evaluated for all rows of `table` numbers. + +## Remarks + +- If `expression` or `value` evaluates to BLANK it is treated as a 0 (zero) for all expressions that result in a number, or as an empty text for all text expressions. + +- If `value` is not among all possible values of `expression` then RANKX temporarily adds `value` to the values from `expression` and re-evaluates RANKX to determine the proper rank of `value`. + - Optional arguments might be skipped by placing an empty comma (,) in the argument list, such as `RANKX(Inventory, [InventoryCost],,,"Dense")`. - Equality related comparisons (`=`, `<`, `>`, `>=` and `<=`) between values with the *Decimal Number* data type can potentially return unexpected results when using RANKX function. Incorrect results can occur because values with *Decimal Number* data type are stored as IEEE Standard 754 floating point numbers and have inherent limitations in their precision. To avoid unexpected results, change the data type to *Fixed Decimal Number* or do a forced rounding using [ROUND](/dax/round-function-dax). @@ -61,8 +61,8 @@ The rank number of `value` among all possible values of `expression` evaluated f ## Example -The following calculated column in the Products table calculates the sales ranking for each product in the Internet channel. - +The following calculated column in the Products table calculates the sales ranking for each product in the Internet channel. + ```dax -= RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount])) += RANKX(ALL(Products), SUMX(RELATEDTABLE(InternetSales), [SalesAmount])) ``` diff --git a/query-languages/dax/rate-function-dax.md b/query-languages/dax/rate-function-dax.md index de47b1c02..1d1a10e02 100644 --- a/query-languages/dax/rate-function-dax.md +++ b/query-languages/dax/rate-function-dax.md @@ -18,8 +18,8 @@ RATE(, , [, [, [, ]]]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`nper`|The total number of payment periods in an annuity.| |`pmt`|The payment made each period and cannot change over the life of the annuity. Typically, pmt includes principal and interest but no other fees or taxes.| |`pv`|The present value — the total amount that a series of future payments is worth now.| diff --git a/query-languages/dax/received-function-dax.md b/query-languages/dax/received-function-dax.md index bdb6c6331..c9baa7a59 100644 --- a/query-languages/dax/received-function-dax.md +++ b/query-languages/dax/received-function-dax.md @@ -18,8 +18,8 @@ RECEIVED(, , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`investment`|The amount invested in the security.| diff --git a/query-languages/dax/related-function-dax.md b/query-languages/dax/related-function-dax.md index a3e51dd53..0a1b63df3 100644 --- a/query-languages/dax/related-function-dax.md +++ b/query-languages/dax/related-function-dax.md @@ -6,89 +6,89 @@ title: "RELATED function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] -Returns a related value from another table. - -## Syntax - +Returns a related value from another table. + +## Syntax + ```dax -RELATED() +RELATED() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column that contains the values you want to retrieve.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|The column that contains the values you want to retrieve.| + ## Return value -A single value that is related to the current row. - +A single value that is related to the current row. + ## Remarks -- The RELATED function requires that a relationship exists between the current table and the table with related information. You specify the column that contains the data that you want, and the function follows an existing many-to-one relationship to fetch the value from the specified column in the related table. If a relationship does not exist, you must create a relationship. - -- When the RELATED function performs a lookup, it examines all values in the specified table regardless of any filters that may have been applied. - -- The RELATED function needs a row context; therefore, it can only be used in calculated column expression, where the current row context is unambiguous, or as a nested function in an expression that uses a table scanning function. A table scanning function, such as SUMX, gets the value of the current row value and then scans another table for instances of that value. +- The RELATED function requires that a relationship exists between the current table and the table with related information. You specify the column that contains the data that you want, and the function follows an existing many-to-one relationship to fetch the value from the specified column in the related table. If a relationship does not exist, you must create a relationship. + +- When the RELATED function performs a lookup, it examines all values in the specified table regardless of any filters that may have been applied. + +- The RELATED function needs a row context; therefore, it can only be used in calculated column expression, where the current row context is unambiguous, or as a nested function in an expression that uses a table scanning function. A table scanning function, such as SUMX, gets the value of the current row value and then scans another table for instances of that value. - The RELATED function cannot be used to fetch a column across a [limited relationship](/power-bi/transform-model/desktop-relationships-understand#limited-relationships). - + ## Example -In the following example, the measure Non USA Internet Sales is created to produce a sales report that excludes sales in the United States. In order to create the measure, the InternetSales_USD table must be filtered to exclude all sales that belong to the United States in the SalesTerritory table. The United States, as a country, appears 5 times in the SalesTerritory table; once for each of the following regions: Northwest, Northeast, Central, Southwest, and Southeast. - -The first approach to filter the Internet Sales, in order to create the measure, could be to add a filter expression like the following: - +In the following example, the measure Non USA Internet Sales is created to produce a sales report that excludes sales in the United States. In order to create the measure, the InternetSales_USD table must be filtered to exclude all sales that belong to the United States in the SalesTerritory table. The United States, as a country, appears 5 times in the SalesTerritory table; once for each of the following regions: Northwest, Northeast, Central, Southwest, and Southeast. + +The first approach to filter the Internet Sales, in order to create the measure, could be to add a filter expression like the following: + ```dax FILTER('InternetSales_USD' , 'InternetSales_USD'[SalesTerritoryKey]<>1 && 'InternetSales_USD'[SalesTerritoryKey]<>2 && 'InternetSales_USD'[SalesTerritoryKey]<>3 && 'InternetSales_USD'[SalesTerritoryKey]<>4 && 'InternetSales_USD'[SalesTerritoryKey]<>5) -``` - -However, this approach is counterintuitive, prone to typing errors, and might not work if any of the existing regions is split in the future. - -A better approach would be to use the existing relationship between InternetSales_USD and SalesTerritory and explicitly state that the country must be different from the United States. To do so, create a filter expression like the following: - +``` + +However, this approach is counterintuitive, prone to typing errors, and might not work if any of the existing regions is split in the future. + +A better approach would be to use the existing relationship between InternetSales_USD and SalesTerritory and explicitly state that the country must be different from the United States. To do so, create a filter expression like the following: + ```dax FILTER( 'InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") ``` - -This expression uses the RELATED function to lookup the country value in the SalesTerritory table, starting with the value of the key column, SalesTerritoryKey, in the InternetSales_USD table. The result of the lookup is used by the filter function to determine if the InternetSales_USD row is filtered or not. - -> [!NOTE] -> If the example does not work, you might need to create a relationship between the tables. - + +This expression uses the RELATED function to lookup the country value in the SalesTerritory table, starting with the value of the key column, SalesTerritoryKey, in the InternetSales_USD table. The result of the lookup is used by the filter function to determine if the InternetSales_USD row is filtered or not. + +> [!NOTE] +> If the example does not work, you might need to create a relationship between the tables. + ```dax -= SUMX(FILTER( 'InternetSales_USD' - , RELATED('SalesTerritory'[SalesTerritoryCountry]) - <>"United States" - ) - ,'InternetSales_USD'[SalesAmount_USD]) += SUMX(FILTER( 'InternetSales_USD' + , RELATED('SalesTerritory'[SalesTerritoryCountry]) + <>"United States" + ) + ,'InternetSales_USD'[SalesAmount_USD]) ``` -The following table shows only totals for each region, to prove that the filter expression in the measure, Non USA Internet Sales, works as intended. - -|:::no-loc text="Row Labels":::|:::no-loc text="Internet Sales":::|:::no-loc text="Non USA Internet Sales":::| -|--------------|------------------|--------------------------| -|Australia|$4,999,021.84|$4,999,021.84| -|Canada|$1,343,109.10|$1,343,109.10| -|France|$2,490,944.57|$2,490,944.57| -|Germany|$2,775,195.60|$2,775,195.60| -|United Kingdom|$5,057,076.55|$5,057,076.55| -|United States|$9,389,479.79|| -|Grand Total|$26,054,827.45|$16,665,347.67| - -The following shows what that you might get if you used this measure in a report table visual: - +The following table shows only totals for each region, to prove that the filter expression in the measure, Non USA Internet Sales, works as intended. + +|:::no-loc text="Row Labels":::|:::no-loc text="Internet Sales":::|:::no-loc text="Non USA Internet Sales":::| +|--------------|------------------|--------------------------| +|Australia|$4,999,021.84|$4,999,021.84| +|Canada|$1,343,109.10|$1,343,109.10| +|France|$2,490,944.57|$2,490,944.57| +|Germany|$2,775,195.60|$2,775,195.60| +|United Kingdom|$5,057,076.55|$5,057,076.55| +|United States|$9,389,479.79|| +|Grand Total|$26,054,827.45|$16,665,347.67| + +The following shows what that you might get if you used this measure in a report table visual: + |:::no-loc text="Row Labels":::|:::no-loc text="Accessories":::|:::no-loc text="Bikes":::|:::no-loc text="Clothing":::|:::no-loc text="Grand Total":::| -|--------------------------|-----------------|----|----|----| -|2005||$1,526,481.95||$1,526,481.95| -|2006||$3,554,744.04||$3,554,744.04| -|2007|$156,480.18|$5,640,106.05|$70,142.77|$5,866,729.00| -|2008|$228,159.45|$5,386,558.19|$102,675.04|$5,717,392.68| -|Grand Total|$384,639.63|$16,107,890.23|$172,817.81|$16,665,347.67| - +|--------------------------|-----------------|----|----|----| +|2005||$1,526,481.95||$1,526,481.95| +|2006||$3,554,744.04||$3,554,744.04| +|2007|$156,480.18|$5,640,106.05|$70,142.77|$5,866,729.00| +|2008|$228,159.45|$5,386,558.19|$102,675.04|$5,717,392.68| +|Grand Total|$384,639.63|$16,107,890.23|$172,817.81|$16,665,347.67| + ## Related content -[RELATEDTABLE](relatedtable-function-dax.md) -[Filter functions](filter-functions-dax.md) +[RELATEDTABLE](relatedtable-function-dax.md) +[Filter functions](filter-functions-dax.md) diff --git a/query-languages/dax/relatedtable-function-dax.md b/query-languages/dax/relatedtable-function-dax.md index 20ebd2324..0845a3154 100644 --- a/query-languages/dax/relatedtable-function-dax.md +++ b/query-languages/dax/relatedtable-function-dax.md @@ -6,53 +6,53 @@ title: "RELATEDTABLE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] -Evaluates a table expression in a context modified by the given filters. - -## Syntax - +Evaluates a table expression in a context modified by the given filters. + +## Syntax + ```dax -RELATEDTABLE() +RELATEDTABLE() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`tableName`|The name of an existing table using standard DAX syntax. It cannot be an expression.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`tableName`|The name of an existing table using standard DAX syntax. It cannot be an expression.| + ## Return value -A table of values. - +A table of values. + ## Remarks -- The RELATEDTABLE function changes the context in which the data is filtered, and evaluates the expression in the new context that you specify. - -- This function is a shortcut for CALCULATETABLE function with no logical expression. +- The RELATEDTABLE function changes the context in which the data is filtered, and evaluates the expression in the new context that you specify. + +- This function is a shortcut for CALCULATETABLE function with no logical expression. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example uses the RELATEDTABLE function to create a calculated column with the Internet Sales in the Product Category table: +The following example uses the RELATEDTABLE function to create a calculated column with the Internet Sales in the Product Category table: ```dax -= SUMX( RELATEDTABLE('InternetSales_USD') - , [SalesAmount_USD]) += SUMX( RELATEDTABLE('InternetSales_USD') + , [SalesAmount_USD]) ``` -The following table shows the results: +The following table shows the results: + +|:::no-loc text="Product Category Key":::|:::no-loc text="Product Category AlternateKey":::|:::no-loc text="Product Category Name":::|:::no-loc text="Internet Sales":::| +|-----|------|------|------| +|1|1|Bikes|$28,318,144.65| +|2|2|Components|| +|3|3|Clothing|$339,772.61| +|4|4|Accessories|$700,759.96| + -|:::no-loc text="Product Category Key":::|:::no-loc text="Product Category AlternateKey":::|:::no-loc text="Product Category Name":::|:::no-loc text="Internet Sales":::| -|-----|------|------|------| -|1|1|Bikes|$28,318,144.65| -|2|2|Components|| -|3|3|Clothing|$339,772.61| -|4|4|Accessories|$700,759.96| - - ## Related content -[CALCULATETABLE](calculatetable-function-dax.md) +[CALCULATETABLE](calculatetable-function-dax.md) [Filter functions](filter-functions-dax.md) diff --git a/query-languages/dax/removefilters-function-dax.md b/query-languages/dax/removefilters-function-dax.md index 68105ec65..35f086749 100644 --- a/query-languages/dax/removefilters-function-dax.md +++ b/query-languages/dax/removefilters-function-dax.md @@ -7,25 +7,25 @@ title: "REMOVEFILTERS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Clear filters from the specified tables or columns. - -## Syntax - + +## Syntax + ```dax REMOVEFILTERS([
| [, [, [,…]]]]) ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|table|The table that you want to clear filters on. | -|column|The column that you want to clear filters on.| - + +|Term|Definition| +|--------|--------------| +|table|The table that you want to clear filters on. | +|column|The column that you want to clear filters on.| + ## Return value N/A. See remarks. - -## Remarks + +## Remarks - REMOVEFILTERS can only be used to clear filters but not to return a table. diff --git a/query-languages/dax/replace-function-dax.md b/query-languages/dax/replace-function-dax.md index 1a0c351a6..039ebd4c7 100644 --- a/query-languages/dax/replace-function-dax.md +++ b/query-languages/dax/replace-function-dax.md @@ -6,42 +6,42 @@ title: "REPLACE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -REPLACE replaces part of a text string, based on the number of characters you specify, with a different text string. - -## Syntax - +REPLACE replaces part of a text string, based on the number of characters you specify, with a different text string. + +## Syntax + ```dax -REPLACE(, , , ) +REPLACE(, , , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`old_text`|The string of text that contains the characters you want to replace, or a reference to a column that contains text.| -|`start_num`|The position of the character in `old_text` that you want to replace with `new_text`.| -|`num_chars`|The number of characters that you want to replace. **Warning:** If the argument, `num_chars`, is a blank or references a column that evaluates to a blank, the string for `new_text` is inserted at the position, `start_num`, without replacing any characters. This is the same behavior as in Excel.| -|`new_text`|The replacement text for the specified characters in `old_text`.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`old_text`|The string of text that contains the characters you want to replace, or a reference to a column that contains text.| +|`start_num`|The position of the character in `old_text` that you want to replace with `new_text`.| +|`num_chars`|The number of characters that you want to replace. **Warning:** If the argument, `num_chars`, is a blank or references a column that evaluates to a blank, the string for `new_text` is inserted at the position, `start_num`, without replacing any characters. This is the same behavior as in Excel.| +|`new_text`|The replacement text for the specified characters in `old_text`.| + ## Return value -A text string. - +A text string. + ## Remarks -- Whereas Microsoft Excel has different functions for use with single-byte and double-byte character languages, DAX uses Unicode and therefore stores all characters as the same length. - +- Whereas Microsoft Excel has different functions for use with single-byte and double-byte character languages, DAX uses Unicode and therefore stores all characters as the same length. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following formula creates a new calculated column that replaces the first two characters of the product code in column, [ProductCode], with a new two-letter code, OB. - +The following formula creates a new calculated column that replaces the first two characters of the product code in column, [ProductCode], with a new two-letter code, OB. + ```dax -= REPLACE('New Products'[Product Code],1,2,"OB") += REPLACE('New Products'[Product Code],1,2,"OB") ``` - + ## Related content -[Text functions](text-functions-dax.md) -[SUBSTITUTE function](substitute-function-dax.md) +[Text functions](text-functions-dax.md) +[SUBSTITUTE function](substitute-function-dax.md) diff --git a/query-languages/dax/rept-function-dax.md b/query-languages/dax/rept-function-dax.md index 8e95a9a13..7394e4519 100644 --- a/query-languages/dax/rept-function-dax.md +++ b/query-languages/dax/rept-function-dax.md @@ -6,55 +6,55 @@ title: "REPT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Repeats text a given number of times. Use REPT to fill a cell with a number of instances of a text string. - -## Syntax - +Repeats text a given number of times. Use REPT to fill a cell with a number of instances of a text string. + +## Syntax + ```dax -REPT(, ) +REPT(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text you want to repeat.| -|`num_times`|A positive number specifying the number of times to repeat text.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text you want to repeat.| +|`num_times`|A positive number specifying the number of times to repeat text.| + ## Return value -A string containing the changes. - +A string containing the changes. + ## Remarks -- If `num_times` is 0 (zero), REPT returns a blank. - -- If `num_times` is not an integer, it is truncated. - -- The result of the REPT function cannot be longer than 32,767 characters, or REPT returns an error. +- If `num_times` is 0 (zero), REPT returns a blank. + +- If `num_times` is not an integer, it is truncated. -## Example: Repeating Literal Strings +- The result of the REPT function cannot be longer than 32,767 characters, or REPT returns an error. + +## Example: Repeating Literal Strings + +The following example returns the string, 85, repeated three times. -The following example returns the string, 85, repeated three times. - ```dax -= REPT("85",3) += REPT("85",3) ``` - -## Example: Repeating Column Values - -The following example returns the string in the column, [MyText], repeated for the number of times in the column, [MyNumber]. Because the formula extends for the entire column, the resulting string depends on the text and number value in each row. - + +## Example: Repeating Column Values + +The following example returns the string in the column, [MyText], repeated for the number of times in the column, [MyNumber]. Because the formula extends for the entire column, the resulting string depends on the text and number value in each row. + ```dax -= REPT([MyText],[MyNumber]) += REPT([MyText],[MyNumber]) ``` - -|MyText|MyNumber|CalculatedColumn1| -|----------|------------|---------------------| -|Text|2|TextText| -|Number|0|| -|85|3|858585| - + +|MyText|MyNumber|CalculatedColumn1| +|----------|------------|---------------------| +|Text|2|TextText| +|Number|0|| +|85|3|858585| + ## Related content -[Text functions](text-functions-dax.md) +[Text functions](text-functions-dax.md) diff --git a/query-languages/dax/right-function-dax.md b/query-languages/dax/right-function-dax.md index 20ab02990..e54344c42 100644 --- a/query-languages/dax/right-function-dax.md +++ b/query-languages/dax/right-function-dax.md @@ -6,52 +6,52 @@ title: "RIGHT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -RIGHT returns the last character or characters in a text string, based on the number of characters you specify. - -## Syntax - +RIGHT returns the last character or characters in a text string, based on the number of characters you specify. + +## Syntax + ```dax -RIGHT(, ) +RIGHT(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text string that contains the characters you want to extract, or a reference to a column that contains text.| -|`num_chars`|(optional) The number of characters you want RIGHT to extract; is omitted, 1. You can also use a reference to a column that contains numbers.| - -If the column reference does not contain text, it is implicitly cast as text. - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text string that contains the characters you want to extract, or a reference to a column that contains text.| +|`num_chars`|(optional) The number of characters you want RIGHT to extract; is omitted, 1. You can also use a reference to a column that contains numbers.| + +If the column reference does not contain text, it is implicitly cast as text. + ## Return value -A text string containing the specified right-most characters. - +A text string containing the specified right-most characters. + ## Remarks -- RIGHT always counts each character, whether single-byte or double-byte, as 1, no matter what the default language setting is. - +- RIGHT always counts each character, whether single-byte or double-byte, as 1, no matter what the default language setting is. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example: Returning a Fixed Number of Characters -The following formula returns the last two digits of the product code in the New Products table. - +## Example: Returning a Fixed Number of Characters + +The following formula returns the last two digits of the product code in the New Products table. + ```dax -= RIGHT('New Products'[ProductCode],2) += RIGHT('New Products'[ProductCode],2) ``` - -## Example: Using a Column Reference to Specify Character Count -The following formula returns a variable number of digits from the product code in the New Products table, depending on the number in the column, MyCount. If there is no value in the column, MyCount, or the value is a blank, RIGHT also returns a blank. - +## Example: Using a Column Reference to Specify Character Count + +The following formula returns a variable number of digits from the product code in the New Products table, depending on the number in the column, MyCount. If there is no value in the column, MyCount, or the value is a blank, RIGHT also returns a blank. + ```dax -= RIGHT('New Products'[ProductCode],[MyCount]) += RIGHT('New Products'[ProductCode],[MyCount]) ``` - + ## Related content -[Text functions](text-functions-dax.md) -[LEFT](left-function-dax.md) -[MID](mid-function-dax.md) - +[Text functions](text-functions-dax.md) +[LEFT](left-function-dax.md) +[MID](mid-function-dax.md) + diff --git a/query-languages/dax/rollup-function-dax.md b/query-languages/dax/rollup-function-dax.md index caf370b16..622a479c2 100644 --- a/query-languages/dax/rollup-function-dax.md +++ b/query-languages/dax/rollup-function-dax.md @@ -7,7 +7,7 @@ title: "ROLLUP function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Modifies the behavior of the [SUMMARIZE](summarize-function-dax.md) function by adding rollup rows to the result on columns defined by the groupBy_columnName parameter. This function can only be used within a [SUMMARIZE](summarize-function-dax.md) expression. - + ## Syntax ```dax @@ -17,21 +17,21 @@ ROLLUP ( [, [, … ] ] ) With SUMMARIZE, ```dax -SUMMARIZE(
, [, ]…[, ROLLUP([,< groupBy_columnName>…])][, , ]…) +SUMMARIZE(
, [, ]…[, ROLLUP([,< groupBy_columnName>…])][, , ]…) ``` - -### Parameters -|Term|Definition| -|--------|--------------| +### Parameters + +|Term|Definition| +|--------|--------------| | groupBy_columnName | The qualified name of an existing column or ROLLUPGROUP function to be used to create summary groups based on the values found in it. This parameter cannot be an expression. | ## Return value This function does not return a value. It only specifies the set of columns to be subtotaled. - -## Remarks - + +## Remarks + This function can only be used within a [SUMMARIZE](summarize-function-dax.md) expression. ## Example diff --git a/query-languages/dax/rollupaddissubtotal-function-dax.md b/query-languages/dax/rollupaddissubtotal-function-dax.md index 9b3a444d6..7a24b177a 100644 --- a/query-languages/dax/rollupaddissubtotal-function-dax.md +++ b/query-languages/dax/rollupaddissubtotal-function-dax.md @@ -7,27 +7,27 @@ title: "ROLLUPADDISSUBTOTAL function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Modifies the behavior of the [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) function by adding rollup/subtotal rows to the result based on the groupBy_columnName columns. This function can only be used within a [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression. - -## Syntax - + +## Syntax + ```dax ROLLUPADDISSUBTOTAL ( [], , [, [] [, , [, [] [, … ] ] ] ] ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`grandtotalFilter`|(Optional) Filter to be applied to the grandtotal level.| -|`groupBy_columnName`|Name of an existing column used to create summary groups based on the values found in it. Cannot be an expression.| +### Parameters + +|Term|Definition| +|--------|--------------| +|`grandtotalFilter`|(Optional) Filter to be applied to the grandtotal level.| +|`groupBy_columnName`|Name of an existing column used to create summary groups based on the values found in it. Cannot be an expression.| |name |Name of an ISSUBTOTAL column. The values of the column are calculated using the ISSUBTOTAL function.| |`groupLevelFilter`|(Optional) Filter to be applied to the current level.| ## Return value The function does not return a value. - -## Remarks + +## Remarks None diff --git a/query-languages/dax/rollupgroup-function-dax.md b/query-languages/dax/rollupgroup-function-dax.md index d20e2d81f..2303f269e 100644 --- a/query-languages/dax/rollupgroup-function-dax.md +++ b/query-languages/dax/rollupgroup-function-dax.md @@ -7,25 +7,25 @@ title: "ROLLUPGROUP function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Modifies the behavior of the [SUMMARIZE](summarize-function-dax.md) and [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) functions by adding rollup rows to the result on columns defined by the the groupBy_columnName parameter. This function can only be used within a [SUMMARIZE](summarize-function-dax.md) or [SUMMARIZECOLUMNS](summarizecolumns-function-dax.md) expression. - -## Syntax - + +## Syntax + ```dax ROLLUPGROUP ( [, [, … ] ] ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| +### Parameters + +|Term|Definition| +|--------|--------------| | groupBy_columnName | The qualified name of an existing column or ROLLUPGROUP function to be used to create summary groups based on the values found in it. This parameter cannot be an expression. | ## Return value This function does not return a value. It marks a set of columns to be treated as a single group during subtotaling by [ROLLUP](rollup-function-dax.md) or [ROLLUPADDISSUBTOTAL](rollupaddissubtotal-function-dax.md). - -## Remarks - + +## Remarks + ROLLUPGROUP can only be used as a groupBy_columnName argument to [ROLLUP](rollup-function-dax.md), [ROLLUPADDISSUBTOTAL](rollupaddissubtotal-function-dax.md), or [ROLLUPISSUBTOTAL](rollupissubtotal-function-dax.md). ## Example diff --git a/query-languages/dax/rollupissubtotal-function-dax.md b/query-languages/dax/rollupissubtotal-function-dax.md index 71cf733a5..af950155f 100644 --- a/query-languages/dax/rollupissubtotal-function-dax.md +++ b/query-languages/dax/rollupissubtotal-function-dax.md @@ -7,26 +7,26 @@ title: "ROLLUPISSUBTOTAL function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Pairs rollup groups with the column added by [ROLLUPADDISSUBTOTAL](rollupaddissubtotal-function-dax.md). This function can only be used within an [ADDMISSINGITEMS](addmissingitems-function-dax.md) expression. - -## Syntax - + +## Syntax + ```dax ROLLUPISSUBTOTAL ( [], , [, [] [, , [, [] [, … ] ] ] ] ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`grandTotalFilter`|(Optional) Filter to be applied to the grandtotal level.| -|`groupBy_columnName`|Name of an existing column used to create summary groups based on the values found in it. Cannot be an expression.| +### Parameters + +|Term|Definition| +|--------|--------------| +|`grandTotalFilter`|(Optional) Filter to be applied to the grandtotal level.| +|`groupBy_columnName`|Name of an existing column used to create summary groups based on the values found in it. Cannot be an expression.| |isSubtotal_columnName |Name of an ISSUBTOTAL column. The values of the column are calculated using the ISSUBTOTAL function. | |`groupLevelFilter`|(Optional) Filter to be applied to the current level.| ## Return value None - -## Remarks + +## Remarks This function can only be used within an [ADDMISSINGITEMS](addmissingitems-function-dax.md) expression. diff --git a/query-languages/dax/round-function-dax.md b/query-languages/dax/round-function-dax.md index 4711b4e3a..b18c95c76 100644 --- a/query-languages/dax/round-function-dax.md +++ b/query-languages/dax/round-function-dax.md @@ -6,60 +6,60 @@ title: "ROUND function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Rounds a number to the specified number of digits. - -## Syntax - +Rounds a number to the specified number of digits. + +## Syntax + ```dax -ROUND(, ) +ROUND(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number you want to round.| -|`num_digits`|The number of digits to which you want to round. A negative value rounds digits to the left of the decimal point; a value of zero rounds to the nearest integer.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number you want to round.| +|`num_digits`|The number of digits to which you want to round. A negative value rounds digits to the left of the decimal point; a value of zero rounds to the nearest integer.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- If `num_digits` is greater than 0 (zero), then number is rounded to the specified number of decimal places. - -- If `num_digits` is 0, the number is rounded to the nearest integer. - -- If `num_digits` is less than 0, the number is rounded to the left of the decimal point. - +- If `num_digits` is greater than 0 (zero), then number is rounded to the specified number of decimal places. + +- If `num_digits` is 0, the number is rounded to the nearest integer. + +- If `num_digits` is less than 0, the number is rounded to the left of the decimal point. + - Related functions - - To always round up (away from zero), use the ROUNDUP function. - - To always round down (toward zero), use the ROUNDDOWN function. - - To round a number to a specific multiple (for example, to round to the nearest multiple of 0.5), use the MROUND function. - - Use the functions TRUNC and INT to obtain the integer portion of the number. - + - To always round up (away from zero), use the ROUNDUP function. + - To always round down (toward zero), use the ROUNDDOWN function. + - To round a number to a specific multiple (for example, to round to the nearest multiple of 0.5), use the MROUND function. + - Use the functions TRUNC and INT to obtain the integer portion of the number. + ## Example 1 -The following formula rounds 2.15 up, to one decimal place. The expected result is 2.2. - +The following formula rounds 2.15 up, to one decimal place. The expected result is 2.2. + ```dax -= ROUND(2.15,1) += ROUND(2.15,1) ``` - + ## Example 2 -The following formula rounds 21.5 to one decimal place to the left of the decimal point. The expected result is 20. - +The following formula rounds 21.5 to one decimal place to the left of the decimal point. The expected result is 20. + ```dax -= ROUND(21.5,-1) += ROUND(21.5,-1) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[ROUND](round-function-dax.md) -[ROUNDDOWN](rounddown-function-dax.md) -[MROUND](mround-function-dax.md) -[INT](int-function-dax.md) -[TRUNC](trunc-function-dax.md) - +[Math and Trig functions](math-and-trig-functions-dax.md) +[ROUND](round-function-dax.md) +[ROUNDDOWN](rounddown-function-dax.md) +[MROUND](mround-function-dax.md) +[INT](int-function-dax.md) +[TRUNC](trunc-function-dax.md) + diff --git a/query-languages/dax/rounddown-function-dax.md b/query-languages/dax/rounddown-function-dax.md index 05ae29a13..d052b2089 100644 --- a/query-languages/dax/rounddown-function-dax.md +++ b/query-languages/dax/rounddown-function-dax.md @@ -6,56 +6,56 @@ title: "ROUNDDOWN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Rounds a number down, toward zero. - -## Syntax - +Rounds a number down, toward zero. + +## Syntax + ```dax -ROUNDDOWN(, ) +ROUNDDOWN(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|A real number that you want rounded down.| -|`num_digits`|The number of digits to which you want to round. Negative rounds to the left of the decimal point; zero to the nearest integer.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|A real number that you want rounded down.| +|`num_digits`|The number of digits to which you want to round. Negative rounds to the left of the decimal point; zero to the nearest integer.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- If `num_digits` is greater than 0 (zero), then the value in `number` is rounded down to the specified number of decimal places. - -- If `num_digits` is 0, then the value in `number` is rounded down to the nearest integer. - -- If `num_digits` is less than 0, then the value in `number` is rounded down to the left of the decimal point. +- If `num_digits` is greater than 0 (zero), then the value in `number` is rounded down to the specified number of decimal places. + +- If `num_digits` is 0, then the value in `number` is rounded down to the nearest integer. + +- If `num_digits` is less than 0, then the value in `number` is rounded down to the left of the decimal point. + +- ROUNDDOWN behaves like ROUND, except that it always rounds a number down. The INT function also rounds down, but with INT the result is always an integer, whereas with ROUNDDOWN you can control the precision of the result. -- ROUNDDOWN behaves like ROUND, except that it always rounds a number down. The INT function also rounds down, but with INT the result is always an integer, whereas with ROUNDDOWN you can control the precision of the result. - ## Example 1 -The following example rounds 3.14159 down to three decimal places. The expected result is 3.141. - +The following example rounds 3.14159 down to three decimal places. The expected result is 3.141. + ```dax -= ROUNDDOWN(3.14159,3) += ROUNDDOWN(3.14159,3) ``` - + ## Example 2 -The following example rounds the value of 31415.92654 down to 2 decimal places to the left of the decimal. The expected result is 31400. - +The following example rounds the value of 31415.92654 down to 2 decimal places to the left of the decimal. The expected result is 31400. + ```dax -= ROUNDDOWN(31415.92654, -2) += ROUNDDOWN(31415.92654, -2) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[ROUND](round-function-dax.md) -[ROUNDUP](roundup-function-dax.md) -[ROUNDDOWN](rounddown-function-dax.md) -[MROUND](mround-function-dax.md) -[INT](int-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[ROUND](round-function-dax.md) +[ROUNDUP](roundup-function-dax.md) +[ROUNDDOWN](rounddown-function-dax.md) +[MROUND](mround-function-dax.md) +[INT](int-function-dax.md) diff --git a/query-languages/dax/roundup-function-dax.md b/query-languages/dax/roundup-function-dax.md index 5e3c41764..b1e7e0300 100644 --- a/query-languages/dax/roundup-function-dax.md +++ b/query-languages/dax/roundup-function-dax.md @@ -6,73 +6,73 @@ title: "ROUNDUP function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Rounds a number up, away from 0 (zero). - -## Syntax - +Rounds a number up, away from 0 (zero). + +## Syntax + ```dax -ROUNDUP(, ) +ROUNDUP(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|A real number that you want to round up.| -|`num_digits`|The number of digits to which you want to round. A negative value for `num_digits` rounds to the left of the decimal point; if `num_digits` is zero or is omitted, `number` is rounded to the nearest integer.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|A real number that you want to round up.| +|`num_digits`|The number of digits to which you want to round. A negative value for `num_digits` rounds to the left of the decimal point; if `num_digits` is zero or is omitted, `number` is rounded to the nearest integer.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- If `num_digits` is greater than 0 (zero), then the number is rounded up to the specified number of decimal places. - -- If `num_digits` is 0, then number is rounded up to the nearest integer. - -- If `num_digits` is less than 0, then number is rounded up to the left of the decimal point. - -- ROUNDUP behaves like ROUND, except that it always rounds a number up. - +- If `num_digits` is greater than 0 (zero), then the number is rounded up to the specified number of decimal places. + +- If `num_digits` is 0, then number is rounded up to the nearest integer. + +- If `num_digits` is less than 0, then number is rounded up to the left of the decimal point. + +- ROUNDUP behaves like ROUND, except that it always rounds a number up. + ## Example -The following formula rounds Pi to four decimal places. The expected result is 3.1416. - +The following formula rounds Pi to four decimal places. The expected result is 3.1416. + ```dax -= ROUNDUP(PI(),4) += ROUNDUP(PI(),4) ``` - -## Example: Decimals as Second Argument -The following formula rounds 1.3 to the nearest multiple of 0.2. The expected result is 2. +## Example: Decimals as Second Argument + +The following formula rounds 1.3 to the nearest multiple of 0.2. The expected result is 2. ```dax -= ROUNDUP(1.3,0.2) += ROUNDUP(1.3,0.2) ``` - -## Example: Negative Number as Second Argument - -The following formula rounds the value in the column, **FreightCost**, with the expected results shown in the following table: - + +## Example: Negative Number as Second Argument + +The following formula rounds the value in the column, **FreightCost**, with the expected results shown in the following table: + ```dax -= ROUNDUP([Values],-1) += ROUNDUP([Values],-1) ``` -When `num_digits` is less than zero, the number of places to the left of the decimal sign is increased by the value you specify. - -|FreightCost|Expected Result| -|---------------|-------------------| -|13.25|20| -|2.45|10| -|25.56|30| -|1.34|10| -|345.01|350| - +When `num_digits` is less than zero, the number of places to the left of the decimal sign is increased by the value you specify. + +|FreightCost|Expected Result| +|---------------|-------------------| +|13.25|20| +|2.45|10| +|25.56|30| +|1.34|10| +|345.01|350| + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[ROUND](round-function-dax.md) -[ROUNDDOWN](rounddown-function-dax.md) -[MROUND](mround-function-dax.md) -[INT](int-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[ROUND](round-function-dax.md) +[ROUNDDOWN](rounddown-function-dax.md) +[MROUND](mround-function-dax.md) +[INT](int-function-dax.md) diff --git a/query-languages/dax/row-function-dax.md b/query-languages/dax/row-function-dax.md index 341b77aa2..a9983c245 100644 --- a/query-languages/dax/row-function-dax.md +++ b/query-languages/dax/row-function-dax.md @@ -6,36 +6,36 @@ title: "ROW function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a table with a single row containing values that result from the expressions given to each column. - -## Syntax - +Returns a table with a single row containing values that result from the expressions given to each column. + +## Syntax + ```dax -ROW(, [[,, ]…]) +ROW(, [[,, ]…]) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`name`| The name given to the column, enclosed in double quotes. | +### Parameters + +|Term|Definition| +|--------|--------------| +|`name`| The name given to the column, enclosed in double quotes. | |`expression`| Any DAX expression that returns a single scalar value to populate. `name`. | ## Return value -A single row table - +A single row table + ## Remarks - Arguments must always come in pairs of `name` and `expression`. -- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - +- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] + ## Example -The following example returns a single row table with the total sales for internet and resellers channels. - +The following example returns a single row table with the total sales for internet and resellers channels. + ```dax -ROW("Internet Total Sales (USD)", SUM(InternetSales_USD[SalesAmount_USD]), - "Resellers Total Sales (USD)", SUM(ResellerSales_USD[SalesAmount_USD])) +ROW("Internet Total Sales (USD)", SUM(InternetSales_USD[SalesAmount_USD]), + "Resellers Total Sales (USD)", SUM(ResellerSales_USD[SalesAmount_USD])) ``` diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 59e32c3f1..5b3cb2040 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -8,29 +8,29 @@ author: rahulten [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the unique ranking for the current context within the specified partition, sorted by the specified order. If a match cannot be found then rownumber is blank. - -## Syntax - + +## Syntax + ```dax ROWNUMBER ( [ or ][, ][, ][, ][, ][, ] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `orderBy` and `partitionBy` must come from it.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| -|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | -|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | +|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value The rownumber number for the current context. - + ## Remarks Each `orderBy`, `partitionBy`, and `matchBy` column must have a corresponding outer value to help define the current row on which to operate, with the following behavior: @@ -42,7 +42,7 @@ Each `orderBy`, `partitionBy`, and `matchBy` column must have a corresponding ou - ROWNUMBER’s final output is a union of these rows. - If there is more than one corresponding outer column, an error is returned. -If `matchBy` is present, then ROWNUMBER will try to use columns in `matchBy` and `partitionBy` to idenfity the current row. +If `matchBy` is present, then ROWNUMBER will try to use columns in `matchBy` and `partitionBy` to idenfity the current row. If the columns specified within `orderBy` and `partitionBy` cannot uniquely identify every row in `relation`, then: - ROWNUMBER will try to find the least number of additional columns required to uniquely identify every row. @@ -57,7 +57,7 @@ If the columns specified within `orderBy` and `partitionBy` cannot uniquely iden ## Example 1 - calculated column The following DAX query: - + ```dax EVALUATE ADDCOLUMNS( @@ -93,8 +93,8 @@ The screenshot below shows the visual matrix and the first visual calculation ex ## Related content -[INDEX](index-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) +[INDEX](index-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) [RANK](rank-function-dax.md) diff --git a/query-languages/dax/rri-function-dax.md b/query-languages/dax/rri-function-dax.md index c2227d1cd..fd6bb4a38 100644 --- a/query-languages/dax/rri-function-dax.md +++ b/query-languages/dax/rri-function-dax.md @@ -18,8 +18,8 @@ RRI(, , ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`nper`|The number of periods for the investment.| |`pv`|The present value of the investment.| |`fv`|The future value of the investment.| diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 71c47c865..929d91a8e 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -56,8 +56,8 @@ The screenshot below shows the visual matrix and the visual calculation expressi ## See also -[INDEX](index-function-dax.md) -[MOVINGAVERAGE](movingaverage-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[WINDOW](window-function-dax.md) +[INDEX](index-function-dax.md) +[MOVINGAVERAGE](movingaverage-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[WINDOW](window-function-dax.md) diff --git a/query-languages/dax/sameperiodlastyear-function-dax.md b/query-languages/dax/sameperiodlastyear-function-dax.md index 8f797f330..29fed7806 100644 --- a/query-languages/dax/sameperiodlastyear-function-dax.md +++ b/query-languages/dax/sameperiodlastyear-function-dax.md @@ -6,49 +6,49 @@ title: "SAMEPERIODLASTYEAR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns a table that contains a column of dates shifted one year back in time from the dates in the specified `dates` column, in the current context. - -## Syntax - +Returns a table that contains a column of dates shifted one year back in time from the dates in the specified `dates` column, in the current context. + +## Syntax + ```dax -SAMEPERIODLASTYEAR() +SAMEPERIODLASTYEAR() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column containing dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column containing dates.| + ## Return value -A single-column table of date values. - +A single-column table of date values. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column, - - A table expression that returns a single column of date/time values, - - A Boolean expression that defines a single-column table of date/time values. +- The `dates` argument can be any of the following: + - A reference to a date/time column, + - A table expression that returns a single column of date/time values, + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + +- The dates returned are the same as the dates returned by this equivalent formula: `DATEADD(dates, -1, year)` -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - -- The dates returned are the same as the dates returned by this equivalent formula: `DATEADD(dates, -1, year)` - - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the previous year sales of Reseller sales. +The following sample formula creates a measure that calculates the previous year sales of Reseller sales. ```dax -= CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), SAMEPERIODLASTYEAR(DateTime[DateKey])) += CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), SAMEPERIODLASTYEAR(DateTime[DateKey])) ``` - + ## Related content -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions ](date-and-time-functions-dax.md) -[PREVIOUSYEAR](previousyear-function-dax.md) -[PARALLELPERIOD](parallelperiod-function-dax.md) - +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions ](date-and-time-functions-dax.md) +[PREVIOUSYEAR](previousyear-function-dax.md) +[PARALLELPERIOD](parallelperiod-function-dax.md) + diff --git a/query-languages/dax/sample-function-dax.md b/query-languages/dax/sample-function-dax.md index 403c48269..c5fcccb2d 100644 --- a/query-languages/dax/sample-function-dax.md +++ b/query-languages/dax/sample-function-dax.md @@ -6,30 +6,30 @@ title: "SAMPLE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a sample of N rows from the specified table. - -## Syntax - +Returns a sample of N rows from the specified table. + +## Syntax + ```dax -SAMPLE(,
, , [[, , []]…]) +SAMPLE(,
, , [[, , []]…]) ``` - -### Parameters -|Term|Definition| +### Parameters + +|Term|Definition| |---------|---------| |`n_value` | The number of rows to return. It is any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). If a non-integer value (or expression) is entered, the result is cast as an integer. | |`table` | Any DAX expression that returns a table of data from where to extract the 'n' sample rows. | |`orderBy_expression` | Any scalar DAX expression where the result value is evaluated for each row of `table`. | |`order` | (Optional) A value that specifies how to sort `orderBy_expression` values, ascending or descending: 0 (zero), sorts in descending order of values of `order_by`. 1, ranks in ascending order of `order_by`. | - + ## Return value -A table consisting of a sample of N rows of `table` or an empty table if `n_value` is 0 (zero) or less. If OrderBy arguments are provided, the sample will be stable and deterministic, returning the first row, the last row, and evenly distributed rows between them. If no ordering is specified, the sample will be random, not stable, and not deterministic. - -## Remarks - -- If `n_value` is 0 (zero) or less then SAMPLE returns an empty table. +A table consisting of a sample of N rows of `table` or an empty table if `n_value` is 0 (zero) or less. If OrderBy arguments are provided, the sample will be stable and deterministic, returning the first row, the last row, and evenly distributed rows between them. If no ordering is specified, the sample will be random, not stable, and not deterministic. + +## Remarks + +- If `n_value` is 0 (zero) or less then SAMPLE returns an empty table. - In order to avoid duplicate values in the sample, the table provided as the second argument should be grouped by the column used for sorting. diff --git a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md index 949d35981..4021822c8 100644 --- a/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md +++ b/query-languages/dax/sampleaxiswithlocalminmax-function-dax.md @@ -18,8 +18,8 @@ SAMPLEAXISWITHLOCALMINMAX(,
, , , [ [, ...] ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`Size`|Number of rows in the sample to return| |`Table`|Any DAX expression that returns a table of data from where to return a sample subset from.| |`Axis`|The numerical or datetime column from Table to be binned.| diff --git a/query-languages/dax/search-function-dax.md b/query-languages/dax/search-function-dax.md index 471089dd6..29e2f9023 100644 --- a/query-languages/dax/search-function-dax.md +++ b/query-languages/dax/search-function-dax.md @@ -6,37 +6,37 @@ title: "SEARCH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the number of the character at which a specific character or text string is first found, reading left to right. Search is case-insensitive and accent sensitive. - -## Syntax - +Returns the number of the character at which a specific character or text string is first found, reading left to right. Search is case-insensitive and accent sensitive. + +## Syntax + ```dax -SEARCH(, [, [][, ]]) +SEARCH(, [, [][, ]]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`find_text`|The text that you want to find.

You can use wildcard characters — the question mark (?) and asterisk (\*) — in `find_text`. A question mark matches any single character; an asterisk matches any sequence of characters. If you want to find an actual question mark or asterisk, type a tilde (~) before the character.| -|`within_text`|The text in which you want to search for `find_text`, or a column containing text.| -|`start_num`|(optional) The character position in `within_text` at which you want to start searching. If omitted, 1.| -|`NotFoundValue`|(optional, but strongly recommended) The value that should be returned when the operation does not find a matching substring, typically 0, -1, or BLANK(). If not specified, an error is returned.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`find_text`|The text that you want to find.

You can use wildcard characters — the question mark (?) and asterisk (\*) — in `find_text`. A question mark matches any single character; an asterisk matches any sequence of characters. If you want to find an actual question mark or asterisk, type a tilde (~) before the character.| +|`within_text`|The text in which you want to search for `find_text`, or a column containing text.| +|`start_num`|(optional) The character position in `within_text` at which you want to start searching. If omitted, 1.| +|`NotFoundValue`|(optional, but strongly recommended) The value that should be returned when the operation does not find a matching substring, typically 0, -1, or BLANK(). If not specified, an error is returned.| + ## Return value -The number of the starting position of the first text string from the first character of the second text string. - -## Remarks - -- The search function is case insensitive. Searching for "N" will find the first occurrence of 'N' or 'n'. +The number of the starting position of the first text string from the first character of the second text string. -- The search function is accent sensitive. Searching for "á" will find the first occurrence of 'á' but no occurrences of 'a', 'à', or the capitalized versions 'A', 'Á'. +## Remarks -- You can use the SEARCH function to determine the location of a character or text string within another text string, and then use the MID function to return the text, or use the REPLACE function to change the text. +- The search function is case insensitive. Searching for "N" will find the first occurrence of 'N' or 'n'. + +- The search function is accent sensitive. Searching for "á" will find the first occurrence of 'á' but no occurrences of 'a', 'à', or the capitalized versions 'A', 'Á'. + +- You can use the SEARCH function to determine the location of a character or text string within another text string, and then use the MID function to return the text, or use the REPLACE function to change the text. + +- If the `find_text` cannot be found in `within_text`, the formula returns an error. This behavior is like Excel, which returns #VALUE if the substring is not found. Nulls in `within_text` will be interpreted as an empty string in this context. -- If the `find_text` cannot be found in `within_text`, the formula returns an error. This behavior is like Excel, which returns #VALUE if the substring is not found. Nulls in `within_text` will be interpreted as an empty string in this context. - - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example @@ -46,7 +46,7 @@ The following DAX query finds the position of the first letter of "cycle", in th SEARCH is case-insensitive. In this example, if "cycle" or "Cycle" is used in the `find_text` argument, results are returned for either case. Use [FIND](FIND-function-dax.md) for case-sensitive. [!INCLUDE [power-bi-dax-sample-model](includes/power-bi-dax-sample-model.md)] - + ```dax EVALUATE CALCULATETABLE ( @@ -58,7 +58,7 @@ CALCULATETABLE ( ) ``` -Returns, +Returns, |Reseller |Business Type | Position of cycle | |---------|---------|---------| @@ -75,6 +75,6 @@ Returns, ## Related content -[FIND](find-function-dax.md) -[REPLACE](replace-function-dax.md) -[Text functions](text-functions-dax.md) +[FIND](find-function-dax.md) +[REPLACE](replace-function-dax.md) +[Text functions](text-functions-dax.md) diff --git a/query-languages/dax/second-function-dax.md b/query-languages/dax/second-function-dax.md index 1293f7d21..6787c8ca1 100644 --- a/query-languages/dax/second-function-dax.md +++ b/query-languages/dax/second-function-dax.md @@ -6,53 +6,53 @@ title: "SECOND function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the seconds of a time value, as a number from 0 to 59. - -## Syntax - +Returns the seconds of a time value, as a number from 0 to 59. + +## Syntax + ```dax -SECOND(
, [], , [], …) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`Table`| Any DAX expression that returns a table. | +### Parameters + +|Term|Definition| +|--------|--------------| +|`Table`| Any DAX expression that returns a table. | |`Name` | The name given to the column, enclosed in double quotes. | |`Expression` |Any expression that returns a scalar value like a column reference, integer, or string value.| - + ## Return value A table with the same number of rows as the table specified as the first argument. The returned table has one column for each pair of `Name`, `Expression` arguments, and each expression is evaluated in the context of a row from the specified `Table` argument. - -## Remarks + +## Remarks SELECTCOLUMNS has the same signature as ADDCOLUMNS, and has the same behavior except that instead of starting with the `Table` specified, SELECTCOLUMNS starts with an empty table before adding columns. [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example + +## Example For the following table named **Customer**: -Country |State |Count |Total +Country |State |Count |Total ---------|---------|---------|--------- IND | JK | 20 | 800 IND | MH | 25 | 1000 diff --git a/query-languages/dax/selectedmeasure-function-dax.md b/query-languages/dax/selectedmeasure-function-dax.md index b8c78a61c..ac5950a19 100644 --- a/query-languages/dax/selectedmeasure-function-dax.md +++ b/query-languages/dax/selectedmeasure-function-dax.md @@ -7,18 +7,18 @@ title: "SELECTEDMEASURE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Used by expressions for calculation items or dynamic format strings to reference the measure that is in context. - -## Syntax - + +## Syntax + ```dax SELECTEDMEASURE() ``` - -### Parameters - -None - -## Return value + +### Parameters + +None + +## Return value A reference to the measure that is currently in context when the calculation item or format string is evaluated. @@ -28,10 +28,10 @@ A reference to the measure that is currently in context when the calculation ite - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Example The following calculation item expression calculates the year-to-date for whatever the measure is in context. - + ```dax CALCULATE(SELECTEDMEASURE(), DATESYTD(DimDate[Date])) ``` @@ -46,8 +46,8 @@ SELECTEDMEASURE() < 1000000, "$#,##0,.0 K", //Values between 1000 and 1000000 "$#,##0,,.0 M" //Values greater than 1000000 are formatted as #.## M ) ``` - + ## Related content -[SELECTEDMEASURENAME](selectedmeasurename-function-dax.md) -[ISSELECTEDMEASURE](isselectedmeasure-function-dax.md) +[SELECTEDMEASURENAME](selectedmeasurename-function-dax.md) +[ISSELECTEDMEASURE](isselectedmeasure-function-dax.md) diff --git a/query-languages/dax/selectedmeasureformatstring-function-dax.md b/query-languages/dax/selectedmeasureformatstring-function-dax.md index 0ecd76116..8b5e0ddfc 100644 --- a/query-languages/dax/selectedmeasureformatstring-function-dax.md +++ b/query-languages/dax/selectedmeasureformatstring-function-dax.md @@ -7,18 +7,18 @@ title: "SELECTEDMEASUREFORMATSTRING function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Used by expressions for calculation items to retrieve the format string of the measure that is in context. - -## Syntax - + +## Syntax + ```dax SELECTEDMEASUREFORMATSTRING() ``` - -### Parameters - -None - -## Return value + +### Parameters + +None + +## Return value A string holding the format string of the measure that is currently in context when the calculation item is evaluated. @@ -28,15 +28,15 @@ A string holding the format string of the measure that is currently in context w - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example +## Example The following expression is evaluated by the Format String Expression property for a calculation item. If there is a single currency in filter context, the format string is retrieved from the DimCurrency[FormatString] column; otherwise the format string of the measure in context is used. - + ```dax SELECTEDVALUE( DimCurrency[FormatString], SELECTEDMEASUREFORMATSTRING() ) ``` - + ## Related content -[SELECTEDMEASURE](selectedmeasure-function-dax.md) -[ISSELECTEDMEASURE](isselectedmeasure-function-dax.md) +[SELECTEDMEASURE](selectedmeasure-function-dax.md) +[ISSELECTEDMEASURE](isselectedmeasure-function-dax.md) diff --git a/query-languages/dax/selectedmeasurename-function-dax.md b/query-languages/dax/selectedmeasurename-function-dax.md index 15606adc2..63f9dae89 100644 --- a/query-languages/dax/selectedmeasurename-function-dax.md +++ b/query-languages/dax/selectedmeasurename-function-dax.md @@ -7,18 +7,18 @@ title: "SELECTEDMEASURENAME function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] Used by expressions for calculation items to determine the measure that is in context by name. - -## Syntax - + +## Syntax + ```dax SELECTEDMEASURENAME() ``` - -### Parameters - -None - -## Return value + +### Parameters + +None + +## Return value A string value holding the name of the measure that is currently in context when the calculation item is evaluated. @@ -28,10 +28,10 @@ A string value holding the name of the measure that is currently in context when - This function is often used for debugging purposes when authoring calculation groups. -## Example +## Example The following calculation item expression checks if the current measure is Expense Ratio and conditionally applies calculation logic. Since the check is based on a string comparison, it is not subject to formula fixup and will not benefit from object renaming being automatically reflected. For a similar comparison that would benefit from formula fixup, please see the ISSLECTEDMEASURE function instead. - + ```dax IF ( SELECTEDMEASURENAME = "Expense Ratio", @@ -39,8 +39,8 @@ IF ( DIVIDE ( SELECTEDMEASURE (), COUNTROWS ( DimDate ) ) ) ``` - + ## Related content -[SELECTEDMEASURE](selectedmeasure-function-dax.md) -[ISSELECTEDMEASURE](isselectedmeasure-function-dax.md) +[SELECTEDMEASURE](selectedmeasure-function-dax.md) +[ISSELECTEDMEASURE](isselectedmeasure-function-dax.md) diff --git a/query-languages/dax/selectedvalue-function-dax.md b/query-languages/dax/selectedvalue-function-dax.md index 7d7ea1837..058533bd2 100644 --- a/query-languages/dax/selectedvalue-function-dax.md +++ b/query-languages/dax/selectedvalue-function-dax.md @@ -6,25 +6,25 @@ title: "SELECTEDVALUE function" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. - -## Syntax - +Returns the value when the context for columnName has been filtered down to one distinct value only. Otherwise returns alternateResult. + +## Syntax + ```dax -SELECTEDVALUE([, ]) +SELECTEDVALUE([, ]) ``` - -### Parameters - -|Term|Definition| -|----------|--------------| -| `columnName` |The name of an existing column, using standard DAX syntax. It cannot be an expression. | + +### Parameters + +|Term|Definition| +|----------|--------------| +| `columnName` |The name of an existing column, using standard DAX syntax. It cannot be an expression. | | `alternateResult` |(Optional) The value returned when the context for columnName has been filtered down to zero or more than one distinct value. When not provided, the default value is BLANK().| ## Return value The value when the context for columnName has been filtered down to one distinct value only. Else, alternateResult. - + ## Remarks - An equivalent expression for `SELECTEDVALUE(, )` is `IF(HASONEVALUE(), VALUES(), )`. @@ -32,18 +32,18 @@ The value when the context for columnName has been filtered down to one distinct - To learn more about best practices when using SELECTEDVALUE, see [Use SELECTEDVALUE instead of VALUES in DAX](best-practices/dax-selectedvalue.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example - + +## Example + The following DAX query: ```dax DEFINE MEASURE DimProduct[Selected Color] = SELECTEDVALUE(DimProduct[Color], "No Single Selection") EVALUATE - SUMMARIZECOLUMNS - (ROLLUPADDISSUBTOTAL(DimProduct[Color], "Is Total"), - "Selected Color", [Selected Color])ORDER BY [Is Total] ASC, + SUMMARIZECOLUMNS + (ROLLUPADDISSUBTOTAL(DimProduct[Color], "Is Total"), + "Selected Color", [Selected Color])ORDER BY [Is Total] ASC, [Color] ASC ``` diff --git a/query-languages/dax/sign-function-dax.md b/query-languages/dax/sign-function-dax.md index d05510ed1..ae0b88b8e 100644 --- a/query-languages/dax/sign-function-dax.md +++ b/query-languages/dax/sign-function-dax.md @@ -6,38 +6,38 @@ title: "SIGN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Determines the sign of a number, the result of a calculation, or a value in a column. The function returns 1 if the number is positive, 0 (zero) if the number is zero, or -1 if the number is negative. - -## Syntax - +Determines the sign of a number, the result of a calculation, or a value in a column. The function returns 1 if the number is positive, 0 (zero) if the number is zero, or -1 if the number is negative. + +## Syntax + ```dax -SIGN() +SIGN() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Any real number, a column that contains numbers, or an expression that evaluates to a number.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Any real number, a column that contains numbers, or an expression that evaluates to a number.| + ## Return value -A whole number. The possible Return values are 1, 0, and -1. - -|Return value|Description| -|----------------|---------------| -|1|The number is positive| -|0|The number is zero| -|-1|The number is negative| - +A whole number. The possible Return values are 1, 0, and -1. + +|Return value|Description| +|----------------|---------------| +|1|The number is positive| +|0|The number is zero| +|-1|The number is negative| + ## Example -The following formula returns the sign of the result of the expression that calculates sale price minus cost. - +The following formula returns the sign of the result of the expression that calculates sale price minus cost. + ```dax -= SIGN( ([Sale Price] - [Cost]) ) += SIGN( ([Sale Price] - [Cost]) ) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/sin-function-dax.md b/query-languages/dax/sin-function-dax.md index f5cea7dd7..a3344eb4f 100644 --- a/query-languages/dax/sin-function-dax.md +++ b/query-languages/dax/sin-function-dax.md @@ -6,33 +6,33 @@ title: "SIN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the sine of the given angle. - -## Syntax - +Returns the sine of the given angle. + +## Syntax + ```dax -SIN(number) +SIN(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Required. The angle in radians for which you want the sine.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Required. The angle in radians for which you want the sine.| + ## Return value -Returns the sine of the given angle. - +Returns the sine of the given angle. + ## Remarks -If an argument is in degrees, multiply it by `PI()/180` or use the RADIANS function to convert it to radians. - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= SIN(PI())`|Sine of pi radians (0, approximately).|0.0| -|`= SIN(PI()/2)`|Sine of pi/2 radians.|1.0| -|`= SIN(30*PI()/180)`|Sine of 30 degrees.|0.5| -|`= SIN(RADIANS(30))`|Sine of 30 degrees.|0.5| +If an argument is in degrees, multiply it by `PI()/180` or use the RADIANS function to convert it to radians. + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= SIN(PI())`|Sine of pi radians (0, approximately).|0.0| +|`= SIN(PI()/2)`|Sine of pi/2 radians.|1.0| +|`= SIN(30*PI()/180)`|Sine of 30 degrees.|0.5| +|`= SIN(RADIANS(30))`|Sine of 30 degrees.|0.5| diff --git a/query-languages/dax/sinh-function-dax.md b/query-languages/dax/sinh-function-dax.md index 6744af8fc..9c82540c8 100644 --- a/query-languages/dax/sinh-function-dax.md +++ b/query-languages/dax/sinh-function-dax.md @@ -6,33 +6,33 @@ title: "SINH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the hyperbolic sine of a number. - -## Syntax - +Returns the hyperbolic sine of a number. + +## Syntax + ```dax -SINH(number) +SINH(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Required. Any real number.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Required. Any real number.| + ## Return value -Returns the hyperbolic sine of a number. - +Returns the hyperbolic sine of a number. + ## Remarks -- The formula for the hyperbolic sine is: +- The formula for the hyperbolic sine is: $$\text{SINH}(z) = \frac{e^{z} - e^{-z}}{2}$$ - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example + +## Example Probability of obtaining a result of less than 1.03 seconds. diff --git a/query-languages/dax/sln-function-dax.md b/query-languages/dax/sln-function-dax.md index f1ec42714..773ccdd7d 100644 --- a/query-languages/dax/sln-function-dax.md +++ b/query-languages/dax/sln-function-dax.md @@ -18,8 +18,8 @@ SLN(, , ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`cost`|The initial cost of the asset.| |`salvage`|The value at the end of the depreciation (sometimes called the salvage value of the asset).| |`life`|The number of periods over which the asset is depreciated (sometimes called the useful life of the asset).| @@ -30,7 +30,7 @@ The straight-line depreciation for one period. ## Remarks -- An error is returned if: +- An error is returned if: life = 0. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] diff --git a/query-languages/dax/sqrt-function-dax.md b/query-languages/dax/sqrt-function-dax.md index 52d0e4983..d55b3b7d3 100644 --- a/query-languages/dax/sqrt-function-dax.md +++ b/query-languages/dax/sqrt-function-dax.md @@ -6,36 +6,36 @@ title: "SQRT function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the square root of a number. - -## Syntax - +Returns the square root of a number. + +## Syntax + ```dax -SQRT() +SQRT() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number for which you want the square root, a column that contains numbers, or an expression that evaluates to a number.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number for which you want the square root, a column that contains numbers, or an expression that evaluates to a number.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -If the number is negative, the SQRT function returns an error. - +If the number is negative, the SQRT function returns an error. + ## Example -The following formula, - +The following formula, + ```dax -= SQRT(25) += SQRT(25) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) diff --git a/query-languages/dax/sqrtpi-function-dax.md b/query-languages/dax/sqrtpi-function-dax.md index dcb81996a..7b99b4b28 100644 --- a/query-languages/dax/sqrtpi-function-dax.md +++ b/query-languages/dax/sqrtpi-function-dax.md @@ -6,27 +6,27 @@ title: "SQRTPI function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the square root of (number * pi). - -## Syntax - +Returns the square root of (number * pi). + +## Syntax + ```dax -SQRTPI(number) +SQRTPI(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Required. The number by which pi is multiplied.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Required. The number by which pi is multiplied.| + ## Return value -Returns the square root of (number * pi). +Returns the square root of (number * pi). + +## Example -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= SQRTPI(1)`|Square root of pi.|1.772454| -|`= SQRTPI(2)`|Square root of 2 * pi.|2.506628| +|Formula|Description|Result| +|-----------|---------------|----------| +|`= SQRTPI(1)`|Square root of pi.|1.772454| +|`= SQRTPI(2)`|Square root of 2 * pi.|2.506628| diff --git a/query-languages/dax/startat-statement-dax.md b/query-languages/dax/startat-statement-dax.md index e867aec5c..fff388265 100644 --- a/query-languages/dax/startat-statement-dax.md +++ b/query-languages/dax/startat-statement-dax.md @@ -3,13 +3,13 @@ description: "Learn more about: START AT" title: "START AT keyword (DAX)" --- # START AT - + Introduces a statement that defines the starting value at which the query results of an ORDER BY clause in an EVALUATE statement in a [DAX query](dax-queries.md) are returned. ## Syntax ```dax -[START AT {|} [, …]] +[START AT {|} [, …]] ``` ## Parameters @@ -20,15 +20,15 @@ Introduces a statement that defines the starting value at which the query result | `parameter` | The name of a parameter in an XMLA statement prefixed with an `@` character. | ## Remarks - -- START AT arguments have a one-to-one correspondence with the columns in the ORDER BY statement. There can be as many arguments in the START AT statement as there are in the ORDER BY statement, but not more. The first argument in the START AT statement defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT statement defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. + +- START AT arguments have a one-to-one correspondence with the columns in the ORDER BY statement. There can be as many arguments in the START AT statement as there are in the ORDER BY statement, but not more. The first argument in the START AT statement defines the starting value in column 1 of the ORDER BY columns. The second argument in the START AT statement defines the starting value in column 2 of the ORDER BY columns within the rows that meet the first value for column 1. - To learn more about how START AT statements are used, see [DAX queries](dax-queries.md). - + ## Related content -[ORDER BY](orderby-statement-dax.md) -[EVALUATE](evaluate-statement-dax.md) -[VAR](var-dax.md) -[DEFINE](define-statement-dax.md) -[DAX queries](dax-queries.md) +[ORDER BY](orderby-statement-dax.md) +[EVALUATE](evaluate-statement-dax.md) +[VAR](var-dax.md) +[DEFINE](define-statement-dax.md) +[DAX queries](dax-queries.md) diff --git a/query-languages/dax/startofmonth-function-dax.md b/query-languages/dax/startofmonth-function-dax.md index 53f2b8c8c..f4406f00a 100644 --- a/query-languages/dax/startofmonth-function-dax.md +++ b/query-languages/dax/startofmonth-function-dax.md @@ -5,46 +5,46 @@ title: "STARTOFMONTH function (DAX)" # STARTOFMONTH [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the first date of the month in the current context for the specified column of dates. - -## Syntax - +Returns the first date of the month in the current context for the specified column of dates. + +## Syntax + ```dax -STARTOFMONTH() +STARTOFMONTH() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| + ## Return value -A table containing a single column and single row with a date value. - +A table containing a single column and single row with a date value. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. +- The `dates` argument can be any of the following: + - A reference to a date/time column. - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that returns the start of the month, for the current context. - +The following sample formula creates a measure that returns the start of the month, for the current context. + ```dax -= STARTOFMONTH(DateTime[DateKey]) += STARTOFMONTH(DateTime[DateKey]) ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[STARTOFYEAR](startofyear-function-dax.md) -[STARTOFQUARTER](startofquarter-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[STARTOFYEAR](startofyear-function-dax.md) +[STARTOFQUARTER](startofquarter-function-dax.md) diff --git a/query-languages/dax/startofquarter-function-dax.md b/query-languages/dax/startofquarter-function-dax.md index 4fc581738..5da2d55f8 100644 --- a/query-languages/dax/startofquarter-function-dax.md +++ b/query-languages/dax/startofquarter-function-dax.md @@ -6,45 +6,45 @@ title: "STARTOFQUARTER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the first date of the quarter in the current context for the specified column of dates. - -## Syntax - +Returns the first date of the quarter in the current context for the specified column of dates. + +## Syntax + ```dax -STARTOFQUARTER() +STARTOFQUARTER() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| + ## Return value -A table containing a single column and single row with a date value. - +A table containing a single column and single row with a date value. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that returns the start of the quarter, for the current context. - +The following sample formula creates a measure that returns the start of the quarter, for the current context. + ```dax -= STARTOFQUARTER(DateTime[DateKey]) += STARTOFQUARTER(DateTime[DateKey]) ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[STARTOFYEAR](startofyear-function-dax.md) -[STARTOFMONTH](startofmonth-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[STARTOFYEAR](startofyear-function-dax.md) +[STARTOFMONTH](startofmonth-function-dax.md) diff --git a/query-languages/dax/startofyear-function-dax.md b/query-languages/dax/startofyear-function-dax.md index d1af92a7a..0c0d81c3d 100644 --- a/query-languages/dax/startofyear-function-dax.md +++ b/query-languages/dax/startofyear-function-dax.md @@ -6,47 +6,47 @@ title: "STARTOFYEAR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Returns the first date of the year in the current context for the specified column of dates. - -## Syntax - +Returns the first date of the year in the current context for the specified column of dates. + +## Syntax + ```dax -STARTOFYEAR() +STARTOFYEAR() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| -|`YearEndDate`|(Optional) A year end date value.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| +|`YearEndDate`|(Optional) A year end date value.| + ## Return value -A table containing a single column and single row with a date value. - +A table containing a single column and single row with a date value. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that returns the start of the year, for the current context. - +The following sample formula creates a measure that returns the start of the year, for the current context. + ```dax -= STARTOFYEAR(DateTime[DateKey]) += STARTOFYEAR(DateTime[DateKey]) ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[Time intelligence functions](time-intelligence-functions-dax.md) -[STARTOFQUARTER](startofquarter-function-dax.md) -[STARTOFMONTH ](startofmonth-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[Time intelligence functions](time-intelligence-functions-dax.md) +[STARTOFQUARTER](startofquarter-function-dax.md) +[STARTOFMONTH ](startofmonth-function-dax.md) diff --git a/query-languages/dax/statements-dax.md b/query-languages/dax/statements-dax.md index 205d548d4..c8b0eb171 100644 --- a/query-languages/dax/statements-dax.md +++ b/query-languages/dax/statements-dax.md @@ -4,7 +4,7 @@ title: "Statements(DAX)" --- # Statements -## In this category +## In this category |Statement |Description | |---------|---------| diff --git a/query-languages/dax/statistical-functions-dax.md b/query-languages/dax/statistical-functions-dax.md index 635b6d45d..df784bcc1 100644 --- a/query-languages/dax/statistical-functions-dax.md +++ b/query-languages/dax/statistical-functions-dax.md @@ -5,7 +5,7 @@ title: "Statistical functions (DAX)" # Statistical functions Statistical functions calculate values related to statistical distributions and probability, such as standard deviation and number of permutations. - + ## In this category |Function |Description | diff --git a/query-languages/dax/stdev-p-function-dax.md b/query-languages/dax/stdev-p-function-dax.md index fdb099275..eb2e7ae65 100644 --- a/query-languages/dax/stdev-p-function-dax.md +++ b/query-languages/dax/stdev-p-function-dax.md @@ -6,44 +6,44 @@ title: "STDEV.P function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the standard deviation of the entire population. - -## Syntax - +Returns the standard deviation of the entire population. + +## Syntax + ```dax -STDEV.P() +STDEV.P() ``` - -### Parameters -|Term|Definition| -|--------|--------------| -| `columnName` | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | - +### Parameters + +|Term|Definition| +|--------|--------------| +| `columnName` | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | + ## Return value -A number representing the standard deviation of the entire population. - -## Remarks - -- STDEV.P assumes that the column refers to the entire population. If your data represents a sample of the population, then compute the standard deviation by using STDEV.S. - -- STDEV.P uses the following formula: - - √[∑(x - x̃)2/n] - +A number representing the standard deviation of the entire population. + +## Remarks + +- STDEV.P assumes that the column refers to the entire population. If your data represents a sample of the population, then compute the standard deviation by using STDEV.S. + +- STDEV.P uses the following formula: + + √[∑(x - x̃)2/n] + where x̃ is the average value of x for the entire population and n is the population size. - -- Blank rows are filtered out from `columnName` and not considered in the calculations. - -- An error is returned if `columnName` contains less than 2 non-blank rows - + +- Blank rows are filtered out from `columnName` and not considered in the calculations. + +- An error is returned if `columnName` contains less than 2 non-blank rows + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows the formula for a measure that calculates the standard deviation of the column, SalesAmount_USD, when the table InternetSales_USD is the entire population. - +The following example shows the formula for a measure that calculates the standard deviation of the column, SalesAmount_USD, when the table InternetSales_USD is the entire population. + ```dax -= STDEV.P(InternetSales_USD[SalesAmount_USD]) += STDEV.P(InternetSales_USD[SalesAmount_USD]) ``` diff --git a/query-languages/dax/stdev-s-function-dax.md b/query-languages/dax/stdev-s-function-dax.md index ef24e961b..6e95e890f 100644 --- a/query-languages/dax/stdev-s-function-dax.md +++ b/query-languages/dax/stdev-s-function-dax.md @@ -6,46 +6,46 @@ title: "STDEV.S function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the standard deviation of a sample population. - -## Syntax - +Returns the standard deviation of a sample population. + +## Syntax + ```dax -STDEV.S() +STDEV.S() ``` - -### Parameters -|Term|Definition| -|--------|--------------| -| `columnName` | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | +### Parameters + +|Term|Definition| +|--------|--------------| +| `columnName` | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | ## Return value -A number that represents the standard deviation of a sample population. - -## Exceptions - -## Remarks - -- STDEV.S assumes that the column refers to a sample of the population. If your data represents the entire population, then compute the standard deviation by using STDEV.P. - -- STDEV.S uses the following formula: - - √[∑(x - x̃)2/(n-1)] - - where x̃ is the average value of x for the sample population and n is the population size. - -- Blank rows are filtered out from `columnName` and not considered in the calculations. - -- An error is returned if `columnName` contains less than 2 non-blank rows. - +A number that represents the standard deviation of a sample population. + +## Exceptions + +## Remarks + +- STDEV.S assumes that the column refers to a sample of the population. If your data represents the entire population, then compute the standard deviation by using STDEV.P. + +- STDEV.S uses the following formula: + + √[∑(x - x̃)2/(n-1)] + + where x̃ is the average value of x for the sample population and n is the population size. + +- Blank rows are filtered out from `columnName` and not considered in the calculations. + +- An error is returned if `columnName` contains less than 2 non-blank rows. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows the formula for a measure that calculates the standard deviation of the column, SalesAmount_USD, when the table InternetSales_USD is the sample population. - +The following example shows the formula for a measure that calculates the standard deviation of the column, SalesAmount_USD, when the table InternetSales_USD is the sample population. + ```dax -= STDEV.S(InternetSales_USD[SalesAmount_USD]) += STDEV.S(InternetSales_USD[SalesAmount_USD]) ``` diff --git a/query-languages/dax/stdevx-p-function-dax.md b/query-languages/dax/stdevx-p-function-dax.md index ff9b72a4f..63685ea06 100644 --- a/query-languages/dax/stdevx-p-function-dax.md +++ b/query-languages/dax/stdevx-p-function-dax.md @@ -6,45 +6,45 @@ title: "STDEVX.P function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the standard deviation of the entire population. - -## Syntax - +Returns the standard deviation of the entire population. + +## Syntax + ```dax -STDEVX.P(
, ) +STDEVX.P(
, ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`table` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | +### Parameters + +|Term|Definition| +|--------|--------------| +|`table` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | |`expression` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | - + ## Return value -A number that represents the standard deviation of the entire population. - -## Remarks - -- STDEVX.P evaluates `expression` for each row of `table` and returns the standard deviation of expression assuming that table refers to the entire population. If the data in `table` represents a sample of the population, you should compute the standard deviation by using STDEVX.S instead. - -- STDEVX.P uses the following formula: - - √[∑(x - x̃)2/n] - +A number that represents the standard deviation of the entire population. + +## Remarks + +- STDEVX.P evaluates `expression` for each row of `table` and returns the standard deviation of expression assuming that table refers to the entire population. If the data in `table` represents a sample of the population, you should compute the standard deviation by using STDEVX.S instead. + +- STDEVX.P uses the following formula: + + √[∑(x - x̃)2/n] + where x̃ is the average value of x for the entire population and n is the population size. - -- Blank rows are filtered out from `columnName` and not considered in the calculations. - -- An error is returned if `columnName` contains less than 2 non-blank rows - + +- Blank rows are filtered out from `columnName` and not considered in the calculations. + +- An error is returned if `columnName` contains less than 2 non-blank rows + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows the formula for a calculated column that calculates the standard deviation of the unit price per product, when the formula is used in the *Product* table. - +The following example shows the formula for a calculated column that calculates the standard deviation of the unit price per product, when the formula is used in the *Product* table. + ```dax -= STDEVX.P(RELATEDTABLE(InternetSales_USD), InternetSales_USD[UnitPrice_USD] – (InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity])) += STDEVX.P(RELATEDTABLE(InternetSales_USD), InternetSales_USD[UnitPrice_USD] – (InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity])) ``` diff --git a/query-languages/dax/stdevx-s-function-dax.md b/query-languages/dax/stdevx-s-function-dax.md index 699967a26..69ae262b0 100644 --- a/query-languages/dax/stdevx-s-function-dax.md +++ b/query-languages/dax/stdevx-s-function-dax.md @@ -6,47 +6,47 @@ title: "STDEVX.S function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the standard deviation of a sample population. - -## Syntax - +Returns the standard deviation of a sample population. + +## Syntax + ```dax -STDEVX.S(
, ) +STDEVX.S(
, ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`table` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | +### Parameters + +|Term|Definition| +|--------|--------------| +|`table` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | |`expression` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | ## Return value -A number with the standard deviation of a sample population. - -## Exceptions - -## Remarks - -- STDEVX.S evaluates `expression` for each row of `table` and returns the standard deviation of `expression` assuming that `table` refers to a sample of the population. If `table` represents the entire population, then compute the standard deviation by using STDEVX.P. - -- STDEVX.S uses the following formula: - - √[∑(x - x̃)2/(n-1)] - +A number with the standard deviation of a sample population. + +## Exceptions + +## Remarks + +- STDEVX.S evaluates `expression` for each row of `table` and returns the standard deviation of `expression` assuming that `table` refers to a sample of the population. If `table` represents the entire population, then compute the standard deviation by using STDEVX.P. + +- STDEVX.S uses the following formula: + + √[∑(x - x̃)2/(n-1)] + where x̃ is the average value of x for the entire population and n is the population size. - -- Blank rows are filtered out from `columnName` and not considered in the calculations. - -- An error is returned if `columnName` contains less than 2 non-blank rows. - + +- Blank rows are filtered out from `columnName` and not considered in the calculations. + +- An error is returned if `columnName` contains less than 2 non-blank rows. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows the formula for a calculated column that estimates the standard deviation of the unit price per product for a sample population, when the formula is used in the Product table. - +The following example shows the formula for a calculated column that estimates the standard deviation of the unit price per product for a sample population, when the formula is used in the Product table. + ```dax -= STDEVX.S(RELATEDTABLE(InternetSales_USD), InternetSales_USD[UnitPrice_USD] – (InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity])) += STDEVX.S(RELATEDTABLE(InternetSales_USD), InternetSales_USD[UnitPrice_USD] – (InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity])) ``` diff --git a/query-languages/dax/substitute-function-dax.md b/query-languages/dax/substitute-function-dax.md index 049a9e494..bf96c72ae 100644 --- a/query-languages/dax/substitute-function-dax.md +++ b/query-languages/dax/substitute-function-dax.md @@ -6,44 +6,44 @@ title: "SUBSTITUTE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Replaces existing text with new text in a text string. - -## Syntax - +Replaces existing text with new text in a text string. + +## Syntax + ```dax -SUBSTITUTE(, , , ) +SUBSTITUTE(, , , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text in which you want to substitute characters, or a reference to a column containing text.| -|`old_text`|The existing text that you want to replace.| -|`new_text`|The text you want to replace `old_text` with.| -|`instance_num`|(optional) The occurrence of `old_text` you want to replace. If omitted, every instance of `old_text` is replaced| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text in which you want to substitute characters, or a reference to a column containing text.| +|`old_text`|The existing text that you want to replace.| +|`new_text`|The text you want to replace `old_text` with.| +|`instance_num`|(optional) The occurrence of `old_text` you want to replace. If omitted, every instance of `old_text` is replaced| + ## Return value -A string of text. - +A string of text. + ## Remarks -- Use the SUBSTITUTE function when you want to replace specific text in a text string; use the REPLACE function when you want to replace any text of variable length that occurs in a specific location in a text string. - -- The SUBSTITUTE function is case-sensitive. If case does not match between `text` and `old_text`, SUBSTITUTE will not replace the text. - +- Use the SUBSTITUTE function when you want to replace specific text in a text string; use the REPLACE function when you want to replace any text of variable length that occurs in a specific location in a text string. + +- The SUBSTITUTE function is case-sensitive. If case does not match between `text` and `old_text`, SUBSTITUTE will not replace the text. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example: Substitution within a String + +## Example: Substitution within a String The following formula creates a copy of the column [Product Code] that substitutes the new product code `NW` for the old product code `PA` wherever it occurs in the column. - + ```dax -= SUBSTITUTE([Product Code], "NW", "PA") += SUBSTITUTE([Product Code], "NW", "PA") ``` - + ## Related content -[Text functions](text-functions-dax.md) -[REPLACE](replace-function-dax.md) +[Text functions](text-functions-dax.md) +[REPLACE](replace-function-dax.md) diff --git a/query-languages/dax/substitutewithindex-function-dax.md b/query-languages/dax/substitutewithindex-function-dax.md index 1a0c6606e..b5d16a32a 100644 --- a/query-languages/dax/substitutewithindex-function-dax.md +++ b/query-languages/dax/substitutewithindex-function-dax.md @@ -5,33 +5,33 @@ title: "SUBSTITUTEWITHINDEX function (DAX)" # SUBSTITUTEWITHINDEX [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] - -Returns a table which represents a left semijoin of the two tables supplied as arguments. The semijoin is performed by using common columns, determined by common column names and common data type . The columns being joined on are replaced with a single column in the returned table which is of type integer and contains an index. The index is a reference into the right join table given a specified sort order. - -Columns in the right/second table supplied which do not exist in the left/first table supplied are not included in the returned table and are not used to join on. - -The index starts at 0 (0-based) and is incremented by one for each additional row in the right/second join table supplied. The index is based on the sort order specified for the right/second join table. - -## Syntax - + +Returns a table which represents a left semijoin of the two tables supplied as arguments. The semijoin is performed by using common columns, determined by common column names and common data type . The columns being joined on are replaced with a single column in the returned table which is of type integer and contains an index. The index is a reference into the right join table given a specified sort order. + +Columns in the right/second table supplied which do not exist in the left/first table supplied are not included in the returned table and are not used to join on. + +The index starts at 0 (0-based) and is incremented by one for each additional row in the right/second join table supplied. The index is based on the sort order specified for the right/second join table. + +## Syntax + ```dax -SUBSTITUTEWITHINDEX(
, , , [, [][, , []]…]) +SUBSTITUTEWITHINDEX(
, , , [, [][, , []]…]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|A table to be filtered by performing a left semijoin with the table specified as the third argument (indexColumnsTable). This is the table on the left side of the left semijoin so the table returned includes the same columns as this table except that all common columns of the two tables will be replaced with a single index column in the table returned.| -|`indexColumnName`|A string which specifies the name of the index column which is replacing all the common columns in the two tables supplied as arguments to this function.| -|`indexColumnsTable`|The second table for the left semijoin. This is the table on the right side of the left semijoin. Only values present in this table will be returned by the function. Also, the columns of this table (based on column names) will be replaced with a single index column in the table returned by this function.| -|`orderBy_expression`|Any DAX expression where the result value is used to specify the desired sort order of the indexColumnsTable table for generating correct index values. The sort order specified for the indexColumnsTable table defines the index of each row in the table and that index is used in the table returned to represent combinations of values in the indexColumnsTable as they appear in the table supplied as the first argument to this function.| -|`order`|(Optional) A value that specifies how to sort orderBy_expression values, ascending or descending:

Value: `Desc`. Alternative value: `0`(zero)/`FALSE`. Sorts in descending order of values of orderBy_expression. This is the default value when order parameter is omitted.

Value: `ASC`. Alternative value: `1`/`TRUE`. Ranks in ascending order of orderBy_expression.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|A table to be filtered by performing a left semijoin with the table specified as the third argument (indexColumnsTable). This is the table on the left side of the left semijoin so the table returned includes the same columns as this table except that all common columns of the two tables will be replaced with a single index column in the table returned.| +|`indexColumnName`|A string which specifies the name of the index column which is replacing all the common columns in the two tables supplied as arguments to this function.| +|`indexColumnsTable`|The second table for the left semijoin. This is the table on the right side of the left semijoin. Only values present in this table will be returned by the function. Also, the columns of this table (based on column names) will be replaced with a single index column in the table returned by this function.| +|`orderBy_expression`|Any DAX expression where the result value is used to specify the desired sort order of the indexColumnsTable table for generating correct index values. The sort order specified for the indexColumnsTable table defines the index of each row in the table and that index is used in the table returned to represent combinations of values in the indexColumnsTable as they appear in the table supplied as the first argument to this function.| +|`order`|(Optional) A value that specifies how to sort orderBy_expression values, ascending or descending:

Value: `Desc`. Alternative value: `0`(zero)/`FALSE`. Sorts in descending order of values of orderBy_expression. This is the default value when order parameter is omitted.

Value: `ASC`. Alternative value: `1`/`TRUE`. Ranks in ascending order of orderBy_expression.| + ## Return value -A table which includes only those values present in the indexColumnsTable table and which has an index column instead of all columns present (by name) in the indexColumnsTable table. - +A table which includes only those values present in the indexColumnsTable table and which has an index column instead of all columns present (by name) in the indexColumnsTable table. + ## Remarks - This function does not guarantee any result sort order. diff --git a/query-languages/dax/sum-function-dax.md b/query-languages/dax/sum-function-dax.md index 206c03939..0e40b54d2 100644 --- a/query-languages/dax/sum-function-dax.md +++ b/query-languages/dax/sum-function-dax.md @@ -6,36 +6,36 @@ title: "SUM function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Adds all the numbers in a column. - -## Syntax - +Adds all the numbers in a column. + +## Syntax + ```dax -SUM() +SUM() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`column`|The column that contains the numbers to sum.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`column`|The column that contains the numbers to sum.| + ## Return value -A decimal number. - -## Remarks - -If you want to filter the values that you are summing, you can use the SUMX function and specify an expression to sum over. - +A decimal number. + +## Remarks + +If you want to filter the values that you are summing, you can use the SUMX function and specify an expression to sum over. + ## Example -The following example adds all the numbers that are contained in the column, Amt, from the table, Sales. - +The following example adds all the numbers that are contained in the column, Amt, from the table, Sales. + ```dax -= SUM(Sales[Amt]) += SUM(Sales[Amt]) ``` - + ## Related content [SUMX](sumx-function-dax.md) diff --git a/query-languages/dax/summarize-function-dax.md b/query-languages/dax/summarize-function-dax.md index 57e390e5c..c4e1877f0 100644 --- a/query-languages/dax/summarize-function-dax.md +++ b/query-languages/dax/summarize-function-dax.md @@ -6,198 +6,198 @@ title: "SUMMARIZE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a summary table for the requested totals over a set of groups. - -## Syntax - +Returns a summary table for the requested totals over a set of groups. + +## Syntax + ```dax SUMMARIZE (
, [, ]…[, , ]…) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -| `table` | Any DAX expression that returns a table of data. | +### Parameters + +|Term|Definition| +|--------|--------------| +| `table` | Any DAX expression that returns a table of data. | | `groupBy_ColumnName` | (Optional) The qualified name of an existing column used to create summary groups based on the values found in it. This parameter cannot be an expression. | | `name` | The name given to a total or summarize column, enclosed in double quotes. | | `expression` |Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | ## Return value -A table with the selected columns for the `groupBy_columnName` arguments and the summarized columns designed by the name arguments. - -## Remarks - -- Each column for which you define a name must have a corresponding expression; otherwise, an error is returned. The first argument, name, defines the name of the column in the results. The second argument, expression, defines the calculation performed to obtain the value for each row in that column. +A table with the selected columns for the `groupBy_columnName` arguments and the summarized columns designed by the name arguments. + +## Remarks + +- Each column for which you define a name must have a corresponding expression; otherwise, an error is returned. The first argument, name, defines the name of the column in the results. The second argument, expression, defines the calculation performed to obtain the value for each row in that column. -- groupBy_columnName must be either in `table` or in a related table to `table`. +- groupBy_columnName must be either in `table` or in a related table to `table`. -- Each name must be enclosed in double quotation marks. +- Each name must be enclosed in double quotation marks. -- The function groups a selected set of rows into a set of summary rows by the values of one or more groupBy_columnName columns. One row is returned for each group. +- The function groups a selected set of rows into a set of summary rows by the values of one or more groupBy_columnName columns. One row is returned for each group. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example returns a summary of the reseller sales grouped around the calendar year and the product category name, this result table allows you to do analysis over the reseller sales by year and product category. - +The following example returns a summary of the reseller sales grouped around the calendar year and the product category name, this result table allows you to do analysis over the reseller sales by year and product category. + ```dax -SUMMARIZE(ResellerSales_USD - , DateTime[CalendarYear] - , ProductCategory[ProductCategoryName] - , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD]) - , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount]) - ) +SUMMARIZE(ResellerSales_USD + , DateTime[CalendarYear] + , ProductCategory[ProductCategoryName] + , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD]) + , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount]) + ) ``` -The following table shows a preview of the data as it would be received by any function expecting to receive a table: - -|**DateTime[CalendarYear]**|**ProductCategory[ProductCategoryName]**|**[Sales Amount (USD)]**|**[Discount Amount (USD)]**| -|---------|---------|---------|---------| -|2008|Bikes|12968255.42|36167.6592| -|2005|Bikes|6958251.043|4231.1621| -|2006|Bikes|18901351.08|178175.8399| -|2007|Bikes|24256817.5|276065.992| -|2008|Components|2008052.706|39.9266| -|2005|Components|574256.9865|0| -|2006|Components|3428213.05|948.7674| -|2007|Components|5195315.216|4226.0444| -|2008|Clothing|366507.844|4151.1235| -|2005|Clothing|31851.1628|90.9593| -|2006|Clothing|455730.9729|4233.039| -|2007|Clothing|815853.2868|12489.3835| -|2008|Accessories|153299.924|865.5945| -|2005|Accessories|18594.4782|4.293| -|2006|Accessories|86612.7463|1061.4872| -|2007|Accessories|275794.8403|4756.6546| - +The following table shows a preview of the data as it would be received by any function expecting to receive a table: + +|**DateTime[CalendarYear]**|**ProductCategory[ProductCategoryName]**|**[Sales Amount (USD)]**|**[Discount Amount (USD)]**| +|---------|---------|---------|---------| +|2008|Bikes|12968255.42|36167.6592| +|2005|Bikes|6958251.043|4231.1621| +|2006|Bikes|18901351.08|178175.8399| +|2007|Bikes|24256817.5|276065.992| +|2008|Components|2008052.706|39.9266| +|2005|Components|574256.9865|0| +|2006|Components|3428213.05|948.7674| +|2007|Components|5195315.216|4226.0444| +|2008|Clothing|366507.844|4151.1235| +|2005|Clothing|31851.1628|90.9593| +|2006|Clothing|455730.9729|4233.039| +|2007|Clothing|815853.2868|12489.3835| +|2008|Accessories|153299.924|865.5945| +|2005|Accessories|18594.4782|4.293| +|2006|Accessories|86612.7463|1061.4872| +|2007|Accessories|275794.8403|4756.6546| + ## With ROLLUP The addition of the [ROLLUP](rollup-function-dax.md) syntax modifies the behavior of the SUMMARIZE function by adding rollup rows to the result on the groupBy_columnName columns. [ROLLUP](rollup-function-dax.md) can only be used within a SUMMARIZE expression. ### Example -The following example adds rollup rows to the Group-By columns of the SUMMARIZE function call: - +The following example adds rollup rows to the Group-By columns of the SUMMARIZE function call: + ```dax -SUMMARIZE(ResellerSales_USD - , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]) - , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD]) - , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount]) -) +SUMMARIZE(ResellerSales_USD + , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]) + , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD]) + , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount]) +) ``` -Returns the following table, - -|**DateTime[CalendarYear]**|**ProductCategory[ProductCategoryName]**|**[Sales Amount (USD)]**|**[Discount Amount (USD)]**| -|---------|---------|---------|---------| -|2008|Bikes|12968255.42|36167.6592| -|2005|Bikes|6958251.043|4231.1621| -|2006|Bikes|18901351.08|178175.8399| -|2007|Bikes|24256817.5|276065.992| -|2008|Components|2008052.706|39.9266| -|2005|Components|574256.9865|0| -|2006|Components|3428213.05|948.7674| -|2007|Components|5195315.216|4226.0444| -|2008|Clothing|366507.844|4151.1235| -|2005|Clothing|31851.1628|90.9593| -|2006|Clothing|455730.9729|4233.039| -|2007|Clothing|815853.2868|12489.3835| -|2008|Accessories|153299.924|865.5945| -|2005|Accessories|18594.4782|4.293| -|2006|Accessories|86612.7463|1061.4872| -|2007|Accessories|275794.8403|4756.6546| -|2008||15496115.89|41224.3038| -|2005||7582953.67|4326.4144| -|2006||22871907.85|184419.1335| -|2007||30543780.84|297538.0745| -|||76494758.25|527507.9262| - +Returns the following table, + +|**DateTime[CalendarYear]**|**ProductCategory[ProductCategoryName]**|**[Sales Amount (USD)]**|**[Discount Amount (USD)]**| +|---------|---------|---------|---------| +|2008|Bikes|12968255.42|36167.6592| +|2005|Bikes|6958251.043|4231.1621| +|2006|Bikes|18901351.08|178175.8399| +|2007|Bikes|24256817.5|276065.992| +|2008|Components|2008052.706|39.9266| +|2005|Components|574256.9865|0| +|2006|Components|3428213.05|948.7674| +|2007|Components|5195315.216|4226.0444| +|2008|Clothing|366507.844|4151.1235| +|2005|Clothing|31851.1628|90.9593| +|2006|Clothing|455730.9729|4233.039| +|2007|Clothing|815853.2868|12489.3835| +|2008|Accessories|153299.924|865.5945| +|2005|Accessories|18594.4782|4.293| +|2006|Accessories|86612.7463|1061.4872| +|2007|Accessories|275794.8403|4756.6546| +|2008||15496115.89|41224.3038| +|2005||7582953.67|4326.4144| +|2006||22871907.85|184419.1335| +|2007||30543780.84|297538.0745| +|||76494758.25|527507.9262| + ## With ROLLUPGROUP The addition of [ROLLUPGROUP](rollupgroup-function-dax.md) inside a [ROLLUP](rollup-function-dax.md) syntax can be used to prevent partial subtotals in rollup rows. [ROLLUPGROUP](rollupgroup-function-dax.md) can only be used within a [ROLLUP](rollup-function-dax.md), [ROLLUPADDISSUBTOTAL](rollupaddissubtotal-function-dax.md), or [ROLLUPISSUBTOTAL](rollupissubtotal-function-dax.md) expression. ### Example -The following example shows only the grand total of all years and categories without the subtotal of each year with all categories: - +The following example shows only the grand total of all years and categories without the subtotal of each year with all categories: + ```dax -SUMMARIZE(ResellerSales_USD - , ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])) - , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD]) - , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount]) -) +SUMMARIZE(ResellerSales_USD + , ROLLUP(ROLLUPGROUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName])) + , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD]) + , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount]) +) ``` -Returns the following table, - -|**DateTime[CalendarYear]**|**ProductCategory[ProductCategoryName]**|**[Sales Amount (USD)]**|**[Discount Amount (USD)]**| -|---------|---------|---------|---------| -|2008|Bikes|12968255.42|36167.6592| -|2005|Bikes|6958251.043|4231.1621| -|2006|Bikes|18901351.08|178175.8399| -|2007|Bikes|24256817.5|276065.992| -|2008|Components|2008052.706|39.9266| -|2005|Components|574256.9865|0| -|2006|Components|3428213.05|948.7674| -|2007|Components|5195315.216|4226.0444| -|2008|Clothing|366507.844|4151.1235| -|2005|Clothing|31851.1628|90.9593| -|2006|Clothing|455730.9729|4233.039| -|2007|Clothing|815853.2868|12489.3835| -|2008|Accessories|153299.924|865.5945| -|2005|Accessories|18594.4782|4.293| -|2006|Accessories|86612.7463|1061.4872| -|2007|Accessories|275794.8403|4756.6546| -|||76494758.25|527507.9262| - +Returns the following table, + +|**DateTime[CalendarYear]**|**ProductCategory[ProductCategoryName]**|**[Sales Amount (USD)]**|**[Discount Amount (USD)]**| +|---------|---------|---------|---------| +|2008|Bikes|12968255.42|36167.6592| +|2005|Bikes|6958251.043|4231.1621| +|2006|Bikes|18901351.08|178175.8399| +|2007|Bikes|24256817.5|276065.992| +|2008|Components|2008052.706|39.9266| +|2005|Components|574256.9865|0| +|2006|Components|3428213.05|948.7674| +|2007|Components|5195315.216|4226.0444| +|2008|Clothing|366507.844|4151.1235| +|2005|Clothing|31851.1628|90.9593| +|2006|Clothing|455730.9729|4233.039| +|2007|Clothing|815853.2868|12489.3835| +|2008|Accessories|153299.924|865.5945| +|2005|Accessories|18594.4782|4.293| +|2006|Accessories|86612.7463|1061.4872| +|2007|Accessories|275794.8403|4756.6546| +|||76494758.25|527507.9262| + ## With ISSUBTOTAL With [ISSUBTOTAL](issubtotal-function-dax.md), you can create another column in the SUMMARIZE expression that returns True if the row contains subtotal values for the column given as argument to [ISSUBTOTAL](issubtotal-function-dax.md), otherwise returns False. [ISSUBTOTAL](issubtotal-function-dax.md) can only be used within a SUMMARIZE expression. - + ### Example -The following sample generates an [ISSUBTOTAL](issubtotal-function-dax.md) column for each of the [ROLLUP](rollup-function-dax.md) columns in the given SUMMARIZE function call: - +The following sample generates an [ISSUBTOTAL](issubtotal-function-dax.md) column for each of the [ROLLUP](rollup-function-dax.md) columns in the given SUMMARIZE function call: + ```dax -SUMMARIZE(ResellerSales_USD - , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]) - , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD]) - , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount]) - , "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear]) - , "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName]) -) +SUMMARIZE(ResellerSales_USD + , ROLLUP( DateTime[CalendarYear], ProductCategory[ProductCategoryName]) + , "Sales Amount (USD)", SUM(ResellerSales_USD[SalesAmount_USD]) + , "Discount Amount (USD)", SUM(ResellerSales_USD[DiscountAmount]) + , "Is Sub Total for DateTimeCalendarYear", ISSUBTOTAL(DateTime[CalendarYear]) + , "Is Sub Total for ProductCategoryName", ISSUBTOTAL(ProductCategory[ProductCategoryName]) +) ``` Returns the following table, - -|**[Is Sub Total for DateTimeCalendarYear]**|**[Is Sub Total for ProductCategoryName]**|**DateTime[CalendarYear]**|**ProductCategory[ProductCategoryName]**|**[Sales Amount (USD)]**|**[Discount Amount (USD)]**| -|---------|---------|---------|---------|---------|---------| -|`FALSE`|`FALSE`||||| -|`FALSE`|`FALSE`|2008|Bikes|12968255.42|36167.6592| -|`FALSE`|`FALSE`|2005|Bikes|6958251.043|4231.1621| -|`FALSE`|`FALSE`|2006|Bikes|18901351.08|178175.8399| -|`FALSE`|`FALSE`|2007|Bikes|24256817.5|276065.992| -|`FALSE`|`FALSE`|2008|Components|2008052.706|39.9266| -|`FALSE`|`FALSE`|2005|Components|574256.9865|0| -|`FALSE`|`FALSE`|2006|Components|3428213.05|948.7674| -|`FALSE`|`FALSE`|2007|Components|5195315.216|4226.0444| -|`FALSE`|`FALSE`|2008|Clothing|366507.844|4151.1235| -|`FALSE`|`FALSE`|2005|Clothing|31851.1628|90.9593| -|`FALSE`|`FALSE`|2006|Clothing|455730.9729|4233.039| -|`FALSE`|`FALSE`|2007|Clothing|815853.2868|12489.3835| -|`FALSE`|`FALSE`|2008|Accessories|153299.924|865.5945| -|`FALSE`|`FALSE`|2005|Accessories|18594.4782|4.293| -|`FALSE`|`FALSE`|2006|Accessories|86612.7463|1061.4872| -|`FALSE`|`FALSE`|2007|Accessories|275794.8403|4756.6546| -|`FALSE`|`TRUE`||||| -|`FALSE`|`TRUE`|2008||15496115.89|41224.3038| -|`FALSE`|`TRUE`|2005||7582953.67|4326.4144| -|`FALSE`|`TRUE`|2006||22871907.85|184419.1335| -|`FALSE`|`TRUE`|2007||30543780.84|297538.0745| -|`TRUE`|`TRUE`|||76494758.25|527507.9262| + +|**[Is Sub Total for DateTimeCalendarYear]**|**[Is Sub Total for ProductCategoryName]**|**DateTime[CalendarYear]**|**ProductCategory[ProductCategoryName]**|**[Sales Amount (USD)]**|**[Discount Amount (USD)]**| +|---------|---------|---------|---------|---------|---------| +|`FALSE`|`FALSE`||||| +|`FALSE`|`FALSE`|2008|Bikes|12968255.42|36167.6592| +|`FALSE`|`FALSE`|2005|Bikes|6958251.043|4231.1621| +|`FALSE`|`FALSE`|2006|Bikes|18901351.08|178175.8399| +|`FALSE`|`FALSE`|2007|Bikes|24256817.5|276065.992| +|`FALSE`|`FALSE`|2008|Components|2008052.706|39.9266| +|`FALSE`|`FALSE`|2005|Components|574256.9865|0| +|`FALSE`|`FALSE`|2006|Components|3428213.05|948.7674| +|`FALSE`|`FALSE`|2007|Components|5195315.216|4226.0444| +|`FALSE`|`FALSE`|2008|Clothing|366507.844|4151.1235| +|`FALSE`|`FALSE`|2005|Clothing|31851.1628|90.9593| +|`FALSE`|`FALSE`|2006|Clothing|455730.9729|4233.039| +|`FALSE`|`FALSE`|2007|Clothing|815853.2868|12489.3835| +|`FALSE`|`FALSE`|2008|Accessories|153299.924|865.5945| +|`FALSE`|`FALSE`|2005|Accessories|18594.4782|4.293| +|`FALSE`|`FALSE`|2006|Accessories|86612.7463|1061.4872| +|`FALSE`|`FALSE`|2007|Accessories|275794.8403|4756.6546| +|`FALSE`|`TRUE`||||| +|`FALSE`|`TRUE`|2008||15496115.89|41224.3038| +|`FALSE`|`TRUE`|2005||7582953.67|4326.4144| +|`FALSE`|`TRUE`|2006||22871907.85|184419.1335| +|`FALSE`|`TRUE`|2007||30543780.84|297538.0745| +|`TRUE`|`TRUE`|||76494758.25|527507.9262| ## Related content diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index 65e6211f2..d5a9ae2b5 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -6,61 +6,61 @@ title: "SUMMARIZECOLUMNS function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] -Returns a summary table over a set of groups. - -## Syntax - +Returns a summary table over a set of groups. + +## Syntax + ```dax -SUMMARIZECOLUMNS( [, < groupBy_columnName >]…, []…[, , ]…) +SUMMARIZECOLUMNS( [, < groupBy_columnName >]…, []…[, , ]…) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`groupBy_columnName`|A fully qualified column reference (Table[Column]) to a base table for which the distinct values are included in the returned table. Each groupBy_columnName column is cross-joined (different tables) or auto-existed (same table) with the subsequent specified columns.| -|`filterTable`|A table expression which is added to the filter context of all columns specified as groupBy_columnName arguments. The values present in the filter table are used to filter before cross-join/auto-exist is performed.| -|`name`|A string representing the column name to use for the subsequent expression specified.| -|`expression`|Any DAX expression that returns a single value (not a table).| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`groupBy_columnName`|A fully qualified column reference (Table[Column]) to a base table for which the distinct values are included in the returned table. Each groupBy_columnName column is cross-joined (different tables) or auto-existed (same table) with the subsequent specified columns.| +|`filterTable`|A table expression which is added to the filter context of all columns specified as groupBy_columnName arguments. The values present in the filter table are used to filter before cross-join/auto-exist is performed.| +|`name`|A string representing the column name to use for the subsequent expression specified.| +|`expression`|Any DAX expression that returns a single value (not a table).| + ## Return value -A table which includes combinations of values from the supplied columns based on the grouping specified. Only rows for which at least one of the supplied expressions return a non-blank value are included in the table returned. If all expressions evaluate to BLANK/NULL for a row, that row is not included in the table returned. - +A table which includes combinations of values from the supplied columns based on the grouping specified. Only rows for which at least one of the supplied expressions return a non-blank value are included in the table returned. If all expressions evaluate to BLANK/NULL for a row, that row is not included in the table returned. + ## Remarks -- This function does not guarantee any sort order for the results. - -- A column cannot be specified more than once in the groupBy_columnName parameter. For example, the following formula is invalid. - - `SUMMARIZECOLUMNS( Sales[StoreId], Sales[StoreId] )` +- This function does not guarantee any sort order for the results. + +- A column cannot be specified more than once in the groupBy_columnName parameter. For example, the following formula is invalid. + + `SUMMARIZECOLUMNS( Sales[StoreId], Sales[StoreId] )` - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Filter context - -Consider the following query: - + +Consider the following query: + ```dax SUMMARIZECOLUMNS ( 'Sales Territory'[Category], FILTER('Customer', 'Customer' [First Name] = "Alicia") ) ``` - -In this query, without a measure the groupBy columns do not contain any columns from the FILTER expression (for example, from Customer table). The filter is not applied to the groupBy columns. The Sales Territory and Customer tables may be indirectly related through the Reseller sales fact table. Since they're not directly related, the filter expression is a no-op and the groupBy columns are not impacted. - -However, with this query: - + +In this query, without a measure the groupBy columns do not contain any columns from the FILTER expression (for example, from Customer table). The filter is not applied to the groupBy columns. The Sales Territory and Customer tables may be indirectly related through the Reseller sales fact table. Since they're not directly related, the filter expression is a no-op and the groupBy columns are not impacted. + +However, with this query: + ```dax SUMMARIZECOLUMNS ( 'Sales Territory'[Category], 'Customer' [Education], FILTER('Customer', 'Customer'[First Name] = "Alicia") ) -``` - -The groupBy columns contain a column which is impacted by the filter and that filter is applied to the groupBy results. - +``` + +The groupBy columns contain a column which is impacted by the filter and that filter is applied to the groupBy results. + ## With IGNORE The [IGNORE](ignore-function-dax.md) syntax can be used to modify the behavior of the SUMMARIZECOLUMNS function by omitting specific expressions from the BLANK/NULL evaluation. Rows for which all expressions not using [IGNORE](ignore-function-dax.md) return BLANK/NULL will be excluded independent of whether the expressions which do use [IGNORE](ignore-function-dax.md) evaluate to BLANK/NULL or not. [IGNORE](ignore-function-dax.md) can only be used within a SUMMARIZECOLUMNS expression. @@ -74,24 +74,24 @@ SUMMARIZECOLUMNS( "BlankIfTotalQtyIsNot3", IF( SUM( Sales[Qty] )=3, 3 ) ) ``` - -This rolls up the Sales[CustomerId] column, creating a subtotal for all customers in the given grouping. Without [IGNORE](ignore-function-dax.md), the result is: - -|CustomerId|Total Qty|BlankIfTotalQtyIsNot3| -|--------------|------------|-------------------------| -|A|5|| -|B|3|3| -|C|3|3| - + +This rolls up the Sales[CustomerId] column, creating a subtotal for all customers in the given grouping. Without [IGNORE](ignore-function-dax.md), the result is: + +|CustomerId|Total Qty|BlankIfTotalQtyIsNot3| +|--------------|------------|-------------------------| +|A|5|| +|B|3|3| +|C|3|3| + With [IGNORE](ignore-function-dax.md), - -|CustomerId|Total Qty|BlankIfTotalQtyIsNot3| -|--------------|------------|-------------------------| -|B|3|3| -|C|3|3| - + +|CustomerId|Total Qty|BlankIfTotalQtyIsNot3| +|--------------|------------|-------------------------| +|B|3|3| +|C|3|3| + All expression ignored, - + ```dax SUMMARIZECOLUMNS( Sales[CustomerId], "Blank", @@ -99,14 +99,14 @@ SUMMARIZECOLUMNS( IGNORE( IF( SUM( Sales[Qty] )=5, 5 ) ) ) ``` - -Even though both expressions return blank for some rows, they're included since there are no unignored expressions which return blank. - -|CustomerId|Blank|BlankIfTotalQtyIsNot5| -|--------------|------------|-------------------------| -|A||5| -|B||| -|C||| + +Even though both expressions return blank for some rows, they're included since there are no unignored expressions which return blank. + +|CustomerId|Blank|BlankIfTotalQtyIsNot5| +|--------------|------------|-------------------------| +|A||5| +|B||| +|C||| ## With NONVISUAL @@ -157,13 +157,13 @@ Returns the result where [Visual Total Sales] is the total across the two select |---------|---------|---------| |2007 | 9,791,060.30 | 19,561,960.04 | |2008 | 9,770,899.74 | 19,561,960.04 | - + ## With ROLLUPADDISSUBTOTAL The addition of the [ROLLUPADDISSUBTOTAL](rollupaddissubtotal-function-dax.md) syntax modifies the behavior of the SUMMARIZECOLUMNS function by adding rollup/subtotal rows to the result based on the groupBy_columnName columns. [ROLLUPADDISSUBTOTAL](rollupaddissubtotal-function-dax.md) can only be used within a SUMMARIZECOLUMNS expression. - + ### Example with single subtotal - + ```dax DEFINE VAR vCategoryFilter = @@ -185,9 +185,9 @@ EVALUATE [IsSubcategorySubtotal] DESC, [Subcategory] ``` - + Returns the following table, - + |Category |Subcategory |IsCategorySubtotal |IsSubcategorySubtotal |Total Qty |---------|---------|---------|---------|---------| | | | True | True | 60398 | @@ -195,66 +195,66 @@ Returns the following table, |Accessories | Bike Racks | False | False | 328 | |Bikes | Mountain Bikes | False | False | 4970 | |Clothing | | False | True | 9101 | - + ### Example with multiple subtotals - + ```dax SUMMARIZECOLUMNS ( Regions[State], ROLLUPADDISSUBTOTAL ( Sales[CustomerId], "IsCustomerSubtotal" ), ROLLUPADDISSUBTOTAL ( Sales[Date], "IsDateSubtotal"), "Total Qty", SUM( Sales[Qty] ) ) ``` - -Sales is grouped by state, by customer, by date, with subtotals for 1. Sales by state, by date 2. Sales by State, by Customer 3. Rolled up on both customer and date leading to sales by state. - + +Sales is grouped by state, by customer, by date, with subtotals for 1. Sales by state, by date 2. Sales by State, by Customer 3. Rolled up on both customer and date leading to sales by state. + Returns the following table, - -|CustomerID|IsCustomerSubtotal|State|Total Qty|Date|IsDateSubtotal| -|--------------|----------------------|---------|-------------|--------|------------------| -|A|`FALSE`|WA|5|7/10/2014|| -|B|`FALSE`|WA|1|7/10/2014|| -|B|`FALSE`|WA|2|7/11/2014|| -|C|`FALSE`|OR|2|7/10/2014|| -|C|`FALSE`|OR|1|7/11/2014|| -||`TRUE`|WA|6|7/10/2014|| -||`TRUE`|WA|2|7/11/2014|| -||`TRUE`|OR|2|7/10/2014|| -||`TRUE`|OR|1|7/11/2014|| -|A|`FALSE`|WA|5||`TRUE`| -|B|`FALSE`|WA|3||`TRUE`| -|C|`FALSE`|OR|3||`TRUE`| -||`TRUE`|WA|8||`TRUE`| -||`TRUE`|OR|3||`TRUE`| - + +|CustomerID|IsCustomerSubtotal|State|Total Qty|Date|IsDateSubtotal| +|--------------|----------------------|---------|-------------|--------|------------------| +|A|`FALSE`|WA|5|7/10/2014|| +|B|`FALSE`|WA|1|7/10/2014|| +|B|`FALSE`|WA|2|7/11/2014|| +|C|`FALSE`|OR|2|7/10/2014|| +|C|`FALSE`|OR|1|7/11/2014|| +||`TRUE`|WA|6|7/10/2014|| +||`TRUE`|WA|2|7/11/2014|| +||`TRUE`|OR|2|7/10/2014|| +||`TRUE`|OR|1|7/11/2014|| +|A|`FALSE`|WA|5||`TRUE`| +|B|`FALSE`|WA|3||`TRUE`| +|C|`FALSE`|OR|3||`TRUE`| +||`TRUE`|WA|8||`TRUE`| +||`TRUE`|OR|3||`TRUE`| + ## With ROLLUPGROUP Like with the [SUMMARIZE](summarize-function-dax.md) function, [ROLLUPGROUP](rollupgroup-function-dax.md) can be used together with [ROLLUPADDISSUBTOTAL](rollupaddissubtotal-function-dax.md) to specify which summary groups/granularities (subtotals) to include, reducing the number of subtotal rows returned. [ROLLUPGROUP](rollupgroup-function-dax.md) can only be used within a SUMMARIZECOLUMNS or [SUMMARIZE](summarize-function-dax.md) expression. - + ### Example with multiple subtotals - + ```dax SUMMARIZECOLUMNS( ROLLUPADDISSUBTOTAL( Sales[CustomerId], "IsCustomerSubtotal" ), ROLLUPADDISSUBTOTAL(ROLLUPGROUP(Regions[City], Regions[State]), "IsCityStateSubtotal"),"Total Qty", SUM( Sales[Qty] ) ) -``` - +``` + Still grouped by City and State, but rolled together when reporting a subtotal returns the following table, -|State|CustomerId|IsCustomerSubtotal|Total Qty|City|IsCityStateSubtotal| -|---------|--------------|----------------------|-------------|--------|-----------------------| -|WA|A|`FALSE`|2|Bellevue|`FALSE`| -|WA|B|`FALSE`|2|Bellevue|`FALSE`| -|WA|A|`FALSE`|3|Redmond|`FALSE`| -|WA|B|`FALSE`|1|Redmond|`FALSE`| -|OR|C|`FALSE`|3|Portland|`FALSE`| -|WA||`TRUE`|4|Bellevue|`FALSE`| -|WA||`TRUE`|4|Redmond|`FALSE`| -|OR||`TRUE`|3|Portland|`FALSE`| -||A|`FALSE`|5||`FALSE`| -||B|`FALSE`|3||`TRUE`| -||C|`FALSE`|3||`TRUE`| -|||`TRUE`|11||`TRUE`| +|State|CustomerId|IsCustomerSubtotal|Total Qty|City|IsCityStateSubtotal| +|---------|--------------|----------------------|-------------|--------|-----------------------| +|WA|A|`FALSE`|2|Bellevue|`FALSE`| +|WA|B|`FALSE`|2|Bellevue|`FALSE`| +|WA|A|`FALSE`|3|Redmond|`FALSE`| +|WA|B|`FALSE`|1|Redmond|`FALSE`| +|OR|C|`FALSE`|3|Portland|`FALSE`| +|WA||`TRUE`|4|Bellevue|`FALSE`| +|WA||`TRUE`|4|Redmond|`FALSE`| +|OR||`TRUE`|3|Portland|`FALSE`| +||A|`FALSE`|5||`FALSE`| +||B|`FALSE`|3||`TRUE`| +||C|`FALSE`|3||`TRUE`| +|||`TRUE`|11||`TRUE`| ## Contextual SummarizeColumns ## ### Background @@ -328,7 +328,7 @@ This issue was known and has been addressed by the update. After the update, suc ### Disallow mixed Keepfilters/overriddefilters on same table/cluster ### The recent update has introduced a temporary restriction that triggers an error message stating: -``` +``` "SummarizeColumns filters with keepfilters behavior and overridefilters behavior are mixed within one cluster, which is not allowed. Consider adding keepfilters() to all filters of summarizecolumns." ``` This error occurs when both normal filters (which override existing filters) and filters with KeepFilters specified are present within the same table/cluster. For example: diff --git a/query-languages/dax/sumx-function-dax.md b/query-languages/dax/sumx-function-dax.md index cd92d25b9..59bcd0cca 100644 --- a/query-languages/dax/sumx-function-dax.md +++ b/query-languages/dax/sumx-function-dax.md @@ -6,48 +6,48 @@ title: "SUMX function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the sum of an expression evaluated for each row in a table. - -## Syntax - +Returns the sum of an expression evaluated for each row in a table. + +## Syntax + ```dax -SUMX(
, ) +SUMX(
, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|The table containing the rows for which the expression will be evaluated.| -|`expression`|The expression to be evaluated for each row of the table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|The table containing the rows for which the expression will be evaluated.| +|`expression`|The expression to be evaluated for each row of the table.| + ## Return value -A decimal number. - +A decimal number. + ## Remarks -- The SUMX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers you want to sum, or an expression that evaluates to a column. +- The SUMX function takes as its first argument a table, or an expression that returns a table. The second argument is a column that contains the numbers you want to sum, or an expression that evaluates to a column. - The SUMX is an [iterator function](dax-glossary.md#iterator-function). - -- Only the numbers in the column are counted. Blanks, logical values, and text are ignored. - -- For more complex examples of SUMX in formulas, see [ALL](all-function-dax.md) and [CALCULATETABLE](calculatetable-function-dax.md). + +- Only the numbers in the column are counted. Blanks, logical values, and text are ignored. + +- For more complex examples of SUMX in formulas, see [ALL](all-function-dax.md) and [CALCULATETABLE](calculatetable-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following example first filters the table, InternetSales, on the expression, 'InternetSales[SalesTerritoryID] = 5`, and then returns the sum of all values in the Freight column. In other words, the expression returns the sum of freight charges for only the specified sales area. - +The following example first filters the table, InternetSales, on the expression, 'InternetSales[SalesTerritoryID] = 5`, and then returns the sum of all values in the Freight column. In other words, the expression returns the sum of freight charges for only the specified sales area. + ```dax -= SUMX(FILTER(InternetSales, InternetSales[SalesTerritoryID]=5),[Freight]) += SUMX(FILTER(InternetSales, InternetSales[SalesTerritoryID]=5),[Freight]) ``` -If you do not need to filter the column, use the SUM function. The SUM function is similar to the Excel function of the same name, except that it takes a column as a reference. - +If you do not need to filter the column, use the SUM function. The SUM function is similar to the Excel function of the same name, except that it takes a column as a reference. + ## Related content -[SUM](sum-function-dax.md) -[Statistical functions](statistical-functions-dax.md) +[SUM](sum-function-dax.md) +[Statistical functions](statistical-functions-dax.md) diff --git a/query-languages/dax/switch-function-dax.md b/query-languages/dax/switch-function-dax.md index f040fc721..30dab5b5d 100644 --- a/query-languages/dax/switch-function-dax.md +++ b/query-languages/dax/switch-function-dax.md @@ -6,19 +6,19 @@ title: "SWITCH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Evaluates an expression against a list of values and returns one of multiple possible result expressions. This function can be used to avoid having multiple nested [IF](if-function-dax.md) statements. - -## Syntax - +Evaluates an expression against a list of values and returns one of multiple possible result expressions. This function can be used to avoid having multiple nested [IF](if-function-dax.md) statements. + +## Syntax + ```dax -SWITCH(, , [, , ]…[, ]) +SWITCH(, , [, , ]…[, ]) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`expression` | Any DAX expression that returns a single scalar value where the expression is to be evaluated multiple times (for each row/context). | +### Parameters + +|Term|Definition| +|--------|--------------| +|`expression` | Any DAX expression that returns a single scalar value where the expression is to be evaluated multiple times (for each row/context). | |`value` | A constant value to be matched with the results of `expression`. | |`result` |Any scalar expression to be evaluated if the results of `expression` match the corresponding `value`. | |`else` |Any scalar expression to be evaluated if the result of `expression` doesn't match any of the `value` arguments. | @@ -26,13 +26,13 @@ SWITCH(, , [, , ]…[, ]) ## Return value If there’s a match with a `value`, a scalar value from the corresponding `result` is returned. If there isn’t a match with a `value`, a value from `else` is returned. If none of the `values` match and `else` isn’t specified, BLANK is returned. - + ## Remarks - The `expression` to be evaluated can be a constant value or an expression. A common use of this function is to set the first parameter to `TRUE`. See examples below. - All `result` expressions and the `else` expression must be of the same data type. - The order of conditions matters. As soon as one `value` matches, the corresponding `result` is returned, and other subsequent `values` aren’t evaluated. Make sure the most restrictive `values` to be evaluated are specified before less restrictive `values`. See examples below. - + ## Examples A common use of SWITCH is to compare `expression` with constant `values`. The following example creates a calculated column of month names: @@ -69,7 +69,6 @@ Another common use of SWITCH is to replace multiple nested IF statements. This i "Unknown" ) - ``` The order of `values` matters. In the following example, the second `result` is never returned because the first value is less restrictive than the second. The result in this example is always `A` or `C`, but never `B`. diff --git a/query-languages/dax/syd-function-dax.md b/query-languages/dax/syd-function-dax.md index d31e347fa..a9104d295 100644 --- a/query-languages/dax/syd-function-dax.md +++ b/query-languages/dax/syd-function-dax.md @@ -18,8 +18,8 @@ SYD(, , , ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`cost`|The initial cost of the asset.| |`salvage`|The value at the end of the depreciation (sometimes called the salvage value of the asset).| |`life`|The number of periods over which the asset is depreciated (sometimes called the useful life of the asset).| diff --git a/query-languages/dax/t-dist-2t-function-dax.md b/query-languages/dax/t-dist-2t-function-dax.md index 1cda4ac28..7c52d9c34 100644 --- a/query-languages/dax/t-dist-2t-function-dax.md +++ b/query-languages/dax/t-dist-2t-function-dax.md @@ -7,20 +7,20 @@ title: "T.DIST.2T function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the two-tailed Student's t-distribution. - -## Syntax - + +## Syntax + ```dax T.DIST.2T(X,Deg_freedom) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`X`|The numeric value at which to evaluate the distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`X`|The numeric value at which to evaluate the distribution.| |`Deg_freedom` |An integer indicating the number of degrees of freedom.| - + ## Return value The two-tailed Student's t-distribution. @@ -29,8 +29,8 @@ The two-tailed Student's t-distribution. [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + ```dax EVALUATE { T.DIST.2T(1.959999998, 60) } ``` @@ -41,10 +41,10 @@ Returns |---------| |0.054644929975921 | -## Related content +## Related content + +[T.DIST](t-dist-function-dax.md) +[T.DIST.RT](t-dist-rt-function-dax.md) +[T.INV](t-inv-function-dax.md) +[T.INV.2t](t-inv-2t-function-dax.md) -[T.DIST](t-dist-function-dax.md) -[T.DIST.RT](t-dist-rt-function-dax.md) -[T.INV](t-inv-function-dax.md) -[T.INV.2t](t-inv-2t-function-dax.md) - diff --git a/query-languages/dax/t-dist-function-dax.md b/query-languages/dax/t-dist-function-dax.md index 0775f773d..4bd84fad2 100644 --- a/query-languages/dax/t-dist-function-dax.md +++ b/query-languages/dax/t-dist-function-dax.md @@ -7,21 +7,21 @@ title: "T.DIST function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the Student's left-tailed t-distribution. - -## Syntax - + +## Syntax + ```dax T.DIST(X,Deg_freedom,Cumulative) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`X`|The numeric value at which to evaluate the distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`X`|The numeric value at which to evaluate the distribution.| |`Deg_freedom` |An integer indicating the number of degrees of freedom.| |`Cumulative`|A logical value that determines the form of the function. If cumulative is `TRUE`, T.DIST returns the cumulative distribution function; if `FALSE`, it returns the probability density function.| - + ## Return value The Student's left-tailed t-distribution. @@ -30,8 +30,8 @@ The Student's left-tailed t-distribution. [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + ```dax EVALUATE { T.DIST(60, 1, TRUE) } ``` @@ -42,10 +42,10 @@ Returns, |---------| |0.994695326367377 | -## Related content +## Related content + +[T.DIST.2T](t-dist-2t-function-dax.md) +[T.DIST.RT](t-dist-rt-function-dax.md) +[T.INV](t-inv-function-dax.md) +[T.INV.2t](t-inv-2t-function-dax.md) -[T.DIST.2T](t-dist-2t-function-dax.md) -[T.DIST.RT](t-dist-rt-function-dax.md) -[T.INV](t-inv-function-dax.md) -[T.INV.2t](t-inv-2t-function-dax.md) - diff --git a/query-languages/dax/t-dist-rt-function-dax.md b/query-languages/dax/t-dist-rt-function-dax.md index 4f94b3f1a..1ec325a21 100644 --- a/query-languages/dax/t-dist-rt-function-dax.md +++ b/query-languages/dax/t-dist-rt-function-dax.md @@ -8,19 +8,19 @@ title: "T.DIST.RT function (DAX)" Returns the right-tailed Student's t-distribution. -## Syntax - +## Syntax + ```dax T.DIST.RT(X,Deg_freedom) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`X`|The numeric value at which to evaluate the distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`X`|The numeric value at which to evaluate the distribution.| |`Deg_freedom` |An integer indicating the number of degrees of freedom.| - + ## Return value The right-tailed Student's t-distribution. @@ -29,8 +29,8 @@ The right-tailed Student's t-distribution. [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + ```dax EVALUATE { T.DIST.RT(1.959999998, 60) } ``` @@ -41,9 +41,9 @@ Returns |---------| |0.0273224649879605 | -## Related content +## Related content -[T.DIST](t-dist-function-dax.md) -[T.DIST.2T](t-dist-2t-function-dax.md) -[T.INV](t-inv-function-dax.md) -[T.INV.2t](t-inv-2t-function-dax.md) +[T.DIST](t-dist-function-dax.md) +[T.DIST.2T](t-dist-2t-function-dax.md) +[T.INV](t-inv-function-dax.md) +[T.INV.2t](t-inv-2t-function-dax.md) diff --git a/query-languages/dax/t-inv-2t-function-dax.md b/query-languages/dax/t-inv-2t-function-dax.md index 458ef9e4a..56ef07956 100644 --- a/query-languages/dax/t-inv-2t-function-dax.md +++ b/query-languages/dax/t-inv-2t-function-dax.md @@ -8,19 +8,19 @@ title: "T.INV.2T function (DAX)" Returns the two-tailed inverse of the Student's t-distribution. -## Syntax - +## Syntax + ```dax T.INV.2T(Probability,Deg_freedom) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Probability`|The probability associated with the Student's t-distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Probability`|The probability associated with the Student's t-distribution.| |`Deg_freedom`|The number of degrees of freedom with which to characterize the distribution.| - + ## Return value The two-tailed inverse of the Student's t-distribution. @@ -29,8 +29,8 @@ The two-tailed inverse of the Student's t-distribution. [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + ```dax EVALUATE { T.INV.2T(0.546449, 60) } ``` @@ -41,9 +41,9 @@ Returns |---------| |0.606533075825759 | -## Related content +## Related content -[T.INV](t-inv-function-dax.md) -[T.DIST](t-dist-function-dax.md) -[T.DIST.2T](t-dist-2t-function-dax.md) -[T.DIST.RT](t-dist-rt-function-dax.md) +[T.INV](t-inv-function-dax.md) +[T.DIST](t-dist-function-dax.md) +[T.DIST.2T](t-dist-2t-function-dax.md) +[T.DIST.RT](t-dist-rt-function-dax.md) diff --git a/query-languages/dax/t-inv-function-dax.md b/query-languages/dax/t-inv-function-dax.md index f7808f6aa..327107f02 100644 --- a/query-languages/dax/t-inv-function-dax.md +++ b/query-languages/dax/t-inv-function-dax.md @@ -8,19 +8,19 @@ title: "T.INV function (DAX)" Returns the left-tailed inverse of the Student's t-distribution. -## Syntax - +## Syntax + ```dax T.INV(Probability,Deg_freedom) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Probability`|The probability associated with the Student's t-distribution.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Probability`|The probability associated with the Student's t-distribution.| |`Deg_freedom`|The number of degrees of freedom with which to characterize the distribution.| - + ## Return value The left-tailed inverse of the Student's t-distribution. @@ -29,8 +29,8 @@ The left-tailed inverse of the Student's t-distribution. [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - +## Example + ```dax EVALUATE { T.INV(0.75, 2) } ``` @@ -41,9 +41,9 @@ Returns |---------| |0.816496580927726 | -## Related content +## Related content -[T.INV.2T](t-inv-2t-function-dax.md) -[T.DIST](t-dist-function-dax.md) -[T.DIST.2T](t-dist-2t-function-dax.md) -[T.DIST.RT](t-dist-rt-function-dax.md) +[T.INV.2T](t-inv-2t-function-dax.md) +[T.DIST](t-dist-function-dax.md) +[T.DIST.2T](t-dist-2t-function-dax.md) +[T.DIST.RT](t-dist-rt-function-dax.md) diff --git a/query-languages/dax/table-constructor.md b/query-languages/dax/table-constructor.md index 17f9432a3..bf1ea34f2 100644 --- a/query-languages/dax/table-constructor.md +++ b/query-languages/dax/table-constructor.md @@ -5,24 +5,24 @@ title: "Table constructor" # Table constructor Returns a table of one or more columns. - -## Syntax - + +## Syntax + ```dax { , , … } { ( , , … ), ( , , … ), … } ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`scalarExprN`|Any DAX expression that returns a scalar value.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`scalarExprN`|Any DAX expression that returns a scalar value.| + ## Return value A table of one or more columns. When there is only one column, the name of the column is Value. When there are N columns where N > 1, the names of the columns from left to right are Value1, Value2, …, ValueN. - + ## Remarks - The first syntax returns a table of a single column. The second syntax returns a table of one or more columns. @@ -68,7 +68,7 @@ EVALUATE Returns, -[Value1] |[Value2] |[Value3] |[Value4] +[Value1] |[Value2] |[Value3] |[Value4] ---------|---------|---------|--------- 1.5 | 1/1/2017 | 199.99 | A 2.5 | 1/2/2017 | 249.99 | B diff --git a/query-languages/dax/tan-function-dax.md b/query-languages/dax/tan-function-dax.md index 47bc82d03..859b459cd 100644 --- a/query-languages/dax/tan-function-dax.md +++ b/query-languages/dax/tan-function-dax.md @@ -6,32 +6,32 @@ title: "TAN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the tangent of the given angle. - -## Syntax - +Returns the tangent of the given angle. + +## Syntax + ```dax -TAN(number) +TAN(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Required. The angle in radians for which you want the tangent.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Required. The angle in radians for which you want the tangent.| + ## Return value -Returns the tangent of the given angle. - +Returns the tangent of the given angle. + ## Remarks -If your argument is in degrees, multiply it by PI()/180 or use the RADIANS function to convert it to radians. - -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= TAN(0.785)`|Tangent of 0.785 radians (0.99920)|0.99920| -|`= TAN(45*PI()/180)`|Tangent of 45 degrees (1)|1| -|`= TAN(RADIANS(45))`|Tangent of 45 degrees (1)|1| +If your argument is in degrees, multiply it by PI()/180 or use the RADIANS function to convert it to radians. + +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= TAN(0.785)`|Tangent of 0.785 radians (0.99920)|0.99920| +|`= TAN(45*PI()/180)`|Tangent of 45 degrees (1)|1| +|`= TAN(RADIANS(45))`|Tangent of 45 degrees (1)|1| diff --git a/query-languages/dax/tanh-function-dax.md b/query-languages/dax/tanh-function-dax.md index 36768b1df..07c69cb30 100644 --- a/query-languages/dax/tanh-function-dax.md +++ b/query-languages/dax/tanh-function-dax.md @@ -6,36 +6,36 @@ title: "TANH function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the hyperbolic tangent of a number. - -## Syntax - +Returns the hyperbolic tangent of a number. + +## Syntax + ```dax -TANH(number) +TANH(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|Required. Any real number.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|Required. Any real number.| + ## Return value -Returns the hyperbolic tangent of a number. - +Returns the hyperbolic tangent of a number. + ## Remarks -- The formula for the hyperbolic tangent is: +- The formula for the hyperbolic tangent is: $$\text{TANH}(z) = \frac{\text{SINH}(z)}{\text{COSH}(z)}$$ - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] -## Example - -|Formula|Description|Result| -|-----------|---------------|----------| -|`= TANH(-2)`|Hyperbolic tangent of -2 (-0.96403)|-0.964028| -|`= TANH(0)`|Hyperbolic tangent of 0 (0)|0| -|`= TANH(0.5)`|Hyperbolic tangent of 0.5 (0.462117)|0.462117| +## Example + +|Formula|Description|Result| +|-----------|---------------|----------| +|`= TANH(-2)`|Hyperbolic tangent of -2 (-0.96403)|-0.964028| +|`= TANH(0)`|Hyperbolic tangent of 0 (0)|0| +|`= TANH(0.5)`|Hyperbolic tangent of 0.5 (0.462117)|0.462117| diff --git a/query-languages/dax/tbilleq-function-dax.md b/query-languages/dax/tbilleq-function-dax.md index d35392cb5..261445649 100644 --- a/query-languages/dax/tbilleq-function-dax.md +++ b/query-languages/dax/tbilleq-function-dax.md @@ -18,8 +18,8 @@ TBILLEQ(, , ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The Treasury bill's settlement date. The security settlement date is the date after the issue date when the Treasury bill is traded to the buyer.| |`maturity`|The Treasury bill's maturity date. The maturity date is the date when the Treasury bill expires.| |`discount`|The Treasury bill's discount rate.| diff --git a/query-languages/dax/tbillprice-function-dax.md b/query-languages/dax/tbillprice-function-dax.md index d688f7a66..bd6c40759 100644 --- a/query-languages/dax/tbillprice-function-dax.md +++ b/query-languages/dax/tbillprice-function-dax.md @@ -18,8 +18,8 @@ TBILLPRICE(, , ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The Treasury bill's settlement date. The security settlement date is the date after the issue date when the Treasury bill is traded to the buyer.| |`maturity`|The Treasury bill's maturity date. The maturity date is the date when the Treasury bill expires.| |`discount`|The Treasury bill's discount rate.| diff --git a/query-languages/dax/tbillyield-function-dax.md b/query-languages/dax/tbillyield-function-dax.md index af7dcc61a..33db934f3 100644 --- a/query-languages/dax/tbillyield-function-dax.md +++ b/query-languages/dax/tbillyield-function-dax.md @@ -18,8 +18,8 @@ TBILLYIELD(, , ) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The Treasury bill's settlement date. The security settlement date is the date after the issue date when the Treasury bill is traded to the buyer.| |`maturity`|The Treasury bill's maturity date. The maturity date is the date when the Treasury bill expires.| |`pr`|The Treasury bill's price per \\$100 face value.| diff --git a/query-languages/dax/text-functions-dax.md b/query-languages/dax/text-functions-dax.md index c33b315b1..27b5214cc 100644 --- a/query-languages/dax/text-functions-dax.md +++ b/query-languages/dax/text-functions-dax.md @@ -4,8 +4,8 @@ title: "Text functions (DAX)" --- # Text functions -Data Analysis Expressions (DAX) includes a set of text functions based on the library of string functions in Excel, but which have been modified to work with tables and columns in tabular models. This section describes text functions available in the DAX language. - +Data Analysis Expressions (DAX) includes a set of text functions based on the library of string functions in Excel, but which have been modified to work with tables and columns in tabular models. This section describes text functions available in the DAX language. + ## In this category |Function |Description | diff --git a/query-languages/dax/time-function-dax.md b/query-languages/dax/time-function-dax.md index ae4faee5c..1571d1258 100644 --- a/query-languages/dax/time-function-dax.md +++ b/query-languages/dax/time-function-dax.md @@ -6,71 +6,71 @@ title: "TIME function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Converts hours, minutes, and seconds given as numbers to a time in `datetime` format. - -## Syntax - +Converts hours, minutes, and seconds given as numbers to a time in `datetime` format. + +## Syntax + ```dax -TIME(hour, minute, second) +TIME(hour, minute, second) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`hour`|**Import mode:** A number from 0 to 32767 representing the hour.
Any value greater than 23 will be divided by 24 and the remainder will be treated as the hour value, represented as a fraction of a day.
For example, TIME(27,0,0) = TIME(3,0,0) = 3:00:00 AM

**DirectQuery mode:** A number from 0 to 23 representing the hour.| -|`minute`|**Import mode:** A number from 0 to 32767 representing the minute.
Any value greater than 59 minutes will be converted to hours and minutes.
Any value greater than 1440 (24 hours) does not alter the date portion - instead, it will be divided by 1440 and the remainder will be treated as the minute value, represented as a fraction of a day.
For example, TIME(0,2190,0) = TIME(0,750,0) = TIME(12,30,0) = 12:30:00 PM

**DirectQuery mode:** A number from 0 to 59 representing the minute.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`hour`|**Import mode:** A number from 0 to 32767 representing the hour.
Any value greater than 23 will be divided by 24 and the remainder will be treated as the hour value, represented as a fraction of a day.
For example, TIME(27,0,0) = TIME(3,0,0) = 3:00:00 AM

**DirectQuery mode:** A number from 0 to 23 representing the hour.| +|`minute`|**Import mode:** A number from 0 to 32767 representing the minute.
Any value greater than 59 minutes will be converted to hours and minutes.
Any value greater than 1440 (24 hours) does not alter the date portion - instead, it will be divided by 1440 and the remainder will be treated as the minute value, represented as a fraction of a day.
For example, TIME(0,2190,0) = TIME(0,750,0) = TIME(12,30,0) = 12:30:00 PM

**DirectQuery mode:** A number from 0 to 59 representing the minute.| |`second`|**Import mode:** A number from 0 to 32767 representing the second.
Any value greater than 59 will be converted to hours, minutes, and seconds.
For example, TIME(0,0,2000) = TIME(0,33,20) = 12:33:20 AM

**DirectQuery mode:** A number from 0 to 59 representing the second.| - + ## Return value A time (`datetime`) ranging from 00:00:00 (12:00:00 AM) to 23:59:59 (11:59:59 PM). - + ## Remarks -- In contrast to Microsoft Excel, which stores dates and times as serial numbers, DAX works with date and time values in a `datetime` format. Numbers in other formats are implicitly converted when you use a date/time value in a DAX function. If you need to use serial numbers, you can use formatting to change the way that the numbers are displayed. - -- Time values are a portion of a date value, and in the serial number system are represented by a decimal number. Therefore, the `datetime` value 12:00 PM is equivalent to 0.5, because it is half of a day. - +- In contrast to Microsoft Excel, which stores dates and times as serial numbers, DAX works with date and time values in a `datetime` format. Numbers in other formats are implicitly converted when you use a date/time value in a DAX function. If you need to use serial numbers, you can use formatting to change the way that the numbers are displayed. + +- Time values are a portion of a date value, and in the serial number system are represented by a decimal number. Therefore, the `datetime` value 12:00 PM is equivalent to 0.5, because it is half of a day. + - You can supply the arguments to the TIME function as values that you type directly, as the result of another expression, or by a reference to a column that contains a numeric value. - Date and datetime can also be specified as a literal in the format `dt"YYYY-MM-DD"`, `dt"YYYY-MM-DDThh:mm:ss"`, or `dt"YYYY-MM-DD hh:mm:ss"`. When specified as a literal, using the TIME function in the expression is not necessary. To learn more, see [DAX Syntax | Date and time](dax-syntax-reference.md#date-and-time). - + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example 1 -The following examples both return the time, 3:00 AM: - +The following examples both return the time, 3:00 AM: + ```dax = TIME(27,0,0) ``` ```dax -= TIME(3,0,0) += TIME(3,0,0) ``` - + ## Example 2 -The following examples both return the time, 12:30 PM: - +The following examples both return the time, 12:30 PM: + ```dax = TIME(0,750,0) ``` ```dax -= TIME(12,30,0) += TIME(12,30,0) ``` - + ## Example 3 -The following example creates a time based on the values in the columns, `intHours`, `intMinutes`, `intSeconds`: - +The following example creates a time based on the values in the columns, `intHours`, `intMinutes`, `intSeconds`: + ```dax -= TIME([intHours],[intMinutes],[intSeconds]) += TIME([intHours],[intMinutes],[intSeconds]) ``` - + ## Related content -[DATE](date-function-dax.md) -[Date and time functions](date-and-time-functions-dax.md) +[DATE](date-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/time-intelligence-functions-dax.md b/query-languages/dax/time-intelligence-functions-dax.md index 330525ae8..e1114458b 100644 --- a/query-languages/dax/time-intelligence-functions-dax.md +++ b/query-languages/dax/time-intelligence-functions-dax.md @@ -5,7 +5,7 @@ title: "Time intelligence functions (DAX)" # Time intelligence functions Data Analysis Expressions (DAX) includes time-intelligence functions that enable you to manipulate data using time periods, including days, months, quarters, and years, and then build and compare calculations over those periods. Before using any time-intelligence functions, make sure to mark one of the tables containing date column as Date Table. - + ## In this category |Function |Description | diff --git a/query-languages/dax/timevalue-function-dax.md b/query-languages/dax/timevalue-function-dax.md index f4ded61e5..9972a25f9 100644 --- a/query-languages/dax/timevalue-function-dax.md +++ b/query-languages/dax/timevalue-function-dax.md @@ -6,38 +6,38 @@ title: "TIMEVALUE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Converts a time in text format to a time in datetime format. - -## Syntax - +Converts a time in text format to a time in datetime format. + +## Syntax + ```dax -TIMEVALUE(time_text) +TIMEVALUE(time_text) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`time_text`|A text string that that represents a certain time of the day. Any date information included in the `time_text` argument is ignored.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`time_text`|A text string that that represents a certain time of the day. Any date information included in the `time_text` argument is ignored.| + ## Return value -A date (`datetime`). - +A date (`datetime`). + ## Remarks -- Time values are a portion of a date value and represented by a decimal number. For example, 12:00 PM is represented as 0.5 because it is half of a day. - -- When the `time_text` argument is a text representation of the date and time, the function uses the locale and date/time settings of the model to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator, and any input text using colons as time separators will parse correctly. Review your locale settings to understand your results. +- Time values are a portion of a date value and represented by a decimal number. For example, 12:00 PM is represented as 0.5 because it is half of a day. + +- When the `time_text` argument is a text representation of the date and time, the function uses the locale and date/time settings of the model to understand the text value in order to perform the conversion. Most locales use the colon (:) as the time separator, and any input text using colons as time separators will parse correctly. Review your locale settings to understand your results. - Date and datetime can also be specified as a literal in the format `dt"YYYY-MM-DD"`, `dt"YYYY-MM-DDThh:mm:ss"`, or `dt"YYYY-MM-DD hh:mm:ss"`. When specified as a literal, using the TIMEVALUE function in the expression is not necessary. To learn more, see [DAX Syntax | Date and time](dax-syntax-reference.md#date-and-time). - -## Example - + +## Example + ```dax -= TIMEVALUE("20:45:30") += TIMEVALUE("20:45:30") ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 97bdfffb6..861f58812 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -169,7 +169,7 @@ items: - name: FIRSTNONBLANK href: firstnonblank-function-dax.md - name: FIRSTNONBLANKVALUE - href: firstnonblankvalue-function-dax.md + href: firstnonblankvalue-function-dax.md - name: INDEX href: index-function-dax.md - name: KEEPFILTERS @@ -177,7 +177,7 @@ items: - name: LASTNONBLANK href: lastnonblank-function-dax.md - name: LASTNONBLANKVALUE - href: lastnonblankvalue-function-dax.md + href: lastnonblankvalue-function-dax.md - name: LOOKUPVALUE href: lookupvalue-function-dax.md - name: MATCHBY diff --git a/query-languages/dax/tocsv-function-dax.md b/query-languages/dax/tocsv-function-dax.md index 4716bf370..88e08fb67 100644 --- a/query-languages/dax/tocsv-function-dax.md +++ b/query-languages/dax/tocsv-function-dax.md @@ -7,26 +7,26 @@ title: "TOCSV function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns a table as a string in CSV format. - -## Syntax - + +## Syntax + ```dax TOCSV(
, [MaxRows], [Delimiter], [IncludeHeaders]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Table`|The table to be converted to CSV.| -|`MaxRows`| (Optional) The maximum number fo rows to convert. Default is 10 rows.| -|`Delimiter`|(Optional) A column delimiter. Default is comma ",".| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Table`|The table to be converted to CSV.| +|`MaxRows`| (Optional) The maximum number fo rows to convert. Default is 10 rows.| +|`Delimiter`|(Optional) A column delimiter. Default is comma ",".| |`IncludeHeaders`|(Optional) Specifies a header with column name as the first row. Default is True.| - + ## Return value A string with CSV representation of the table. - + ## Example The following DAX query: @@ -55,5 +55,5 @@ Returns: ## Related content -[TOJSON](tojson-function-dax.md) -[EVALUATEANDLOG](evaluateandlog-function-dax.md) +[TOJSON](tojson-function-dax.md) +[EVALUATEANDLOG](evaluateandlog-function-dax.md) diff --git a/query-languages/dax/today-function-dax.md b/query-languages/dax/today-function-dax.md index 1ff4a4f19..04a402474 100644 --- a/query-languages/dax/today-function-dax.md +++ b/query-languages/dax/today-function-dax.md @@ -6,37 +6,37 @@ title: "TODAY function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the current date. - -## Syntax - +Returns the current date. + +## Syntax + ```dax -TODAY() +TODAY() ``` ## Return value -A date (`datetime`). - +A date (`datetime`). + ## Remarks -- The TODAY function is useful when you need to have the current date displayed on a worksheet, regardless of when you open the workbook. It is also useful for calculating intervals. - -- If the TODAY function does not update the date when you expect it to, you might need to change the settings that control when the column or workbook is refreshed.. - -- The NOW function is similar but returns the exact time, whereas TODAY returns the time value 12:00:00 PM for all dates. - +- The TODAY function is useful when you need to have the current date displayed on a worksheet, regardless of when you open the workbook. It is also useful for calculating intervals. + +- If the TODAY function does not update the date when you expect it to, you might need to change the settings that control when the column or workbook is refreshed.. + +- The NOW function is similar but returns the exact time, whereas TODAY returns the time value 12:00:00 PM for all dates. + ## Example -If you know that someone was born in 1963, you might use the following formula to find that person's age as of this year's birthday: - +If you know that someone was born in 1963, you might use the following formula to find that person's age as of this year's birthday: + ```dax -= YEAR(TODAY())-1963 += YEAR(TODAY())-1963 ``` -This formula uses the TODAY function as an argument for the YEAR function to obtain the current year, and then subtracts 1963, returning the person's age. - +This formula uses the TODAY function as an argument for the YEAR function to obtain the current year, and then subtracts 1963, returning the person's age. + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[NOW](now-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[NOW](now-function-dax.md) diff --git a/query-languages/dax/tojson-function-dax.md b/query-languages/dax/tojson-function-dax.md index 881028d33..ff54b4826 100644 --- a/query-languages/dax/tojson-function-dax.md +++ b/query-languages/dax/tojson-function-dax.md @@ -8,23 +8,23 @@ title: "TOJSON function (DAX)" Returns a table as a string using JSON format. -## Syntax - +## Syntax + ```dax TOJSON(
, [MaxRows]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Table`|The table to be converted to JSON.| -|`MaxRows`|(Optional) The maximum number fo rows to convert. Default is 10 rows.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Table`|The table to be converted to JSON.| +|`MaxRows`|(Optional) The maximum number fo rows to convert. Default is 10 rows.| + ## Return value A string with JSON representation of the table. The representation contains column names as "header", count-of-rows as "rowCount", and values as "data". - + ## Example The following DAX query: @@ -57,5 +57,5 @@ Returns: ## Related content -[TOCSV](tocsv-function-dax.md) -[EVALUATEANDLOG](evaluateandlog-function-dax.md) +[TOCSV](tocsv-function-dax.md) +[EVALUATEANDLOG](evaluateandlog-function-dax.md) diff --git a/query-languages/dax/topn-function-dax.md b/query-languages/dax/topn-function-dax.md index 550c24fd2..4b0ffcda8 100644 --- a/query-languages/dax/topn-function-dax.md +++ b/query-languages/dax/topn-function-dax.md @@ -6,41 +6,41 @@ title: "TOPN function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the top N rows of the specified table. - -## Syntax - +Returns the top N rows of the specified table. + +## Syntax + ```dax -TOPN(,
, , [[, , []]…]) +TOPN(,
, , [[, , []]…]) ``` - + ### Parameters -|Parameter|Definition| -|-------------|--------------| -|`N_Value`|The number of rows to return. Any DAX expression that returns a scalar value, where the expression is to be evaluated multiple times (for each row/context). See Remarks to better understand when the number of rows returned could be larger than `n_value`. | -|`Table`|Any DAX expression that returns a table of data from where to extract the top 'n' rows. See Remarks to better understand when an empty table is returned. | +|Parameter|Definition| +|-------------|--------------| +|`N_Value`|The number of rows to return. Any DAX expression that returns a scalar value, where the expression is to be evaluated multiple times (for each row/context). See Remarks to better understand when the number of rows returned could be larger than `n_value`. | +|`Table`|Any DAX expression that returns a table of data from where to extract the top 'n' rows. See Remarks to better understand when an empty table is returned. | |`OrderBy_Expression`|(Optional) Any DAX expression where the result value is used to sort the table and evaluated for each row of `table`. | |`Order`|(Optional) A value that specifies how to sort `OrderBy_Expression` values:

- `0` (zero) or `FALSE`. Sorts in descending order of values of `Order`. Default when `Order` parameter is omitted.

- `1` or `TRUE`. Ranks in ascending order of `OrderBy`.| - + ## Return value -A table with the top N rows of `Table` or an empty table if `N_Value` is 0 (zero) or less. Rows are not sorted in any particular order. - -## Remarks - -- If there is a tie, in `Order_By` values, at the N-th row of the table, then all tied rows are returned. Then, when there are ties at the N-th row the function might return more than n rows. - -- If N_Value is 0 (zero) or less, TOPN returns an empty table. - -- TOPN does not guarantee any sort order for the results. +A table with the top N rows of `Table` or an empty table if `N_Value` is 0 (zero) or less. Rows are not sorted in any particular order. + +## Remarks + +- If there is a tie, in `Order_By` values, at the N-th row of the table, then all tied rows are returned. Then, when there are ties at the N-th row the function might return more than n rows. + +- If N_Value is 0 (zero) or less, TOPN returns an empty table. + +- TOPN does not guarantee any sort order for the results. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following measure formula returns the top 10 sold products by sales amount. - +The following measure formula returns the top 10 sold products by sales amount. + ```dax = SUMX( TOPN( diff --git a/query-languages/dax/totalmtd-function-dax.md b/query-languages/dax/totalmtd-function-dax.md index 24179a344..1eb0531dd 100644 --- a/query-languages/dax/totalmtd-function-dax.md +++ b/query-languages/dax/totalmtd-function-dax.md @@ -6,50 +6,50 @@ title: "TOTALMTD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the value of the `expression` for the month to date, in the current context. - -## Syntax - +Evaluates the value of the `expression` for the month to date, in the current context. + +## Syntax + ```dax -TOTALMTD(,[,]) +TOTALMTD(,[,]) ``` - -### Parameters - -|Parameter|Definition| -|-------------|--------------| -|`expression`|An expression that returns a scalar value.| -|`dates`|A column that contains dates.| -|`filter`|(optional) An expression that specifies a filter to apply to the current context.| - + +### Parameters + +|Parameter|Definition| +|-------------|--------------| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| + ## Return value -A scalar value that represents the `expression` evaluated for the dates in the current month-to-date, given the dates in `dates`. - +A scalar value that represents the `expression` evaluated for the dates in the current month-to-date, given the dates in `dates`. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + +- The `filter` expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - -- The `filter` expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). - - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example The following sample formula creates a measure that calculates the 'month running total' or 'month running sum' for Internet sales. ```dax -= TOTALMTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey]) += TOTALMTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey]) ``` - + ## Related content -[ALL](all-function-dax.md) -[CALCULATE](calculate-function-dax.md) -[TOTALYTD](totalytd-function-dax.md) -[TOTALQTD](totalqtd-function-dax.md) +[ALL](all-function-dax.md) +[CALCULATE](calculate-function-dax.md) +[TOTALYTD](totalytd-function-dax.md) +[TOTALQTD](totalqtd-function-dax.md) diff --git a/query-languages/dax/totalqtd-function-dax.md b/query-languages/dax/totalqtd-function-dax.md index b310ee2d2..345be3208 100644 --- a/query-languages/dax/totalqtd-function-dax.md +++ b/query-languages/dax/totalqtd-function-dax.md @@ -6,50 +6,50 @@ title: "TOTALQTD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the value of the `expression` for the dates in the quarter to date, in the current context. - -## Syntax - +Evaluates the value of the `expression` for the dates in the quarter to date, in the current context. + +## Syntax + ```dax -TOTALQTD(,[,]) +TOTALQTD(,[,]) ``` - -### Parameters - -|Parameter|Definition| -|-------------|--------------| -|`expression`|An expression that returns a scalar value.| -|`dates`|A column that contains dates.| -|`filter`|(optional) An expression that specifies a filter to apply to the current context.| - + +### Parameters + +|Parameter|Definition| +|-------------|--------------| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| + ## Return value -A scalar value that represents the `expression` evaluated for all dates in the current quarter to date, given the dates in `dates`. - +A scalar value that represents the `expression` evaluated for all dates in the current quarter to date, given the dates in `dates`. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. - - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - -- The `filter` expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). +- The `dates` argument can be any of the following: + - A reference to a date/time column. + - A table expression that returns a single column of date/time values. + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + +- The `filter` expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'quarter running total' or 'quarter running sum' for Internet sales. - +The following sample formula creates a measure that calculates the 'quarter running total' or 'quarter running sum' for Internet sales. + ```dax -= TOTALQTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey]) += TOTALQTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey]) ``` - + ## Related content -[ALL](all-function-dax.md) -[CALCULATE](calculate-function-dax.md) -[TOTALYTD](totalytd-function-dax.md) -[TOTALMTD](totalmtd-function-dax.md) +[ALL](all-function-dax.md) +[CALCULATE](calculate-function-dax.md) +[TOTALYTD](totalytd-function-dax.md) +[TOTALMTD](totalmtd-function-dax.md) diff --git a/query-languages/dax/totalytd-function-dax.md b/query-languages/dax/totalytd-function-dax.md index ba5358436..86065a1f9 100644 --- a/query-languages/dax/totalytd-function-dax.md +++ b/query-languages/dax/totalytd-function-dax.md @@ -6,60 +6,60 @@ title: "TOTALYTD function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] -Evaluates the year-to-date value of the `expression` in the current context. - -## Syntax - +Evaluates the year-to-date value of the `expression` in the current context. + +## Syntax + ```dax -TOTALYTD(,[,][,]) +TOTALYTD(,[,][,]) ``` - -### Parameters - -|Parameter|Definition| -|-------------|--------------| -|`expression`|An expression that returns a scalar value.| -|`dates`|A column that contains dates.| -|`filter`|(optional) An expression that specifies a filter to apply to the current context.| -|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| - + +### Parameters + +|Parameter|Definition| +|-------------|--------------| +|`expression`|An expression that returns a scalar value.| +|`dates`|A column that contains dates.| +|`filter`|(optional) An expression that specifies a filter to apply to the current context.| +|`year_end_date`|(optional) A literal string with a date that defines the year-end date. The default is December 31.| + ## Return value -A scalar value that represents the `expression` evaluated for the current year-to-date `dates`. - +A scalar value that represents the `expression` evaluated for the current year-to-date `dates`. + ## Remarks -- The `dates` argument can be any of the following: - - A reference to a date/time column. +- The `dates` argument can be any of the following: + - A reference to a date/time column. - A table expression that returns a single column of date/time values. - - A Boolean expression that defines a single-column table of date/time values. - -- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). - -- The `filter` expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). - -- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is not required and is ignored. For example, the following formula specifies a (fiscal) year_end_date of 6/30 in an EN-US locale workbook. - + - A Boolean expression that defines a single-column table of date/time values. + +- Constraints on Boolean expressions are described in the topic, [CALCULATE](calculate-function-dax.md). + +- The `filter` expression has restrictions described in the topic, [CALCULATE](calculate-function-dax.md). + +- The `year_end_date` parameter is a string literal of a date, in the same locale as the locale of the client where the workbook was created. The year portion of the date is not required and is ignored. For example, the following formula specifies a (fiscal) year_end_date of 6/30 in an EN-US locale workbook. + ```dax - = TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey], ALL('DateTime'), "6/30") + = TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey], ALL('DateTime'), "6/30") ``` - In this example, year_end_date can be specified as "6/30", "Jun 30", "30 June", or any string that resolves to a month/day. However, it is recommended you specify year_end_date using "month/day" (as shown) to ensure the string resolves to a date. - + In this example, year_end_date can be specified as "6/30", "Jun 30", "30 June", or any string that resolves to a month/day. However, it is recommended you specify year_end_date using "month/day" (as shown) to ensure the string resolves to a date. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following sample formula creates a measure that calculates the 'year running total' or 'year running sum' for Internet sales. - +The following sample formula creates a measure that calculates the 'year running total' or 'year running sum' for Internet sales. + ```dax -= TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey]) += TOTALYTD(SUM(InternetSales_USD[SalesAmount_USD]),DateTime[DateKey]) ``` - + ## Related content -[ALL](all-function-dax.md) -[CALCULATE](calculate-function-dax.md) -[DATESYTD](datesytd-function-dax.md) -[TOTALMTD](totalmtd-function-dax.md) -[TOTALQTD](totalqtd-function-dax.md) +[ALL](all-function-dax.md) +[CALCULATE](calculate-function-dax.md) +[DATESYTD](datesytd-function-dax.md) +[TOTALMTD](totalmtd-function-dax.md) +[TOTALQTD](totalqtd-function-dax.md) diff --git a/query-languages/dax/treatas-function-dax.md b/query-languages/dax/treatas-function-dax.md index 8181105f0..fc3ced051 100644 --- a/query-languages/dax/treatas-function-dax.md +++ b/query-languages/dax/treatas-function-dax.md @@ -7,24 +7,24 @@ title: "TREATAS function" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Applies the result of a table expression as filters to columns from an unrelated table. - -## Syntax - + +## Syntax + ```dax -TREATAS(table_expression, [, [, [,…]]]} ) +TREATAS(table_expression, [, [, [,…]]]} ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`table_expression`|An expression that results in a table.| -|`column`|One or more existing columns. It cannot be an expression. | +|`column`|One or more existing columns. It cannot be an expression. | -## Return value +## Return value A table that contains all the rows in column(s) that are also in table_expression. - + ## Remarks - The number of columns specified must match the number of columns in the table expression and be in the same order. @@ -51,6 +51,6 @@ CALCULATE( ## Related content -[INTERSECT](intersect-function-dax.md) -[FILTER](filter-function-dax.md) -[USERELATIONSHIP](userelationship-function-dax.md) +[INTERSECT](intersect-function-dax.md) +[FILTER](filter-function-dax.md) +[USERELATIONSHIP](userelationship-function-dax.md) diff --git a/query-languages/dax/trim-function-dax.md b/query-languages/dax/trim-function-dax.md index a6095fafc..bfb0ad347 100644 --- a/query-languages/dax/trim-function-dax.md +++ b/query-languages/dax/trim-function-dax.md @@ -6,46 +6,46 @@ title: "TRIM function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Removes all spaces from text except for single spaces between words. - -## Syntax - +Removes all spaces from text except for single spaces between words. + +## Syntax + ```dax -TRIM() +TRIM() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text from which you want spaces removed, or a column that contains text.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text from which you want spaces removed, or a column that contains text.| + ## Return value -The string with spaces removed. - +The string with spaces removed. + ## Remarks -- Use TRIM on text that you have received from another application that may have irregular spacing. - -- The TRIM function was originally designed to trim the 7-bit ASCII space character (value 32) from text. In the Unicode character set, there is an additional space character called the nonbreaking space character that has a decimal value of 160. This character is commonly used in Web pages as the HTML entity, &nbsp;. By itself, the TRIM function does not remove this nonbreaking space character. For an example of how to trim both space characters from text, see Remove spaces and nonprinting characters from text. - +- Use TRIM on text that you have received from another application that may have irregular spacing. + +- The TRIM function was originally designed to trim the 7-bit ASCII space character (value 32) from text. In the Unicode character set, there is an additional space character called the nonbreaking space character that has a decimal value of 160. This character is commonly used in Web pages as the HTML entity, &nbsp;. By itself, the TRIM function does not remove this nonbreaking space character. For an example of how to trim both space characters from text, see Remove spaces and nonprinting characters from text. + ## Example -The following formula creates a new string that does not have trailing white space. - +The following formula creates a new string that does not have trailing white space. + ```dax -= TRIM("A column with trailing spaces. ") += TRIM("A column with trailing spaces. ") ``` -When you create the formula, the formula is propagated through the row just as you typed it, so that you see the original string in each formula and the results are not apparent. However, when the formula is evaluated the string is trimmed. - -You can verify that the formula produces the correct result by checking the length of the calculated column created by the previous formula, as follows: - +When you create the formula, the formula is propagated through the row just as you typed it, so that you see the original string in each formula and the results are not apparent. However, when the formula is evaluated the string is trimmed. + +You can verify that the formula produces the correct result by checking the length of the calculated column created by the previous formula, as follows: + ```dax -= LEN([Calculated Column 1]) += LEN([Calculated Column 1]) ``` - + ## Related content -[Text functions](text-functions-dax.md) +[Text functions](text-functions-dax.md) diff --git a/query-languages/dax/true-function-dax.md b/query-languages/dax/true-function-dax.md index 4d744ee31..2670425e4 100644 --- a/query-languages/dax/true-function-dax.md +++ b/query-languages/dax/true-function-dax.md @@ -7,42 +7,42 @@ title: "TRUE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the logical value `TRUE`. - -## Syntax - + +## Syntax + ```dax -TRUE() +TRUE() ``` - + ## Return value Always `TRUE`. - + ## Remarks -The word `TRUE` is also interpreted as the logical value `TRUE`. - +The word `TRUE` is also interpreted as the logical value `TRUE`. + ## Example -The formula returns the logical value `TRUE` when the value in the column, 'InternetSales_USD'[SalesAmount_USD], is greater than 200000. - +The formula returns the logical value `TRUE` when the value in the column, 'InternetSales_USD'[SalesAmount_USD], is greater than 200000. + ```dax -= IF(SUM('InternetSales_USD'[SalesAmount_USD]) >200000, TRUE(), false()) += IF(SUM('InternetSales_USD'[SalesAmount_USD]) >200000, TRUE(), false()) ``` -The following table shows the results when the example formula is used in a report with 'ProductCategory'[ProductCategoryName] in Row Labels and 'DateTime'[CalendarYear] in Column Labels. - +The following table shows the results when the example formula is used in a report with 'ProductCategory'[ProductCategoryName] in Row Labels and 'DateTime'[CalendarYear] in Column Labels. + |Row Labels|2005|2006|2007|2008|-|Grand Total| -|---------------|-----------------|----|----|----|----|----| -|Accessories|`FALSE`|`FALSE`|`TRUE`|`TRUE`|`FALSE`|`TRUE`| -|Bikes|`TRUE`|`TRUE`|`TRUE`|`TRUE`|`FALSE`|`TRUE`| -|Clothing|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`TRUE`| -|Components|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`| -||`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`| -|Grand Total|`TRUE`|`TRUE`|`TRUE`|`TRUE`|`FALSE`|`TRUE`| - +|---------------|-----------------|----|----|----|----|----| +|Accessories|`FALSE`|`FALSE`|`TRUE`|`TRUE`|`FALSE`|`TRUE`| +|Bikes|`TRUE`|`TRUE`|`TRUE`|`TRUE`|`FALSE`|`TRUE`| +|Clothing|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`TRUE`| +|Components|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`| +||`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`|`FALSE`| +|Grand Total|`TRUE`|`TRUE`|`TRUE`|`TRUE`|`FALSE`|`TRUE`| + ## Related content -[FALSE](false-function-dax.md) -[NOT](not-function-dax.md) -[IF](if-function-dax.md) +[FALSE](false-function-dax.md) +[NOT](not-function-dax.md) +[IF](if-function-dax.md) diff --git a/query-languages/dax/trunc-function-dax.md b/query-languages/dax/trunc-function-dax.md index 9b4053fac..973fed7d9 100644 --- a/query-languages/dax/trunc-function-dax.md +++ b/query-languages/dax/trunc-function-dax.md @@ -6,50 +6,50 @@ title: "TRUNC function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Truncates a number to an integer by removing the decimal, or fractional, part of the number. - -## Syntax - +Truncates a number to an integer by removing the decimal, or fractional, part of the number. + +## Syntax + ```dax -TRUNC(,) +TRUNC(,) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The number you want to truncate.| -|`num_digits`|A number specifying the precision of the truncation; if omitted, 0 (zero)| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The number you want to truncate.| +|`num_digits`|A number specifying the precision of the truncation; if omitted, 0 (zero)| + ## Return value -A whole number. - +A whole number. + ## Remarks -TRUNC and INT are similar in that both return integers. TRUNC removes the fractional part of the number. INT rounds numbers down to the nearest integer based on the value of the fractional part of the number. INT and TRUNC are different only when using negative numbers: `TRUNC(-4.3)` returns -4, but `INT(-4.3)` returns -5 because -5 is the smaller number. - +TRUNC and INT are similar in that both return integers. TRUNC removes the fractional part of the number. INT rounds numbers down to the nearest integer based on the value of the fractional part of the number. INT and TRUNC are different only when using negative numbers: `TRUNC(-4.3)` returns -4, but `INT(-4.3)` returns -5 because -5 is the smaller number. + ## Example 1 -The following formula returns 3, the integer part of pi. - +The following formula returns 3, the integer part of pi. + ```dax -= TRUNC(PI()) += TRUNC(PI()) ``` - + ## Example 2 -The following formula returns -8, the integer part of -8.9. - +The following formula returns -8, the integer part of -8.9. + ```dax -= TRUNC(-8.9) += TRUNC(-8.9) ``` - + ## Related content -[Math and Trig functions](math-and-trig-functions-dax.md) -[ROUND](round-function-dax.md) -[ROUNDUP](roundup-function-dax.md) -[ROUNDDOWN](rounddown-function-dax.md) -[MROUND](mround-function-dax.md) -[INT](int-function-dax.md) +[Math and Trig functions](math-and-trig-functions-dax.md) +[ROUND](round-function-dax.md) +[ROUNDUP](roundup-function-dax.md) +[ROUNDDOWN](rounddown-function-dax.md) +[MROUND](mround-function-dax.md) +[INT](int-function-dax.md) diff --git a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md index a432537df..693053002 100644 --- a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md +++ b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md @@ -4,93 +4,93 @@ title: "Understanding functions for parent-child hierarchies in DAX" --- # Understanding functions for parent-child hierarchies in DAX -DAX provides five functions to help users manage data that is presented as a parent-child hierarchy in their models. With this functions a user can obtain the entire lineage of parents a row has, how many levels has the lineage to the top parent, who is the parent n-levels above the current row, who is the n-descendant from the top of the current row hierarchy and is certain parent a parent in the current row hierarchy? - +DAX provides five functions to help users manage data that is presented as a parent-child hierarchy in their models. With this functions a user can obtain the entire lineage of parents a row has, how many levels has the lineage to the top parent, who is the parent n-levels above the current row, who is the n-descendant from the top of the current row hierarchy and is certain parent a parent in the current row hierarchy? + ## Parent-child functions in DAX -The following table contains a Parent-Child hierarchy on the columns: **EmployeeKey** and **ParentEmployeeKey** that is used in all the functions examples. - -|EmployeeKey|ParentEmployeeKey| -|---------------|---------------------| -|112|| -|14|112| -|3|14| -|11|3| -|13|3| -|162|3| -|117|162| -|221|162| -|81|162| - -In the above table you can see that employee 112 has no parent defined, employee 14 has employee 112 as manager (ParentEmployeeKey), employee 3 has employee 14 as manager and employees 11, 13, and 162 have employee 3 as manager. The above helps to understand that employee 112 has no manager above her/him and she/he is the top manager for all employees shown here; also, employee 3 reports to employee 14 and employees 11, 13, 162 report to 3. - -The following table presents the available functions, a brief description of the function and an example of the function over the same data shown above. - -[PATH function](path-function-dax.md) - Returns a delimited text with the identifiers of all the parents to the current row, starting with the oldest or top most until current. - -|EmployeeKey|ParentEmployeeKey|Path| -|---------------|---------------------|--------| -|112||112| -|14|112|112|14| -|3|14|112|14|3| -|11|3|112|14|3|11| -|13|3|112|14|3|13| -|162|3|112|14|3|162| -|117|162|112|14|3|162|117| -|221|162|112|14|3|162|221| -|81|162|112|14|3|162|81| - -[PATHLENGTH function](pathlength-function-dax.md) - Returns the number of levels in a given PATH(), starting at current level until the oldest or top most parent level. In the following example column PathLength is defined as '`= PATHLENGTH([Path])`'; the example includes all data from the Path() example to help understand how this function works. - -|EmployeeKey|ParentEmployeeKey|Path|PathLength| -|---------------|---------------------|--------|--------------| -|112||112|1| -|14|112|112|14|2| -|3|14|112|14|3|3| -|11|3|112|14|3|11|4| -|13|3|112|14|3|13|4| -|162|3|112|14|3|162|4| -|117|162|112|14|3|162|117|5| -|221|162|112|14|3|162|221|5| -|81|162|112|14|3|162|81|5| - -[PATHITEM function](pathitem-function-dax.md) - Returns the item at the specified position from a PATH() like result, counting from left to right. In the following example column PathItem - 4th from left is defined as '`= PATHITEM([Path], 4)`'; this example returns the EmployeKey at fourth position in the Path string from the left, using the same sample data from the Path() example. - -|EmployeeKey|ParentEmployeeKey|Path|PathItem - 4th from left| -|---------------|---------------------|--------|-----------------------------| -|112||112|| -|14|112|112|14|| -|3|14|112|14|3|| -|11|3|112|14|3|11|11| -|13|3|112|14|3|13|13| -|162|3|112|14|3|162|162| -|117|162|112|14|3|162|117|162| -|221|162|112|14|3|162|221|162| -|81|162|112|14|3|162|81|162| - -[PATHITEMREVERSE function](pathitemreverse-function-dax.md) - Returns the item at `position` from a PATH() like function result, counting backwards from right to left. - In the following example column PathItemReverse - 3rd from right is defined as '`= PATHITEMREVERSE([Path], 3)`'; this example returns the EmployeKey at third position in the Path string from the right, using the same sample data from the Path() example. - -|EmployeeKey|ParentEmployeeKey|Path|PathItemReverse - 3rd from right| -|---------------|---------------------|--------|-------------------------------------| -|112||112|| -|14|112|112|14|| -|3|14|112|14|3|112| -|11|3|112|14|3|11|14| -|13|3|112|14|3|13|14| -|162|3|112|14|3|162|14| -|117|162|112|14|3|162|117|3| -|221|162|112|14|3|162|221|3| -|81|162|112|14|3|162|81|3| - -[PATHCONTAINS function](pathcontains-function-dax.md) - Returns `TRUE` if the specified `item` exists within the specified `path`. In the following example column PathContains - employee 162 is defined as '`= PATHCONTAINS([Path], "162")`'; this example returns `TRUE` if the given path contains employee 162. This example uses the results from the Path() example above. - -|EmployeeKey|ParentEmployeeKey|Path|PathContains - employee 162| -|---------------|---------------------|--------|-------------------------------------| -|112||112|`FALSE`| -|14|112|112|14|`FALSE`| -|3|14|112|14|3|`FALSE`| -|11|3|112|14|3|11|`FALSE`| -|13|3|112|14|3|13|`FALSE`| -|162|3|112|14|3|162|`TRUE`| -|117|162|112|14|3|162|117|`TRUE`| +The following table contains a Parent-Child hierarchy on the columns: **EmployeeKey** and **ParentEmployeeKey** that is used in all the functions examples. + +|EmployeeKey|ParentEmployeeKey| +|---------------|---------------------| +|112|| +|14|112| +|3|14| +|11|3| +|13|3| +|162|3| +|117|162| +|221|162| +|81|162| + +In the above table you can see that employee 112 has no parent defined, employee 14 has employee 112 as manager (ParentEmployeeKey), employee 3 has employee 14 as manager and employees 11, 13, and 162 have employee 3 as manager. The above helps to understand that employee 112 has no manager above her/him and she/he is the top manager for all employees shown here; also, employee 3 reports to employee 14 and employees 11, 13, 162 report to 3. + +The following table presents the available functions, a brief description of the function and an example of the function over the same data shown above. + +[PATH function](path-function-dax.md) - Returns a delimited text with the identifiers of all the parents to the current row, starting with the oldest or top most until current. + +|EmployeeKey|ParentEmployeeKey|Path| +|---------------|---------------------|--------| +|112||112| +|14|112|112|14| +|3|14|112|14|3| +|11|3|112|14|3|11| +|13|3|112|14|3|13| +|162|3|112|14|3|162| +|117|162|112|14|3|162|117| +|221|162|112|14|3|162|221| +|81|162|112|14|3|162|81| + +[PATHLENGTH function](pathlength-function-dax.md) - Returns the number of levels in a given PATH(), starting at current level until the oldest or top most parent level. In the following example column PathLength is defined as '`= PATHLENGTH([Path])`'; the example includes all data from the Path() example to help understand how this function works. + +|EmployeeKey|ParentEmployeeKey|Path|PathLength| +|---------------|---------------------|--------|--------------| +|112||112|1| +|14|112|112|14|2| +|3|14|112|14|3|3| +|11|3|112|14|3|11|4| +|13|3|112|14|3|13|4| +|162|3|112|14|3|162|4| +|117|162|112|14|3|162|117|5| +|221|162|112|14|3|162|221|5| +|81|162|112|14|3|162|81|5| + +[PATHITEM function](pathitem-function-dax.md) - Returns the item at the specified position from a PATH() like result, counting from left to right. In the following example column PathItem - 4th from left is defined as '`= PATHITEM([Path], 4)`'; this example returns the EmployeKey at fourth position in the Path string from the left, using the same sample data from the Path() example. + +|EmployeeKey|ParentEmployeeKey|Path|PathItem - 4th from left| +|---------------|---------------------|--------|-----------------------------| +|112||112|| +|14|112|112|14|| +|3|14|112|14|3|| +|11|3|112|14|3|11|11| +|13|3|112|14|3|13|13| +|162|3|112|14|3|162|162| +|117|162|112|14|3|162|117|162| +|221|162|112|14|3|162|221|162| +|81|162|112|14|3|162|81|162| + +[PATHITEMREVERSE function](pathitemreverse-function-dax.md) - Returns the item at `position` from a PATH() like function result, counting backwards from right to left. + In the following example column PathItemReverse - 3rd from right is defined as '`= PATHITEMREVERSE([Path], 3)`'; this example returns the EmployeKey at third position in the Path string from the right, using the same sample data from the Path() example. + +|EmployeeKey|ParentEmployeeKey|Path|PathItemReverse - 3rd from right| +|---------------|---------------------|--------|-------------------------------------| +|112||112|| +|14|112|112|14|| +|3|14|112|14|3|112| +|11|3|112|14|3|11|14| +|13|3|112|14|3|13|14| +|162|3|112|14|3|162|14| +|117|162|112|14|3|162|117|3| +|221|162|112|14|3|162|221|3| +|81|162|112|14|3|162|81|3| + +[PATHCONTAINS function](pathcontains-function-dax.md) - Returns `TRUE` if the specified `item` exists within the specified `path`. In the following example column PathContains - employee 162 is defined as '`= PATHCONTAINS([Path], "162")`'; this example returns `TRUE` if the given path contains employee 162. This example uses the results from the Path() example above. + +|EmployeeKey|ParentEmployeeKey|Path|PathContains - employee 162| +|---------------|---------------------|--------|-------------------------------------| +|112||112|`FALSE`| +|14|112|112|14|`FALSE`| +|3|14|112|14|3|`FALSE`| +|11|3|112|14|3|11|`FALSE`| +|13|3|112|14|3|13|`FALSE`| +|162|3|112|14|3|162|`TRUE`| +|117|162|112|14|3|162|117|`TRUE`| diff --git a/query-languages/dax/unichar-function-dax.md b/query-languages/dax/unichar-function-dax.md index 40f25681d..06dd22cbf 100644 --- a/query-languages/dax/unichar-function-dax.md +++ b/query-languages/dax/unichar-function-dax.md @@ -7,24 +7,24 @@ title: "UNICHAR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the Unicode character referenced by the numeric value. - -## Syntax - + +## Syntax + ```dax -UNICHAR(number) +UNICHAR(number) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`number`|The Unicode number that represents the character.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`number`|The Unicode number that represents the character.| + ## Return value A character represented by the Unicode number. - -## Remarks + +## Remarks - If XML characters are not invalid, UNICHAR returns an error. @@ -35,10 +35,10 @@ A character represented by the Unicode number. - If number is zero (0), UNICHAR returns an error. - The Unicode character returned can be a string of characters, for example in UTF-8 or UTF-16 codes. - -## Example -The following example returns the character represented by the Unicode number 66 (uppercase A). +## Example + +The following example returns the character represented by the Unicode number 66 (uppercase A). ```dax = UNICHAR(65) diff --git a/query-languages/dax/unicode-function-dax.md b/query-languages/dax/unicode-function-dax.md index fe69d4981..0e374287a 100644 --- a/query-languages/dax/unicode-function-dax.md +++ b/query-languages/dax/unicode-function-dax.md @@ -7,19 +7,19 @@ title: "UNICODE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the number (code point) corresponding to the first character of the text. - -## Syntax - + +## Syntax + ```dax -UNICODE( ) +UNICODE( ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`Text`|Text is the character for which you want the Unicode value.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`Text`|Text is the character for which you want the Unicode value.| + ## Return value A numeric code for the first character in a text string. diff --git a/query-languages/dax/union-function-dax.md b/query-languages/dax/union-function-dax.md index 1d54f2b88..c2765d46b 100644 --- a/query-languages/dax/union-function-dax.md +++ b/query-languages/dax/union-function-dax.md @@ -5,72 +5,72 @@ title: "UNION function (DAX)" # UNION [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Creates a union (join) table from a pair of tables. - -## Syntax - + +Creates a union (join) table from a pair of tables. + +## Syntax + ```dax -UNION(, [,]…) +UNION(, [,]…) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table_expression`|Any DAX expression that returns a table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table_expression`|Any DAX expression that returns a table.| + ## Return value -A table that contains all the rows from each of the two table expressions. - +A table that contains all the rows from each of the two table expressions. + ## Remarks -- The two tables must have the same number of columns. - -- Columns are combined by position in their respective tables. - -- The column names in the return table will match the column names in table_expression1. - -- Duplicate rows are retained. - -- The returned table has lineage where possible. For example, if the first column of each table_expression has lineage to the same base column C1 in the model, the first column in the UNION result will have lineage to C1. However, if combined columns have lineage to different base columns, or if there is an extension column, the resulting column in UNION will have no lineage. - -- When data types differ, the resulting data type is determined based on the rules for data type coercion. - -- The returned table will not contain columns from related tables. +- The two tables must have the same number of columns. + +- Columns are combined by position in their respective tables. + +- The column names in the return table will match the column names in table_expression1. + +- Duplicate rows are retained. + +- The returned table has lineage where possible. For example, if the first column of each table_expression has lineage to the same base column C1 in the model, the first column in the UNION result will have lineage to C1. However, if combined columns have lineage to different base columns, or if there is an extension column, the resulting column in UNION will have no lineage. + +- When data types differ, the resulting data type is determined based on the rules for data type coercion. + +- The returned table will not contain columns from related tables. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following expression creates a union by combining the USAInventory table and the INDInventory table into a single table: +The following expression creates a union by combining the USAInventory table and the INDInventory table into a single table: ```dax UNION(UsaInventory, IndInventory) ``` **USAInventory** - -|Country/Region|State|Count|Total| -|-----------|---------|---------|---------| -|USA|CA|5|500| -|USA|WA|10|900| - + +|Country/Region|State|Count|Total| +|-----------|---------|---------|---------| +|USA|CA|5|500| +|USA|WA|10|900| + **INDInventory** - -|Country/Region|State|Count|Total| -|-----------|---------|---------|---------| -|IND|JK|20|800| -|IND|MH|25|1000| -|IND|WB|10|900| - -Return table, - -|Country/Region|State|Count|Total| -|-----------|---------|---------|---------| -|USA|CA|5|500| -|USA|WA|10|900| -|IND|JK|20|800| -|IND|MH|25|1000| -|IND|WB|10|900| + +|Country/Region|State|Count|Total| +|-----------|---------|---------|---------| +|IND|JK|20|800| +|IND|MH|25|1000| +|IND|WB|10|900| + +Return table, + +|Country/Region|State|Count|Total| +|-----------|---------|---------|---------| +|USA|CA|5|500| +|USA|WA|10|900| +|IND|JK|20|800| +|IND|MH|25|1000| +|IND|WB|10|900| diff --git a/query-languages/dax/upper-function-dax.md b/query-languages/dax/upper-function-dax.md index 62604fb7b..aa07074fd 100644 --- a/query-languages/dax/upper-function-dax.md +++ b/query-languages/dax/upper-function-dax.md @@ -6,33 +6,33 @@ title: "UPPER function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Converts a text string to all uppercase letters. - -## Syntax - +Converts a text string to all uppercase letters. + +## Syntax + ```dax -UPPER () +UPPER () ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text you want converted to uppercase, or a reference to a column that contains text.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text you want converted to uppercase, or a reference to a column that contains text.| + ## Return value -Same text, in uppercase. - +Same text, in uppercase. + ## Example -The following formula converts the string in the column, [ProductCode], to all uppercase. Non-alphabetic characters are not affected. - +The following formula converts the string in the column, [ProductCode], to all uppercase. Non-alphabetic characters are not affected. + ```dax -= UPPER(['New Products'[Product Code]) += UPPER(['New Products'[Product Code]) ``` - + ## Related content -[Text functions](text-functions-dax.md) -[LOWER function](lower-function-dax.md) +[Text functions](text-functions-dax.md) +[LOWER function](lower-function-dax.md) diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index 184dde7a3..81a0ee2dc 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -5,25 +5,25 @@ title: "USERCULTURE function (DAX)" # USERCULTURE [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the locale \(language code-country code) for the current user, determined by the operating system, browser settings, or Power BI service. + +Returns the locale \(language code-country code) for the current user, determined by the operating system, browser settings, or Power BI service. **Note:** This function is currently supported in Power BI Premium per capacity, Power BI Premium per user, and Power BI Embedded only. - -## Syntax - + +## Syntax + ```dax USERCULTURE() ``` - -### Parameters - + +### Parameters + This expression has no parameters. - + ## Return value Locale as a string. - + ## Remarks - In the Power BI service, locale is determined by **Settings** > **Language** > **Language Settings**. The default is determined by the user's browser language setting. @@ -61,7 +61,7 @@ Depending on the language setting for the current user, :::no-loc text="USERCULT ## Related content -[Expression-based titles in Power BI](/power-bi/create-reports/desktop-conditional-format-visual-titles) -[USERNAME](username-function-dax.md) -[USERPRINCIPALNAME](userprincipalname-function-dax.md) -[USEROBJECTID](userobjectid-function-dax.md) +[Expression-based titles in Power BI](/power-bi/create-reports/desktop-conditional-format-visual-titles) +[USERNAME](username-function-dax.md) +[USERPRINCIPALNAME](userprincipalname-function-dax.md) +[USEROBJECTID](userobjectid-function-dax.md) diff --git a/query-languages/dax/userelationship-function-dax.md b/query-languages/dax/userelationship-function-dax.md index 5be2f9b4b..33dc37aea 100644 --- a/query-languages/dax/userelationship-function-dax.md +++ b/query-languages/dax/userelationship-function-dax.md @@ -6,53 +6,53 @@ title: "USERELATIONSHIP function (DAX)" [!INCLUDE[applies-to-measures-columns-tables](includes/applies-to-measures-columns-tables.md)] -Specifies the relationship to be used in a specific calculation as the one that exists between columnName1 and columnName2. - -## Syntax - +Specifies the relationship to be used in a specific calculation as the one that exists between columnName1 and columnName2. + +## Syntax + ```dax -USERELATIONSHIP(,) +USERELATIONSHIP(,) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -| `columnName1` | The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression. | +### Parameters + +|Term|Definition| +|--------|--------------| +| `columnName1` | The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the many side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression. | | `columnName2` | The name of an existing column, using standard DAX syntax and fully qualified, that usually represents the one side or lookup side of the relationship to be used; if the arguments are given in reverse order the function will swap them before using them. This argument cannot be an expression. | ## Return value -The function returns no value; the function only enables the indicated relationship for the duration of the calculation. - -## Remarks - -- USERELATIONSHIP can only be used in functions that take a filter as an argument, for example: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD and TOTALYTD functions. +The function returns no value; the function only enables the indicated relationship for the duration of the calculation. + +## Remarks + +- USERELATIONSHIP can only be used in functions that take a filter as an argument, for example: CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD and TOTALYTD functions. - USERELATIONSHIP cannot be used when row level security is defined for the table in which the measure is included. For example, `CALCULATE(SUM([SalesAmount]), USERELATIONSHIP(FactInternetSales[CustomerKey], DimCustomer[CustomerKey]))` will return an error if row level security is defined for DimCustomer. - -- USERELATIONSHIP uses existing relationships in the model, identifying relationships by their ending point columns. - -- In USERELATIONSHIP, the status of a relationship is not important; that is, whether the relationship is active or not does not affect the usage of the function. Even if the relationship is inactive, it will be used and overrides any other active relationships that might be present in the model but not mentioned in the function arguments. - -- An error is returned if any of the columns named as an argument is not part of a relationship or the arguments belong to different relationships. - -- If multiple relationships are needed to join table A to table B in a calculation, each relationship must be indicated in a different USERELATIONSHIP function. - -- If CALCULATE expressions are nested, and more than one CALCULATE expression contains a USERELATIONSHIP function, then the innermost USERELATIONSHIP is the one that prevails in case of a conflict or ambiguity. - -- Up to 10 USERELATIONSHIP functions can be nested; however, your expression might have a deeper level of nesting, ie. the following sample expression is nested 3 levels deep but only 2 for USERELATIONSHIP: `=CALCULATE(CALCULATE( CALCULATE( , USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))`. + +- USERELATIONSHIP uses existing relationships in the model, identifying relationships by their ending point columns. + +- In USERELATIONSHIP, the status of a relationship is not important; that is, whether the relationship is active or not does not affect the usage of the function. Even if the relationship is inactive, it will be used and overrides any other active relationships that might be present in the model but not mentioned in the function arguments. + +- An error is returned if any of the columns named as an argument is not part of a relationship or the arguments belong to different relationships. + +- If multiple relationships are needed to join table A to table B in a calculation, each relationship must be indicated in a different USERELATIONSHIP function. + +- If CALCULATE expressions are nested, and more than one CALCULATE expression contains a USERELATIONSHIP function, then the innermost USERELATIONSHIP is the one that prevails in case of a conflict or ambiguity. + +- Up to 10 USERELATIONSHIP functions can be nested; however, your expression might have a deeper level of nesting, ie. the following sample expression is nested 3 levels deep but only 2 for USERELATIONSHIP: `=CALCULATE(CALCULATE( CALCULATE( , USERELATIONSHIP( t1[colA], t2[colB])), t99[colZ]=999), USERELATIONSHIP( t1[colA], t2[colA]))`. - For 1-to-1 relationships, USERELATIONSHIP will only activate the relationship in one direction. In particular, filters will only be able to flow from *columnName2*'s table to *columnName1*'s table. If bi-directional cross-filtering is desired, two USERELATIONSHIPs with opposite directionality can be used in the same calculation. For example, `CALCULATE(..., USERELATIONSHIP(T1[K], T2[K]), USERELATIONSHIP(T2[K], T1[K]))`. - + ## Example -The following sample shows how to override the default, active, relationship between InternetSales and DateTime tables. The default relationship exists between the OrderDate column, in the InternetSales table, and the Date column, in the DateTime table. - -To calculate the sum of internet sales and allow slicing by ShippingDate instead of the traditional OrderDate, create measure, [InternetSales by ShippingDate] using the following expression: - +The following sample shows how to override the default, active, relationship between InternetSales and DateTime tables. The default relationship exists between the OrderDate column, in the InternetSales table, and the Date column, in the DateTime table. + +To calculate the sum of internet sales and allow slicing by ShippingDate instead of the traditional OrderDate, create measure, [InternetSales by ShippingDate] using the following expression: + ```dax -= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date])) += CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date])) ``` Relationships between InternetSales[ShipmentDate] and DateTime[Date] must exist and should not be the active relationship; also, the relationship between InternetSales[OrderDate] and DateTime[Date] should exist and should be the active relationship. diff --git a/query-languages/dax/username-function-dax.md b/query-languages/dax/username-function-dax.md index fa635cc3f..1a9281bfc 100644 --- a/query-languages/dax/username-function-dax.md +++ b/query-languages/dax/username-function-dax.md @@ -6,26 +6,26 @@ title: "USERNAME function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the domain name and username from the credentials given to the system at connection time. - -## Syntax - +Returns the domain name and username from the credentials given to the system at connection time. + +## Syntax + ```dax -USERNAME() +USERNAME() ``` - -### Parameters + +### Parameters This expression has no parameters. - + ## Return value -The username from the credentials given to the system at connection time - +The username from the credentials given to the system at connection time + ## Example -The following formula verifies if the user login is part of the UsersTable. - +The following formula verifies if the user login is part of the UsersTable. + ```dax -= IF(CONTAINS(UsersTable,UsersTable[login], USERNAME()), "Allowed", BLANK()) += IF(CONTAINS(UsersTable,UsersTable[login], USERNAME()), "Allowed", BLANK()) ``` diff --git a/query-languages/dax/userobjectid-function-dax.md b/query-languages/dax/userobjectid-function-dax.md index f4f8f3f24..e4664dc00 100644 --- a/query-languages/dax/userobjectid-function-dax.md +++ b/query-languages/dax/userobjectid-function-dax.md @@ -7,15 +7,15 @@ title: "USEROBJECTID function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the current user's Object ID from Microsoft Entra ID or security identifier (SID). - -## Syntax - + +## Syntax + ```dax -USEROBJECTID() +USEROBJECTID() ``` - -### Parameters - + +### Parameters + This expression has no parameters. ## Return value diff --git a/query-languages/dax/userprincipalname-function-dax.md b/query-languages/dax/userprincipalname-function-dax.md index f79470d1d..159242bf7 100644 --- a/query-languages/dax/userprincipalname-function-dax.md +++ b/query-languages/dax/userprincipalname-function-dax.md @@ -7,17 +7,17 @@ title: "USERPRINCIPALNAME function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the user principal name. - -## Syntax - + +## Syntax + ```dax -USERPRINCIPALNAME() +USERPRINCIPALNAME() ``` - -### Parameters + +### Parameters This expression has no parameters. - + ## Return value The userprincipalname at connection time. diff --git a/query-languages/dax/utcnow-function-dax.md b/query-languages/dax/utcnow-function-dax.md index 183a01829..e8445ae58 100644 --- a/query-languages/dax/utcnow-function-dax.md +++ b/query-languages/dax/utcnow-function-dax.md @@ -7,25 +7,25 @@ title: "UTCNOW function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] Returns the current UTC date and time. - -## Syntax - + +## Syntax + ```dax -UTCNOW() +UTCNOW() ``` - + ## Return value A `datetime`. - -## Remarks + +## Remarks The result of the UTCNOW function changes only when the formula is refreshed. It is not continuously updated. - + ## Example The following: - + ```dax EVALUATE { FORMAT(UTCNOW(), "General Date") } ``` @@ -38,5 +38,5 @@ Returns: ## Related content -[NOW function](now-function-dax.md) -[UTCTODAY function](utctoday-function-dax.md) +[NOW function](now-function-dax.md) +[UTCTODAY function](utctoday-function-dax.md) diff --git a/query-languages/dax/utctoday-function-dax.md b/query-languages/dax/utctoday-function-dax.md index cdaf1b98c..a3ebcb9bc 100644 --- a/query-languages/dax/utctoday-function-dax.md +++ b/query-languages/dax/utctoday-function-dax.md @@ -8,26 +8,26 @@ title: "UTCTODAY function (DAX)" Returns the current UTC date. -## Syntax - +## Syntax + ```dax -UTCTODAY() +UTCTODAY() ``` - + ## Return value -A date. - -## Remarks +A date. + +## Remarks - UTCTODAY returns the time value 12:00:00 PM for all dates. - The UTCNOW function is similar but returns the exact time and date. - + ## Example The following: - + ```dax EVALUATE { FORMAT(UTCTODAY(), "General Date") } ``` @@ -40,5 +40,5 @@ Returns: ## Related content -[NOW function](now-function-dax.md) -[UTCNOW function](utcnow-function-dax.md) +[NOW function](now-function-dax.md) +[UTCNOW function](utcnow-function-dax.md) diff --git a/query-languages/dax/value-function-dax.md b/query-languages/dax/value-function-dax.md index 09453ad6b..5d8445260 100644 --- a/query-languages/dax/value-function-dax.md +++ b/query-languages/dax/value-function-dax.md @@ -6,40 +6,40 @@ title: "VALUE function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Converts a text string that represents a number to a number. - -## Syntax - +Converts a text string that represents a number to a number. + +## Syntax + ```dax -VALUE() +VALUE() ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`text`|The text to be converted.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`text`|The text to be converted.| + ## Return value -The converted number in decimal data type. - +The converted number in decimal data type. + ## Remarks - The value passed as the `text` parameter can be in any of the constant, number, date, or time formats recognized by the application or services you are using. If `text` is not in one of these formats, an error is returned. - -- You do not generally need to use the VALUE function in a formula because the engine implicitly converts text to numbers as necessary. - -- You can also use column references. For example, if you have a column that contains mixed number types, VALUE can be used to convert all values to a single numeric data type. However, if you use the VALUE function with a column that contains mixed numbers and text, the entire column is flagged with an error, because not all values in all rows can be converted to numbers. - + +- You do not generally need to use the VALUE function in a formula because the engine implicitly converts text to numbers as necessary. + +- You can also use column references. For example, if you have a column that contains mixed number types, VALUE can be used to convert all values to a single numeric data type. However, if you use the VALUE function with a column that contains mixed numbers and text, the entire column is flagged with an error, because not all values in all rows can be converted to numbers. + ## Example -The following formula converts the typed string, "3", into the numeric value 3. - +The following formula converts the typed string, "3", into the numeric value 3. + ```dax -= VALUE("3") += VALUE("3") ``` - + ## Related content -[Text functions](text-functions-dax.md) +[Text functions](text-functions-dax.md) diff --git a/query-languages/dax/values-function-dax.md b/query-languages/dax/values-function-dax.md index 108c7f77e..7c79de39c 100644 --- a/query-languages/dax/values-function-dax.md +++ b/query-languages/dax/values-function-dax.md @@ -6,31 +6,31 @@ title: "VALUES function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -When the input parameter is a column name, returns a one-column table that contains the distinct values from the specified column. Duplicate values are removed and only unique values are returned. A BLANK value can be added. When the input parameter is a table name, returns the rows from the specified table. Duplicate rows are preserved. A BLANK row can be added. - -> [!NOTE] -> This function cannot be used to Return values into a cell or column on a worksheet; rather, you use it as an intermediate function, nested in a formula, to get a list of distinct values that can be counted or used to filter or sum other values. - -## Syntax - +When the input parameter is a column name, returns a one-column table that contains the distinct values from the specified column. Duplicate values are removed and only unique values are returned. A BLANK value can be added. When the input parameter is a table name, returns the rows from the specified table. Duplicate rows are preserved. A BLANK row can be added. + +> [!NOTE] +> This function cannot be used to Return values into a cell or column on a worksheet; rather, you use it as an intermediate function, nested in a formula, to get a list of distinct values that can be counted or used to filter or sum other values. + +## Syntax + ```dax -VALUES() +VALUES() ``` - + ### Parameters - -|Term|Definition| -|--------|--------------| -|`TableName` or `ColumnName`|A column from which unique values are to be returned, or a table from which rows are to be returned.| - + +|Term|Definition| +|--------|--------------| +|`TableName` or `ColumnName`|A column from which unique values are to be returned, or a table from which rows are to be returned.| + ## Return value When the input parameter is a column name, a single column table. When the input parameter is a table name, a table of the same columns is returned. - + ## Remarks -- When you use the VALUES function in a context that has been filtered, the unique values returned by VALUES are affected by the filter. For example, if you filter by Region, and return a list of the values for City, the list will include only those cities in the regions permitted by the filter. To return all of the cities, regardless of existing filters, you must use the ALL function to remove filters from the table. The second example demonstrates use of ALL with VALUES. - +- When you use the VALUES function in a context that has been filtered, the unique values returned by VALUES are affected by the filter. For example, if you filter by Region, and return a list of the values for City, the list will include only those cities in the regions permitted by the filter. To return all of the cities, regardless of existing filters, you must use the ALL function to remove filters from the table. The second example demonstrates use of ALL with VALUES. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - For best practices when using VALUES, see [Use SELECTEDVALUE instead of VALUES](best-practices/dax-selectedvalue.md). @@ -41,38 +41,38 @@ In most scenarios, when the argument is a column name, the results of the VALUES When the argument is a table name, the result of the VALUES function returns all rows in the specified table plus a blank row, if there is a violation of referential integrity. The DISTINCT function removes duplicate rows and returns unique rows in the specified table. ->[!NOTE] +>[!NOTE] > The DISTINCT function allows a column name or any valid table expression to be its argument but the VALUES function only accepts a column name or a table name as the argument. -The following table summarizes the mismatch between data that can occur in two related tables when referential integrity is not preserved. - -|MyOrders table|MySales table| -|------------------|-----------------| -|June 1|June 1 sales| -|June 2|June 2 sales| -|(no order dates have been entered)|June 3 sales| - -If you use the DISTINCT function to return a list of dates, only two dates would be returned. However, if you use the VALUES function, the function returns the two dates plus an additional blank member. Also, any row from the MySales table that does not have a matching date in the MyOrders table will be "matched" to this unknown member. - +The following table summarizes the mismatch between data that can occur in two related tables when referential integrity is not preserved. + +|MyOrders table|MySales table| +|------------------|-----------------| +|June 1|June 1 sales| +|June 2|June 2 sales| +|(no order dates have been entered)|June 3 sales| + +If you use the DISTINCT function to return a list of dates, only two dates would be returned. However, if you use the VALUES function, the function returns the two dates plus an additional blank member. Also, any row from the MySales table that does not have a matching date in the MyOrders table will be "matched" to this unknown member. + ## Example -The following formula counts the number of unique invoices (sales orders), and produces the following results when used in a report that includes the Product Category Names: +The following formula counts the number of unique invoices (sales orders), and produces the following results when used in a report that includes the Product Category Names: ```dax -= COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber])) += COUNTROWS(VALUES('InternetSales_USD'[SalesOrderNumber])) ``` Returns - -|Row Labels|Count Invoices| -|--------------|------------------| -|Accessories|18,208| -|Bikes|15,205| -|Clothing|7,461| -|Grand Total|27,659| + +|Row Labels|Count Invoices| +|--------------|------------------| +|Accessories|18,208| +|Bikes|15,205| +|Clothing|7,461| +|Grand Total|27,659| ## Related content -[FILTER function](filter-function-dax.md) -[COUNTROWS function](countrows-function-dax.md) -[Filter functions](filter-functions-dax.md) +[FILTER function](filter-function-dax.md) +[COUNTROWS function](countrows-function-dax.md) +[Filter functions](filter-functions-dax.md) diff --git a/query-languages/dax/var-dax.md b/query-languages/dax/var-dax.md index 84f6860de..f92d72eb1 100644 --- a/query-languages/dax/var-dax.md +++ b/query-languages/dax/var-dax.md @@ -3,35 +3,35 @@ description: "Learn more about: VAR" title: "VAR keyword (DAX)" --- # VAR - -Stores the result of an expression as a named variable, which can then be passed as an argument to other measure expressions. Once resultant values have been calculated for a variable expression, those values do not change, even if the variable is referenced in another expression. -## Syntax - +Stores the result of an expression as a named variable, which can then be passed as an argument to other measure expressions. Once resultant values have been calculated for a variable expression, those values do not change, even if the variable is referenced in another expression. + +## Syntax + ```dax -VAR = +VAR = ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`name`|The name of the variable (identifier).
Delimiters are not supported. For example, 'varName' or [varName] will result in an error.
Supported character set: a-z, A-Z, 0-9.
0-9 are not valid as first character.
__ (double underscore) is allowed as a prefix to the identifier name.
No other special characters are supported.
Reserved keywords not allowed.
Names of existing tables are not allowed.
Empty spaces are not allowed.| -|`expression`|A DAX expression which returns a scalar or table value.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`name`|The name of the variable (identifier).
Delimiters are not supported. For example, 'varName' or [varName] will result in an error.
Supported character set: a-z, A-Z, 0-9.
0-9 are not valid as first character.
__ (double underscore) is allowed as a prefix to the identifier name.
No other special characters are supported.
Reserved keywords not allowed.
Names of existing tables are not allowed.
Empty spaces are not allowed.| +|`expression`|A DAX expression which returns a scalar or table value.| + ## Return value -A named variable containing the result of the expression argument. - +A named variable containing the result of the expression argument. + ## Remarks -- An expression passed as an argument to VAR can contain another VAR declaration. - -- When referencing a variable: - - Measures cannot refer to variables defined outside the measure expression, but can refer to functional scope variables defined within the expression. - - Variables can refer to measures. - - Variables can refer to previously defined variables. - - Columns in table variables cannot be referenced via TableName[ColumnName] syntax. +- An expression passed as an argument to VAR can contain another VAR declaration. + +- When referencing a variable: + - Measures cannot refer to variables defined outside the measure expression, but can refer to functional scope variables defined within the expression. + - Variables can refer to measures. + - Variables can refer to previously defined variables. + - Columns in table variables cannot be referenced via TableName[ColumnName] syntax. - For best practices when using VAR, see [Use variables to improve your DAX formulas](best-practices/dax-variables.md). @@ -39,45 +39,45 @@ A named variable containing the result of the expression argument. ## Example -To calculate a percentage of year-over-year growth without using a variable, you could create three separate measures. This first measure calculates Sum of Sales Amount: - +To calculate a percentage of year-over-year growth without using a variable, you could create three separate measures. This first measure calculates Sum of Sales Amount: + ```dax -Sum of SalesAmount = SUM(SalesTable[SalesAmount]) +Sum of SalesAmount = SUM(SalesTable[SalesAmount]) ``` -A second measure calculates the sales amount for the previous year: - +A second measure calculates the sales amount for the previous year: + ```dax SalesAmount PreviousYear = CALCULATE([Sum of SalesAmount], SAMEPERIODLASTYEAR(Calendar[Date]) - ) + ) ``` -You can then create a third measure that combines the other two measures to calculate a growth percentage. Notice the Sum of SalesAmount measure is used in two places; first to determine if there is a sale, then again to calculate a percentage. - +You can then create a third measure that combines the other two measures to calculate a growth percentage. Notice the Sum of SalesAmount measure is used in two places; first to determine if there is a sale, then again to calculate a percentage. + ```dax Sum of SalesAmount YoY%: = - IF([Sum of SalesAmount] , + IF([Sum of SalesAmount] , DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount]) - ) + ) ``` -By using a variable, you can create a single measure that calculates the same result: - +By using a variable, you can create a single measure that calculates the same result: + ```dax YoY% = VAR Sales = - SUM(SalesTable[SalesAmount]) + SUM(SalesTable[SalesAmount]) VAR SalesLastYear = CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) ) - return if(Sales, DIVIDE(Sales – SalesLastYear, Sales)) + return if(Sales, DIVIDE(Sales – SalesLastYear, Sales)) ``` By using a variable, you can get the same outcome, but in a more readable way. And because the result of the expression is stored in the variable, the measure's performance can be significantly improved because it doesn't have to be recalculated each time it's used. ## Related content -[Use variables to improve your DAX formulas](best-practices/dax-variables.md) +[Use variables to improve your DAX formulas](best-practices/dax-variables.md) [DAX queries](dax-queries.md) diff --git a/query-languages/dax/var-p-function-dax.md b/query-languages/dax/var-p-function-dax.md index b88455aea..298a59ea6 100644 --- a/query-languages/dax/var-p-function-dax.md +++ b/query-languages/dax/var-p-function-dax.md @@ -6,46 +6,46 @@ title: "VAR.P function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the variance of the entire population. - -## Syntax - +Returns the variance of the entire population. + +## Syntax + ```dax -VAR.P() +VAR.P() ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`columnName` | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | - +### Parameters + +|Term|Definition| +|--------|--------------| +|`columnName` | The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | + ## Return value -A number with the variance of the entire population. - -## Remarks - -- VAR.P assumes that the column refers the entire population. If your data represents a sample of the population, then compute the variance by using VAR.S. - -- VAR.P uses the following formula: - - ∑(x - x̃)2/n - - where x̃ is the average value of x for the entire population - - and n is the population size - -- Blank rows are filtered out from `columnName` and not considered in the calculations. - -- An error is returned if `columnName` contains less than 2 non-blank rows - +A number with the variance of the entire population. + +## Remarks + +- VAR.P assumes that the column refers the entire population. If your data represents a sample of the population, then compute the variance by using VAR.S. + +- VAR.P uses the following formula: + + ∑(x - x̃)2/n + + where x̃ is the average value of x for the entire population + + and n is the population size + +- Blank rows are filtered out from `columnName` and not considered in the calculations. + +- An error is returned if `columnName` contains less than 2 non-blank rows + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows the formula for a measure that estimates the variance of the SalesAmount_USD column from the InternetSales_USD table, for the entire population. - +The following example shows the formula for a measure that estimates the variance of the SalesAmount_USD column from the InternetSales_USD table, for the entire population. + ```dax -= VAR.P(InternetSales_USD[SalesAmount_USD]) += VAR.P(InternetSales_USD[SalesAmount_USD]) ``` diff --git a/query-languages/dax/var-s-function-dax.md b/query-languages/dax/var-s-function-dax.md index 2a44de14c..864aa8d6d 100644 --- a/query-languages/dax/var-s-function-dax.md +++ b/query-languages/dax/var-s-function-dax.md @@ -6,46 +6,46 @@ title: "VAR.S function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the variance of a sample population. - -## Syntax - +Returns the variance of a sample population. + +## Syntax + ```dax -VAR.S() +VAR.S() ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`columnName`| The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | +### Parameters + +|Term|Definition| +|--------|--------------| +|`columnName`| The name of an existing column using standard DAX syntax, usually fully qualified. It cannot be an expression. | ## Return value -A number with the variance of a sample population. - -## Remarks - -- VAR.S assumes that the column refers to a sample of the population. If your data represents the entire population, then compute the variance by using VAR.P. - -- VAR.S uses the following formula: - - ∑(x - x̃)2/(n-1) - - where x̃ is the average value of x for the sample population - - and n is the population size - -- Blank rows are filtered out from `columnName` and not considered in the calculations. - -- An error is returned if `columnName` contains less than 2 non-blank rows. - +A number with the variance of a sample population. + +## Remarks + +- VAR.S assumes that the column refers to a sample of the population. If your data represents the entire population, then compute the variance by using VAR.P. + +- VAR.S uses the following formula: + + ∑(x - x̃)2/(n-1) + + where x̃ is the average value of x for the sample population + + and n is the population size + +- Blank rows are filtered out from `columnName` and not considered in the calculations. + +- An error is returned if `columnName` contains less than 2 non-blank rows. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows the formula for a measure that calculates the variance of the SalesAmount_USD column from the InternetSales_USD for a sample population. - +The following example shows the formula for a measure that calculates the variance of the SalesAmount_USD column from the InternetSales_USD for a sample population. + ```dax -= VAR.S(InternetSales_USD[SalesAmount_USD]) += VAR.S(InternetSales_USD[SalesAmount_USD]) ``` diff --git a/query-languages/dax/varx-p-function-dax.md b/query-languages/dax/varx-p-function-dax.md index b08390be3..702b053f7 100644 --- a/query-languages/dax/varx-p-function-dax.md +++ b/query-languages/dax/varx-p-function-dax.md @@ -6,47 +6,47 @@ title: "VARX.P function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the variance of the entire population. - -## Syntax - +Returns the variance of the entire population. + +## Syntax + ```dax -VARX.P(
, ) +VARX.P(
, ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`table`| Any DAX expression that returns a table of data. | +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`| Any DAX expression that returns a table of data. | |`expression`| Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | - + ## Return value -A number with the variance of the entire population. - -## Remarks - -- VARX.P evaluates <expression> for each row of <table> and returns the variance of <expression> assuming that <table> refers to the entire population.. If <table> represents a sample of the population, then compute the variance by using VARX.S. - -- VARX.P uses the following formula: - - ∑(x - x̃)2/n - - where x̃ is the average value of x for the entire population - - and n is the population size - -- Blank rows are filtered out from `columnName` and not considered in the calculations. - -- An error is returned if `columnName` contains less than 2 non-blank rows - +A number with the variance of the entire population. + +## Remarks + +- VARX.P evaluates <expression> for each row of <table> and returns the variance of <expression> assuming that <table> refers to the entire population.. If <table> represents a sample of the population, then compute the variance by using VARX.S. + +- VARX.P uses the following formula: + + ∑(x - x̃)2/n + + where x̃ is the average value of x for the entire population + + and n is the population size + +- Blank rows are filtered out from `columnName` and not considered in the calculations. + +- An error is returned if `columnName` contains less than 2 non-blank rows + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows the formula for a calculated column that calculates the variance of the unit price per product, when the formula is used in the Product table - +The following example shows the formula for a calculated column that calculates the variance of the unit price per product, when the formula is used in the Product table + ```dax -= VARX.P(InternetSales_USD, InternetSales_USD[UnitPrice_USD] –(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity])) += VARX.P(InternetSales_USD, InternetSales_USD[UnitPrice_USD] –(InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity])) ``` diff --git a/query-languages/dax/varx-s-function-dax.md b/query-languages/dax/varx-s-function-dax.md index 4fba74967..bc4c6b86d 100644 --- a/query-languages/dax/varx-s-function-dax.md +++ b/query-languages/dax/varx-s-function-dax.md @@ -6,47 +6,47 @@ title: "VARX.S function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the variance of a sample population. - -## Syntax - +Returns the variance of a sample population. + +## Syntax + ```dax -VARX.S(
, ) +VARX.S(
, ) ``` - -### Parameters -|Term|Definition| -|--------|--------------| -|`table` | Any DAX expression that returns a table of data. | +### Parameters + +|Term|Definition| +|--------|--------------| +|`table` | Any DAX expression that returns a table of data. | |`expression` | Any DAX expression that returns a single scalar value, where the expression is to be evaluated multiple times (for each row/context). | ## Return value -A number that represents the variance of a sample population. - -## Remarks - -- VARX.S evaluates `expression` for each row of `table` and returns the variance of `expression`; on the assumption that `table` refers to a sample of the population. If `table` represents the entire population, then you should compute the variance by using VARX.P. - -- VAR.S uses the following formula: - - ∑(x - x̃)2/(n-1) - - where x̃ is the average value of x for the sample population - - and n is the population size - -- Blank rows are filtered out from `columnName` and not considered in the calculations. - -- An error is returned if `columnName` contains less than 2 non-blank rows. - +A number that represents the variance of a sample population. + +## Remarks + +- VARX.S evaluates `expression` for each row of `table` and returns the variance of `expression`; on the assumption that `table` refers to a sample of the population. If `table` represents the entire population, then you should compute the variance by using VARX.P. + +- VAR.S uses the following formula: + + ∑(x - x̃)2/(n-1) + + where x̃ is the average value of x for the sample population + + and n is the population size + +- Blank rows are filtered out from `columnName` and not considered in the calculations. + +- An error is returned if `columnName` contains less than 2 non-blank rows. + - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - + ## Example -The following example shows the formula for a calculated column that estimates the variance of the unit price per product for a sample population, when the formula is used in the Product table. - +The following example shows the formula for a calculated column that estimates the variance of the unit price per product for a sample population, when the formula is used in the Product table. + ```dax -= VARX.S(InternetSales_USD, InternetSales_USD[UnitPrice_USD] – (InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity])) += VARX.S(InternetSales_USD, InternetSales_USD[UnitPrice_USD] – (InternetSales_USD[DiscountAmount_USD]/InternetSales_USD[OrderQuantity])) ``` diff --git a/query-languages/dax/vdb-function-dax.md b/query-languages/dax/vdb-function-dax.md index e1215a1ab..e9f15b55e 100644 --- a/query-languages/dax/vdb-function-dax.md +++ b/query-languages/dax/vdb-function-dax.md @@ -18,8 +18,8 @@ VDB(, , , , [, [, , ) +WEEKDAY(, ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`date`|A date in `datetime` format.

Dates should be entered by using the DATE function, by using expressions that result in a date, or as the result of other formulas.| -|`return_type`|A number that determines the Return value:

Return type: **1**, week begins on Sunday (1) and ends on Saturday (7). numbered 1 through 7.

Return type: **2**, week begins on Monday (1) and ends on Sunday (7).

Return type: **3**, week begins on Monday (0) and ends on Sunday (6).numbered 0 through 6.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`date`|A date in `datetime` format.

Dates should be entered by using the DATE function, by using expressions that result in a date, or as the result of other formulas.| +|`return_type`|A number that determines the Return value:

Return type: **1**, week begins on Sunday (1) and ends on Saturday (7). numbered 1 through 7.

Return type: **2**, week begins on Monday (1) and ends on Sunday (7).

Return type: **3**, week begins on Monday (0) and ends on Sunday (6).numbered 0 through 6.| + ## Return value -An integer number from 1 to 7. - +An integer number from 1 to 7. + ## Remarks -- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX works with dates and times in a `datetime` format. If you need to display dates as serial numbers, you can use the formatting options in Excel. - -- You can also type dates in an accepted text representation of a date, but to avoid unexpected results, it is best to convert the text date to a `datetime` format first. - -- When the date argument is a text representation of the date, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. If the current date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is interpreted as a `datetime` value equivalent to January 8th of 2009. However, if the current date/time settings represent dates in the format of Day/Month/Year, then the same string would be interpreted as a `datetime` value equivalent to August 1st of 2009. - +- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX works with dates and times in a `datetime` format. If you need to display dates as serial numbers, you can use the formatting options in Excel. + +- You can also type dates in an accepted text representation of a date, but to avoid unexpected results, it is best to convert the text date to a `datetime` format first. + +- When the date argument is a text representation of the date, the function uses the locale and date/time settings of the client computer to understand the text value in order to perform the conversion. If the current date/time settings represent dates in the format of Month/Day/Year, then the string, "1/8/2009", is interpreted as a `datetime` value equivalent to January 8th of 2009. However, if the current date/time settings represent dates in the format of Day/Month/Year, then the same string would be interpreted as a `datetime` value equivalent to August 1st of 2009. + ## Example -The following example gets the date from the [HireDate] column, adds 1, and displays the weekday corresponding to that date. Because the `return_type` argument has been omitted, the default format is used, in which 1 is Sunday and 7 is Saturday. If the result is 4, the day would be Wednesday. - +The following example gets the date from the [HireDate] column, adds 1, and displays the weekday corresponding to that date. Because the `return_type` argument has been omitted, the default format is used, in which 1 is Sunday and 7 is Saturday. If the result is 4, the day would be Wednesday. + ```dax -= WEEKDAY([HireDate]+1) += WEEKDAY([HireDate]+1) ``` - + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[WEEKNUM function](weeknum-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[WEEKNUM function](weeknum-function-dax.md) [YEARFRAC function](yearfrac-function-dax.md) diff --git a/query-languages/dax/weeknum-function-dax.md b/query-languages/dax/weeknum-function-dax.md index 2f036d870..e3d1f3896 100644 --- a/query-languages/dax/weeknum-function-dax.md +++ b/query-languages/dax/weeknum-function-dax.md @@ -6,30 +6,30 @@ title: "WEEKNUM function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the week number for the given date according to the `return_type` value. The week number indicates where the week falls numerically within a year. +Returns the week number for the given date according to the `return_type` value. The week number indicates where the week falls numerically within a year. There are two *systems* used for this function: - **System 1** - The week containing January 1 is the first week of the year and is numbered week 1. - **System 2** - The week containing the first Thursday of the year is the first week of the year and is numbered as week 1. This system is the methodology specified in ISO 8601, which is commonly known as the European week numbering system. - -## Syntax - + +## Syntax + ```dax -WEEKNUM([, ]) +WEEKNUM([, ]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`date`|The date in `datetime` format.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`date`|The date in `datetime` format.| |`return_type`|(Optional) A number that determines on which day the week begins. Default is 1. See Remarks. | - + ## Return value -An integer number. - +An integer number. + ## Remarks - By default, the WEEKNUM function uses a calendar convention in which the week containing January 1 is considered to be the first week of the year. However, the ISO 8601 calendar standard, widely used in Europe, defines the first week as the one with the majority of days (four or more) falling in the new year. This means that if `return_type` is any valid value other than 21, for any years in which there are three days or less in the first week of January, the WEEKNUM function returns week numbers that are different from the ISO 8601 definition. @@ -67,5 +67,5 @@ The following example returns the week number of the date stored in the column, ## Related content -[YEARFRAC function](yearfrac-function-dax.md) +[YEARFRAC function](yearfrac-function-dax.md) [WEEKDAY function](weekday-function-dax.md) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index f03f107ab..7f3c64346 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -9,16 +9,16 @@ title: "WINDOW function (DAX)" Returns multiple rows which are positioned within the given interval. -## Syntax - +## Syntax + ```dax WINDOW ( from[, from_type], to[, to_type][, or ][, ][, ][, ][, ][, ] ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| + +### Parameters + +|Term|Definition| +|--------|--------------| |`from`|Indicates where the window starts. It can be any DAX expression that returns a scalar value.
The behavior depends on the `from_type` parameter:
- If `from_type` is REL, the number of rows to go back (negative value) or forward (positive value) from the current row to get the first row in the window.
- If `from_type` is ABS, and `from` is positive, then it’s the position of the start of the window from beginning of the partition. Indexing is 1-based. For example, 1 means window starts from the beginning of the partition. If `from` is negative, then it’s the position of the start of the window from the end of the partition. -1 means the last row in the partition. | |`from_type` |Modifies behavior of the `from` parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| |`to`|Same as `from`, but indicates the end of the window. The last row is included in the window.| @@ -28,7 +28,7 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| -|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | ## Return value @@ -36,7 +36,7 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, All rows from the window. ## Remarks -Except for columns added by DAX table functions, each column in `relation`, when `matchBy` is not present, or each column in `matchBy` and `partitionBy`, when `matchBy` is present, must have a corresponding outer value to help define the current row on which to operate. If `from_type` and `to_type` both have value ABS, then the following applies only to the `partitionBy` columns: +Except for columns added by DAX table functions, each column in `relation`, when `matchBy` is not present, or each column in `matchBy` and `partitionBy`, when `matchBy` is present, must have a corresponding outer value to help define the current row on which to operate. If `from_type` and `to_type` both have value ABS, then the following applies only to the `partitionBy` columns: - If there is exactly one corresponding outer column, its value is used. - If there is no corresponding outer column: @@ -47,11 +47,11 @@ Except for columns added by DAX table functions, each column in `relation`, when If all of `relation`'s columns were added by DAX table functions, an error is returned. -If `matchBy` is present, WINDOW will try to use `matchBy` and `partitionBy` columns to identify the row. -If `matchBy` is not present and the columns specified within `orderBy` and `partitionBy` cannot uniquely identify every row in `relation`, then: +If `matchBy` is present, WINDOW will try to use `matchBy` and `partitionBy` columns to identify the row. +If `matchBy` is not present and the columns specified within `orderBy` and `partitionBy` cannot uniquely identify every row in `relation`, then: - WINDOW will try to find the least number of additional columns required to uniquely identify every row. -- If such columns can be found, WINDOW will automatically append these new columns to `orderBy`, and each partition is sorted using this new set of orderBy columns. +- If such columns can be found, WINDOW will automatically append these new columns to `orderBy`, and each partition is sorted using this new set of orderBy columns. - If such columns cannot be found, an error is returned. An empty table is returned if: @@ -68,7 +68,7 @@ If the beginning of the window turns out be before the first row, then it’s se ## Example 1 - measure The following measure: - + ```dax 3-day Average Price = AVERAGEX( @@ -171,15 +171,14 @@ TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount] Returns the cumulative total sales by month, calculated along each quarter. - ## Related content -[INDEX](index-function-dax.md) -[MOVINGAVERAGE](movingaverage-function-dax.md) -[OFFSET](offset-function-dax.md) -[ORDERBY](orderby-function-dax.md) -[PARTITIONBY](partitionby-function-dax.md) -[RANGE](range-function-dax.md) -[RANK](rank-function-dax.md) +[INDEX](index-function-dax.md) +[MOVINGAVERAGE](movingaverage-function-dax.md) +[OFFSET](offset-function-dax.md) +[ORDERBY](orderby-function-dax.md) +[PARTITIONBY](partitionby-function-dax.md) +[RANGE](range-function-dax.md) +[RANK](rank-function-dax.md) [ROWNUMBER](rownumber-function-dax.md) -[RUNNINGSUM](runningsum-function-dax.md) +[RUNNINGSUM](runningsum-function-dax.md) diff --git a/query-languages/dax/xirr-function-dax.md b/query-languages/dax/xirr-function-dax.md index a69eabf0d..10bc2b83e 100644 --- a/query-languages/dax/xirr-function-dax.md +++ b/query-languages/dax/xirr-function-dax.md @@ -5,32 +5,32 @@ title: "XIRR function (DAX)" # XIRR [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the internal rate of return for a schedule of cash flows that is not necessarily periodic. - -## Syntax - + +Returns the internal rate of return for a schedule of cash flows that is not necessarily periodic. + +## Syntax + ```dax -XIRR(
, , , [, [, ]]) +XIRR(
, , , [, [, ]]) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|A table for which the values and dates expressions should be calculated.| -|`values`|An expression that returns the cash flow value for each row of the table.| -|`dates`|An expression that returns the cash flow date for each row of the table.| -|`guess`|(Optional) An initial guess for the internal rate of return. If omitted, the default guess of 0.1 is used.| + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|A table for which the values and dates expressions should be calculated.| +|`values`|An expression that returns the cash flow value for each row of the table.| +|`dates`|An expression that returns the cash flow date for each row of the table.| +|`guess`|(Optional) An initial guess for the internal rate of return. If omitted, the default guess of 0.1 is used.| |`alternateResult` | (Optional) A value returned in place of an error when a solution cannot be determined.| - + ## Return value Internal rate of return for the given inputs. If the calculation fails to return a valid result, an error or value specified as alternateResult is returned. - + ## Remarks -- The value is calculated as the rate that satisfies the following function: +- The value is calculated as the rate that satisfies the following function: $$0=\sum^{N}\_{j=1} \frac{P\_{j}}{(1 + \text{rate})^{\frac{d\_{j} - d\_{1}}{365}}}$$ @@ -40,12 +40,12 @@ Internal rate of return for the given inputs. If the calculation fails to return - $d\_{j}$ is the $j^{th}$ payment date - $d\_{1}$ is the first payment date -- The series of cash flow values must contain at least one positive number and one negative number. +- The series of cash flow values must contain at least one positive number and one negative number. - Avoid using ISERROR or IFERROR functions to capture an error returned by XIRR. If some inputs to the function may result in a no solution error, providing an alternateResult parameter is the most reliable and highest performing way to handle the error. - To learn more about using the alternateResult parameter, be to check out this [video](https://www.microsoft.com/videoplayer/embed/RWLzrC). - + - When the absolute value of initial payment is small, the calculation likely fails to return a valid result. - Avoid including 0 values in payments. They will not impact the final result, and using 0 as initial payment will fail XIRR() calculation always. @@ -54,18 +54,18 @@ Internal rate of return for the given inputs. If the calculation fails to return ## Example -The following formula calculates the internal rate of return of the CashFlows table: - +The following formula calculates the internal rate of return of the CashFlows table: + ```dax -= XIRR( CashFlows, [Payment], [Date] ) += XIRR( CashFlows, [Payment], [Date] ) ``` - -|Date|Payment| -|--------|-----------| -|1/1/2014|-10000| -|3/1/2014|2750| -|10/30/2014|4250| -|2/15/2015|3250| -|4/1/2015|2750| - -Rate of return = 37.49% + +|Date|Payment| +|--------|-----------| +|1/1/2014|-10000| +|3/1/2014|2750| +|10/30/2014|4250| +|2/15/2015|3250| +|4/1/2015|2750| + +Rate of return = 37.49% diff --git a/query-languages/dax/xnpv-function-dax.md b/query-languages/dax/xnpv-function-dax.md index f069b49df..551986ffb 100644 --- a/query-languages/dax/xnpv-function-dax.md +++ b/query-languages/dax/xnpv-function-dax.md @@ -5,31 +5,31 @@ title: "XNPV function (DAX)" # XNPV [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] - -Returns the present value for a schedule of cash flows that is not necessarily periodic. - -## Syntax - + +Returns the present value for a schedule of cash flows that is not necessarily periodic. + +## Syntax + ```dax -XNPV(
, , , ) +XNPV(
, , , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`table`|A table for which the values and dates expressions should be calculated.| -|`values`|An expression that returns the cash flow value for each row of the table.| -|`dates`|An expression that returns the cash flow date for each row of the table.| -|`rate`|The discount rate to apply to the cash flow for each row of the table.| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`table`|A table for which the values and dates expressions should be calculated.| +|`values`|An expression that returns the cash flow value for each row of the table.| +|`dates`|An expression that returns the cash flow date for each row of the table.| +|`rate`|The discount rate to apply to the cash flow for each row of the table.| + ## Return value -Net present value. - +Net present value. + ## Remarks -- The value is calculated as the following summation: +- The value is calculated as the following summation: $$\sum^{N}\_{j=1} \frac{P\_{j}}{(1 + \text{rate})^{\frac{d\_{j} - d\_{1}}{365}}}$$ @@ -39,24 +39,24 @@ Net present value. - $d\_{j}$ is the $j^{th}$ payment date - $d\_{1}$ is the first payment date -- The series of cash flow values must contain at least one positive number and one negative number. +- The series of cash flow values must contain at least one positive number and one negative number. - [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] ## Example -The following calculates the present value of the CashFlows table: - +The following calculates the present value of the CashFlows table: + ```dax -= XNPV( CashFlows, [Payment], [Date], 0.09 ) += XNPV( CashFlows, [Payment], [Date], 0.09 ) ``` - -|`Date`|Payment| -|--------|-----------| -|`1/1/2014`|-10000| -|`3/1/2014`|2750| -|`10/30/2014`|4250| -|`2/15/2015`|3250| -|`4/1/2015`|2750| - -Present value = 2089.50 + +|`Date`|Payment| +|--------|-----------| +|`1/1/2014`|-10000| +|`3/1/2014`|2750| +|`10/30/2014`|4250| +|`2/15/2015`|3250| +|`4/1/2015`|2750| + +Present value = 2089.50 diff --git a/query-languages/dax/year-function-dax.md b/query-languages/dax/year-function-dax.md index 8b3500b8e..f540bfa78 100644 --- a/query-languages/dax/year-function-dax.md +++ b/query-languages/dax/year-function-dax.md @@ -6,56 +6,56 @@ title: "YEAR function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns the year of a date as a four digit integer in the range 1900-9999. - -## Syntax - +Returns the year of a date as a four digit integer in the range 1900-9999. + +## Syntax + ```dax -YEAR() -``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`date`|A date in `datetime` or text format, containing the year you want to find.| - +YEAR() +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|`date`|A date in `datetime` or text format, containing the year you want to find.| + ## Return value -An integer in the range 1900-9999. - +An integer in the range 1900-9999. + ## Remarks -- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a `datetime` data type to work with dates and times. - -- Dates should be entered by using the DATE function, or as results of other formulas or functions. You can also enter dates in accepted text representations of a date, such as March 3, 2007, or Mar-3-2003. - -- Values returned by the YEAR, MONTH, and DAY functions will be Gregorian values regardless of the display format for the supplied date value. For example, if the display format of the supplied date uses the Hijri calendar, the returned values for the YEAR, MONTH, and DAY functions will be values associated with the equivalent Gregorian date. - -- When the date argument is a text representation of the date, the function uses the locale and date time settings of the client computer to understand the text value in order to perform the conversion. Errors may arise if the format of strings is incompatible with the current locale settings. For example, if your locale defines dates to be formatted as month/day/year, and the date is provided as day/month/year, then 25/1/2009 will not be interpreted as January 25th of 2009 but as an invalid date. - +- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a `datetime` data type to work with dates and times. + +- Dates should be entered by using the DATE function, or as results of other formulas or functions. You can also enter dates in accepted text representations of a date, such as March 3, 2007, or Mar-3-2003. + +- Values returned by the YEAR, MONTH, and DAY functions will be Gregorian values regardless of the display format for the supplied date value. For example, if the display format of the supplied date uses the Hijri calendar, the returned values for the YEAR, MONTH, and DAY functions will be values associated with the equivalent Gregorian date. + +- When the date argument is a text representation of the date, the function uses the locale and date time settings of the client computer to understand the text value in order to perform the conversion. Errors may arise if the format of strings is incompatible with the current locale settings. For example, if your locale defines dates to be formatted as month/day/year, and the date is provided as day/month/year, then 25/1/2009 will not be interpreted as January 25th of 2009 but as an invalid date. + ## Example -The following example returns 2007. - +The following example returns 2007. + ```dax -= YEAR("March 2007") -``` - -## Example - Date as result of expression - += YEAR("March 2007") +``` + +## Example - Date as result of expression + ### Description -The following example returns the year for today's date. - +The following example returns the year for today's date. + ```dax -= YEAR(TODAY()) -``` - += YEAR(TODAY()) +``` + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[HOUR function](hour-function-dax.md) -[MINUTE function](minute-function-dax.md) -[YEAR function](year-function-dax.md) -[SECOND function](second-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[HOUR function](hour-function-dax.md) +[MINUTE function](minute-function-dax.md) +[YEAR function](year-function-dax.md) +[SECOND function](second-function-dax.md) diff --git a/query-languages/dax/yearfrac-function-dax.md b/query-languages/dax/yearfrac-function-dax.md index f833f3c7a..31dceba13 100644 --- a/query-languages/dax/yearfrac-function-dax.md +++ b/query-languages/dax/yearfrac-function-dax.md @@ -6,57 +6,57 @@ title: "YEARFRAC function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Calculates the fraction of the year represented by the number of whole days between two dates. Use the YEARFRAC worksheet function to identify the proportion of a whole year's benefits or obligations to assign to a specific term. - -## Syntax - +Calculates the fraction of the year represented by the number of whole days between two dates. Use the YEARFRAC worksheet function to identify the proportion of a whole year's benefits or obligations to assign to a specific term. + +## Syntax + ```dax -YEARFRAC(, , ) +YEARFRAC(, , ) ``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`start_date`|The start date in `datetime` format.| -|`end_date`|The end date in `datetime` format.| -|`basis`|(Optional) The type of day count basis to use. All arguments are truncated to integers.

Basis - Description

0 - US (NASD) 30/360 (Default value)

1 - Actual/actual

2 - Actual/360

3 - Actual/365

4 - European 30/360| - + +### Parameters + +|Term|Definition| +|--------|--------------| +|`start_date`|The start date in `datetime` format.| +|`end_date`|The end date in `datetime` format.| +|`basis`|(Optional) The type of day count basis to use. All arguments are truncated to integers.

Basis - Description

0 - US (NASD) 30/360 (Default value)

1 - Actual/actual

2 - Actual/360

3 - Actual/365

4 - European 30/360| + ## Return value -A decimal number. The internal data type is a signed IEEE 64-bit (8-byte) double-precision floating-point number. - +A decimal number. The internal data type is a signed IEEE 64-bit (8-byte) double-precision floating-point number. + ## Remarks -- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a `datetime` format to work with dates and times. If you need to view dates as serial numbers, you can use the formatting options in Excel. - -- If `start_date` or `end_date` are not valid dates, YEARFRAC returns an error. - -- If `basis` < 0 or if `basis` > 4, YEARFRAC returns an error. - +- In contrast to Microsoft Excel, which stores dates as serial numbers, DAX uses a `datetime` format to work with dates and times. If you need to view dates as serial numbers, you can use the formatting options in Excel. + +- If `start_date` or `end_date` are not valid dates, YEARFRAC returns an error. + +- If `basis` < 0 or if `basis` > 4, YEARFRAC returns an error. + ## Example 1 -The following example returns the fraction of a year represented by the difference between the dates in the two columns, `TransactionDate` and `ShippingDate`: - +The following example returns the fraction of a year represented by the difference between the dates in the two columns, `TransactionDate` and `ShippingDate`: + ```dax -= YEARFRAC(Orders[TransactionDate],Orders[ShippingDate]) += YEARFRAC(Orders[TransactionDate],Orders[ShippingDate]) ``` - + ## Example 2 -The following example returns the fraction of a year represented by the difference between the dates, January 1 and March 1: - +The following example returns the fraction of a year represented by the difference between the dates, January 1 and March 1: + ```dax -= YEARFRAC("Jan 1 2007","Mar 1 2007") += YEARFRAC("Jan 1 2007","Mar 1 2007") ``` -Use four-digit years whenever possible, to avoid getting unexpected results. When the year is truncated, the current year is assumed. When the date is or omitted, the first date of the month is assumed. - -The second argument, `basis`, has also been omitted. Therefore, the year fraction is calculated according to the US (NASD) 30/360 standard. - +Use four-digit years whenever possible, to avoid getting unexpected results. When the year is truncated, the current year is assumed. When the date is or omitted, the first date of the month is assumed. + +The second argument, `basis`, has also been omitted. Therefore, the year fraction is calculated according to the US (NASD) 30/360 standard. + ## Related content -[Date and time functions](date-and-time-functions-dax.md) -[WEEKNUM function](weeknum-function-dax.md) -[YEARFRAC function](yearfrac-function-dax.md) -[WEEKDAY function](weekday-function-dax.md) +[Date and time functions](date-and-time-functions-dax.md) +[WEEKNUM function](weeknum-function-dax.md) +[YEARFRAC function](yearfrac-function-dax.md) +[WEEKDAY function](weekday-function-dax.md) diff --git a/query-languages/dax/yield-function-dax.md b/query-languages/dax/yield-function-dax.md index ba6f91986..f6c08ae0f 100644 --- a/query-languages/dax/yield-function-dax.md +++ b/query-languages/dax/yield-function-dax.md @@ -18,8 +18,8 @@ YIELD(, , , , , [, , , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`pr`|The security's price per \\$100 face value.| diff --git a/query-languages/dax/yieldmat-function-dax.md b/query-languages/dax/yieldmat-function-dax.md index 7d4f08b30..c863c5414 100644 --- a/query-languages/dax/yieldmat-function-dax.md +++ b/query-languages/dax/yieldmat-function-dax.md @@ -18,8 +18,8 @@ YIELDMAT(, , , , [, ]) ### Parameters -|Term|Definition| -|--------|--------------| +|Term|Definition| +|--------|--------------| |`settlement`|The security's settlement date. The security settlement date is the date after the issue date when the security is traded to the buyer.| |`maturity`|The security's maturity date. The maturity date is the date when the security expires.| |`issue`|The security's issue date.| From f40616becfb2daa4c85dea4277a9467ddcf54905 Mon Sep 17 00:00:00 2001 From: Jason Howell <5067358+JasonWHowell@users.noreply.github.com> Date: Wed, 18 Dec 2024 20:31:56 -0800 Subject: [PATCH 682/934] Update range-function-dax.md --- query-languages/dax/range-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 69889b043..d859012a2 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -1,5 +1,5 @@ --- -description: "Learn more about: RANGE" +description: "Learn more about: RANGE function" title: "RANGE function (DAX)" ms.service: powerbi ms.subservice: dax @@ -11,7 +11,7 @@ recommendations: false --- -# RANGE +# RANGE [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] From fd0a0c405ecd4757c37ae8b9dac2e553dc71d402 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 20 Dec 2024 09:47:14 -0800 Subject: [PATCH 683/934] Added commonly used types to type conversion article --- query-languages/m/m-spec-types.md | 16 +---- query-languages/m/type-conversion.md | 99 +++++++++++++++++++++++++--- query-languages/m/type-functions.md | 4 +- 3 files changed, 94 insertions(+), 25 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 7e09ac3fc..b5700213c 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -129,23 +129,9 @@ Types in the M language form a disjoint hierarchy rooted at type `any`, which is * `type record`, which classifies record values. * `type table`, which classifies table values. * `type function`, which classifies function values. -* `type anynonnull`, which classifies all values excluding null. +* `type anynonnull`, which classifies all values excluding null. * `type none`, which classifies no values. -Additional types that don't have shorthand monikers are: - -* `Byte.Type`, which classifies an 8-bit number value. -* `Int8.Type`, which classifies an 8-bit number value. -* `Int16.Type`, which classifies a 16-bit number value. -* `Int32.Type`, which classifies a 32-bit number value. -* `Int64.Type`, which classifies a 64-bit number value. -* `Single.Type`, which classifies a 9-digit floating number value. -* `Double.Type`, which classifies a 17-digit floating number value. -* `Decimal.Type`, which classifies a 15-digit floating number value. -* `Currency.Type`, which classifies a 19-digit number value with four digits to the right of the "." separator. -* `Percentage.Type`, which classifies a 15-digit number value with a mask to format the value as a percentage. -* `Guid.Type`, which classifies a GUID text value. - ## Any Type The type `any` is abstract, classifies all values in M, and all types in M are compatible with `any`. Variables of type `any` can be bound to all possible values. Since `any` is abstract, it cannot be ascribed to values—that is, no value is directly of type `any`. diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index dfa5fda1e..946bfb1ab 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -1,16 +1,99 @@ --- -description: "Learn more about: Type conversion" -title: "Type conversion" +description: "Learn more about: Types and type conversion" +title: "Types and type conversion" ms.topic: conceptual -ms.date: 10/7/2024 +ms.date: 12/20/2024 ms.custom: "nonautomated-date" --- -# Type conversion +# Types and type conversion + +Power Query M uses types to classify values to have a more structured data set. This article describes the most commonly-used M types and how to convert one type to another type. + +## Commonly-used types + +Data types refers to any type that's used to clarify the structure of specific data. The most commonly used data types used are primitive types. These types include: + +* `type any`, which classifies any value. +* `type null`, which classifies the null value. +* `type logical`, which classifies the values true and false. +* `type number`, which classifies number values. +* `type time`, which classifies time values. +* `type date`, which classifies date values. +* `type datetime`, which classifies datetime values. +* `type datetimezone`, which classifies datetimezone values. +* `type duration`, which classifies duration values. +* `type text`, which classifies text values. +* `type binary`, which classifies binary values. +* `type type`, which classifies type values. +* `type list`, which classifies list values. +* `type record`, which classifies record values. +* `type table`, which classifies table values. +* `type function`, which classifies function values. +* `type anynonnull`, which classifies all values excluding null. +* `type none`, which classifies no values. + +For more information about these types, go to [Types](m-spec-types.md). + +In addition to these common data types, there are also a set of data types using the format `*.Type`. The most commonly used data types of this format are: + +* `Byte.Type`, which classifies an 8-bit number value. +* `Int8.Type`, which classifies an 8-bit number value. +* `Int16.Type`, which classifies a 16-bit number value. +* `Int32.Type`, which classifies a 32-bit number value. +* `Int64.Type`, which classifies a 64-bit number value. +* `Single.Type`, which classifies a 9-digit floating number value. +* `Double.Type`, which classifies a 17-digit floating number value. +* `Decimal.Type`, which classifies a 15-digit floating number value. +* `Currency.Type`, which classifies a 19-digit number value with four digits to the right of the "." separator. +* `Percentage.Type`, which classifies a 15-digit number value with a mask to format the value as a percentage. +* `Guid.Type`, which classifies a GUID text value. + +The primitive types can also be written in the `*.Type` format as well. Therefore, you can write `number` as `Number.Type`, `record` as `Record.Type`, and so on. + +When you use any of these types, be aware that, like all M code, these types are case-sensitive. + +The following table contains more information about each of these types. + +|Data type | Description| +|----------|------------| +|`any`|The `any` data type is the status given when a value doesn't have an explicit data type definition. The `any` type is the data type that classifies all values.| +|`binary`|The `binary` data type can be used to represent any other data with a binary format.| +|`type`| A value that classifies other values. For more information, go to [Types](m-spec-types.md). | +|`null`| Represents the absence of a value, or a value of indeterminate or unknown state. | +|`anynonnull`| Represents any type that is nonnullable.| +|`date` | Represents just a date (no time portion).| +|`time`|Represents just time (no date portion)| +|`datetime` |Represents both a date and time value. The time portion of a date is stored as a fraction to whole multiples of 1/300 seconds (3.33 ms). Dates between the years 1900 and 9999 are supported.| +|`datetimezone` |Represents a UTC date and time with a time-zone offset.| +|`duration`| Represents a length of time. This type can be added or subtracted from a `datetime` field with correct results. For more information, go to [Duration](m-spec-values.md#duration).| +|`text`|A Unicode character data string. Can be strings, numbers, or dates represented in a text format. Maximum string length is 268,435,456 Unicode characters (where each Unicode character is two bytes) or 536,870,912 bytes.| +|`logical`|A Boolean value of either `true` or `false`.| +|`list`| A value which produces a sequence of values when enumerated. For more information, go to [List types](m-spec-types.md#list-types) and [List values](m-spec-values.md#list).| +|`record`| An ordered sequence of fields. Each field contains a field name and field value. For more information, go to [Record types](m-spec-types.md#record-types) and [Record values](m-spec-values.md#record).| +|`table`| An ordered sequence of rows divided into columns. For more information, go to [Table types](m-spec-types.md#table-types) and [Table values](m-spec-values.md#table).| +|`function`| A value that maps a set of arguments to a single value. For more information, go to [Functions](m-spec-functions.md) and [Function types](m-spec-types.md#function-types).| +|`number`| Represents any number used for numeric and arithmetic operations. For more information, go to [Number](m-spec-values.md#number).| +|`Decimal.Type`|Represents a 64-bit (eight-byte) floating-point number. It's the most common number type, and corresponds to numbers as you usually think of them. Although designed to handle numbers with fractional values, it also handles whole numbers. The `Decimal.Type` can handle negative values from –1.79E +308 through –2.23E –308, 0, and positive values from 2.23E –308 through 1.79E + 308. For example, numbers like 34, 34.01, and 34.000367063 are valid decimal numbers. The largest precision that can be represented in a `Decimal.Type` is 15 digits long. The decimal separator can occur anywhere in the number. The `Decimal.Type` corresponds to how Excel stores its numbers. Note that a binary floating-point number can't represent all numbers within its supported range with 100% accuracy. Thus, minor differences in precision might occur when representing certain decimal numbers.| +| `Currency.Type` | This data type has a fixed location for the decimal separator. The decimal separator always has four digits to its right and allows for 19 digits of significance. The largest value it can represent is 922,337,203,685,477.5807 (positive or negative). Unlike `Decimal.Type`, the `Currency.Type` is always precise and is thus useful in cases where the imprecision of floating-point notation might introduce errors.| +|`Percentage.Type` | Fundamentally the same as a `Decimal.Type`, but it has a mask to format the values as a percentage value.| +|`Int8.Type`| Represents an 8-bit (one-byte) signed integer value. Because it's an integer, it has no digits to the right of the decimal place. It allows for 3 digits; a positive or negative whole number between –128 and 127. As with the `Currency.Type`, the `Int8.Type` can be useful in cases where you need to control rounding.| +|`Int16.Type`| Represents a 16-bit (two-byte) signed integer value. Because it's an integer, it has no digits to the right of the decimal place. It allows for 6 digits; a positive or negative whole number between –32,768 (–2^15) and 32,767 (2^15-1). As with the `Currency.Type`, the `Int16.Type` can be useful in cases where you need to control rounding.| +|`Int32.Type`| Represents a 32-bit (four-byte) signed integer value. Because it's an integer, it has no digits to the right of the decimal place. It allows for 10 digits; a positive or negative whole number between –2,147,483,648 (–2^31) and 2,147,483,647 (2^31–1). As with the `Currency.Type`, the `Int32.Type` can be useful in cases where you need to control rounding.| +|`Int64.Type` | Represents a 64-bit (eight-byte) signed integer value. Because it's an integer, it has no digits to the right of the decimal place. It allows for 19 digits; a positive or negative whole numbers between –9,223,372,036,854,775,808 (–2^63) and 9,223,372,036,854,775,807 (2^63–1). It can represent the largest possible precision of the various numeric data types. As with the `Currency.Type`, the `Int64.Type` can be useful in cases where you need to control rounding. | +|`Byte.Type`| Represents an 8-bit (one-byte) unsigned integer value. Because it's an unsigned integer, it has no digits to the right of the decimal place and can only contain positive values. It allows for 3 digits; a positive number between 0 and 255.| +|`Single.Type`| Represents a single-precision floating-point number. It has an approximate range of –3.99 X 1038 to 3.99 X 1038 and supports approximately 9 digits of precision. It can also represent positive and negative infinity, and NaN (Not a Number).| +|`Double.Type`| Represents a double-precision floating-point number. It has an approximate range of –1.7976931348623158 X 10307 to 1.7976931348623158 X 10307 and supports approximately 17 digits of precision. It can also represent positive and negative infinity, and NaN (Not a Number).| +|`Guid.Type`| Represents a 128-bit text value consisting of 32 hexidecimal values using the form factor of \<8 hex values>-\<4 hex values>-\<4 hex values>-\<4 hex values>-\<12 hex values>, which make up the GUID value.| +|`none`|The data type that classifies no values. | + +The only other commonly used `*.Type` values are enumerations. For more information, go to [Enumerations](enumerations.md). + +## Type conversion The Power Query M formula language has formulas to convert between types. The following is a summary of conversion formulas in M. -## Number +### Number |Type conversion|Description| |-------------------|---------------| @@ -28,13 +111,13 @@ The Power Query M formula language has formulas to convert between types. The fo |Currency.From(value as any) as number|Returns a Currency number value from the given value.| |Percentage.From(value as any) as number|Returns a Percentage number value from the given value.| -## Text +### Text |Type conversion|Description| |-------------------|---------------| |Text.From(value as any) as text|Returns the text representation of a number, date, time, datetime, datetimezone, logical, duration, or binary value.| -## Logical +### Logical |Type conversion|Description| |-------------------|---------------| @@ -42,7 +125,7 @@ The Power Query M formula language has formulas to convert between types. The fo |Logical.ToText(logical as logical) as text|Returns a text value from a logical value.| |Logical.From(value as any) as logical|Returns a logical value from a value.| -## Date, Time, DateTime, and DateTimeZone +### Date, Time, DateTime, and DateTimeZone |Type conversion|Description| |-------------------|---------------| diff --git a/query-languages/m/type-functions.md b/query-languages/m/type-functions.md index 3e9c1e6e5..918fc46fa 100644 --- a/query-languages/m/type-functions.md +++ b/query-languages/m/type-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Type functions" title: "Type functions" -ms.date: 5/16/2022 +ms.date: 10/24/2024 ms.custom: "nonautomated-date" --- # Type functions @@ -13,7 +13,7 @@ These functions create and manipulate type values. |[Type.AddTableKey](type-addtablekey.md)|Add a key to a table type.| |[Type.ClosedRecord](type-closedrecord.md)|The given type must be a record type returns a closed version of the given record type (or the same type, if it is already closed)| |[Type.Facets](type-facets.md) | Returns the facets of a type.| -|[Type.ForFunction](type-forfunction.md)|Creates a function type from the given .| +|[Type.ForFunction](type-forfunction.md)|Returns a type that represents functions with specific parameter and return type constraints.| |[Type.ForRecord](type-forrecord.md)|Returns a Record type from a fields record.| |[Type.FunctionParameters](type-functionparameters.md)|Returns a record with field values set to the name of the parameters of a function type, and their values set to their corresponding types.| |[Type.FunctionRequiredParameters](type-functionrequiredparameters.md)|Returns a number indicating the minimum number of parameters required to invoke the a type of function.| From f8536d043fb1b88cb9710fc44fae67080c8e1ce6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 20 Dec 2024 10:00:18 -0800 Subject: [PATCH 684/934] Update table of contents --- query-languages/m/toc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 1b894b604..c26e61d78 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -42,7 +42,7 @@ items: href: evaluation-model.md - name: Operators href: operators.md - - name: Type conversion + - name: Types and type conversion href: type-conversion.md - name: Metadata href: metadata.md From a4eb3632b8182bc6f5c7e046e68f6b8ab2a97e97 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 2 Jan 2025 18:49:09 -0500 Subject: [PATCH 685/934] Update type-is.md --- query-languages/m/type-is.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index 7c9a38270..4724880f3 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -14,7 +14,7 @@ Type.Is(type1 as type, type2 as type) as logical Determines if a value of `type1` is always compatible with `type2`. -Parameter `type2` is expected to be a nullable primitive type. When this requirement is not met, this function's behavior is undefined and so should not be relied on. +Parameter `type2` should be a primitive type value or a nullable primitive type value. When this requirement is not met, this function's behavior is undefined and so should not be relied on. ## Example 1 From da75a6bc3d25ecbca6170789610603a85c1f140c Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 3 Jan 2025 15:05:34 -0500 Subject: [PATCH 686/934] Reworking to primitive or nullable primitive --- query-languages/m/m-spec-operators.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 508abaec8..4613e9f22 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -2,7 +2,7 @@ title: M Language Operators description: Describes using operators in the Power Query M formula language ms.topic: conceptual -ms.date: 5/25/2023 +ms.date: 1/23/2025 ms.custom: "nonautomated-date" --- @@ -1280,7 +1280,7 @@ The type assertion operator `x as y` is defined for the following types of value | --- | --- | --- | | `type any` | _primitive-or-nullable-primitive-type_ | `type any` | -The expression `x as y` asserts that the value `x` is compatible with `y` as per the `is` operator. If it is not compatible, an error is raised. `y` must be a _primitive-or-nullable-primitive-type_. +The expression `x as y` asserts that the value `x` is compatible with `y` as per the `is` operator. If it is not compatible, an error is raised. `y` must be a primitive type or a nullable primitive type. _as-expression:
      equality-expression
From 4e9de2f508b6179c2f030da5bbb7e218ee8db3a5 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 3 Jan 2025 15:08:19 -0500 Subject: [PATCH 687/934] Migrating to primitive or nullable primitive --- query-languages/m/m-spec-types.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 3ab1d10c4..a1fb2caef 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -2,7 +2,7 @@ title: M Language types description: Describes using types in the Power Query M formula language ms.topic: conceptual -ms.date: 1/31/2024 +ms.date: 1/3/2025 ms.custom: "nonautomated-date" --- @@ -26,7 +26,7 @@ A _type value_ is a value that _classifies_ other values. A value that is classi The set of _primitive types_ includes the types of primitive values, and a number of _abstract types_, which are types that do not uniquely classify any values: `function`, `table`, `any`, `anynonnull` and `none`. All function values conform to the abstract type `function`, all table values to the abstract type `table`, all values to the abstract type `any`, all non-null values to the abstract type `anynonnull`, and no values to the abstract type `none`. An expression of type `none` must raise an error or fail to terminate since no value could be produced that conforms to type `none`. Note that the primitive types `function` and `table` are abstract because no function or table is directly of those types, respectively. The primitive types `record` and `list` are non-abstract because they represent an open record with no defined fields and a list of type any, respectively. -The set of _primitive types_ plus their nullable counterparts are known as the _primitive-or-nullable-primitive-types_ or alternately as the _non-custom types_. +All types that are not members of the closed set of primitive types plus their nullable counterparts are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: _primitive-type:_ one of
      `any anynonnull binary date datetime datetimezone duration function list logical`
@@ -365,7 +365,7 @@ Value.Type( Value.ReplaceType( {1}, type {number} ) Type equivalence is not defined in M. An M implementation may optionally choose to use its own rules to perform equality comparisons between type values. Comparing two type values for equality should evaluate to `true` if they are considered identical by the implementation, and `false` otherwise. In either case, the response returned must be consistent if the same two values are repeatedly compared. Note that within a given implementation, comparing some identical type values (such as `(type text) = (type text)`) may return `true`, while comparing others (such as `(type [a = text]) = (type [a = text])`) may not. -Compatibility between a given type and a _non-custom type_ can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first and a _primitive or nullable primitive_ value as its second argument: +Compatibility between a given type and either a primitive type or a nullable primitive type can be determined using the library function `Type.Is`, which accepts an arbitrary type value as its first argument and a primitive or nullable primitive type value as its second argument: ```powerquery-m Type.Is(type text, type nullable text) // true From 590963547df7e125e467254059e5d40dd4a05314 Mon Sep 17 00:00:00 2001 From: Whitney Henderson <13474870+whhender@users.noreply.github.com> Date: Mon, 6 Jan 2025 12:27:15 -0500 Subject: [PATCH 688/934] Adding culture and type references --- query-languages/m/table-transformcolumntypes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 22e4b23ee..32d342654 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -13,7 +13,7 @@ Table.TransformColumnTypes(table as table, typeTransformations as ## About -Returns a table from the input `table` by applying the transform operation to the columns specified in the parameter `typeTransformations` (where format is { column name, type name}), using the specified culture in the optional parameter `culture` (for example, "en-US"). If the column doesn't exist, an exception is thrown. +Returns a table from the input `table` by applying the transform operation to the columns specified in the parameter `typeTransformations` (where format is { column name, [type](/powerquery-m/m-spec-types#primitive-types) name}), using the specified culture in the optional parameter [`culture`](/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c) (for example, "en-US"). If the column doesn't exist, an exception is thrown. ## Example 1 From b7b31384036b58120f55ff9bb6e5457b8917ed8d Mon Sep 17 00:00:00 2001 From: Kate Follis <28766705+kfollis@users.noreply.github.com> Date: Mon, 6 Jan 2025 11:59:45 -0800 Subject: [PATCH 689/934] New PR to replace 764 and public 237 --- query-languages/dax/first-function-dax.md | 2 +- query-languages/dax/index-function-dax.md | 2 +- query-languages/dax/last-function-dax.md | 2 +- query-languages/dax/movingaverage-function-dax.md | 2 +- query-languages/dax/next-function-dax.md | 2 +- query-languages/dax/offset-function-dax.md | 2 +- query-languages/dax/previous-function-dax.md | 2 +- query-languages/dax/range-function-dax.md | 2 +- query-languages/dax/rank-function-dax.md | 2 +- query-languages/dax/rownumber-function-dax.md | 2 +- query-languages/dax/runningsum-function-dax.md | 2 +- query-languages/dax/userculture-function-dax.md | 2 -- query-languages/dax/window-function-dax.md | 2 +- 13 files changed, 12 insertions(+), 14 deletions(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index fbd07f4c8..d63260132 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -22,7 +22,7 @@ FIRST ( [, ][, ][, reset] ) |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 497383157..bd4fafd0b 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -26,7 +26,7 @@ INDEX([, or ][, ][, ][, This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A `PARTITIONBY()` clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A `MATCHBY()` clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 45b8679f4..24b74d910 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -22,7 +22,7 @@ LAST ( [, ][, ][, reset] ) |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index b2754cc25..97ed3793f 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -32,7 +32,7 @@ MOVINGAVERAGE ( , [, ][, ][, ] |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |`axis`|(Optional) An axis reference, the direction along which the moving average will be calculated.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index f83241f73..be66cef00 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -23,7 +23,7 @@ NEXT ( [, ][, ][, ][, reset] ) |`steps`| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 4427ffaa8..8663b13f0 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -26,7 +26,7 @@ OFFSET ( [, or ][, ][, ][, This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index 9b00d9636..013b226c3 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -23,7 +23,7 @@ PREVIOUS ( [, ][, ][, ][, reset] ) |`steps`| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, `1` is used (the exactly previous row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Specifies how the calculation restarts. Valid values are: `None`, `LowestParent`, `HighestParent`, or an integer. None is the default value.| +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index d859012a2..8215fb8da 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -31,7 +31,7 @@ RANGE ( [, ][, ][, ][, ] ) |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |`axis`|(Optional) An axis reference, the direction along which the interval will be created.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 547b051d5..45587b333 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -27,7 +27,7 @@ RANK ( [][, or ][, ][, ][, |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `KEEP` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 5b3cb2040..73659d11b 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -25,7 +25,7 @@ ROWNUMBER ( [ or ][, ][, ][, ][, < |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 929d91a8e..0924772cd 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -30,7 +30,7 @@ RUNNINGSUM ( [, ][, ][, ] ) |`column`|The column that provides the value for each element.| |`axis`|(Optional) An axis reference, the direction along which the running sum will be calculated.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| -|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | +|`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/userculture-function-dax.md b/query-languages/dax/userculture-function-dax.md index 81a0ee2dc..873a6b80e 100644 --- a/query-languages/dax/userculture-function-dax.md +++ b/query-languages/dax/userculture-function-dax.md @@ -8,8 +8,6 @@ title: "USERCULTURE function (DAX)" Returns the locale \(language code-country code) for the current user, determined by the operating system, browser settings, or Power BI service. -**Note:** This function is currently supported in Power BI Premium per capacity, Power BI Premium per user, and Power BI Embedded only. - ## Syntax ```dax diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 7f3c64346..fd2bd5e1a 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -29,7 +29,7 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| |`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| |`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | -|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: `NONE`, `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1. | +|`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value From d4adeb2bd8f0e2de20449358ae34a4c9034f8aaa Mon Sep 17 00:00:00 2001 From: Whitney Henderson <13474870+whhender@users.noreply.github.com> Date: Mon, 6 Jan 2025 15:01:50 -0500 Subject: [PATCH 690/934] Update table-transformcolumntypes.md --- query-languages/m/table-transformcolumntypes.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 32d342654..62a79949c 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -13,7 +13,10 @@ Table.TransformColumnTypes(table as table, typeTransformations as ## About -Returns a table from the input `table` by applying the transform operation to the columns specified in the parameter `typeTransformations` (where format is { column name, [type](/powerquery-m/m-spec-types#primitive-types) name}), using the specified culture in the optional parameter [`culture`](/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c) (for example, "en-US"). If the column doesn't exist, an exception is thrown. +Returns a table from the input `table` by applying the transform operation to the columns specified in the parameter `typeTransformations` (where format is {column name, type name}), using the specified culture in the optional parameter `culture` (for example, "en-US"). If the column doesn't exist, an exception is thrown. + +- [Type](/powerquery-m/type-conversion) - Power Query M uses types to classify values to have a more structured data set. The article linked describes the most commonly used types. +- [Culture](/powerquery-m/how-culture-affects-text-formatting) - The default culture is set to the system locale ([Windows](/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c), MacOS) of a particular document where your queries are first authored. ## Example 1 From ffb709f6011767d14af90619f175faeaeb65e97c Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 6 Jan 2025 15:37:44 -0800 Subject: [PATCH 691/934] responding to PR review and fixing a small typo I spotted as well --- query-languages/dax/dax - Shortcut.lnk | Bin 1528 -> 0 bytes .../samplecartesianpointsbycover-function-dax.md | 10 +++++----- query-languages/dax/toc.yml | 2 ++ 3 files changed, 7 insertions(+), 5 deletions(-) delete mode 100644 query-languages/dax/dax - Shortcut.lnk diff --git a/query-languages/dax/dax - Shortcut.lnk b/query-languages/dax/dax - Shortcut.lnk deleted file mode 100644 index 0fe2e81d24c1ca48e98f7e1aea7e8f0724114d9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1528 zcmbVMS!h#16g`Ps-BYdFic7616-`asXlt=r=xTkKYAjlKNJA5AHFk@^1YC-sxWyGw z+$f>ykNpsFscY3Qf3zyNAtHVi7sL-mM8tFFrO!k^1m|(?%-nZp&b@c;j0V7xVxwy*!bUPRl0o+Kn)^AUHY}|!T~=e?!qBwXo)IlK8qu6l*;5mNQ6l2n{xg+m zK~TjKroUb?)G;1Ani(CC%E*jd$v*KMRVIhiY?l6+2yw}(pUqF{IEG!5i8UVCsvj0Meb3ESm{oDPkGDg&vAOHC-ciiQcfc&c^=wSOw_R>_D z*!>%f8L;C-Qd`Z;yV}*Sk3QTVRB~l&{q5dG3wx8dO|e-ol?8kM^?ws1V_COLlCs@Z z?vIX}FN?9O{M@&m(H()+87dAoaM*$pkf`1+60ho>J~{~$=cx_{zK4&i2LW)pJ=xmZIunN+pQl~n69I37u;LPO;p^=?Ukru%ZI%h14=!H0CLW{&(^Ew2b5t49!Ob>FKe^S;EK zU0at~c;s>NrKjk2y-4km#7q(c@k4It|DHkO`TTvpx*4Icfk`qFb7AcIlFmqT#kq>2 ktd7Fa-ig$&5rYb1bK9%J&MnVeM{Nfdp8U2??wr|v0Rz=A!T,
, , [, ] [, Date: Tue, 7 Jan 2025 16:52:02 -0500 Subject: [PATCH 692/934] Tweaks from Ehren Co-authored-by: Ehren --- query-languages/m/type-is.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index 4724880f3..6a90b48f3 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -14,7 +14,7 @@ Type.Is(type1 as type, type2 as type) as logical Determines if a value of `type1` is always compatible with `type2`. -Parameter `type2` should be a primitive type value or a nullable primitive type value. When this requirement is not met, this function's behavior is undefined and so should not be relied on. +Parameter `type2` should be a primitive (or nullable primitive) type value. Otherwise, this function's behavior is undefined and shouldn't be relied on. ## Example 1 From c0d6bd2700a9596368c4b23648f3cc8d6903ee0f Mon Sep 17 00:00:00 2001 From: Courtney Wales <62625502+Court72@users.noreply.github.com> Date: Fri, 10 Jan 2025 15:31:38 -0700 Subject: [PATCH 693/934] Apply suggestions from PR review --- query-languages/m/type-conversion.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index b52716c22..9b547875a 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -13,7 +13,7 @@ Power Query M uses types to classify values to have a more structured data set. ## Commonly-used types -Data types refers to any type that's used to clarify the structure of specific data. The most commonly used data types used are primitive types. These types include: +Data types refers to any type that's used to clarify the structure of specific data. The most commonly used data types are primitive types. These types include: * `type any`, which classifies any value. * `type null`, which classifies the null value. @@ -36,7 +36,7 @@ Data types refers to any type that's used to clarify the structure of specific d For more information about these types, go to [Types](m-spec-types.md). -In addition to these common data types, there are also a set of data types using the format `*.Type`. The most commonly used data types of this format are: +In addition to these common data types, there is also a set of data types using the format `*.Type`. The most commonly used data types of this format are: * `Byte.Type`, which classifies an 8-bit number value. * `Int8.Type`, which classifies an 8-bit number value. @@ -64,7 +64,7 @@ The following table contains more information about each of these types. |`null`| Represents the absence of a value, or a value of indeterminate or unknown state. | |`anynonnull`| Represents any type that is nonnullable.| |`date` | Represents just a date (no time portion).| -|`time`|Represents just time (no date portion)| +|`time`|Represents just time (no date portion).| |`datetime` |Represents both a date and time value. The time portion of a date is stored as a fraction to whole multiples of 1/300 seconds (3.33 ms). Dates between the years 1900 and 9999 are supported.| |`datetimezone` |Represents a UTC date and time with a time-zone offset.| |`duration`| Represents a length of time. This type can be added or subtracted from a `datetime` field with correct results. For more information, go to [Duration](m-spec-values.md#duration).| @@ -81,11 +81,11 @@ The following table contains more information about each of these types. |`Int8.Type`| Represents an 8-bit (one-byte) signed integer value. Because it's an integer, it has no digits to the right of the decimal place. It allows for 3 digits; a positive or negative whole number between –128 and 127. As with the `Currency.Type`, the `Int8.Type` can be useful in cases where you need to control rounding.| |`Int16.Type`| Represents a 16-bit (two-byte) signed integer value. Because it's an integer, it has no digits to the right of the decimal place. It allows for 6 digits; a positive or negative whole number between –32,768 (–2^15) and 32,767 (2^15-1). As with the `Currency.Type`, the `Int16.Type` can be useful in cases where you need to control rounding.| |`Int32.Type`| Represents a 32-bit (four-byte) signed integer value. Because it's an integer, it has no digits to the right of the decimal place. It allows for 10 digits; a positive or negative whole number between –2,147,483,648 (–2^31) and 2,147,483,647 (2^31–1). As with the `Currency.Type`, the `Int32.Type` can be useful in cases where you need to control rounding.| -|`Int64.Type` | Represents a 64-bit (eight-byte) signed integer value. Because it's an integer, it has no digits to the right of the decimal place. It allows for 19 digits; a positive or negative whole numbers between –9,223,372,036,854,775,808 (–2^63) and 9,223,372,036,854,775,807 (2^63–1). It can represent the largest possible precision of the various numeric data types. As with the `Currency.Type`, the `Int64.Type` can be useful in cases where you need to control rounding. | +|`Int64.Type` | Represents a 64-bit (eight-byte) signed integer value. Because it's an integer, it has no digits to the right of the decimal place. It allows for 19 digits; a positive or negative whole number between –9,223,372,036,854,775,808 (–2^63) and 9,223,372,036,854,775,807 (2^63–1). It can represent the largest possible precision of the various numeric data types. As with the `Currency.Type`, the `Int64.Type` can be useful in cases where you need to control rounding. | |`Byte.Type`| Represents an 8-bit (one-byte) unsigned integer value. Because it's an unsigned integer, it has no digits to the right of the decimal place and can only contain positive values. It allows for 3 digits; a positive number between 0 and 255.| |`Single.Type`| Represents a single-precision floating-point number. It has an approximate range of –3.99 X 1038 to 3.99 X 1038 and supports approximately 9 digits of precision. It can also represent positive and negative infinity, and NaN (Not a Number).| |`Double.Type`| Represents a double-precision floating-point number. It has an approximate range of –1.7976931348623158 X 10307 to 1.7976931348623158 X 10307 and supports approximately 17 digits of precision. It can also represent positive and negative infinity, and NaN (Not a Number).| -|`Guid.Type`| Represents a 128-bit text value consisting of 32 hexidecimal values using the form factor of \<8 hex values>-\<4 hex values>-\<4 hex values>-\<4 hex values>-\<12 hex values>, which make up the GUID value.| +|`Guid.Type`| Represents a 128-bit text value consisting of 32 hexadecimal values using the form factor of \<8 hex values>-\<4 hex values>-\<4 hex values>-\<4 hex values>-\<12 hex values>, which make up the GUID value.| |`none`|The data type that classifies no values. | The only other commonly used `*.Type` values are enumerations. For more information, go to [Enumerations](enumerations.md). From a21616e68e5470dc8e93541a5db380b2f8141c08 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 13 Jan 2025 15:31:20 -0800 Subject: [PATCH 694/934] Added type links to appropriate articles --- query-languages/m/m-spec-types.md | 5 +++++ query-languages/m/power-query-m-type-system.md | 13 +++++-------- query-languages/m/sharptable.md | 4 ++++ query-languages/m/table-addcolumn.md | 4 ++++ query-languages/m/table-addindexcolumn.md | 4 ++++ query-languages/m/table-columnsoftype.md | 4 ++++ query-languages/m/table-combinecolumnstorecord.md | 4 ++++ query-languages/m/table-duplicatecolumn.md | 4 ++++ query-languages/m/table-frompartitions.md | 4 ++++ query-languages/m/table-transformcolumntypes.md | 1 + query-languages/m/type-closedrecord.md | 4 ++++ query-languages/m/type-conversion.md | 5 +++++ query-languages/m/type-is.md | 4 ++++ query-languages/m/type-isnullable.md | 4 ++++ query-languages/m/type-listitem.md | 4 ++++ query-languages/m/type-nonnullable.md | 4 ++++ query-languages/m/type-openrecord.md | 4 ++++ query-languages/m/type-recordfields.md | 4 ++++ query-languages/m/type-tablerow.md | 4 ++++ query-languages/m/type-tableschema.md | 4 ++++ 20 files changed, 80 insertions(+), 8 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 49df6a848..71314ae04 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -398,3 +398,8 @@ Type.FunctionReturn( type function (x as number, optional y as text) as number) // type number ``` + +## Related content + +* [Types and type conversion](type-conversion) +* [Types in the Power Query M formula language](power-query-m-type-system.md) diff --git a/query-languages/m/power-query-m-type-system.md b/query-languages/m/power-query-m-type-system.md index ac15ddda3..dd914a56a 100644 --- a/query-languages/m/power-query-m-type-system.md +++ b/query-languages/m/power-query-m-type-system.md @@ -170,12 +170,9 @@ _An open record type is compatible with another open record type with one fewer (47) _ta_ ∈ _TT_ = (_Φ_, ⟨i, ⟨n, _ua_⟩⟩), _tb_ ∈ _TT_ = (_Φ_, ⟨i, ⟨n, _ub_⟩⟩) ∧ _ua_ ≤ _ub_ → _ta_ ≤ _tb_
_A table type is compatible with a second table type, which is identical but for one column having a differing type, when the types for that column are compatible._ -## REFERENCES +## Related content -Microsoft Corporation (2015 August)
-Microsoft Power Query for Excel Formula Language Specification [PDF]
-Retrieved from https://msdn.microsoft.com/library/mt807488.aspx - -Microsoft Corporation (n.d.)
-Power Query M function reference [web page]
-Retrieved from https://msdn.microsoft.com/library/mt779182.aspx +* [Power Query M language specification](power-query-m-language-specification.md) +* [Power Query M function reference](power-query-m-function-reference.md) +* [Types and type conversion](type-conversion.md) +* [Types](m-spec-types.md) diff --git a/query-languages/m/sharptable.md b/query-languages/m/sharptable.md index 9b597ca8a..d3bf66331 100644 --- a/query-languages/m/sharptable.md +++ b/query-languages/m/sharptable.md @@ -94,3 +94,7 @@ Create a table with an explicit type. ```powerquery-m #table(type table [Name = text, Score = number], {{"Betty", 90.3}, {"Carl", 89.5}}) ``` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/table-addcolumn.md b/query-languages/m/table-addcolumn.md index 30bb21531..aec56bddd 100644 --- a/query-languages/m/table-addcolumn.md +++ b/query-languages/m/table-addcolumn.md @@ -43,3 +43,7 @@ Table.FromRecords({ [OrderID = 3, CustomerID = 2, Item = "Fishing net", Price = 25, Shipping = 10, TotalPrice = 35] }) ``` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/table-addindexcolumn.md b/query-languages/m/table-addindexcolumn.md index 4d1baf6b2..e728effe9 100644 --- a/query-languages/m/table-addindexcolumn.md +++ b/query-languages/m/table-addindexcolumn.md @@ -74,3 +74,7 @@ Table.FromRecords({ [CustomerID = 4, Name = "Ringo", Phone = "232-1550", Index = 25] }) ``` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/table-columnsoftype.md b/query-languages/m/table-columnsoftype.md index 0b2a0dc13..03f439d87 100644 --- a/query-languages/m/table-columnsoftype.md +++ b/query-languages/m/table-columnsoftype.md @@ -34,3 +34,7 @@ Table.ColumnsOfType( **Output** `{"a"}` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/table-combinecolumnstorecord.md b/query-languages/m/table-combinecolumnstorecord.md index 85803e001..83332a694 100644 --- a/query-languages/m/table-combinecolumnstorecord.md +++ b/query-languages/m/table-combinecolumnstorecord.md @@ -17,3 +17,7 @@ Combines the specified columns of `table` into a new record-valued column named * `DisplayNameColumn`: When specified as text, indicates that the given column name should be treated as the display name of the record. This need not be one of the columns in the record itself. * `TypeName`: When specified as text, supplies a logical type name for the resulting record which can be used during data load to drive behavior by the loading environment. + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/table-duplicatecolumn.md b/query-languages/m/table-duplicatecolumn.md index 4df37d773..aa05141a1 100644 --- a/query-languages/m/table-duplicatecolumn.md +++ b/query-languages/m/table-duplicatecolumn.md @@ -40,3 +40,7 @@ Table.FromRecords({ [a = 3, b = 4, #"copied column" = 3] }) ``` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/table-frompartitions.md b/query-languages/m/table-frompartitions.md index 273140690..03874a944 100644 --- a/query-languages/m/table-frompartitions.md +++ b/query-languages/m/table-frompartitions.md @@ -87,3 +87,7 @@ Table.FromRecords({ ] }) ``` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 22e4b23ee..76935d996 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -44,3 +44,4 @@ Table.FromRecords({ ## Related content * [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/type-closedrecord.md b/query-languages/m/type-closedrecord.md index 859424bab..d0db669ed 100644 --- a/query-languages/m/type-closedrecord.md +++ b/query-languages/m/type-closedrecord.md @@ -28,3 +28,7 @@ Type.ClosedRecord(type [A = number, ...]) **Output** `type [A = number]` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/type-conversion.md b/query-languages/m/type-conversion.md index 9b547875a..3b1c67af8 100644 --- a/query-languages/m/type-conversion.md +++ b/query-languages/m/type-conversion.md @@ -135,3 +135,8 @@ The Power Query M formula language has formulas to convert between types. The fo |.ToText(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) as text|Returns a text value from a date, time, datetime, or datetimezone value.| |.From(value as any)|Returns a date, time, datetime, or datetimezone value from a value.| |.ToRecord(date, time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone)|Returns a record containing parts of a date, time, datetime, or datetimezone value.| + +## Related content + +* [Types](m-spec-types.md) +* [Power Query M type system](power-query-m-type-system.md) diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index ff6496f3e..231e701a5 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -42,3 +42,7 @@ Type.Is(type any, type number) **Output** `false` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/type-isnullable.md b/query-languages/m/type-isnullable.md index 92f37cd36..ea2309bff 100644 --- a/query-languages/m/type-isnullable.md +++ b/query-languages/m/type-isnullable.md @@ -42,3 +42,7 @@ Type.IsNullable(type nullable number) **Output** `true` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/type-listitem.md b/query-languages/m/type-listitem.md index 01698c367..3545679db 100644 --- a/query-languages/m/type-listitem.md +++ b/query-languages/m/type-listitem.md @@ -28,3 +28,7 @@ Type.ListItem(type {number}) **Output** `type number` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/type-nonnullable.md b/query-languages/m/type-nonnullable.md index a2972241b..943b07c77 100644 --- a/query-languages/m/type-nonnullable.md +++ b/query-languages/m/type-nonnullable.md @@ -28,3 +28,7 @@ Type.NonNullable(type nullable number) **Output** `type number` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/type-openrecord.md b/query-languages/m/type-openrecord.md index f89758b12..951216d3d 100644 --- a/query-languages/m/type-openrecord.md +++ b/query-languages/m/type-openrecord.md @@ -28,3 +28,7 @@ Type.OpenRecord(type [A = number]) **Output** `type [A = number, ...]` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/type-recordfields.md b/query-languages/m/type-recordfields.md index dff667c80..f77b20f8e 100644 --- a/query-languages/m/type-recordfields.md +++ b/query-languages/m/type-recordfields.md @@ -33,3 +33,7 @@ Type.RecordFields(type [A = number, optional B = any]) B = [Type = type any, Optional = true] ] ``` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/type-tablerow.md b/query-languages/m/type-tablerow.md index faa7669b1..21e7f21ad 100644 --- a/query-languages/m/type-tablerow.md +++ b/query-languages/m/type-tablerow.md @@ -31,3 +31,7 @@ in **Output** `[Column1 = [Type = type any, Optional = false]]` + +## Related content + +* [Types and type conversion](type-conversion.md) diff --git a/query-languages/m/type-tableschema.md b/query-languages/m/type-tableschema.md index 0938d5c2c..c9228cfdf 100644 --- a/query-languages/m/type-tableschema.md +++ b/query-languages/m/type-tableschema.md @@ -16,3 +16,7 @@ Type.TableSchema(tableType as type) as table Returns a table describing the columns of `tableType`. Refer to the documentation for [Table.Schema](/powerquery-m/table-schema) for a description of the resulting table. + +## Related content + +* [Types and type conversion](type-conversion.md) From dfaa31a864e28c77a9745bf382787dad899384f6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 14 Jan 2025 07:49:16 -0800 Subject: [PATCH 695/934] Fixed broken link --- query-languages/m/m-spec-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 71314ae04..fae315b73 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -401,5 +401,5 @@ Type.FunctionReturn( ## Related content -* [Types and type conversion](type-conversion) +* [Types and type conversion](type-conversion.md) * [Types in the Power Query M formula language](power-query-m-type-system.md) From 1e4e77ad384f1007059dafeca29867b8033368b8 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 14 Jan 2025 13:40:50 -0800 Subject: [PATCH 696/934] Fixed spelling error in code sample --- query-languages/m/table-hascolumns.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-hascolumns.md b/query-languages/m/table-hascolumns.md index 06bda2c51..e04070cf9 100644 --- a/query-languages/m/table-hascolumns.md +++ b/query-languages/m/table-hascolumns.md @@ -22,7 +22,7 @@ Determine if the table has the column [Name]. **Usage** ```powerquery-m -TTable.HasColumns( +Table.HasColumns( Table.FromRecords({ [CustomerID = 1, Name = "Bob", Phone = "123-4567"], [CustomerID = 2, Name = "Jim", Phone = "987-6543"], From 79720e847791d7ed66cd164a95173ad036d37a9c Mon Sep 17 00:00:00 2001 From: Whitney Henderson <13474870+whhender@users.noreply.github.com> Date: Wed, 15 Jan 2025 13:35:56 -0500 Subject: [PATCH 697/934] Adding unsupported types --- query-languages/m/table-transformcolumntypes.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 62a79949c..8498b13ba 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -16,6 +16,13 @@ Table.TransformColumnTypes(table as table, typeTransformations as Returns a table from the input `table` by applying the transform operation to the columns specified in the parameter `typeTransformations` (where format is {column name, type name}), using the specified culture in the optional parameter `culture` (for example, "en-US"). If the column doesn't exist, an exception is thrown. - [Type](/powerquery-m/type-conversion) - Power Query M uses types to classify values to have a more structured data set. The article linked describes the most commonly used types. + - [List and description of all Types](/powerquery-m/type-conversion) + - **Unsupported types** for Table.TransformColumnTypes: + - type list + - type record + - type table + - type function + - type none - [Culture](/powerquery-m/how-culture-affects-text-formatting) - The default culture is set to the system locale ([Windows](/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c), MacOS) of a particular document where your queries are first authored. ## Example 1 From d1000768f3c46e6f01ad9fe09f3f602f22c45b8b Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 15 Jan 2025 10:55:15 -0800 Subject: [PATCH 698/934] clarfying how 0 ABS is interpreted for WINDOW --- query-languages/dax/window-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index fd2bd5e1a..9610e25ed 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -19,7 +19,7 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, |Term|Definition| |--------|--------------| -|`from`|Indicates where the window starts. It can be any DAX expression that returns a scalar value.
The behavior depends on the `from_type` parameter:
- If `from_type` is REL, the number of rows to go back (negative value) or forward (positive value) from the current row to get the first row in the window.
- If `from_type` is ABS, and `from` is positive, then it’s the position of the start of the window from beginning of the partition. Indexing is 1-based. For example, 1 means window starts from the beginning of the partition. If `from` is negative, then it’s the position of the start of the window from the end of the partition. -1 means the last row in the partition. | +|`from`|Indicates where the window starts. It can be any DAX expression that returns a scalar value.
The behavior depends on the `from_type` parameter:
- If `from_type` is REL, the number of rows to go back (negative value) or forward (positive value) from the current row to get the first row in the window.
- If `from_type` is ABS, and `from` is positive, then it’s the position of the start of the window from beginning of the partition. Indexing is 1-based and 0 is interpreted as 1. For example, 0 and 1 mean the window starts from the beginning of the partition. If `from` is negative, then it’s the position of the start of the window from the end of the partition. -1 means the last row in the partition. | |`from_type` |Modifies behavior of the `from` parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| |`to`|Same as `from`, but indicates the end of the window. The last row is included in the window.| |`to_type`|Same as `from_type`, but modifies the behavior of `to`.| From 4fde81bf3bd26d15317c2eaeca2a9637526d6d6a Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 15 Jan 2025 16:55:53 -0800 Subject: [PATCH 699/934] adding blanks handling to window functions and visual calcs docs --- query-languages/dax/first-function-dax.md | 2 +- query-languages/dax/index-function-dax.md | 6 +++--- query-languages/dax/last-function-dax.md | 2 +- query-languages/dax/movingaverage-function-dax.md | 2 +- query-languages/dax/next-function-dax.md | 2 +- query-languages/dax/offset-function-dax.md | 6 +++--- query-languages/dax/previous-function-dax.md | 2 +- query-languages/dax/range-function-dax.md | 2 +- query-languages/dax/rank-function-dax.md | 6 +++--- query-languages/dax/rownumber-function-dax.md | 6 +++--- query-languages/dax/runningsum-function-dax.md | 2 +- query-languages/dax/window-function-dax.md | 6 +++--- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index d63260132..4140a5d7c 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -21,7 +21,7 @@ FIRST ( [, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index bd4fafd0b..ce9af6b53 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -23,9 +23,9 @@ INDEX([, or ][, ][, ][, If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to `ALLSELECTED()` of all columns in `orderBy` and `partitionBy`. |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| -|`partitionBy`|(Optional) A `PARTITIONBY()` clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | -|`matchBy`|(Optional) A `MATCHBY()` clause containing the columns that define how to match data and identify the current row. | +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| +|`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| +|`matchBy`|(Optional) A [MATCHBY()](matchby-function-dax.md) clause containing the columns that define how to match data and identify the current row.| |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 24b74d910..88f5dd28a 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -21,7 +21,7 @@ LAST ( [, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 97ed3793f..44a97c965 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -31,7 +31,7 @@ MOVINGAVERAGE ( , [, ][, ][, ] |`windowSize`|The number of rows to include in the calculation. Must be a constant value.| |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |`axis`|(Optional) An axis reference, the direction along which the moving average will be calculated.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index be66cef00..abb59d5ab 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -22,7 +22,7 @@ NEXT ( [, ][, ][, ][, reset] ) |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
The supported values are:
  • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 8663b13f0..fcfdb6acb 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -23,9 +23,9 @@ OFFSET ( [, or ][, ][, ][, If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| -|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | -|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| +|`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| +|`matchBy`|(Optional) A [MATCHBY()](matchby-function-dax.md) clause containing the columns that define how to match data and identify the current row.| |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index 013b226c3..16120d2f9 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -22,7 +22,7 @@ PREVIOUS ( [, ][, ][, ][, reset] ) |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, `1` is used (the exactly previous row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 8215fb8da..b5a5741e2 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -30,7 +30,7 @@ RANGE ( [, ][, ][, ][, ] ) |`step`|The number of rows before (negative value) or after (positive value) the current row to include in the range. Must be a constant value.
- If negative, the window will contain the last -step rows before the current row.
- Otherwise, the window will contain the first step rows after the current row.| |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |`axis`|(Optional) An axis reference, the direction along which the interval will be created.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 45587b333..4b934c292 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -24,9 +24,9 @@ RANK ( [][, or ][, ][, ][, |`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `orderBy` and `partitionBy` must come from it.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `KEEP` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| -|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | -|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| +|`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| +|`matchBy`|(Optional) A [MATCHBY()](matchby-function-dax.md) clause containing the columns that define how to match data and identify the current row.| |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 73659d11b..0a00c7299 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -22,9 +22,9 @@ ROWNUMBER ( [ or ][, ][, ][, ][, < |`relation`|(Optional) A table expression from which the output row is returned.
If specified, all columns in `orderBy` and `partitionBy` must come from it.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when `blanks` parameter and blanks in ORDERBY() function on individual expression are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor `blanks` parameter on parent Window function.| -|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned.
If omitted, `relation` is treated as a single partition. | -|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| +|`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| +|`matchBy`|(Optional) A [MATCHBY()](matchby-function-dax.md) clause containing the columns that define how to match data and identify the current row.| |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 0924772cd..417ab5a27 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -29,7 +29,7 @@ RUNNINGSUM ( [, ][, ][, ] ) |--------|--------------| |`column`|The column that provides the value for each element.| |`axis`|(Optional) An axis reference, the direction along which the running sum will be calculated.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
| |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index fd2bd5e1a..19fe2bcfe 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -26,9 +26,9 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, |`relation`|(Optional) A table expression from which the output rows are returned.
If specified, all columns in `partitionBy` must come from it or a related table.
If omitted:
- `orderBy` must be explicitly specified.
- All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
- Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
If omitted:
- `relation` must be explicitly specified.
- Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| -|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting.
This parameter is reserved for future use.
Currently, the only supported value is `DEFAULT`, where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.| -|`partitionBy`|(Optional) A PARTITIONBY() clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| -|`matchBy`|(Optional) A MATCHBY() clause containing the columns that define how to match data and identify the current row. | +|`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
The supported values are:
  • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
  • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
  • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| +|`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| +|`matchBy`|(Optional) A [MATCHBY()](matchby-function-dax.md) clause containing the columns that define how to match data and identify the current row.| |`reset`|(Optional) Available in visual calculations only. Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
- If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
- If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
- If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| ## Return value From f6eab1027b24df808d7a300369938bbd8699a74f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 16 Jan 2025 10:57:43 -0800 Subject: [PATCH 700/934] Update about and add examples to Text.From --- query-languages/m/text-from.md | 82 +++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/query-languages/m/text-from.md b/query-languages/m/text-from.md index e2d76846b..ef548792a 100644 --- a/query-languages/m/text-from.md +++ b/query-languages/m/text-from.md @@ -13,7 +13,10 @@ Text.From(value as any, optional culture as nullable text) as null ## About -Returns the text representation of `value`. The `value` can be a `number`, `date`, `time`, `datetime`, `datetimezone`, `logical`, `duration` or `binary` value. If the given value is null, `Text.From` returns null. An optional `culture` may also be provided (for example, "en-US"). +Returns the text representation of a specified value. + +* `value`: The value to convert to text. The value can be a `number`, `date`, `time`, `datetime`, `datetimezone`, `logical`, `duration`, or `binary` value. If the given value is `null`, this function returns `null`. +* `culture`: (Optional) The culture to use when converting the value to text (for example, "en-US"). ## Example 1 @@ -29,6 +32,83 @@ Text.From(3) `"3"` +## Example 2 + +Get the text equivalent of the specified date and time. + +**Usage** + +```powerquery-m +Text.From(#datetime(2024, 6, 24, 14, 32, 22)) +``` + +**Output** + +`"6/24/2024 2:32:22 PM"` + +## Example 3 + +Get the German text equivalent of the specified date and time. + +**Usage** + +```powerquery-m +Text.From(#datetime(2024, 6, 24, 14, 32, 22), "de-DE") +``` + +**Output** + +`"24.06.2024 14:32:22"` + +## Example 4 + +Get a binary value from text encoded as hexadecimal and change the value back to text. + +**Usage** + +```powerquery-m +Text.From(Binary.FromText("10FF", BinaryEncoding.Hex)) +``` + +**Output** + +"EP8=" + +## Example 5 + +Get the rows in the table that contain data for France and convert the dates to text using the French culture. + +**Usage** + +```powerquery-m +let + Source = #table(type table [Company ID = text, Country = text, Date = date], + { + {"JS-464", "USA", #date(2024, 3, 24)}, + {"LT-331", "France", #date(2024, 10, 5)}, + {"XE-100", "USA", #date(2024, 5, 21)}, + {"RT-430", "Germany", #date(2024, 1,18)}, + {"LS-005", "France", #date(2023, 12, 31)}, + {"UW-220", "Germany", #date(2024, 2, 25)} + }), + #"Convert Dates" = Table.TransformColumns( + Table.SelectRows(Source, each [Country] = "France"), + {"Date", each Text.From(_, "fr-FR")} + ) +in + #"Convert Dates" +``` + +**Output** + +```powerquery-m +#table(type table [Company ID = text, Country = text, Date = text], +{ + {"LT-331", "France", "05/10/2024"}, + {"LS-005", "France", "31/12/2023"} +}) +``` + ## Related content * [How culture affects text formatting](how-culture-affects-text-formatting.md) From 3c11de9e145c358e5206df7197a9ececf0486bf9 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 16 Jan 2025 11:09:04 -0800 Subject: [PATCH 701/934] Fixed output formatting --- query-languages/m/text-from.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/text-from.md b/query-languages/m/text-from.md index ef548792a..2ea9293e8 100644 --- a/query-languages/m/text-from.md +++ b/query-languages/m/text-from.md @@ -72,7 +72,7 @@ Text.From(Binary.FromText("10FF", BinaryEncoding.Hex)) **Output** -"EP8=" +`"EP8="` ## Example 5 From 4ae6f431e29d89e2a09544071149dcedc471c8ad Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 17 Jan 2025 09:38:17 -0800 Subject: [PATCH 702/934] Added February update to Power Query M reference --- query-languages/m/accessing-data-functions.md | 3 ++- query-languages/m/cdm-contents.md | 2 +- query-languages/m/deltalake-metadata.md | 16 ++++++++++++++++ query-languages/m/docfx.json | 3 ++- query-languages/m/sharepoint-contents.md | 2 ++ 5 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 query-languages/m/deltalake-metadata.md diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index 5a88c0c32..7516ccead 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Accessing data functions" title: "Accessing data functions" -ms.date: 11/21/2024 +ms.date: 1/17/2025 ms.custom: "nonautomated-date" --- # Accessing data functions @@ -42,6 +42,7 @@ These functions access data and return table values. Most of these functions ret |[Cube.ReplaceDimensions](cube-replacedimensions.md)|Replaces the set of dimensions returned by [Cube.Dimensions](/powerquery-m/cube-dimensions).| |[Cube.Transform](cube-transform.md)|Applies a list of cube functions.| |[DB2.Database](db2-database.md)|Returns a table of SQL tables and views available in a Db2 database.| +|[DeltaLake.Metadata](deltalake-metadata.md)|Given a Delta Lake table, returns the log entries for that table.| |[DeltaLake.Table](deltalake-table.md)|Returns the contents of the Delta Lake table.| |[Essbase.Cubes](essbase-cubes.md)|Returns the cubes in an Essbase instance grouped by Essbase server.| |[Excel.CurrentWorkbook](excel-currentworkbook.md)|Returns the contents of the current Excel workbook.| diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index c7b6f0221..f0e3f91d4 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -13,4 +13,4 @@ Cdm.Contents(table as table) as table ## About -This function is unavailable because it requires .NET 4.5. +This function is unavailable in the current context. diff --git a/query-languages/m/deltalake-metadata.md b/query-languages/m/deltalake-metadata.md new file mode 100644 index 000000000..0cb27fd8b --- /dev/null +++ b/query-languages/m/deltalake-metadata.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: DeltaLake.Metadata" +title: "DeltaLake.Metadata" +ms.subservice: m-source +--- +# DeltaLake.Metadata + +## Syntax + +
+DeltaLake.Metadata(table as table) as table
+
+ +## About + +Given a Delta Lake table, returns the log entries for that table. \ No newline at end of file diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 336f770fd..6896b90a0 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "11/13/2024", + "ms.date": "1/17/2025", "no-loc": [ "#binary", "#date", @@ -249,6 +249,7 @@ "Day.Type", "DB2.Database", "Decimal.From", + "DeltaLake.Metadata", "DeltaLake.Table", "Diagnostics.ActivityId", "Diagnostics.CorrelationId", diff --git a/query-languages/m/sharepoint-contents.md b/query-languages/m/sharepoint-contents.md index 152f00795..cad2473f2 100644 --- a/query-languages/m/sharepoint-contents.md +++ b/query-languages/m/sharepoint-contents.md @@ -16,3 +16,5 @@ SharePoint.Contents(url as text, optional options as nullable reco Returns a table containing a row for each folder and document found at the specified SharePoint site, `url`. Each row contains properties of the folder or file and a link to its content. `options` may be specified to control the following options: * `ApiVersion`: A number (14 or 15) or the text "Auto" that specifies the SharePoint API version to use for this site. When not specified, API version 14 is used. When Auto is specified, the server version will be automatically discovered if possible, otherwise version defaults to 14. Non-English SharePoint sites require at least version 15. + +* `Implementation`: Optional. Specifies which version of the SharePoint connector to use. Accepted values are `2.0` or `null`. If the value is `2.0`, the 2.0 implementation of the SharePoint connector is used. If the value is `null`, the original implementation of the SharePoint connector is used. From f83be62e76ec41650bc7af05e5a96af3872c5a18 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 17 Jan 2025 09:42:34 -0800 Subject: [PATCH 703/934] Added new function to TOC --- query-languages/m/toc.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index c26e61d78..87fa06766 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -134,6 +134,8 @@ items: href: cube-transform.md - name: DB2.Database href: db2-database.md + - name: DeltaLake.Metadata + href: deltalake-metadata.md - name: DeltaLake.Table href: deltalake-table.md - name: Essbase.Cubes From 5b7bdbb330f28a564038fb8ceca6c3a67d7b9d61 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 21 Jan 2025 15:29:33 -0800 Subject: [PATCH 704/934] Updated article to match .resx updates --- .../m/table-transformcolumntypes.md | 124 ++++++++++++++---- 1 file changed, 102 insertions(+), 22 deletions(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 8498b13ba..083b283f2 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -13,44 +13,124 @@ Table.TransformColumnTypes(table as table, typeTransformations as ## About -Returns a table from the input `table` by applying the transform operation to the columns specified in the parameter `typeTransformations` (where format is {column name, type name}), using the specified culture in the optional parameter `culture` (for example, "en-US"). If the column doesn't exist, an exception is thrown. - -- [Type](/powerquery-m/type-conversion) - Power Query M uses types to classify values to have a more structured data set. The article linked describes the most commonly used types. - - [List and description of all Types](/powerquery-m/type-conversion) - - **Unsupported types** for Table.TransformColumnTypes: - - type list - - type record - - type table - - type function - - type none -- [Culture](/powerquery-m/how-culture-affects-text-formatting) - The default culture is set to the system locale ([Windows](/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c), MacOS) of a particular document where your queries are first authored. +Returns a table by applying the transform operation to the specified columns using an optional culture. + +* `table`: The transform operation is applied to this input table. +* `typeTransformations`: The names of the column and type to be applied. The format for the transformation is { column name, type name }. A list of transformations can be used to change the types of more than one column at a time. If the specified column doesn't exist, an exception is thrown. +* `culture`: (Optional) The culture to use when transforming the column type (for example, "en-US"). + +The type name in the `typeTransformations` parameter can be any of the commonly-used data types except for the following: + +* `type list`, or `List.Type` +* `type record`, or `Record.Type` +* `type table`, or `Table.Type` +* `type function`, or `Function.Type` +* `type none`, or `None.Type` ## Example 1 -Transform the number values in column [a] to text values from the table `({[a = 1, b = 2], [a = 3, b = 4]})`. +Transform the number values in the first column to text values. **Usage** ```powerquery-m -Table.TransformColumnTypes( - Table.FromRecords({ - [a = 1, b = 2], - [a = 3, b = 4] +let + Source = #table(type table [a = number, b = number], + { + {1, 2}, + {3, 4} }), - {"a", type text}, - "en-US" -) + #"Transform Column" = Table.TransformColumnTypes( + Source, + {"a", type text} + ) +in + #"Transform Column" ``` **Output** ```powerquery-m -Table.FromRecords({ - [a = "1", b = 2], - [a = "3", b = 4] +#table(type table [a = text, b = number], +{ + {"1", 2}, + {"3", 4} }) + +## Example 2 + +Transform the dates in the table to their French text equivalents. + +**Usage** + +```powerquery-m +let + Source = #table(type table [Company ID = text, Country = text, Date = date], + { + {"JS-464", "USA", #date(2024, 3, 24)}, + {"LT-331", "France", #date(2024, 10, 5)}, + {"XE-100", "USA", #date(2024, 5, 21)}, + {"RT-430", "Germany", #date(2024, 1,18)}, + {"LS-005", "France", #date(2023, 12, 31)}, + {"UW-220", "Germany", #date(2024, 2, 25)} + }), + #"Transform Column" = Table.TransformColumnTypes( + Source, + {"Date", type text}, + "fr-FR" + ) +in + #"Transform Column" +``` + +**Output** + +```powerquery-m +#table(type table [Company ID = text, Country = text, Date = text], + { + {"JS-464", "USA", "24/03/2024"}, + {"LT-331", "France", "05/10/2024"}, + {"XE-100", "USA", "21/05/2024"}, + {"RT-430", "Germany", "18/01/2024"}, + {"LS-005", "France", "31/12/2023"}, + {"UW-220", "Germany", "25/02/2024"} + }) +``` + +## Example 3 + +Transform the dates in the table to their German text equivalents and the values in the table to percentages. + +**Usage** + +```powerquery-m +let + Source = #table(type table [Date = date, Customer ID = text, Value = number], + { + {#date(2024, 3, 12), "134282", .24368}, + {#date(2024, 5, 30), "44343", .03556}, + {#date(2023, 12, 14), "22", .3834} + }), + #"Transform Columns" = Table.TransformColumnTypes( + Source, + {{"Date", type text}, {"Value", Percentage.Type}}, + "de-DE") +in + #"Transform Columns" ``` +**Output** + +```powerquery-m +#table(type table [Date = text, Customer ID = text, Value = Percentage.Type], +{ + {"12.03.2024", "134282", .24368}, + {"30.05.2024", "44343", .03556}, + {"14.12.2023", "22", .3834} +}) +``` + ## Related content +* [Types and type conversion](type-conversion.md) * [How culture affects text formatting](how-culture-affects-text-formatting.md) From 99024c69ef5929925d80397d26f827416957eddf Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 22 Jan 2025 13:22:02 -0800 Subject: [PATCH 705/934] Updated article per dev review of .resx --- query-languages/m/table-transformcolumntypes.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 083b283f2..fef6b4916 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -15,17 +15,11 @@ Table.TransformColumnTypes(table as table, typeTransformations as Returns a table by applying the transform operation to the specified columns using an optional culture. -* `table`: The transform operation is applied to this input table. -* `typeTransformations`: The names of the column and type to be applied. The format for the transformation is { column name, type name }. A list of transformations can be used to change the types of more than one column at a time. If the specified column doesn't exist, an exception is thrown. -* `culture`: (Optional) The culture to use when transforming the column type (for example, "en-US"). +* `table`: The input table to transform. +* `typeTransformations`: The type transformations to apply. The format for a single transformation is { column name, type name }. A list of transformations can be used to change the types of more than one column at a time. If a column doesn't exist, an error is raised. +* `culture`: (Optional) The culture to use when transforming the column types (for example, "en-US"). -The type name in the `typeTransformations` parameter can be any of the commonly-used data types except for the following: - -* `type list`, or `List.Type` -* `type record`, or `Record.Type` -* `type table`, or `Table.Type` -* `type function`, or `Function.Type` -* `type none`, or `None.Type` +The type value in the `typeTransformations` parameter can be any, all the numeric types, text, all the date/time/duration types, logical, or binary. Lists, records, tables, or functions aren't valid type values for this parameter. ## Example 1 @@ -99,7 +93,7 @@ in ## Example 3 -Transform the dates in the table to their German text equivalents and the values in the table to percentages. +Transform the dates in the table to their German text equivalents, and the values in the table to percentages. **Usage** From 6d8b2f9e145f4d6e5e3f91deb0c34094afe11fbb Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 22 Jan 2025 14:01:50 -0800 Subject: [PATCH 706/934] More changes per dev review --- query-languages/m/table-transformcolumntypes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index fef6b4916..1a174515b 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -13,13 +13,13 @@ Table.TransformColumnTypes(table as table, typeTransformations as ## About -Returns a table by applying the transform operation to the specified columns using an optional culture. +Returns a table by applying the transform operations to the specified columns using an optional culture. * `table`: The input table to transform. * `typeTransformations`: The type transformations to apply. The format for a single transformation is { column name, type name }. A list of transformations can be used to change the types of more than one column at a time. If a column doesn't exist, an error is raised. * `culture`: (Optional) The culture to use when transforming the column types (for example, "en-US"). -The type value in the `typeTransformations` parameter can be any, all the numeric types, text, all the date/time/duration types, logical, or binary. Lists, records, tables, or functions aren't valid type values for this parameter. +The type value in the `typeTransformations` parameter can be any, all the numeric types, text, all the date/time/duration types, logical, or binary values. List, record, table, or function aren't valid values for this parameter. ## Example 1 From cbcb8a7e92836b401e9d72d5d8510c26643e9283 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 23 Jan 2025 08:56:27 -0800 Subject: [PATCH 707/934] Updated per dev review again --- query-languages/m/table-transformcolumntypes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 1a174515b..93389750c 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -19,7 +19,7 @@ Returns a table by applying the transform operations to the specified columns us * `typeTransformations`: The type transformations to apply. The format for a single transformation is { column name, type name }. A list of transformations can be used to change the types of more than one column at a time. If a column doesn't exist, an error is raised. * `culture`: (Optional) The culture to use when transforming the column types (for example, "en-US"). -The type value in the `typeTransformations` parameter can be any, all the numeric types, text, all the date/time/duration types, logical, or binary values. List, record, table, or function aren't valid values for this parameter. +The type value in the `typeTransformations` parameter can be `any`, all of the `number` types, `text`, all of the `date`, `time`, `datetime`, `datetimezone`, and `duration` types, `logical`, or `binary` values. The `list`, `record`, `table`, or `function` types aren’t valid values for this parameter. ## Example 1 From 4595c2912c31990da8067ce7f0593ced3ee21f02 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 23 Jan 2025 14:12:58 -0800 Subject: [PATCH 708/934] Even yet more updates per dev review --- query-languages/m/table-transformcolumntypes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 93389750c..d50dcf422 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -16,10 +16,10 @@ Table.TransformColumnTypes(table as table, typeTransformations as Returns a table by applying the transform operations to the specified columns using an optional culture. * `table`: The input table to transform. -* `typeTransformations`: The type transformations to apply. The format for a single transformation is { column name, type name }. A list of transformations can be used to change the types of more than one column at a time. If a column doesn't exist, an error is raised. +* `typeTransformations`: The type transformations to apply. The format for a single transformation is { column name, type value }. A list of transformations can be used to change the types of more than one column at a time. If a column doesn't exist, an error is raised. * `culture`: (Optional) The culture to use when transforming the column types (for example, "en-US"). -The type value in the `typeTransformations` parameter can be `any`, all of the `number` types, `text`, all of the `date`, `time`, `datetime`, `datetimezone`, and `duration` types, `logical`, or `binary` values. The `list`, `record`, `table`, or `function` types aren’t valid values for this parameter. +The type value in the `typeTransformations` parameter can be `any`, all of the `number` types, `text`, all of the `date`, `time`, `datetime`, `datetimezone`, and `duration` types, `logical`, or `binary` values. The `list`, `record`, `table`, or `function` types aren't valid for this parameter. ## Example 1 From 5d5d3cdc593ef8a0bc91f8d9f17ef86119afa1fa Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 24 Jan 2025 07:43:24 -0800 Subject: [PATCH 709/934] Still yet another update from dev review --- query-languages/m/table-transformcolumntypes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index d50dcf422..294eb23ee 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -19,7 +19,7 @@ Returns a table by applying the transform operations to the specified columns us * `typeTransformations`: The type transformations to apply. The format for a single transformation is { column name, type value }. A list of transformations can be used to change the types of more than one column at a time. If a column doesn't exist, an error is raised. * `culture`: (Optional) The culture to use when transforming the column types (for example, "en-US"). -The type value in the `typeTransformations` parameter can be `any`, all of the `number` types, `text`, all of the `date`, `time`, `datetime`, `datetimezone`, and `duration` types, `logical`, or `binary` values. The `list`, `record`, `table`, or `function` types aren't valid for this parameter. +The type value in the `typeTransformations` parameter can be `any`, all of the `number` types, `text`, all of the `date`, `time`, `datetime`, `datetimezone`, and `duration` types, `logical`, or `binary`. The `list`, `record`, `table`, or `function` types aren't valid for this parameter. ## Example 1 From 218b95ba2843cda8ee0587a6702f587cb94b0eff Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 27 Jan 2025 09:33:12 -0800 Subject: [PATCH 710/934] Minor fix to first example --- query-languages/m/table-transformcolumntypes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 294eb23ee..4645c26ef 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -50,6 +50,7 @@ in {"1", 2}, {"3", 4} }) +``` ## Example 2 From 3a44a114ed559d6bc03b73cd14bd2caf3ab2c523 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 27 Jan 2025 14:03:41 -0800 Subject: [PATCH 711/934] Updated M quick tour for freshness --- ...quick-tour-of-the-power-query-m-formula-language.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md index d9b1e1b19..06c807e8d 100644 --- a/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md +++ b/query-languages/m/quick-tour-of-the-power-query-m-formula-language.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Quick tour of the Power Query M formula language" title: "Quick tour" -ms.date: 12/22/2023 +ms.date: 1/27/2025 ms.custom: nonautomated-date, intro-internal ms.topic: conceptual ms.subservice: m-background @@ -29,17 +29,17 @@ in To create an M query in the advanced editor, you follow this basic process: -1. Create a series of query formula steps that start with the `let` statement. Each step is defined by a step variable name. An M _variable_ can include spaces by using the # character as `#"Step Name"`. A formula step can be a custom formula. Note that the Power Query formula language is case sensitive. +1. Create a series of query formula steps that start with the `let` statement. Each step is defined by a step variable name. An M _variable_ can include spaces by using the # character, such as `#"Step Name"`. A formula step can be a custom formula. Also note that the Power Query formula language is case sensitive. 2. Each query formula step builds upon a previous step by referring to a step by its variable name. -3. Output a query formula step using the `in` statement. Generally, the last query step is used as the in final data set result. +3. Output a query formula step using the `in` statement. Generally, the last query step is used as the `in` final data set result. To learn more about expressions and values, go to [Expressions, values, and let expression](expressions-values-and-let-expression.md). ## Simple Power Query M formula steps -Let's assume you created the following transform in the Power Query editor to convert product names to the appropriate case, in this instance, to all initial capitalization. +Let's assume you created the following transform in the Power Query editor. This query converts product names to the appropriate case, in this instance, to all initial capitalization. :::image type="content" source="media/mstep1.png" alt-text="Screenshot of the Power Query editor showing the results of converting the Item column entries to initial capitalization."::: @@ -75,7 +75,7 @@ in #"Capitalized Each Word" ``` -Let’s review each formula step. +Let's review each formula step. 1. **Orders**: Create a table with data for Orders. From ba53e40c8e038b6cc114549c0b1d1643b7427f43 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 28 Jan 2025 09:22:46 -0800 Subject: [PATCH 712/934] Update list functions article for freshness --- query-languages/m/list-functions.md | 136 ++++++++++++++-------------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index bbd082878..03b249b7f 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List functions" title: "List functions" -ms.date: 10/7/2022 +ms.date: 1/28/2025 ms.custom: "nonautomated-date" --- # List functions @@ -13,53 +13,54 @@ These functions create and manipulate list values. |Name|Description| |------------|---------------| |[List.Count](list-count.md)|Returns the number of items in a list.| -|[List.NonNullCount](list-nonnullcount.md)|Returns the number of items in a list excluding null values| -|[List.IsEmpty](list-isempty.md)|Returns whether a list is empty.| +|[List.IsEmpty](list-isempty.md)|Returns `true` if the list is empty.| +|[List.NonNullCount](list-nonnullcount.md)|Returns the number of non-null items in the list.| ## Selection |Name|Description| |------------|---------------| -|[List.Alternate](list-alternate.md)|Returns a list with the items alternated from the original list based on a count, optional repeatInterval, and an optional offset.| -|[List.Buffer](list-buffer.md)|Buffers the list in memory. The result of this call is a stable list, which means it will have a determinimic count, and order of items.| -|[List.Distinct](list-distinct.md)|Filters a list down by removing duplicates. An optional equation criteria value can be specified to control equality comparison. The first value from each equality group is chosen.| -|[List.FindText](list-findtext.md)|Searches a list of values, including record fields, for a text value.| -|[List.First](list-first.md)|Returns the first value of the list or the specified default if empty. Returns the first item in the list, or the optional default value, if the list is empty. If the list is empty and a default value is not specified, the function returns.| -|[List.FirstN](list-firstn.md)|Returns the first set of items in the list by specifying how many items to return or a qualifying condition provided by `countOrCondition`.| -|[List.InsertRange](list-insertrange.md)|Inserts items from values at the given index in the input list.| -|[List.IsDistinct](list-isdistinct.md)|Returns whether a list is distinct.| -|[List.Last](list-last.md)|Returns the last set of items in the list by specifying how many items to return or a qualifying condition provided by `countOrCondition`.| -|[List.LastN](list-lastn.md)|Returns the last set of items in a list by specifying how many items to return or a qualifying condition.| -|[List.MatchesAll](list-matchesall.md)|Returns true if all items in a list meet a condition.| -|[List.MatchesAny](list-matchesany.md)|Returns true if any item in a list meets a condition.| -|[List.Positions](list-positions.md)|Returns a list of positions for an input list.| -|[List.Range](list-range.md)|Returns a count items starting at an offset.| -|[List.Select](list-select.md)|Selects the items that match a condition.| -|[List.Single](list-single.md)|Returns the single item of the list or throws an `Expression.Error` if the list has more than one item.| -|[List.SingleOrDefault](list-singleordefault.md)|Returns a single item from a list.| -|[List.Skip](list-skip.md)|Skips the first item of the list. Given an empty list, it returns an empty list. This function takes an optional parameter `countOrCondition` to support skipping multiple values.| +|[List.Alternate](list-alternate.md)|Returns a list comprised of all the odd numbered offset elements in a list.| +|[List.Buffer](list-buffer.md)|Buffers a list.| +|[List.Distinct](list-distinct.md)|Returns a list of values with duplicates removed.| +|[List.FindText](list-findtext.md)|Returns a list of values (including record fields) that contain the specified text.| +|[List.First](list-first.md)|Returns the first value of the list or the specified default if empty.| +|[List.FirstN](list-firstn.md)|Returns the first set of items in the list by specifying how many items to return or a qualifying condition.| +|[List.InsertRange](list-insertrange.md)|Inserts values into a list at the given index.| +|[List.IsDistinct](list-isdistinct.md)|Indicates whether there are duplicates in the list.| +|[List.Last](list-last.md)|Returns the last value of the list or the specified default if empty.| +|[List.LastN](list-lastn.md)|Returns the last value in the list. Can optionally specify how many values to return or a qualifying condition.| +|[List.MatchesAll](list-matchesall.md)|Returns `true` if the condition function is satisfied by all values in the list.| +|[List.MatchesAny](list-matchesany.md)|Returns `true` if the condition function is satisfied by any value.| +|[List.Positions](list-positions.md)|Returns a list of offsets for the input.| +|[List.Range](list-range.md)|Returns a subset of the list beginning at an offset.| +|[List.Select](list-select.md)|Returns a list of values that match the condition.| +|[List.Single](list-single.md)|Returns the one list item for a list of length one, otherwise throws an exception.| +|[List.SingleOrDefault](list-singleordefault.md)|Returns the one list item for a list of length one and the default value for an empty list.| +|[List.Skip](list-skip.md)|Returns a list that skips the specified number of elements at the beginning of the list.| ## Transformation functions |Name|Description| |------------|---------------| -|[List.Accumulate](list-accumulate.md)|Accumulates a result from the list. Starting from the initial value seed this function applies the accumulator function and returns the final result.| -|[List.Combine](list-combine.md)|Merges a list of lists into single list.| +|[List.Accumulate](list-accumulate.md)|AAccumulates a summary value from the items in the list.| +|[List.Combine](list-combine.md)|Returns a single list by combining multiple lists.| |[List.ConformToPageReader](list-conformtopagereader.md)|This function is intended for internal use only.| -|[List.RemoveRange](list-removerange.md)|Returns a list that removes count items starting at offset. The default count is 1.| -|[List.RemoveFirstN](list-removefirstn.md)|Returns a list with the specified number of elements removed from the list starting at the first element. The number of elements removed depends on the optional `countOrCondition` parameter.| -|[List.RemoveItems](list-removeitems.md)|Removes items from `list1` that are present in `list2`, and returns a new list.| -|[List.RemoveLastN](list-removelastn.md)|Returns a list with the specified number of elements removed from the list starting at the last element. The number of elements removed depends on the optional `countOrCondition` parameter.| -|[List.Repeat](list-repeat.md)|Returns a list that repeats the contents of an input list count times.| -|[List.ReplaceRange](list-replacerange.md)|Returns a list that replaces count values in a list with a `replaceWith` list starting at an index.| -|[List.RemoveMatchingItems](list-removematchingitems.md)|Removes all occurrences of the given values in the list.| -|[List.RemoveNulls](list-removenulls.md)|Removes null values from a list.| -|[List.ReplaceMatchingItems](list-replacematchingitems.md)|Replaces occurrences of existing values in the list with new values using the provided `equationCriteria`. Old and new values are provided by the `replacements` parameters. An optional equation criteria value can be specified to control equality comparisons. For details of replacement operations and equation criteria, go to [Parameter values](#parameter-values).| -|[List.ReplaceValue](list-replacevalue.md)|Searches a list of values for the value and replaces each occurrence with the replacement value.| -|[List.Reverse](list-reverse.md)|Returns a list that reverses the items in a list.| +|[List.RemoveFirstN](list-removefirstn.md)|Returns a list that skips the specified number of elements at the beginning of the list.| +|[List.RemoveItems](list-removeitems.md)|Removes items from the first list that are present in the second list.| +|[List.RemoveLastN](list-removelastn.md)|Returns a list that removes the specified number of elements from the end of the list.| +|[List.RemoveMatchingItems](list-removematchingitems.md)|Removes all occurrences of the input values.| +|[List.RemoveNulls](list-removenulls.md)|Removes all `null` values from the specified list.| +|[List.RemoveRange](list-removerange.md)|Removes count number of values starting at the specified position.| +|[List.Repeat](list-repeat.md)|Returns a list that is `count` repetitions of the original list.| +|[List.ReplaceMatchingItems](list-replacematchingitems.md)|Replaces occurrences of existing values in the list with new values that match the condition.| +|[List.ReplaceRange](list-replacerange.md)|Replaces `count` number of values starting at `position` with the replacement values.| +|[List.ReplaceValue](list-replacevalue.md)|Searches a list for the specified value and replaces it.| +|[List.Reverse](list-reverse.md)|Reverses the order of values in the list.| |[List.Split](list-split.md)|Splits the specified list into a list of lists using the specified page size.| -|[List.Transform](list-transform.md)|Performs the function on each item in the list and returns the new list.| -|[List.TransformMany](list-transformmany.md)|Returns a list whose elements are projected from the input list.| +|[List.Transform](list-transform.md)|Returns a new list of values computed from this list.| +|[List.TransformMany](list-transformmany.md)|Returns a list whose elements are transformed from the input list using specified functions.| +|[List.Zip](list-zip.md)|Returns a list of lists by combining items at the same position in multiple lists.| ## Membership functions @@ -67,22 +68,21 @@ Since all values can be tested for equality, these functions can operate over he |Name|Description| |------------|---------------| -|[List.AllTrue](list-alltrue.md)|Returns true if all expressions in a list are true| -|[List.AnyTrue](list-anytrue.md)|Returns true if any expression in a list in true| -|[List.Contains](list-contains.md)|Returns true if a value is found in a list.| -|[List.ContainsAll](list-containsall.md)|Returns true if all items in values are found in a list.| -|[List.ContainsAny](list-containsany.md)|Returns true if any item in values is found in a list.| -|[List.PositionOf](list-positionof.md)|Finds the first occurrence of a value in a list and returns its position.| -|[List.PositionOfAny](list-positionofany.md)|Finds the first occurrence of any value in values and returns its position.| +|[List.AllTrue](list-alltrue.md)|Returns `true` if all expressions are true.| +|[List.AnyTrue](list-anytrue.md)|Returns true if any expression is true.| +|[List.Contains](list-contains.md)|Indicates whether the list contains the value.| +|[List.ContainsAll](list-containsall.md)|Indicates where a list includes all the values in another list.| +|[List.ContainsAny](list-containsany.md)|Indicates where a list includes any of the values in another list.| +|[List.PositionOf](list-positionof.md)|Returns the offset(s) of a value in a list.| +|[List.PositionOfAny](list-positionofany.md)|Returns the first offset of a value in a list.| ## Set operations |Name|Description| |------------|---------------| -|[List.Difference](list-difference.md)|Returns the items in list 1 that do not appear in list 2. Duplicate values are supported.| -|[List.Intersect](list-intersect.md)|Returns a list from a list of lists and intersects common items in individual lists. Duplicate values are supported.| -|[List.Union](list-union.md)|Returns a list from a list of lists and unions the items in the individual lists. The returned list contains all items in any input lists. Duplicate values are matched as part of the Union.| -|[List.Zip](list-zip.md)|Returns a list of lists combining items at the same position.| +|[List.Difference](list-difference.md)|Returns the difference of the two given lists.| +|[List.Intersect](list-intersect.md)|Returns the intersection of the list values found in the input.| +|[List.Union](list-union.md)|Returns the union of the list values found in the input.| ## Ordering @@ -99,13 +99,13 @@ Comparable data types include: |Name|Description| |------------|---------------| -|[List.Max](list-max.md)|Returns the maximum item in a list, or the optional default value if the list is empty.| -|[List.MaxN](list-maxn.md)|Returns the maximum values in the list. The number of values to return or a filtering condition must be specified.| -|[List.Median](list-median.md)|Returns the median item from a list.| -|[List.Min](list-min.md)|Returns the minimum item in a list, or the optional default value if the list is empty.| -|[List.MinN](list-minn.md)|Returns the minimum values in a list. The number of values to return or a filtering condition may be specified.| -|[List.Sort](list-sort.md)|Returns a sorted list using comparison criterion.| -|[List.Percentile](list-percentile.md) | Returns one or more sample percentiles corresponding to the given probabilities.| +|[List.Max](list-max.md)|Returns the maximum value or the default value for an empty list.| +|[List.MaxN](list-maxn.md)|Returns the maximum value(s) in the list. The number of values to return or a filtering condition must be specified.| +|[List.Median](list-median.md)|Returns the median value in the list.| +|[List.Min](list-min.md)|Returns the minimum value or the default value for an empty list.| +|[List.MinN](list-minn.md)|Returns the minimum value(s) in the list. The number of values to return or a filtering condition may be specified.| +|[List.Sort](list-sort.md)|Sorts a list of data according to the criteria specified.| +|[List.Percentile](list-percentile.md)|Returns one or more sample percentiles corresponding to the given probabilities.| ## Averages @@ -113,10 +113,10 @@ These functions operate over homogeneous lists of Numbers, DateTimes, and Durati |Name|Description| |------------|---------------| -|[List.Average](list-average.md)|Returns an average value from a list in the datatype of the values in the list.| -|[List.Mode](list-mode.md)|Returns an item that appears most commonly in a list.| -|[List.Modes](list-modes.md)|Returns all items that appear with the same maximum frequency.| -|[List.StandardDeviation](list-standarddeviation.md)|Returns the standard deviation from a list of values. **List.StandardDeviation** performs a sample based estimate. The result is a number for numbers, and a duration for DateTimes and Durations.| +|[List.Average](list-average.md)|Returns the average of the values. Works with number, date, datetime, datetimezone and duration values.| +|[List.Mode](list-mode.md)|Returns the most frequent value in the list.| +|[List.Modes](list-modes.md)|Returns a list of the most frequent values in the list.| +|[List.StandardDeviation](list-standarddeviation.md)|Returns a sample based estimate of the standard deviation. This function performs a sample based estimate. The result is a number for numbers, and a duration for DateTimes and Durations.| ## Addition @@ -124,7 +124,7 @@ These functions work over homogeneous lists of Numbers or Durations. |Name|Description| |------------|---------------| -|[List.Sum](list-sum.md)|Returns the sum from a list.| +|[List.Sum](list-sum.md)|Returns the sum of the items in the list.| ## Numerics @@ -132,8 +132,8 @@ These functions only work over numbers. |Name|Description| |------------|---------------| -|[List.Covariance](list-covariance.md)|Returns the covariance from two lists as a number.| -|[List.Product](list-product.md)|Returns the product from a list of numbers.| +|[List.Covariance](list-covariance.md)|Returns the covariance between the two lists of numbers.| +|[List.Product](list-product.md)|Returns the product of the numbers in the list.| ## Generators @@ -141,14 +141,14 @@ These functions generate list of values. |Name|Description| |------------|---------------| -|[List.Dates](list-dates.md)|Returns a list of date values from size count, starting at start and adds an increment to every value.| -|[List.DateTimes](list-datetimes.md)|Returns a list of datetime values from size count, starting at start and adds an increment to every value.| -|[List.DateTimeZones](list-datetimezones.md)|Returns a list of of datetimezone values from size count, starting at start and adds an increment to every value.| -|[List.Durations](list-durations.md)|Returns a list of durations values from size count, starting at start and adds an increment to every value.| +|[List.Dates](list-dates.md)|Generates a list of `date` values given an initial value, count, and incremental duration value.| +|[List.DateTimes](list-datetimes.md)|Generates a list of `datetime` values given an initial value, count, and incremental duration value.| +|[List.DateTimeZones](list-datetimezones.md)|Generates a list of `datetimezone` values given an initial value, count, and incremental duration value.| +|[List.Durations](list-durations.md)|Generates a list of `duration` values given an initial value, count, and incremental duration value.| |[List.Generate](list-generate.md)|Generates a list of values.| -|[List.Numbers](list-numbers.md)|Returns a list of numbers from size count starting at initial, and adds an increment. The increment defaults to 1.| -|[List.Random](list-random.md)|Returns a list of count random numbers, with an optional seed parameter.| -|[List.Times](list-times.md)|Returns a list of time values of size count, starting at start.| +|[List.Numbers](list-numbers.md)|Returns a list of numbers given an initial value, count, and optional increment value.| +|[List.Random](list-random.md)|Returns a list of random numbers.| +|[List.Times](list-times.md)|Generates a list of `time` values given an initial value, count, and incremental duration value.| ## Parameter values From 9e2f7331e8a5330c001592b4e4ae32a2a5a5dfaf Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 28 Jan 2025 14:18:54 -0800 Subject: [PATCH 713/934] Updated table functions article for freshness --- query-languages/m/table-functions.md | 173 ++++++++++++++------------- 1 file changed, 87 insertions(+), 86 deletions(-) diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index 0871059cb..e60c1cf42 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table functions" title: "Table functions" -ms.date: 10/21/2022 +ms.date: 1/28/2025 ms.custom: "nonautomated-date" ms.subservice: m-source --- @@ -18,163 +18,164 @@ These functions create and manipulate table values. |[RowExpression.Column](rowexpression-column.md)|Returns an abstract syntax tree (AST) that represents access to a column within a row expression.| |[RowExpression.From](rowexpression-from.md)|Returns the abstract syntax tree (AST) for the body of a function.| |[RowExpression.Row](rowexpression-row.md)|An abstract syntax tree (AST) node representing the row in a row expression.| -|[Table.FromColumns](table-fromcolumns.md)|Returns a table from a list containing nested lists with the column names and values.| +|[Table.FromColumns](table-fromcolumns.md)|Creates a table from a list of columns and specified values.| |[Table.FromList](table-fromlist.md)|Converts a list into a table by applying the specified splitting function to each item in the list.| -|[Table.FromRecords](table-fromrecords.md)|Returns a table from a list of records.| -|[Table.FromRows](table-fromrows.md)|Creates a table from the list where each element of the list is a list that contains the column values for a single row.| -|[Table.FromValue](table-fromvalue.md)|Returns a table with a column containing the provided value or list of values.| -|[Table.FuzzyGroup](table-fuzzygroup.md)|Groups the rows of a table by fuzzily matching values in the specified column for each row.| -|[Table.FuzzyJoin](table-fuzzyjoin.md)|Joins the rows from the two tables that fuzzy match based on the given keys.| -|[Table.FuzzyNestedJoin](table-fuzzynestedjoin.md)|Performs a fuzzy join between tables on supplied columns and produces the join result in a new column.| -|[Table.Split](table-split.md)|Splits the specified table into a list of tables using the specified page size.| +|[Table.FromRecords](table-fromrecords.md)|Converts a list of records into a table.| +|[Table.FromRows](table-fromrows.md)|Creates a table from a list of row values and optional columns.| +|[Table.FromValue](table-fromvalue.md)|Creates a table with a column from the provided value(s).| |[Table.WithErrorContext](table-witherrorcontext.md) | This function is intended for internal use only.| |[Table.View](table-view.md)|Creates or extends a table with user-defined handlers for query and action operations.| -|[Table.ViewError](table-viewerror.md) | Creates a modified error record which won't trigger a fallback when thrown by a handler defined on a view (via [Table.View](table-view.md)).| +|[Table.ViewError](table-viewerror.md) | Creates a modified error record that won't trigger a fallback when thrown by a handler defined on a view (via [Table.View](table-view.md)).| |[Table.ViewFunction](table-viewfunction.md) | Creates a function that can be intercepted by a handler defined on a view (via **Table.View**).| ## Conversions |Name|Description| |------------|---------------| -|[Table.ToColumns](table-tocolumns.md)|Returns a list of nested lists each representing a column of values in the input table.| -|[Table.ToList](table-tolist.md)|Returns a table into a list by applying the specified combining function to each row of values in a table.| -|[Table.ToRecords](table-torecords.md)|Returns a list of records from an input table.| -|[Table.ToRows](table-torows.md)|Returns a nested list of row values from an input table.| +|[Table.ToColumns](table-tocolumns.md)|Creates a list of nested lists of column values from a table.| +|[Table.ToList](table-tolist.md)|Converts a table into a list by applying the specified combining function to each row of values in the table.| +|[Table.ToRecords](table-torecords.md)|Converts a table to a list of records.| +|[Table.ToRows](table-torows.md)|Creates a list of nested lists of row values from a table.| ## Information |Name|Description| |------------|---------------| |[Table.ApproximateRowCount](table-approximaterowcount.md)|Returns the approximate number of rows in the table.| -|[Table.ColumnCount](table-columncount.md)|Returns the number of columns in a table.| -|[Table.IsEmpty](table-isempty.md)|Returns true if the table does not contain any rows.| +|[Table.ColumnCount](table-columncount.md)|Returns the number of columns in the table.| +|[Table.IsEmpty](table-isempty.md)|Indicates whether the table contains any rows.| +|[Table.PartitionValues](table-partitionvalues.md)|Returns information about how a table is partitioned.| |[Table.Profile](table-profile.md)|Returns a profile of the columns of a table.| -|[Table.RowCount](table-rowcount.md)|Returns the number of rows in a table.| -|[Table.Schema](table-schema.md)|Returns a table containing a description of the columns (i.e. the schema) of the specified table.| -|[Tables.GetRelationships](tables-getrelationships.md)|Returns the relationships among a set of tables. | +|[Table.RowCount](table-rowcount.md)|Returns the number of rows in the table.| +|[Table.Schema](table-schema.md)|Returns a table containing a description of the columns (that is, the schema) of the specified table.| +|[Tables.GetRelationships](tables-getrelationships.md)|Gets the relationships among a set of tables.| ## Row operations |Name|Description| |------------|---------------| -|[Table.AlternateRows](table-alternaterows.md)|Returns a table containing an alternating pattern of the rows from a table.| -|[Table.Combine](table-combine.md)|Returns a table that is the result of merging a list of tables. The tables must all have the same row type structure.| -|[Table.FindText](table-findtext.md)|Returns a table containing only the rows that have the specified text within one of their cells or any part thereof.| -|[Table.First](table-first.md)|Returns the first row from a table.| -|[Table.FirstN](table-firstn.md)|Returns the first row(s) of a table, depending on the countOrCondition parameter.| +|[Table.AlternateRows](table-alternaterows.md)|Keeps the initial offset then alternates taking and skipping the following rows.| +|[Table.Combine](table-combine.md)|Returns a table that is the result of merging a list of tables.| +|[Table.FindText](table-findtext.md)|Returns all the rows that contain the given text in the table.| +|[Table.First](table-first.md)|Returns the first row or a specified default value.| +|[Table.FirstN](table-firstn.md)|Returns the first count rows specified.| |[Table.FirstValue](table-firstvalue.md)|Returns the first column of the first row of the table or a specified default value.| -|[Table.FromPartitions](table-frompartitions.md)|Returns a table that is the result of combining a set of partitioned tables into new columns. The type of the column can optionally be specified, the default is any.| -|[Table.InsertRows](table-insertrows.md)|Returns a table with the list of rows inserted into the table at an index. Each row to insert must match the row type of the table..| -|[Table.Last](table-last.md)|Returns the last row of a table.| -|[Table.LastN](table-lastn.md)|Returns the last row(s) from a table, depending on the countOrCondition parameter.| -|[Table.MatchesAllRows](table-matchesallrows.md)|Returns true if all of the rows in a table meet a condition.| -|[Table.MatchesAnyRows](table-matchesanyrows.md)|Returns true if any of the rows in a table meet a condition.| -|[Table.Partition](table-partition.md)|Partitions the table into a list of groups number of tables, based on the value of the column of each row and a hash function. The hash function is applied to the value of the column of a row to obtain a hash value for the row. The hash value modulo groups determines in which of the returned tables the row will be placed.| -|[Table.PartitionValues](table-partitionvalues.md)|Returns information about how a table is partitioned.| -|[Table.Range](table-range.md)|Returns the specified number of rows from a table starting at an offset.| -|[Table.RemoveFirstN](table-removefirstn.md)|Returns a table with the specified number of rows removed from the table starting at the first row. The number of rows removed depends on the optional countOrCondition parameter.| -|[Table.RemoveLastN](table-removelastn.md)|Returns a table with the specified number of rows removed from the table starting at the last row. The number of rows removed depends on the optional countOrCondition parameter.| -|[Table.RemoveRows](table-removerows.md)|Returns a table with the specified number of rows removed from the table starting at an offset.| -|[Table.RemoveRowsWithErrors](table-removerowswitherrors.md)|Returns a table with all rows removed from the table that contain an error in at least one of the cells in a row.| -|[Table.Repeat](table-repeat.md)|Returns a table containing the rows of the table repeated the count number of times.| -|[Table.ReplaceRows](table-replacerows.md)|Returns a table where the rows beginning at an offset and continuing for count are replaced with the provided rows.| +|[Table.FromPartitions](table-frompartitions.md)|Returns a table that is the result of combining a set of partitioned tables.| +|[Table.InsertRows](table-insertrows.md)|Inserts a list of rows into the table at the specified position.| +|[Table.Last](table-last.md)|Returns the last row or a specified default value.| +|[Table.LastN](table-lastn.md)|Returns the last specified number of rows.| +|[Table.MatchesAllRows](table-matchesallrows.md)|Indicates whether all the rows in the table meet the given condition.| +|[Table.MatchesAnyRows](table-matchesanyrows.md)|Indicates whether any the rows in the table meet the given condition.| +|[Table.Partition](table-partition.md)|Partitions the table into a list of tables based on the number of groups and column specified.| +|[Table.Range](table-range.md)|Returns the rows beginning at the specified offset.| +|[Table.RemoveFirstN](table-removefirstn.md)|Returns a table with the specified number of rows removed from the table starting at the first row.| +|[Table.RemoveLastN](table-removelastn.md)|Returns a table with the specified number of rows removed from the table starting at the last row.| +|[Table.RemoveRows](table-removerows.md)|Removes the specified number of rows.| +|[Table.RemoveRowsWithErrors](table-removerowswitherrors.md)|Returns a table with the rows removed from the input table that contain an error in at least one of the cells. If a columns list is specified, then only the cells in the specified columns are inspected for errors.| +|[Table.Repeat](table-repeat.md)|Repeats the rows of the tables a specified number of times.| +|[Table.ReplaceRows](table-replacerows.md)|Replaces the specified range of rows with the provided row(s).| |[Table.ReverseRows](table-reverserows.md)|Returns a table with the rows in reverse order.| -|[Table.SelectRows](table-selectrows.md)|Returns a table containing only the rows that match a condition.| -|[Table.SelectRowsWithErrors](table-selectrowswitherrors.md)|Returns a table with only the rows from table that contain an error in at least one of the cells in a row.| -|[Table.SingleRow](table-singlerow.md)|Returns a single row from a table.| -|[Table.Skip](table-skip.md)|Returns a table that does not contain the first row or rows of the table.| +|[Table.SelectRows](table-selectrows.md)|Selects the rows that meet the condition function.| +|[Table.SelectRowsWithErrors](table-selectrowswitherrors.md)|Returns a table with only those rows of the input table that contain an error in at least one of the cells. If a columns list is specified, then only the cells in the specified columns are inspected for errors.| +|[Table.SingleRow](table-singlerow.md)|Returns a single row in the table.| +|[Table.Skip](table-skip.md)|Returns a table with the first specified number of rows skipped.| |[Table.SplitAt](table-splitat.md)|Returns a list containing the first count rows specified and the remaining rows.| ## Column operations |Name|Description| |------------|---------------| -|[Table.Column](table-column.md)|Returns the values from a column in a table.| -|[Table.ColumnNames](table-columnnames.md)|Returns the names of columns from a table.| +|[Table.Column](table-column.md)|Returns a specified column of data from the table as a list.| +|[Table.ColumnNames](table-columnnames.md)|Returns the column names as a list.| |[Table.ColumnsOfType](table-columnsoftype.md)|Returns a list with the names of the columns that match the specified types.| -|[Table.DemoteHeaders](table-demoteheaders.md)|Demotes the header row down into the first row of a table.| +|[Table.DemoteHeaders](table-demoteheaders.md)|Demotes the column headers to the first row of values.| |[Table.DuplicateColumn](table-duplicatecolumn.md) | Duplicates a column with the specified name. Values and type are copied from the source column.| |[Table.HasColumns](table-hascolumns.md)|Indicates whether the table contains the specified column(s).| -|[Table.Pivot](table-pivot.md)|Given a table and attribute column containing pivotValues, creates new columns for each of the pivot values and assigns them values from the valueColumn. An optional aggregationFunction can be provided to handle multiple occurrence of the same key value in the attribute column.| -|[Table.PrefixColumns](table-prefixcolumns.md)|Returns a table where the columns have all been prefixed with a text value.| -|[Table.PromoteHeaders](table-promoteheaders.md)|Promotes the first row of the table into its header or column names.| -|[Table.RemoveColumns](table-removecolumns.md)|Returns a table without a specific column or columns.| -|[Table.ReorderColumns](table-reordercolumns.md)|Returns a table with specific columns in an order relative to one another.| +|[Table.Pivot](table-pivot.md)|Given a pair of columns representing attribute-value pairs, rotates the data in the attribute column into a column headings.| +|[Table.PrefixColumns](table-prefixcolumns.md)|Returns a table where the columns have all been prefixed with the given text.| +|[Table.PromoteHeaders](table-promoteheaders.md)|Promotes the first row of values as the new column headers (that is, as column names).| +|[Table.RemoveColumns](table-removecolumns.md)|Removes the specified columns.| +|[Table.ReorderColumns](table-reordercolumns.md)|Returns a table with the columns in the specified order.| |[Table.RenameColumns](table-renamecolumns.md)|Returns a table with the columns renamed as specified.| -|[Table.SelectColumns](table-selectcolumns.md)|Returns a table that contains only specific columns.| +|[Table.SelectColumns](table-selectcolumns.md)|Returns a table with only the specified columns.| |[Table.TransformColumnNames](table-transformcolumnnames.md)|Transforms column names by using the given function.| -|[Table.Unpivot](table-unpivot.md)|Given a list of table columns, transforms those columns into attribute-value pairs.| -|[Table.UnpivotOtherColumns](table-unpivotothercolumns.md)|Translates all columns other than a specified set into attribute-value pairs, combined with the rest of the values in each row.| +|[Table.Unpivot](table-unpivot.md)|Translates a set of columns in a table into attribute-value pairs.| +|[Table.UnpivotOtherColumns](table-unpivotothercolumns.md)|Translates all columns other than a specified set into attribute-value pairs.| ## Transformation |Name|Description| |------------|---------------| -|[Table.AddColumn](table-addcolumn.md)|Adds a column named newColumnName to a table.| +|[Table.AddColumn](table-addcolumn.md)|Adds a column with the specified name. The value is computed using the specified selection function with each row taken as an input.| |[Table.AddFuzzyClusterColumn](table-addfuzzyclustercolumn.md)| Adds a new column with representative values obtained by fuzzy grouping values of the specified column in the table.| -|[Table.AddIndexColumn](table-addindexcolumn.md)|Returns a table with a new column with a specific name that, for each row, contains an index of the row in the table.| -|[Table.AddJoinColumn](table-addjoincolumn.md)|Performs a nested join between table1 and table2 from specific columns and produces the join result as a newColumnName column for each row of table1.| -|[Table.AddKey](table-addkey.md)|Adds a key to table.| -|[Table.AggregateTableColumn](table-aggregatetablecolumn.md)|Aggregates tables nested in a specific column into multiple columns containing aggregate values for those tables.| -|[Table.CombineColumns](table-combinecolumns.md)|Table.CombineColumns merges columns using a combiner function to produce a new column. Table.CombineColumns is the inverse of Table.SplitColumns.| +|[Table.AddIndexColumn](table-addindexcolumn.md)|Appends a column with explicit position values.| +|[Table.AddJoinColumn](table-addjoincolumn.md)|Performs a join between tables on supplied columns and produces the join result in a new column.| +|[Table.AddKey](table-addkey.md)|Adds a key to a table.| +|[Table.AggregateTableColumn](table-aggregatetablecolumn.md)|Aggregates a column of tables into multiple columns in the containing table.| +|[Table.CombineColumns](table-combinecolumns.md)|Combines the specified columns into a new column using the specified combiner function.| |[Table.CombineColumnsToRecord](table-combinecolumnstorecord.md)|Combines the specified columns into a new record-valued column where each record has field names and values corresponding to the column names and values of the columns that were combined.| |[Table.ConformToPageReader](table-conformtopagereader.md)|This function is intended for internal use only.| |[Table.ExpandListColumn](table-expandlistcolumn.md)|Given a column of lists in a table, create a copy of a row for each value in its list.| |[Table.ExpandRecordColumn](table-expandrecordcolumn.md)|Expands a column of records into columns with each of the values.| |[Table.ExpandTableColumn](table-expandtablecolumn.md)|Expands a column of records or a column of tables into multiple columns in the containing table.| -|[Table.FillDown](table-filldown.md)|Replaces null values in the specified column or columns of the table with the most recent non-null value in the column.| -|[Table.FillUp](table-fillup.md)|Returns a table from the table specified where the value of the next cell is propagated to the null values cells above in the column specified.| +|[Table.FillDown](table-filldown.md)|Propagates the value of a previous cell to the null-valued cells below in the column.| +|[Table.FillUp](table-fillup.md)|Propagates the value of a cell to the null-valued cells above in the column.| |[Table.FilterWithDataTable](table-filterwithdatatable.md)|This function is intended for internal use only.| -|[Table.Group](table-group.md)|Groups table rows by the values of key columns for each row.| -|[Table.Join](table-join.md)|Joins the rows of table1 with the rows of table2 based on the equality of the values of the key columns selected by table1, key1 and table2, key2.| +|[Table.FuzzyGroup](table-fuzzygroup.md)|Groups rows in the table based on fuzzy matching of keys.| +|[Table.FuzzyJoin](table-fuzzyjoin.md)|Joins the rows from the two tables that fuzzy match based on the given keys.| +|[Table.FuzzyNestedJoin](table-fuzzynestedjoin.md)|Performs a fuzzy join between tables on supplied columns and produces the join result in a new column.| +|[Table.Group](table-group.md)|Groups rows in the table that have the same key.| +|[Table.Join](table-join.md)|Joins the rows from the two tables that match based on the given keys.| |[Table.Keys](table-keys.md)|Returns the keys of the specified table.| -|[Table.NestedJoin](table-nestedjoin.md)|Joins the rows of the tables based on the equality of the keys. The results are entered into a new column.| +|[Table.NestedJoin](table-nestedjoin.md)|Performs a join between tables on supplied columns and produces the join result in a new column.| |[Table.ReplaceErrorValues](table-replaceerrorvalues.md)|Replaces the error values in the specified columns with the corresponding specified value.| |[Table.ReplaceKeys](table-replacekeys.md)|Replaces the keys of the specified table.| |[Table.ReplaceRelationshipIdentity](table-replacerelationshipidentity.md)|This function is intended for internal use only.| -|[Table.ReplaceValue](table-replacevalue.md)|Replaces oldValue with newValue in specific columns of a table, using the provided replacer function, such as text.Replace or Value.Replace.| -|[Table.SplitColumn](table-splitcolumn.md)|Returns a new set of columns from a single column applying a splitter function to each value.| +|[Table.ReplaceValue](table-replacevalue.md)|Replaces one value with another in the specified columns.| +|[Table.Split](table-split.md)|Splits the specified table into a list of tables using the specified page size.| +|[Table.SplitColumn](table-splitcolumn.md)|Splits the specified columns into a set of additional columns using the specified splitter function.| |[Table.TransformColumns](table-transformcolumns.md)|Transforms the values of one or more columns.| -|[Table.TransformColumnTypes](table-transformcolumntypes.md)|Transforms the column types from a table using a type.| -|[Table.TransformRows](table-transformrows.md)|Transforms the rows from a table using a transform function.| -|[Table.Transpose](table-transpose.md)|Returns a table with columns converted to rows and rows converted to columns from the input table.| +|[Table.TransformColumnTypes](table-transformcolumntypes.md)|Applies type transformation(s) of the form { column, type } using a specific culture.| +|[Table.TransformRows](table-transformrows.md)|Transforms the rows of the table using the specified transform function.| +|[Table.Transpose](table-transpose.md)|Makes columns into rows and rows into columns.| ## Membership |Name|Description| |------------|---------------| -|[Table.Contains](table-contains.md)|Determines whether the a record appears as a row in the table.| -|[Table.ContainsAll](table-containsall.md)|Determines whether all of the specified records appear as rows in the table.| -|[Table.ContainsAny](table-containsany.md)|Determines whether any of the specified records appear as rows in the table.| -|[Table.Distinct](table-distinct.md)|Removes duplicate rows from a table, ensuring that all remaining rows are distinct.| -|[Table.IsDistinct](table-isdistinct.md)|Determines whether a table contains only distinct rows.| -|[Table.PositionOf](table-positionof.md)|Determines the position or positions of a row within a table.| -|[Table.PositionOfAny](table-positionofany.md)|Determines the position or positions of any of the specified rows within the table.| -|[Table.RemoveMatchingRows](table-removematchingrows.md)|Removes all occurrences of rows from a table.| -|[Table.ReplaceMatchingRows](table-replacematchingrows.md)|Replaces specific rows from a table with the new rows.| +|[Table.Contains](table-contains.md)|Indicates whether the specified record appears as a row in the table.| +|[Table.ContainsAll](table-containsall.md)|Indicates whether all of the specified records appear as rows in the table.| +|[Table.ContainsAny](table-containsany.md)|Indicates whether any of the specified records appear as rows in the table.| +|[Table.Distinct](table-distinct.md)|Removes duplicate rows from the table.| +|[Table.IsDistinct](table-isdistinct.md)|Indicates whether the table contains only distinct rows (no duplicates).| +|[Table.PositionOf](table-positionof.md)|Returns the position or positions of the row within the table.| +|[Table.PositionOfAny](table-positionofany.md)|Returns the position or positions of any of the specified rows within the table.| +|[Table.RemoveMatchingRows](table-removematchingrows.md)|Removes all occurrences of the specified rows from the table.| +|[Table.ReplaceMatchingRows](table-replacematchingrows.md)|Replaces all the specified rows with the provided row or rows.| ## Ordering |Name|Description| |------------|---------------| -|[Table.Max](table-max.md)|Returns the largest row or rows from a table using a comparisonCriteria.| -|[Table.MaxN](table-maxn.md)|Returns the largest N rows from a table. After the rows are sorted, the countOrCondition parameter must be specified to further filter the result.| -|[Table.Min](table-min.md)|Returns the smallest row or rows from a table using a comparisonCriteria.| -|[Table.MinN](table-minn.md)|Returns the smallest N rows in the given table. After the rows are sorted, the countOrCondition parameter must be specified to further filter the result.| |[Table.AddRankColumn](table-addrankcolumn.md)|Appends a column with the ranking of one or more other columns.| -|[Table.Sort](table-sort.md)|Sorts the rows in a table using a comparisonCriteria or a default ordering if one is not specified.| +|[Table.Max](table-max.md)|Returns the largest row or default value using the given criteria.| +|[Table.MaxN](table-maxn.md)|Returns the largest row or rows using the given criteria.| +|[Table.Min](table-min.md)|Returns the smallest row or a default value using the given criteria.| +|[Table.MinN](table-minn.md)|Returns the smallest row or rows using the given criteria.| +|[Table.Sort](table-sort.md)|Sorts the table using one or more column names and comparison criteria.| ## Other |Name|Description| |------------|---------------| -|[Table.Buffer](table-buffer.md)|Buffers a table into memory, isolating it from external changes during evaluation.| +|[Table.Buffer](table-buffer.md)|Buffers a table in memory, isolating it from external changes during evaluation.| +|[Table.StopFolding](table-stopfolding.md) | Prevents any downstream operations from being run against the original source of the data.| ## Parameter Values ### Naming output columns -This parameter is a list of text values specifying the column names of the resulting table. This parameter is generally used in the Table construction functions, such as [Table.FromRows](table-fromrows.md) and [Table.FromList](table-fromlist.md). +This parameter is a list of text values specifying the column names of the resulting table. This parameter is generally used in the [Table construction functions](#table-construction), such as [Table.FromRows](table-fromrows.md) and [Table.FromList](table-fromlist.md). ### Comparison criteria From b8b2b82b2629a5a74772b36d6dc8bb5779f131d4 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 28 Jan 2025 14:25:10 -0800 Subject: [PATCH 714/934] Fixed broken line feeds --- query-languages/m/table-functions.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index e60c1cf42..4ba334c6a 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -205,8 +205,8 @@ More information: [Table.FirstN](table-firstn.md), [Table.MaxN](table-maxn.md) Extra values are used to indicate how the function should handle extra values in a row. This parameter is specified as a number, which maps to the following options: -`ExtraValues.List = 0` -`ExtraValues.Error = 1` +`ExtraValues.List = 0`
+`ExtraValues.Error = 1`
`ExtraValues.Ignore = 2` More information: [Table.FromList](table-fromlist.md), [ExtraValues.Type](extravalues-type.md) @@ -215,8 +215,8 @@ More information: [Table.FromList](table-fromlist.md), [ExtraValues.Type](extrav This parameter is used to indicate how the function should handle missing columns. This parameter is specified as a number, which maps to the following options: -`MissingField.Error = 0` -`MissingField.Ignore = 1` +`MissingField.Error = 0`
+`MissingField.Ignore = 1`
`MissingField.UseNull = 2;` This parameter is used in column or transformation operations, for examples, in [Table.TransformColumns](table-transformcolumns.md). More information: [MissingField.Type](missingfield-type.md) @@ -225,7 +225,7 @@ This parameter is used in column or transformation operations, for examples, in Sort ordering is used to indicate how the results should be sorted. This parameter is specified as a number, which maps to the following options: -`Order.Ascending = 0` +`Order.Ascending = 0`
`Order.Descending = 1` More information: [Order.Type](order-type.md) From 18583e1f36cf2da9780bbaa42c5e0364549b2cfa Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 28 Jan 2025 14:43:52 -0800 Subject: [PATCH 715/934] More minor fixes --- query-languages/m/table-functions.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index 4ba334c6a..701f8a7c8 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -13,6 +13,7 @@ These functions create and manipulate table values. |Name|Description| |------------|---------------| +[#table](sharptable.md) | Creates a table value from columns and rows.| |[ItemExpression.From](itemexpression-from.md) | Returns the abstract syntax tree (AST) for the body of a function.| |[ItemExpression.Item](itemexpression-item.md) | An abstract syntax tree (AST) node representing the item in an item expression.| |[RowExpression.Column](rowexpression-column.md)|Returns an abstract syntax tree (AST) that represents access to a column within a row expression.| @@ -22,11 +23,11 @@ These functions create and manipulate table values. |[Table.FromList](table-fromlist.md)|Converts a list into a table by applying the specified splitting function to each item in the list.| |[Table.FromRecords](table-fromrecords.md)|Converts a list of records into a table.| |[Table.FromRows](table-fromrows.md)|Creates a table from a list of row values and optional columns.| -|[Table.FromValue](table-fromvalue.md)|Creates a table with a column from the provided value(s).| +|[Table.FromValue](table-fromvalue.md)|Creates a table with a column from the provided value or values.| |[Table.WithErrorContext](table-witherrorcontext.md) | This function is intended for internal use only.| |[Table.View](table-view.md)|Creates or extends a table with user-defined handlers for query and action operations.| |[Table.ViewError](table-viewerror.md) | Creates a modified error record that won't trigger a fallback when thrown by a handler defined on a view (via [Table.View](table-view.md)).| -|[Table.ViewFunction](table-viewfunction.md) | Creates a function that can be intercepted by a handler defined on a view (via **Table.View**).| +|[Table.ViewFunction](table-viewfunction.md) | Creates a function that can be intercepted by a handler defined on a view (via [Table.View](table-view.md)).| ## Conversions @@ -73,7 +74,7 @@ These functions create and manipulate table values. |[Table.RemoveRows](table-removerows.md)|Removes the specified number of rows.| |[Table.RemoveRowsWithErrors](table-removerowswitherrors.md)|Returns a table with the rows removed from the input table that contain an error in at least one of the cells. If a columns list is specified, then only the cells in the specified columns are inspected for errors.| |[Table.Repeat](table-repeat.md)|Repeats the rows of the tables a specified number of times.| -|[Table.ReplaceRows](table-replacerows.md)|Replaces the specified range of rows with the provided row(s).| +|[Table.ReplaceRows](table-replacerows.md)|Replaces the specified range of rows with the provided row or rows.| |[Table.ReverseRows](table-reverserows.md)|Returns a table with the rows in reverse order.| |[Table.SelectRows](table-selectrows.md)|Selects the rows that meet the condition function.| |[Table.SelectRowsWithErrors](table-selectrowswitherrors.md)|Returns a table with only those rows of the input table that contain an error in at least one of the cells. If a columns list is specified, then only the cells in the specified columns are inspected for errors.| @@ -90,7 +91,7 @@ These functions create and manipulate table values. |[Table.ColumnsOfType](table-columnsoftype.md)|Returns a list with the names of the columns that match the specified types.| |[Table.DemoteHeaders](table-demoteheaders.md)|Demotes the column headers to the first row of values.| |[Table.DuplicateColumn](table-duplicatecolumn.md) | Duplicates a column with the specified name. Values and type are copied from the source column.| -|[Table.HasColumns](table-hascolumns.md)|Indicates whether the table contains the specified column(s).| +|[Table.HasColumns](table-hascolumns.md)|Indicates whether the table contains the specified column or columns.| |[Table.Pivot](table-pivot.md)|Given a pair of columns representing attribute-value pairs, rotates the data in the attribute column into a column headings.| |[Table.PrefixColumns](table-prefixcolumns.md)|Returns a table where the columns have all been prefixed with the given text.| |[Table.PromoteHeaders](table-promoteheaders.md)|Promotes the first row of values as the new column headers (that is, as column names).| From 5e992a0fe33e1a34d4d4cc2fc8fe6cd8c253776a Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 28 Jan 2025 14:59:10 -0800 Subject: [PATCH 716/934] Updated duration functions article for freshness --- query-languages/m/duration-functions.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/query-languages/m/duration-functions.md b/query-languages/m/duration-functions.md index adb3e0b63..0d4ca9869 100644 --- a/query-languages/m/duration-functions.md +++ b/query-languages/m/duration-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Duration functions" title: "Duration functions" -ms.date: 7/19/2022 +ms.date: 1/28/2025 ms.custom: "nonautomated-date" --- # Duration functions @@ -11,15 +11,15 @@ These functions create and manipulate duration values. |Name|Description| |------------|---------------| |[Duration.Days](duration-days.md)|Returns the days portion of a duration.| -|[Duration.From](duration-from.md)|Returns a duration value from a value.| -|[Duration.FromText](duration-fromtext.md)|Returns a Duration value from a text value.| +|[Duration.From](duration-from.md)|Creates a duration from the given value.| +|[Duration.FromText](duration-fromtext.md)|Returns a duration value from a text value.| |[Duration.Hours](duration-hours.md)|Returns the hours portion of a duration.| |[Duration.Minutes](duration-minutes.md)|Returns the minutes portion of a duration.| |[Duration.Seconds](duration-seconds.md)|Returns the seconds portion of a duration.| -|[Duration.ToRecord](duration-torecord.md)|Returns a record with parts of a Duration value.| -|[Duration.TotalDays](duration-totaldays.md)|Returns the total magnitude of days from a Duration value.| -|[Duration.TotalHours](duration-totalhours.md)|Returns the total magnitude of hours from a Duration value.| -|[Duration.TotalMinutes](duration-totalminutes.md)|Returns the total magnitude of minutes from a Duration value.| -|[Duration.TotalSeconds](duration-totalseconds.md)|Returns the total magnitude of seconds from a duration value.| -|[Duration.ToText](duration-totext.md)|Returns a text value from a Duration value.| +|[Duration.ToRecord](duration-torecord.md)|Returns a record containing the parts of the duration.| +|[Duration.TotalDays](duration-totaldays.md)|Returns the total days this duration spans.| +|[Duration.TotalHours](duration-totalhours.md)|Returns the total hours this duration spans.| +|[Duration.TotalMinutes](duration-totalminutes.md)|Returns the total minutes this duration spans.| +|[Duration.TotalSeconds](duration-totalseconds.md)|Returns the total seconds this duration spans.| +|[Duration.ToText](duration-totext.md)|Returns the text of the form "d.h:m:s".| |[#duration](sharpduration.md)|Creates a duration value from days, hours, minutes, and seconds.| From 1c93bad0b9ce734af164172baa6ca7cfc0057b30 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 29 Jan 2025 11:46:02 -0500 Subject: [PATCH 717/934] Tweaks --- query-languages/m/m-spec-operators.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 402a2ae28..9d60034ab 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -2,7 +2,7 @@ title: M Language Operators description: Describes using operators in the Power Query M formula language ms.topic: conceptual -ms.date: 1/7/2025 +ms.date: 1/29/2025 ms.custom: "nonautomated-date" ms.subservice: m-specification --- @@ -133,12 +133,12 @@ The following table summarizes the M operators, listing the operator categories
- + - + @@ -1255,7 +1255,7 @@ The type compatibility operator `x is y` is defined for the following types of | --- | --- | --- | | `type any` | _primitive-or-nullable-primitive-type_ | `type logical` | -The expression `x is y` returns `true` if the ascribed type of `x` is compatible with `y`, and returns `false` if it is not compatible. `y` must be a _primitive-or-nullable-primitive-type_. +The expression `x is y` returns `true` if the ascribed type of `x` is compatible with `y`, and returns `false` if it is not compatible. `y` must be a primitive type or a nullable primitive type. _is-expression:
      as-expression
@@ -1265,7 +1265,7 @@ primitive-or-nullable-primitive-type:_
Type compatibility, as supported by the `is` operator, is a subset of [general type compatibility](m-spec-types.md) and is defined using the following rules: -* If `x` is null then it is compatible if `y` is the type `any`, the type `null`, or a nullable type. +* If `x` is null then it is compatible if `y` is the type `any`, the type `null`, or a nullable primitive type. * If `x` is non-null then it is a compatible if the primitive type of `x` is the same as `y`. From 674e35aac82b6e87fab6714ed7ab8f4a17f7674e Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 29 Jan 2025 12:02:01 -0500 Subject: [PATCH 718/934] Tweaks --- query-languages/m/m-spec-types.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 97ada8aa2..c07a7c9e7 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -2,7 +2,7 @@ title: M Language types description: Describes using types in the Power Query M formula language ms.topic: conceptual -ms.date: 1/3/2025 +ms.date: 1/29/2025 ms.custom: "nonautomated-date" ms.subservice: m-specification --- @@ -29,24 +29,21 @@ The set of _primitive types_ includes the types of primitive values, and a numbe All types that are not members of the closed set of primitive types plus their nullable counterparts are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: -_primitive-type:_ one of
-      `any anynonnull binary date datetime datetimezone duration function list logical`
-      `none null number record table text time type`
-_primitive-or-nullable-primitive-type:_
-      `nullable`_opt primitive-type_
- -All other types are collectively referred to as _custom types_. Custom types can be written using a `type-expression`: - _type-expression:
      primary-expression_
      `type` _primary-type
primary-type:
-      primitive-type
+      primitive-or-nullable-primitive-type
      record-type
      list-type
      function-type
      table-type
-      nullable-type_ +      nullable-type_
+_primitive-or-nullable-primitive-type:_
+      `nullable`_opt primitive-type_
+_primitive-type:_ one of
+      `any anynonnull binary date datetime datetimezone duration function list logical`
+      `none null number record table text time type`
The _primitive-type_ names are _contextual keywords_ recognized only in a _type_ context. The use of parentheses in a _type_ context moves the grammar back to a regular expression context, requiring the use of the type keyword to move back into a type context. For example, to invoke a function in a _type_ context, parentheses can be used: From 28a1ef26c8a971dda01cc1123b0a327eae902935 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Wed, 29 Jan 2025 12:08:25 -0500 Subject: [PATCH 719/934] Tweaking --- query-languages/m/m-spec-consolidated-grammar.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 6ce7eb19e..316c982ba 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -2,7 +2,7 @@ title: M Language Consolidated Grammar description: Describes all of the grammar associated with the Power Query M formula language ms.topic: conceptual -ms.date: 02/02/2024 +ms.date: 01/29/2025 ms.custom: "nonautomated-date" ms.subservice: m-specification --- @@ -500,17 +500,17 @@ type:
      primary-expression
      primary-type
primary-type:
-      primitive-type
+      primitive-or-nullable-primitive-type
      record-type
      list-type
      function-type
      table-type
-      nullable-type
-primitive-type:_ one of
-      `any anynonnull binary date datetime datetimezone duration function`
-      `list logical none null number record table text time type`
+      nullable-type_
_primitive-or-nullable-primitive-type:_
-      `nullable`_opt primitive-type_
+      `nullable`_opt primitive-type_
+_primitive-type:_ one of
+      `any anynonnull binary date datetime datetimezone duration function list logical`
+      `none null number record table text time type`
_record-type:_
      `[` _open-record-marker_ `]`
      `[` _field-specification-listopt_ `]`
From 6582452a46b324e3fa5e8e404d011e446782e246 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 30 Jan 2025 15:55:06 -0500 Subject: [PATCH 720/934] assertion -> type assertion --- query-languages/m/m-spec-consolidated-grammar.md | 4 ++-- query-languages/m/m-spec-types.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/m-spec-consolidated-grammar.md b/query-languages/m/m-spec-consolidated-grammar.md index 316c982ba..b812907ef 100644 --- a/query-languages/m/m-spec-consolidated-grammar.md +++ b/query-languages/m/m-spec-consolidated-grammar.md @@ -550,8 +550,8 @@ optional-parameter-specification:_
parameter-specification:
      parameter-name parameter-type
parameter-type:
-      assertion
-assertion:_
+      type-assertion
+type-assertion:_
      `as` _type
table-type:_
      `table` _row-type
diff --git a/query-languages/m/m-spec-types.md b/query-languages/m/m-spec-types.md index 94d0b968f..68061059d 100644 --- a/query-languages/m/m-spec-types.md +++ b/query-languages/m/m-spec-types.md @@ -228,8 +228,8 @@ optional-parameter-specification:_
parameter-specification:
      parameter-name parameter-type
parameter-type:
-      assertion
-assertion:_
+      type-assertion
+type-assertion:_
      `as` _type_ The result of evaluating a _function-type_ is a type value whose base type is `function`. From 4a6673e043a72ffacac07746631fb9530acaa03f Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 30 Jan 2025 16:00:31 -0500 Subject: [PATCH 721/934] Tweaking --- query-languages/m/m-spec-operators.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 9d60034ab..378bf5061 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -133,7 +133,7 @@ The following table summarizes the M operators, listing the operator categories
- + From fbb40b1186314fa8b4f33d114c3f2ed4d31990d5 Mon Sep 17 00:00:00 2001 From: Megan Bradley Date: Thu, 30 Jan 2025 16:41:09 -0700 Subject: [PATCH 722/934] Update format-function-dax.md --- query-languages/dax/format-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/format-function-dax.md b/query-languages/dax/format-function-dax.md index f2bdb6986..f6218bb9c 100644 --- a/query-languages/dax/format-function-dax.md +++ b/query-languages/dax/format-function-dax.md @@ -37,7 +37,7 @@ A string containing `value` formatted as defined by `format_string`. - The format strings supported as an argument to the DAX FORMAT function are based on the format strings used by Visual Basic (OLE Automation), not on the format strings used by the .NET Framework. Therefore, you might get unexpected results or an error if the argument doesn't match any defined format strings. For example, "p" as an abbreviation for "Percent" isn't supported. Strings that you provide as an argument to the FORMAT function that aren't included in the list of predefined format strings are handled as part of a custom format string, or as a string literal. -- To learn more specifying a locale with FORMAT, check out this [video](https://www.microsoft.com/videoplayer/embed/RWLjrD). +- To learn more specifying a locale with FORMAT, check out this [video](https://learn-video.azurefd.net/vod/player?id=95820b42-974a-4adb-a4d5-418e923dcd2a). - Using FORMAT changes a measure result to a text data type. If the measure result is originally of numeric data type, then with FORMAT, the measure can't be used on visuals where the values section requires a numeric data type, like with charts. In Power BI, you can alternatively use **Dynamic format strings for measures** specify a conditional format string that maintains the numeric data type of the measure. From 258c62af5ec3da905c663d3f0e482126d1ffe842 Mon Sep 17 00:00:00 2001 From: Megan Bradley Date: Thu, 30 Jan 2025 16:42:57 -0700 Subject: [PATCH 723/934] Update xirr-function-dax.md --- query-languages/dax/xirr-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/xirr-function-dax.md b/query-languages/dax/xirr-function-dax.md index 10bc2b83e..4d5b5d2fe 100644 --- a/query-languages/dax/xirr-function-dax.md +++ b/query-languages/dax/xirr-function-dax.md @@ -44,7 +44,7 @@ Internal rate of return for the given inputs. If the calculation fails to return - Avoid using ISERROR or IFERROR functions to capture an error returned by XIRR. If some inputs to the function may result in a no solution error, providing an alternateResult parameter is the most reliable and highest performing way to handle the error. -- To learn more about using the alternateResult parameter, be to check out this [video](https://www.microsoft.com/videoplayer/embed/RWLzrC). +- To learn more about using the alternateResult parameter, be to check out this [video](https://learn-video.azurefd.net/vod/player?id=f3170134-1c7f-47ff-82d7-f419404e3a0e). - When the absolute value of initial payment is small, the calculation likely fails to return a valid result. From 0c13e1871ce83d37c2e0ef071e65b43a6b619fd4 Mon Sep 17 00:00:00 2001 From: Kate Follis <28766705+kfollis@users.noreply.github.com> Date: Fri, 31 Jan 2025 12:25:52 -0800 Subject: [PATCH 724/934] Update understanding-functions-for-parent-child-hierarchies-in-dax.md --- ...derstanding-functions-for-parent-child-hierarchies-in-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md index 693053002..774a55cc3 100644 --- a/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md +++ b/query-languages/dax/understanding-functions-for-parent-child-hierarchies-in-dax.md @@ -4,7 +4,7 @@ title: "Understanding functions for parent-child hierarchies in DAX" --- # Understanding functions for parent-child hierarchies in DAX -DAX provides five functions to help users manage data that is presented as a parent-child hierarchy in their models. With this functions a user can obtain the entire lineage of parents a row has, how many levels has the lineage to the top parent, who is the parent n-levels above the current row, who is the n-descendant from the top of the current row hierarchy and is certain parent a parent in the current row hierarchy? +DAX provides five functions to help users manage data that is presented as a parent-child hierarchy in their models. With these functions a user can obtain the entire lineage of parents a row has, how many levels has the lineage to the top parent, who is the parent n-levels above the current row, who is the n-descendant from the top of the current row hierarchy and is certain parent a parent in the current row hierarchy? ## Parent-child functions in DAX From b7bd62fe6553fb734e12a2c067c0ee0998ba77c6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 5 Feb 2025 14:17:44 -0800 Subject: [PATCH 725/934] Added date and time links to date addition articles --- query-languages/m/date-adddays.md | 6 ++++++ query-languages/m/date-addmonths.md | 6 ++++++ query-languages/m/date-addquarters.md | 6 ++++++ query-languages/m/date-addweeks.md | 6 ++++++ query-languages/m/date-addyears.md | 6 ++++++ 5 files changed, 30 insertions(+) diff --git a/query-languages/m/date-adddays.md b/query-languages/m/date-adddays.md index 3b1e6e922..6cf016f1c 100644 --- a/query-languages/m/date-adddays.md +++ b/query-languages/m/date-adddays.md @@ -31,3 +31,9 @@ Date.AddDays(#date(2011, 5, 14), 5) **Output** `#date(2011, 5, 19)` + +## Related content + +* [#date](sharpdate.md) +* [#datetime](sharpdatetime.md) +* [#datetimezone](sharpdatetimezone.md) diff --git a/query-languages/m/date-addmonths.md b/query-languages/m/date-addmonths.md index 402457b7d..190dba0e3 100644 --- a/query-languages/m/date-addmonths.md +++ b/query-languages/m/date-addmonths.md @@ -45,3 +45,9 @@ Date.AddMonths(#datetime(2011, 5, 14, 8, 15, 22), 18) **Output** `#datetime(2012, 11, 14, 8, 15, 22)` + +## Related content + +* [#date](sharpdate.md) +* [#datetime](sharpdatetime.md) +* [#datetimezone](sharpdatetimezone.md) diff --git a/query-languages/m/date-addquarters.md b/query-languages/m/date-addquarters.md index 366bb6641..253d004e2 100644 --- a/query-languages/m/date-addquarters.md +++ b/query-languages/m/date-addquarters.md @@ -31,3 +31,9 @@ Date.AddQuarters(#date(2011, 5, 14), 1) **Output** `#date(2011, 8, 14)` + +## Related content + +* [#date](sharpdate.md) +* [#datetime](sharpdatetime.md) +* [#datetimezone](sharpdatetimezone.md) diff --git a/query-languages/m/date-addweeks.md b/query-languages/m/date-addweeks.md index 985d90eb5..1bb5f5390 100644 --- a/query-languages/m/date-addweeks.md +++ b/query-languages/m/date-addweeks.md @@ -31,3 +31,9 @@ Date.AddWeeks(#date(2011, 5, 14), 2) **Output** `#date(2011, 5, 28)` + +## Related content + +* [#date](sharpdate.md) +* [#datetime](sharpdatetime.md) +* [#datetimezone](sharpdatetimezone.md) diff --git a/query-languages/m/date-addyears.md b/query-languages/m/date-addyears.md index d1f5f8a62..a5a1eda1d 100644 --- a/query-languages/m/date-addyears.md +++ b/query-languages/m/date-addyears.md @@ -45,3 +45,9 @@ Date.AddYears(#datetime(2011, 5, 14, 8, 15, 22), 10) **Output** `#datetime(2021, 5, 14, 8, 15, 22)` + +## Related content + +* [#date](sharpdate.md) +* [#datetime](sharpdatetime.md) +* [#datetimezone](sharpdatetimezone.md) From 0d3f1155e0483c8a41f6e108ff7a0ba65964f497 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 7 Feb 2025 15:19:32 -0800 Subject: [PATCH 726/934] New capitalization in M article --- query-languages/m/m-working-with-case.md | 474 ++++++++++++++++++ query-languages/m/media/fuzzy-match-table.png | Bin 0 -> 4378 bytes query-languages/m/media/ignore-case-table.png | Bin 0 -> 5993 bytes .../m/media/list-distinct-lower-case.png | Bin 0 -> 3171 bytes query-languages/m/media/list-distinct.png | Bin 0 -> 3484 bytes query-languages/m/media/list-lower-case.png | Bin 0 -> 4384 bytes query-languages/m/media/list-proper-case.png | Bin 0 -> 4470 bytes query-languages/m/media/list-upper-case.png | Bin 0 -> 4608 bytes query-languages/m/media/sorted-list.png | Bin 0 -> 6198 bytes query-languages/m/media/table-lower-case.png | Bin 0 -> 9818 bytes query-languages/m/media/table-proper-case.png | Bin 0 -> 9976 bytes query-languages/m/media/table-upper-case.png | Bin 0 -> 10014 bytes query-languages/m/toc.yml | 2 + 13 files changed, 476 insertions(+) create mode 100644 query-languages/m/m-working-with-case.md create mode 100644 query-languages/m/media/fuzzy-match-table.png create mode 100644 query-languages/m/media/ignore-case-table.png create mode 100644 query-languages/m/media/list-distinct-lower-case.png create mode 100644 query-languages/m/media/list-distinct.png create mode 100644 query-languages/m/media/list-lower-case.png create mode 100644 query-languages/m/media/list-proper-case.png create mode 100644 query-languages/m/media/list-upper-case.png create mode 100644 query-languages/m/media/sorted-list.png create mode 100644 query-languages/m/media/table-lower-case.png create mode 100644 query-languages/m/media/table-proper-case.png create mode 100644 query-languages/m/media/table-upper-case.png diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md new file mode 100644 index 000000000..92baa65c6 --- /dev/null +++ b/query-languages/m/m-working-with-case.md @@ -0,0 +1,474 @@ +--- +description: "Learn more about: Capitalization in Power Query M" +title: "Capitalization of data in Power Query M" +ms.date: 2/7/2025 +ms.subservice: m-background +--- + +# Capitalization in Power Query M + +One of the problems of presenting data is that some data can be messy. One example is that names and places could exist in a database with random capitalization of their letters. This could cause a problem when manipulating the data because the Power Query M formula language is case-sensitive. + +To clean data with random capitalization, Power Query M provides functions to change the case of the data to be examined. There are methods to convert data to lower case (abc), upper case (ABC), or proper case (Abc). In addition, Power Query M also provides several ways to ignore the data's case altogether. + +In this article, you'll learn how to change the capitalization of words in text, lists, and tables. In addition, this article also demonstrates various ways of ignoring case while manipulating data in text, lists, and tables. + +## Changing case in text + +There are three functions that convert text to lower case, upper case, and proper case. The functions are [Text.Lower](text-lower.md), [Text.Upper](text-upper.md), and [Text.Proper](text-proper.md). The following simple examples demonstrate how these functions can be used in text. + +### Convert all characters in text to lower case + +The following example demonstrates how to convert all characters in a string to lower case. + +```powerquery-m +let + Source = Text.Lower("The quick brown fox jumps over the lazy dog.") +in + Source +``` + +This code produces the following output: + +`the quick brown fox jumps over the lazy dog.` + +### Convert all characters in text to upper case + +The following example demonstrates how to convert all characters in a text string to upper case. + +```powerquery-m +let + Source = Text.Upper("The quick brown fox jumps over the lazy dog.") +in + Source +``` + +This code produces the following output: + +`THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.` + +### Convert all words to initial caps + +The following example demonstrates how to convert all words in the sentence to initial capitalization. + +```powerquery-m +let + Source = Text.Proper("The quick brown fox jumps over the lazy dog.") +in + Source +``` + +This code produces the following output: + +`The Quick Brown Fox Jumps Over The Lazy Dog.` + +## Changing case in lists + +When changing case in lists, the most common function to use is [List.Transform](list-transform.md). The following simple examples demonstrate how this function can be used in lists. + +### Convert all items to lower case + +The following example shows how to change all items in a list to lower case. + +```powerquery-m +let + Source = {"Squash", "Pumpkin", "ApPlE", "pear", "orange", "APPLE", "Pear", "pear"}, + #"Lower Case" = List.Transform(Source, Text.Lower) +in + #"Lower Case" +``` + +This code produces the following output: + +:::image type="content" source="media/list-lower-case.png" alt-text="Screenshot of the list created by the list transform function that produces lower case results."::: + +### Convert all items to upper case + +The following example demonstrates how to change all items in a list to upper case. + +```powerquery-m +let + Source = {"Squash", "Pumpkin", "ApPlE", "pear", "orange", "APPLE", "Pear", "pear"}, + #"Upper Case" = List.Transform(Source, Text.Upper) +in + #"Upper Case" +``` + +This code produces the following output: + +:::image type="content" source="media/list-upper-case.png" alt-text="Screenshot of the list created by the list transform function that produces upper case results."::: + +### Convert all items to proper case + +The following exmaple demonstrates how to change all items in a list to proper case. + +```powerquery-m +let + Source = {"Squash", "Pumpkin", "ApPlE", "pear", "orange", "APPLE", "Pear", "pear"}, + #"Proper Case" = List.Transform(Source, Text.Proper) +in + #"Proper Case" +``` + +This code produces the following output: + +:::image type="content" source="media/list-proper-case.png" alt-text="Screenshot of the list created by the list transform function that produces proper case results."::: + +## Changing case in tables + +When changing case in tables, the most common function to use is [Table.TransformColumn](table-transformcolumn.md). There's also a function you can use to change the case of text that's contained in a row, called [Table.TransformRow](table-transformrow.md). However, this function isn't used as often. + +The following simple examples demonstrate how the `Table.TransformColumn` function can be used to change the case in tables. + +### Convert all items in a table column to lower case + +The following example demonstrates how to change all items in a table column to lower case, in this case, the customer names. + +```powerquery-m +let + Source = #table(type table [CUSTOMER = text, FRUIT = text], + { + {"Tulga", "Squash"}, + {"suSanna", "Pumpkin"}, + {"LESLIE", "ApPlE"}, + {"Willis", "pear"}, + {"Dilbar", "orange"}, + {"ClaudiA", "APPLE"}, + {"afonso", "Pear"}, + {"SErgio", "pear"} + }), + #"Lower Case" = Table.TransformColumns(Source, {"CUSTOMER", Text.Lower}) +in + #"Lower Case" +``` + +This code produces the following output: + +:::image type="content" source="media/table-lower-case.png" alt-text="Screenshot of the table created by the table transform columns function that produces lower case results."::: + +### Convert all items in a table column to upper case + +The following example demonstrates how to change all items in a table column to upper case, in this case, the fruit names. + +```powerquery-m +let + Source = #table(type table [CUSTOMER = text, FRUIT = text], + { + {"Tulga", "Squash"}, + {"suSanna", "Pumpkin"}, + {"LESLIE", "ApPlE"}, + {"Willis", "pear"}, + {"Dilbar", "orange"}, + {"ClaudiA", "APPLE"}, + {"afonso", "Pear"}, + {"SErgio", "pear"} + }), + #"Upper Case" = Table.TransformColumns(Source, {"FRUIT", Text.Upper}) +in + #"Upper Case" +``` + +This code produces the following output: + +:::image type="content" source="media/table-upper-case.png" alt-text="Screenshot of the table created by the table transform columns function that produces upper case results."::: + +### Convert all items in a table to proper case + +The following example demonstrates how to change all items in both of the table columns to proper case. + +```powerquery-m +let + Source = #table(type table [CUSTOMER = text, FRUIT = text], + { + {"Tulga", "Squash"}, + {"suSanna", "Pumpkin"}, + {"LESLIE", "ApPlE"}, + {"Willis", "pear"}, + {"Dilbar", "orange"}, + {"ClaudiA", "APPLE"}, + {"afonso", "Pear"}, + {"SErgio", "pear"} + }), + #"Customer Case" = Table.TransformColumns(Source, {"CUSTOMER", Text.Proper}), + #"Proper Case" = Table.TransformColumns(#"Customer Case", {"FRUIT", Text.Proper}) +in + #"Proper Case" +``` + +This code produces the following output: + +:::image type="content" source="media/table-proper-case.png" alt-text="Screenshot of the table created by the table transform columns function that produces proper case results in both columns."::: + +## Ignoring case + +In many cases when searching or replacing items, you might need to ignore the case of the item you're looking for. Because the Power Query M formula language is case sensitive, comparisons between items that are identical but have different cases results in identifying the items as being different, not identical. One method of ignoring case involves using the [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) function in functions that include either an `equationCriteria` parameter or a `comparer` parameter. Another method of ignoring case involves using the `IgnoreCase` option (if available) in functions that include an `options` parameter. + +### Ignoring case in text + +Searches in text sometimes require that you ignore case to be able to find all the instances of the searched for text.Text functions generally use the `Comparer.OrdinalIgnoreCase` function in the `comparer` parameter to ignore case when testing for equality. + +The following example shows how to ignore case when determining if a sentence contains a specific word, regardless of case. + +```powerquery-m +let + Source = Text.Contains( + "The rain in spain falls mainly on the plain.", + "Spain", + Comparer.OrdinalIgnoreCase + ) +in + Source +``` + +This code produces the following output: + +`TRUE` + +The following example shows how to retrieve the initial position of the last occurrence of the word "the" in the sentence, regardless of case. + +```powerquery-m +let + Source = Text.PositionOf( + "THE RAIN IN SPAIN FALLS MAINLY ON THE PLAIN.", + "the", + Occurrence.Last, + Comparer.OrdinalIgnoreCase + ) +in + Source +``` + +This code produces the following output: + +`34` + +### Ignoring case in lists + +Any list function that contains an optional `equationCriteria` parameter can use the [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) function to ignore case in the list. + +The following example checks whether a list contains a specific item, while ignoring case. In this example, [List.Contains](list-contains.md) can only compare one item in the list, you can't compare a list to a list. For that, you need to use [List.ContainsAny](list-containsany.md). + +```powerquery-m +let + Source = List.Contains( + {"Squash", "Pumpkin", "ApPlE", "pear", "orange", "APPLE", "Pear", "pear"}, + "apple", + Comparer.OrdinalIgnoreCase + ) +in + Source +``` + +This code produces the following output: + + `TRUE` + +The following examples check whether a list contains all the specified items in the second parameter (`value`), while ignoring case. If any one item isn't contained in the list, such as `cucumber` in the second example, the function returns FALSE. + +```powerquery-m +let + Source = List.ContainsAll( + {"Squash", "Pumpkin", "ApPlE", "pear", "orange", "APPLE", "Pear", "pear"}, + {"apple", "pear", "squash", "pumpkin"}, + Comparer.OrdinalIgnoreCase + ) +in + Source +``` + +This code produces the following output: + + `TRUE` + +```powerquery-m +let + Source = List.ContainsAll( + {"Squash", "Pumpkin", "ApPlE", "pear", "orange", "APPLE", "Pear", "pear"}, + {"apple", "pear", "squash", "pumpkin", "cucumber"}, + Comparer.OrdinalIgnoreCase + ) +in + Source +``` + +This code produces the following output: + + `FALSE` + +The following example checks whether any of the items in the list are apples or pears, while ignoring case. + +```powerquery-m +let + Source = List.ContainsAny( + {"Squash", "Pumpkin", "ApPlE", "PEAR", "orange", "APPLE", "Pear", "peaR"}, + {"apple","pear"}, + Comparer.OrdinalIgnoreCase + ) +in + Source +``` + +This code produces the following output: + + `TRUE` + +The following example keeps only unique items, while ignoring case. + +```powerquery-m +let + Source = List.Distinct( + {"Squash", "Pumpkin", "ApPlE", "PEAR", "orange", "APPLE", "Pear", "peaR"}, + Comparer.OrdinalIgnoreCase + ) +in + Source +``` + +This code produces the following output: + +:::image type="content" source="media/list-distinct.png" alt-text="Screenshot of the list created by the list distinct function while ignoring case."::: + +In the previous example, the output displays the case of the first unique item found in the list. So, although there are two apples (`ApPle` and `APPLE`), only the first example found is displayed. + +The following example keeps only unique items while ignoring case, but also returns all lower case results. + +```powerquery-m +let + Source = List.Distinct( + {"Squash", "Pumpkin", "ApPlE", "PEAR", "orange", "APPLE", "Pear", "peaR"}, + Comparer.OrdinalIgnoreCase + ), + #"Lower Case" = List.Transform(Source, Text.Lower) +in + #"Lower Case" +``` + +This code produces the following output: + +:::image type="content" source="media/list-distinct-lower-case.png" alt-text="Screenshot of the list created by the list distinct function while ignoring case, but also outputting lower case."::: + +### Ignoring case in tables + +Tables have several ways to ignore case. Table functions such as [Table.Contains](table-contains.md), [Table.Distinct](table-distinct.md), and [Table.PositionOf](table-positionof.md) all contain `equationCriteria` parameters. These parameters can use the [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) function to ignore case in tables, in much the same way as the lists in the previous sections. Table functions, such as [Table.MatchesAnyRow](table-matchesanyrow.md) that contain a `condition` parameter can also use [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) wrapped in other table functions to ignore case. Other table functions, specifically for fuzzy matching, can use the `IgnoreCase` option. + +The following example demonstrates how to select specific rows that contain the word "pear" while ignoring case. This example uses the `condition` parameter of [Table.SelectRows](table-selectrows.md) with [Text.Contains](text-contains.md) as the conditional to make the comparisons while ignoring case. + +```powerquery-m +let + Source = #table(type table[CUSTOMER = text, FRUIT = text], + { + {"Tulga", "Squash"}, + {"suSanna", "Pumpkin"}, + {"LESLIE", "ApPlE"}, + {"Willis", "pear"}, + {"Dilbar", "orange"}, + {"ClaudiA", "APPLE"}, + {"afonso", "Pear"}, + {"SErgio", "pear"} + }), + #"Select Rows" = Table.SelectRows( + Source, each Text.Contains([FRUIT], "pear", Comparer.OrdinalIgnoreCase)) +in + #"Select Rows" +``` + +This code produces the following output: + +:::image type="content" source="media/ignore-case-table.png" alt-text="Screenshot of the table created by the table select rows function while ignoring case."::: + +The following sample shows how to determine if any of the rows in a table contain a `pear` in the `FRUIT` column. This example uses [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) in a [Text.Contains](text-contains.md) function using the `condition` parameter of the [Table.MatchesAnyRow](table-matchesanyrow.md) function. + +```powerquery-m +let + Source = #table(type table [CUSTOMER = text, FRUIT = text], + { + {"Tulga", "Squash"}, + {"suSanna", "Pumpkin"}, + {"LESLIE", "ApPlE"}, + {"Willis", "PEAR"}, + {"Dilbar", "orange"}, + {"ClaudiA", "APPLE"}, + {"afonso", "Pear"}, + {"SErgio", "peAR"} + }), + #"Select Rows" = Table.MatchesAnyRows(Source, + each Text.Contains([FRUIT], "pear", Comparer.OrdinalIgnoreCase)) +in + #"Select Rows" +``` + +This code produces the following output: + +`true` + +The following example demonstrates how to take a table with values entered by users that contains a column listing their favorite fruits, using no set format. This column is first fuzzy matched to extract the names of their favorite fruit, which is then displayed in its own column, named **Cluster**. Then the **Cluster** column is examined to determine the different distinct fruits that are in the column. Once the unique fruits are determined, a final step is to change all of the fruit names to lower case. + +```powerquery-m +let + // Load a table of user's favorite fruits into Source + Source = #table(type table [Fruit = text], {{"blueberries"}, + {"Blue berries are simply the best"}, {"strawberries"}, {"Strawberries = <3"}, + {"Apples"}, {"'sples"}, {"4ppl3s"}, {"Bananas"}, {"fav fruit is bananas"}, + {"Banas"}, {"My favorite fruit, by far, is Apples. I simply love them!"}} + ), + // Create a Cluster column and fuzzy match the fruits into that column + #"Cluster fuzzy match" = Table.AddFuzzyClusterColumn( + Source, "Fruit", "Cluster", + [IgnoreCase = true, IgnoreSpace = true, Threshold = 0.5] + ), + // Find the distinct fruits from the Cluster column + #"Ignore cluster case" = Table.Distinct( + Table.SelectColumns(#"Cluster fuzzy match", "Cluster"), + Comparer.OrdinalIgnoreCase + ), + // Set all of the distinct fruit names to lower case + #"Set lower case" = Table.TransformColumns(#"Ignore cluster case", + {"Cluster", Text.Lower} + ) +in + #"Set lower case" +``` + +This code produces the following output: + +:::image type="content" source="media/fuzzy-match-table.png" alt-text="Screenshot of the table created by fuzzy matching while ignoring case."::: + +## Case and sorting + +Lists and tables can both be sorted using either [List.Sort](list-sort.md) or [Table.Sort](table-sort.md), respectively. However, sorting text depends on the case of the associated items in the list or table to determine the actual sort order (either ascending or descending). + +The most common form of sorting uses text that is either all lower case, all upper case, or proper case. If there is a mix of these cases, the ascending sort order is as follows: + +1. Any text in the list or table column that begins with a capital letter is first. +1. If there is matching text, but one is proper case and another is all upper case, the upper case version is first. +1. Lower case is then sorted. + +For descending order, the previously listed steps are processed in reverse. + +For example, the following sample has a mixture of all lower case, all upper case, and proper case text to be sorted in ascending order. + +```powerquery-m +let + Source = { "Alpha", "Beta", "Zulu", "ALPHA", "gamma", "alpha", "beta", "Gamma", "Sierra", "zulu", "GAMMA", "ZULU" }, + SortedList = List.Sort(Source, Order.Ascending) +in + SortedList +``` + +This code produces the following output: + +:::image type="content" source="media/sorted-list.png" alt-text="Screenshot of the list created by sorting text with all lower case, all upper case, and proper case text."::: + +Although not common, you might have a mix of upper and lower case letters in text to sort. The ascending sort order in this case is: + +1. Any text in the list or table column that begins with a capital letter is first. +1. If there is matching text, the text with the maximum number of upper case letters to the left is done next. +1. Lower case is then sorted, with the maximum number of upper case letters to the right done first. + +In in this case, it might be more convenient to convert the text to a consistent case before sorting. + + + +## Example + + diff --git a/query-languages/m/media/fuzzy-match-table.png b/query-languages/m/media/fuzzy-match-table.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba256aafb1910444162c025f7a67c9e28c45d48 GIT binary patch literal 4378 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 Dpb1x^ literal 0 HcmV?d00001 diff --git a/query-languages/m/media/list-proper-case.png b/query-languages/m/media/list-proper-case.png new file mode 100644 index 0000000000000000000000000000000000000000..0a26a6d7c76287f8d36cd9c05d642c5d2363c9db GIT binary patch literal 4470 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 literal 0 HcmV?d00001 diff --git a/query-languages/m/media/list-upper-case.png b/query-languages/m/media/list-upper-case.png new file mode 100644 index 0000000000000000000000000000000000000000..9f6d5c8cc58a39bc127b0d7adcec0c78ab2f7f19 GIT binary patch literal 4608 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 AoB#j- literal 0 HcmV?d00001 diff --git a/query-languages/m/media/table-proper-case.png b/query-languages/m/media/table-proper-case.png new file mode 100644 index 0000000000000000000000000000000000000000..a001e25481aa395d5802302083c0950baa5a4b2e GIT binary patch literal 9976 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π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 Date: Fri, 7 Feb 2025 15:27:58 -0800 Subject: [PATCH 727/934] Fixed ending --- query-languages/m/m-working-with-case.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index 92baa65c6..771b466df 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -465,10 +465,4 @@ Although not common, you might have a mix of upper and lower case letters in tex 1. If there is matching text, the text with the maximum number of upper case letters to the left is done next. 1. Lower case is then sorted, with the maximum number of upper case letters to the right done first. -In in this case, it might be more convenient to convert the text to a consistent case before sorting. - - - -## Example - - +In this case, it might be more convenient to convert the text to a consistent case before sorting. From 201a065beaa88c1741a8581fcb7eddbc10770a0c Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 7 Feb 2025 15:33:18 -0800 Subject: [PATCH 728/934] Fixed broken links --- query-languages/m/m-working-with-case.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index 771b466df..a5f076676 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -116,9 +116,9 @@ This code produces the following output: ## Changing case in tables -When changing case in tables, the most common function to use is [Table.TransformColumn](table-transformcolumn.md). There's also a function you can use to change the case of text that's contained in a row, called [Table.TransformRow](table-transformrow.md). However, this function isn't used as often. +When changing case in tables, the most common function to use is [Table.TransformColumns](table-transformcolumns.md). There's also a function you can use to change the case of text that's contained in a row, called [Table.TransformRows](table-transformrows.md). However, this function isn't used as often. -The following simple examples demonstrate how the `Table.TransformColumn` function can be used to change the case in tables. +The following simple examples demonstrate how the `Table.TransformColumns` function can be used to change the case in tables. ### Convert all items in a table column to lower case @@ -349,7 +349,7 @@ This code produces the following output: ### Ignoring case in tables -Tables have several ways to ignore case. Table functions such as [Table.Contains](table-contains.md), [Table.Distinct](table-distinct.md), and [Table.PositionOf](table-positionof.md) all contain `equationCriteria` parameters. These parameters can use the [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) function to ignore case in tables, in much the same way as the lists in the previous sections. Table functions, such as [Table.MatchesAnyRow](table-matchesanyrow.md) that contain a `condition` parameter can also use [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) wrapped in other table functions to ignore case. Other table functions, specifically for fuzzy matching, can use the `IgnoreCase` option. +Tables have several ways to ignore case. Table functions such as [Table.Contains](table-contains.md), [Table.Distinct](table-distinct.md), and [Table.PositionOf](table-positionof.md) all contain `equationCriteria` parameters. These parameters can use the [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) function to ignore case in tables, in much the same way as the lists in the previous sections. Table functions, such as [Table.MatchesAnyRows](table-matchesanyrows.md) that contain a `condition` parameter can also use [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) wrapped in other table functions to ignore case. Other table functions, specifically for fuzzy matching, can use the `IgnoreCase` option. The following example demonstrates how to select specific rows that contain the word "pear" while ignoring case. This example uses the `condition` parameter of [Table.SelectRows](table-selectrows.md) with [Text.Contains](text-contains.md) as the conditional to make the comparisons while ignoring case. @@ -376,7 +376,7 @@ This code produces the following output: :::image type="content" source="media/ignore-case-table.png" alt-text="Screenshot of the table created by the table select rows function while ignoring case."::: -The following sample shows how to determine if any of the rows in a table contain a `pear` in the `FRUIT` column. This example uses [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) in a [Text.Contains](text-contains.md) function using the `condition` parameter of the [Table.MatchesAnyRow](table-matchesanyrow.md) function. +The following sample shows how to determine if any of the rows in a table contain a `pear` in the `FRUIT` column. This example uses [Comparer.OrdinalIgnoreCase](comparer-ordinalignorecase.md) in a [Text.Contains](text-contains.md) function using the `condition` parameter of the [Table.MatchesAnyRows](table-matchesanyrows.md) function. ```powerquery-m let From 601432890cd185c3137a595bee32404d225cc0d6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 10 Feb 2025 12:14:58 -0800 Subject: [PATCH 729/934] Added March update to Power Query M reference --- query-languages/m/docfx.json | 2 +- query-languages/m/table-stopfolding.md | 2 +- query-languages/m/type-is.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 6896b90a0..e7ed80f7e 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "1/17/2025", + "ms.date": "2/10/2025", "no-loc": [ "#binary", "#date", diff --git a/query-languages/m/table-stopfolding.md b/query-languages/m/table-stopfolding.md index 5c7a72c8e..857e94f8a 100644 --- a/query-languages/m/table-stopfolding.md +++ b/query-languages/m/table-stopfolding.md @@ -25,7 +25,7 @@ Fetches data from a SQL table in a way that prevents any downstream operations f let Source = Sql.Database("SomeSQLServer", "MyDb"), MyTable = Source{[Item="MyTable"]}[Data], - MyLocalTable = Table.StopFolding(dbo_MyTable) + MyLocalTable = Table.StopFolding(MyTable) in MyLocalTable ``` diff --git a/query-languages/m/type-is.md b/query-languages/m/type-is.md index 231e701a5..f6c552479 100644 --- a/query-languages/m/type-is.md +++ b/query-languages/m/type-is.md @@ -13,7 +13,7 @@ Type.Is(type1 as type, type2 as type) as logical ## About -Determines if a value of `type1` is always compatible with `type2`. +Determines if a value of `type1` is always compatible with `type2`. Parameter `type2` should be a primitive (or nullable primitive) type value. Otherwise, this function's behavior is undefined and shouldn't be relied on. ## Example 1 From e95c2576256aede6579890ce07e88764b8f98ca0 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Thu, 13 Feb 2025 10:35:37 -0500 Subject: [PATCH 730/934] Update m-spec-operators.md --- query-languages/m/m-spec-operators.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-operators.md b/query-languages/m/m-spec-operators.md index 378bf5061..cd987576c 100644 --- a/query-languages/m/m-spec-operators.md +++ b/query-languages/m/m-spec-operators.md @@ -2,7 +2,7 @@ title: M Language Operators description: Describes using operators in the Power Query M formula language ms.topic: conceptual -ms.date: 1/29/2025 +ms.date: 2/13/2025 ms.custom: "nonautomated-date" ms.subservice: m-specification --- @@ -1267,7 +1267,7 @@ Type compatibility, as supported by the `is` operator, is a subset of [general t * If `x` is null then it is compatible if `y` is the type `any`, the type `null`, or a nullable primitive type. -* If `x` is non-null then it is a compatible if the primitive type of `x` is the same as `y`. +* If `x` is non-null then it is compatible if the primitive type of `x` is the same as `y`. The following holds when evaluating the expression `x is y`: From 52b475bc9be5b42523fb11b75968691a1e2da499 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 14 Feb 2025 14:24:26 -0800 Subject: [PATCH 731/934] Fixed invalid characters in function code --- query-languages/m/understanding-power-query-m-functions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/understanding-power-query-m-functions.md b/query-languages/m/understanding-power-query-m-functions.md index 8fdc218ea..392e048ff 100644 --- a/query-languages/m/understanding-power-query-m-functions.md +++ b/query-languages/m/understanding-power-query-m-functions.md @@ -2,7 +2,7 @@ description: "Learn more about: Understanding Power Query M functions" title: "Understanding Power Query M functions" ms.topic: conceptual -ms.date: 11/14/2024 +ms.date: 2/14/2025 ms.custom: "nonautomated-date" ms.subservice: m-background --- @@ -68,10 +68,10 @@ in **Each keyword** -The **each** keyword is used to easily create simple functions. `each ...` is syntactic sugar for a function signature that takes the `_` parameter `(_) => ...`. +The **each** keyword is used to easily create simple functions. `each ...` is syntactic sugar for a function signature that takes the `_` parameter `(_) => ...`. The **each** keyword is useful when combined with the lookup operator, which is applied by default to `_`. -For example, `each [CustomerID]` is the same as `each _[CustomerID]`, which is the same as `(_) => _[CustomerID]`. +For example, `each [CustomerID]` is the same as `each _[CustomerID]`, which is the same as `(_) => _[CustomerID]`. **Example - Using each in table row filter** From ea3d1d47bf2bbd812cd5d60acff1f2001b39b34e Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 18 Feb 2025 13:41:26 -0800 Subject: [PATCH 732/934] Updated Record.RemoveFields description in table --- query-languages/m/record-functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/record-functions.md b/query-languages/m/record-functions.md index c6f00883d..26f73855e 100644 --- a/query-languages/m/record-functions.md +++ b/query-languages/m/record-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Record functions" title: "Record functions" -ms.date: 5/16/2022 +ms.date: 2/18/2025 ms.custom: "nonautomated-date" --- # Record functions @@ -27,7 +27,7 @@ These functions create and manipulate record values. |[GeometryPoint.From](geometrypoint-from.md)|Creates a record representing a geometric point from parts.| |[Record.AddField](record-addfield.md)|Adds a field from a field name and value.| |[Record.Combine](record-combine.md)|Combines the records in a list.| -|[Record.RemoveFields](record-removefields.md)|Returns a new record that reorders the given fields with respect to each other. Any fields not specified remain in their original locations.| +|[Record.RemoveFields](record-removefields.md)|Removes the specified field(s) from the input record.| |[Record.RenameFields](record-renamefields.md)|Returns a new record that renames the fields specified. The resultant fields will retain their original order. This function supports swapping and chaining field names. However, all target names plus remaining field names must constitute a unique set or an error will occur.| |[Record.ReorderFields](record-reorderfields.md)|Returns a new record that reorders fields relative to each other. Any fields not specified remain in their original locations. Requires two or more fields.| |[Record.TransformFields](record-transformfields.md)|Transforms fields by applying transformOperations. For more more information about values supported by transformOperations, go to [Parameter Values](#parameter-values).| From 93cac4fed542d24e893516cd15835e10f2c74c79 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 25 Feb 2025 10:57:35 -0800 Subject: [PATCH 733/934] add info about variant and text size limit --- query-languages/dax/dax-overview.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index 0333a5e7b..56f49ee42 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -266,9 +266,10 @@ In this example, TotalQty can be passed as a named variable to other expressions |`Whole Number`|A 64 bit (eight-bytes) integer value 1, 2|Numbers that have no decimal places. Integers can be positive or negative numbers, but must be whole numbers between -9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1).| |`Decimal Number`|A 64 bit (eight-bytes) real number 1, 2|Real numbers are numbers that can have decimal places. Real numbers cover a wide range of values:

Negative values from -1.79E +308 through -2.23E -308

Zero

Positive values from 2.23E -308 through 1.79E + 308

However, the number of significant digits is limited to 17 decimal digits.| |`Boolean`|Boolean|Either a True or False value.| -|`Text`|String|A Unicode character data string. Can be strings, numbers or dates represented in a text format.| +|`Text`|String|A Unicode character data string. Can be strings, numbers or dates represented in a text format. Maximum size is 64,000 characters.| |`Date`|Date/time|Dates and times in an accepted date-time representation.

Valid dates are all dates after March 1, 1900.| |`Currency`|Currency|Currency data type allows values between -922,337,203,685,477.5808 to 922,337,203,685,477.5807 with four decimal digits of fixed precision.| +|`Variant`|Variant|Used for expressions, such as DAX measures, that return different data types. For example, a DAX measure that returns either a whole number or a string will be of type variant.| |`N/A`|Blank|A blank is a data type in DAX that represents and replaces SQL nulls. You can create a blank by using the BLANK function, and test for blanks by using the logical function, ISBLANK.| Tabular data models also include the *Table* data type as the input or output to many DAX functions. For example, the FILTER function takes a table as input and outputs another table that contains only the rows that meet the filter conditions. By combining table functions with aggregation functions, you can perform complex calculations over dynamically defined data sets. @@ -331,7 +332,7 @@ In a report, context is changed by filtering, adding or removing fields, and usi ### Filter context -*Filter context* is the set of values allowed in each column, or in the values retrieved from a related table. Filters can be applied to the column in the designer, or in the presentation layer (reports and PivotTables). Filters can also be defined explicitly by filter expressions within the formula. +*Filter context* is the set of values allowed in each column, or in the values retrieved from a related table. Filters can be applied to the column in Desktop, or in the presentation layer (reports and PivotTables). Filters can also be defined explicitly by filter expressions within the formula. Filter context is added when you specify filter constraints on the set of values allowed in a column or table, by using arguments to a formula. Filter context applies on top of other contexts, such as row context or query context. From 15d1d5345c24b97374fc2fb92cf63b4cc03eab94 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 25 Feb 2025 12:42:12 -0800 Subject: [PATCH 734/934] making small edit based on review in another PR with the same info --- query-languages/dax/dax-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index 56f49ee42..f50873832 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -269,7 +269,7 @@ In this example, TotalQty can be passed as a named variable to other expressions |`Text`|String|A Unicode character data string. Can be strings, numbers or dates represented in a text format. Maximum size is 64,000 characters.| |`Date`|Date/time|Dates and times in an accepted date-time representation.

Valid dates are all dates after March 1, 1900.| |`Currency`|Currency|Currency data type allows values between -922,337,203,685,477.5808 to 922,337,203,685,477.5807 with four decimal digits of fixed precision.| -|`Variant`|Variant|Used for expressions, such as DAX measures, that return different data types. For example, a DAX measure that returns either a whole number or a string will be of type variant.| +|`Variant`|Variant|Used for expressions, such as DAX measures, that may return different data types. For example, a DAX measure that returns either a whole number or a string will be of type variant.| |`N/A`|Blank|A blank is a data type in DAX that represents and replaces SQL nulls. You can create a blank by using the BLANK function, and test for blanks by using the logical function, ISBLANK.| Tabular data models also include the *Table* data type as the input or output to many DAX functions. For example, the FILTER function takes a table as input and outputs another table that contains only the rows that meet the filter conditions. By combining table functions with aggregation functions, you can perform complex calculations over dynamically defined data sets. From 39511e2bd6ea5eb321f39d33b4d686a36d07c89e Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 25 Feb 2025 12:44:12 -0800 Subject: [PATCH 735/934] move 64kb info --- query-languages/dax/dax-overview.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/dax-overview.md b/query-languages/dax/dax-overview.md index f50873832..3672c1af6 100644 --- a/query-languages/dax/dax-overview.md +++ b/query-languages/dax/dax-overview.md @@ -266,7 +266,7 @@ In this example, TotalQty can be passed as a named variable to other expressions |`Whole Number`|A 64 bit (eight-bytes) integer value 1, 2|Numbers that have no decimal places. Integers can be positive or negative numbers, but must be whole numbers between -9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1).| |`Decimal Number`|A 64 bit (eight-bytes) real number 1, 2|Real numbers are numbers that can have decimal places. Real numbers cover a wide range of values:

Negative values from -1.79E +308 through -2.23E -308

Zero

Positive values from 2.23E -308 through 1.79E + 308

However, the number of significant digits is limited to 17 decimal digits.| |`Boolean`|Boolean|Either a True or False value.| -|`Text`|String|A Unicode character data string. Can be strings, numbers or dates represented in a text format. Maximum size is 64,000 characters.| +|`Text`|String|A Unicode character data string. Can be strings, numbers or dates represented in a text format.| |`Date`|Date/time|Dates and times in an accepted date-time representation.

Valid dates are all dates after March 1, 1900.| |`Currency`|Currency|Currency data type allows values between -922,337,203,685,477.5808 to 922,337,203,685,477.5807 with four decimal digits of fixed precision.| |`Variant`|Variant|Used for expressions, such as DAX measures, that may return different data types. For example, a DAX measure that returns either a whole number or a string will be of type variant.| @@ -276,6 +276,9 @@ Tabular data models also include the *Table* data type as the input or output to While data types are typically automatically set, it is important to understand data types and how they apply, in-particular, to DAX formulas. Errors in formulas or unexpected results, for example, are often caused by using a particular operator that cannot be used with a data type specified in an argument. For example, the formula, `= 1 & 2`, returns a string result of 12. The formula, `= "1" + "2"`, however, returns an integer result of 3. +> [!NOTE] +> Calculations on string data types may be constrained to 64kb. + ## Context *Context* is an important concept to understand when creating DAX formulas. Context is what enables you to perform dynamic analysis, as the results of a formula change to reflect the current row or cell selection and also any related data. Understanding context and using context effectively are critical for building high-performing, dynamic analyses, and for troubleshooting problems in formulas. From 63fc75ea41808cd21ebd7c4933699359fae0b199 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Wed, 26 Feb 2025 14:32:13 -0800 Subject: [PATCH 736/934] Add lookupwithtotals document. --- query-languages/dax/lookup-function-dax.md | 2 +- .../dax/lookupwithtotals-function-dax.md | 51 ++++++++++++++++++ ...x-visualcalc-lookupwithtotals-example1.png | Bin 0 -> 191232 bytes 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 query-languages/dax/lookupwithtotals-function-dax.md create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-lookupwithtotals-example1.png diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index ae997baa1..fbd171e5b 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -6,7 +6,7 @@ title: "LOOKUP function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns a value from a cell in a visual matrix by absolute navigation. You can specify a value as a filter for any axis on the visual matrix. Anything not specified is inferred from the context. If Lookup can’t result in single value, an error is returned. +Returns value from cell in visual matrix by absolute navigation. You can specify value as a filter for any axis on the visual matrix. Anything not specified is inferred from the context. If Lookup can’t result in single value, an error is returned. ## Syntax diff --git a/query-languages/dax/lookupwithtotals-function-dax.md b/query-languages/dax/lookupwithtotals-function-dax.md new file mode 100644 index 000000000..808ec161a --- /dev/null +++ b/query-languages/dax/lookupwithtotals-function-dax.md @@ -0,0 +1,51 @@ +--- +description: "Learn more about: LOOKUPWITHTOTALS" +title: "LOOKUPWITHTOTALS function (DAX) | Microsoft Docs" +--- +# LOOKUPWITHTOTALS + +[!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] + +Returns value from cell in visual matrix by absolute navigation. You can specify value as a filter for any axis on the visual matrix. Other dimension that is not specified is treated as total grain. If Lookupwithtotals can’t result in single value, an error is returned. + +## Syntax + +```dax +LOOKUPWITHTOTALS(, , [, , ]...) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|expression| The expression that we wants to get. | +|colref|(Optional) The column to be filtered. For example, when we want [Category] = "Bikes", we put [Category] here.| +|expression|(Optional) The value to filter. In above example, put "Bikes" here.| + +## Return value + +The value of **expression** after filters are applied. + +If there isn't a match, an error is returned. + +If multiple rows match the filters, an error is returned. + +## Example 1 + +In this example, LOOKUPWITHTOTALS retrieves the sum of sale for filters: [Fiscal Year] = "FY2018". +The first argument could be a column or a scalar expression. +Notice that lookup will get filter from each quarter so the result change by row. Lookupwithtotals will get value from FY2018 and ignore quarter. + +```dax +LOOKUPWITHTOTALExample1 = LOOKUPWITHTOTALS([Sales Amount], [Fiscal Year], "FY2018") + +LookupExample1 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018") +``` + +The screenshot below shows the matrix with two visual calculations. + +![DAX visual calculation lookupwithTotals](media/dax-queries/dax-visualcalc-lookupwithtotals-example1.png) + +## Related content + +[Lookup](lookup-function-dax.md) diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-lookupwithtotals-example1.png b/query-languages/dax/media/dax-queries/dax-visualcalc-lookupwithtotals-example1.png new file mode 100644 index 0000000000000000000000000000000000000000..dea57fb7c31ab000147c4e6917b4f955413a49c6 GIT binary patch literal 191232 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 Date: Wed, 26 Feb 2025 14:47:41 -0800 Subject: [PATCH 737/934] Add more. --- query-languages/dax/lookup-function-dax.md | 16 ++++++++++++---- .../dax/lookupwithtotals-function-dax.md | 9 +++++++++ .../dax-visualcalc-lookup-example2.png | Bin 0 -> 174505 bytes ...ax-visualcalc-lookupwithtotals-example2.png | Bin 0 -> 298985 bytes 4 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-lookup-example2.png create mode 100644 query-languages/dax/media/dax-queries/dax-visualcalc-lookupwithtotals-example2.png diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index fbd171e5b..065e4b079 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -44,9 +44,17 @@ The screenshot below shows the matrix with two visual calculations. ![DAX visual calculation](media/dax-queries/dax-visualcalc-lookup.png) +## Example 2 +In this example, LOOKUP example 2retrieves the sum of sale for filters: [Fiscal Year] = "FY2018". Notice that quarter filter from row will be used if we don't specify it directly. Example 3 specify 2018 Q1 so it will lock down to specific row. + +```dax +LookupExample2 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018") +LookupExample3 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018", [Fiscal Quarter], "FY2018 Q1") +``` + +![DAX visual calculation](media/dax-queries/dax-visualcalc-lookup-example2.png) + + ## Related content -[FIRST](first-function-dax.md) -[LAST](last-function-dax.md) -[PREVIOUS](previous-function-dax.md) -[NEXT](next-function-dax.md) +[LOOKUPWITHTOTALS](lookupwithtotals-function-dax.md) diff --git a/query-languages/dax/lookupwithtotals-function-dax.md b/query-languages/dax/lookupwithtotals-function-dax.md index 808ec161a..86f020fb4 100644 --- a/query-languages/dax/lookupwithtotals-function-dax.md +++ b/query-languages/dax/lookupwithtotals-function-dax.md @@ -46,6 +46,15 @@ The screenshot below shows the matrix with two visual calculations. ![DAX visual calculation lookupwithTotals](media/dax-queries/dax-visualcalc-lookupwithtotals-example1.png) +## Example 2 +In this example, LOOKUPWITHTOTALS retrieves the sum of sale for filters: [Category] = "Bikes". Notices that it get total grain for other filters. In other words, it is not filtered. It's useful when we want to do comparison since lookupwithtoal result is locked to a certain value. + +```dax +LookupWithTotalExample2 = lookupWithTotals([Sales Amount], [Category], "Bikes") +``` + +![DAX visual calculation lookupwithTotals2](media/dax-queries/dax-visualcalc-lookupwithtotals-example2.png) + ## Related content [Lookup](lookup-function-dax.md) diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-lookup-example2.png b/query-languages/dax/media/dax-queries/dax-visualcalc-lookup-example2.png new file mode 100644 index 0000000000000000000000000000000000000000..8811ff141653b470b0e241c01193150cce03e276 GIT binary patch literal 174505 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

7DW4=Unw$2i#YIUX3_FE? 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

l5WyK+cc&gdbDV{t6ZUYSbTCg|@17YH$; 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 G`~ENb+C%#Q literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/dax-queries/dax-visualcalc-lookupwithtotals-example2.png b/query-languages/dax/media/dax-queries/dax-visualcalc-lookupwithtotals-example2.png new file mode 100644 index 0000000000000000000000000000000000000000..b8ba625e4b287a3b2aa1d5654ee6519940c0fec3 GIT binary patch literal 298985 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 =>d21X|`8de4V{vr+uHo3#Fr(1`L(uC5 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:Y*{_< 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ଡq5x3aQ_!}GcK^fC?metxP1UY>6yimMW_7> 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 rhYkGiPkBB!WC{GY^j94$$4yF`}aa{i9#dpRU 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 E0Q{XSqW}N^ literal 0 HcmV?d00001 From 47196729c8c0ce036129398a04b3aa2503737f10 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Wed, 26 Feb 2025 15:34:04 -0800 Subject: [PATCH 738/934] Fix more about lookup and lookupwithtottals documentation. --- query-languages/dax/filter-functions-dax.md | 1 + query-languages/dax/lookup-function-dax.md | 4 ++-- query-languages/dax/lookupwithtotals-function-dax.md | 4 ++-- query-languages/dax/new-dax-functions.md | 3 ++- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/filter-functions-dax.md b/query-languages/dax/filter-functions-dax.md index 7831f90ae..276e29a22 100644 --- a/query-languages/dax/filter-functions-dax.md +++ b/query-languages/dax/filter-functions-dax.md @@ -25,6 +25,7 @@ The filter and value functions in DAX are some of the most complex and powerful, |[KEEPFILTERS](keepfilters-function-dax.md) | Modifies how filters are applied while evaluating a CALCULATE or CALCULATETABLE function. | |[LAST](last-function-dax.md) | Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis. | |[LOOKUP](lookup-function-dax.md) | In visual calculation mode only. Look up the value when filters applied.| +|[LOOKUPWITHTOTALS](lookupwithtotals-function-dax.md) | In visual calculation mode only. Look up the value when filters applied. Filters not specified will not be inferred.| |[LOOKUPVALUE](lookupvalue-function-dax.md) | Returns the value for the row that meets all criteria specified by search conditions. The function can apply one or more search conditions. | |[MATCHBY](matchby-function-dax.md) | In window functions, defines the columns that are used to determine how to match data and identify the *current row*. | |[MOVINGAVERAGE](movingaverage-function-dax.md)|Returns a moving average calculated along the given axis of the visual matrix.| diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 065e4b079..f5ba743a9 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -42,7 +42,7 @@ Lookup Example 2 = LOOKUP([Sales Amount], [Category], "Bikes") The screenshot below shows the matrix with two visual calculations. -![DAX visual calculation](media/dax-queries/dax-visualcalc-lookup.png) +![lookup example 1](media/dax-queries/dax-visualcalc-lookup.png) ## Example 2 In this example, LOOKUP example 2retrieves the sum of sale for filters: [Fiscal Year] = "FY2018". Notice that quarter filter from row will be used if we don't specify it directly. Example 3 specify 2018 Q1 so it will lock down to specific row. @@ -52,7 +52,7 @@ LookupExample2 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018") LookupExample3 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018", [Fiscal Quarter], "FY2018 Q1") ``` -![DAX visual calculation](media/dax-queries/dax-visualcalc-lookup-example2.png) +![lookup example 2](media/dax-queries/dax-visualcalc-lookup-example2.png) ## Related content diff --git a/query-languages/dax/lookupwithtotals-function-dax.md b/query-languages/dax/lookupwithtotals-function-dax.md index 86f020fb4..0dc0cdb42 100644 --- a/query-languages/dax/lookupwithtotals-function-dax.md +++ b/query-languages/dax/lookupwithtotals-function-dax.md @@ -44,7 +44,7 @@ LookupExample1 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018") The screenshot below shows the matrix with two visual calculations. -![DAX visual calculation lookupwithTotals](media/dax-queries/dax-visualcalc-lookupwithtotals-example1.png) +![lookupwithTotals example 1](media/dax-queries/dax-visualcalc-lookupwithtotals-example1.png) ## Example 2 In this example, LOOKUPWITHTOTALS retrieves the sum of sale for filters: [Category] = "Bikes". Notices that it get total grain for other filters. In other words, it is not filtered. It's useful when we want to do comparison since lookupwithtoal result is locked to a certain value. @@ -53,7 +53,7 @@ In this example, LOOKUPWITHTOTALS retrieves the sum of sale for filters: [Catego LookupWithTotalExample2 = lookupWithTotals([Sales Amount], [Category], "Bikes") ``` -![DAX visual calculation lookupwithTotals2](media/dax-queries/dax-visualcalc-lookupwithtotals-example2.png) +![lookupwithTotals example 2](media/dax-queries/dax-visualcalc-lookupwithtotals-example2.png) ## Related content diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index 839e7bf7c..b25f2d043 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -15,7 +15,8 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| -|[LOOKUP](lookup-function-dax.md)|June, 2024| Used in visual Calculations only. Look up the value when filters are applied. | +|[LOOKUPWITHTOTALS](lookupwithtotals-function-dax.md)|June, 2025| Used in visual Calculations only. Look up the value when filters are applied. Filters not specified would not be inferred.| +|[LOOKUP](lookup-function-dax.md)|June, 2025| Used in visual Calculations only. Look up the value when filters are applied. | |[FIRST](first-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the visual matrix from the first row of an axis.| |[LAST](last-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis.| |[NEXT](next-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix.| From 997cbcc06f3bfc771f0ff900ed81e2d9908bc9a8 Mon Sep 17 00:00:00 2001 From: v-thepet <20667102+v-thepet@users.noreply.github.com> Date: Fri, 28 Feb 2025 09:15:28 -0800 Subject: [PATCH 739/934] sfi --- .../columnstatistics-result-table.png | Bin 138589 -> 135307 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/query-languages/dax/media/columnstatistics-function-dax/columnstatistics-result-table.png b/query-languages/dax/media/columnstatistics-function-dax/columnstatistics-result-table.png index ab2f187e97760ffc17e69ba6e06f7b5a795a8fda..5f09f2547f966848fee5d9c6573e66969161cec6 100644 GIT binary patch literal 135307 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℞?&bnXD>r|g?(*4T>N+s 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�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 ZpzU zt(D}g{_nlN{au`MaprC2npsuPdS+F<@A!>jg}Nk{^Ww2aC@zw(Vt9TbyYtPR=ZE;7 zxso(6_$ycy92^dF^czsA0`o-5{zQZBbZ?oI&SbP;QB|Bn6@K7<K0+UI0>_QW_5y02o;t&!g^emZ)kG@huOTY_~e$7q5 zneWRf(H|HeodlK^f-zx+y~$xU4Mk-$!s4HgcX2^Akv=V1aV<=(SUQg^gfc93r8`ri zGs5Rg=H_IDMnhTECsMNBnuaNI-eQ_+z@`n=52G7YrVvLsMbY3u!rcyTw7vr%JPfW; z2QcJ`l?s5tp%wka4itq$QN6?Ui7!PgYZD+I2cMQN9uPanhOz0<*!yHKB=l@ikxfu$ zUq_fnub^k7yRdI^hR|gnH5|vFB59Yyf z2tcWI9Cd|*bN>Kwpp$dIjwyjyIRlZ!2xBZkV{guhvWgXf#|8z@t%N|`c$X)@z+QWS z3RN!W^QCP)kBM#AQhBQQl7fbLH z15?)=J@a1&>c{_dp!^B52N`)DpJ_Kf4)D`iofw{ux^j>|gAa3Gl9s1E?l*g`3*W=j z=n8f(n(?a$$l%lyL+_S7f%&V?I9{#)Z+Hq9Dp<&BwF|^j`<%j3W#`gv64hNFW!9BNaT#vvsmsii%XO_RRHl9k&fmE{9A{@|8Clt4Yy#l?{CBU9UEu!$ zq{99SkOIP0HHj-9LTtc&*K1S!oG0*$bi~auk4~nfr+W%3SLpMGDI`%r{r4mOO0XP0Q+W+G??a zaaVC7bE*IDh*Tc}7}r|Ge-Noqd1OpXK^HS@kRM$P?CtIA=fh#(xZsK*I)2{&VWgnF z&LZYlnp|l^<;9RNF=Y*_vAzh{YjVgBdPtxwT)_{ZUj09iMyK{Px`Br6%!Y^}Vqyr| z733q!xQW=E)2SBL%p49R-?i=iC+y#XrAZPp1+nPv$7k8m>Rk7^;6h9dE-u2Wh|(v| zpYtDJ`Ua&on-cTLiQh0JQK5KrY!p5v8cHcJW-tYAi9IXwtPc)S7K>WeclWK{3x_-K zRLi|zhkIffU5->9UT1M+D*g`lgB4WS>9#s%~ zTYH>8qn=Yq7<+=X4j(BSG8XuTc2?7M71T;|k_pM}6(nY?o>djqaqr7Z3JD=u#XLAZ zT9M0eUIJ_vPJys!x9=O-MhVtJq-SA6u?dd93RA!Ad4SE6!H90Y>zWq`SPz0VS8Yzr z&M=E)@y2dUL9=r!!*KCB1@DoMQ4)Do!yQCmbC>E}1#!$|))1y%R&&u(uaIFCR4T z&kv~0q=--{!ad%6=Fgj69@EbCDJFAeI(f@Y-5O5%uO@_nVZyzCnV` z&RXwDNL9lddhnM-vu=c_r!SP96A)uV`Ptd?%on{j4a8$)Rk8D zgXw6#GQG?(W^uEsUGpo124YlDKzUztyAjZ*^;FCEv3ptXgip>Nn&3g#{m_kBoS#ev zOWIit^pKWofSUs7VU8Wf*&dm+H>7v|h*BEjMAUUQydTvam;lhB(t7;4#uj7u8ggmw zH1lEM@vM8I^+pM@WR`Pq8Ov^r$dnG8J|@B$FkfS2BWuLU?U$&u-zAlN&VvQzhTEn1 zz;fB$neB4j2Bl-(GZDM1QQt(H?&1AlWIB$Kkfaw{nM|Df^W)RU#AUaI7O;KRke!O} zozO(i#Gn(g-R?GJqutva#zeN^OCNbGJG8uo@+v=&jlF1JECmEdqd6~D+|vH0Pu~sf zoq~dcBVjP5gyLrgHk3nUtBoIS=_7Wjt5$VJy2 zJA-%CnDYzQI0gk z`q+VUM%0R_|K(GKQJ&|+98Dfq*ua25SX_SZb6c*z#2de>`JIae3nrD18p^_3Kb0bH z@vNN*0~CnB7VIi%=<3y;Ta*?w{x*w7>zY|~Dqn=&+^rBVU7qz$3ZXceJ$uJ*AtVwu zwF%T0AowM?-}?0lnN*xzT2pA>;%3xJ^u>@BWADfv(LkCHq)h#bjS2XA8W*4LDmeYdA>Y( zbl(OvT6cVx^@cV@O?I*HI{t@)aiC)bp8Lu(wsOW+RXpX$7UYTBBhZz0blu_i=84mX zVYJ`t*j_)pA*CbL-ooE37e5atI39Iutb8gS&ohLqr{r+CvJngExwscPK z>&_`qdhK->**AhC&(D7$Tl=$wTSz_l$f|4EH92=6=PvP6X?JWPdb{(Esv*#3){@(@ zg0`@}2DAEVuF^%sC3TFP_q<()&fgO8O`07P79H8hvJO}?lqCKM17mjfTT}+~JT%X? zw7u$g2plX|;EJ!jcXD8m^f^~~B}Hj_aiKcr;hn2a`hSU&3oTrMg@$HNYw4zfsua9rmMS@r9KU|;pMuQSa}9d4TN9c z{Z?E```MLy`oAV7WGH1fhVyB-@xCr;s#JX22iK%EKbD4*R>6=@jJ~&fJ^6l;)%AT7 zYo!hc?0T#DHRSk0#Kx`K{dP3{vF+RNE361c>aNlO8Z$z4T-2@RBjlRxV(;d&uqeg) z2Aks>ba6_ewp#t623ELubDin1*;Gr~T#{qfwVJ)j*QZ33FR=7&@~g~}@NEa2PrEIi zm^>z4t(d?g4qk=qZc06qa!k^2yT;-|IAqtx@gC$FDP0B}9G21BKd;vm3tkpF&%O4g zxcegH&bjKt1}xL<>S&<6(4m)pKd;D{eeobKjv z8_1a`|6O`K=lpYypf!xZGf}De^_hCXfh_Fz3APrc<9H#l9|*fnAscHxekDRjf=5`r zn4bR`Ltz45FK4@Rz7H0KgA;ID{5fN1J1B`GakX>hO=eg<6Nic`rB%s&e-tEO%%`2= z-}_eG!Qn@e#D>ie;02zDg)TmuI=?2xVzS|mZFDH!<#Na^E`BDN?gHNDc|D@C!kRjR z2NE-10r#*t9A0VjjFKZ8Av?zALi=sL0N+DPD=1>k9zT!{_~JbbCQy0oMCvJd;NH<^ z8S9Rq?GF{s9$d93zp;;9%IUkC_h;JoPccNQL zBfYehub&;XI6OXaWfxSP0FZcf(z`?RN)EJt%p0PVH;{R=Rd{I6UTddeyO=aN6NcZN z$C-*Z!X}Hk5hD$}TcPc2Ax+PSN~~J{6Abb`9dIuI(4ifH-|k)0EghACHoknrz2L@` zEVU*0Rg>bPQsT_i95Q-eGUMQeoQu~va`GSO?dN)P#^H9&;otbcAhgkRhL!9h5bM{6 z4pvV7BcD+Ceziq0Ks+-`MWe`t_Hc@A2WO({_+P=mKT4Ki@Vwzf226!MRb}l6 zz0dkS14mutVPRbXu74SHXrmDtWs3%e_PCtLYS6~EdVRE+Ei%J6eX+*lFkv1W&+z2T z^A0vB=_*1PXlF8zGgBLwSppl8wO3o;zcG4xg}}rARZ;G1vG)~fiiSAMU)OAL=BGrb zQ&Ow#=l4K(tLNx`H6qn^yF7AO@x1u>;n=_|ysk9W?W%t}IRsP>L=)AvrimHrAIYAv z0_4GkoC$|xN_Te711k$@rP^R*r6IX{070;!#3N(V1>o31S*RDfkEoSwAAjqNAtY;9 zO~Yz2OWFK-EAZtKa-8Gm+>pT`ycC>2S+@P&IM?B_NT}%0hj$1$%3KGo^oPl**&SY1 zAm<`YVK5N`>Ht%6(^yW#n%;R?VDh|Sxrfd_5(np0 zjr60Obz$z)mHuf>I&uSBYCigSrg=-QmAuarwcesb&D>&cn5^(eQ zd{8lb+k0oPc{^y$k#cGNILp%bTR>Zt%Mm@(bLUasx&qzCTzE-sg+%FTN|rqSQcr?zwF@rUvQoC z9fPBb09}U{zpplAN4Kuz`ycPuvvvE|o9k(1UmIF$IsGE#bxBQ0((KJ@+5$moPfbi( zFCaQT)i&ZVwn*p$70|66cg z$kC56+Y3ar?tRs%Ga&TymUElt>vt)c*4<^Oe&Y5*cz0LA$PIE?ApTM0q5iFe0&itY zZgF+)pA{~RojLceMgY)A;-;I&M~X}xndi7=;K4oP0 zCh`OnQP!I@UG?VW%Xesuew(z2IbtzX=|tq>)OB|0_+~P~7DLuI{ZQY(&sT8L=l#RY zipxb;mzj6h^LXG;8hz9KMfZ6TSn9DwEg#6DHeb@`+q-wy6ZG^$f8Up$!G2gsN}eUq zV7O!-_b{2=GGu$@59$p1XBM zL+yD&U8PAM*QA97>1m;OhUt#n?|EK6AJIKOCa1$ED|<&a0=EH&sA#fjqtNz#WBON_ zL0UB?D+R-^50Uhq$BWy_sBPH;R>){PuSl_zS$+6lZ+u^XejS<2dX3vlJ{ zlNxcv?W!$tPeG*f*u(n~em+BB)b7nn9i8~x`0R%W$7Y$eN`*<83KeMARfM4@ zFI{y0)yMS}assAi;aSz;$fs}-I_vJyL6FYUV#4ePzScNXm|eZ`ZQ%SLwjasKOK+^%y>v-(z4q_&@m~I!5-ScO7GOjff#61 zMu@E|mgJzUi%PMAg6VkUtRKoS-d=U8-cB&O-VQ$XlhS4lh{=jKD5LikPS#`F0E+9* zu|Y(0Q=Bs;*h_n6V!TsKfftxrHmAv9Y8*yx)a%YI%pb)9mS&TMhhUF&eb2jsn!tk~ z8J#PwiJ$JMOvQ|WWV8et?!Suq+ytV(W;|u^&ck)=hIR}=%BM$*n!Q)@fxF#T0C{@I z0smt1seXJb2vZYp!&Oi2+sJ0tSlJcc7 z;&;yO!V(7Z5j>zQ|N3V1#SP85PHf)wf=_s6U`k33f81bXFBD_X>X(eAU_dN1Q#zD! zenvL+*8cw>mDN@Mi&QQOh0paxTkiiJmE@BDKS-qnOYe47d}AZDOW9@F_-OI}AeHT# zy5~q8&YLw(>2=u5=#%CFO;An6(7k#oNvLWMSX^r#`O>#y;FDmZMTgkCHZ_EgI$V!w z1(Xq_wT(eZ&}~uateDoxIL6lQW)t1e5QWtH-@Z{%m+-&9=vRBB?hXz5-0r>y>DgTP zf#$1|sAA4)=8UO-d8IG&Ysh-(VJ0_ChK;n7!3cn3P;?>4S5F|pd$L-dVxCN1QjCx1 zs~X0%$l``RlkC)4HHzg*yI2TO3K_Dl-xV+nZEJ+K=D7%- zq8eD8ae;_t5AX#Zdd=q*9s4{u?=}diBm&nZ#|1}pm9OoB36=`hnUB%?W&*V!wz){y z_M=HEM#%B7JOUg9cTzP8%>)SzPt3yv$JUK-A_F0yPAH^r4UzlaT4!roAYX;~?{xUy zgbvqRy1iPhWvO1RnCmH*2@}eYl}I)kF)^}A#kjG-`<70y&ae22%1p%)l>!t|(A~4^ zZwhT|hRYwgQ19P2n5RTekhiL;baW7h0;T*Nv@U z_3R)5o?iKxTbZ(S>%dMPvChV=Mr0$2X=tL-ifq7TyaEu+k+CYU7+UJY=t`+)lPEjB zx@CYeR|~rzi-%{`GIZj_2qz2QM&hU^PP=)48oGkKL#$Nt|CAvyo4eg_2YAHY{Cm<9 zj;_Wc1*NS^@e=ifn+~N=t$fX=ok^DG6mv!2UX>;Wvy)yeZ#$Qv$LgmvTVIkv%#q5<&! z1_HhUWb8u=5@ObsCCkn(URqdOjO>hJg6`?3O0SR#6e>UY5%nK3)TquYBqJkWS)nWcS{hDkvmXF$ z+aA8Se7S+yy&$Et!9sdsspaiazr(D$ z-*1OREd3Z5W#ec?*Cj7BqoAZBOfJU35r%T$-c?&r%#%9Mc~|4Eexk*o0d~87tiM|< zKCBq$2XwyrFaA`R{vUrzrlBkAWQC~p9aI(s@>X*N==<^E$|psvUUBpEG`zT)JDmH8 zOy2`wn&y2cVHSfqkxQ$+t^8`E0D2VytLmhooH*V&Q_|B<5wnq*)m49#7ZXyK1HPdg7Aa}zEgeI@5vm)|Sm!s~V?mZoL=n!L&-j@! zZ|7bZO!4kBbTvwnool`^)x+(y_@@aUz@N9y7=*h2VXi5>+6_k6-#bjzH(ND^#<;i? zG00;Ug{)g>#`=cKNg1A$tnW$FrZo7?A3_R=xZL6bDk&n1g-RA2@x=Gk=AVtt6sd9s zgWGMQ3#-IX9}A3-9is-EKaw+0$&}=kBg1G(G4E4U%@Ra-QOy}s+Pn78&*ETm(UFlU z%*?=rCF#kOtWAK)hkg$Gj>y_TV%o?$-EnHMf&(44mf7YtG(|erqPn$yUr&A;%PBKX7a&S zxg#aVgY^e?jzokNHFxMN>E(#(Hc|a~Li-f3zK)+C^*!H$*aEK39W|&=g%%lvOCU{%kQbryyDM9=8F87u@x8OVEKr3CNDRiT zr%sG9EG~f)0%lfhbanhFZ+46g&<{BkLo2I@xs?n-LcOG6yaNLlC`iV5kzm|?3oYov zVff+Ixxc@z)sg)fQ#U%5DxmJ`@Vf#G{~@-8wj?B?@o~zNd5p|$)FZg*GSUY}k0j`g zdwec1#GQ*5>#Z?22loRZq6#!`H^Ze@!-FFNa#lFBN57&lPQuEn$=O(th8dkPPb{RQ zf!%JU^)w!PD8C%Kg;E>?cNwl@BO;De#h5_(Z)zb_a^%TOhIbk^iytjDn>49Zq(H>h znjWCLGq8pKGg^+6kS=1L91huAa4>0gAHzU>I3>EHEiOgqB%_#nQmGZa7aV`vH^wy-X%z0-LhWi*}F5_CuklPMW>>k10ahX42GNk=-P z83UhQO4f@ZacQBFL=+Th(^3LNj#rl8la&e;C%XLgzKj+pnHyd!rwgwOZDVTP<2x;e zyib~^aCS!~x+z9xrZS#$*pG(%m(d1J1YHqtSGe2wQceWDftlbQ<0A)iET_aUIr_Y2 zqSUmR`Jn8szaylv%)~RnF%>d>NatxB=1fMK&#&_70kO5vk`QdpFET{Odxax*Y{nA| z_7QzC2-(SkLSB$ytD+ijvF2wA-cz`|vVy9t==1xWz5o)@0{k9tAI2#$+^oo-!dL9^ zko`aEW>f22&k2?062ro!MU4;pzM*4_$S#YZ(h-~Q8ToO>_FV4Q>--Arz;+GyUiD_n zc4pii7|{Rg*~fzxbuUbLHo}K4-myp^2FgKz?qV_=s%*{|2KftZAUCGhYk?)CRa>B6 z^y!jU#5EMDr$tm0v^aK`0J{b8^hUb-3$o`93y9nihhc6T?nV~ zJN^_)ZLfmK1{N#^(JSE-fsk4(Me(3CJdx>rJ z|Ki9%o~>_>imnL+Lz{c=&?Jz;qMVj4Pmj2NWCBe(89X~3IYulS1wASM`vDcJ9bOI) zc;J0!KZ$aDyzSE=oKe!2@$3ROfx5`rtZM<{$VFY{8FFo?&HurX+v}O4aCrXV$k!GH zRTUuW^5!Z|z;3USf*M4Clx=WmDYKNIu&FLIoZQpK2A9Q`Nqx;I50J1;)YsWsJP(qI z2@e!sjz)e29&MGjO9aW(cXk*9q@R^%niW(OV${fn2bM62WucGcYSPBI$|!4kflg({ zU_V3PDk3WWoWU)}gg8Z1YBRI|6ZoVgRgJN0;GRz6K*$+eS8=GGUwCVgVFOQA#kqyK%Uo|C?EA&%JSW=F+;Sc4nzk++0 zhEBLM%B>i8jx5$2Vl7UJD*j;DY&bNtf+${K9qFwG1;9{;UOj&M$)cL9xLVe`vaG&42snQHeP*xH2g#Z3b8S!P=UiUn4En&nPIXg}0q^$Tp9cW9AmX$))4n z0y$&YhFDb8h%?gXR8+&&6dtmAD6lMQ==u$=qN>w@R5Z$L(Y4pb-_=PFYGl%k6e2dC zPcY)#H+Ev(sP}{37Jgf4Sg^y#ZxqoJj?XTl)p5TlW|mX}#SEjXgWJ!yVO1N)s~!F@ z6*L!M1!ps}S#g5vVw;kho|u@mdbb+|<&4!MWpKNU98lr#bk!-23$n~8Xo|TyLpUXK zP65TXZX=G4C%OUXvnZghY?NX zP`=_I!GntA=E&NJ9=;)AVUD@VlD*n!H)tgu6*B1Aaqmh;t)MGt4$|EQM5cZM z%=NrJj4ODL|6KfnR0@^?$}8R&obZOQue|14 zlCIRpiEi(P$F8eSvTmRkOG}P6+hzg)(0(7{H-C=5?iQJ_S1%F)qMq1y@LxE&e6r2` z(c~Tg40`q)_M}luOIzE)$tmf7;N^eY*=DzDsl{&Jce_p{R^K5S7;q5qF1&2Hz>ba% zmGXAE-vk5^1t@yJ8`TF57zk3w{Z)C9kRvgO`gkgvU9Vj0 zj{%}rKM*vxx2G>paL5KqIDqKm!nvvUKRra{{C^t>rvfT~I*|WZ084|Nai=Ba=t{on z>g47^mC|ZAZ~W757#OWJ70$B4QT?wfBjNLr{WbPKI+p(uS=7wCs#J)$V8LccM=s6q z7G@RED>CT7kw=3Advw%^{$xhbb?eKBZrugfDR>2f-h-T&b~i_ujjT8uO@R|*&E1** z#2HRqBKh37OGMv(3vNHU=d!HkE$5@x=sf2l&swswUwYUcj$W*}CbUo0+%E%lYD?@0 z-LB-v(%SEKg24K!p94B$o2w4>GfHqxdPEbK@3w4$c2M4Y-n_mi#QP9>SB-kxUB<1% zz|1j+y3Z9q#r(#YSL*UxNUmUQ2hm5Xl>3{}NoL+gzDRFCckUmC6Z+s=*1p@Ghr(nk z!TG+nlMkPVwR;-v<|tF?+?{9on!LR7hU*%B$z=@@JI&|yW_#r(^q8B0K==EXL}|_D z3r{`2OOOKSjL$-RUu{z~FjiV$_2*f!J768~fbDVfn}D+`q4%J*B5*F+Xelt z9iOI>Yq*3jPTu2K-$`nJeMw1e_YD--B7EJ!cWd~Wjak9lwx8Wz_o6vkz)6zlAI;r< z%X+yVJn<4Wot=>sdoWa^-Ig?UkDs5>94>jzJ@~cF*E>I+a@#llwe#{iHje+MI-ls{ zfa(uC7NyX7$ME;OAs&ydBZwfZkFS1Riu3fiVD|U}IQevt#f)>M)U^#^=y_j%RuVzi zX!x63k$Y~p`1D+pRIiO&yEbXs008=c+j3JH??VuwY4yzqu2EKM)q*_I+Z!^qOG%T3 zdHe>uO|GTtj~w=tsli^r5V`3{Si;+wRMl1ec~3{Oh?74HUd^tc;6v** zQo?pg^Nxkhgmg%0(T$m!0BH6V%H+EsK(o+uF!0Uk0;KfzOxvD$sQnk5@0Tk5=vP9* z_x4YCE@WZ|M2Qf`&jkRt=C(nlNspSh6*+9- zFz4{zzwU_ig0|G_)%~GKIoZu)MN`%LoBjlhW4jya3BSwaeiNE#!?_BZ zbdFazCrEXN8kGzr4q8C4jJTp0xa#C)cw<>1)iY1=qpoVn)0@*2=>Q^n>fgaTF|5i6 ziOGt*8kWqUR+h64YRt#OHj;rs;9o@)Wv!>7fSW~S}LV%_a$jD)lk;Jw2m~|bYw8W)J6?Z?7ynVOnMae+g;xP-&>4qAsL%g!_ zW|Tbm!dqK8_LP`v$}CvbQ4>~>;cORD4jsD7!YcqUdwcYA17&RlYGz;PC#uc@&~MUpv-1HlATgoW*@Q6>ZX4Meurc=J&<> z_l`Z49XcG%%L@p*$dI-5ue#P#=ec7QmbXR+ncqhl@g@%hnB^|H z!}_bX|2%Z>rhOZU#$jmw;kynuzhar!R-fb)jsEpq%a3Say5_9Yn^!D5A5k4l z*<+&miB71zkGd1xCKNNbl3=($Y;0s9h|)XfP6N-!f=Nvb=H?fOxknS1zCCk4ThfQ2 z6v--s!-VpP3eh!xVo5PB`Ui9R>%*Bcr|W35aw3LI@_MSCeY?$6F0S_W8}#njtc;7T z+5K2;IFG)Rr5w~MtrSo686>Yu!2KbvMta6RDow(CrzKK3}iLSsdyzvXWTu z(jSoariiIEQYwKho>2 z$kemw16C9#x0>{yz4?w@9DFv9Z6YNKD=Na0ZjecIs?7U%pOH_>$XzC#mM)=7n`=V$ zz2Rq05c&wA%RuRC*Z6V&oJK__QePlw-hZFQ;7v3&1e8k~hgUTo6>rP$ z4y4$o1xF2UZ>3$VB%)A*GxRg&5bKi zEpl|c@19!BRRqbwxU-gg2{e7dLWhM(XAPVjKbN$l4E{^E3XmV)c?Dplx z#C?g0b|JZ2?%Me^$VIi5F*4mfQZBq6UejROXJGH5YKaqDW4QL)av|7%TASa5$@`AN zL>B$!v+yveb1gH1Z1fQV1|8U7CRU);c!eYIlHPQ!p3=s!I79up z!+&f1{t2I9TTH9Q%*Ja-xS~3P`F_czokMGOIIuqQ+6~h4qvpR)!o=QKJbe`VPdVrR zM{oBMp6_sVv@raHKgUv8 z44KV^YMSp0A-|qStwyroK70Cpi`)M8sx;S8pB@?Lo?Wc=4fK2NNH@>zo6MHazUYA^ zB!^p1rn`Cf@OUiz(a8}A$|ANTcV}{g5&GxH?tACsP-avkXMaexx zYv@mR%lAUPFIW*-L~`IV#Mv5IY+ZoqdGBF@UbyNjIi!3&wO8G;bu=EU-*>-fe<4Si zPxcNot69SXSflQIUmfQ085i)1=?s0hKNViq#@h`(b>B1JpV%3Vy_-{hcAh^me7IS1 zpt-`iteIb2P|i!M|DOCsk9s z?aVyuZGGI}etvu&cRFY@SgT#+Emd>J^6{l_1&ZHqjL&1vZuY#I&}DGsCWRR*aOB%P zfx=@%a((?X8nu3<&2^g&5jk4s6--3gxut zl^gx_ScKNNRV4w6aJJfF!k2#4@A143@A;lB|FSa*Jaf62A0&}`e1=m-VY2@IS*nDD z)W85~fbziMaxxuttbd#>-+hoyXr%@~6K_gxso*0|KMbwMyswS@M~8bn_VVFq^rZae zXN^+a>j_>fq<)q;8z`7QRz%)Nt;^;`h|)TPmAY7Do7DUEt!%+<kVJl(q9IJ(%GngH@f zV--qA7ssKZ^8T5U4&5aLp(QNsX@@uQG|h*tbDs_q^g(u!QT#cFG$-N<-F!l#02m(tcyj?8KYNV&9grSj|-NlbCn zkf*cA>l4T*D!Q+tDU#ZK`MQ}BQM@DSxqbucku8p=07AFnoQ9-Yh5gNPctJk502uOZ zxtG->MIFu9fQX$D2`=xoUos(q?g)HGR#4V!D&Pob(409Ma?^bwXeH(LfF0*f^We!fa)ESc__xpJE z0n82qI%&fY9ywg@ddEwO zr#vu$!UKB?^mdnUla*}wo1In!w@cZhXEg#ndJd1rox?W%n-6t-1TF8d>F$rVU3l9Vw?g6!RF_-_ZsX9W zQuUsA9)JYBQDH&Zdtxd?ld&_!$&52-OdDj;;ZpNfu()MxYzI_>fhUbfVmwwCBBDYE z`0WXVv&Yxsu%e#E@VWD{Vtx}|ld>xV(iiL^<{H@a!rGusndXZC6$*XU;jb)Qh*gBQdni8vG8V<;ipW zQ}w$&vl&vCLh^!u*TACTF=p?Bx!vJI1wN-+9m==1H8}M)%0=u~d1C`anw``B| zwF_WH{<80$o`1OU{dzxN{4>@ZKV4w1n}W(UMfW+XT`PkPf!UH_on!CRCKl({o0jan z+kjaiUZC$cJv!SSh}23Opo5X1DJ~ar#t2V)@V4BN>Y^z~)0$Xp zVn9g^o;bb!MKu|lwl{ayM~B0`?z6+T@ALghl>hyBto_VjwW~zOz&3K*99oM21dk4F zz8@PL-$Tp|868*gE0&O=yp|DGK5oaJ;kp~Ybufhi+ZduO`(J@++S9E*Ek5&JMBMF`!+O+Wy;?qetCBQJT z`p)Hkcy+$vxF=A05s3UtPmW^!=kB|_#d44%Eat>QFH?#yTj+uG;fV{E3u`dWN~%n` zo}_^|D`coKW!0<$+NvAGCN{L_07TMsfev33@RHk zI2x(0@rO1$_Sv0Wy|X)u+Ix4S*wsLoH=Za5TQ2?5kb+*JVCj5<{}JeD>HW`>c|G6u zJ#0=;B=dI%l@l;1Kh@n{W+K1I@T*NXy@ynt*=tvci5gu+;3s%Ej~f^Jm*;EE<^(gVUJ^N zhQ{um#A-$ikO$O&oL1Ki#2Xv@FIr7 z&x|d*dLC&-4@PH|_hDQ<33)eH9Dvbv!M2p1ndeWYH%W*Zgi#6fy zv0TPL?^#BYfCgm7`p_vIg7n zK^|+0`Z?li;Sqv`;0QQNxcqaPH{)1tHk*UNOkiE$k3*w6qrpV9AK(vtk6P%#y2MM^ zswb7uqf~4R7Apdk=VO0d&n2D_w3`8c(jK{6oI7U*lE`!Sk0jiwm}2gFQ=wPeY_ZX! zw>G|Jgn|Fe=-5Pfj=ra!zA3`bee1WrB~cHcIlWcp*9e0@51@m&D3w1LQ*%WGra)ey zA1)epr5%jPO9Q>$-QHku?a^ivm~tYy`r?W$u${wuIxFXEvk3@ypfa4NmtL*E$N24! z4%oCg<+DJ^=5{TxPDAEC{+f8pUSIXC2$-?^`1x30)s_$!*Xq~Gh~}ox-?&j$P(zaW zBb&MZ-5nU~8mJTPo`+6aI=#<-Ll*MzlbC}E>GHITMz=i!*W1YP#1KRv9p8YelB zx&3~&Y7HrJgE;69+!ck1K@I(m!h&Squ&kK``Ep1THIvFy3u|zDQwiE&JUt@q}}r%O?q1u zM_z*kwS@S1`H_Hl(6;jLm~M8sr_1C)%J1rbJPyU&u2!VWrQPxT9w5EI+St73Ypbb_ zjOwyJg**1kg5KutX#gkGOBWkMpGim|o6qzm(Gdej;45W9WXnkR=SF^dbt%={@QT+9 zq5izg!2%GZZI+BUVX{O|f9>2ZR(fNyAzD?=#bWhv>BVWoxt!+d4Yy4Zy0}^a!t50m zB6-axM9F6KZ%=Tdq^XAIYrp8afAr94jD`5lt~}-pL{Snu{E63Blv{3B47M4JK;7$l z-i)2Kc$M-r73CBZ#9imnC}1T^gcL;hQ`e>>kn?Ym-G&CTy-MXtLvLS*?O7T*ZwBPk z{!d&VzPfAh$glWuP0!Syz7%P}x!dyq+8&F&hox5<-s`D%dftHfTmahhv;d0CLXzp- z_(mIy=aco@>l)A#QlWCumP!=q3#RC{iW3-uI6bI(zL8wMLy#7Sp3%lo&F2U{1vt6qm~hf$K!&fDIe*Pod1d zTn@NvB_$&!kWE;Or{eoaWrbw zM5wfSczRm?ENwY}BEps}7($U2wDXOxv zXjYk&5cupa!svV8!IK?o&V%gM-1+HZ)%s0N)!ILm0u$=riS&Oib!qEDssB84kE@X8 zn&>qdD<}nX`FBm!L={n#ZKpcRLUOztA%52@e|z6!bWK!L6wbpD8>mauPw>0xQe{1R zn{*HXMLF<6R2~XdXPC zXI#O5Y(lA`Hd+mJF8hfqQWWdkK$F; zJ)(1UdeieM5S(bvaAO6~?x~(y_FQiFD}I=-1}$=xwDwGSzFgTHY5Nkn?6Cz&%^dHO^JSq^!l57c0(bR*7w^jQ&_gyo!^7c z3li7=1t~v0c{r#+dR*uhT&7V}gcNPoX!(1uH-5>atRZj~(yQK%T68tIE$v=glB+wn zVDYfIfa@0K(x*AlUsHIjf~<_bzt;YoOx0#huC>T|YMQVwvWO`=0@D$>%DwduOsI84 ztwM*PuvU{_fE*U_AbbHIaj^gDXHL}T;IIkRexjLr`!h_V#~5!?W{lBXn9!Mah9CzR{;Wcpcl6m?coOvcPpW#QFiwS`Q0`(T=M!bJ4JH`d;w?4hPu%t4G1c)G&1ll0 z-I-Is&&nI(FviAoGoza0uZBtD$CMC*`Airb)D~Z2DJoQ4yDJ_4xlCWA zfJ$L>cW94v7FQyHZYwBgA!qzf?kK|D@LTx{7S)_avkUpgApa1mYcvrNk$-5_d+TG* z_0w`W!_mEVG}w2>V`rK8Kl*HW|4KsMVL>9-kNmQBrqpl;nma+^9KzMlOgm*bv-qtT zH+TWntA&f}6R1<}l8o*LO#^BvQl?L7hEj39Ax|73n2wVXbCsXIC$cQ)756O@dG#w! z1@n9n=(jTW?ieY_FRKWB3-@q>VqSi}?xwzUkXi~3k?Npf&Xje1?iBq3*bH2;vWU&i z^)?X)EuHKT>F7$&A3yzchrcuec#WW+>ph<(9m07XFp z0(lGRtIAo3nT?eXynBkEJuWbw!fEbNKaRt+cL8BY*WCQQp~YolftbfrBm zwxmx^7h-=HHsD~=7ONK?YfT~(nHudqc|Lb)60t-V%iJd8kzaxd`Foj9xf3 zxQdTKbArFb2)Vzov-KM{VmrY6P@h7IdZbR7{(VA0K_#?iMb{)$LH;by!sp5>bJ<2S ziMgOV$%M<8HlC8U@8GVBK28>CimVg>e;0hF8=2vSS@tbNVx&@tWf2+GF(Z~Q zKg>yuZ3Gi1yKj(Fr{CP1j^1*gEjrTuNR$9jiAl8rJRG^HXgm^EopP-|Z4@YUDO7TU zKt@ImgnZ3S(&AYt3U;8Kx&(T#&W(sLi{-=SUb|ZsZs}aS%DjuCF|ZUI!~1qBzPXB^ zo%C3V|8fHfhY`UbeH*CkX+_X4n;>T7MCSI?`xwc7Ni4??#dBj8_7M9%t2;g{{RF+5q>{%d3oWt9}(tk92_+DCt2QW?dy(qN%2F{7-haQDu}NAreS zt4YKNbv-~{k6gr?mQgF|YT`|ArO_6tRMeqO)WttfgfH!tI+;mvxs4HViU4rs{Br5s zIEZg{5;0kK>c(e87Tu%d&6yzzs`L|_eNbZuv^`sO{qr=(8h8)WH=qj1x>BLRlT3(N zZS*)vn=#`#$KLOEK6X%Nw}Rtxu_k)=o0qrk)!u8)%SXF2bH83gn<~i0z(UpQ}2QtnprX_VSI7cTCv#@6!6-tbjq9p zb1#bF!13oBeQ~8_%YTZ zq>2WLo;M%`FcYTD6Ccsb9XKt}Y`WuJbaP9i>zP!Gv?U&rhSg-o$ynwKBZ<9Fpfzx| z0E<>kpuZBXV)c6d!}JrT_iIKg+C6oIDn1b}ZMezUQk}^s@`*Ol5z0|`?Gp<~WE0DA z?N`~Z+SP)s+3`j-^+TNnVwG8F>-{t*!qT4 z2+C#}QY5RO);GFyx0Okg;BETx7{kB!X;bjIhdw)Yncg1&@S>&qI2)k9R5if_ODgWh z>@2zRe37jbwyW|rF3I4vFOfEsN(;Z3#9Tqv8LfQWjD9|2Go|GeO7;QRDNs+Nk=z^~ zQrn+zqKeAmeLM8-8h|Pu2y%5` z?rH*mZI-luVmET0X*DDDP{TM{v%-mE;#sRCH8GrqK3ijxqh%gjP>CKf1tVwjYGGW* z2v0Ae)PMe1-R_AzCC~>7qEPS>3ioQz3J=EgjeU&Ln|&l)@iQoZ4d9S3V7=6 z#^X5FWpA0Di&7cpFkfe)9wO%L-H_w+K|H%Wd9}%c-|Z1RRNdd0+NoZs5k_fXaCZy_fyPRtD~vIE!zF|mCM;iFTyQ4K7q`tzkrB?y5j!i)UCH} z|I0%LXLT$K!5>a%!sE}TboHiuF*MfP&~uHE-dCg_&PxnMJfD2^x~cxznHe{|UR2IG z)m#(RTeLlg2cJeC{*Yd8gGwaT&mc6xGuDJy-Q?M!w8{7C@ejYLEP~-&lk(xJ#ilmG zWAgWcE&jcwhh>vzEs@~$T;h1b_T-H7v1P|H2&K6-lWB~i8mAtdUfb-+m~WU@JLQka z%_q1nnU!YCymRgkoipp#)viyw=g`O7R&#HwFH9(g^eBuCgnSo0cL=DV+&&nY8X{=p z^9AJgZPUTUd?1+%(TzchU0)sgH8XS@n>VQ4RCG7F}$PC?shNcM@v2rQ-~o~EAlR}7z!Lp zO0E#^B?+(F_n2|79X3Qdz3!Qa1sU6EQ4uDj_uje^$*iX{PoJj)PUE4Z`ujjqv`I)yiapRe#L4CDoBPoZ^#GY z1do2B$!N#8m!W3{DMz+chXg-IEGiT+Y91^@{cOG%V;@G+dWmfR*3PW;>~k%v{BBbi zk&M47XaIv5&zYzeMUgfvD^<9;0_|&p%s-_S#PP)0`ME<)a6w;ZzJnuqf`DKVR=EB$ zN+em%@&gV{PnzsRn-{6`g>=jNg@Y7&$>Gfqz3s0OjaEbW)tc_^5Mh^*g*oImA5MY7 zS`%K#o4NewiwL>ryE(bku44)nF4VMHtG~0Ot-uj>_lwS-%T#Aa%s|@C%vaWIKK`Wm z_NI89LSY8wzu#TKjE1zH4%#o>O(XHU=(fazdiqlXPSstd`?~nj#@;SFclF|5b7oEI z9d=MMf_Zz9zWHoF&ot4fw}cT*n8c`1b8dq1qgBDFziDnoTq-9R0-Y(5AY|2%>*mDTj&)a~nV+U^aia3I`cmu+IlOG}*5AhE>3M0RVAh zI8fceVMSHjG_{Rc(rvCRbX4+OkW4=7-A(-Wv!u^2rAMz>?!;HbfuG5rme?aaTnL7v4B~86tI`qx(NxH|w>brE2b_tP zFS)~CVzzzOagN0d6>&V`MJa7EFf|pEd?McusTC|8BqTW@*(_uUxuhjBdmQ|=z=&-L z{F61KM|(n$_dFF+>=C0zB1ab^4A?jPy7KXY@{xq0AATOXQK=jpINMhE4zzMa1Kkr?I|3e#wMlC{QEc|0CBAScVP%? znrkr0tQKp>fqfWDr)*aAH%-BRbwGMO3~wAkr6#m=U_)yvRUKj5Ld_^ zq6CDE&Ke(}@uyIlseNU5alRD~_KyYxqvTBP2JlGOpgDAk z7&$|h4=$iN>g!PfE<3Vqe4=ygNJy5E61BskYC{vZe8hw))*X~`)$6E%arsU%M-5>mv`ECeSlg+*Ixf~QQ_+o*+ZmT9UeZ8MR_%$Rq8 zXhqmG037d|tWb!RDiiPH87@Ls-}bCG7GzK6)GUUEhR4zwVR5&BG(-_{dE0&-WagJt zWGp}Ji9~j$>vlE`tFS!7b<8`HkQT^WDCT#e$;k$p=<jXDj41y@wXjPrBE(f{}I|RvZMSZevZB1=?!~i{91kFEnH%RO_g=B+;N`-8u*=WL( zjEv^KSCJ+kvum!BRU3|f%WpapM|I)(8}XLU zJ(Uk1ANN8gSlT9}u2cXU4w|*eVgZTIts0+-AemB8UI!VNj46O$#p3@cXvs*pBbUP3`uuGzD$Mgz}rn414nfd%yH`TALBuOUOj{V*>A#<&E^0ym*rAVQUJR z=%`BgD6ut*eAwb>9s5fDp0GQMaiWxRhhJ^-;v!27^PiTknV=*VLcl7mKXi6l|Mh)W ztk=kH<<;3TZu%~2#%L+1IFXutT>NvRQxtrUSZ=pirAYBi)9QYYvYyC#n6w!G3sH5~ z3)4SNKYbT#{NV)xIUN@QzJLNjE$rcR3dFQZtQ!&ZRCLcWr3sew0G=FAz#@&|Y$A&5 z86JU-u>EiRRm495dK?$K*eH{U8VMXa*g#fRwEcuR=Vb_@_p=esWD!{((LP)$aCgqI zjImNtft+1K9?qZ#2IblDq9#(&M7zWK5k|g7o*p}VsWpn;l*H3w_ z7kB2jDsi`CV6yx5idl-oA;Y@WM@fP$-nu{ZEO|?CA%FGIyd_>7A7aaM(D$>$p=oY{ z-GOAigMq^=gHavgD`ma*j`aYKnURfjg-4!|h<`l%DgF_iJ@M^paW-gVCo~`$DxVYH z##g)%IsTr3w^>!LNLCP5VCRD%BZ5;_Bj7_rO(lA?o_Pmf`^a^yuj6VKq(^WAf053C z$bX2tUc#iTsB7fzamR|ukyKLb8T0F9^8>FuX$p7@eF@wwZJwhaPVNi{nI)f(@I5ff z%WbGxoo$BTUBO-{;q|t!@mnoZJi(!n5msRXlCf@9AvQ2OzZtBqm-KFK5)@Wa>$JP( zT|K!piDqvv&rswcotr+EazP;;2gF2lH;M8iyYdB$k9&-aenH;K_xO z{mf6e2pD2yVfx-WE-)T$LSnk`ecAE*JJ(7raH$Yannz-Nhj@QP$o;02@@XZdHP$1N zYl!ad{4C16WP3Rms{>j(r@ooj`T4gSF-=2po_$XzrfzRa53!XqSC$tzjoS^*L1aJlH zJ1q7r~XPwp6_=DCH#>P#GjX3(I0}c zf8fQd5tlIucLe;ivRdnmZ=km;R`GDniB8e zU=WZ7OAYYocpC$No)ImtxuwZlbYsdKWh_>ov{|u&-XpxN@f8mEt-oQ-qsXd zM2r8TImRZyaToEuqv`M}Q!F^tJz5!Ujc8l(aD6{IH)cF>f~?Sf`WC)}w-opzD#^rzR z4`JgThji}ay`qd_Ga5kD^(srfizAWJjAs{|moK|taY$T?bE;X7{ptLSj3~G z*8Z+vM`7>;n9gC(6n4~t))37n0@3m}+ar)g2@4h4>BsF8GF3(!V?#N&S>9glF=J#^ zC!+phtjGS3q8i4?BkXV~XC}+0vjY(al$j8v>DIvS1V`&$`QaVPd2`Z{SsbBbE>Wp( zO5($H$34SUox|vC6hRhEHp{}RsUmf7;lm?r4EvK>una(yO!bLaSa5q)|4xlQriGbIze zqlbD`2X2Ne?MQ^eEA}igd<!iDA=88I#%kzB0Hf z!>SePKQ}$M-m#*{K+IQkpoyEiJCUv3V~W!PNd1~6$h$>kiZyj-TUj6onin* zUL~zCx#Qr3L=**9DFsdUAoF+f#;@^J!M!N7oql{Jpfoi7p`sr!{To#y^A|rp3Q_O@ zV56Id=T(=R@6UJ*w%hNKTyQszGi;*W6n2jY-F+j$Z8t)2)F-rBn4VCxxz|R3ywIvP zP=UO*u_10MO8W8QJl&Yp6>!%e48STX5;?1XZuI(@kaQCr1f++&j&@)#EtneX4=hTm z;bK)w5whk1_7d=DNhuErdsaH1tdiQd_LdSnXj?t0PLL78k7${H(r;^9pJVlPi=P=M z(Y&av0INQpoi)<`~RhL0Hg*&m)l; zpG$YsaJ{6Iq)R!*H^(;Kf7#7T!H4ppDw^i=gLYl4vtOSdH+IDS=HgFvJ%ah|)5ik+ zmCqX~R6FdED5MRaj~myTABDW0Mx^R-cyYYU?aMbZNw{w%i%01vzb%{QmowMP8X79A9Y!551AJNTmnt3}D+aSm@~YN@Lu-{13h0o$g~<-c8(!D;ju0Yu ztcCj+YQ#i+EA@={0y#|uv3VBnCY<`PL)5f%LKnNX3qA-#$rwtMu01Jjff^wI_q|W3 z0Nt4N%_!L~S;LI>Hd9_coI8Vep3wR10keZ)e}W%S?i%;e7xr+E0@jr+ReUYoSr+Fy zbA533U8HE~Zl_p*0v_#G=AZ32!I1V`8 zG_@VTjiUNA+ca{R8nl&v&z%0-bj!YI#T(jo$)f9NsO^|v_9Jd->jP(PGCzgup5P_K zy{R4JtV`yg=Q7o~Kb!MX)&`ktMPIqlRm!S^k|#awb?sJkL9 zx9>g#vJ+9MpFjO2#BF3TY%*U^PfVU4#(~oK&&lCeN1Gw~j}MqzpUxCDj`w60m-4}g zN8#ndx3v8w5eprv?_T{{#5}S+P|dz{thL@$m6$>ysB1C4T+Crv1$UEOosOzi=SuZzKr5 z2Lk=!H)_%X7XD%FKxn&obMDZ8=$rrBcFS7)6-W)If6rLZf5MaHg3?o}q5h?*9e2S+ z)nK0?p(%H5i@>n29+`-aYw1aEUz{>F0U0ICLA1>O7%Ts^50Y^xUZM1t^iaVq&1Pm? zCxn+mM8^nJ(Voa$AS}wK<0@;}9jk`d^Ihip=dzMC2y~21-!bl~N4vK?fFf=E=uZ}z z1~;ioBl3x4xjoyE$zy*>%kyx@Jf6ZBfVq`2vKZe*U%e$-VRpI1+;X^+96B~LtDdHw zJ@Lk#ZKUMj9)bGtBQGxUiMQWarFlH=zoGscEouq%nBjyPp(6vJ&IF@vmW9vF3+J|} zD9`rF#Jt==dt9~=qr z&MK8mXL9{m-$KlgUcKd=z5LCD7O7dNfax8~5u>t5#LNOz(1SR|$y~?dcIWY%Mw{Cg zIiyCD&2>n$MO;k+kEqajHFQTd)@b){Z1SbnvE}AP9Sqr$I%9jEox{dVixnDkOsOmN zW~dk#i%i&6c9W6V%qbl9hV>1Djebn26&mgu8X6Nf6;lymVZW2ujRqr&I#?|iS;o?N zJzbP^wHkOfaZc}&9_Q+OXshRR-!*4%UaWP>O?;%VCsP>n7Z^d^Wu9qIUp$>H3V@s- zaTTz@pdeN$+ltHnFw`}gE)!3UrAkuk1y*Y6auw{l;3f;ou0cK)&xbS9<0vLe%JM-E z%_W^hF;6z#F52GSUd={q1ZPW7kxb&l;fhs(e=BO&_m8~Xt}Xx7V!hneU@|U6nQa_B z4rlABn(Dc1Zo_KcdMX0YO5=?dTh{35p}3Id&4vxN{aO9)ykgJmcGHpP+PAuvys<^p z0OivXv}iQ*~ z-y~^?i0(y?@nT|#+1UJgalFTNZF$fvggg)j`*cONwl&MDhlwfKl9rd%6>)fdUf`G} zb#i88%cyz!Rw9L@!A$Wn=VnW%Qv`qlT_di0X|<^UO2`Hu%-lo8LC!LqZ$c#Wr|_iC zP$EXWX0kd3H5BOu%jzhKQ}SjE@veM+ps$^sWY?}n{`WQ+GA^#vdaGBY41qW^I_4Y) z2BwsiHXIOVOrtH$aMn?3c#20tdsLLgIxvilDjStd+B|8qrOI|#@*fwlpQO2z^-F)?9Pk}sCa-b`pVpUI=9%H!nZlo|55 z9>A1Y(yKQ`NKH)*&HH6)N;X#{W64EMMix9hJzeCbfY$1CjG{h5&c)S6Ne?=RHav?( zy+sv_R~vp;MiQL9fi{jR+{ej6dHPL$em*P$f;AbcrA9aclck({^WaOyPG1Onq1M*x z`{Nc;_joFE`mE2}^^mE9t#osey=Oy(<*#2b4d#wBCw;z)H|=&iLP{@~dR{XLot}>u zMNXC)6WRP-lpAdmn{IniMNWU@_?`<^x^RD=ky|r59*ieRTtQF${=NU-q4tKvU^xs> z@2e5l-K(7en1i6^FCAzu#hebem4NhFi+V#&pUI@xBH3;YgTkf=Q;YDM@7~b2i)< zCw81tyVW~oQBn3=@yJp9I5^!{ZXUtlms0;h$Nds>Y-4o ze}FVjNn2*5)x0x>HD>F9V0U}5(5uxP{Mq>+Xz1H)<^G2SXU#VF$Nivo-Kn5fO0U}1d+!QW zMDbYb+^;Nm{qL3-^oQE+j+e<6$qdB;E zG~Vu7%;t7uD)Y0+o-H0{LxkK1Z+f2wI?Nw)wpg6@m`dn8P7iZxM?SX@XGZKl0xr9B zd~b$7xsgO_%@%k%-<|2vp_tuaai8`<8EAkJJLMtW%%Wu7^X(zKk~S{rrVvCMU`ye@8SvHDk9Jde~ipJL>V@1ZpTW2Z_6Dw?|^_jA(QOycL#9uXjTlf8ZmjQy% z*WYn)RudjUUE)$xSI*j^MxQ~aS7>y!jp?6`>p@(#3L~k0sQdz6VXKd~XX$J{fR3o= z)76fMxOnr5Sk&1jpk2pygmB;`s}jNT^e$I8gzeoMP-8lQW7BqAlr%D}4QMy|K{Yzy8~B-jtNdeUeZ`R!akvv)*+}G zc}HJx;Pd=rb@SaGJ}->MhiBlA52t1TurPeyZu>jj$GmPVQ=M17@Q97%7Hg*aI+q6l zshxeF7hYrMPDv8G-{~ovdO9%9$}1K(F#?zOMo=2G}WA%9$D{uXtpa`DrDk*7O&qpf66bUwcuG5C&06y7T@The9vUvDD%?9yMUGvT@F2B(exqTXPRtW+fZI~Be=hW}%EpSG5anmXbeCLN2? zNwtWsu5SCFTs|^7Dyp!$x_bJM&gp$se;_O>1qFq9>Uuv2WS-t(WXfWZH#TjjW)2tMz8qaJl;tDphd*;A_xirJeZTtF_B3iTe`Ww2c zTGHGk3If>t1K?fEOf{Rt}c>^)d$x zZ4-)DYWpGvKDSFpo`G0|v&v#% za4=gTyKcU{_uSLOUX6PEL4^0Q0QDuq^yIZh;6{{6|`HK9` zgBbNnqBJggwDbYail8ORH!+ z&e;NaEn6}DO5+3cd6hCj5orZ;C&wlx-y3J+CU!{GtP zEx}G=22g@fKl;S1V#qoxSQ%+J`l*jK`&FBVr;}EA*~$h`51$W4w_BLz}2VoCLqO zEiM~f#stJW>jP+FAUL4+k;#!4d~kTi(-}hTOR|2rn7WAL=U22vM=o!1*uAYbi?Lgr zaCTTT7sHj!Bxvg|6oD__VF~0E)9dt|ad^>ylOySU_41ZaX$&3hvgOvLG`8OE_B+R+ zS+va6G{h%s2H9Pzk|5quJ*UI|ukt!v^baw}_Bhbf2JNFPw(6x4wB}~UL0sF8nIeVh zztllftaVl^Ok&Y^D@?6nAQ$890w+T>0)w^E-l9Tn?Dd@(blcW=+*|xxJxt{zCBvhm zLHS+1o9McE2Tm*zj?iqG$ChkrBBke)kfzsV8*S75 zHx51?+Hz~i?Ui?asKymywQnm%ac47Qn=gb#EBs-OPvp7z?yFpvv6=;EK7nVvgrNJl z$1AC6#}gUu9$alBptrDENg46tF7hl8FzaCZ@a4VL*Mfg?Afsrm;4lS8elUYwcY6hM z>*w4pnJFJTtQz_-o`1{p0}R)5OrE8*B|-rF3?9w7DRwe7h3+Fl1}eecY5<6ixt#5vt4POhyC2WFM&eT0tj zN76vyY#m(qc>g>U4{|dOyrnQ3wafeY>s03lGHWK;^<>xJuGMKTpxS5nmoU*~*UP_m z5ZmWY?UXe~BaXJC>S*PFdcXFnJgn{Co~~VlPeCr#n#ynth*vZqLkA)m%@;lDgC^;p zfhHXch4gF8gUw?Uv=vc7Gc_}Qlm_xS)5X-aKsN+3$n>LGuOW@nt!i3~o6(nV#2j7z zrLK;(Hx%<3gHR%7XlR(Wk>5CDW(~oDlX2d-v;}J!AZK+oAC@;9j!vCcD3{Hbxlpdg zY`IurdJOVfWOSPcWwfh+c&Eu=c@#_ry%2f%`D@m$AR84Fph026{n{?Ndt3mbyZuqq zrw}A~82)nD&DU}B2BE0tJN%8_SJL{Bvg2Wxp~9MqTTQR`D{svvp8PJoK8UlK*JF-y z%F0!nSEo5XK8_+o7EfXCj1?uOP`%VFon#&Ya;-wk)v9e$X~e|EBS1bEZM^6;++l?- zKr@5EK&YN2XQet0)YJ5MaVZ>R-zJ&q9Q<>YfdA}M%4$;D>Y1mp@o_YA>6B@z_Xzq< zbFOBfbH!z|$$Q0=rNo#6PPMJf*jv(npV#mibNPMBw`P%@)WB1G-3I!(36R!Dw$Fg4 z4dod1KU=!&!!STv>jA%3(8s#*`kx;qDQg%|vD)_d@1M@h%+SWC&**NfQP%@Jkw3RN z)s)0R!6*#`T~`z>_H2XZ@1H@_Y{ee60X()|NG}g6RD3k0oW*ou|d_dpN=>EHBsQH$jx2MPIU(*d;NTYQj3 zk@IILL?hn%{!fg|fVQ}aN2Oe~vW*NRX!?((8yMEC&y>oT8hO-!1EPKwM7tw|<}I5V z{R^7C>BJ4vhT%e%(o6mF&SCv4U4^KCw$|v*X0>d0F1FBOkIIlb0U9*C2d$5f&)?z` zs@e+nW~(Tg|CpUWV1(u#PEb&msH567nu^gR-k4+mU#PB4HD3~Odw)MPKcD#F;XyIv z{~vD)6dDMd`H>?&r8}*EZ0W2C3g(gSolyP0Q~u}qYTN$W>j3#QQT{Ah5^pORyq*}g zwzi;Z7*vUHg^DY8u3E_6mG3%v#uWcX@qd~&ZDrKInBV_xAUfv4kT3P<*wyv57>in+ z<%;27xcgxfrdUeY6A+Mo?{&AJqb@=PO&V+5VZO{aX+kwUxp%ZNonnR}?n~ZL@AlfI zzVW5L6|jq#x&8~Pq;fd*m~=Y+RImts^9CahJ8oQC2b!w2O#Wr1>oohaO5NZ8?&hjL zp+$FJ*A}fw0YVXKLm$$aY{*EsV19Y^_EsA%e}v+xg>6Bh)J;DYnddwZh_aYsFo0mg zUmgw$<+0M(RY+IqSS;T!TKMw7uhzSUG0D;Glxvr%>MpfV1&`I`ZV1qvn0s!Hxs4rftOJk z>->oQn!x5_DJ;$L_1XE*{-oh60sadE@MEn;TdaVJJdt+IC0>Ut|23t(#aSJ*YRKkC zN`rPN@1O6CX>^^@6F1{8k`EOc0eOe`k=AY>5cScw;%v3VA74FE!SgTOQw(-=qY4!= zJ=6A?AOk!_3?I3<+WHsjK}F9kw@UIzL9)B^3HEPCj9xEWy$#R=+nepSd1N2ty3a?@ zOk)kSaG$xBZ|~c$!e{Px%k~2HH!R zVJ0RmqkkRj40zpG!mItI5wO0HShSAFUxjHqaq@XHWK8uS=knlg*hu-8ys-Wes&MN(rv{oY#Y(DwW(fr-( zELYj^EUyFPi zBd@ky2F)Ew$FhEOWEtZD!hNes>Sj4WvJYP&O-g%81$NvmzEahJLTWNE;o&DWFY+nM!+1Pf`f`6T0d$7ehO-vjH1Y}y{Cwoo(@>%C$f z%wyj%UicV>TM#IoQ}6fJnf{Sr4r9%Q479Y5#`1A!JKHV0mlL>Krj6O_kIZ)WEq zH73`4WEL`HrF+Pv_Xb2pC;0dw@xL`UQZ7XpM7nZ&spffSLQLhIJ|V@~ul}f_wD-nw z87+-o5651+lW0Vte@YIY2A^qSD9x7fl~P?UjoTpF!1YV0_m($RI$rueYt7ZD$ac8m z`VdAF@9kRQF1z)GgoTgSy}vVW`ec7eQ(qj??T#EEE?lsn<06L5=Afv*DCf zQtc`FK;CNtfIq)RLPd-_c?jP|fSFoDu3^&Wwd|R1dhN(|oU8l^mDrjlhysR^!3Q58 zRnF+QY4=rXs>!*H9| zeV8}e?hiZLUmb6*_#{szAdp%jLN43F=rY?KmkQeB4l~J`C;yl)I(WT0EDkB7pzVhZ zK*Hup^wmBoe|?QMQIGi*EZvdJ@D7VerYEH49Oj&^bnG~_7l}KcI6W=v*18IA(FTt@ z_{S#B>0&dx{gOb^UYHrtsm~J+M>1SMVa`s~ITlDJU z^A{6dZ=1dr*uBHQ%>MpmW=M%7vC{0d ztOkrr(E|ogZKr-V=KO8wJAJkvaWQPB+3iE>JXBWTWlfH*-JV-=zbH(0yFPzhPKot= zMhL9U@}}-0D)T~4gxzO=Ee-7hs>qu zR!5#osN>HkycdLP;Lc-AUwYJgI%&nP@Rq4 z-K4S(;6-u@?*Hj&S)rid@y_5mta{?2{$h7Ljg55f9$p^R5*)L8OW%30Fm&0y^~@Fd z_`>}&-stcs*jso#1D@GoKh!_&t-hF%vu*D(=WFWMspy^Mg=8gl^6mYT@TkJQAK^@B zRFM8)OhL4LMY4zGE4GeHS2bk9Jvo#_ytgP{GT-Ef1xj7WSfbHHa zXwRENuKYej>8^n_7wy?2Ws4x>hn)vKzYUk0lFvn=%XeLlK}pLk z$$KXC4xbOt6_?XAAKZuF;YWBV5l72&PDQDh+1Ek+?jcINo!dg@^f^YQV80!JT1b##9-K4(}Q@%^UP+o0f9t zd5gPYv?jN<_SuGxF^{aomm9*5)CP3CjgBC$uDCl`2SEnEkopJ{-UN!g2FF2kVrNaI zKF+T%tA>c@ywU=fxgu_>MBzCucijsT*2mm3)&@|ic&_A9*+Ny_6B7u+*61eBt;XaR z#3xrjqlboWZkGtJ-kXeB#J(6=^QB{W4TKPm6Lqe~X_3K;SAJ*2jdFW#%eN?L2SkuR zyx=svj8%vJJBu#K`&P!jktY^z=_Vx#xDP5kkf||Q?8GHrr6upJyqziAk0gmbPwr$~dNh~VY6X<+SddF; zaN2e5g5`<@Ng{nQxt@=Y9GXpJDFHCY68`<;vGudj2_wC~2Wo`W1 zx9Z*%QiWdIp)%D%W$oYE%|EPs-mivn>27!9-^q7OPdU*u)^?m=pv=D&w%03!V@7|s z#=(*0#^cUp6qomkz|i;krGbwryz%yEx_qLz;>qZ;r?(;S2+s?bPOIIX37w6F#E2~` z2c*`V#8cTRQqfghxGqA_>a~~S;8e^3>*zdNA{6r+f9iKZ#(%AyY3u6oI82i$+|Hd} z-(5`d|7|hn2#$`t$y|6Gve;){PL}-?{-otkrnDU4bw}zE3UpXD*hy{Ab(TIE ztZEmynT1igX|Uqkfi_2JE+#uL%O+!Dibt`+IAOez7Z-nH#VNB_m0h!LsEBg8#1hgQ zBH~Z$g!Wu9?amZP#Yzk<0ASnFlcYtfCZWaWWC$7?6OUrpw0qv^x!gK|n3n1GdETv- z&J5A*B&vm$&%!{Olc}rwd;CCd58H4>5Ia4KuwP|W=+eI93|0_gg);Q zv@jL^D`kQGv?Toa!`%JpNEh$U+u!-s0q5TQJ;@puuUU7Z@((i&7S&XD(Ci@Ax_D*@ zo@|G*@*D%=LN!E-w2Vhubs(tO4>47aD!e826vZH13h&5Sv#Q^s4_aIz;G%}}c`#*{ zdW;80it}|*ng%H{N?oAv%ll6Ne;ZM2CzThVlu@b#gTUv8_Tzh298v$2l9Zzm|D!ky zVL>@%k*?~FDMcwaO9YqmkqVj<%$MJ_7Pof`8l)Fi`vmx`C24IF_%}pZapJRA@0=a{{cYrB^hynY!EFOL&%KIl5Jq)4sKKXi;44394(y+a{+vy%xMiQ1e= z;hPsvbSh(!{h2gswKLBp*SZ6;)2B8(Roq4O(70Z`LZYyL7Ai_8+kQ9W9+#xlpk%UP zJ(2w`olKM6CvppkJzz4;JAOYcFpYw+B@`>4BM114gQh3P#FH{fp$BPUIt_A016>yH z$!MgjvG5p7N=l|O?@%>1gq~P}p9nIQgLiUtEb(mQ&hqhk?CCc&zv21}#?7q{pfAn) zobUl)qpb^=FMiHLQX6o)-VYVN%klEm5Ee_EKnGgBO+l0dpxgE6C&STo$vkAzZ%FWM)QRQ;yG0 z*}x&B4_d)X?1h~Y&52jU3kfhrMAU`)jRlJ$u@2^3yseauP%+Ch!fV^m3ru%QevQVK zkbezT-c+41&6QMwKw{C8Q|M~WI9>p)S8(qWFX?@22!erE8X`4h1T7u;i{AI9YMk&@ z`A31}j_e(j4>3?VFE#y(t;Z-PYv5c#;m@Nx|JV1tCf8DpV-RJNgmNZG%LrvI9oR0f zV5Eg=f^Q+R#GPa+Gne904~~tG472ZPv;hNOx@hr4;!3%lGAVV1%FMM)1+;ntz^G|8Tt#F7GRDl$j{$6%XI5 z3X~r~SIEb=@ifs&?$wGjdEOl$bhuu}5JCd&U7EDvfItk;%)pqvhV;pY-zvNwccU{m z%E_CY?+p`_r=3`%tZY)!^!O7~K4-e9sUg8Skix_sFDA7stMQ%PnUjscds`9w33_iL zhE0@=4B3}6f<=tGuS0alp{qv^#FTlQ4>%Q-umK zQjl4D>qNv}8E%iV?j_PICuK)=nD_(m7qE2Nb3SPNiMSdwe&&Fl9+sM(-xZ6NmLPhc zaFRhIbOgT@j0+5Isc;X;;fjamO$Bw}XtH}#t;v62a+HzGRxT&{5XXxsDe0C4)MWQ7 z(%3pURG6Oz^uuO65cU)M0z3lM|7*B}{DsRJY@ykBO!&xVMmm5?L`@yB@*>OI&x3-z z5Pw#5X}jhdbYe0}$*r(c-uYGt$YKOTX}6L>9pz!nvoI7HAv_?vHaz~}e%0nn7y~Cy z7TkryPmjIyaffpYNUBoiuz8TfCAXTva!&|esg_YR1{_1P$1zbH5jlM;Q#Meh-V3E9z?&P!M3n=SaSI z!i zYJ1PD|9z=VO{HK?7c}#OSAzq1q|1h9`V-cu6YR2_T2s=}_LFMtULA?*H6vYvFsM5H zT5B+twt;K&dfmIS3@m8~Dj4&UdC5rR_@>V><(>>YXN7fpi%Q!V3GDih#DPw;-F}}d zY;b>xGa`&5Dp*JCvThuKJfqg$@l7NpMrExynP#bIcSDdT=wE9IGD(Y|ln#$igPTgx zd6i_fvZ1*>7}Q*00Wk?OKf-FZUOLuQRFq}4ve8YM7XY7NZQ2|6Xs4MkFa4bOA4e)) z-ZJOqz*63+uDf*DKyH8~yRvRlthm4DyIHzyw8AjR1)6dHZ~Yjhl7aqV1Pq?@SK$Fo z1F`B+bobN{IU10{l7s?mu1|h?xe)Z9l-T7XoDed)WWaxG#m@riF0}$!3Iu}Rx)(^3Uefn>(d==_407%xGCvxgB$YW@MgQJKb zuYh(cTNqbdYe(8Sj}TtU6IinRcJ49`T-k>d1Q0(2;A$ucY~a*5e?(h+XDc=v(d}}y zE>8$2?#MtsGo$z5)Y)(-SQT_M`i31CR@lk0RWrG%YA%AO_V^tiFePX8U(&5ki*0*J z>{pA8>gXXy#OVF@u{7M>vWa*tmBsV#>9Cfrz*qz9@xyW;(Q_|%?6EXRQnG1s+Z#UR z#egu{qB=e&vT|PLaTWI2)h7zkknl>@&lh7T^|UE(1{(N0tN;ft+_emwN7d2)XdHL} zyg&kM<7iNCUjO#C0rXd=G&YZI;knj7=Af4#s@OmOMj}Kop*gM3UCDhdo1){rf2`gA zg7E`7fI(Ac6K3q$Q&yneuuM)x<$x(O(7BPFeJ-UIh&V1Icy-|yD^o>3A}_N66U6>w zl$oIXfgt{WR*qJOW68^=s-xesaPfdfjRR9#-IM=QPyTN`gLF+C7%n>=KZ^bQn))9G z?f;_b;g!Xggu?&(?B8Q} z5g<)ptaqa#20I$uM2CW%5L!Gc`Uk7wf(_mA8SSGDj1pskU84_D;FMGM)XWXrySnCR zWBTtJRe%kxlMNk4qR?{1hPY@Ve)ZIhxxP#dDFpBX9GF6=Gi+x()iE|-{5bb=UU1-z zGqUz`r*M<8$g*&Dpn0DdzYNT14%<)DYEv`o zlR#vDvWU?{3jdjEZ+Bn~$(Frv-rCXCwO2EB@ZuDK(SF|u{%U=4stZDrQzI(S0K~5b zex$bUX-v~#>UBdpOE*h#Y+c|=To4gVR7o^nQ8A+>+yCQSi~Ty*X!}afcHJfIAwqlO zFZa%+=_|FH_X$nI2rZg}dwuG6Mqo|i^Bg$;10B{nJMlLi(yTfEp8Is`w`JM!xHUK* zv#Zmm$@l~_^n;5V(m)_mNpDRYkH^dv+bifUKwC#lH@;;CFSuRE)p_4L>Kfz>Efe^L zVlE}l753bGxJPPs`k_EfC(X2byKh{oVX~3gYQB&;r`DKnxA3WQ2P0w~L^lXsWZc=d z(0<0abWVxBaT`%`^#^zw)VVB@yIpOJKGB`Oehx2E5{Jx}7Rof9gJQBB;%+sh*`2yQ zL_UapJBgI9zX|1{)vk}1<3Ug^fG+S3qoA&Q)nv8i>@Xr~Jfb&S?zYRSaVc;&MYJxC zI;$$2$mEMO>$xO8JF(K`c_#lO7X8>%OT{(b$IxSXdiH3$o*1MeNh-88HL^z6TJ1;f zKxEBT+w+3-(3TEVWz8tI>P2qtrN=(c_)ai>&st1XK#C@rU=ht2UaVqk)~T zf-R6J6VuN~Xrz6+lSyf6n=a`@vR>sq1}!-IxLqc@-_PQzT4_tnhA>eAemfHcmhaTuE)l&trfLhwR{zY#> z&f~~(-;!16+{&0`i<@Kzbfexa=2I2n^<9VOj;O33G%B|t$0wq`-*Q^83IT@dSxe5O= z@vjyT@dh&~tXrr%8PLA+KOm|2@S39-hzv0WshGOle?2yjJLFC>GQwZp^ibEx7=63$ z&R-}c$j_PVA*`U`8}$Cl=(SSQcoTmqNcz>n9GblCI~3bfWAPO)Y8&W{a%AVJkH}gC zFc`~7JbZve5UOsnE#7)^CNi1?I@A7tqGC{sH@ARO5o-YoLeKxQ)(spq9KJbk`{$-T zG^B*;5GkiS#?_+N7OVc3wf=Cj`F1yp5UJVWLM8C^f=*OIx|RFEf)mEPwgXN#>8q* z&n7#2exy@)9(P_Qo$8=dDtj=8$PCH5IL#|5Uk||;(3+1HXa%8P8xHQ?r-`CiJlT&BQb6Bkg}y?@{G+x_ymY)n2_)I5@DR&dw%^T+>3$v;iVeRUWz z?Rdl)yaD*p(Fkg-x$%3v|1kgkghg>@o$;G;aMiO7E^}&+EHdp;)4+{Zf8v!ndoi7u z%;Kq@y*uI9oWXEw*k0Lp$3mT8a;S{X=p&#R@*{V@RP4U3)|*Y>vn@mU^6*uc)oP{H z5iNPwz0PoS`Zw2TYVL6jdFRp!puL2BYb0{WOWxvW@5H9Rx6N4>y*{kFBq1RR)RsFV zxS8CjYRve)2JFt+X$Ethvgw=eDOdOVCx*)|LZic|GWwKPwoos<9C)y06)_Vz+A*N( z=J9OggXOs1Wt7;QZ!0xhCM8b4L=4!29!EAbqowEeh>NvxwmGz7lF6~bshy^LKlXk%vy+FIjwO& z4E%rkKf$Ni3xxNMr5nv1)H^e`*+3Wwnut;+rT>f*oVCLw|b~0~WT{u02eKP<}ryqDP$T97KXEyVV$8cB>>U zYUXG)c1KM{_8bDkzEYm>6>IPuN9nmZLXe`5ayav0gFcJ(N+pWkNz_1CN}x z70iOd{n6SM{0)0uRr+5WAAg)(Y9q}xoZ!ik9uBnzh6fSx@Z_A<#2&t@VwlCdkmt^2 zvEW8al~ippOQM<;BLm;{al&r)8m$I8P!ruA6UL=G#6j0~Z>;r~QY|Vb%lDlMgTr4( zYL`*;{22(c*gDEb+O%x$=VRtj==4@hq}sP{zV=6-vq&o=sxPjm5_Ov5fZ%TvkEU7ta-Md4<@FRd7ra?h z`0Oj*Ar9+tf(gbbRHL#)ElY{(_E%BbW(wPx01-E)@P|1sYKH8+i$Ue4MXW4Ny^)*z zkGl9uNG#qQ!AmCOc^FBnQe8V7B12bCsVq)A!?FF?zS}@kRn1Ur?iueJ5c-R?p~17E zI`&^tFTP0~U^D%Nuj?O2kOxJ$`2)oe3L7ktp-T)&wEbNFx3B=v47DAO> zoUKej3^r{P%nBAsc^bpCM_=ohM2CFbZ-T4|Zmj6TBm56{u7%f=iI|(KclMc8k;PSqNVmWL0bM+AgOupo@f_+?+S_48tPwu}<8SJK(JV@PWP9`DRj?dC@cQ3( z(%rLGqQ**8?WC|J6iks<$#B(dj{CN88bbnj;R!kOIO^pz$CwKWAG#%$Jxh_HV(Q{e_flHq71&ZgKmO9kY0N*A8Mm$ zSvg*;VaORPxD0RRo2?{EO1(KwQF1f37)TsY)-^Y`bpj2?U&XL_f9uAdj#1H5 z76kTCKnvD16|4Ld=tzJD3#Qr6@ynJNLin@3+Aa2q4h)?@bZ?0f3M5f#QN~Yp!Fgu2 z=VQ(>v_CfIf=-5(u@kkXiJ0Z|+B-89@m0b$nDmMDwfbR-hOx8IOHf>F{NfJ%r;Mh6 zQ~+jn6-vNc2FeZa>5_y+Ra;5n_Nd|0z#1}krwbjyd-Lqlv@o!g2;wgh5izz-)e7cZ z*~~!RkWfJNh$~pD4|-ziAM!EW(01XIu)A!=iB!>eq0kltWH_`Wtpu?IJ>myscKAMu zv7So_?}CJNC~E54t7o!`l;ZXMg%1k8Ta;w*35d2VDJX-LU_i*Soj52d z-ABR?D8v;E(NF}7DSlnR611|3#6|o8I`}G9#>eYe_idqjP+y$yn-;4|;9XEN-SPq&TkF42igO5)!ob5uNHL`tuj&e+{bcF<$L1wV-5t{f< zeNw?4aRhY4DdNuJf_)$;=uC2oN;+156~b{`ii)6DhoDE8K|lMP85IiQkbJprLYLD4Zp%yD=9+}y{Y22}(IHB5T{ka6+gPYZ#iSUGGrN~4xw=>%Q!Z0Ys)^VGV}(>Z=* zsC)^j<%p@i&k+(a&#UqLCkfH5z+OhCU~!8?d3i4(HRL5<#A)nyf1HrW>GFK)if=gN zR+opvn%x5~XM+EvN7lFOi?Fp8G_%;w^w%Yv-w$VzE5+Bw8p`x`bfdp_e z7YK$~=Wyr{o^NpZ&;He>h?^uPDuZzdF4|JNl*n3!(}yz?e_vvE_U_S91`L#9Utter zD>i0Iogd7E3qqZC&rpjpc54#>Ew4_=sI&!_ByqgHRikimq1ni^3FuA7Obz``q;i6H zBcU$@law24He1jf6q6|`;O~9m>wQ1_+dge&5v9EkT!*Kb3|F3fcxVehQ9V!|QITiG zc)qS%u%@9G7%JSNKa_TAaP!)@Undb0J@&16te|Q9kbR}n%<`-W^3H9{u0Bk^jNxEr z_WN7ZNnmIpPM}w4JbJ2N_M$nA^|Ig<=6Z74W@q^fcDb~GuyGAd|9kLE$bC7~tZ5!4 zMb4!X6&QS1;5z_EwlBhycFP$&5TxYodxC;Nfy7sL85%Q~FI?!d|D-cR*W{B+d_Jhx zj$!*ZTh%A^=kgAp+=60)Y`VLAgV>+r=Sg6E$0qJ|mX}aNavd=K-o?e6*%z5-RSnG| zCADHUmQDCkSpszdgAmf~@3T@KANpUN;87V)@Kql%zCZ9coYw^xTCO(kpIZOEcYm&o z9F$#TTek5XQ0pu(^SNsK@_e-5FHh~ix_w$aAh?Lqw+@bW*EcxXUfRwsFBNdKY5*c9 z#emCZ6lBNCg>*vq6pt$upn+?(f3J#Q1wdnRIWF2@^=9d(vw${t; zPJSe~qAOhqV@E>w?Tu|~f$u0{7;};lv0_-<84%Zau}>$)N1y21v`H#^*S&1mYQ$?9 z(yD&nIH_TaaJMFg8!;Lm6>%}{BWF_%Rkn=_2@7kYSVrr!xVy7~bN{GBqu+t78`5F% zqTSVrQ$JC}g7u=un-}3SMx*_tg3s5bQ-QL4ypEE*lp2|EBt#*#Kwu)*YSER!z&p#f z*^|OL6)ja!(HVhJh%}Jf`1hG{5xMi7&^T8KtdpI#M7W5Q@0T-sZ`9f8S7+vrQ<_G} zN!r5a9eg?aP**f9TA&XmI^NvP$-Tn-^75W9^V!1!`voOM1aUJq-&2e{rJn@~g|8KO zXJQj9{ua)=O;$M)kj1w>C~-X{hT_Jfu+0MGHI1NJ|K@QS(5eh zYj7Ws&(G^_Xc>iMK4n|TP~+rUGrB$#0TxdVe##p}%G)zRiz>y6Gwhw1hW0JEwYNZ@ zXChMZ;|y;Fq3&@o>});@7=O&plU}Y4oDx@xkvpMfhbsJOr3~N4!r*Zh zIWGBz1eVUyZ=X35=eK#vzeA3nb246EI6Q+rftt%ZASOZy%I!@AdSGoa#PhmHgFj|Y<0rP&8c-I$G8w*XG3*8wJEk@r{Fk! z19<>v@Kse^W3PQ(R9h{s%41ZkZoH)CV7R*M(|&>ojDydS^7XA%W3qujvUA19=?2z@ z!?~|AZ;5?D@xF1%=XAext`eteoy|FThrMY(6kt>Eu#wwE`svgT_s&8UkHH%VrNRJv~-|1Cj!+NJcnx>nCozu=P+Dt&Md&fHs?KnYFN*`RgM?4MfWH;o38uBe>L5KMUn*! zC*IAF%niNf9OFW8=iQZ!~YcTdyll9ihLm=nEuS8GCs|64`X^hYUHwK zX=>zP7R+}USe2JkccUVoZD8sz4j|6@;LW%$Sb~nfld&kfjm|T;X^wd(7Lz*nuvmik z5_pBT7hu7UqnQS?~sc~F^sb=LHEml8LcYiuGAOvr#+Y;o8ktB<2w+Of-RH3|mypt$dG+~Y$Ie=bpyLxHoEjQ6ns*j2?^ zl3H!j@^9yiqFnzTW_gCS)EqDF<0&H%JEm8(07s;h6o_8pK%^)R`4~T{<6N6a%$+nE zo0*z)YkOBfJiFJr=?xt??_{~}a>vA&?I7UtfXJukmMAYaUce|)DSI4TpTx89uJp61 zI93)iy7#MeA}=dUcgBFGy(C*m^y4Pj7PQ}3r&{hW_Z(j|9dhhlh+W?Hi>Ao+$STeC z{FR!6tFYHgqN-yjo3Gf(XnSFJx8HIzp7P;x#)rs|N%Klw%OIK<17k6ztgAn=zRV^;kB`)GR>*@F5 zMSpw|!gN_OHKJzif|hJKNq#oou+n}B68xCrq1D{QBCPc-xR@=^Dc_=vpj;xMcNWjU zUcs~gJ+X?;c@O;0#?55N8!+;!;N>atIxcvte}sOk%+@XrEtSwYPANINFD83-;X7gf z>}d8|A8rJV>&jaY%fR}daFk%q*Vo;1fK0QH;MQF6zf2<{N4T&gT}iU}rN|ti6jx@D zjyu?d`N&g_-_zGMGKi0ZxGTOXBjFtTb~dw4)D6a5@z=vF2y(=KpqjAZw7b3)SMwA~ zxKNnAt2anfkIJtOw{sf|!9v@ZL@$_$Hs-L5TD83f?QhnppI0y~BX+Vt_c*Ggvl8QC zch{RT!eH7oYBe5UC`U#=;P3@xBwdnPBrC>e3vaY@i$`Mx7z_vwxs(~bZ<$hCQ*&bD zg&OoIxjZX5cr7EVUr7rc;g5w~!P{ep7YwR%cH6xcm zW;tcDhTY^21!`NQEtiR8yX;wy5r!3QyK;X`~{gZu6w#2#I>XLj}bJ zwXK`$O+8Blk%FBUe@Lf2dp`ZbU2g=+?bEqTz^mNQkVI;G$(&Ji5Dt{oJc8J~D=}R+ zIkV0iR~vic%44_Wt_?MS79Uz)mtu;F+6-kg?C``r=%ijna7d)w8s)y4;ilxyB! z-UEupy3AT#k06U`!M6I1sehD~XZbkmh_-694~-4)P0E_g zPuORdy9@eIAZ_&v*J3z?xv+ zm5EEH1JAP@PGnCcbny_LfEZdO`jo|eyfm?i_wE()zzmY_?d^jg(Be?+JV6QK(ePq` zsZ1Ui%u{e!wb_=9?aCSW9#qJ$a34A@H11g;>q>^Z)*K)7l5ML=Fx)MSf^wBHdbtcg zphnhDMhH8+XX>Zd64BM}Wb7TZhl1O`qrc19&K=)%%E5jyMdI>@vIZMnWN7I6#mov9 zhaG>g(T2g8*k?))8XZiiO)z!+H+^c5X)!BJv{O2P3B*vI`iNy3jTO_nOef=IhY)A$ zWc4a6>Ol(9ialXIKD??0c|GamSd-QMjjOGPj=oOTXh^iw#U@bS@p!J);|E&4>gsa2 zn0d0YMX4~zV!!M3WJ;BGH)8^Ox+iwOuh5{Fpz+gL)xQAyI6HoVdoC7#h{>4Jm&8}W zew{x2EP>ZLyATugFtiUq%3{VK^_~#6jXC`Gc)nWa3gKE4FWLdrD!6{n=?a;pDdET; zQ}Ge7Ckpp&IN>-X0$|SlfM|x%D-e;=d*g#qr!amv85Vio6#U78E3-DzodF^adnG=d zMkzn|)!TPiIimb0KVHj$#dt>ZqAAa}uw1YoM4$n#eA;+T!uN-5RY#`uTN~*CtBMSQO)& zxj(a`#dO4lvI9PSz4xk;^64gx?fcB#Y-LP8-a9?379UjKiJX1phg`#j+@~tBP z5B1W!@vI-D<~Zpt(;~8AP=dv`c^clscKE2^Rcpd6*HfhCb8-&|jyASq6#c!UXevtJ z!SH%v4~&Th`KB{rer-J5`=`bdXS_L5p#4fl`JB(FV^e`A7)Oq;#TITP!CZqcPx!JP z>+)IbC}QmtN?-#st(64wfX{)Db*;u7iIf`YKARajUZ;0U-i&RK)mb%EMLN$ph7ua; z;Iz^+;cSL1dbb?v)xWRz#X9z#c#(qM+@_3M|MoLPMJC}2V_ zrA+Cvl*wZ>{MD_ecj+HPot(1XsS@H~t$LdgrfhY)rC$kqj2WpVv4^;zGf@60otrU0 zC0ez5YbKTTsIG6ow7^Rcz5DO+h3-%P4h4CsG2yM;)Jc{v&t!Ul#?!~W0?}OK68%wk zTLQ3S=(L)Gva+zia;}7g1S_`O{a2>MyR8sv#ivApA{k`gp`@uW_Ntv~ibmek)9|4W z-6biMuN{yK7^zrVyaYj5OhsXpjvnV3;nC`gBql` z5F%fwK#&Yl*yf)Thz!TJ4-I-HTH~syoGTh|qAzIj|7FXL0IysOSv2mo zTtLCZq$EBPiz6-Hj3j~#xKSXRqsuQubkst0+>s@grH>+&vY@-CHR%4k2cxE8z=u>h z8M0_SXv>TU{GfFOeHnv&az5%&`Kmd%}OWU9U}ye_JFUW(G-R} zhE7=mXj@0e-rin7Vq#)g9B?51=Z+!7~u zL^9_ogvbpYp97VuEiOJJHmTxj?wd*q4gG%&oJ|NP-^6MpIA;Y|^A()X{I}t+FI1IM zdEZhCSy;DDyv)gv-n`+#L9EW=2sQz~p}uAvDOp)k$9H+B<`_{?u)LJq&Iq*z9VTtk zqzGsGxpzf4MyNtdf)MKf)3&%Y~U#kmwBG=!Y1ssoOo@55bMQFqgm5nvCtCBXZP0&)LP6xppcZ?#-~Ij8vB;RLgejI!F|%+V}O(SV{6XZ}FOy;5i-k{Rxsso`9-6fQ`C zhl4R~aZ6w$xuGNJ@J#Q)#crw`wa8VK^Gp)CJea6fQ=k(oUk1`x6Ga!(N4fROAGEXU(k{L=qh@6j|f8pFt*U z+ZndmpA(qgeO#r-4a|f6TKQXBpBp!*C^VL%8W6hir)$2{d3h3L_VPXacgaWNN;u6y;w-awOEz{H7VU3eK?(O zH@Q;_`thce+MVs%$;`A)7FUJ4)$*%K8wc=&yksv;Vf`St!R?7@CDUW^xg<-AY}wd) zyIFAQg5?gg{OE4FN|76Ws>8@1qYt>=EGC6^ zK3|8nG3uJ4k8tQR>HQgS_MZ38 zYK|O?zb{TPZTLOYxiC@OFLG3tH3gW`ntf_)Cth#n@|5byN%iR-RdGd)0(J%eLQC_# zJ6~td-;{6k_VnmU7tewVifths`F|oKbU%Cx1yY8VzsBUJFL1ZJB7mfW06YqtLB3i1 z%3ndj+jSlaWGH~H)Khoa67M=33-riOj!X24jM3y5u;7_?XN!&}%n_5??ta60{1kFC zBT&-JA6@#P@}(lB93~K?nOI%&GM-jck6xfHLzOlxIM^-or}bmW?F1#1F^V9wFs8RxX^hT`A1&5rY5*SM0 zl|gqF7291nGsm7N`{oATXf0ZVtHTH{*p+-@kz&=AG4``ie19Kn0?vJNY(;4EbjzKS zL+?=H?Gtta9mQ&$y#N8He?^E7i*wg}C`cW#^_>(wGycO7MytCqBy0r4R4$e#GyEY5 zRW&=5sl^}REw(F#ah)k9s{#>gq$gdrWPqnmMFbZTf#lC*cupaJxX6Vk69Ltzak0_j zgIqQ~@nn59bY(WN?R6;LB|2(%jfY$@we)R)dkCo<9;(q_}OaiddY*?*O8p+ znVk!cC&jZaPexc-&W6Xlt0v1lC0j;4PUULbi4F4j?^Em(S%@iVebh+y*o8m{2WL2O z-*AI1chpDEQQ9qoak=Ns{vCWI7kHT7{?j=P&a6(w#Sq>7>9E-@Nrg3qWUT^9I~0Q7 zue{Uz&#Vf3pUCIW7>ZuR;r87IV=d8@FVE`)jaL5r9c#iV6Q2mv{9m*TT{pbWOJs$u zx>Qp6!4Gf(H&dnKg?=DuR)Y%5XCq@SNiEIB?gz!$@x`Sk?z zxBBwi2s}PUk3FtV(|KR+Xy>5M*YN+c28VR-*OaQ90^BUn8to>rlY9XM?mt7SE+ajT zCyzakPKP~ryJ{sFmcFyglhW;NV&opR18p4YhqukV)qiNZ*uLDtY`vZ6@cVtR9oh4T zoo*a*2?6I9X;Kwre#`HH+0H92gsCLAHk1#TV|9S75jeS*6y@Aqcd6NpZ{fnCmT=v(bCC z)t2^ZqUY-#d*A!L?xZs}|6H--jg7P|l_y;`gj8xF)wIrOkRWSf(&V{CbWUCk2^&jH z&zu+vxPZky8ZOYfhiv<@+wyxbe-nG#IoXqP`^$TDRk44|Va~Ll0`+il5Rh1jBb}TO zuX4Tn7EZ!=ZSaTP*?maV(}B^%(7f>@)~==sV(a@ zM(=jTA7rD6@O>lu2I_9_Bt(srfT6GPnG%4Dx=QVDTrq0$`de(lEqi1^DLx5rRW6?{ zYd4TsX-v?l%2dP$n@>EJcwq2b9OFVto!{>DN@wihP_GiDDYGgzhHApEkIvTJ88gzZ z0KLrncny8tI7+^b;K6n2bf+)W3U}Kga%0xQLf_p8*x1IpbSW9#(YZ-1%OvrLNGGk2 zackM#t}tjf3C9?R4pQF=OY7XVDfg8La0e$~$`0}HP|c#V$LC;bdZRUmm{$5iMn;S6 z%BnHt{-0f!-`}&OwlfEIQP9dR4^4AutpM07@tiMi7I$>+4%@!Zj{9vy9@dtSFi?tI zNZ7l>y=XEkbv!>3ZNTuI=sMj?5V@?OyFk%KlHgw?T>3Ya;M_nfyZv)h_5CuNy+)ox( z_j{4G^_;haWD@fEKjPXEHyOYM4z&tH2_f1I5rrJ1jp3wCIiL}%bR}9DPEXt0tgMcj7qKzRO4ur^5xG4 zIef7MQc|e630!GSneu1CtDa;1t4?p^j;3f^0rlCHW9b(iNkVrh)0gH}hil+iOlQxB z+2W%1_EzGcKyWwkl;*_uzvWx|VbLgMHwR9Ceo%Mff!{3fnK)WuR)ZC;Ms?kOU$a#w zO$QGh5^A=-duBRM{)#idobpu>-=En#1gPMbRnyS%HLBwtm;P`Rm1_&f+?Lr+s_u`w zNP~5yBzbe_2UWOzK~Zp+7Uf8xi!M~Rx9fcTIw)|OOpsGps>clofgKw62r%eQ8+055 z;eT^tzvgFyGl0NG{)2wuM$<6{9dWOakdiVqi}LD%#UIVY^o^3o5H4(@H#qL*KT$H5 zs6icvBEm<5aMOIlb|Si*ZExON>3q3~Xy8$r4)-qhYBr^O-N8WCP`}Ykwh!044t`HL zLyYG1dWh!ffrMldPIkYD(nzm$Sz$>@z{CUV+}s?c^U0WRYmBg7%EX1%S249Iw1LkD z9)kiwWTLJ$XZHjegM#}31{%-5MR<&CzN3v_cQDv{zO|1yr78f-?MgPa&H*K6V))Wd_*$SB*v4p3M=z(5Jcu{;&@(!omKsFIZO zN8&3dn(R&f^L{}u$cqz%IZIddAQjcHWepozA5APxm01_pR25Hax|855%ygp~e0n$5d`G5mdxH60cM1EDW4;8t-wo{BZ- z@gyd5Ey^W@^?17D#n{&On2q>Wf*kXDJ)hHUz zpEGJ-QmWwxxnBlIC<LPMYSzf=L#sp%Jm?bqa$ptg;b}nV*2k>ywsQ7;RrCibNha7L4DQ_cY zSQsmL&f2Ro#9YglELirdx+ZLrk&J@_Wx+G2m`mXH=%5NwRiaVe^TCWMnvg+iXrh8h;9G)FG) z@}J=6blRZO7ku?H;b5E87DBI*$lb4rYnOr2T)|8y9=Y^-BKE;sUVhPpYZ1k2NZDsa_1MeA}YUy$3z#pooiWLP>sB ztjXkzI=PBpD55uW^nvz9-j`xvo%I#8AA7E~_=rJeW^pcCL^piI85j`C9@%JyQz;dK z1R?{H?3pVgS>8NiDU6_^U{)NC=Q^L{2zO!I*C)MQl>!cW4LC8lQzZ$u9U9UGQ+Ve|`xdbb+Otrx)TRuyX{L8a~5xU1Z$ATjRyDC1?JJ_%|Z- zdw~;66#N~)UmCv7tD()!UdK6VS#xblnc5_QggX_Lnv+%^x-_)76WVw)8172+;^4SV zxKMYRQ!blzF%p~>Op<0J>IL9N=}67hkh0sY2}e8I12Ub^x~C@9$cX8`25rshsMb*& z&RyAC0vFy^hf?0 z>`QJX{<-Dmxa#2rrbYtxt~*PQ$YDye4r7W-Mw8g73arJhCBO zYx?-`!uRD_&F-5wemqd3ixT z*$-3G5mG9K51#vmpuy&fF7dq!k7+5%SlM&$bZ)B1Jps?oj3~hw1Q3mKv1(^NCKJJ^ zDM;>4Ot^r+hOF)jH)z%@35}L>CBLvV4h8GfUs5eh;cWHw@AQDwFeVp$xxY{+NoMo< z?elvoYh5gXaVfblwR87yEl#RlCpsxPX{O;@knEwbVjTiCY1I(7v~)%NXtKxakDUsu z*M%g;bL*LPyjx3Ne94oFG0IvN!bB>EdxSoqG?ctR>tzb#^($X#RyYH&k+()J5&^1n>8a-ANPqRU|uUW&B(pa@2@o`zy+ZW**Qz zx>~zAA}tM*6&o%lCdQIAx6WA)5qPchCys|g;)cG3MHlsQ zBX=~=O>+*OA4IQMqvOiH+yP=y3WXFrJle|2I|S7$(SR^uU|^cWzZODAO@+%gqbUIrh%ZmTw0BAGCLw2s(1WY}yclU@^h_zkp!?VV2x` zG$e3l0M6zA!PJ~$gp-4m3>17nPGd)nZ93y;0!$n8=9?i|0+FEVv}7@9FJoz)>VXHv zZv3e6)`5ubNY!@Gc7Y=|aLT2n`aes8$&ma(mfzjo_>qed@*1(tlO&_2tcIzA4IEXq zwY8<)m-qbuvF#)ROYfgUk4NmUV4aJ=u$&w(z5d&2`9A9fw%pP!OY2S{(9w`7(mP@d z`MxRvyqd?yN6czu^FsW>=EooPnU9z_wFb`o!rO7NR^+QpXV|gJPUgqz+l9kRQ_U$= z;p};+VHAMZkA-RJ$FnV5<3OTguoo6TZt=?_AiYiJgA*)48UNQBlwHJxOv%8XR5g} z&l8${)?DV&<^k=&<@#vfAPkqXl^9t%Q>Xa-itjUXo4;nJ-4`$LYe)vYyxgvW0t-wG z41`X~M2D|p6f~M+mjQn9K3|F(Y|sle`Wqhia7FZ=xYwBi$MsA`Aet48FAqK2Gv`+t zr{*iY|BtP=42mOayLOWhAb4l;jf<1J)rwC}O!-U=yYl4d8hDN_ZvEyVgb zf;2{IRe~liW=#%5NP)4IKl2ADN7|PV7hJ@@@=r5PJGZM|`zEb(!%F)wGRaknX5l?z>Vi9BkOEgzd6I1nIfPrLi%5UNxdW zdXTO06KV$QJyVaEwU+Nj3$q?mzo}tBJ|{QjgB6>f(zqv z#>DqZ=sm%|1X+ys>44${F#P#mU>23{2G4u)POI$+8MDB-i?>H zDgV`>(UP2Hubc{cy|wC%rOMZDYN;r7-4X|iNS7CqJ(mu@*|C!1clrn~&b|{9j=A^} ztVbySa?KxG>uD%)oHp);kT^J-tDH32vEKgfnG*Xmz2BSewE`TC4cab4xfc{y@<6xg zaPOP;Xkz0SJYad_J8RL!k`g;i0~`tnMF!xZFl1gO#?dBQTwES6l`)!7s#Ic7I25JT zbS(6H$XjlRPBdmtf%;VSB?AC=k;E?#^QM=U@}?ogbD^~!e+`#_8Z?)-RA?}U446b? zNJRUJLi2FXUDbvQ8EY52sp2yw5?IegVoO=wLU+9)6tzh`UVBfcpQ#bW$^;gu49``+ zueqK2PAiMck+zYD#%R)?KI=!=-`A4o-40NZsF$3+w{Fk&O^;Qy(kp6wTu}bXK?S4@ zs+P^yhx#J|lgfcNgT3l`w5krY2`PEChUen)+G)h`*d(IWE4jYZ>#;`dkD&@#Wr>cZ zubRt=%EU`!4%5Yv1o4)h4#5i4qH<%w&WF+DnKAW-$E5O_5jUBKP9pDWX;j!2F}a*g zlCIZF(0K&uuX(`}^zkX}WqX5!(`_>ZQQOiA;!hzx)2TC-aeHTD7B+Oidv`3N^YFcS z2; zc}$m1)XClZ>*F$`qR2Ht=J&R%=PnGF4=uUe*!0}?3q5k%!D7G%T*T@Ycyq&SCE^Ba zFQ+vu^m}U_e#oRo#6`42WI^M)(f;o*>LrP~X)8irB9B)43WGY_+&IW{Q4sHSx?JffwjLtoVA5yH}8dN%@!;mCzl}=L(*bTb%=TRhz%0c{M43LfKkg8Ib&YuGJS6~ z5oPK6Bu|->s|B3@G&(`dy7LRqVQ}PIR55(P43++^?BVUPtB96|kqGq2Ey4(gwX0DB zR<2)Orl^zT5iPq=WK05~$*}JV@L32>j|yu?vl5h8)q)s z-xy*~uP_^nbez*BjPAn}{IkP=>F>A*d`_}-4hJzRTH1J1Gc(efrq>s%7J9hl9BXU+ z3)%^5<1qjDU|~iP1QrbFyEC1YdJFRv2S1z~bafA8Xe1*URp*$tmYAWENnPRWb_(BI z{FTLe3rt9s{`$c4PBgaWM=;@LIR4M+n0C%!i(5c_)9=kIjdn@lhT;u!R!p)< zj(=8dHD|OGGPruHvT;6y)%Bf-n?AH#P^uo_q|zwu7{@BB4o|JMh=_~ppL@fb!r3jx z*G9HdaXWS@xWs63Hq=g{!}6mWCxlPUcayyO&JIPV&;2d2wjd9NvR$% z)N{?CWK>C$m2x>#-nY`1+yyR}r0)f$D&mQJ^`SocpHIc#W{dn7M%49ho5f{s|vx(Sn!*RZs7U|lp-y*}nD z{!|Y3UkS*H8~M5Qb3e=JYM6FSmB)))(1>9^K^DB6ti17t3Bf<%oo?sV5Mpe@W~hw0*&BT8yKekXp8NH@PUH>OfF^0MDU-`c_Ce0ga|RCQw6 zo?Oe-6Kd)W;WkZ*ud4N`+n%OHDMn6ap|L1<=k~bhm?_~6S-D?yZnJaDzJB_1>HKN&w~W4q$j&FYE=JJDRwg?IYsrZs!@3~OiVkHQ#L~uj^Sz4 z$Me!9^Tl|vtNA|nmo=2DI{ey-$g-+eXAf?u9BdNi0q{QK@$uY&CmJj_`8V zD~WkH_!q)KNW{f1bj8IfAt#&t=C{jK6pGRXJLh{b6sH0kHd61U^N#TVUw?~^vSiW3 zkxLrfo`8Yv#qHwZIH_KEe37Lg2nAd*mD|gfmz21TO1WuN-g^%oEhjW{vT1ox&2MAa z-+@k-D_$GAUE`=a<>a1c16;S;3nVA20zh%eVRBO(TD?d;CUF4&1jukWty z1h6}icv1&0#Zco1z%JLP1uE67-l*(?NfT2B3cxb0@dj{(G(F_CF;N{mr)uDwBoBtm zY1KuR)Bf<(5~8{~L;RI1iJqBkprYqR!t^54V33cJ_a~$H9FOudSX#wcLXK1^HT@#1 z;c|Qw_Yh}u>8OP}2WqoO+IYcRBSZ>M&#Mg6BgaS0LcjvKB?23Z!xK%bI01>CeG3A5 zGb;9%R4{Vnpls{qgM_OCLeJ&!pt!aiS!Lh=T;3c~+ZJ%&p6(rL*9SS0?ScVRFMMUBZNh-H0 zlaDKK!^K-5Ya@hrw@22HI(llO8J!!x5X5Hr#rm^1szzK+b*yjRE@&GcPgN(h!2XdS z>k*}u)l?N0(DX*|EsBvxk59`f-ev=<($%QtdW;GF>>*h~rhl`~#h+dZNn!vjcEM(EAkn?XLNEoMe_e&5}9 zxf&{PK2L?*F;g%7pVF)-)cJg*ao5I?G{Ix`xR}1%axg^ zJmRM1Na-w{$)_DcXnLe2gr%s-7=gKEENE^osGvkXmG5%5a8`wHSu34cTz8Ay@L!yCC!Tg^1EhDx z618`R3bel!e-B1qiPTT{152(~-Vz#^FAY@9-BZl$7em5vLFENa0t=g&3Q7V4-zh3=}x*OPJIW2=tL61U$;ua{m+>XSy+02eaa z6|5WEud~FHxv^mR&2kM&4hi$`BV2VZri%!SfCUR8U%Ito(js9;n%CGd0 zRW+7oYVCv`4Y~fiCE}^pP=}URe8c*CNbRazG1bvHGs@)dP|fqNx9hR{(e!8Lb6ziA zB1>8&jz?z4BNN0i4?vxF^Yx1*+nINrX0CxbUnArt|4G)<)d$hk6hJ%DZa6OuguA?d ziC3(fMOW4{v1v@$u~m+nl~*aUkXprAWHhPUJn^pK_kN-AU?Z)Gz(4lf4Y%^tce~OR zqc&yOOU!|edY&O=g5P(%t4p!RlU(VW@=bl*3|DpmuSJTC(PcMh z|MULNx0dsG>BpZEn(X$k`UWCVcJn{}JVPC8ZDY)M9kT*iwI%xejZLJ) z=5I!IYLnw$$Ain6#@={(pQHdWj%l_69eg7d z#?aCDPOz`EF%v2C()0GiJzQq?u_FS~22=CaBYmtclcGKo$YA}%k(MJAMHv%;Db@ca zZujN*b%L>9Vyo%7yuYZZ`MA}fvALLnmZn$7;`K;{3A>0%q>*D~k>eZ}(L?}ih7&8c z>$4-Xt1q(X(VyfYI3iKD&;7QqekF(4bN;%q=LHRF%?qk`#Z^=Gx8?_fBO`&O zSAJfRxU>GesUD$=ud?xKNQa$(lI$V=pORA&|6PRF?J}07xC9emATf*0f&JXQF6s=_ z-mA_`wz*VIx&KIke=y%cn4rHRLT_<&z4rIJ9d97~7W|ib+iw+V!)d3jw=eRoOvlD| zCt^D#R{J)&JLVOsoUH!CNF5B&H+uoP^XOve5g!Q}**T}jIWMTwV#a;TcdL>kuRApb zC^%I4O(dLVF*Pna81}<%V@_|}(dPuQU#>1O4VuHYBTBNPI87Lo6?0fpCKC*+EKe~) z91!qj=A!}=@E7NWkv@E{X(94`# zVR1!)mb%0$h_J@JBJH=laF(p;m#{B;op)?Z;D(n_i znF^q&=|6`f%#B;J?IgyitA^%IPx6w*td6Y|Dzk&Zr`}`50|srMDk=cv&Tv#EQ}AjX z&(ib3(iMuGWz-`F^qms#faS^*50qq`6$$J&NXowYlhhxj?#?OU{d z-|cK-noi#x#DgQ;K%F6v&|dH4ZzN=eH)z7~H4z&_{9A{)6Rlg?bIV!V5dry2PW2|q z2e^a97E9vx9LueK*=UjQ>-dyX$Fxs+SOmZI9-BW87mJIkHNm)4h~B^`R602^wF?+o zA76YqG2*_xD@+dcRok(!nO~RtEMgl6s>I)u5-`kph;1AtQq5P74G$a z97gt-t0fGrf}tNAAj~YfGB0@=p)9VK33Y#3cUuf6;eSI-NZ|_yEj3s+qdf>VbKg${N!M zip^M9@4KN?-r6taKRgKNC{CG!!>lH4OR@BD1#jW>PHuTzTweXktO8)}yDY@Bp~YZ* znO*bUM8Of&hTqV2DPN%O5rx-2LeW*OoQlNw@n>~vD2r*;rFRKHZMwAZ!npu-DF9c%47Ui#XQ%q?6^QKJF`f1ujt z;jX#eXPe&B1KBI-pK3rJ&CpwO4&U^j90%5tdSW0$m*jQG>ZP61+M1d4tg##(9|s|F zQahx<4|e5lLmTlxcF#fI2SOgiJW=3m2OZ}51_2zljU-LC9Ct^?T^uSK7? z2>Xm`h!RJlNBY{9WL0kzchU;KyY_zZSshQ4&nsq2rE)+ceqtTfHz}sqyC44Sc(O6J z7jDzr*N5D|o48rdXn(dEo{{0&{{EXs-HG7u$lSfnej^qhT0th*0Ua_6|nDQ2`abFaox95ySb;CgV3_(Gu}!VdAwTZ5$;$?%f;(czM5zTZM;;>|bCXyss? z{6ono46uktv&A;Dz=l-A?s@9XmK}~JfdL>)xgv9?4D2p3(Q(SSbm+;38sk)+1)Z{r zO$GntkH9r6Qu-iNeV12lw_%CGYGo1xq3$HNh1T`wfI-hq$XW+1mr$-E-1N?n;cSBQ z5eJU_cW^KH$#(2P~~U^y|6usx8%%a~32DLNq`ATyIt zEDt4K%pZ8SZ(eS8+35~f8+WW2PY6HP3jkdku_Cr2k;IGNPU}@4z196RPx>Hi4gXqDkZ?g56K{waRgjw)S zDa${X;2LlVq~54u72k8bT(bajHjDc^>UaCk`y*&D%1{7^47d_-cJ0>9i~NcMW#s7p zC7lD<3+~|FL?->3`!%gfDeEX1DhrDuKsp3Xzd=?58`RS~NAXg?b$D062!(9YpqqBx zswNXf!3Y(s#c1mOpBGQqn$?n=>-LAEFaB?1VY}C?a@kyk79&iE+uPe4zqw{3k4#jq z1@oUwktvp|&M!=~UHxslGx=AN29{{dxZ0j-yZd7wW^s8212RA-kC_6&V*emxv1iP} z-_z{KHjsRcX^W?h229B!Eq)^@B%=GH|DU%OuXi+CbPlkanDKJK5_AIwOaO2E{reuI zDU|{Y!2VhO;-LQmy!15lmfXnTU}GWC-0shwAj+|v{J~#*|6?e8-uhIhy+Qil7%}i~ zUu6rMOP30{T$1F`o9n6n_p?i-$d^iglA1`uI&tJ=O-1nKiwq5Ab`&QqX@B;6ECI!S zC6spGMwFU2JwQPYYED-jQ;#vnxWRyl-(FpD_~G#QoP2$%9LFYvjD9e0nl7n5IBnHV zJaZ=ftCHM{)r6!3IaYF=t)?}Cwq`>w6>X$abl*OSn%z?DN-+lx3 zU2}ZiV{)R~K98f?PtYs2_P?B922^R!ikL+li={|_Jo%1lMxKu~#>&kPE%j?h@IWbM z%L9+1g=malpUlu(oPb|sO1}WJk@Y)%EaQ3Rh~2q+U$Cvmf9PSZ`sjD}nm^yu^G=5m z3k=_x1q>0X6DRif*^enKu4k@eF|OV~9hLNLSkIYf)nqo`w}jtbj}dPWyjW>oX9iFK zY>@P6T&u~v-*g)_#yYqy0{Xm(Ah1@@y~>1Sq3>ck%Dq{RvCDpx({@t(WDORy

uJWKfKXsQWu1ic4U4&T1^RVO1(C`P8pf*l2E<5 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

fHpZjm( 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 z za?Z^<+VnRfX69(fa#4DoAI^0tzewNn4ojZKuq5@;D!IN=S-cz7NN~?rXjKtcN1|1l z9FDej^kvcv;o&(al3g_mO%9@*h zFk!9Je>A_;=JLW~qlaw2!#@ONtYA2O&stD0a@e2YGc+;^-}DQ>>cW)v`6eDytf-MX znD+*=uWDXPq^OrD_Sy~D*&mb@3hX+b5M}(kBI&z*v(-P5u$DpXhDSyHory~@$F{O0 zbs>b>#hzojaz}%NGpD-dz`&Nawx;ot-#2K??CGA%uhGAWP<`BTXGhv(gZ2VT;|;Xy zOz;xZP;YTXx`PA{rW7BcU1q5gHCbYui?jrrSw?f>=-zoTL}s34VbiD_nI@~LPfUQi zPXLzAdBheAXa}|Y?+hNQnw3BEm?GaCynw-wRye$n$$k-Mx}g~3lswx)UceAdKmcY1 zA9_^nzj}gWBh;Ho|K`=m80k2(E^oPlXUj#y_qcKajpDenOiac~{F6!+Di$(1(t$k; zhV{mM#54$_g_s2FazG#d0yvJy}Azfw+K7H1d zbnMM**fdSnPcE3MzUxtsOC3NH6?R?Yv45O$ zDBx0rLX;18HaN%P7PSy_8L>FNVn*rpT-`pn0U?kOwmCD%T5a)iypZ25wM0$ZKKZPE zi_T$T@)YqyVdD0bYe$P=_To$~`9Flcb9mfQ`|g`GP13lr(Z;rI+ji2}R@2y+n2l|_ z;e-=gjcxl(-`~5>Kl_}$uWRO-`D?JgSZm$S=eh49)e9#%u)A{`qHjA=5x|t(%iK*0 zhnlvG%)x%RvQsHtwtfuxc&X0iCIjK~C8e_qR z+uw+k8CHcW2WKK5#lR9c-PgRiF#daFPpvpax!}ckbGvjj2{|~9Kt_83wcL%|_Ia1k zKW5S)joKA zC7QCvwT@cKtv20l+PPF}>hv0cBjovb;+m~GMha<3_={anv-2)g%R zk^MOyxHW4pnu6Bb-G6neSYdV>jJh-;T&*1yu;qfF z0g`>Q2DvJR7s)WX&mb;;E*vvBvpeXOE8`YZ(Z-O-O&x(Ai2D^LM?Q zP?@@EB8DrjBT^iwJ^dRL%xp~yC#*ZA$=x|n-$RbvcNmAr|JENSYzei&oR#Cv;_^6Z z@@lR@aVxDYD7?^@$D~W#O@fWM^OX;rK7er%(DBRHEh@d;I+l<}bU4Y!^Y+Nn^Xf|S z@TeTTkY;gSueRLksJWV(RlFKEWrcHYwwz-3xcqa=j7Y$e(w(DjD?Q5ZkfBZQJ&xtG zmQA>V7|AGUe)6-gP;^n@VaNg=|2d{Lg4@Gj>2t^gFXt$E|aILm-Udfy`YWet14P&HI7&+SG;3JB^oEVQ&3d_|I*vUCxaJH^zt0hqy70} z!Q|y|g?ixT&Dy7yJ`gf*6mFNaYxjp?T2s@hc6)qDj&CAmu5VZsYy-3GUxKMP{677s z=eLkjpN)a3zbU{!GU`MASOGo1KmZFCzTvX1R@!W3_8eO0Ho|)ubiA1EJaS|u_4ono z-0EJtQ@?0r-iNei*+iy8xz^UUf*-3j;$;H{MZXOy`c<+=BJZwTb6JAk{hO;&JK)n1 z$qOaPTu4yt+fRh6Pi%nsitl52zc_-T^!Cg+kfSqrAZIuBUc233QCHpLT{|Ha zBQlew<~2;wr{F9@0(VRAIy){Y-A@&ZOFQBH%$YMdymF-t6?Cp4V+ogrJ8F7HGl_lW zW$dZdG2H@K(58|{x)w3s!Bs&z{byEUz7G;%26_vgM;50c&sh4mpQ#4ALar&0ZEZPo z(Y7KlC__NV_>o#CXHok~qaq7l5LYwz{mo6L~vUrj0a%hlDhLNb>RicvT=~ zwhmIPJr@ne@Z@ZmDvR|}%b6yY?+d;UdaSCBa*#j|0sYUlR0e%fM_Wt%2I2mZq_-?S zypb>j1M^;9VnC9QF4Q_wNigSJ?mZzvfGA(MDsx5CD(ZWxC zAQT1Ba*hY2=B6^3AI*fU@vv0pQON8K#M?Z7OV>~5Fn?SYDK;Z}ar}JIb%~onw8;8! ze}(iAkd7FXhZj_rcWKd7KAo1t#k>5iA#GSuZ?c2fH&DQrXL6z&Ijs1&T9CYdSzFx7 z_#2PQi6k&lSTR|lZ+W^e$9&USjBp_MJrKtgrWSAd_*O~*W#D~j7{p&^&cdt5<7T{z!0LN9t3s5$ z0?|J0^3*2fxjZm=W_w5juH}U8=g4vZ_NLjj)|NTLotk z(@ox@*WD9k8b>8<{XS!3@5V+-GfF%JxU#E|qmRRM#6gt)LKVmVj)9Q++9&IQIH&*# zPw7LjqN@y^x*h`x`#^(`uon;n85y(Mx2LaLqW&_8tPeYrY0QnZ&bTC+e@`4FmEEym z0GLdwSzs5$Ai-v&GsxAvZ#PR;YtJ$Eo<=_|M$!Vots-y4xAn3_LjZl+jZ z6N!c;k-HedTQ5(W*iuZZmw9)75{ zCYAcqOWW4=4@KU|KQ+!WJSZK3UN^+x&<07RBy|x-Pexltp35FCY`zonvE>JKHSD6R zF-pV4EwnxojYA!Ji^cIz%kH*E?qPF<`uI|Vtv&Dlby)fj~h;sg=y96tAO{Xt}dboygF zcJH9{neiaob%2=Zb+fGT1?X0iNW#sRbc~a@u)I6R+l?7@)4%Uo)Y(3h8JV|;@ZC6& zU>RRnA|m58$7!Rt)4ThdRT9hQTBKResnKEMn{;2>%>xF;}Fbk%*E|J>akcM-Gf%C88f0TZ^z zQNn}0)?b&+e7RgG`=FT0bJ2HPW*Zf_qV(jmG1y#u0xnjXsaQdwAq_AKNrPE<8`=R{bbpN zDH)PeV5o6RAMTXlYXW^<`!wAskTlGjn+hr}^?S zS1?ksVX0&kf@ExvCUz*wabH5XIGt`+HX&*P0bhc2`iLAjGccZ3|8TyCQ61LbcyFi+ z1BV}XiWVZyUNoJl7Q6bHV4+fLqW2T&8_aFrbOF9;Xc!m`i(Bilym?q|>&WNDn!M0O zt3x;+Jd9Y}R>lTS(k?dG=_2k)7>3542CAq^7VwN_%kGxre?lK{@Q$OnYMC?qMqtC&aD~OhKBJDbeRfAE zaXBEmby~cBQyg1H_XuWKoY>Ei-ddspZ2(Vb;Hi>7;qsGw!G!PReHbbt3p5v`w>&u) z`vsibo=!J)Y_anLEw?_qOgus+iQDZi&Yvvd)ddBONK#KUPuct=wn&E(uvehkWr;p! zfuCcMKspS|R*5B()}q4#yQXzqq@#`}?Pdutdwqf8?Pxi2LE3+Y2dUxUvN%(nH^U1l z?r)K8BNLPGI7{|(*HXs9hcSiTBIX(9GR2*8Rv1I>J1b?WZ=$tEWO~P!xm-&gvkhIy>43;M#Db)Vk}Rv|XzU%ASVhN>B;z zFeCxR!msgl*4b1-+H`DciuzkHTaQdme)|plA;N!_KyCZwoEPHA?6a(9<&IJ))B_)9 z?p9vTFzVu3cHq7|7sMCawYfH z<=~tWFKKr5dawnItZK1d+_FipElb{_&DF!h#Z>ki1E+N23O^3`dp|V3Z=&(QJ24<^ z6L6(U0isByXS_^v{##a9-=$8Qz@oEYg$Y6q2nYcGkiz0rPz1W>*I?R+d24YBKt!i( zYrb@%Yp+OxqubXfZJU3^jerz|R6Mo+0KfM?A)%D1lZSVm5n=ejF!A<4rk{QZ?pbF7TU+2F2^|&!Pc{}fU!<~FhQsfHdW=&NjSy2@ZCs$<`s@&G zKhBQVf!#s6K5Z(4Of3?DadCQXkFvq+YB6caqokupw!#a`?wd`|TP$J)qjBK*>wICt zxHlq}*G}dh`>DY#MV*SEgxj5MN9n%<*C?y+nz$M8lHiubsZT8lrKN~`K5jtZKcYw@+vIJV zSi8#p}X#1w)8l1HQ}5Xp4U@2@jOdzytomsgbLypzwe#F{c>zV^Ruim!17~P zp1$I`>qrQ@=z+^jQul2;XR;8=^!YiNDn4tveKwx86lEvdO@8dkj%HLkOlC4j$;V|$ zbOMOPlZ~?3z5_&yZERL)ak}AV8yWkW%}7y~GzBk9ItChnFT5 zvpzl`dUT#vi^X?lF6baHdOrYP8}kwWd)0yM-_1=*VQu4|}sz;lMhY z^=IW#ZahY@lI`wpZgEkyhS>;=3PZ~K@$c;wm9nqwBhH%4anNbj^sZg&92=c}ddZ_% z?+?6{$?z{$*Bu89&px`HNQ|{En6R)FOY`&0E{ieaBc)ZM!RYt%b@i@s=_~5nv3m_B zm!7y;D#DEXl9;Wn6kf~wxA{YeFUxA%e_m}fmlG86K|DA=flYA#OJ(j&3Ph$b!sdvk z7WJO7d{m==T|~uoLF`%{jTk1@_AX87UWanB^)D$!q*NsS6%+)Ad>))nlL`OuzQ)#l z_f{?Kc8{9)Wv33ei#t0ly!mQ_QhVYD-WV!`7X1%4%L|vp`8B@IG~;c?8=^H-xcP(7_%O}iY{KIAo1Ar-~`;= zay?(j%ydYPeZEDdxsxC>#! zBb1>~p|LmS?bq*R%$z^l5{rZQjAfn|D_0+%*$OZ|00IxTKx;p6pKfx zl+)^iP&R!74{`!RONav^?4+NPvSKZ#QBIaRT+lCi-l#hOH`8-iwa1w#p7$XKo==0= zTJ?Kh@l=7G@Tb|oa90)q>&#)9P(}IZ%mlN~EP1&op+kFQceo3TPidODo}mZ1Ucaz6 zUJ?t}tZNUsYmarY=pNI=bGwIbCVT#jIlK=a9qT9zRqg=Ib-8PgBn3Pjm?>rPtq~Do zC9d~?7uVxEE}mXnj2Lr~Kn(D71g2&#QKFK89#(G- zc0hWVb`_yiDCvl(Gda8ay;C) zG;YW_zcWwK(a)Z*M(_g_Sb=wLvv7^x`EtE_I#C8yX(m?lw~908VEG_-FQ&!7bOXTn z)up|C0{aWLc<~?5Ae4`Kzp$E?oKzw_9gMR=*1!h+R}XyhVYNs1^FTFyv1H}YiV9Y6 za8$f;lgtuLl9oA(8At5e<#)MiHNPK^t5Czz5V|Zr9)!~yrhoz)eCCQ?p zYMpe5@pt|_DEDJ97gjxnamf1dXF~^PeWC~(3@gV*m*;KK$K??v@y%4zIXG($^0Zyy z?^DV7R)&?w^_C<;8q1%|0r?(Bsdd1I{~IB3CrcCnKj1q{6@hGpond-z!w4BWTfZtd zlm7}^qcmzE)}kqU88<;daD1TY7bj)*#$`a`0JwW$UH!fDdETU3_Z71RTJvgIakY$1 zD$Na=KtTOZ8m!<}rs8IP6i1GFN5c{Kkw8w4538v|K;*~kgZA_Dvgu5@^n?oQPK1Zn z>-?%`k%Kw#YTM;r)ptPBcc5gi#BGCIK=S}7GLc?Txsg41SO&OkPOe=Vc5-$Rp^%mW zzj^?Ts(`k2`Oc2O#bubXEd_Vb{qc1oSAxS>lj%!dQqvm)TtjnY!LnB{(ib3UDW@ou zO}I3TZJGnSs<~tY!m7TV= z`;LKwZ2_<@-2C1RwHHr)d({B6*4WzLjqJR7T;^%tGHU$Ik&eGu2ToP)2ZaaS;&BI( zSmKkx*=Bb-)@gEJIB`Ar;0Zw3N4NRmJ@LMi6zRpOYl5ozBZ8wdCBhpzjr}U%iZng; zJ6q!w1)tJ@_SeSik$yO@-rMTgBCa#Ia*1No3510y-cuD(9xlfBYZsl@f*PVo38=hE z$ep1!KCSEzPw}ffPG{>ad2(7~eJutDZ}PZ^T{l>tPVpB`N{^h5h;cXghge<0(GC4> zQNf*!$WP6FXUDE1e;1S=xIJ1OM#xlU$y?IB>UV4o1-|~CWu+8cVVXzq)tv&ih*Xy_I zUJoW8XT_w%U^5O=7VQj&4+{XUPqN+4U#YCFk4AbDDT!F%>EMjb_jSLOGkI}wYcd~z z>{PN@{l#BtL=Kw!i#5@@-kIy>g-3_k&$Qfd2^g)&MTVLvLgI(N>uwRaJiZ`q&6G|O zY>%NBd=pvBEFn%0t$>do$B8c9?_R-bz>VrcDj!mKQrEufycz|Xjlo|18CPCvEKNxS z@zbvCp|T}G`aca2@X1@bf2SVWSmU8VOc(3NGLunDOz*-^{Wr#!JNs`K`#BT@Bfg)m;%(ppyLf*m=;Q3l z2Cq1@&Xv+gc%s!}jX*Adj)Spc!iGQctJi2qV?KXdnW7(=)glTr-nf9zr$3$=Lu%os z={3pN#$nZy#C#Z&C3^pc{vSc5cSpubX{vFxq3Ltz^l-xGx9Qdj4o|55Gi^;F*wdMJ z(J(J(rOZr&uZeMuz?oEMjSwNIHu!h?&B?aL%y{0})qzfD^IU2#9UMW4SE0yh3lc-m z)d`$gfW+6$Z0JqCv$c}c*9=@6BkX9HM|~YR|AI}X>`oJ_xcQQn5uf>V7_#ho*9g^y zD2a_50u6mQfhCmR-1)UiB_v8l!f6I(Gmh z#6mmF0ojY1OqCx_`D*Diim}v1wd)ys8vfAdcy~6`n5*lQ)YY-)6-#A6trIRP_xTzN zGr@?Gq;NvuH`13KBXt0dN4#?vDny$|hdv6@tm9XQHh zzJ=cRpDT_|vRlp!J0e^B;EZc-fM8OyK+CQ)A0nM(Dsd|O0|aLd@k%^89xBmj;8S*D zm}iZa{)rS*(D`n89R%tB8xNiG4^mDhPf$@qSnvkt1LjF?_CA)EFFmf>zfz3v4X#QU-B8vnw2`zStxL+~ zx!f6Z6l*a1jzie$+Jb(Rl7gcN;}f796I@TDq6!phpmw?3i2gJQhtTP^qn0qd9i1%J z@qS%yeb|1Q4A=uc8eb38eSUi0F|i@(sf3C8{9KO+e40ZHB&cvUIh1(fJD#4#-ezoJVg#3=Sn4px&+xoh{(JZ*{q5z+8@qiO<_yR6GuQAyf(D;OCFWM%;>S*YBGb z*UTOwj%rr8WVV7ELDC?_L!HL+)Tx^=KQW!bW zv4zENPC1X)BDE2JjCTwuKA1 zQW;~lYbY#EzQ^vDb0_0Sf=v*nrzPt=UGse&h#s|Wp3WW!2QF6SL#e~L8|?dmdZQUJ zK2&A2ds2FI;J*SUmw&R5WRb*$*6Oj~OYu5?joKuE32x85`KzaysIXhdLm@{L6js4& zUyL||I|?-$YDBpR==NZA>n*@p9U~T+xXZC5=V* zoRDARDi^$`FTdc?%h01~L(Bb3Vy)U-$4(Ku-r??4zL42*-X8Lm5x9TT*yRe2^qnK` z`u_o?+vM`AE5lbpM=9f}9q;b@2k&jwEZME7Xsi0@RR10yM@!fZ%ub>w%ZaF}3afXa zT6#FF5vU)YlvCBre_}~OCVKSBc`<3FO_rmuIh?a#SJti?TAzi2HflO7ThwuMa{o*w zmtj4p;lr1OZ~qC)kDh$bO$(CO5~Xt;FQ--O)~!^YW=)4qvqE!wYyV4P`pS&SoCPM) zd-pK={Ewt+PaY}=I6r+%cCMWR=VlsxFo6no_xXbQo@B3K*dfIe|h$jb>AMmlt65I;auH@;F$Gex<^X4+7aqJNP0>*BsO z1zb=&TF?w8_KQme2RR^R+nIjD9}J)yF_%&=uKqo+Mv(epLo;2zcIm8U!fpembq2^( z|Lz}0w}YlS4X*MGJsq@}C*L2S+uJzAP&8%zDYPflG#1%YSraPN)RXe2Gvh~2FOPQD z`RKY@8FW~!Y^ciAI0wFg3?4h!`4C%`ceSDFX>t7KbgegFPUh`N{8d2<}(xfJ1Zsorlb zp{qLH?yx~xGG^N8K1qTn8G`+!%?s|UaRO7^V1=;>pF7)O=ijyw`0d(zOU4Kc;B-Fe z8hC9%8+aZO#x9|NJ?_qn>*muPlS^s&K%5^>X_25=uhWIV2}pJHgj~3f&HpH__SphZ z4I|OhW?*a^=Kq3i+eA%E=(f*g&@BIh;B0ELqru{;35O}$G2E9gUxnwzt$DuYw-th$ zWzfKDBJe3|&q4Y{^Sg8+xGVxzZJihl2gUpsGFllJ6vkYwC!g<582L-v-=D40=&`_o z4c^(IQ&UQ)U^fS_wZpvi;E)6&;y18b+Hb`4Ta8BCfKhK6jCD&Cpz7-CDtmTDM!Z(C zJL&6X3CfmW(rW0bD3QZDIy?7GPou)VgetrK$JOBxXg{jZzn zKabb96$de@|9Ss!PEJDjtghjT$8LSM9Jleqsv~~t*StxgLDi6%l|v&YEss3EgpJS5 zI}JauneN-Qr|>E+1dc1uIDI#$bTNM+Q%*m!kxbtn~rl%WIOFXO*)|bnyp2Y4U%58(Vq+k!}FGp`(3Gz?DC+2!1da< z3SRK}8)j6e6+gCjKzJwh6~qD{>iDJD^8{Am7wWErD2%(FcP^~M=9Pf=hJpwE7aCu? zXnzqD!1{GS8yEa&eZW7KS?+#Ccc1^v`h6T-ZqN4V-KJano_Ce>d-zg!dTx(_SovHG zbC77M!fJothyP#(lFhOcRn%XwfoHsW?R%!jllv3J_wV1s!!sFR^w`mk*&YBsgoYafZMW8Nz9B~~ zHASp-hf*JY53rQM_$)uf_i9z=yD75K<+=Q(g1x4+zXjQQYD@aZrf75;4}l^t`Q0Ay z@o?|q$!}J|ok#)5TT2Tm02(HPixStv4v=^TxXMUN_X2^i;Qm*cB9SsRj*p%$VPyu# zdu=AF_4K>v1F-RG68R>BnMItnzvqSBeGZLHha&>od`SVg(+9lS($t(tF=JQNQJvUe zKN(hT$uj;%ZcUhwzIS-+N^hY@6EWV3>Dzk!^|`rWC6Vm5sc7y8qLv({?fbj#z0FJg z-#}`v)oh>tTni#T>h?an^|b;G_x*j}cjA1XFQvW*=#58g zdsi0oeD~KKKs^x>c)7Cl*SUrEi2GvIl}VUZ{XIl5rDjjci5yFa#b)X1Mls2)C*s2Y zDg9t*_2w?MCtgmZv;)snIWYbhx%g{hy+pWCRM zu1*FE9VO8oN{pB?sTpeuU+5KY7J|?ntuLxb6GP@&yQtdZj9g3c-Lzr3wf{~G3+uCkcN2naGaHh-mra<~yKAV63C?M0fP`p-Q1S4gSPl*0f9<}>&#*e}1!fk0S zmz1+6+1}1u@a!gHe*#Jy*`bPy+Lg?jz+;kff&J4<@J!yl6>5iwB#>m-Hop7pUu9`gOVPSb;nvAy}E z_OtGYZ^bNJrN)WUHRO~%KhOO-3X)d8&Ttacl#8$pHPa$|B+2s9nj_!ht;O{Xkg6Sy zo8@vzslB2qm}eOQClQ{U#!$DR@E(Rl7B({4nen4}&az;$I|F9Vp2 zpVh70Y;3vCw`bA0`B^$ukZq$_;{6e#>IOs>oB?_SNhBU7Yj2Y`f82tuoUMG95Yo!W zq!v3+7e?xge~rd4=-W}1mKO0)hRAiHc=`C7_sTL}u9Q>^S8=yYssl-tJ$>j6~Ylk;6iJkEo=i;-&U$xOGU+#8BuMRrjElSPVtt&Cu8}xyx zvl}EfThM`|&G8#@d^tVv^4;()zE?uW%?z}Rt6O6;r}`FT|Mwl%{@Z|b;5 z*I`n=yJOktI^KSeX$+L6R1w(#P=$yqF|gNuB4`hrXmcV*PS>L6isdFZZLD$xWUGTO zKK%FO3zdMJo&{!_D}jtu{z)s?3|W=qgYTaw4vl%)!R7OXmS0~2?0Gk`B{`LC($We? z%C#Abt*!cDv<}@FqSkbV*i}Rq#%hdF-ya2}2TE`gRW^G0kPZU)sNqM?o#4T8#nYLQ zQS1m9(V6ma-u9rr8z-jc7j$Uf?pVMmb^sh1dCi=;IT(;9-iG&Nbd?ULI8d^T$QixR z5mG6c&jWpqj@`FdLgeUR3-+IADW9NY9vW@LZZ zRMf&D_G#x)GCLzVyggXn6DZ_WwquF9f%(>iL}f#Tl>{iV3*AZGn$Ce=9zB1x6sXyg z-J}9i4h-@z4EWOp7BaI@;dYCL604C+W|qz;aAVa}2YOveyZU^LYZ8OxVjV7WJTbF> z*UG@MXnH?<0nQ4?${7a*{A7JDr&;NcEIYM568KF_)C_OtEZOO2$EB*X&ZLUw`E zIy{s1M8OX+G))G8aq{2Qy;E9J&3JQ%RUBNrOW(mJPtM2`C1?u)Ulqy)m%AOGv|S5_ zst+a>1A4vY^v5$eKI?K1$LCd*+xRQlvzOOpoH;eB8Z%o-uRLOYJUNqh6;B>)+4$sl z{>cN3m<``1&)ML;?CK)TE$BG9I*EitUZU=#u{8_kWy3lHMOCR|qR1-hcbYu_bn3Qm z=lC-d{5YGlu-O_YSWtLXM5bqO{?9+4`H4J3$j4Hy&i(qA8h3S(BNfy?92m-4ZD%mh zFjEJA+5n9-y`tUlO>uoL0G(H_06F4KSasgyTIY1a>g;yr{r#7;j{yMR-Dwn^&ND)s z!jW{?1iJbCZO6SgqGZ6%O-=JQmn)5a_N0J*{4)1n8yoQo?$v%7mBoBj9;4OU@N*U? zWZY5RNdc*&(8Wh9Sr%_;u*m{z_H*o3uO#sS7&70#L+LR+gLS!bbv9p;XRRez9^0tu zpt{MDs`=e8fBo-vJ1@zySbu)vv81;>iICe3EWA`0Hvg@}^>@cY(%#}5MO3gEbG%D2 zgr;GDS^!I5Wj9USPLqHf&Pv-;U_p@LmwQaBq{bjJ@T^7z% zhib*NTS&k!G57Jf&Z~ZZik?>r#Z5s>4_yf8oNOM`arqJzJ7}_U7ZvJM*uPtqyTd~c zPtIq!_I~%OM42-eia~ZE4Y2yBGQ&R*5y|wqDeJ$@P2$%~5iRM`;lv;j_Nc>S8r)ZN zEg7`#pU4z5^7q%()0DG%G=K|so;x>~WT$akCl~(Y-26eagBsp$NFp$v9=Ku-HQpeM z#i@FmuFJ_bqiRa+@wtlmxw3gRtQ@l=pke$TOAeS74ec8ua#6=*$D?m5Dp~G!Lm7molmPgLhAE;Y$YvTvy zcze)((zn#;PCmkoIhTA;Yd&wEHMAk-uvyG=aX;+newE+Nl$j4tk9`-3oR0X>+j4aZ zXjp2v?5SMI6cySu9zI5srk>dbV~Q#c1HTuIVDv;`X6C5_Yf{NsUiWRTj+eru|1rVn z?ezdMLQcoYN?ccWK!I{a+2V2hG8dEgtJLT=rxRUAQr{d`EY=E(@#`N1PT@p4j4Zk0 zzWJ~m0ZZbwHV>j9p$9#VQ$8s#FQSA@l&ye?3D<{uXu2%v4aq#y01-b1*IbNutQ4Ai zJL%sKb3U#1zXgYe9>j3RH9Eax$@O@K_W32L8A0DoB;oms6)2U|C*BK55!+6LCETz6 z{8lc|Fl;^j?tyG^yz6*xyFPrBh^H_#sB+8=&ZyztTDSSspY6O%;FdI6{^>jCkjXjk zuirxgo`ea0e}pz(z1ejaUKg0I_fAk)ZBH=_yzCjEyzfgY!a_@1$!M&Phxux==VWk= zAq}t@)(`?RZ@NoHtt%;S{t&re@CvEzg5&M#4?Skz#@pQpHjru5?yDb{=fFn-40SF{ z*<3=b>3_myZWlB-w?9-kv%G8me9CiY+?N!ww12*ps*b-zgd4Y#hwu;Te4$jNtNu*C zscNp4s-gtdFNxSYv4QO2LoUD%%W9>CVoOF^^wjouHtO4Y(3fM}SidbufBk1(RG<58 zCP$t)K}UWAcdYU#_`256nU)S>_;EGty?hUN(;u5(3G@iK8hprkQTEYUeiM(jt6&HR z9j=Z**D7hmhYbcmkcwnek4_9y+k%7fIav6T zy!&90NdF9i!(|EU6VXrkXCvBNO18;E4Y7lfkB&WSq8zyo%WooZ9T0E^XIuLN1^Jidh%-e4=^blOD!?S)I z)>_)pq57XQpk#l3zwq_WETl{mrMr$ma8`A2M>YWyz~`E3==WAM+(Sv3{r2PrE2$oZ z29g!r2!T|%>11`Ni;?BHKjKCg?h=3Wr9HA(^+yQOD#~B}V`QRqZaiKWB&(NZv@XGf z(&22R3!EsPKvO9c5x;DFgm()X_^4VWd@)8r%XsR`lQjga~wy+h=I5 zyhaa8C1OSQk1GTl&QpnF{$xtxRw81_J#|1X?z}n1f)pY?_h&^*#ZV-8vx}7EO6{I> zQf>ym%WZVTi_;hpit4DSE6XQfQTP9*6zy>&e##N~ha3Y^7Y`|Kr*H&wpv(kr}d z3`I2nOlkdLu<%d5d#B6RsMHen z^yG4PcVAjvHMO){d<{rGwr$CwAmlB?W{?JZ_I_Wa-%-kAT~s(^{6zC#0I>B7lCXNF z@nc~u58dXbP-0wSOOFrFJfVdTwZI;({g;DhY+hitF{Bk1A^i1} z;2+E=f8^SoW_h;KlsfmS_|FK$YNlz?m_xT#YdkF)=JoAuFtAlhUQuEogbpmzi6xRH zIKUD9;!1^fLe7#c92sl_%c4uQTQfoBnGW5U|NL6bMD#VIdU`g!3OMrEQPsc*8#$Vy zdq}JhUjp{mr)BQ{j?hAlVSu!7vdK_1uEPT{6NL5-%-w$sS^tj=<=fhn99kfFj{BcS z-yjcXDcZX*8iidy{s<%@51|F>RpFgc%|C zaNRAPvy02f#6;1;X?ROXLHNK5IJA~&Uel57=xYfJ{>+J-6(;C>gKH^ESNzM*LgNF@ znug+~xH{u|I>Sfgh?K9-VP4bDG0%~FiOA%DWlw^4*ADQH!WL#rZJWUX_h9^)Zj_6p zJ#hrbn`=xvB2KK(#FA6S`|}WYjY6YX`s~sp*J$ewrpq9KkdcSYmDC+0g9|a7@h)iF z+S+y(q#nIG@~zuUNQ2sw3L+@u+n)Z~zHn~%jO)zAlDn|Hu?>1-b`yc9bUwb$fYi26 zPk+`A-d61CF$lUO4vjKYsFv`67Bss zrmlCPak{=5s*_*ttz;mnkqE5-*!4H-)E-)M`R_8#w{Gv5fV~vbSt$WjQ>$A?YmNr` z$QEvpaA9%IJhYiJ*8D^U2BmnDHx%rc$Sdb2-wIRj&L8oN;6? zH@vk<$=M>?S8Vkz&dRMYf30h54c>i^T+1dtK=^97^UJF4^Y2gwCnJZJ;C zs(DF=@Fn#_qD~b16Tj^$=%2rEHIBrL`^V@rSif<-J6&&%CX@f#@9i#PTx|)wh>GCS z2+rdJ5b72~t#XwTv1gCjMW{d~{LzTjx@7N`oLhKj z*a}=Xd2%0(&dFa$PjX!rUqJ^L61>gF<6W=q-YCgBghyArOSL_TdHp^+mG#cflR7E( zG6O%#x2LM@)VSUAJZgENrIjl;2qcpY`peP;mkdh_KYpGsjrCg3C}lZ?*Sx=Q_%wB; zEp2{eh3(&2-rvlKy8X{1h-I*EqxauXE&x7Le3elRwZ{OCHX?KR@Cg z+t5b5?{LnTXX7qSpcElSd(*eU*?7I}82+9md3JT?ru_Qq0d_O7mfq}1M#1(CWpl*y z^F7m{S57ACRc*-0Te2i8=!a4ouG}SD9?Z|>P_m7$O`~fKyZy5$z3k|hYFT$(z^R>D zVAS{5V5t#KsD=XRX`R~N>x8{InTN&SNKwr>VzlxNJP`QgcNFk(c9uKSc+V&};ZgFd z^o=PwIsVeZ>K&;i^mhRqsV3L74*euAodLpBk~T$ zHqiMq&Ybhwe5hG(LvNQVAUl&lgxy~T@3P7bu21ZVZ7$QsU>?-kq_KZ^?T=@VsXpjQ zj&7{0{XkN)6hrs;MC5r&O%!krU3@oJ=dFvzGa@70XPuM%frh^wr>wf@*%M#!1(A5N zGK^?D5B%IXDsXbXv3#aSchtz%C27E;l^&-teYN9E#LtyWKDyxcK%B=F8_G61hKghU zxH?GVt)fJ&Xi@$Rn8F~tTx+;_auVe;XLqyH?4qF}2x{Hxmh`d(5g2&iL!K%EUGlYp z>NqmjUt(F#H`>NCKM-9?P>d#5=y%H|xZICHgf7IE?`x7?ujxM2t34r&CiF&o1H~UK z4|kIhf{78hM{D)4NP8%4vJfk${AA{fQ&ZY`-yj6)EjgiOi1k1ZYmbb|XdKTL`-04I zlKTRErmV0|+kgDQ=tZRj5-!oMd$k%Fdc7yKz@E&hC&MoTLiDpC+mzaoUG@D?&G%9 z`$f**_xRqHDr|XNvsT)R=W4%uT#Vno5FeBQ_b-=JCrw?vVZ&Ht8GXE)@YR|WV`UG& z*mqL|Kl%a7SY_vS35`cA9d1@^YU=*3UvMewDeAu)`x`U|4s`K8`EF^R3TTA)mXfo( zBN2Bt{N&tt{kcvFziQvPQ=cXkt<~S&Di^&FO6h-8ccRsFgVWxFb25zKe%rS1{>d6$ zYMcRRQf6^6O5O?ng3fLuNZE(10h2kjE^B6d#1{$#NK&54-OXj(nh|VBhHOIc_$>Vz&+!j}QA$Y? zivUI13=8FGU83gFrHNm*kwOHSk=uMI$RzXQF0A&fm%M|;S?Mt)rmJFnr|~Fo)+82O zEe`GS?F%D;!0ctqe4*t-XpvY+im|YWu3PAYtiX2DBG%>dqTuzIhaq~V##B}b^7i!9SPS_E@Om(=?ctT5xJgNQhAHkeg=}7~ zR9-E$pv!UAc^vmmF=2K*kmWg?K335S3@v~wu`yr5hU%lG0l-iP!QG}sgPlDO0aHaC z?v-oR*G@C&5?WUXDGemJ06O#4EdtPkl$N<=nEcN9@Y(w1owE>mYLJ}p<`wJHKL^1aJ#99!q{pluO6V1-or(z<+X%N z>r5<%eNG)A|Evxn<170AH1?K3adlCcZbArz1W9n0V8LA*cP9jQ2=2ih0t9!baS873 z9vm77?(WifP-%VMEh)}>=`Q%8(z~gIWzBVdjtjWuTI@5FSfUZ$}}9w)%R&HXFY6} z;Fo(zimYOU?IxGQv55{{CT-sax->Xg_A~Oq+8x}1VGadHn27ur?_MvhNc|r?=`ZQF zf9El)4g%oc4~41P%4)z?Zyi(DlAcAJWEc-ZX{NP~&(ANryC?B{eFX`zEK#X4vyY0- zoi49QDZJQqw|R~QGou$4J(kor_pDi^rO@}MXSR(^V&mgQh3(xhl{11QycuR=@t@x$D-X~y^@s;#)^P>_UXA+UpysrmZKFad8-X8h4B z+>a6xe|<{o`mt^1(mK>F&HqLvUev*(mhh+8Z{hMfzc=Z*0!KgzB5EuaTm(snb_P?S zfu!+3?_tvJ+U!*Z!<^NFtK_o=P)l2TCeM1t9!fcI{X0I;kV8SHo-WTt5#!hQ9l$q@ zw%~6zJP!J*nK_&U)b1Y^SXYk)^-(U;cuL9dpz-Ln_p?Ase-Q;cGMk4*LclX-Y z$8wPP!n%B}Zi}Hycj!dJL$zcHmuf5t-?y^Piyc6ml&d z!w#%8CG4B#c4QpnIQ2OjjqE4Ny#iVMr}B%oM{AE3k9dGCM_j*uR$omS$`Tg(1ZN?q zN--qjyn!bZZV7%Igu`aK57YK?yt{8)Q6V5`oXMqMV3n_|yJ~97nzbO4Mvs&3t=_Nq zy3Nvc>NH{u@F$FYrpWkDOI^$&YBeUJ=|jxu{jed9*XetYPGU!EdXa&4(REebG=h?n zcH~H)#(8iwsK_JtXPC+TAP~oGC-Nok+et)cZOMu$f;z8fr@%6c6(^d&Eh$@}d{-|j zz~aP28Nk7RvEf^dgy`uoyzn2TV^yV=7Kzyra~vZp6}_}0JX7K!^JCN0pY>Q+-@;=VeX^KW%ge$g8gCaK99$5II-`} zrk5(2=?Af5$km5v06MP^WpG1Hip&toLj#AR4O*k-z{V}bvgpIQ(VX4@E?posYD{{T z>~;n%Nf?AwooC}OyN91nX#7}U+R4J8s<~{~ zSFY!ewGDBHGDwmSwQm@t*)cgQWp*uZ=pX!{vnH%3lUyl0w8(hbDn%2CIJumhzr)4V zMV<3MQF{`|UGF?r-^%;&e(f`=Y#%Ov^SGGM4k<8wC|=}NJs6rl8i=cA^AD&7Nvpe> z^~A)~F0mfXKTSQfT{zMkVnDYxS_{y(jm7QaFfawMp)F$H9Kv|wT!JzKf;T+;9D@Hs z;*}c5zTcE-E^{={4K&zptB8x*mQsQ{l8?2E&%Rpbw7c*BtRxT&eL3;@kOD z4y=vniQ$MV!E)KHoo`qPxFn(o0x8)7XuYR`AbL3JYVRK%>F>32eP2@ES}8K0ClB0>A2v|1nG~YcTpMs0Q6mehWr%*$B5EA(2p2Yd{;D4^YwX{jgG5>TmM*)_ zo-%t*sDSV6{hAkyf6e!WU)JZ=AJp%(QG%N-R?#&!hAJwKWr|d0N)#w=W)9}pp^eW8 z3eZ+lCPOhWh#{g0j;n^cGOnZZag_)xCfe82%NsYGS9w7*Y=5@=B!lIW_ZO zhP`9WH>JG3_qg@$n7fwvsg!rOpOtZx)Yc~8<+YU+^yHn5*3J5|=dzSvIUW5aFmtBW z?9+-VOZZJ(INL$jEs$ILPRe+o!q`1M2obw&)cJ{*E4t?xe;UJe%Yrp*S}HE_B4SI0 zP6X+?Ve1xx^=}6U-qSO-9#10wpihhE3N*MEPJV{ZA0;$^O&wVg67cXLh5N~e z3gy^8W7%KR=2h2ZC6|#W2&2)RpZX#ZnHV=ngvxMsj;ph<7Hlj$w`}$f)8!Os7iDqU z)_bqUcH`6DbQg5~#VTxYjHy7Rys)4p^&1EL4e_sH(r_6fQt%f#+P+!PI~;pW9SWdB zlk?oli%3!Ml8-Cm-4+xdt##$7lxDGU--^ecI|@is8p<{M_rgE#d-Reo&(9GA=Hd83 zSZ_|}`%iVX0qzx6Bp!t^w+H;X4p?~m)b0HtW&|GpuhB8tg(f2$rPhX87S5V13&u>mx zHU5c(W}hIZ)@Y~gzMrE`mN&FlEu7v`OO4f|Z$cMrM?UEuD7g?a=D%d?&9mFc9t_4H zVHC?pP!>w$>L-)lSl=d|fM8Y5N1SnCb)-Y*P>xI_GK7wo4cD9Fg`s{F5Kp3VC^EB3 zLCt<%v=r@h!y<{~nvWc@`9MEbXEoh-qEZ(#wvE*Xq`O)Y2h}3#r?XFltxov@urDl; z125)kJT9yJ&9*6^CH3e23L@XC&z}=xT~{T|K>U)5`5V(TDPb571mj>g1)MoUi!>jb z7u)IO9)v2#qd(V14@PxJCWj#vUm$9+KO+geA3WkQ+kw(&+Cm+57@H*>I%#9I(Zo72 za7+_TWsc0>X473l>2V;EbTVemZxC1!LUg2FYcpqibG$e_-YGG0vS@Jyv-%{=&heXf zTtHu%f+D7Lf7*-?#(zutFKX06JA>_?KvQdzVj3>4>@xl39TMgj6L4mZ*iF*4MVX9X4$K@agX)k3JouSVS zCU)XaZLZU%BM%RkQ;CpHPy^#Cyvu=fNZ}iWiql^%CsA3Y-lZo?+)V~dY|5(YvhwAq z^@>Rc#i6orwb+PPq;?irQ|AG{`2#*-|B0bgEHe^ zRq_Vt%Fs9y6K^BiqGIkTK1VIG?%b1c*Wc=ad!lTg5DoJfs5<3Dp`laF_HKJ>zBeydI=pm&I(H13p^Es?E(+LEr4 zjBg|pu>uNm2|$%(&)yWg&Lef57_i6JwD7Il@)eOvM(nl?E4Bvn*Nz`AfZ^&b}eD)WCT zfI+8iAL551x(%{RYT)ebn6@vX&@UdJ@cm0}&_aMxbLS+M`nyjR^rj3vJ05V}%hgJQ zUj!}?q29jfh->ahS#9Nn$pw>>eyA=7yqwSzE?uDrk~nVEG?J6e*q~U zrLf!5Gn!?IyqJ6z1SJFNVMyR#i>U(nU%|mZ^(45xogXNrjJ>EALr!?f{YysHMG(b+ z=({F`De|jR^$D-z;oj_GhN?=dDy0lL_3jIsq|Wn3Rv-WE+DIAWdUPV46koo{1^Fd- zehHSoST!QNZMKIFSk?jM3*Dsb;gONr6-$O3Zya7y;0*so0-#1btHu2)Xo%CY=@r6a zZD!CDATDBb6{Cdg_;N_sd{bBToBiFhG?&p|&A|xze`_I6`PqlF+GYl|7D=} zf1t7fC!fYfyZ;lF&E7zrFl0;`-@V4l7!K58&g{NhS^w%&Ui>u4@`|D~w0FtJ%zKmuc~AeihvLH`_S)Q)l9kir%(*N@Epd5; zq10Sw+Kjbz{o1wGlm04nmLek6rGZ*=VtU5juh${;ig4wM9~6yMm+{YI19&|Ovf@Y9 zab;)CSc}=&ngyLjw+MYT*%sS&SoPWB$@I9l$nPt?H1@8CBTU<^SU08JtGVU(-*no}` zwW-w9>S5y=wWSdV#FnFS$HU&@wM4a4YwQ7t*r|K zPH7ez>(j!xW`h$=xWG#Y0V2X>V?$Tt9|XR42mX8M`mEQ3O`%at3-bnllh+p!lKO8j`W5{+r`3`=DV zs7UHb-}1UVp)FzG?Jq_@ERi{U)@r+pwxIP=0JG);H!otRqM}lI0DR;Ha0hqqr{qPK z$1^~Us)lWVw0P{Yr>92?%c)Qf{Fjdj1Zq`%?Y!FNK6dGIyAk{WTkP`UA~jjJ>4)JZ ztWv8!tgMWlLi#fuU3e?Bqt!j5sfoMA>EJJ)ejEi*XUq}5KVE9Abk{RC-*@)~+1#kd zQJi)>oI3hvCSCUS^gw9VUx4k!*d^>_NfH1IYUN9h)Ft3g9eV}BlC&z=0CUOR0|ws* zUDuVjUH)%Bq!u#hwKb`>aLL<&`}d|?^nq(+kFg|c@x8SK`+&jVu_+uzoq0a*fheM} zDeZ!pT=DSK!bUz*ruM6Emrg%nYrdT`Yx1d(_#1kSs_YYr+wh}0l#72ya=uJMWoF|g z(O{6B0LgRPo5-Bv??SoTe~4GTO&OyFuE`MDIBaGypDlo=ISoK(7F<71^uB(jo&4(F z6()wdZxzOkiy>`nOcDDqHLiWB?8F;8I4JcUl|m`cN~?eH;Lp5E!3((dh)9Z8yw?(& zR*~9~xANz901HJ1Z9&5syamtQZ^EdpAH#SFQH=1nt$FOKap^yP4aZrd_8*hCR{^bq zxOCDHkyNa#aZSH44p0TYvU8=BC&BUZ zB2#TSLrbNQKJUWHjv#!wJ7xs}M+@ACG&}A!WFY$*W*i?|=jP@@+%^8K$B!WJm8A@a zgsty60ddCuj05Un*tf^~6$m1fU*>B#PtQv<;6&lmPCY4WAEK`RoW&spBC71FR`lu04ti5b^bt78q&m6x1`~2iG;n>rl*JTzK38cX=;kw-r!kI^IlO>-`;mZtG-LZH7{sd zKb)|w-nrw{Bhd9xe+FHg)7AHwtCBb1u;hJ1IVp{oJ|wl>IKF1Gkf}1g1NJ(9e)zLjBK)`N;o;?M znm|9U6v1ZWQ^%t{%EC2D@ewY2n50?cR&-WU+_y#E6{nfPyZeB~(2$U==KV*(4!LXGpCCBEw(*|LZT%A@H|9X?QUmwa^qd{gVU?cEw8C$lFf zf!^tLkJ@=G{f6H7bZron^(5h7Ni}dozgL^Zsa(uRIoNOl+vR5QR@NDt(L=HN_Pv{tj`7J+IL164obt$g=JWx`f4Mxco?k^F#w z7i}%EM?^AlR`1VjH8ZJJ%UZOWjgVArV&A|4;-kF`E5{$>B}c--tW{PlRLF1Tzs zWVcscZ@oGgYFe4YR5{jxglIY6;DC`S3f=9)**zcJV!GUH7Y)&9_7gF|2|`$K*w(;a zEYU$tc#A>!RZLBZ(%nMxD}qx&u&45rBqe`kbGX&Ylx7{@;mcy{Hy=)j+ zTX%>pKX%LhctUT8P+5WibjeX?Iq$JD#sjx}F8M{P`m`;^8>g zx6vEihzAdbS<(F<n7c9CBINcPS{DQ;8tXGQVrCYbB05`n2sR_5?2yeL_fN_-#m4!_w;E>A3Uu8a*g%& zt+);+?}X8|RE70Z3QeWlPANamSK3A5DjPDq<`nNR$HM5U`@BXslSB6B>lw!PVYI~@ z;IH#ENFncfl@^=`!QVnXrMN3vq9g%?uyZ;DBC>@MYUOBb48;)sh?U;1g2GB^drIcU zflC$s~D`wY_~H>xLkftFB*46}Xzg zGR`M_y=v@YoTSxWL+FlJZ&7$4XN|*!`Q^vWO&{fSfRHB^sbt}t0XwH^woD$?7pnK_ zptq#GeFGmJE*vqFcOAW8!Z)_J=?BV%7s=qP80YGQnlOC1pJr~%WD1rs_$)f@A{%#) zFEYEE11SU56qJ<#@~nLg7Jm*SGko(A_l6=<1=t!7BEma%%D_TVp2ehO#lC zpS#(gX=sYYsmk(%`aI;K8IFc9tf|wgfWa2f+1Ytw86H(*Y1*KRX|uDpr`@8Ox|ZxL zfa$mQj?G$gtE6z`M$hW<2CnU!I>BUPsz|OaMx9-@biI6Q20M)Yb){FSHXM#*S+p_Y@jzSMKwK z|KtC?<0=d=bz=jgR~Gs4aXi~Xtk)!6b`{iYxd-;wI!EbzZvp#Tcrq)N$wuUQ$ZOY1 zb7Fk1&|>96))OW+%^C+{(VmreP_EPklIOHNXtYruwWEe>**t5SZkjRc73z(fILvVQ zHx8Kh8ta+$QdA9+rqC3R(5w>$(X-S#Id8=qnS>GE=*>SF4LXb<2EpJ}8?JcD~eltnu7u87A-IW<^mktCOZA zQc{wwRxFt}yH0}FpKs(Ty%I0$X3XRPd!NT_MJ;)8dGMDXp%q(FZ5wG%Riox4rl_K*I%1&&Xz?;3iKxxPAXeH~hTV$kW%4E- zRCYi%DP?h|=w7{LC3H$H7?2pjY=U>*i7ljJHthM86#R_mJZ)00Ua5D2KtF4gW3A~L zzf@ZfC+?ba$IbzVe1gO%J%m5$3;GY@wRyc ztQRXF@|wq<sa6oAogyiSv z$EKvX$qsb?+uZkLl&utHUm4R9++^kC=K6=l>9|10DYLEUi9Lww6L%8Sb@S<8zF2Xd zWdAj-L5ftT2=%!>Ud{-W&Xcs8>*@>BDr)W7;FtVTuKsDhnY!IOLZ>}x(=wQ_a`5za zX0IAliyNsItt*OxRj;bCtJtLQzWhyv>f7y1rrs~Ld7fGD?_HU`U*=fT4$CeiCdsJ& zU_#I1vvz$O7}WI4&)vxt__W}Bb&4e(EX@g$3=(Ad1YNE#6SP^+G&C&J>_~aD(5HfF zR_kKHi~2_L?~r!5wg%k!1#J}OF2*MUc_9r#%H~#@PIQIjcU(*4fViVFb{vBaBz&Kv zga0~EL_V9pZ0(T?0+qU1qsl-yZ6N^Q zG*%f6pf1f!q`$8A&f1k*0A{DOoSgM1r?E`_)-lpD1|A+BV6#xaZ)-l1zGG=chzIoi zd+Oqi_4M}QaazwSqGpe}oGveH5|#%D9FcYr{%BCw@1&T0oi&|a98VFNkdT0VL@l5C z=Wo6&n8Qjf{CZ(wA*n3Q9X**~Vc?$XCx!H~C$t?1M0qP7IKajbexo0-VpmPVzSxm` zF&IvukppvvZ~ok9ySftM3uw8#>b1A_VhU}va+S!x-mOk9 z-1MYLoYTwfN$4Du$VM=b0m_sWG84)Rc3-Q*FR%x*Q(aLaI~Gu7l+{)(N^Kbx8+lyD_y` zV3`{QV;s)%rc~9!vdu)0Z%PVIe`&4R^4*y0Lr8dK&x(d3!pqD~*9urn?&V}eh}SFQ ziMxc6%mF`8+9(A>82VPFFu{B%BFMS761L)Ip6dT4dXV@JLX(~+!@w(I-wjRTcBWV% zb&mJtAEE^=Kl|V)-yL14&+DQ0%ohS4?PbEIW{O_X<~lR-P|c%bN$C8?>EVJn*t;mQ z{&BoOIX}g@*LECI|W_CJcUebYxzPn83e%oBP#?kLp0d z>AJ^9&)4zO8-0)PSQf@txRDY7PQt~doXO!o@%*zV@FPON>w2xovW#HM4~?Do_Z|r{ z`R1*h7+K**mqt5RJIVU!1O(v{dBUYLxs&Gff~6|7OZs+f(iHQo96vVZ89THtI9e(K zq>!C!o&c+(e}i85JW>y|D-gnKCtnA4$9)?9{TlA3i-&I(zh$H$X@ChQ>aSzYW&p%<=XN4)~mxf;?6zgaP`PFB>g#Y~AR7qJRI_aPbZM!*(PRTb;j&9jl9 z9*H3|TLyR=xxJZs6Hy500&er64C}nPNkC9dflj@mEhk%s#p7z9tEGQ{Jf4H7s-gnh z)6>)5P>%Tgs6?w-VfR5G;fwFC=ft(L9Gcz;)H+%Z;g`@Tm;GzenfCH=}|JNsS zG{akTkAz&W&cYt{^SDJia#}_0uR+bqzd`U{%32xt{c3;G&M7Lg&zN;`eqPGvMD_UO z8sLcFAJK9<{9vMHtsNX1%8@vT2#!x`Krj0yic)-OdM=;Izw-Uj_Ouuh>HJU3ABzDt z-rJ6uYD;Hg99UTSFeXn}SA7pht&qIFed^%|J>UgTLB6TJ2Ehoot<^Yr_QI7wty|ej z4Z5Zrd$+LCN{1m(ETn^XY3!t=-61x>6BY+{E{||Z5x9$H2}Cb}xZ zoU72cXIP7>aM+OhWT`Hhz&YdDdo-kadXGrY!vSh(>`3NHKo@EyOYpUU6vpP=A=#yu(2HahrIh?$yU_!RpEY^!@M>6 z^Qyj8YdsOVGZqey{V`@=a?RaEfNyL#69gX*fD`(+5iOQwq3SXiY=EF&@tIQ?J7^Vb z*8Z&Wy?g(oz1gFVGO_0Pn&M^&mhJnSAm7aO>{Pp!rYbsL()uHpQu%-B#UJC}xorto z31EtHzVWl}l@~hSfk6FNLsHI4oHQ@b)Zyw`g|Ii?Kg?~Zr{~lhUCiEBwm0HB|FHY+ zMPv=@V3^S_-xRwCe00q5AWETP?wl(jTpZJm&A0Gb?Kk+^!x?xVNdjf+ifzH8qoV}x zOBU%pq~pHuB@EBX;Ta7Gj!$j%vlwowWa43qOS&T?#l%==QF=Wkc(kCo|D+y>G}`W} za0`ZQOj7rs&kuT@)j;4!4##S=BAHTA#(RwR<8~SHn zb7SszfdPqfp`7VPOM8Nv>Z%t=^tP{bSZ1&9d}_Ywh&fQgU3m)~=y$1p48Q@OLnG4% z8UC2pkDokx&uX{^GOfBN{T^?K1*?B|u81@?^Xkr`qN+ZSqEc1mnoY&DZRccD^=Qv* z8PO~o8l-G+C3)0kAKZS=Zuyp#B1{2F;eJY8CbJ@P?|Y<&op1w)9>~EhkFQyu&d%bz|k$LzzSy zJI=zRE~*}}L=v!_L;<0GOYzM_$YAOgh)UQaqPW`{*GNq5U)|a}58IDuRS@oLUMYLr z#SNrxjK5zYj`HnHrY$t^=fCi_0Qqy6Q*;l^{(4r>hl7vB1`I<_CKPzd*-%Am1K zf(#E}rDm(&(-tUuOJzeh00HkOd<<&INk1Xr+M2e)M0(~u41=7R42vXrw4^g07=_V5pgF(M==5k*IydIZ61NXm4g+D0hf&-}OLPFk)lqVRrrH|z% zsBG)$VOqZ=(XPFN__qFZK!fV^^a>chwxGsX;KcI{2~R3 zwP1aNVUkR;7F)!Zh1)mRv!Jw+1$JNTv`cnB? z47^nk9Qb@->#+Y2Zg<=x+AI3CT@*)5-_rUX_`=0Ij z48hZJM7WroHJ2?lj^FEk;j>G|@XlE`y=6okrMR~10cIK-$`#%+j-nY(3kt43=L>V8 zjAhQ`U|$>Dp(>*jl;h_Qruv-??b&cJ1sGU5g5?4T0v=rY7y9B~i+aTQx-n7KBT#^Y zva1-KqRx7!Gy{fy_Y4RI{epD6fvIg`UNyhxVq&V(A|hU0<+h+eJ>~azg-!BJa3PSq ze3js5A?^%EocFCD#Fuxwy~RkLz|&{)^+0Y<9&RsAr>)52gTiZuF$dkC)?;Q1FhXf-yXe(`{q2JY zb#qsbri9upA?zTDiKE_wSr7sf6OKyUuM9oKLfdwvn~NTR7Q>39!b{D!LO8Ji+S=I> z?#(CRPTCu7l9c?o2^Cd|_H-|(%!D?0DLS_!H5bHI-HLsFY=0Mdq?ilC;yfMdH7?o> z9@S~NY59PbK^UL&8jNg=^S+pQTKllM{j%cXK(Xy}e0ea$u&8-3>J64tr`<=}Fe@}G zjBt%V4wvEJ6OZbUo#eKO$HGdBBH>G3d!n_5aQAGn@ax_1u3h{ljEXmoopZBCW8&ZI zDsoHk2r!K8gcF(nfdsh-)0g{61A6g z@Cd~Su_`I+$=xgj(7V6L7s#hc{B5PdCE~N6Xl8cn33p;W-XW=!--QmPeW|cDuSGMT z8j>Q#qhVs)KJJFPy^N`YIc*T21;;(zQ)rPgQ6l+&m<9mVFFKgc3H;n$ zEr_F-oc}tWzbUfKi#XbBl&=;2<~l)@>!(g&ycx5?7^1`3ftXpP2P*N{?)FB!n;7NC zjpcibVcHC|fUJ~3ZIWk_Rd);eC9hw9*_OcPi)oJ&6QR<+DSsx2yQgRH%I<&3s$iNr zuHVAE&UQ=X(l{eE!&%QzZ~k--MVslRq7Edpne-zI=(ztp3@R`mJ+y+)%Sq}fd-7`Z zcwMQG)gSS@aY4C=VqQL+u^Lsh1=W+&y-(Bkw5We0h z5x^Oj{~8Mm5TncNNXD353Mu8&wFg~M3K}8qg+YE$t%+rw#sc7=#wiwqo~$OOT>of+ z$JAvyXQ_!(_oXA<=2F*p1E|ECo8Y|k83Z==)ul%XVB_-Eb~ieR^pS~!gHZc%1KrlO z!P(}ybL<|p`%o5nXk!A7++d-z1-U|I;a1?o&oF zO=)(w0l&`Ipw+S9lq$DOPaEvZy>YYWw&ur&Uao_kQsD#4VMjZ!QBS)zxxUrP1+TWE zt#F}&uCamOs@v{1&Li(#0Gra*e0h5|c7AJ_=8qrvZS}hgfAhD=U29L)?LmA3W@%FO z#SQ3&jFK&*I*L4ox=J$kw*vdVCDpaM038eI;*u)>tA#1MTj6}n>k|c8Y00SvZ%r8# z*>%jCaC_WOFyyeIh3rz+4dl(-@v3T>!KPCNqY4q!O|nERwbm5PtV&XT{*0^05$T0=c_<>n*3oHjr4fh45m#J;&s*(iQ$yw< zEqDpbO7qjskzkaep)zS%YVRq0P9NX6#nf*Nm3l)#c7NxqVa&W{ig3%+aM~>N%vsGQxik3|HviWL!C3-3}m zOJ`fP0b$00k@3(ra_w7N*lRh3>gA>Js6Z0mKmGFB8h3q?*6r)Vd3pCaEQrc#uJY5o zOq;zK8m%{9&SC81r)CTEIp-nk`FQb20xy&=T1gV^o?dBtDB0K1rr9InvxKz2wHqtu z>s@pH+t2^-Y@U^~%ny)nEZ^1hDIZ_@TU$DVy6};;(SC-Bd~%M9$|NT))c<9bCY-3V^{der_tWc&FRG|c3L)aEsRMl@iMZ?)PNCtw zs-+@Z`+;^p-~mL4P>>8XDA^bHb%i_{O%mO;+bzPUPlu5bdtyJM$tlHmfSH4Vi!Lr= zjhpZ8o-oJ0jspq_mb~iILvlzY=3?>{fzx3?%TO-D+=lXmRJ>>exn4Jj{bmItQy^ui zNJ=Xqsj8~tVlg5UT~f4*>ijrEq8uHI^3VM~?S~ZcGDa%WOAfRzbuZBUJlp@mmrfK4 zT|zUFCrg&8ARSuSpA;lU6em|rcHq(f7OF%rSTu=-zPZe&p;S?G3@u6A+MfeAeet|- z_)uKNvbj42p2t<3w)`h-4LO5}APiz!E_->0M4U;|)$&K7n`My_s?;aUjhv%JQRFBJ zK4Q+KcdGdRhM8<{DPrv9SsZ>o*b$WyV@9QQB%{gZjb_6V;Nx*&R*>Nt#N1!;Mv98+ zS?WdwC6l&DAUM=R#Dp}=5SIC?uH8!kT-(%FmtW-Sz3%s1q5FNmef@uoXb@{KK7ahs z`Pl(Pv?|~uhTzud7M0r+WhWT-Exa_D#ITz`-g)ICHEI(9Nj7TUC_?M=)yu| z%=$Y*4h8}-OHVT|IFU1$gLU<@3sbaqe!By&_x%;h*fX`Pv~(=7w>2^fip1g3QL~O( zSa2}N!97j745YPijzZz>5o7kkmvJgEM?6axKeSjL1B%Ltcp3Ew|C=%ZzW7m@b@j2O ze^F;OjrGF``BVxYd)wH$_Qzjoj)m+Zzm~FY3Ft$h0J&pt^WI5C!D_C8l9LlVQX)XD zR6K7|!$+-HYrOOfBel&n2Jm4i*Xl~|TiU-|x062W!2XJ4if*F0cKN)vwqEo(l|{7m z@%PV?Z83abU!&JEEWPedKT_Tm{qIGLUQ>I8?f*F*J2jS!B5XdDn|XON(EMfY99^{J Q74Ri3t{_$+V&MNj03Sa%F8}}l literal 135307 zcmY&<1ymeCvn~nl?(T%(u1g@eyE}`!J0!RhTo+AncPF?zED|I@f-UaO+x+jod++OW z=Il(*Om$CnZFkjIUq`Dd%b=r>puoVupv%chs>8s*YQey~3q(SI)*R5W9YQbQti_eYVPNVLQJ>A=q1VVRvU=_?Fa-4fj(2kEbm!1YL=QP7Da1V#O6(7` z&BM&mP#KZ7nz|mkN{T`j&W>zmKxcDHHXlb9=(8{|B4R!+W)}9A9#rO**0xTfjAxy_ zj8wKjQAQnJB@QK*&z3f}vVLxs8h*-}7Jl{?f_Q zD9wKa3qjBSRkPCoMBIQ@Lh6#z|Mdj)N|eUN!^1_0o!#5po6Vb>&DqVGol{Uyke!2z zor{YV`UI=Huak$F537?q?SBc7v~;&{vvu*Xb#|iqC(z8?+0#Rm#?#XlC}d@3#cK`( z^0JznaRXU7Ie})ZWa+TV1GJ6SMMDGxR6eTLe=6RfB#=Wt*6T2D2w3| z8(#^$mreUZ;Bj!Gum`%6%qHAkMwY8xi)G;)E-4y=* zPhK~7L$QP=>1sdh$O{YpS8+LPvez7I;G#WuQv;S16r6iY95&*;ei&`2THLoM`}@!; zWlNYboR+HADV-MbKc&Apj!v$+m~E8OT62tRKDImGF&t>n+E=-TyM^n!A^ ztQ8U+2SXp3n4XPnde4%}Sf~F?9!jdCGFLqspz>NiXN;-wTcP;OST;z>Ac%1dPue8Dr7}j zdiBa52$49E;L`k-?h!Hgo#iNwwRTz4L{9(GcG?QxjXqn-)0VNQ7IH&`hJc3fx%0BA#Hd)_q3JZ6B5Gar=QDr)&LgD8;4{n7wq`1K&haW#buou;jiVS|eCwJn z4_O=bp=H#b{8RDxPJ{te!g44KLKda zGl?Sy=YQH|%KLF<2ddfsIkP}4*e0g&`b15P|G399raP9cLTNTyH`i77n?u@yHBx(O zFS>OvMZ?0uor0ceI}wvgF5TM|wOcB^oLzK4*gMhceDq>cpCWdSxthk4U1ftaow`-D zKd&jqYh0^;i{7wHEG0>bHrik3qCfP_{P{pFj#Mn6K83<`b^Ca$)`D6+FK77hk0Dxw zUqbC$%!u)GLSr+*(34xJO&L9_;Ma9#+8g}xfSYUDfYw(c1htY9j;u0J=V)z5F5tHR zq=?Q;)ElbAvS{yyTg@b`?5sZ^G523(;_DBCGC*(>+Z9)6dBTCo=AYrtP5K`lg^rJD zXnP3rDyL@4eZcF6I0wFOpmarjGgfs-7pp|d)Pm3^j?J|ualEu51Fp2iL|+!TiL(Mo zJZXhpJQg=crynvL8Qgm#XwT=g2U#xJ{uM}d_S}|@PMUGP6)lQAI2@qeM<+j;9M`VZ zH3u99;v@ly=Nvo}w$Q8;%gO}0)7S~mN({F=s*pqbqUL-AEsfeuxeP+;nGrr#zD|lKhl6MMZPSz^I&;!0PTC@;=_5JGIQPSAsP{v_ zA!mgW4ML;MT=B1Z6@7$QrFp(hoVrU*USe&+9F(#=KF76RAYt#8m}Jga9Q|sr-HaE0 zLd~ge= zm-&Zst@lH&!n%z&Se`;EhT-Zhwff`fffu7}ulF5-1rkLiO!3u~8I7EFVuyc!6aEeb zwZy+5e_3@H267dum(SWXOg?I)y5K}XpSmV%u*&d z99?OQDN6}gO&hLQf(RI)k$0WQu6L%VLA;YSYH68%qNWMv-)vPEYnIY`ZXtjjHe}Mq zL#cxKt9p&8a^iCZ+w#aCzOK)fhZv1Ohy=Z;l$l`>mxE#t?Uu zz{;Rp{g&>DOv8p@N7fN%x%Lgq4HvVXw?3j~`&Eb zWdZ!s+lk`Iba4o&+Z zZt(ucXHUZ_u@s2g{a&}XoD12+`f4p_l>rg}5ESNdB2kdRO=K?+$PvQ};cxJNQ)70e zp5212rwP@XAk?r~bhFw*n2$3K^Dh%^OJW?ty6ZKCm+x-#d zb^4{`9`2utLEy<(^pC3@Vi;*MRIg4LvJpq9x$Lo?q^-Y2@0Fz^ez^cgl;u5xGTjr; zuM&If&OE541Ic;Od2`phzoLw|gou!Tn_3#IGU`im$ol3&$rFDUSns8#fi+T;R(dE( zmzmmRju20rSX-Q35f>QHNR^F2eq4tCzHPfiuC3fo4$u+XY`@&d{mAjdN+#r4lu4jD zl77O=f^r>MML6nLXAG~5JTm&tNROIHx)g4?Oluvh@zlv%R#f6?fPYe4Gu?=T_0Z7` znMhK|+7u=wzwqVGT?5dOriIVa!Js)eu=LUe8L5A26M>F<6&b2%4|%zSq$Z-Z@~#(wwUOAp6g73*i>^vt`2GwUjEOUQnZ!{(IQ&x$+sv6~TUZdD@hF z-goZOi;IhQpRnNI#6SH|FVwF5HMNzXX6YJkbO85btW(eRnoPr~E!Ns5=VwK(~;VG@o3VC{mIsW2z`9ql&x_&C%@?3!R3I+%cO3?v}uMWcv^%oi4Ft zU-6-O{V2q_&RuQ&x*>;vfN>Vtc>DZN>7Ll=W5Km7_RM3J)~V~;6p=*xr0(t~OscZX zeKTx(Pc(mTyZK&ynz;Or+OT$wiVk>jf~2m$*6UoH|pF?PR!>ATgATOHp_36 z_4a$`w~y}6kUea?)0bT9Es%=7IBc3!xn#AWd_XuNt<3GP@x$%+e#$R&azvyu2?h|> zl1CaZ7QGm&b0bL-4EKJb{=u(CWl<&rn7?A%g8~R|83{Ojk66QgWi;-T`VM~2Fsqoh z+~^Pgv*K+jsp4Hk7|^#AWZpxwF{ zm+4jgzN`ug%ocsJ;Ovm%I4LOvI=w~c#d5cA-*O_2k+S%yt_dKkM`6T5OGR&JX^|lK54!O~;+ePPqIp*H>x~(z&#kd#_Xi|Ofcmen3S#>yl&$KtWlSoAJCF2{o9*QRP^f^s6*l<;_UH2V)|IXdk*~w3;p(I|d z-TEZ{*K32lw;lr`(h%WV&pKg>-G$nq-%qtx zJ6^XiotUNOcE)uK8a{5cVpUOn(-W8~n3P@XOJr-k;TnQzO@_4Ag2Th~--5-Sk*4J! zx@2ilYIe#JyCl;am?Gm%uAzr`1aY5jMP!ueEqD}UaeTZy);bJDMsSS)NUFo?BV5*1(iv&KqE-cmuLkQfMr&w!-vrBw4z_JZtYFl4I zV_{oPt~<5LJMZ_F2jYTvjDqfuKK4A`+B+eC1a3C4YAzbI6Byt-1~TilOhUBUy?<}1 z^bE9`1ozvBWu+S8-%Vvt-ML%MjkRZXM?b{N$cABdhPH~`=gx@bB>4NGl&YiF^)y}$ zRi4MRC5)UA4NvFyFbY){J@}4(Q5mG82)+hH$aodom$7S&{gNGBGQgR_Kx_Xi4tUs; zF>WtLE!9vb_Sn4&xOw3h;o|zTm`RJ5PEZ%r*P06!#y*C8&57jCp4>PVOpSW&FVa?3 zZ3}5y_6D87^Mqk`f1Q2gxusB`-k;=5z!&DSH9R8-TzlXGeiNU6aNC8Q;e4t*^WEJ9 zd>=ZaYc;f8L`5N&_m!n`=k z8J_*&F0k2QUX%dE&rrAXN-4!<^+qDkdInlN#3&wmh0k@Qk!yt3!0(9VxM-<&cTN`* z`akaerW^~V2n-n;c*3Q?iOTf|X$xbSq{&2Q0A}P(>UBgcN7(8$`7v(pn*83+@7=!= zY-}qx!Qu;XP@5zPb@)I4WQ^E&MWUR1Nmyl9qNTkNunpHD6wUveOfmrjOiMrS^(^<^kI0cmoNqKSEK#D zxP0t%gQYWxk&H@F=)yxs_0{Qg_gi3Cc`?HL2OcCPV-`jnZdVk_DUCOf{7%J;@7W7G z6H?abODjg-wEk$ij>PWUer<6fPZIqWd(k==HkciAy<6l%!s(P2IIUWE_bf0? z#VUB({tlhm_YOJ6USXx%0Y1EDAnWPseb4hl)mpVgR980sU!(SuSC%fzD3bi{Yr2dj@HDS}^42&&YO(JY!l`^P8T z`F2dq$@?f_8P7iLCG9+U)exN5s@eP36w6}~VQ$+n!p;^4vylWxn~wPJCIuQA`(f+m zsUw#oLldF1pD1}q5WAj@zHyp5S##4uBj}h2)C0EBFKZE}pGR;RMjE{q2wL(gOwYf& z`mE&DcJRVq1l;b$P8!!GJqxkk3Xw|}6YC-5PY<-0w~`wyOKtNypoI2|W^awjw`Ifr zQ%+SgH7j+vkUIn&S(3{_`+Qu%xq;<~&Ps;SqlFoYG;nd*fnWor6KN+0-szcq{xSE- z=S^1Rn8)VW2YNaOk`gn6 zFqpjLk<0B;%Lfr*m-4sDh%v42MYj$y>2@qao$HD0vMGNPUyG0LlbJP-83E)28{ZD` zZ0sjz|3wo2=MbR+_3}>$;y={7Wl2?ASy^0=LG3#aYx>@E8*3IC_mV}}j z(@gIRU*b9+3Oi(5^W7qeXDq}Xr)!q1vTt<)KgCqx&P=22DbK$h(n3lEW`EzhMU-a8 z>X#Nz4lAQP%;+p^^4#$CSsoS&M%k5739}*=R}va84bjmVw7BygD#!s+V(c@;*z_S6 z2>3$6GT-M>?Bc8xo5O)W@*Cw5#p~)d87A1_#KTQ(L#s>Xc=@LJE(nJ=E4eX6Z(-08 z)3MVuVZRt=jm4lp&3g2vv|1_eKlXuaw*~Ow7UTEppYc?AjZGIkQ9@vqYu+Qov!|47 z42j-7=X_XJDRRzqj(vmz)aN6!9W!>A&DGokjLPDG_GEbBc_M%v(P;~zb3ury?N$04 zdvhri^`>kud;h&(@H=J7qhI||r?VVbilaR^@(Sgf0}ZVg`xB;)`%LWF0Xsqbp{mF=?&trtgwQv-f3b~l79E7&UWeQ|WrntOkf zLHRR%Mjr*8_%r#fr+#lj9=A=GEXy^S$#Rd?-szK)^V#vj+paEVTPpJYp!=KV-e

xJi&C?;K)7TnC47bZX6a;Ki!Zx)7`krV&pVy9jA^Lll7}w|F+kTBo7Q18G6$>Gg4<6ED~N1@z}Yy7D;}yibnBjv|{46cwUDi5DK!Yk?@$tjz@41}X1Y zL#LN=u-F-)?)W(AS-{UrP&84WIcS^;61#G~^sDRscvs|dUS|~Bf=H~4JA01?*yU$9 zvJp!5;0e|c;eXLG4tV?kF!77((5B4+FGsLgoUJCk0fHE7(D$*Vkcr<>_L}C7-*P^6 z>jhj7N#H23Y>f&92Wa?Cg@Y*5;DM_V6u56gpGFKfeIKbydT&uw#9nX|FfFNDXk*je zZ1E!_3i?_vc6OIj+MZ#Za{S2ox7=v?H?P_EScKw)e26fWku87ivtKNt&RqTZtkSSo zMf%3?_})p#b5}PqPTpQ&20(iuXE5W=E;3`^*s}*L9HZIV!;WMi24O1Qt-~=Ty&s0P>bDq# zCuOu~wAL=3KP3?xizYm`&_!d)viY?dj{Z5Tu-tEa)Q&L1SnOS4Ra{gdEwXEixKmBR zd#9dPpVj@VtJ1T}(?}C6kRitC!3_P??z-f^~`E}roo4**kSnsQeQyy1%j&u80VG5sc(dhkiWTemjez25X+_5S_`Z7-47Xf!x zS~c;`I!@%=-@?M3FMiXiTwLZf3MLze%nCFPS1dSGBJ#cxz~Kk=x&jnzn8z;@Wn@)& z!maN;z>wz#e&YD)G&S52H?JuXE>93K5%#*B)v|Ngu$v{Y>6AQ6q=a;z*=*(f9qTeO z3Uk2A=lZGjzS6VlKfBJ_E-e?hq(i0N7eoEz9_>%`n?5IUlZY8t3u_jRU0+AJZrX)2 zUxVLvT7H$d-dWVTexFRSy-T36eRvXiI9BL-o!6MWcX-#%OEBYdB|Pv5Dsr{HXT?og z(7sp+rnGvT;MQ#xBc^2r0yTvQJK%hi8=hn~b1%@5r99*LU0;Q&f?HEZ!nf2i6go+@ zGN-Jd8Mo=q*{TIP;%a-U7k`=GCnqwk(`GB9Gyo8S%S7s2Sh$DT>`#gndpNT9wC$Gj zSd-1@Vb}SS8Y%$UuwGnd@t@$aSc*VItm9poUh2_#sjHR=M->mvWH!Z6>XPgr%{H^s{ZL2w9RTpqF}hD|h9;xZ$E;w&yNnA6*M zu+v9LwLvHZt6jc!Tt{PbjFd<=JsPy(($YFG_3=v{tTfln-bL8M4PefEgR8mToP#3N^=yASP0|rUo5VjMW z7&`)_|4I87_DVH>cjr?v{--+EB8{0KkDCS=Rl!+D7n6|g+;3Cnv0GC*tO`^}KJa&@ zx?2e=2B*d%gFZ*jwHokuTpz?WO81YIa%(teNhH>B_+gSnWQ3yh_2u-v z`0f5JlS+jn3lQQgP+?y`=8?5=K|hwxHwGb}aee`8yvI^PXiDfoqYM=N><@2IX{$2- zFQbZ+GPlz8AxV0{jjxBU(&h3@@ohA(t)uPt*{*_Yt!vydXnAWk03 z1@oZ)+oo9=3`mCP#qVx#NIRTqj5X*Zlc6n8&*{}m(Y{-XUlw^A$wIw=Fare;_jx1qkyw;;Ofs6tX-=^?@T%Hg*&&}Q3ZR9h>EG{i=9~`XI(AsXSEnOe4;)0YTK_GG= zP|ZUyguFM$W?93ME7q~aRMUpieK&GyF+RN#n#}KCN?@5FQeu#7di=2a+2UTA)Rrr9^z(xtudUss=TW&Yr^ zCEAyZrNnsxt*lHnJF#(&6G2P-s?`sSEvOoS@L77ki=kfe!xG?3d8c&sU|vRjW<5 z1D3uOYeZVfbZW-NbN8Z!EsUx*(JThHTZC|hM$3i&ksn2;*V3a^uK5( z4T`OO@SEU`na^*QhVnEbq#||7*Z74j%rT65)OdX_Z>A{sxN?-BG?5?b%uG=IhbCF- z9q!}5Vl#Q_iI>AVssY_>4HcCQS{&K~ijUH5Th00OzzAAeT00O(aT^LdcKgMyDWMu zx6h!|#TXGb9NA?4}2N>-7n+O42PmP*PDr-HUq`Sr%HsUQWtItN(#8}QuUW4-pM z`&|9X(YJT)34y4a`^%s8sx@ku5)u-s^qVU@dEECVscC46Jb4WNWLoD3rsp{Kv`ghe z|Mu>6Z0y|JjZ)b+uAH2ltn+z+x2t3KSZ#TK+&I%RmXejVn!EX^9}LOPwh2^JR78Wp#>Qsd$*H;9%W-yUeFo1= zJg(_4Y&Kh2S+#r^sK3x_PB+mY&xXp6y=Ta3PS;xS)Hmt05T0o~d_IA`JGYlL=i^9d zN87tk1T{wta-l^b{eQfpZ4}e0QF9$buAAYj397g>YrWeW!T_!(ZZ8mr&XR#PvjiPzK&{m*E zKfyH=-RX1Itw)DF7>10S$zg>>kxb#f3r@?xZNPXPkBr4o-%?)N64afjY+;J_^iM{j z6bQK}j->tJxbvf3;X^fltKjKnNYWrkAxm)gbI^*<`|cH{U<<(~aP1$-o&vln*v_sHUdonCfM(2j&|;mKg8k1&^Q+bA1=weB5;IJmG^WQOVyVyIW8Z zYyRf1@hp7SHQ+uYx=gl3QC-W+!-J*1dIiix^cq>W0w`W1`hQVsRm(#fF&rB(o z%(-lJ1<~1pE&<$48N$DML1QIt5_DsVa^svkv6c~WBqL!LyN3(BNThx0;3bBXN?z!6 z0`-)o(^w`lE4g%ge8>w2DEGF7OR;7-R0CESGEx0;>G>)xMFN;D{Q52KB zY{OsgKuhWm?f98PS0iKd4*{&>$*gHJMZXQk9oZUhN)Q|3=<;TkiK6Mo;zycTp5zzw z4@hL#{jQ_G&wQa?=W}G;*gC^IZ9Y|n$_3^aUMR8*u-L^UINXBgYn zE9F?M=0-i_f4bf-a{oKjvFn2p)MmoU%F0lg4`3kRYFZJIE+gl$v!TblYIJ+ZeP1Xd z|J$3l*;0j890@OUmf|51#{}G)LTvUXvj*N?w%(c(BDP!=t*jXQ?@k@Lb^nq7&b_}k zv)wM!xSvjXZN3FiSla0v!@D=Kd9j@cjEoz#znsdUkpPnF3*TSJq;T^3Wej$_=W|q$ zIN9B-+R(D1V7#qLCw0miue;#qD2&YRt|ul+n&Xf1LG&th-U3KU-nf4v)=mj^xxa)CI_FMqOrr*BuQv~NC<_CuJcHVNl zH4^$fUod99-q!v(nwqlIvZUCrRN4G}Aw&7+>++tPP%p`sh;g#?pa-@YsJ>LhUf)A7 ztWDGDE)#0@QdIWOua+BqEN@XR?c=8`UzVV>(6MK%!pzMf-sg$E?!I)klW-hCm z3k4R8fA1Taz;8zR7N5J;m}Pgixi0YB1t@57{~Vh)E<{^YpV!a)PK;8=0T|tpZO4p? zDkl_}{ry;7k&t*r`+m3mi<%{a*a;7>6Ls5aYl;+?T4vf%dxZ3YKEa2n3A);GNyk%8 zZAZWa$a(T_?2MJ`Rh`o{vA?j2m>>6mvu~=mm`|Rp3T&m=Tf~AoUE^NR(0+c`7yCW= zptbZba_ME$!s6HE>P~*!fmR|SS>*0py9MotXMvBzmqEw_!%2@Ct7ZLz(HUn2^KzAK7pokaJ2neVEUkM zW&i^w4Ge;uwo^U~s%sz53y(hrd~3Cy`bI$#qrV}5xm%+ z(`iePHgm4%*~LWSn#BSJ#`^u@ZvK*OdgCmsC0@R|w{D*m*xrsBO}gL6%r_;3Ya7Rx zlzTv(syI^qnsDky=={3Zia=xEUsO<{2>{rN7$>4tDQq zE_Lb;L!P=&(jav1dD!!cFDThv<0f3kt!!~^ zGhP4%iMn#BIgi3hNBC^3iOeyN9o(AnTN;XzZcym>hi~r&q_KBYuQy2qRrJeYQ9o8_i)TirJ8oZifB*7?u*q5IP?x$raei!84d}zv$2~KYwwH);}e^ z;6Xt4(&2u#Na0}A6t(UasL^B@V=6ooI=pr36x#Nh-qW@syilyd9?)?O^l4+fO~?z2 zY;&vm-p_?TH=NfqFoLtaA2z(1Vpfc3swe^_*E2Bga3A2E%6aKC|B$xMz4?$k28fJ` zC5s^6=ZmuC;& z+4TFxPkn_&%udsSOd(a_ul)1s?U80}G!>!VKse*E`LLp&pC6>ms)}F5W`@>GNn4xX z-Me>C!)(vgsg7niTMHkZnsUt3UiB~nBfwXKHT5jIODYb@S~t8%pznp;(mtCv!t|5p1mbd*ccR|9+~EH1AdpC#sdW+ zMn$9)6SC!&RZK5abC5JM>K=X)S14%Q|1F*JL2FBT{i>|(2a@zOCS#28RBSucE>R?x zX*)zSD8j{tClx~Pi6%4-3_q-$+KC^Lu6I6kQ=irYubOmowRiLn{qblw{8=`?vsF&2 z9z?Ql_iI&JvU+GpEmYpdQFBxPLGtn_Qe{^QdxY?;XV98dMb){%c$v;(ep!Pt#3-fu z%NH=1ps*035e|vOqopOCE{z1FRICOz42h%5F0W>S=Bg5=a`+p4f3Z!kMsnMIA`)u; zvNlDiGJ?9kNg1`)7fX?pwC?eSDoJFnTlWC>h#;!vNrSQPOq5p5db{VRXmf}|tbCdk zN+z1E=u?U`e1}$gu1PkMe1&|p1PfX_f@3y#RD2L)@L{~1cudjdgH6ST^FPk5Vw@k> zwx9fjMdmuI_o`FQW8*=RU0cGLzkV;SDlF4^h5xy_Pt5{V9d_R>M!+4&p2P3V!2AgJ z?!~#FvzC^b_&H#sUIUrR2I-hTi@34(&jfq#pBKV28|FjyZF3Fq;|;`HJaov9Rnxwz zbgbH-wI)7U)Owl>gG^vn!goY|+gZIXhY0F-3VWYA+zI8R?w~rxT|k%6W_!G*J@bYA zY~3as?14y3XY!3nXe1Eijy~PxdzHN`z-y!fd3q5Ii->42?R)=Eo>2K}nGM%{)y%K8 zvinNk-FSX|pH3Sdz*gYh1_8o0G_^ALa<>J|X7sE+_gWNZRDamo&kqh-9SOLelVR<0 zhjsx7ogj5Q$aDYAe-gObF_~qIUUwK3WF1^)>sXH%MC0fK5(1t)*?|V>^?VFpb2SVy zuU5%gMsjy%_l6u|m3Ac;?YJChvpDRil3rvuA3BV4*Lw2%5h@puNS^!qU6LCRJPvFxa*DAV;e*SE%ZOOjAvBG$i&@3AWW3q$CY#LR&cqt%oh_EuAtoMSQKiCbbl1spV>wuFY?(8$^7 zyd6qEgc1-1b90Z&K76oUH#aJ3YQw9ZPKx4uvzk8kZa;a1WD1yx81+jao$*FZiv!yH zd@ZWV`%Tk7ajB)ICE8fTN~5DUYo-67N{)_8VYI0`ll&4H2w7l$mTLkp7tTR|5RysQ z89!f+lm$g8L)SX7*gPI50PZ$(5P0 zG?`E-z#Pgq>OS_OHKuskq1#gN=<< zMSxpmP8<46SB88boaSm&sn>Ih7W#U_&W!oeAJ@9Mzl&+r@Y_YSRm@L}I)Qm{6GXJ6 zr!pic?B{Vk%w0v;r}Y=F5&`S@N4-x`HgG=5`oQJ1w~^m->2K7RVQ^CY03ufR0WIL+ z0GGf?R4N=4!C+lfVcUpJjHNksnPjQ3%G|eOPXOdzBKE)cyL}3HKFwi~3(I+P7Y)Lo zSPxj90#-jp2vP=4%1{RVEUM;Q%p{$_g@asV_U4u(-6P{NG@TRaB_7Y@3O0s&kNClf z2?=$Cn*qCrBeaE|_5LARJ7h}K&}gEns*1qgfvma&4RE*a&Z1jaAf=!3&h?jLE3dPy zQy@AaH%(P-t8L{iIHvKYT{@m*X?Vf1TlrrEyV!F1+|)DEy6IPGWYGXcP;^Oc!FS6* zRsE58Xt?`80Yw`Z$+jMe|M6K3p7U&lpxB~_TXE2$uFO))HJMm^UrqUBmT(T{R&b(a z*x?m+8J1DLZkZu#b`0Q?e%>Jb<=h2HVE zryu-n^u2mfx&Kpqmq}>Ue-OO!IV#qY!{GmJi%Y4qnWK3~5I*Y%a#?T?F|mIfnwVHH zZ-Xi6P*7q|Cp48{wgqMG2c`i$N# zwd8?>VFPeJX?M7+;0X(VG^=5zqiw~*cDX^PUK#n(9=GPcinl0$MX(o*z`ft#UN-N8 zL-0EeC3?J{Y`hr|=F8W92~@nn2U-&D5X{4>2!B(&0a^i7D+ygMPQP>?lG)vHhz^opi4@h6YS%0Wais34J39n|tfnn3)m61HLr@ss z5}+ANjwKycL)wMDk>ZD-D(o<^nV(uvilRu(A5U0Kmt>FFP-Y;`VaqxEZ3G=&*VXI^5f&<*+Y-1H~VHs*0?R63cR44SWzq}+8kb) zRH=omrrKth>RlHC1>FC$G4h|wBb{b02+eK$cX`ItjjPZ`SPN(2`-f782V=;a)Iwnw z74gFvyjQz0saS$B{&g2xhQ_EdU{Om62_>bo<>MB8QCluP9^PvLQ(#8FSa__`mRcL1 z>SJRI)5*?!TV^h}+Q3_H;q5=KTZ|}u!jqD0Bu*Lo6p2BuTKTqCUH8T&n;gb65z__T zMe?c*1=XmK#$mGiw@CETv8Aw~`$?;GKN|Woz33_Y`|9WPT#?o<{?=>|M z-@aiD$+k&OT5%`SnORsY2+94!iz|jqISS@%QhSWIo#Uaz?s#bjN5@}UF?coTsjpS^ z@||rwK?=&TgzP;m#q#i`*4By8#8Zn9c}Rio!@sP-|0@|WLm_tdx&K>HOos1c4CMdU zZrJVM-#Bs1xDU3`gCipb67ug5>R*hw@K`cQndJl*m}>8R<{Kxl46HkjIFs{1QlR?7 zam$!S<&?l03_0KD|FjegUzB$of}%Jcdr;A@sv++tA#!n1I{Kj*j4R3Pz91`ruM!}E zaZ|K-`RP;5M{0Ue((Z?6?&=RywA6sS1zSDs3ofawQr3>8a-cjUuDTb=V~Ls=GWwxf zx~Zmik7SyG0gIASMf}I6kiP~33YYqaaz37|d_5B>JN5S$$a1VZH(K;`^tsFYGkdw8 z)#l!W78gpC{5xf4@}Psm6mvjI;^OHk{zKi2Nx}N!x!qyYH?As|Og%-pAy9`esrd1? zRi&*FSgKt1*T6Io*G!z^IVBytW&K5^1OP$GpE8)dX!GHkwo3L8O0bZzk0K-d`WX_+ z9sy)9do!L#!+`SM4(V_H5G1s{qHgGP!qZ9{b5;9wkmxVyh zLJd!?Tyxw>4<#5ANZcqlQ^=ctIX0)&mYQsdcUUt}{1au|wq{q;^QxH6 zNy5DHI`C^!RDJ0F75kuxnM14Yp)>K`YYBTgjSkyWAm=BW(S=)st#PzQR!gYNSwNh~ z88zC;X{3CW<#N%?gRKSHs@#Rc7OqTW6yRP6h0ggYn%G_2rKTY_?pl#~s>b68?@N3^ zQ>?;v>tkYA7+hC(_nZxnO|w1^iPF{EiDQgg-x?$7_-dUgMV2`nX7?*Kx7DQSaL(D~ z;p7vt2e^6qH3zSh47i%78CQ+_Do!*FvO3M^H6;xqXYb~UCFZs|AI@>U=-|K2Nhe9qx`!sMofxg3P?YzU&31_WA1<0-B6rV4;Nzzfrc2x%)Sq2`L2(%o@5UXU4;TB;-F*=%y>bgm?$PXZjz`)pbh^lXIR*OA+uUlF(?cbx6Qpw$u{RQctEKpxWVECTRMsPZ+X))B~wJV@9_olEoC zmX{@|&gvdHqC8@`*^zZk(QF3~ReCsYA5`y+Q1&d@-yW2w29XfnSiq-wH4gtks5CIe zj47nS7u7bh;!Yd5+bVFzn;vZkq8|DBMwMhtLtHvHYq+qKN%IMkXbmZQ`-QAwO|V<*ems0{e8JWk+y;l z7B=THD?KryE!}qrx56w-4Nh;Wcin*6$?E(qBrepwFC}g@ltV6J={E8Hom=9J9`vWQyS}G9xz03Y*@enH1@PID4o{zV4N=C7`(l$<}lSd9E}oLaI@{ zE>`Wk>jPo`J(>^S&t%JT^RBpsK#kBXqYm`}wqo_SCV~(jE9U#-j9a zKAaN7_t-ntT%~#c9j`L8C20aavSvzCXY{}nfk#hMVX+U(yGH4cU)-s#p?mZ&%?A0+12^v5v+N9F(wZ`em^88mjB3_`_ z)DPnB54h$WC-dDjvO>G}5RWw_<0L9JxA)%AapW0~C(0Mky1SZUho5_%wQ!{&=W zB7xt_{bhIok|C|>kU2@h33o!M9f^O{uCYf9`H8;;4h?m6NBgO*p#R zLw9ps29~tQSqo4TDUGY?D48qbLOcc7$az?;c#;l!(^TFpeq=%tb&YI>@z^3*xe}Y) zzDzE=gp>9!<&S7BY7?1{lt<(8qL^#am{(M^YNOi2MeV)Jiq*9&Xxr3Q^>^HoN zN-~CzHltsw2wl$)eC+s}3+-L4IQh+<JN(md>3=@+@UcSH^+rwf(6)#<@7HKQ91;P7mmrOp^nb%*4V`^&0LpD;Y+MAfoh_8Ru0KX-O6?e7xFWt=_li`Op6 zVluJb0IR8_6SqKID9Ia_7|fl~o&t(}qLg4}!R}0^$m#a@RT&q{&m+U)4Hjar75}lN zSo7Z8z9^zSIc-t;;r5@Lm624=cN_Bfi~<^`bEYO;%df(KyTedzj~dtvz$i~E3llS=VY)whNDkI-`2RGNXgbz z^o*G{|J2IKIH3kSI1W}%6RSd-;odzz4%ddV1PEkbaB?r7qGm{nnZS(|($D}QXES~G zkEOsH_fk1#zvMZ2VX){;*aeN8uWD^e{TS$*ph@h^;cusnnpgV{__Z53&tVaf0K@Ae zfP#7Nht&c8y9W(QtR?`3Zc3s|ybX*lfFV}CsA*_vDLvya8zo+&HcEiE9;!0foEX$q zL!lTQnUk@x!*R%+oYB7-OmcfAhH^cFVdqe&9h}Ps!P(mG(l>bz;()gWCuQ7O!FnCu z4uLGnC(!d%lx$z%9_(I&OGtduLW#XHOr`1_T$O=y9;gt2Z_7E}F%44rtj@$r;%8loJ^h*Z11}(P=ZETb~CE z^LjoD)M&jPCTKl=aX>t~2y00kOnJVQjt{s>jSN?kF6eAeNcv`8#=tWkYrrVBc4(`g z$r`w%?~S_@b#Kj`jX+Nz3M0Q0ykxM`R&qJqWI+)5K>g;!|1BYYnQ@%Qbt=-_tb5Xm zS#TPONLH)Wn}Wu*#_&2%xBbDH=G2+rg9;1Nj5<+AyKf9>tDa{rP)grB8t+@Nlb8@v zB=%+Q;3rti@g#OWln^E2ShZ(XHd%b_9IYLt-7k{Kzx^)jo{|Yo>~x6_Z6NVfl7x+8 zTlnS|2|lqbX~gTOL~21NM`J+P`DL_i`HgG{SUr1g!vDd?uQJnuhCI{jx<>s83E>ml{%JNmq~w|6_s$*|NDXpQ9Qx+F)d(UId4ghpupkXg{^H{n2u)lWt+ z$&kYQdHW0_tT-?1qrtFsvK@GpEq|6NS(_d(OVqkL#yW z)Nw-7WX6*p9Q_p5u*^LkIAga$W}7kM;!W6gm-dqDPuvFHuLTkp6`a>oAJHRy0!f*+ zN0Z&r1X^`1S!9XOKyQD1aPkrOn8E%G6Dv$kK@lDmRj6|)Y|VU4RC2XsSjj)h)zC9w zJ}B1tu^0W+nzc0{kIfDlioBbTHSYM5)HU9$Bi+bVt-Rt7s@@m-#_xf-eQP5Sd97j4 z4WedH*Jx3E|-x+j9S$9^v#+JfiFzJzmyZuaS)tKS||3xo&da5I8%Z z;!N%A_tXQg93HG!{>-Z3g|V??j?{af3rwYPz-$j6#JyuK@XnkjRcV7|Ej&uPmIk@mP@sNdU9~JUY;o1_3RZ_T^DS& z=I>3f^cE+u18tnmmd-!Dz?u+k$cZ{~x*84O5yXw2F&{W_b7pr{V590Ck40m^THl1+W_TJ2 z)M%W6Gwlm!v9Vxe@;f0@y}7tJ>CpA5X7@Sj^|iy1K|I@x}H+%cjY26kaFin@2J7dEeFPj(AjBgu<%r z;$;}w`?4)|P3(aAj3GY<(%^-5UvrxKZtS^PU%r4la#yge;Q3iFn4-7u+xSqoBU|!-Ty1prK?muBezT|A=B% z{`}r#4~bvY=DRCwz;EqCY3WBM_vJD)NUR4YeR1c@C;+@VJ;%lSjx*f#P>+)V@0tdx z&o*pXS$eC>iNYm|0VSk*O!wW%K`0Wb9JwXfZGX{q<+`|ox1J2U1kWbNftbw_><`G| zZWRjIOOmGqFNTr8*w@4x1$vx?O{|c>TK_GLb|aEU$~qsb<1LS=KG~c zNN5Lz?$BF0m^yL3&a<*0wM>SG$zc)?TCR1Q_Elw@M&mxyC+>9lAtm<_9{vgweG?{D%4tFz+&^m)6nU)Q@s|Cb-W zs`=crsA9ZO<7tgNk~+r5pm)NpW%t_!F?0|;^#5kuf#1b*wegpo+vO&aN&-vfGp<6Q2t51; zCYTX9&*y(dC>TBXYr$5n9Xc)nwY|3&mY9g~;QDZ`ZTX)S&h-yiVUXr<= z5$1|6zJ{#g$*;NMu8j%}yHAu_#Ufi^rU8h>*CzznG9LS99@j;peFK|b`h}p1gw$I9 zQc_XrEoPKACo-B2{kI?>dk6SG}K+ zOXlb5tWc3xn{8_%$>hir7;;}i+s!jKrs~B_eaS0Q7z|IV0}1(Y#T46Ou9)5%H)!^D zr4t|ndJULZ+fsm58u4^bsC#)7z$fH`kM;BtmfK2adY|d>toBrgzuWfhX@O4%;R|R*9U2R zNj~XMr&QzUNS!{E4}>A}wZ&n+M5m207>`0}nY990Or*0~3u=i==aO)ys@2xTdDQsH zo0jZ2-_JHlvn}D=-oAd5Za$URVtI6x^f4`WQmV7wVJ4KPqhjf#P~=R}UHYMyLMJCQ zd^5B*6YM-RuA;DW48gFKDmQZV$(n;+nELU^vYC*Py40AKmt!%O@3U>nq0wS0YLf|ZMawxw$9%|D^=D1XQfc4*&nXiI!&A%b&R|Tv zeU*$<#q$Ao+*fb#p$mpKK>!x%O0?pOmL=)0C3@_d&HlcEp(huVA%!JX0?SdJerBE6 z9js+E900yJ1su%cH@_8VMf22IvPy&)&MygC)Bg8c4b}t1$b{134@bhkQ;nSj+VD?* z=P?8d&`CUby0bT9;E8$QfA!TKTzrEmbAzXz7-pv<6OX>#OwrZ@P)Pox6J))XvL zso5UK=(Wqj_l&W>T4!&fR}Kqgy5fo-uXjC?V2+2IHNtJnD^*>AJCR1o>}JsD zsZ>7Abi5^~X41NoBy7UcMum_G$a9aKu8bls&P$ZBRiv~42; z9WG;zM$oh1t|fvVuRSuxR*zUu%jx$~XY+|~8mt9G6fzj0JTIhpwI7_+TWs%j1FSc% z5KfI7;!KqB5LVdi1j~|Vf4aXG1Y<6xTUgNM>%*Gg6o%iOD~~AE zbPrqy;O|w`BBv3QOY=7eYAJ1u(2S!PqBA~PSO3{QMd=|Q;EbAu;H`Js#HkEtto;k1 zbVOz{K3H>FPF4O*IhJNw|GZyuIr`nrM4iMgzdL8>Kc@JJws}p()N(x53tsROA^t(! zw+x$7U(J~g!s}Dk`7;Jlk^Y_o^ZZMv|JiqbzV{t#tJXq;+DA(1=S^!LWZN1UC?tz1 z)is)4D~0uYQG@juG;fS=QmAc?xVShZnoo$+v`^x7!xDLhMCCM1xLM)wmLo7UXws~q z2$&>(LLVtT&NyO$ow@OnK&idoKwnWOhE?@<@1Rq4{MTp4aVM=^lZpI!&G+ZqH?%CA zc6lvX_ATr2?QWQy-3PbJVMX?xEq~>PoGo(_YzwfVzXe@Kw`H3Cq9V`|O``GlOoX=OFl%#Y%dBY$Ex9(T+rA4p2IB354 zb@y;maP|NxqmUN%4si19?wM>Q%MbT10-qGU;)s)v3$rTta;PK260Gkxc|MrpsNhsm z;s=Lso89d=$Sq*;TybiIT=^86Q)abKAG?>IMC}~T7nwceey+V*%GSRaSl<)R9c96t z{)Ms&O?j@SifT&F;? zRa8;iu9=;*D;oY;7LiYL<$@rbTgKPw8uF^D(KiVKgeusD;OnXO0Uk9g1tML#V zbPm_Ne(Tj0o5;9yzb_kc2gQ#(yB{1u$1G4itOA zDPnJ*3SzHTOK!QnsjbF_CV6R$J)pg&dc*2~xJv`02Y_pK zcGoE=snl=A4>grf9-Pwx_uR1pH{?1o=Ef=Fe;=z1r?P4^uYgkE3&-HU165S=XD|Jw zO_2Ee$arvW_d{icG@va3;%m3@3r6hKAQ0siv_w!^UIQF$C-Hb+q4C%qD{+55zm%!5 z)c$HpO=HW~U@kZfL=hT|B$=k^5cTT@4Lf1d5N(fxGmWolvUm5n1i>3KK9Qf7t&(>! zyrgH{jGmTRxv?aiXqzx~d084eAVME$lu?rQ0TLIRIWVD6jyERw&<*mwAl3;H2-wF2 zX?eMR8h%&;EDP)NW9$PZ8A)h!42;?3SJd2w&+Jbj&SHAnq9UfmQpS`rqBP=;h z8@sEWW8VZI>A%~~|425%%xlj_)C&``<}_Q(SX(&Auu&?zGQFET=hvg zxnK7Yz}fTX{5(C1>dFhau@sQ@q>r}r?%GhU__QJos-B#GdN>$1BAXm3J>Qu5E9_DA zc~%o_R`{J$!^c@Ku4jXV1@%lxO=-{D014#S5LORDYy+SOegx565J!785Zh8yTx04J zd2Z`xD)g7BWlb^_0e12~(h+dKo54?I=M6LBYP`DEOH)TUInvr_ThK=);g}>E*yM9Q z;#Ra2IxS@yTrI4-rE_-j`3!H3&Bbo?U;T=`-V9})SyP)XXYQtwS%`J(e#&4L^nrUk zTL5)3el7qzn@~smzwOI=J&SF+JHzw!JpIOP!y)m0;6aJ4GY2yibl+t6h_*(R)*7Ct zqrgtA^Fy>4M&q#ycEn-m1eD8?KUR?61ik&GPx0Si$nft?3X6e9hjLydwb+v`d&Pxn z=GKHcX!n>V#VS=?aov7MFme#-9IsYjyC1yImjOJVONw=uHy8Q0%dedecYar7=>~`1 zp|`bux6exkw+~K_4(`{4i`fj~NeU)_O(pAaKBew&nIkZ3SNl3SYD=%a-Dv`mn>T1F zl|mt#*4sxB%v$jmy;eCsV>Hu>+w=K6gk$CXx;hixK2p~tUP5y@?aZ|C^npd}n%#kb5ElOlUJM2r|5XPi_7s2z9nEk(eSR!Hp$joqilHYT@~8 z%L(>T>B$<1OoY&SnMBEAY(j+9j$>U& zPE^x`Pm^8;5h3J%Z8aaZ?tXXVj8(h{Esz|n1G<~}@`oyI`6b6?6j;Y74l(%Wb%)JC znO%5XV{~V|aq68u+yIN+83bVvivKit-|mYB87bX9ACfp3m%w*F8}Sq&EsC~7$5-&Q zbEWjg55PI1m?*bKP_W7znbN$(5=-hi@>4ZIC+sQ#G5+SvLU_eFQD;MoQI#0aUB?_n zXUdA!BwsmO>Bbf=Zl4^7Ykm*!Q;uzEpgED081C!C;;WKY0H6h~UkZ_2n4!VZ+HYn@IttFI1J`6HnkW*--?uP*tRA$sTDoBh##wH{807hf)WCFXU|=jbG&sC-&al zgedeQOjc`SNCORGrFprN8_dVq1hcQ9Iqh_Zyrz4`9}4qRzCl)hIxqdep2z1%SP7cH=(HVA{u8}cGhRO=0rz_m@4F4_ z8kbbOY9Y<&7EUs0?hm-%@X6W|J|gHaUpLyGW9r^6h>M()o@N}G(^EJ(R*y1+(`iwD zxjzq6v{|t)I2X`Op8@;RO6R`}54T-ciOq=z-#RF;B{|qXN&@N=CtqXZ?d*$m;wS=S zgSDwhVgK1^_u)dh8IccOW;beQOC3k8x*Hd#8+| zj`w4ur~KotkkwOD$bKBweLEo3>u>?;nxQ}60d z)X10`ecL)P+KL4T{Ybh0L`RS42n?bL&rbrHj6XQLSdns25$SrIr*_K#^^9psse|#7LxP zO-_@Njieiib>u;rG=$YT0Aj(oFE|><#zv(A5|P^2sgpJ%-c*O(5^L0R96f57J#p-} zc7+I|&Z2+LdRLmpmaf9l{l{*|=4Po2)B4MdQxMLj$?&bx?NmD^NR%({2b>AXN^iY8 zh1x}Wkk_0bBRKlL9Jsx?@g%N4t=FPtw7zXSXrn)w?&LBG`xNA24%!<-Ji!ybdC6J! zZHIg=uZCd%I#JJ{7LPX4XU(Bzn>H~|U`ws6H!>rlx;%=$ zz(d2WZ!zLBcd=cZNj)>`9irfc{ttLTZjV1KQ93NrFuyqf8ZY-)^Ndk>?p0`0`$^W` zp^UQC)BaU92;r$EXyNAs95Z)~5)Fv^YPANR42xtmkLdL8JAN*Zjr1$IkbeG^G~Wy) zRa@KMEft|+2V8-mxFPR$7Gkr9T6q0yHgl%Vkm}|$E0;vZ(va@w!)MOUC4{YvBg^x! z!9a|qb8~c+e9`caih6d73O34Fc|B9Im0u;x-8KYk`46fW%fYjO1G8mN^R|NS-1^%O z@1N%J3Hk>*M-^nGwvM9fB~i~D?3*(%Xt~D3#b$E(+#jCT=pwYnPVG8}+l|5LQ5-)j zD~j~@!py&22jw#Wq`Tq}ynM0UsSx z04yN}>YiZ>kCKc#^;3y6f+dE}r8d@e91F%T(JnPFH|mN*rbbo_hD$LvX95WkiZt~; zub)p4Q}j%~bH=dS=~I=~HZ2)es8Em^Ry5>2R|bI5A-w2f*5U<$Q8S8rBz$ldccm*! zBAw#$SVsP zndQ2i;RQ-;NTlw(JZ_n`q#p(y-Q})mkZ0%XNBE0)C^{Sgi`h(Xo_Ph$4ycEJ97Nuh z8pdH?R*UMLSD5}}6hF&I-rW9SF$_#C5qJIZnHtVAf{i;~D@^5!d=qSTm;3fgs>l1( z=d5Tx#b_Dvq9&2WB?{Ru57{El4Rq8@tSE_)33Um}K)TlZGl>TCXD;P`aL=)PDDsBK zcKD&k^M0zwOPN$Ud#;@E2#BU;er|cze4R3@fwS)3f-QtvN4>g)z2}P-FzSbfn4}R^ z0)vX<0q(U&3eO%`sD~8a9F4T=9D#_(cO@JbMk!rjdx6HNM^yCJbEuA_AS=L@fv)4t zd5Yrg?+7t+3ioP4V9G{3J5YMcl>v9181Dq#MDpKV`hDXEbynOxN>|k%VG6xBVr6!# z9UXY=5uH9jD=-IGCE?P|3P5W~&1KcOC*AMBNx+?nBN%{v_&$?Vm_f^@A_ z%GgI=Jfo@(YevcOSiNW;a{kEGbPt2UvWb6xYc)ba)D$U|^a5d$H)=8QYL=oY5)spc zMWu^5$oes`Y204qDV2Yqg^NiUv(dc_0yw@S`6wpVhWydSZXeSC6 zIe(WKcNkSLgEv(1GMt4Ao(V^G6If(OPsX`D`SCs!jkq~c8q4i3Q6+2LSTNr2QJK3y zY|H|Wn2(!0(2vx>3w&|#9M4S+AafI%w5rk0J{21K99{ zFBrSV5Y63p1iORH=PHmc5u`Jl*wN7fU0xvxogcK{J>k^ArM}j8@w*F2O>jA%M2VrH z4wWVy6FE@f1ld^JB^-LWMuI{92U%4xt{hfK-k|a1hQ%QpeL^z zKan<9CA{!rLp(t+YP1@V{%{uR{V)ua@A73!tR@hZwwHpA#+8rD;o6KrN=ns9LB}nZ z8~dtOF!zh~`@YWN)#rl{*_)|fSN2Z4LZ9rLD1Ij<3UE+K%;QN2=NHyO67bP@#&)DK zANuy{aVhS+$Rr-&6HAV4iXGvfg=WSw4`;yRPoPUn!vA$bv$3gD5%WGXh>8ia7;B0%XUvo0A6FLEeG09A5O*i08f~e>OLXqX7gP?QW!x z+n$_6yb@d6kEe2 z#EHg@k4pR8HKT9d(Advyn8yuIu|->BN1K}}!UU6g!K2Mem+?2&k|so=1&EG6i46Kp z!3}hHg@;&is>);A4j8C&&9`$cR@~@*K?T9|l2HKR9Au`j@8-+3t`tR{9DtW7Qe8l= zk{nlJ66*BDBwrak@i0V7)R0#7-pmy62?FB+)_r+&Z%`u9687g= zoHXdo`AqxuYex(oWP@57;#8vZMM;8X)?bR&l#hFO(<(4B4(y zQ}N_X5%Zw0CRjlMND7+*W$l0Wt`22h;kpX|VeZK(XZ℞?&bnXD>r|g?(*4T>N+s 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�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 ZpzU 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

uJWKfKXsQWu1ic4U4&T1^RVO1(C`P8pf*l2E<5 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 Date: Tue, 4 Mar 2025 12:16:46 -0800 Subject: [PATCH 741/934] Update .openpublishing.publish.config.json --- .openpublishing.publish.config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.openpublishing.publish.config.json b/.openpublishing.publish.config.json index e7f32c4ae..cd35a893f 100644 --- a/.openpublishing.publish.config.json +++ b/.openpublishing.publish.config.json @@ -34,10 +34,10 @@ } ], "notification_subscribers": [ - "owend@microsoft.com" + "dougklo@microsoft.com" ], "sync_notification_subscribers": [ - "owend@microsoft.com" + "didocs@microsoft.com" ], "branches_to_filter": [], "git_repository_url_open_to_public_contributors": "https://github.com/MicrosoftDocs/query-docs", From fd8e693b5079d3589cfb03ecc2a38b054f1d3e69 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 13:35:56 -0700 Subject: [PATCH 742/934] Update dax-queries.md --- query-languages/dax/dax-queries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dax-queries.md b/query-languages/dax/dax-queries.md index ff9e541aa..c059a392d 100644 --- a/query-languages/dax/dax-queries.md +++ b/query-languages/dax/dax-queries.md @@ -5,7 +5,7 @@ ms.topic: conceptual --- # DAX queries -Reporting clients like Power BI and Excel execute DAX queries whenever visuals display in a report, or a field added to a table, and these DAX queries adjust when a filter is applied. The [performance analyzer](/power-bi/create-reports/desktop-performance-analyzer) in Power BI Desktop can show you these DAX queries and even run them in the DAX query view. +Reporting clients like Power BI and Excel execute DAX queries whenever visuals display in a report, or a field added to a table, and these DAX queries adjust when a filter is applied. The [performance analyzer](/power-bi/create-reports/desktop-performance-analyzer) in Power BI Desktop can show you these DAX queries and even run them in DAX query view of Power BI Desktop. By using [DAX query view](/power-bi/transform-model/dax-query-view) in Power BI Desktop or [Write DAX queries](/power-bi/transform-model/dax-query-view#dax-query-view-in-web) in Power BI service, you can create and run your own DAX queries. With [Microsoft Fabric](/fabric/get-started/microsoft-fabric-overview), you can further increase your productivity with [Copilot to write DAX queries](/dax/dax-copilot) in DAX query view of Desktop or web. In addition to Power BI tools, DAX queries can be run in [Fabric notebooks](/fabric/data-engineering/how-to-use-notebook) using [semantic link](/fabric/data-science/read-write-power-bi-python) to read data from semantic models with python, and with the [Execute Queries REST API](/rest/api/power-bi/datasets/execute-queries), also available in [Power Automate](https://powerbi.microsoft.com/blog/unlocking-new-self-service-bi-scenarios-with-executequeries-support-in-power-automate/). Other tools such as [SQL Server Management Studio](/sql/ssms/download-sql-server-management-studio-ssms) (SSMS), [Power BI Report Builder](/power-bi/paginated-reports/report-builder-power-bi), and open-source tools like [DAX Studio](https://daxstudio.org), also allow you to create and run DAX queries. From a29d8e775ce47dd68e9c5c5bb02d98c3eca6c6b3 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 14:17:48 -0700 Subject: [PATCH 743/934] Create info-functions-dax.md --- query-languages/dax/info-functions-dax.md | 133 ++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 query-languages/dax/info-functions-dax.md diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md new file mode 100644 index 000000000..291791eba --- /dev/null +++ b/query-languages/dax/info-functions-dax.md @@ -0,0 +1,133 @@ + +--- +description: "Learn more about: INFO functions" +title: "INFO functions (DAX)" +--- +# INFO functions + +Data Analysis Expressions (DAX) includes a set of INFO functions based on the library of Dynamic Management Views (DMVs) in Analysis Services, which have been modified to work as DAX functions. INFO DAX functions output as table data type. As DAX function tables they can be used with other DAX functions such as FiLTER, SELECTCOLUMNS, ADDCOLUMNS, and others. This section describes INFO functions available in the DAX language. + +For Power BI semantic models, just like DMVs, the INFO DAX functions require semantic model admin permissions. Some also require workspace admin permissions. + +As DAX functions these INFO DAX functions go beyond the capability of the DMVs, which use a SQL like syntax and return a row set. As these new functions are DAX functions, they can be used like any table in a DAX query – further combined and structured in the DAX query. + +INFO functions are supported on Power BI semantic models but not on SQL Server Analysis Services models, Azure Analysis Services models, or PowerPivot models. + +## INFO.VIEW DAX functions + +Four of the INFO DAX functions also have INFO.VIEW DAX functions counterparts. Friendly names, such as table name instead of table ID, are used and new columns added to make it easier to use without the need to join other INFO DAX function tables. INFO.VIEW DAX functions can be used in calculations inside a semantic model. When included in a calculated table they can self-document a model for other people using it to build reports or DAX queries. + +### INFO.VIEW.TABLES +INFO.VIEW.TABLES contains information about the tables in the model, such as the table name, description, storage mode, and whether it is hidden or not. + +```dax +// Remove EVALUATE when using this DAX function in a calculated table +EVALUATE INFO.VIEW.TABLES() +``` + +:::image type="content" source="media/info-functions-dax/info-view-tables-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-tables-dax-query.png"::: + +### INFO.VIEW.COLUMNS +INFO.VIEW.COLUMNS contains information about the columns in a model, such as the column name, data type, and whether it is hidden or not. + +```dax +// Remove EVALUATE when using this DAX function in a calculated table +EVALUATE INFO.VIEW.COLUMNS() +``` + +:::image type="content" source="media/info-functions-dax/info-view-columns-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.COLUMNS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-columns-dax-query.png"::: + +### INFO.VIEW.MEASURES +INFO.VIEW.MEASURES contains information about the measures in the model, such as the measure name, expression, and format string. + +```dax +// Remove EVALUATE when using this DAX function in a calculated table +EVALUATE INFO.VIEW.MEASURES() +``` + +:::image type="content" source="media/info-functions-dax/info-view-measures-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-measures-dax-query.png"::: + +### INFO.VIEW.RELATIONSHIPS +INFO.VIEW.RELATIONSHIPS contains information about the relationships in the model, such as the to and from table and columns, cardinality, and cross filter direction. + +```dax +// Remove EVALUATE when using this DAX function in a calculated table +EVALUATE INFO.VIEW.RELATIONSHIPS() +``` + +:::image type="content" source="media/info-functions-dax/info-view-relationships-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.RELATIONSHIPS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-relationships-dax-query.png"::: + +## INFO DAX functions + +Here is the list of INFO functions. Some work only on specific compat levels and for certain storage modes or other semantic model properties. + +| [Function] | [Description] | +|-----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------| +| INFO.ALTERNATEOFDEFINITIONS | | +| INFO.ANNOTATIONS | Returns a list of all annotations in the current model with columns matching the schema rowset for annotation objects. | +| INFO.ATTRIBUTEHIERARCHIES | Represents the TMSCHEMA_ATTRIBUTE_HIERARCHIES DMV query function. | +| INFO.ATTRIBUTEHIERARCHYSTORAGES | | +| INFO.CALCDEPENDENCY | Returns information about the calculation dependency for a DAX query. | +| INFO.CALCULATIONGROUPS | | +| INFO.CALCULATIONITEMS | | +| INFO.CATALOGS | Represents the DBSCHEMA_CATALOGS DMV query function. | +| INFO.CHANGEDPROPERTIES | Represents the TMSCHEMA_CHANGED_PROPERTIES DMV query function. | +| INFO.COLUMNPARTITIONSTORAGES | | +| INFO.COLUMNPERMISSIONS | Returns a list of all column permissions in the current model with columns matching the schema rowset for column permissions objects. | +| INFO.COLUMNS | Returns a list of all columns in the current model with columns matching the schema rowset for column objects. | +| INFO.COLUMNSTORAGES | Returns a list of all column storages in the current model with columns matching the schema rowset for column storage objects. | +| INFO.CSDLMETADATA | Returns information about database metadata in XML format. | +| INFO.CULTURES | Returns a list of all cultures in the current model with columns matching the schema rowset for culture objects. | +| INFO.DATACOVERAGEDEFINITIONS | | +| INFO.DATASOURCES | Represents the TMSCHEMA_DATASOURCES DMV query function. | +| INFO.DELTATABLEMETADATASTORAGES | | +| INFO.DEPENDENCIES | Returns information about the calculation dependency for a DAX query. | +| INFO.DETAILROWSDEFINITIONS | Returns a list of all detail rows definitions in the current model with columns matching the schema rowset for detail rows definitions objects. | +| INFO.DICTIONARYSTORAGES | | +| INFO.EXCLUDEDARTIFACTS | Represents the TMSCHEMA_EXCLUDED_ARTIFACTS DMV query function. | +| INFO.EXPRESSIONS | Returns a list of all expressions in the current model with columns matching the schema rowset for expressions objects. | +| INFO.EXTENDEDPROPERTIES | Returns a list of all extended properties in the current model with columns matching the schema rowset for extended properties objects. | +| INFO.FORMATSTRINGDEFINITIONS | | +| INFO.FUNCTIONS | Returns information about the functions that are currently available for use in the DAX programming language. | +| INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES | | +| INFO.GROUPBYCOLUMNS | | +| INFO.HIERARCHIES | Represents the TMSCHEMA_HIERARCHIES DMV query function. | +| INFO.HIERARCHYSTORAGES | | +| INFO.KPIS | Returns a list of all KPIS in the current model with columns matching the schema rowset for KPI objects. | +| INFO.LEVELS | Returns a list of all levels in the current model with columns matching the schema rowset for level objects. | +| INFO.LINGUISTICMETADATA | Represents the TMSCHEMA_LINGUISTIC_METADATA DMV query function. | +| INFO.MEASURES | Returns a list of all measures in the current model with columns matching the schema rowset for measure objects. | +| INFO.MODEL | Represents the TMSCHEMA_MODEL DMV query function. | +| INFO.OBJECTTRANSLATIONS | Returns a list of all object translations in the current model with columns matching the schema rowset for object translation objects. | +| INFO.PARQUETFILESTORAGES | | +| INFO.PARTITIONS | Represents the TMSCHEMA_PARTITIONS DMV query function. | +| INFO.PARTITIONSTORAGES | Returns a list of all partition storages in the current model with columns matching the schema rowset for partition storage objects. | +| INFO.PERSPECTIVECOLUMNS | Returns a list of all perspective columns in the current model with columns matching the schema rowset for perspective columns objects. | +| INFO.PERSPECTIVEHIERARCHIES | Returns a list of all perspective hierarchies in the current model with columns matching the schema rowset for perspective hierarchies objects. | +| INFO.PERSPECTIVEMEASURES | Returns a list of all perspective measures in the current model with columns matching the schema rowset for perspective measures objects. | +| INFO.PERSPECTIVES | Returns a list of all perspectives in the current model with columns matching the schema rowset for perspectives objects. | +| INFO.PERSPECTIVETABLES | Returns a list of all perspective tables in the current model with columns matching the schema rowset for perspective tables objects. | +| INFO.PROPERTIES | Represents the DISCOVER_PROPERTIES DMV query function. | +| INFO.QUERYGROUPS | | +| INFO.REFRESHPOLICIES | | +| INFO.RELATEDCOLUMNDETAILS | | +| INFO.RELATIONSHIPINDEXSTORAGES | | +| INFO.RELATIONSHIPS | Represents the TMSCHEMA_RELATIONSHIPS DMV query function. | +| INFO.RELATIONSHIPSTORAGES | | +| INFO.ROLEMEMBERSHIPS | Returns a list of all role memberships in the current model with columns matching the schema rowset for role memberships objects. | +| INFO.ROLES | Returns a list of all roles in the current model with columns matching the schema rowset for roles objects. | +| INFO.SEGMENTMAPSTORAGES | Returns a list of all segment map storages in the current model with columns matching the schema rowset for segment map storage objects. | +| INFO.SEGMENTSTORAGES | | +| INFO.STORAGEFILES | Returns a list of all storage files in the current model with columns matching the schema rowset for storage file objects. | +| INFO.STORAGEFOLDERS | Returns a list of all storage folders in the current model with columns matching the schema rowset for storage folder objects. | +| INFO.STORAGETABLECOLUMNS | Returns statistics about the columns of in-memory tables. | +| INFO.STORAGETABLECOLUMNSEGMENTS | Returns information about the column segments used for storing data for in-memory tables. | +| INFO.STORAGETABLES | Returns statistics about in-memory tables. | +| INFO.TABLEPERMISSIONS | Returns a list of all table permissions in the current model with columns matching the schema rowset for table permissions objects. | +| INFO.TABLES | Returns a list of all tables in the current model with columns matching the schema rowset for table objects. | +| INFO.TABLESTORAGES | Returns a list of all table storages in the current model with columns matching the schema rowset for table storage objects. | +| INFO.VARIATIONS | Returns a list of all variations in the current model with columns matching the schema rowset for variations objects. | +| INFO.VIEW.COLUMNS | Returns a list of all columns in the current model. | +| INFO.VIEW.MEASURES | Returns a list of all measures in the current model. | +| INFO.VIEW.RELATIONSHIPS | Returns a list of all relationships in the current model. | +| INFO.VIEW.TABLES | Returns a list of all tables in the current model. | From f057bceabe8e1285a0814d19a270e3723a4d3631 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 14:20:26 -0700 Subject: [PATCH 744/934] Add files via upload --- .../info-view-columns-dax-query.png | Bin 0 -> 139980 bytes .../info-view-measures-dax-query.png | Bin 0 -> 151344 bytes .../info-view-relationships-dax-query.png | Bin 0 -> 146666 bytes .../info-view-tables-dax-query.png | Bin 0 -> 140349 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/info-functions-dax/info-view-columns-dax-query.png create mode 100644 query-languages/dax/media/info-functions-dax/info-view-measures-dax-query.png create mode 100644 query-languages/dax/media/info-functions-dax/info-view-relationships-dax-query.png create mode 100644 query-languages/dax/media/info-functions-dax/info-view-tables-dax-query.png diff --git a/query-languages/dax/media/info-functions-dax/info-view-columns-dax-query.png b/query-languages/dax/media/info-functions-dax/info-view-columns-dax-query.png new file mode 100644 index 0000000000000000000000000000000000000000..bb0a0ca899eda958e791ea6af05513821b6731a8 GIT binary patch literal 139980 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 D+}@tM literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/info-functions-dax/info-view-measures-dax-query.png b/query-languages/dax/media/info-functions-dax/info-view-measures-dax-query.png new file mode 100644 index 0000000000000000000000000000000000000000..dff943d1c379b19601f835a30ec4b72c430c6499 GIT binary patch literal 151344 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%0D*+W&<-Z@h@-vx;Uy=a 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%0D2jz#~NVj0pTVqvMZvVStctesa_UAeHPHI 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 From 5354f5c0a5312ac06ed13cbd599c83096383e48e Mon Sep 17 00:00:00 2001 From: v-thepet <20667102+v-thepet@users.noreply.github.com> Date: Fri, 28 Feb 2025 09:19:26 -0800 Subject: [PATCH 740/934] sfi --- .../columnstatistics-result-table.png | Bin 135307 -> 134023 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/query-languages/dax/media/columnstatistics-function-dax/columnstatistics-result-table.png b/query-languages/dax/media/columnstatistics-function-dax/columnstatistics-result-table.png index 5f09f2547f966848fee5d9c6573e66969161cec6..8875591e4d5985a6e43aa401e5cc00219503fa40 100644 GIT binary patch literal 134023 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 MbGr*wzkA334>8UYDO5fteL1!d?iK}r}vkWPsK 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 z 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ξEpd5#YUMN(%INq!asHMsy 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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/info-functions-dax/info-view-tables-dax-query.png b/query-languages/dax/media/info-functions-dax/info-view-tables-dax-query.png new file mode 100644 index 0000000000000000000000000000000000000000..69320dedff6993a687b6bca863b03d04154eb87a GIT binary patch literal 140349 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

YKx8hZMIkI{BL-Vv2 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�%uQ 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 z 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 literal 0 HcmV?d00001 From 9888978f96fe5c94bd42bd15e95c480dc934f23c Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 14:23:52 -0700 Subject: [PATCH 745/934] Fix formatting in INFO functions DAX documentation --- query-languages/dax/info-functions-dax.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index 291791eba..1ff7589ab 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -1,7 +1,6 @@ - --- -description: "Learn more about: INFO functions" title: "INFO functions (DAX)" +description: "Learn more about: INFO functions" --- # INFO functions From 9b6d477ceb1644c70b15bcd81341cc1502ce0815 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 14:30:23 -0700 Subject: [PATCH 746/934] Add DAX query view examples and images --- query-languages/dax/info-functions-dax.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index 1ff7589ab..8b69c4c20 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -24,6 +24,7 @@ INFO.VIEW.TABLES contains information about the tables in the model, such as the EVALUATE INFO.VIEW.TABLES() ``` +This is an example of using this DAX function in DAX query view. This is from the ""Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-tables-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-tables-dax-query.png"::: ### INFO.VIEW.COLUMNS @@ -34,6 +35,7 @@ INFO.VIEW.COLUMNS contains information about the columns in a model, such as the EVALUATE INFO.VIEW.COLUMNS() ``` +This is an example of using this DAX function in DAX query view. This is from the ""Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-columns-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.COLUMNS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-columns-dax-query.png"::: ### INFO.VIEW.MEASURES @@ -44,6 +46,7 @@ INFO.VIEW.MEASURES contains information about the measures in the model, such as EVALUATE INFO.VIEW.MEASURES() ``` +This is an example of using this DAX function in DAX query view. This is from the ""Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-measures-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-measures-dax-query.png"::: ### INFO.VIEW.RELATIONSHIPS @@ -54,6 +57,7 @@ INFO.VIEW.RELATIONSHIPS contains information about the relationships in the mode EVALUATE INFO.VIEW.RELATIONSHIPS() ``` +This is an example of using this DAX function in DAX query view. This is from the ""Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-relationships-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.RELATIONSHIPS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-relationships-dax-query.png"::: ## INFO DAX functions From cf8dad90abaeb046a5fdd7638e4f2cf36f59aefe Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 14:35:23 -0700 Subject: [PATCH 747/934] Add hyperlinks to references in DAX info functions documentation --- query-languages/dax/info-functions-dax.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index 8b69c4c20..cdde521a2 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -4,7 +4,7 @@ description: "Learn more about: INFO functions" --- # INFO functions -Data Analysis Expressions (DAX) includes a set of INFO functions based on the library of Dynamic Management Views (DMVs) in Analysis Services, which have been modified to work as DAX functions. INFO DAX functions output as table data type. As DAX function tables they can be used with other DAX functions such as FiLTER, SELECTCOLUMNS, ADDCOLUMNS, and others. This section describes INFO functions available in the DAX language. +Data Analysis Expressions (DAX) includes a set of INFO functions based on the library of [Dynamic Management Views (DMVs) in Analysis Services](/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services?view=asallproducts-allversions), which have been modified to work as DAX functions. INFO DAX functions output as a table data type. As tables they can be used with other DAX functions such as FiLTER, SELECTCOLUMNS, ADDCOLUMNS, and others. This section describes INFO functions available in the DAX language. For Power BI semantic models, just like DMVs, the INFO DAX functions require semantic model admin permissions. Some also require workspace admin permissions. @@ -14,7 +14,7 @@ INFO functions are supported on Power BI semantic models but not on SQL Server A ## INFO.VIEW DAX functions -Four of the INFO DAX functions also have INFO.VIEW DAX functions counterparts. Friendly names, such as table name instead of table ID, are used and new columns added to make it easier to use without the need to join other INFO DAX function tables. INFO.VIEW DAX functions can be used in calculations inside a semantic model. When included in a calculated table they can self-document a model for other people using it to build reports or DAX queries. +Four of the INFO DAX functions also have INFO.VIEW DAX functions counterparts. Friendly names, such as table name instead of table ID, are used and new columns added to make it easier to use without the need to join other INFO DAX function tables. INFO.VIEW DAX functions can be used in calculations inside a semantic model. When included in a [calculated table](/power-bi/transform-model/desktop-calculated-tables) they can self-document a model for other people using it to build reports or DAX queries. ### INFO.VIEW.TABLES INFO.VIEW.TABLES contains information about the tables in the model, such as the table name, description, storage mode, and whether it is hidden or not. @@ -24,7 +24,7 @@ INFO.VIEW.TABLES contains information about the tables in the model, such as the EVALUATE INFO.VIEW.TABLES() ``` -This is an example of using this DAX function in DAX query view. This is from the ""Regional Sales Sample** available from **Learn** in the Power BI service. +This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using ""Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-tables-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-tables-dax-query.png"::: ### INFO.VIEW.COLUMNS @@ -35,7 +35,7 @@ INFO.VIEW.COLUMNS contains information about the columns in a model, such as the EVALUATE INFO.VIEW.COLUMNS() ``` -This is an example of using this DAX function in DAX query view. This is from the ""Regional Sales Sample** available from **Learn** in the Power BI service. +This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using ""Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-columns-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.COLUMNS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-columns-dax-query.png"::: ### INFO.VIEW.MEASURES @@ -46,7 +46,7 @@ INFO.VIEW.MEASURES contains information about the measures in the model, such as EVALUATE INFO.VIEW.MEASURES() ``` -This is an example of using this DAX function in DAX query view. This is from the ""Regional Sales Sample** available from **Learn** in the Power BI service. +This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using ""Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-measures-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-measures-dax-query.png"::: ### INFO.VIEW.RELATIONSHIPS @@ -57,7 +57,7 @@ INFO.VIEW.RELATIONSHIPS contains information about the relationships in the mode EVALUATE INFO.VIEW.RELATIONSHIPS() ``` -This is an example of using this DAX function in DAX query view. This is from the ""Regional Sales Sample** available from **Learn** in the Power BI service. +This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using ""Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-relationships-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.RELATIONSHIPS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-relationships-dax-query.png"::: ## INFO DAX functions From 0076626de99f258e590c227c662842cdd1b3c193 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 14:36:32 -0700 Subject: [PATCH 748/934] Fix formatting of "Regional Sales Sample" in DAX examples --- query-languages/dax/info-functions-dax.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index cdde521a2..09d204ea7 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -24,7 +24,7 @@ INFO.VIEW.TABLES contains information about the tables in the model, such as the EVALUATE INFO.VIEW.TABLES() ``` -This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using ""Regional Sales Sample** available from **Learn** in the Power BI service. +This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using **Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-tables-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-tables-dax-query.png"::: ### INFO.VIEW.COLUMNS @@ -35,7 +35,7 @@ INFO.VIEW.COLUMNS contains information about the columns in a model, such as the EVALUATE INFO.VIEW.COLUMNS() ``` -This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using ""Regional Sales Sample** available from **Learn** in the Power BI service. +This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using **Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-columns-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.COLUMNS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-columns-dax-query.png"::: ### INFO.VIEW.MEASURES @@ -46,7 +46,7 @@ INFO.VIEW.MEASURES contains information about the measures in the model, such as EVALUATE INFO.VIEW.MEASURES() ``` -This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using ""Regional Sales Sample** available from **Learn** in the Power BI service. +This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using **Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-measures-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-measures-dax-query.png"::: ### INFO.VIEW.RELATIONSHIPS @@ -57,7 +57,7 @@ INFO.VIEW.RELATIONSHIPS contains information about the relationships in the mode EVALUATE INFO.VIEW.RELATIONSHIPS() ``` -This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using ""Regional Sales Sample** available from **Learn** in the Power BI service. +This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using **Regional Sales Sample** available from **Learn** in the Power BI service. :::image type="content" source="media/info-functions-dax/info-view-relationships-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.RELATIONSHIPS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-relationships-dax-query.png"::: ## INFO DAX functions From 6ba48d3e30679a16f9cecd4b6f387b6579267593 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 14:37:43 -0700 Subject: [PATCH 749/934] Update link in INFO functions description --- query-languages/dax/info-functions-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index 09d204ea7..912594020 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -4,7 +4,7 @@ description: "Learn more about: INFO functions" --- # INFO functions -Data Analysis Expressions (DAX) includes a set of INFO functions based on the library of [Dynamic Management Views (DMVs) in Analysis Services](/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services?view=asallproducts-allversions), which have been modified to work as DAX functions. INFO DAX functions output as a table data type. As tables they can be used with other DAX functions such as FiLTER, SELECTCOLUMNS, ADDCOLUMNS, and others. This section describes INFO functions available in the DAX language. +Data Analysis Expressions (DAX) includes a set of INFO functions based on the library of [Dynamic Management Views (DMVs) in Analysis Services](/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services), which have been modified to work as DAX functions. INFO DAX functions output as a table data type. As tables they can be used with other DAX functions such as FiLTER, SELECTCOLUMNS, ADDCOLUMNS, and others. This section describes INFO functions available in the DAX language. For Power BI semantic models, just like DMVs, the INFO DAX functions require semantic model admin permissions. Some also require workspace admin permissions. From 899f3ef59a7a0f116d4a88f9896abc5eb66e5233 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 17:59:17 -0700 Subject: [PATCH 750/934] Update DAX info functions documentation --- query-languages/dax/info-functions-dax.md | 39 +++++++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index 912594020..242d78981 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -1,14 +1,35 @@ --- title: "INFO functions (DAX)" -description: "Learn more about: INFO functions" +description: "Learn more about: INFO DAX functions" +author: DataZoeMS +ms.author: zoedouglas +ms.date: 03/13/2025 +ms.topic: overview +ms.service: powerbi +ms.subservice: dax --- # INFO functions -Data Analysis Expressions (DAX) includes a set of INFO functions based on the library of [Dynamic Management Views (DMVs) in Analysis Services](/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services), which have been modified to work as DAX functions. INFO DAX functions output as a table data type. As tables they can be used with other DAX functions such as FiLTER, SELECTCOLUMNS, ADDCOLUMNS, and others. This section describes INFO functions available in the DAX language. +Data Analysis Expressions (DAX) includes a set of INFO functions based on the library of [Dynamic Management Views (DMVs) in Analysis Services](/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services), which have been modified to work as DAX functions. INFO DAX functions output as a table data type. As tables they can be used with other DAX functions such as FILTER, SELECTCOLUMNS, ADDCOLUMNS, and others. This section describes INFO functions available in the DAX language. For Power BI semantic models, just like DMVs, the INFO DAX functions require semantic model admin permissions. Some also require workspace admin permissions. -As DAX functions these INFO DAX functions go beyond the capability of the DMVs, which use a SQL like syntax and return a row set. As these new functions are DAX functions, they can be used like any table in a DAX query – further combined and structured in the DAX query. +As DAX functions these INFO functions go beyond the capability of the DMVs, which use a SQL-like syntax and return a row set. As these new functions are DAX functions, they can be used like any table in a DAX query – further combined and structured in the DAX query. + +```dax +EVALUATE + ADDCOLUMNS( + SELECTCOLUMNS( + INFO.VIEW.MEASURES(), + "Measure", [Name], + [Description], + "DAX Formula", [Expression], + "State", [State] + ), + "Model name", "My semantic model", + "As of date", NOW() + ) +``` INFO functions are supported on Power BI semantic models but not on SQL Server Analysis Services models, Azure Analysis Services models, or PowerPivot models. @@ -24,7 +45,8 @@ INFO.VIEW.TABLES contains information about the tables in the model, such as the EVALUATE INFO.VIEW.TABLES() ``` -This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using **Regional Sales Sample** available from **Learn** in the Power BI service. +The following screenshot is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view) with the **Regional Sales Sample** available from **Learn** in the Power BI service. + :::image type="content" source="media/info-functions-dax/info-view-tables-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-tables-dax-query.png"::: ### INFO.VIEW.COLUMNS @@ -35,7 +57,8 @@ INFO.VIEW.COLUMNS contains information about the columns in a model, such as the EVALUATE INFO.VIEW.COLUMNS() ``` -This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using **Regional Sales Sample** available from **Learn** in the Power BI service. +The following screenshot is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view) with the **Regional Sales Sample** available from **Learn** in the Power BI service. + :::image type="content" source="media/info-functions-dax/info-view-columns-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.COLUMNS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-columns-dax-query.png"::: ### INFO.VIEW.MEASURES @@ -46,7 +69,8 @@ INFO.VIEW.MEASURES contains information about the measures in the model, such as EVALUATE INFO.VIEW.MEASURES() ``` -This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using **Regional Sales Sample** available from **Learn** in the Power BI service. +The following screenshot is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view) with the **Regional Sales Sample** available from **Learn** in the Power BI service. + :::image type="content" source="media/info-functions-dax/info-view-measures-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-measures-dax-query.png"::: ### INFO.VIEW.RELATIONSHIPS @@ -57,7 +81,8 @@ INFO.VIEW.RELATIONSHIPS contains information about the relationships in the mode EVALUATE INFO.VIEW.RELATIONSHIPS() ``` -This is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view). This is using **Regional Sales Sample** available from **Learn** in the Power BI service. +The following screenshot is an example of using this DAX function in [DAX query view](/power-bi/transform-model/dax-query-view) with the **Regional Sales Sample** available from **Learn** in the Power BI service. + :::image type="content" source="media/info-functions-dax/info-view-relationships-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.RELATIONSHIPS() DAX function in DAX query view." lightbox="media/info-functions-dax/info-view-relationships-dax-query.png"::: ## INFO DAX functions From 40e71daee78a8418606b2fcf1a88b5aecd266d21 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 19:37:36 -0700 Subject: [PATCH 751/934] Update toc.yml --- query-languages/dax/toc.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index d2efd76d5..e532bd378 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -832,6 +832,10 @@ items: href: totalqtd-function-dax.md - name: TOTALYTD href: totalytd-function-dax.md + - name: INFO functions + items: + - name: INFO functions overview + href: info-functions-dax.md - name: DAX statements items: - name: Statements overview From a055033975dd7ca75252031d4f3e73c9bfb85900 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Thu, 13 Mar 2025 19:41:42 -0700 Subject: [PATCH 752/934] Reorganize INFO functions in TOC --- query-languages/dax/toc.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index e532bd378..f4adf0d87 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -310,6 +310,10 @@ items: href: yielddisc-function-dax.md - name: YIELDMAT href: yieldmat-function-dax.md + - name: INFO functions + items: + - name: INFO functions overview + href: info-functions-dax.md - name: Information functions items: - name: Information functions overview @@ -832,10 +836,6 @@ items: href: totalqtd-function-dax.md - name: TOTALYTD href: totalytd-function-dax.md - - name: INFO functions - items: - - name: INFO functions overview - href: info-functions-dax.md - name: DAX statements items: - name: Statements overview From bd179d6268e554e85d94cfceae3f1d463c916f86 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 14 Mar 2025 13:44:02 -0700 Subject: [PATCH 753/934] Add special behavior for extending --- query-languages/dax/dateadd-function-dax.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index aa0837ad7..63a97927c 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -57,6 +57,16 @@ The following formula calculates dates that are one year before the dates in the = DATEADD(DateTime[DateKey],-1,year) ``` +## Special behavior + +When selection includes last two days of month, it will use "extension" semantics and will includes day till end of month. For example, when Feb 27 and 28 of 2013 are included and a month is added, it will get March 27 to 31. + +This behavior will only happen when last two days of month are included. If only Feb 27 is selected, it will go to March 27. + +```dax += DATEADD(DateTime[DateKey], 1, month) +``` + ## Related content [Time intelligence functions](time-intelligence-functions-dax.md) From 57e6728b30edfe6f8502aa8173d36f5cd14a79e2 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 14 Mar 2025 13:46:17 -0700 Subject: [PATCH 754/934] Remove unnecessary file. --- query-languages/dax/dateadd-function-dax.md | 73 --------------------- 1 file changed, 73 deletions(-) delete mode 100644 query-languages/dax/dateadd-function-dax.md diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md deleted file mode 100644 index 63a97927c..000000000 --- a/query-languages/dax/dateadd-function-dax.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -description: "Learn more about: DATEADD" -title: "DATEADD function (DAX)" ---- -# DATEADD - -[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] - -Returns a table that contains a column of dates, shifted either forward or backward in time by the specified number of intervals from the dates in the current context. - -## Syntax - -```dax -DATEADD(,,) -``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|`dates`|A column that contains dates.| -|`number_of_intervals`|An integer that specifies the number of intervals to add to or subtract from the dates.| -|`interval`|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`, `day`| - -## Return value - -A table containing a single column of date values. - -## Remarks - -The `dates` argument can be any of the following: - -- A reference to a date/time column, - -- A table expression that returns a single column of date/time values, - -- A Boolean expression that defines a single-column table of date/time values. - - > [!NOTE] - > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). - -- If the number specified for `number_of_intervals` is positive, the dates in `dates` are moved forward in time; if the number is negative, the dates in `dates` are shifted back in time. - -- The `interval` parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month`, `day` should be spelled in full when using them. - -- The result table includes only dates that exist in the `dates` column. - -- If the dates in the current context do not form a contiguous interval, the function returns an error. - -- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] - -## Example - Shifting a set of dates - -The following formula calculates dates that are one year before the dates in the current context. - -```dax -= DATEADD(DateTime[DateKey],-1,year) -``` - -## Special behavior - -When selection includes last two days of month, it will use "extension" semantics and will includes day till end of month. For example, when Feb 27 and 28 of 2013 are included and a month is added, it will get March 27 to 31. - -This behavior will only happen when last two days of month are included. If only Feb 27 is selected, it will go to March 27. - -```dax -= DATEADD(DateTime[DateKey], 1, month) -``` - -## Related content - -[Time intelligence functions](time-intelligence-functions-dax.md) -[Date and time functions](date-and-time-functions-dax.md) From 888ea5c0d54c5babc8f040e86706eebeaedf8f41 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 14 Mar 2025 13:46:55 -0700 Subject: [PATCH 755/934] Add back. --- query-languages/dax/dateadd-function-dax.md | 73 +++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 query-languages/dax/dateadd-function-dax.md diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md new file mode 100644 index 000000000..63a97927c --- /dev/null +++ b/query-languages/dax/dateadd-function-dax.md @@ -0,0 +1,73 @@ +--- +description: "Learn more about: DATEADD" +title: "DATEADD function (DAX)" +--- +# DATEADD + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations-discouraged](includes/applies-to-measures-columns-tables-visual-calculations-discouraged.md)] + +Returns a table that contains a column of dates, shifted either forward or backward in time by the specified number of intervals from the dates in the current context. + +## Syntax + +```dax +DATEADD(,,) +``` + +### Parameters + +|Term|Definition| +|--------|--------------| +|`dates`|A column that contains dates.| +|`number_of_intervals`|An integer that specifies the number of intervals to add to or subtract from the dates.| +|`interval`|The interval by which to shift the dates. The value for interval can be one of the following: `year`, `quarter`, `month`, `day`| + +## Return value + +A table containing a single column of date values. + +## Remarks + +The `dates` argument can be any of the following: + +- A reference to a date/time column, + +- A table expression that returns a single column of date/time values, + +- A Boolean expression that defines a single-column table of date/time values. + + > [!NOTE] + > Constraints on Boolean expressions are described in the topic, [CALCULATE function](calculate-function-dax.md). + +- If the number specified for `number_of_intervals` is positive, the dates in `dates` are moved forward in time; if the number is negative, the dates in `dates` are shifted back in time. + +- The `interval` parameter is an enumeration, not a set of strings; therefore values should not be enclosed in quotation marks. Also, the values: `year`, `quarter`, `month`, `day` should be spelled in full when using them. + +- The result table includes only dates that exist in the `dates` column. + +- If the dates in the current context do not form a contiguous interval, the function returns an error. + +- [!INCLUDE [function-not-supported-in-directquery-mode](includes/function-not-supported-in-directquery-mode.md)] + +## Example - Shifting a set of dates + +The following formula calculates dates that are one year before the dates in the current context. + +```dax += DATEADD(DateTime[DateKey],-1,year) +``` + +## Special behavior + +When selection includes last two days of month, it will use "extension" semantics and will includes day till end of month. For example, when Feb 27 and 28 of 2013 are included and a month is added, it will get March 27 to 31. + +This behavior will only happen when last two days of month are included. If only Feb 27 is selected, it will go to March 27. + +```dax += DATEADD(DateTime[DateKey], 1, month) +``` + +## Related content + +[Time intelligence functions](time-intelligence-functions-dax.md) +[Date and time functions](date-and-time-functions-dax.md) From 0324c48138e7f1f2f4cefb200b41c4234a9c0e10 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 14 Mar 2025 13:47:14 -0700 Subject: [PATCH 756/934] Remove unnecessary file. --- query-languages/dax/lookup-function-dax.md | 65 ---------------------- 1 file changed, 65 deletions(-) delete mode 100644 query-languages/dax/lookup-function-dax.md diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md deleted file mode 100644 index ccbb4b95f..000000000 --- a/query-languages/dax/lookup-function-dax.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -description: "Learn more about: LOOKUP" -title: "LOOKUP function (DAX) | Microsoft Docs" ---- -# LOOKUP - -Used in visual calculation only. The Lookup function allows user to retrieve a value in a cell in the visual matrix using absolute navigation. User can specify a value as filter for any axis on the visual matrix and anything not specified will be inferred from the context. If Lookup could not result in single value, it will return an error. - -## Syntax - -```dax -LOOKUP([, [, [, …]]]) -``` - -### Parameters - -|Term|Definition| -|--------|--------------| -|column| Only column reference is allowed, For example [Sales] is allowed, but [Sales] – [Cost] is not, nor is SUM([Sales]) | -|filter1, filter2,…|(Optional) Filter has to be either: 1. An equality filter. For example [Year]=2019 or [Year]=MAX([Year]). 2. -The Collapse function. For example, LOOKUP([Sales], Collapse([Country])) returns the subtotal value for Sales for all Countries| - -## Return value - -The value of **column** at the row after filters are applied. - -If there isn't a match that satisfies all the search values, an error is returned. - -If multiple rows match the filters, an error is returned. - -## Example 1 - -In this example, LOOKUP retrieves the sum of sale easily when [Year] = 2006, [MonthNumberOfYear] = 1, [Month] = "January". - -```dax -// GB column references -Define -var _Core = SUMMARIZECOLUMNS( - 'DimDate'[Year], - 'DimDate'[Month], 'DimDate'[MonthNumberOfYear], - 'DimProduct'[ProductCategoryName], - 'DimProduct'[ProductSubcategoryName], - "SumOfInternetSales", CALCULATE(SUM('FactInternetSales'[SalesAmount])) - ) -table t = _Core - with visual shape - axis rows - group [Year] - group [Month], [MonthNumberOfYear] - order by [Year], [MonthNumberOfYear] - axis columns - group [ProductCategoryName] - group [ProductSubcategoryName] - order by [ProductCategoryName], [ProductSubcategoryName] - densify "isDensified" - -column t[ccLookup] = -lookup([SumOfInternetSales], [Year] = 2006, [MonthNumberOfYear] = 1, [Month] = "January") - -evaluate selectcolumns( - filter(t, not isblank([SumOfInternetSales])), - [ProductCategoryName], [ProductSubcategoryName], [Year], [MonthNumberOfYear], [SumOfInternetSales], [ccLookup] -) -order by [ProductCategoryName], [ProductSubcategoryName], [Year], [MonthNumberOfYear] -``` From bc9910727a7e9c3bc552343b02fbf5d0bf54a0f6 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 14 Mar 2025 13:48:08 -0700 Subject: [PATCH 757/934] Modify wording. --- query-languages/dax/dateadd-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index 63a97927c..64b6f75e8 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -61,7 +61,7 @@ The following formula calculates dates that are one year before the dates in the When selection includes last two days of month, it will use "extension" semantics and will includes day till end of month. For example, when Feb 27 and 28 of 2013 are included and a month is added, it will get March 27 to 31. -This behavior will only happen when last two days of month are included. If only Feb 27 is selected, it will go to March 27. +This behavior only happens when last two days of month are included. If only Feb 27 is selected, it will go to March 27. ```dax = DATEADD(DateTime[DateKey], 1, month) From c804c8259aadb37a4e333f04c871b1a68c94a4dc Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 14 Mar 2025 13:49:45 -0700 Subject: [PATCH 758/934] Fix grammar. --- query-languages/dax/dateadd-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index 64b6f75e8..6c986e97c 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -59,7 +59,7 @@ The following formula calculates dates that are one year before the dates in the ## Special behavior -When selection includes last two days of month, it will use "extension" semantics and will includes day till end of month. For example, when Feb 27 and 28 of 2013 are included and a month is added, it will get March 27 to 31. +When selection includes last two days of month, it will use "extension" semantics and will include days till end of month. For example, when Feb 27 and 28 of 2013 are included and a month is added, it will get March 27 to 31. This behavior only happens when last two days of month are included. If only Feb 27 is selected, it will go to March 27. From 84bda689fa410f85acd77f6d175de95d532c5177 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 14 Mar 2025 14:41:37 -0700 Subject: [PATCH 759/934] Fix more. --- query-languages/dax/dateadd-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/dateadd-function-dax.md b/query-languages/dax/dateadd-function-dax.md index 6c986e97c..32fa7fef5 100644 --- a/query-languages/dax/dateadd-function-dax.md +++ b/query-languages/dax/dateadd-function-dax.md @@ -59,9 +59,9 @@ The following formula calculates dates that are one year before the dates in the ## Special behavior -When selection includes last two days of month, it will use "extension" semantics and will include days till end of month. For example, when Feb 27 and 28 of 2013 are included and a month is added, it will get March 27 to 31. +When the selection includes the last two days of month, DATEADD will use "extension" semantics and will include the days till the end of month. For example, when Feb 27 and 28 of 2013 are included in the selection and a month is added, DATEADD will return March 27 to 31. -This behavior only happens when last two days of month are included. If only Feb 27 is selected, it will go to March 27. +This behavior only happens when last two days of month are included in the selection. If only Feb 27 is selected, it will go to March 27. ```dax = DATEADD(DateTime[DateKey], 1, month) From 91a2da80da84f23fffed0a5a245ccc06f0d8ab04 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 14:54:13 -0700 Subject: [PATCH 760/934] Update dax-function-reference.md --- query-languages/dax/dax-function-reference.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/dax/dax-function-reference.md b/query-languages/dax/dax-function-reference.md index 1737da8b3..fd9ab9c96 100644 --- a/query-languages/dax/dax-function-reference.md +++ b/query-languages/dax/dax-function-reference.md @@ -21,6 +21,8 @@ The DAX function reference provides detailed information including syntax, param [Financial functions](financial-functions-dax.md) - These functions are used in formulas that perform financial calculations, such as net present value and rate of return. +[INFO functions](info-functions-dax.md) - These functions return metadata about your semantic model, such as the tables, columns, relationships, and calculation DAX formulas. They can help you understand and document the model. They are based on the library of [Dynamic Management Views (DMVs) in Analysis Services](/analysis-services/instances/use-dynamic-management-views-dmvs-to-monitor-analysis-services), which have been modified to work as DAX functions. + [Information functions](information-functions-dax.md) - These functions look at a table or column provided as an argument to another function and returns whether the value matches the expected type. For example, the ISERROR function returns `TRUE` if the value you reference contains an error. [Logical functions](logical-functions-dax.md) - These functions return information about values in an expression. For example, the `TRUE` function lets you know whether an expression that you are evaluating returns a `TRUE` value. From 30d9beb46e332913a17100a0d9f7437cdda78f99 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 15:05:39 -0700 Subject: [PATCH 761/934] Update info-functions-dax.md --- query-languages/dax/info-functions-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index 242d78981..ea432ff43 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -31,7 +31,7 @@ EVALUATE ) ``` -INFO functions are supported on Power BI semantic models but not on SQL Server Analysis Services models, Azure Analysis Services models, or PowerPivot models. +INFO functions are supported on Power BI semantic models but not on SQL Server Analysis Services models, Azure Analysis Services models, or PowerPivot models. INFO.VIEW DAX functions can be run in calculated tables, columns, measures, and DAX queries, but other INFO DAX functions can only be run in DAX queries. ## INFO.VIEW DAX functions From 5e4cc3aa559d34bf1e5187b6c7f3f520d42e4807 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 16:53:12 -0700 Subject: [PATCH 762/934] Create info-view-tables-function-dax.md --- .../dax/info-view-tables-function-dax.md | 151 ++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 query-languages/dax/info-view-tables-function-dax.md diff --git a/query-languages/dax/info-view-tables-function-dax.md b/query-languages/dax/info-view-tables-function-dax.md new file mode 100644 index 000000000..2a261665d --- /dev/null +++ b/query-languages/dax/info-view-tables-function-dax.md @@ -0,0 +1,151 @@ +--- +description: "Learn more about: INFO.VIEW.TABLES" +title: "INFO.VIEW.TABLES function (DAX)" +author: DataZoeMS +--- +# INFO.VIEW.TABLES + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + +Returns a table with information about each table in the semantic model, such as table name, description, and storage mode. This information helps you understand the model and to self-document the model when used in calculated tables. + +## Syntax + +```dax +INFO.VIEW.TABLES() +``` + +## Return value + +A table with the following columns: + +| Column | Description | +|---|---| +| [ID] | The unique ID for each table in this semantic model as an integer. | +| [Name] | The name of each table in this semantic model as a string. | +| [Model] | The ID of the table's semantic model as a GUID. | +| [DataCategory] | The data category of each tablein this semantic model as a string. | +| [Description] | The description of each tablein this semantic model as a string. | +| [IsHidden] | The hidden state of each table in this semantic model as TRUE or FALSE. | +| [StorageMode] | The storage mode of each table in this semantic model as a string. | +| [TableStorage] | The name and unique ID of each table in this semantic model as a string. | +| [Expression] | The DAX formula of each table in this semantic model as a string. Only applies to calculated tables. | +| [ShowAsVariationOnly] | The show as variation only state of each table in this semantic model as TRUE or FALSE. | +| [IsPrivate] | The private state of each table in this semantic model as TRUE or FALSE. | +| [CalculationGroupPrecedence] | The calculation group precedence of each table in this semantic model as an integer. Only applies to calculation groups. | +| [LineageTag] | The lineage tag of each table in this semantic model as a string. | + +## Remarks + +Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in calculated tables, columns, and measures of a semantic model and will update when the model is refreshed. + +## Example 1 - DAX query + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + INFO.VIEW.TABLES() +``` + +This DAX query returns a table with all of the columns of this DAX function. + +:::image type="content" source="media/info-view-tables-function-dax/dax-query-example-1.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() DAX function in DAX query view." lightbox="media/info-view-tables-function-dax/dax-query-example-1.png"::: + +## Example 2 - DAX query with SELECTCOLUMNS and ADDCOLUMNS + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + ADDCOLUMNS( + SELECTCOLUMNS( + INFO.VIEW.TABLES(), + "Table", [Name], + [Description], + "Storage mode", [StorageMode], + "Calc table DAX formula", [Expression], + "Calc group precedence", [CalculationGroupPrecedence], + [DataCategory] + ), + "Table type", SWITCH( + TRUE(), + NOT (ISBLANK([Calc group precedence])), "Calculation group", + NOT (ISBLANK([Calc table DAX formula])), "Calculated (DAX) table", + [DataCategory] = "Time", "Date table", + [DataCategory] + ) + ) +``` + +This DAX query returns a table with only the specified columns and a new column to categorize the tables with a DAX formula. + +:::image type="content" source="media/info-view-tables-function-dax/dax-query-example-2.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() with selected columns in DAX query view." lightbox="media/info-view-tables-function-dax/dax-query-example-2.png"::: + +## Example 3 - calculated table with SELECTCOLUMNS and ADDCOLUMNS + +Either of the above examples work in a calculated table when the EVALUATE keyword is removed and a table name added. Here is example 2 in a calculated table: + +```dax +xTables2 = + ADDCOLUMNS( + SELECTCOLUMNS( + INFO.VIEW.TABLES(), + "Table", [Name], + [Description], + "Storage mode", [StorageMode], + "Calc table DAX formula", [Expression], + "Calc group precedence", [CalculationGroupPrecedence], + [DataCategory] + ), + "Table type", SWITCH( + TRUE(), + NOT (ISBLANK([Calc group precedence])), "Calculation group", + NOT (ISBLANK([Calc table DAX formula])), "Calculated (DAX) table", + [DataCategory] = "Time", "Date table", + [DataCategory] + ) + ) +``` +This calculated table shows the same information as the DAX query in example 2 in a table in the model itself. + +:::image type="content" source="media/info-view-tables-function-dax/calculated-table-example-3.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() with selected columns in DAX query view." lightbox="media/info-view-tables-function-dax/calculated-table-example-3.png"::: + +## Example 4 - measure + +The following measure can be added to count the number of calculated columns in a semantic model: + +```dax +Number of calculated tables = +COUNTROWS( + FILTER( + INFO.VIEW.TABLES(), + NOT ( ISBLANK( [Expression] ) ) + ) +) +``` +This will show a scalar value with the number of calculated tables in my model. + +This can be shown in a visual: + +:::image type="content" source="media/info-view-tables-function-dax/measure-example-4-visuals.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() with a measure then used in report visuals." lightbox="media/info-view-tables-function-dax/measure-example-4-visuals.png"::: + +Or a DAX query in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +DEFINE + MEASURE 'xTables'[Number of calculated tables] = + COUNTROWS( + FILTER( + INFO.VIEW.TABLES(), + NOT ( ISBLANK( [Expression] ) ) + ) + ) + +EVALUATE + SUMMARIZECOLUMNS( + "Number of calculated tables", [Number of calculated tables] + ) +``` + +:::image type="content" source="media/info-view-tables-function-dax/measure-example-4-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() with a measure then used in a DAX query in DAX query view." lightbox="media/info-view-tables-function-dax/measure-example-4-dax-query.png"::: From 23d6feea0a2a39487a94800917c3a715b7ffee12 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 16:54:02 -0700 Subject: [PATCH 763/934] Add files via upload --- .../calculated-table-example-3.png | Bin 0 -> 151681 bytes .../dax-query-example-1.png | Bin 0 -> 102778 bytes .../dax-query-example-2.png | Bin 0 -> 124328 bytes .../measure-example-4-dax-query.png | Bin 0 -> 36416 bytes .../measure-example-4-visuals.png | Bin 0 -> 27216 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/info-view-tables-function-dax/calculated-table-example-3.png create mode 100644 query-languages/dax/media/info-view-tables-function-dax/dax-query-example-1.png create mode 100644 query-languages/dax/media/info-view-tables-function-dax/dax-query-example-2.png create mode 100644 query-languages/dax/media/info-view-tables-function-dax/measure-example-4-dax-query.png create mode 100644 query-languages/dax/media/info-view-tables-function-dax/measure-example-4-visuals.png diff --git a/query-languages/dax/media/info-view-tables-function-dax/calculated-table-example-3.png b/query-languages/dax/media/info-view-tables-function-dax/calculated-table-example-3.png new file mode 100644 index 0000000000000000000000000000000000000000..5f690b7f009148fe70c5cb6dc5c791f71a57efdd GIT binary patch literal 151681 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�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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/info-view-tables-function-dax/measure-example-4-dax-query.png b/query-languages/dax/media/info-view-tables-function-dax/measure-example-4-dax-query.png new file mode 100644 index 0000000000000000000000000000000000000000..c4786ba2bd2ba0e2fa98318d4a82c0b0656d4c88 GIT binary patch literal 36416 zcmc$`cT`hP6fQ~;5D*YVkY1!nm)=38ccn-Nr3C3E5_%A&h)C~UB!DQrgx))$BQ^An zkWdXB?!n)E@80*;UGLv_)?!H}oH=Lq?Ai0}@7rVeOKlYrB3dFWEG!Z=RYhGaESx#u zNANB_&;kX!iUR*&gLPG2V3iEfZv!9h*ge;Jj)heoO?>$l5BN;zrfLkv!lHP8`-8mz zV)DkqikwhWe6H_pu{-Z)X5iU;b3pwhjoIqQ=Nigal=uSE<<`Qlqh=qaLRivslL|&X zbfu#tJ)u5aJ?h1UMKTt&8U^K5G!fk*>>6~U(mo!P5Ai9L8Y6zdSZP`JFRU$%E)W|- z%KUqqtL2P+Cl~X6rHIgliw1c|zS7;@T^#k7FJC@;{v7-4>}+j)-Tms^)5F8#-E9)%8UYg2r8uIm*3(?$dtL}qD9yjY?7q19Oc)eK* z)I7*k5x5*OJP2HPpU<8z{<$}WUfbB9xPSkRSj6qi&%Jy|G)D^R6$>oU{=fP#;C3^e z?=6eOsk!}&-!BcQYF(?o+(GM{T(%O(JK0Vhh@0c+W9BmBv4N zVbahp#EG1fnDo`@YP4CMM@V-h-RkP9H6-HmZ|^9&*0b|-kE22Hbl_g?1&~6({&p4< zC0y2Nw8ruP_;mnOHtb{x+?KDE&g~STTD-oxsxY3fRp+rz1iTFh7=&Kay*Z}KvI!>& zvL`O`mcaV~kGM5-weD(nWZnDiIKZeY`U1EoC9C$Jc<*QK7n0)QhQdfzUAxoM)0p&h zN5EPV6NuL02W-Do+%JqdRllg3=e9Vq>c;u{jM*$z9f0)meEfV47C(g^qzAUddxjr0 z9z_3zS=PTH{pBUJ$tRjF;d}gKFkM_corhOkJULe-Ixacc4wCru`6vAMyVI|P(X6^$ z)cj`Otb3wBm7nkGi@E8fiw!#ctnxY9NY%3S$i+PYL&=)iAYxkRG=RejYixan8 zeW`(Wy04o=Nj5ILT%w9Se+Epty6$#sX3|Epb`9%`7cU%~m!cS?L*Urr;0x2rciWr8 zRSjWBr_Nq+KJ4i}>2jN&Zjj1Q*~|WNDPYcfBlBDNSlJ8XTCb*Bt|xZ6Yi>@XZ+=V! z`OTl&5!Uu4OH((lIS~^(bj;;MKYhAu2eZl8IB|S^Xm0WavHGW;j-fX2e4BG@e4LP! zbR$3AMX13sOv8RxIz_EShxx6n!oK*$P6QD;Z2ZE@otrKV-jL|h26DAs1OM#-uZh^J z9i^*FGUR{Uu@Ezcp)^>8r@~rGWC`s-7!A+c0mkV|xp8uEqzzJ1QZB8p+lom)oMNJ( zF)qNV=@59)?tK(A8jM%HoSqOU7;xpFE2N#?p)P8_i)@^mm~z@!>9Y23a>iS|IZ2uE z?3nLu&5V!l2*M@EFjU%}EH+&iP%%<>>zAsCPB^Mtno2Tls1fw#`H?VHB+gySBtum@ zoPR%%H^M({?0V9rO6;PTyB2M$H;n6btu#hK7Mr@M6K3)Djt}mcp`_RDT~27@3k$iW zd91~Bwg;hbN1v2^6lY+`%f|M?yM?Hlvz!#|;WW4fnj$iSu4mO#a5IKwI0tI~U?O~roO zupOAMAw5tHqOrYIJA(74BO81Dxf$L%y6})fxeLplRtK~(O zp|yWN`p7rtXr9ezkELFvL+nM;OhSi@;q~z_N%KIRa`IRQ{leDydQZnRF=zE?Mp?6@ zp-gF9x0|aIYGW)ZFSOa3pjNtAp63q5=4XfM%a1tMhaFLfL< z)|*6JjD{XyhHjXgL0T1ju7T}vCoD_!WlaO2aL=T|REha&YY;9Fnn&{^Q3|T*V$MK7 zwZ6H&`pfy=@;r8+=-1l%X1c8I!!%E}is9n9+1y;)?sHBdVF9;w6S;@ie_r?nes?EnxH*z6#P^j-jI6si(vX_5llmg5eC1T$+${83mclbMj_)G2CscL z0ORj2wqyhQM7`&ZG7zJ%-_2HW0d{&UFW&+Uafy}MRrlpE{E*Lwlx(q;@M1~#|K|RN z4hMA;c0~G4XGsgou-1F%8vA%dY;NxEAwMW4XBfu1@|I{$T=hJUSmtV*;GUU8SUk0m z@ztqKJ^ZIpkp0UJWq6=jgCY)=S0!je7l=f*JqnYtQJ5Oz@x{rCH$ScC_%5LXW@8)E z(4h>`VkD3N;V4B%ko&X z(Cq?~=XPG<7}r-5ncF)utQ)0e5n+)QaQIl^iG3T#PFhkTLBi8w4{8_Pig+L6v--{uIi>t?ts1sGg`a&E42 zSa@_;S@#C5LLSTgy0A4fCgz!y6>CQ*3D}r^YEujuMnZ>=iRT-{bapCIP&m1l%gulf zpFEJi!V(Y=_&)0;)SxkSjh(gYAg%FdD;DJ>e1Z7k*{Kf-7F!vZ8MiURb#dq`Yv?)f z-~rnVCMG2*1K0=f&Rn&44v;vOR+>nTX^jgIb=@`wXeyDpC5$>7ThVnQE`K!Q@nZt7 zh*DKZV>a#z*4as<_$Lhf@>%n{SlZbe*1|KUmxtu2-XD_iNh6j#n_JtAZfTKkmOEQB zA6(mNTQ$qUZq~XwXekVGF1xC`yb7?#S+mr9e9+3pzu^szZ<_Dn2`d`sVl(ZqbuYZ2d-FL2kh^lxOA7mv^jBi`u&kCDYB_=Xlao_Wu&Ir^C& z_Vr0=ski5}8+Uu`hGiV%vN1^ZtT(nhJGtGy_6c~)sgR2bYmW*lg56v9QCMdqi+zU^ zDG#o2_H4mQO)i;s_;6)9YsyQDtm(TptZvhSTdz)aLg}#%D<#tWKOz>ymlrz;dO5{+ zD8r%?^=-2|ws8qz8O^;DbN;l`C+6|^K5KRUcl$VZwxHT(n2mg^sOOM#t|9YgWrd6S zGclKE*VVk*3{|^<4H;hpW6!M_Bd`4JodR1x^zg3;N%J)c(V+(Y^3{awww$%x48%~| zuh`On`NrP9ItQ6}1CAMaY&r4K-)DgpJZ1>I{qBYw#G6Lc=Jw{b%?&fr>A7eQ_Sxn8 zGppri+8!fkn{|ilde43}SE1>ZjfgLx@0N5ffN$ER zMlyJ#7zf#=kjZd)u#8+r?^EOioySl%$GCSft4CW4SckQ}BYcbI#Zf4hVV!p!p>xM$ zLNek4J1^u>Y`PLCsdy5z--lRR)f$Jy9$ymlvPHx@ThV$;#dhZUt8 z*v+RkZbt=28>GP@)jf+@rRh~=4Cy12NvV^KX0-4M*FZ%!a~xD^+Zp!K?<23h zgc0cxEdec|4`wQHuNO*I`7>m!rM1PYA=_K zVw7v-T(hJC%1ZF<)ng5krn7Y2FC3BY?yhYlEPu-Xtjb<{)}nlt%K1!6J52=Xcf5t& zl_6rhct_lEs6C8nGrhoWq{N50%7Tg(dUw1nm z!KccszHx&PU+muKH5EFPq!{qw;NbN8&$K8<(vFtp2;#jCX{0j(i8}M05>yw2ABmR; zI)6+X#af!xv5D{MLioVli=~Y~yR;*Xc`bYr#;1$BD%!rZVY+c@bCqGIvIV>A_s`4( zxNJeTaf!rhmdpB9Z;jhZ*1+)nIInrkVw^~G>Lhm5%JegTR72zQ%GXuyyU@jr(-}jl z7OYc21RNS^I@ab(BesVn1+Tyx%P2ZB;~IvZ9>nqOuY){#O<3J!5L69^9_2c^$?ajS zpvWM9Xg{2N9BgdZ%K2duTQ272!A$ap%Lua}Y?s4=M4xB~98^B#x6kEC!q3 zDj;n4iG0M%l&M#BA|C71`xMnIYQab112Y>vPy`o&bOg0CQDRkuq_CnIsY8a>?oZsAqF9zI|PDMQCp{ue>+7=eZpYq5e&BUe& zT$4G6myfRlVDyNk7Z64ZanU>}8M zZin%j>P9vIz^#{oPRs?JTzxAUASA}?>~ECy+LFR_@k!;k-^7`xqp)_h=UDGn6cj!* zI`LZwNte1USD=i@Q8IbiH6XWsGb7b{Zy3a_Z z9tMZE8iDXg-cigY!JP-$%T$?5bf-#9wKc2yhOhhJOthy)I3C*S@@>cBz$ zCN<03%e@5o{mDWX@inv}B&|&HelL4h$7m1|9uk@Eee9H%@8`4J8tEi(ZMDzySf5Y!(|kxfo56Vv zrP}Tx(!sye+u)Y)AgkU)fjH1F@=P+S!1T-OLjjNDBIiM8;U3#XvOA}UnN zW`hz#g&tSFqMIA}BpP)z^H%bjAlh#ORD2-0{MISM)wp16KxT~QaJdlkD6uoK66y;NlTf(NfE4MX>y-`s+;kDArl!Vn zX6ZK_?;EvC6jCa*Z?AEY1ee-Ia6Xth5Pq)7F&o5g0aanTsg}~jf-ZT?`hxJG*m-kF^W=)l{o9IhdU29& zRc3uHceBNu?Pu=xwhR;oqCC+Juz>Z(blVSC4!oEX1$A|y@GyZG!<-vp@A3Lb)XBGA z_x|Em_j-@e-%Wn1>e}Uh*%_DHJ-_8JVZ$}H82>3 zn}2J19OT=lM`0RX&6@Q!t22(&s`aTDD8eeZj|(Pqs-(5jQ0$o^#>hR9)cACb%5*2s z2EMCHAAslZmtQA4cA1K`leg?+*lX+*=eiMMdM$eWSI+es@p|$8oF%2EkPAaQQyN!XNzGA9lW2uozl#~*&)>|OB_s%P0aEF(U<gIYOW7G3!lYa+^b!R4F6odZ{HwL8Bv{w)FO45L zU(&5+1}5?tmgtVOCbve-Z#&4oP3FmHiqX3?uv1k08Dj{WaR{N|cieV5$PX1%}UJa%1YWm;C zvuKj4eaHR+KPdB`zuN<64q8p5NYS9u(o!&xg&-Q1WW;mI1Br)2opHa7{@4VPIu%;u~L zM2KJ+t{YbS@UY&2qXLD}r^&Ra6*I{!RS#u;Eu_-OVBP?1<1y z)+>P9esoiFG6*WP(g?h|Lw3UN>w3Do>vU`C@%(k!UjV(nQRjaq1dz%-!^6Y76y!nY zCLLF9d&rdcJ*5Mn!WZ%A(?nz$$qK zjg>pu-v1UJ7>)U8zD|QnL7h^la@ZRanf-EOdoJEDa3eDtm;5}d*zksKn zECy!VkLTB!PnKG`l9uL;8DDn4$jW)#F<4@qiu(b-?gO@B3t&8$^>cV)eB#}A5{}54-5Or@NAH$NKQFD1g5f(?x&1fG6*0a zy7)igldwK{((A7pNkJS2mKHJ24kDjCXz$oiW*>DFBZ+Uamt}#x(;m%Y=TNNN22Y!KNy8AK2Eo!7vDO6wP{Fc#}(7f0TUpS zC3?qM1GJuw%)uRC-sA}h2|-@vzQwUk3O=PgnL2|Q6Z8-kc6-)pm=FNgj!i3S5AvIsi|97H7vpSInJu z)8@x-KJR>wa7=j1aO>#~6+{GRz_~_qRmgyZ-WDQBLMQgM4!k)AG;B_&_kU-_Zkqj1 zOH`HAcU*!3GQc2<5-?JOtzeD+)^%a{&nuYP5oy9CyO7WrJ^!sybblE*gf@tThleYH zYNv{MuF)I-W&W6tPfPeevC~dp!mZS#y5Gs_Xk)O-Wq#H+f7YE^O=XEu(gTLDE~22I zpsc-h8<=*X+Y-d?{CHbYS-HM=2XY4;*RL!jB-A@J^!i_biIvKo#qoOa0%yEHN1z;L zGx5`ajg9T8>w-+>Fa7^p7xh`DD!={`AQ7;I@M|uwDa$7_Q^fN1V!;5v3>oc436vvq9Tg9E(XS{gK2&AI>%=JYrluT&}6} zKXtZZ(q!Fe9+rF)6)zNFNz#W2QUeTN&oy0*>@x!v zT#1iLHEXI2CZ8guI1}wRYH@t4*gBnlMRV6P)xZCClGEvs(N|nIrdP>agxm519s_tM z`iUDNasn45XGK{J-Iw75hI!;?&7-<6WNwJJmkg@)#wV88Ykxdk(VlRPf;iGnfS zeni9DVJa`n^oFzg8>9rsain#@>SAsS=cGm2VLO3ZXB5P;#BI*x=UZr|Yl2jY#J ztz%`9Uy8N*stLF5bx(45Im6J^+P-rJLQ4N#=%hdCX7d0uq^jIprFk>tFsUmA`9|_} z6a{RZ?gPmpbwg&9JNmqJE_9D;BSNZ%8&0aU7@dI0;!Si8Og{DoGsqlfJt)kjtmUy^ zT?s4`|IT?5mL{wFdYSCSA!p2`*IlN!nAw4QUd7SyB(T%zo$ri6Zc7W~AF7LB(z_Op zjy#3k4f=k}?boy9<8K47=N#`Di#D!F?R{|^{_4Eyou@*pkX>;l;N78zNKvzl>nB%_ zUp&W8l2q3Mm0wR$r$`Qomi4q$1;Ms4f=preZ*+^&Us`&KtEy%Nf6SK1d7pYF%AI$HM$2;Z0~?j|AEW6L zwL5&`{(E9~sdj+*)EulxX#8s3*N-F=>oG9GFAwat(0+An^f%Mlk;zZMZ4c#A1KupM z<&~#=E3GZvBj~70g(!Yo+bfn(+L*_?(^}(x`Lx!JX)tX~XGQ<V@vzyO*H~)Q~{ebA_0|Y{JVjmuNtx^O=Q8(+9k($t-o8) z8$SB5N7KtA%O9iP?NPWUKuU45gala9tG`3+5_0ROjbvH^vavhJha8J~O&g zNxxj7ht*~i3!RhtCPCwW;z`BFIqyK&GC6gZ6=eJN>Ei*4xQrdM`piIWA$SL68{5v2 zCsCf)BUnMwm>bA<@VE^6`J&rxwz)|n8ej{HgrzAF>FwH zaSuXG`SPXB4C?U20tVMzD)}*}VSjEz(Ug_mefS(ykT9hX{mh>XQRMz&IXr>g#Exh0 zbH(NJs4eq>zGTc&rpS~Soq5iP_&p23oz7ocman1o?LS-c1pllGDuJdoY!m#vBde5A zE9{)~tI+_=*piY1CWoG5z37q!(=D!xQ_!s>_k@x#s)`tkY`W;7Dp$`wY0V0kmk?bV%c z7}9kI$l2Xn7z_q^n~W{8EH58Zt8qqXJuX7p^U;)}IETSa{k_5DY6)EG$i?_PDQFNl z!^(%Sl>GAa@jzOztz|7&apAo|Hw}h@R&(;g>?2~o>1&r4j+KVo%>J~LMP)Y)^ou<% zWmAr1)d?O0bF04V5A;qy-N)-pK2&L}{hM+?QRG{Gx_OcUL<8YN6^pZ4fxgG{6PC#~ zoVl(@LV+kA-p$k6Dm@CF_ynxwWz-;P&5L@`Fw2Id2w=1NrOJnC+LJo(J|L0~FH7#z zuakDM-OtH2pdS$4#zuEd(B_mojVhCe-%kmM=WDel8f zMgHWVh1Z9kKh5c7G=wJi8{FbG2 zp;XA2^e!a=@oLo)HlVJk4l`{?9`9b%VcFON@$4^I^CuG*Z9B9V&x?Nz%Ap)`k}k$A zrM}JmP871;K8uHbH6i9{m_4^}2ji?}Joy}O2cq(E$}P9D=BkcQE4RrhkBf9Np7j>M zJ52Sk4TEKU#{6ZT{hs?`9?|e4^J}vY?k`^>oj94c4C!P+VV2;(@+JrkC+oA?t-jBF zu1(fl2k(Y>n7r5_Ymye_^3V>wN}6+V1g@FIu)lxK59*%s3mU(enrsPsS&NXXC{Or% z+R|4X08Ty0!C^cf2(wq7-vyA4(GV)h#MTe1Vp1cJuIG+juM1*YC#@3Fi5I%}HGi+h zT{DHq+DmzS`O^eEp4M=I6xfX*CNPwbIV0K9@RH8g9aE%^L{;ebr1(%t9U-3jto0gj zlB18}+U57klIXGhrou+yw796m=xA75isHnTlDiwM^b~_$g~t<{W10kqY^5X6j#JR79_1k> z<^6^o)xe)y2TzO%ci!wGde3S)ez#w}!BG3?P;J+MC8;)c8W5! z=q;5LIJ{V*DvY5!mIsq_<$3i@?o|J) z`|SKgS-T!;TwT2ru}c<|KlcP{*MjZHa8yg@0Ef4iTC|#`k_>1 z;<77e%$n1??%!P2DbusI`jLhYT>LBDmR~UX?>`5so9rM4E%D)B(=vykJ;O~eW@Ncw zWr01~=e#Xjm*p2Raz$SV@4UJAuBF*M?`>38C2++M?ddZl0{SYiy=m+vgs$BIH4R8T=Tes95Y@+bi8v<987Ipe zotfyK%^f=Pg3Sy@n@L!#QCAuY;S1^N*-G{y(E_hH5Fi(;Lwkf{O6i{4np8AjaI&1< zG(ci;5#yoNiAY@VHv`vdXIQEgIS@&($`->PJG-te&6t^0&7=VLShNBw&1TAHSL(hD zmdI(Qz%Lcu#_!s{{rJVpZ>TEpyd_By9NB>pU%-gMou6bJkiH$7#+vqvLfsiFj$AKy zF<*1TS6rkHPydW!buq^F3-uK)j-Po9x);6&V^+}*RIo;`u*NamqXq3$>+XGka3n~d zc_n2j!Bz25yGsr$F|qQAFllMJ(YjBFchsnlbTc=JeL>?AcAGl+(tp|&QiOR@&{0z< z#+v&JuUmV(M@=gM_L$Z7wQbNvZnWIWK@Zbr!(Q`h_RVDh_-rdTIz`4u=$2+NEVU42 zdM&LayHvC+C$gmys%hG`BD}#I`~7@zHdx7VPI+cb(xJBJ^~%~3V7EDr6t!ByYZR-o zZRsnoJFb=50XI1~TgrvDoVT>akA9q!3R^^qpfx@si4SaC@3l9yzuY0|zH%p?Q-_0- zv&a7(ifSUdkdOah9sRyi#o-gF)|LzWp?e}ONFwCRp#O=Z+VO&wb{6k1XpSZkH}Au8 zuA)tdZTcCh{nQ<8yLiYY_nn$N)AaTO7L*ynHlxkY3F|_fgDNZKmU4QiYa1jjEF2Ga zMy3s7RXI*YwOpM_664Op`v)?kASj?=CqO7z*PE$$GpDSIA zLu@MKe-N^7IM-aU$Ox|eBu_%{#JHc}8T~0%_>9JLZ}^&e#IX5USdP-aa)VnsME$<-$C(a9ca_ z;>+14Qdp*cH+GgKm@`zw>ZW@>BpJIC!u1R}9CYui!w4 z2N~U8*QvJ|CnlY@l~h}vjX^Sn(-8%h8sCM-d={IB;GU}0PM-o8LW8L$ee7VB?@DDq z{4?fzDqBj+3zV-_{(PpzSJ;Q>8sk~u{a}g{6t%=ePA8M@!DxjrQbEr@zfEZB^;Ta? z=%nllIkPBSPsBzZF^(9hJCw(yNTa5z;h8bhfHR)&I&3#~TBr_Wc9I4uRiXkag=s_( z9^gjg^*`lN3IMxGhUbsN4BgR}t)E zNf8)lp>0@m>5&$@;i*_8k0dGOuIn*ZXn+czdtv}7=(A|@Eq9s`x<)Nt59VC~CS-`D z6 zMy^BFWljR_x;RwpzM6p`7HDk!yE8RY(wxf9l=;SAA#CZ_PJ|1In4za(l?-hIos6lsVjq#?t=) z4+~hyw*3iQX0>i@GXl5W>n0mKaqH>o8ihNX4rNGo0CAvS{^m?)!F!cN3bNa4mmScJ zo^Mdo(IHp@O4V2Lk}Xz%n&N>B$@sN38(L9^&WT@!_P~*ksZvXVZ*Mz7yMNu1$De;g zfpZgBxBRR|GQaIgXL#e$kaU&9#23I=Zr7JSCUB?ij0r|j2g+OP0g=ZJ;3yl<|NP33 zaQ|5CI7LB2(+4o7*Z`RBJ9RZ!oShr%Rul=4#1r zD>$>D=k_ILbuWMd=kPCItPWPXj(4V_-B-I07X0=`8@ycSlgw{>`U6uZK-bnv)I(6} zKm{kAxXT(4@;Cu5l97vxi(VS?)p4ps5a2f3+uNs`1EkZ%T{loQiyJd`+3V}cmLMeD z8E`42zX^FEio$MW^9Th32Cdq(>UngeGm9=I{SSRu9sik#0E+Xl_$`|U;@CALywLOy zIJIrsKH`ZuO~;5Y`p0AA;=3)k<6R#_2bTH%b-2DhX{q!+u$n9}M-VXiKQl9 zQ2;8$2a=!E0Eb2#ve|VaP1|CelRwuUy#>^R^m$Q}|BY;&00DD;YZD->4ekCE6MZX> z1?zHo3|bYP>i+h|$}*ho&YS-L$1IuRKlp%^%9~!7KKLrY=;4ERq~M!N$b8r|<0@1W zi#Q3B7brOV>hwIclje9Pt{WC+C|ClyascL6zm5nGZSd>0`@xD50Bm{ypRfmNwKs>e z?M~41a{(vwZ^(qO?1nOO0xmG`cP2?b0IT6}=@Xg9<*B<%-8xm8i2cgp+(QFY(8a*( z(3Sv76SI%mT!0jSGus+_MzoB@o)wvqjQ8^y;qt!}E z^=G9hw-?Lf)8p@0(Ht z)leD9eHt1y8yhx2Q}GCO{s4FxAoFR|xXl0Lby~b@D#p>8*<$4oGxJzi=h#tAWJA^9DjJzc$-U$Ta(r%quKx#BhDiYU&}=ulX0DSm_I?9h%rxHMCv@CKf|r0kP~8@l z39m=bZ0~N;Mu3oi8topjGhB$H`HQeiRT*lHRpg+YU5h+Iw>urHOP#0YU0m1gp=;~K z+9ChjFl+s={y)6L|Ovb}V>WmN{7I#?b#cFc8&%TfHHRTrzC_q+yOq1&A#c|0f-_u8rcs zgTA35vD?f57PT*T(2kV&C%2LpnxrlNe+jQ#N<@}XG`-0x=BC3Xk9yO2bj|1hdE)MW z>S(!GKcHwcGq*aG_}amRE>U;l%xIBE*Np^^md0LJvU6|%(#*%~?Cco>XDWWP-cMw5 zstpj-K#7Ci1B`-}5y1ykgqWaD=?rb_$Gm`T9RO3KL9dh_bKI^Ij6xDsLuAS^>24M! z4ouM6pWD4#_`jtdl}$gqdOCA(nWqskuRPGr;nIz?NG|`BI?fXNs&ag0Z;Wg{?D(yL zCNpJC=JU4BW{SQ(rSufd9|3;6kX_g?wbthVc8c7dH!j(UJIy?EmK$-vDlg^92<+g8(<^!sO3**qFFk^S(+QPxHb zxX}EqX=mnjJbtC$_8Y4(kqW$#yiYUE!ASJ;G9Q)vyu2S<B1t52M)6C&lHnxlr?N>3~Uk^%p+EGxP zp%U*eD9ueTrFOB_H{Fel3jJUuyB1&$V}M;a!Car2g-#E_aEUb?+yDJ57L^ew`a*|@ zeb)Rlq`=%1AMg2GiAeGWs)7GSX_9RkyMR{1k}@d1$7#_scFXiJ&7+AQy<(|OOkzJr z`kcnzb;1bLFH*|GYuO2dBLhQUgOU|)ylBWXTQMz8LVf^F)CLmP{v5v1rv67UB zcSoDPguXk$0Xn*?ZKo$86^~oMay~is(OPmkTOP;{1E`EAe??k89Q=q2Bd@6;&y;?q z+Q3nEViwM11us>z3ycjgG@df5%1^jzzS7gJ*XFEGphk;6#b1%@D*6q?I66Euk!0J0 zajLPdX3a?P3#C6L*JO9%U*~@?(?412&$J^S6No|6r22!$7TgXg(}kVds?9L@V|JJM z?OlvT3bUf_q>`!7L7L!kZHsD|TB2PE6|*Y%wjh_C7NJ|fH3QSJU!UZrJS{n1d%{3sAi_EstxH!i+o2*#`2-y`)mq z9%c**3}Vdx;bb{$G&E_kI`qOJ)p5RffYv4X0q@1%>T1)EHNr8tG40z5Zr}pbqDXdC z=GEF60FeP{V$ct$rZaZf*!Uo0tQ2=l(5tR&nQhubGabsgZ0M-e@4{W-MR-Nr)j@&k z<9OGVQsa+~54T2w(KLpVK0@hLV$gf{Toh;3kdUMR290>-Ig7jYhTb2o8s1ducN?f` z+LUt|zD|?%?jf~ToI5-W^96F_OdPMg%=HnUN-dZRarpK#)l05^VV`*b_KR2dD|Oh} zznB#b`l{JH^OlE`=6C6CG~X{=X(7To(clXP2m3afLgY){3#D=B~HDSG++<@lOzU`ttQ!yiSUQJ1cl|h_B)vt;lDW`TEgvYnAK8n~Ol$&K(8vSd*NI z6tC??(Ig!U4=?LuxfWx@I`fw&2OvTlBtbec((J=HYsTH-egE%|d zRMXUC6BLY1NT9T`vZ{rkXaPfrh5@JocmfTO-x83}2G`Vx1GN)i{z}l`3Q$%^FX7hu zKZ`8v^fi_+Cnt7&aqK`T&ya1ZxGN(bo`HwK3-ZEXpqQtkvhud5kGv2E=;|L?_=o5J zU5oV%u-nzeNzc^OloP*!s_N$%HUOCbho|+QxKUG5#v~-HH4az;FdpDP@`1PWKbiMZ z>Xw=lA^&xK|MZ zEo+x&N4NRc?p)otB<40BDs4XJPEAeaHHClO9xo7f`2FPiFu7%<#9SJ{?(Ok9a%vtP z6$r=Q-Up6bLe4n>#a6(O&@PdaGs(ITke2mjGhfoO5WG``5MJ zcHlcU*Ai7hKgB3r*5Mb}ji>B?<;`G=LjK0ohs1&QvMxK9Cbi_H=i5;{b=? zHGty3TPn%tpo{wK5FudP0+q!A@?uT_f#I{1G#A8|koU$Ud&7Qd3IO^UX%y6Sa*m>i z{qh+{j)$MV6t{GFUtNfj^4W8tr%g}a4}Y$yp>BQh=J#xSw%vR2>>?XGLzyl}{!s%p zLAp7+BX!?T04p_#B)ntx-F*WQU>NwB^6cURKo&0!eizHxwQ$%0qiVM0V9}NTFiunD zTxAQ=%bd+u_38Xc7Wimd`Mo@%yWcYF`MU8?jJ$>|sO(^Pq<{BkQTz<-mW@rgx=aLiw1lH0oEYV~1+4GZ zvqDd{SlyLC`RPxe{Nau;2QAF^+04Yfe>7I`ZW@0j>0z1O5AkuSR9Rg)RBE|16&@1J zKDYbx`FBeUXe|h5!$sJy|HrEE*VK_u33;yWle-TJJ7g$oKYjdodOWUkwp%%TmxxHH z0UP*F8dv~o(y8P?*NcgrOGY0+u6m5Yub6bJoZiTHqJvTh%+ouVf`7=e4}3A~#OSDP zOJ%-u3{Xg{@BS{ToT@_j4|bI%@vl?m&ALa`e&eWm9OL55>|!`NwKFMje?{k2Rl!RW zC)S9&peR9H*Z7{Eo#i}tl7T3PHv(;LT!MoALd|AxFHVwqzVNBd?EiK;Z}e=>^Unk7 zi+CS9S%2}9nYQdP!B{1Q(9b=~rs%ga%Ubm3HG)r+H+E!v3TXoLsZUdS(&id&S=_v+ zB9s3~q^&Hf*VH>c5@#~&;m@RF`TJP~DA_%k@4=vuXaA$Uw~UMGYxl-cL8L`N8kCeS zkp>Zv20=mT2I+3;mXdBzQo4ukk{VKKhL&!Su4fIu``q{Moaa90bN(-$cmH|e2WR%o zUVH7eueH|ojcccVm++-|!qh;vOg!)sLDj6YXRkMHSTbhC9Y%lByzpaAOEMlGZG{cQ z!bCgW>?%tbW&Y*6#%0J!^2fE2%njq}viOuxEU(5q%Z(ox+jBKA)pkJ_DKmM6-Z@#c1^fbkf#X|uIH{P$)TvWGyOQxCvE|* zK?$3tSgYdR}Dr!63Cj!JNGL#yA!lWS91uk%#hMj;^SRErEdQC%aGDA_8*JV{_yrCcY3a?BL;TwmGR_H4eVM}5AZ99hoe_K{9O`brV_AXHmv2Vj$JT=KH9 zeFZH3;S6yMkCXa2cEesgwaQPeKNK?`U}74~w|K*y=G+BN;C7&^0>P^99-GIdGjN5G z0LdIM14FH~-igD{82hB61QYCyIis!}yxvdfQYtCVJj+Rlrdyh+RFvbKQ-+c^=m&x< zgUh}*A2n^1l;vh=NZAsp4N!0MONb(+`aa#xN_O4$U=DWVzOWEp;B@?{OgkuBXkT-X z(o}fK@=E0jQ)lJHE5Z)@_4r+V803f z@sE$=?XH0`ofs}hKyXmPJt_>c#qw5zR*f?1)JR~D@$c-T%Bz!zXWcJ&Kfg0w#n^n> z$(ka}4U&YBR1zblx}vTpJ8~sjjT+OgM;o0#BdN~L20g>8ofc$p0F@MU8E-rQGx#n{ zldy}DBJIZq^2kNJ{gNywm2_`OwCcolqOw+*Sd!QL9Vf-Ts^ef??M)Fu%E>R#<*4*q z85{3nc~%_TIKiS5*0f1!9oYlzLkAg!`&&-xC1h=nMT?)1tcdDSCW`T~TS{x!Iqm01 zB|@cbV(dS|<9|oKN%SY_=@EV%5ohSuY;PgXGoaZgzSY<3R=BidSX}|9@>3QcZ-25# zwoKkoS-7=K{+&5^QDRXuZ5Mf8>fx`Vu&OdwjyPdVVmKEPnZS%!JxMIV8i_s!vN0s zU2Ip5tC$8GzTPQ`ep-|9q438Gb@vynU2IEfZmMUL;HC~pg~{`~EN5eg2~Jjo?#4HT zULTa)LAe`E+zb*O^o#EVR%b^NJm>F36fQHq-TVrcaGL5aZVtl=kz;EOt> zI%nniUS3CuiNg|K!3P^UjzMFZAg}i8oMl{SB=pRRUp@(r9w9Jr`RJzYi==q}XJi%C zVsc_3tf-Z?e(MV?i?(O9L@G}Nx$AAug=GoLwj4efD-y4USt$kITZ|*&hSBS#2+r~cXw&O>vu#Wq%>(ExW5fdkIvQrH`qX|Ke7)zYBX!OIC zP%IsQGrd_WzQkvgHcWf5E}&}zxHPjZ`Q+}ZCOByegB_FdU+inqC5c6um!EzX2$@-a zkblc9!tE^bO=gUNL!$R0Ji9R^&?F-nW6YnPb=t%c9i)arPQ)ARTgw~6C!QC+a}to~ zkm0Vl4$zE%I~pcMI(@k8ePLW(ywqLXUQ;E&9rGw}xdE)KG5Wivp93id2$mJ9Um^kI zAu0I)$ncFmR3T7%9HG;v+tc`*MIW$C+dPK&#$=5@VE#^}(G5Ml)^trwRa*P$a4z)z z)hSGy}qdR(~xKO zcauhIi~Aqu*~cM4mMj(?e`srM`I8HErQg+g8j zb91)iq+{yBX5&Zo;Ziwt?Itz?+6EvXISNN0H|mJp4F5SrQeS+Xh(vH*#L=^b^}AXc zX;zN01N%LHR3`(4FpO&&)xNy;kWkgk zY|&(CmHm8df;~{dg2P#bB35Z?2o6jC$;-6%u=_WDpCso6$USF`1KL~RDOtbpTw306 zt5Jkx?NPJmo#FT=`yLs$IDAzsNOfdYI3J=tz%ld!35RD_!8=Gcc??X5O%@}dp)U2` zX%d(V%@cJ^5TwK(7k)v^LjG1Y7&L?Idy6I-NZ^0PBk$}O2R}}u$=5Gcfk0YK0XzQ- zU}&86B+Vcaw~@kLBpiU_0DtJ}8Z$pGrQso#sZZF&8XcDuK5(7rtN+xH%J zg{gMd=u{wJD^r9O65{pmBtCJj%p4q#goTAGR1v-0`}|)c0Gu@l0U7>tNc{7SuY(Pd zwf+2h5X49C0S_M~tE=c6;2ik(eL=Ph8e{m|wg@3u%A-cvv6V)^Po542OAWcaFLuHG zt`Ax0Q70mgx5SQ}{tXQ%BvWhIi=3FUItF(n=)KQfCtfmPH#DESXbzCd3>l30XG${S z&07OM@1gY17#$-T^F9R}ghe>w8}z#f$`J*mF$tbcg6}eY2fiz9zR>yo_Vjd9;1;^b zYWqj_FZG1&9VY}p7O&l0dcaPiTdD}py_$fO;dUSdy(a=KmC@O#R7eE(5C9ha?;jCz zSfGRqCM;!*^C6iSC4=)yqR?B%kN)FUl63z;@<}}1YL~UJ2|gon$i9_m(Mx;RYm7+s zw(yv6Bm_N;7g2&a_&&THCRsiRv?bx0u-W~dJad~DsZ+g|20@>G^*a0*leW<&ctyZk zmy8%Ol=uJxlK(!e?<{4xT;}Yk0FVg^dTt&6fsf?IAvlQtg1u!J55fMBXA@?barlAw zIOwiZr#%`r>+ikpqa^I#FJ2_IL|_$UZYj-!k8DH!>OK_zQuP-80!!LXS^Tk zl8{Hu)?qX9JJ4F8hWD>ex)}NS>s!nV!~R2#Rv^L`GItuo>Uqp&mRXcd%ccG|JQdMn zO8zg}HC2tV_mkB|JnE9z0gcv6%zp|9EROUb7#%#eT>^D4Wz7&G|C%=?J&pR-u^@reIB0Cjg!c&T-x2}I+v{-?|)?)4` zjhG5{hcip*Jx~t^?-3VaQsrCtFm5 zXbHHs_)#zN?Po4#3su!i2)LbdXZ>Bjp`0ndTjJ0Dg`GaB!uSQo=UzU)ZDT%9%BUDY zna!mUY-li?;-VX(%p1DY2FJc2rZ;DwyVbgV=wST}p3L|NLhkBd*A|a$i|!g3*;I}$ z!>)Q2c7-H+yNcxDh^gyMCHeBXmmwC7UM zhLNy*`w;@apI+0csPB>i8FFfBWW@5JVA?{vGPuW$8S9pwiu}`Hs(;2je4`yC7mc0N zwqEKj-V1i8iHb%5&>)WkC?di<6cx|gXCeA@?s3}GAQ!pvr$WGEi7Ot`*3G3iQpis< z0X?&Y?yImw2qymg0XP6oM0WtkWTHO7AaSo(^5nK69cK?=qbt9Z>w71p`vOgwZ!EhBh zdG!P?%8w3Q8JLqs0a1$3IWK+2Vf;(l^a=Y9+zl$hT zysY~q`SqaOe`)Ok-d__ZMT;sgYG2~j_NsA-)I`)Lc!dE~{`GWE!4RX@TI1>@_A6qW zT;Ieoj1l=K_ctra5+DAGv#GvcDt!HZ_^HV+1aoz1&!!?X)N#w;U>1qC4lSuuDnzbw zV7k6vK9H^Zdf|3weS%)qKN-koY>vcJU0=>(%ae&a+-U9bR0RTPCf@nDAGoO$pQQenz|1#~H9ruI4OYqKxLH3RZZyA>LbfUyVk*NOkDK`Uv1iy< zNAIEUXfs6>HI`YOu;`+}@IF|oE(E)0+FsWBB>#WqSttu*WVHo7|L0nl_< zrF}ilYdyY)i#zH*j**4LBuH-WEMOmGYh~aQC_|kx2}ikey|veWXe%XGNx@rkWp_pAGFxERz_7JrnGt0z9T z8%-#?)Z3?dVT4s(A5CI~XWZ!c^j>Chxw91Qvz5@gci=h!cXX!TwYdq(=Pa?8w!p!X zE*SXDDJZ^55v&hY-T}#ND{e#g{Zdc;j0@uVD8QPMydO7ZR?)@hxAt~(?%MB}!P+-k$c zZ`7F`j&>$}owmNd>0q8y6?a$x(UL0~XoZ;!1)r6LrL$jx#sQAkLPl`IE+32Lpnp8`HdVX+X*OQYql^{TZ|@b&@a8I(`6Y_Z>+y z=@fj3$V8ig$4tgZNb+YQ=K?YUDGk?l|B}uGYm8K`jIb_emiE&b&Aav7jrA>Qm3%f; zN+3YL1s%|J z;`*q%&)lgBeEGsxqwjOZ?y=7iN{1?91wE!$w;!ep049M*b4c5sL>fdhmHKuW%2xmE zk_9_#T^BO`k!!JwdnHWm+uDEz98TEnqK{wAZPw~Cu+e^U^!<=P+$!bXadJzRlg^zy zCTy1J!SK{Ss@RASpPEe4HEH=?U)W`2+c9Rji`yTj1RwwJ z_b%hE7KrCZ6WFhLQjKS%s=1OALXV92i@Ced*vE0U95%&Ge;pEz(oxJF>-rbJ2Y1rJ z>#mcaGS%H`N%mvb!R+qWtm8YDAlm_$+Dd&tvcSGKWk;W6PpSHDK=W5)N3f|J;{$tW zrF$-%+e`Nw?4PH*Nc0OK9#e6U5Q+IqFp?jLNYsGWzxFhL+vHd#{0+B_Dd23f6fnw zVv-Mhe4WMn^Ie^gsO+2j5k`d>u~Q$!eLSnDAet0i37X5L!C`6W-wjt59DW4oFT5Su z%~?GgjavE)mNz9496@APg26zp1a#x(eOnLgzIOjfwQw5%vfhDWhDWVg2sybOp)ce9 zOBtYmU48wD$iQX>#OlVeYM~}uvnREUcGNx^KHdA=NarfAGG`+xzwt5AjkQBo%Zu-is^x^rxHVkom zmTaON9E2Plm({=CPKO08XVp)==GH!;lSj9WOPTCdm@SXbK`yh&v{)HtdgrYVWv8gU z*!aAJER*NUYgZc_CgMBkF{F5RY3EEv-`!lCT>DLzwMj0J>`2H%xLjqFS{m1 zrkXo^J;&o%Cm_*7b4Q#gn{wIX^Hhyxpd!P<^MyRwJfAbtxb5d>A7f*;+5HEblRjQl zQy>J=ujdT=wPH}{rTQH??~~Gy_z&umn@w1J?4~`O$U(-}M6J#iVbSls@p!&37;<)r zFECpLHu^LcQwgt>Lc%dkERH2LAM+X#$4{t~T3$rE7~C{tx<+_aL=3d=)^FQ?k+r6O zSIcLNH+3_pm9wvl`C(P|Ip!-8y1ik2di!(e?9I#z7Ga}+XyowA3}NG)IcO#k5oX#Q z2@mxbKWpRLj=isVA2s!A(MGjqQUuuiCJ2AH^1w!9>kRqS;62*2eB>2J1B1Oa?!o!X z*CtEI^4P3fBm$YJ#uSX&gz_nP9cjN!FdgF>3?3fVOMe#D=%9UB97eBkvzs&gJ6iEr zUl+qaoFhbqLJeX!taGsxva>n6a5!mzHX{!CuCdH)sER7-xypR{PFH&u7fpPYl?JFn z?e>`UJlP|1pcC5Sqr6v|v#i0qDo3nrx zDo}n(Tm(vX95Tk!BnT%uj(sH-&RwGfzHIbWCH&5JF zL+Z~M>L;;um=tGe1aGKu&F4@dG)YY>HPVtdIt2anpRdbKjLJ*`n4jMlzLwNY6i;yA zr+AhVeTCK(rr$QkbRQOR6s15ZnQnU91)o6|sG&xEtjyD25CXc`IFcrApXRH^4UNEq zhV(Dwo0Pj#VBq;U2yc;gN5xhXTsMEi2Fc^lQ!ar>%y!fn@gGxk4hj?BE9KKZ9JlD= z^M+}KKV{b=zN!xx7JxfQMiap>+Pl6Qui+)WI@X0n1e@ubaOk65)lXm43yD_aT92P1 z4H750-f|3^!U3suK%;VE!~&?+a*LW zUE=Z%8f%m}Hwrn)h1aSlXRXyddr~-jS3Qpw3*b5dAAJ}#14sBCvFx%gp++Enk5JUA z&rVD}@lA9GE04jAwcW@P3<=oo3SvjL>wjs`mUdN$qjhg5&>$=8wG}`eHG6|o?9nuP zBsx!5wtW7|Arl#A?bUfbezLb2@4AZdTFB=OM<0F^JYGoTA;vw$y`@O8sLnDfB&o~N z*7R08^!A{loA;48NRfx#?CaRDW}sqj{~ltfK4%pXC8-|3-(Ip$>?B4IpmVW_hh>uu zgF#x2&Cm*! z%l*V_@@m1(zAkm)aJxQvx(E$Sq%d@pp22$)e^GGqTS`4hX5lr5M(XI?a>0pUdO~K{ z_uHR40FJn`^4B$^YtmF*;@;Fc1< z?3h*82O|%tyV~hBXyODrEmm8RS?Yz_I74kC%HxV+j(j_7W02#mUJIe4>y4%$$FoO< zaI6Wom9xTQ#>WU#U$1Kx(J2^3dXVziM%tH8zGyo?YOu(eiWP1pL-$1YxQyf&B+SV* z68UJygoCQ~NQ2r>xosaKr9E9;`oUVb?St;}&%V4F)I_BG$jqW@No2}>Osa{ly`+kF zVSH)omBo|W0%>uE?q1zBac(hX=Glc5OuYwb+xGmdo{#RtxhrN>=7cNG7YA{w6ItTG z%rg59R%JK7%+JYXuCH$Py)@IHAGbEeXp%FUlor=`vMFn3Xpe2j8EuYnF4tyR_EM#d z`81a2aS8}?nLK8Rf}VfsO|jcMd~6+(;RNa)sXW*nI!es+qYI z>~nIFeDNAaWRT#)r(Xbr>_I%r}(qwV`{ZW=n40$!qOxy!=@BR_(JL|js zOHAyQ6`o`iybUQw70bUIo)=L)<~eZGodhedyAqG|*Hl)bB1im&m#@ib%mbN+@b6#Z zL2e)^obd4N=Mcx42UnegpJUxJUu6S zU`~?Bvdhd_xRavXHP!ZL>(cJgY8&5Pi2S4sBl@PF;9_{VnC+LUIM?;miY7XCCZ7Zb z^dm^Q|6(y&TFB3o;=#hIE?o7MsYTmreCrP(nPl9Y~$PndVHnMb*4@m&WUKkZy5 zt9@`WG&Uwk2&+=OwN$)gWLFD_z+dU222=>Ie*&{%hNkqrdJPtWkE8!dumFI@7^tHU zEb#)vER&4RR}+La-u4up9;HQgJ$&Exl`?um;s_RE*>is1$vPAC%%OevVA*h@SLIj4Pe*+bP~ zZ~HiZr?K&8=qgmzC|F#*i%z=Y~5_#;d>$XkVoCM53m$Jmn9zc%c?F)V20^?9y0n+ZduJqPJ{!-%& zlmHSs<2rIy&->~TVaXF^<8$g1>IUHAPaW8fmm8}&<90E$+ds1sZhrW^FJIi9(Q#r< zf6?;G(TFJp^PVGTu7)R)*%Oo<02leqB$Z-QDiN6LR8G8A5rm}q;4kNkdPM<%V+_fG z%DMpT<-|;@e!Fn0qJ$DFUISl6B{IaWEGurh z8}U5t*ZjPRJQXERl%%8tl^^&11I`X|PWm?+z2$)5(9rk12>fx(<$r^B+xjkZS{bk$ zh9@ADW0VfQmYR?~{#Cvma=s_4!Gng=7uZO`ced<*|?Dr|6mF){D@e0wyOCDk~ka?6K$|2i;+ z_yqrOu-e!;W{PSV|HR>r{eDLMU#$sQ@8S+%W_)rWRz8K^PT`Vtrug+Q4@Z2*%C*)m z<6X)zzM3aL6uF!3JdI#?KUlD!P=TA=!pCD;=x{)Cz<}GZ{^lUHvemZKL1X}e#!MOL zBT1}a4gn=6dPRsNY0wz((7e5mQg>M0$AQfOLTQ_Y{T4A^M*qqRY%mP`8x$OT7l3T0 z|B)~F|B|o=wqXCGdFQ{$@&CX4iWVs6g<_;{5re45h3KXrxU~a=H7Wu~MzoZY`yc6% zf1egX++Tzv#{ZNA`QIJ!Uoi;Pj!u6J0v^w6fe*zR-@kp6Z#Y`M56Zi>O-#f;VOASL z81Dj?KV-a`Y$0CzwTCDuCZbX~-k!lhI!4Bj&`?Z-4rC-dgcs3P8X6^G zAY}IT@wp2S@&^wdyq%0=SlHf{d-Vzlm=7ZAumEi>LP!tEINqt1|w)Y@6Gsc4sS5p5qb~2U3W%jYk6yNg#Hn(?hz)`P>V5=i& zsGpCgjE&+Eha-mi#*f3*K|3JDMR?y|9B<2D!H}xqwirO&f$%}e0>+S=-O-{S%z(=D7e?+Fx5wB3!qtCVuw!-+nO(#GY8Ioaxv8 zwPLfqf)S0qb(y>?z`TNfhj79lhh-1$_n;n%hxHo3sh)~d&7T!A%Z%e6_@ z&oYiDfzp2Jx2j7bsamtw&H2EU7!GmAHxXY#Ja=I#j|PP)$TvFJ1X0wYuxYZn*y1B@>0u}q;m|r1I=DW*oJ`l}i zbo}yY=Ay5WMLlg(dSb4aGnsLB@6Aiv_R_UGMhff@wkop^X&U+v8S&+nl_a^e=rhlT z{bbxr$Lm#Uvikn2H*#p^_>!3oeFo&`aaN=K06M*G($0s5+GUDM{XXHzSm&=Da&~9R zj89o(J3TLh7FmBfWTxsY9dw#c*#)Qfv(UF9t=yOpQd=1;=~k2&$+(|*)QtyuZ9eCB ziR$gR234@)SheL{UF)WlGyeRsk7HIhdMV?gaV5MW#GYCcJ+u}lBI_v}K46o6*rP4{ zY^Q)nMMyYEJt+YvUllxD&R0hhydIY|;M+^x5r@-eC5a#kumDTVLYr<}Su%?oN_XQ& zHyo&v+Y@;hxJK&C)&g8;Z##&&xr!AdalE~r!=vFBncr7F~pu(UtdT3 zg>Vqqin8VTvvBvNHga9)vcj%{@monM87nHE-8ASVj7g5`E1*CFW1ZiL#%T*3!HC@<`Mq`S`)-r1dcDJU+t!}n#pjb3CtvB(I5?1)F<#KCIu)v9*ifKj_muwYN#U6 zVTXqENkKTVNfCzjn<#y+Ovt1hz4sDw&&3><8~T(H-|j+@0c>#7L;VkRwam?BP#%>B zv}k7Az4|&u!pI`8mGk)5+RtZE4`?zfs)kj_6+dnY;!mKP^!4~1ce;c&B}z{epHxhy zu(PgHOS#PnTG5IesKZCA3NBVl3HQ!Lu$#2TZE-{+T^%PTrVlhe)M2}XQ1@N*Y`gky ztNZw(CJGOkvr<@DS>?#5f|{5QOB#=fL65CGBtY~VQ0;(dwy%A2q-|6kqbguFo^!7? zG=VQkojBpjGV6w7SN;O)M1o-4<;G}Qda-EL$@0p#XgAyHnLDRldXQuI)pkL$)Zo3E zt`!r=>ghn>o5<5&1F|>2p5C81xqlPCI=vhY^h=17TEHO7i2nWE6AextZaoVWRazcr zh9J6j_}{G#)I47;kiDp|fc!oV3>=*uj*RbJ#BKiFBd#tvU^cjYg7q|C6+3UPp_589 zw|qIuU87fzoQNaVkYA~1KTNNs1ofcU8PVo<~=GA}1RHu+^rFbl=q z{D7hr{$JT~SABEs>Z0hPM_v;aFg$PlmAV7(IwpiEMa7_yOo2*K0uXDhLQ^>dk*s&% zyud|X0=(%ABB9CHPd+NfWm~3TPfZlHnby>qetGT@l>-?2=-KZ;eGRjdUCg=*Y|6XE zHd}$q0{rKyLfpcg+LtND-3=lQbIqJ<5cN+nPKl!0gTPv=X_+IeMt{Efp7mC;RoR;z zGxep@W`R%k6J(ceszS&}z^r2BXhJ&|co4`Ya%4|hNrU2#i5!OL7Sojrh!22A#R@P4 zA^<^chtWfLKK|0y%i`tfcx0bs2L3&d<|O}2HC_pK;S=^*X)mLDs|OJjO$MFnyJhEr zH-^LR1M^#a9yco|5F1bRH%jEz6B^eifxj9~00aBlk)U44BNRLCLs95)=Ij!Mx{!fJ z!uG0mqiKQ2P4`8_NLoeV)gd4B?zU$|k|xOqwwogS&u8r{*ZYe|Nr?(7t2F!L5BvIe z@De=to~8>c6UJ9FxrAix87EkoknEkiVd|4vH72Wle61^(Sb8WHzt1(k(AiK$>tp<~ zF5qk^S7@~nRc8h!-fWm>89p?VBS%vG9fk{mRhnd$YQ`p=j*gi#EZji# zuN0-!CqLCz>Qs1!`E8EMy^QVI3JTX0`|GcwKc%^DJ&}=kx8uC!;p1(l-b^z)BHBSE zKy1P*|BTA{8+QvkcFrBF>r~VL)O+2N$G(lUG@RjB^yC+6s@K* zueN~2O=!8v0d;4utap7c)>5M{DsRGRbD=XB`_%j6K^LkidPKG_g2x2DK;s;%G}5*W z?i0Q0@KX(aa3AW?`KL8f44bgMKszhyT|iPt{&0eBvuE0mu2*dw7Q(XReJVRBm`rE6)1nQxrKp~@iAkk;zn>h^%Lro)tW&1yu` zT?2GMuRgkvxPPI02!_>iD6l+@T6 zFUN3p>2lt%%p`X6V&p*Pd>-8c#;>idi@$JO^cR9iiCB?UYqUgO#%ARw zeKm)t-BB1=J=8>Zg30iHlp^kGOZ(5hQjCiztYt*1FCUvr?9E`DRdC6}X z-SM4@CDVMFv{>#J%L}H;$?`~Mo6T4AET7Fy7Rw!6$&9Kxp?$I@Xuia6L5mx3 z{Z)ghgH5MLx4)qRQ;?b~T=L6y%(OX0I!A$ByYGK#Z0Dt_3y&@Hw}aB@X&WY1#bk#r zI;rW;s5V7}RR79^acz3?DE(u8XZ4@?e9- zc<}@#s6>HDE>M#qQht1RbVNf(7YND$Snth?EG{li0&k?UK2U=8>|*Xl{?jMk2)&;l zXH(dNTJC?Xy~6Uan|qqEOVJv1LnvZz|DxH&p+eBlNq1`$ViPEIiZ!etYrIq7Ip2J( zkL)?=N^}=>e~SmEO^~Y+KgDK)e8XkNVwZarfNN)7v8GAx*-P`5Up`It97aby93Z`q%xfa##et8)emT7n{!0%^)nQ(Rj01TKBZ|U z-IK8l3;i8G=qVl`IB(P;w;bPSxx6ac&305BvDXLNSuMi*w!balntny;n<~MUk-nX- zp4J?zz6-wGz#OFwJz8af@g^8Pl=i#&o$+{gZm`JdGAdmd68fG6EQxR}w;dRpN%yJW zQPc;f&%Nw%lxUf^!Q8YGkZUx+nF@dW92L4c-(@^M;HI%rGlyQK!Dl@XU3@e%Gg}dp z?8jkKw4G0@pjHx~*W9lad|!Ss(OSZy##p|WbkB9c5Qz+CJ(&ExVfB08L+MUnsum2? z>7ax`D_FRl^=V(X0oO7hWre2n0Cz1!vEzYU2Icvd^+Jua`wBC^{99MGL&(2(Z_?{Qte;ipt;cK%O^-xci*(?0|6FVG^|op

  • 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 ikKq6RKmV=|&XHc>V7z|wk^Ke}yFC5a=ox z__Mi22z-OL|L`U7&lLw1nOC5q9_m$K2jBFi0`O&NILYY;0$~5T-D^z;5a^EM<=>Sl z6FOHA$b3;&@}-)q-o~Vtr`lrj#f6IvD46pdywqaVm;8tM+q9RpUq)lJP@|sUR~fg= z`XkNiCoOE>1-DS$CzNacoijO-=v?Y^koEno%~flIQ!kXEhK&|4C6D7%0+yIG)^`kF zUq5U=J^$fg(v#G+5EjJ|RhJUpD)JEJwA57%?L81gC9#;}4mW(*Av?iA47aW^-MW@j zUao3xZZ4;&2vhPM{J1rRNDy%=Lr~aJw^GhMXf>VC9Lat?yU-qW_!tEGd<`EMg$89W zVm8Gjfz+_Dn;x7X(2Li_e!&?TPZ$^&ax*iV_526Fc!W?qr?&iNN)6q~Zk_o>%G`AU z6>*CM;ekNEhm7n#aQTG*Cse{y&?!WpO?9P_eWQNc|6&Wg{`fIj7)%#kdWi5OBHneY{YIE5Z>ue5^+;8g?hmd6d(|3 zB*c`hVEu~!*;b>Z9nj>}#n*NpoP_X5ZtH+RcH_wd))B6MelUj@Xpr>-BeTNlO9BGT zF#Yda8QZ0 z;uqDIO?tx7>KDwI;`(@QI2m{-9=AcD*LGn4mf|`U4IO(a$uV*b zom6123|*$`RP$9w+gtht3{9WVG#HEVb*z_MJa-!;g*bDzf3psJRWiF1;1FScX$}mWmJ#U z;2KrQ%v@%iUK#kH=DD6zl0Xr6Se-FDVV@t_;bsN+3dJwrz8ug#w`OvU{p#l_$yVkt z@Rb$+D48}LP*dQ%xRhuzAvQaQ4$gy_gijBQ+C$4Vu6#>PPnWQ*cY9IPK6c0ql87qr ztrj5XHtiWAgKXn@*h5KO?RM<*r@WR+*sv3>9^{`XfUw?|K`L!_$^JQkyRlh@&g%(s z+LnDYO37yTEkcl96G zUYPC=ArJ?aXXxXLlyR=kjexj=Hhvq@^U1}Lpv<0;w5h!x%Cz>0Pk%%f7qP1D@TX;; z7jBXCa=Ydm;DiGz&o-IhULUKC4ZWb1&s&yd`=>0CydN%v*GsAk>wzA1qi<{ttrgXJ z=hAPTsvLRIdy+6<`AWUcjW}BnfkH~1hwxt2h`kLJQ}^t5E@N@}y6|?Qh^?!ikIOI7 zN6;nit6pmujr=GofDS@I@w%|E^{OrHaXLcaE4HDD|BR_b_|`T2o3=M6%+D^;*$Eg0 z>jdpg$CeuOyWsCH#DJY;1(K^SHaAB$A&xH%QU${syTl?&_&Ip#nc!{Z!kj z`?PO2fB6a~oZ^y2oy9~>ak?sIg7g+@Uhw$auA1&Rc3mvXZ-}j}e>u^SwMYSdz&iAy z(WIeO6nr|;<~Sv&%Npk|SThAnuD#onbees*R&w)e8Ow;Zn}3kacfAvY_1F}ICHi{c zgf!S<-IUA{H|cna|6Sl38)3UYfrDdX%Y~ZLO0ZXn4#m3b$@DC0L%&36K1rNTsDOm6 zgy?yr_JaUhj@VhBV&*13f5Un>{4&1Z7n5{5RpLwQN=-ivm=3%jvfnd1&Nb;`7RHI( z6(eAHq<^gUn=3xqID6`_;@yQyk+Xv~{tI6qzS zvI|ID*cVIO$1V9;F$xd9bCr&26>vh~l$Z+>;;oT5t_)(bin6bAMjS#O!CMP{4Y3sW zO|`BUt~Uvt_W0Lqm$&G1j&Nf={4lpHR*`#=dVvGeueMI5wpLz+^41R>y@$zUjG`BQ zvA>DpD}wJky)WMA7h?&!>}Lq4w84<^1O1WBx6s5mb%b)lE`j!~gE9M#<1=iIm#lA5 z-^PV*5vEeUo@~PjbW0x?yFu{MiaQO=vy@PE0Ue4a5EpX%Fm&I`_RUDo+iWCs)gzC? z#^nv7PzQyy-gskvu^ZNNUXOED8YHXjCZwp}7Cqbk+JueI#G9L)Dl#29qJ+EgQNpRu z_gHmrv9j2`^szbq)tP#<8EdS`UZtXXZ`0FUAKu5uX`}Bic9Cgc%6;q5&AB#2<2Ad# zxI8>2z!vd?jp=Q(HTWw`**<4Jd(nA-zhhsn=O}tl7VUB6VGoC$CLM>}gFY8h9YRuJ zU;_drNdc)CME!Rg^E@5ue*z?40rHP*0Ov`+_W!VrgxOBh9?yZ1X6$sgDl03sYMl!a z0(nlDk+EQRfQ!f`dmWA)8n$|#{%?>zSoX44hg#VA4OrJv84l#}?^V>jI&~*Yi5Aw@ zm0v^9!dDwsXK&9izgBezLS;2*G_NDT9WIhQU z_+e=?C_y%n*V$W&x)K;TbCtrG@M%@mLZtkDWwBScUgr3?mgvbs)ZrXkkH}tEDp;pt zWAN^t=~~3*e9_P7H!%es(k}Y3HpN%&+-xM^SSN)*Nn~p-&T&Td^{0#Mn7X~5awJ0| zuO-IC9AqTNasnM3kGv<+Fl>q%dp#$!aQ#XDxAKy{(232?RKopFyeGUTIW1@Y5 zZmy&SSJ+I}^yOz|N%QjZrXm9n;#Q~;zgT4JQ~?gGTV#fKHh`S#pG3WvcQ$J!89`nF zee=$y*4b|jdBAO0?~eOkDA~U*{=~~9q=lk5m%m%xB*=?dwI)k1`L6P(nHisNmuI+S z4=o!`)w$_nHAWFTEmSp&vD&Y^*xWG#^6Zu1113G3&VKuzi`g7M{L6XQX}w0`#m3w> z+0T-%pd<#Pf|X)m69fCz%sA<~r%EZ*SY(V>&8A+{aD+?vXfW^;nErVRj+cjcW%--8 zggm%>f=t!+HJt+dpBKYs`k7 zZ)b$A@9+*`b@#Of=iPsf@7e{25G2^gI03KT-1JW(Fc<9w4aTXRA#RkBj&R)ZWAA*8 z`E1iT>O-utSxb;G53k9x5^(6?Ga_&?^1NoVdO76>`|mP|X()%@UB(d9@9R;~9`jA( zch_tpQgb^~`Xx}3xJG6WXlDa>A|8xg^6UsTZyb6$Iy(9u*5my2aQn%;+PPL)dZZjGicy9{9t_?=f$$6~b~ z$v9h%y$V14BIJ4%^qqnl$-29gXq#8bi#5}>tv|_nSE$9iE-kfzFcEdZIeOtVW})eN z=XAB|UQtd0+z(6bwDBpNV>6$>FKOU*UVrZ)g-mwn5fs|0+e@pzRCX5tB1DAf$4h#& zuejK6RHDY0Cdzwy6qD^+9sp=n0f(x|cghGYCpm1W-+Yi6+)6u`Rmt8?%04B!quE{i zp{%Du;rf%H7Y~0PU7V+g#oYGz0Rl;Mkl=mN&Jd2%`6L_n`PVt+h#0i6v(S4h7bS+7 z29%*-t8H+SVxYISq%uT`OEv%exWx6Uz#Ve9)aMVTcHXR9rxm#;ZMSKzBNB#9pudaK zTc3eI-z@RLcx&GvC*9PGiro4nY6n?fl!>CX2fhbef%CjASbpFY44W~05!yfGUG|j_ zx8LQxvGUZTzo1Y_^zK^MGuc&Dc5v?+KIq9E-{32;f(|BZd?c4_Bi%BM@;r=Y+%)lt(MZ(z z;fy1v=Yu;BXoP$|1l&x*23?Du)!dJi}S zWR1-Ruc1W&kh6?>T57FKnFkuvscQ$c3Jhg{P>HGgDHf@hfeEHCW4jadP~AWh)HSot3h9BusTV6 z&(fn)B2q&_NR2P=`}NlUE-wH1HCXJmqN1|Ad@zCn5JDC=$GQ5p!$hHUu_4XGh6 zj*ixwK{Y##IB(Pg=<%0J=_GB}PxS2BGdTs>;eIl4K*D{SMI42#3_``GFBKGh)k?bj zQ~fM{JzGGwew%AJ7q|HRErQYs2s1$YP&7)>C7-n`txb3zN1yi{e?<^~ZuZ!s=|>Yy z4`gb_jr~<_XWJ)T@{V(oi4ZtWsH1}k(jGcrc=uaMe@1i2GW zVFwejMo~)8(*;4HqY3Xm#$G{`*mVx8KN;BjVhcNShGaQgS6Ulr*OXJB`2Zzt=!1vM z%-tinnrvZi-X92?nOSYHi%m*OD<2q)Nl36LzRKZw3sCPM8P@dP{}xfv^Khw~)B-;> z^u5#>6_dU((TPLqvfjjV{S^L(xE{)F2t9LEIYZpvDue^L`_8{&9bQaY1%1}?bM~Ezfw|C?#K6fO3TNw4Flc? zeU|;ze~zaS3a1s#+v^eT)hhtr!@XW{{l&#aAz6)&-yI#m*Lim9+Ur=*e6RO;`MV+=+0TG)af_R&v3aFG z{ooL7iwWhQ>I1T4D!ojYS)(t3`(lj7{(5=uI3p2Ygjv1y4K9Wpw#TT>@?yKoz`$Vl%{Di@6Y*k;Qc8c8F>ddR8ZVq8du#XB8bC9j^w9^pSeVlWyB5^TF5v@zd0V#6*dMoz3}h@pta-HJ8RsYbdp# zifNMl*DxAklVUjv;JSLQvjmr91aUMqm?jnchZk+uZjJbZ^>P62qzIUQgC1K5Mp;T; zi)dP}ePsl|A>9`uWGcKbAfXhTuYhi8$jQl>B}KS)5mx~I+}%GfGU)Rahn5GXE0;dt z+?W2XnOBkLi~8qMEbj{XQ1yqrq6b5&z}w_-0JQYwh){YW$t(26{^RypwI86Ln$-wGAfP+ z-~IKB0Gwq%-?BQ>=ogs**7sD7({s-)s@)Vi1F~>T2y|@1bv_h(JRi<$+;Pv?#AI#E z6gq4ir<*0{u#^KZE$GGRGGOun>Y5bPu+3xm``Z_qmlF{)b8zHYVM{1gHt=dp0~y`@ z>;R>%t6K=4a+ePvqZ?_DVmtuopBg~8BlO%B$v4I;<&P#^pupJdj~a!q9w9Ff^|;Bc zaZ@TV5LN3^fVEczxMxnz&f|ZZeQ}_Fk+}sqsvU>hLhFwZTe+pB%7ul6*hVtQ&lnaB zi__yB?1rs(KCk7-N_x210N{ic`;&mzW&`L(fM=9_gNkpZ5~Vi?*gk$$bqqk-!4^&T zR*%*=<%?lg=##zAPZETjELO6)LqkJ5y1QeZob7~rM?awv{3HnsaJ|@3b+2qB%xWyn z`y|f0UwEr7z1MSzJM6%m;@h$gwW#~hj@wmGUlictdY$gH%E`-@Yc$sy15q@08^92Q zoYxC8bI~>c>jRD6))81AmRUBN`?8~}@3L8o(WQ5|hE!3Zr*F za4SwhJLFjEe&M4TpC5KWJDW`t!4h2bhe^?n;DqvBoqHEpp2J1-q4p zdVm(0SubC)-myeMYZ+bt74Pz)I(_y!yM{7PYYPtt7nHHNaE6Ay*w4O+E+_QTa0-8| zX6>G@%rpV(rU$j%b z@cvqDKWeMZ5@@nXc~~7xqSqQ-C}ABblu)?^wA|xdou;(7sG9wV`fZ}IS5s^Il}f3T zoF(z~Yc@zfW#%gexB61ciO#nAs)1*-UDDzKU(s%)YhP(t6J&O;P>8$O8xz{T*m#H5 zNEw0=WwYoC@1I?FG3z~vRFTfzn536upGsTq2yz zj!5Qi_+aq3y1;7h>)owh8zUG4F};5VOlst`2w4f z;%!hP-K^!}K;=x`ch_NezparpR4`vb<~%Z08!^=f;YZjlyT;hiWbTtXRJW`c(hNjI zJfJ-2e?;@ZBOGR3rwNuHNQvptJq{V~AsgYKBc#Zfy_gLHy&;?VKwPKFCN|!s6QBK__ChqGnp#X z>3LJ+J`=^oa0B-i{>21hVYlInwk2LGo=-!V6qqQBwV3}YDSjB8I4u@Ae9mZs|MWRl zVLKczoPfAxnsU_ejr)EaKhe`J*XJeTb2Kk;&>y#z;TM4qe6CMlhd4j9<9X|_*X-lV z7&3l&O4k7nipIP9DVA^z9m-EDZd2EqmAHB+&PmVlVQSC^NpRKY1+M5bBW|w2THCMk z@@hZq926c_9r$+cWYSThQxRe%yKBLCE~nv~^!aSKnVN$JKWI*=W2!!Z%zYN`2@Lit(^kctO zcH#ZsXGbgb%||(o?d~)|In?PpMKf*r>0FG@%Buyjg%R*WOZ|>3qGGl+Me$;~M>dvG zQ(_qsky+;$>eXDqnz`UX_5JRcyzvK%Bl2qL(KaF$PtKCW!p?=5bsOPXm^z2`n6J6q zyfVExDnjTn@3LIw;-NQjw9SMPPB2zZdwb~uYMY%0i9_iAp5Sw7H>Q`vtNgar+P=>_T z>p1;*^C1P5!`~7@pMDo8q1=|x1vt!%7|n{=;0VsQRk}Y9Z=g|v7;ytcc)hXt=UBE( zy?t;UjT`gH6itnHyRQLOIKkP8?p~6x>QS+N@!A1K{R~4help#thRw;>urT%02%qu@ zuXjIrWL@o)MLTNby=TthUIRHshK?Wpka6kl97$Dxo4sqc!KsNV#_bfd_+jcG2-ukk zJf-H@(*2NBGTcuxuAT?eIjR3tw`cx&HiOl?n1UEF&pXKF*cA5#Yda&_M)>`Ns;!vVGJ+xZ0=~X;(0b?B{ zhD_$u$oR4@;wep~6CDDB5|aY|8$b@-}J zTw*4WU_SV11h~_XN;;HgDR%dbsE1qXCl1wZaEcB(R+n)zB*zpv4qLX8bgRger=U%) z4~X&WYJ^V~vSP^0hpJa858?nzN>vtv73&nKD z-D->Mlm-eIWmXS8mYF0Xd1O@`$W{YSNYtF(4y?r2Tr6`t8LT?$uBBv52wOVNBrnYr z^YvH^rU>sj=6ckzC2#io6pQ3~BgYRpvkit8R%=dY=9$+vdX;Zj)2s^BFW>ZHu&jG( zvS>EuBT|SxT0Ly9Nwyh677eLh)aZ8>Cuam|3S!UMk1%fw=wQEx2F1P=qMe{?{i^ak zgChiE39hnX^%v6zLXKTx%F{aM8v*JA=NTrtTzVQ4_1f{Bw0)@FxaiUs@||4!o!Vu* z_5+Th^}UoIjMolZMLUj%sdZ;lGFa}5WYG|H=_5wN=s^@OPPH+$->+pKv;fHNxIW z=d-o!x9S+GWR?_$)}Jk}(rtP6>-h`3<20?aNpSY*L7sVUsDGQyyAD;GMCzLW^LLUr z*;f94yZd(-IA?U+S4&qdV2G*n9@CAxU$b@R%3{3VX?JGlSBuC`mkyI!qCT!}=vkvw zjo0I7;of#NarO64G5rjK!>6O_fuUYs1u zbE|iBdQ&SE@q%Xz8%~@St%ai@XyILXp*7*3`)KEta&b4b*duH^(jj2L7M;4ETquP0 z+5zc+LcHFO{Dh9?7ZeFfENh>i9`4e}AvdJDU8hvO6+w1zedkf*2fx0)9JPUY`JcNv zwiA5HRacrcN%HGFiIEtk{4_=8 z$vfDjOhomtS_^LA9!00_b7>PIBN`$TK9;(RggDPfBE@~DMqWjgB2|iyMvTf)V`a1c zGjood+LmydJ`&d48Z0v=6&Jy5gT8&5=BR(`?AI~MCFCeJ1~=I|MKrx$FDFwqt38( zs~ZSb!+K$DCzyxTzP7nJqnZc$3Zn1v>fpdu$b8GhbU0h}dyVV|d(+!KVG!)qbbF3> zm%IF7;Pz|J9b~99S7xvi!we-?8k^1USkWkG>=}VEYdo^1DYt_l;k54h;t>lMKXnIQ zhgPO=m3^P`vjnfK@w89({e=D=R~*6N%uQE?2(mGl z=G0m*$8+&fEl%%{(~zyxrZ%=MpUIgd`c$t2Pd|$b=IT%E-}4voL=S?ud341vrU>Z8 z_AF}aoKn-!2HpnZ7^S1P;JBzPU*y6~eBrt${q{Q_v#a*6V?zzIdK2j<$29|G)9$T& z-t-(^M_aZsZ1BqPu-h{~&Xxykxp4^%K|s4*wR>qS!mUo;dttBgiu396dui=%Rb;J_ zTRj89LBR-dA)pigY;0+we|L+AouePFxAo7^9DK_ zRB#w=Vv)(bGb#r89r%fUcClTU<@D<^mD;Q&KNong_K?W;cTSF|(M;JOdp#kW!)j(L z+jmUyR-e{tfGcg)y6|+hoVX*jPc;?7ziz2oN2+swLS}%3itrdEdDCEq3q&#EdxULg zYJS$q&h3k1I>#dceDxLjbUZYNZM#rjx|GkzQ94p+{Vo}PxoX;3iYQKq?F)qWo;BSg zJs<-KAR^C;qNYwPG`WR$7tg$jpNugQe!m7xHzw(|8}XLSAbHk&BWBA;>NB}XmYCyN z?tT9*;B+MkG6M2zxcb^PsU9>ZvHL#s`DkAGwdbF|v_2z!2ze5|kcUrtC8_1IPU~;A zmI$BGo-{U?`_yYP3*hJ#mbBM zUFwR9FG83w>h`%O&nAJN6m7GbJ_F2=RDrxhR-4VmD_BcA1XWbK08=6&)n;Sm?G2}l zixq8)dzEJAp?6&$Ws&hJeRe^wLbVoLy&iQ$+xYSoeH8`%6j5BKZn>)Q-3{Kz1&x!6 zB4s3eXn=ACzlkGikrI3wUTI7%MD~37jk$kEHbF0yzHw0yCPX$3!l_vvuvEPSoN|Xe zE>gi!5)#9wkf&}Pl~Hqt-r>V^OMkK3$hx|HvPSb*=WvO$^KTwb&G0BDT)#G@7~~h~ z9hVkf;EdthuHib*d88A=ZN`}5GRgX8=^_2Cks3Lqnnv0y>uZ&SeCE!_Y1c_*A*`Kz zY}mx0ko(2@izHsV6w5CW`C5w#jSePzH>54A`?8HaHui!Tl=8dX+)lN?LfJr%%K{Z2 zU?M$n8=14#1r(?{tBc4!URx(f$~zRh^2q583+r5!6fbAzyITV`d+z3h{DijV2_xjN z94GY@HI2vNom~~rBf?3?K0m6WxCcR)(5|1TTL3S+JR{MC$cpXT1D*M_1cc7;IeY=V ztfBnj*s+5piDkOpr^@B}Z<0M&8zFgNA)i*BZ95z;?Jph7gI1-VhOGY7Pv9MV4PTD) z@5xN@*X|liA?y@1zJ6}saTCjMTeYWxO_5db3Lv zXwH)mkr=nrT{SF2Xq3mUjx|?rXzcyM9x_-6zb)rgzbq|l*hjWkSDGMD%3sZmH65SK zL*uL4%7%YkukX+yw~!6dZg`2PUOI?@S7_~Zbv1j+H=o|nV%<9oS?F$tsRqKh!Q}U}R(gFa)S>d-4fN;u}o6&sgLz1Jkn~*`@19 z@Shx_e?G4Ic6aBNP6ZsE@7Lv@t|AliR?dPM`Rl>e%a5Prf)uI6ZHiw}%hPba0w$g; zjF1Oz8`5^@a2rWLzAg6 zj0@uH(ckm->2E|Sth4>e@N0kRtdBN-kfd^voYlJEW=f6|Lu{|kV`#rh2%rAeQ|}!0 zvBAEr8=*FZHs<|np2a~LRqD1CW+LaiDeSi>T251E`($jHxwPsaG3@*8M${4qMHVsq zvh^Kztm_*EoJqX2U?{QT_q!G2NpY>kP9_fxQ&>U@*1napwZo_ND5qNTo=4c0My%$z zSn6i#=doPBiLzOT4xhMb=^`aH_xN)v`5#OLx|qXvrrz2aZO2lgkm_!n#U6IFjm-~t z+_Lc5lg7l{tiYvy5c82Y9@vtXolDNid{3gue-y4E#Aqr|mPJd8EI*#bTb)m5c0N5h z(2BYQLBHxZ=H=>>qqjQ5Mwb)e7J;5){o44>n*8_hk*wX))h~QQH0{)Z#{La zWiO>HLqYHV0%Qwk^hR!kEpo%NoqceiJ;EV~b;7Xckf#ma+m#i+Oq68T$6novmTy8I z|3tnVb_jjJ@iq$xGMcoDy2&y*G_J&~B>#h?5=9qurdFVh6r9CxZ(ap^b-eV=-<2S4P z1-DPvKjOG`jcx9;hjNUGHBY)Z#;ZZ3u*jwJF4jNLJZU1dJajd#6NQOQl!C;FK=!!1 z#cua6Q`N}C>*i~^ED>l2FFBG}ZaDBQm>(GGGdc7p77#t`JbA0LtTL7`vqLBH)XxXz z(SN79dt~_)bfU$cQn~&YyT|cNkJ`$J{EoCX1C}*9MnRrrYW%&it(ep&_Pj_B|7xXB zOKl*)@Y23O9SJ20P7Vs-<#bW&Q{M7Q)RxLpeq-#yYF!q5`F8YuQY z!!+!#4sI-74{Y@&QxG}#Sg||Znf^EEZS_8yEb%^tBk)0U35y!9)0eT8jyHS=ZrK7P z@k#7y-nOU%b{Aw1lwtwpYC(UuHZ$?*ulA+Ya z3z#u1;T^UppP*!s&5Iz`9;(5xRb%ATa&DyFZ+P1M&OUh||9SrsRY+_jCEU|vgF6HO z=a^Pw*c0cqMj~g6!PDogg|>o~@9;T(o@&Kf>+JKBKWNSShw(}NVSF%$G=S`hCf)tu zre)pJIghI8+mP*aqc|blZ+aiMfVO47VQZuw+Xf$Pa~!IzEE-@Rj$uM0pE#arCquJ` z59FhHz5TSb^P)|m$&865_ko9WYumD;$3h0i);Cz zv1{798->cL{g1m3huYxN&LPWj=H_I}lJBdUlQzu1+d|{pNuU7&PDE#s9(4$wx==DK zm6|B(+LQ9Q{PBx-aTxt+|Nnrrev3{gSYzG&?Cy6?MiOz)iIQI0alZa_#E>pCyZI(A zk6+Wq+A1$Xcrde+&3y0v{Nquz{O;IyS}Su^)7gaS&kfxl&MxG3&BtXA(AD`1xE1lm zAMI&tRR{rXJDN+nHmn{iZ`su)6dZh_7YEp_EU=S}{}KNca5h*UmwT>gCB`=Z<;k zo%P@deezS}B7%Yr&PKK5!IeGK~kdQI*X zYj3~9nO4o$hO6KB0l{`h9-@An;?~(?v$cgMAo{mdcEzFJ?|i@d8bGQ5eYmjj@p5Gl zP*S4jj~|spZPn`tOp*iG5*Za0^CZ^~P=vp`-l^^-_{-7&dI#OTLO^N^*s@9V zfjQ->hRB2VT-s%Pu>E6NUlIuGoCt)K%TeIm@-`_kgmu8>R0~+d(D3qK8uH(@rQc%_ zN~4wP6Xg?iG1d-;{o4|*Pkzs^2*h?g%Vp_b8JMBnjuqk%&mQ(C`Vd5+EyD(Ty zy4NGEavEtwW()@ht1mwP4qM^jab*uF?Q^5I3u@TRnmfiGlxm{<-EE4JV?_OIW}?oTjE*}8A^c5+?JDa69jsNVA_n>gVg3@mKCOWKTXp%;nq zi8*MQ*wq2KiXN_3yOUf~;{RfZoyKD}ndGTf`jRsg*5cB-be+x|_4n+Ff#@|?DYQr| z(B#AMg?+LvH!cps)G_zy6@9Jbl$NS2r)5+=Oo#J$o(i}nJ>~;S*1qd!j{LGfONlAv zhngX$u>NM>+MNGl&vdL-wWY6d_RwRBUlZ|cCx<6~`cGIU^7vt;t@>=XkeD@5P3Amv z&a%6cTX?ER=*j%K>Vc=0o!zG@+S)9I=E|0xgw>*px@_P7Qa`H$M4Bd*d`PgapJx$s zB~0yEFW-e*9_JK|@!7qTsnSU{_$B{rTpXO>DP$pKYaM8@Fw#?oDd`3h8=C|NWmL8l ztjR6d$72AsEoMslFQOTXD&F-MbL%p;Q_rt!hfNayLom|{!tYJp{10Xs^vPOPSJtk| z+32F6r+07-%g~X4Y!o1K=h$J};G3c%wjrHTnIF}QS#GcongZ6uJZ~|O&o>TT@&gZA zDf#XAQ#kk8R+J15@Cf~-Z-5fqB#-D9dkl=uVvnP&!j0Vx-6E@WUe&6RVpL6qO3gG; zmJQrP)z5P;_!k&?`k0)T4_{kxFOI^`0+6$12MRBV&IStNm*VQ>3HX127YppFtTldGE(o$Z|)opZ1aUVTL+62 zVd;}%n03&%ZrY6W#I_#Dt-RaMrOO7Ew*|jkO3{3HG96i5Heogl%bAKYhQ2Y0t%gubQ#VyX6Zvy&lNr z<-a?~DA23?+**^-t=+{gfVAM3u4Y0nZB2gs$mU)OnPhWemqd$2z>n*+Oh2*#ac8Uv z6k`dKe9z_z*H4l2W?H#!>>qM2cN<-p`!10+KKN}z$#nKtJNpv04s3(wrR47*%}Wmk zdIiB$9o1zHCzzVBg?!c^K5QrEUr7>C?7s_i>Q?_n0rTSHl?o^7 z;~Cr4Iy#KzhCU{|Koa>Nxb=t75<}_#i_cnJ%GJjCdy__15wskzwpAceNCeCq1rNoH z`pS{wx7=S9Zn=Nuv!vmfQ_p``2ZoMeVUsBQhE?gmYcHUH=+Ewz!T}X#K+=dFQUj_s zS0uF)0Z;KMFR!|6d%KX^+!q9~{c{Fh^=H6dBLq_k zUp~LT>ht-sF01*Qi_hoZ5Gu95iQ^CJ{a$USw)X9|oUFp4hJeJ2%a4k({eeJzA7D!4 z(n~V|hK2Pyd`e!9as-%c{6m*XAVF&)kRTx-;>sZr-76Y+eP> zRUyhk9sM!*G+Vum5!nHdpM$Bz4#iIOYA;GfK2kile7-hBDIbN%{t|U*2>$>BQ!a}# zEc@kfi&<5qMzgZkxQbs#wv$7OJ?&wayLCQyfY1@(H3SC97vhRBhj5es1bED+5Xs%x zuSfClp;N2*(MG^%6;NoYc`^-=y>tr8EBSKYRVuK>Y>fX*YnNA>E(842GiLpjsMa4@ zQ|jH z{)q?D_n)yUr2pZmu>cQdW?tv~vLYQ~^l`(=O{dtba%ZgG3&QJ~MG+r7mSa$?Lwm$>;O-hEy%1v(-un`2X-w9&N2xjKmx~1hyV#_I6AMw7n65nxB;P z?sVwv^Qhz%mx)BD<{W+WXL+vAGo`@$$y5tRVn=)U^c1YP ztImQ3!G*0GJ0W5C#padp3$ZiT)1$t|dF0)@z!$=_7dL>#(GUM;{ko9j;ZJcIp{S_9 zvHyt%K)uyJ6B*-ZH2KPU1sIRx)@R0?9>u`35k`9HunO?O^+u_rZvivD&@`cNXxdGh z(|f#}fOGiAFBFBGRv~VIKtHD=dj*=?fd3|-A&AQCl61EFylBt^mX!6`eq z&X=45xHQ`a7qybOn>w|%9aL;5-!p+TT*%?xOU5OVeHGonMe25Sw}KCYi2$=iIb^eM z+3!zK&m}Ocb%BB}cmzHJNgg-Q61TRMh4r zO71D_Gx$IRNf+B4xsN)wYWk7M^ePBsdZRd!*nrj4!Hb4VtljGN<~C;64D^k+FK$c7 zXlps?23&`k(lEaoi=3-5(EI}o-v=WXSU03d`i1lX(%kK;WG=P;iMz93Ej4K%=xw!= zTdk*!s{g015$3|?4;}fR!sQd4CmG-f=Er+r)?kxd=(|VII%ZfB|I|QHtINtMF-_uM zU94r~YHRuPgQytmauA$HV=-n)@PT#p^HyvHaZKXh>)#;{5JS74zwi9DN9vtR*x4!3 zNq6R;6h2c%PKD9YG1c_Oz$$dW1HmvjUWc_^5+eC?-5o)LzVLwO5}@3vc?jHx2LX0-soTe=#(_>4sFA)|>D zVibFLGCUJ+SaHuJzozt2(xbrHpZckbDv3QGt_(4in4Io=+>r&SD0 z4#CxoezXnN$#%xjWRh>@KPRhn#E5Fb#sRawYg6;fRYIhmWyNrN{+vQ%hyO zN0%-y`N^`tI?oKaow_X-sx{wfq|0AwL2y=ML%Lm5?AUvcyMQ3!MIoP!QbjB5DNf(hPolSkaD!h`08&X0qHD9 zX$+qd$HM&U-}3$X1Glrd%t@yzz^??{g{9@Cyt?+xGF}_Eu7jX_k2Z=oZu!2e+kIXx z>E3?As(`mdtxdJD^(og%!H19PpmFc9k})kZ;s#5<2~L|waZ`HFA-2<$x;5bvwgIoR zuL5>rid$HfddT)*4AHl&CjYljoB&Z3R_E)_ENd?6bN8U6_si=h30;h5v0i)nBV4I6 zRgBAj{Fc?51r4cnk8n&(PH4zCAT0F;E*Fe6#MSRJc(}bXw2FACqH$+^Y#L3n@eJ5Y zHF_V$Isjmi6;veqw37vRxneM7y4ga|dWVlz5n05GB0n-GuY+$L^p?095Y$}3|BZ_weK@D~l;0iVL2r2S1T+3rbqb$$oBUIVJS zW<{_%mrJr$=ARDD?xR7Zt=p6_6@T5fo9Hgcb-01PMrQLI@~` zC`gAOk@C?642X0jAW9FtMT!)G0EQyH! zXelF`hSl3d{PDO|SA}RsR6$3=NSK#>xxB}UF4Jlttw$$WR|*@`q62o@(yR$am1Zke|JGyaqn)Lq818w+P)k^9OSv!6q3 zt%&e%GyYDV2p5KmHX%yxSP-mhyqgNv{aSr4?^M)N?~ApENv1z=dD<_y68wy9Gv6yi zYt@i7IOyahxub632F9joE39ZeoeOMshSsHy`wMtpBoxPHI%7B7Rk(ua9wQ*@?%XOW z`Wi|S8SbL<2VT%UQ>FtEE!|Vm(=T4t+-N``S}*PAy;q{ovo+`g0HVY#KcdU@21R^3WRPn9iKaigA$)VcSy=Iiy64RYHC`7 z>=%bDwdm{J4KodCd6V}7EYys8>Kt|>8;RQ8vp+$}R}684`H8Hn2NPT3a(uv;&t{S$ zIeC3bzm7h}xt8D56Lhp*N?sy83;dxj7x&~>`;AUJ%|yz)k+PkvXz;e*oi$!e`F=X# zt8efO_0umAyYF1`6^47yj46}Y$Dk{@s+1@kih2DNW0?QEhCdo<`{ez@C6XR+Rbt;y zp{Gz?ZE~5pE?5KJR=Zd95%g|_vkq)$2g)$Qkv_CCwYSvE98qA-cf2Q1pu%u>?0w%x zgPDMXl=fl^@zC*F_nu%H$pSWE20R=`LWPTu%Z~B23*UGF0!JhR0zIcckM4k(xClF6 z;Xp&H*;BC-{{2pIBa?#8h|=hGyYB2a*IpPkybisNt>8y`iU6x4r8;wXcTx$<{s%h8 zCl)Py^>)>;kqMvu+yHXkVrFv6P)>lInTBJ}7u#(}2(wn+DdOHXsSz#JlVtz8oG16e zuz0aeN|I+_wP~n|(U#Iky!GDTw*r%Ai}j<1Xz|S|dkFWD2*g`_^NCk@si?#wT9%W) z6v!)_HbJ0>$t=lf8?v(1Zm1u}H@yuv9pZR6@lrbY!Vb=K$Lfwq*ISLr17{r)rSTM&Ci`>yWJ5J- zwj&M=r^biM4vkIIczIm;9@KO{rB#vWYLVW)QC_b=L@Iij3qj{;#KXo|1>GgIolK<8 zN~f(ldknc%lETka7nmwLZ0L%yj*KVdxPh^+9nHr5+V5NYPGZbgF-{1a8N< zdNL-_I%p)b=8v)hThgrGM2Z3g0OCXJcw-TflL@Q@z+m$-bFP~T-qAK!4Rh0}( zTh)J1Rkf<67YYoMV`8jRMN`rfF zIu>Q4*CGO`9Yb=0R=Srhrri)VTCdBW)+VhQIz|oOg6xK_VvD-{11sy9<;(%}S zm@eKJ2Pnw+wf^zUsjE)A**LlgfNx;rd;V0hrLD)bKYuv!^d{5%(8`O43yJF!Y_Z2g zSu8*LKo(sQy<*l^bfL*UdpA{5MArcV7i-i&yoigb&NA;TFPOpnBE|+dSf#)5ysxeW z_ZV@P?~2OVo@=#QtLY4;M9|3o&(ikIO#!yW7H_QsE~<`QIxt^(MTL6TK^+WdR`J@wQN#=~U zhu4m{I)M_&S{k$jCO?dVF6DD{J|I%icynhPYI2R_sYC$P?N2M`M2eKBAOIF5vQ7BM zf<}Lg-~Xq&_2HlBRsgvU0J@cQ_*=J3Aa(1x(KL=09iVZr&Bi_aZWQa;%_V`;7ht6- z&nE)I=>CtY(mt+JSZw^jaTSMHTWW4|jc4a8aH7*OC59M6Px{wC_nmN=+HhjgrSss(+@r3nNV_f#?J|ENpH6FMh{&TNL(*fLo; z=2xz~DmPyZGq4#Rpx)QeIP+IODyvMK$Yt`{)lEm{(3v)rD1K79V1;I;wY*at82zC% zpN|BY@Fgi5cD;B6z@CeNoX_qSOiL_s`a-I6FZN-C-uGR3s_g+>_1lZf=vJ}`B~yG# zbYiz}yUwuHKE8fS@l47TVl;EQH6mtl1A-1Qty<^XC2Y%8Lh?;_9UFB&juRZh%c`8f z$$?g^NMvH=WhwsX)ahY;ZbA2MUNFULzu$`;R7aAOA7PDg7j@uaA8a|RSddVYnh_Gf zD38l!7ZtdS6%L?}bkG?e0!SawPyRsRVxAY_z%b#=9hUaK^$w0dVtm>tV%1qUi+id2ia!fR-M>S0@O;t`MB zheg8GBK}5kZ4Gjj@b;&D9C)TZ5pNvR9sz>)R(mo{I|^xmt1ko(w|A70z8cpW2UkWTYKCTkm^sSNjSbo9&Ug(wW9lj zKJlh|ROqVs0HC}mJF%6bH?nfI%k z`#f4;K^=A7h3Ue#vlV};<*d$j$$NCANlA346)%Atm49sO1%~y0G)i>f{If+tF6OSe z=2)vW4Wlg^&&bK=YH4X*z1NQ=sP}^ttzm%mr*3*&AnsKQY11kn3`2){46oEtCY zzUP~XwR-osRqeZq-{7|`xv!Nf#{P>|rTU14ZP05{=C9V-#>8=YutDX`(hy92lduvr< zll$8p1nWvmzLl0&2XtuNkK|k614+V}(L02nB?xq!#qR=l(Yj`-Zg#si$UlLo&dbyf zEC8*kVVi;{7Ny+gnDV@fJa=xzfN@ttNCd09O@se2OQxBMhRO~$rXz4z7%kSl#F3*~ zqoH6a-12zd(+_t+A0m-bC7!LYC_H}CZ<@Q>vE>PYM~Z2mtM4}xH^q8#e& zpDfFumeV~hMfchaZ#^RQlO=p34YA2ZoJgMiRosZilk1p=wwFvlZRV~9VdMIRPL|Sz zLi$N)-pdu>YV^3lZ)$q)3gOj6zxqb*ll+oK@*voK8S9IdKS-q-P;=QCOiS{dKDw#R z>=kEpbLWaaW+^3_XeW%F*A^tiB5_TI0O0LdRZ z;R3qM6EzlC(PK%R?~cp-Y@1X8Vq5*Vk*z#4cU{9{DgAPXMg7rq!Jd(V&Bs};Zn9KR zi3~7Lk(D=#?XMWQn3~=$YcS}P`?UB}Mz6?bQh05#EZZ9ql}GQNL9IrLZ|t=|S?`2| zMCfG{{xsHjMTAG~0uqG3ba%gD=&xB-?;nnmAQtlzh?FE;IM>L=i6Nsw9N(?Oz|99qsg(MjFnI})r`r)^GNcq`66_== zS=Nkzh1AK+H?hf+-WJaX1EAVP+?2n4!NKB13P-Z$5)Yq6D+gDMy@SIs0t|`8DV~k4 z43K&Ee7?CCH0+=AYEV>?AG18{fQ4!a=}~ju-JAOJ;ldMr1^ORclTm)_Aoh!B%g)m zSi-uVgG0VH2-?cb%zV1gKuhubG^oG;>~vdOdjRa694nN1u3JP)NJNAVMCnO^YU&C{ zT`=UqgB;umipR>Dw{Pp~>&M{aqD8fK20Q)PjNe&4!SSD^_ab-GtBlcp2ir5lwBY$p zxHd>#{>xgR7KeeiMG0W@8gylyVBstdUYnIw@Bm-$&F-1MQKUkNb%5l292=toqDFp~ zWfyju9l+w*ny&xleZQI0f8bjF?X&*#dxU&;BLg1(+;{mDWA<0O-%q!VlB|Cn(N8xN zEYJnl`rr0jFkr3w=I?vvVCsSj;@7TzCY=2Hc0vvAxu0chbR{_W{|$xxpDq9M4gB|h z1GgCfb@_8#1TmI>%{2Y{Rr3FTZI`wQ3j5|f@&-Jb$M)KP{{*dhFUvaheR|DC_mw=l zB=Kp2_|zv3g}4D&N|bhrVs3G#@-R6GjH(k5P=6cY{t*HCUwO5K?1%jeUu1j<9FP8( zP`d{QttthdmCO$1-G^XB)y2I0e29U8jd&x)aPfo46^H!!hLbb<@rQ8nqs;yP;vq*3 zMa=fkr1rWGSNSL%=0%hYj-8-THBy|hs&E)hyILULKOnFXdQsBWu74v$TInn7$Z}Fx z@3R>*3fBiF`i_o{<3kRGrAFt@J>O{+xA{_l_&9?2@QTlBB~}RJ1k7CJkZIwO ztodYNtDbf$Y%=~}kwHoF(D&=^b-yt!I|nE9dE%v|_jGU@kJTy>9Uqn~B5@0L8pPe- zB=YA8_!1itrW+mYdF!Ltwo^!yxW|0&F(1mEZAz_D(i~;$J3`Y7UTLkTwVbbT4?KV8U3IouVNYsJ9+6=;F6iw-RGC-}ETPTMjC$Ua;u(D) z?KuX4cNOC`sdjZ+(Ho{sFL`QJRVtSPD;O_l;yqU*Pxo4@!17*Ska1{IbNAfe|FFP9 zA9HNT7x^UH2Bqn3a9WpNnZ9Avr+9vdv+BEh!E*#rCvgDIrQmbaoXPBrgz?d^LJONh z9tw7p(vhPtB``bjB#>;vHoFKyh<$@SrUuuCTutAzJ3DOVKXB+^Jl)%#T22t8Le8|m z7w^x15lgypg$xCr?*RP|WDpG-{`6 z*gdh6qcW8?zPWq>?K}1HG7HE&1A@-U0iDF{$0?Pys^ri&-p-I5d;e|Mcj*oAY6;V~o|*mpM*|{c#8z&Thr_aaWsas{{0$=yDEaa=mh)!mh%rBn5an`J9c)sX9?gNhb(79% z-MJ+3IW3E%bW(uL{z9X_bdA_ts(YNZNg+N5=9HMNw=S;b>ywxr>>uxj<3n&&MV1_{ zQU?&ioOc9Z0SDu_=LlH9%z{`ikJ2dD&qMxlel(A3>2sB|teadRag$-L%Ob*9tN?_^ zC8#N^!KS7+zKuZF-<4~WYiv-51%OmJx2apR{XF7?_Bi+T>1%YCzp1>7nkMi^BKmjC zeLsINke{PrsP@Ju80=*5w!U(WTs++N>feLL-JjDJ2ypEk*wd>Yi^(h;DK!7!rCxKe zOXQ;h7kz}u%)`3x3uo2-1L>Xih_Rq8YA)pQh2*3KTq9Y^TJK^+BE^h=$(WK$gI~XVaE! zZgXX}ypm7!CSX+>f_? zSw?6oR6=fCtSxJWCAo}RY+G#bpV1Q)sCeAxb)#_64|1~#X}kJ{&O8NKDf#V;D^nr! zr3$$pHo1#FB)9e!-oj!}gK%!X?n!YTy~evb2tvTrmkW^~*;sYtYz0M9%&oeH=$VAM zvMeYF39R#H%jl>yBcOKqd}{nFdsybtf7DU_;f)3b9LF=s0+T$L#sAnf68or!f%d3!z^2tFv zj=kB8Q1{terr7FB1R&PB>@3M>YA8SIBXh3WjPCUi?K6vOBWdn!gw!q&Js(tf!Kp7b z<2cU?r_0A^HGP-9+%zpiWq`2K$7j=;#`!h#>*C`MB@(FuzVD>bg!F zZKPOHzTY#$?|hD;ud~%ihV}%=rrjck=1^9=l;LfnW2~C=&Omv}fXXwc3?BXV@|vt1 z#=E^r(53Dxn!c`CwsFFHn`vC&pVQQKC!{?3^y? zc;~^(?vY)m61qUoThg72JtdL??{qIqxlKYs)?Twu+VW^qxH=t%EDeTHB-tLSAeZJv VQS!HWz(k)yQ(gN;!F9{P{{U6Jn3ezl literal 0 HcmV?d00001 From b7eda9abd2aba63606644871c07725d4ae59403b Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 16:58:53 -0700 Subject: [PATCH 764/934] Update toc.yml --- query-languages/dax/toc.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index f4adf0d87..26ffff3cc 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -314,6 +314,14 @@ items: items: - name: INFO functions overview href: info-functions-dax.md + - name: INFO.VIEW.COLUMNS + href: info-view-columns-function-dax.md + - name: INFO.VIEW.MEASURES + href: info-view-measures-function-dax.md + - name: INFO.VIEW.RELATIONSHIPS + href: info-view-relationships-function-dax.md + - name: INFO.VIEW.TABLES + href: info-view-tables-function-dax.md - name: Information functions items: - name: Information functions overview From 394ffead832285ef7eccdee85e61a770f51396f9 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 17:00:30 -0700 Subject: [PATCH 765/934] Update info-view-tables-function-dax.md --- query-languages/dax/info-view-tables-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-view-tables-function-dax.md b/query-languages/dax/info-view-tables-function-dax.md index 2a261665d..483f8adcf 100644 --- a/query-languages/dax/info-view-tables-function-dax.md +++ b/query-languages/dax/info-view-tables-function-dax.md @@ -109,7 +109,7 @@ xTables2 = ``` This calculated table shows the same information as the DAX query in example 2 in a table in the model itself. -:::image type="content" source="media/info-view-tables-function-dax/calculated-table-example-3.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() with selected columns in DAX query view." lightbox="media/info-view-tables-function-dax/calculated-table-example-3.png"::: +:::image type="content" source="media/info-view-tables-function-dax/calculated-table-example-3.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() with selected columns in a calculated table." lightbox="media/info-view-tables-function-dax/calculated-table-example-3.png"::: ## Example 4 - measure From f412cc358a4d88c50286a02db4ec9cfc536673df Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 18:08:25 -0700 Subject: [PATCH 766/934] Create info-view-columns-function-dax.md --- .../dax/info-view-columns-function-dax.md | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 query-languages/dax/info-view-columns-function-dax.md diff --git a/query-languages/dax/info-view-columns-function-dax.md b/query-languages/dax/info-view-columns-function-dax.md new file mode 100644 index 000000000..848f9f2b9 --- /dev/null +++ b/query-languages/dax/info-view-columns-function-dax.md @@ -0,0 +1,160 @@ +--- +description: "Learn more about: INFO.VIEW.COLUMNS" +title: "INFO.VIEW.TABLES function (DAX)" +author: DataZoeMS +--- +# INFO.VIEW.COLUMNS + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + +Returns a table with information about each column in the semantic model, such as name, description, and format string. This information helps you understand the model and to self-document the model when used in calculated tables. + +## Syntax + +```dax +INFO.VIEW.COLUMNS() +``` + +## Return value + +A table with the following columns: + +| Column | Description | +|---|---| +| [ID] | The unique ID for each column in this semantic model as an integer. | +| [Name] | The name of each column in this semantic model as a string. | +| [Table] | The table of each column in this semantic model as a string. | +| [DataType] | The data type of each column in this semantic model as a string. | +| [DataCategory] | The data category of each column in this semantic model as a string. | +| [Description] | The description of each column in this semantic model as a string. | +| [IsHidden] | The hidden state of each column in this semantic model as True or False. | +| [IsUnique] | The is unique of each column in this semantic model as True of False. | +| [IsKey] | The is key of each column in this semantic model as True or False. | +| [IsNullable] | The is nullable of each column in this semantic model as True or False. | +| [Alignment] | The alignment of each column in this semantic model as a string. | +| [SummarizeBy] | The summarize by of each column in this semantic model as a string. | +| [ColumnStorage] | The column storage of each column in this semantic model as a string combination of name and ID. | +| [Type] | The type of each column in this semantic model as a string. | +| [SourceColumn] | The source column of each column in this semantic model as a string. | +| [Expression] | The DAX formula of calculated columns. | +| [FormatString] | The format string of each column in this semantic model as a string. | +| [IsAvailableInMDX] | The is available in MDX of each column in this semantic model as True or False. Analyze in Excel pivot tables will only show columns set to True. | +| [SortByColumn] | The sort by column of each column in this semantic model as a string. Shows as blank when sorting by itself. | +| [GroupingBehavior] | The grouping behavior of each column in this semantic model as a string. | +| [SourceProviderType] | The source provider type of each column in this semantic model as a string. | +| [DisplayFolder] | The display folder of each column in this semantic model as a string. Nested folders shown with / and multiple folders separated by ;. | +| [AlternateOf] | The alternate of property of each column in this semantic model as a string. | +| [LineageTag] | The lineage tag of each column in this semantic model as a string. | + + +## Remarks + +Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in calculated tables, columns, and measures of a semantic model and will update when the model is refreshed. + +## Example 1 - DAX query + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + INFO.VIEW.COLUMNS() +``` + +This DAX query returns a table with all of the columns of this DAX function. + +## Example 2 - DAX query with SELECTCOLUMNS and FILTER + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + // Select specific columns from the filtered result + SELECTCOLUMNS( + // Filter columns from the INFO.VIEW.COLUMNS() table + FILTER( + INFO.VIEW.COLUMNS(), + // Exclude rows where DataCategory is "RowNumber" and Table is "xTables" + [DataCategory] <> "RowNumber" && [Table] <> "xTables" + ), + // Show only these selected columns with new names where specified + [Table], + "Column", [Name], + [Description], + "DAX formula", [Expression], + [DataCategory], + [DataType], + [IsHidden] + ) + // Order the result by Table and then by Column + ORDER BY + [Table], [Column] +``` + +This DAX query returns a table with only the specified columns and rows meeting the filter condition with a DAX formula. + +:::image type="content" source="media/info-view-columns-function-dax/dax-query-example-2.png" alt-text="Screenshot showing the output of INFO.VIEW.COLUMNS() with selected columns in DAX query view." lightbox="media/info-view-columns-function-dax/dax-query-example-2.png"::: + +## Example 3 - calculated table with SELECTCOLUMNS and FILTER + +Either of the above examples work in a calculated table when the EVALUATE and ORDER BY keywords are removed and a table name added. Here is example 2 in a calculated table: + +```dax +Columns in this semantic model = +// Select specific columns from the filtered result + SELECTCOLUMNS( + // Filter columns from the INFO.VIEW.COLUMNS() table + FILTER( + INFO.VIEW.COLUMNS(), + // Exclude rows where DataCategory is "RowNumber" and Table is "xTables" + [DataCategory] <> "RowNumber" && [Table] <> "xTables" + ), + // Show only these selected columns with new names where specified + [Table], + "Column", [Name], + [Description], + "DAX formula", [Expression], + [DataCategory], + [DataType], + [IsHidden] + ) +``` +This calculated table shows the same information as the DAX query in example 2 in a table in the model itself. + +## Example 4 - measure + +The following measure can be added to count the number of text columns in a semantic model: + +```dax +Number of text columns = +COUNTROWS( + FILTER( + INFO.VIEW.COLUMNS(), + [DataType] = "Text" + ) +) +``` +This will show a scalar value with the number of text columns in my model. + +This can be shown in a visual: + +:::image type="content" source="media/info-view-columns-function-dax/measure-example-4-visuals.png" alt-text="Screenshot showing the output of INFO.VIEW.COLUMNS() with a measure then used in report visuals." lightbox="media/info-view-columns-function-dax/measure-example-4-visuals.png"::: + +Or a DAX query in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +DEFINE + MEASURE 'Columns in this semantic model'[Number of text columns] = + COUNTROWS( + FILTER( + INFO.VIEW.COLUMNS(), + [DataType] = "Text" + ) + ) + +EVALUATE + SUMMARIZECOLUMNS( + "Number of text columns", [Number of text columns] + ) +``` + +:::image type="content" source="media/info-view-tables-function-dax/measure-example-4-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() with a measure then used in a DAX query in DAX query view." lightbox="media/info-view-tables-function-dax/measure-example-4-dax-query.png"::: From c3dbc9e415247ec17e09f27aa9801ea94200a884 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 18:08:54 -0700 Subject: [PATCH 767/934] Add files via upload --- .../dax-query-example-2.png | Bin 0 -> 81349 bytes .../measure-example-4-visuals.png | Bin 0 -> 62533 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/info-view-columns-function-dax/dax-query-example-2.png create mode 100644 query-languages/dax/media/info-view-columns-function-dax/measure-example-4-visuals.png diff --git a/query-languages/dax/media/info-view-columns-function-dax/dax-query-example-2.png b/query-languages/dax/media/info-view-columns-function-dax/dax-query-example-2.png new file mode 100644 index 0000000000000000000000000000000000000000..044919c5b02c0eb1f4347ddd2d9e7aaa22633860 GIT binary patch literal 81349 zcmcG$bzD?i8$XI5q9Pz5(jbCh0n!c9paKGlq;xk!cS$!&cZzg($I#6X0}S26ki)O44E&CBszPz{PE2Q8`fzjPgj_OI>W>`ksx98VCb}$o}`=twkeR zXAF#+Tv-XxPtITW7TnywuczMJOs~C_5ySVtjd}Y`iow%|j5 zG4@uGeZG0n$Om>lqNOW$!40<9-G+@8MEyS2MSUq6G%I|K(&u^l&tdm9mDd(iLtNa? z7x_=?)6Ln#Rd6{M56>$T)_mutc zuD3xvHfKd6YK49&{0d(qP+^Qh0L!vxy;K?qH(VGaWB&^8;iSz z!4cHixw+r!>Uj0^^^2#TKK1*mp+Q+(T+G10@Wvfw^Y;R@k0Zgl^x>_w%@~_3jFflcyd-0-A{k2{DyLa!ha&x=YsZ=CH-Q@TM-gKOT{3q~( zf;8XQYZ3ov`q4J?R<%;I1Cq~PzWk+89u>rxCFizg4$1l&S~2U4+JK@q3rjYCq{@39 z8IhcV=|^@!&COTae6Xr&Yc&cR9#K;d`QIbvJkpkM%`GSh zzDLZc`uEIGOMV0ie4xDQx@igu3QRpc@j(1%JUr81T0PK?!zq0F7Xfs_!Y$f0(k#r; zG}A*vLz}E7H_gfSo!1c7o6V8P7y(B?#hT|THzVePEv8t^#u~*#tmOCSLVI)Hin{%^ z9QT;UmyB}osrkE{T8^n}EN1nJvl<$bUMT04IU&AojHFu^BVCriktVR|2UM#v=m8Jf z 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 O?W}=`KJKLb-TwjB8T;!1 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/info-view-columns-function-dax/measure-example-4-visuals.png b/query-languages/dax/media/info-view-columns-function-dax/measure-example-4-visuals.png new file mode 100644 index 0000000000000000000000000000000000000000..3e84f416301d84ea92e82bbcdc25f608536c46a2 GIT binary patch literal 62533 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 LuW1!%ScUu-YO6mR literal 0 HcmV?d00001 From 08acc802dde5c8bdfd98e9995c3921f3bb12f156 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 18:10:37 -0700 Subject: [PATCH 768/934] Update info-view-columns-function-dax.md --- query-languages/dax/info-view-columns-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-view-columns-function-dax.md b/query-languages/dax/info-view-columns-function-dax.md index 848f9f2b9..df9e0bc96 100644 --- a/query-languages/dax/info-view-columns-function-dax.md +++ b/query-languages/dax/info-view-columns-function-dax.md @@ -1,6 +1,6 @@ --- description: "Learn more about: INFO.VIEW.COLUMNS" -title: "INFO.VIEW.TABLES function (DAX)" +title: "INFO.VIEW.COLUMNS function (DAX)" author: DataZoeMS --- # INFO.VIEW.COLUMNS From b20aedb2a1bc53133ea2a644e266d476c30fcd96 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 20:40:58 -0700 Subject: [PATCH 769/934] Create info-view-measures-function-dax.md --- .../dax/info-view-measures-function-dax.md | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 query-languages/dax/info-view-measures-function-dax.md diff --git a/query-languages/dax/info-view-measures-function-dax.md b/query-languages/dax/info-view-measures-function-dax.md new file mode 100644 index 000000000..174909834 --- /dev/null +++ b/query-languages/dax/info-view-measures-function-dax.md @@ -0,0 +1,121 @@ +--- +description: "Learn more about: INFO.VIEW.MEASURES" +title: "INFO.VIEW.MEASURES function (DAX)" +author: DataZoeMS +--- +# INFO.VIEW.MEASURES + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + +Returns a table with information about each measure in the semantic model, such as name, description, and DAX formula. This information helps you understand the model and to self-document the model when used in calculated tables. + +## Syntax + +```dax +INFO.VIEW.MEASURES() +``` + +## Return value + +A table with the following columns: + +| Column | Description | +|---|---| +| [ID] | The unique ID for each measure in this semantic model as an integer. | +| [Name] | The name of each measure in this semantic model as a string. | +| [Table] | The home table of each measure in this semantic model as a string. | +| [Description] | The description of each measure in this semantic model as a string. | +| [DataType] | The data type of each measure in this semantic model as a string. Measures are usually variant data type. | +| [Expression] | The DAX formula of each measure in this semantic model. | +| [FormatString] | The format string of each measure in this semantic model as a string. | +| [IsHidden] | The hidden state of each measure in this semantic model as True or False. | +| [State] | The state (such as valid or error) of each measure in this semantic model as a string. | +| [KPIID] | The KPI ID of each measure in this semantic model as an integer. | +| [IsSimpleMeasure] | The simple measure flag of each measure in this semantic model as True of False. | +| [DisplayFolder] | The display folder of each measure in this semantic model as a string. Nested folders shown with / and multiple folders separated by ;. | +| [DetailRowsDefinition] | The details rows definition of each measure in this semantic model. | +| [DataCategory] | The data category of each measure in this semantic model as a string. | +| [FormatStringDefinition] | The dynamic format string of each measure in this semantic model. | +| [LineageTag] | The lineage tag of each measure in this semantic model as a string. | + +## Remarks + +Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in calculated tables, columns, and measures of a semantic model and will update when the model is refreshed. + +## Example 1 - DAX query + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + INFO.VIEW.MEASURES() +``` + +This DAX query returns a table with all of the columns of this DAX function. + +:::image type="content" source="media/info-view-measures-function-dax/dax-query-example-1.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() in DAX query view." lightbox="media/info-view-measures-function-dax/dax-query-example-1.png"::: + +## Example 2 - DAX query with SELECTCOLUMNS + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + SELECTCOLUMNS( + INFO.VIEW.MEASURES(), + "Home table", [Table], + "Measure", [Name], + [Description], + "DAX formula", [Expression], + [State] + ) +``` + +This DAX query returns a table with only the specified columns and rows meeting the filter condition with a DAX formula. + +:::image type="content" source="media/info-view-measures-function-dax/dax-query-example-2.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with selected columns in DAX query view." lightbox="media/info-view-measures-function-dax/dax-query-example-2.png"::: + +## Example 3 - calculated table with SELECTCOLUMNS + +Either of the above examples work in a calculated table when the EVALUATE and ORDER BY keywords are removed and a table name added. Here is example 2 in a calculated table: + +```dax +Measures in this semantic model = +SELECTCOLUMNS( + INFO.VIEW.MEASURES(), + "Home table", [Table], + "Measure", [Name], + [Description], + "DAX formula", [Expression], + [State] + ) +``` +This calculated table shows the same information as the DAX query in example 2 in a table in the model itself. + +## Example 4 - measure + +The following measure can be added to count the number of text columns in a semantic model: + +```dax +Number of measures = +COUNTROWS( INFO.VIEW.MEASURES() ) +``` +This will show a scalar value with the number of measures in my model. + +This can be shown in a visual: + +:::image type="content" source="media/info-view-measures-function-dax/measure-example-4-visuals.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with a measure then used in report visuals." lightbox="media/info-view-measures-function-dax/measure-example-4-visuals.png"::: + +Or a DAX query in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +DEFINE + MEASURE 'Measures in this semantic model'[Number of measures] = COUNTROWS( INFO.VIEW.MEASURES() ) + +EVALUATE + SUMMARIZECOLUMNS( + "Number of measures", [Number of measures] + ) +``` + +:::image type="content" source="media/info-view-measures-function-dax/measure-example-4-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with a measure then used in a DAX query in DAX query view." lightbox="media/info-view-measures-function-dax/measure-example-4-dax-query.png"::: From 8791ef243a0b7f609a34f6d4b9cd97b1e29d229f Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 21:18:27 -0700 Subject: [PATCH 770/934] Create info-view-relationships-function-dax.md --- .../info-view-relationships-function-dax.md | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 query-languages/dax/info-view-relationships-function-dax.md diff --git a/query-languages/dax/info-view-relationships-function-dax.md b/query-languages/dax/info-view-relationships-function-dax.md new file mode 100644 index 000000000..a78432894 --- /dev/null +++ b/query-languages/dax/info-view-relationships-function-dax.md @@ -0,0 +1,115 @@ +--- +description: "Learn more about: INFO.VIEW.RELATIONSHIPS" +title: "INFO.VIEW.RELATIONSHIPS function (DAX)" +author: DataZoeMS +--- +# INFO.VIEW.RELATIONSHIPS + +[!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] + +Returns a table with information about each relationship in the semantic model, such as name, cardinality, and cross-filtering behavior. This information helps you understand the model and to self-document the model when used in calculated tables. + +## Syntax + +```dax +INFO.VIEW.RELATIONSHIPS() +``` + +## Return value + +A table with the following columns: + +| Column | Description | +|---|---| +| [ID] | The unique ID for each relationship in this semantic model as an integer. | +| [Name] | The name of each relationship in this semantic model as a string. Might be a GUID. | +| [Relationship] | The descriptive relationship name of each relationship in this semantic model as a string. Includes from table and column, to table and column, with cardinality and cross filter direction. | +| [Model] | The relationship's semantic model ID, usually a GUID. | +| [IsActive] | The is active property of each relationship in this semantic model as True or False. | +| [CrossFilteringBehavior] | The cross-filter behavior or direction of each relationship in this semantic model as a string. | +| [RelyOnReferentialIntegrity] | The rely on referential integrity property of each relationship in this semantic model as a string. Also called assume referential integrity in the relationship editor, as it assumes all rows in the column in the many table have a match to a row in the one side table. | +| [FromTable] | The from table name of each relationship in this semantic model as a string. | +| [FromColumn] | The from column name of each relationship in this semantic model as a string. | +| [FromCardinality] | The from column cardinality of each relationship in this semantic model as a string. | +| [ToTable] | The to table name of each relationship in this semantic model as a string. | +| [ToColumn] | The to column name of each relationship in this semantic model as a string. | +| [ToCardinality] | The to column cardinality of each relationship in this semantic model as a string. | +| [State] | The state of each relationship in this semantic model as a string. | +| [SecurityFilteringBehavior] | The security filtering behavior of each relationship in this semantic model as a string. Important for row-level security roles. | + + +## Remarks + +Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in calculated tables, columns, and measures of a semantic model and will update when the model is refreshed. + +## Example 1 - DAX query + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + INFO.VIEW.RELATIONSHIPS() +``` + +This DAX query returns a table with all of the columns of this DAX function. + +:::image type="content" source="media/info-view-relationships-function-dax/dax-query-example-1.png" alt-text="Screenshot showing the output of INFO.VIEW.RELATIONSHIPS() in DAX query view." lightbox="media/info-view-relationships-function-dax/dax-query-example-1.png"::: + +## Example 2 - DAX query with SELECTCOLUMNS + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + SELECTCOLUMNS( + INFO.VIEW.RELATIONSHIPS(), + [Relationship], + [IsActive] + ) +``` + +This DAX query returns a table with only the specified columns. + +:::image type="content" source="media/info-view-measures-function-dax/dax-query-example-2.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with selected columns in DAX query view." lightbox="media/info-view-measures-function-dax/dax-query-example-2.png"::: + +## Example 3 - calculated table with SELECTCOLUMNS + +Either of the above examples work in a calculated table when the EVALUATE and ORDER BY keywords are removed and a table name added. Here is example 2 in a calculated table: + +```dax +Relationships in this semantic model = +SELECTCOLUMNS( + INFO.VIEW.RELATIONSHIPS(), + [Relationship], + [IsActive] +) +``` +This calculated table shows the same information as the DAX query in example 2 in a table in the model itself. + +## Example 4 - measure + +The following measure can be added to count the number of text columns in a semantic model: + +```dax +Number of relationships = +COUNTROWS( INFO.VIEW.RELATIONSHIPS() ) +``` +This will show a scalar value with the number of relationships in my model. + +This can be shown in a visual: + +:::image type="content" source="media/info-view-measures-function-dax/measure-example-4-visuals.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with a measure then used in report visuals." lightbox="media/info-view-measures-function-dax/measure-example-4-visuals.png"::: + +Or a DAX query in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +DEFINE + MEASURE 'Measures in this semantic model'[Number of measures] = COUNTROWS( INFO.VIEW.MEASURES() ) + +EVALUATE + SUMMARIZECOLUMNS( + "Number of measures", [Number of measures] + ) +``` + +:::image type="content" source="media/info-view-measures-function-dax/measure-example-4-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with a measure then used in a DAX query in DAX query view." lightbox="media/info-view-measures-function-dax/measure-example-4-dax-query.png"::: From 49ecf64a438484e40d9db5c3036af99e8d6b21a1 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 21:18:54 -0700 Subject: [PATCH 771/934] Add files via upload --- .../dax-query-example-1.png | Bin 0 -> 89769 bytes .../dax-query-example-2.png | Bin 0 -> 79431 bytes .../measure-example-4-dax-query.png | Bin 0 -> 44658 bytes .../measure-example-4-visuals.png | Bin 0 -> 16758 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/info-view-relationships-function-dax/dax-query-example-1.png create mode 100644 query-languages/dax/media/info-view-relationships-function-dax/dax-query-example-2.png create mode 100644 query-languages/dax/media/info-view-relationships-function-dax/measure-example-4-dax-query.png create mode 100644 query-languages/dax/media/info-view-relationships-function-dax/measure-example-4-visuals.png diff --git a/query-languages/dax/media/info-view-relationships-function-dax/dax-query-example-1.png b/query-languages/dax/media/info-view-relationships-function-dax/dax-query-example-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ccafb0c2436b8f0806be3caeeb745f1ebd3600f8 GIT binary patch literal 89769 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

    ePv76mmsNCs&)Yt6 z9I(m^2~e;bgOiknL2Vs!m9=I6gddUl%!r!;3QBTD#2a$o>Kk3IpXm7?HEh^yCzIc; z^H+#MY)sG90FU7lP&kq%FHp+Gvt)yOXmEUdi9|Au5GZV~bb$H$KkDz4-e{l6#q#o! zW_m9BU3zj`=KSeJ3x^!+$|`Ad(^@M233`JB@yNZ#kt zSJ1nm#T(gR6lUA#+3jQNM__>Xw|8IjhM&UWqF{D~5&&z&(aW6JoR{~0B<_3bxcoVH zw+Y*}GKt}E_K0KpFHrdWn+m2=tAX+OI2vXbWjD1fP@$~U<-YKv-}LuVbYxLuxqFik zZeq9}Hr=;H4tHp>XtL<{&AfAth1ISYz$YSPn^bDxg>jA=VeEc_Z;i@4b3}QkXW;d6 zg#hJ&s$wcKu$raAVQkO5PUWZEZGdcWaES^!$V&t9x6!GQ9b`QgWUR&trJPu3h+bW8JPxMY3?w_08n@GKYlro=w&Z+hbq8=O z4TG^687lVM;aEDhx9*1a{tZ+?l;?}>EjZ%q=txyA4~8RW|XH_pnOM_z?I5@p*1vH_`m9Iy|n0@Z*&ek`~sjbD+io zj>PaV$(S6$mT@^JvV&nu?_V>8W-ir-7ZW@KxaG)hznyB3(xEoigK(Vhx8%ft*@1P& zq+nk*sdJvLBUF@%XdEfAfu0^3Yrd3XiEZSaV0XHCIcB4%Y6#au!HmVB!L6$t0ICD< zwy%jt8GRLfIU~!G3^3a!Y>*<#CCTq+)46Yjw{QrpKU9pCX~KBpXo_X$PH~3E@Tuj= z)~E8|56_fyZsCo1;His#no_H8WK)q8E@uiXDqq-kN-{7Um{EDo?E|--EY}wufzV zHSGrV5my_!J!}p6$({lBDkCHrLG)HKhSJywKM-62W*qmX!6Wb?8m4tnGB#Faxxqsq z*nM%5mh_Sd=i7FwFGgOR;vHLR;;^Me{*15(nnX?9c8{u7H`68l#iNg}qhUbBIczmy zjX1}jg2{yuyzlRPi`)<*TBR>NN=NUbD~nkszU!Xoc4valFhzRs5$0=7giStvRSjV4 z9V0E53f!lXO=lkS2{am^Gk-EdJZaHFu^N;ldAr1b8?jQZ@8k{*x&(i;3Owf(mQ_xx z#fQE)ZE)X$yapNXVeVT*IJw$U<2~0QH4XPFUM+cq^r7QroK6zD0Laamev|3#O+vn2 zQ$kT{ElPS*sg!#@q*p)VO#LRF4P1P268)HQ9zdNN=Jq$(HvT+g$(7reFKsS{uq)4E z3UAI+DjyH7Tqiv>AmA4tOCyp?3{n>}Zg*2(Enoe@PIe9ChUlYNh?JU{u)4UVT?^0G z&YhzeZ>x}uGqUiE$%YiunXL1ycFqT-?+CXqI%*_uS!7{^=ALE4J#P^CS51w(nD1dg zs5dvYoTNqz3FbRwO%JGvkTbJRphSj7XtMh=X=U+`-+Ta!EN^jPq_`HF8mDq3sAQW$`Z5<<)!BjS)NfHL;@wB z34Kjdnp?@WX^;RK*25grYmeNlK31~b(3-{y?$a3rIIa^PMXF*cwi&OLahr_HvX`Xw zrRmBGvIRi2Vce#_q8`o#ly;70(KDAO*3azt9G;Wp?jsEvWKMTjtG}>s>$$f33Hz!j zHRNJ;YW6oiNh~4XrXA)X`*L{%?WSO@^@shKTTKiqM#`hTL^zCew0-P(HPfE`B1g4| zYz1$k3A(ZOqTs}JeEowQ8xhi+lvF0zBLu(p?@dp8qdxT7ffw|>q#(RtQ;re1~|>XMl( zXc+8Kb=SL|SL3%vH(GES54#7KcnR1J7f`V#XW&Wa@*}K9((}$0R9*-;U4ZJPrmsDDqIW7=-eG1?*Yq zz=A))BsHlXD*sP0RVGvWvN5`G%DFB_v7&0|ToF=5Vc}jIa+E-<+E&)%J+K~Tu*f&#J+|n@}meX@=0%%C!nP3Lhe*)0p zOtip$3BUH4?AQ^|lZ*clbA65hdh$N<`1&5`fT&5X*@zKFc!f4nFKw$5=(>=ybFhdS zqtGJ^2EGdVt;EyOF>(Du=Tc*7PY{Z!UrP6f->SA~1v*zS2Yv)JbL;B9c6s$*I)pWa z*1RlMCbd#HykEl>+!wA=kqpH1S}hWdht0HSh&Pp5u|F-O-etZ|>$#Z{yyB-a5MZs> zo=Lrxilj*D0#v4=I-JyUNkv5Vxa`C*1!j{Pz%wshV{HKx9+4xVPzCR%6Chi$eZ|%s z5MRT4cZq>8vAlCIiq(8dHXc0UWNSAFF;7)_?x_a$BPmM2Iv}B6P(KSm zf^1I!C1l+cfJnak=wcrqV6e8}MQgv1XtJVdJNWIG{)ox!twf?uLIZEVfT=6x0T{Vr zu12b6Sx*9iY~TIwDGtz$GxsRB0*h6qyi!xx**4eK)}HgQRaZI7yhLC7z>E!(gdUP} zJd*d;i$Yl>?PBBND>c_oEPVcjtkNcaj{zqewP7Z0nb$A|| zwEbLcvKgiaNVuh3TyMKs&I4b#&u}Kb=k50&kw~kAKAXDzGKl<{lgXKNUdP1Xaeuc6 z?fZI=T@m2+4a`&ZzU^82TrXFztE(%mC|2KSB+sVKYi&b(|3ht{hT=~e74`e`;;O*X z`2!9)pa?V301pYHnGdt@D z-} Date: Sat, 15 Mar 2025 21:25:09 -0700 Subject: [PATCH 774/934] Update info-view-relationships-function-dax.md --- .../dax/info-view-relationships-function-dax.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/info-view-relationships-function-dax.md b/query-languages/dax/info-view-relationships-function-dax.md index a78432894..e14fb97b4 100644 --- a/query-languages/dax/info-view-relationships-function-dax.md +++ b/query-languages/dax/info-view-relationships-function-dax.md @@ -70,7 +70,7 @@ EVALUATE This DAX query returns a table with only the specified columns. -:::image type="content" source="media/info-view-measures-function-dax/dax-query-example-2.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with selected columns in DAX query view." lightbox="media/info-view-measures-function-dax/dax-query-example-2.png"::: +:::image type="content" source="media/info-view-relationships-function-dax/dax-query-example-2.png" alt-text="Screenshot showing the output of INFO.VIEW.RELATIONSHIPS() with selected columns in DAX query view." lightbox="media/info-view-relationships-function-dax/dax-query-example-2.png"::: ## Example 3 - calculated table with SELECTCOLUMNS @@ -88,7 +88,7 @@ This calculated table shows the same information as the DAX query in example 2 i ## Example 4 - measure -The following measure can be added to count the number of text columns in a semantic model: +The following measure can be added to count the number of relationships in a semantic model: ```dax Number of relationships = @@ -98,7 +98,7 @@ This will show a scalar value with the number of relationships in my model. This can be shown in a visual: -:::image type="content" source="media/info-view-measures-function-dax/measure-example-4-visuals.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with a measure then used in report visuals." lightbox="media/info-view-measures-function-dax/measure-example-4-visuals.png"::: +:::image type="content" source="media/info-view-relationships-function-dax/measure-example-4-visuals.png" alt-text="Screenshot showing the output of INFO.VIEW.RELATIONSHIPS() with a measure then used in report visuals." lightbox="media/info-view-relationships-function-dax/measure-example-4-visuals.png"::: Or a DAX query in [DAX query view](/power-bi/transform-model/dax-query-view): @@ -112,4 +112,4 @@ EVALUATE ) ``` -:::image type="content" source="media/info-view-measures-function-dax/measure-example-4-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with a measure then used in a DAX query in DAX query view." lightbox="media/info-view-measures-function-dax/measure-example-4-dax-query.png"::: +:::image type="content" source="media/info-view-relationships-function-dax/measure-example-4-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.RELATIONSHIPS() with a measure then used in a DAX query in DAX query view." lightbox="media/info-view-relationships-function-dax/measure-example-4-dax-query.png"::: From 207c3dece8fed8a2fdc5e3cf41cd613f8e2d610f Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 21:29:06 -0700 Subject: [PATCH 775/934] Update info-view-tables-function-dax.md --- query-languages/dax/info-view-tables-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/info-view-tables-function-dax.md b/query-languages/dax/info-view-tables-function-dax.md index 483f8adcf..250227809 100644 --- a/query-languages/dax/info-view-tables-function-dax.md +++ b/query-languages/dax/info-view-tables-function-dax.md @@ -24,8 +24,8 @@ A table with the following columns: | [ID] | The unique ID for each table in this semantic model as an integer. | | [Name] | The name of each table in this semantic model as a string. | | [Model] | The ID of the table's semantic model as a GUID. | -| [DataCategory] | The data category of each tablein this semantic model as a string. | -| [Description] | The description of each tablein this semantic model as a string. | +| [DataCategory] | The data category of each table in this semantic model as a string. | +| [Description] | The description of each table in this semantic model as a string. | | [IsHidden] | The hidden state of each table in this semantic model as TRUE or FALSE. | | [StorageMode] | The storage mode of each table in this semantic model as a string. | | [TableStorage] | The name and unique ID of each table in this semantic model as a string. | From 1d06bfde0eab9406f98cbd26409d39c319fb620a Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 21:30:31 -0700 Subject: [PATCH 776/934] Update info-view-measures-function-dax.md --- query-languages/dax/info-view-measures-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/info-view-measures-function-dax.md b/query-languages/dax/info-view-measures-function-dax.md index 174909834..cf576bcab 100644 --- a/query-languages/dax/info-view-measures-function-dax.md +++ b/query-languages/dax/info-view-measures-function-dax.md @@ -71,13 +71,13 @@ EVALUATE ) ``` -This DAX query returns a table with only the specified columns and rows meeting the filter condition with a DAX formula. +This DAX query returns a table with only the specified columns. :::image type="content" source="media/info-view-measures-function-dax/dax-query-example-2.png" alt-text="Screenshot showing the output of INFO.VIEW.MEASURES() with selected columns in DAX query view." lightbox="media/info-view-measures-function-dax/dax-query-example-2.png"::: ## Example 3 - calculated table with SELECTCOLUMNS -Either of the above examples work in a calculated table when the EVALUATE and ORDER BY keywords are removed and a table name added. Here is example 2 in a calculated table: +Either of the above examples work in a calculated table when the EVALUATE keyword is removed and a table name added. Here is example 2 in a calculated table: ```dax Measures in this semantic model = From 73db6381c44b207cc645a7775f736891ec4e324a Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 21:34:49 -0700 Subject: [PATCH 777/934] Update info-view-relationships-function-dax.md --- query-languages/dax/info-view-relationships-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/info-view-relationships-function-dax.md b/query-languages/dax/info-view-relationships-function-dax.md index e14fb97b4..413226785 100644 --- a/query-languages/dax/info-view-relationships-function-dax.md +++ b/query-languages/dax/info-view-relationships-function-dax.md @@ -7,7 +7,7 @@ author: DataZoeMS [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Returns a table with information about each relationship in the semantic model, such as name, cardinality, and cross-filtering behavior. This information helps you understand the model and to self-document the model when used in calculated tables. +Returns a table with information about each [relationship](/power-bi/transform-model/desktop-create-and-manage-relationships) in the semantic model, such as name, cardinality, and cross-filtering behavior. This information helps you understand the model and to self-document the model when used in calculated tables. ## Syntax @@ -27,7 +27,7 @@ A table with the following columns: | [Model] | The relationship's semantic model ID, usually a GUID. | | [IsActive] | The is active property of each relationship in this semantic model as True or False. | | [CrossFilteringBehavior] | The cross-filter behavior or direction of each relationship in this semantic model as a string. | -| [RelyOnReferentialIntegrity] | The rely on referential integrity property of each relationship in this semantic model as a string. Also called assume referential integrity in the relationship editor, as it assumes all rows in the column in the many table have a match to a row in the one side table. | +| [RelyOnReferentialIntegrity] | The rely on referential integrity property of each relationship in this semantic model as a string. Also called [assume referential integrity](/power-bi/connect-data/desktop-assume-referential-integrity) in the relationship editor, as it assumes all rows in the column in the many table have a match to a row in the one side table. | | [FromTable] | The from table name of each relationship in this semantic model as a string. | | [FromColumn] | The from column name of each relationship in this semantic model as a string. | | [FromCardinality] | The from column cardinality of each relationship in this semantic model as a string. | From c6016116bdbc91fd24b92ed72bb46e58fa3b5544 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:09:22 -0700 Subject: [PATCH 778/934] Update info-functions-dax.md --- query-languages/dax/info-functions-dax.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index ea432ff43..fd2957e9c 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -91,6 +91,10 @@ Here is the list of INFO functions. Some work only on specific compat levels and | [Function] | [Description] | |-----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------| +| INFO.VIEW.COLUMNS | Returns a list of all columns in the current model. Can use in calculations, including calculated tables. | +| INFO.VIEW.MEASURES | Returns a list of all measures in the current model. Can use in calculations, including calculated tables. | +| INFO.VIEW.RELATIONSHIPS | Returns a list of all relationships in the current model. Can use in calculations, including calculated tables. | +| INFO.VIEW.TABLES | Returns a list of all tables in the current model. Can use in calculations, including calculated tables. | | INFO.ALTERNATEOFDEFINITIONS | | | INFO.ANNOTATIONS | Returns a list of all annotations in the current model with columns matching the schema rowset for annotation objects. | | INFO.ATTRIBUTEHIERARCHIES | Represents the TMSCHEMA_ATTRIBUTE_HIERARCHIES DMV query function. | @@ -155,7 +159,3 @@ Here is the list of INFO functions. Some work only on specific compat levels and | INFO.TABLES | Returns a list of all tables in the current model with columns matching the schema rowset for table objects. | | INFO.TABLESTORAGES | Returns a list of all table storages in the current model with columns matching the schema rowset for table storage objects. | | INFO.VARIATIONS | Returns a list of all variations in the current model with columns matching the schema rowset for variations objects. | -| INFO.VIEW.COLUMNS | Returns a list of all columns in the current model. | -| INFO.VIEW.MEASURES | Returns a list of all measures in the current model. | -| INFO.VIEW.RELATIONSHIPS | Returns a list of all relationships in the current model. | -| INFO.VIEW.TABLES | Returns a list of all tables in the current model. | From a1d5db9d2fbd582a0862dbd10c97a16929962936 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:23:08 -0700 Subject: [PATCH 779/934] Create applies-to-query-only.md --- query-languages/dax/includes/applies-to-query-only.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 query-languages/dax/includes/applies-to-query-only.md diff --git a/query-languages/dax/includes/applies-to-query-only.md b/query-languages/dax/includes/applies-to-query-only.md new file mode 100644 index 000000000..e2b5cd4cc --- /dev/null +++ b/query-languages/dax/includes/applies-to-query-only.md @@ -0,0 +1 @@ +Applies to: :::image type="icon" source="../media/icons/no.png":::Calculated column :::image type="icon" source="../media/icons/no.png":::Calculated table :::image type="icon" source="../media/icons/no.png":::Measure :::image type="icon" source="../media/icons/no.png":::Visual calculation :::image type="icon" source="../media/icons/yes.png":::DAX query From 0045385cff2a4db68ef48a2f4951d9fa19990885 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:39:51 -0700 Subject: [PATCH 780/934] Create info-annotations-function-dax.md --- .../dax/info-annotations-function-dax.md | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 query-languages/dax/info-annotations-function-dax.md diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md new file mode 100644 index 000000000..287caddd7 --- /dev/null +++ b/query-languages/dax/info-annotations-function-dax.md @@ -0,0 +1,111 @@ +--- +description: "Learn more about: INFO.ANNOTATIONS" +title: "INFO.ANNOTATIONS function (DAX)" +author: DataZoeMS +--- +# INFO.VIEW.ANNOTATIONS + +[!INCLUDE[applies-to-query-only](includes/applies-to-query-only.md)] + +Returns a table with information about each column in the semantic model, such as name, description, and format string. This information helps you understand the model and to self-document the model when used in calculated tables. + +## Syntax + +```dax +INFO.ANNOTATIONS([, ], ...) +``` + +## Parameters + +Parameters are optional for this DAX function. When parameters are used, both must be given. More than one pair of parameters is allowed. + +| Term | Definition | +|---|---| +| Restriction Name | Name of the restriction used to filter the results. | +| Restriction Value | Value used to filter the results of the restriction. | + +## Restrictions + +Typically, all columns of the DAX function results can be used as a restriction. Addtional restrictions may also be allowed. + +## Return value + +A table with the following columns: + +| Column | Description | +|---|---| +| [ID] | The unique ID for each column in this semantic model as an integer. | +| [Name] | The name of each column in this semantic model as a string. | +| [Table] | The table of each column in this semantic model as a string. | +| [DataType] | The data type of each column in this semantic model as a string. | +| [DataCategory] | The data category of each column in this semantic model as a string. | +| [Description] | The description of each column in this semantic model as a string. | +| [IsHidden] | The hidden state of each column in this semantic model as True or False. | +| [IsUnique] | The is unique of each column in this semantic model as True of False. | +| [IsKey] | The is key of each column in this semantic model as True or False. | +| [IsNullable] | The is nullable of each column in this semantic model as True or False. | +| [Alignment] | The alignment of each column in this semantic model as a string. | +| [SummarizeBy] | The summarize by of each column in this semantic model as a string. | +| [ColumnStorage] | The column storage of each column in this semantic model as a string combination of name and ID. | +| [Type] | The type of each column in this semantic model as a string. | +| [SourceColumn] | The source column of each column in this semantic model as a string. | +| [Expression] | The DAX formula of calculated columns. | +| [FormatString] | The format string of each column in this semantic model as a string. | +| [IsAvailableInMDX] | The is available in MDX of each column in this semantic model as True or False. Analyze in Excel pivot tables will only show columns set to True. | +| [SortByColumn] | The sort by column of each column in this semantic model as a string. Shows as blank when sorting by itself. | +| [GroupingBehavior] | The grouping behavior of each column in this semantic model as a string. | +| [SourceProviderType] | The source provider type of each column in this semantic model as a string. | +| [DisplayFolder] | The display folder of each column in this semantic model as a string. Nested folders shown with / and multiple folders separated by ;. | +| [AlternateOf] | The alternate of property of each column in this semantic model as a string. | +| [LineageTag] | The lineage tag of each column in this semantic model as a string. | + +## Enumerations + +Columns returned in this INFO function give the ID of an enumeration, or lookup table. Here are the values for each enumeration in this DAX function. + +## Remarks + +Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in DAX queries, and can't be used in calculations. + +## Example 1 - DAX query + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + INFO.VIEW.COLUMNS() +``` + +This DAX query returns a table with all of the columns of this DAX function. + +## Example 2 - DAX query with joins to other INFO functions + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + // Select specific columns from the filtered result + SELECTCOLUMNS( + // Filter columns from the INFO.VIEW.COLUMNS() table + FILTER( + INFO.VIEW.COLUMNS(), + // Exclude rows where DataCategory is "RowNumber" and Table is "xTables" + [DataCategory] <> "RowNumber" && [Table] <> "xTables" + ), + // Show only these selected columns with new names where specified + [Table], + "Column", [Name], + [Description], + "DAX formula", [Expression], + [DataCategory], + [DataType], + [IsHidden] + ) + // Order the result by Table and then by Column + ORDER BY + [Table], [Column] +``` + +This DAX query returns a table with only the specified columns and rows meeting the filter condition with a DAX formula. + +:::image type="content" source="media/info-view-columns-function-dax/dax-query-example-2.png" alt-text="Screenshot showing the output of INFO.VIEW.COLUMNS() with selected columns in DAX query view." lightbox="media/info-view-columns-function-dax/dax-query-example-2.png"::: From d38ff934aebc2c1c3ac2bd9140d8a45c363e8d66 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:40:28 -0700 Subject: [PATCH 781/934] Create parameters-for-info-dax-functions.md --- .../dax/includes/parameters-for-info-dax-functions.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 query-languages/dax/includes/parameters-for-info-dax-functions.md diff --git a/query-languages/dax/includes/parameters-for-info-dax-functions.md b/query-languages/dax/includes/parameters-for-info-dax-functions.md new file mode 100644 index 000000000..2539094b1 --- /dev/null +++ b/query-languages/dax/includes/parameters-for-info-dax-functions.md @@ -0,0 +1,8 @@ +## Parameters + +Parameters are optional for this DAX function. When parameters are used, both must be given. More than one pair of parameters is allowed. + +| Term | Definition | +|---|---| +| Restriction Name | Name of the restriction used to filter the results. | +| Restriction Value | Value used to filter the results of the restriction. | From 1845793a0d7bbe8f9c33d0e37ccac2131b2d14f6 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:41:53 -0700 Subject: [PATCH 782/934] Update info-annotations-function-dax.md --- .../dax/info-annotations-function-dax.md | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index 287caddd7..ea199f102 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -15,18 +15,7 @@ Returns a table with information about each column in the semantic model, such a INFO.ANNOTATIONS([, ], ...) ``` -## Parameters - -Parameters are optional for this DAX function. When parameters are used, both must be given. More than one pair of parameters is allowed. - -| Term | Definition | -|---|---| -| Restriction Name | Name of the restriction used to filter the results. | -| Restriction Value | Value used to filter the results of the restriction. | - -## Restrictions - -Typically, all columns of the DAX function results can be used as a restriction. Addtional restrictions may also be allowed. +[!INCLUDE[parameters-for-info-dax-functions](parameters for info-dax-functions.md)] ## Return value From 071c720e214dd4b7d25fec21d1cb1499c5b0b71f Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:42:14 -0700 Subject: [PATCH 783/934] Update parameters-for-info-dax-functions.md --- .../dax/includes/parameters-for-info-dax-functions.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/query-languages/dax/includes/parameters-for-info-dax-functions.md b/query-languages/dax/includes/parameters-for-info-dax-functions.md index 2539094b1..5341e7e16 100644 --- a/query-languages/dax/includes/parameters-for-info-dax-functions.md +++ b/query-languages/dax/includes/parameters-for-info-dax-functions.md @@ -6,3 +6,7 @@ Parameters are optional for this DAX function. When parameters are used, both mu |---|---| | Restriction Name | Name of the restriction used to filter the results. | | Restriction Value | Value used to filter the results of the restriction. | + +## Restrictions + +Typically, all columns of the DAX function results can be used as a restriction. Addtional restrictions may also be allowed. From 091fc5bed1e5477aff9ac678df7fe5cc7beb4dea Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:56:57 -0700 Subject: [PATCH 784/934] Update info-annotations-function-dax.md --- .../dax/info-annotations-function-dax.md | 35 ++++--------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index ea199f102..5ebadbf27 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -23,34 +23,11 @@ A table with the following columns: | Column | Description | |---|---| -| [ID] | The unique ID for each column in this semantic model as an integer. | -| [Name] | The name of each column in this semantic model as a string. | -| [Table] | The table of each column in this semantic model as a string. | -| [DataType] | The data type of each column in this semantic model as a string. | -| [DataCategory] | The data category of each column in this semantic model as a string. | -| [Description] | The description of each column in this semantic model as a string. | -| [IsHidden] | The hidden state of each column in this semantic model as True or False. | -| [IsUnique] | The is unique of each column in this semantic model as True of False. | -| [IsKey] | The is key of each column in this semantic model as True or False. | -| [IsNullable] | The is nullable of each column in this semantic model as True or False. | -| [Alignment] | The alignment of each column in this semantic model as a string. | -| [SummarizeBy] | The summarize by of each column in this semantic model as a string. | -| [ColumnStorage] | The column storage of each column in this semantic model as a string combination of name and ID. | -| [Type] | The type of each column in this semantic model as a string. | -| [SourceColumn] | The source column of each column in this semantic model as a string. | -| [Expression] | The DAX formula of calculated columns. | -| [FormatString] | The format string of each column in this semantic model as a string. | -| [IsAvailableInMDX] | The is available in MDX of each column in this semantic model as True or False. Analyze in Excel pivot tables will only show columns set to True. | -| [SortByColumn] | The sort by column of each column in this semantic model as a string. Shows as blank when sorting by itself. | -| [GroupingBehavior] | The grouping behavior of each column in this semantic model as a string. | -| [SourceProviderType] | The source provider type of each column in this semantic model as a string. | -| [DisplayFolder] | The display folder of each column in this semantic model as a string. Nested folders shown with / and multiple folders separated by ;. | -| [AlternateOf] | The alternate of property of each column in this semantic model as a string. | -| [LineageTag] | The lineage tag of each column in this semantic model as a string. | - -## Enumerations - -Columns returned in this INFO function give the ID of an enumeration, or lookup table. Here are the values for each enumeration in this DAX function. +| [ID] | A reference to the object. IDs are usually autogenerated and should not be changed after the model is created. Data type is unsigned long (4 bytes). | +| [ObjectID] | A reference to the object that owns this Annotation. | +| [Name] | The name of the object, used in code, script, and queries. | +| [Value] | The value of the annotation. | +| [ModifiedTime] | The time that the object was last modified. | ## Remarks @@ -62,7 +39,7 @@ The following DAX query can be run in [DAX query view](/power-bi/transform-model ```dax EVALUATE - INFO.VIEW.COLUMNS() + INFO.ANNOTATIONS() ``` This DAX query returns a table with all of the columns of this DAX function. From d8ffd704c921c5c721d4dd71f4d12f7edf54ef01 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 14:57:30 -0700 Subject: [PATCH 785/934] Create enum-title-for-info-dax-functions.md --- .../dax/includes/enum-title-for-info-dax-functions.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 query-languages/dax/includes/enum-title-for-info-dax-functions.md diff --git a/query-languages/dax/includes/enum-title-for-info-dax-functions.md b/query-languages/dax/includes/enum-title-for-info-dax-functions.md new file mode 100644 index 000000000..07b74c250 --- /dev/null +++ b/query-languages/dax/includes/enum-title-for-info-dax-functions.md @@ -0,0 +1,3 @@ +## Enumerations + +Columns returned in this INFO function give the ID of an enumeration, or lookup table. Here are the values for each enumeration in this DAX function. From 4461746dae339d77e0fab3ea1ca82ee85573afe4 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 15:26:06 -0700 Subject: [PATCH 786/934] Update info-annotations-function-dax.md --- query-languages/dax/info-annotations-function-dax.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index 5ebadbf27..241485ce6 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -15,7 +15,7 @@ Returns a table with information about each column in the semantic model, such a INFO.ANNOTATIONS([, ], ...) ``` -[!INCLUDE[parameters-for-info-dax-functions](parameters for info-dax-functions.md)] +[!INCLUDE[parameters-for-info-dax-functions](parameters-for-info-dax-functions.md)] ## Return value @@ -25,6 +25,7 @@ A table with the following columns: |---|---| | [ID] | A reference to the object. IDs are usually autogenerated and should not be changed after the model is created. Data type is unsigned long (4 bytes). | | [ObjectID] | A reference to the object that owns this Annotation. | +| [OBjectType] | A reference to the type of object that owns this Annotation. | | [Name] | The name of the object, used in code, script, and queries. | | [Value] | The value of the annotation. | | [ModifiedTime] | The time that the object was last modified. | @@ -33,6 +34,8 @@ A table with the following columns: Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in DAX queries, and can't be used in calculations. +[!INCLUDE[enum-for-info-dax-functions](enum-for-info-dax-functions.md)] + ## Example 1 - DAX query The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): From f444a8d6cd6b0a78c8be255857ba01a6555875b9 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 15:28:53 -0700 Subject: [PATCH 787/934] Create enum-objecttype.md --- .../dax/includes/enum-objecttype.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 query-languages/dax/includes/enum-objecttype.md diff --git a/query-languages/dax/includes/enum-objecttype.md b/query-languages/dax/includes/enum-objecttype.md new file mode 100644 index 000000000..c1d78ca55 --- /dev/null +++ b/query-languages/dax/includes/enum-objecttype.md @@ -0,0 +1,44 @@ +### ObjectType + +| Number | Value | +|-------------|------------------------| +| 0 | Null | +| 1 | Model | +| 2 | DataSource | +| 3 | Table | +| 4 | Column | +| 5 | AttributeHierarchy | +| 6 | Partition | +| 7 | Relationship | +| 8 | Measure | +| 9 | Hierarchy | +| 10 | Level | +| 11 | Annotation | +| 12 | KPI | +| 13 | Culture | +| 14 | ObjectTranslation | +| 15 | LinguisticMetadata | +| 29 | Perspective | +| 30 | PerspectiveTable | +| 31 | PerspectiveColumn | +| 32 | PerspectiveHierarchy | +| 33 | PerspectiveMeasure | +| 34 | Role | +| 35 | RoleMembership | +| 36 | TablePermission | +| 37 | Variation | +| 38 | Set | +| 39 | PerspectiveSet | +| 40 | ExtendedProperty | +| 41 | Expression | +| 42 | ColumnPermission | +| 43 | DetailRowsDefinition | +| 44 | RelatedColumnDetails | +| 45 | GroupByColumn | +| 46 | CalculationGroup | +| 47 | CalculationItem | +| 48 | AlternateOf | +| 49 | RefreshPolicy | +| 50 | FormatStringDefinition | + +This table is based on the [official documentation](/dotnet/api/microsoft.analysisservices.tabular.objecttype). From cc3848e1873991f3944462a3b4103fadc88eda3e Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 16:20:55 -0700 Subject: [PATCH 788/934] Update info-annotations-function-dax.md --- .../dax/info-annotations-function-dax.md | 129 ++++++++++++++---- 1 file changed, 104 insertions(+), 25 deletions(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index 241485ce6..8260929b7 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -25,7 +25,7 @@ A table with the following columns: |---|---| | [ID] | A reference to the object. IDs are usually autogenerated and should not be changed after the model is created. Data type is unsigned long (4 bytes). | | [ObjectID] | A reference to the object that owns this Annotation. | -| [OBjectType] | A reference to the type of object that owns this Annotation. | +| [ObjectType] | A reference to the type of object that owns this Annotation. | | [Name] | The name of the object, used in code, script, and queries. | | [Value] | The value of the annotation. | | [ModifiedTime] | The time that the object was last modified. | @@ -36,6 +36,8 @@ Can only be ran by users with write permission on the semantic model and not whe [!INCLUDE[enum-for-info-dax-functions](enum-for-info-dax-functions.md)] +[!INCLUDE[enum-objecttype](enum-objecttype.md)] + ## Example 1 - DAX query The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): @@ -47,34 +49,111 @@ EVALUATE This DAX query returns a table with all of the columns of this DAX function. -## Example 2 - DAX query with joins to other INFO functions +## Example 2 - DAX query with joins The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): ```dax EVALUATE - // Select specific columns from the filtered result - SELECTCOLUMNS( - // Filter columns from the INFO.VIEW.COLUMNS() table - FILTER( - INFO.VIEW.COLUMNS(), - // Exclude rows where DataCategory is "RowNumber" and Table is "xTables" - [DataCategory] <> "RowNumber" && [Table] <> "xTables" - ), - // Show only these selected columns with new names where specified - [Table], - "Column", [Name], - [Description], - "DAX formula", [Expression], - [DataCategory], - [DataType], - [IsHidden] - ) - // Order the result by Table and then by Column - ORDER BY - [Table], [Column] -``` + VAR _ObjectTypeEnum = + DATATABLE( + "ObjectType",INTEGER, + "Object",STRING, + { + {0,"Null"}, + {1,"Model"}, + {2,"DataSource"}, + {3,"Table"}, + {4,"Column"}, + {5,"AttributeHierarchy"}, + {6,"Partition"}, + {7,"Relationship"}, + {8,"Measure"}, + {9,"Hierarchy"}, + {10,"Level"}, + {11,"Annotation"}, + {12,"KPI"}, + {13,"Culture"}, + {14,"ObjectTranslation"}, + {15,"LinguisticMetadata"}, + {29,"Perspective"}, + {30,"PerspectiveTable"}, + {31,"PerspectiveColumn"}, + {32,"PerspectiveHierarchy"}, + {33,"PerspectiveMeasure"}, + {34,"Role"}, + {35,"RoleMembership"}, + {36,"TablePermission"}, + {37,"Variation"}, + {38,"Set"}, + {39,"PerspectiveSet"}, + {40,"ExtendedProperty"}, + {41,"Expression"}, + {42,"ColumnPermission"}, + {43,"DetailRowsDefinition"}, + {44,"RelatedColumnDetails"}, + {45,"GroupByColumn"}, + {46,"CalculationGroup"}, + {47,"CalculationItem"}, + {48,"AlternateOf"}, + {49,"RefreshPolicy"}, + {50,"FormatStringDefinition"} + } + ) + + VAR _INFO = + INFO.ANNOTATIONS() -This DAX query returns a table with only the specified columns and rows meeting the filter condition with a DAX formula. + VAR _CombinedTable = + NATURALLEFTOUTERJOIN( + _INFO, + _ObjectTypeEnum + ) + + VAR _ModelObjects = + UNION( + SELECTCOLUMNS( + INFO.MEASURES(), + "ObjectID", [ID], + "Object Name", [Name] + ), + SELECTCOLUMNS( + INFO.TABLES(), + "ObjectID", [ID], + "Object Name", [Name] + ), + SELECTCOLUMNS( + INFO.COLUMNS(), + "ObjectID", [ID], + "Object Name", [ExplicitName] + ), + SELECTCOLUMNS( + INFO.EXPRESSIONS(), + "ObjectID", [ID], + "Object Name", [Name] + ), + SELECTCOLUMNS( + INFO.MODEL(), + "ObjectID", [ID], + "Object Name", [Name] + ) + ) + + VAR _CombinedTable2 = + NATURALLEFTOUTERJOIN( + _CombinedTable, + _ModelObjects + ) + + RETURN + SELECTCOLUMNS( + _CombinedTable2, + "Object type", [Object], + "Object", [Object Name], + "Annotation name", [Name], + "Annotation value", [Value] + ) + ORDER BY [Annotation name] +``` -:::image type="content" source="media/info-view-columns-function-dax/dax-query-example-2.png" alt-text="Screenshot showing the output of INFO.VIEW.COLUMNS() with selected columns in DAX query view." lightbox="media/info-view-columns-function-dax/dax-query-example-2.png"::: +This DAX query returns a table with only the specified columns and joining to other INFO DAX functions and the enumeration table. From c1599812ed10d9c25c51ec2981cb05931aac0f5b Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 16:23:17 -0700 Subject: [PATCH 789/934] Update enum-objecttype.md --- .../dax/includes/enum-objecttype.md | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/query-languages/dax/includes/enum-objecttype.md b/query-languages/dax/includes/enum-objecttype.md index c1d78ca55..abcadd733 100644 --- a/query-languages/dax/includes/enum-objecttype.md +++ b/query-languages/dax/includes/enum-objecttype.md @@ -42,3 +42,53 @@ | 50 | FormatStringDefinition | This table is based on the [official documentation](/dotnet/api/microsoft.analysisservices.tabular.objecttype). + +To join with INFO functions use this DAX query. + +```dax +EVALUATE + DATATABLE( + "ObjectType",INTEGER, + "Object",STRING, + { + {0,"Null"}, + {1,"Model"}, + {2,"DataSource"}, + {3,"Table"}, + {4,"Column"}, + {5,"AttributeHierarchy"}, + {6,"Partition"}, + {7,"Relationship"}, + {8,"Measure"}, + {9,"Hierarchy"}, + {10,"Level"}, + {11,"Annotation"}, + {12,"KPI"}, + {13,"Culture"}, + {14,"ObjectTranslation"}, + {15,"LinguisticMetadata"}, + {29,"Perspective"}, + {30,"PerspectiveTable"}, + {31,"PerspectiveColumn"}, + {32,"PerspectiveHierarchy"}, + {33,"PerspectiveMeasure"}, + {34,"Role"}, + {35,"RoleMembership"}, + {36,"TablePermission"}, + {37,"Variation"}, + {38,"Set"}, + {39,"PerspectiveSet"}, + {40,"ExtendedProperty"}, + {41,"Expression"}, + {42,"ColumnPermission"}, + {43,"DetailRowsDefinition"}, + {44,"RelatedColumnDetails"}, + {45,"GroupByColumn"}, + {46,"CalculationGroup"}, + {47,"CalculationItem"}, + {48,"AlternateOf"}, + {49,"RefreshPolicy"}, + {50,"FormatStringDefinition"} + } + ) +``` From 4a91978f8c070be94d394982ea926b63401cd380 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 16:27:29 -0700 Subject: [PATCH 790/934] Update info-annotations-function-dax.md --- query-languages/dax/info-annotations-function-dax.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index 8260929b7..3e8cd8834 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -15,7 +15,7 @@ Returns a table with information about each column in the semantic model, such a INFO.ANNOTATIONS([, ], ...) ``` -[!INCLUDE[parameters-for-info-dax-functions](parameters-for-info-dax-functions.md)] +[!INCLUDE[parameters-for-info-dax-functions](includes/parameters-for-info-dax-functions.md)] ## Return value @@ -34,9 +34,9 @@ A table with the following columns: Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in DAX queries, and can't be used in calculations. -[!INCLUDE[enum-for-info-dax-functions](enum-for-info-dax-functions.md)] +[!INCLUDE[enum-for-info-dax-functions](includes/enum-for-info-dax-functions.md)] -[!INCLUDE[enum-objecttype](enum-objecttype.md)] +[!INCLUDE[enum-objecttype](includes/enum-objecttype.md)] ## Example 1 - DAX query From 542857757d1fdcf8e7671b81784b594859a6eb3d Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 16:30:01 -0700 Subject: [PATCH 791/934] Update info-annotations-function-dax.md --- query-languages/dax/info-annotations-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index 3e8cd8834..dd135d8ac 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -34,7 +34,7 @@ A table with the following columns: Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in DAX queries, and can't be used in calculations. -[!INCLUDE[enum-for-info-dax-functions](includes/enum-for-info-dax-functions.md)] +[!INCLUDE[enum-for-info-dax-functions](includes/enum-title-for-info-dax-functions.md)] [!INCLUDE[enum-objecttype](includes/enum-objecttype.md)] From 940e388b35a151b0a7776b56136fc8e5cec657fa Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 16:38:52 -0700 Subject: [PATCH 792/934] Update info-annotations-function-dax.md --- query-languages/dax/info-annotations-function-dax.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index dd135d8ac..7427157f4 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -3,11 +3,11 @@ description: "Learn more about: INFO.ANNOTATIONS" title: "INFO.ANNOTATIONS function (DAX)" author: DataZoeMS --- -# INFO.VIEW.ANNOTATIONS +# INFO.ANNOTATIONS [!INCLUDE[applies-to-query-only](includes/applies-to-query-only.md)] -Returns a table with information about each column in the semantic model, such as name, description, and format string. This information helps you understand the model and to self-document the model when used in calculated tables. +Returns a table with information about each annotation in the semantic model. This information helps you understand the model. ## Syntax @@ -34,10 +34,6 @@ A table with the following columns: Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in DAX queries, and can't be used in calculations. -[!INCLUDE[enum-for-info-dax-functions](includes/enum-title-for-info-dax-functions.md)] - -[!INCLUDE[enum-objecttype](includes/enum-objecttype.md)] - ## Example 1 - DAX query The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): @@ -157,3 +153,7 @@ EVALUATE ``` This DAX query returns a table with only the specified columns and joining to other INFO DAX functions and the enumeration table. + +[!INCLUDE[enum-for-info-dax-functions](includes/enum-title-for-info-dax-functions.md)] + +[!INCLUDE[enum-objecttype](includes/enum-objecttype.md)] From e5d2694802352e271925d4030a790c7c7bcee39f Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 16:39:32 -0700 Subject: [PATCH 793/934] Update info-annotations-function-dax.md --- query-languages/dax/info-annotations-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index 7427157f4..efaef0f74 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -154,6 +154,6 @@ EVALUATE This DAX query returns a table with only the specified columns and joining to other INFO DAX functions and the enumeration table. -[!INCLUDE[enum-for-info-dax-functions](includes/enum-title-for-info-dax-functions.md)] +[!INCLUDE[enum-title-for-info-dax-functions](includes/enum-title-for-info-dax-functions.md)] [!INCLUDE[enum-objecttype](includes/enum-objecttype.md)] From 22697b17a3160ccacae2ca66aee4fd95d04e94ba Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 16:42:09 -0700 Subject: [PATCH 794/934] Update toc.yml --- query-languages/dax/toc.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 26ffff3cc..7f9651925 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -322,6 +322,8 @@ items: href: info-view-relationships-function-dax.md - name: INFO.VIEW.TABLES href: info-view-tables-function-dax.md + - name: INFO.ANNOTATIONS + href: info-annotations-function-dax.md - name: Information functions items: - name: Information functions overview From 6a21deb07d9762c484179c0b1a5a0dfa9a7471f8 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 16:46:09 -0700 Subject: [PATCH 795/934] Update parameters-for-info-dax-functions.md --- .../dax/includes/parameters-for-info-dax-functions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/includes/parameters-for-info-dax-functions.md b/query-languages/dax/includes/parameters-for-info-dax-functions.md index 5341e7e16..ddf051905 100644 --- a/query-languages/dax/includes/parameters-for-info-dax-functions.md +++ b/query-languages/dax/includes/parameters-for-info-dax-functions.md @@ -1,12 +1,12 @@ ## Parameters -Parameters are optional for this DAX function. When parameters are used, both must be given. More than one pair of parameters is allowed. +Parameters are optional for this DAX function. When parameters are used, both must be given. More than one pair of parameters is allowed. The restriction name and value are text and entered in double-quotes. | Term | Definition | |---|---| -| Restriction Name | Name of the restriction used to filter the results. | -| Restriction Value | Value used to filter the results of the restriction. | +| Restriction name | Name of the restriction used to filter the results. | +| Restriction value | Value used to filter the results of the restriction. | ## Restrictions -Typically, all columns of the DAX function results can be used as a restriction. Addtional restrictions may also be allowed. +Typically, all columns of the DAX function results can be used as a restriction. Additional restrictions may also be allowed. From c449ed723401f32448916110f526344e79e47092 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 17:23:51 -0700 Subject: [PATCH 796/934] Update info-annotations-function-dax.md --- query-languages/dax/info-annotations-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index efaef0f74..d37cb0b16 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -32,7 +32,7 @@ A table with the following columns: ## Remarks -Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in DAX queries, and can't be used in calculations. +Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in [DAX queries](dax-queries), and can't be used in calculations. ## Example 1 - DAX query From cd86c282bfa989b6e201f1648b40330a2bc77e74 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 17:50:11 -0700 Subject: [PATCH 797/934] Create info-calcdependency-function-dax.md --- .../dax/info-calcdependency-function-dax.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 query-languages/dax/info-calcdependency-function-dax.md diff --git a/query-languages/dax/info-calcdependency-function-dax.md b/query-languages/dax/info-calcdependency-function-dax.md new file mode 100644 index 000000000..0998a954d --- /dev/null +++ b/query-languages/dax/info-calcdependency-function-dax.md @@ -0,0 +1,80 @@ +--- +description: "Learn more about: INFO.CALCDEPENDENCY" +title: "INFO.CALCDEPENDENCY function (DAX)" +author: DataZoeMS +--- +# INFO.CALCDEPENDENCY + +[!INCLUDE[applies-to-query-only](includes/applies-to-query-only.md)] + +Returns a table with information about each calculation dependency in the semantic model. This information helps you understand the model. + +## Syntax + +```dax +INFO.CALCDEPENDENCY([, ], ...) +``` + +[!INCLUDE[parameters-for-info-dax-functions](includes/parameters-for-info-dax-functions.md)] + +## Return value + +A table with the following columns: + +| Column | Description | +|---|---| +| [DATABASE_NAME] | The name of the semantic model. | +| [OBJECT_TYPE] | The type of object. | +| [TABLE] | The object's table name. | +| [OBJECT] | The name of the object. | +| [EXPRESSION] | The DAX formula of the object. | +| [REFERENCED_OBJECT_TYPE] | The type of object this object references. | +| [REFERENCED_TABLE] | The referenced object's table name. | +| [REFERENCED_OBJECT] | The referenced object's name. | +| [REFERENCED_EXPRESSION] | The refrenced object's DAX formula. | +| [QUERY] | The query, if specified as a restriction. | + +## Remarks + +Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in [DAX queries](dax-queries), and can't be used in calculations. + +You can also call this DAX function with INFO.DEPENDENCIES. + +## Example 1 - DAX query + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + INFO.CALCDEPENDENCY() +``` + +This DAX query returns a table with all of the columns of this DAX function. + +## Example 2 - DAX query with restriction + +The following DAX query can be run in [DAX query view](/power-bi/transform-model/dax-query-view): + +```dax +EVALUATE + INFO.CALCDEPENDENCY("Query", "EVALUATE { [Orders] }") +``` + +This DAX query returns a table showing the objects in the semantic model needed to run this specified DAX query. The restriction name of "query" is used with the value of a DAX query. This DAX query is getting the output of the measure named Orders. + +If a query has double-quotes they can be escaped with another double-quote and you can optionally use a VAR to hold the value. + +```dax +EVALUATE + VAR _query = + "EVALUATE + SELECTCOLUMNS( + 'Date', + ""Date"", [Date] + )" + RETURN + INFO.CALCDEPENDENCY( + "Query", + _query + ) +``` From 280fc9c8daf9541964371f09de287cf04ca23505 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 17:52:10 -0700 Subject: [PATCH 798/934] Update info-calcdependency-function-dax.md --- query-languages/dax/info-calcdependency-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-calcdependency-function-dax.md b/query-languages/dax/info-calcdependency-function-dax.md index 0998a954d..1a48b6d0e 100644 --- a/query-languages/dax/info-calcdependency-function-dax.md +++ b/query-languages/dax/info-calcdependency-function-dax.md @@ -28,7 +28,7 @@ A table with the following columns: | [TABLE] | The object's table name. | | [OBJECT] | The name of the object. | | [EXPRESSION] | The DAX formula of the object. | -| [REFERENCED_OBJECT_TYPE] | The type of object this object references. | +| [REFERENCED_OBJECT_TYPE] | The type of object this object references. The "Object" is dependent on this object. | | [REFERENCED_TABLE] | The referenced object's table name. | | [REFERENCED_OBJECT] | The referenced object's name. | | [REFERENCED_EXPRESSION] | The refrenced object's DAX formula. | From 1899fc634adc6a6554f8051ba3ed73fc15e58caf Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 17:55:25 -0700 Subject: [PATCH 799/934] Update toc.yml --- query-languages/dax/toc.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index 7f9651925..cb0f135d1 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -324,6 +324,8 @@ items: href: info-view-tables-function-dax.md - name: INFO.ANNOTATIONS href: info-annotations-function-dax.md + - name: INFO.CALCDEPENDENCY + href: info.calcdependency-function-dax.md - name: Information functions items: - name: Information functions overview From f037fd81e084ed7a0b4d501aef96912bb9a1f703 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 17:55:59 -0700 Subject: [PATCH 800/934] Update info-annotations-function-dax.md --- query-languages/dax/info-annotations-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-annotations-function-dax.md b/query-languages/dax/info-annotations-function-dax.md index d37cb0b16..2d6279b8e 100644 --- a/query-languages/dax/info-annotations-function-dax.md +++ b/query-languages/dax/info-annotations-function-dax.md @@ -32,7 +32,7 @@ A table with the following columns: ## Remarks -Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in [DAX queries](dax-queries), and can't be used in calculations. +Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in [DAX queries](/dax/dax-queries), and can't be used in calculations. ## Example 1 - DAX query From 83895e57ad0d7589e4b858123d4acf718eefd7ac Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 17:56:34 -0700 Subject: [PATCH 801/934] Update info-calcdependency-function-dax.md --- query-languages/dax/info-calcdependency-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-calcdependency-function-dax.md b/query-languages/dax/info-calcdependency-function-dax.md index 1a48b6d0e..339d5c0b4 100644 --- a/query-languages/dax/info-calcdependency-function-dax.md +++ b/query-languages/dax/info-calcdependency-function-dax.md @@ -36,7 +36,7 @@ A table with the following columns: ## Remarks -Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in [DAX queries](dax-queries), and can't be used in calculations. +Can only be ran by users with write permission on the semantic model and not when live connected to the semantic model in Power BI Desktop. This function can be used in [DAX queries](/dax/dax-queries), and can't be used in calculations. You can also call this DAX function with INFO.DEPENDENCIES. From ad57d7819642b01a537cdde08dc5f601b1737908 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sun, 16 Mar 2025 17:58:30 -0700 Subject: [PATCH 802/934] Update toc.yml --- query-languages/dax/toc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/toc.yml b/query-languages/dax/toc.yml index cb0f135d1..b4c6bce67 100644 --- a/query-languages/dax/toc.yml +++ b/query-languages/dax/toc.yml @@ -325,7 +325,7 @@ items: - name: INFO.ANNOTATIONS href: info-annotations-function-dax.md - name: INFO.CALCDEPENDENCY - href: info.calcdependency-function-dax.md + href: info-calcdependency-function-dax.md - name: Information functions items: - name: Information functions overview From 614fdcad0182fb9e1471a7ea1dd6eb6575ce614f Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:02:59 -0700 Subject: [PATCH 803/934] Update info-calcdependency-function-dax.md --- query-languages/dax/info-calcdependency-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-calcdependency-function-dax.md b/query-languages/dax/info-calcdependency-function-dax.md index 339d5c0b4..fc17ce2b5 100644 --- a/query-languages/dax/info-calcdependency-function-dax.md +++ b/query-languages/dax/info-calcdependency-function-dax.md @@ -31,7 +31,7 @@ A table with the following columns: | [REFERENCED_OBJECT_TYPE] | The type of object this object references. The "Object" is dependent on this object. | | [REFERENCED_TABLE] | The referenced object's table name. | | [REFERENCED_OBJECT] | The referenced object's name. | -| [REFERENCED_EXPRESSION] | The refrenced object's DAX formula. | +| [REFERENCED_EXPRESSION] | The referenced object's DAX formula. | | [QUERY] | The query, if specified as a restriction. | ## Remarks From 09067b4f76ed29939d244d6d7dac080bc43697d1 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:04:47 -0700 Subject: [PATCH 804/934] Update applies-to-query-only.md --- query-languages/dax/includes/applies-to-query-only.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/query-languages/dax/includes/applies-to-query-only.md b/query-languages/dax/includes/applies-to-query-only.md index e2b5cd4cc..ce91b606c 100644 --- a/query-languages/dax/includes/applies-to-query-only.md +++ b/query-languages/dax/includes/applies-to-query-only.md @@ -1 +1,9 @@ +--- +author: DataZoeMS +ms.author: zoedouglas +ms.date: 03/17/2025 +ms.topic: include +ms.service: powerbi +ms.subservice: dax +--- Applies to: :::image type="icon" source="../media/icons/no.png":::Calculated column :::image type="icon" source="../media/icons/no.png":::Calculated table :::image type="icon" source="../media/icons/no.png":::Measure :::image type="icon" source="../media/icons/no.png":::Visual calculation :::image type="icon" source="../media/icons/yes.png":::DAX query From 43002e3d751b8e7c06dc7b1bc4d49e340b33d7d0 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:05:01 -0700 Subject: [PATCH 805/934] Update enum-objecttype.md --- query-languages/dax/includes/enum-objecttype.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/query-languages/dax/includes/enum-objecttype.md b/query-languages/dax/includes/enum-objecttype.md index abcadd733..9898f535d 100644 --- a/query-languages/dax/includes/enum-objecttype.md +++ b/query-languages/dax/includes/enum-objecttype.md @@ -1,3 +1,11 @@ +--- +author: DataZoeMS +ms.author: zoedouglas +ms.date: 03/17/2025 +ms.topic: include +ms.service: powerbi +ms.subservice: dax +--- ### ObjectType | Number | Value | From 7b553e3bc4e8a96adda5c60a5348946e330ee0cd Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:05:17 -0700 Subject: [PATCH 806/934] Update enum-title-for-info-dax-functions.md --- .../dax/includes/enum-title-for-info-dax-functions.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/query-languages/dax/includes/enum-title-for-info-dax-functions.md b/query-languages/dax/includes/enum-title-for-info-dax-functions.md index 07b74c250..d1841804c 100644 --- a/query-languages/dax/includes/enum-title-for-info-dax-functions.md +++ b/query-languages/dax/includes/enum-title-for-info-dax-functions.md @@ -1,3 +1,11 @@ +--- +author: DataZoeMS +ms.author: zoedouglas +ms.date: 03/17/2025 +ms.topic: include +ms.service: powerbi +ms.subservice: dax +--- ## Enumerations Columns returned in this INFO function give the ID of an enumeration, or lookup table. Here are the values for each enumeration in this DAX function. From 59c5c59aaa0f3aeedc27c6e24d166aad5bd533b5 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Mon, 17 Mar 2025 08:05:30 -0700 Subject: [PATCH 807/934] Update parameters-for-info-dax-functions.md --- .../dax/includes/parameters-for-info-dax-functions.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/query-languages/dax/includes/parameters-for-info-dax-functions.md b/query-languages/dax/includes/parameters-for-info-dax-functions.md index ddf051905..e4250d0a0 100644 --- a/query-languages/dax/includes/parameters-for-info-dax-functions.md +++ b/query-languages/dax/includes/parameters-for-info-dax-functions.md @@ -1,3 +1,11 @@ +--- +author: DataZoeMS +ms.author: zoedouglas +ms.date: 03/17/2025 +ms.topic: include +ms.service: powerbi +ms.subservice: dax +--- ## Parameters Parameters are optional for this DAX function. When parameters are used, both must be given. More than one pair of parameters is allowed. The restriction name and value are text and entered in double-quotes. From ae34fa177edb3fb26640cf647975fe8924ac15be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Mon, 17 Mar 2025 16:09:18 -0700 Subject: [PATCH 808/934] updating reset (visual calc function parameter) description: behavior at or above the target level --- query-languages/dax/first-function-dax.md | 2 ++ query-languages/dax/index-function-dax.md | 2 ++ query-languages/dax/last-function-dax.md | 2 ++ query-languages/dax/movingaverage-function-dax.md | 2 ++ query-languages/dax/next-function-dax.md | 3 +++ query-languages/dax/offset-function-dax.md | 2 ++ query-languages/dax/previous-function-dax.md | 2 ++ query-languages/dax/range-function-dax.md | 2 ++ query-languages/dax/rank-function-dax.md | 1 + query-languages/dax/rownumber-function-dax.md | 2 ++ query-languages/dax/runningsum-function-dax.md | 2 ++ query-languages/dax/window-function-dax.md | 5 ++++- 12 files changed, 26 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 4140a5d7c..d97d1aba5 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -32,6 +32,8 @@ The value of `column` from the first element of the axis. This function can only be used in a visual calculation. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example The following visual calculation returns the sales amount of the first row on ROWS axis, that resets on the lowest parent. diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index ce9af6b53..59079e5e1 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -59,6 +59,8 @@ If INDEX is used within a calculated column defined on the same table as `relati `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example 1 - calculated column The following DAX query: diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 88f5dd28a..05094d90f 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -32,6 +32,8 @@ The value of `column` from the last element of the axis. This function can only be used in a visual calculation. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example The following visual calculation returns the sales amount of the last row on ROWS axis, that resets on the lowest parent. diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 44a97c965..84d25279b 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -44,6 +44,8 @@ This function can be used in visual calculations only. The `includeCurrent`, `axis`, `blanks` and `reset` parameters can be omitted. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example 1 Given a table that summarizes the total sales for each product category and calendar month, the following DAX query adds a column with the average of total sales for that category in the last 6 months: diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index abb59d5ab..5fd5e9d28 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -33,6 +33,8 @@ The value of `column` from the next element of the axis. This function can only be used in a visual calculation. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example The following visual calculation returns the sales amount of the next row on ROWS axis, that resets on the lowest parent. @@ -44,6 +46,7 @@ NextInternetSalesAmount = NEXT ( [Sum of SalesAmount], ROWS, LowestParent ) The screenshot below shows the visual matrix and the visual calculation expression: ![DAX visual calculation](media/dax-queries/dax-visualcalc-next.png) + ## Related content [FIRST](first-function-dax.md) diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index fcfdb6acb..70305f55d 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -61,6 +61,8 @@ If OFFSET is used within a calculated column defined on the same table as `relat `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example 1 - calculated column The following DAX query: diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index 16120d2f9..ae29f3c95 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -33,6 +33,8 @@ The value of `column` from the previous element of the axis. This function can only be used in a visual calculation. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example The following visual calculation returns the sales amount of the previous row on ROWS axis, that resets on the lowest parent. diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index b5a5741e2..a4c02ab57 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -43,6 +43,8 @@ This function can be used in visual calculations only. The `includeCurrent`, `axis`, `blanks` and `reset` parameters can be omitted. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example 1 Given a table that summarizes the total sales for each product category and month, the following DAX query adds a column with the total sales in the last 6 months: diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 4b934c292..a70976adc 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -47,6 +47,7 @@ The rank number for the current context. - RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. - RANK does not compare to RANKX as SUM compares to SUMX. - `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. +- In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. ## Example 1 - calculated column diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 0a00c7299..cdeb781d2 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -54,6 +54,8 @@ If the columns specified within `orderBy` and `partitionBy` cannot uniquely iden `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example 1 - calculated column The following DAX query: diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 417ab5a27..e0cb99b00 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -42,6 +42,8 @@ This function can be used in visual calculations only. The `axis`, `blanks` and `reset` parameters can be omitted. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example Given a table that summarizes the total sales for each product category and calendar year, the following DAX query adds a column with the total sales for that category up to a given year. diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 37a1712cd..503cf2be5 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -65,6 +65,8 @@ If the beginning of the window turns out be before the first row, then it’s se `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. +In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. + ## Example 1 - measure The following measure: @@ -155,7 +157,7 @@ The following visual calculation DAX query: TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount]) ``` -Returns the cumulative total sales by month, calculated along each year. The values 1 and -2 could be used instead of `HIGHESTPARENT`, with the same results. +Returns the cumulative total sales by month, calculated along each year. The value 1 could be used instead of `HIGHESTPARENT`, with the same result. The screenshot below shows the visual matrix and the visual calculation expression: @@ -170,6 +172,7 @@ TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount] ``` Returns the cumulative total sales by month, calculated along each quarter. +The value `LOWESTPARENT` could be used instead of -1, with the same result. ## Related content From 2bb47013b5e42507db4b256015ed815afa6a0af0 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 18 Mar 2025 08:25:49 -0700 Subject: [PATCH 809/934] Added April update to Power Query M reference --- query-languages/m/csv-document.md | 1 + query-languages/m/docfx.json | 2 +- query-languages/m/duration-from.md | 21 ++++++++++++++++++--- query-languages/m/text-split.md | 25 ++++++++++++++++++++++++- query-languages/m/text-splitany.md | 20 ++++++++++++-------- 5 files changed, 56 insertions(+), 13 deletions(-) diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 69451c18f..6dfb23e7c 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -31,6 +31,7 @@ If a record is specified for `columns` (and `delimiter`, `extraValues`, and `enc * `QuoteStyle`: Specifies how quoted line breaks are handled. * [QuoteStyle.Csv](quotestyle-type.md) (default): Quoted line breaks are treated as part of the data, not as the end of the current row. * [QuoteStyle.None](quotestyle-type.md): All line breaks are treated as the end of the current row, even when they occur inside a quoted value. +* `IncludeByteOrderMark`: A logical value indicating whether to include a Byte Order Mark (BOM) at the beginning of the CSV output. When set to true, the BOM is written (for example, UTF-8 BOM: `0xEF 0xBB 0xBF`); when set to false, no BOM is included. This option is applicable only in output scenarios. ## Example 1 diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index e7ed80f7e..4f75222e7 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "2/10/2025", + "ms.date": "3/18/2025", "no-loc": [ "#binary", "#date", diff --git a/query-languages/m/duration-from.md b/query-languages/m/duration-from.md index 318fced91..e77fc68ad 100644 --- a/query-languages/m/duration-from.md +++ b/query-languages/m/duration-from.md @@ -13,10 +13,11 @@ Duration.From(value as any) as nullable duration ## About -Returns a `duration` value from the given `value`. If the given `value` is `null`, **Duration.From** returns `null`. If the given `value` is `duration`, `value` is returned. Values of the following types can be converted to a `duration` value: +Returns the duration value from the given value. -* `text`: A `duration` value from textual elapsed time forms (d.h:m:s). Refer to [Duration.FromText](duration-fromtext.md) for details. -* `number`: A `duration` equivalent to the number of whole and fractional days expressed by `value`. +* `value`: The value from which the duration is derived. If the given `value` is `null`, this function returns `null`. If the given `value` is a `duration`, `value` is returned. Values of the following types can be converted to a `duration` value: + * `text`: A `duration` value from textual elapsed time forms (d.h:m:s). Refer to [Duration.FromText](duration-fromtext.md) for details. + * `number`: A `duration` equivalent to the number of whole and fractional days expressed by `value`. If `value` is of any other type, an error is returned. @@ -33,3 +34,17 @@ Duration.From(2.525) **Output** `#duration(2, 12, 36, 0)` + +## Example 2 + +Convert the text value `"2.05:55:20.34567"` into a `duration` value. + +**Usage** + +```powerquery-m +Duration.From("2.05:55:20.34567") +``` + +**Output** + +`#duration(2, 5, 55, 20.3456700)` diff --git a/query-languages/m/text-split.md b/query-languages/m/text-split.md index f12f88988..9bc5cf5b3 100644 --- a/query-languages/m/text-split.md +++ b/query-languages/m/text-split.md @@ -13,7 +13,10 @@ Text.Split(text as text, separator as text) as list ## About -Returns a list of text values resulting from the splitting a text value `text` based on the specified delimiter, `separator`. +Returns a list of text values resulting from the splitting of a text value based on the specified delimiter. + +* `text`: The text value to split. +* `separator`: The delimiter used to split the text. The delimiter can be either a single character or a sequence of characters. If a sequence of characters is used, the text is split only at instances where the exact sequence occurs. ## Example 1 @@ -34,3 +37,23 @@ Text.Split("Name|Address|PhoneNumber", "|") "PhoneNumber" } ``` + +## Example 2 + +Create a list from the text value using a sequence of characters. + +**Usage** + +```powerquery-m +Text.Split("Name, the Customer, the Purchase Date", ", the ") +``` + +**Output** + +```powerquery-m +{ + Name, + Customer, + Purchase Date +} +``` diff --git a/query-languages/m/text-splitany.md b/query-languages/m/text-splitany.md index 5f5bc519b..75cdc2559 100644 --- a/query-languages/m/text-splitany.md +++ b/query-languages/m/text-splitany.md @@ -13,26 +13,30 @@ Text.SplitAny(text as text, separators as text) as list ## About -Returns a list of text values resulting from the splitting a text value `text` based on any character in the specified delimiter, `separators`. +Returns a list of text values resulting from the splitting of a text value based on any character specified in the delimiter. + +* `text`: The text value to split. +* `separator`: The delimiter characters used to split the text. ## Example 1 -Create a list from the text value "Jamie|Campbell|Admin|Adventure Works|www.adventure-works.com". +Create a list from the given text using the specified delimiter characters. **Usage** ```powerquery-m -Text.SplitAny("Jamie|Campbell|Admin|Adventure Works|www.adventure-works.com", "|") +Text.SplitAny("Name|Customer ID|Purchase|Month-Day-Year", "|-") ``` **Output** ```powerquery-m { - "Jamie", - "Campbell", - "Admin", - "Adventure Works", - "www.adventure-works.com" + "Name", + "Customer ID", + "Purchase", + "Month", + "Day", + "Year" } ``` From a0cdb953ba0ed419b38815a16cbe43a33d946796 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Wed, 19 Mar 2025 15:53:28 -0700 Subject: [PATCH 810/934] Apply review comments. --- query-languages/dax/lookup-function-dax.md | 10 +++++----- .../dax/lookupwithtotals-function-dax.md | 15 ++++++++------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index f5ba743a9..049b027a0 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -6,7 +6,7 @@ title: "LOOKUP function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns value from cell in visual matrix by absolute navigation. You can specify value as a filter for any axis on the visual matrix. Anything not specified is inferred from the context. If Lookup can’t result in single value, an error is returned. +Returns the value from a cell in the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are inferred from the context. If no single value can be determined, an error is returned. ## Syntax @@ -18,8 +18,8 @@ LOOKUP(, , [, , ]...) |Term|Definition| |--------|--------------| -|expression| The expression that we wants to get. | -|colref|(Optional) The column to be filtered. For example, when we want [Category] = "Bikes", we put [Category] here.| +|expression| The expression to evaluate. | +|colref|(Optional) The column to be filtered.| |expression|(Optional) The value to filter. In above example, put "Bikes" here.| ## Return value @@ -32,7 +32,7 @@ If multiple rows match the filters, an error is returned. ## Example 1 -In this example, LOOKUP retrieves the sum of sale for filters: [Category] = "Bikes". +In this example, LOOKUP retrieves the sum of sales for the Bikes Category. The first argument could be a column or a scalar expression. ```dax @@ -45,7 +45,7 @@ The screenshot below shows the matrix with two visual calculations. ![lookup example 1](media/dax-queries/dax-visualcalc-lookup.png) ## Example 2 -In this example, LOOKUP example 2retrieves the sum of sale for filters: [Fiscal Year] = "FY2018". Notice that quarter filter from row will be used if we don't specify it directly. Example 3 specify 2018 Q1 so it will lock down to specific row. +In this example, the LookupExample2 visual calculation retrieves the sum of Sales for Fiscal Year FY2018. Notice that quarter filter from the row will be used since its not specified explicitly. LookupExample3 explicitly specifies the quarter so does not take into account the quarter on the row. ```dax LookupExample2 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018") diff --git a/query-languages/dax/lookupwithtotals-function-dax.md b/query-languages/dax/lookupwithtotals-function-dax.md index 0dc0cdb42..484a1e1e2 100644 --- a/query-languages/dax/lookupwithtotals-function-dax.md +++ b/query-languages/dax/lookupwithtotals-function-dax.md @@ -6,7 +6,7 @@ title: "LOOKUPWITHTOTALS function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns value from cell in visual matrix by absolute navigation. You can specify value as a filter for any axis on the visual matrix. Other dimension that is not specified is treated as total grain. If Lookupwithtotals can’t result in single value, an error is returned. +Returns the value from a cell in the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are treated as referring to the total. If no single value can be determined, an error is returned. ## Syntax @@ -18,9 +18,9 @@ LOOKUPWITHTOTALS(, , [, , ]. |Term|Definition| |--------|--------------| -|expression| The expression that we wants to get. | -|colref|(Optional) The column to be filtered. For example, when we want [Category] = "Bikes", we put [Category] here.| -|expression|(Optional) The value to filter. In above example, put "Bikes" here.| +|expression| The expression to evaluate | +|colref|(Optional) The column to be filtered.| +|expression|(Optional) The value to filter.| ## Return value @@ -32,9 +32,10 @@ If multiple rows match the filters, an error is returned. ## Example 1 -In this example, LOOKUPWITHTOTALS retrieves the sum of sale for filters: [Fiscal Year] = "FY2018". +In this example, LOOKUPWITHTOTALS retrieves the sum of sales for Fiscal Year 2018. The first argument could be a column or a scalar expression. -Notice that lookup will get filter from each quarter so the result change by row. Lookupwithtotals will get value from FY2018 and ignore quarter. +Please note that in the example below, Lookupwithtotals retrieves values from FY2018 and disregards the quarter. On the other hand, Lookup applies filters for each quarter, resulting in row-specific changes + ```dax LOOKUPWITHTOTALExample1 = LOOKUPWITHTOTALS([Sales Amount], [Fiscal Year], "FY2018") @@ -47,7 +48,7 @@ The screenshot below shows the matrix with two visual calculations. ![lookupwithTotals example 1](media/dax-queries/dax-visualcalc-lookupwithtotals-example1.png) ## Example 2 -In this example, LOOKUPWITHTOTALS retrieves the sum of sale for filters: [Category] = "Bikes". Notices that it get total grain for other filters. In other words, it is not filtered. It's useful when we want to do comparison since lookupwithtoal result is locked to a certain value. +In this example, LookupWithTotalExample2 retrieves the sum of sales for Bikes Category. Notices that it get total grain for other dimension. In other words, it is not filtered. It's useful when we want to do comparison since lookupwithtoal result is locked to a certain value. ```dax LookupWithTotalExample2 = lookupWithTotals([Sales Amount], [Category], "Bikes") From e77e1ea8430fa192cdf948f5f245a688f15cf11b Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Wed, 19 Mar 2025 15:55:39 -0700 Subject: [PATCH 811/934] Fix more. --- query-languages/dax/lookup-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 049b027a0..76fee3dd5 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -20,7 +20,7 @@ LOOKUP(, , [, , ]...) |--------|--------------| |expression| The expression to evaluate. | |colref|(Optional) The column to be filtered.| -|expression|(Optional) The value to filter. In above example, put "Bikes" here.| +|expression|(Optional) The value to filter.| ## Return value From 1b3cd7042e012aefeda1debc83f770d03445c60e Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Wed, 19 Mar 2025 17:20:44 -0700 Subject: [PATCH 812/934] Fix more. --- query-languages/dax/lookup-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 76fee3dd5..150a8323c 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -32,7 +32,7 @@ If multiple rows match the filters, an error is returned. ## Example 1 -In this example, LOOKUP retrieves the sum of sales for the Bikes Category. +In this example, LOOKUP retrieves the sum of sales for Bikes Category. The first argument could be a column or a scalar expression. ```dax From 76b89d194046cad8df029e751d7caea8817d8407 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 21 Mar 2025 11:49:15 -0700 Subject: [PATCH 813/934] Add special behavior of sameperiod last year. --- query-languages/dax/sameperiodlastyear-function-dax.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/query-languages/dax/sameperiodlastyear-function-dax.md b/query-languages/dax/sameperiodlastyear-function-dax.md index 29fed7806..060f4740f 100644 --- a/query-languages/dax/sameperiodlastyear-function-dax.md +++ b/query-languages/dax/sameperiodlastyear-function-dax.md @@ -45,6 +45,16 @@ The following sample formula creates a measure that calculates the previous year = CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), SAMEPERIODLASTYEAR(DateTime[DateKey])) ``` +## Special behavior + +When the selection includes last two days of month, SAMEPERIODLASTYEAR will use "extension" semantics and will include the days till the end of month. For example, when Feb 27 and 28 of 2009 are included in the selection, SAMEPERIODLASTYEAR will return Feb 27 to 29 of 2008. + +This behavior only happens when last two days of month are included in the selection. If only Feb 27 is selected, it will go to Feb 27. + +```dax += SAMEPERIODLASTYEAR(DateTime[DateKey]) +``` + ## Related content [Time intelligence functions](time-intelligence-functions-dax.md) From e956da4a9523e51043bb8f32fe678418f2e8a440 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 21 Mar 2025 11:52:09 -0700 Subject: [PATCH 814/934] Revert "Add special behavior of sameperiod last year." This reverts commit 76b89d194046cad8df029e751d7caea8817d8407. --- query-languages/dax/sameperiodlastyear-function-dax.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/query-languages/dax/sameperiodlastyear-function-dax.md b/query-languages/dax/sameperiodlastyear-function-dax.md index 060f4740f..29fed7806 100644 --- a/query-languages/dax/sameperiodlastyear-function-dax.md +++ b/query-languages/dax/sameperiodlastyear-function-dax.md @@ -45,16 +45,6 @@ The following sample formula creates a measure that calculates the previous year = CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), SAMEPERIODLASTYEAR(DateTime[DateKey])) ``` -## Special behavior - -When the selection includes last two days of month, SAMEPERIODLASTYEAR will use "extension" semantics and will include the days till the end of month. For example, when Feb 27 and 28 of 2009 are included in the selection, SAMEPERIODLASTYEAR will return Feb 27 to 29 of 2008. - -This behavior only happens when last two days of month are included in the selection. If only Feb 27 is selected, it will go to Feb 27. - -```dax -= SAMEPERIODLASTYEAR(DateTime[DateKey]) -``` - ## Related content [Time intelligence functions](time-intelligence-functions-dax.md) From 6b99f78abe190c4b1939eef09524577ac681c869 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 21 Mar 2025 11:49:15 -0700 Subject: [PATCH 815/934] Add special behavior of sameperiod last year. --- query-languages/dax/sameperiodlastyear-function-dax.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/query-languages/dax/sameperiodlastyear-function-dax.md b/query-languages/dax/sameperiodlastyear-function-dax.md index 29fed7806..060f4740f 100644 --- a/query-languages/dax/sameperiodlastyear-function-dax.md +++ b/query-languages/dax/sameperiodlastyear-function-dax.md @@ -45,6 +45,16 @@ The following sample formula creates a measure that calculates the previous year = CALCULATE(SUM(ResellerSales_USD[SalesAmount_USD]), SAMEPERIODLASTYEAR(DateTime[DateKey])) ``` +## Special behavior + +When the selection includes last two days of month, SAMEPERIODLASTYEAR will use "extension" semantics and will include the days till the end of month. For example, when Feb 27 and 28 of 2009 are included in the selection, SAMEPERIODLASTYEAR will return Feb 27 to 29 of 2008. + +This behavior only happens when last two days of month are included in the selection. If only Feb 27 is selected, it will go to Feb 27. + +```dax += SAMEPERIODLASTYEAR(DateTime[DateKey]) +``` + ## Related content [Time intelligence functions](time-intelligence-functions-dax.md) From 2778336f1e370e061fd3190edeef21f392e965cb Mon Sep 17 00:00:00 2001 From: Ming Han Teh Date: Mon, 24 Mar 2025 17:21:40 +0800 Subject: [PATCH 816/934] Update info-functions-dax.md about INFO.FUNCTIONS --- query-languages/dax/info-functions-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index fd2957e9c..0e5dc98e5 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -120,7 +120,7 @@ Here is the list of INFO functions. Some work only on specific compat levels and | INFO.EXPRESSIONS | Returns a list of all expressions in the current model with columns matching the schema rowset for expressions objects. | | INFO.EXTENDEDPROPERTIES | Returns a list of all extended properties in the current model with columns matching the schema rowset for extended properties objects. | | INFO.FORMATSTRINGDEFINITIONS | | -| INFO.FUNCTIONS | Returns information about the functions that are currently available for use in the DAX programming language. | +| INFO.FUNCTIONS | Returns information about the functions that are currently available for use in the DAX programming language. If the `origin` restriction is not specified, then it defaults to 3 or 4. | | INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES | | | INFO.GROUPBYCOLUMNS | | | INFO.HIERARCHIES | Represents the TMSCHEMA_HIERARCHIES DMV query function. | From e49de9f90b93b34736c8992d53d3e60835b8f6d1 Mon Sep 17 00:00:00 2001 From: Ming Han Teh Date: Mon, 24 Mar 2025 17:32:02 +0800 Subject: [PATCH 817/934] Update INFO.FUNCTIONS description in DAX info functions Update --- query-languages/dax/info-functions-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index 0e5dc98e5..29e65065d 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -120,7 +120,7 @@ Here is the list of INFO functions. Some work only on specific compat levels and | INFO.EXPRESSIONS | Returns a list of all expressions in the current model with columns matching the schema rowset for expressions objects. | | INFO.EXTENDEDPROPERTIES | Returns a list of all extended properties in the current model with columns matching the schema rowset for extended properties objects. | | INFO.FORMATSTRINGDEFINITIONS | | -| INFO.FUNCTIONS | Returns information about the functions that are currently available for use in the DAX programming language. If the `origin` restriction is not specified, then it defaults to 3 or 4. | +| INFO.FUNCTIONS | Returns information about the functions that are currently available for use in the DAX programming language. Represents the MDSCHEMA_FUNCTIONS DMV query function, but returns only DAX (and noy MDX) functions by default. If the ORIGIN restriction is not specified, it defaults to 3 or 4. | | INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES | | | INFO.GROUPBYCOLUMNS | | | INFO.HIERARCHIES | Represents the TMSCHEMA_HIERARCHIES DMV query function. | From d778425ecb5dc460b0d4e2102bf6f85e86b3eed2 Mon Sep 17 00:00:00 2001 From: Ming Han Teh Date: Mon, 24 Mar 2025 17:32:45 +0800 Subject: [PATCH 818/934] Fix typo in INFO.FUNCTIONS description Update --- query-languages/dax/info-functions-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index 29e65065d..f0b7b23e8 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -120,7 +120,7 @@ Here is the list of INFO functions. Some work only on specific compat levels and | INFO.EXPRESSIONS | Returns a list of all expressions in the current model with columns matching the schema rowset for expressions objects. | | INFO.EXTENDEDPROPERTIES | Returns a list of all extended properties in the current model with columns matching the schema rowset for extended properties objects. | | INFO.FORMATSTRINGDEFINITIONS | | -| INFO.FUNCTIONS | Returns information about the functions that are currently available for use in the DAX programming language. Represents the MDSCHEMA_FUNCTIONS DMV query function, but returns only DAX (and noy MDX) functions by default. If the ORIGIN restriction is not specified, it defaults to 3 or 4. | +| INFO.FUNCTIONS | Returns information about the functions that are currently available for use in the DAX programming language. Represents the MDSCHEMA_FUNCTIONS DMV query function, but returns only DAX (and not MDX) functions by default. If the ORIGIN restriction is not specified, it defaults to 3 or 4. | | INFO.GENERALSEGMENTMAPSEGMENTMETADATASTORAGES | | | INFO.GROUPBYCOLUMNS | | | INFO.HIERARCHIES | Represents the TMSCHEMA_HIERARCHIES DMV query function. | From d2ab5c6dd4fb885c3b962c3823fab71e520de422 Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Wed, 26 Mar 2025 15:11:49 -0700 Subject: [PATCH 819/934] Fix review comments. --- query-languages/dax/lookup-function-dax.md | 2 +- query-languages/dax/lookupwithtotals-function-dax.md | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 150a8323c..1194cb106 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -45,7 +45,7 @@ The screenshot below shows the matrix with two visual calculations. ![lookup example 1](media/dax-queries/dax-visualcalc-lookup.png) ## Example 2 -In this example, the LookupExample2 visual calculation retrieves the sum of Sales for Fiscal Year FY2018. Notice that quarter filter from the row will be used since its not specified explicitly. LookupExample3 explicitly specifies the quarter so does not take into account the quarter on the row. +In this example, the **LookupExample2** visual calculation retrieves the sum of Sales for Fiscal Year **FY2018**. Notice that quarter filter from the row will be used since its not specified explicitly, resulting in no results being returned for **FY2019 Q1** to **FY2019 Q4** since the combination of **FY2018** and **FY2019 Q1** to **FY2019 Q4** does not exist. **LookupExample3** explicitly specifies the quarter so does not take into account the current quarter on the row. ```dax LookupExample2 = LOOKUP([Sales Amount], [Fiscal Year], "FY2018") diff --git a/query-languages/dax/lookupwithtotals-function-dax.md b/query-languages/dax/lookupwithtotals-function-dax.md index 484a1e1e2..35cd87de8 100644 --- a/query-languages/dax/lookupwithtotals-function-dax.md +++ b/query-languages/dax/lookupwithtotals-function-dax.md @@ -32,9 +32,7 @@ If multiple rows match the filters, an error is returned. ## Example 1 -In this example, LOOKUPWITHTOTALS retrieves the sum of sales for Fiscal Year 2018. -The first argument could be a column or a scalar expression. -Please note that in the example below, Lookupwithtotals retrieves values from FY2018 and disregards the quarter. On the other hand, Lookup applies filters for each quarter, resulting in row-specific changes +The **Lookupwithtotals** visual calculation retrieves values for **FY2018** and all quarters since no value for quarter was specified as an argument. On the other hand, the **Lookup** visual calculation takes into account the current context. Therefore, the results are different and the **Lookup** visual calculation returns the **Sales Amount** for **FY2018** for each quarter. This also explains why the results for the **Lookup** visual calculation are empty because there is no combination of **FY2019 Q1** to **FY2019 Q4** and **FY2018**. ```dax @@ -48,7 +46,7 @@ The screenshot below shows the matrix with two visual calculations. ![lookupwithTotals example 1](media/dax-queries/dax-visualcalc-lookupwithtotals-example1.png) ## Example 2 -In this example, LookupWithTotalExample2 retrieves the sum of sales for Bikes Category. Notices that it get total grain for other dimension. In other words, it is not filtered. It's useful when we want to do comparison since lookupwithtoal result is locked to a certain value. +In this example, **LookupWithTotalExample2** retrieves the sum of sales for Bikes Category. Notices that uses the total for other the dimensions since they were not specified. In other words, those dimensions are not filtered. It's useful when we want to do comparison since the result is locked to one value. ```dax LookupWithTotalExample2 = lookupWithTotals([Sales Amount], [Category], "Bikes") From fa537d39bd4c61511711f78e6118eee35446044a Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Fri, 28 Mar 2025 11:12:08 -0400 Subject: [PATCH 820/934] Indicating that duration / duration division is allowed --- query-languages/m/m-spec-values.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index c28c13775..f682c7cc7 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -2,7 +2,7 @@ title: M Language values description: Describes using values in the Power Query M formula language ms.topic: conceptual -ms.date: 8/2/2022 +ms.date: 3/28/2025 ms.custom: "nonautomated-date" ms.subservice: m-specification --- @@ -335,6 +335,7 @@ Additionally, the following operators allow one or both of their operands to be | `x * y` | `duration` | `number` | N times a duration | | `x * y` | `number` | `duration` | N times a duration | | `x / y` | `duration` | `number` | Fraction of a duration | +| `x / y` | `duration` | `duration` | Numeric quotient of durations | The native type of duration values is the intrinsic type `duration`. From 8518a0eb49c9cc3c74e45362672e2bb64e880b2c Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Mon, 7 Apr 2025 17:42:45 -0400 Subject: [PATCH 821/934] Identifying transformation function used --- query-languages/m/table-transformcolumntypes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 442b44d3c..e2faab4f4 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -21,6 +21,8 @@ Returns a table by applying the transform operations to the specified columns us The type value in the `typeTransformations` parameter can be `any`, all of the `number` types, `text`, all of the `date`, `time`, `datetime`, `datetimezone`, and `duration` types, `logical`, or `binary`. The `list`, `record`, `table`, or `function` types aren't valid for this parameter. +For each column in `typeTransformations`, the ".From" method corresponding to the specified type value is used to perform the transformation. For example, if a type value of `Currency.Type` is given for a column, the transformation function `Currency.From` will be applied to each value in that column. + ## Example 1 Transform the number values in the first column to text values. From b583cf2d5f8fa4aef68a825d940c80dde0ecda94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rio=20da=20Silva?= Date: Mon, 7 Apr 2025 15:01:36 -0700 Subject: [PATCH 822/934] addressing PR comments --- query-languages/dax/first-function-dax.md | 2 +- query-languages/dax/index-function-dax.md | 2 +- query-languages/dax/last-function-dax.md | 2 +- query-languages/dax/movingaverage-function-dax.md | 2 +- query-languages/dax/next-function-dax.md | 2 +- query-languages/dax/offset-function-dax.md | 2 +- query-languages/dax/previous-function-dax.md | 2 +- query-languages/dax/range-function-dax.md | 2 +- query-languages/dax/rank-function-dax.md | 2 +- query-languages/dax/rownumber-function-dax.md | 2 +- query-languages/dax/runningsum-function-dax.md | 2 +- query-languages/dax/window-function-dax.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index d97d1aba5..57f5ac50e 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -32,7 +32,7 @@ The value of `column` from the first element of the axis. This function can only be used in a visual calculation. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index 59079e5e1..db48432bd 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -59,7 +59,7 @@ If INDEX is used within a calculated column defined on the same table as `relati `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example 1 - calculated column diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 05094d90f..4dd711aba 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -32,7 +32,7 @@ The value of `column` from the last element of the axis. This function can only be used in a visual calculation. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 84d25279b..3b62052c0 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -44,7 +44,7 @@ This function can be used in visual calculations only. The `includeCurrent`, `axis`, `blanks` and `reset` parameters can be omitted. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example 1 diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 5fd5e9d28..406894300 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -33,7 +33,7 @@ The value of `column` from the next element of the axis. This function can only be used in a visual calculation. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index 70305f55d..062b8459a 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -61,7 +61,7 @@ If OFFSET is used within a calculated column defined on the same table as `relat `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example 1 - calculated column diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index ae29f3c95..b27e68fdd 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -33,7 +33,7 @@ The value of `column` from the previous element of the axis. This function can only be used in a visual calculation. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index a4c02ab57..84eea597c 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -43,7 +43,7 @@ This function can be used in visual calculations only. The `includeCurrent`, `axis`, `blanks` and `reset` parameters can be omitted. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example 1 diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index a70976adc..daca842b0 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -47,7 +47,7 @@ The rank number for the current context. - RANK returns a blank value for total rows. It's recommended that you test your expression thoroughly. - RANK does not compare to RANKX as SUM compares to SUMX. - `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. -- In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +- If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example 1 - calculated column diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index cdeb781d2..3ba776a6c 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -54,7 +54,7 @@ If the columns specified within `orderBy` and `partitionBy` cannot uniquely iden `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example 1 - calculated column diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index e0cb99b00..164d8c069 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -42,7 +42,7 @@ This function can be used in visual calculations only. The `axis`, `blanks` and `reset` parameters can be omitted. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 503cf2be5..4e8bb115a 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -65,7 +65,7 @@ If the beginning of the window turns out be before the first row, then it’s se `reset` can be used in visual calculations only, and cannot be used in combination with `orderBy` or `partitionBy`. If `reset` is present, `axis` can be specified but `relation` cannot. -In the case when the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference), at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that single element. +If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. ## Example 1 - measure From 620b162caae04117b580af66ea2cb18174b391c4 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 8 Apr 2025 10:25:59 -0400 Subject: [PATCH 823/934] Update table-transformcolumntypes.md --- query-languages/m/table-transformcolumntypes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index e2faab4f4..fe3ad56d6 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -21,7 +21,7 @@ Returns a table by applying the transform operations to the specified columns us The type value in the `typeTransformations` parameter can be `any`, all of the `number` types, `text`, all of the `date`, `time`, `datetime`, `datetimezone`, and `duration` types, `logical`, or `binary`. The `list`, `record`, `table`, or `function` types aren't valid for this parameter. -For each column in `typeTransformations`, the ".From" method corresponding to the specified type value is used to perform the transformation. For example, if a type value of `Currency.Type` is given for a column, the transformation function `Currency.From` will be applied to each value in that column. +For each column in `typeTransformations`, normally the ".From" method corresponding to the specified type value is used to perform the transformation. For example, if a type value of `Currency.Type` is given for a column, the transformation function `Currency.From` will be applied to each value in that column. ## Example 1 From b382bd4982f63ea88d9bbdfcb0d8d25005f76cc5 Mon Sep 17 00:00:00 2001 From: Ben Gribaudo Date: Tue, 8 Apr 2025 10:33:45 -0400 Subject: [PATCH 824/934] Update round-function-dax.md --- query-languages/dax/round-function-dax.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/query-languages/dax/round-function-dax.md b/query-languages/dax/round-function-dax.md index b18c95c76..5dbf4f3d5 100644 --- a/query-languages/dax/round-function-dax.md +++ b/query-languages/dax/round-function-dax.md @@ -33,6 +33,12 @@ A decimal number. - If `num_digits` is less than 0, the number is rounded to the left of the decimal point. +- Ties are broken by rounding half away from zero (also known as commercial rounding). + | Examples | Result | + | --- | --- | + | `= ROUND(1.15, 1)` | 1.2 | + | `= ROUND(-1.15, 1)` | -1.2 | + - Related functions - To always round up (away from zero), use the ROUNDUP function. - To always round down (toward zero), use the ROUNDDOWN function. From 9761e5cfc0ab9296beac10e18b939ed57c4d10d8 Mon Sep 17 00:00:00 2001 From: Paul Inbar <54644589+paulinbar@users.noreply.github.com> Date: Wed, 9 Apr 2025 11:28:23 +0300 Subject: [PATCH 825/934] Update docfx.json Change author and ms.author metadata --- query-languages/dax/docfx.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/docfx.json b/query-languages/dax/docfx.json index 94f15ec18..a88a314e3 100644 --- a/query-languages/dax/docfx.json +++ b/query-languages/dax/docfx.json @@ -43,8 +43,8 @@ "ms.service": "powerbi", "ms.subservice": "dax", "ms.topic": "reference", - "ms.author": "kfollis", - "author": "kfollis", + "ms.author": "jterh", + "author": "jeroenterheerdt", "recommendations": "false", "searchScope": ["Power BI", "Analysis Services", "DAX formula language"], "ms.date": "10/20/2023", From d1fe95caf9ccd9c27cc350fc8919dd4812aadf90 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 11 Apr 2025 15:14:20 -0700 Subject: [PATCH 826/934] Clarify column transformation method description --- query-languages/m/table-transformcolumntypes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index fe3ad56d6..6ed6e053a 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -21,7 +21,7 @@ Returns a table by applying the transform operations to the specified columns us The type value in the `typeTransformations` parameter can be `any`, all of the `number` types, `text`, all of the `date`, `time`, `datetime`, `datetimezone`, and `duration` types, `logical`, or `binary`. The `list`, `record`, `table`, or `function` types aren't valid for this parameter. -For each column in `typeTransformations`, normally the ".From" method corresponding to the specified type value is used to perform the transformation. For example, if a type value of `Currency.Type` is given for a column, the transformation function `Currency.From` will be applied to each value in that column. +For each column listed in `typeTransformations`, the ".From" method corresponding to the specified type value is normally used to perform the transformation. For example, if a `Currency.Type` type value is given for a column, the transformation function `Currency.From` is applied to each value in that column. ## Example 1 From 2aa9648c872049155df06413c5991534dcdf3e2e Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Fri, 11 Apr 2025 15:19:03 -0700 Subject: [PATCH 827/934] Fix the first sentence to mention evaluate expression. --- query-languages/dax/lookup-function-dax.md | 2 +- query-languages/dax/lookupwithtotals-function-dax.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 1194cb106..837a50aad 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -6,7 +6,7 @@ title: "LOOKUP function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns the value from a cell in the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are inferred from the context. If no single value can be determined, an error is returned. +Returns the value or evaluate expression from the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are inferred from the context. If no single value can be determined, an error is returned. ## Syntax diff --git a/query-languages/dax/lookupwithtotals-function-dax.md b/query-languages/dax/lookupwithtotals-function-dax.md index 35cd87de8..59e7a9d81 100644 --- a/query-languages/dax/lookupwithtotals-function-dax.md +++ b/query-languages/dax/lookupwithtotals-function-dax.md @@ -6,7 +6,7 @@ title: "LOOKUPWITHTOTALS function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns the value from a cell in the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are treated as referring to the total. If no single value can be determined, an error is returned. +Returns the value or evaluate expression from the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are treated as referring to the total. If no single value can be determined, an error is returned. ## Syntax From 9d5c0caf0c5f80bc3849e221df4134f784e7ab7d Mon Sep 17 00:00:00 2001 From: Po-Wei Huang Date: Mon, 14 Apr 2025 11:57:01 -0700 Subject: [PATCH 828/934] Fix review commit. --- query-languages/dax/lookup-function-dax.md | 2 +- query-languages/dax/lookupwithtotals-function-dax.md | 2 +- query-languages/dax/new-dax-functions.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/dax/lookup-function-dax.md b/query-languages/dax/lookup-function-dax.md index 837a50aad..8b080599c 100644 --- a/query-languages/dax/lookup-function-dax.md +++ b/query-languages/dax/lookup-function-dax.md @@ -6,7 +6,7 @@ title: "LOOKUP function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns the value or evaluate expression from the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are inferred from the context. If no single value can be determined, an error is returned. +Returns the value or evaluates the expression from the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are inferred from the context. If no single value can be determined, an error is returned. ## Syntax diff --git a/query-languages/dax/lookupwithtotals-function-dax.md b/query-languages/dax/lookupwithtotals-function-dax.md index 59e7a9d81..c6c26a3c4 100644 --- a/query-languages/dax/lookupwithtotals-function-dax.md +++ b/query-languages/dax/lookupwithtotals-function-dax.md @@ -6,7 +6,7 @@ title: "LOOKUPWITHTOTALS function (DAX) | Microsoft Docs" [!INCLUDE[applies-to-visual-calculations](includes/applies-to-visual-calculations.md)] -Returns the value or evaluate expression from the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are treated as referring to the total. If no single value can be determined, an error is returned. +Returns the value or evaluates the expression from the visual matrix using absolute navigation. Filters can be provided for any axis on the visual matrix. Any omitted filters are treated as referring to the total. If no single value can be determined, an error is returned. ## Syntax diff --git a/query-languages/dax/new-dax-functions.md b/query-languages/dax/new-dax-functions.md index b25f2d043..0e5a38382 100644 --- a/query-languages/dax/new-dax-functions.md +++ b/query-languages/dax/new-dax-functions.md @@ -15,8 +15,8 @@ While functions and functionality are being updated all the time, only those upd |Function |Month | Description | |---------|---------|---------| -|[LOOKUPWITHTOTALS](lookupwithtotals-function-dax.md)|June, 2025| Used in visual Calculations only. Look up the value when filters are applied. Filters not specified would not be inferred.| -|[LOOKUP](lookup-function-dax.md)|June, 2025| Used in visual Calculations only. Look up the value when filters are applied. | +|[LOOKUPWITHTOTALS](lookupwithtotals-function-dax.md)|June, 2025| Used in visual calculations only. Look up the value when filters are applied. Filters not specified would not be inferred.| +|[LOOKUP](lookup-function-dax.md)|June, 2025| Used in visual calculations only. Look up the value when filters are applied. | |[FIRST](first-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the visual matrix from the first row of an axis.| |[LAST](last-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the visual matrix from the last row of an axis.| |[NEXT](next-function-dax.md)|January, 2024|Used in visual calculations only. Retrieves a value in the next row of an axis in the visual matrix.| From 4557013c92a73da02647e803258d5b9591e24fe5 Mon Sep 17 00:00:00 2001 From: MjrToland <127543644+MjrToland@users.noreply.github.com> Date: Thu, 17 Apr 2025 10:27:04 -0400 Subject: [PATCH 829/934] Update userelationship-function-dax.md Reference on the bottom DAX was to [ShipmentDate] and not the [ShippingDate] used in the code example above, changed to line up to remove ambiguity. --- query-languages/dax/userelationship-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/userelationship-function-dax.md b/query-languages/dax/userelationship-function-dax.md index 33dc37aea..65242cf07 100644 --- a/query-languages/dax/userelationship-function-dax.md +++ b/query-languages/dax/userelationship-function-dax.md @@ -55,4 +55,4 @@ To calculate the sum of internet sales and allow slicing by ShippingDate instead = CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date])) ``` -Relationships between InternetSales[ShipmentDate] and DateTime[Date] must exist and should not be the active relationship; also, the relationship between InternetSales[OrderDate] and DateTime[Date] should exist and should be the active relationship. +Relationships between InternetSales[ShippingDate] and DateTime[Date] must exist and should not be the active relationship; also, the relationship between InternetSales[OrderDate] and DateTime[Date] should exist and should be the active relationship. From c4f0de42e95cc16b85290fe88a67a6b7d53f0b4f Mon Sep 17 00:00:00 2001 From: Mark Ghanayem <22989000+markingmyname@users.noreply.github.com> Date: Wed, 23 Apr 2025 15:22:33 -0500 Subject: [PATCH 830/934] [Build Validation] Correct invalid author suggestion @DougKlopfenstein --- query-languages/dax/dax-copilot.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index c00fb2212..34e53114b 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -5,8 +5,8 @@ ms.service: powerbi ms.date: 10/21/2024 ms.reviewer: ms.topic: how-to -author: maggiesMSFT -ms.author: maggies +author: DougKlopfenstein +ms.author: dougklo no-loc: [CoPilot] #customer intent: As a DAX query writer, I want to use Copilot to help me write DAX queries. --- From 0fee8ca469f13a8d65d4625be0570621e6471324 Mon Sep 17 00:00:00 2001 From: Mark Ghanayem <22989000+markingmyname@users.noreply.github.com> Date: Wed, 23 Apr 2025 17:25:30 -0500 Subject: [PATCH 831/934] change to right owner this has become a self-service item --- query-languages/dax/dax-copilot.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/dax-copilot.md b/query-languages/dax/dax-copilot.md index 34e53114b..d0c30c729 100644 --- a/query-languages/dax/dax-copilot.md +++ b/query-languages/dax/dax-copilot.md @@ -5,8 +5,8 @@ ms.service: powerbi ms.date: 10/21/2024 ms.reviewer: ms.topic: how-to -author: DougKlopfenstein -ms.author: dougklo +author: DataZoeMS +ms.author: zoedouglas no-loc: [CoPilot] #customer intent: As a DAX query writer, I want to use Copilot to help me write DAX queries. --- From b35a8fb6ffa698a113257f4fd5f4f2562032a34a Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 23 Apr 2025 15:31:55 -0700 Subject: [PATCH 832/934] removing axis as a separate parameter on window functions --- query-languages/dax/index-function-dax.md | 3 +-- query-languages/dax/offset-function-dax.md | 3 +-- query-languages/dax/rank-function-dax.md | 3 +-- query-languages/dax/rownumber-function-dax.md | 3 +-- query-languages/dax/window-function-dax.md | 3 +-- 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/query-languages/dax/index-function-dax.md b/query-languages/dax/index-function-dax.md index ce9af6b53..193a72fb4 100644 --- a/query-languages/dax/index-function-dax.md +++ b/query-languages/dax/index-function-dax.md @@ -20,8 +20,7 @@ INDEX([, or ][, ][, ][, - `position` is positive: 1 is the first row, 2 is the second row, etc.
    - `position` is negative: -1 is the last row, -2 is the second last row, etc.
    When `position` is out of the boundary, or zero, or BLANK(), INDEX will return an empty table. It can be any DAX expression that returns a scalar value.| -|`relation`|(Optional) A table expression from which the output is returned.
    If specified, all columns in `partitionBy` must come from it or a related table.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
    - Defaults to `ALLSELECTED()` of all columns in `orderBy` and `partitionBy`. -|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`relation`|(Optional) A table expression from which the output is returned. If used in visual calculations, this parameter accepts an axis in the visual shape.
    If specified, all columns in `partitionBy` must come from it or a related table.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
    - Defaults to `ALLSELECTED()` of all columns in `orderBy` and `partitionBy`. |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
    If omitted:
    - `relation` must be explicitly specified.
    - Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
    The supported values are:


    Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| |`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| diff --git a/query-languages/dax/offset-function-dax.md b/query-languages/dax/offset-function-dax.md index fcfdb6acb..d91b4866d 100644 --- a/query-languages/dax/offset-function-dax.md +++ b/query-languages/dax/offset-function-dax.md @@ -20,8 +20,7 @@ OFFSET ( [, or ][, ][, ][, If specified, all columns in `partitionBy` must come from it or a related table.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
    - Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| -|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`relation`|(Optional) A table expression from which the output row is returned. If used in visual calculations, this parameter accepts an axis in the visual shape.
    If specified, all columns in `partitionBy` must come from it or a related table.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
    - Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
    If omitted:
    - `relation` must be explicitly specified.
    - Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

    Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| |`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| diff --git a/query-languages/dax/rank-function-dax.md b/query-languages/dax/rank-function-dax.md index 4b934c292..c58d0af44 100644 --- a/query-languages/dax/rank-function-dax.md +++ b/query-languages/dax/rank-function-dax.md @@ -21,8 +21,7 @@ RANK ( [][, or ][, ][, ][, |Term|Definition| |--------|--------------| |`ties`|(Optional) Defines how to handle the ranking when two or more rows are tied.
    If specified, the supported value is either DENSE, or SKIP.
    If omitted:
    - Defaults to SKIP | -|`relation`|(Optional) A table expression from which the output row is returned.
    If specified, all columns in `orderBy` and `partitionBy` must come from it.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
    - Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| -|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`relation`|(Optional) A table expression from which the output row is returned. If used in visual calculations, this parameter accepts an axis in the visual shape.
    If specified, all columns in `orderBy` and `partitionBy` must come from it.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
    - Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
    If omitted:
    - `relation` must be explicitly specified.
    - Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

    Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| |`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| diff --git a/query-languages/dax/rownumber-function-dax.md b/query-languages/dax/rownumber-function-dax.md index 0a00c7299..dc5b9b524 100644 --- a/query-languages/dax/rownumber-function-dax.md +++ b/query-languages/dax/rownumber-function-dax.md @@ -19,8 +19,7 @@ ROWNUMBER ( [ or ][, ][, ][, ][, < |Term|Definition| |--------|--------------| -|`relation`|(Optional) A table expression from which the output row is returned.
    If specified, all columns in `orderBy` and `partitionBy` must come from it.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
    - Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| -|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`relation`|(Optional) A table expression from which the output row is returned. If used in visual calculations, this parameter accepts an axis in the visual shape.
    If specified, all columns in `orderBy` and `partitionBy` must come from it.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` columns must be fully qualified and come from a single table.
    - Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`orderBy`|(Optional) An ORDERBY() clause containing the columns that define how each partition is sorted.
    If omitted:
    - `relation` must be explicitly specified.
    - Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

    Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| |`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| diff --git a/query-languages/dax/window-function-dax.md b/query-languages/dax/window-function-dax.md index 37a1712cd..e5b88dcce 100644 --- a/query-languages/dax/window-function-dax.md +++ b/query-languages/dax/window-function-dax.md @@ -23,8 +23,7 @@ WINDOW ( from[, from_type], to[, to_type][, or ][, ][, |`from_type` |Modifies behavior of the `from` parameter. Possible values are ABS (absolute) and REL (relative). Default is REL.| |`to`|Same as `from`, but indicates the end of the window. The last row is included in the window.| |`to_type`|Same as `from_type`, but modifies the behavior of `to`.| -|`relation`|(Optional) A table expression from which the output rows are returned.
    If specified, all columns in `partitionBy` must come from it or a related table.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
    - Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| -|`axis`|(Optional) An axis in the visual shape. Available in visual calculations only, and replaces `relation`. +|`relation`|(Optional) A table expression from which the output rows are returned. If used in visual calculations, this parameter accepts an axis in the visual shape.
    If specified, all columns in `partitionBy` must come from it or a related table.
    If omitted:
    - `orderBy` must be explicitly specified.
    - All `orderBy` and `partitionBy` expressions must be fully qualified column names and come from a single table.
    - Defaults to ALLSELECTED() of all columns in `orderBy` and `partitionBy`.| |`orderBy`|(Optional) An ORDERBY() clause containing the expressions that define how each partition is sorted.
    If omitted:
    - `relation` must be explicitly specified.
    - Defaults to ordering by every column in `relation` that is not already specified in `partitionBy`.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `relation` or `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.

    Note, when the `blanks` parameter and blanks in the [ORDERBY()](orderby-function-dax.md) function on individual expressions are both specified, `blanks` on individual orderBy expression takes priority for the relevant orderBy expression, and orderBy expressions without `blanks` being specified will honor the `blanks` parameter on the parent function.| |`partitionBy`|(Optional) A [PARTITIONBY()](partitionby-function-dax.md) clause containing the columns that define how `relation` is partitioned. If omitted, `relation` is treated as a single partition.| From 8db9bc2547def018150d64e1460af18e86b3c1e4 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 28 Apr 2025 08:44:56 -0700 Subject: [PATCH 833/934] Added Power BI Desktop limitations --- query-languages/m/m-working-with-case.md | 22 ++++++++++++++---- .../m/media/table-case-sensitive.png | Bin 0 -> 4517 bytes .../m/media/table-loaded-power-bi-desktop.png | Bin 0 -> 5969 bytes 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 query-languages/m/media/table-case-sensitive.png create mode 100644 query-languages/m/media/table-loaded-power-bi-desktop.png diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index a5f076676..a0a66514b 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -1,17 +1,17 @@ --- description: "Learn more about: Capitalization in Power Query M" -title: "Capitalization of data in Power Query M" -ms.date: 2/7/2025 +title: "Capitalization of text in Power Query M" +ms.date: 4/25/2025 ms.subservice: m-background --- # Capitalization in Power Query M -One of the problems of presenting data is that some data can be messy. One example is that names and places could exist in a database with random capitalization of their letters. This could cause a problem when manipulating the data because the Power Query M formula language is case-sensitive. +One of the problems of presenting data is that some text can be messy. One example is that names and places could exist in a database with random capitalization of their letters. This could cause a problem when manipulating the data because the Power Query M formula language is case-sensitive. To clean data with random capitalization, Power Query M provides functions to change the case of the data to be examined. There are methods to convert data to lower case (abc), upper case (ABC), or proper case (Abc). In addition, Power Query M also provides several ways to ignore the data's case altogether. -In this article, you'll learn how to change the capitalization of words in text, lists, and tables. In addition, this article also demonstrates various ways of ignoring case while manipulating data in text, lists, and tables. +In this article, you learn how to change the capitalization of words in text, lists, and tables. In addition, this article also demonstrates various ways of ignoring case while manipulating data in text, lists, and tables. Also, sorting according to case is also described. ## Changing case in text @@ -466,3 +466,17 @@ Although not common, you might have a mix of upper and lower case letters in tex 1. Lower case is then sorted, with the maximum number of upper case letters to the right done first. In this case, it might be more convenient to convert the text to a consistent case before sorting. + +## Power BI Desktop normalization + +Power Query M is case sensitive and distinguishes between different capitalizations of the same text. For example, "Foo", "foo", and "FOO" are treated as different. However, when the data is loaded into Power BI Desktop, the text values are normalized, meaning Power BI Desktop treats them as the same value regardless of their capitalization. Therefore, if you need to maintain case sensitivity in your data, you should handle the data in Power Query before loading the data to Power BI Desktop. + +For example, the following table in Power Query shows different cases in each row of the table. + +:::image type="content" source="media/table-case-sensitive.png" alt-text="Screenshot of a table containing the text foo and too with various cases."::: + +When this table is loaded into Power BI Desktop, the text values become normalized, resulting in the following table. + +:::image type="content" source="media/table-loaded-power-bi-desktop.png" alt-text="Screenshot of the same table loaded in Power BI Desktop, with the case of each word normalized."::: + +In this case, the first instance of "foo" and the first instance of "too" determine the case of "foo" and "too" throughout the rest of the rows in the table. diff --git a/query-languages/m/media/table-case-sensitive.png b/query-languages/m/media/table-case-sensitive.png new file mode 100644 index 0000000000000000000000000000000000000000..c3d73a9df693423163c7742eb7a0edf394fae74e GIT binary patch literal 4517 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 literal 0 HcmV?d00001 From 5da4285814e3d53a5413beb868ec0641f36943d5 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 28 Apr 2025 12:44:53 -0700 Subject: [PATCH 834/934] Changes to clarify meaning of normalization --- query-languages/m/m-working-with-case.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index a0a66514b..85d336d86 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -469,7 +469,7 @@ In this case, it might be more convenient to convert the text to a consistent ca ## Power BI Desktop normalization -Power Query M is case sensitive and distinguishes between different capitalizations of the same text. For example, "Foo", "foo", and "FOO" are treated as different. However, when the data is loaded into Power BI Desktop, the text values are normalized, meaning Power BI Desktop treats them as the same value regardless of their capitalization. Therefore, if you need to maintain case sensitivity in your data, you should handle the data in Power Query before loading the data to Power BI Desktop. +Power Query M is case sensitive and distinguishes between different capitalizations of the same text. For example, "Foo", "foo", and "FOO" are treated as different. However, when the data is loaded into Power BI Desktop, the text values are normalized, meaning Power BI Desktop treats them as the same value regardless of their capitalization. Therefore, if you need to transform data while maintaining case sensitivity in your data, you should handle and data transformation in Power Query before loading the data to Power BI Desktop. For example, the following table in Power Query shows different cases in each row of the table. @@ -479,4 +479,4 @@ When this table is loaded into Power BI Desktop, the text values become normaliz :::image type="content" source="media/table-loaded-power-bi-desktop.png" alt-text="Screenshot of the same table loaded in Power BI Desktop, with the case of each word normalized."::: -In this case, the first instance of "foo" and the first instance of "too" determine the case of "foo" and "too" throughout the rest of the rows in the table. +The first instance of "foo" and the first instance of "too" determine the case of "foo" and "too" throughout the rest of the rows in the Power BI Desktop table. In this example, all instances of "foo" are normalized to the value "Foo" and all instances of "too" are normalized to the value "TOO". From 8b8a29e9c23afc002a342ed5e2fa1b0b5184da2f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 9 May 2025 15:04:38 -0700 Subject: [PATCH 835/934] Added related content to List.Dates --- query-languages/m/list-dates.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/query-languages/m/list-dates.md b/query-languages/m/list-dates.md index cfa281b2d..4d2d01849 100644 --- a/query-languages/m/list-dates.md +++ b/query-languages/m/list-dates.md @@ -17,7 +17,7 @@ Returns a list of `date` values of size `count`, starting at `start`. The given ## Example 1 -Create a list of 5 values starting from New Year's Eve (#date(2011, 12, 31)) incrementing by 1 day(#duration(1, 0, 0, 0)). +Create a list of 5 values starting from New Year's Eve (#date(2011, 12, 31)) incrementing by 1 day (#duration(1, 0, 0, 0)). **Usage** @@ -36,3 +36,7 @@ List.Dates(#date(2011, 12, 31), 5, #duration(1, 0, 0, 0)) #date(2012, 1, 4) } ``` + +## Related content + +[#duration](sharpduration.md) From 9994ff76bc9b02a68e04d6b287e858d50e8fac97 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 13 May 2025 07:53:03 -0700 Subject: [PATCH 836/934] Added June update to Power Query M reference --- query-languages/m/csv-document.md | 3 ++- query-languages/m/docfx.json | 2 +- query-languages/m/table-transformcolumntypes.md | 6 ++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 6dfb23e7c..5264b0da1 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -31,7 +31,8 @@ If a record is specified for `columns` (and `delimiter`, `extraValues`, and `enc * `QuoteStyle`: Specifies how quoted line breaks are handled. * [QuoteStyle.Csv](quotestyle-type.md) (default): Quoted line breaks are treated as part of the data, not as the end of the current row. * [QuoteStyle.None](quotestyle-type.md): All line breaks are treated as the end of the current row, even when they occur inside a quoted value. -* `IncludeByteOrderMark`: A logical value indicating whether to include a Byte Order Mark (BOM) at the beginning of the CSV output. When set to true, the BOM is written (for example, UTF-8 BOM: `0xEF 0xBB 0xBF`); when set to false, no BOM is included. This option is applicable only in output scenarios. +* `IncludeByteOrderMark`: A logical value indicating whether to include a Byte Order Mark (BOM) at the beginning of the CSV output. When set to true, the BOM is written (for example, UTF-8 BOM: `0xEF 0xBB 0xBF`); when set to false, no BOM is included. This option is applicable only in output scenarios. Default is `false`. +* `ExtraValues`: Refer to [ExtraValues.Type](extravalues-type.md) for the supported values of `ExtraValues`. ## Example 1 diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 4f75222e7..7b6c498aa 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "3/18/2025", + "ms.date": "5/13/2025", "no-loc": [ "#binary", "#date", diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 6ed6e053a..9a6d288a4 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -17,11 +17,13 @@ Returns a table by applying the transform operations to the specified columns us * `table`: The input table to transform. * `typeTransformations`: The type transformations to apply. The format for a single transformation is { column name, type value }. A list of transformations can be used to change the types of more than one column at a time. If a column doesn't exist, an error is raised. -* `culture`: (Optional) The culture to use when transforming the column types (for example, "en-US"). +* `culture`: (Optional) The culture to use when transforming the column types (for example, "en-US"). If a record is specified for `culture`, it can contain the following fields: + * `Culture`: The culture to use when transforming the column types (for example, "en-US"). + * `MissingField`: If a column doesn't exist, an error is raised unless this field provides an alternative behavior (for example, [MissingField.UseNull](missingfield-type.md) or [MissingField.Ignore](missingfield-type.md)). The type value in the `typeTransformations` parameter can be `any`, all of the `number` types, `text`, all of the `date`, `time`, `datetime`, `datetimezone`, and `duration` types, `logical`, or `binary`. The `list`, `record`, `table`, or `function` types aren't valid for this parameter. -For each column listed in `typeTransformations`, the ".From" method corresponding to the specified type value is normally used to perform the transformation. For example, if a `Currency.Type` type value is given for a column, the transformation function `Currency.From` is applied to each value in that column. +For each column listed in `typeTransformations`, the ".From" method corresponding to the specified type value is normally used to perform the transformation. For example, if a [Currency.Type](type-conversion.md#commonly-used-types) type value is given for a column, the transformation function [Currency.From](currency-from.md) is applied to each value in that column. ## Example 1 From d4592273520d59420b2b135b3a4d34e70176b019 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 14 May 2025 07:02:23 -0700 Subject: [PATCH 837/934] Minor updates to true and false --- query-languages/m/csv-document.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 5264b0da1..0aa101199 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -31,7 +31,7 @@ If a record is specified for `columns` (and `delimiter`, `extraValues`, and `enc * `QuoteStyle`: Specifies how quoted line breaks are handled. * [QuoteStyle.Csv](quotestyle-type.md) (default): Quoted line breaks are treated as part of the data, not as the end of the current row. * [QuoteStyle.None](quotestyle-type.md): All line breaks are treated as the end of the current row, even when they occur inside a quoted value. -* `IncludeByteOrderMark`: A logical value indicating whether to include a Byte Order Mark (BOM) at the beginning of the CSV output. When set to true, the BOM is written (for example, UTF-8 BOM: `0xEF 0xBB 0xBF`); when set to false, no BOM is included. This option is applicable only in output scenarios. Default is `false`. +* `IncludeByteOrderMark`: A logical value indicating whether to include a Byte Order Mark (BOM) at the beginning of the CSV output. When set to `true`, the BOM is written (for example, UTF-8 BOM: `0xEF 0xBB 0xBF`); when set to `false`, no BOM is included. This option is applicable only in output scenarios. Default is `false`. * `ExtraValues`: Refer to [ExtraValues.Type](extravalues-type.md) for the supported values of `ExtraValues`. ## Example 1 From 013c860c1269dcc0ceb7e82020469afaddbc1578 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 14 May 2025 07:11:43 -0700 Subject: [PATCH 838/934] Removed duplicate link in related content --- query-languages/m/table-transformcolumntypes.md | 1 - 1 file changed, 1 deletion(-) diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 9a6d288a4..40018c571 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -133,4 +133,3 @@ in * [Types and type conversion](type-conversion.md) * [How culture affects text formatting](how-culture-affects-text-formatting.md) -* [Types and type conversion](type-conversion.md) From aabb64594b80a1da53f9e36c08cf06eefeab4a14 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 14 May 2025 12:17:09 -0700 Subject: [PATCH 839/934] Added review comments to article --- query-languages/m/m-working-with-case.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index 85d336d86..514810d2f 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -1,17 +1,17 @@ --- description: "Learn more about: Capitalization in Power Query M" title: "Capitalization of text in Power Query M" -ms.date: 4/25/2025 +ms.date: 5/14/2025 ms.subservice: m-background --- # Capitalization in Power Query M -One of the problems of presenting data is that some text can be messy. One example is that names and places could exist in a database with random capitalization of their letters. This could cause a problem when manipulating the data because the Power Query M formula language is case-sensitive. +Working with text data can sometimes be messy. For example, the name of the city Redmond might be represented in a database using different casings ("Redmond", "redmond", and "REDMOND"). This could cause a problem when transforming the data in Power Query because the Power Query M formula language is case-sensitive. -To clean data with random capitalization, Power Query M provides functions to change the case of the data to be examined. There are methods to convert data to lower case (abc), upper case (ABC), or proper case (Abc). In addition, Power Query M also provides several ways to ignore the data's case altogether. +Thankfully, Power Query M provides functions to clean and normalize the case of text data. There are functions to convert text to lower case (abc), upper case (ABC), or proper case (Abc). In addition, Power Query M also provides several ways to ignore case altogether. -In this article, you learn how to change the capitalization of words in text, lists, and tables. In addition, this article also demonstrates various ways of ignoring case while manipulating data in text, lists, and tables. Also, sorting according to case is also described. +In this article, you learn how to change the capitalization of words in text, lists, and tables. You also learn various ways of ignoring case while manipulating data in text, lists, and tables. In addition, you learn how to sort according to case. ## Changing case in text From c87b83242baca4f4780c11a05ebb656fafdf93a1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 14 May 2025 12:51:54 -0700 Subject: [PATCH 840/934] Added more reviewer's comments --- query-languages/m/m-working-with-case.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index 514810d2f..8a629f5a9 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -11,7 +11,7 @@ Working with text data can sometimes be messy. For example, the name of the city Thankfully, Power Query M provides functions to clean and normalize the case of text data. There are functions to convert text to lower case (abc), upper case (ABC), or proper case (Abc). In addition, Power Query M also provides several ways to ignore case altogether. -In this article, you learn how to change the capitalization of words in text, lists, and tables. You also learn various ways of ignoring case while manipulating data in text, lists, and tables. In addition, you learn how to sort according to case. +This article shows you how to change the capitalization of words in text, lists, and tables. It also describes various ways to ignore case while manipulating data in text, lists, and tables. In addition, this article discusses how to sort according to case. ## Changing case in text @@ -328,7 +328,7 @@ This code produces the following output: :::image type="content" source="media/list-distinct.png" alt-text="Screenshot of the list created by the list distinct function while ignoring case."::: -In the previous example, the output displays the case of the first unique item found in the list. So, although there are two apples (`ApPle` and `APPLE`), only the first example found is displayed. +In the previous example, the output displays the case of the first unique item found in the list. So, although there are two apples (`ApPlE` and `APPLE`), only the first example found is displayed. The following example keeps only unique items while ignoring case, but also returns all lower case results. @@ -469,7 +469,7 @@ In this case, it might be more convenient to convert the text to a consistent ca ## Power BI Desktop normalization -Power Query M is case sensitive and distinguishes between different capitalizations of the same text. For example, "Foo", "foo", and "FOO" are treated as different. However, when the data is loaded into Power BI Desktop, the text values are normalized, meaning Power BI Desktop treats them as the same value regardless of their capitalization. Therefore, if you need to transform data while maintaining case sensitivity in your data, you should handle and data transformation in Power Query before loading the data to Power BI Desktop. +Power Query M is case sensitive and distinguishes between different capitalizations of the same text. For example, "Foo", "foo", and "FOO" are treated as different. However, when the data is loaded into Power BI Desktop, the text values are normalized, meaning Power BI Desktop treats them as the same value regardless of their capitalization. Therefore, if you need to transform data while maintaining case sensitivity in your data, you should handle data transformation in Power Query before loading the data to Power BI Desktop. For example, the following table in Power Query shows different cases in each row of the table. From 3e96b8d8ff3f47e1ca61c8e03dfb018eb420cf07 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 20 May 2025 08:25:11 -0700 Subject: [PATCH 841/934] Update Table.SplitColumn about and examples --- query-languages/m/table-splitcolumn.md | 152 ++++++++++++++++++++++--- 1 file changed, 138 insertions(+), 14 deletions(-) diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index dd1a4adee..1230b0616 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -13,33 +13,157 @@ Table.SplitColumn(table as table, sourceColumn as text, splitte ## About -Splits the specified columns into a set of additional columns using the specified splitter function. +Splits the specified column into a set of additional columns using the specified splitter function. + +* **table**: The table containing the column to split. +* **sourceColumn**: The name of the column to split. +* **splitter**: The [splitter function](splitter-functions.md) used to split the column (for example, [Splitter.SplitTextByDelimiter](splitter-splittextbydelimiter.md) or [Splitter.SplitTextByPosition](splitter-splittextbyposition.md)). +* **columnNamesOrNumber**: Either a list of new column names to create, or the number of new columns. +* **default**: Overrides the value used when there aren't enough split values to fill all of the new columns. The default for this parameter is `null`. +* **extraColumns**: Specifies what to do if there might be more split values than the number of new columns. You can pass an [ExtraValues.Type](extravalues-type.md) enumeration value to this parameter. The default is `ExtraValues.Ignore`. ## Example 1 -Split the [Name] column at position of "i" into two columns +Split the name column into first name and last name. + +**Usage** + +```powerquery-m +let + Source = #table(type table[CustomerID = number, Name = text, Phone = text], + { + {1, "Bob White", "123-4567"}, + {2, "Jim Smith", "987-6543"}, + {3, "Paul", "543-7890"}, + {4, "Cristina Best", "232-1550"} + }), + SplitColumns = Table.SplitColumn( + Source, + "Name", + Splitter.SplitTextByDelimiter(" ")) +in + SplitColumns +``` + +**Output** + +```powerquery-m +#table(type table[CustomerID = number, Name.1 = text, Name.2 = text, Phone = text], +{ + {1, "Bob", "White", "123-4567"}, + {2, "Jim", "Smith", "987-6543"}, + {3, "Paul", null, "543-7890"}, + {4, "Cristina", "Best", "232-1550"} +}) +``` + +## Example 2 + +Split the name column into first name and last name, then rename the new columns. + +**Usage** + +```powerquery-m +let + Source = #table(type table[CustomerID = number, Name = text, Phone = text], + { + {1, "Bob White", "123-4567"}, + {2, "Jim Smith", "987-6543"}, + {3, "Paul", "543-7890"}, + {4, "Cristina Best", "232-1550"} + }), + SplitColumns = Table.SplitColumn( + Source, + "Name", + Splitter.SplitTextByDelimiter(" "), + {"First Name", "Last Name"}) +in + SplitColumns +``` + +**Output** + +```powerquery-m +#table(type table[CustomerID = number, First Name = text, Last Name = text, Phone = text], +{ + {1, "Bob", "White", "123-4567"}, + {2, "Jim", "Smith", "987-6543"}, + {3, "Paul", null, "543-7890"}, + {4, "Cristina", "Best", "232-1550"} +}) +``` + +## Example 3 + +Split the name column into first name and last name, rename the new columns, and fill in any blanks with "-No Entry-". + +**Usage** + +```powerquery-m +let + Source = #table(type table[CustomerID = number, Name = text, Phone = text], + { + {1, "Bob White", "123-4567"}, + {2, "Jim Smith", "987-6543"}, + {3, "Paul", "543-7890"}, + {4, "Cristina Best", "232-1550"} + }), + SplitColumns = Table.SplitColumn( + Source, + "Name", + Splitter.SplitTextByDelimiter(" "), + {"First Name", "Last Name"}, + "-No Entry-") +in + SplitColumns +``` + +**Output** + +```powerquery-m +#table(type table[CustomerID = number, First Name = text, Last Name = text, Phone = text], +{ + {1, "Bob", "White", "123-4567"}, + {2, "Jim", "Smith", "987-6543"}, + {3, "Paul", "-No Entry-", "543-7890"}, + {4, "Cristina", "Best", "232-1550"} +}) +``` + +## Example 4 + +Split the name column into first name and last name, then rename the new columns. Because there might be more values than the number of available columns, make the last name column a list that includes all values after the first name. **Usage** ```powerquery-m let - Customers = Table.FromRecords({ - [CustomerID = 1, Name = "Bob", Phone = "123-4567"], - [CustomerID = 2, Name = "Jim", Phone = "987-6543"], - [CustomerID = 3, Name = "Paul", Phone = "543-7890"], - [CustomerID = 4, Name = "Cristina", Phone = "232-1550"] - }) + Source = #table(type table[CustomerID = number, Name = text, Phone = text], + { + {1, "Bob White", "123-4567"}, + {2, "Jim Smith", "987-6543"}, + {3, "Paul Green", "543-7890"}, + {4, "Cristina J. Best", "232-1550"} + }), + SplitColumns = Table.SplitColumn( + Source, + "Name", + Splitter.SplitTextByDelimiter(" "), + {"First Name", "Last Name"}, + null, + ExtraValues.List) in - Table.SplitColumn(Customers, "Name", Splitter.SplitTextByDelimiter("i"), 2) + SplitColumns ``` **Output** ```powerquery-m -Table.FromRecords({ - [CustomerID = 1, Name.1 = "Bob", Name.2 = null, Phone = "123-4567"], - [CustomerID = 2, Name.1 = "J", Name.2 = "m", Phone = "987-6543"], - [CustomerID = 3, Name.1 = "Paul", Name.2 = null, Phone = "543-7890"], - [CustomerID = 4, Name.1 = "Cr", Name.2 = "st", Phone = "232-1550"] +#table(type table[CustomerID = number, First Name = text, Last Name = text, Phone = text], +{ + {1, "Bob", {"White"}, "123-4567"}, + {2, "Jim", {"Smith"}, "987-6543"}, + {3, "Paul", {"Green"}, "543-7890"}, + {4, "Cristina", {"J.", "Best"}, "232-1550"} }) ``` From b1514e649dd0d8ee3e2fb8ee7523a57146e93c22 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 20 May 2025 08:30:55 -0700 Subject: [PATCH 842/934] Fixed broken link --- query-languages/m/table-splitcolumn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index 1230b0616..151db86f8 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -17,7 +17,7 @@ Splits the specified column into a set of additional columns using the specified * **table**: The table containing the column to split. * **sourceColumn**: The name of the column to split. -* **splitter**: The [splitter function](splitter-functions.md) used to split the column (for example, [Splitter.SplitTextByDelimiter](splitter-splittextbydelimiter.md) or [Splitter.SplitTextByPosition](splitter-splittextbyposition.md)). +* **splitter**: The [splitter function](splitter-functions.md) used to split the column (for example, [Splitter.SplitTextByDelimiter](splitter-splittextbydelimiter.md) or [Splitter.SplitTextByPositions](splitter-splittextbypositions.md)). * **columnNamesOrNumber**: Either a list of new column names to create, or the number of new columns. * **default**: Overrides the value used when there aren't enough split values to fill all of the new columns. The default for this parameter is `null`. * **extraColumns**: Specifies what to do if there might be more split values than the number of new columns. You can pass an [ExtraValues.Type](extravalues-type.md) enumeration value to this parameter. The default is `ExtraValues.Ignore`. From cefa15e8f20bf6d452b57964191f3419140772f6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 20 May 2025 11:36:04 -0700 Subject: [PATCH 843/934] Updated List.Contains* about and examples --- query-languages/m/list-contains.md | 30 ++++++++++++++++--- query-languages/m/list-containsall.md | 40 +++++++++++++++++++++++-- query-languages/m/list-containsany.md | 42 +++++++++++++++++++++++++-- 3 files changed, 103 insertions(+), 9 deletions(-) diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index a4b74cbd7..5aee6277f 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -13,11 +13,15 @@ List.Contains(list as list, value as any, optional equationCrit ## About -Indicates whether the list `list` contains the value `value`. Returns true if value is found in the list, false otherwise. An optional equation criteria value, `equationCriteria`, can be specified to control equality testing. +Indicates whether the list contains the specified value. Returns `true` if the value is found in the list, `false` otherwise. + +* `list`: The list to search. +* `value`: The value to search for in the list. +* `equationCriteria`: (Optional) The comparer used to determine if the two values are equal. ## Example 1 -Find if the list {1, 2, 3, 4, 5} contains 3. +Determine if the list {1, 2, 3, 4, 5} contains 3. **Usage** @@ -31,7 +35,7 @@ List.Contains({1, 2, 3, 4, 5}, 3) ## Example 2 -Find if the list {1, 2, 3, 4, 5} contains 6. +Determine if the list {1, 2, 3, 4, 5} contains 6. **Usage** @@ -45,7 +49,7 @@ List.Contains({1, 2, 3, 4, 5}, 6) ## Example 3 -Ignoring case, find if the list contains "rhubarb". +Ignoring case, determine if the list contains "rhubarb". **Usage** @@ -60,6 +64,24 @@ List.Contains({"Pears", "Bananas", "Rhubarb", "Peaches"}, `true` +## Example 4 + +Determine if the list contains a date of April 8, 2022. + +**Usage** + +```powerquery-m +let + Source = {#date(2024, 2, 23), #date(2023, 12, 2), #date(2022, 4, 8), #date(2021, 7, 6)}, + ContainsDate = List.Contains(Source, #date(2022, 4, 8)) +in + ContainsDate +``` + +**Output + +`true` + ## Related content [Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index 560904c8b..4f54ee16f 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -13,7 +13,11 @@ List.ContainsAll(list as list, values as list, optional equatio ## About -Indicates whether the list `list` includes all the values in another list, `values`. Returns true if value is found in the list, false otherwise. An optional equation criteria value, `equationCriteria`, can be specified to control equality testing. +Indicates whether the list includes all of the values from another list. Returns `true` if all the values are found in the list, `false` otherwise. + +`list`: The list to search. +`values`: The list of values to search for in the first list. +`equationCriteria`: (Optional) The comparer used to determine if the two values are equal. ## Example 1 @@ -31,7 +35,7 @@ List.ContainsAll({1, 2, 3, 4, 5}, {3, 4}) ## Example 2 -Find out if the list {1, 2, 3, 4, 5} contains 5 and 6. +Determine if the list {1, 2, 3, 4, 5} contains 5 and 6. **Usage** @@ -43,6 +47,38 @@ List.ContainsAll({1, 2, 3, 4, 5}, {5, 6}) `false` +## Example 3 + +Determine if the list contains a dog and a horse, while ignoring case. + +**Usage** + +```powerquery-m +List.ContainsAll({"dog", "cat", "racoon", "horse", "rabbit"}, {"DOG", "Horse"}, Comparer.OrdinalIgnoreCase) +``` + +**Output** + +`true` + +## Example 4 + +Determine if the list contains the dates April 8, 2022 and July 6, 2021. + +**Usage** + +```powerquery-m +let + Source = {#date(2024, 2, 23), #date(2023, 12, 2), #date(2022, 4, 8), #date(2021, 7, 6)}, + ContainsDates = List.ContainsAll(Source, {#date(2022, 4, 8), #date(2021, 7, 6)}) +in + ContainsDates +``` + +**Output + +`true` + ## Related content [Equation criteria](list-functions.md#equation-criteria) diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index 8f51d529c..29a04811b 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -13,11 +13,15 @@ List.ContainsAny(list as list, values as list, optional equatio ## About -Indicates whether the list `list` includes any of the values in another list, `values`. Returns true if value is found in the list, false otherwise. An optional equation criteria value, `equationCriteria`, can be specified to control equality testing. +Indicates whether the list contains any of the values from another list. Returns `true` if the values are found in the list, `false` otherwise. + +`list`: The list to search. +`values`: The list of values to search for in the first list. +`equationCriteria`: (Optional) The comparer used to determine if the two values are equal. ## Example 1 -Find out if the list {1, 2, 3, 4, 5} contains 3 or 9. +Determine if the list {1, 2, 3, 4, 5} contains 3 or 9. **Usage** @@ -31,7 +35,7 @@ List.ContainsAny({1, 2, 3, 4, 5}, {3, 9}) ## Example 2 -Find out if the list {1, 2, 3, 4, 5} contains 6 or 7. +Determine if the list {1, 2, 3, 4, 5} contains 6 or 7. **Usage** @@ -43,6 +47,38 @@ List.ContainsAny({1, 2, 3, 4, 5}, {6, 7}) `false` +## Example 3 + +Determine if the list contains a horse or an owl, while ignoring case. + +**Usage** + +```powerquery-m +List.ContainsAny({"dog", "cat", "racoon", "horse", "rabbit"}, {"Horse", "OWL"}, Comparer.OrdinalIgnoreCase) +``` + +**Output** + +`true` + +## Example 4 + +Determine if the list contains a date of either April 8, 2022 or January 12, 2021. + +**Usage** + +```powerquery-m +let + Source = {#date(2024, 2, 23), #date(2023, 12, 2), #date(2022, 4, 8), #date(2021, 7, 6)}, + ContainsDates = List.ContainsAny(Source, {#date(2022, 4, 8), #date(2021, 1, 11)}) +in + ContainsDates +``` + +**Output + +`true` + ## Related content [Equation criteria](list-functions.md#equation-criteria) From 2ee9d0741002f638815ecafc91c75450047a73e1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 20 May 2025 12:07:43 -0700 Subject: [PATCH 844/934] Updates after review --- query-languages/m/list-contains.md | 4 ++-- query-languages/m/list-containsall.md | 10 +++++----- query-languages/m/list-containsany.md | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index 5aee6277f..7a4752f39 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -66,14 +66,14 @@ List.Contains({"Pears", "Bananas", "Rhubarb", "Peaches"}, ## Example 4 -Determine if the list contains a date of April 8, 2022. +Determine if the list contains a date April 8, 2022. **Usage** ```powerquery-m let Source = {#date(2024, 2, 23), #date(2023, 12, 2), #date(2022, 4, 8), #date(2021, 7, 6)}, - ContainsDate = List.Contains(Source, #date(2022, 4, 8)) + ContainsDate = List.Contains(Source, Date.From("4/8/2022")) in ContainsDate ``` diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index 4f54ee16f..aa6de8ec6 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -13,11 +13,11 @@ List.ContainsAll(list as list, values as list, optional equatio ## About -Indicates whether the list includes all of the values from another list. Returns `true` if all the values are found in the list, `false` otherwise. +Indicates whether the list includes all the values from another list. Returns `true` if all the values are found in the list, `false` otherwise. -`list`: The list to search. -`values`: The list of values to search for in the first list. -`equationCriteria`: (Optional) The comparer used to determine if the two values are equal. +* `list`: The list to search. +* `values`: The list of values to search for in the first list. +* `equationCriteria`: (Optional) The comparer used to determine if the two values are equal. ## Example 1 @@ -75,7 +75,7 @@ in ContainsDates ``` -**Output +**Output** `true` diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index 29a04811b..16f5ebc3d 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -15,9 +15,9 @@ List.ContainsAny(list as list, values as list, optional equatio Indicates whether the list contains any of the values from another list. Returns `true` if the values are found in the list, `false` otherwise. -`list`: The list to search. -`values`: The list of values to search for in the first list. -`equationCriteria`: (Optional) The comparer used to determine if the two values are equal. +* `list`: The list to search. +* `values`: The list of values to search for in the first list. +* `equationCriteria`: (Optional) The comparer used to determine if the two values are equal. ## Example 1 @@ -70,12 +70,12 @@ Determine if the list contains a date of either April 8, 2022 or January 12, 202 ```powerquery-m let Source = {#date(2024, 2, 23), #date(2023, 12, 2), #date(2022, 4, 8), #date(2021, 7, 6)}, - ContainsDates = List.ContainsAny(Source, {#date(2022, 4, 8), #date(2021, 1, 11)}) + ContainsDates = List.ContainsAny(Source, {Date.From("Apr 8, 2022"), Date.From("Jan 11, 2021")}) in ContainsDates ``` -**Output +**Output** `true` From 08c4bb9fb17456f66a31362d29a60baf9fc52352 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 20 May 2025 12:29:50 -0700 Subject: [PATCH 845/934] Updated Record.ReorderFields about and examples --- query-languages/m/record-functions.md | 2 +- query-languages/m/record-reorderfields.md | 31 ++++++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/query-languages/m/record-functions.md b/query-languages/m/record-functions.md index 26f73855e..1ada8dc32 100644 --- a/query-languages/m/record-functions.md +++ b/query-languages/m/record-functions.md @@ -29,7 +29,7 @@ These functions create and manipulate record values. |[Record.Combine](record-combine.md)|Combines the records in a list.| |[Record.RemoveFields](record-removefields.md)|Removes the specified field(s) from the input record.| |[Record.RenameFields](record-renamefields.md)|Returns a new record that renames the fields specified. The resultant fields will retain their original order. This function supports swapping and chaining field names. However, all target names plus remaining field names must constitute a unique set or an error will occur.| -|[Record.ReorderFields](record-reorderfields.md)|Returns a new record that reorders fields relative to each other. Any fields not specified remain in their original locations. Requires two or more fields.| +|[Record.ReorderFields](record-reorderfields.md)|Reorders fields in a record to match the order of a list of field names.| |[Record.TransformFields](record-transformfields.md)|Transforms fields by applying transformOperations. For more more information about values supported by transformOperations, go to [Parameter Values](#parameter-values).| ## Selection diff --git a/query-languages/m/record-reorderfields.md b/query-languages/m/record-reorderfields.md index 630a5736e..7f4e35d82 100644 --- a/query-languages/m/record-reorderfields.md +++ b/query-languages/m/record-reorderfields.md @@ -13,7 +13,14 @@ Record.ReorderFields(record as record, fieldOrder as list, optiona ## About -Returns a record after reordering the fields in `record` in the order of fields specified in list `fieldOrder`. Field values are maintained and fields not listed in `fieldOrder` are left in their original position. +Reorders fields in a record to match the order of a list of field names. + +* `record`: The record containing the fields to reorder. +* `fieldOrder`: A list containing the new order of the fields to apply to the record. Field values are maintained and fields not listed in this parameter are left in their original positions. +* `missingField`: Specifies the expected action for missing values in a row that contains fewer fields than expected. The following values are valid: + * `MissingField.Error`: (Default) Indicates that missing fields should result in an error. If no value is entered for the `missingField` parameter, this value is used. + * `MissingField.Ignore`: Indicates that missing fields should be ignored. + * `MissingField.UseNull`: Indicates that missing fields should be included as `null` values. ## Example 1 @@ -31,3 +38,25 @@ Record.ReorderFields( **Output** `[OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0]` + +## Example 2 + +Reorder some of the fields in the record and include `null` for any missing fields. + +**Usage** + +```powerquery-m +let + Source = [CustomerID = 3, First Name = "Paul", Phone = "543-7890", Purchase = "Fishing Rod"], + reorderedRecord = Record.ReorderFields( + Source, + {"Purchase", "Last Name", "First Name"}, + MissingField.UseNull + ) +in + reorderedRecord +``` + +**Output** + +`[CustomerID = 3, Purchase = "Fishing Rod", Phone = "543-7890", Last Name = null, First Name = "Paul"]` From b711cd077406d4f6936b0233b26151971a611c9e Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 21 May 2025 12:27:16 -0700 Subject: [PATCH 846/934] Fixed parameter formatting in Table.SplitColumn --- query-languages/m/table-splitcolumn.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index 151db86f8..df2ff4f2a 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -15,12 +15,12 @@ Table.SplitColumn(table as table, sourceColumn as text, splitte Splits the specified column into a set of additional columns using the specified splitter function. -* **table**: The table containing the column to split. -* **sourceColumn**: The name of the column to split. -* **splitter**: The [splitter function](splitter-functions.md) used to split the column (for example, [Splitter.SplitTextByDelimiter](splitter-splittextbydelimiter.md) or [Splitter.SplitTextByPositions](splitter-splittextbypositions.md)). -* **columnNamesOrNumber**: Either a list of new column names to create, or the number of new columns. -* **default**: Overrides the value used when there aren't enough split values to fill all of the new columns. The default for this parameter is `null`. -* **extraColumns**: Specifies what to do if there might be more split values than the number of new columns. You can pass an [ExtraValues.Type](extravalues-type.md) enumeration value to this parameter. The default is `ExtraValues.Ignore`. +* `table`: The table containing the column to split. +* `sourceColumn`: The name of the column to split. +* `splitter`: The [splitter function](splitter-functions.md) used to split the column (for example, [Splitter.SplitTextByDelimiter](splitter-splittextbydelimiter.md) or [Splitter.SplitTextByPositions](splitter-splittextbypositions.md)). +* `columnNamesOrNumber`: Either a list of new column names to create, or the number of new columns. +* `default`: Overrides the value used when there aren't enough split values to fill all of the new columns. The default for this parameter is `null`. +* `extraColumns`: Specifies what to do if there might be more split values than the number of new columns. You can pass an [ExtraValues.Type](extravalues-type.md) enumeration value to this parameter. The default is `ExtraValues.Ignore`. ## Example 1 From 0ddf06eb11230a0b2f94e53a984f7660dfd30bb0 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 22 May 2025 07:54:46 -0700 Subject: [PATCH 847/934] Add new content to Json.Document article --- query-languages/m/json-document.md | 77 ++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/query-languages/m/json-document.md b/query-languages/m/json-document.md index c6810bcaf..88496580e 100644 --- a/query-languages/m/json-document.md +++ b/query-languages/m/json-document.md @@ -14,3 +14,80 @@ Json.Document(jsonText as any, optional encoding as nullable numbe ## About Returns the content of the JSON document. + +* `jsonText`: The content of the JSON document. The value of this parameter can be text or a binary value returned by a function like [File.Content](file-contents.md). +* `encoding`: A [TextEncoding.Type](textencoding-type.md) that specifies the encoding used in the JSON document. If `encoding` is omitted, UTF8 is used. + +## Example 1 + +Returns the content of the specified JSON text as a record. + +**Usage** + +```powerquery-m +let + Source = "{ + ""project"": ""Contosoware"", + ""description"": ""A comprehensive initiative aimed at enhancing digital presence."", + ""components"": [ + ""Website Development"", + ""CRM Implementation"", + ""Mobile Application"" + ] + }", + jsonDocument = Json.Document(Source) +in + jsonDocument +``` + +**Output** + +```powerquery-m +[ + project = "Contosoware", + description = "A comprehensive initiative aimed at enhancing digital presence." + components = + { + "Website Development", + "CRM Implementation", + "Mobile Application" + } +] +``` + +## Example 2 + +Returns the content of a local JSON file. + +**Usage** + +```powerquery-m +let + Source = (Json.Document( + File.Contents("C:\test-examples\JSON\Contosoware.json") + ) +in + Source +``` + +**Output** + +A record, list, or primitive value representing the JSON data contained in the file + +## Example 3 + +Returns the content of an online UTF16 encoded JSON file. + +**Usage** + +```powerquery-m +let + Source = Json.Document( + Web.Contents("htts://contoso.com/products/Contosoware.json"), + TextEncoding.Utf16) + ) +``` + +**Output** + +A record, list, or primitive value representing the JSON UTF16 data contained in the file From 5d83e27df792f28916be5dd55b695500abe59cbe Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 22 May 2025 08:21:43 -0700 Subject: [PATCH 848/934] Added new info to List.Matches* functions --- query-languages/m/list-matchesall.md | 41 ++++++++++++++++++++++++- query-languages/m/list-matchesany.md | 45 ++++++++++++++++++++++++++-- 2 files changed, 82 insertions(+), 4 deletions(-) diff --git a/query-languages/m/list-matchesall.md b/query-languages/m/list-matchesall.md index be47488dd..c1ce9f7dc 100644 --- a/query-languages/m/list-matchesall.md +++ b/query-languages/m/list-matchesall.md @@ -13,7 +13,10 @@ List.MatchesAll(list as list, condition as function) as logical ## About -Returns `true` if the condition function, `condition`, is satisfied by all values in the list `list`, otherwise returns `false`. +Returns `true` if the condition function is satisfied by all of the values in the list, otherwise returns `false`. + +* `list`: The list containing the values to check. +* `condition`: The condition to check against the values in the list. ## Example 1 @@ -42,3 +45,39 @@ List.MatchesAll({1, 2, 3}, each _ > 10) **Output** `false` + +## Example 3 + +Determine if all the text values in the list contain "anna" while ignoring case. + +**Usage** + +```powerquery-m +let + Source = {"Savannah", "Annabelle", "Annals", "wannabe", "MANNA"}, + Result = List.MatchesAll(Source, each Text.Contains(_, "anna", Comparer.OrdinalIgnoreCase)) +in + Result +``` + +**Output** + +`true` + +## Example 4 + +Determine if all the dates contain the year 2021. + +**Usage** + +```powerquery-m +let + Source = {#date(2021, 11, 28), #date(2021, 1, 14), #date(2021, 12, 31), #date(2021, 7, 6)}, + Result = List.MatchesAll(Source, each Date.Year(_) = 2021) +in + Result +``` + +**Output** + +`true` diff --git a/query-languages/m/list-matchesany.md b/query-languages/m/list-matchesany.md index 793de3987..51a12dbae 100644 --- a/query-languages/m/list-matchesany.md +++ b/query-languages/m/list-matchesany.md @@ -13,11 +13,14 @@ List.MatchesAny(list as list, condition as function) as logical ## About -Returns `true` if the condition function, `condition`, is satisfied by any of values in the list `list`, otherwise returns `false`. +Returns `true` if the condition function is satisfied by any of the values in the list, otherwise returns `false`. + +* `list`: The list containing the values to check. +* `condition`: The condition to check against the values in the list. ## Example 1 -Find if any of the values in the list {9, 10, 11} are greater than 10. +Determine if any of the values in the list {9, 10, 11} are greater than 10. **Usage** @@ -31,7 +34,7 @@ List.MatchesAny({9, 10, 11}, each _ > 10) ## Example 2 -Find if any of the values in the list {1, 2, 3} are greater than 10. +Determine if any of the values in the list {1, 2, 3} are greater than 10. **Usage** @@ -42,3 +45,39 @@ List.MatchesAny({1, 2, 3}, each _ > 10) **Output** `false` + +## Example 3 + +Determine if any of the text values in the list contain "cat" while ignoring case. + +**Usage** + +```powerquery-m +let + Source = {"A Brown Fox", "A Loyal Dog", "A Curious Cat", "A Wild Horse", "A Rascally Rabbit"}, + Result = List.MatchesAny(Source, each Text.Contains(_, "cat", Comparer.OrdinalIgnoreCase)) +in + Result +``` + +**Output** + +`true` + +## Example 4 + +Determine if any of the dates contain the year 2021. + +**Usage** + +```powerquery-m +let + Source = {#date(2024, 11, 28), #date(2023, 1, 14), #date(2021, 12, 31), #date(2025, 7, 6)}, + Result = List.MatchesAny(Source, each Date.Year(_) = 2021) +in + Result +``` + +**Output** + +`true` From 57839ea17d4c325abcb1077f8487b33bad8b9fff Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 22 May 2025 12:41:46 -0700 Subject: [PATCH 849/934] Updated per review comment --- query-languages/m/m-working-with-case.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index 8a629f5a9..78c9dfbda 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -1,13 +1,13 @@ --- description: "Learn more about: Capitalization in Power Query M" title: "Capitalization of text in Power Query M" -ms.date: 5/14/2025 +ms.date: 5/22/2025 ms.subservice: m-background --- # Capitalization in Power Query M -Working with text data can sometimes be messy. For example, the name of the city Redmond might be represented in a database using different casings ("Redmond", "redmond", and "REDMOND"). This could cause a problem when transforming the data in Power Query because the Power Query M formula language is case-sensitive. +Working with text data can sometimes be messy. For example, the name of the city Redmond might be represented in a database using different casings ("Redmond", "redmond", and "REDMOND"). This could cause a problem when transforming the data in Power Query because the Power Query M formula language is case sensitive. Thankfully, Power Query M provides functions to clean and normalize the case of text data. There are functions to convert text to lower case (abc), upper case (ABC), or proper case (Abc). In addition, Power Query M also provides several ways to ignore case altogether. From 568821722ee97c06071d45eaed55c86905899310 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 28 May 2025 13:39:11 -0700 Subject: [PATCH 850/934] Fixed misspelled word from UUF --- query-languages/m/date-functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index c6261f278..faab8d44f 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date functions" title: "Date functions" -ms.date: 03/29/2024 +ms.date: 6/28/2025 ms.custom: "nonautomated-date" --- # Date functions @@ -13,7 +13,7 @@ These functions create and manipulate the date component of date, datetime, and |[Date.AddDays](date-adddays.md)|Returns a Date/DateTime/DateTimeZone value with the day portion incremented by the number of days provided. It also handles incrementing the month and year potions of the value as appropriate.| |[Date.AddMonths](date-addmonths.md)|Returns a DateTime value with the month portion incremented by n months.| |[Date.AddQuarters](date-addquarters.md)|Returns a Date/DateTime/DateTimeZone value incremented by the number of quarters provided. Each quarter is defined as a duration of three months. It also handles incrementing the year potion of the value as appropriate.| -|[Date.AddWeeks](date-addweeks.md)|Returns a Date/DateTime/DateTimeZone value incremented by the number of weeks provided. Each week is defined as a duration of seven days. It also handles incrementing the month and year potions of the value as appropriate.| +|[Date.AddWeeks](date-addweeks.md)|Returns a Date/DateTime/DateTimeZone value incremented by the number of weeks provided. Each week is defined as a duration of seven days. It also handles incrementing the month and year portions of the value as appropriate.| |[Date.AddYears](date-addyears.md)|Returns a DateTime value with the year portion incremented by n years.| |[Date.Day](date-day.md)|Returns the day for a DateTime value.| |[Date.DayOfWeek](date-dayofweek.md)|Returns a number (from 0 to 6) indicating the day of the week of the provided value.| From 1d9ef08bcfdbad120dd5e07ebce037deef870700 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 28 May 2025 13:43:22 -0700 Subject: [PATCH 851/934] Fixed date --- query-languages/m/date-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index faab8d44f..6501afe23 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Date functions" title: "Date functions" -ms.date: 6/28/2025 +ms.date: 5/28/2025 ms.custom: "nonautomated-date" --- # Date functions From 90539340d310aed83e5134afdba40838c93aa9b6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 28 May 2025 13:47:21 -0700 Subject: [PATCH 852/934] Fixed two other instances of potion -> portion --- query-languages/m/date-functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/date-functions.md b/query-languages/m/date-functions.md index 6501afe23..3d28b8935 100644 --- a/query-languages/m/date-functions.md +++ b/query-languages/m/date-functions.md @@ -10,9 +10,9 @@ These functions create and manipulate the date component of date, datetime, and |Name|Description| |------------|---------------| -|[Date.AddDays](date-adddays.md)|Returns a Date/DateTime/DateTimeZone value with the day portion incremented by the number of days provided. It also handles incrementing the month and year potions of the value as appropriate.| +|[Date.AddDays](date-adddays.md)|Returns a Date/DateTime/DateTimeZone value with the day portion incremented by the number of days provided. It also handles incrementing the month and year portions of the value as appropriate.| |[Date.AddMonths](date-addmonths.md)|Returns a DateTime value with the month portion incremented by n months.| -|[Date.AddQuarters](date-addquarters.md)|Returns a Date/DateTime/DateTimeZone value incremented by the number of quarters provided. Each quarter is defined as a duration of three months. It also handles incrementing the year potion of the value as appropriate.| +|[Date.AddQuarters](date-addquarters.md)|Returns a Date/DateTime/DateTimeZone value incremented by the number of quarters provided. Each quarter is defined as a duration of three months. It also handles incrementing the year portion of the value as appropriate.| |[Date.AddWeeks](date-addweeks.md)|Returns a Date/DateTime/DateTimeZone value incremented by the number of weeks provided. Each week is defined as a duration of seven days. It also handles incrementing the month and year portions of the value as appropriate.| |[Date.AddYears](date-addyears.md)|Returns a DateTime value with the year portion incremented by n years.| |[Date.Day](date-day.md)|Returns the day for a DateTime value.| From dbe397e3dac6a11ec7cbcdcd08bd435596336416 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 30 May 2025 10:48:13 -0700 Subject: [PATCH 853/934] Made changes for consistency and non-scrolling --- query-languages/m/m-working-with-case.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index 78c9dfbda..a48617a63 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -222,7 +222,7 @@ in This code produces the following output: -`TRUE` +`true` The following example shows how to retrieve the initial position of the last occurrence of the word "the" in the sentence, regardless of case. @@ -261,7 +261,7 @@ in This code produces the following output: - `TRUE` + `true` The following examples check whether a list contains all the specified items in the second parameter (`value`), while ignoring case. If any one item isn't contained in the list, such as `cucumber` in the second example, the function returns FALSE. @@ -278,7 +278,7 @@ in This code produces the following output: - `TRUE` + `true` ```powerquery-m let @@ -293,7 +293,7 @@ in This code produces the following output: - `FALSE` + `false` The following example checks whether any of the items in the list are apples or pears, while ignoring case. @@ -310,7 +310,7 @@ in This code produces the following output: - `TRUE` + `true` The following example keeps only unique items, while ignoring case. @@ -449,7 +449,8 @@ For example, the following sample has a mixture of all lower case, all upper cas ```powerquery-m let - Source = { "Alpha", "Beta", "Zulu", "ALPHA", "gamma", "alpha", "beta", "Gamma", "Sierra", "zulu", "GAMMA", "ZULU" }, + Source = { "Alpha", "Beta", "Zulu", "ALPHA", "gamma", "alpha", + "beta", "Gamma", "Sierra", "zulu", "GAMMA", "ZULU" }, SortedList = List.Sort(Source, Order.Ascending) in SortedList From 3eec733eacd0edd790b116030bf5d4a94e0de1d2 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 30 May 2025 11:11:51 -0700 Subject: [PATCH 854/934] One more minor change --- query-languages/m/m-working-with-case.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index a48617a63..8dbe7b190 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Capitalization in Power Query M" title: "Capitalization of text in Power Query M" -ms.date: 5/22/2025 +ms.date: 5/30/2025 ms.subservice: m-background --- @@ -466,7 +466,7 @@ Although not common, you might have a mix of upper and lower case letters in tex 1. If there is matching text, the text with the maximum number of upper case letters to the left is done next. 1. Lower case is then sorted, with the maximum number of upper case letters to the right done first. -In this case, it might be more convenient to convert the text to a consistent case before sorting. +In any case, it might be more convenient to convert the text to a consistent case before sorting. ## Power BI Desktop normalization From a5987320d53327b4aa84abcc230ad82f7cfedd83 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 30 May 2025 16:05:19 -0700 Subject: [PATCH 855/934] Update Value.FromText about and add examples --- query-languages/m/value-fromtext.md | 64 ++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/query-languages/m/value-fromtext.md b/query-languages/m/value-fromtext.md index 977a882c0..cd10da7ea 100644 --- a/query-languages/m/value-fromtext.md +++ b/query-languages/m/value-fromtext.md @@ -13,7 +13,69 @@ Value.FromText(text as any, optional culture as nullable text) as ## About -Decodes a value from a textual representation, `text`, and interprets it as a value with an appropriate type. **Value.FromText** takes a text value and returns a number, a logical value, a null value, a datetime value, a duration value, or a text value. The empty text value is interpreted as a null value. An optional `culture` may also be provided (for example, "en-US"). +Decodes a value from a textual representation and interprets it as a value with an appropriate type. + +* `text`: The text to interpret. +* `culture` (Optional) A specific culture used to interpret the text (for example, "en-US"). + +This function takes a text value and returns a value of type `number`, `logical`, `null`, `datetime`, `duration`, or `text`. An empty text value is interpreted as a `null` value. + +## Example 1 + +Convert text representing a number to its corresponding number value. + +**Usage** + +```powerquery-m +Value.FromText("12345.6789") +``` + +**Output** + +`12345.6789` + +## Example 2 + +Convert text representing a percentage to its corresponding number value. + +**Usage** + +```powerquery-m +Value.FromText("25.4%") +``` + +**Output** + +`0.254` + + +## Example 3 + +Convert text representing a French Euro value to its corresponding number value. + +**Usage** + +```powerquery-m +Value.FromText("€1,190", "fr-FR") +``` + +**Output** + +`1.19` + +## Example 4 + +Convert text representing a German date and time to its corresponding date and time value. + +**Usage** + +```powerquery-m +Value.FromText("24 Dez 2024 14:33:20", "de-DE") +``` + +**Output** + +`#datetime(2024, 12, 24, 14, 33, 20)` ## Related content From f18430357d443bae4aa4bcef3ffd85c17feb502f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 2 Jun 2025 09:22:15 -0700 Subject: [PATCH 856/934] Updated Value.Type about and added examples --- query-languages/m/value-type.md | 48 +++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/query-languages/m/value-type.md b/query-languages/m/value-type.md index c7fafd419..1bdd4eba9 100644 --- a/query-languages/m/value-type.md +++ b/query-languages/m/value-type.md @@ -14,3 +14,51 @@ Value.Type(value as any) as type ## About Returns the type of the given value. + +* `value`: The value whose type is returned. + +## Example 1 + +Return the type of the specified number. + +**Usage** + +```powerquery-m +Value.Type(243.448) +``` + +**Output** + +`type number` + +## Example 2 + +Return the type of the specified date. + +**Usage** + +```powerquery-m +Value.Type(#datetime(2010, 12, 31)) +``` + +**Output** + +`type date` + +## Example 3 + +Return the type of the specified record. + +**Usage** + +```powerquery-m +Value.Type([a = 1, b = 2]) +``` + +**Output** + +`type record` + +## Related content + +* [Types and type conversion](type-conversion.md) From 66f7de39772fda0a0db2637370aee77f2d2afebf Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 4 Jun 2025 15:09:15 -0700 Subject: [PATCH 857/934] Created local, fixed, and UTC time variants article --- .../m/m-local-fixed-utc-variants.md | 164 ++++++++++++++++++ .../m/media/localnow-vs-fixedlocalnow.png | Bin 0 -> 14788 bytes .../media/zone-localnow-vs-fixedlocalnow.png | Bin 0 -> 18275 bytes .../m/media/zone-utcnow-vs-fixedutcnow.png | Bin 0 -> 17202 bytes query-languages/m/toc.yml | 4 + 5 files changed, 168 insertions(+) create mode 100644 query-languages/m/m-local-fixed-utc-variants.md create mode 100644 query-languages/m/media/localnow-vs-fixedlocalnow.png create mode 100644 query-languages/m/media/zone-localnow-vs-fixedlocalnow.png create mode 100644 query-languages/m/media/zone-utcnow-vs-fixedutcnow.png diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md new file mode 100644 index 000000000..ac9d5f1b3 --- /dev/null +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -0,0 +1,164 @@ +--- +description: "Learn more about: Local, fixed, and UTC variants of Power Query M time functions" +title: "Local, fixed, and UTC variants of Power Query M time functions" +ms.topic: conceptual +ms.date: 6/4/2025 +ms.custom: "nonautomated-date" +ms.subservice: m-background +--- + +# Local, fixed, and UTC variants of Power Query M time functions + +When you work with Power Query in tools like Excel and Power BI, handling date and time values accurately is essential—especially when your data transformations depend on the current time. Power Query offers various functions to retrieve the current date and time, including: + +* [DateTime.LocalNow](datetime-localnow.md) +* [DateTimeZone.LocalNow](datetimezone-localnow.md) +* [DateTime.FixedLocalNow](datetime-fixedlocalnow.md) +* [DateTimeZone.FixedLocalNow](datetimezone-fixedlocalnow.md) +* [DateTimeZone.UtcNow](datetimezone-utcnow.md) +* [DateTimeZone.FixedUtcNow](datetimezone-fixedutcnow.md). + +At first glance, these functions might seem interchangeable. However, they differ in subtle but important ways. These differences include whether they return local or UTC time and whether the result is fixed or dynamic. They also include how the functions behave differently depending on whether you're running Power Query on the desktop or online. + +This article explores the distinctions between these functions and clarifies when and why to use each one. In addition, it highlights a critical but often overlooked detail. Power Query Online always returns UTC time even when using a function labeled as "Local." Understanding these nuances can help you avoid unexpected results, especially when building time-sensitive reports or automating refreshes in apps such as Power BI service or Power Apps. + +## Differences between functions + +The date and time function each have subtle but important differences. These functions vary in terms of time zone awareness, volatility (whether the value changes on refresh), and how they behave in different environments (desktop vs. online). The following table contains a breakdown of each function. + +| Function | Returns | Volatility | Desktop behavior | Online behavior | Typical use case | +|------------------------------|-----------------------------------------------|----------------|--------------------------------------------|--------------------------------------------------|-----------------------------------------------------------| +| `DateTime.LocalNow` | A `datetime` representing the current local time | Dynamic—recalculates every time the query is refreshed | Returns local machine time | Returns UTC time | Quick local timestamp without time zone context | +| `DateTimeZone.LocalNow` | A `datetimezone` value representing the current local time with time zone offset | Dynamic—recalculates on each refresh | Returns local time with offset | Returns UTC time with `+00:00` offset | Local time with time zone awareness | +| `DateTime.FixedLocalNow` | A `datetime` value representing the local time at the moment the query is loaded | Fixed—value doesn't change on refresh unless the query is reloaded | Captures local time at load | Captures UTC time at load | Snapshot of local time without time zone | +| `DateTimeZone.FixedLocalNow` | A `datetimezone` value representing the local time with offset at the moment the query is loaded | Fixed—value doesn't update on refresh | Captures local time with offset at load | Captures UTC time with `+00:00` offset at load | Snapshot of local time with time zone | +| `DateTimeZone.UtcNow` | A `datetimezone` value representing the current UTC time | Dynamic—updates on each refresh | Returns current UTC time | Returns current UTC time | Consistent UTC timestamp for dynamic scenarios | +| `DateTimeZone.FixedUtcNow` | A `datetimezone` value representing the UTC time at the moment the query is loaded | Fixed—doesn't change on refresh | Captures UTC time at load | Captures UTC time at load | Fixed UTC timestamp for logging or auditing | + +In Power Query M, choosing between local time and UTC-based datetime functions is a critical design decision that affects the consistency, accuracy, and portability of your queries. Functions like `DateTime.LocalNow` and `DateTime.FixedLocalNow` are useful when your logic depends on the local system time, such as filtering for records that occurred "today" or generating timestamps for user-facing reports. These functions reflect the time zone of the environment in which the query is executed, making them suitable for Power BI Desktop scenarios where the local context is well-defined. + +However, in distributed or cloud-based environments like Power Query Online, these same functions return UTC time, not the actual local time of the user. This discrepancy can lead to subtle bugs or inconsistencies if your logic assumes a local time context. In contrast, `DateTimeZone.UtcNow` and `DateTimeZone.FixedUtcNow` provide a time-zone-neutral reference point that is consistent across environments and unaffected by daylight saving time or regional settings. These UTC-based functions are the preferred choice for scenarios involving data integration, logging, auditing, or any logic that must behave identically regardless of where or when the query runs. + +## Differences between the LocalNow and FixedLocalNow functions + +Power Query M provides four functions for retrieving the current local time: + +* `DateTime.LocalNow` returns the current local `datetime` each time the expression is evaluated. +* `DateTime.FixedLocalNow` returns the local `datetime` once per query evaluation, acting as a snapshot. +* `DateTimeZone.LocalNow` returns the current local `datetimezone` each time the expression is evaluated. +* `DateTimeZone.FixedLocal` now returns the local `datetimezone` once per query evaluation, acting as a snapshot + +To demonstrate the difference, the following example generates a table with multiple rows. Each row captures a fresh `DateTime.LocalNow` value using a delay to ensure distinct timestamps, while each captured `DateTime.FixedLocalNow` value remains constant across all rows. + +> [!NOTE] +>All the dates and times in the output of the examples in this article depend on when the functions are run. The dates and times shown in the output are for demonstration purposes only. + +```powerquery-m +let + // Create a table with LocalNow and FixedLocalNow columns + TableWithTimes = Table.FromList( + {1..5}, + each { + _, + Function.InvokeAfter(() => DateTime.LocalNow(), #duration(0, 0, 0, 0.2)), + Function.InvokeAfter(() => DateTime.FixedLocalNow(), #duration(0, 0, 0, 0.2)) + }, + {"Index", "LocalNow", "FixedLocalNow"} + ), + + // Format both datetime columns + FormatLocalNow = Table.TransformColumns(TableWithTimes, {{"LocalNow", each DateTime.ToText(_, "yyyy-MM-ddThh:mm:ss.fff")}}), + FormatFixedNow = Table.TransformColumns(FormatLocalNow, {{"FixedLocalNow", each DateTime.ToText(_, "yyyy-MM-ddThh:mm:ss.fff")}}), + + // Change the table types + FinalTable = Table.TransformColumnTypes(FormatFixedNow, {{"Index", Int64.Type}, {"LocalNow", type text}, {"FixedLocalNow", type text}}) + +in + FinalTable +``` + +The output of this example is: + +:::image type="content" source="media/localnow-vs-fixedlocalnow.png" alt-text="Screenshot of the table created by DateTime.LocalNow with dynamic dates and times and DateTime.FixedLocalNow with fixed dates and times."::: + +If you look at the output, you might notice that the initial dates and times in the first row don't match. Even though the `DateTime.LocalNow` function appears first in the code, the value returned for `DateTime.FixedLocalNow` shows a time that occurs before the `DateTime.LocalTime` time. Even though `DateTime.LocalNow` is listed first in the table construction, the order of evaluation in Power Query M isn't guaranteed to follow the order of fields in a table. Instead, Power Query uses a lazy evaluation model. Using this model means that fields are only evaluated when needed and the engine determines the evaluation order, not the order in your code. In this case, the `DateTime.FixedLocalNow` function is evaluated first, so the first time returned for this function occurs before the first time returned for `DateTime.LocalNow`. + +The following example shows how to produce similar results using `DateTimeZone.LocalNow` and `DateTimeZone.FixedLocalNow`. + +```powerquery-m +let + // Create a table with LocalNow and FixedLocalNow columns + TableWithTimes = Table.FromList( + {1..5}, + each { + _, + Function.InvokeAfter(() => DateTimeZone.LocalNow(), #duration(0, 0, 0, 0.2)), + Function.InvokeAfter(() => DateTimeZone.FixedLocalNow(), #duration(0, 0, 0, 0.2)) + }, + {"Index", "LocalNow", "FixedLocalNow"} + ), + + // Format both datetimezone columns + FormatLocalNow = Table.TransformColumns(TableWithTimes, {{"LocalNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), + FormatFixedNow = Table.TransformColumns(FormatLocalNow, {{"FixedLocalNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), + + // Change the table types + FinalTable = Table.TransformColumnTypes(FormatFixedNow, {{"Index", Int64.Type}, {"LocalNow", type text}, {"FixedLocalNow", type text}}) +in + FinalTable +``` + +The output of this example in Power Query Desktop is: + +:::image type="content" source="media/zone-localnow-vs-fixedlocalnow.png" alt-text="Screenshot of the table created by DateTimeZone.LocalNow with dynamic dates and times and DateTimeZone.FixedLocalNow with fixed dates and times."::: + +> [!NOTE] +>If you run this example in Power Query Online, the time returned is always UTC time and the time zone portion of the returned values are always `+00:00`. + +## Differences between the UtcNow and the FixedUtcNow functions + +Power Query M provides two functions for retrieving the current UTC time: + +* `DateTimeZone.UtcNow` returns the current UTC `datetimezone` each time the expression is evaluated. +* `DateTimeZone.FixedUtcNow` returns the local `datetimezone` once per query evaluation, acting as a snapshot. + +The differences between these two functions are similar to the `LocalNow` and `FixedLocalNow` functions. However, whether the functions are run in Power Query Desktop or Power Query Online, the return values are always returned as UTC time. The following example demonstrates the differences between these two functions. + +```powerquery-m +let + // Create a table with UtcNow and FixedUtcNow columns + TableWithTimes = Table.FromList( + {1..5}, + each { + _, + Function.InvokeAfter(() => DateTimeZone.UtcNow(), #duration(0, 0, 0, 0.2)), + Function.InvokeAfter(() => DateTimeZone.FixedUtcNow(), #duration(0, 0, 0, 0.2)) + }, + {"Index", "UtcNow", "FixedUtcNow"} + ), + + // Format both datetimezone columns + FormatLocalNow = Table.TransformColumns(TableWithTimes, {{"UtcNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), + FormatFixedNow = Table.TransformColumns(FormatLocalNow, {{"FixedUtcNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), + + // Change the table types + FinalTable = Table.TransformColumnTypes(FormatFixedNow, {{"Index", Int64.Type}, {"UtcNow", type text}, {"FixedUtcNow", type text}}) +in + FinalTable +``` + +The output of this example in Power Query Desktop and Power Query Online is: + +:::image type="content" source="media/zone-utcnow-vs-fixedutcnow.png" alt-text="Screenshot of the table created by DateTimeZone.UtcNow with dynamic dates and times and DateTimeZone.FixedUtcNow with fixed dates and times."::: + +## Best practices and recommendations + +Choosing the right time function in Power Query depends on your specific use case, the environment in which your query runs (desktop vs. online), and whether you need a dynamic or fixed timestamp. Here are some best practices to help guide your decision: + +* **Be explicit about time zones**: Use the DateTimeZone functions instead of DateTime functions when time zone context matters. Use `DateTimeZone.UtcNow` or `DateTimeZone.FixedUtcNow` for consistency across environments, especially in cloud-based solutions like Power BI Service. +* **Use fixed functions for repeatable results**: Use the fixed variants (such as `DateTimeZone.FixedUtcNow`) when you want the timestamp to remain constant across refreshes. This method is especially useful for logging, auditing, or capturing the time of data ingestion. +* **Avoid local functions in Power Query Online**: Functions like `DateTime.LocalNow` and `DateTimeZone.LocalNow` return UTC time in cloud-based solutions like Power BI Service, which can lead to confusion or incorrect assumptions. If you need actual local time in the service, consider adjusting UTC manually using known offsets (although this adjustment can be brittle). +* **Test in both desktop and online environments**: Always test your queries in both Power Query Desktop and Power Query Online if your logic depends on current time. This testing helps catch discrepancies early, especially for scheduled refresh scenarios. +* **Document your time logic**: Clearly comment or document why a specific time function is used, especially if you're using a workaround for time zone handling. This information helps future collaborators understand the intent behind the logic. +* **Use UTC for scheduled workflows**: For scheduled refreshes or automated pipelines, UTC is the safest and most predictable choice. It avoids ambiguity caused by daylight saving time or regional time zone shifts. +* **Cache time values when needed**: If you need to use the same timestamp across multiple steps in a query, assign it to a variable at the top of your query using a fixed function. This variable ensures consistency throughout the transformation logic. diff --git a/query-languages/m/media/localnow-vs-fixedlocalnow.png b/query-languages/m/media/localnow-vs-fixedlocalnow.png new file mode 100644 index 0000000000000000000000000000000000000000..378806c7052c5615f6dda15ea88bbb43baa61eaa GIT binary patch literal 14788 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 P5<%&ys$8**anQd3taj>u literal 0 HcmV?d00001 diff --git a/query-languages/m/media/zone-localnow-vs-fixedlocalnow.png b/query-languages/m/media/zone-localnow-vs-fixedlocalnow.png new file mode 100644 index 0000000000000000000000000000000000000000..4b1bc9bdbf32a269817ed4e08439dee46f0ff656 GIT binary patch literal 18275 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 TsUqqsh~LRdDoT`!8T$S|>WJfp literal 0 HcmV?d00001 diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 6d2cee0d0..7c7858138 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -48,6 +48,10 @@ items: href: metadata.md - name: Errors href: errors.md + - name: Date and time + items: + - name: Local, fixed, and UTC variants + href: m-local-fixed-utc-variants.md - name: Text formatting items: - name: Standard numeric format strings From e402de87e2ea36abf61ed83e7bcc392769c21eb2 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 5 Jun 2025 07:39:53 -0700 Subject: [PATCH 858/934] Fixed example formatting --- .../m/m-local-fixed-utc-variants.md | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index ac9d5f1b3..51d6ac145 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -67,11 +67,14 @@ let ), // Format both datetime columns - FormatLocalNow = Table.TransformColumns(TableWithTimes, {{"LocalNow", each DateTime.ToText(_, "yyyy-MM-ddThh:mm:ss.fff")}}), - FormatFixedNow = Table.TransformColumns(FormatLocalNow, {{"FixedLocalNow", each DateTime.ToText(_, "yyyy-MM-ddThh:mm:ss.fff")}}), + FormatLocalNow = Table.TransformColumns(TableWithTimes, + {{"LocalNow", each DateTime.ToText(_, "yyyy-MM-ddThh:mm:ss.fff")}}), + FormatFixedNow = Table.TransformColumns(FormatLocalNow, + {{"FixedLocalNow", each DateTime.ToText(_, "yyyy-MM-ddThh:mm:ss.fff")}}), // Change the table types - FinalTable = Table.TransformColumnTypes(FormatFixedNow, {{"Index", Int64.Type}, {"LocalNow", type text}, {"FixedLocalNow", type text}}) + FinalTable = Table.TransformColumnTypes(FormatFixedNow, {{"Index", Int64.Type}, + {"LocalNow", type text}, {"FixedLocalNow", type text}}) in FinalTable @@ -99,11 +102,14 @@ let ), // Format both datetimezone columns - FormatLocalNow = Table.TransformColumns(TableWithTimes, {{"LocalNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), - FormatFixedNow = Table.TransformColumns(FormatLocalNow, {{"FixedLocalNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), + FormatLocalNow = Table.TransformColumns(TableWithTimes, + {{"LocalNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), + FormatFixedNow = Table.TransformColumns(FormatLocalNow, + {{"FixedLocalNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), // Change the table types - FinalTable = Table.TransformColumnTypes(FormatFixedNow, {{"Index", Int64.Type}, {"LocalNow", type text}, {"FixedLocalNow", type text}}) + FinalTable = Table.TransformColumnTypes(FormatFixedNow, + {{"Index", Int64.Type}, {"LocalNow", type text}, {"FixedLocalNow", type text}}) in FinalTable ``` @@ -138,8 +144,10 @@ let ), // Format both datetimezone columns - FormatLocalNow = Table.TransformColumns(TableWithTimes, {{"UtcNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), - FormatFixedNow = Table.TransformColumns(FormatLocalNow, {{"FixedUtcNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), + FormatLocalNow = Table.TransformColumns(TableWithTimes, + {{"UtcNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), + FormatFixedNow = Table.TransformColumns(FormatLocalNow, + {{"FixedUtcNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), // Change the table types FinalTable = Table.TransformColumnTypes(FormatFixedNow, {{"Index", Int64.Type}, {"UtcNow", type text}, {"FixedUtcNow", type text}}) From fdcf8f90df7fe3e595debd8ad0cc7e311f5b9663 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 6 Jun 2025 08:58:13 -0700 Subject: [PATCH 859/934] More updates to article --- .../m/m-local-fixed-utc-variants.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index 51d6ac145..2fecd109f 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -1,13 +1,13 @@ --- -description: "Learn more about: Local, fixed, and UTC variants of Power Query M time functions" -title: "Local, fixed, and UTC variants of Power Query M time functions" +description: "Learn more about: Local, fixed, and UTC variants of current time functions" +title: "Local, fixed, and UTC variants of current time functions" ms.topic: conceptual -ms.date: 6/4/2025 +ms.date: 6/6/2025 ms.custom: "nonautomated-date" ms.subservice: m-background --- -# Local, fixed, and UTC variants of Power Query M time functions +# Local, fixed, and UTC variants of current time functions When you work with Power Query in tools like Excel and Power BI, handling date and time values accurately is essential—especially when your data transformations depend on the current time. Power Query offers various functions to retrieve the current date and time, including: @@ -18,24 +18,24 @@ When you work with Power Query in tools like Excel and Power BI, handling date a * [DateTimeZone.UtcNow](datetimezone-utcnow.md) * [DateTimeZone.FixedUtcNow](datetimezone-fixedutcnow.md). -At first glance, these functions might seem interchangeable. However, they differ in subtle but important ways. These differences include whether they return local or UTC time and whether the result is fixed or dynamic. They also include how the functions behave differently depending on whether you're running Power Query on the desktop or online. +At first glance, these current time functions might seem interchangeable. However, they differ in subtle but important ways. These differences include whether they return local or UTC time and whether the result is fixed or dynamic. They also include how the functions behave differently depending on whether you're running Power Query on the desktop or online. This article explores the distinctions between these functions and clarifies when and why to use each one. In addition, it highlights a critical but often overlooked detail. Power Query Online always returns UTC time even when using a function labeled as "Local." Understanding these nuances can help you avoid unexpected results, especially when building time-sensitive reports or automating refreshes in apps such as Power BI service or Power Apps. ## Differences between functions -The date and time function each have subtle but important differences. These functions vary in terms of time zone awareness, volatility (whether the value changes on refresh), and how they behave in different environments (desktop vs. online). The following table contains a breakdown of each function. +Each of the current time functions have important differences. These functions vary in terms of time zone awareness, volatility (whether the value changes when called multiple times in the same query), and how they behave in different environments (desktop vs. online). The following table contains a breakdown of each function. | Function | Returns | Volatility | Desktop behavior | Online behavior | Typical use case | |------------------------------|-----------------------------------------------|----------------|--------------------------------------------|--------------------------------------------------|-----------------------------------------------------------| -| `DateTime.LocalNow` | A `datetime` representing the current local time | Dynamic—recalculates every time the query is refreshed | Returns local machine time | Returns UTC time | Quick local timestamp without time zone context | -| `DateTimeZone.LocalNow` | A `datetimezone` value representing the current local time with time zone offset | Dynamic—recalculates on each refresh | Returns local time with offset | Returns UTC time with `+00:00` offset | Local time with time zone awareness | -| `DateTime.FixedLocalNow` | A `datetime` value representing the local time at the moment the query is loaded | Fixed—value doesn't change on refresh unless the query is reloaded | Captures local time at load | Captures UTC time at load | Snapshot of local time without time zone | -| `DateTimeZone.FixedLocalNow` | A `datetimezone` value representing the local time with offset at the moment the query is loaded | Fixed—value doesn't update on refresh | Captures local time with offset at load | Captures UTC time with `+00:00` offset at load | Snapshot of local time with time zone | -| `DateTimeZone.UtcNow` | A `datetimezone` value representing the current UTC time | Dynamic—updates on each refresh | Returns current UTC time | Returns current UTC time | Consistent UTC timestamp for dynamic scenarios | -| `DateTimeZone.FixedUtcNow` | A `datetimezone` value representing the UTC time at the moment the query is loaded | Fixed—doesn't change on refresh | Captures UTC time at load | Captures UTC time at load | Fixed UTC timestamp for logging or auditing | +| `DateTime.LocalNow` | A `datetime` representing the current local time | Dynamic—returns a new value each time it's invoked during query evaluation | Returns local machine time | Returns UTC time | Quick local timestamp without time zone context | +| `DateTimeZone.LocalNow` | A `datetimezone` value representing the current local time with time zone offset | Dynamic—returns a new value each time it's invoked during query evaluation | Returns local time with offset | Returns UTC time with `+00:00` offset | Local time with time zone awareness | +| `DateTime.FixedLocalNow` | A `datetime` value representing the local time at the moment the query is loaded | Fixed—returns the same value throughout a single query evaluation | Captures local time at load | Captures UTC time at load | Snapshot of local time without time zone | +| `DateTimeZone.FixedLocalNow` | A `datetimezone` value representing the local time with offset at the moment the query is loaded | Fixed—returns the same value throughout a single query evaluation | Captures local time with offset at load | Captures UTC time with `+00:00` offset at load | Snapshot of local time with time zone | +| `DateTimeZone.UtcNow` | A `datetimezone` value representing the current UTC time | Dynamic—returns a new value each time it's invoked during query evaluation | Returns current UTC time | Returns current UTC time | Consistent UTC timestamp for dynamic scenarios | +| `DateTimeZone.FixedUtcNow` | A `datetimezone` value representing the UTC time at the moment the query is loaded | Fixed—returns the same value throughout a single query evaluation | Captures UTC time at load | Captures UTC time at load | Fixed UTC timestamp for logging or auditing | -In Power Query M, choosing between local time and UTC-based datetime functions is a critical design decision that affects the consistency, accuracy, and portability of your queries. Functions like `DateTime.LocalNow` and `DateTime.FixedLocalNow` are useful when your logic depends on the local system time, such as filtering for records that occurred "today" or generating timestamps for user-facing reports. These functions reflect the time zone of the environment in which the query is executed, making them suitable for Power BI Desktop scenarios where the local context is well-defined. +In Power Query M, choosing between local time and UTC-based datetime functions is a critical design decision that affects the consistency, accuracy, and portability of your queries. Functions like `DateTime.LocalNow` and `DateTime.FixedLocalNow` are useful when your logic depends on the local system time, such as filtering for records that occurred "today" or generating timestamps for user-facing reports. These functions reflect the time zone of the environment in which the query is executed, making them suitable for Power Query Desktop scenarios where the local context is well-defined. However, in distributed or cloud-based environments like Power Query Online, these same functions return UTC time, not the actual local time of the user. This discrepancy can lead to subtle bugs or inconsistencies if your logic assumes a local time context. In contrast, `DateTimeZone.UtcNow` and `DateTimeZone.FixedUtcNow` provide a time-zone-neutral reference point that is consistent across environments and unaffected by daylight saving time or regional settings. These UTC-based functions are the preferred choice for scenarios involving data integration, logging, auditing, or any logic that must behave identically regardless of where or when the query runs. @@ -163,9 +163,9 @@ The output of this example in Power Query Desktop and Power Query Online is: Choosing the right time function in Power Query depends on your specific use case, the environment in which your query runs (desktop vs. online), and whether you need a dynamic or fixed timestamp. Here are some best practices to help guide your decision: -* **Be explicit about time zones**: Use the DateTimeZone functions instead of DateTime functions when time zone context matters. Use `DateTimeZone.UtcNow` or `DateTimeZone.FixedUtcNow` for consistency across environments, especially in cloud-based solutions like Power BI Service. -* **Use fixed functions for repeatable results**: Use the fixed variants (such as `DateTimeZone.FixedUtcNow`) when you want the timestamp to remain constant across refreshes. This method is especially useful for logging, auditing, or capturing the time of data ingestion. -* **Avoid local functions in Power Query Online**: Functions like `DateTime.LocalNow` and `DateTimeZone.LocalNow` return UTC time in cloud-based solutions like Power BI Service, which can lead to confusion or incorrect assumptions. If you need actual local time in the service, consider adjusting UTC manually using known offsets (although this adjustment can be brittle). +* **Be explicit about time zones**: Use the DateTimeZone functions instead of DateTime functions when time zone context matters. Use `DateTimeZone.UtcNow` or `DateTimeZone.FixedUtcNow` for consistency across environments, especially in cloud-based solutions like Power BI service. +* **Use fixed functions for repeatable results**: Use the fixed variants (such as `DateTimeZone.FixedUtcNow`) when you want the timestamp to remain constant across query evaluations. This method is especially useful for logging, auditing, or capturing the time of data ingestion. +* **Avoid local functions in Power Query Online**: Functions like `DateTime.LocalNow` and `DateTimeZone.LocalNow` return UTC time in cloud-based solutions like Power BI service, which can lead to confusion or incorrect assumptions. If you need actual local time in the service, consider adjusting UTC manually using known offsets (although this adjustment can be brittle, for example, due to daylight savings time). * **Test in both desktop and online environments**: Always test your queries in both Power Query Desktop and Power Query Online if your logic depends on current time. This testing helps catch discrepancies early, especially for scheduled refresh scenarios. * **Document your time logic**: Clearly comment or document why a specific time function is used, especially if you're using a workaround for time zone handling. This information helps future collaborators understand the intent behind the logic. * **Use UTC for scheduled workflows**: For scheduled refreshes or automated pipelines, UTC is the safest and most predictable choice. It avoids ambiguity caused by daylight saving time or regional time zone shifts. From 2d124ca5163807b0d796129659ef8296be8172cc Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 6 Jun 2025 09:16:01 -0700 Subject: [PATCH 860/934] Trimmed some text and other minor fixes --- query-languages/m/m-local-fixed-utc-variants.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index 2fecd109f..6e7d9cd08 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -9,7 +9,7 @@ ms.subservice: m-background # Local, fixed, and UTC variants of current time functions -When you work with Power Query in tools like Excel and Power BI, handling date and time values accurately is essential—especially when your data transformations depend on the current time. Power Query offers various functions to retrieve the current date and time, including: +When you work with Power Query in tools like Excel and Power BI, handling date and time values accurately is essential—especially when your data transformations depend on the current time. Power Query offers various functions to retrieve the current date and time: * [DateTime.LocalNow](datetime-localnow.md) * [DateTimeZone.LocalNow](datetimezone-localnow.md) @@ -18,8 +18,6 @@ When you work with Power Query in tools like Excel and Power BI, handling date a * [DateTimeZone.UtcNow](datetimezone-utcnow.md) * [DateTimeZone.FixedUtcNow](datetimezone-fixedutcnow.md). -At first glance, these current time functions might seem interchangeable. However, they differ in subtle but important ways. These differences include whether they return local or UTC time and whether the result is fixed or dynamic. They also include how the functions behave differently depending on whether you're running Power Query on the desktop or online. - This article explores the distinctions between these functions and clarifies when and why to use each one. In addition, it highlights a critical but often overlooked detail. Power Query Online always returns UTC time even when using a function labeled as "Local." Understanding these nuances can help you avoid unexpected results, especially when building time-sensitive reports or automating refreshes in apps such as Power BI service or Power Apps. ## Differences between functions @@ -37,7 +35,7 @@ Each of the current time functions have important differences. These functions v In Power Query M, choosing between local time and UTC-based datetime functions is a critical design decision that affects the consistency, accuracy, and portability of your queries. Functions like `DateTime.LocalNow` and `DateTime.FixedLocalNow` are useful when your logic depends on the local system time, such as filtering for records that occurred "today" or generating timestamps for user-facing reports. These functions reflect the time zone of the environment in which the query is executed, making them suitable for Power Query Desktop scenarios where the local context is well-defined. -However, in distributed or cloud-based environments like Power Query Online, these same functions return UTC time, not the actual local time of the user. This discrepancy can lead to subtle bugs or inconsistencies if your logic assumes a local time context. In contrast, `DateTimeZone.UtcNow` and `DateTimeZone.FixedUtcNow` provide a time-zone-neutral reference point that is consistent across environments and unaffected by daylight saving time or regional settings. These UTC-based functions are the preferred choice for scenarios involving data integration, logging, auditing, or any logic that must behave identically regardless of where or when the query runs. +However, in distributed or cloud-based environments like Power Query Online, these same functions return UTC time, not the actual local time of the user. This discrepancy can lead to subtle inconsistencies if your logic assumes a local time context. In contrast, `DateTimeZone.UtcNow` and `DateTimeZone.FixedUtcNow` provide a time-zone-neutral reference point that is consistent across environments and unaffected by daylight saving time or regional settings. These UTC-based functions are the preferred choice for scenarios involving data integration, logging, auditing, or any logic that must behave identically regardless of where or when the query runs. ## Differences between the LocalNow and FixedLocalNow functions @@ -84,7 +82,7 @@ The output of this example is: :::image type="content" source="media/localnow-vs-fixedlocalnow.png" alt-text="Screenshot of the table created by DateTime.LocalNow with dynamic dates and times and DateTime.FixedLocalNow with fixed dates and times."::: -If you look at the output, you might notice that the initial dates and times in the first row don't match. Even though the `DateTime.LocalNow` function appears first in the code, the value returned for `DateTime.FixedLocalNow` shows a time that occurs before the `DateTime.LocalTime` time. Even though `DateTime.LocalNow` is listed first in the table construction, the order of evaluation in Power Query M isn't guaranteed to follow the order of fields in a table. Instead, Power Query uses a lazy evaluation model. Using this model means that fields are only evaluated when needed and the engine determines the evaluation order, not the order in your code. In this case, the `DateTime.FixedLocalNow` function is evaluated first, so the first time returned for this function occurs before the first time returned for `DateTime.LocalNow`. +If you look at the output, you might notice that the initial dates and times in the first row don't match. Also, even though the `DateTime.LocalNow` function appears first in the code, the value returned for `DateTime.FixedLocalNow` shows a time that occurs before the `DateTime.LocalTime` time. Even though `DateTime.LocalNow` is listed first in the table construction, the order of evaluation in Power Query M isn't guaranteed to follow the order of fields in a table. Instead, Power Query uses a lazy evaluation model. Using this model means that fields are only evaluated when needed and the engine determines the evaluation order, not the order in your code. In this case, the `DateTime.FixedLocalNow` function is evaluated first, so the first time returned for this function occurs before the first time returned for `DateTime.LocalNow`. The following example shows how to produce similar results using `DateTimeZone.LocalNow` and `DateTimeZone.FixedLocalNow`. @@ -150,12 +148,13 @@ let {{"FixedUtcNow", each DateTimeZone.ToText(_, "yyyy-MM-ddThh:mm:ss.fff:zzz")}}), // Change the table types - FinalTable = Table.TransformColumnTypes(FormatFixedNow, {{"Index", Int64.Type}, {"UtcNow", type text}, {"FixedUtcNow", type text}}) + FinalTable = Table.TransformColumnTypes(FormatFixedNow, + {{"Index", Int64.Type}, {"UtcNow", type text}, {"FixedUtcNow", type text}}) in FinalTable ``` -The output of this example in Power Query Desktop and Power Query Online is: +The output of this example in both Power Query Desktop and Power Query Online is: :::image type="content" source="media/zone-utcnow-vs-fixedutcnow.png" alt-text="Screenshot of the table created by DateTimeZone.UtcNow with dynamic dates and times and DateTimeZone.FixedUtcNow with fixed dates and times."::: @@ -165,7 +164,7 @@ Choosing the right time function in Power Query depends on your specific use cas * **Be explicit about time zones**: Use the DateTimeZone functions instead of DateTime functions when time zone context matters. Use `DateTimeZone.UtcNow` or `DateTimeZone.FixedUtcNow` for consistency across environments, especially in cloud-based solutions like Power BI service. * **Use fixed functions for repeatable results**: Use the fixed variants (such as `DateTimeZone.FixedUtcNow`) when you want the timestamp to remain constant across query evaluations. This method is especially useful for logging, auditing, or capturing the time of data ingestion. -* **Avoid local functions in Power Query Online**: Functions like `DateTime.LocalNow` and `DateTimeZone.LocalNow` return UTC time in cloud-based solutions like Power BI service, which can lead to confusion or incorrect assumptions. If you need actual local time in the service, consider adjusting UTC manually using known offsets (although this adjustment can be brittle, for example, due to daylight savings time). +* **Avoid local functions in Power Query Online**: Functions like `DateTime.LocalNow` and `DateTimeZone.LocalNow` return UTC time in cloud-based solutions like Power BI service, which can lead to confusion or incorrect assumptions. If you need actual local time in the service, consider adjusting UTC manually using known offsets (although this adjustment can be brittle, for example, due to daylight savings time or regional settings). * **Test in both desktop and online environments**: Always test your queries in both Power Query Desktop and Power Query Online if your logic depends on current time. This testing helps catch discrepancies early, especially for scheduled refresh scenarios. * **Document your time logic**: Clearly comment or document why a specific time function is used, especially if you're using a workaround for time zone handling. This information helps future collaborators understand the intent behind the logic. * **Use UTC for scheduled workflows**: For scheduled refreshes or automated pipelines, UTC is the safest and most predictable choice. It avoids ambiguity caused by daylight saving time or regional time zone shifts. From e28c38d162c7059fc7342aec33e9dd920a58077f Mon Sep 17 00:00:00 2001 From: Julia Cawthra <84795228+JulCsc@users.noreply.github.com> Date: Fri, 6 Jun 2025 12:27:53 -0400 Subject: [PATCH 861/934] Update allselected-function-dax.md --- query-languages/dax/allselected-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/allselected-function-dax.md b/query-languages/dax/allselected-function-dax.md index 7d931c225..3cdf95540 100644 --- a/query-languages/dax/allselected-function-dax.md +++ b/query-languages/dax/allselected-function-dax.md @@ -6,7 +6,7 @@ title: "ALLSELECTED function (DAX)" [!INCLUDE[applies-to-measures-columns-tables-visual-calculations](includes/applies-to-measures-columns-tables-visual-calculations.md)] -Removes context filters from columns and rows in the current query, while retaining all other context filters or explicit filters. +Returns all rows in a table, or all the values in a columns, ignoring any filters that might have been applied inside the query, but keeping filters that come from outside. The ALLSELECTED function gets the context that represents all rows and columns in the query, while keeping explicit filters and contexts other than row and column filters. This function can be used to obtain visual totals in queries. From 84ecd0e4f90cd46a14e2baef071909a46291b51a Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 6 Jun 2025 09:36:24 -0700 Subject: [PATCH 862/934] Changes to table description for clarity --- query-languages/m/m-local-fixed-utc-variants.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index 6e7d9cd08..1ba5bea47 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -28,10 +28,10 @@ Each of the current time functions have important differences. These functions v |------------------------------|-----------------------------------------------|----------------|--------------------------------------------|--------------------------------------------------|-----------------------------------------------------------| | `DateTime.LocalNow` | A `datetime` representing the current local time | Dynamic—returns a new value each time it's invoked during query evaluation | Returns local machine time | Returns UTC time | Quick local timestamp without time zone context | | `DateTimeZone.LocalNow` | A `datetimezone` value representing the current local time with time zone offset | Dynamic—returns a new value each time it's invoked during query evaluation | Returns local time with offset | Returns UTC time with `+00:00` offset | Local time with time zone awareness | -| `DateTime.FixedLocalNow` | A `datetime` value representing the local time at the moment the query is loaded | Fixed—returns the same value throughout a single query evaluation | Captures local time at load | Captures UTC time at load | Snapshot of local time without time zone | -| `DateTimeZone.FixedLocalNow` | A `datetimezone` value representing the local time with offset at the moment the query is loaded | Fixed—returns the same value throughout a single query evaluation | Captures local time with offset at load | Captures UTC time with `+00:00` offset at load | Snapshot of local time with time zone | +| `DateTime.FixedLocalNow` | A `datetime` value representing the local time when first invoked during query evaluation | Fixed—returns the same value throughout a single query evaluation | Captures local time when first called | Captures UTC time when first called | Snapshot of local time without time zone | +| `DateTimeZone.FixedLocalNow` | A `datetimezone` value representing the local time with offset when first invoked during query evaluation | Fixed—returns the same value throughout a single query evaluation | Captures local time with offset when first called | Captures UTC time with `+00:00` offset when first called | Snapshot of local time with time zone | | `DateTimeZone.UtcNow` | A `datetimezone` value representing the current UTC time | Dynamic—returns a new value each time it's invoked during query evaluation | Returns current UTC time | Returns current UTC time | Consistent UTC timestamp for dynamic scenarios | -| `DateTimeZone.FixedUtcNow` | A `datetimezone` value representing the UTC time at the moment the query is loaded | Fixed—returns the same value throughout a single query evaluation | Captures UTC time at load | Captures UTC time at load | Fixed UTC timestamp for logging or auditing | +| `DateTimeZone.FixedUtcNow` | A `datetimezone` value representing the UTC time when first invoked during query evaluation | Fixed—returns the same value throughout a single query evaluation | Captures UTC time when first called | Captures UTC time when first called | Fixed UTC timestamp for logging or auditing | In Power Query M, choosing between local time and UTC-based datetime functions is a critical design decision that affects the consistency, accuracy, and portability of your queries. Functions like `DateTime.LocalNow` and `DateTime.FixedLocalNow` are useful when your logic depends on the local system time, such as filtering for records that occurred "today" or generating timestamps for user-facing reports. These functions reflect the time zone of the environment in which the query is executed, making them suitable for Power Query Desktop scenarios where the local context is well-defined. From 5567937c339281c6efe3d2f95cc73ab541e7c114 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 6 Jun 2025 09:49:26 -0700 Subject: [PATCH 863/934] More fixes for accuracy --- query-languages/m/m-local-fixed-utc-variants.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index 1ba5bea47..06d912fa9 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -18,7 +18,7 @@ When you work with Power Query in tools like Excel and Power BI, handling date a * [DateTimeZone.UtcNow](datetimezone-utcnow.md) * [DateTimeZone.FixedUtcNow](datetimezone-fixedutcnow.md). -This article explores the distinctions between these functions and clarifies when and why to use each one. In addition, it highlights a critical but often overlooked detail. Power Query Online always returns UTC time even when using a function labeled as "Local." Understanding these nuances can help you avoid unexpected results, especially when building time-sensitive reports or automating refreshes in apps such as Power BI service or Power Apps. +This article explores the distinctions between these functions and clarifies when and why to use each one. In addition, it highlights a critical but often overlooked detail. Power Query Online always returns UTC time even when using a function labeled as "Local." Understanding these nuances can help you avoid unexpected results, especially when building time-sensitive reports or automating data updates in apps such as Power BI service or Power Apps. ## Differences between functions @@ -33,7 +33,7 @@ Each of the current time functions have important differences. These functions v | `DateTimeZone.UtcNow` | A `datetimezone` value representing the current UTC time | Dynamic—returns a new value each time it's invoked during query evaluation | Returns current UTC time | Returns current UTC time | Consistent UTC timestamp for dynamic scenarios | | `DateTimeZone.FixedUtcNow` | A `datetimezone` value representing the UTC time when first invoked during query evaluation | Fixed—returns the same value throughout a single query evaluation | Captures UTC time when first called | Captures UTC time when first called | Fixed UTC timestamp for logging or auditing | -In Power Query M, choosing between local time and UTC-based datetime functions is a critical design decision that affects the consistency, accuracy, and portability of your queries. Functions like `DateTime.LocalNow` and `DateTime.FixedLocalNow` are useful when your logic depends on the local system time, such as filtering for records that occurred "today" or generating timestamps for user-facing reports. These functions reflect the time zone of the environment in which the query is executed, making them suitable for Power Query Desktop scenarios where the local context is well-defined. +In Power Query M, choosing between local time and UTC-based date and time functions is a critical design decision that affects the consistency, accuracy, and portability of your queries. Functions like `DateTime.LocalNow` and `DateTime.FixedLocalNow` are useful when your logic depends on the local system time, such as filtering for records that occurred "today" or generating timestamps for user-facing reports. These functions reflect the time zone of the environment in which the query is executed, making them suitable for Power Query Desktop scenarios where the local context is well-defined. However, in distributed or cloud-based environments like Power Query Online, these same functions return UTC time, not the actual local time of the user. This discrepancy can lead to subtle inconsistencies if your logic assumes a local time context. In contrast, `DateTimeZone.UtcNow` and `DateTimeZone.FixedUtcNow` provide a time-zone-neutral reference point that is consistent across environments and unaffected by daylight saving time or regional settings. These UTC-based functions are the preferred choice for scenarios involving data integration, logging, auditing, or any logic that must behave identically regardless of where or when the query runs. @@ -82,7 +82,7 @@ The output of this example is: :::image type="content" source="media/localnow-vs-fixedlocalnow.png" alt-text="Screenshot of the table created by DateTime.LocalNow with dynamic dates and times and DateTime.FixedLocalNow with fixed dates and times."::: -If you look at the output, you might notice that the initial dates and times in the first row don't match. Also, even though the `DateTime.LocalNow` function appears first in the code, the value returned for `DateTime.FixedLocalNow` shows a time that occurs before the `DateTime.LocalTime` time. Even though `DateTime.LocalNow` is listed first in the table construction, the order of evaluation in Power Query M isn't guaranteed to follow the order of fields in a table. Instead, Power Query uses a lazy evaluation model. Using this model means that fields are only evaluated when needed and the engine determines the evaluation order, not the order in your code. In this case, the `DateTime.FixedLocalNow` function is evaluated first, so the first time returned for this function occurs before the first time returned for `DateTime.LocalNow`. +If you look at the output, you might notice that even though the `DateTime.LocalNow` function appears first in the code, the value returned for `DateTime.FixedLocalNow` shows a time that occurs before the `DateTime.LocalTime` time. Even though `DateTime.LocalNow` is listed first in the table construction, the order of evaluation in Power Query M isn't guaranteed to follow the order of fields in a table. Instead, Power Query uses a lazy evaluation model. Using this model means that fields are only evaluated when needed and the engine determines the evaluation order, not the order in your code. In this case, the `DateTime.FixedLocalNow` function is evaluated first, so the first time returned for this function occurs before the first time returned for `DateTime.LocalNow`. The following example shows how to produce similar results using `DateTimeZone.LocalNow` and `DateTimeZone.FixedLocalNow`. From 160b0979c8fed9b7c4531e400a6036dac989476f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 6 Jun 2025 12:55:16 -0700 Subject: [PATCH 864/934] Added note about other local functions --- query-languages/m/m-local-fixed-utc-variants.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index 06d912fa9..e20abd655 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -158,6 +158,9 @@ The output of this example in both Power Query Desktop and Power Query Online is :::image type="content" source="media/zone-utcnow-vs-fixedutcnow.png" alt-text="Screenshot of the table created by DateTimeZone.UtcNow with dynamic dates and times and DateTimeZone.FixedUtcNow with fixed dates and times."::: +> [!NOTE] +>You can't get local time using any of the other date and time `Local` functions on Power Query Online. For example, using `DateTimeZone.ToLocal(DateTimeZone.UtcNow())` still returns UTC time on Power Query Online. + ## Best practices and recommendations Choosing the right time function in Power Query depends on your specific use case, the environment in which your query runs (desktop vs. online), and whether you need a dynamic or fixed timestamp. Here are some best practices to help guide your decision: From d4fc3358c33d1bc142e49215d69a92e3e0aa39a6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 6 Jun 2025 13:59:01 -0700 Subject: [PATCH 865/934] Added new section about affects --- query-languages/m/m-local-fixed-utc-variants.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index e20abd655..7357147bd 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -158,8 +158,13 @@ The output of this example in both Power Query Desktop and Power Query Online is :::image type="content" source="media/zone-utcnow-vs-fixedutcnow.png" alt-text="Screenshot of the table created by DateTimeZone.UtcNow with dynamic dates and times and DateTimeZone.FixedUtcNow with fixed dates and times."::: -> [!NOTE] ->You can't get local time using any of the other date and time `Local` functions on Power Query Online. For example, using `DateTimeZone.ToLocal(DateTimeZone.UtcNow())` still returns UTC time on Power Query Online. +## Affects on other functions + +Other Power Query M functions that depend on the current date and time can also be affected by how the local time is returned on either Power Query Desktop or Power Query Online. For example, if you use the [DateTimeZone.ToLocal](datetimezone-tolocal.md) function to convert UTC time to local time, it still returns the UTC time on Power Query Online. + +Another example is any function that can use the current system time as a parameter. These functions include [Date.Month](date-month.md), [Date.DayOfYear](date-dayofyear.md), [DateTime.IsInCurrentYear](datetime-isincurrenthour.md ), [DateTimeZone.ZoneHours](datetimezone-zonehours.md), or any other function that can evaluate the current date and time. + +In all of these functions, if your logic depends on whether a value falls within the current day, hour, month, or year, the results might differ between environments. These differences between environments are especially noticeable if the query runs near a boundary (for example, just before or after midnight, the start of a new month, or a new year). If consistency is crucial across different environments, use the `DateTimeZone.UtcNow` or `DateTimeZone.FixedUtcNow` functions to retrieve the date and time. ## Best practices and recommendations From ae0b27315f436e1e88897d8005983480dd5fd7d5 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 9 Jun 2025 09:14:31 -0700 Subject: [PATCH 866/934] Fixed incorrect metadata for metrics --- query-languages/m/custom-date-and-time-format-strings.md | 6 ++---- query-languages/m/custom-numeric-format-strings.md | 4 ++-- query-languages/m/power-query-m-function-reference.md | 2 +- .../m/standard-date-and-time-format-strings.md | 8 +++----- query-languages/m/standard-numeric-format-strings.md | 6 +++--- 5 files changed, 11 insertions(+), 15 deletions(-) diff --git a/query-languages/m/custom-date-and-time-format-strings.md b/query-languages/m/custom-date-and-time-format-strings.md index d306154ac..3beb9283e 100644 --- a/query-languages/m/custom-date-and-time-format-strings.md +++ b/query-languages/m/custom-date-and-time-format-strings.md @@ -1,10 +1,8 @@ --- +description: "Learn more about: Custom date and time format strings" title: "Custom date and time format strings" -description: Learn to use custom date and time format strings to convert date and time values into text representations, or to parse strings for dates and times. -author: DougKlopfenstein -ms.author: dougklo ms.date: 10/7/2024 -ms.topic: reference +ms.custom: "nonautomated-date" ms.subservice: m-background --- diff --git a/query-languages/m/custom-numeric-format-strings.md b/query-languages/m/custom-numeric-format-strings.md index 0cab15ee5..2b66c5d61 100644 --- a/query-languages/m/custom-numeric-format-strings.md +++ b/query-languages/m/custom-numeric-format-strings.md @@ -1,8 +1,8 @@ --- +description: "Learn more about: Custom numeric format strings" title: "Custom numeric format strings" -description: Learn how to create a custom numeric format string to format numeric data in .NET. A custom numeric format string has one or more custom numeric specifiers. ms.date: 9/30/2024 -ms.topic: reference +ms.custom: "nonautomated-date" ms.subservice: m-background --- # Custom numeric format strings diff --git a/query-languages/m/power-query-m-function-reference.md b/query-languages/m/power-query-m-function-reference.md index d39fad7fd..283076315 100644 --- a/query-languages/m/power-query-m-function-reference.md +++ b/query-languages/m/power-query-m-function-reference.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Power Query M function reference" title: "Power Query M function reference" -ms.date: 03/29/2024 +ms.date: 6/9/2025 ms.custom: "nonautomated-date" --- # Power Query M function reference diff --git a/query-languages/m/standard-date-and-time-format-strings.md b/query-languages/m/standard-date-and-time-format-strings.md index a8b422cd7..59931e34b 100644 --- a/query-languages/m/standard-date-and-time-format-strings.md +++ b/query-languages/m/standard-date-and-time-format-strings.md @@ -1,11 +1,9 @@ --- +description: "Learn more about: Standard date and time format strings" title: "Standard date and time format strings" -description: Learn how to use a standard date and time format string to define the text representation of a date and time value in Power Query M. -author: DougKlopfenstein -ms-author: dougklo ms.date: 10/11/2024 -ms.topic: reference -ms.subservice: m-background +ms.custom: "nonautomated-date" +s.subservice: m-background --- # Standard date and time format strings diff --git a/query-languages/m/standard-numeric-format-strings.md b/query-languages/m/standard-numeric-format-strings.md index f10709a5f..e815da65d 100644 --- a/query-languages/m/standard-numeric-format-strings.md +++ b/query-languages/m/standard-numeric-format-strings.md @@ -1,8 +1,8 @@ --- +description: "Learn more about: Standard numeric format strings" title: Standard numeric format strings -description: In this article, learn to use standard numeric format strings to format common numeric types into text representations in Power Query M. ms.date: 9/30/2024 -ms.topic: reference +ms.custom: "nonautomated-date" ms.subservice: m-background --- @@ -30,7 +30,7 @@ The following table describes the standard numeric format specifiers and display | Format specifier | Name | Description | Examples | |--|--|--|--| -| "C" or "c" | Currency | Result: A currency value.

    Supported by: All numeric types.

    Precision specifier: Number of decimal digits.

    Default precision specifier: Defined by the culture.

    More information: [The Currency ("C") Format Specifier](#CFormatString). | 123.456 ("C", en-US)
    -> \\$123.46

    123.456 ("C", fr-FR)
    -> 123,46 €

    123.456 ("C", ja-JP)
    -> ¥123

    -123.456 ("C3", en-US)
    -> (\\$123.456)

    -123.456 ("C3", fr-FR)
    -> -123,456 €

    -123.456 ("C3", ja-JP)
    -> -¥123.456 | +| "C" or "c" | Currency | Result: A currency value.

    Supported by: All numeric types.

    Precision specifier: Number of decimal digits.

    Default precision specifier: Defined by the culture.

    More information: [The Currency ("C") Format Specifier](#CFormatString). | 123.456 ("C", en-US)
    -> \$123.46

    123.456 ("C", fr-FR)
    -> 123,46 €

    123.456 ("C", ja-JP)
    -> ¥123

    -123.456 ("C3", en-US)
    -> (\$123.456)

    -123.456 ("C3", fr-FR)
    -> -123,456 €

    -123.456 ("C3", ja-JP)
    -> -¥123.456 | | "D" or "d" | Decimal | Result: Integer digits with optional negative sign.

    Supported by: Integral types only.

    Precision specifier: Minimum number of digits.

    Default precision specifier: Minimum number of digits required.

    More information: [The Decimal("D") Format Specifier](#DFormatString). | 1234 ("D")
    -> 1234

    -1234 ("D6")
    -> -001234 | | "E" or "e" | Exponential (scientific) | Result: Exponential notation.

    Supported by: All numeric types.

    Precision specifier: Number of decimal digits.

    Default precision specifier: 6.

    More information: [The Exponential ("E") Format Specifier](#EFormatString). | 1052.0329112756 ("E", en-US)
    -> 1.052033E+003

    1052.0329112756 ("e", fr-FR)
    -> 1,052033e+003

    -1052.0329112756 ("e2", en-US)
    -> -1.05e+003

    -1052.0329112756 ("E2", fr-FR)
    -> -1,05E+003 | | "F" or "f" | Fixed-point | Result: Integral and decimal digits with optional negative sign.

    Supported by: All numeric types.

    Precision specifier: Number of decimal digits.

    Default precision specifier: Defined by the culture.

    More information: [The Fixed-Point ("F") Format Specifier](#FFormatString). | 1234.567 ("F", en-US)
    -> 1234.57

    1234.567 ("F", de-DE)
    -> 1234,57

    1234 ("F1", en-US)
    -> 1234.0

    1234 ("F1", de-DE)
    -> 1234,0

    -1234.56 ("F4", en-US)
    -> -1234.5600

    -1234.56 ("F4", de-DE)
    -> -1234,5600 | From b0549fe349b7e9772679fd6a94b241165d64f551 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 9 Jun 2025 09:49:32 -0700 Subject: [PATCH 867/934] Updated one more article metadata --- query-languages/m/how-culture-affects-text-formatting.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/query-languages/m/how-culture-affects-text-formatting.md b/query-languages/m/how-culture-affects-text-formatting.md index af29f15f8..9cc9f6f5f 100644 --- a/query-languages/m/how-culture-affects-text-formatting.md +++ b/query-languages/m/how-culture-affects-text-formatting.md @@ -1,10 +1,8 @@ --- +description: "Learn more about: How culture affects text formatting" title: How culture affects text formatting -description: Learn about how culture is related to the locale in which queries are authored and how you can change the default culture. -author: DougKlopfenstein -ms-author: dougklo ms.date: 10/7/2024 -ms.topic: reference +ms.custom: "nonautomated-date" ms.subservice: m-background --- From 5149a904fefaca41ce63bbd42d73e57bf1497f7d Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 9 Jun 2025 09:53:00 -0700 Subject: [PATCH 868/934] One more article metadata fix --- query-languages/m/m-working-with-case.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/m/m-working-with-case.md b/query-languages/m/m-working-with-case.md index 8dbe7b190..48d03d0a1 100644 --- a/query-languages/m/m-working-with-case.md +++ b/query-languages/m/m-working-with-case.md @@ -2,6 +2,7 @@ description: "Learn more about: Capitalization in Power Query M" title: "Capitalization of text in Power Query M" ms.date: 5/30/2025 +ms.custom: "nonautomated-date" ms.subservice: m-background --- From 164ab313d49373080fc8fc3d67f691b4468f9092 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 9 Jun 2025 12:58:31 -0700 Subject: [PATCH 869/934] Updated M landing page for freshness --- query-languages/m/index.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/query-languages/m/index.yml b/query-languages/m/index.yml index bd170f6b5..f2c82b70e 100644 --- a/query-languages/m/index.yml +++ b/query-languages/m/index.yml @@ -7,7 +7,7 @@ metadata: title: Power Query M formula language reference description: Power Query M is used to filter, combine, and mash-up data from one or more supported data sources. ms.topic: landing-page - ms.date: 3/27/2024 + ms.date: 6/9/2025 ms.custom: nonautomated-date # linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | whats-new @@ -28,6 +28,10 @@ landingContent: url: expressions-values-and-let-expression.md - text: Evaluation model url: evaluation-model.md + - text: Types and type conversion + url: type-conversion.md + - text: How culture affects text formatting + url: how-culture-affects-text-formatting.md - linkListType: learn links: - text: Power Query documentation From 2e0ec52d170fab7aa0b214accbcfc4623cd9fcea Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 9 Jun 2025 13:57:52 -0700 Subject: [PATCH 870/934] Updated text functions article for freshness --- query-languages/m/text-functions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/text-functions.md b/query-languages/m/text-functions.md index 8f6b38edd..5571a61ea 100644 --- a/query-languages/m/text-functions.md +++ b/query-languages/m/text-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Text functions" title: "Text functions" -ms.date: 3/27/2024 +ms.date: 6/9/2025 ms.custom: "nonautomated-date" --- # Text functions @@ -12,7 +12,7 @@ These functions create and manipulate text values. |Name|Description| |------------|---------------| -|[Text.InferNumberType](text-infernumbertype.md)|Infers the granular number type (Int64.Type, Double.Type, and so on) of a number encoded in text.| +|[Text.InferNumberType](text-infernumbertype.md)|Infers the granular number type (`Int64.Type`, `Double.Type`, and so on) of a number encoded in text.| |[Text.Length](text-length.md)|Returns the number of characters in a text value.| ## Text Comparisons @@ -55,7 +55,7 @@ These functions create and manipulate text values. |Name|Description| |------------|---------------| -|[Text.Contains](text-contains.md)|Returns true if a text value substring was found within a text value string; otherwise, false.| +|[Text.Contains](text-contains.md)|Returns `true` if a text value substring was found within a text value string; otherwise, `false`.| |[Text.EndsWith](text-endswith.md)|Returns a logical value indicating whether a text value substring was found at the end of a string.| |[Text.PositionOf](text-positionof.md)|Returns the first position of the value (-1 if not found).| |[Text.PositionOfAny](text-positionofany.md)|Returns the first position in the text value of any listed character (-1 if not found).| @@ -67,7 +67,7 @@ These functions create and manipulate text values. |------------|---------------| |[Text.AfterDelimiter](text-afterdelimiter.md)|Returns the portion of text after the specified delimiter.| |[Text.BeforeDelimiter](text-beforedelimiter.md)|Returns the portion of text before the specified delimiter.| -|[Text.BetweenDelimiters](text-betweendelimiters.md)|Returns the portion of text between the specified startDelimiter and endDelimiter.| +|[Text.BetweenDelimiters](text-betweendelimiters.md)|Returns the portion of text between the specified `startDelimiter` and `endDelimiter`.| |[Text.Clean](text-clean.md)|Returns the original text value with non-printable characters removed.| |[Text.Combine](text-combine.md)|Returns a text value that is the result of joining all text values with each value separated by a separator.| |[Text.Lower](text-lower.md)|Returns the lowercase of a text value.| From 3b2e1db50119553e68069d8d3142051fed2e016f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 11 Jun 2025 09:09:31 -0700 Subject: [PATCH 871/934] Fixed heading and table heading --- .../m/m-local-fixed-utc-variants.md | 4 ++-- .../m/media/zone-utcnow-vs-fixedutcnow.png | Bin 17202 -> 20055 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index 7357147bd..38344b804 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -2,7 +2,7 @@ description: "Learn more about: Local, fixed, and UTC variants of current time functions" title: "Local, fixed, and UTC variants of current time functions" ms.topic: conceptual -ms.date: 6/6/2025 +ms.date: 6/11/2025 ms.custom: "nonautomated-date" ms.subservice: m-background --- @@ -158,7 +158,7 @@ The output of this example in both Power Query Desktop and Power Query Online is :::image type="content" source="media/zone-utcnow-vs-fixedutcnow.png" alt-text="Screenshot of the table created by DateTimeZone.UtcNow with dynamic dates and times and DateTimeZone.FixedUtcNow with fixed dates and times."::: -## Affects on other functions +## Effects on other functions Other Power Query M functions that depend on the current date and time can also be affected by how the local time is returned on either Power Query Desktop or Power Query Online. For example, if you use the [DateTimeZone.ToLocal](datetimezone-tolocal.md) function to convert UTC time to local time, it still returns the UTC time on Power Query Online. diff --git a/query-languages/m/media/zone-utcnow-vs-fixedutcnow.png b/query-languages/m/media/zone-utcnow-vs-fixedutcnow.png index f78bf409c46112b64dd5c9f1a8728f8a136a8d09..6c31972643b0b729d58292ab74516ff1ddfd87b8 100644 GIT binary patch literal 20055 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

    r8Y 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 TsUqqsh~LRdDoT`!8T$S|>WJfp From 85b2607e61c0d2da5d1962fd14e3f78a6a0215c3 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 11 Jun 2025 09:18:20 -0700 Subject: [PATCH 872/934] Applied stupid new rules to images --- query-languages/m/m-local-fixed-utc-variants.md | 6 +++--- .../localnow-vs-fixedlocalnow.png | Bin .../zone-localnow-vs-fixedlocalnow.png | Bin .../zone-utcnow-vs-fixedutcnow.png | Bin 4 files changed, 3 insertions(+), 3 deletions(-) rename query-languages/m/media/{ => m-local-fixed-utc-variants}/localnow-vs-fixedlocalnow.png (100%) rename query-languages/m/media/{ => m-local-fixed-utc-variants}/zone-localnow-vs-fixedlocalnow.png (100%) rename query-languages/m/media/{ => m-local-fixed-utc-variants}/zone-utcnow-vs-fixedutcnow.png (100%) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index 38344b804..221467c28 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -80,7 +80,7 @@ in The output of this example is: -:::image type="content" source="media/localnow-vs-fixedlocalnow.png" alt-text="Screenshot of the table created by DateTime.LocalNow with dynamic dates and times and DateTime.FixedLocalNow with fixed dates and times."::: +:::image type="content" source="media/m-local-fixed-utc-variants/localnow-versus-fixedlocalnow.png" alt-text="Screenshot of the table created by DateTime.LocalNow with dynamic dates and times and DateTime.FixedLocalNow with fixed dates and times."::: If you look at the output, you might notice that even though the `DateTime.LocalNow` function appears first in the code, the value returned for `DateTime.FixedLocalNow` shows a time that occurs before the `DateTime.LocalTime` time. Even though `DateTime.LocalNow` is listed first in the table construction, the order of evaluation in Power Query M isn't guaranteed to follow the order of fields in a table. Instead, Power Query uses a lazy evaluation model. Using this model means that fields are only evaluated when needed and the engine determines the evaluation order, not the order in your code. In this case, the `DateTime.FixedLocalNow` function is evaluated first, so the first time returned for this function occurs before the first time returned for `DateTime.LocalNow`. @@ -114,7 +114,7 @@ in The output of this example in Power Query Desktop is: -:::image type="content" source="media/zone-localnow-vs-fixedlocalnow.png" alt-text="Screenshot of the table created by DateTimeZone.LocalNow with dynamic dates and times and DateTimeZone.FixedLocalNow with fixed dates and times."::: +:::image type="content" source="media/m-local-fixed-utc-variants/zone-localnow-versus-fixedlocalnow.png" alt-text="Screenshot of the table created by DateTimeZone.LocalNow with dynamic dates and times and DateTimeZone.FixedLocalNow with fixed dates and times."::: > [!NOTE] >If you run this example in Power Query Online, the time returned is always UTC time and the time zone portion of the returned values are always `+00:00`. @@ -156,7 +156,7 @@ in The output of this example in both Power Query Desktop and Power Query Online is: -:::image type="content" source="media/zone-utcnow-vs-fixedutcnow.png" alt-text="Screenshot of the table created by DateTimeZone.UtcNow with dynamic dates and times and DateTimeZone.FixedUtcNow with fixed dates and times."::: +:::image type="content" source="media/m-local-fixed-utc-variants/zone-utcnow-versus-fixedutcnow.png" alt-text="Screenshot of the table created by DateTimeZone.UtcNow with dynamic dates and times and DateTimeZone.FixedUtcNow with fixed dates and times."::: ## Effects on other functions diff --git a/query-languages/m/media/localnow-vs-fixedlocalnow.png b/query-languages/m/media/m-local-fixed-utc-variants/localnow-vs-fixedlocalnow.png similarity index 100% rename from query-languages/m/media/localnow-vs-fixedlocalnow.png rename to query-languages/m/media/m-local-fixed-utc-variants/localnow-vs-fixedlocalnow.png diff --git a/query-languages/m/media/zone-localnow-vs-fixedlocalnow.png b/query-languages/m/media/m-local-fixed-utc-variants/zone-localnow-vs-fixedlocalnow.png similarity index 100% rename from query-languages/m/media/zone-localnow-vs-fixedlocalnow.png rename to query-languages/m/media/m-local-fixed-utc-variants/zone-localnow-vs-fixedlocalnow.png diff --git a/query-languages/m/media/zone-utcnow-vs-fixedutcnow.png b/query-languages/m/media/m-local-fixed-utc-variants/zone-utcnow-vs-fixedutcnow.png similarity index 100% rename from query-languages/m/media/zone-utcnow-vs-fixedutcnow.png rename to query-languages/m/media/m-local-fixed-utc-variants/zone-utcnow-vs-fixedutcnow.png From 73587f0997eb8ab63a7be102a864e8fd8574b471 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 11 Jun 2025 09:21:04 -0700 Subject: [PATCH 873/934] Fixed filenames --- ...calnow.png => localnow-versus-fixedlocalnow.png} | Bin ...w.png => zone-localnow-versus-fixedlocalnow.png} | Bin ...tcnow.png => zone-utcnow-versus-fixedutcnow.png} | Bin 3 files changed, 0 insertions(+), 0 deletions(-) rename query-languages/m/media/m-local-fixed-utc-variants/{localnow-vs-fixedlocalnow.png => localnow-versus-fixedlocalnow.png} (100%) rename query-languages/m/media/m-local-fixed-utc-variants/{zone-localnow-vs-fixedlocalnow.png => zone-localnow-versus-fixedlocalnow.png} (100%) rename query-languages/m/media/m-local-fixed-utc-variants/{zone-utcnow-vs-fixedutcnow.png => zone-utcnow-versus-fixedutcnow.png} (100%) diff --git a/query-languages/m/media/m-local-fixed-utc-variants/localnow-vs-fixedlocalnow.png b/query-languages/m/media/m-local-fixed-utc-variants/localnow-versus-fixedlocalnow.png similarity index 100% rename from query-languages/m/media/m-local-fixed-utc-variants/localnow-vs-fixedlocalnow.png rename to query-languages/m/media/m-local-fixed-utc-variants/localnow-versus-fixedlocalnow.png diff --git a/query-languages/m/media/m-local-fixed-utc-variants/zone-localnow-vs-fixedlocalnow.png b/query-languages/m/media/m-local-fixed-utc-variants/zone-localnow-versus-fixedlocalnow.png similarity index 100% rename from query-languages/m/media/m-local-fixed-utc-variants/zone-localnow-vs-fixedlocalnow.png rename to query-languages/m/media/m-local-fixed-utc-variants/zone-localnow-versus-fixedlocalnow.png diff --git a/query-languages/m/media/m-local-fixed-utc-variants/zone-utcnow-vs-fixedutcnow.png b/query-languages/m/media/m-local-fixed-utc-variants/zone-utcnow-versus-fixedutcnow.png similarity index 100% rename from query-languages/m/media/m-local-fixed-utc-variants/zone-utcnow-vs-fixedutcnow.png rename to query-languages/m/media/m-local-fixed-utc-variants/zone-utcnow-versus-fixedutcnow.png From a3ed88cc1815f768ea86fce34adb9176c1072577 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 11 Jun 2025 13:17:18 -0700 Subject: [PATCH 874/934] updating ATAN based on user feedback (workitem #427436) --- query-languages/dax/atan-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/atan-function-dax.md b/query-languages/dax/atan-function-dax.md index 3796cb4d5..65a39bed1 100644 --- a/query-languages/dax/atan-function-dax.md +++ b/query-languages/dax/atan-function-dax.md @@ -22,7 +22,7 @@ ATAN(number) ## Return value -Returns the inverse hyperbolic tangent of a number. +Returns the inverse tangent of a number. ## Remarks From b6556c4183155ae6bbcc9267eab98a4223d694a0 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 11 Jun 2025 13:28:33 -0700 Subject: [PATCH 875/934] updating example for previousmonth to align with AW DW 2020 and reacting to feedback #425984 --- query-languages/dax/previousmonth-function-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/previousmonth-function-dax.md b/query-languages/dax/previousmonth-function-dax.md index 11e3d5a34..eac05333f 100644 --- a/query-languages/dax/previousmonth-function-dax.md +++ b/query-languages/dax/previousmonth-function-dax.md @@ -39,10 +39,10 @@ A table containing a single column of date values. ## Example -The following sample formula creates a measure that calculates the 'previous month sales' for Internet sales. +The following sample formula creates a measure that calculates the 'previous month sales' for sales. ```dax -= CALCULATE(SUM(InternetSales_USD[SalesAmount_USD]), PREVIOUSMONTH('DateTime'[DateKey])) += CALCULATE ( SUM ( 'Sales'[Sales Amount] ), PREVIOUSMONTH ( 'Date'[Date] ) ) ``` ## Related content From f5423795bf8a5cafc30d2e8fb5f72914dc5f8485 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 11 Jun 2025 13:53:13 -0700 Subject: [PATCH 876/934] expanding description for calendarauto for feedback item #424716 --- query-languages/dax/calendarauto-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/calendarauto-function-dax.md b/query-languages/dax/calendarauto-function-dax.md index 4326d1ee3..ab4dd8c0a 100644 --- a/query-languages/dax/calendarauto-function-dax.md +++ b/query-languages/dax/calendarauto-function-dax.md @@ -42,4 +42,4 @@ In this example, the MinDate and MaxDate in the data model are July 1, 2010 and `CALENDARAUTO()` will return all dates between January 1, 2010 and December 31, 2011. -`CALENDARAUTO(3)` will return all dates between April 1, 2010 and March 31, 2012. +`CALENDARAUTO(3)` will return all dates between April 1, 2010 and March 31, 2012. As in this example `fiscal_year_end_month` is 3, the first years starts on April 1st and ends on March 31st. As a result, the range is determined by selecting the first day of the fiscal year on or before the MinDate's year (April 1, 2010) and the last day of the fiscal year after or within the MaxDate's year (March 31, 2012). From ba63bff96816267b0fe84637cb76b62320e0691e Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Wed, 11 Jun 2025 13:56:08 -0700 Subject: [PATCH 877/934] clarifying diff between count and counta in response to feedback item #424713 --- query-languages/dax/aggregation-functions-dax.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/dax/aggregation-functions-dax.md b/query-languages/dax/aggregation-functions-dax.md index b228389ef..484efc4c8 100644 --- a/query-languages/dax/aggregation-functions-dax.md +++ b/query-languages/dax/aggregation-functions-dax.md @@ -14,8 +14,8 @@ Aggregation functions calculate a (scalar) value such as count, sum, average, mi |[AVERAGE](average-function-dax.md) | Returns the average (arithmetic mean) of all the numbers in a column. | |[AVERAGEA](averagea-function-dax.md) | Returns the average (arithmetic mean) of the values in a column. | |[AVERAGEX](averagex-function-dax.md) | Calculates the average (arithmetic mean) of a set of expressions evaluated over a table. | -|[COUNT](count-function-dax.md) | Counts the number of rows in the specified column that contain non-blank values. | -|[COUNTA](counta-function-dax.md) | Counts the number of rows in the specified column that contain non-blank values. | +|[COUNT](count-function-dax.md) | Counts the number of rows in the specified column that contain non-blank values. Does not support Boolean values. | +|[COUNTA](counta-function-dax.md) | Counts the number of rows in the specified column that contain non-blank values. Supports Boolean values. | |[COUNTAX](countax-function-dax.md) | Counts non-blank results when evaluating the result of an expression over a table. | |[COUNTBLANK](countblank-function-dax.md) | Counts the number of blank cells in a column. | |[COUNTROWS](countrows-function-dax.md) | Counts the number of rows in the specified table, or in a table defined by an expression. | From 079b3f68685c72d433d45842b9d88e296a584ff1 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Fri, 13 Jun 2025 09:35:19 -0700 Subject: [PATCH 878/934] Update abs-function-dax.md From 335ae73caaa00717abe4bfc3a55f6eacb904bbf6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 13 Jun 2025 13:15:37 -0700 Subject: [PATCH 879/934] Updated conditionals and operators articles --- query-languages/m/m-spec-conditionals.md | 4 +- query-languages/m/operators.md | 113 ++++++++++++----------- 2 files changed, 59 insertions(+), 58 deletions(-) diff --git a/query-languages/m/m-spec-conditionals.md b/query-languages/m/m-spec-conditionals.md index 16c4b590c..d8946fb28 100644 --- a/query-languages/m/m-spec-conditionals.md +++ b/query-languages/m/m-spec-conditionals.md @@ -2,7 +2,7 @@ title: M Language Conditionals description: Describes using conditionals in the Power Query M formula language ms.topic: conceptual -ms.date: 03/29/2024 +ms.date: 6/13/2025 ms.custom: "nonautomated-date" ms.subservice: m-specification --- @@ -30,7 +30,7 @@ if 1 = 1 then "yes" else "no" // "yes" The following holds when evaluating an _if-expression_: -* If the value produced by evaluating the _if-condition_ is not a logical value, then an error with reason code `"Expression.Error"` is raised. +* If the value produced by evaluating the _if-condition_ isn't a logical value, then an error with reason code `"Expression.Error"` is raised. * The _true-expression_ is only evaluated if the _if-condition_ evaluates to the value `true`. diff --git a/query-languages/m/operators.md b/query-languages/m/operators.md index a3d1e226d..a52c9481b 100644 --- a/query-languages/m/operators.md +++ b/query-languages/m/operators.md @@ -2,14 +2,14 @@ description: "Learn more about: Operators" title: "Operators" ms.topic: conceptual -ms.date: 03/29/2024 +ms.date: 6/13/2025 ms.custom: "nonautomated-date" ms.subservice: m-background --- # Operators -The Power Query M formula language includes a set of operators that can be used in an expression. **Operators** are applied to **operands** to form symbolic expressions. For example, in the expression 1 + 2 the numbers 1 and 2 are operands and the operator is the addition operator (+). +The Power Query M formula language includes a set of operators that can be used in an expression. **Operators** are applied to **operands** to form symbolic expressions. For example, in the expression `1 + 2` the numbers `1` and `2` are operands and the operator is the addition operator (`+`). The meaning of an operator can vary depending on the type of operand values. The language has the following operators: @@ -17,130 +17,131 @@ The meaning of an operator can vary depending on the type of operand values. The |Expression|Equals| |--------------|----------| -|1 + 2|Numeric addition: 3| -|#time(12,23,0) + #duration(0,0,2,0)|Time arithmetic: #time(12,25,0)| +|`1 + 2`|Numeric addition: `3`| +|`#time(12,23,0) + #duration(0,0,2,0)`|Time arithmetic: `#time(12,25,0)`| ### Combination operator (&) |Function|Equals| |------------|----------| -|"A" & "BC"|Text concatenation: "ABC"| -|{1} & {2, 3}|List concatenation: {1, 2, 3}| -|[ a = 1 ] & [ b = 2 ]|Record merge: [ a = 1, b = 2 ]| +|`"A" & "BC"`|Text concatenation: `"ABC"`| +|`{1} & {2, 3}`|List concatenation: `{1, 2, 3}`| +|`[ a = 1 ] & [ b = 2 ]`|Record merge: `[ a = 1, b = 2 ]`| ### List of M operators -**Common operators** which apply to null, logical, number, time, date, datetime, datetimezone, duration, text, binary) +**Common operators** that apply to `null`, `logical`, `number`, `time`, `date`, `datetime`, `datetimezone`, `duration`, `text`, `binary` |Operator|Description| |------------|---------------| -|>|Greater than| -|>=|Greater than or equal| -|<|Less than| -|<=|Less than or equal| -|=|Equal| -|<>|Not equal| +|`>`|Greater than| +|`>=`|Greater than or equal| +|`<`|Less than| +|`<=`|Less than or equal| +|`=`|Equal| +|`<>`|Not equal| +|`??`|Null coalescing| **Logical operators** (In addition to **Common operators**) |Operator|Description| |------------|---------------| -|or|Conditional logical OR| -|and|Conditional logical AND| -|not|Logical NOT| +|`or`|Conditional logical `OR`| +|`and`|Conditional logical `AND`| +|`not`|Logical `NOT`| **Number operators** (In addition to **Common operators**) |Operator|Description| |------------|---------------| -|+|Sum| -|-|Difference| -|*|Product| -|/|Quotient| -|+x|Unary plus| -|-x|Negation| +|`+`|Sum| +|`-`|Difference| +|`*`|Product| +|`/`|Quotient| +|`+x`|Unary plus| +|`-x`|Negation| **Text operators** (In addition to **Common operators**) |Operator|Description| |------------|---------------| -|&|Concatenation| +|`&`|Concatenation| **List, record, table operators** |Operator|Description| |------------|---------------| -|=|Equal| -|<>|Not equal| -|&|Concatenation| +|`=`|Equal| +|`<>`|Not equal| +|`&`|Concatenation| **Record lookup operator** |Operator|Description| |------------|---------------| -|[]|Access the fields of a record by name.| +|`[]`|Access the fields of a record by name.| **List indexer operator** |Operator|Description| |------------|---------------| -|{}|Access an item in a list by its zero-based numeric index.| +|`{}`|Access an item in a list by its zero-based numeric index.| **Type compatibility and assertion operators** |Operator|Description| |------------|---------------| -|is|The expression x is y returns true if the type of x is compatible with y, and returns false if the type of x is not compatible with y.| -|as|The expression x as y asserts that the value x is compatible with y as per the is operator.| +|`is`|The expression `x is y` returns `true` if the type of `x` is compatible with `y`, and returns `false` if the type of `x` is not compatible with `y`.| +|`as`|The expression `x as y` asserts that the value `x` is compatible with `y` as per the `is` operator.| **Date operators** |Operator|Left Operand|Right Operand|Meaning| |------------|----------------|-----------------|-----------| -|x + y|time|duration|Date offset by duration| -|x + y|duration|time|Date offset by duration| -|x - y|time|duration|Date offset by negated duration| -|x - y|time|time|Duration between dates| -|x & y|date|time|Merged datetime| +|`x + y`|`time`|`duration`|Date offset by duration| +|`x + y`|`duration`|`time`|Date offset by duration| +|`x - y`|`time`|`duration`|Date offset by negated duration| +|`x - y`|`time`|`time`|Duration between dates| +|`x & y`|`date`|`time`|Merged datetime| **Datetime operators** |Operator|Left Operand|Right Operand|Meaning| |------------|----------------|-----------------|-----------| -|x + y|datetime|duration|Datetime offset by duration| -|x + y|duration|datetime|Datetime offset by duration| -|x - y|datetime|duration|Datetime offset by negated duration| -|x - y|datetime|datetime|Duration between datetimes| +|`x + y`|`datetime`|`duration`|Datetime offset by duration| +|`x + y`|`duration`|`datetime`|Datetime offset by duration| +|`x - y`|`datetime`|`duration`|Datetime offset by negated duration| +|`x - y`|`datetime`|`datetime`|Duration between datetimes| **Datetimezone operators** |Operator|Left Operand|Right Operand|Meaning| |------------|----------------|-----------------|-----------| -|x + y|datetimezone|duration|Datetimezone offset by duration| -|x + y|duration|datetimezone|Datetimezone offset by duration| -|x - y|datetimezone|duration|Datetimezone offset by negated duration| -|x - y|datetimezone|datetimezone|Duration between datetimezones| +|`x + y`|`datetimezone`|`duration`|Datetimezone offset by duration| +|`x + y`|`duration`|`datetimezone`|Datetimezone offset by duration| +|`x - y`|`datetimezone`|`duration`|Datetimezone offset by negated duration| +|`x - y`|`datetimezone`|`datetimezone`|Duration between datetimezones| **Duration operators** |Operator|Left Operand|Right Operand|Meaning| |------------|----------------|-----------------|-----------| -|x + y|datetime|duration|Datetime offset by duration| -|x + y|duration|datetime|Datetime offset by duration| -|x + y|duration|duration|Sum of durations| -|x - y|datetime|duration|Datetime offset by negated duration| -|x - y|datetime|datetime|Duration between datetimes| -|x - y|duration|duration|Difference of durations| -|x * y|duration|number|N times a duration| -|x * y|number|duration|N times a duration| -|x / y|duration|number|Fraction of a duration| +|`x + y`|`datetime`|`duration`|Datetime offset by duration| +|`x + y`|`duration`|`datetime`|Datetime offset by duration| +|`x + y`|`duration`|`duration`|Sum of durations| +|`x - y`|`datetime`|`duration`|Datetime offset by negated duration| +|`x - y`|`datetime`|`datetime`|Duration between datetimes| +|`x - y`|`duration`|`duration`|Difference of durations| +|`x * y`|`duration`|`number`|N times a duration| +|`x * y`|`number`|`duration`|N times a duration| +|`x / y`|`duration`|`number`|Fraction of a duration| > [!NOTE] -> Not all combinations of values may be supported by an operator. Expressions that, when evaluated, encounter undefined operator conditions evaluate to errors. For more information about errors in M, go to [Errors](errors.md) +> Not all combinations of values can be supported by an operator. Expressions that, when evaluated, encounter undefined operator conditions evaluate to errors. For more information about errors in M, go to [Errors](errors.md) **Error example**: |Function|Equals| |------------|----------| -|1 + "2"|Error: adding number and text is not supported| - +|`1 + "2"`|Error: adding number and text is not supported| + \ No newline at end of file From 139891491cb382909eb97d927aba7da6d14821ce Mon Sep 17 00:00:00 2001 From: Jasmita Yechuri <58672674+JasmitaY@users.noreply.github.com> Date: Mon, 16 Jun 2025 15:02:36 -0700 Subject: [PATCH 880/934] Update left-function-dax.md Updated the DAX example based on instructions of example to "return the first five characters." The previous example was only returning 3 and format was different with parenthesis not aligning as well. --- query-languages/dax/left-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/left-function-dax.md b/query-languages/dax/left-function-dax.md index cf9dc6d1d..0eebdeb8e 100644 --- a/query-languages/dax/left-function-dax.md +++ b/query-languages/dax/left-function-dax.md @@ -36,7 +36,7 @@ A text string. The following example returns the first five characters of the company name in the column [ResellerName] and the first five letters of the geographical code in the column [GeographyKey] and concatenates them, to create an identifier. ```dax -= CONCATENATE(LEFT('Reseller'[ResellerName],LEFT(GeographyKey,3)) += CONCATENATE(LEFT('Reseller'[ResellerName], 5), LEFT('Reseller'[GeographyKey], 5)) ``` If the `num_chars` argument is a number that is larger than the number of characters available, the function returns the maximum characters available and does not raise an error. For example, the column [GeographyKey] contains numbers such as 1, 12 and 311; therefore the result also has variable length. From 10fa2ca4ec7160bd5705aae0eeb2fbc9f72cae0f Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 17 Jun 2025 09:53:32 -0700 Subject: [PATCH 881/934] SU07 adding orderBy parameter to VC functions --- query-languages/dax/first-function-dax.md | 3 ++- query-languages/dax/last-function-dax.md | 3 ++- query-languages/dax/movingaverage-function-dax.md | 7 ++++--- query-languages/dax/next-function-dax.md | 3 ++- query-languages/dax/previous-function-dax.md | 3 ++- query-languages/dax/range-function-dax.md | 7 ++++--- query-languages/dax/runningsum-function-dax.md | 9 +++++---- 7 files changed, 21 insertions(+), 14 deletions(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 57f5ac50e..11d3af626 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -12,7 +12,7 @@ Used in visual calculations only. Retrieves a value in the visual matrix from th ## Syntax ```dax -FIRST ( [, ][, ][, reset] ) +FIRST ( [, ][, ][, ][, reset] ) ``` ### Parameters @@ -21,6 +21,7 @@ FIRST ( [, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:

    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index 4dd711aba..ded6cb5ea 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -12,7 +12,7 @@ Used in visual calculations only. Retrieves a value in the visual matrix from th ## Syntax ```dax -LAST ( [, ][, ][, reset] ) +LAST ( [, ][, ][, ][, reset] ) ``` ### Parameters @@ -21,6 +21,7 @@ LAST ( [, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 3b62052c0..612c1a4a7 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -20,7 +20,7 @@ Returns a moving average calculated along the given axis of the visual matrix. T ## Syntax ```dax -MOVINGAVERAGE ( , [, ][, ][, ][, ] ) +MOVINGAVERAGE ( , [, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -30,7 +30,8 @@ MOVINGAVERAGE ( , [, ][, ][, ] |`column`|The column that provides the value for each element.| |`windowSize`|The number of rows to include in the calculation. Must be a constant value.| |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| -|`axis`|(Optional) An axis reference, the direction along which the moving average will be calculated.| +|`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| @@ -42,7 +43,7 @@ A scalar value, the moving average at the current element of the axis. This function can be used in visual calculations only. -The `includeCurrent`, `axis`, `blanks` and `reset` parameters can be omitted. +The `includeCurrent`, `axis`, `orderBy`, `blanks` and `reset` parameters can be omitted. If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 406894300..3e0abdd79 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -12,7 +12,7 @@ Used in visual calculations only. Retrieves a value in the next element of an ax ## Syntax ```dax -NEXT ( [, ][, ][, ][, reset] ) +NEXT ( [, ][, ][, ][, ][, reset] ) ``` ### Parameters @@ -22,6 +22,7 @@ NEXT ( [, ][, ][, ][, reset] ) |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index b27e68fdd..43d2c1b18 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -12,7 +12,7 @@ Used in visual calculations only. Retrieves a value in the previous element of a ## Syntax ```dax -PREVIOUS ( [, ][, ][, ][, reset] ) +PREVIOUS ( [, ][, ][, ][, ][, reset] ) ``` ### Parameters @@ -22,6 +22,7 @@ PREVIOUS ( [, ][, ][, ][, reset] ) |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, `1` is used (the exactly previous row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 84eea597c..2d5284b50 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -20,7 +20,7 @@ Returns an interval of rows within the given axis, relative to the current row. ## Syntax ```dax -RANGE ( [, ][, ][, ][, ] ) +RANGE ( [, ][, ][, ][, ][, ] ) ``` ### Parameters @@ -29,7 +29,8 @@ RANGE ( [, ][, ][, ][, ] ) |--------|--------------| |`step`|The number of rows before (negative value) or after (positive value) the current row to include in the range. Must be a constant value.
    - If negative, the window will contain the last -step rows before the current row.
    - Otherwise, the window will contain the first step rows after the current row.| |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| -|`axis`|(Optional) An axis reference, the direction along which the interval will be created.| +|`axis`|(Optional) An axis reference, the direction along which the interval will be created. If omitted, the first axis of the Visual Shape definition is used.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| @@ -41,7 +42,7 @@ An interval of data rows. This function can be used in visual calculations only. -The `includeCurrent`, `axis`, `blanks` and `reset` parameters can be omitted. +The `includeCurrent`, `axis`, `orderBy`, `blanks` and `reset` parameters can be omitted. If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 164d8c069..23d730b45 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -3,7 +3,7 @@ description: "Learn more about: RUNNINGSUM" title: "RUNNINGSUM function (DAX)" ms.service: powerbi ms.subservice: dax -ms.date: 01/17/2023 +ms.date: 6/16/2025 ms.topic: reference author: masanto-msft ms.author: masanto @@ -20,7 +20,7 @@ Returns a running sum calculated along the given axis of the visual matrix. That ## Syntax ```dax -RUNNINGSUM ( [, ][, ][, ] ) +RUNNINGSUM ( [, ][, ][, ][, ] ) ``` ### Parameters @@ -28,7 +28,8 @@ RUNNINGSUM ( [, ][, ][, ] ) |Term|Definition| |--------|--------------| |`column`|The column that provides the value for each element.| -|`axis`|(Optional) An axis reference, the direction along which the running sum will be calculated.| +|`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| @@ -40,7 +41,7 @@ A scalar value, the running sum up to the current element of the axis. This function can be used in visual calculations only. -The `axis`, `blanks` and `reset` parameters can be omitted. +The `axis`, `orderBy`, `blanks` and `reset` parameters can be omitted. If the value of `reset` is absolute (i.e., a positive integer, `HIGHESTPARENT` or a field reference) and the calculation is evaluated at or above the target level in the hierarchy, the calculation resets for each individual element. That is, the function is evaluated within a partition containing only that specific element. From 27d81bace8347324f95465bb4567cc064ea1f75b Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 17 Jun 2025 16:48:31 -0700 Subject: [PATCH 882/934] responding to @masanto's review --- query-languages/dax/first-function-dax.md | 2 +- query-languages/dax/movingaverage-function-dax.md | 2 +- query-languages/dax/runningsum-function-dax.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/first-function-dax.md b/query-languages/dax/first-function-dax.md index 11d3af626..a69aeec07 100644 --- a/query-languages/dax/first-function-dax.md +++ b/query-languages/dax/first-function-dax.md @@ -21,7 +21,7 @@ FIRST ( [, ][, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine how to sort each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 612c1a4a7..5857c1630 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -30,7 +30,7 @@ MOVINGAVERAGE ( , [, ][, ][, |`column`|The column that provides the value for each element.| |`windowSize`|The number of rows to include in the calculation. Must be a constant value.| |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| -|`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`axis`|(Optional) An axis reference, the direction along which the moving average will be calculated. If omitted, the first axis of the Visual Shape definition is used.| |`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 23d730b45..96afb859c 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -28,7 +28,7 @@ RUNNINGSUM ( [, ][, ][, ][, ] ) |Term|Definition| |--------|--------------| |`column`|The column that provides the value for each element.| -|`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| +|`axis`|(Optional) An axis reference, the direction along which the running sum will be calculated. If omitted, the first axis of the Visual Shape definition is used.| |`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| From d3d04ed412c8d64b591146a73db685de4c3b5259 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Tue, 17 Jun 2025 17:20:45 -0700 Subject: [PATCH 883/934] another review --- query-languages/dax/last-function-dax.md | 2 +- query-languages/dax/movingaverage-function-dax.md | 2 +- query-languages/dax/next-function-dax.md | 2 +- query-languages/dax/previous-function-dax.md | 2 +- query-languages/dax/range-function-dax.md | 2 +- query-languages/dax/runningsum-function-dax.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/query-languages/dax/last-function-dax.md b/query-languages/dax/last-function-dax.md index ded6cb5ea..6778f8068 100644 --- a/query-languages/dax/last-function-dax.md +++ b/query-languages/dax/last-function-dax.md @@ -21,7 +21,7 @@ LAST ( [, ][, ][, ][, reset] ) |--------|--------------| |`column`|The column to be retrieved.| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine how to sort each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/movingaverage-function-dax.md b/query-languages/dax/movingaverage-function-dax.md index 5857c1630..dca6df192 100644 --- a/query-languages/dax/movingaverage-function-dax.md +++ b/query-languages/dax/movingaverage-function-dax.md @@ -31,7 +31,7 @@ MOVINGAVERAGE ( , [, ][, ][, |`windowSize`|The number of rows to include in the calculation. Must be a constant value.| |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |`axis`|(Optional) An axis reference, the direction along which the moving average will be calculated. If omitted, the first axis of the Visual Shape definition is used.| -|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine how to sort each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/next-function-dax.md b/query-languages/dax/next-function-dax.md index 3e0abdd79..9df5d32e3 100644 --- a/query-languages/dax/next-function-dax.md +++ b/query-languages/dax/next-function-dax.md @@ -22,7 +22,7 @@ NEXT ( [, ][, ][, ][, ][, reset] ) |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go forward to fetch the value. If omitted, **1** is used (the exactly next row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine how to sort each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT`(the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/previous-function-dax.md b/query-languages/dax/previous-function-dax.md index 43d2c1b18..aed025a8c 100644 --- a/query-languages/dax/previous-function-dax.md +++ b/query-languages/dax/previous-function-dax.md @@ -22,7 +22,7 @@ PREVIOUS ( [, ][, ][, ][, ][, reset] ) |`column`|The column to be retrieved.| |`steps`| (Optional) Indicates the number of rows to go backward to fetch the value. If omitted, `1` is used (the exactly previous row).| |`axis`|(Optional) An axis reference. If omitted, the first axis of the Visual Shape definition is used.| -|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine how to sort each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/range-function-dax.md b/query-languages/dax/range-function-dax.md index 2d5284b50..6472bc876 100644 --- a/query-languages/dax/range-function-dax.md +++ b/query-languages/dax/range-function-dax.md @@ -30,7 +30,7 @@ RANGE ( [, ][, ][, ][, ][, ] |`step`|The number of rows before (negative value) or after (positive value) the current row to include in the range. Must be a constant value.
    - If negative, the window will contain the last -step rows before the current row.
    - Otherwise, the window will contain the first step rows after the current row.| |`includeCurrent`|(Optional) A logical value specifying whether or not to include the current row in the range. Default value is True.| |`axis`|(Optional) An axis reference, the direction along which the interval will be created. If omitted, the first axis of the Visual Shape definition is used.| -|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine how to sort each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| diff --git a/query-languages/dax/runningsum-function-dax.md b/query-languages/dax/runningsum-function-dax.md index 96afb859c..c0e91ab7e 100644 --- a/query-languages/dax/runningsum-function-dax.md +++ b/query-languages/dax/runningsum-function-dax.md @@ -29,7 +29,7 @@ RUNNINGSUM ( [, ][, ][, ][, ] ) |--------|--------------| |`column`|The column that provides the value for each element.| |`axis`|(Optional) An axis reference, the direction along which the running sum will be calculated. If omitted, the first axis of the Visual Shape definition is used.| -|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine the sort of each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| +|`orderBy`|(Optional) An ORDERBY() clause with expressions that determine how to sort each partition along the `axis`. If `orderBy` is not provided, the data is sorted by the grouping columns on the default `axis` in ascending order by default.| |`blanks`|(Optional) An enumeration that defines how to handle blank values when sorting the `axis`.
    The supported values are:
    • `DEFAULT` (the default value), where the behavior for numerical values is blank values are ordered between zero and negative values. The behavior for strings is blank values are ordered before all strings, including empty strings.
    • `FIRST`, blanks are always ordered on the beginning, regardless of ascending or descending sorting order.
    • `LAST`, blanks are always ordered on the end, regardless of ascending or descending sorting order.
    | |`reset`|(Optional) Indicates if the calculation resets, and at which level of the visual shape's column hierarchy. Accepted values are: a field reference to a column in the current visual shape, `NONE` (default), `LOWESTPARENT`, `HIGHESTPARENT`, or an integer. The behavior depends on the integer sign:
    - If zero or omitted, the calculation does not reset. Equivalent to `NONE`.
    - If positive, the integer identifies the column starting from the highest, independent of grain. `HIGHESTPARENT` is equivalent to 1.
    - If negative, the integer identifies the column starting from the lowest, relative to the current grain. `LOWESTPARENT` is equivalent to -1.| From ceece13443b533a7625cd3e715088c318b843d55 Mon Sep 17 00:00:00 2001 From: Jasmita Yechuri <58672674+JasmitaY@users.noreply.github.com> Date: Wed, 18 Jun 2025 14:01:42 -0700 Subject: [PATCH 884/934] Update left-function-dax.md Updated after testing with Adventure Works on Power BI. Changed the example and used the DAX formatter. --- query-languages/dax/left-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/left-function-dax.md b/query-languages/dax/left-function-dax.md index 0eebdeb8e..3e2013250 100644 --- a/query-languages/dax/left-function-dax.md +++ b/query-languages/dax/left-function-dax.md @@ -36,7 +36,7 @@ A text string. The following example returns the first five characters of the company name in the column [ResellerName] and the first five letters of the geographical code in the column [GeographyKey] and concatenates them, to create an identifier. ```dax -= CONCATENATE(LEFT('Reseller'[ResellerName], 5), LEFT('Reseller'[GeographyKey], 5)) += CONCATENATE ( LEFT ( 'Reseller'[Reseller], 5 ), LEFT ( 'Reseller'[City], 5 ) ) ``` If the `num_chars` argument is a number that is larger than the number of characters available, the function returns the maximum characters available and does not raise an error. For example, the column [GeographyKey] contains numbers such as 1, 12 and 311; therefore the result also has variable length. From 59ac698370aeec98a76c8a47ee2e08ad294cd1b1 Mon Sep 17 00:00:00 2001 From: Jasmita Yechuri <58672674+JasmitaY@users.noreply.github.com> Date: Wed, 18 Jun 2025 14:22:25 -0700 Subject: [PATCH 885/934] Update left-function-dax.md Changes in description for example with variable name updates. --- query-languages/dax/left-function-dax.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/left-function-dax.md b/query-languages/dax/left-function-dax.md index 3e2013250..3ff13ecd6 100644 --- a/query-languages/dax/left-function-dax.md +++ b/query-languages/dax/left-function-dax.md @@ -33,13 +33,13 @@ A text string. ## Example -The following example returns the first five characters of the company name in the column [ResellerName] and the first five letters of the geographical code in the column [GeographyKey] and concatenates them, to create an identifier. +The following example returns the first five characters of the company city in the column [City] and the first five letters of the reseller key in the column [ResellerKey] and concatenates them, to create an identifier. ```dax -= CONCATENATE ( LEFT ( 'Reseller'[Reseller], 5 ), LEFT ( 'Reseller'[City], 5 ) ) += CONCATENATE ( LEFT ( 'Reseller'[City], 5 ), LEFT ( 'Reseller'[ResellerKey], 5 ) ) ``` -If the `num_chars` argument is a number that is larger than the number of characters available, the function returns the maximum characters available and does not raise an error. For example, the column [GeographyKey] contains numbers such as 1, 12 and 311; therefore the result also has variable length. +If the `num_chars` argument is a number that is larger than the number of characters available, the function returns the maximum characters available and does not raise an error. For example, the column [ResellerKey] contains numbers such as 5, 24 and 312; therefore the result also has variable length. ## Related content From b585fa53b7df484c8badba497d87a455432897c2 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 19 Jun 2025 11:14:26 -0700 Subject: [PATCH 886/934] Added July update to Power Query M reference --- query-languages/m/docfx.json | 2 +- query-languages/m/list-contains.md | 2 +- query-languages/m/list-containsall.md | 2 +- query-languages/m/record-functions.md | 4 ++-- query-languages/m/record-reorderfields.md | 2 +- query-languages/m/table-functions.md | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 7b6c498aa..3dafd029b 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "5/13/2025", + "ms.date": "6/19/2025", "no-loc": [ "#binary", "#date", diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index 7a4752f39..5da111b5a 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -66,7 +66,7 @@ List.Contains({"Pears", "Bananas", "Rhubarb", "Peaches"}, ## Example 4 -Determine if the list contains a date April 8, 2022. +Determine if the list contains the date April 8, 2022. **Usage** diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index aa6de8ec6..ba5f06d3c 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -21,7 +21,7 @@ Indicates whether the list includes all the values from another list. Returns `t ## Example 1 -Find out if the list {1, 2, 3, 4, 5} contains 3 and 4. +Determine if the list {1, 2, 3, 4, 5} contains 3 and 4. **Usage** diff --git a/query-languages/m/record-functions.md b/query-languages/m/record-functions.md index 1ada8dc32..e1dec6e1e 100644 --- a/query-languages/m/record-functions.md +++ b/query-languages/m/record-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Record functions" title: "Record functions" -ms.date: 2/18/2025 +ms.date: 6/19/2025 ms.custom: "nonautomated-date" --- # Record functions @@ -29,7 +29,7 @@ These functions create and manipulate record values. |[Record.Combine](record-combine.md)|Combines the records in a list.| |[Record.RemoveFields](record-removefields.md)|Removes the specified field(s) from the input record.| |[Record.RenameFields](record-renamefields.md)|Returns a new record that renames the fields specified. The resultant fields will retain their original order. This function supports swapping and chaining field names. However, all target names plus remaining field names must constitute a unique set or an error will occur.| -|[Record.ReorderFields](record-reorderfields.md)|Reorders fields in a record to match the order of a list of field names.| +|[Record.ReorderFields](record-reorderfields.md)|Reorders record fields to match the order of a list of field names.| |[Record.TransformFields](record-transformfields.md)|Transforms fields by applying transformOperations. For more more information about values supported by transformOperations, go to [Parameter Values](#parameter-values).| ## Selection diff --git a/query-languages/m/record-reorderfields.md b/query-languages/m/record-reorderfields.md index 7f4e35d82..15964aee3 100644 --- a/query-languages/m/record-reorderfields.md +++ b/query-languages/m/record-reorderfields.md @@ -13,7 +13,7 @@ Record.ReorderFields(record as record, fieldOrder as list, optiona ## About -Reorders fields in a record to match the order of a list of field names. +Reorders the fields of a record to match the order of a list of field names. * `record`: The record containing the fields to reorder. * `fieldOrder`: A list containing the new order of the fields to apply to the record. Field values are maintained and fields not listed in this parameter are left in their original positions. diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index 701f8a7c8..3e4f97e10 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table functions" title: "Table functions" -ms.date: 1/28/2025 +ms.date: 6/19/2025 ms.custom: "nonautomated-date" ms.subservice: m-source --- @@ -134,7 +134,7 @@ These functions create and manipulate table values. |[Table.ReplaceRelationshipIdentity](table-replacerelationshipidentity.md)|This function is intended for internal use only.| |[Table.ReplaceValue](table-replacevalue.md)|Replaces one value with another in the specified columns.| |[Table.Split](table-split.md)|Splits the specified table into a list of tables using the specified page size.| -|[Table.SplitColumn](table-splitcolumn.md)|Splits the specified columns into a set of additional columns using the specified splitter function.| +|[Table.SplitColumn](table-splitcolumn.md)|Splits the specified column into a set of additional columns using the specified splitter function.| |[Table.TransformColumns](table-transformcolumns.md)|Transforms the values of one or more columns.| |[Table.TransformColumnTypes](table-transformcolumntypes.md)|Applies type transformation(s) of the form { column, type } using a specific culture.| |[Table.TransformRows](table-transformrows.md)|Transforms the rows of the table using the specified transform function.| From 4b5a07a1d9e498cbd59c8ee57993ac56b7c22303 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 20 Jun 2025 08:03:13 -0700 Subject: [PATCH 887/934] Fixed broken heading in List.Contains --- query-languages/m/list-contains.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index 5da111b5a..f4a8927f2 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -78,7 +78,7 @@ in ContainsDate ``` -**Output +**Output** `true` From f2642fc87b03150a5c62db004b74c5afbd343ded Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Fri, 13 Jun 2025 09:35:19 -0700 Subject: [PATCH 888/934] Update abs-function-dax.md From aa57a46a4723332324d8fc9d0dadd02b42751ac2 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 23 Jun 2025 15:42:31 -0700 Subject: [PATCH 889/934] feedback items --- query-languages/dax/var-dax.md | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/query-languages/dax/var-dax.md b/query-languages/dax/var-dax.md index f92d72eb1..54ae2f2c6 100644 --- a/query-languages/dax/var-dax.md +++ b/query-languages/dax/var-dax.md @@ -42,37 +42,40 @@ A named variable containing the result of the expression argument. To calculate a percentage of year-over-year growth without using a variable, you could create three separate measures. This first measure calculates Sum of Sales Amount: ```dax -Sum of SalesAmount = SUM(SalesTable[SalesAmount]) +Sum of Sales Amount = +SUM ( Sales[Sales Amount] ) ``` A second measure calculates the sales amount for the previous year: ```dax -SalesAmount PreviousYear = - CALCULATE([Sum of SalesAmount], - SAMEPERIODLASTYEAR(Calendar[Date]) - ) +Sales Amount PreviousYear = +CALCULATE ( [Sum of Sales Amount], SAMEPERIODLASTYEAR ( 'Date'[Date] ) ) ``` You can then create a third measure that combines the other two measures to calculate a growth percentage. Notice the Sum of SalesAmount measure is used in two places; first to determine if there is a sale, then again to calculate a percentage. ```dax -Sum of SalesAmount YoY%: = - IF([Sum of SalesAmount] , - DIVIDE(([Sum of SalesAmount] – [SalesAmount PreviousYear]), [Sum of SalesAmount]) +Sum of SalesAmount YoY%: = +IF ( + [Sum of Sales Amount] && [Sales Amount PreviousYear], + DIVIDE ( + ( [Sum of Sales Amount] - [Sales Amount PreviousYear] ), + [Sales Amount PreviousYear] ) +) ``` By using a variable, you can create a single measure that calculates the same result: ```dax YoY% = - VAR Sales = - SUM(SalesTable[SalesAmount]) - VAR SalesLastYear = - CALCULATE ( SUM ( SalesTable[SalesAmount] ), SAMEPERIODLASTYEAR ( 'Calendar'[Date] ) ) - - return if(Sales, DIVIDE(Sales – SalesLastYear, Sales)) +VAR Sales = + SUM ( Sales[Sales Amount] ) +VAR SalesLastYear = + CALCULATE ( SUM ( Sales[Sales Amount] ), SAMEPERIODLASTYEAR ( 'Date'[Date] ) ) +RETURN + IF ( Sales && SalesLastYear, DIVIDE ( Sales - SalesLastYear, SalesLastYear ) ) ``` By using a variable, you can get the same outcome, but in a more readable way. And because the result of the expression is stored in the variable, the measure's performance can be significantly improved because it doesn't have to be recalculated each time it's used. From 0aee2317927421bf4f89aacd333ceb7060bf9a66 Mon Sep 17 00:00:00 2001 From: Anna Huff Date: Mon, 23 Jun 2025 17:44:26 -0600 Subject: [PATCH 890/934] PR review: Update var-dax.md Add line break so list appears correctly in staged view. --- query-languages/dax/var-dax.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/dax/var-dax.md b/query-languages/dax/var-dax.md index 54ae2f2c6..4c96fc5b8 100644 --- a/query-languages/dax/var-dax.md +++ b/query-languages/dax/var-dax.md @@ -83,4 +83,5 @@ By using a variable, you can get the same outcome, but in a more readable way. A ## Related content [Use variables to improve your DAX formulas](best-practices/dax-variables.md) + [DAX queries](dax-queries.md) From c3ec18dbb4c9c5db6d5ed7f3f2fbb115918bd3c5 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 30 Jun 2025 10:35:27 -0700 Subject: [PATCH 891/934] updating/expanding the example --- query-languages/dax/calendarauto-function-dax.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/calendarauto-function-dax.md b/query-languages/dax/calendarauto-function-dax.md index ab4dd8c0a..aca0c1c7a 100644 --- a/query-languages/dax/calendarauto-function-dax.md +++ b/query-languages/dax/calendarauto-function-dax.md @@ -38,8 +38,18 @@ Returns a table with a single column named "Date" that contains a contiguous set ## Example -In this example, the MinDate and MaxDate in the data model are July 1, 2010 and June 30, 2011. +In this example, the MinDate and MaxDate in the data model are July 1, 2018 and June 30, 2019. In this model two calculated tables are defined: -`CALENDARAUTO()` will return all dates between January 1, 2010 and December 31, 2011. +- **CalendarAuto**. Defined as `CALENDARAUTO()` will return all dates between January 1, 2018 and December 31, 2019. +- **CalendarAuto3**. Defined as `CALENDARAUTO(3)` will return all dates between April 1, 2018 and March 31, 2020. As in this example `fiscal_year_end_month` is 3, the first years starts on April 1st and ends on March 31st. As a result, the range is determined by selecting the first day of the fiscal year on or before the MinDate's year (April 1, 2018) and the last day of the fiscal year after or within the MaxDate's year (March 31, 2020). -`CALENDARAUTO(3)` will return all dates between April 1, 2010 and March 31, 2012. As in this example `fiscal_year_end_month` is 3, the first years starts on April 1st and ends on March 31st. As a result, the range is determined by selecting the first day of the fiscal year on or before the MinDate's year (April 1, 2010) and the last day of the fiscal year after or within the MaxDate's year (March 31, 2012). +Below are measure definitions and their return values on the example model: + +```dax +MinDate = MIN('Date'[Date]) //returns July 1, 2018 +MaxDate = MAX('Date'[Date]) //returns June 30, 2019 +MinCalendarAuto = MIN('CalendarAuto'[Date]) //returns January 1, 2018 +MaxCalendarAuto = MAX('CalendarAuto'[Date]) //returns December 31, 2019 +MinCalendarAuto3 = MIN('CalendarAuto3'[Date]) //returns April 1, 2018 +MaxCalendarAuto3 = MAX('CalendarAuto3'[Date]) //returns March 31, 2020 +``` From 033c08d38af6e9d5a74c142d009fc61e1c3624a5 Mon Sep 17 00:00:00 2001 From: Jeroen ter Heerdt Date: Mon, 30 Jun 2025 10:38:22 -0700 Subject: [PATCH 892/934] small typo --- query-languages/dax/calendarauto-function-dax.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/dax/calendarauto-function-dax.md b/query-languages/dax/calendarauto-function-dax.md index aca0c1c7a..986f85917 100644 --- a/query-languages/dax/calendarauto-function-dax.md +++ b/query-languages/dax/calendarauto-function-dax.md @@ -38,10 +38,10 @@ Returns a table with a single column named "Date" that contains a contiguous set ## Example -In this example, the MinDate and MaxDate in the data model are July 1, 2018 and June 30, 2019. In this model two calculated tables are defined: +In this example, the MinDate and MaxDate in the data model are July 1, 2018 and June 30, 2019. This model contains two calculated tables: -- **CalendarAuto**. Defined as `CALENDARAUTO()` will return all dates between January 1, 2018 and December 31, 2019. -- **CalendarAuto3**. Defined as `CALENDARAUTO(3)` will return all dates between April 1, 2018 and March 31, 2020. As in this example `fiscal_year_end_month` is 3, the first years starts on April 1st and ends on March 31st. As a result, the range is determined by selecting the first day of the fiscal year on or before the MinDate's year (April 1, 2018) and the last day of the fiscal year after or within the MaxDate's year (March 31, 2020). +- **CalendarAuto**. Defined as `CALENDARAUTO()`. Returns all dates between January 1, 2018 and December 31, 2019. +- **CalendarAuto3**. Defined as `CALENDARAUTO(3)`. Returns all dates between April 1, 2018 and March 31, 2020. As in this example `fiscal_year_end_month` is 3, the first years starts on April 1st and ends on March 31st. As a result, the range is determined by selecting the first day of the fiscal year on or before the MinDate's year (April 1, 2018) and the last day of the fiscal year after or within the MaxDate's year (March 31, 2020). Below are measure definitions and their return values on the example model: From 902d664461c6da1f3bc92fc849bf51e1cfe6928f Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 7 Jul 2025 14:31:23 -0700 Subject: [PATCH 893/934] Added missing paren in Table.FromRows example --- query-languages/m/table-fromrows.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/table-fromrows.md b/query-languages/m/table-fromrows.md index 6221a1596..ef52924e3 100644 --- a/query-languages/m/table-fromrows.md +++ b/query-languages/m/table-fromrows.md @@ -28,7 +28,7 @@ Table.FromRows( {2, "Jim", "987-6543"} }, {"CustomerID", "Name", "Phone"} - +) ``` **Output** From f229ec59d0081221ed87d608ee6b371d9e6cdca6 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 7 Jul 2025 14:59:32 -0700 Subject: [PATCH 894/934] Added related content to current date and time functions --- query-languages/m/datetime-fixedlocalnow.md | 4 ++++ query-languages/m/datetime-localnow.md | 4 ++++ query-languages/m/datetimezone-fixedlocalnow.md | 4 ++++ query-languages/m/datetimezone-fixedutcnow.md | 4 ++++ query-languages/m/datetimezone-localnow.md | 4 ++++ query-languages/m/datetimezone-utcnow.md | 4 ++++ 6 files changed, 24 insertions(+) diff --git a/query-languages/m/datetime-fixedlocalnow.md b/query-languages/m/datetime-fixedlocalnow.md index 23fbcbab0..128a6a0b6 100644 --- a/query-languages/m/datetime-fixedlocalnow.md +++ b/query-languages/m/datetime-fixedlocalnow.md @@ -14,3 +14,7 @@ DateTime.FixedLocalNow() as datetime ## About Returns a `datetime` value set to the current date and time on the system. This value is fixed and will not change with successive calls, unlike [DateTime.LocalNow](datetime-localnow.md), which may return different values over the course of execution of an expression. + +## Related content + +[Local, fixed, and UTC variants of current time functions](m-local-fixed-utc-variants.md) diff --git a/query-languages/m/datetime-localnow.md b/query-languages/m/datetime-localnow.md index d950b1827..fddd3c6ad 100644 --- a/query-languages/m/datetime-localnow.md +++ b/query-languages/m/datetime-localnow.md @@ -44,3 +44,7 @@ DateTime.LocalNow() **Output** The current online (UTC) date and time. + +## Related content + +[Local, fixed, and UTC variants of current time functions](m-local-fixed-utc-variants.md) diff --git a/query-languages/m/datetimezone-fixedlocalnow.md b/query-languages/m/datetimezone-fixedlocalnow.md index 96284c964..a1032da7d 100644 --- a/query-languages/m/datetimezone-fixedlocalnow.md +++ b/query-languages/m/datetimezone-fixedlocalnow.md @@ -14,3 +14,7 @@ DateTimeZone.FixedLocalNow() as datetimezone ## About Returns a `datetime` value set to the current date and time on the system. The returned value contains timezone information representing the local timezone. This value is fixed and will not change with successive calls, unlike [DateTimeZone.LocalNow](datetimezone-localnow.md), which may return different values over the course of execution of an expression. + +## Related content + +[Local, fixed, and UTC variants of current time functions](m-local-fixed-utc-variants.md) diff --git a/query-languages/m/datetimezone-fixedutcnow.md b/query-languages/m/datetimezone-fixedutcnow.md index c8b7a86ae..228937b2e 100644 --- a/query-languages/m/datetimezone-fixedutcnow.md +++ b/query-languages/m/datetimezone-fixedutcnow.md @@ -14,3 +14,7 @@ DateTimeZone.FixedUtcNow() as datetimezone ## About Returns the current date and time in UTC (the GMT timezone). This value is fixed and will not change with successive calls. + +## Related content + +[Local, fixed, and UTC variants of current time functions](m-local-fixed-utc-variants.md) diff --git a/query-languages/m/datetimezone-localnow.md b/query-languages/m/datetimezone-localnow.md index fb0ac595d..97583a351 100644 --- a/query-languages/m/datetimezone-localnow.md +++ b/query-languages/m/datetimezone-localnow.md @@ -14,3 +14,7 @@ DateTimeZone.LocalNow() as datetimezone ## About Returns a `datetimezone` value set to the current date and time on the system. The returned value contains timezone information representing the local timezone. + +## Related content + +[Local, fixed, and UTC variants of current time functions](m-local-fixed-utc-variants.md) diff --git a/query-languages/m/datetimezone-utcnow.md b/query-languages/m/datetimezone-utcnow.md index 227f64bdb..d0cfbed95 100644 --- a/query-languages/m/datetimezone-utcnow.md +++ b/query-languages/m/datetimezone-utcnow.md @@ -28,3 +28,7 @@ DateTimeZone.UtcNow() **Output** `#datetimezone(2011, 8, 16, 23, 34, 37.745, 0, 0)` + +## Related content + +[Local, fixed, and UTC variants of current time functions](m-local-fixed-utc-variants.md) From 356cba1bf40c98d94c4de8a956f558484a8b80ac Mon Sep 17 00:00:00 2001 From: DougKlopfenstein <40473364+DougKlopfenstein@users.noreply.github.com> Date: Fri, 11 Jul 2025 20:51:39 +0000 Subject: [PATCH 895/934] Initialize Docs repository: https://github.com/MicrosoftDocs/query-docs-pr of branch live --- .openpublishing.publish.config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.openpublishing.publish.config.json b/.openpublishing.publish.config.json index cd35a893f..0b6863595 100644 --- a/.openpublishing.publish.config.json +++ b/.openpublishing.publish.config.json @@ -42,7 +42,6 @@ "branches_to_filter": [], "git_repository_url_open_to_public_contributors": "https://github.com/MicrosoftDocs/query-docs", "git_repository_branch_open_to_public_contributors": "main", - "skip_source_output_uploading": false, "need_preview_pull_request": true, "dependent_repositories": [ { @@ -70,6 +69,7 @@ } }, "docs_build_engine": {}, + "skip_source_output_uploading": false, "contribution_branch_mappings": {}, "need_generate_pdf_url_template": true -} +} \ No newline at end of file From 40b612da2549d9e8ac4dd082af5476a40441b597 Mon Sep 17 00:00:00 2001 From: DougKlopfenstein <40473364+DougKlopfenstein@users.noreply.github.com> Date: Fri, 11 Jul 2025 20:51:40 +0000 Subject: [PATCH 896/934] Initialize Docs repository: https://github.com/MicrosoftDocs/query-docs-pr of branch main --- .openpublishing.publish.config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.openpublishing.publish.config.json b/.openpublishing.publish.config.json index cd35a893f..0b6863595 100644 --- a/.openpublishing.publish.config.json +++ b/.openpublishing.publish.config.json @@ -42,7 +42,6 @@ "branches_to_filter": [], "git_repository_url_open_to_public_contributors": "https://github.com/MicrosoftDocs/query-docs", "git_repository_branch_open_to_public_contributors": "main", - "skip_source_output_uploading": false, "need_preview_pull_request": true, "dependent_repositories": [ { @@ -70,6 +69,7 @@ } }, "docs_build_engine": {}, + "skip_source_output_uploading": false, "contribution_branch_mappings": {}, "need_generate_pdf_url_template": true -} +} \ No newline at end of file From 4656db537edccf8c0ea062a8be72d5fc533a3a5b Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 16 Jul 2025 13:25:27 -0700 Subject: [PATCH 897/934] Added August update to Power Query M reference --- query-languages/m/accessing-data-functions.md | 8 +++--- query-languages/m/cdm-contents.md | 2 +- query-languages/m/deltalake-metadata.md | 4 +-- query-languages/m/deltalake-table.md | 4 +-- query-languages/m/docfx.json | 2 +- query-languages/m/pdf-tables.md | 26 ++----------------- query-languages/m/table-functions.md | 4 ++- query-languages/m/table-partitionkey.md | 16 ++++++++++++ .../m/table-replacepartitionkey.md | 16 ++++++++++++ query-languages/m/toc.yml | 10 +++++++ query-languages/m/type-functions.md | 4 ++- .../m/type-replacetablepartitionkey.md | 16 ++++++++++++ query-languages/m/type-tablepartitionkey.md | 16 ++++++++++++ query-languages/m/value-functions.md | 3 ++- query-languages/m/variable-valueordefault.md | 16 ++++++++++++ 15 files changed, 110 insertions(+), 37 deletions(-) create mode 100644 query-languages/m/table-partitionkey.md create mode 100644 query-languages/m/table-replacepartitionkey.md create mode 100644 query-languages/m/type-replacetablepartitionkey.md create mode 100644 query-languages/m/type-tablepartitionkey.md create mode 100644 query-languages/m/variable-valueordefault.md diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index 7516ccead..0e38b0aee 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Accessing data functions" title: "Accessing data functions" -ms.date: 1/17/2025 +ms.date: 7/16/2025 ms.custom: "nonautomated-date" --- # Accessing data functions @@ -42,8 +42,8 @@ These functions access data and return table values. Most of these functions ret |[Cube.ReplaceDimensions](cube-replacedimensions.md)|Replaces the set of dimensions returned by [Cube.Dimensions](/powerquery-m/cube-dimensions).| |[Cube.Transform](cube-transform.md)|Applies a list of cube functions.| |[DB2.Database](db2-database.md)|Returns a table of SQL tables and views available in a Db2 database.| -|[DeltaLake.Metadata](deltalake-metadata.md)|Given a Delta Lake table, returns the log entries for that table.| -|[DeltaLake.Table](deltalake-table.md)|Returns the contents of the Delta Lake table.| +|[DeltaLake.Metadata](deltalake-metadata.md)|This function is unavailable in the current context.| +|[DeltaLake.Table](deltalake-table.md)|This function is unavailable in the current context.| |[Essbase.Cubes](essbase-cubes.md)|Returns the cubes in an Essbase instance grouped by Essbase server.| |[Excel.CurrentWorkbook](excel-currentworkbook.md)|Returns the contents of the current Excel workbook.| |[Excel.Workbook](excel-workbook.md)|Returns the contents of the Excel workbook.| @@ -72,7 +72,7 @@ These functions access data and return table values. Most of these functions ret |[OleDb.DataSource](oledb-datasource.md)|Returns a table of SQL tables and views from the OLE DB data source.| |[OleDb.Query](oledb-query.md)|Returns the result of running a native query on an OLE DB data source.| |[Oracle.Database](oracle-database.md)|Returns a table of SQL tables and views from the Oracle database.| -|[Pdf.Tables](pdf-tables.md)|Returns any tables found in a PDF file.| +|[Pdf.Tables](pdf-tables.md)|This function is unavailable in the current context.| |[PostgreSQL.Database](postgresql-database.md)|Returns a table of SQL tables and views available in a PostgreSQL database.| |[RData.FromBinary](rdata-frombinary.md)|Returns a record of data frames from the RData file.| |[Salesforce.Data](salesforce-data.md)|Returns the objects from the Salesforce account.| diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index f0e3f91d4..b41fc85dd 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -8,7 +8,7 @@ ms.subservice: m-source ## Syntax
    -Cdm.Contents(table as table) as table
    +Cdm.Contents() as nullable none
     
    ## About diff --git a/query-languages/m/deltalake-metadata.md b/query-languages/m/deltalake-metadata.md index 0cb27fd8b..3f25eea83 100644 --- a/query-languages/m/deltalake-metadata.md +++ b/query-languages/m/deltalake-metadata.md @@ -8,9 +8,9 @@ ms.subservice: m-source ## Syntax
    -DeltaLake.Metadata(table as table) as table
    +DeltaLake.Metadata() as nullable none
     
    ## About -Given a Delta Lake table, returns the log entries for that table. \ No newline at end of file +This function is unavailable in the current context. diff --git a/query-languages/m/deltalake-table.md b/query-languages/m/deltalake-table.md index cf599a2d6..9664e007b 100644 --- a/query-languages/m/deltalake-table.md +++ b/query-languages/m/deltalake-table.md @@ -8,9 +8,9 @@ ms.subservice: m-source ## Syntax
    -DeltaLake.Table(directory as table, optional options as nullable record) as any
    +DeltaLake.Table() as nullable none
     
    ## About -Returns the contents of the Delta Lake table. +This function is unavailable in the current context. diff --git a/query-languages/m/docfx.json b/query-languages/m/docfx.json index 3dafd029b..ff6af0563 100644 --- a/query-languages/m/docfx.json +++ b/query-languages/m/docfx.json @@ -48,7 +48,7 @@ "author": "dougklopfenstein", "ms.author": "dougklo", "searchScope": ["Power Query","M formula language"], - "ms.date": "6/19/2025", + "ms.date": "7/16/2025", "no-loc": [ "#binary", "#date", diff --git a/query-languages/m/pdf-tables.md b/query-languages/m/pdf-tables.md index 31a97248b..ed22a8dbf 100644 --- a/query-languages/m/pdf-tables.md +++ b/query-languages/m/pdf-tables.md @@ -8,31 +8,9 @@ ms.subservice: m-source ## Syntax
    -Pdf.Tables(pdf as binary, optional options as nullable record) as table
    +Pdf.Tables() as nullable none
     
    ## About -Returns any tables found in `pdf`. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: - -* `Implementation`: The version of the algorithm to use when identifying tables. Old versions are available only for backwards compatibility, to prevent old queries from being broken by algorithm updates. The newest version should always give the best results. Valid values are "1.3", "1.2", "1.1", or null. -* `StartPage`: Specifies the first page in the range of pages to examine. Default: 1. -* `EndPage`: Specifies the last page in the range of pages to examine. Default: the last page of the document. -* `MultiPageTables`: Controls whether similar tables on consecutive pages will be automatically combined into a single table. Default: true. -* `EnforceBorderLines`: Controls whether border lines are always enforced as cell boundaries (when true), or simply used as one hint among many for determining cell boundaries (when false). Default: false. - -## Example 1 - -Returns the tables contained in sample.pdf. - -**Usage** - -```powerquery-m -Pdf.Tables(File.Contents("c:\sample.pdf")) -``` - -**Output** - -```powerquery-m -#table({"Name", "Kind", "Data"}, ...) -``` +This function is unavailable in the current context. diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index 3e4f97e10..7b827f9b6 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table functions" title: "Table functions" -ms.date: 6/19/2025 +ms.date: 7/16/2025 ms.custom: "nonautomated-date" ms.subservice: m-source --- @@ -129,8 +129,10 @@ These functions create and manipulate table values. |[Table.Join](table-join.md)|Joins the rows from the two tables that match based on the given keys.| |[Table.Keys](table-keys.md)|Returns the keys of the specified table.| |[Table.NestedJoin](table-nestedjoin.md)|Performs a join between tables on supplied columns and produces the join result in a new column.| +|[Table.PartitionKey](table-partitionkey.md) | Returns the partition key of the specified table.| |[Table.ReplaceErrorValues](table-replaceerrorvalues.md)|Replaces the error values in the specified columns with the corresponding specified value.| |[Table.ReplaceKeys](table-replacekeys.md)|Replaces the keys of the specified table.| +|[Table.ReplacePartitionKey](table-replacepartitionkey.md) | Replaces the partition key of the specified table.| |[Table.ReplaceRelationshipIdentity](table-replacerelationshipidentity.md)|This function is intended for internal use only.| |[Table.ReplaceValue](table-replacevalue.md)|Replaces one value with another in the specified columns.| |[Table.Split](table-split.md)|Splits the specified table into a list of tables using the specified page size.| diff --git a/query-languages/m/table-partitionkey.md b/query-languages/m/table-partitionkey.md new file mode 100644 index 000000000..b97227fd6 --- /dev/null +++ b/query-languages/m/table-partitionkey.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Table.PartitionKey" +title: "Table.PartitionKey" +ms.subservice: m-source +--- +# Table.PartitionKey + +## Syntax + +
    +Table.PartitionKey(table as table) as nullable list
    +
    + +## About + +Returns the partition key of the specified table. diff --git a/query-languages/m/table-replacepartitionkey.md b/query-languages/m/table-replacepartitionkey.md new file mode 100644 index 000000000..df50b25be --- /dev/null +++ b/query-languages/m/table-replacepartitionkey.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Table.ReplacePartitionKey" +title: "Table.ReplacePartitionKey" +ms.subservice: m-source +--- +# Table.ReplacePartitionKey + +## Syntax + +
    +Table.ReplacePartitionKey(table as table, partitionKey as nullable list) as table
    +
    + +## About + +Replaces the partition key of the specified table. diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 7c7858138..95af577f0 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -1124,6 +1124,8 @@ items: href: table-nestedjoin.md - name: Table.Partition href: table-partition.md + - name: Table.PartionKey + href: table-partitionkey.md - name: Table.PartitionValues href: table-partitionvalues.md - name: Table.Pivot @@ -1164,6 +1166,8 @@ items: href: table-replacekeys.md - name: Table.ReplaceMatchingRows href: table-replacematchingrows.md + - name: Table.ReplacePartitionKey + href: table-replacepartitionkey.md - name: Table.ReplaceRelationshipIdentity href: table-replacerelationshipidentity.md - name: Table.ReplaceRows @@ -1386,10 +1390,14 @@ items: href: type-replacefacets.md - name: Type.ReplaceTableKeys href: type-replacetablekeys.md + - name: Type.ReplaceTablePartitionKey + href: type-replacetablepartitionkey.md - name: Type.TableColumn href: type-tablecolumn.md - name: Type.TableKeys href: type-tablekeys.md + - name: Type.TablePartitionKey + href: type-tablepartitionkey.md - name: Type.TableRow href: type-tablerow.md - name: Type.TableSchema @@ -1484,6 +1492,8 @@ items: href: value-viewfunction.md - name: Variable.Value href: variable-value.md + - name: Variable.ValueOrDefault + href: variable-valueordefault.md - name: Enumerations items: - name: Enumerations diff --git a/query-languages/m/type-functions.md b/query-languages/m/type-functions.md index 918fc46fa..1ea6fa24c 100644 --- a/query-languages/m/type-functions.md +++ b/query-languages/m/type-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Type functions" title: "Type functions" -ms.date: 10/24/2024 +ms.date: 7/16/2025 ms.custom: "nonautomated-date" --- # Type functions @@ -27,8 +27,10 @@ These functions create and manipulate type values. |[Type.RecordFields](type-recordfields.md)|Returns a record describing the fields of a record type with each field of the returned record type having a corresponding name and a value that is a record of the form `[ Type = type, Optional = logical ]`.| |[Type.ReplaceFacets](type-replacefacets.md) | Replaces the facets of a type.| |[Type.ReplaceTableKeys](type-replacetablekeys.md)|Replaces the keys in a table type.| +|[Type.ReplaceTablePartitionKey](type-replacetablepartitionkey.md) | Returns a new table type with the partition key replaced by the specified partition key.| |[Type.TableColumn](type-tablecolumn.md) | Returns the type of a column in a table.| |[Type.TableKeys](type-tablekeys.md)|Returns keys from a table type.| +|[Type.TablePartitionKey](type-tablepartitionkey.md) | Returns the partition key for the given table type if it has one.| |[Type.TableRow](type-tablerow.md)|Returns a row type from a table type.| |[Type.TableSchema](type-tableschema.md) | Returns a table containing a description of the columns (i.e. the schema) of the specified table type.| |[Type.Union](type-union.md) | Returns the union of a list of types.| diff --git a/query-languages/m/type-replacetablepartitionkey.md b/query-languages/m/type-replacetablepartitionkey.md new file mode 100644 index 000000000..4b0014e02 --- /dev/null +++ b/query-languages/m/type-replacetablepartitionkey.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Type.ReplaceTablePartitionKey" +title: "Type.ReplaceTablePartitionKey" +ms.subservice: m-source +--- +# Type.ReplaceTablePartitionKey + +## Syntax + +
    +Type.ReplaceTablePartitionKey(tableType as type, partitionKey as nullable list) as type
    +
    + +## About + +Returns a new table type with the partition key replaced by the specified partition key. diff --git a/query-languages/m/type-tablepartitionkey.md b/query-languages/m/type-tablepartitionkey.md new file mode 100644 index 000000000..0f23d4d36 --- /dev/null +++ b/query-languages/m/type-tablepartitionkey.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Type.TablePartitionKey" +title: "Type.TablePartitionKey" +ms.subservice: m-source +--- +# Type.TablePartitionKey + +## Syntax + +
    +Type.TablePartitionKey(tableType as type) as nullable list
    +
    + +## About + +Returns the partition key for the given table type if it has one. diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 914d88272..e663e82ff 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value functions" title: "Value functions" -ms.date: 4/24/2024 +ms.date: 7/16/2025 ms.custom: "nonautomated-date" --- # Value functions @@ -52,6 +52,7 @@ These functions evaluate and perform operations on values. |[Value.ViewError](value-viewerror.md) | This function is intended for internal use only.| |[Value.ViewFunction](value-viewfunction.md) | This function is intended for internal use only.| |[Variable.Value](variable-value.md) | This function is intended for internal use only.| +|[Variable.ValueOrDefault](variable-valueordefault.md) | This function is intended for internal use only.| ## Metadata diff --git a/query-languages/m/variable-valueordefault.md b/query-languages/m/variable-valueordefault.md new file mode 100644 index 000000000..05769d71f --- /dev/null +++ b/query-languages/m/variable-valueordefault.md @@ -0,0 +1,16 @@ +--- +description: "Learn more about: Variable.ValueOrDefault" +title: "Variable.ValueOrDefault" +ms.subservice: m-source +--- +# Variable.ValueOrDefault + +## Syntax + +
    +Variable.ValueOrDefault(identifier as text, optional defaultValue as any) as any
    +
    + +## About + +This function is intended for internal use only. From 576de64048360c0e5a2d14cb5eea725c57ac3b14 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 16 Jul 2025 14:02:11 -0700 Subject: [PATCH 898/934] Fixed broken function name in article --- query-languages/m/m-local-fixed-utc-variants.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-local-fixed-utc-variants.md b/query-languages/m/m-local-fixed-utc-variants.md index 221467c28..4b2ce2574 100644 --- a/query-languages/m/m-local-fixed-utc-variants.md +++ b/query-languages/m/m-local-fixed-utc-variants.md @@ -2,7 +2,7 @@ description: "Learn more about: Local, fixed, and UTC variants of current time functions" title: "Local, fixed, and UTC variants of current time functions" ms.topic: conceptual -ms.date: 6/11/2025 +ms.date: 7/16/2025 ms.custom: "nonautomated-date" ms.subservice: m-background --- @@ -44,7 +44,7 @@ Power Query M provides four functions for retrieving the current local time: * `DateTime.LocalNow` returns the current local `datetime` each time the expression is evaluated. * `DateTime.FixedLocalNow` returns the local `datetime` once per query evaluation, acting as a snapshot. * `DateTimeZone.LocalNow` returns the current local `datetimezone` each time the expression is evaluated. -* `DateTimeZone.FixedLocal` now returns the local `datetimezone` once per query evaluation, acting as a snapshot +* `DateTimeZone.FixedLocalNow` returns the local `datetimezone` once per query evaluation, acting as a snapshot To demonstrate the difference, the following example generates a table with multiple rows. Each row captures a fresh `DateTime.LocalNow` value using a delay to ensure distinct timestamps, while each captured `DateTime.FixedLocalNow` value remains constant across all rows. From 2af01c605c8f92d9e1e986b89e7698d8a315255e Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 17 Jul 2025 09:47:07 -0700 Subject: [PATCH 899/934] Restored cdm, deltalake, and pdf function info --- query-languages/m/cdm-contents.md | 2 +- query-languages/m/deltalake-metadata.md | 4 ++-- query-languages/m/deltalake-table.md | 4 ++-- query-languages/m/pdf-tables.md | 26 +++++++++++++++++++++++-- 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/query-languages/m/cdm-contents.md b/query-languages/m/cdm-contents.md index b41fc85dd..f0e3f91d4 100644 --- a/query-languages/m/cdm-contents.md +++ b/query-languages/m/cdm-contents.md @@ -8,7 +8,7 @@ ms.subservice: m-source ## Syntax
    -Cdm.Contents() as nullable none
    +Cdm.Contents(table as table) as table
     
    ## About diff --git a/query-languages/m/deltalake-metadata.md b/query-languages/m/deltalake-metadata.md index 3f25eea83..5bdd45e54 100644 --- a/query-languages/m/deltalake-metadata.md +++ b/query-languages/m/deltalake-metadata.md @@ -8,9 +8,9 @@ ms.subservice: m-source ## Syntax
    -DeltaLake.Metadata() as nullable none
    +DeltaLake.Metadata(table as table) as table
     
    ## About -This function is unavailable in the current context. +Given a Delta Lake table, returns the log entries for that table. diff --git a/query-languages/m/deltalake-table.md b/query-languages/m/deltalake-table.md index 9664e007b..cf599a2d6 100644 --- a/query-languages/m/deltalake-table.md +++ b/query-languages/m/deltalake-table.md @@ -8,9 +8,9 @@ ms.subservice: m-source ## Syntax
    -DeltaLake.Table() as nullable none
    +DeltaLake.Table(directory as table, optional options as nullable record) as any
     
    ## About -This function is unavailable in the current context. +Returns the contents of the Delta Lake table. diff --git a/query-languages/m/pdf-tables.md b/query-languages/m/pdf-tables.md index ed22a8dbf..31a97248b 100644 --- a/query-languages/m/pdf-tables.md +++ b/query-languages/m/pdf-tables.md @@ -8,9 +8,31 @@ ms.subservice: m-source ## Syntax
    -Pdf.Tables() as nullable none
    +Pdf.Tables(pdf as binary, optional options as nullable record) as table
     
    ## About -This function is unavailable in the current context. +Returns any tables found in `pdf`. An optional record parameter, `options`, may be provided to specify additional properties. The record can contain the following fields: + +* `Implementation`: The version of the algorithm to use when identifying tables. Old versions are available only for backwards compatibility, to prevent old queries from being broken by algorithm updates. The newest version should always give the best results. Valid values are "1.3", "1.2", "1.1", or null. +* `StartPage`: Specifies the first page in the range of pages to examine. Default: 1. +* `EndPage`: Specifies the last page in the range of pages to examine. Default: the last page of the document. +* `MultiPageTables`: Controls whether similar tables on consecutive pages will be automatically combined into a single table. Default: true. +* `EnforceBorderLines`: Controls whether border lines are always enforced as cell boundaries (when true), or simply used as one hint among many for determining cell boundaries (when false). Default: false. + +## Example 1 + +Returns the tables contained in sample.pdf. + +**Usage** + +```powerquery-m +Pdf.Tables(File.Contents("c:\sample.pdf")) +``` + +**Output** + +```powerquery-m +#table({"Name", "Kind", "Data"}, ...) +``` From e9a66d73dc1d7b4342ca8d0525db8dc1c733534d Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 17 Jul 2025 09:53:49 -0700 Subject: [PATCH 900/934] Restored accessing data functions article list --- query-languages/m/accessing-data-functions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index 0e38b0aee..4cc024f23 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -42,8 +42,8 @@ These functions access data and return table values. Most of these functions ret |[Cube.ReplaceDimensions](cube-replacedimensions.md)|Replaces the set of dimensions returned by [Cube.Dimensions](/powerquery-m/cube-dimensions).| |[Cube.Transform](cube-transform.md)|Applies a list of cube functions.| |[DB2.Database](db2-database.md)|Returns a table of SQL tables and views available in a Db2 database.| -|[DeltaLake.Metadata](deltalake-metadata.md)|This function is unavailable in the current context.| -|[DeltaLake.Table](deltalake-table.md)|This function is unavailable in the current context.| +|[DeltaLake.Metadata](deltalake-metadata.md)|Given a Delta Lake table, returns the log entries for that table.| +|[DeltaLake.Table](deltalake-table.md)|Returns the contents of the Delta Lake table.| |[Essbase.Cubes](essbase-cubes.md)|Returns the cubes in an Essbase instance grouped by Essbase server.| |[Excel.CurrentWorkbook](excel-currentworkbook.md)|Returns the contents of the current Excel workbook.| |[Excel.Workbook](excel-workbook.md)|Returns the contents of the Excel workbook.| @@ -72,7 +72,7 @@ These functions access data and return table values. Most of these functions ret |[OleDb.DataSource](oledb-datasource.md)|Returns a table of SQL tables and views from the OLE DB data source.| |[OleDb.Query](oledb-query.md)|Returns the result of running a native query on an OLE DB data source.| |[Oracle.Database](oracle-database.md)|Returns a table of SQL tables and views from the Oracle database.| -|[Pdf.Tables](pdf-tables.md)|This function is unavailable in the current context.| +|[Pdf.Tables](pdf-tables.md)|Returns any tables found in a PDF file.| |[PostgreSQL.Database](postgresql-database.md)|Returns a table of SQL tables and views available in a PostgreSQL database.| |[RData.FromBinary](rdata-frombinary.md)|Returns a record of data frames from the RData file.| |[Salesforce.Data](salesforce-data.md)|Returns the objects from the Salesforce account.| From 85f3785f838a2c062b689915703d63e557db071e Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Mon, 21 Jul 2025 12:44:19 -0700 Subject: [PATCH 901/934] Update info-functions-dax.md --- query-languages/dax/info-functions-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/info-functions-dax.md b/query-languages/dax/info-functions-dax.md index f0b7b23e8..71cab3e41 100644 --- a/query-languages/dax/info-functions-dax.md +++ b/query-languages/dax/info-functions-dax.md @@ -31,7 +31,7 @@ EVALUATE ) ``` -INFO functions are supported on Power BI semantic models but not on SQL Server Analysis Services models, Azure Analysis Services models, or PowerPivot models. INFO.VIEW DAX functions can be run in calculated tables, columns, measures, and DAX queries, but other INFO DAX functions can only be run in DAX queries. +INFO functions are supported on Power BI semantic models, SQL Server Analysis Services models, Azure Analysis Services models, and PowerPivot models. Errors may happen if the INFO function is for a feature not supported or available. INFO.VIEW DAX functions can be run in calculated tables, columns, measures, and DAX queries, but other INFO DAX functions can only be run in DAX queries. ## INFO.VIEW DAX functions From 22af4f1b6a090880e2742f3f8328177c109ab650 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 29 Jul 2025 13:47:26 -0700 Subject: [PATCH 902/934] Added new Working with durations article --- query-languages/m/m-working-with-durations.md | 274 ++++++++++++++++++ .../adding-seconds-for-duration.png | Bin 0 -> 13773 bytes query-languages/m/toc.yml | 2 + 3 files changed, 276 insertions(+) create mode 100644 query-languages/m/m-working-with-durations.md create mode 100644 query-languages/m/media/m-working-with-durations/adding-seconds-for-duration.png diff --git a/query-languages/m/m-working-with-durations.md b/query-languages/m/m-working-with-durations.md new file mode 100644 index 000000000..408660992 --- /dev/null +++ b/query-languages/m/m-working-with-durations.md @@ -0,0 +1,274 @@ +--- +description: "Learn more about: Working with durations in Power Query M" +title: "Working with durations in Power Query M" +ms.date: 7/28/2025 +ms.custom: "nonautomated-date" +ms.subservice: m-background +--- + +# Working with durations in Power Query M + +A duration in Power Query M represents the difference between two points in time, expressed in days, hours, minutes, and seconds. Whether you're calculating the time between customer interactions, filtering records based on elapsed time, or building dynamic time-based logic, durations are essential for creating robust and intelligent data models. + +This article explores the structure, creation, and manipulation of durations in Power Query M. It includes practical examples and shares tips to help you use durations effectively in your own data workflows. + +## Creating durations + +A duration is defined by the `#duration(, , , )` function. For example, `#duration(2, 3, 0, 0)` represents a duration of 2 days and 3 hours. Power Query M provides several ways to create a duration, depending on the context and the level of precision required. + +### Use the #duration constructor + +The most direct way to create a duration is with the `#duration(, , , )` syntax. Each argument must be a number, and the result is a duration value. + +`#duration(2, 5, 30, 0) // 2 days, 5 hours, 30 minutes` + +This function supports fractional seconds as well: + +`#duration(0, 0, 0, 1.75) // 1.75 seconds` + +### Create durations from date and time values + +Durations can also be created by subtracting one date and time value from another. The result is a duration representing the time span between the two. + +```powerquery-m +let + Source = + { + #date(2025, 7, 24) - #date(2025, 7, 23), + // Result: #duration(1, 0, 0, 0) + #time(12, 0, 0) - #time(11, 30, 30), + // Result: #duration(0, 0, 29, 30) + #datetime(2025, 7, 24, 12, 0, 0) - #datetime(2025, 7, 23, 12, 0, 0), + // Result: #duration(1, 0, 0, 0) + #datetimezone(2025, 7, 24, 12, 0, 0, 7, 0) - #datetimezone(2025, 7, 23, 10, 30, 0, 4, 0), + // Result: #duration(0, 22, 30, 0) + #datetime(2025, 7, 24, 12, 0, 0) - DateTime.From(#date(2025, 7, 23)) + // Result: #duration(1, 12, 0, 0) + } +in + Source +``` + +> [!NOTE] +> Subtracting one date and time function from a different date and time function (for example, subtracting a `#date` function from a `#datetime` function) results in an error. If you must use different date and time functions to determine a duration, use functions such as [Date.From](date-from.md), [DateTime.From](datetime-from.md), or [DateTimeZone.From](datetimezone-from.md) to explicitly change one of the date and time functions. + +### Converting from other types + +The [Duration.From](duration-from.md) function can convert compatible values into durations. For more information, go to [Duration.From(value)](#durationfromvalue). + +## Working with durations + +Once a duration is created in Power Query M, it can be manipulated using various operations and functions. These capabilities make durations highly versatile for time-based logic and calculations. + +### Arithmetic operations + +Durations support standard arithmetic operations: + +* Addition and subtraction: Add or subtract durations to or from each other or from date and time values. + + ```powerquery-m + let + Source = { + #duration(1, 2, 0, 0) + #duration(0, 3, 30, 0), + // Result: #duration(1, 5, 30, 0) + #duration(1, 2, 0, 0) - #duration(0, 3, 30, 0), + // Result: #duration(0, 22, 30, 0) + #datetime(2025, 7, 24, 12, 0, 0) + #duration(0, 2, 0, 0), + // Result: #datetime(2025, 7, 24, 14, 0, 0) + #datetime(2025, 7, 24, 12, 0, 0) - #duration(0, 2, 0, 0), + // Result: #datetime(2025, 7, 24, 10, 0, 0) + #time(12, 0, 0) - #duration(0, 3, 30, 0) + // Result: #time(8, 30, 0) + } + in + Source + ``` + +* Negation: A duration can be negated to reverse its direction. + + ```powerquery-m + let + Source = { + #datetime(2025, 7, 24, 12, 0, 0) + -#duration(0, 2, 0, 0), + // Result (subtracts two hours): #datetime(2025, 7, 24, 10, 0, 0) + #datetime(2025, 7, 23, 12, 0, 0) - #datetime(2025, 7, 24, 12, 0, 0) + // Result: -#duration(1, 0, 0, 0) + } + in + Source + ``` + +### Multiplication and division + +Durations can be multiplied or divided by numeric values: + +```powerquery-m +let + Source = { + #duration(0, 2, 0, 0) * 2, + // Result (4 hours): #duration(0, 4, 0, 0) + #duration(1, 0, 0, 0) / 2 + // Result (12 hours): #duration(0, 12, 0, 0) + } +in + Source +``` + +This calculation is useful for scaling durations or averaging time intervals. + +### Comparisons + +Durations can be compared using standard comparison operators: + +```powerquery-m +let + Source = #duration(1, 0, 0, 0) > #duration(0, 23, 59, 59) + // Result: true +in + Source +``` + +This calculation allows durations to be used in conditional logic, such as filtering rows based on elapsed time. + +### Type Compatibility + +Durations are compatible with date and time values in arithmetic expressions but not interchangeable with them. For example, subtracting two date and time values yields a `duration`, but adding two date and time values is invalid. + +```powerquery-m +let + Source = + { + #datetime(2025, 7, 24, 12, 0, 0) - #datetime(2025, 7, 23, 12, 0, 0), + // Result: #duration(1, 0, 0, 0) + #datetime(2025, 7, 24, 12, 0, 0) + #datetime(2025, 7, 23, 12, 0, 0) + // Result: Error + } +in + Source +``` + +## Duration Functions in M + +Power Query M includes a set of built-in functions for working with durations. These functions allow for conversion, extraction of components, and aggregation of duration values, making them essential tools for time-based transformations. + +### Duration.From(value) + +The [Duration.From](duration-from.md) function converts a compatible value into a duration. Compatible values consist of either a number that's interpreted as a fraction of a day or a textual representation of a duration. Go to [Duration.FromText](duration-fromtext.md) for information about the textual representation formats. + +```powerquery-m +let + Source = + { + Duration.From(1.5), + // Result: 1.5 days = #duration(1, 12, 0, 0) + Duration.From("2.05:55:20.242") + // Result: #duration(2, 5, 55, 20.242) + } +in + Source +``` + +This conversion is helpful when durations are stored as decimal values in source data. + +### Component Accessors + +These functions extract specific parts of a duration: + +* `Duration.Days()` + + Returns the number of whole days in the duration. + +* `Duration.Hours()` + + Returns the number of hours beyond the whole days. + +* `Duration.Minutes()` + + Returns the number of minutes beyond the whole hours. + +* `Duration.Seconds()` + + Returns the number of seconds beyond the whole minutes. + +```powerquery-m +let + Source = #duration(2, 5, 30, 45), + TextFormat = Text.Format( + "Duration = #{0} days, #{1} hours, #{2} minutes, and #{3} seconds.", + { + Duration.Days(Source), + Duration.Hours(Source), + Duration.Minutes(Source), + Duration.Seconds(Source) + } + ) + // Results: "Duration = 2 days, 5 hours, 30 minutes, and 45 seconds." +in + TextFormat +``` + +### Total Value Functions + +These functions return the total value of a duration in a single unit, including fractional parts: + +* `Duration.TotalDays()` +* `Duration.TotalHours()` +* `Duration.TotalMinutes()` +* `Duration.TotalSeconds()` + +```powerquery-m +let + Source = + { + Duration.TotalDays(#duration(1, 12, 0, 0)), // 1.5 days + Duration.TotalHours(#duration(1, 12, 0, 0)), // 36 hours + Duration.TotalMinutes(#duration(1, 12, 0, 0)), // 2160 minutes + Duration.TotalSeconds(#duration(1, 12, 0, 0)) // 129600 seconds + } +in + Source +``` + +## Duration normalization + +In most cases, duration is composed of days, hours (maximum 23 hours), minutes (maximum 59 minutes), and seconds (maximum 59.9999999 seconds). However, in some cases you might exceed the maximum values in the duration parameters. In this case, Power Query M automatically normalizes these values: + +* Seconds overflow into minutes +* Minutes overflow into hours +* Hours overflow into days + +For example, suppose you have a column that provides the start date and time for a running process. In addition, you have a column that shows how many seconds it took for the process to complete, in seconds. You want to create a third column that shows the date and time that the process completes. + +```powerquery-m +let + Source = #table(type table[StartTime = datetime, Seconds = Int64.Type], + { + {#datetime(2025, 7, 25, 8, 0, 0), 5400}, + {#datetime(2025, 7, 25, 13, 15, 0), 86400}, + {#datetime(2025, 7, 24, 22, 30, 0), 172800} + }), + AddSeconds = Table.AddColumn( + Source, + "EndTime", + each [StartTime] + #duration(0, 0, 0, [Seconds]), + type datetime + ) +in + AddSeconds +``` + +The following table is the result of these calculations. + +:::image type="content" source="media/m-working-with-durations/adding-seconds-for-duration.png" alt-text="Screenshot of the table containing the end date and time column derived from the start time and duration in seconds."::: + +So, even though you only had the number of seconds that a process took place, Power Query M rolls that duration value up into minutes and hours when the result is evaluated. + +## Representing weeks, months, and years + +Since durations are based on fixed units (days, hours, minutes, seconds), there's no native concept of weeks, months, or years, which vary in length. However, approximate equivalents can be created by converting to days: + +* One week: #duration(7, 0, 0, 0) +* One month (approximate): #duration(30, 0, 0, 0) +* One year (not leap year): #duration(365, 0, 0, 0) + +A `duration` type in Power Query M is a fixed structure that doesn’t account for calendar rules. For accurate spans over months or years, subtract one date and time from another instead of using fixed durations. This approach correctly handles leap years, varying month lengths, and daylight savings time (DST). However, also note that some date and time behavior might differ depending on whether the query runs locally (on Power Query Desktop) or online (on Power Query Online). For details, go to [Local, fixed, and UTC variants of current date and time](m-local-fixed-utc-variants.md). In general, avoid relying on fixed durations for long-term calculations. diff --git a/query-languages/m/media/m-working-with-durations/adding-seconds-for-duration.png b/query-languages/m/media/m-working-with-durations/adding-seconds-for-duration.png new file mode 100644 index 0000000000000000000000000000000000000000..b72c775ada0675e58a72daa846a28bca5c1e3af0 GIT binary patch literal 13773 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 literal 0 HcmV?d00001 diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 95af577f0..692d7fd6d 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -52,6 +52,8 @@ items: items: - name: Local, fixed, and UTC variants href: m-local-fixed-utc-variants.md + - name: Working with duration-seconds.md + href: m-working-with-durations.md - name: Text formatting items: - name: Standard numeric format strings From bb4529bda109995e6ebe2e42da827e5154b9154d Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 29 Jul 2025 14:34:57 -0700 Subject: [PATCH 903/934] More changes for clarity --- query-languages/m/m-working-with-durations.md | 8 ++++---- query-languages/m/toc.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/query-languages/m/m-working-with-durations.md b/query-languages/m/m-working-with-durations.md index 408660992..fb95049c1 100644 --- a/query-languages/m/m-working-with-durations.md +++ b/query-languages/m/m-working-with-durations.md @@ -16,7 +16,7 @@ This article explores the structure, creation, and manipulation of durations in A duration is defined by the `#duration(, , , )` function. For example, `#duration(2, 3, 0, 0)` represents a duration of 2 days and 3 hours. Power Query M provides several ways to create a duration, depending on the context and the level of precision required. -### Use the #duration constructor +### Use the #duration function The most direct way to create a duration is with the `#duration(, , , )` syntax. Each argument must be a number, and the result is a duration value. @@ -52,7 +52,7 @@ in > [!NOTE] > Subtracting one date and time function from a different date and time function (for example, subtracting a `#date` function from a `#datetime` function) results in an error. If you must use different date and time functions to determine a duration, use functions such as [Date.From](date-from.md), [DateTime.From](datetime-from.md), or [DateTimeZone.From](datetimezone-from.md) to explicitly change one of the date and time functions. -### Converting from other types +### Converting from compatible values The [Duration.From](duration-from.md) function can convert compatible values into durations. For more information, go to [Duration.From(value)](#durationfromvalue). @@ -237,7 +237,7 @@ In most cases, duration is composed of days, hours (maximum 23 hours), minutes ( * Minutes overflow into hours * Hours overflow into days -For example, suppose you have a column that provides the start date and time for a running process. In addition, you have a column that shows how many seconds it took for the process to complete, in seconds. You want to create a third column that shows the date and time that the process completes. +For example, suppose you have a column that provides the start date and time for a running process. In addition, you have a column that shows how long it took for the process to complete, in seconds. You want to create a third column that shows the date and time that the process completes. ```powerquery-m let @@ -261,7 +261,7 @@ The following table is the result of these calculations. :::image type="content" source="media/m-working-with-durations/adding-seconds-for-duration.png" alt-text="Screenshot of the table containing the end date and time column derived from the start time and duration in seconds."::: -So, even though you only had the number of seconds that a process took place, Power Query M rolls that duration value up into minutes and hours when the result is evaluated. +So, even though you only had the number of seconds that a process took place, Power Query M rolls that duration value up into minutes, hours, and days when the result is evaluated. ## Representing weeks, months, and years diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 692d7fd6d..622dc7792 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -52,7 +52,7 @@ items: items: - name: Local, fixed, and UTC variants href: m-local-fixed-utc-variants.md - - name: Working with duration-seconds.md + - name: Working with durations href: m-working-with-durations.md - name: Text formatting items: From 4a3b6b4d23125f2bababd63d981eaaebc3d07fbf Mon Sep 17 00:00:00 2001 From: Sean Tang Date: Wed, 30 Jul 2025 15:43:02 -0700 Subject: [PATCH 904/934] Doc for ValueFilterBehavior --- .../dax/summarizecolumns-function-dax.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index d5a9ae2b5..e4a4e12ab 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -355,6 +355,39 @@ In the above expression, there are two filters on the 'Geography' table: one wit Please note that this restriction is temporary. We are actively developing solutions to remove this limitation in future updates. If you encounter this error, we advise adjusting the filters within SummarizeColumns by adding or removing KeepFilters as necessary to ensure consistent overriding behavior on each table. +### ValueFilterBehavior ### + +ValueFilterBehavior is a model property that controls how value filter is applied to filter context. Allowed values are "Coalesced" and "Independent". + +Coalesced means all value filters on the same table will be applied together as a single conceptual filter to measure. + +Independent means only value filters filtering on group-by columns will be applied together. Filters that do not participate in group-by will be applied independently. + +As an example to illustrate the difference, consider the following data on Product table: + +|Color|Size| +|-----|----| +|Black|S| +|White|M| +|Blue|L| +|Black|XL| + +Now consider the following SummarizeColumns: + +```dax +Evaluate SummarizeColumns( + TreatAs({"Black", "White"}, Product[Color]), + TreatAs({"S", "L"}, Product[Size]), + , "Measure", Calculate(CountRows(Product), ALL(Product[Color])) +) +``` + +Under ValueFilterBehavior=Coalesced, the two TreatAs value filters are applied togeter as a single filter. Due to the Product table data, this single filter is equivalent to a single row of ("Black","S") on Product[Color] and Product[Size] columns. When the measure clears filter context on Product[Color], it will then see Product[Size]="S" in filter context and therefore computes 1 as measure value, because there is only a single row of [Size]="S" in our example Product table. + +Under ValueFilterBehavior=Independent, the two TreatAs value filters do not interact with each other. When measure clears filter context on Product[Color], it ignores the first value filter and picks up the original second filter on Product[Size] column with both values "S" and "L". This will make measure compute 2 as measure value, because there are two rows of [Size]="S" or "L". + +It is decided that ValueFilterBehavior being Independent is the better behavior, and we will move the default of future models to Independent at some point. + ## Related content [SUMMARIZE](summarize-function-dax.md) From 33200b3f465b242cd7ff072f81137248c56cf39c Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 31 Jul 2025 12:40:51 -0700 Subject: [PATCH 905/934] Updated syntax to not scroll on the page --- query-languages/m/adodotnet-datasource.md | 6 +++++- query-languages/m/adodotnet-query.md | 7 ++++++- query-languages/m/analysisservices-database.md | 6 +++++- query-languages/m/binary-range.md | 6 +++++- query-languages/m/binaryformat-choice.md | 7 ++++++- query-languages/m/binaryformat-group.md | 7 ++++++- query-languages/m/byte-from.md | 6 +++++- query-languages/m/comparer-equals.md | 6 +++++- query-languages/m/csv-document.md | 8 +++++++- query-languages/m/cube-addandexpanddimensioncolumn.md | 7 ++++++- query-languages/m/cube-addmeasurecolumn.md | 6 +++++- query-languages/m/cube-applyparameter.md | 6 +++++- query-languages/m/cube-parameters.md | 2 +- query-languages/m/currency-from.md | 6 +++++- query-languages/m/date-totext.md | 6 +++++- query-languages/m/datetime-addzone.md | 6 +++++- query-languages/m/datetime-totext.md | 6 +++++- query-languages/m/datetimezone-switchzone.md | 6 +++++- query-languages/m/datetimezone-totext.md | 6 +++++- query-languages/m/db2-database.md | 6 +++++- query-languages/m/diagnostics-trace.md | 7 ++++++- query-languages/m/error-record.md | 8 +++++++- query-languages/m/excel-workbook.md | 6 +++++- query-languages/m/geographypoint-from.md | 8 +++++++- query-languages/m/geometrypoint-from.md | 8 +++++++- query-languages/m/html-table.md | 6 +++++- query-languages/m/informix-database.md | 6 +++++- query-languages/m/int16-from.md | 6 +++++- query-languages/m/int32-from.md | 6 +++++- query-languages/m/int64-from.md | 6 +++++- query-languages/m/int8-from.md | 6 +++++- query-languages/m/json-fromvalue.md | 4 ++-- query-languages/m/lines-frombinary.md | 7 ++++++- query-languages/m/lines-fromtext.md | 6 +++++- query-languages/m/lines-tobinary.md | 7 ++++++- query-languages/m/list-accumulate.md | 6 +++++- query-languages/m/list-alternate.md | 7 ++++++- query-languages/m/list-contains.md | 6 +++++- query-languages/m/list-containsall.md | 6 +++++- query-languages/m/list-containsany.md | 6 +++++- query-languages/m/list-dates.md | 6 +++++- query-languages/m/list-datetimes.md | 6 +++++- query-languages/m/list-datetimezones.md | 6 +++++- query-languages/m/list-difference.md | 6 +++++- query-languages/m/list-durations.md | 6 +++++- query-languages/m/list-generate.md | 7 ++++++- query-languages/m/list-insertrange.md | 6 +++++- query-languages/m/list-max.md | 7 ++++++- query-languages/m/list-maxn.md | 7 ++++++- query-languages/m/list-min.md | 7 ++++++- query-languages/m/list-minn.md | 7 ++++++- query-languages/m/list-numbers.md | 6 +++++- query-languages/m/list-percentile.md | 6 +++++- query-languages/m/list-positionof.md | 7 ++++++- query-languages/m/list-positionofany.md | 7 ++++++- query-languages/m/list-range.md | 6 +++++- query-languages/m/list-removematchingitems.md | 6 +++++- query-languages/m/list-removerange.md | 6 +++++- query-languages/m/list-replacematchingitems.md | 6 +++++- query-languages/m/list-replacerange.md | 7 ++++++- query-languages/m/list-replacevalue.md | 7 ++++++- query-languages/m/list-times.md | 6 +++++- query-languages/m/list-transformmany.md | 6 +++++- query-languages/m/mysql-database.md | 6 +++++- query-languages/m/number-integerdivide.md | 6 +++++- query-languages/m/number-mod.md | 6 +++++- query-languages/m/number-round.md | 6 +++++- query-languages/m/number-totext.md | 6 +++++- query-languages/m/odata-feed.md | 6 +++++- query-languages/m/odbc-query.md | 6 +++++- query-languages/m/oledb-query.md | 6 +++++- query-languages/m/postgresql-database.md | 6 +++++- query-languages/m/rdata-frombinary.md | 2 +- query-languages/m/record-addfield.md | 7 ++++++- query-languages/m/record-fieldordefault.md | 6 +++++- query-languages/m/record-removefields.md | 6 +++++- query-languages/m/record-renamefields.md | 8 ++++++-- query-languages/m/record-reorderfields.md | 6 +++++- query-languages/m/record-selectfields.md | 6 +++++- query-languages/m/record-transformfields.md | 6 +++++- query-languages/m/replacer-replacetext.md | 6 +++++- query-languages/m/replacer-replacevalue.md | 5 ++++- query-languages/m/sapbusinesswarehouse-cubes.md | 8 +++++++- query-languages/m/sharpdate.md | 6 +++++- query-languages/m/sharpdatetime.md | 9 ++++++++- query-languages/m/sharpdatetimezone.md | 11 ++++++++++- query-languages/m/sharpduration.md | 7 ++++++- query-languages/m/sharptime.md | 6 +++++- query-languages/m/splitter-splittextbyanydelimiter.md | 6 +++++- query-languages/m/splitter-splittextbydelimiter.md | 6 +++++- .../m/splitter-splittextbyeachdelimiter.md | 6 +++++- query-languages/m/sql-database.md | 6 +++++- query-languages/m/sybase-database.md | 6 +++++- query-languages/m/table-addcolumn.md | 7 ++++++- query-languages/m/table-addfuzzyclustercolumn.md | 7 ++++++- query-languages/m/table-addindexcolumn.md | 8 +++++++- query-languages/m/table-addjoincolumn.md | 8 +++++++- query-languages/m/table-addkey.md | 6 +++++- query-languages/m/table-addrankcolumn.md | 7 ++++++- query-languages/m/table-aggregatetablecolumn.md | 6 +++++- query-languages/m/table-alternaterows.md | 7 ++++++- query-languages/m/table-combinecolumns.md | 7 ++++++- query-languages/m/table-combinecolumnstorecord.md | 7 ++++++- query-languages/m/table-contains.md | 6 +++++- query-languages/m/table-containsall.md | 6 +++++- query-languages/m/table-containsany.md | 6 +++++- query-languages/m/table-duplicatecolumn.md | 7 ++++++- query-languages/m/table-expandrecordcolumn.md | 7 ++++++- query-languages/m/table-expandtablecolumn.md | 7 ++++++- query-languages/m/table-fromlist.md | 8 +++++++- query-languages/m/table-frompartitions.md | 6 +++++- query-languages/m/table-fromrecords.md | 6 +++++- query-languages/m/table-fuzzygroup.md | 7 ++++++- query-languages/m/table-fuzzyjoin.md | 9 ++++++++- query-languages/m/table-fuzzynestedjoin.md | 10 +++++++++- query-languages/m/table-group.md | 8 +++++++- query-languages/m/table-insertrows.md | 6 +++++- query-languages/m/table-join.md | 10 +++++++++- query-languages/m/table-max.md | 6 +++++- query-languages/m/table-maxn.md | 6 +++++- query-languages/m/table-min.md | 6 +++++- query-languages/m/table-minn.md | 6 +++++- query-languages/m/table-nestedjoin.md | 10 +++++++++- query-languages/m/table-partition.md | 7 ++++++- query-languages/m/table-pivot.md | 8 +++++++- query-languages/m/table-positionof.md | 7 ++++++- query-languages/m/table-positionofany.md | 7 ++++++- query-languages/m/table-range.md | 6 +++++- query-languages/m/table-removecolumns.md | 6 +++++- query-languages/m/table-removematchingrows.md | 6 +++++- query-languages/m/table-removerows.md | 6 +++++- query-languages/m/table-renamecolumns.md | 6 +++++- query-languages/m/table-reordercolumns.md | 6 +++++- query-languages/m/table-replacematchingrows.md | 6 +++++- query-languages/m/table-replacerows.md | 7 ++++++- query-languages/m/table-replacevalue.md | 8 +++++++- query-languages/m/table-selectcolumns.md | 6 +++++- query-languages/m/table-splitcolumn.md | 9 ++++++++- query-languages/m/table-transformcolumnnames.md | 6 +++++- query-languages/m/table-transformcolumns.md | 7 ++++++- query-languages/m/table-transformcolumntypes.md | 6 +++++- query-languages/m/table-unpivot.md | 7 ++++++- query-languages/m/table-unpivotothercolumns.md | 8 +++++++- query-languages/m/text-afterdelimiter.md | 6 +++++- query-languages/m/text-beforedelimiter.md | 6 +++++- query-languages/m/text-betweendelimiters.md | 8 +++++++- query-languages/m/text-contains.md | 6 +++++- query-languages/m/text-endswith.md | 6 +++++- query-languages/m/text-format.md | 6 +++++- query-languages/m/text-insert.md | 6 +++++- query-languages/m/text-middle.md | 6 +++++- query-languages/m/text-padend.md | 6 +++++- query-languages/m/text-padstart.md | 6 +++++- query-languages/m/text-positionof.md | 7 ++++++- query-languages/m/text-positionofany.md | 6 +++++- query-languages/m/text-range.md | 6 +++++- query-languages/m/text-removerange.md | 6 +++++- query-languages/m/text-replace.md | 6 +++++- query-languages/m/text-replacerange.md | 7 ++++++- query-languages/m/text-startswith.md | 6 +++++- query-languages/m/text-tobinary.md | 6 +++++- query-languages/m/time-totext.md | 6 +++++- query-languages/m/type-addtablekey.md | 6 +++++- query-languages/m/value-add.md | 6 +++++- query-languages/m/value-compare.md | 6 +++++- query-languages/m/value-divide.md | 6 +++++- query-languages/m/value-equals.md | 6 +++++- query-languages/m/value-multiply.md | 6 +++++- query-languages/m/value-nativequery.md | 7 ++++++- query-languages/m/value-nullableequals.md | 6 +++++- query-languages/m/value-subtract.md | 6 +++++- query-languages/m/webaction-request.md | 6 +++++- query-languages/m/xml-tables.md | 6 +++++- 173 files changed, 944 insertions(+), 175 deletions(-) diff --git a/query-languages/m/adodotnet-datasource.md b/query-languages/m/adodotnet-datasource.md index 7bf500d5a..e7c65768e 100644 --- a/query-languages/m/adodotnet-datasource.md +++ b/query-languages/m/adodotnet-datasource.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -AdoDotNet.DataSource(providerName as text, connectionString as any, optional options as nullable record) as table
    +AdoDotNet.DataSource(
    +    providerName as text,
    +    connectionString as any,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/adodotnet-query.md b/query-languages/m/adodotnet-query.md index fec29195e..9f0ef6758 100644 --- a/query-languages/m/adodotnet-query.md +++ b/query-languages/m/adodotnet-query.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -AdoDotNet.Query(providerName as text, connectionString as any, query as text, optional options as nullable record) as table
    +AdoDotNet.Query(
    +    providerName as text,
    +    connectionString as any,
    +    query as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/analysisservices-database.md b/query-languages/m/analysisservices-database.md index 284542ab5..5d029f4b1 100644 --- a/query-languages/m/analysisservices-database.md +++ b/query-languages/m/analysisservices-database.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -AnalysisServices.Database(server as text, database as text, optional options as nullable record) as table
    +AnalysisServices.Database(
    +    server as text,
    +    database as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/binary-range.md b/query-languages/m/binary-range.md index 4530ad271..40f6227f0 100644 --- a/query-languages/m/binary-range.md +++ b/query-languages/m/binary-range.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Binary.Range(binary as binary, offset as number, optional count as nullable number) as binary
    +Binary.Range(
    +    binary as binary,
    +    offset as number,
    +    optional count as nullable number
    +) as binary
     
    ## About diff --git a/query-languages/m/binaryformat-choice.md b/query-languages/m/binaryformat-choice.md index 29e22f652..7c51bcaff 100644 --- a/query-languages/m/binaryformat-choice.md +++ b/query-languages/m/binaryformat-choice.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -BinaryFormat.Choice(binaryFormat as function, chooseFunction as function, optional type as nullable type, optional combineFunction as nullable function) as function
    +BinaryFormat.Choice(
    +    binaryFormat as function,
    +    chooseFunction as function,
    +    optional type as nullable type,
    +    optional combineFunction as nullable function
    +) as function
     
    ## About diff --git a/query-languages/m/binaryformat-group.md b/query-languages/m/binaryformat-group.md index 0ce0fce43..0b07ac61b 100644 --- a/query-languages/m/binaryformat-group.md +++ b/query-languages/m/binaryformat-group.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -BinaryFormat.Group(binaryFormat as function, group as list, optional extra as nullable function, optional lastKey as any) as function
    +BinaryFormat.Group(
    +    binaryFormat as function,
    +    group as list,
    +    optional extra as nullable function,
    +    optional lastKey as any
    +) as function
     
    ## About diff --git a/query-languages/m/byte-from.md b/query-languages/m/byte-from.md index 51533c2fe..c47d903a4 100644 --- a/query-languages/m/byte-from.md +++ b/query-languages/m/byte-from.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Byte.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
    +Byte.From(
    +    value as any,
    +    optional culture as nullable text,
    +    optional roundingMode as nullable number
    +) as nullable number
     
    ## About diff --git a/query-languages/m/comparer-equals.md b/query-languages/m/comparer-equals.md index c31000504..0e18b399d 100644 --- a/query-languages/m/comparer-equals.md +++ b/query-languages/m/comparer-equals.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Comparer.Equals(comparer as function, x as any, y as any) as logical
    +Comparer.Equals(
    +    comparer as function,
    +    x as any,
    +    y as any
    +) as logical
     
    ## About diff --git a/query-languages/m/csv-document.md b/query-languages/m/csv-document.md index 0aa101199..7077176e8 100644 --- a/query-languages/m/csv-document.md +++ b/query-languages/m/csv-document.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
     
    -Csv.Document(source as any, optional columns as any, optional delimiter as any, optional extraValues as nullable number, optional encoding as nullable number) as table
    +Csv.Document(
    +    source as any,
    +    optional columns as any,
    +    optional delimiter as any,
    +    optional extraValues as nullable number,
    +    optional encoding as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/cube-addandexpanddimensioncolumn.md b/query-languages/m/cube-addandexpanddimensioncolumn.md index 0a7e09a0c..41c83e9ef 100644 --- a/query-languages/m/cube-addandexpanddimensioncolumn.md +++ b/query-languages/m/cube-addandexpanddimensioncolumn.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Cube.AddAndExpandDimensionColumn(cube as table, dimensionSelector as any, attributeNames as list, optional newColumnNames as any) as table
    +Cube.AddAndExpandDimensionColumn(
    +    cube as table,
    +    dimensionSelector as any,
    +    attributeNames as list,
    +    optional newColumnNames as any
    +) as table
     
    ## About diff --git a/query-languages/m/cube-addmeasurecolumn.md b/query-languages/m/cube-addmeasurecolumn.md index c33ea69ef..b6afca03e 100644 --- a/query-languages/m/cube-addmeasurecolumn.md +++ b/query-languages/m/cube-addmeasurecolumn.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Cube.AddMeasureColumn(cube as table, column as text, measureSelector as any) as table
    +Cube.AddMeasureColumn(
    +    cube as table,
    +    column as text,
    +    measureSelector as any
    +) as table
     
    ## About diff --git a/query-languages/m/cube-applyparameter.md b/query-languages/m/cube-applyparameter.md index 7b7ac62c7..f1d52dab7 100644 --- a/query-languages/m/cube-applyparameter.md +++ b/query-languages/m/cube-applyparameter.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Cube.ApplyParameter(cube as table, parameter as any, optional arguments as nullable list) as table
    +Cube.ApplyParameter(
    +    cube as table,
    +    parameter as any,
    +    optional arguments as nullable list
    +) as table
     
    ## About diff --git a/query-languages/m/cube-parameters.md b/query-languages/m/cube-parameters.md index cb270e0f1..a58538c56 100644 --- a/query-languages/m/cube-parameters.md +++ b/query-languages/m/cube-parameters.md @@ -8,7 +8,7 @@ ms.subservice: m-source ## Syntax
    -Cube.Parameters(cube as table) as table
    +Cube.Parameters(cube as table) as table
     
    ## About diff --git a/query-languages/m/currency-from.md b/query-languages/m/currency-from.md index 60592a05c..38d72a4d4 100644 --- a/query-languages/m/currency-from.md +++ b/query-languages/m/currency-from.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
     
    -Currency.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
    +Currency.From(
    +    value as any,
    +    optional culture as nullable text,
    +    optional roundingMode as nullable number
    +) as nullable number
     
    ## About diff --git a/query-languages/m/date-totext.md b/query-languages/m/date-totext.md index a427889b4..f1fa80dba 100644 --- a/query-languages/m/date-totext.md +++ b/query-languages/m/date-totext.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Date.ToText(date as nullable date, optional options as any, optional culture as nullable text) as nullable text
    +Date.ToText(
    +    date as nullable date,
    +    optional options as any,
    +    optional culture as nullable text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/datetime-addzone.md b/query-languages/m/datetime-addzone.md index d53a43593..688f4c91c 100644 --- a/query-languages/m/datetime-addzone.md +++ b/query-languages/m/datetime-addzone.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -DateTime.AddZone(dateTime as nullable datetime, timezoneHours as number, optional timezoneMinutes as nullable number) as nullable datetimezone
    +DateTime.AddZone(
    +    dateTime as nullable datetime,
    +    timezoneHours as number,
    +    optional timezoneMinutes as nullable number
    +) as nullable datetimezone
     
    ## About diff --git a/query-languages/m/datetime-totext.md b/query-languages/m/datetime-totext.md index a554ed6e8..829cd46e3 100644 --- a/query-languages/m/datetime-totext.md +++ b/query-languages/m/datetime-totext.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -DateTime.ToText(dateTime as nullable datetime, optional options as any, optional culture as nullable text) as nullable text
    +DateTime.ToText(
    +    dateTime as nullable datetime,
    +    optional options as any,
    +    optional culture as nullable text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/datetimezone-switchzone.md b/query-languages/m/datetimezone-switchzone.md index a0d56a7d8..0b4816acf 100644 --- a/query-languages/m/datetimezone-switchzone.md +++ b/query-languages/m/datetimezone-switchzone.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -DateTimeZone.SwitchZone(dateTimeZone as nullable datetimezone, timezoneHours as number, optional timezoneMinutes as nullable number) as nullable datetimezone
    +DateTimeZone.SwitchZone(
    +    dateTimeZone as nullable datetimezone,
    +    timezoneHours as number,
    +    optional timezoneMinutes as nullable number
    +) as nullable datetimezone
     
    ## About diff --git a/query-languages/m/datetimezone-totext.md b/query-languages/m/datetimezone-totext.md index 9da8d11f1..fe681a913 100644 --- a/query-languages/m/datetimezone-totext.md +++ b/query-languages/m/datetimezone-totext.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -DateTimeZone.ToText(dateTimeZone as nullable datetimezone, optional options as any, optional culture as nullable text) as nullable text
    +DateTimeZone.ToText(
    +    dateTimeZone as nullable datetimezone,
    +    optional options as any,
    +    optional culture as nullable text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/db2-database.md b/query-languages/m/db2-database.md index b9301fee7..ee1eb412e 100644 --- a/query-languages/m/db2-database.md +++ b/query-languages/m/db2-database.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -DB2.Database(server as text, database as text, optional options as nullable record) as table
    +DB2.Database(
    +    server as text,
    +    database as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/diagnostics-trace.md b/query-languages/m/diagnostics-trace.md index 265963231..9943704b4 100644 --- a/query-languages/m/diagnostics-trace.md +++ b/query-languages/m/diagnostics-trace.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Diagnostics.Trace(traceLevel as number, message as anynonnull, value as any, optional delayed as nullable logical) as any
    +Diagnostics.Trace(
    +    traceLevel as number,
    +    message as anynonnull,
    +    value as any,
    +    optional delayed as nullable logical
    +) as any
     
    ## About diff --git a/query-languages/m/error-record.md b/query-languages/m/error-record.md index eaf8f6389..eeab88566 100644 --- a/query-languages/m/error-record.md +++ b/query-languages/m/error-record.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -Error.Record(reason as text, optional message as nullable text, optional detail as any, optional parameters as nullable list, optional errorCode as nullable text) as record
    +Error.Record(
    +    reason as text,
    +    optional message as nullable text,
    +    optional detail as any,
    +    optional parameters as nullable list,
    +    optional errorCode as nullable text
    +) as record
     
    ## About diff --git a/query-languages/m/excel-workbook.md b/query-languages/m/excel-workbook.md index 74d613291..73fbd9234 100644 --- a/query-languages/m/excel-workbook.md +++ b/query-languages/m/excel-workbook.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Excel.Workbook(workbook as binary, optional useHeaders as any, optional delayTypes as nullable logical) as table
    +Excel.Workbook(
    +    workbook as binary,
    +    optional useHeaders as any,
    +    optional delayTypes as nullable logical
    +) as table
     
    ## About diff --git a/query-languages/m/geographypoint-from.md b/query-languages/m/geographypoint-from.md index 7ce94ced8..67d4f31e8 100644 --- a/query-languages/m/geographypoint-from.md +++ b/query-languages/m/geographypoint-from.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -GeographyPoint.From(longitude as number, latitude as number, optional z as nullable number, optional m as nullable number, optional srid as nullable number) as record
    +GeographyPoint.From(
    +    longitude as number,
    +    latitude as number,
    +    optional z as nullable number,
    +    optional m as nullable number,
    +    optional srid as nullable number
    +) as record
     
    ## About diff --git a/query-languages/m/geometrypoint-from.md b/query-languages/m/geometrypoint-from.md index 52581292c..e2a3556aa 100644 --- a/query-languages/m/geometrypoint-from.md +++ b/query-languages/m/geometrypoint-from.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -GeometryPoint.From(x as number, y as number, optional z as nullable number, optional m as nullable number, optional srid as nullable number) as record
    +GeometryPoint.From(
    +    x as number,
    +    y as number,
    +    optional z as nullable number,
    +    optional m as nullable number,
    +    optional srid as nullable number
    +) as record
     
    ## About diff --git a/query-languages/m/html-table.md b/query-languages/m/html-table.md index 8f0367252..fcb2028d2 100644 --- a/query-languages/m/html-table.md +++ b/query-languages/m/html-table.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Html.Table(html as any, columnNameSelectorPairs as list, optional options as nullable record) as table
    +Html.Table(
    +    html as any,
    +    columnNameSelectorPairs as list,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/informix-database.md b/query-languages/m/informix-database.md index 30b4d7249..7e2fe214e 100644 --- a/query-languages/m/informix-database.md +++ b/query-languages/m/informix-database.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Informix.Database(server as text, database as text, optional options as nullable record) as table
    +Informix.Database(
    +    server as text,
    +    database as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/int16-from.md b/query-languages/m/int16-from.md index 626cdb09b..213d8937c 100644 --- a/query-languages/m/int16-from.md +++ b/query-languages/m/int16-from.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Int16.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
    +Int16.From(
    +    value as any,
    +    optional culture as nullable text,
    +    optional roundingMode as nullable number
    +) as nullable number
     
    ## About diff --git a/query-languages/m/int32-from.md b/query-languages/m/int32-from.md index d8ef4093c..2855b93e1 100644 --- a/query-languages/m/int32-from.md +++ b/query-languages/m/int32-from.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Int32.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
    +Int32.From(
    +    value as any,
    +    optional culture as nullable text,
    +    optional roundingMode as nullable number
    +) as nullable number
     
    ## About diff --git a/query-languages/m/int64-from.md b/query-languages/m/int64-from.md index 6921bdca4..fbe16be2f 100644 --- a/query-languages/m/int64-from.md +++ b/query-languages/m/int64-from.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Int64.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
    +Int64.From(
    +    value as any,
    +    optional culture as nullable text,
    +    optional roundingMode as nullable number
    +) as nullable number
     
    ## About diff --git a/query-languages/m/int8-from.md b/query-languages/m/int8-from.md index 5cde227f8..c32e50b1d 100644 --- a/query-languages/m/int8-from.md +++ b/query-languages/m/int8-from.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Int8.From(value as any, optional culture as nullable text, optional roundingMode as nullable number) as nullable number
    +Int8.From(
    +    value as any,
    +    optional culture as nullable text,
    +    optional roundingMode as nullable number
    +) as nullable number
     
    ## About diff --git a/query-languages/m/json-fromvalue.md b/query-languages/m/json-fromvalue.md index 5f17efc65..5cfd4e138 100644 --- a/query-languages/m/json-fromvalue.md +++ b/query-languages/m/json-fromvalue.md @@ -18,9 +18,9 @@ Produces a JSON representation of a given value `value` with a text encoding spe * Null, text and logical values are represented as the corresponding JSON types * Numbers are represented as numbers in JSON, except that `#infinity`, `-#infinity` and `#nan` are converted to null * Lists are represented as JSON arrays -* Records are represnted as JSON objects +* Records are represented as JSON objects * Tables are represented as an array of objects -* Dates, times, datetimes, datetimezones and durations are represented as ISO-8601 text +* Dates, times, datetimes, datetimezones, and durations are represented as ISO-8601 text * Binary values are represented as base-64 encoded text * Types and functions produce an error diff --git a/query-languages/m/lines-frombinary.md b/query-languages/m/lines-frombinary.md index 76beb1703..2405ca41d 100644 --- a/query-languages/m/lines-frombinary.md +++ b/query-languages/m/lines-frombinary.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Lines.FromBinary(binary as binary, optional quoteStyle as any, optional includeLineSeparators as nullable logical, optional encoding as nullable number) as list
    +Lines.FromBinary(
    +    binary as binary,
    +    optional quoteStyle as any,
    +    optional includeLineSeparators as nullable logical,
    +    optional encoding as nullable number
    +) as list
     
    ## About diff --git a/query-languages/m/lines-fromtext.md b/query-languages/m/lines-fromtext.md index 35ac16792..642fe2e3e 100644 --- a/query-languages/m/lines-fromtext.md +++ b/query-languages/m/lines-fromtext.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Lines.FromText(text as text, optional quoteStyle as any, optional includeLineSeparators as nullable logical) as list
    +Lines.FromText(
    +    text as text,
    +    optional quoteStyle as any,
    +    optional includeLineSeparators as nullable logical
    +) as list
     
    ## About diff --git a/query-languages/m/lines-tobinary.md b/query-languages/m/lines-tobinary.md index 730891f23..3e3821753 100644 --- a/query-languages/m/lines-tobinary.md +++ b/query-languages/m/lines-tobinary.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Lines.ToBinary(lines as list, optional lineSeparator as nullable text, optional encoding as nullable number, optional includeByteOrderMark as nullable logical) as binary
    +Lines.ToBinary(
    +    lines as list,
    +    optional lineSeparator as nullable text,
    +    optional encoding as nullable number,
    +    optional includeByteOrderMark as nullable logical
    +) as binary
     
    ## About diff --git a/query-languages/m/list-accumulate.md b/query-languages/m/list-accumulate.md index 08d0c9412..2f36cc48d 100644 --- a/query-languages/m/list-accumulate.md +++ b/query-languages/m/list-accumulate.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.Accumulate(list as list, seed as any, accumulator as function) as any
    +List.Accumulate(
    +    list as list,
    +    seed as any,
    +    accumulator as function
    +) as any
     
    ## About diff --git a/query-languages/m/list-alternate.md b/query-languages/m/list-alternate.md index a9f43738f..889f03c08 100644 --- a/query-languages/m/list-alternate.md +++ b/query-languages/m/list-alternate.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.Alternate(list as list, count as number, optional repeatInterval as nullable number, optional offset as nullable number) as list
    +List.Alternate(
    +    list as list,
    +    count as number,
    +    optional repeatInterval as nullable number,
    +    optional offset as nullable number
    +) as list
     
    ## About diff --git a/query-languages/m/list-contains.md b/query-languages/m/list-contains.md index f4a8927f2..53e17cb42 100644 --- a/query-languages/m/list-contains.md +++ b/query-languages/m/list-contains.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.Contains(list as list, value as any, optional equationCriteria as any) as logical 
    +List.Contains(
    +    list as list,
    +    value as any,
    +    optional equationCriteria as any
    +) as logical
     
    ## About diff --git a/query-languages/m/list-containsall.md b/query-languages/m/list-containsall.md index ba5f06d3c..21c8eae3e 100644 --- a/query-languages/m/list-containsall.md +++ b/query-languages/m/list-containsall.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.ContainsAll(list as list, values as list, optional equationCriteria as any) as logical
    +List.ContainsAll(
    +    list as list,
    +    values as list,
    +    optional equationCriteria as any
    +) as logical
     
    ## About diff --git a/query-languages/m/list-containsany.md b/query-languages/m/list-containsany.md index 16f5ebc3d..3d2f4addc 100644 --- a/query-languages/m/list-containsany.md +++ b/query-languages/m/list-containsany.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.ContainsAny(list as list, values as list, optional equationCriteria as any) as logical
    +List.ContainsAny(
    +    list as list,
    +    values as list,
    +    optional equationCriteria as any
    +) as logical
     
    ## About diff --git a/query-languages/m/list-dates.md b/query-languages/m/list-dates.md index 4d2d01849..f356a4117 100644 --- a/query-languages/m/list-dates.md +++ b/query-languages/m/list-dates.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.Dates(start as date, count as number, step as duration) as list
    +List.Dates(
    +    start as date,
    +    count as number,
    +    step as duration
    +) as list
     
    ## About diff --git a/query-languages/m/list-datetimes.md b/query-languages/m/list-datetimes.md index 25982efa2..883cee13f 100644 --- a/query-languages/m/list-datetimes.md +++ b/query-languages/m/list-datetimes.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.DateTimes(start as datetime, count as number, step as duration) as list
    +List.DateTimes(
    +    start as datetime,
    +    count as number,
    +    step as duration
    +) as list
     
    ## About diff --git a/query-languages/m/list-datetimezones.md b/query-languages/m/list-datetimezones.md index 92c61d952..f271c3ba6 100644 --- a/query-languages/m/list-datetimezones.md +++ b/query-languages/m/list-datetimezones.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.DateTimeZones(start as datetimezone, count as number, step as duration) as list 
    +List.DateTimeZones(
    +    start as datetimezone,
    +    count as number,
    +    step as duration
    +) as list
     
    ## About diff --git a/query-languages/m/list-difference.md b/query-languages/m/list-difference.md index df54a71a3..1841b5895 100644 --- a/query-languages/m/list-difference.md +++ b/query-languages/m/list-difference.md @@ -6,7 +6,11 @@ ms.subservice: m-source # List.Difference
    -List.Difference(list1 as list, list2 as list, optional equationCriteria as any) as list
    +List.Difference(
    +    list1 as list,
    +    list2 as list,
    +    optional equationCriteria as any
    +) as list
     
    ## About diff --git a/query-languages/m/list-durations.md b/query-languages/m/list-durations.md index fc524988a..4f2ee1c12 100644 --- a/query-languages/m/list-durations.md +++ b/query-languages/m/list-durations.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.Durations(start as duration, count as number, step as duration) as list
    +List.Durations(
    +    start as duration,
    +    count as number,
    +    step as duration
    +) as list
     
    ## About diff --git a/query-languages/m/list-generate.md b/query-languages/m/list-generate.md index 6f65f2be8..6f9c43aff 100644 --- a/query-languages/m/list-generate.md +++ b/query-languages/m/list-generate.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list
    +List.Generate(
    +    initial as function,
    +    condition as function,
    +    next as function,
    +    optional selector as nullable function
    +) as list
     
    ## About diff --git a/query-languages/m/list-insertrange.md b/query-languages/m/list-insertrange.md index e8409f9d0..4e3951a98 100644 --- a/query-languages/m/list-insertrange.md +++ b/query-languages/m/list-insertrange.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.InsertRange(list as list, index as number, values as list) as list
    +List.InsertRange(
    +    list as list,
    +    index as number,
    +    values as list
    +) as list
     
    ## About diff --git a/query-languages/m/list-max.md b/query-languages/m/list-max.md index 9987c1864..8bc398418 100644 --- a/query-languages/m/list-max.md +++ b/query-languages/m/list-max.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.Max(list as list, optional default as any, optional comparisonCriteria as any, optional includeNulls as nullable logical) as any
    +List.Max(
    +    list as list,
    +    optional default as any,
    +    optional comparisonCriteria as any,
    +    optional includeNulls as nullable logical
    +) as any
     
    ## About diff --git a/query-languages/m/list-maxn.md b/query-languages/m/list-maxn.md index 484ab707d..80bdaa2e1 100644 --- a/query-languages/m/list-maxn.md +++ b/query-languages/m/list-maxn.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.MaxN(list as list, countOrCondition as any, optional comparisonCriteria as any, optional includeNulls as nullable logical) as list
    +List.MaxN(
    +    list as list,
    +    countOrCondition as any,
    +    optional comparisonCriteria as any,
    +    optional includeNulls as nullable logical
    +) as list
     
    ## About diff --git a/query-languages/m/list-min.md b/query-languages/m/list-min.md index 663999168..96ea35905 100644 --- a/query-languages/m/list-min.md +++ b/query-languages/m/list-min.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.Min(list as list, optional default as any, optional comparisonCriteria as any, optional includeNulls as nullable logical) as any
    +List.Min(
    +    list as list,
    +    optional default as any,
    +    optional comparisonCriteria as any,
    +    optional includeNulls as nullable logical
    +) as any
     
    ## About diff --git a/query-languages/m/list-minn.md b/query-languages/m/list-minn.md index 997a1ecbb..0c6520293 100644 --- a/query-languages/m/list-minn.md +++ b/query-languages/m/list-minn.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.MinN(list as list, countOrCondition as any, optional comparisonCriteria as any, optional includeNulls as nullable logical) as list
    +List.MinN(
    +    list as list,
    +    countOrCondition as any,
    +    optional comparisonCriteria as any,
    +    optional includeNulls as nullable logical
    +) as list
     
    ## About diff --git a/query-languages/m/list-numbers.md b/query-languages/m/list-numbers.md index e8c4e0557..092b09eb2 100644 --- a/query-languages/m/list-numbers.md +++ b/query-languages/m/list-numbers.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.Numbers(start as number, count as number, optional increment as nullable number) as list
    +List.Numbers(
    +    start as number,
    +    count as number,
    +    optional increment as nullable number
    +) as list
     
    ## About diff --git a/query-languages/m/list-percentile.md b/query-languages/m/list-percentile.md index 243773e50..bb0a48a21 100644 --- a/query-languages/m/list-percentile.md +++ b/query-languages/m/list-percentile.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.Percentile(list as list, percentiles as any, optional options as nullable record) as any
    +List.Percentile(
    +    list as list,
    +    percentiles as any,
    +    optional options as nullable record
    +) as any
     
    ## About diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index 43babeb61..06e0b722b 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.PositionOf(list as list, value as any, optional occurrence as nullable number, optional equationCriteria as any) as any
    +List.PositionOf(
    +    list as list,
    +    value as any,
    +    optional occurrence as nullable number,
    +    optional equationCriteria as any
    +) as any
     
    ## About diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index 6d6f450c1..f658d9f60 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.PositionOfAny(list as list, values as list, optional occurrence as nullable number, optional equationCriteria as any) as any
    +List.PositionOfAny(
    +    list as list,
    +    values as list,
    +    optional occurrence as nullable number,
    +    optional equationCriteria as any
    +) as any
     
    ## About diff --git a/query-languages/m/list-range.md b/query-languages/m/list-range.md index 887e4e8ee..fb0bba063 100644 --- a/query-languages/m/list-range.md +++ b/query-languages/m/list-range.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.Range(list as list, offset as number, optional count as nullable number) as list
    +List.Range(
    +    list as list,
    +    offset as number,
    +    optional count as nullable number
    +) as list
     
    ## About diff --git a/query-languages/m/list-removematchingitems.md b/query-languages/m/list-removematchingitems.md index 5e03e63ae..a031d4c03 100644 --- a/query-languages/m/list-removematchingitems.md +++ b/query-languages/m/list-removematchingitems.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.RemoveMatchingItems(list1 as list, list2 as list, optional equationCriteria as any) as list
    +List.RemoveMatchingItems(
    +    list1 as list,
    +    list2 as list,
    +    optional equationCriteria as any
    +) as list
     
    ## About diff --git a/query-languages/m/list-removerange.md b/query-languages/m/list-removerange.md index 3145559e1..4610c6517 100644 --- a/query-languages/m/list-removerange.md +++ b/query-languages/m/list-removerange.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.RemoveRange(list as list, index as number, optional count as nullable number) as list
    +List.RemoveRange(
    +    list as list,
    +    index as number,
    +    optional count as nullable number
    +) as list
     
    ## About diff --git a/query-languages/m/list-replacematchingitems.md b/query-languages/m/list-replacematchingitems.md index e32b55fbc..77194570a 100644 --- a/query-languages/m/list-replacematchingitems.md +++ b/query-languages/m/list-replacematchingitems.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.ReplaceMatchingItems(list as list, replacements as list, optional equationCriteria as any) as list
    +List.ReplaceMatchingItems(
    +    list as list,
    +    replacements as list,
    +    optional equationCriteria as any
    +) as list
     
    ## About diff --git a/query-languages/m/list-replacerange.md b/query-languages/m/list-replacerange.md index d2e8cbf94..08ea0d655 100644 --- a/query-languages/m/list-replacerange.md +++ b/query-languages/m/list-replacerange.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.ReplaceRange(list as list, index as number, count as number, replaceWith as list) as list
    +List.ReplaceRange(
    +    list as list,
    +    index as number,
    +    count as number,
    +    replaceWith as list
    +) as list
     
    ## About diff --git a/query-languages/m/list-replacevalue.md b/query-languages/m/list-replacevalue.md index 33dcfc7b5..e2016da92 100644 --- a/query-languages/m/list-replacevalue.md +++ b/query-languages/m/list-replacevalue.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -List.ReplaceValue(list as list, oldValue as any, newValue as any, replacer as function) as list
    +List.ReplaceValue(
    +    list as list,
    +    oldValue as any,
    +    newValue as any,
    +    replacer as function
    +) as list
     
    ## About diff --git a/query-languages/m/list-times.md b/query-languages/m/list-times.md index a018692df..eef890274 100644 --- a/query-languages/m/list-times.md +++ b/query-languages/m/list-times.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.Times(start as time, count as number, step as duration) as list
    +List.Times(
    +    start as time,
    +    count as number,
    +    step as duration
    +) as list
     
    ## About diff --git a/query-languages/m/list-transformmany.md b/query-languages/m/list-transformmany.md index 300b862ee..9403cdf49 100644 --- a/query-languages/m/list-transformmany.md +++ b/query-languages/m/list-transformmany.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -List.TransformMany(list as list, collectionTransform as function, resultTransform as function) as list
    +List.TransformMany(
    +    list as list,
    +    collectionTransform as function,
    +    resultTransform as function
    +) as list
     
    ## About diff --git a/query-languages/m/mysql-database.md b/query-languages/m/mysql-database.md index e52cfbd9b..b7017924c 100644 --- a/query-languages/m/mysql-database.md +++ b/query-languages/m/mysql-database.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -MySQL.Database(server as text, database as text, optional options as nullable record) as table
    +MySQL.Database(
    +    server as text,
    +    database as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/number-integerdivide.md b/query-languages/m/number-integerdivide.md index 9ae8a7e00..5a3d0c0bf 100644 --- a/query-languages/m/number-integerdivide.md +++ b/query-languages/m/number-integerdivide.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Number.IntegerDivide(number1 as nullable number, number2 as nullable number, optional precision as nullable number) as nullable number
    +Number.IntegerDivide(
    +    number1 as nullable number,
    +    number2 as nullable number,
    +    optional precision as nullable number
    +) as nullable number
     
    ## About diff --git a/query-languages/m/number-mod.md b/query-languages/m/number-mod.md index a301df9f5..1b8dfecb4 100644 --- a/query-languages/m/number-mod.md +++ b/query-languages/m/number-mod.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Number.Mod(number as nullable number, divisor as nullable number, optional precision as nullable number) as nullable number
    +Number.Mod(
    +    number as nullable number,
    +    divisor as nullable number,
    +    optional precision as nullable number
    +) as nullable number
     
    ## About diff --git a/query-languages/m/number-round.md b/query-languages/m/number-round.md index 0a7faf0df..7a9178369 100644 --- a/query-languages/m/number-round.md +++ b/query-languages/m/number-round.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Number.Round(number as nullable number, optional digits as nullable number, optional roundingMode as nullable number) as nullable number
    +Number.Round(
    +    number as nullable number,
    +    optional digits as nullable number,
    +    optional roundingMode as nullable number
    +) as nullable number
     
    ## About diff --git a/query-languages/m/number-totext.md b/query-languages/m/number-totext.md index 8f8371ad8..4d636c0c6 100644 --- a/query-languages/m/number-totext.md +++ b/query-languages/m/number-totext.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Number.ToText(number as nullable number, optional format as nullable text, optional culture as nullable text) as nullable text
    +Number.ToText(
    +    number as nullable number,
    +    optional format as nullable text,
    +    optional culture as nullable text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/odata-feed.md b/query-languages/m/odata-feed.md index ed1e14313..b0fb43ee2 100644 --- a/query-languages/m/odata-feed.md +++ b/query-languages/m/odata-feed.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -OData.Feed(serviceUri as text, optional headers as nullable record, optional options as any) as any
    +OData.Feed(
    +    serviceUri as text,
    +    optional headers as nullable record,
    +    optional options as any
    +) as any
     
    ## About diff --git a/query-languages/m/odbc-query.md b/query-languages/m/odbc-query.md index 53f81d344..2b2b13aaa 100644 --- a/query-languages/m/odbc-query.md +++ b/query-languages/m/odbc-query.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Odbc.Query(connectionString as any, query as text, optional options as nullable record) as table
    +Odbc.Query(
    +    connectionString as any,
    +    query as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/oledb-query.md b/query-languages/m/oledb-query.md index 8701e77d4..46ab1371f 100644 --- a/query-languages/m/oledb-query.md +++ b/query-languages/m/oledb-query.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -OleDb.Query(connectionString as any, query as text, optional options as nullable record) as table
    +OleDb.Query(
    +    connectionString as any,
    +    query as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/postgresql-database.md b/query-languages/m/postgresql-database.md index 8d1595a6b..fd7dc01d8 100644 --- a/query-languages/m/postgresql-database.md +++ b/query-languages/m/postgresql-database.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -PostgreSQL.Database(server as text, database as text, optional options as nullable record) as table
    +PostgreSQL.Database(
    +    server as text,
    +    database as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/rdata-frombinary.md b/query-languages/m/rdata-frombinary.md index cfd3d66ac..b110dd198 100644 --- a/query-languages/m/rdata-frombinary.md +++ b/query-languages/m/rdata-frombinary.md @@ -8,7 +8,7 @@ ms.subservice: m-source ## Syntax
    -RData.FromBinary(stream as binary) as any
    +RData.FromBinary(stream as binary) as any
     
    ## About diff --git a/query-languages/m/record-addfield.md b/query-languages/m/record-addfield.md index ed195b8f3..4bafe18bc 100644 --- a/query-languages/m/record-addfield.md +++ b/query-languages/m/record-addfield.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Record.AddField(record as record, fieldName as text, value as any, optional delayed as nullable logical) as record
    +Record.AddField(
    +    record as record,
    +    fieldName as text,
    +    value as any,
    +    optional delayed as nullable logical
    +) as record
     
    ## About diff --git a/query-languages/m/record-fieldordefault.md b/query-languages/m/record-fieldordefault.md index 6cb4574c7..30861c5a1 100644 --- a/query-languages/m/record-fieldordefault.md +++ b/query-languages/m/record-fieldordefault.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Record.FieldOrDefault(record as nullable record, field as text, optional defaultValue as any) as any
    +Record.FieldOrDefault(
    +    record as nullable record,
    +    field as text,
    +    optional defaultValue as any
    +) as any
     
    ## About diff --git a/query-languages/m/record-removefields.md b/query-languages/m/record-removefields.md index 11c552303..534beb22a 100644 --- a/query-languages/m/record-removefields.md +++ b/query-languages/m/record-removefields.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Record.RemoveFields(record as record, fields as any, optional missingField as nullable number) as record
    +Record.RemoveFields(
    +    record as record,
    +    fields as any,
    +    optional missingField as nullable number
    +) as record
     
    ## About diff --git a/query-languages/m/record-renamefields.md b/query-languages/m/record-renamefields.md index b0a1c2ee4..a75382544 100644 --- a/query-languages/m/record-renamefields.md +++ b/query-languages/m/record-renamefields.md @@ -8,12 +8,16 @@ ms.subservice: m-source ## Syntax
    -Record.RenameFields(record as record, renames as list, optional missingField as nullable number) as record  
    +Record.RenameFields(
    +    record as record,
    +    renames as list,
    +    optional missingField as nullable number
    +) as record  
     
    ## About -Returns a record after renaming fields in the input `record` to the new field names specified in list `renames`. For multiple renames, a nested list can be used ({ {old1, new1}, {old2, new2} }. +Returns a record after renaming fields in the input `record` to the new field names specified in list `renames`. For multiple renames, a nested list can be used ({ {old1, new1}, {old2, new2} }). ## Example 1 diff --git a/query-languages/m/record-reorderfields.md b/query-languages/m/record-reorderfields.md index 15964aee3..6a893855f 100644 --- a/query-languages/m/record-reorderfields.md +++ b/query-languages/m/record-reorderfields.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Record.ReorderFields(record as record, fieldOrder as list, optional missingField as nullable number) as record
    +Record.ReorderFields(
    +    record as record,
    +    fieldOrder as list,
    +    optional missingField as nullable number
    +) as record
     
    ## About diff --git a/query-languages/m/record-selectfields.md b/query-languages/m/record-selectfields.md index 506a7ca7f..cc0729ccf 100644 --- a/query-languages/m/record-selectfields.md +++ b/query-languages/m/record-selectfields.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Record.SelectFields(record as record, fields as any, optional missingField as nullable number) as record
    +Record.SelectFields(
    +    record as record,
    +    fields as any,
    +    optional missingField as nullable number
    +) as record
     
    ## About diff --git a/query-languages/m/record-transformfields.md b/query-languages/m/record-transformfields.md index 59302fcb9..eb9fba1ad 100644 --- a/query-languages/m/record-transformfields.md +++ b/query-languages/m/record-transformfields.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Record.TransformFields(record as record, transformOperations as list, optional missingField as nullable number) as record
    +Record.TransformFields(
    +    record as record,
    +    transformOperations as list,
    +    optional missingField as nullable number
    +) as record
     
    ## About diff --git a/query-languages/m/replacer-replacetext.md b/query-languages/m/replacer-replacetext.md index a808b1ff4..c9cc0ef5a 100644 --- a/query-languages/m/replacer-replacetext.md +++ b/query-languages/m/replacer-replacetext.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Replacer.ReplaceText(text as nullable text, old as text, new as text) as nullable text
    +Replacer.ReplaceText(
    +    text as nullable text,
    +    old as text,
    +    new as text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/replacer-replacevalue.md b/query-languages/m/replacer-replacevalue.md index 5bfbb6e4b..eb350787a 100644 --- a/query-languages/m/replacer-replacevalue.md +++ b/query-languages/m/replacer-replacevalue.md @@ -8,7 +8,10 @@ ms.subservice: m-source ## Syntax
    -Replacer.ReplaceValue(value as any, old as any, new as any) as any
    +Replacer.ReplaceValue(
    +    value as any,
    +    old as any,
    +    new as any) as any
     
    ## About diff --git a/query-languages/m/sapbusinesswarehouse-cubes.md b/query-languages/m/sapbusinesswarehouse-cubes.md index ec4a6ad67..3502ab067 100644 --- a/query-languages/m/sapbusinesswarehouse-cubes.md +++ b/query-languages/m/sapbusinesswarehouse-cubes.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -SapBusinessWarehouse.Cubes(server as text, systemNumberOrSystemId as text, clientId as text, optional optionsOrLogonGroup as any, optional options as nullable record) as table
    +SapBusinessWarehouse.Cubes(
    +    server as text,
    +    systemNumberOrSystemId as text,
    +    clientId as text,
    +    optional optionsOrLogonGroup as any,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/sharpdate.md b/query-languages/m/sharpdate.md index 99dff4402..0a4102d05 100644 --- a/query-languages/m/sharpdate.md +++ b/query-languages/m/sharpdate.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -#date(year as number, month as number, day as number) as date
    +#date(
    +    year as number,
    +    month as number,
    +    day as number
    +) as date
     
    ## About diff --git a/query-languages/m/sharpdatetime.md b/query-languages/m/sharpdatetime.md index 6144d74bc..22b65f785 100644 --- a/query-languages/m/sharpdatetime.md +++ b/query-languages/m/sharpdatetime.md @@ -8,7 +8,14 @@ ms.subservice: m-source ## Syntax
    -#datetime(year as number, month as number, day as number, hour as number, minute as number, second as number) as datetime
    +#datetime(
    +    year as number,
    +    month as number,
    +    day as number,
    +    hour as number,
    +    minute as number,
    +    second as number
    +) as datetime
     
    ## About diff --git a/query-languages/m/sharpdatetimezone.md b/query-languages/m/sharpdatetimezone.md index 6edee3226..8b3113d82 100644 --- a/query-languages/m/sharpdatetimezone.md +++ b/query-languages/m/sharpdatetimezone.md @@ -8,7 +8,16 @@ ms.subservice: m-source ## Syntax
    -#datetimezone(year as number, month as number, day as number, hour as number, minute as number, second as number, offsetHours as number, offsetMinutes as number) as datetimezone
    +#datetimezone(
    +    year as number,
    +    month as number,
    +    day as number,
    +    hour as number,
    +    minute as number,
    +    second as number,
    +    offsetHours as number,
    +    offsetMinutes as number
    +) as datetimezone
     
    ## About diff --git a/query-languages/m/sharpduration.md b/query-languages/m/sharpduration.md index 2d90321e1..7802a7715 100644 --- a/query-languages/m/sharpduration.md +++ b/query-languages/m/sharpduration.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -#duration(days as number, hours as number, minutes as number, seconds as number) as duration
    +#duration(
    +    days as number,
    +    hours as number,
    +    minutes as number,
    +    seconds as number
    +) as duration
     
    ## About diff --git a/query-languages/m/sharptime.md b/query-languages/m/sharptime.md index 25f21696f..36a835662 100644 --- a/query-languages/m/sharptime.md +++ b/query-languages/m/sharptime.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -#time(hour as number, minute as number, second as number) as time
    +#time(
    +    hour as number,
    +    minute as number,
    +    second as number
    +) as time
     
    ## About diff --git a/query-languages/m/splitter-splittextbyanydelimiter.md b/query-languages/m/splitter-splittextbyanydelimiter.md index b127b4107..135815ede 100644 --- a/query-languages/m/splitter-splittextbyanydelimiter.md +++ b/query-languages/m/splitter-splittextbyanydelimiter.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Splitter.SplitTextByAnyDelimiter(delimiters as list, optional quoteStyle as nullable number, optional startAtEnd as nullable logical) as function
    +Splitter.SplitTextByAnyDelimiter(
    +    delimiters as list,
    +    optional quoteStyle as nullable number,
    +    optional startAtEnd as nullable logical
    +) as function
     
    ## About diff --git a/query-languages/m/splitter-splittextbydelimiter.md b/query-languages/m/splitter-splittextbydelimiter.md index bb2dfd046..aca3027c4 100644 --- a/query-languages/m/splitter-splittextbydelimiter.md +++ b/query-languages/m/splitter-splittextbydelimiter.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Splitter.SplitTextByDelimiter(delimiter as text, optional quoteStyle as nullable number, optional csvStyle as nullable number) as function
    +Splitter.SplitTextByDelimiter(
    +    delimiter as text,
    +    optional quoteStyle as nullable number,
    +    optional csvStyle as nullable number
    +) as function
     
    ## About diff --git a/query-languages/m/splitter-splittextbyeachdelimiter.md b/query-languages/m/splitter-splittextbyeachdelimiter.md index 96f17be24..6c3d2cc30 100644 --- a/query-languages/m/splitter-splittextbyeachdelimiter.md +++ b/query-languages/m/splitter-splittextbyeachdelimiter.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Splitter.SplitTextByEachDelimiter(delimiters as list, optional quoteStyle as nullable number, optional startAtEnd as nullable logical) as function
    +Splitter.SplitTextByEachDelimiter(
    +    delimiters as list,
    +    optional quoteStyle as nullable number,
    +    optional startAtEnd as nullable logical
    +) as function
     
    ## About diff --git a/query-languages/m/sql-database.md b/query-languages/m/sql-database.md index 3a8cb4d56..b02118a14 100644 --- a/query-languages/m/sql-database.md +++ b/query-languages/m/sql-database.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Sql.Database(server as text, database as text, optional options as nullable record) as table
    +Sql.Database(
    +    server as text,
    +    database as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/sybase-database.md b/query-languages/m/sybase-database.md index c9001730a..05c2c7aaa 100644 --- a/query-languages/m/sybase-database.md +++ b/query-languages/m/sybase-database.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Sybase.Database(server as text, database as text, optional options as nullable record) as table
    +Sybase.Database(
    +    server as text,
    +    database as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/table-addcolumn.md b/query-languages/m/table-addcolumn.md index aec56bddd..02fb7d5db 100644 --- a/query-languages/m/table-addcolumn.md +++ b/query-languages/m/table-addcolumn.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.AddColumn(table as table, newColumnName as text, columnGenerator as function, optional columnType as nullable type) as table
    +Table.AddColumn(
    +    table as table,
    +    newColumnName as text,
    +    columnGenerator as function,
    +    optional columnType as nullable type
    +) as table
     
    ## About diff --git a/query-languages/m/table-addfuzzyclustercolumn.md b/query-languages/m/table-addfuzzyclustercolumn.md index fff892bbf..1d97cfb54 100644 --- a/query-languages/m/table-addfuzzyclustercolumn.md +++ b/query-languages/m/table-addfuzzyclustercolumn.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.AddFuzzyClusterColumn(table as table, columnName as text, newColumnName as text, optional options as nullable record) as table
    +Table.AddFuzzyClusterColumn(
    +    table as table,
    +    columnName as text,
    +    newColumnName as text,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/table-addindexcolumn.md b/query-languages/m/table-addindexcolumn.md index e728effe9..d1598959d 100644 --- a/query-languages/m/table-addindexcolumn.md +++ b/query-languages/m/table-addindexcolumn.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -Table.AddIndexColumn(table as table, newColumnName as text, optional initialValue as nullable number, optional increment as nullable number, optional columnType as nullable type) as table
    +Table.AddIndexColumn(
    +    table as table,
    +    newColumnName as text,
    +    optional initialValue as nullable number,
    +    optional increment as nullable number,
    +    optional columnType as nullable type
    +) as table
     
    ## About diff --git a/query-languages/m/table-addjoincolumn.md b/query-languages/m/table-addjoincolumn.md index 6b645da21..930ac842b 100644 --- a/query-languages/m/table-addjoincolumn.md +++ b/query-languages/m/table-addjoincolumn.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -Table.AddJoinColumn(table1 as table, key1 as any, table2 as function, key2 as any, newColumnName as text) as table
    +Table.AddJoinColumn(
    +    table1 as table,
    +    key1 as any,
    +    table2 as function,
    +    key2 as any,
    +    newColumnName as text
    +) as table
     
    ## About diff --git a/query-languages/m/table-addkey.md b/query-languages/m/table-addkey.md index 3a148d1b6..2efda1c44 100644 --- a/query-languages/m/table-addkey.md +++ b/query-languages/m/table-addkey.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.AddKey(table as table, columns as list, isPrimary as logical) as table
    +Table.AddKey(
    +    table as table,
    +    columns as list,
    +    isPrimary as logical
    +) as table
     
    ## About diff --git a/query-languages/m/table-addrankcolumn.md b/query-languages/m/table-addrankcolumn.md index c614df047..eee5c1bae 100644 --- a/query-languages/m/table-addrankcolumn.md +++ b/query-languages/m/table-addrankcolumn.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.AddRankColumn(table as table, newColumnName as text, comparisonCriteria as any, optional options as nullable record) as table
    +Table.AddRankColumn(
    +    table as table,
    +    newColumnName as text,
    +    comparisonCriteria as any,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/table-aggregatetablecolumn.md b/query-languages/m/table-aggregatetablecolumn.md index 5cf8eb356..53116303c 100644 --- a/query-languages/m/table-aggregatetablecolumn.md +++ b/query-languages/m/table-aggregatetablecolumn.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.AggregateTableColumn(table as table, column as text, aggregations as list) as table
    +Table.AggregateTableColumn(
    +    table as table,
    +    column as text,
    +    aggregations as list
    +) as table
     
    ## About diff --git a/query-languages/m/table-alternaterows.md b/query-languages/m/table-alternaterows.md index 98d0db4b7..75a33ec5a 100644 --- a/query-languages/m/table-alternaterows.md +++ b/query-languages/m/table-alternaterows.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.AlternateRows(table as table, offset as number, skip as number, take as number) as table
    +Table.AlternateRows(
    +    table as table,
    +    offset as number,
    +    skip as number,
    +    take as number
    +) as table
     
    ## About diff --git a/query-languages/m/table-combinecolumns.md b/query-languages/m/table-combinecolumns.md index ad3db4ac4..516a9da14 100644 --- a/query-languages/m/table-combinecolumns.md +++ b/query-languages/m/table-combinecolumns.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.CombineColumns(table as table, sourceColumns as list, combiner as function, column as text) as table
    +Table.CombineColumns(
    +    table as table,
    +    sourceColumns as list,
    +    combiner as function,
    +    column as text
    +) as table
     
    ## About diff --git a/query-languages/m/table-combinecolumnstorecord.md b/query-languages/m/table-combinecolumnstorecord.md index 83332a694..9378169d5 100644 --- a/query-languages/m/table-combinecolumnstorecord.md +++ b/query-languages/m/table-combinecolumnstorecord.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.CombineColumnsToRecord(table as table, newColumnName as text, sourceColumns as list, optional options as nullable record) as table
    +Table.CombineColumnsToRecord(
    +    table as table,
    +    newColumnName as text,
    +    sourceColumns as list,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/table-contains.md b/query-languages/m/table-contains.md index 80969b2ac..9303b50db 100644 --- a/query-languages/m/table-contains.md +++ b/query-languages/m/table-contains.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.Contains(table as table, row as record, optional equationCriteria as any) as logical
    +Table.Contains(
    +    table as table,
    +    row as record,
    +    optional equationCriteria as any
    +) as logical
     
    ## About diff --git a/query-languages/m/table-containsall.md b/query-languages/m/table-containsall.md index d7dc4c162..6becc1a8b 100644 --- a/query-languages/m/table-containsall.md +++ b/query-languages/m/table-containsall.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.ContainsAll(table as table, rows as list, optional equationCriteria as any) as logical
    +Table.ContainsAll(
    +    table as table,
    +    rows as list,
    +    optional equationCriteria as any
    +) as logical
     
    ## About diff --git a/query-languages/m/table-containsany.md b/query-languages/m/table-containsany.md index 695026668..5ddcefc34 100644 --- a/query-languages/m/table-containsany.md +++ b/query-languages/m/table-containsany.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.ContainsAny(table as table, rows as list, optional equationCriteria as any) as logical
    +Table.ContainsAny(
    +    table as table,
    +    rows as list,
    +    optional equationCriteria as any
    +) as logical
     
    ## About diff --git a/query-languages/m/table-duplicatecolumn.md b/query-languages/m/table-duplicatecolumn.md index aa05141a1..003eee895 100644 --- a/query-languages/m/table-duplicatecolumn.md +++ b/query-languages/m/table-duplicatecolumn.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.DuplicateColumn(table as table, columnName as text, newColumnName as text, optional columnType as nullable type) as table
    +Table.DuplicateColumn(
    +    table as table,
    +    columnName as text,
    +    newColumnName as text,
    +    optional columnType as nullable type
    +) as table
     
    ## About diff --git a/query-languages/m/table-expandrecordcolumn.md b/query-languages/m/table-expandrecordcolumn.md index 0774581d9..289f3c3b9 100644 --- a/query-languages/m/table-expandrecordcolumn.md +++ b/query-languages/m/table-expandrecordcolumn.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.ExpandRecordColumn(table as table, column as text, fieldNames as list, optional newColumnNames as nullable list) as table
    +Table.ExpandRecordColumn(
    +    table as table,
    +    column as text,
    +    fieldNames as list,
    +    optional newColumnNames as nullable list
    +) as table
     
    ## About diff --git a/query-languages/m/table-expandtablecolumn.md b/query-languages/m/table-expandtablecolumn.md index 208c159f0..8167c914a 100644 --- a/query-languages/m/table-expandtablecolumn.md +++ b/query-languages/m/table-expandtablecolumn.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.ExpandTableColumn(table as table, column as text, columnNames as list, optional newColumnNames as nullable list) as table
    +Table.ExpandTableColumn(
    +    table as table,
    +    column as text,
    +    columnNames as list,
    +    optional newColumnNames as nullable list
    +) as table
     
    ## About diff --git a/query-languages/m/table-fromlist.md b/query-languages/m/table-fromlist.md index 48b3fa4da..a427d14c2 100644 --- a/query-languages/m/table-fromlist.md +++ b/query-languages/m/table-fromlist.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -Table.FromList(list as list, optional splitter as nullable function, optional columns as any, optional default as any, optional extraValues as nullable number) as table
    +Table.FromList(
    +    list as list,
    +    optional splitter as nullable function,
    +    optional columns as any,
    +    optional default as any,
    +    optional extraValues as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/table-frompartitions.md b/query-languages/m/table-frompartitions.md index 03874a944..8270b27f9 100644 --- a/query-languages/m/table-frompartitions.md +++ b/query-languages/m/table-frompartitions.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.FromPartitions(partitionColumn as text, partitions as list, optional partitionColumnType as nullable type) as table
    +Table.FromPartitions(
    +    partitionColumn as text,
    +    partitions as list,
    +    optional partitionColumnType as nullable type
    +) as table
     
    ## About diff --git a/query-languages/m/table-fromrecords.md b/query-languages/m/table-fromrecords.md index fd7ec2c8d..52034a823 100644 --- a/query-languages/m/table-fromrecords.md +++ b/query-languages/m/table-fromrecords.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.FromRecords(records as list, optional columns as any, optional missingField as nullable number) as table
    +Table.FromRecords(
    +    records as list,
    +    optional columns as any,
    +    optional missingField as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/table-fuzzygroup.md b/query-languages/m/table-fuzzygroup.md index 04efa6d39..259561768 100644 --- a/query-languages/m/table-fuzzygroup.md +++ b/query-languages/m/table-fuzzygroup.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.FuzzyGroup(table as table, key as any, aggregatedColumns as list, optional options as nullable record) as table
    +Table.FuzzyGroup(
    +    table as table,
    +    key as any,
    +    aggregatedColumns as list,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/table-fuzzyjoin.md b/query-languages/m/table-fuzzyjoin.md index dd369fd78..97b77ac0b 100644 --- a/query-languages/m/table-fuzzyjoin.md +++ b/query-languages/m/table-fuzzyjoin.md @@ -8,7 +8,14 @@ ms.subservice: m-source ## Syntax
    -Table.FuzzyJoin(table1 as table, key1 as any, table2 as table, key2 as any, optional joinKind as nullable number, optional joinOptions as nullable record) as table
    +Table.FuzzyJoin(
    +    table1 as table,
    +    key1 as any,
    +    table2 as table,
    +    key2 as any,
    +    optional joinKind as nullable number,
    +    optional joinOptions as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/table-fuzzynestedjoin.md b/query-languages/m/table-fuzzynestedjoin.md index 369db5223..3ae9277c7 100644 --- a/query-languages/m/table-fuzzynestedjoin.md +++ b/query-languages/m/table-fuzzynestedjoin.md @@ -8,7 +8,15 @@ ms.subservice: m-source ## Syntax
    -Table.FuzzyNestedJoin(table1 as table, key1 as any, table2 as table, key2 as any, newColumnName as text, optional joinKind as nullable number, optional joinOptions as nullable record) as table
    +Table.FuzzyNestedJoin(
    +    table1 as table,
    +    key1 as any,
    +    table2 as table,
    +    key2 as any,
    +    newColumnName as text,
    +    optional joinKind as nullable number,
    +    optional joinOptions as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/table-group.md b/query-languages/m/table-group.md index 30f968582..c551dea9b 100644 --- a/query-languages/m/table-group.md +++ b/query-languages/m/table-group.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -Table.Group(table as table, key as any, aggregatedColumns as list, optional groupKind as nullable number, optional comparer as nullable function) as table
    +Table.Group(
    +    table as table,
    +    key as any,
    +    aggregatedColumns as list,
    +    optional groupKind as nullable number,
    +    optional comparer as nullable function
    +) as table
     
    ## About diff --git a/query-languages/m/table-insertrows.md b/query-languages/m/table-insertrows.md index b222ebd52..05ed7c583 100644 --- a/query-languages/m/table-insertrows.md +++ b/query-languages/m/table-insertrows.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.InsertRows(table as table, offset as number, rows as list) as table
    +Table.InsertRows(
    +    table as table,
    +    offset as number,
    +    rows as list
    +) as table
     
    ## About diff --git a/query-languages/m/table-join.md b/query-languages/m/table-join.md index 0ddc74a47..b9b1b625b 100644 --- a/query-languages/m/table-join.md +++ b/query-languages/m/table-join.md @@ -8,7 +8,15 @@ ms.subservice: m-source ## Syntax
    -Table.Join(table1 as table, key1 as any, table2 as table, key2 as any, optional joinKind as nullable number, optional joinAlgorithm as nullable number, optional keyEqualityComparers as nullable list) as table
    +Table.Join(
    +    table1 as table,
    +    key1 as any,
    +    table2 as table,
    +    key2 as any,
    +    optional joinKind as nullable number,
    +    optional joinAlgorithm as nullable number,
    +    optional keyEqualityComparers as nullable list
    +) as table
     
    ## About diff --git a/query-languages/m/table-max.md b/query-languages/m/table-max.md index 84181f554..4e9955a1f 100644 --- a/query-languages/m/table-max.md +++ b/query-languages/m/table-max.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
     
    -Table.Max(table as table, comparisonCriteria as any, optional default as any) as any
    +Table.Max(
    +    table as table,
    +    comparisonCriteria as any,
    +    optional default as any
    +) as any
     
    ## About diff --git a/query-languages/m/table-maxn.md b/query-languages/m/table-maxn.md index 9e6a4b040..fa2d41236 100644 --- a/query-languages/m/table-maxn.md +++ b/query-languages/m/table-maxn.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.MaxN(table as table, comparisonCriteria as any, countOrCondition as any) as table
    +Table.MaxN(
    +    table as table,
    +    comparisonCriteria as any,
    +    countOrCondition as any
    +) as table
     
    ## About diff --git a/query-languages/m/table-min.md b/query-languages/m/table-min.md index 046ed6e08..5175d62c4 100644 --- a/query-languages/m/table-min.md +++ b/query-languages/m/table-min.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.Min(table as table, comparisonCriteria as any, optional default as any) as any
    +Table.Min(
    +    table as table,
    +    comparisonCriteria as any,
    +    optional default as any
    +) as any
     
    ## About diff --git a/query-languages/m/table-minn.md b/query-languages/m/table-minn.md index 018c1f327..49c6323e9 100644 --- a/query-languages/m/table-minn.md +++ b/query-languages/m/table-minn.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.MinN(table as table, comparisonCriteria as any, countOrCondition as any) as table
    +Table.MinN(
    +    table as table,
    +    comparisonCriteria as any,
    +    countOrCondition as any
    +) as table
     
    ## About diff --git a/query-languages/m/table-nestedjoin.md b/query-languages/m/table-nestedjoin.md index 13f6542b9..d94d58000 100644 --- a/query-languages/m/table-nestedjoin.md +++ b/query-languages/m/table-nestedjoin.md @@ -8,7 +8,15 @@ ms.subservice: m-source ## Syntax
    -Table.NestedJoin(table1 as table, key1 as any, table2 as any, key2 as any, newColumnName as text, optional joinKind as nullable number, optional keyEqualityComparers as nullable list) as table
    +Table.NestedJoin(
    +    table1 as table,
    +    key1 as any,
    +    table2 as any,
    +    key2 as any,
    +    newColumnName as text,
    +    optional joinKind as nullable number,
    +    optional keyEqualityComparers as nullable list
    +) as table
     
    ## About diff --git a/query-languages/m/table-partition.md b/query-languages/m/table-partition.md index d515675e1..32c9b2d0e 100644 --- a/query-languages/m/table-partition.md +++ b/query-languages/m/table-partition.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
      
    -Table.Partition(table as table, column as text, groups as number, hash as function) as list
    +Table.Partition(
    +    table as table,
    +    column as text,
    +    groups as number,
    +    hash as function
    +) as list
     
    ## About diff --git a/query-languages/m/table-pivot.md b/query-languages/m/table-pivot.md index 16f904fea..9823451e2 100644 --- a/query-languages/m/table-pivot.md +++ b/query-languages/m/table-pivot.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -Table.Pivot(table as table, pivotValues as list, attributeColumn as text, valueColumn as text, optional aggregationFunction as nullable function) as table
    +Table.Pivot(
    +    table as table,
    +    pivotValues as list,
    +    attributeColumn as text,
    +    valueColumn as text,
    +    optional aggregationFunction as nullable function
    +) as table
     
    ## About diff --git a/query-languages/m/table-positionof.md b/query-languages/m/table-positionof.md index d6145a530..b42f5c58e 100644 --- a/query-languages/m/table-positionof.md +++ b/query-languages/m/table-positionof.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.PositionOf(table as table, row as record, optional occurrence as any, optional equationCriteria as any) as any
    +Table.PositionOf(
    +    table as table,
    +    row as record,
    +    optional occurrence as any,
    +    optional equationCriteria as any
    +) as any
     
    ## About diff --git a/query-languages/m/table-positionofany.md b/query-languages/m/table-positionofany.md index 0829de1c1..79a90fe5e 100644 --- a/query-languages/m/table-positionofany.md +++ b/query-languages/m/table-positionofany.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
     
    -Table.PositionOfAny(table as table, rows as list, optional occurrence as nullable number, optional equationCriteria as any) as any
    +Table.PositionOfAny(
    +    table as table,
    +    rows as list,
    +    optional occurrence as nullable number,
    +    optional equationCriteria as any
    +) as any
     
    ## About diff --git a/query-languages/m/table-range.md b/query-languages/m/table-range.md index 0708807b1..08f203b2d 100644 --- a/query-languages/m/table-range.md +++ b/query-languages/m/table-range.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.Range(table as table, offset as number, optional count as nullable number) as table
    +Table.Range(
    +    table as table,
    +    offset as number,
    +    optional count as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/table-removecolumns.md b/query-languages/m/table-removecolumns.md index 6f8c9cda5..86ece1ad4 100644 --- a/query-languages/m/table-removecolumns.md +++ b/query-languages/m/table-removecolumns.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.RemoveColumns(table as table, columns as any, optional missingField as nullable number) as table
    +Table.RemoveColumns(
    +    table as table,
    +    columns as any,
    +    optional missingField as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/table-removematchingrows.md b/query-languages/m/table-removematchingrows.md index 27e27c4d1..3c2b61262 100644 --- a/query-languages/m/table-removematchingrows.md +++ b/query-languages/m/table-removematchingrows.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.RemoveMatchingRows(table as table, rows as list, optional equationCriteria as any) as table
    +Table.RemoveMatchingRows(
    +    table as table,
    +    rows as list,
    +    optional equationCriteria as any
    +) as table
     
    ## About diff --git a/query-languages/m/table-removerows.md b/query-languages/m/table-removerows.md index 2c6484f63..20f726788 100644 --- a/query-languages/m/table-removerows.md +++ b/query-languages/m/table-removerows.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.RemoveRows(table as table, offset as number, optional count as nullable number) as table
    +Table.RemoveRows(
    +    table as table,
    +    offset as number,
    +    optional count as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/table-renamecolumns.md b/query-languages/m/table-renamecolumns.md index 11718ee06..99c02169d 100644 --- a/query-languages/m/table-renamecolumns.md +++ b/query-languages/m/table-renamecolumns.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.RenameColumns(table as table, renames as list, optional missingField as nullable number) as table
    +Table.RenameColumns(
    +    table as table,
    +    renames as list,
    +    optional missingField as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/table-reordercolumns.md b/query-languages/m/table-reordercolumns.md index 05cdc70d6..7d15be822 100644 --- a/query-languages/m/table-reordercolumns.md +++ b/query-languages/m/table-reordercolumns.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.ReorderColumns(table as table, columnOrder as list, optional missingField as nullable number) as table
    +Table.ReorderColumns(
    +    table as table,
    +    columnOrder as list,
    +    optional missingField as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/table-replacematchingrows.md b/query-languages/m/table-replacematchingrows.md index eb6c50a89..3e441f39e 100644 --- a/query-languages/m/table-replacematchingrows.md +++ b/query-languages/m/table-replacematchingrows.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.ReplaceMatchingRows(table as table, replacements as list, optional equationCriteria as any) as table
    +Table.ReplaceMatchingRows(
    +    table as table,
    +    replacements as list,
    +    optional equationCriteria as any
    +) as table
     
    ## About diff --git a/query-languages/m/table-replacerows.md b/query-languages/m/table-replacerows.md index 005899164..7c46d3f23 100644 --- a/query-languages/m/table-replacerows.md +++ b/query-languages/m/table-replacerows.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.ReplaceRows(table as table, offset as number, count as number, rows as list) as table
    +Table.ReplaceRows(
    +    table as table,
    +    offset as number,
    +    count as number,
    +    rows as list
    +) as table
     
    ## About diff --git a/query-languages/m/table-replacevalue.md b/query-languages/m/table-replacevalue.md index e4981cf22..abe5b4e44 100644 --- a/query-languages/m/table-replacevalue.md +++ b/query-languages/m/table-replacevalue.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -Table.ReplaceValue(table as table, oldValue as any, newValue as any, replacer as function, columnsToSearch as list) as table
    +Table.ReplaceValue(
    +    table as table,
    +    oldValue as any,
    +    newValue as any,
    +    replacer as function,
    +    columnsToSearch as list
    +) as table
     
    ## About diff --git a/query-languages/m/table-selectcolumns.md b/query-languages/m/table-selectcolumns.md index 715cc453b..5ebf05995 100644 --- a/query-languages/m/table-selectcolumns.md +++ b/query-languages/m/table-selectcolumns.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.SelectColumns(table as table, columns as any, optional missingField as nullable number) as table
    +Table.SelectColumns(
    +    table as table,
    +    columns as any,
    +    optional missingField as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/table-splitcolumn.md b/query-languages/m/table-splitcolumn.md index df2ff4f2a..9ccb4faa8 100644 --- a/query-languages/m/table-splitcolumn.md +++ b/query-languages/m/table-splitcolumn.md @@ -8,7 +8,14 @@ ms.subservice: m-source ## Syntax
    -Table.SplitColumn(table as table, sourceColumn as text, splitter as function, optional columnNamesOrNumber as any, optional default as any, optional extraColumns as any) as table
    +Table.SplitColumn(
    +    table as table,
    +    sourceColumn as text,
    +    splitter as function,
    +    optional columnNamesOrNumber as any,
    +    optional default as any,
    +    optional extraColumns as any
    +) as table
     
    ## About diff --git a/query-languages/m/table-transformcolumnnames.md b/query-languages/m/table-transformcolumnnames.md index 6efab668e..a9b0f3942 100644 --- a/query-languages/m/table-transformcolumnnames.md +++ b/query-languages/m/table-transformcolumnnames.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.TransformColumnNames(table as table, nameGenerator as function, optional options as nullable record) as table
    +Table.TransformColumnNames(
    +    table as table,
    +    nameGenerator as function,
    +    optional options as nullable record
    +) as table
     
    ## About diff --git a/query-languages/m/table-transformcolumns.md b/query-languages/m/table-transformcolumns.md index fe677f976..3ace16a0d 100644 --- a/query-languages/m/table-transformcolumns.md +++ b/query-languages/m/table-transformcolumns.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.TransformColumns(table as table, transformOperations as list, optional defaultTransformation as nullable function, optional missingField as nullable number) as table
    +Table.TransformColumns(
    +    table as table,
    +    transformOperations as list,
    +    optional defaultTransformation as nullable function,
    +    optional missingField as nullable number
    +) as table
     
    ## About diff --git a/query-languages/m/table-transformcolumntypes.md b/query-languages/m/table-transformcolumntypes.md index 40018c571..640d8165f 100644 --- a/query-languages/m/table-transformcolumntypes.md +++ b/query-languages/m/table-transformcolumntypes.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Table.TransformColumnTypes(table as table, typeTransformations as list, optional culture as nullable text) as table
    +Table.TransformColumnTypes(
    +    table as table,
    +    typeTransformations as list,
    +    optional culture as nullable text
    +) as table
     
    ## About diff --git a/query-languages/m/table-unpivot.md b/query-languages/m/table-unpivot.md index 4969cceff..ef42c4457 100644 --- a/query-languages/m/table-unpivot.md +++ b/query-languages/m/table-unpivot.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Table.Unpivot(table as table, pivotColumns as list, attributeColumn as text, valueColumn as text) as table
    +Table.Unpivot(
    +    table as table,
    +    pivotColumns as list,
    +    attributeColumn as text,
    +    valueColumn as text
    +) as table
     
    ## About diff --git a/query-languages/m/table-unpivotothercolumns.md b/query-languages/m/table-unpivotothercolumns.md index eea2283ed..0c3a6827b 100644 --- a/query-languages/m/table-unpivotothercolumns.md +++ b/query-languages/m/table-unpivotothercolumns.md @@ -3,12 +3,18 @@ description: "Learn more about: Table.UnpivotOtherColumns" title: "Table.UnpivotOtherColumns" ms.subservice: m-source --- + # Table.UnpivotOtherColumns ## Syntax
    -Table.UnpivotOtherColumns(table as table, pivotColumns as list, attributeColumn as text, valueColumn as text) as table
    +Table.UnpivotOtherColumns(
    +    table as table,
    +    pivotColumns as list,
    +    attributeColumn as text,
    +    valueColumn as text
    +) as table
     
    ## About diff --git a/query-languages/m/text-afterdelimiter.md b/query-languages/m/text-afterdelimiter.md index 6998afe25..c11d528b6 100644 --- a/query-languages/m/text-afterdelimiter.md +++ b/query-languages/m/text-afterdelimiter.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.AfterDelimiter(text as nullable text, delimiter as text, optional index as any) as any
    +Text.AfterDelimiter(
    +    text as nullable text,
    +    delimiter as text,
    +    optional index as any
    +) as any
     
    ## About diff --git a/query-languages/m/text-beforedelimiter.md b/query-languages/m/text-beforedelimiter.md index 4020b2ca2..9811554fc 100644 --- a/query-languages/m/text-beforedelimiter.md +++ b/query-languages/m/text-beforedelimiter.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.BeforeDelimiter(text as nullable text, delimiter as text, optional index as any) as any
    +Text.BeforeDelimiter(
    +    text as nullable text,
    +    delimiter as text,
    +    optional index as any
    +) as any
     
    ## About diff --git a/query-languages/m/text-betweendelimiters.md b/query-languages/m/text-betweendelimiters.md index f176f6532..4e6864fc3 100644 --- a/query-languages/m/text-betweendelimiters.md +++ b/query-languages/m/text-betweendelimiters.md @@ -8,7 +8,13 @@ ms.subservice: m-source ## Syntax
    -Text.BetweenDelimiters(text as nullable text, startDelimiter as text, endDelimiter as text, optional startIndex as any, optional endIndex as any) as any
    +Text.BetweenDelimiters(
    +    text as nullable text,
    +    startDelimiter as text,
    +    endDelimiter as text,
    +    optional startIndex as any,
    +    optional endIndex as any
    +) as any
     
    ## About diff --git a/query-languages/m/text-contains.md b/query-languages/m/text-contains.md index 45f2f76ef..24c9cf06f 100644 --- a/query-languages/m/text-contains.md +++ b/query-languages/m/text-contains.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.Contains(text as nullable text, substring as text, optional comparer as nullable function) as nullable logical
    +Text.Contains(
    +    text as nullable text,
    +    substring as text,
    +    optional comparer as nullable function
    +) as nullable logical
     
    ## About diff --git a/query-languages/m/text-endswith.md b/query-languages/m/text-endswith.md index cabdc9517..18971ab96 100644 --- a/query-languages/m/text-endswith.md +++ b/query-languages/m/text-endswith.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.EndsWith(text as nullable text, substring as text, optional comparer as nullable function) as nullable logical
    +Text.EndsWith(
    +    text as nullable text,
    +    substring as text,
    +    optional comparer as nullable function
    +) as nullable logical
     
    ## About diff --git a/query-languages/m/text-format.md b/query-languages/m/text-format.md index 50a79aca6..4d2eadb91 100644 --- a/query-languages/m/text-format.md +++ b/query-languages/m/text-format.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.Format(formatString as text, arguments as any, optional culture as nullable text) as text
    +Text.Format(
    +    formatString as text,
    +    arguments as any,
    +    optional culture as nullable text
    +) as text
     
    ## About diff --git a/query-languages/m/text-insert.md b/query-languages/m/text-insert.md index 98e8f31b8..a3d420325 100644 --- a/query-languages/m/text-insert.md +++ b/query-languages/m/text-insert.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.Insert(text as nullable text, offset as number, newText as text) as nullable text
    +Text.Insert(
    +    text as nullable text,
    +    offset as number,
    +    newText as text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/text-middle.md b/query-languages/m/text-middle.md index aef969f89..440a2de80 100644 --- a/query-languages/m/text-middle.md +++ b/query-languages/m/text-middle.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.Middle(text as nullable text, start as number, optional count as nullable number) as nullable text
    +Text.Middle(
    +    text as nullable text,
    +    start as number,
    +    optional count as nullable number
    +) as nullable text
     
    ## About diff --git a/query-languages/m/text-padend.md b/query-languages/m/text-padend.md index f1ff954c2..28b722ebc 100644 --- a/query-languages/m/text-padend.md +++ b/query-languages/m/text-padend.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.PadEnd(text as nullable text, count as number, optional character as nullable text) as nullable text
    +Text.PadEnd(
    +    text as nullable text,
    +    count as number,
    +    optional character as nullable text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/text-padstart.md b/query-languages/m/text-padstart.md index 7c275aae1..bd70a456f 100644 --- a/query-languages/m/text-padstart.md +++ b/query-languages/m/text-padstart.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.PadStart(text as nullable text, count as number, optional character as nullable text) as nullable text
    +Text.PadStart(
    +    text as nullable text,
    +    count as number,
    +    optional character as nullable text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/text-positionof.md b/query-languages/m/text-positionof.md index de5fd2a12..ffc8049a1 100644 --- a/query-languages/m/text-positionof.md +++ b/query-languages/m/text-positionof.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Text.PositionOf(text as text, substring as text, optional occurrence as nullable number, optional comparer as nullable function) as any
    +Text.PositionOf(
    +    text as text,
    +    substring as text,
    +    optional occurrence as nullable number,
    +    optional comparer as nullable function
    +) as any
     
    ## About diff --git a/query-languages/m/text-positionofany.md b/query-languages/m/text-positionofany.md index 58a08860a..974065335 100644 --- a/query-languages/m/text-positionofany.md +++ b/query-languages/m/text-positionofany.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.PositionOfAny(text as text, characters as list, optional occurrence as nullable number) as any
    +Text.PositionOfAny(
    +    text as text,
    +    characters as list,
    +    optional occurrence as nullable number
    +) as any
     
    ## About diff --git a/query-languages/m/text-range.md b/query-languages/m/text-range.md index 1edf776ce..9c4057281 100644 --- a/query-languages/m/text-range.md +++ b/query-languages/m/text-range.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.Range(text as nullable text, offset as number, optional count as nullable number) as nullable text
    +Text.Range(
    +    text as nullable text,
    +    offset as number,
    +    optional count as nullable number
    +) as nullable text
     
    ## About diff --git a/query-languages/m/text-removerange.md b/query-languages/m/text-removerange.md index 49b3591f9..c23ed0801 100644 --- a/query-languages/m/text-removerange.md +++ b/query-languages/m/text-removerange.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.RemoveRange(text as nullable text, offset as number, optional count as nullable number) as nullable text
    +Text.RemoveRange(
    +    text as nullable text,
    +    offset as number,
    +    optional count as nullable number
    +) as nullable text
     
    ## About diff --git a/query-languages/m/text-replace.md b/query-languages/m/text-replace.md index dbb07e8f2..1a7fbddc1 100644 --- a/query-languages/m/text-replace.md +++ b/query-languages/m/text-replace.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.Replace(text as nullable text, old as text, new as text) as nullable text
    +Text.Replace(
    +    text as nullable text,
    +    old as text,
    +    new as text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/text-replacerange.md b/query-languages/m/text-replacerange.md index 6019771ed..e82c9423c 100644 --- a/query-languages/m/text-replacerange.md +++ b/query-languages/m/text-replacerange.md @@ -8,7 +8,12 @@ ms.subservice: m-source ## Syntax
    -Text.ReplaceRange(text as nullable text, offset as number, count as number, newText as text) as nullable text
    +Text.ReplaceRange(
    +    text as nullable text,
    +    offset as number,
    +    count as number,
    +    newText as text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/text-startswith.md b/query-languages/m/text-startswith.md index 7a93b6186..3382be9ea 100644 --- a/query-languages/m/text-startswith.md +++ b/query-languages/m/text-startswith.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.StartsWith(text as nullable text, substring as text, optional comparer as nullable function) as nullable logical
    +Text.StartsWith(
    +    text as nullable text,
    +    substring as text,
    +    optional comparer as nullable function
    +) as nullable logical
     
    ## About diff --git a/query-languages/m/text-tobinary.md b/query-languages/m/text-tobinary.md index 3241a7e9d..3c1fe6561 100644 --- a/query-languages/m/text-tobinary.md +++ b/query-languages/m/text-tobinary.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Text.ToBinary(text as nullable text, optional encoding as nullable number, optional includeByteOrderMark as nullable logical) as nullable binary
    +Text.ToBinary(
    +    text as nullable text,
    +    optional encoding as nullable number,
    +    optional includeByteOrderMark as nullable logical
    +) as nullable binary
     
    ## About diff --git a/query-languages/m/time-totext.md b/query-languages/m/time-totext.md index 58470b7b6..ab108033c 100644 --- a/query-languages/m/time-totext.md +++ b/query-languages/m/time-totext.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Time.ToText(time as nullable time, optional options as any, optional culture as nullable text) as nullable text
    +Time.ToText(
    +    time as nullable time,
    +    optional options as any,
    +    optional culture as nullable text
    +) as nullable text
     
    ## About diff --git a/query-languages/m/type-addtablekey.md b/query-languages/m/type-addtablekey.md index d91b0294c..74f3f0888 100644 --- a/query-languages/m/type-addtablekey.md +++ b/query-languages/m/type-addtablekey.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Type.AddTableKey(table as type, columns as list, isPrimary as logical) as type
    +Type.AddTableKey(
    +    table as type,
    +    columns as list,
    +    isPrimary as logical
    +) as type
     
    ## About diff --git a/query-languages/m/value-add.md b/query-languages/m/value-add.md index ef91e08ba..8a6dd8709 100644 --- a/query-languages/m/value-add.md +++ b/query-languages/m/value-add.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Value.Add(value1 as any, value2 as any, optional precision as nullable number) as any
    +Value.Add(
    +    value1 as any,
    +    value2 as any,
    +    optional precision as nullable number
    +) as any
     
    ## About diff --git a/query-languages/m/value-compare.md b/query-languages/m/value-compare.md index 08bc6a7c6..4a76e0d32 100644 --- a/query-languages/m/value-compare.md +++ b/query-languages/m/value-compare.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Value.Compare(value1 as any, value2 as any, optional precision as nullable number) as number
    +Value.Compare(
    +    value1 as any,
    +    value2 as any,
    +    optional precision as nullable number
    +) as number
     
    ## About diff --git a/query-languages/m/value-divide.md b/query-languages/m/value-divide.md index 39c5d0d66..23579f868 100644 --- a/query-languages/m/value-divide.md +++ b/query-languages/m/value-divide.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Value.Divide(value1 as any, value2 as any, optional precision as nullable number) as any
    +Value.Divide(
    +    value1 as any,
    +    value2 as any,
    +    optional precision as nullable number
    +) as any
     
    ## About diff --git a/query-languages/m/value-equals.md b/query-languages/m/value-equals.md index df7eaab33..eebb9dc0a 100644 --- a/query-languages/m/value-equals.md +++ b/query-languages/m/value-equals.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Value.Equals(value1 as any, value2 as any, optional precision as nullable number) as logical
    +Value.Equals(
    +    value1 as any,
    +    value2 as any,
    +    optional precision as nullable number
    +) as logical
     
    ## About diff --git a/query-languages/m/value-multiply.md b/query-languages/m/value-multiply.md index 2977c265e..7c2819246 100644 --- a/query-languages/m/value-multiply.md +++ b/query-languages/m/value-multiply.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Value.Multiply(value1 as any, value2 as any, optional precision as nullable number) as any
    +Value.Multiply(
    +    value1 as any,
    +    value2 as any,
    +    optional precision as nullable number
    +) as any
     
    ## About diff --git a/query-languages/m/value-nativequery.md b/query-languages/m/value-nativequery.md index c6c32494c..5217f1866 100644 --- a/query-languages/m/value-nativequery.md +++ b/query-languages/m/value-nativequery.md @@ -7,7 +7,12 @@ ms.subservice: m-source ## Syntax -
    Value.NativeQuery(target as any, query as text, optional parameters as any, optional options as nullable record) as any
    +
    Value.NativeQuery(
    +    target as any,
    +    query as text,
    +    optional parameters as any,
    +    optional options as nullable record
    +) as any
     
    ## About diff --git a/query-languages/m/value-nullableequals.md b/query-languages/m/value-nullableequals.md index 67f7bc92f..78d94c871 100644 --- a/query-languages/m/value-nullableequals.md +++ b/query-languages/m/value-nullableequals.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Value.NullableEquals(value1 as any, value2 as any, optional precision as nullable number) as nullable logical
    +Value.NullableEquals(
    +    value1 as any,
    +    value2 as any,
    +    optional precision as nullable number
    +) as nullable logical
     
    ## About diff --git a/query-languages/m/value-subtract.md b/query-languages/m/value-subtract.md index 2591f8750..358bacbec 100644 --- a/query-languages/m/value-subtract.md +++ b/query-languages/m/value-subtract.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Value.Subtract(value1 as any, value2 as any, optional precision as nullable number) as any
    +Value.Subtract(
    +    value1 as any,
    +    value2 as any,
    +    optional precision as nullable number
    +) as any
     
    ## About diff --git a/query-languages/m/webaction-request.md b/query-languages/m/webaction-request.md index 2df8e8abd..d926c3e4d 100644 --- a/query-languages/m/webaction-request.md +++ b/query-languages/m/webaction-request.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -WebAction.Request(method as text, url as text, optional options as nullable record) as action
    +WebAction.Request(
    +    method as text,
    +    url as text,
    +    optional options as nullable record
    +) as action
     
    ## About diff --git a/query-languages/m/xml-tables.md b/query-languages/m/xml-tables.md index 9fe09f044..9c571aac7 100644 --- a/query-languages/m/xml-tables.md +++ b/query-languages/m/xml-tables.md @@ -8,7 +8,11 @@ ms.subservice: m-source ## Syntax
    -Xml.Tables(contents as any, optional options as nullable record, optional encoding as nullable number) as table
    +Xml.Tables(
    +    contents as any,
    +    optional options as nullable record,
    +    optional encoding as nullable number
    +) as table
     
    ## About From 36906448a5ce6a473a6e68fc1a2963e12006c1f6 Mon Sep 17 00:00:00 2001 From: Ming Han Teh Date: Mon, 4 Aug 2025 22:53:49 +0800 Subject: [PATCH 906/934] Update datatable-function-dax.md --- query-languages/dax/datatable-function-dax.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/dax/datatable-function-dax.md b/query-languages/dax/datatable-function-dax.md index b8a6d5ac7..668335abb 100644 --- a/query-languages/dax/datatable-function-dax.md +++ b/query-languages/dax/datatable-function-dax.md @@ -18,7 +18,7 @@ DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2..., {{Value1, Value2.. |Term|Definition| |--------|--------------| -|`ColumnName`|Any DAX expression that returns a table.| +|`ColumnName`|A column name.| |`DataType`|An enumeration that includes: INTEGER, DOUBLE, STRING, BOOLEAN, CURRENCY, DATETIME| |`value`|A single argument using Excel syntax for a one dimensional array constant, nested to provide an array of arrays. This argument represents the set of data values that will be in the table

    For example,
    { {values in row1}, {values in row2}, {values in row3}, etc. }
    Where {values in row1} is a comma delimited set of constant expressions, namely a combination of constants, combined with a handful of basic functions including DATE, TIME, and BLANK, as well as a plus operator between DATE and TIME and a unary minus operator so that negative values can be expressed.

    The following are all valid values: 3, -5, BLANK(), "2009-04-15 02:45:21". Values may not refer to anything outside the immediate expression, and cannot refer to columns, tables, relationships, or anything else.

    A missing value will be treated identically to BLANK(). For example, the following are the same: {1,2,BLANK(),4} {1,2,,4}| From 5b58e99abde427cb127185932af99bd887ac64c0 Mon Sep 17 00:00:00 2001 From: Dickson Mwendia <64727760+Dickson-Mwendia@users.noreply.github.com> Date: Wed, 6 Aug 2025 16:47:08 +0300 Subject: [PATCH 907/934] Add SFI ms.custom values --- query-languages/dax/columnstatistics-function-dax.md | 1 + query-languages/m/accessing-data-functions.md | 4 +++- query-languages/m/adodotnet-datasource.md | 1 + query-languages/m/adodotnet-query.md | 1 + query-languages/m/odbc-datasource.md | 1 + query-languages/m/odbc-inferoptions.md | 1 + query-languages/m/odbc-query.md | 1 + query-languages/m/oledb-datasource.md | 1 + query-languages/m/oledb-query.md | 1 + 9 files changed, 11 insertions(+), 1 deletion(-) diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index 4587c1724..f54388478 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -1,6 +1,7 @@ --- description: "Learn more about: COLUMNSTATISTICS" title: "COLUMNSTATISTICS function (DAX)" +ms.custom: sfi-image-nochange --- # COLUMNSTATISTICS diff --git a/query-languages/m/accessing-data-functions.md b/query-languages/m/accessing-data-functions.md index 4cc024f23..d9b39a7d9 100644 --- a/query-languages/m/accessing-data-functions.md +++ b/query-languages/m/accessing-data-functions.md @@ -2,7 +2,9 @@ description: "Learn more about: Accessing data functions" title: "Accessing data functions" ms.date: 7/16/2025 -ms.custom: "nonautomated-date" +ms.custom: + - "nonautomated-date" + - sfi-ropc-nochange --- # Accessing data functions diff --git a/query-languages/m/adodotnet-datasource.md b/query-languages/m/adodotnet-datasource.md index 7bf500d5a..fd3e5023d 100644 --- a/query-languages/m/adodotnet-datasource.md +++ b/query-languages/m/adodotnet-datasource.md @@ -2,6 +2,7 @@ description: "Learn more about: AdoDotNet.DataSource" title: "AdoDotNet.DataSource" ms.subservice: m-source +ms.custom: sfi-ropc-nochange --- # AdoDotNet.DataSource diff --git a/query-languages/m/adodotnet-query.md b/query-languages/m/adodotnet-query.md index fec29195e..61c607fe3 100644 --- a/query-languages/m/adodotnet-query.md +++ b/query-languages/m/adodotnet-query.md @@ -2,6 +2,7 @@ description: "Learn more about: AdoDotNet.Query" title: "AdoDotNet.Query" ms.subservice: m-source +ms.custom: sfi-ropc-nochange --- # AdoDotNet.Query diff --git a/query-languages/m/odbc-datasource.md b/query-languages/m/odbc-datasource.md index 6b4128f16..be534fa33 100644 --- a/query-languages/m/odbc-datasource.md +++ b/query-languages/m/odbc-datasource.md @@ -2,6 +2,7 @@ description: "Learn more about: Odbc.DataSource" title: "Odbc.DataSource" ms.subservice: m-source +ms.custom: sfi-ropc-nochange --- # Odbc.DataSource diff --git a/query-languages/m/odbc-inferoptions.md b/query-languages/m/odbc-inferoptions.md index 40975e9c9..3af778da6 100644 --- a/query-languages/m/odbc-inferoptions.md +++ b/query-languages/m/odbc-inferoptions.md @@ -2,6 +2,7 @@ description: "Learn more about: Odbc.InferOptions" title: "Odbc.InferOptions" ms.subservice: m-source +ms.custom: sfi-ropc-nochange --- # Odbc.InferOptions diff --git a/query-languages/m/odbc-query.md b/query-languages/m/odbc-query.md index 53f81d344..ab9c844c3 100644 --- a/query-languages/m/odbc-query.md +++ b/query-languages/m/odbc-query.md @@ -2,6 +2,7 @@ description: "Learn more about: Odbc.Query" title: "Odbc.Query" ms.subservice: m-source +ms.custom: sfi-ropc-nochange --- # Odbc.Query diff --git a/query-languages/m/oledb-datasource.md b/query-languages/m/oledb-datasource.md index 23b3392d9..f0df8d2a8 100644 --- a/query-languages/m/oledb-datasource.md +++ b/query-languages/m/oledb-datasource.md @@ -2,6 +2,7 @@ description: "Learn more about: OleDb.DataSource" title: "OleDb.DataSource" ms.subservice: m-source +ms.custom: sfi-ropc-nochange --- # OleDb.DataSource diff --git a/query-languages/m/oledb-query.md b/query-languages/m/oledb-query.md index 8701e77d4..56c160c1b 100644 --- a/query-languages/m/oledb-query.md +++ b/query-languages/m/oledb-query.md @@ -2,6 +2,7 @@ description: "Learn more about: OleDb.Query" title: "OleDb.Query" ms.subservice: m-source +ms.custom: sfi-ropc-nochange --- # OleDb.Query From 6144469ba4fd7f29aff33a842078dd9896bea0d3 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 6 Aug 2025 13:28:29 -0700 Subject: [PATCH 908/934] Updated list of date and time functions --- query-languages/m/m-working-with-durations.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/query-languages/m/m-working-with-durations.md b/query-languages/m/m-working-with-durations.md index fb95049c1..e1bd7801d 100644 --- a/query-languages/m/m-working-with-durations.md +++ b/query-languages/m/m-working-with-durations.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Working with durations in Power Query M" title: "Working with durations in Power Query M" -ms.date: 7/28/2025 +ms.date: 8/6/2025 ms.custom: "nonautomated-date" ms.subservice: m-background --- @@ -50,7 +50,7 @@ in ``` > [!NOTE] -> Subtracting one date and time function from a different date and time function (for example, subtracting a `#date` function from a `#datetime` function) results in an error. If you must use different date and time functions to determine a duration, use functions such as [Date.From](date-from.md), [DateTime.From](datetime-from.md), or [DateTimeZone.From](datetimezone-from.md) to explicitly change one of the date and time functions. +> Subtracting one date and time function from a different date and time function (for example, subtracting a `#date` function from a `#datetime` function) results in an error. If you must use different date and time functions to determine a duration, use the [Date.From](date-from.md), [DateTime.From](datetime-from.md), [DateTimeZone.From](datetimezone-from.md), or [Time.From](time-from.md) functions to explicitly change one of the date and time functions. ### Converting from compatible values @@ -130,7 +130,7 @@ in This calculation allows durations to be used in conditional logic, such as filtering rows based on elapsed time. -### Type Compatibility +### Type compatibility Durations are compatible with date and time values in arithmetic expressions but not interchangeable with them. For example, subtracting two date and time values yields a `duration`, but adding two date and time values is invalid. @@ -147,7 +147,7 @@ in Source ``` -## Duration Functions in M +## Duration functions in M Power Query M includes a set of built-in functions for working with durations. These functions allow for conversion, extraction of components, and aggregation of duration values, making them essential tools for time-based transformations. @@ -168,9 +168,7 @@ in Source ``` -This conversion is helpful when durations are stored as decimal values in source data. - -### Component Accessors +### Component accessors These functions extract specific parts of a duration: @@ -207,7 +205,7 @@ in TextFormat ``` -### Total Value Functions +### Total value functions These functions return the total value of a duration in a single unit, including fractional parts: @@ -271,4 +269,4 @@ Since durations are based on fixed units (days, hours, minutes, seconds), there' * One month (approximate): #duration(30, 0, 0, 0) * One year (not leap year): #duration(365, 0, 0, 0) -A `duration` type in Power Query M is a fixed structure that doesn’t account for calendar rules. For accurate spans over months or years, subtract one date and time from another instead of using fixed durations. This approach correctly handles leap years, varying month lengths, and daylight savings time (DST). However, also note that some date and time behavior might differ depending on whether the query runs locally (on Power Query Desktop) or online (on Power Query Online). For details, go to [Local, fixed, and UTC variants of current date and time](m-local-fixed-utc-variants.md). In general, avoid relying on fixed durations for long-term calculations. +A `duration` type in Power Query M is a fixed structure that doesn’t account for calendar rules. For accurate duration spans over months or years, subtract one date and time from another instead of using fixed durations. This approach correctly handles leap years, varying month lengths, and daylight savings time (DST). However, also note that some date and time behavior might differ depending on whether the query runs locally (on Power Query Desktop) or online (on Power Query Online). For details, go to [Local, fixed, and UTC variants of current date and time](m-local-fixed-utc-variants.md). In general, avoid relying on fixed durations for long-term calculations. From 87454e0476a16f748050f3ab1f100fdc6db29159 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 6 Aug 2025 14:38:11 -0700 Subject: [PATCH 909/934] Updated List.PositionOf description and add examples --- query-languages/m/list-positionof.md | 79 +++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 2 deletions(-) diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index 06e0b722b..c2b44e6b7 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -18,9 +18,12 @@ List.PositionOf( ## About -Returns the offset at which the value `value` appears in the list `list`. Returns -1 if the value doesn't appear. An optional occurrence parameter `occurrence` can be specified. +Returns the offset at which the specified value appears in a list. Returns -1 if the value doesn't appear. -* `occurrence`: The maximum number of occurrences to report. +* `list`: The list to search. +* `value`: The value to find in the list. +* `occurrence`: (Optional) The specific occurrence to report. This value can be [Occurrence.First](occurrence-type.md), [Occurrence.Last](occurrence-type.md), or [Occurrence.All](occurrence-type.md). +* `equationCriteria`: (Optional) Specifies how equality is determined when comparing values. This parameter can be a key selector function, a comparer function, or a list containing both a key selector and a comparer. ## Example 1 @@ -36,6 +39,78 @@ List.PositionOf({1, 2, 3}, 3) `2` +## Example 2 + +Find the position in the list of all instances of dates from 2022. + +**Usage** + +```powerquery-m +let + Source = { + #date(2021, 5, 10), + #date(2022, 6, 28), + #date(2023, 7, 15), + #date(2022, 12, 31), + #date(2022, 4, 8), + #date(2024, 3, 20) + }, + YearList = List.Transform(Source, each Date.Year(_)), + TargetYear = 2022, + FindPositions = List.PositionOf(YearList, TargetYear, Occurrence.All) +in + FindPositions +``` + +**Output** + +`{1, 3, 4}` + +## Example 3 + +Find the position in the list of last occurrence of the word dog, ignoring case. + +**Usage** + +```powerquery-m +let + Source = List.PositionOf( + {"dog", "cat", "DOG", "pony", "bat", "rabbit", "dOG"}, + "dog", + Occurrence.Last, + Comparer.OrdinalIgnoreCase + ) +in + Source +``` + +**Output** + +`6` + +## Example 4 + +Find the position in the list that is within two units of the number 28. + +**Usage** + +```powerquery-m +let + Source = { 10, 15, 20, 25, 30 }, + Position = List.PositionOf( + Source, + 28, + Occurrence.First, + (x, y) => Number.Abs(x - y) <= 2 + ) +in + Position +``` + +**Output** + +`4` + ## Related content [Equation criteria](list-functions.md#equation-criteria) From f20fa6e7526a2783d65eb8638ec2eefe16a85273 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 6 Aug 2025 14:43:50 -0700 Subject: [PATCH 910/934] Updated per review comments --- query-languages/m/m-working-with-durations.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/query-languages/m/m-working-with-durations.md b/query-languages/m/m-working-with-durations.md index e1bd7801d..741679f6e 100644 --- a/query-languages/m/m-working-with-durations.md +++ b/query-languages/m/m-working-with-durations.md @@ -50,7 +50,7 @@ in ``` > [!NOTE] -> Subtracting one date and time function from a different date and time function (for example, subtracting a `#date` function from a `#datetime` function) results in an error. If you must use different date and time functions to determine a duration, use the [Date.From](date-from.md), [DateTime.From](datetime-from.md), [DateTimeZone.From](datetimezone-from.md), or [Time.From](time-from.md) functions to explicitly change one of the date and time functions. +> Subtracting one date and time type from a different date and time type (for example, subtracting a `date` value from a `datetime` value) results in an error. If you must use different date and time types to determine a duration, use the [Date.From](date-from.md), [DateTime.From](datetime-from.md), [DateTimeZone.From](datetimezone-from.md), or [Time.From](time-from.md) functions to explicitly change one of the date and time types. ### Converting from compatible values @@ -263,10 +263,4 @@ So, even though you only had the number of seconds that a process took place, Po ## Representing weeks, months, and years -Since durations are based on fixed units (days, hours, minutes, seconds), there's no native concept of weeks, months, or years, which vary in length. However, approximate equivalents can be created by converting to days: - -* One week: #duration(7, 0, 0, 0) -* One month (approximate): #duration(30, 0, 0, 0) -* One year (not leap year): #duration(365, 0, 0, 0) - -A `duration` type in Power Query M is a fixed structure that doesn’t account for calendar rules. For accurate duration spans over months or years, subtract one date and time from another instead of using fixed durations. This approach correctly handles leap years, varying month lengths, and daylight savings time (DST). However, also note that some date and time behavior might differ depending on whether the query runs locally (on Power Query Desktop) or online (on Power Query Online). For details, go to [Local, fixed, and UTC variants of current date and time](m-local-fixed-utc-variants.md). In general, avoid relying on fixed durations for long-term calculations. +Since durations are based on fixed units (days, hours, minutes, seconds), there's no native concept of weeks, months, or years, which vary in length. A `duration` type in Power Query M is a fixed structure that doesn’t account for calendar rules. For accurate duration spans over months or years, subtract one date and time from another instead of using fixed durations. This approach correctly handles leap years, varying month lengths, and daylight savings time (DST). However, also note that some date and time behavior might differ depending on whether the query runs locally (on Power Query Desktop) or online (on Power Query Online). For details, go to [Local, fixed, and UTC variants of current date and time](m-local-fixed-utc-variants.md). In general, avoid relying on fixed durations for long-term calculations. From c0a57a66cc385a269c7df825f1f0d75226f66830 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 6 Aug 2025 14:53:23 -0700 Subject: [PATCH 911/934] Updated related content --- query-languages/m/list-positionof.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index c2b44e6b7..baf7af45a 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -68,7 +68,7 @@ in ## Example 3 -Find the position in the list of last occurrence of the word dog, ignoring case. +Find the position in the list of the last occurrence of the word dog, ignoring case. **Usage** @@ -113,4 +113,5 @@ in ## Related content -[Equation criteria](list-functions.md#equation-criteria) +* [Occurrence.Type](occurrence-type.md) +* [Equation criteria](list-functions.md#equation-criteria) From d1ded99fa98e2fd7982b28bfaff3dd4104d15997 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 6 Aug 2025 14:58:03 -0700 Subject: [PATCH 912/934] Removed redundant link --- query-languages/m/list-positionof.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index baf7af45a..eb3fb0955 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -113,5 +113,4 @@ in ## Related content -* [Occurrence.Type](occurrence-type.md) -* [Equation criteria](list-functions.md#equation-criteria) +[Equation criteria](list-functions.md#equation-criteria) From aaa3fe44df5dd37be1b2ccb92845d1dedacd2246 Mon Sep 17 00:00:00 2001 From: Sean Tang Date: Wed, 6 Aug 2025 17:44:37 -0700 Subject: [PATCH 913/934] convert to link --- .../dax/summarizecolumns-function-dax.md | 30 +------------------ 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/query-languages/dax/summarizecolumns-function-dax.md b/query-languages/dax/summarizecolumns-function-dax.md index e4a4e12ab..0f55863b1 100644 --- a/query-languages/dax/summarizecolumns-function-dax.md +++ b/query-languages/dax/summarizecolumns-function-dax.md @@ -357,36 +357,8 @@ Please note that this restriction is temporary. We are actively developing solut ### ValueFilterBehavior ### -ValueFilterBehavior is a model property that controls how value filter is applied to filter context. Allowed values are "Coalesced" and "Independent". +ValueFilterBehavior is a model property that controls how value filter is applied to filter context. Please check out details in [Work with value filter behavior](/power-bi/transform-model/value-filter-behavior). -Coalesced means all value filters on the same table will be applied together as a single conceptual filter to measure. - -Independent means only value filters filtering on group-by columns will be applied together. Filters that do not participate in group-by will be applied independently. - -As an example to illustrate the difference, consider the following data on Product table: - -|Color|Size| -|-----|----| -|Black|S| -|White|M| -|Blue|L| -|Black|XL| - -Now consider the following SummarizeColumns: - -```dax -Evaluate SummarizeColumns( - TreatAs({"Black", "White"}, Product[Color]), - TreatAs({"S", "L"}, Product[Size]), - , "Measure", Calculate(CountRows(Product), ALL(Product[Color])) -) -``` - -Under ValueFilterBehavior=Coalesced, the two TreatAs value filters are applied togeter as a single filter. Due to the Product table data, this single filter is equivalent to a single row of ("Black","S") on Product[Color] and Product[Size] columns. When the measure clears filter context on Product[Color], it will then see Product[Size]="S" in filter context and therefore computes 1 as measure value, because there is only a single row of [Size]="S" in our example Product table. - -Under ValueFilterBehavior=Independent, the two TreatAs value filters do not interact with each other. When measure clears filter context on Product[Color], it ignores the first value filter and picks up the original second filter on Product[Size] column with both values "S" and "L". This will make measure compute 2 as measure value, because there are two rows of [Size]="S" or "L". - -It is decided that ValueFilterBehavior being Independent is the better behavior, and we will move the default of future models to Independent at some point. ## Related content From 931f7515f25116148273e823d1bdd6f0174d6326 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 7 Aug 2025 15:23:51 -0700 Subject: [PATCH 914/934] Updated article per review comments --- ...m-working-with-durations.md => durations.md} | 16 ++++++++-------- .../add-seconds-for-duration.png} | Bin query-languages/m/toc.yml | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) rename query-languages/m/{m-working-with-durations.md => durations.md} (95%) rename query-languages/m/media/{m-working-with-durations/adding-seconds-for-duration.png => durations/add-seconds-for-duration.png} (100%) diff --git a/query-languages/m/m-working-with-durations.md b/query-languages/m/durations.md similarity index 95% rename from query-languages/m/m-working-with-durations.md rename to query-languages/m/durations.md index 741679f6e..2810ff6ee 100644 --- a/query-languages/m/m-working-with-durations.md +++ b/query-languages/m/durations.md @@ -1,18 +1,18 @@ --- -description: "Learn more about: Working with durations in Power Query M" -title: "Working with durations in Power Query M" +description: "Learn more about: Durations in Power Query M" +title: "Durations in Power Query M" ms.date: 8/6/2025 ms.custom: "nonautomated-date" ms.subservice: m-background --- -# Working with durations in Power Query M +# Duration support in Power Query M A duration in Power Query M represents the difference between two points in time, expressed in days, hours, minutes, and seconds. Whether you're calculating the time between customer interactions, filtering records based on elapsed time, or building dynamic time-based logic, durations are essential for creating robust and intelligent data models. This article explores the structure, creation, and manipulation of durations in Power Query M. It includes practical examples and shares tips to help you use durations effectively in your own data workflows. -## Creating durations +## Create a duration A duration is defined by the `#duration(, , , )` function. For example, `#duration(2, 3, 0, 0)` represents a duration of 2 days and 3 hours. Power Query M provides several ways to create a duration, depending on the context and the level of precision required. @@ -52,11 +52,11 @@ in > [!NOTE] > Subtracting one date and time type from a different date and time type (for example, subtracting a `date` value from a `datetime` value) results in an error. If you must use different date and time types to determine a duration, use the [Date.From](date-from.md), [DateTime.From](datetime-from.md), [DateTimeZone.From](datetimezone-from.md), or [Time.From](time-from.md) functions to explicitly change one of the date and time types. -### Converting from compatible values +### Convert from compatible values The [Duration.From](duration-from.md) function can convert compatible values into durations. For more information, go to [Duration.From(value)](#durationfromvalue). -## Working with durations +## Work with durations Once a duration is created in Power Query M, it can be manipulated using various operations and functions. These capabilities make durations highly versatile for time-based logic and calculations. @@ -257,10 +257,10 @@ in The following table is the result of these calculations. -:::image type="content" source="media/m-working-with-durations/adding-seconds-for-duration.png" alt-text="Screenshot of the table containing the end date and time column derived from the start time and duration in seconds."::: +:::image type="content" source="media/durations/add-seconds-for-duration.png" alt-text="Screenshot of the table containing the end date and time column derived from the start time and duration in seconds."::: So, even though you only had the number of seconds that a process took place, Power Query M rolls that duration value up into minutes, hours, and days when the result is evaluated. -## Representing weeks, months, and years +## Represent weeks, months, and years Since durations are based on fixed units (days, hours, minutes, seconds), there's no native concept of weeks, months, or years, which vary in length. A `duration` type in Power Query M is a fixed structure that doesn’t account for calendar rules. For accurate duration spans over months or years, subtract one date and time from another instead of using fixed durations. This approach correctly handles leap years, varying month lengths, and daylight savings time (DST). However, also note that some date and time behavior might differ depending on whether the query runs locally (on Power Query Desktop) or online (on Power Query Online). For details, go to [Local, fixed, and UTC variants of current date and time](m-local-fixed-utc-variants.md). In general, avoid relying on fixed durations for long-term calculations. diff --git a/query-languages/m/media/m-working-with-durations/adding-seconds-for-duration.png b/query-languages/m/media/durations/add-seconds-for-duration.png similarity index 100% rename from query-languages/m/media/m-working-with-durations/adding-seconds-for-duration.png rename to query-languages/m/media/durations/add-seconds-for-duration.png diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index 622dc7792..da9ffbd0f 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -52,8 +52,8 @@ items: items: - name: Local, fixed, and UTC variants href: m-local-fixed-utc-variants.md - - name: Working with durations - href: m-working-with-durations.md + - name: Durations in Power Query M + href: durations.md - name: Text formatting items: - name: Standard numeric format strings From 212eaa35a7da623a0a6e95f773c747e5635648c8 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 8 Aug 2025 08:20:43 -0700 Subject: [PATCH 915/934] Updated Folder.Files About and added new example --- query-languages/m/folder-files.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/query-languages/m/folder-files.md b/query-languages/m/folder-files.md index c7ff4455f..b57a386c2 100644 --- a/query-languages/m/folder-files.md +++ b/query-languages/m/folder-files.md @@ -13,4 +13,23 @@ Folder.Files(path as text, optional options as nullable record) as ## About -Returns a table containing a row for each file found in the folder `path` and all its subfolders. Each row contains properties of the file and a link to its content. The `options` parameter is currently intended for internal use only. +Returns a table containing a row for each file found in the specified folder and all its subfolders. + +* `path`: The path to the folder you want to retrieve the files from. The supplied folder path must be a valid absolute path. +* `options`: This parameter is currently intended for internal use only. + +Each row of the returned table contains properties of the file and a link to its content. + +## Example 1 + +Return a table containing all of the files found in C:\test-examples\example-folder and all of its subfolders. + +**Usage** + +```powerquery-m +Folder.Files("C:\test-examples\example-folder") +``` + +**Output** + +A table containing the files, their properties, and a link to their content. From 3a5dc0ea58b507c8fa64b7a4ff2d93f180f9aaa6 Mon Sep 17 00:00:00 2001 From: Ryan Wike <> Date: Sat, 9 Aug 2025 09:01:50 -0700 Subject: [PATCH 916/934] [BULK CHANGE] Content SFI - Stay Green: Add ms.custom value --- query-languages/dax/columnstatistics-function-dax.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/dax/columnstatistics-function-dax.md b/query-languages/dax/columnstatistics-function-dax.md index 4587c1724..f54388478 100644 --- a/query-languages/dax/columnstatistics-function-dax.md +++ b/query-languages/dax/columnstatistics-function-dax.md @@ -1,6 +1,7 @@ --- description: "Learn more about: COLUMNSTATISTICS" title: "COLUMNSTATISTICS function (DAX)" +ms.custom: sfi-image-nochange --- # COLUMNSTATISTICS From 7095bd6f8f74f295d0a5b7d4e7156a1940a8b190 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 11 Aug 2025 08:37:21 -0700 Subject: [PATCH 917/934] Updated List.Distinct About and added examples --- query-languages/m/list-distinct.md | 79 +++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index 6c1d8e9c3..5601887c5 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -13,7 +13,10 @@ List.Distinct(list as list, optional equationCriteria as any) as l ## About -Returns a list that contains all the values in list `list` with duplicates removed. If the list is empty, the result is an empty list. +Returns a list that contains all the values in the specified list with duplicates removed. If the specified list is empty, the result is an empty list. + +* `list`: The list from which distinct values are extracted. +* `equationCriteria`: (Optional) Specifies how equality is determined when comparing values. This parameter can be a key selector function, a comparer function, or a list containing both a key selector and a comparer. ## Example 1 @@ -29,6 +32,80 @@ List.Distinct({1, 1, 2, 3, 3, 3}) `{1, 2, 3}` +## Example 2 + +Starting at the end of the list, select the fruits that have a unique text length. + +**Usage** + +```powerquery-m +let + Source = {"Apple", "Banana", "Cherry", "Date", "Fig"}, + Result = List.Distinct(List.Reverse(Source), each Text.Length(_)) +in + Result +``` + +**Output** + +`{"Fig", "Date", "Cherry", "Apple"}` + +## Example 3 + +Starting at the beginning of the list, select the unique fruits while ignoring case. + +**Usage** + +```powerquery-m +let + Source = {"apple", "Pear", "aPPle", "banana", "ORANGE", "pear", "Banana", "Cherry"}, + Result = List.Distinct(Source, Comparer.OrdinalIgnoreCase) +in + Result +``` + +**Output** + +`{"apple", "Pear", "banana", "ORANGE", "Cherry"}` + +## Example 4 + +Extract from a list of lists the first lists with unique country names while ignoring case. Place the extracted lists in the rows of a new table. + +**Usage** + +```powerquery-m +let + Source = { + {"USA", #date(2023, 8, 1), 567}, + {"canada", #date(2023, 8, 1), 254}, + {"Usa", #date(2023, 7, 1), 450}, + {"CANADA", #date(2023, 6, 1), 357}, + {"Panama", #date(2023, 6, 2), 20}, + {"panama", #date(2023, 7, 1), 40} + }, + DistinctByCountry = List.Distinct( + Source, + {each _{0}, Comparer.OrdinalIgnoreCase} + ), + ToTable = Table.FromRows(DistinctByCountry, {"Country", "Date", "Value"}), + ChangeTypes = Table.TransformColumnTypes(ToTable, {{"Country", type text}, {"Date", type date}, {"Value", Int64.Type}}) +in + ChangeTypes +``` + +**Output** + +```powerquery-m +#table(type table[Country = text, Date = date, Value = Int64.Type], + { + {"USA", #date(2023, 8, 1), 567}, + {"canada", #date(2023, 8, 1), 254}, + {"Panama", #date(2023, 6, 2), 20} + } +) +``` + ## Related content [Equation criteria](list-functions.md#equation-criteria) From 5fbda231f81a9acbd4cf5d9629cb371875728c4e Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 11 Aug 2025 08:42:07 -0700 Subject: [PATCH 918/934] Prevented scrolling of example --- query-languages/m/list-distinct.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/query-languages/m/list-distinct.md b/query-languages/m/list-distinct.md index 5601887c5..eca6963ee 100644 --- a/query-languages/m/list-distinct.md +++ b/query-languages/m/list-distinct.md @@ -89,7 +89,9 @@ let {each _{0}, Comparer.OrdinalIgnoreCase} ), ToTable = Table.FromRows(DistinctByCountry, {"Country", "Date", "Value"}), - ChangeTypes = Table.TransformColumnTypes(ToTable, {{"Country", type text}, {"Date", type date}, {"Value", Int64.Type}}) + ChangeTypes = Table.TransformColumnTypes( + ToTable, {{"Country", type text}, {"Date", type date}, {"Value", Int64.Type}} + ) in ChangeTypes ``` From ca0e213a5cf02fed4e01c6696ead5bd5a07738b9 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 11 Aug 2025 14:29:44 -0700 Subject: [PATCH 919/934] Updated Power Query M articles for freshness --- query-languages/m/expression-functions.md | 2 +- .../expressions-values-and-let-expression.md | 72 ++++++++++--------- query-languages/m/number-functions.md | 14 ++-- 3 files changed, 47 insertions(+), 41 deletions(-) diff --git a/query-languages/m/expression-functions.md b/query-languages/m/expression-functions.md index 8e2ea377e..93cd5ac37 100644 --- a/query-languages/m/expression-functions.md +++ b/query-languages/m/expression-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Expression functions" title: "Expression functions" -ms.date: 5/16/2022 +ms.date: 8/11/2025 ms.custom: "nonautomated-date" --- # Expression functions diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index e4bac4d92..9ade495fe 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -2,7 +2,7 @@ description: "Learn more about: Expressions, values, and let expression" title: "Expressions, values, and let expression" ms.topic: conceptual -ms.date: 7/9/2024 +ms.date: 8/11/2025 ms.custom: "nonautomated-date" ms.subservice: m-background @@ -20,13 +20,13 @@ in Source ``` -In the example above, `Text.Proper("hello world")` is evaluated to `"Hello World"`. +In this example, `Text.Proper("hello world")` is evaluated to `"Hello World"`. The next sections describe value types in the language. ## Primitive value -A *primitive* value is single-part value, such as a number, logical, text, or null. A null value can be used to indicate the absence of any data. +A *primitive* value is single-part value, such as a `number`, `logical`, `text`, or `null`. A `null` value can be used to indicate the absence of any data. |Type|Example value| |--------|-----------------| @@ -98,7 +98,7 @@ The following are some List examples. ### Record -A *Record* is a set of fields. A *field* is a name/value pair where the name is a text value that is unique within the field's record. The syntax for record values allows the names to be written without quotes, a form also referred to as *identifiers*. An identifier can take the following two forms: +A *Record* is a set of fields. A *field* is a name/value pair where the name is a text value that's unique within the field's record. The syntax for record values allows the names to be written without quotes, a form also referred to as *identifiers*. An identifier can take the following two forms: - identifier_name such as OrderID. @@ -109,14 +109,16 @@ The following is a record containing fields named "OrderID", "CustomerID", "Item Here's an example record: ```powerquery-m -let Source = - [ - OrderID = 1, - CustomerID = 1, - Item = "Fishing rod", - Price = 100.00 - ] -in Source +let + Source = + [ + OrderID = 1, + CustomerID = 1, + Item = "Fishing rod", + Price = 100.00 + ] +in + Source ``` To get the value of an Item, you use square brackets as `Source[Item]`: @@ -128,8 +130,10 @@ let Source = CustomerID = 1, Item = "Fishing rod", Price = 100.00 - ] -in Source[Item] //equals "Fishing rod" + ], + GetItem = Source[Item] //equals "Fishing rod" +in + GetItem ``` ### Table @@ -140,12 +144,13 @@ A *Table* is a set of values organized into named columns and rows. The column t ```powerquery-m let - Source = #table( - {"OrderID", "CustomerID", "Item", "Price"}, - { - {1, 1, "Fishing rod", 100.00}, - {2, 1, "1 lb. worms", 5.00} - }) + Source = #table( + {"OrderID", "CustomerID", "Item", "Price"}, + { + {1, 1, "Fishing rod", 100.00}, + {2, 1, "1 lb. worms", 5.00} + } + ) in Source ``` @@ -157,8 +162,8 @@ let Source = #table( type table [OrderID = number, CustomerID = number, Item = text, Price = number], { - {1, 1, "Fishing rod", 100.00}, - {2, 1, "1 lb. worms", 5.00} + {1, 1, "Fishing rod", 100.00}, + {2, 1, "1 lb. worms", 5.00} } ) in @@ -179,8 +184,8 @@ let Source = #table( type table [OrderID = number, CustomerID = number, Item = text, Price = number], { - {1, 1, "Fishing rod", 100.00}, - {2, 1, "1 lb. worms", 5.00} + {1, 1, "Fishing rod", 100.00}, + {2, 1, "1 lb. worms", 5.00} } ) in @@ -205,12 +210,12 @@ Structured data can contain any M value. Here are some examples: ```powerquery-m let Source = -{ - 1, - "Bob", - DateTime.ToText(DateTime.LocalNow(), "yyyy-MM-dd"), - [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0] -} + { + 1, + "Bob", + DateTime.ToText(DateTime.LocalNow(), "yyyy-MM-dd"), + [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0] + } in Source ``` @@ -225,9 +230,10 @@ Evaluating this expression can be visualized as: let Source = [CustomerID = 1, Name = "Bob", Phone = "123-4567", Orders = { - [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0], + [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0], [OrderID = 2, CustomerID = 1, Item = "1 lb. worms", Price = 5.0] - }] + } + ] in Source ``` @@ -250,4 +256,4 @@ else 1 + 1 ``` -The first expression (2 + 2) is selected if the logical expression (2 > 1) is true, and the second expression (1 + 1) is selected if it is false. The selected expression (in this case 2 + 2) is evaluated and becomes the result of the **if** expression (4). +The first expression (2 + 2) is selected if the logical expression (2 > 1) is true, and the second expression (1 + 1) is selected if it's false. The selected expression (in this case 2 + 2) is evaluated and becomes the result of the **if** expression (4). diff --git a/query-languages/m/number-functions.md b/query-languages/m/number-functions.md index 4f7b5cf78..cefd50385 100644 --- a/query-languages/m/number-functions.md +++ b/query-languages/m/number-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Number functions" title: "Number functions" -ms.date: 7/18/2023 +ms.date: 8/11/2025 ms.custom: "nonautomated-date" --- # Number functions @@ -12,9 +12,9 @@ These functions create and manipulate number values. |Name|Description| |------------|---------------| -|[Number.IsEven](number-iseven.md)|Returns true if a value is an even number.| -|[Number.IsNaN](number-isnan.md)|Returns true if a value is Number.NaN.| -|[Number.IsOdd](number-isodd.md)|Returns true if a value is an odd number.| +|[Number.IsEven](number-iseven.md)|Returns `true` if a value is an even number.| +|[Number.IsNaN](number-isnan.md)|Returns `true` if a value is [Number.NaN](number-nan.md).| +|[Number.IsOdd](number-isodd.md)|Returns `true` if a value is an odd number.| ## Conversion and formatting @@ -39,9 +39,9 @@ These functions create and manipulate number values. |Name|Description| |------------|---------------| |[Number.Round](number-round.md)|Returns a nullable number (n) if value is an integer.| -|[Number.RoundAwayFromZero](number-roundawayfromzero.md)|Returns Number.RoundUp(value) when value >= 0 and Number.RoundDown(value) when value < 0.| +|[Number.RoundAwayFromZero](number-roundawayfromzero.md)|Returns [Number.RoundUp(value)](number-roundup.md) when value >= 0 and [Number.RoundDown(value)](number-rounddown.md) when value < 0.| |[Number.RoundDown](number-rounddown.md)|Returns the largest integer less than or equal to a number value.| -|[Number.RoundTowardZero](number-roundtowardzero.md)|Returns Number.RoundDown(x) when x >= 0 and Number.RoundUp(x) when x < 0.| +|[Number.RoundTowardZero](number-roundtowardzero.md)|Returns [Number.RoundDown(x)](number-rounddown.md) when x >= 0 and [Number.RoundUp(x)](number-roundup.md) when x < 0.| |[Number.RoundUp](number-roundup.md)|Returns the larger integer greater than or equal to a number value.| ## Operations @@ -59,7 +59,7 @@ These functions create and manipulate number values. |[Number.Mod](number-mod.md)|Divides two numbers and returns the remainder of the resulting number.| |[Number.Permutations](number-permutations.md)|Returns the number of total permutations of a given number of items for the optional permutation size.| |[Number.Power](number-power.md)|Returns a number raised by a power.| -|[Number.Sign](number-sign.md)|Returns 1 for positive numbers, -1 for negative numbers or 0 for zero.| +|[Number.Sign](number-sign.md)|Returns 1 for positive numbers, -1 for negative numbers, or 0 for zero.| |[Number.Sqrt](number-sqrt.md)|Returns the square root of a number.| ## Random From b35191c3bc84f1f7dc3a196389d44c23a1dc407c Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 11 Aug 2025 14:38:10 -0700 Subject: [PATCH 920/934] Fixed example spacing --- .../m/expressions-values-and-let-expression.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/expressions-values-and-let-expression.md b/query-languages/m/expressions-values-and-let-expression.md index 9ade495fe..e8ac59078 100644 --- a/query-languages/m/expressions-values-and-let-expression.md +++ b/query-languages/m/expressions-values-and-let-expression.md @@ -211,10 +211,10 @@ Structured data can contain any M value. Here are some examples: let Source = { - 1, - "Bob", - DateTime.ToText(DateTime.LocalNow(), "yyyy-MM-dd"), - [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0] + 1, + "Bob", + DateTime.ToText(DateTime.LocalNow(), "yyyy-MM-dd"), + [OrderID = 1, CustomerID = 1, Item = "Fishing rod", Price = 100.0] } in Source From 00da9f9577c8cc50211204a6c4fa7f0c09cc8a96 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 13 Aug 2025 15:10:36 -0700 Subject: [PATCH 921/934] Updated equationCriteria section with new info --- query-languages/m/list-functions.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/query-languages/m/list-functions.md b/query-languages/m/list-functions.md index 03b249b7f..869e3e57a 100644 --- a/query-languages/m/list-functions.md +++ b/query-languages/m/list-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: List functions" title: "List functions" -ms.date: 1/28/2025 +ms.date: 8/13/2025 ms.custom: "nonautomated-date" --- # List functions @@ -165,17 +165,25 @@ These functions generate list of values. ### Equation criteria -Equation criteria for list values can be specified as either: +In many of the list functions, the `equationCriteria` parameter indicates how equality is determined between list elements. Equation criteria for list values can be specified as either: - A function value that is either: - A key selector that determines the value in the list to apply the equality criteria. - - A comparer function that is used to specify the kind of comparison to apply. Built in comparer functions can be specified—go to [Comparer functions](comparer-functions.md). + - A comparer function that is used to specify the kind of comparison to apply. Built-in comparer functions can be specified—go to [Comparer functions](comparer-functions.md). - A list value that has: - Exactly two items. - The first element is the key selector as specified above. - The second element is a comparer as specified above. -For more information and examples, go to [List.Distinct](list-distinct.md). +In most list functions, the comparer function used in the `equationCriteria` parameter must be one of the built-in [comparer functions](comparer-functions.md). In those list functions, using a custom comparer results in an error. However, the following list functions allow you to use a custom comparer: + +- [List.Contains](list-contains.md) +- [List.ContainsAll](list-containsall.md) +- [List.ContainsAny](list-containsany.md) +- [List.PositionOf](list-positionof.md) +- [List.PositionOfAny](list-positionofany.md) + +For more information and examples, go to [List.Distinct](list-distinct.md) and [List.PositionOf](list-positionof.md). ### Comparison criteria From cf52e285926199cffa03954e59e949b06acbbc58 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 18 Aug 2025 09:02:00 -0700 Subject: [PATCH 922/934] Updated List.PositionOfAny About and added examples --- query-languages/m/list-positionof.md | 4 +- query-languages/m/list-positionofany.md | 79 ++++++++++++++++++++++++- 2 files changed, 79 insertions(+), 4 deletions(-) diff --git a/query-languages/m/list-positionof.md b/query-languages/m/list-positionof.md index eb3fb0955..8a750cb30 100644 --- a/query-languages/m/list-positionof.md +++ b/query-languages/m/list-positionof.md @@ -22,7 +22,7 @@ Returns the offset at which the specified value appears in a list. Returns -1 if * `list`: The list to search. * `value`: The value to find in the list. -* `occurrence`: (Optional) The specific occurrence to report. This value can be [Occurrence.First](occurrence-type.md), [Occurrence.Last](occurrence-type.md), or [Occurrence.All](occurrence-type.md). +* `occurrence`: (Optional) The specific occurrence to report. This value can be [Occurrence.First](occurrence-type.md), [Occurrence.Last](occurrence-type.md), or [Occurrence.All](occurrence-type.md). If no `occurrence` is specified, `Occurrence.First` is used. * `equationCriteria`: (Optional) Specifies how equality is determined when comparing values. This parameter can be a key selector function, a comparer function, or a list containing both a key selector and a comparer. ## Example 1 @@ -90,7 +90,7 @@ in ## Example 4 -Find the position in the list that is within two units of the number 28. +Find the position in the list that's within two units of the number 28. **Usage** diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index f658d9f60..45fc6a5e5 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -18,9 +18,12 @@ List.PositionOfAny( ## About -Returns the offset in list `list` of the first occurrence of a value in a list `values`. Returns -1 if no occurrence is found. An optional occurrence parameter `occurrence` can be specified. +Returns the offset at which an item from the specified list of values appears in a list. Returns -1 if no occurrence is found. -* `occurrence`: The maximum number of occurrences that can be returned. +* `list`: The list to search. +* `values`: The list of values to find in the original list. +* `occurrence`: (Optional) The specific occurrence to report. This value can be [Occurrence.First](occurrence-first.md), [Occurrence.Last](occurrence-last.md), or [Occurrence.All](occurrence-all.md). If no `occurrence` is specified, `Occurrence.First` is used. +* `equationCriteria`: (Optional) Specifies how equality is determined when comparing values. This parameter can be a key selector function, a comparer function, or a list containing both a key selector and a comparer. ## Example 1 @@ -36,6 +39,78 @@ List.PositionOfAny({1, 2, 3}, {2, 3}) `1` +## Example 2 + +Find the position in the list of all instances of dates from either 2022 or 2023. + +**Usage** + +```powerquery-m +let + Source = { + #date(2021, 5, 10), + #date(2022, 6, 28), + #date(2023, 7, 15), + #date(2025, 12, 31), + #date(2022, 4, 8), + #date(2024, 3, 20) + }, + YearList = List.Transform(Source, each Date.Year(_)), + TargetYear = {2022, 2023}, + FindPositions = List.PositionOfAny(YearList, TargetYear, Occurrence.All) +in + FindPositions +``` + +**Output** + +`{1, 2, 4}` + +## Example 3 + +Find the position in the list of the last occurrence of either the word dog or cat, ignoring case. + +**Usage** + +```powerquery-m +let + Source = List.PositionOfAny( + {"dog", "cat", "DOG", "pony", "bat", "rabbit", "dOG"}, + {"dog", "cat"}, + Occurrence.Last, + Comparer.OrdinalIgnoreCase + ) +in + Source +``` + +**Output** + +`6` + +## Example 4 + +Find any position in the list that's within two units of either the number 17 or 28. + +**Usage** + +```powerquery-m +let + Source = { 10, 15, 20, 25, 30 }, + Position = List.PositionOfAny( + Source, + {17, 28}, + Occurrence.All, + (x, y) => Number.Abs(x - y) <= 2 + ) +in + Position +``` + +**Output** + +`{1, 4}` + ## Related content [Equation criteria](list-functions.md#equation-criteria) From c8b6f610339220baec6e4cf9395fe4aa11ba0664 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 18 Aug 2025 09:08:33 -0700 Subject: [PATCH 923/934] Fixed broken links --- query-languages/m/list-positionofany.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/list-positionofany.md b/query-languages/m/list-positionofany.md index 45fc6a5e5..34bd7f6ca 100644 --- a/query-languages/m/list-positionofany.md +++ b/query-languages/m/list-positionofany.md @@ -22,7 +22,7 @@ Returns the offset at which an item from the specified list of values appears in * `list`: The list to search. * `values`: The list of values to find in the original list. -* `occurrence`: (Optional) The specific occurrence to report. This value can be [Occurrence.First](occurrence-first.md), [Occurrence.Last](occurrence-last.md), or [Occurrence.All](occurrence-all.md). If no `occurrence` is specified, `Occurrence.First` is used. +* `occurrence`: (Optional) The specific occurrence to report. This value can be [Occurrence.First](occurrence-type.md), [Occurrence.Last](occurrence-type.md), or [Occurrence.All](occurrence-type.md). If no `occurrence` is specified, `Occurrence.First` is used. * `equationCriteria`: (Optional) Specifies how equality is determined when comparing values. This parameter can be a key selector function, a comparer function, or a list containing both a key selector and a comparer. ## Example 1 From 7a5acce71165680600ce6f85192f4a3ec0960719 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 19 Aug 2025 11:42:07 -0700 Subject: [PATCH 924/934] Update DateTimeZone.From About and added examples --- query-languages/m/datetimezone-from.md | 52 ++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index 8e4d6e6e5..f01bd4f4b 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -13,19 +13,28 @@ DateTimeZone.From(value as any, optional culture as nullable text) ## About -Returns a `datetimezone` value from the given `value`. An optional `culture` may also be provided (for example, "en-US"). If the given `value` is `null`, **DateTimeZone.From** returns `null`. If the given `value` is `datetimezone`, `value` is returned. Values of the following types can be converted to a `datetimezone` value: +Creates a `datetimezone` from the given value. -* `text`: A `datetimezone` value from textual representation. Refer to [DateTimeZone.FromText](datetimezone-fromtext.md) for details. -* `date`: A `datetimezone` with `value` as the date component, `12:00:00 AM` as the time component, and the offset corresponding the local time zone. -* `datetime`: A `datetimezone` with `value` as the datetime and the offset corresponding the local time zone. -* `time`: A `datetimezone` with the date equivalent of the OLE Automation Date of `0` as the date component, `value` as the time component, and the offset corresponding the local time zone. -* `number`: A `datetimezone` with the datetime equivalent to the OLE Automation Date expressed by `value` and the offset corresponding the local time zone. +* `value`: The value used to create a `datetimezone`. +* `culture`: (Optional) The culture to use when transforming the value (for example, "en-US"). + +Values of the following types can be converted to a `datetimezone` value: + +* `text`: Returns a `datetimezone` value from textual representation. Refer to [DateTimeZone.FromText](datetimezone-fromtext.md) for details. +* `date`: Returns a `datetimezone` with `value` as the date component, `12:00:00 AM` as the time component, and the offset corresponding the local time zone. +* `datetime`: Returns a `datetimezone` with `value` as the datetime and the offset corresponding the local time zone. +* `datetimezone`: Returns `value`. +* `time`: Returns a `datetimezone` with the date equivalent of the OLE Automation Date of `0` as the date component, `value` as the time component, and the offset corresponding the local time zone. The OLE Automation Date consists of a floating-point number whose integral component is the number of days before or after midnight, 30 December 1899, and whose fractional component represents the time on that day divided by 24. For example, midnight, 31 December 1899 is represented by 1.0; 6 A.M., 1 January 1900 is represented by 2.25; midnight, 29 December 1899 is represented by -1.0; and 6 A.M., 29 December 1899 is represented by -1.25. The base value is midnight, 30 December 1899. The minimum value is midnight, 1 January 0100. The maximum value is the last moment of 31 December 9999. +* `number`: Returns a `datetimezone` with the datetime equivalent to the OLE Automation Date expressed by `value` and the offset corresponding the local time zone. +* `null`: Returns `null`. If `value` is of any other type, an error is returned. +The value of the offset corresponding to the local time zone is different when running this function locally as opposed to running it online. When run locally, the local time zone is returned. When run online, the UTC time zone (+00:00) is returned. + ## Example 1 -Convert `"2020-10-30T01:30:00-08:00"` to a `datetimezone` value. +Convert the textual representation of a date, time, and timezone to a 'datetimezone` value. **Usage** @@ -37,8 +46,37 @@ DateTimeZone.From("2020-10-30T01:30:00-08:00") `#datetimezone(2020, 10, 30, 01, 30, 00, -8, 00)` +## Example 2 + +Convert the textual representation of Brazilian Portuguese date, time, and timezone to a `datetimezone` value. + +**Usage** + +```powerquery-m +DateTimeZone.From("13 de agosto de 2025 15:43:00 -03:00", "pt-BR") +``` + +**Output** + +`#datetimezone(2025, 08, 13, 03, 43, 00, -3, 00)` + +## Example 3 + +Convert a number representing January 1, 2025 at 12 PM to a `datetimezone` value. + +**Usage** + +```powerquery-m +DateTimeZone.From(45658.5) +``` + +**Output** + +`#datetimezone(2025, 01, 01, 12, 00, 00, 0, 00)` + ## Related content * [How culture affects text formatting](how-culture-affects-text-formatting.md) +* [Local, fixed, and UTC variants of current time functions](m-local-fixed-utc-variants.md) * [Standard date and time format strings](standard-date-and-time-format-strings.md) * [Custom date and time format strings](custom-date-and-time-format-strings.md) From 1faa1bbca9ca6cf8972f5e242d791c5880c09652 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Tue, 19 Aug 2025 11:54:20 -0700 Subject: [PATCH 925/934] Added Number.From related content --- query-languages/m/datetimezone-from.md | 1 + 1 file changed, 1 insertion(+) diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index f01bd4f4b..116fb7893 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -80,3 +80,4 @@ DateTimeZone.From(45658.5) * [Local, fixed, and UTC variants of current time functions](m-local-fixed-utc-variants.md) * [Standard date and time format strings](standard-date-and-time-format-strings.md) * [Custom date and time format strings](custom-date-and-time-format-strings.md) +* [Number.From](number-from.md) From aacced27f8bdd816a02e49c1c2c60cf2dd3f5481 Mon Sep 17 00:00:00 2001 From: Jill Grant <72043882+JillGrant615@users.noreply.github.com> Date: Tue, 19 Aug 2025 13:30:33 -0600 Subject: [PATCH 926/934] Update query-languages/m/datetimezone-from.md --- query-languages/m/datetimezone-from.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index 116fb7893..17c388095 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -34,7 +34,7 @@ The value of the offset corresponding to the local time zone is different when r ## Example 1 -Convert the textual representation of a date, time, and timezone to a 'datetimezone` value. +Convert the textual representation of a date, time, and timezone to a `datetimezone` value. **Usage** From a375dd056fa5d5a179dea491edd6c4632ccdf277 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Thu, 21 Aug 2025 10:59:17 -0700 Subject: [PATCH 927/934] Fixed error in Values example --- query-languages/m/m-spec-values.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-values.md b/query-languages/m/m-spec-values.md index f682c7cc7..88ea9ad36 100644 --- a/query-languages/m/m-spec-values.md +++ b/query-languages/m/m-spec-values.md @@ -2,7 +2,7 @@ title: M Language values description: Describes using values in the Power Query M formula language ms.topic: conceptual -ms.date: 3/28/2025 +ms.date: 8/21/2025 ms.custom: "nonautomated-date" ms.subservice: m-specification --- @@ -535,7 +535,7 @@ Record.FieldNames([ y = 1, x = 2 ]) // [ "y", "x" ] The number of fields in a record can be determined using the `Record.FieldCount` function. For example: ```powerquery-m -Record.FieldCount([ x = 1, y = 2 }) // 2 +Record.FieldCount([ x = 1, y = 2 ]) // 2 Record.FieldCount([]) // 0 ``` From 3d7296e44804736c95264e35b8a8af2fb12312e1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 25 Aug 2025 14:08:14 -0700 Subject: [PATCH 928/934] Updated M spec introduction for freshness --- query-languages/m/m-spec-introduction.md | 36 +++++++++++++----------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index 7a779c5cc..51a9cf337 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -2,7 +2,7 @@ title: Power Query M formula language introduction description: Provides an overview of the Power Query M formula language ms.topic: overview -ms.date: 7/21/2023 +ms.date: 8/25/2025 ms.custom: "nonautomated-date" ms.subservice: m-specification --- @@ -96,13 +96,13 @@ The following examples illustrate the different kinds of values available in M. The evaluation model of the M language is modeled after the evaluation model commonly found in spreadsheets, where the order of calculation can be determined based on dependencies between the formulas in the cells. -If you've written formulas in a spreadsheet such as Excel, you may recognize the formulas on the left result in the values on the right when calculated: +If you've written formulas in a spreadsheet such as Excel, you might recognize the formulas on the left result in the values on the right when calculated: -:::image type="content" source="media/m-spec-formula-value.png" alt-text="Image of the formulas on the right resulting in the values on the left."::: +:::image type="content" source="media/m-spec-formula-value.png" alt-text="Screenshots of of the formulas on the right resulting in the values on the left."::: In M, parts of an expression can reference other parts of the expression by name, and the evaluation process automatically determines the order in which referenced expressions are calculated. -You can use a record to produce an expression that's equivalent to the previous spreadsheet example. When initializing the value of a field, you can refer to other fields within the record by using the name of the field, as follows: +You can use a record to produce an expression that's equivalent to the previous spreadsheet example. When initializing the value of a field, you can refer to other fields within the record by using the name of the field, as shown in the following example: ```powerquery-m [ @@ -112,7 +112,7 @@ You can use a record to produce an expression that's equivalent to the previous ] ``` -The above expression is equivalent to the following (in that both evaluate to equal values): +The previous expression is equivalent to the following example (in that both evaluate to equal values): ```powerquery-m [ @@ -131,7 +131,7 @@ Records can be contained within, or _nest_, within other records. You can use th ] ``` -The above expression is equivalent to the following when it is evaluated: +The previous expression is equivalent to the following example when it's evaluated: ```powerquery-m [ @@ -140,7 +140,7 @@ The above expression is equivalent to the following when it is evaluated: ] ``` -Records can also be contained within lists. You can use the _positional index operator_ (`{}`) to access an item in a list by its numeric index. The values within a list are referred to using a zero-based index from the beginning of the list. For example, the indexes `0` and `1` are used to reference the first and second items in the list below: +Records can also be contained within lists. You can use the _positional index operator_ (`{}`) to access an item in a list by its numeric index. The values within a list are referred to using a zero-based index from the beginning of the list. For example, the indexes `0` and `1` are used to reference the first and second items in the following list: ```powerquery-m [ @@ -174,7 +174,7 @@ In M, a _function_ is a mapping from a set of input values to a single output va (x, y) => x + y // function that adds two values ``` -A function is a value just like a number or a text value. The following example shows a function that is the value of an Add field which is then _invoked_, or executed, from several other fields. When a function is invoked, a set of values are specified that are logically substituted for the required set of input values within the function body expression. +A function is a value just like a number or a text value. The following example shows a function that's the value of an Add field, which is then _invoked_, or executed, from several other fields. When a function is invoked, a set of values are specified that are logically substituted for the required set of input values within the function body expression. ```powerquery-m [ @@ -253,7 +253,7 @@ A metadata record can be accessed for a given value using the [Value.Metadata](v ## Let expression -Many of the examples shown so far have included all the literal values of the expression in the result of the expression. The `let` expression allows a set of values to be computed, assigned names, and then used in a subsequent expression that follows the `in`. For example, in our sales data example, you could do: +Many of the examples shown so far have included all the literal values of the expression in the result of the expression. The `let` expression allows a set of values to be computed, assigned names, and then used in a subsequent expression that precedes the `in`. For example, in our sales data example, you could do: ```powerquery-m let @@ -270,8 +270,10 @@ let FirstHalf = 1200, SecondHalf = 1300, Total = FirstHalf + SecondHalf // 2500 - ] - in Sales2007[Total] + Sales2008[Total] // 4600 + ], + Result = Sales2007[Total] + Sales2008[Total] +in + Result // 4600 ``` The result of the above expression is a number value (`4600`) that's computed from the values bound to the names `Sales2007` and `Sales2008`. @@ -303,10 +305,12 @@ let Sales = UnitPrice = if Units = 0 then error "No Units" else Revenue / Units ], - UnitPrice = try Number.ToText(Sales[UnitPrice]) -in "Unit Price: " & - (if UnitPrice[HasError] then UnitPrice[Error][Message] - else UnitPrice[Value]) + UnitPrice = try Number.ToText(Sales[UnitPrice]), + Result = "Unit Price: " & + (if UnitPrice[HasError] then UnitPrice[Error][Message] + else UnitPrice[Value]) +in + Result ``` The above example accesses the `Sales[UnitPrice]` field and formats the value producing the result: @@ -318,7 +322,7 @@ The above example accesses the `Sales[UnitPrice]` field and formats the value pr If the `Units` field had been zero, then the `UnitPrice` field would have raised an error, which would have been handled by the `try`. The resulting value would then have been: ```powerquery-m -"No Units" +"Unit Price: No Units" ``` A `try` expression converts proper values and errors into a record value that indicates whether the `try` expression handled an error, or not, and either the proper value or the error record it extracted when handling the error. For example, consider the following expression that raises an error and then handles it right away: From c07078298c911316cb0e5272e6fb9c7f9232a1d2 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 25 Aug 2025 14:28:51 -0700 Subject: [PATCH 929/934] One more minor update --- query-languages/m/m-spec-introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index 51a9cf337..66cf4a62f 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -45,7 +45,7 @@ The central construct in M is the _expression_. An expression can be evaluated ( Although many values can be written literally as an expression, a value isn't an expression. For example, the expression `1` evaluates to the value _1_; the expressions `1+1` evaluates to the value _2_. This distinction is subtle, but important. Expressions are recipes for evaluation; values are the results of evaluation. -The following examples illustrate the different kinds of values available in M. As a convention, a value is written using the literal form in which they would appear in an expression that evaluates to just that value. (Note that the `//` indicates the start of a comment which continues to the end of the line.) +The following examples illustrate the different kinds of values available in M. As a convention, a value is written using the literal form in which they would appear in an expression that evaluates to just that value. (Note that the `//` indicates the start of a comment that continues to the end of the line.) * A _primitive_ value is single-part value, such as a number, logical, text, or null. A null value can be used to indicate the absence of any data. From 332ed78f76a64ff9b853bfcd659a0c2dd355f7d0 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Mon, 25 Aug 2025 14:42:59 -0700 Subject: [PATCH 930/934] One more change for consistency --- query-languages/m/m-spec-introduction.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/m-spec-introduction.md b/query-languages/m/m-spec-introduction.md index 66cf4a62f..03351bf1d 100644 --- a/query-languages/m/m-spec-introduction.md +++ b/query-languages/m/m-spec-introduction.md @@ -271,9 +271,9 @@ let SecondHalf = 1300, Total = FirstHalf + SecondHalf // 2500 ], - Result = Sales2007[Total] + Sales2008[Total] + TotalSales = Sales2007[Total] + Sales2008[Total] in - Result // 4600 + TotalSales // 4600 ``` The result of the above expression is a number value (`4600`) that's computed from the values bound to the names `Sales2007` and `Sales2008`. From 84d073abf41cc7d962ab38b448e78db724a613f1 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Fri, 29 Aug 2025 13:01:56 -0700 Subject: [PATCH 931/934] Moved ItemExpression.Item and RowExpression.Row --- query-languages/m/constants.md | 5 ++++- query-languages/m/table-functions.md | 4 +--- query-languages/m/toc.yml | 8 ++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/query-languages/m/constants.md b/query-languages/m/constants.md index 01a3a7414..481393a74 100644 --- a/query-languages/m/constants.md +++ b/query-languages/m/constants.md @@ -10,13 +10,16 @@ The Power Query M formula language includes these constant values. |Name|Description| |------------|---------------| +|[ItemExpression.Item](itemexpression-item.md)|An abstract syntax tree (AST) node representing the item in an item expression.| |[Number.E](number-e.md)|Returns 2.7182818284590451, the value of e up to 16 decimal digits.| |[Number.Epsilon](number-epsilon.md)|Returns the smallest possible number.| |[Number.NaN](number-nan.md)|Represents 0/0.| |[Number.NegativeInfinity](number-negativeinfinity.md)|Represents -1/0.| |[Number.PI](number-pi.md)|Returns 3.1415926535897931, the value for Pi up to 16 decimal digits.| |[Number.PositiveInfinity](number-positiveinfinity.md)|Represents 1/0.| +|[RowExpression.Row](rowexpression-row.md)|An abstract syntax tree (AST) node representing the row in a row expression.| -## See also +## Related content * [Number functions](number-functions.md) +* [Table construction](table-functions.md#table-construction) diff --git a/query-languages/m/table-functions.md b/query-languages/m/table-functions.md index 7b827f9b6..56f331bbb 100644 --- a/query-languages/m/table-functions.md +++ b/query-languages/m/table-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Table functions" title: "Table functions" -ms.date: 7/16/2025 +ms.date: 8/29/2025 ms.custom: "nonautomated-date" ms.subservice: m-source --- @@ -15,10 +15,8 @@ These functions create and manipulate table values. |------------|---------------| [#table](sharptable.md) | Creates a table value from columns and rows.| |[ItemExpression.From](itemexpression-from.md) | Returns the abstract syntax tree (AST) for the body of a function.| -|[ItemExpression.Item](itemexpression-item.md) | An abstract syntax tree (AST) node representing the item in an item expression.| |[RowExpression.Column](rowexpression-column.md)|Returns an abstract syntax tree (AST) that represents access to a column within a row expression.| |[RowExpression.From](rowexpression-from.md)|Returns the abstract syntax tree (AST) for the body of a function.| -|[RowExpression.Row](rowexpression-row.md)|An abstract syntax tree (AST) node representing the row in a row expression.| |[Table.FromColumns](table-fromcolumns.md)|Creates a table from a list of columns and specified values.| |[Table.FromList](table-fromlist.md)|Converts a list into a table by applying the specified splitting function to each item in the list.| |[Table.FromRecords](table-fromrecords.md)|Converts a list of records into a table.| diff --git a/query-languages/m/toc.yml b/query-languages/m/toc.yml index da9ffbd0f..2dbd6bbf4 100644 --- a/query-languages/m/toc.yml +++ b/query-languages/m/toc.yml @@ -998,14 +998,10 @@ items: href: table-functions.md - name: ItemExpression.From href: itemexpression-from.md - - name: ItemExpression.Item - href: itemexpression-item.md - name: RowExpression.Column href: rowexpression-column.md - name: RowExpression.From href: rowexpression-from.md - - name: RowExpression.Row - href: rowexpression-row.md - name: Table.AddColumn href: table-addcolumn.md - name: Table.AddFuzzyClusterColumn @@ -1564,6 +1560,8 @@ items: items: - name: Constants href: constants.md + - name: ItemExpression.Item + href: itemexpression-item.md - name: Number.E href: number-e.md - name: Number.Epsilon @@ -1576,6 +1574,8 @@ items: href: number-pi.md - name: Number.PositiveInfinity href: number-positiveinfinity.md + - name: RowExpression.Row + href: rowexpression-row.md - name: Dynamic values items: - name: Dynamic values From 2251cb5834eb43e1fc788145afb322d1be88a6b7 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 3 Sep 2025 11:24:11 -0700 Subject: [PATCH 932/934] Updated DateTimeZone.From from inline help changes --- query-languages/m/datetimezone-from.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/query-languages/m/datetimezone-from.md b/query-languages/m/datetimezone-from.md index 17c388095..96a41bd38 100644 --- a/query-languages/m/datetimezone-from.md +++ b/query-languages/m/datetimezone-from.md @@ -58,11 +58,11 @@ DateTimeZone.From("13 de agosto de 2025 15:43:00 -03:00", "pt-BR") **Output** -`#datetimezone(2025, 08, 13, 03, 43, 00, -3, 00)` +`#datetimezone(2025, 08, 13, 15, 43, 00, -3, 00)` ## Example 3 -Convert a number representing January 1, 2025 at 12 PM to a `datetimezone` value. +Convert a number representing January 1, 2025 at 12 PM to a `datetimezone` value. The timezone in the result depends on whether the example is run locally or online. **Usage** From dedddc905253aaa3a896980423b39f5b85beab8a Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 3 Sep 2025 15:10:06 -0700 Subject: [PATCH 933/934] Updated Variable functions with new descriptions --- query-languages/m/value-functions.md | 4 ++-- query-languages/m/variable-value.md | 2 +- query-languages/m/variable-valueordefault.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index e663e82ff..022e1d419 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -51,8 +51,8 @@ These functions evaluate and perform operations on values. |[Value.Firewall](value-firewall.md) | This function is intended for internal use only.| |[Value.ViewError](value-viewerror.md) | This function is intended for internal use only.| |[Value.ViewFunction](value-viewfunction.md) | This function is intended for internal use only.| -|[Variable.Value](variable-value.md) | This function is intended for internal use only.| -|[Variable.ValueOrDefault](variable-valueordefault.md) | This function is intended for internal use only.| +|[Variable.Value](variable-value.md) | Returns the value of the specified identifier, or an error if the identifier is not defined.| +|[Variable.ValueOrDefault](variable-valueordefault.md) | Returns the value of the specified identifier, or the optional default value if the identifier is not defined.| ## Metadata diff --git a/query-languages/m/variable-value.md b/query-languages/m/variable-value.md index d86dceed2..a0be370ae 100644 --- a/query-languages/m/variable-value.md +++ b/query-languages/m/variable-value.md @@ -13,4 +13,4 @@ Variable.Value(identifier as text) as any ## About -This function is intended for internal use only. +Returns the value of the specified variable `identifier` defined by the current evaluation environment. If the variable is not defined, an error is raised. diff --git a/query-languages/m/variable-valueordefault.md b/query-languages/m/variable-valueordefault.md index 05769d71f..80293b44f 100644 --- a/query-languages/m/variable-valueordefault.md +++ b/query-languages/m/variable-valueordefault.md @@ -13,4 +13,4 @@ Variable.ValueOrDefault(identifier as text, optional defaultValue ## About -This function is intended for internal use only. +Returns the value of the specified variable `identifier` defined by the current evaluation environment. If the variable is not defined, the optional `defaultValue` is returned. From 783f54336a5e4354b2c9a0b6a27f3f61b51f1f52 Mon Sep 17 00:00:00 2001 From: Doug Klopfenstein Date: Wed, 3 Sep 2025 15:22:48 -0700 Subject: [PATCH 934/934] Updated value functions descriptions to match --- query-languages/m/value-functions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/query-languages/m/value-functions.md b/query-languages/m/value-functions.md index 022e1d419..fae13f9d9 100644 --- a/query-languages/m/value-functions.md +++ b/query-languages/m/value-functions.md @@ -1,7 +1,7 @@ --- description: "Learn more about: Value functions" title: "Value functions" -ms.date: 7/16/2025 +ms.date: 9/3/2025 ms.custom: "nonautomated-date" --- # Value functions @@ -51,8 +51,8 @@ These functions evaluate and perform operations on values. |[Value.Firewall](value-firewall.md) | This function is intended for internal use only.| |[Value.ViewError](value-viewerror.md) | This function is intended for internal use only.| |[Value.ViewFunction](value-viewfunction.md) | This function is intended for internal use only.| -|[Variable.Value](variable-value.md) | Returns the value of the specified identifier, or an error if the identifier is not defined.| -|[Variable.ValueOrDefault](variable-valueordefault.md) | Returns the value of the specified identifier, or the optional default value if the identifier is not defined.| +|[Variable.Value](variable-value.md) | Returns the value of the specified variable.| +|[Variable.ValueOrDefault](variable-valueordefault.md) | Returns the value of the specified variable or the default value if the variable is not defined.| ## Metadata

    Os^uH7J>86 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 OaYW&SeC7dz%l`|^Tz{DW literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/info-view-relationships-function-dax/measure-example-4-dax-query.png b/query-languages/dax/media/info-view-relationships-function-dax/measure-example-4-dax-query.png new file mode 100644 index 0000000000000000000000000000000000000000..41427ca4d3e97a3b634acbad79e19fdf672798ec GIT binary patch literal 44658 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%0Dff5xvLBM*Fj>x0t4(`u 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 Sb^)SRaX#h#Tm8vPzyA+=@oc34 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/info-view-relationships-function-dax/measure-example-4-visuals.png b/query-languages/dax/media/info-view-relationships-function-dax/measure-example-4-visuals.png new file mode 100644 index 0000000000000000000000000000000000000000..ebfe9d7d1a07a9643669d8e5019c45da946f3e62 GIT binary patch literal 16758 zcmbWfWmI0vwk-<5-QAreXo71<(BL7sLxAA!n&2KBg1dWgcZURbcXyXpthLuU=kB)O zZKvHIH2A(*vvgD+ee@bdpqz{t3L+sQ1Ox<%gt+i02#6PG5D<`3@UY+;DM;-H@C(xR zlh}KRl40T<@B!LLNLmO2qC6bwUKa*@Mz9iBwS|Ddw0r)6Tr?zef`AZ0k`Na9?4)(D z;Oc}u@gR8YDE^)$un*7N3!0vsLbXoh#iz(^sIEzR_xJ0uULxkLZpGQ-k`WL}@J`?4 z3O=tf*x%=0d2mT_ zC*Mj+9!Qu;7)i1N2%=ZolJMZbjAWcWo*7hx#j)<`EIusKO8X~I>`qL#1 zEE?!x^NP}O+U7_r$iEgusV@bQl6sZrm{$Y63~B@%fk7q)={4}D6mY%|5_&9 z<9DFMPnPEwD5d97Nec=Jj%Q6v1N)u_FX2q>mI#2#AQ7&ug3qb^P_%>iSssOw3dn7Bp&)Oo~DZ zv3xma*^?PA@anJk=vGdag}zu?WwmIpNP{*@PF#*5P{XJxDR)1+Ve$c!lHUSFzAa#Y zhso-4S1@&(l@Go~TGhk$?JFJrtge@4(J?W)m-{pL>?YV2Ee{Su#)l>r7NT}`zvB1t zLgQM*+%Htwo~}u*yqjVy&P#{yM_*J+SR`LZ_PN@nGsKF3b8ehlt*4gYx|?+qKWb@h{njg6|BG$KZ!C4S2j}gH z`;5_Z-9MDS`;Q1dX-L`d6lX@LsUJ@a*jjh&$aXPMo_aGC4}EoV#bA0kvS1Ak;Oks# z^FHE)nd z((m5R{br<<8Kj`(tR>;oXmY{X*x1mkpcTBE8TsAf>B*{!lY9=e9s(EPdT%i5zO{J=XPFjrUH4hs z>q!+n_pSYFV~`~K5{1XMxgPG{C8#CZzl{ip%qHuD*+4{BE}dM}Q^bL#Io*j8PFX)u zX9qhc&sP8cFi8Ao1Bjsg%e2L@{JY- zQckft9oKyhA$G^NoNjt`ko0Jqj>zinhR=qM5i!N$bnMN$#pk!;uQX>_ZDCu*z~-G; zPl1ZNMX{9*_al>SC9z(_hSa6iA*zn2MVixZKDuOGy&iY{&@V11n00CMN@{$p`e)1i z11BmZJK3gc>_kvLQN}bI%7x3%T;n}g#61H}=C$;RUe#kr6Dxen_*_#pGQ|buggto; zM|FF~ar3HtEh#eVL{be?)B4GQG&A+Wjj~yf%W4#i2v5+xV0kCKVR~Y1Qxfv8pB^9u zeCAP(@4qas!Jv_Eow1oY8BuW*#RtWII8skFD->)U`}oL9bRxclcKquG+8&>o{}*9A z)t0%_7Hg+R?dojylrjPStAO;l;rd|X!cZJ!_`S7JZHo|v-w%Kp(p zIo1=~#D}NK<}16F(x$GWXKPzkp*(+GYZB*-;R6Q74XQVsC&2?gDS5D9trwT+-r8J_AFq>-b}M2V&6tlQ4fxh8%duuR!x3z5eZmF?i?^75SH zxe4=-V)xL&{v--DF)=(?hxo*l-+s&;uDaJ^Nv2u|k9MCQJ9v{k8R z6ey{7Jgu7Vi#Yo+FS45S>a$`GMMiG~@m)guwzi&U_R^sT*^V>Yw9uWS^T9s^h( z90!v^ouG4=h+P*%g@pw=m)lbH-kw|oOPc7qRvSF4-nC5YWUwx`w!vzt+gThPUu@<& z-!t9%C|E7%!IZ--lCo)K>*%#Hc8Tiy3Y)3-!^9WK1hLuZaynG&OEsw5%j&sNJ?X>P znd7h>=%ajy)qC#oyhmdFg5WI$)a4zRuCH<%U_sU5kVYDjH$F7u#ogc^w!vMixK|O+ z5tVa=VA2%V<1>4HU0W~meS-?Yay9W`2Nyqi(+R?ew|k!Haw{<>)utheZn?U9{%}7Y zz5L>xqUAwQNAgSSb~n_u>?(iOdk3Qzbah3mTZi+~dhDWIzmTKeV)(zpE~)y((HY3d zCoJsI8VlDF{NYkxVMu!XjlsL@{Fff=EY1~)bfMGv0e2b`Fu#=-dIS(&XADw|DYay5LNhI*%8FBWho zSKlD{-1I_;%~e}XWBS*g#qz#SVUnmKRLVQ5D^M!gv zDHFVBVnQjP8`;b2HhU_ktn3d71Uz7BNER2s=^YctbAK?vOKzr9~0dukm{ z=Ivsr^hLs3Ei7%;8-T)ahE^vHXza*r>&OrZwp#5(V4Xn(4CfRFc!@>87<9LPr`J9` z-gPlxh!P1N;kV+wwQiGS4O?gqG6^OhanJVLcMR%Qdq6TEJ2zte zK|?_j*Sm$KpijCu5FrF_VG|M(xU5&9aT(Rt%jWdXHiw=+#WHI%8CC@|q6t%jPDMD@ z&YvDnC~H^UJQHW-QZ4o;_tSNW6Vqol)mBH$2hr*U2~}plr*xK^mj^E*BC^@??Do#A zUprZeh>H3xgjb?P04hfLWbHiIalSJ)7h;K?%;$`WCU{@wJm_8NheAY4TNSKN8X(@u z`aDvbV-`Sx&H*JK3KXEHhmWL|wHb(I++1#(_evGH=ZaJu>7gWJ=?l^#cXM+d9%C^g@$KR2qnOF%E-b7jZI$F2UtRrbrR9(?Ra zFUQ9V9@Afl3Lq+kq$h1n|F6j_?o_^4_O3REYwqQa7=D; z`TP07@?Gs$=Fv0bRX(%o_KjuT=`vk&fjB13zaobtg13eN+8vuii3c7fc#+h)XPeU3 zrvuEzqyESQ-`g{;Yo_bXpdz~9D-5+OXb$L!HQPR zb*9H4rit}jucoGEF4>vYG>hgN!@>%Pq?DB@fM@cA9BO6KKq%Z;L{{l$=>|48Sxg;*@_7#7#2Ad5; zLPEkpPdGR@{pHqgN(O&*JaYl}aeStManb3){{FzSaM1J20x9FNeD3>SAn~q*+hHGn z(ZkhSaaPlD!B@cjRwWz66gMxt{UOGtrvoJ8m{vx!C7&1I`fhjPdf@|_8h@Y-K!NLr z%<$6(Twp_Z$fPd@Tb>>)=Obc+ct<~-3|Oy~84kTxax6n8OYx~HZT3rj*f&yIq5|O) z01^`6uV3j&UGJ?MYmBk<^!2;Uz|Kt7J^n4k#>uHKc7p15+DGS>3j?}=3h1w5@INB*fU2#TM=PCq?bH4~ABqTQPK@iz^H_WTj z^2k{I4lqY;7AJTeFe-e07d8&dnIL0T)y?zgLQT3*ulfgy`=4tBBSs}>W5f2m?jWAG z3El{dT=INs>bUX&Smlfa9%eWmEsEnVHmWK)Aluv9D;a}TUF=>?huWDcO`TX$R8)K> z)V*8(1=nsxb#(;n?ChIja@zHF2%(`MxK314Q||;}7-g#d@v{EJ#6&!gLB$QmxMNnf z-dr_Wr=B?onOCRF^_7hIT`%7|In^o>0t{_T-;UAQrsT%T6xeo zJv}|%>Ik}76$F-UVQt=I_os1de;ORg&X$Uci?8pNl=X+nNJZ+}bWkaOCMKTjG`q)h z*uVOSN-QT0DJ~<^oi}G$^YM9Eebege>t#+t)<8rqEG8D*r$r@!iRyOwa`ce+wIR2` zSdO&Q;f#TUIuUW*&1T}s?4IRv^_&G(Wq|m`?u42~Q9*l}a58`-3!MS))Gr1Gy0gC+ zpyA+xRZ)HY{q-dtKf$5`Q{zM?y{86?G{T@2(v#}+0;ncfmF9#j%eak?-A~IYu7?fA{vrAR`Okc&(J?)Po8fkSGK2PU{N9XUmk1 zJ$%!)8~r$EA2Ppx|9-6fbfFEP04EqD0*h-CxVGt2be)XM%s-i8XuvT*v9huv69)v) zFaImd|F3li8}FZ}Dp2gGI-;M+G&Qv@|Jeo=k?U+W z*a4RRHy8&iK_qoLaH#b3^zRfEablS?gMda;#S5|O>YOt@T1uNnV zH2o{rXe33YTo2}1)7Y;ZsXyoFduRK>iK}FCGN?}&o4onykylt)6#TtTTMCCJBqa2M zy3R-#f&B3-^-1UEbb~~|YkTH3?$(p7j1+AK#P8Ahkl+c$?ZpRL5SP!dUo2Db@eyy0 zr1tbh(OCmOKR!OLvpJZ+WwQ>?VLnTZdn9*zLFTo)`|7i@JCz|uL~1gZ2Xd3%+VAY( zDKuN*DU#Bsf*hITAS$siot1Xq&5;4-mJl#3d}P>iCx1*ZvK0v`t5e~G8v`Zbbx-Zo zJH)CgME)`0I8sp0z{65Hx?ilbc%9JSE?Gz8%>1!EdF~ z-PNkRUTu(;lI(4gK%lMB>yzMU-o{%qf{eX{DQ`Fe5;}!v9 z1p}YO3f<*=|0QS%4S)^JXq9QLVf}zlKqDPJeSkM*pj$`_7c;`{C=6gNK;jFJ69o3` z7T&@G;Aylods%m)KvCt_R}3wW8-veEN-rQRnl6;)?Z%|1YptnHPfrI807AMygEfR# zceg0t)BRcAh5`X_=R6E?-~E9nrl6&TU2?x70o1@B$S68(-(doRgF6lv8mw>6joq#m z93i~Q%2Z&M!gANP~R4LPeL?!0(%1v=WT=KYM1VWa# zkT-04K>;GfGg;FGXd;Xqpn*z?{cv~HGo|f`0&xwjnZ<0HW#0X2;re_`7II8{8;;Zo zLh#`nOEio)u+1AzAK+N+LG>Jq`79eY4$jJ?x@A`==OVpS0@(B~BIepUa#KBm9v|*L zL{hum?&Lm`Swtix>%)2O&x(raz#o*hJo3OI<9h+)1YR1-2^3;Aon$D|Y{2zLC23E6 zJg2j+cOqJ@o$0PBd^ltrPFksEnSIL zQ;=4Zi!QM8XEM1l5NEwR{xT~&8xo@V{!|j;owPKH%f+s*xiz9hi>SRl zyUW#KC|J2d+{ANx zCLSNGtXSIH+xaf5xEv1`~g5 zg5I{=1_R1{H8vLd{23d-cjq&yXo;XksH&=hM?eq)t}*@qgZL~>-rb$QM6&BqVU~RCX7P^;(yr1RugIPr>T1rYpam@yYi~a>KWYVPZ+1Y;HS76pV5D*Yf zoTgyB;pnP>$SsMdga<5}0c=0u)l1J&p5EF$)2 zxOV|{sj;Qj!A3*+=|Y0I>o()(AOaZ^*LLI5!?}SYVKpLob%kKj36DJsch|8tBZVKA zW`Xf$J@&sy0_TBnVFbJShmmI5^WEeA3>TI>Z)#^M=R^Pue`ohM7Dlo=v~~TESACX^ zwG2>XZfJK)38CNg{Gxs(TS1V+NTNpTNc@anL~wt=C6!7JywFyUoG-Sd+;sxVj1+$T z0=9QN{>_-t;CqH^bL_B3ZT_Nm|64-hh0LBdM7p2n>O}IkX3P#xw#;E#znB)T^-&0= zpLq5ujia|}?sT#zCa6CznKwFN-#w~+|EPXYm$R|pUN(B^28QG;7w+C;GAp$dl)uv; zuliKUG&q2oJNW_3t7NE6)3iyDC7=5D1=p~QoP`_CjOq;GMGozn7Dgh|*Vf0WF8jO= zZK9QR#%k4@g?0q-)tT9gQg_{L{ncZpMIswQ{0?&kNY*Y&ce+$2o?qWl5&k*$UfXmx za3?D+IV@gks51IiJ4#_=!|DBOp;U!iadiIAr8Hh#ao1A%gi|)r zMOIP5f_1vE2;7GOjdwhi#yQaiKcCXB+dfUYTr_rz=Q~cTlIf}rH^x$+d?aQ-QDhw9 zFO+#%X~W0dmN4}uONhXh0BaHt+iJ zs)y3bk+PZu={F`y#AyZ&tCvDkP0bFL}@RPqRFIW>+(`n_l_p)hbXG`8mH*E1b(P!etO$v_-}BylCiwaTXCG!4F{^3phhH9 z!lnP~hLj(o-Qhn@C8MQ?Hi~7YfiY6B| zCgxOV!;eRrk+Z3Bt%k=sj{LK;yd$?hnd1hVlDS!axDt_sG7`*&$kDJHFAa+JZtv@# zClM=h(e9IJo&fm)zX`8O1XJTn1JKcw`E2ZF>X`e&al4AxEXhPeHJP;jirhx>n4hN` zQ4ePM+esRh$^!9>C_!Wt{AG{P#OU{O4Eza2h~zX9CV9=&mbSp4isYv%-!#!>kxb<5 z9JswFBuJ%bvTr-z=&$;egAT7gakbMT(Go&NZ%`t?sr_o_YBt|^OrYZ4*4dmWteO1b zjYrz~Kv!z-K<;>@v-+=^5yZPbv{dmM$NZL~cFT}FtYgvRRtu!m{4U>28v2_eXqpB` zovjrCC%q|DKGwl#_e=V)Nk3hyBhk8>TMcbw2?$hD0U9Z>Y**xr-HirLLO42oXp>~i zVM|7l9bFx>Zed{LD!#B)8F_p-^*)60=vFwW}@S0 z1ZTQB=q!~Z<>iOB$DdH8MGLt9g2v~97AzdszdFS9xsVi9kw!pGQIyVfd=q)scY(`J zN#Okl?xj8)6*5FUnvk32vfYNW?Ma!Id@I_i2NpXUf&1Wv*(fimw`)QUCl{%^6=80_ z;ti_CbPFC{hM`{DQOr$v>w^AWK-cHhh&La#=E~+ivAk#vC|_H5|CGOFqrhKNGvc8T zs8HP6sxF<$Tp!+1i&3CjcS=M>nFt_xP-oD?i1~7VA(;QklDiw0Or)<(P4e>Qj4M=> zc%hp3HDav3NSj*p_=QmF;i*t#=q+Z^^$y*K zQhf;m{Vj^=Vti=4H#4Q31JqvhF)0$mJKWUPHPS_n5-uJgjEE4cJ+Ll2_x1 znVq?caNR-=seemyB@MdKvfm0*9zsN@4sm|?4IkxO^4RR05z*WX*{{d$fLUCav(n3Fnq*lW+=SbRxBzNZ#xr{Svg*8ny$POnP7b9 z$#Fd*y89Vd>_p2d&VC1%P@4`z;o66oJ> zP*@Piu9&{N?s`Xw*XEYiuZFp6jkzyjMnqTgKkY9y;JGe3<9m0#w+ILdf^DYnGB#3g z{q@x{wTZQVUQd5mxg}6#%`zllAH)oF`ZilS!b7f3rn&hS=~u#1L<+&u1GsudA}A)W zF7HBV|NYfdE^wdK8$ z;NtZE_#xrDU2$=leBrn=gnQ&-B9XP^4MJjP&*OGQj9G$|XVS)my4ItLZEnPiVUKb0 zyb%2?N~13<$UIcYkM~O6c+DdCa$toB)cZQUk$7=UC7nmA(bzYfA!$OypG;&p{#+VcA zi0>FpObGv|xI)6!c!Z4Ur8`WlwiBp3`a-Z?Np~!?xt6b@m98#NvFFW4h0hBbJEsIv z9qd=Ko<3GscBpfyQH|V9cosC5oN$T?Ujn%%PV4PS=K~nJA)`#qi+9K#4GvU>zB?yd zOIhRxoM`%6+26LYvWe59Sgk)Ihv8`T^kQryG%!^T*VV9 zTQ})@g>Nn|j@$9Mvyg^2Ur={LyBceuhSWL|>V+}&G%@jC(<4HS9kng*Uj4XB#Lmjj zp}L~dnO%xot6|ksCEty8{ULCT$?-rz0*GSm6&kNszUj&P>ipw)x5frLc%~v}h&6>C z3fGO7!WY4!@xgR!ZQ)EkMFAw&Ysnv2%+7_2xQGrk%JR13!UAh1mLIs+%mk%gx>0IP z-%`UWHwVCZ(v-?dmsT^rC^5E7B?+04G@{zvw)v8qv)pWehaQvm*j&AYk1>PySy_2& z=F09?0;FpI0jBFqxUrd;Fv#ctq_~se)T@7rZgo-fYB`nnvDF_1$aUashUESG_vpBr zb(3n<|D1NylMACHc-!oL7giQq|gYDV*ouA#1Z#l|739pc`xf&@^OR% zJYjilv_X1QMJzTGPR?(za|h~ zK>CY#wvz>>NB&+I*d|>?sIRjm(LJ0DisJVb7U4;!%|YPsU->5g-t^-e0feooun)x( zMr@M-8%5_`!!L~b5u%-OsC7%?w{qBnd(s^aNT#{92IWt?SI+Lbh$$(}iAhY0XjW~< zSTFA9oAq+AqSuPvp4EE*%dW93#9%jK&bXX{g75JT#_GakitzmU{)haOm-4vhoiGxU z7WP;`K;!!3S9-BO+X9^2_HAFzoC0axntEP+`;5;A9WNok^5_v+8xW33r;#-^Je@*_lGuh?X#KUALBO$`L4W#_^{H7R_LWRjTZqL%Ow zw~t^!R3BpM*)nyw;Fhi%=CJHe*tTWiM%3*?rhFo9*lWL!=k6PgG)tc~WZ)cdkvpe* zT^f0}(EGO*ziru5#2S03hvpfyZkg&2MQ}nydtOkvpvVm&xl519fBdDh#BoF2VtB&E zH(d#%96}Mmv5^?p_bX&`=Wr?bDYQmgD`B$PJe49d&iEmOF(B-7tg05;5^;Ktge zdnRoZ;=~y+V{T@+XcwDR*;xg)zBT3;74a=npg1`WYZbOa`h650nhADnfyuCcm_2W4 zI_)>IiSy4#cInpHy0)1Y$W^oGddI(*T!~i`r{-xnwE7L7Xy&{79GF@enoEKYEDk~S zp3KmA1DBNjY{_3W874zy+i!kZ-H4g|%-s;nh%W6E$jonawwTPYR(x#sZ!iwnzNH}R zSdX$FPihM2e;w8EMOqVg!>E6#xGuH?iN;DU%-t2EYF}<{E&F!8rH=3}1j0phpoeYj zyj0`5jhL%^h5FP3*o~Gmh9JzWgn-yt`n`)sl6;s z+3d1k^@!cX=hy{ex7cXK$Bq8feVU${0S5)puKi`Bzh96OClvf?+svyUiV+y33QC=V zysJLw8iT#*S?AxV)ihpt2j4AYZBP9cBf?e7dE@PvNZhCkFQI8S9YtksK2nF>V03se zMXh(&vG?|#HsI8jq+#B;sT`*?x`t!W>_@H)fi=yK~3nuB~C~P%qWH$ zrILi#^M>5bL@sTZB6JSQq3$d-_|u=lo~j7N$MGDm5Fq8kpKxw>&2HA-WDh_F99rz` z*~X6ga5-9pWZ%d#060tGH`q4aWrC=uJdmmDQgWAykiE}Y8zxoQGakWD-x&XMg4vov zW;F;eyjQPYFFaUGMuG3@KYIEHk9SK;aG?yG=lJbpg<0|8dx{7Mi8=I~<=n-P?Nebd zDfq2gGV0U5p&DmI+lr7kBvdGKAQq5SGJw2Zdt;E~Jvu)LjBS>nmP`CX1JPjL`?aHG z{N#?aCj7B^l?gc(Mucs&Q7`=h%*I_yx3AUBi`~_$0{x(!PG)U}muqd&`l+KE6vWJP zd~u>X^s1~K)3sYO!)rg37H82AB z4)`1Rl#oe#IXTGQN1qY{2eJG6-{BA-W!69P(?59sKM&-OPsU|zwob-*!`%Hz<x@j*Kdihe=6FN=#q-Jz6+4dwV@4e+O@*Efm>P z5Y&Lf=l{^XHtknRlr+kgw;#fjdc}Pb1-Ki0Dqgr-+!@S{QqkGdAoo8}QDKlK_nh5P_=$1Mma9~=Qp&h8Z9JsP27CS0o)^bnx-@vSVIZ!mXc3b+5-MEl zJg4%u=;Pa|rVjfP2=|gV{Mr`G&bJ?vxssH-K4t|N3v2y$5d8HpN3*1RyzIC^FP{7Y zn?T-@Eo0FMx_+!$RwE_G_n`ZsSMtZx$9_S*pDh>{*$LP5Gl38WQw$Ass$%=YrtL1{ zL^TxZ_up-fdl_LNu(t}(2q*Ve8im(MSTfiI`y#&}YE@H8YW}8Z*jo*dyukIEd#x+* zF+{BFOYJoZ<;dvJoaHQB4F!?vw8bo$+mFYfrD0G@dV$dowYH!uL zIjNL+3*^{6gB10kSYN#z#7?|GCVbSOCgQ72LpM0-j?J7k@xo1yLc?YaelI&SE*3JL zl|2WVFRKFBnYGey>x@Yo3@P{u;iunpRhT)%W@{EW&*X{?+ww#chQGVgxEqU&bH+Ws zba8rvJvKBKj{AQVD5lFD*a}a`$A6?5N-fGl4&e@g+Wcp`zn>GnM=&-1eI@9{NpnVdBA4X({m#iln)4wpo&P-hpN zmy|ZzpFC0?f)RY@dgw4&o#0t^_NpmdB`MD7#e{an@gFmgKdU28{1yl%m}5{*5T)83 zQr;3BZ$YuOO)+dhEW_qG_a^0z7)X1qNa+CQjbP3cj5T;>6KC8MIx|g35NKt89L+*T zvuR-a+h&CcEDSq@)MM>$J-w9Ds5_M9TQ~mdrU19zi8ZVlAZ#9;_sXZvzmEQTO^nMsrU7ho(IeE`sG4iXD@x=TX`lV#`;iBE&fe)}&?#)^=TEZ!Rm|4M~W3(Gd z)obD(_jXSL_w~R=-079nFeF%x)d;!!I7LOW(>vf_r^=nnSAKx=rQIzWo2KArN{l-G z#7JoT3+yV-Y|U7~(F$bMvU%Ki7P6bSK`edIM)pK&K4xEDLmlf_s?JvMGRsQFhhth+ zzu{8DGukVr#BheI7RpTt!&;Db*xLKrVr|`gxg~1WtWk-{*Vq^qt|f zLqteF`$$|`Je|h@l!ChYWo6I5F67&HQ%!UM6<)ZvBZBif0+Sn4GCY_-czmXOqfH{Y z5TsAhAD3;kfdkp+G;5EZfAR4e->CVW>e|WKptLmdzqmD!_Px@`#ivRFRY}z3@Se1C zT{Gvtw|Pg+Bal8PsdtU=qJc99{}yIa0zNME-ZrS`7}q41 z+`>rRYAF0%nDRriBw1iD9AZmSD#v_jK1sBBTc(`rr)WIsytzY9X6-_lcLk-sx7p_` zRO&L2cOhWZgu*a4c;W8VYl~bsT6Cp2=6{#_1aeLr0G`P}21Q>Dl6^b;)r6H#XOO=b zmM12&{=6exrkbpY>^8PKnd|5gBtJ5aF(qq+d>NBq02p#1Qot!wux(2fQBi>WjsWqK zBHb0ioSbK?ukw4kL9xIS_*mo`>b|z%-2>Ny8Fr+VKG^ldy}p3k3}O7?02s|IEl$f3 zB-QDXpO+3&tT0T0y}UXAV-l}wF>ib=7Cp|aU#eFv!CoRA@NmMSc{rl_t*OQf2;J~v zIG?%Q9SXab5I35!FhfCP>38rPG5CX5qBrBHT9OO>&h16b-mxOqU_)634;c9?2Fu)y zP63aj5x%46C+)KS1#+&dMqNhbXuiUDb-=j~JS=zbeSQQP&wzG}h4V~7_iF&Y~^1Shg_6IYi<9z(0sx9S7DY(4VJ5h_OyCwGgRN8R z_6&)B7|`Lf89QnLPvz!XU3Vx+heu_kSSNW#x!c=+iW0wgXgxe^8Ku#^O!1E1-DQro zYqPcLxQKH3bHc^M6#-O#7;}_2YT=uQbRvsf_7BlNpcky6nmL~M$!GxJO5#x=gl$@* z!ZLKjDyHh+Dg@72O3M*Nu0IAg>(QLnK*X0%vw3vzj6^9D*0%-HD}+MHS0^}|c{SDZ z=tG=N6~;1?IN!92@$SQ^9SjXv)e{3>N-Rgc71y_+86PK3@(UfNKI@*ZhtbaJcn*6Y zVhp&T_;dTYA5GclE@LrG&ghvoZ}5hu4V!O^IA19*o_f{X*63OcSIVNYRr8q4R&%3W zZ9ml`A9qT8L~x+Rq0}IDFJ31I&BNGE{z`Af9mR>+HQRZhK+T)Z$of_qjUeNc#9VTw;Jj^A;Sy)l_pCZj#C@XKm#5bhJqRwnq zK_&<Rb9*Cp#yzG{=Q)99^}! zvv_=XWQMRU!9YySE$QRSck;Z-3(v&qXJGi}F$7trZg<&i-gq&}Q&cl=CeJKxcg*UU zI{Sjb-Mgse)#6y0-$Qdp-(FkY0d}R{olCC?OJ+!E`Q7{A53M_*T-H3TX=;bFv`YBs zy^YkTjg9?^D&(+D#jM+AlVH$>xzK;Z0;Vl*HWDQ>^N%PxK zBC#%DN#CTTAwSw~c4lW6Nk3Cgm`3v>pItGF(nKQyrEChgy#r_;;gp^l6BoFp0*Qb8 z2!(rz@o^-sdbB@*@n-<75me>pwecA5G&DKGBjI*ww`z9isVHAepDs5JPXPac?F9ZL zF>`*tsneoA09=EG^H+16XT^nvfkDc`IjMrZ?WUfVnvL1X@x{5!Y7fD@p2bs`X7AnBL zW*e6$XL;uC*(yCB7oc+LgF=Lz){Ckw`=Hl*M79dZRLz?nenpV+o160P*^)FiYgV-c z?NQ3~(2&k+pVxhCvJ$+4$-S~Yt2bV0qU}fi#rb0==SH0W_7u&#B*i()2Cpl|VMq|O9=c8t_^hsMt?M*rM!Jll zUo_k~0}_KDuG43ALUaHKv*piCjxSV5bJAm5l5_X|ZQe`CVDsVT$jUv+2ru$^HY>7X zBt%8&aFNhsG?BvG1Wq$GLbAE1IBM-2y!|IAAWkLzw}3$MW++`I^%HH8Sks>Xl&DT* zBk0-3)uMOmhkLGqxnZE4|1%yiYm)dgpL77^i-LqPoAxr3&4CFh@g6@YLNsBpdXe>* zFm(mSbDFf0woXo82oYrp$GU8)f9_LZq|{?tZh{?;o5mvfI9FDP?)$dlpqXdBo?Agn zw22F4x|FW)W~<~^i&=qvOro)Jzw|2BAwLK%@=xIH zMyklrdoNg#oaQ=8)j5w!QLptpF>2OIR8Q4aYou6Z1>KXoaS5~;YRXcHIyXEN?mSSf z32``f#S*+SALg}`0~MR*gI#?d)GQ}3H@y_@>P(9~g6nQM7{io2=L(5z5I~aUkLKZk z(Y`Kmjt7WADP^Av0P?|@<>#gChgx8FwLo#i4?slOToe@IE4aAAxxWT(3+hUmO>>1b zuGDESbT6XW6t}%nC&9v)R^X$O%rsTGT`$MjX$hQw-75PWn6HeK#cwxGPRST^Mi4V1 zr%QkPu2s$CPU|h;_7EWqZeXQ23FTY% z3>f6e@Evh7th)8g>6rba)0hEuC5DF1iTZ##nYoyKh^%~L<@t@2yRWNOc1ElFLOivM z^g=|nHN>27YR-SaTwibsVIbLA^?8yOR@yzDho@v;kJ9@I24U0XhE8i3PGB}28p*|M zA=1|^SFOEq;9lL%E~(NHnH-=kJbHhdE^kiW3-}2|86^y>g28(G)euO7p13|Cf5n8y z-zYU>KXt`aAH@}f1;EB4@$qLCP05$+0zPg=qyS5$-EDn@zI{>?q;tMPni~>a6kdPG zet5L)2-71M9C<{*@Os965Iyz1ifzm3yD_L9m@UkG3mcs;dyaKF_)va1rTF-^uW>%G zH_41UZ?^`I!Zk9J9g}92BUjexGCFg)juN68b#wQ%!AL07NzdbIVCx{+07>s1_b|TK z{Y3$fv{(v{xZFhWUnHp9P0Bb|q>NE^f2&&6BN%nMkf@xPJGAYCmxOi=%8WWm} zV(rIx8@ooVpFe=STzX}pf3D@2 zQ6q1UA=fOS=hBvQ zCXYyZq4tX}0E(T6Oo2LO`aj1&ET9v@W2Pf=z|I`}^bxo8!)UC*<=qt4W@cv|G}Yl4 zij1&sY(Z(+Gh6urWCiDW(dN1*g*r?>w=UMKK^qzc`H*laxaD&R)yc8SF1rb%g&@6p z`|{_|4ky&3A({3I??qN(JiIN=Wa-D<|F3XIKee~nF-n+iLWJsRuzRyW1JFPFt%oIHf zdwl4}JWT}b`XQ&HOPVKsn-E^^zSI@q$lGesG%_B>iIc7>sm_x9*g5Jpz0FZp#+D%V z^LD)I{Ez7m5L&nAxwlx!`7<3bgAwld@KF%W>)_sQl;vC3wkEH35 zx$*qp$y7goplCk6S!TZUhD<%!;@I9~} z1oyu2r0{g{UaO)_`#*h;4`#yP%(=4+7XN1$Iuh3Z;If-EpO5F*j5LOy1Xy!56k@aD z81J=`^l2KU)aiJP8lA36mDCzJi|@Q!v3Xine~Bu5c+&UxtP2#%HK}}FZ@62e=~U=8 zO!)1!N{+S;-IbdaZL+cle0bQZ`MC0JtN4CMg%e*$xL)f;n~(?_)K3Y#d=jT?3Cax{ zfV!)DgA&)g$5+kg) zXMq&^$IqWX(FqA((Kdv(c|YG_e!h7AS7jix35*T>?|eEY&H80OB8zwC=EcvKRj}or z(-pzR6lb?aC~)59_?-31#f1;jqWq{Oz(rw@=`RuKGZ4p|39c=Gd`7%VeoAobzCT?T0V_n53S341Q>@PE{Iv@oa2tX&_4zbO{~_2`ktc z*&B`%r0}PMG(<39vp_%-Tb^&sgJFU!#otw?%B*v1|C&T_e{OyMZ)Wy?%Fh3b kWXb=eR{uY~cJJAMIwN$J00Y_zSO5S3 literal 0 HcmV?d00001 From 36e78a6e58f45ab2cbdd7c956de64c8aa1e325b0 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 21:20:53 -0700 Subject: [PATCH 772/934] Update info-view-columns-function-dax.md --- query-languages/dax/info-view-columns-function-dax.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/query-languages/dax/info-view-columns-function-dax.md b/query-languages/dax/info-view-columns-function-dax.md index df9e0bc96..07aad5eb7 100644 --- a/query-languages/dax/info-view-columns-function-dax.md +++ b/query-languages/dax/info-view-columns-function-dax.md @@ -156,5 +156,3 @@ EVALUATE "Number of text columns", [Number of text columns] ) ``` - -:::image type="content" source="media/info-view-tables-function-dax/measure-example-4-dax-query.png" alt-text="Screenshot showing the output of INFO.VIEW.TABLES() with a measure then used in a DAX query in DAX query view." lightbox="media/info-view-tables-function-dax/measure-example-4-dax-query.png"::: From 620fa97ffb936a2e9e8632c521718494f3194f37 Mon Sep 17 00:00:00 2001 From: Zoe Douglas <102261521+DataZoeMS@users.noreply.github.com> Date: Sat, 15 Mar 2025 21:21:57 -0700 Subject: [PATCH 773/934] Add files via upload --- .../dax-query-example-1.png | Bin 0 -> 155959 bytes .../dax-query-example-2.png | Bin 0 -> 154062 bytes .../measure-example-4-dax-query.png | Bin 0 -> 32297 bytes .../measure-example-4-visuals.png | Bin 0 -> 49989 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 query-languages/dax/media/info-view-measures-function-dax/dax-query-example-1.png create mode 100644 query-languages/dax/media/info-view-measures-function-dax/dax-query-example-2.png create mode 100644 query-languages/dax/media/info-view-measures-function-dax/measure-example-4-dax-query.png create mode 100644 query-languages/dax/media/info-view-measures-function-dax/measure-example-4-visuals.png diff --git a/query-languages/dax/media/info-view-measures-function-dax/dax-query-example-1.png b/query-languages/dax/media/info-view-measures-function-dax/dax-query-example-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6914f777bd5d4767c2df89f852f59775677ad8 GIT binary patch literal 155959 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�ADaQfei4` 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 pII|wP(0^E!un!e%2chZ(}Rs3!GRY^ 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%0DTbg; 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­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 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/info-view-measures-function-dax/measure-example-4-dax-query.png b/query-languages/dax/media/info-view-measures-function-dax/measure-example-4-dax-query.png new file mode 100644 index 0000000000000000000000000000000000000000..2e02e52e515f42f2537ce1a4b3aba2f900022864 GIT binary patch literal 32297 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 F{{p9eT&Dm4 literal 0 HcmV?d00001 diff --git a/query-languages/dax/media/info-view-measures-function-dax/measure-example-4-visuals.png b/query-languages/dax/media/info-view-measures-function-dax/measure-example-4-visuals.png new file mode 100644 index 0000000000000000000000000000000000000000..f47442a947b5efb0b070a4554dc444a69bca766e GIT binary patch literal 49989 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

  • Type assertion x as yIs compatible with primitive or nullable primitive type or errorTest if value is compatible with primitive type or nullable primitive type
    Type conformance x is yTest if compatible with primitive or nullable primitive typeTest if type is compatible with primitive type or nullable primitive type
    Logical AND
    Type assertion x as yTest if value is compatible with primitive type or nullable primitive typeIs compatible primitive/nullable primitive type or error
    Type conformance