【发布时间】:2023-09-16 23:40:01
【问题描述】:
我想转换 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() 包装它们,但没有奏效。
【问题讨论】:
标签: google-sheets split google-sheets-formula transpose flatten