将列转换为单个单元格行

将列转换为单个单元格行

我试图在 excel 中获取结果,但实际上并没有获得成功的输出。我的表格如下:

Data Item    KPI
Customer ID  X12
Customer ID  X13
Customer ID  X14
Customer Name Y1
Customer Name Y2

预期结果 -

Data Item     Outcome
Customer ID   "X12";"X13";"X14"
Customer Name "Y1";"Y2"

我希望预期输出位于 Excel 中的单个单元格中。我该怎么做?

答案1

我认为关键是知道如何使用独特的筛选, 和文本连接。有方法可以在不访问这些内容的情况下执行此操作,但会更复杂。您可能有或没有访问权限,因为这取决于您的 Excel 版本。如果您可以使用它们,这是一个解决方案:

截屏

公式F1查找所有不为空的唯一行Data。这是一个溢出数组公式因此一个公式将返回值到多个单元格。

=UNIQUE(FILTER(A:B,A:A<>""))

H1只是固定文本。 中的公式H2(然后将其复制下来)将 和中Data与相匹配的所有值组合起来。它将每个结果括在引号中(中的公式仅提供文本结果)并将它们组合起来,每个结果之间用分号隔开。ItemF:G"""""

=TEXTJOIN(";",TRUE,""""&FILTER(C:C,(A:A=F2)*(B:B=G2),"")&"""")

重要的是使用(A:A=F2)*(B:B=G2)而不是类似的东西,AND(A:A=F2,B:B=G2)因为AND一次对整个范围进行操作,并且如果任何结果不匹配。


如果您想编写公式H2以自动向下溢出(这样您就不必复制它)或如果值为空则返回空白F:F(这样您就可以将其向下复制 1,000 行而不必再担心它),有很多方法可以做到这一点,如果您想要这种条件,我鼓励您寻找它们。不过,这应该可以让您入门。

答案2

或者:

在此处输入图片描述

公式E1

=LET(x,UNIQUE(A2:B6),VSTACK(HSTACK(A1:B1,"Outcome"),HSTACK(x,BYROW(x,LAMBDA(y,TEXTJOIN(", ",,REPT(""""&C2:C6&"""",MMULT(N(A2:B6=y),{1;1})=2)))))))

相关内容