如何处理单个单元格中以逗号分隔的多个值?

问题描述 投票:0回答:2

假设您有一个设置如下的表:

学生 水果
苹果、香蕉
酒吧 橙色
巴兹 柠檬、橙子

如果您需要对水果进行量化/分析,您通常采用什么方法?

我使用的一种方法是创建多个辅助列,然后像这样分割值:

学生 水果 水果1 水果2
苹果、香蕉 苹果 香蕉
酒吧 橙色 橙色
巴兹 柠檬、橙子 柠檬 橙色

但我不确定这是否是最好的方法,因为这会导致水平和垂直输入数据。因此,如果我需要,比如说以传统方式找出“Foo”的水果,我必须再次重组它,以便每个水果都在自己的行中,使其“电子表格可读”。如果我需要创建数据透视表,它也不能很好地转换。

对于此类任务有更好的方法吗?

google-sheets google-analytics data-analysis
2个回答
0
投票

数据最好标准化为第一范式

学生 水果
苹果
香蕉
酒吧 橙色
巴兹 柠檬
巴兹 橙色

您可以尝试使用如下公式进行转换。

=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<>''")

0
投票

在这些情况下,我通常会使用以下公式以更适合电子表格的格式重组数据:

=ARRAYFORMULA(
   QUERY(
     SPLIT(TOCOL(A2:A4&"|"&SPLIT(B2:B4,",")),"|"),
     "where Col2 is not null"))

这可能并不总是需要,因为在某些情况下处理非结构化数据并不困难。

© www.soinside.com 2019 - 2024. All rights reserved.