私はExcelでテキストデータの異なるセルを結合しようとしています。私は現在式を使用しています:
=J3&", "&K3&", "&L3&", "&M3
すべてのセルにテキストが含まれている場合、結果はまさに私が欲しいものです。
ただし、データのないセルがある場合もあります。現時点では、セルにデータがない場合、数式は「、、、」を返します。データを含まないセルを無視するように数式を書き換える方法はありますか?
Office 365 Excelを使用すると、これが簡単になります。
Office 365 ExcelはTEXTJOIN()を導入しました
=TEXTJOIN(", ",TRUE,J3:M3)
2番目の基準としてTRUE
を使用すると、すべての空白が自動的にスキップされます。
注:私はOPの状態Excel 2010を知っています。これは将来の読者のためのものです。
スコットは、新しいバージョンのExcelのための優れたソリューションを提示します。他の3つのソリューション(これまでのところ)では、Excelのどのバージョンでも機能する単純な関数を使用しています。ただし、区切りのコンマは、実際にはこれらの数式が処理するよりも少し複雑です。そのスタイルのソリューションでこれを達成するには、各コンマに対していくつかのロジックが必要です。
現在値と欠落値の可能な組み合わせは次のとおりです。
最初の行には欠損値はありません。次の4つの行には、可能な各位置に1つの欠損値があります。次の6行には、可能な位置ごとに2つの欠損値があります。次に、3つの欠損値の4行、最後にすべての欠損値。必要な場所で、必要な場所でのみコンマを取得するには、コンマごとにいくつかのロジックが必要です。
これを行う最も簡単な方法は、コンマを「次の」値に関連付けることです。各コンマの位置では、その前に値がない場合、コンマはありません(これは、位置ごとに異なる場合です)。先行する値がある場合、次の位置に値がある場合にのみコンマが必要です。したがって、コンマロジックは次のようになります。
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)
これを試して:
_=CONCATENATE( IF(ISBLANK(J3),"",J3&", "), IF(ISBLANK(K3),"",K3&", "), IF(ISBLANK(L3),"",L3&", "), IF(ISBLANK(M3),"",M3))
_
Microsoft Excel ISBLANK関数を使用して、空白値またはnull値を確認できます。
ここでISBLANK()
関数は、セルに値があるかどうかを確認するために使用されます。値がない場合は、空の_""
_文字列が結果に追加されます。それ以外の場合は、セル値と文字列_", "
_が追加されます。
各セルにIF()
ステートメントを追加してみてください:
_=IF(J3<>"";J3;"")&(IF(K3<>"";", "&K3;""))&(IF(L3<>"";", "&L3;""))&(IF(M3<>"";", "&M3;""))
_
最初のIF()
ステートメントの式が少し変わっていることに注意してください。