2017-08-29 205 views
0

我有一個表格,其中包含來自C24:H28的數據跨度。第23行中的每列都有標題(請注意,數據未格式化爲表格,只是電子表格)。在單元格A1中,我想要顯示包含小於值100的逗號分隔的數據的列的標題名稱。我知道EXCEL的CONCATENATE函數就是我在這裏尋找的,但我不確定如何創建公式以根據列的內容進行條件連接。基於單元格值的單元格的條件級聯

截短的例子如下:

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

我想單元格A1讀Tom, Joe

我希望儘可能地避免宏。

回答

1

你可以,如果使用的串連式內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

0

這應該有效,但它很醜,不會做逗號。但這對你而言是一個好的開始。

=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 
相關問題