TEXTJOIN 没有重复没有空白,表格,单独的列

问题描述

我有这张桌子:

enter image description here

在单元格 A4 上,我想要值“橙色”。我只想取橙色标记的三个水果列的摘要

  • 表格格式(所以我需要 [@Fruit 1]、[@Fruit 2]、[@Fruit 3],而不是单元格 B2、E2、H2)
  • 仅水果列之间由不相关的价格和重量列分隔。
  • 没有重复(所以 Fruit 1: Apple & Fruit 2: Apple 2 变成只是“Apple”而不是“Apple,Apple”)
  • 没有空格(所以第 4 行将是“橙色”而不是“橙色”)

将不胜感激任何帮助。

解决方法

您包含 textjoin 标记是正确的,因为这是您将需要使用的。 像这样:
=TEXTJOIN(",",TRUE,[@Fruit 1],IF([@Fruit 1] = [@Fruit 2],"",[@Fruit 2]),IF(OR([@Fruit 1] = [@Fruit 3],[@Fruit 2] = [@Fruit 3]),[@Fruit 3]))

Textjoin 公式中的第二个参数将其设置为忽略空值。如果 IF 公式的值已显示在前一列中(即 Fruit 2 检查 Fruit 1,Fruit 3 同时检查 Fruit 1 和 2 列),则 IF 公式将返回空值。

,

如果您有 Excel365,请使用以下公式。

=TEXTJOIN(",UNIQUE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>",Table1[@])&"</s></t>","//s[translate(.,'1234567890','')=.]")))

enter image description here

,

假设您的表格名为Tbl_Fruit,在单元格A2中,您可以输入以下公式并向下拖动:

=TEXTJOIN(",UNIQUE(INDEX(Tbl_Fruit[[Fruit 1]:[Fruit 3]],ROW()-1,{1;4;7})))

或者,您可以在 A2 中输入以下公式:

=TEXTJOIN(",UNIQUE(TRANSPOSE(INDEX(FILTER(Tbl_Fruit[[Fruit 1]:[Fruit 3]],LEFT(Tbl_Fruit[[#Headers],[Fruit 1]:[Fruit 3]],5)="Fruit"),ROW()-1))))