嵌套 IF 语句,将多个值输出到同一输出

嵌套 IF 语句,将多个值输出到同一输出

我想找到一种方法来创建一个IF语句,其中 GMS 中的所有值都等于“范围”列中的给定值

IF((B2=441, B2>=443, B2<=448), B2=450, B2 = 451), "A", IF(.... 

我知道上述内容非常不正确,但仍在寻找任何有关如何解决这个问题的线索。

价值观

答案1

带有 IF 或 IFS 的 TEXTJOIN

文本连接函数将多个范围和/或字符串中的值组合在一起,是将列值组合到单个单元格中的关键。要确定哪个列至文本连接使用标有“范围”的列中的值使用 IF 或 IFS,但是如果您将来想要添加、删除或更改列,它们会使公式更难维护。

# IF

=TEXTJOIN(", ", TRUE, 
   IF(G2="A", A:A, IF(G2="B", B:B,
     IF(G2="C", C:C, IF(G2="D", D:D, "")))))

# IFS

=TEXTJOIN(", ", TRUE, 
   IFS(G2="A", A:A, G2="B", B:B,
       G2="C", C:C, G2="D", D:D, TRUE, ""))

带有 INDEX 和 CODE 的 TEXTJOIN

另一种方法是使用指数函数从一系列列中返回单个列。代码用于确定要指数。它返回“范围”中字符的数字代码,该代码始终64大于与同一字母关联的列号。该公式适用于从 A 到 Z 的任何列。要包括 Z 以上的列,公式会变得更加复杂。

# Columns <= Z

=TEXTJOIN(", ", TRUE, 
   INDEX(A:Z,,CODE(UPPER(G2))-64))

# Columns > Z 
# Example is  A:ALL (1,000 columns)

=TEXTJOIN(", ",TRUE, INDEX(A:ALL,,
   SUM((CODE(MID(G2,SEQUENCE(1,LEN(G2)),1))-64)*
     TRANSPOSE(FILTER({676;26;1}, SEQUENCE(3)>3-LEN(G2))))))

带 INDIRECT 的 TEXTJOIN

间接返回由文本字符串指定的引用。这适用于任何列,无论它是否A或者荧光荧光法. 它也不区分大小写。

=TEXTJOIN(", ", TRUE, INDIRECT(G2&":"&G2))

公式 等效公式
=G2 ="A" 细绳:A
=G2&":"&G2 ="A:A" 细绳:答:
=INDIRECT(G2&":"&G2) =INDIRECT("A:A") 大批:A 列

相关内容