更改 Google 表格布局的公式:转置和拆分
Posted
技术标签:
【中文标题】更改 Google 表格布局的公式:转置和拆分【英文标题】:Formula to change the layout of a Google Sheet: Transpose & Split 【发布时间】:2022-01-04 01:38:02 【问题描述】:我想转换 Sheet1 中收集的数据,使其看起来像 Sheet2。
Sheet1 - 从 Google 表单填充的数据。
此表包含参加特定课程的员工的出勤率。
此工作表包含超过 50,000 行。
每一行的类 ID 都是唯一的。
可以在多行中找到相同的员工 ID
通知员工 ID“123456”在类 X123456 和 ZZ974547 中找到A | B | C | |
---|---|---|---|
1 | Date | Class ID | Employee ID's |
2 | 4/26/2021 6:47:13 | X123456 | 123456 896779 835906 TMP880997 908613 882853 |
3 | 4/26/2021 17:18:57 | Y123456 | 227583 233482 218680 226955 225310 227569 227582 |
4 | 4/26/2021 18:01:30 | XYZ123456 | 201032 232863 232848 TMP232845 |
5 | 4/27/2021 12:24:29 | X123457 | 188809 224046 232861 232846 |
6 | 4/28/2021 10:56:28 | X123458 | 210975 |
7 | 5/26/2021 10:29:31 | ZZ974547 | 123456 955725 961714 956114 955986 959287 955748 |
Sheet2 - 使用公式的预期结果
按时间戳排序的结果。 计算一个类 ID 中员工 ID 的数量。 然后将类 ID 复制相同的次数。 类 ID X123456 包含 6 个员工 ID,因此 X123456 重复 6 次(1/行) 类 ID Y123456 包含 7 个员工 ID,因此 Y123456 重复 7 次(1/行)A | B | |
---|---|---|
1 | Class ID | Employee ID |
2 | X123456 | 123456 |
3 | X123456 | 896779 |
4 | X123456 | 835906 |
5 | X123456 | TMP880997 |
6 | X123456 | 908613 |
7 | X123456 | 882853 |
8 | Y123456 | 227583 |
9 | Y123456 | 233482 |
10 | Y123456 | 218680 |
11 | Y123456 | 226955 |
12 | Y123456 | 225310 |
13 | Y123456 | 227569 |
14 | Y123456 | 227582 |
15 | XYZ123456 | 201032 |
16 | XYZ123456 | 232863 |
17 | XYZ123456 | 232848 |
18 | XYZ123456 | TMP232845 |
这是我尝试过的当前公式...
Sheet2!A2 =TRANSPOSE(SPLIT(REPT(B2:B &" ",COUNTA(TRANSPOSE(SPLIT(C2:C," "))))," "))
Sheet2!B2 =TRANSPOSE(SPLIT(C2:C," "))
这些公式适用于第一个 Class ID,但不适用于其余 Class ID。我尝试用ARRAYFORMULA()
包装它们,但没有奏效。
【问题讨论】:
【参考方案1】:尝试:
=INDEX(QUERY(SPLIT(FLATTEN(IF(IFERROR(SPLIT(D2:D, " "))="",,
C2:C&"×"&SPLIT(D2:D, " "))), "×"), "where Col2 is not null"))
更新:
=INDEX(SUBSTITUTE(QUERY(SPLIT(FLATTEN(IF(IFERROR(
SPLIT(D2:D, " "))="",,C2:C&"×"&SPLIT(D2:D, " ")&"♦")), "×"),
"where Col2 is not null"), "♦", ))
【讨论】:
非常适合上面共享的示例!谢谢玩家0。在实际工作表上运行此程序后,我注意到缺少一些员工 ID。缺失的 ID 包含员工 ID 前面的字母(例如:TMP123456)。我已将此变量添加到我的问题中。至于您的公式,我尝试为每个范围添加TO_TEXT
,但这不起作用。公式中的什么功能是省略显示的文本?谢谢:)
@JamesReed68 回答已更新
你先生是个传奇。我希望有一天我能像你一样创建公式。以上是关于更改 Google 表格布局的公式:转置和拆分的主要内容,如果未能解决你的问题,请参考以下文章
Google 表格:从 IMPORTDATA() 中拆分多行分隔文本
自动填充公式(跨电子表格运行) - Google 表格/应用程序脚本