Excel 表公式查询

Excel 表公式查询

我有 Excel 表,如果列值设置为 1,则需要获取列名标题名称。并将其添加到每行的新列中。是否可以通过公式来实现,还是需要宏?

下图显示了 4 列,第 5 列包含每个最终用户所属组的详细信息(其中组 A、B 或 C 为 1)

-----更新 在执行建议的解决方案后,以下评估均出现错误。附上屏幕截图。

我也在 E​​xcel 2019 中尝试过

答案1

在 E2 中尝试以下公式:

=TEXTJOIN(CHAR(10),TRUE,IF(B2:D2=1,$B$1:$D$1,""))

向下拖动以填充其他单元格。为 E 列的单元格启用自动换行。

答案2

您已microsoft-excel-2016设置标签。TEXTJOIN它将无法在 Excel 2016 中使用,因为它直到 2019 版本才被添加。

尝试CONCAT一下。在这种情况下,这种方法不太巧妙,因为添加分隔符(CHAR(10)将每个标题名称放在自己的行上)也会在末尾添加一个分隔符,从而产生一个额外的空白行。

=LEFT( CONCAT(IF(B4:D4=1,$B$1:$D$1,"") & CHAR(10)), 

LEN( CONCAT(IF(B4:D4=1,$B$1:$D$1,"") & CHAR(10)) ) - 1)

这可能是删除最后一个分隔符的最简单方法,但它会使公式的长度加倍。

(实际上,方法是一样的,只是由于 Excel 多年来的改进,功能变得不那么适用了。这只是表明TEXTJOIN,该功能的巨大改进在下一个版本中仍然被更好的功能所取代,这是多么好。)CONCATENATECONCATTEXTJOIN

相关内容