基于单元格值的单元格的条件级联
问题描述:
我有一个表格,其中包含来自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一样的单元中调用它(范围来检查)
答
这应该有效,但它很丑,不会做逗号。但这对你而言是一个好的开始。
=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
完美,完全像我想要的那样工作。谢谢! – User247365