假设您有一个设置如下的表:
学生 | 水果 |
---|---|
福 | 苹果、香蕉 |
酒吧 | 橙色 |
巴兹 | 柠檬、橙子 |
如果您需要对水果进行量化/分析,您通常采用什么方法?
我使用的一种方法是创建多个辅助列,然后像这样分割值:
学生 | 水果 | 水果1 | 水果2 |
---|---|---|---|
福 | 苹果、香蕉 | 苹果 | 香蕉 |
酒吧 | 橙色 | 橙色 | |
巴兹 | 柠檬、橙子 | 柠檬 | 橙色 |
但我不确定这是否是最好的方法,因为这会导致水平和垂直输入数据。因此,如果我需要,比如说以传统方式找出“Foo”的水果,我必须再次重组它,以便每个水果都在自己的行中,使其“电子表格可读”。如果我需要创建数据透视表,它也不能很好地转换。
对于此类任务有更好的方法吗?
数据最好标准化为第一范式:
学生 | 水果 |
---|---|
福 | 苹果 |
福 | 香蕉 |
酒吧 | 橙色 |
巴兹 | 柠檬 |
巴兹 | 橙色 |
您可以尝试使用如下公式进行转换。
=QUERY(
WRAPROWS(
FLATTEN(
MAP(
A1:A4,
B1:B4,
LAMBDA(a,b,
TOROW(
REDUCE(,SPLIT(b,","),
LAMBDA(ac,cur,
VSTACK(ac,{a,cur}))))))),2),
"where Col1<>''")