Table Transformer - Merge Cells with Duplicate Rows

Emily Berg
Contributor
May 5, 2021

Hello Community!

I would like to take the following information:

Header 1Header 2Header 3
FruitLetter AApple
FruitLetter AApricot
FruitLetter BBanana
FruitLetter BBlueberry
FruitLetter CCherry

And transform it into the following:

*Updated 6-May-2021 - Original post unable to process merged cells.  Removed original content and replaced with image of desired output.

Snag_2879231c.png

Thank you for your insight!
Emily

1 answer

4 votes
Andrey Khaneev _StiltSoft_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 7, 2021

Hello Emily,

Here is the SQL:

SELECT T1.'Header 1', T1.'Header 2', 
FORMATWIKI(SUM(T1.'Header 3' + "\n")) AS 'Header 3'
FROM T1
GROUP BY T1.'Header 1', T1.'Header 2'

 And the result:

2021-05-07_19h31_05.png

Or you can use the Pivot Table macro (it is also shipped with the Table Filter and Charts app):

2021-05-07_19h32_11.png

Don't forget to hide totals:

2021-05-07_19h34_14.png

Madison Small March 14, 2022

Is there a way to use SQL but have each item after the merged column appear in it's own row with a border still around it? I know the "\n" creates a line break, but it is still making my table very messy. I would prefer them to have their own row. 

Katerina Kovriga {Stiltsoft}
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 15, 2022

Hi @Madison Small ,

The Table Transformer macro sees the source table as a mini SQL database, so it can merge cells into one big cell by joining their contents. If we leave a border, then they will be counted as two separate cells and you won't get an aggregated table at all. 

Maybe it will be easier to read your table when using ", " instead of the "\n": you'll get "Apple, Apricot" as a result.

Like # people like this
matthew.hester94
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
March 17, 2022

@Katerina Kovriga {Stiltsoft} How would you do something like this with labels? When I try to merge cells that container labels, then labels are turned into plain strings and lose their formatting.

Katerina Kovriga {Stiltsoft}
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 17, 2022

Try to use the Pivot Table macro instead of the Table Transformer - the initial formatting of the merged data will be preserved.

matthew.hester94
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
March 17, 2022

Maybe this is not as similar as I thought. So I would like to keep the formatting of my result table which would be a vertical header column with the data in a column to the right of the headers. I am merging 4 tables together and need to get just the column that contains labels to merge together. Unfortunately, the pivot table manipulates the result table too much and also does a lot of header renaming.

Desired Result:

header 1 | data

header 2 | Label1, label2, label 3, etc (These can be on newlines too)

 

Originals:

Table 1

header 1   | header 2

---------   ---------

Data.           label 1, label 2

 

Table 2

header 1   | header 2

---------   ---------

Data.           label, 2, label 3

 

etc

Katerina Kovriga {Stiltsoft}
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
March 17, 2022

If you merge labels into one cell, then the Table Transformer macro may lose the original formatting because it is a new cell with simple text strings for it.

We have similar ticket in our backlog and added your vote to it, when the feature is implemented, we'll get back to the thread.

Like # people like this
Megan August 28, 2023

Has this feature been implemented?

Stiltsoft support
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 29, 2023

Hi @Megan ,

You may use the Pivot Table macro as for now. 

If necessary, you may wrap the Pivot Table macro in the Table Transformer macro on top and rename the required columns.

Like # people like this
Megan August 29, 2023

When I add the table transformer on top, it unmerges the cells. Is there a way to keep the merge? Screen Shot 2023-08-29 at 10.07.06 AM.png

Stiltsoft support
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 29, 2023

Unfortunately, no.

Emily Berg July 20, 2024

Hi @Katerina Kovriga {Stiltsoft}  and the @Stiltsoft support  Team!

I have an expanded challenge on the above question.  I was able to do the first level of grouping (see the original to the 1st level grouping images).  Now, I am trying to get to the final state, to group the two UR-30 rows into a single row, and the two UR-532 into a single row.

Your suggestions are much appreciated, thank you!

Original.png1st Grouping.pngDesired Output.png

Nikita Kamai
Contributor
July 23, 2024

Hello Emily,

It's Nikita from Stiltsoft.

Overall, what you are asking is not feasible with Table Transformer as per inability to work with merged cells, therefore let us try tweak&trick the display a little to move to the expected result as close as possible.

Here is the query with some slight display differences, I guess the output should still be 95-97% similar:

CREATE TABLE TX;
INSERT INTO TX
SELECT ROWNUM() as 'id','UR Key' ,
CONCAT_VIEW_AGGR(FORMATWIKI( 'UR - Tested by Key'+ ", ")) as 'UR - Tested by Key',
'SR Key' ,
'SR - Tested by Key',
'PR Key',
'PR - Tested by Key' FROM (SELECT T1.'UR Key' ,
'UR - Tested by Key',
'SR Key' ,
CONCAT_VIEW_AGGR(FORMATWIKI( DISTINCT T1.'SR - Tested by Key' + ", ")) as 'SR - Tested by Key',
'PR Key',
'PR - Tested by Key'
FROM T* WHERE 'UR Key'IS NOT EMPTY
GROUP BY T1.'UR Key', 'SR Key', 'PR Key','PR - Tested by Key','UR - Tested by Key')
GROUP BY 'UR Key', 'SR Key', 'PR Key','PR - Tested by Key','SR - Tested by Key'
ORDER BY 'UR Key'->split("-")->1::int;


SELECT CASE WHEN 'id' IN (SELECT MIN('id') from TX GROUP BY 'UR Key') THEN 'UR Key'
ELSE FORMATWIKI("{cell:border-top-color: white; border-top-width: 2px;}", NULL, "{cell}") END as 'UR Key',
CASE WHEN 'id' IN (SELECT MIN('id') from TX GROUP BY 'UR Key','UR - Tested by Key') THEN 'UR - Tested by Key'->slice(0,-2)
ELSE FORMATWIKI("{cell:border-top-color: white; border-top-width: 2px;}", NULL, "{cell}") END as 'UR - Tested by Key',

'SR Key',
CASE WHEN 'id' IN (SELECT MIN('id') from TX GROUP BY 'UR Key','SR - Tested by Key') THEN 'SR - Tested by Key'->slice(0,-2)
ELSE FORMATWIKI("{cell:border-top-color: white; border-top-width: 2px;}", NULL, "{cell}") END as 'SR - Tested by Key',
'PR Key','PR - Tested by Key'
FROM TX


Hopefully, this will be helpful.

Best wishes,
Nikita

Like # people like this

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events