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

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

截断的例子如下:

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

我想要单元格A1读Tom, Joe

如果可能,我希望避免macros。

您可以在连接公式中使用if 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”等是你想要连接的头文件。 我敢肯定,这可能会变成一个数组公式,但有些可怕的。

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

大声笑,只是几分钟太晚了,但如果涉及一个macros,我会做macros。 我会使用一个函数,而不是一个子程序,所以你可以在一个单元格中调用= 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,"")) 

如果涉及macros,则更清洁:

 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