因爲的Excel for Mac 2011中的限制,我無法找到工作,所以我用一個用戶定義函數的公式。
Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, _
ConcatenateRange As Range, Optional Separator As String = ",") As Variant
Dim i As Long
Dim strResult As String
On Error GoTo ErrHandler
If CriteriaRange.Count <> ConcatenateRange.Count Then
ConcatenateIf = CVErr(xlErrRef)
Exit Function
End If
For i = 1 To CriteriaRange.Count
If CriteriaRange.Cells(i).Value = Condition Then
strResult = strResult & Separator & ConcatenateRange.Cells(i).Value
End If
Next i
If strResult <> "" Then
strResult = Mid(strResult, Len(Separator) + 1)
End If
ConcatenateIf = strResult
Exit Function
ErrHandler:
ConcatenateIf = CVErr(xlErrValue)
End Function
然後在小區中使用
=ConcatenateIf($A1:$B1, "data", $A$1:$B$1, ",")
感謝this link
您的Excel版本支持[TEXTJOIN](https://support.office.com/en-us/ article/TEXTJOIN-function-357b449a-ec91-49d0-80c3-0e8fc845691c)的功能? (需要Excel 2016)。如果不是,這將需要VBA。 – tigeravatar
我正在使用Excel for Mac 2011 – jbgroce21
在這種情況下,您需要在VBA(Visual Basic for Applications)中創建一個UDF(用戶定義的函數)。像這樣的東西應該讓你開始:http://stackoverflow.com/questions/22639868/vba-user-defined-function-for-concatenate-if-by-rows – tigeravatar