基于单元格值的单元格的条件级联

问题描述:

我有一个表格,其中包含来自C24:H28的数据跨度。第23行中的每列都有标题(请注意,数据未格式化为表格,只是电子表格)。在单元格A1中,我想要显示包含小于值100的逗号分隔的数据的列的标题名称。我知道EXCEL的CONCATENATE函数就是我在这里寻找的,但我不确定如何创建公式以根据列的内容进行条件连接。基于单元格值的单元格的条件级联

截短的例子如下:

Tom  Joe  Bob ... 
125  245  325 ... 
60  600  164 ... 
305  20  410 ... 

我想单元格A1读Tom, Joe

我希望尽可能地避免宏。

你可以,如果使用的串连式内COUNTIF公式。

像这样:

= CONCATENATE(IF(COUNTIF(K14:K16, “< 100 ”)<> 0,K13 &“,”, “”),IF(COUNTIF(L14:L16, “< 100”)<> 0,L13 & “”, “”),IF(COUNTIF(M14:M16, “< 100 ”)<> 0,M13 &“,”, “”))

countif中的范围是您想要检查的数字,而真正的语句单元“K13”等是您想要连接的标题。我敢肯定,这可能会变成一个数组公式,但这些会让人感到恐怖。

希望这会让你朝着正确的方向。

大声笑,只是几分钟太晚了,但如果涉及一个宏,我会做宏。我会使用函数而不是子例程,以便您可以在像CustomConcat一样的单元中调用它(范围来检查)

+0

完美,完全像我想要的那样工作。谢谢! – User247365

这应该有效,但它很丑,不会做逗号。但这对你而言是一个好的开始。

=CONCAT(IF(MIN(C24:C28)<100,C23,"")," ",IF(MIN(D24:D28)<100,D23,"")," ",IF(MIN(E24:E28)<100,E23,"")," ",IF(MIN(F24:F28)<100,F23,""),," ",IF(MIN(G24:G28)<100,G23,""),," ",IF(MIN(H24:H28)<100,H23,"")) 

如果宏参与更清洁:

Sub lessThan100() 
Dim r As Range, aR As Range, i As Integer, j As Integer, less As Boolean 
Set r = Range("C23:H28") 
Set aR = Range("A1") 
aR = "" 
For i = 1 To r.columns.Count 
    less = False 
    For j = 2 To r.Rows.Count 
    If r(j, i) < 100 Then 
     less = True 
     Exit For 
    End If 
    Next j 
    If less Then aR = aR & r(i) & ", " 
Next i 
If Right(aR, 2) = ", " Then aR = Left(aR, Len(aR) - 2) 
End Sub