【问题标题】:How to retrieve columns' names based on their value如何根据值检索列的名称
【发布时间】:2018-04-30 09:44:53
【问题描述】:

有一个关于 google 电子表格/excel 的问题:

假设我有一堆行,每行代表不同的产品。 每个产品可能具有或不具有某些属性,由列指示。如果它具有这样的属性,则该列中将有“1”,否则将为空。

我需要的是一个公式,它在单个单元格中检索并用“,”分隔所有包含该行属性“1”的列的名称。

为了方便起见,这里有一张图片:

【问题讨论】:

  • 你考虑过数据透视表吗?
  • 您尝试过任何代码吗?
  • 您是否正在寻找适用于这两个应用程序的公式?我之所以问,是因为有些功能在一个应用程序中有效,而在另一个应用程序中无效,或者工作方式略有不同。

标签: excel google-apps-script excel-formula spreadsheet


【解决方案1】:

这个问题需要解决一些问题。

  • 如果值等于 1,如何显示结果;
  • 如何连接这些结果;
  • 如何在结果之间放置逗号分隔符;
  • 如何去掉最后一个逗号分隔符;

一般来说,“最懒惰”的方法是开始真正手动执行操作,检查每个值是否为 1,然后合并第一行的值并在它们之间放置一个逗号。这解决了第 1,2,3 点。 第 4 点由LEFT(RESULT,LENGTH(RESULT-2)) 解决,它忽略了最后一个逗号及其空格。需要IFERROR(),以防范围内没有1

=IFERROR(LEFT(CONCATENATE(
    IF(B2=1,B1&", ",""),
    IF(C2=1,C1&",","")),
 LEN(CONCATENATE(
    IF(B2=1,B1&", ",""),
    IF(C2=1,C1&", ","")))-2)
 ,"")

【讨论】:

  • 嗨,Vityata,感谢您的快速回答。你能确认我这个公式只适用于 B 列和 C 列吗?就我而言,我可能会添加许多新列。我应该如何编辑这一列以使其工作,比如说,30 列?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
  • 2015-09-03
相关资源
最近更新 更多