使用公式在Excel中循环和连接
我正在寻找一种方法来使用Excel中的公式创build一个计算列。
我想在我的“分数”列中计算行中空列的数量。 并在我的“EmptyLabels”连接空列的名称。
有没有办法做到这一点在Excel中没有VBA和macros?
提前致谢。
更新尝试IF和ISBLANK多列不能成为一个解决scheme。 它给了我错误:不能处理多层次的重叠“
我实际上有50列,我认为这是不能做到的。 我可以只适用于less量的列,正确的解决scheme是标记在下面。
得分是“行中空列的数量”,这样就可以在第一行使COUNTBLANK函数公式化,
=COUNTBLANK(Table1[@[Col 1]:[Col 7]])
条件级联可以由一系列嵌套的IF和ISBLANK函数来处理。 简单string连接由&符号(例如&
)提供。
=TRIM(IF(ISBLANK([@[Col 1]]), Table1[[#Headers],[Col 1]]&" ", " ")& IF(ISBLANK([@[Col 2]]), Table1[[#Headers],[Col 2]]&" ", " ")& IF(ISBLANK([@[Col 3]]), Table1[[#Headers],[Col 3]]&" ", " ")& IF(ISBLANK([@[Col 4]]), Table1[[#Headers],[Col 4]]&" ", " ")& IF(ISBLANK([@[Col 5]]), Table1[[#Headers],[Col 5]]&" ", " ")& IF(ISBLANK([@[Col 6]]), Table1[[#Headers],[Col 6]]&" ", " ")& IF(ISBLANK([@[Col 7]]), Table1[[#Headers],[Col 7]]&" ", " "))
如果你更喜欢CONCATENATE函数提供的更正式的string拼接,
=TRIM(CONCATENATE(IF(ISBLANK([@[Col 1]]), Table1[[#Headers],[Col 1]], ""), CHAR(32), IF(ISBLANK([@[Col 2]]), Table1[[#Headers],[Col 2]], ""), CHAR(32), IF(ISBLANK([@[Col 3]]), Table1[[#Headers],[Col 3]], ""), CHAR(32), IF(ISBLANK([@[Col 4]]), Table1[[#Headers],[Col 4]], ""), CHAR(32), IF(ISBLANK([@[Col 5]]), Table1[[#Headers],[Col 5]], ""), CHAR(32), IF(ISBLANK([@[Col 6]]), Table1[[#Headers],[Col 6]], ""), CHAR(32), IF(ISBLANK([@[Col 7]]), Table1[[#Headers],[Col 7]], "")))
请在H2中尝试:
=COUNTBLANK(A2:G2)
在I2中:
=IF(ISBLANK(A2),A$1,"")&IF(ISBLANK(B2),B$1,"")&IF(ISBLANK(C2),C$1,"")&IF(ISBLANK(D2),D$1,"")&IF(ISBLANK(E2),E$1,"")&IF(ISBLANK(F2),F$1,"")&IF(ISBLANK(G2),G$1,"")
然后复制下来以适应。
如果列可能是可变的,请尝试类似
=COUNTA($A$2:OFFSET($H$2,0,-1)) =COLUMN()-$H2-2
并将$ H更改为您的分数列。