如何根据列的内容将行转换为列
How to convert rows to columns according to the content of a column
我有一个包含 50,000 行和 3 列的 csv/xls 文件,格式如下:
Text01 | text02 | Tag
Text1 | text2 | Tag1
Text3 | text4 | Tag1
Text5 | text6 | Tag1
Text7 | text8 | Tag2
Text9 | text10 | Tag2
Text11 | text12 | Tag3
等
我想将其转换为以下格式:
Tag | text1 | text2 | text3 | etc
Tag1 | Text1 | text2 | text3 | text4 | text5 | text6
等等
更新
我尝试了@player0 之前使用 google sheet 公式提出的解决方案,它仅在标签列包含单个单词而不是多个单词时有效:
总而言之,更明确地说,我正在寻找一种解决方案,它允许我将具有公共列的行组合在一起,因为知道行数是可变的。
尝试:
=ARRAYFORMULA(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(B2:B<>"",
{IF(COUNTIFS(D2:D, D2:D, ROW(D2:D), "<="&ROW(D2:D))=1, "♥"&D2:D, )&"♦"&B2:B, "♦"&C2:C}, ))
,,999^99)),,999^99), "♥")), "♦"))
我有一个包含 50,000 行和 3 列的 csv/xls 文件,格式如下:
Text01 | text02 | Tag
Text1 | text2 | Tag1
Text3 | text4 | Tag1
Text5 | text6 | Tag1
Text7 | text8 | Tag2
Text9 | text10 | Tag2
Text11 | text12 | Tag3
等 我想将其转换为以下格式:
Tag | text1 | text2 | text3 | etc
Tag1 | Text1 | text2 | text3 | text4 | text5 | text6
等等
更新
我尝试了@player0 之前使用 google sheet 公式提出的解决方案,它仅在标签列包含单个单词而不是多个单词时有效:
总而言之,更明确地说,我正在寻找一种解决方案,它允许我将具有公共列的行组合在一起,因为知道行数是可变的。
尝试:
=ARRAYFORMULA(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(B2:B<>"",
{IF(COUNTIFS(D2:D, D2:D, ROW(D2:D), "<="&ROW(D2:D))=1, "♥"&D2:D, )&"♦"&B2:B, "♦"&C2:C}, ))
,,999^99)),,999^99), "♥")), "♦"))