回答:
Office 365 Excelではこれが簡単になります。
Office 365 ExcelにTEXTJOIN()が導入されました
=TEXTJOIN(", ",TRUE,J3:M3)
あり TRUE
2番目の基準として、自動的にすべての空白をスキップします。
注:私はOP状態Excel 2010を知っています、これは将来の読者のためのものです。
追加してみてください IF()
各セルへのステートメント:
=IF(J3<>"";J3;"")&(IF(K3<>"";", "&K3;""))&(IF(L3<>"";", "&L3;""))&(IF(M3<>"";", "&M3;""))
最初の式のわずかな変更に注目してください IF()
ステートメント。
,
J3が空の場合は前面に表示されます。見る ここに
これを試して:
=CONCATENATE( IF(ISBLANK(J3),"",J3&", "), IF(ISBLANK(K3),"",K3&", "), IF(ISBLANK(L3),"",L3&", "), IF(ISBLANK(M3),"",M3))
Microsoft ExcelのISBLANK関数を使用して、空白またはNULL値を確認できます。
ここに ISBLANK()
cellが値を持っているかどうかを調べるためにfunctionが使われます。値がない場合は空白 ""
結果に文字列が追加されます。それ以外の場合は、セル値と文字列 ", "
が追加されます。
Scottは、新しいバージョンのExcelに最適なソリューションを紹介しています。他の3つのソリューション(これまで)は、どのバージョンのExcelでも機能する単純な関数を使用しています。ただし、区切りカンマは実際にはこれらの式が扱うよりも少し複雑です。そのスタイルの解決策でこれを達成するには、各コンマに対していくつかのロジックが必要です。
現在値と欠損値の可能な組み合わせは次のとおりです。
最初の行は欠損値ではありません。次の4行には、それぞれの可能な位置に1つの欠損値があります。次の6行には、それぞれ可能な位置に2つの欠損値があります。それから、4行の3つの欠損値、そして最後にすべての欠損値。必要な場所、および必要な場所にだけコンマを取得するには、各コンマにロジックが必要です。
これを行う最も簡単な方法は、「次の」値にコンマを関連付けることです。各コンマ位置では、その前に値がなければコンマはありません(これは各位置で異なる場合です)。先行する値がある場合、次の位置に値がある場合にのみコンマが必要です。したがって、コンマロジックは次のようになります。
First comma: =IF(J3="","",IF(K3="","",", ")) or =IF(AND(J3<>"",K3<>""),", ","")
Second comma: =IF(J3&K3="","",IF(L3="","",", ")) or =IF(AND(J3&k3<>"",L3<>""),", ","")
Third comma: =IF(J3&K3&L3="","",IF(M3="","",", ")) or =IF(AND(J3&K3&L3<>"",M3<>""),", ","")
さまざまな値の組み合わせでパターンを説明するために、各コンマを別々の列に入れました。
解決策は、値をコンマで連結します(または、存在しない場合は空白にします)。読みやすくするために、数式セルへの参照としてカンマを挿入した数式を次に示します。
=IF(J3="","",J3) &N3 &IF(K3="","",K3) &O3 &IF(L3="","",L3) &P3 &IF(M3="","",M3)
結果の式にコンマ式を代入すると、次のようになります。
=IF(J3="","",J3) &IF(AND(J3<>"",K3<>""),", ","") &IF(K3="","",K3) &=IF(AND(J3&k3<>"",L3<>""),", ","") &IF(L3="","",L3) &=IF(AND(J3&K3&L3<>"",M3<>""),", ","") &IF(M3="","",M3)
連結式を取得する空白セルにこの数式を入力します。
=IF(LEN(TRIM(J3))=0,",",J3)&IF(LEN(TRIM(K3))=0,",",K3)& IF(LEN(TRIM(L3))=0,",",L3)& IF(LEN(TRIM(M3))=0,"",M3)
あるいはこれを使うこともできます、
=TRIM(J3 & K3 &","& L3&","&M3)
N.B. 上記の例では、セルJ3は空白セルではないので、必要に応じてセルアドレスを調整してください。
;
J3が空白の場合は、;
J3に接続し、MID()を使用して2番目の文字から開始します。;
追加されません。