次のUDFを使用することができます。
Function TEXTJOIN(delimiter As String, ignore_empty As String, rng) As String
Dim i As Long
Dim textn() As Variant
textn = rng
For i = LBound(textn) To UBound(textn)
If Len(textn(i)) = 0 Then
If Not ignore_empty = True Then
TEXTJOIN = TEXTJOIN & textn(i) & delimiter
End If
Else
TEXTJOIN = TEXTJOIN & textn(i) & delimiter
End If
Next
TEXTJOIN = Left(TEXTJOIN, Len(TEXTJOIN) - 1)
End Function
は、ワークシートに取り付けたモジュールでそれを入れてください。
その後、次の配列数式を持つ他の式のようにそれを呼び出します。
=TEXTJOIN(",",TRUE,IF(A2:D2="Yes",$A$1:$D$1,""))
は、それが編集モードを終了するときはCtrl-Shiftキーを押しながら入力する代わりに入力して確認する必要が配列であること。正しく実行された場合、Excelは{}
を数式の周りに置きます。
あなたが唯一の4を持っているので、数式が、これは、同じものを返すかどうとそれを得るために。あなたが4つ以上あるなら、これはかなり長くなるでしょう。
=LEFT(IF(A2="Yes",$A$1 & ",","") & IF(B2="Yes",$B$1 & ",","") & IF(C2="Yes",$C$1 & ",","") & IF(D2="Yes",$D$1 & ",",""),LEN(IF(A2="Yes",$A$1 & ",","") & IF(B2="Yes",$B$1 & ",","") & IF(C2="Yes",$C$1 & ",","") & IF(D2="Yes",$D$1 & ",",""))-1)
どのExcelをお使いですか? –
Office 365 Excelをお持ちでない場合は、以下をご覧ください。http://stackoverflow.com/questions/36572697/udf-to-concatenate-values TEXTJOIN()を調べると、 –
それは2013年です、あなたがリンクしている最初のものはまさに私が望んでいる最終結果です、私はその笑でさらに悪いので、コーディングを使用しないことを望んでいた、私は今それを試してみます – Adrienne