[Table.MergeCells:]
Vertically merge cells (downwards) that have the same data.
Macro Compatibility
The macro can be used in the highlighted input document types only. A greyed-out icon indicates not supported.
Usage
For a cell to merge down, all previously indexed columns should be identical vertically, not just the immediately previous one. This can be overridden using the 'ignorePreviousColumns' parameter, to achieve a vertical column merge (as long as all the cell values in the column selected are identical)Only the top-most cell style is retained. The macro assumes a header row which it ignores - however you may set ignoreHeaderRow to false to override. Note: the original table must not contain any existing vertically or horizontally merged cells, or the output of this macro will be unpredictable.
| Parameter | Type | Presence | Purpose | Options | Default |
|---|---|---|---|---|---|
| List<Int32> | Mandatory | The column indices, separated by a semi-colon, to consider for merge. Column 1 is the leftmost column. You can specify them in any order. | N/A | N/A | |
| String | Optional | Add a comment to make your document template more readable. The comment is discarded in the output document. | N/A | N/A | |
| Boolean | Optional | Should NCalc expression evaluation throw error on Overflow |
|
true | |
| String | Optional | The text to display should the macro fail to execute. Note that a poorly-specified macro (e.g. omitting mandatory parameters) will still result in an error message. | N/A | N/A | |
| String | Optional | The name of a variable to create should the macro fail to execute. The variable will be a text variable, and will contain either the failure text (only if the failureText parameter is set), otherwise it will contain the exception / failure message. | N/A | N/A | |
| String | Optional | The condition that must be true in order for the macro to be executed/evaluated. Must either evaluate to true or false, for example: "3+5=8" or "contains('abcd', 'z'). | N/A | true | |
| Boolean | Optional | Whether to ignore all cells in the header (first) row. |
|
true | |
| Boolean | Optional | Whether to ignore previous columns for identical cells. |
|
false | |
| MacroMode | Optional | The mode in which variables are stored. In the legacy mode (default for Schedules), the variable created is a string and formatted. In the normal mode (default for Report Studio), the output variable is stored as a strongly-typed object, e.g. an Int32 or a List |
|
Legacy | |
| ObfuscationType | Optional | Obfuscation type. Use obfuscation to write reports where sensitive data is hidden. When used, ReportMagic guarantees that the same input string will map to the same output string for the whole of the report (but the next time the report runs, it will most likely map to a different value). If you use obfuscation, the property in your macro will not show up and instead, you will see a fake item of the obfuscation type chosen. |
|
None | |
| String | Optional | If specified, adds a warning message for this macro. This is processed as an NCalc, and the warning message will ALWAYS be present and will be the value of the evaluated NCalc expression. | N/A | N/A |
Examples (3)
Example 1:
This example vertically merges cells in columns 1, 2 and 3 that have the same cell value:
[List.Table: values=a^b^c^d^e^f;a^b^c^d^e^f;a^b^c^d^e^f;a^b^c^d^e^f] [Table.MergeCells: columnIndices=1;2;3]
Example 2:
This example vertically merges cells in column 2 that has the same cell value ('z') in every cell:
[List.Table: values=a^z^e;b^z^f;c^z^g;d^z^h] [Table.MergeCells: columnIndices=2]
Example 3:
This example vertically merges cells in columns 3, 4 and 5 that have the same cell values. So Column 3 merges the first 2 cells that contain the letter 'c', then the next 2 cells that also contain the letter 'c'. Column 4 is merged into one column containing just 'd'. Column 5 merges the first three cells of 'e', and the last two cells of 'e':
[List.Table: values=Column 1^Column 2^Column 3^Column 4^Column 5^Column 6;x^x^c^d^e^f;y^y^c^d^e^f;z^z^qq^d^e^f;x^x^c^d^qq^f;y^y^c^d^e^f;z^z^qq^d^e^f] [Table.MergeCells: columnIndices=3;4;5, ignorePreviousColumns=true]