答案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 列 |