この記事では「エクセルにて文字列が結合できない(&記号や関数のCONCATNATE)時の対策【ダブルコーテーション:「” ”」】」について解説していきます。
原因としては、
・日付や時刻と文字列を結合する場合に、日付をそのまま結合している
・数値のセルを日付や時刻にするために&で結合している
のような状況であり、これらの解決策について具体例で詳しく見ていきましょう。
エクセルにて&で結合できない原因と対策【直接文字列を結合させる結合】
例えば、「会員年」と「会員月」の数値をセル参照させ、その前に「MY」という文字列でつなぎたく、「=MY&B2&C2」と入力すると、&にて結合できずに、エラーとなってしまいます。
これは、直接文字列を入れる場合はダブルコーテーションが必要なためです。
問題を解決するには、以下のように、文字列の方のみを「” ”」(ダブルコーテーション)で括ります。
他の行には、作成した数式をオートフィルすることで、&でつなげない問題が解決できます。
CONCAT関数等で文字列が結合できない原因も同様
なお、CONCAT関数やCONCATNATE関数を使用する場合であっても、
・直接入力時はダブルコーテーション(””)で括る
・セル参照時はそのまま選択
しないとエラーとなるので、気を付けましょう
エクセルにて&で結合できない原因と対策【日付と文字列を結合させる結合】
なお、日付や時刻のセルと文字列をつなぐときは、文字列の方のみを「” ”」(ダブルコーテーション)で括っても、日付や時刻が数値になってしまい正しく結合できません。
次の例では、「支払期限」のセルに文字列を結合していますが、日付で結合することができません。
これは、Excelでの日付/時刻はシリアル値で行われるため、シリアル値で結合されてしまうためです。
シリアル値は、
1日の0時0分0秒~翌日の0時0分0秒までの時刻を0.0~1.0の小数部
で表します。
つまり、「2023/5/10」はシリアル値「45056」なので上記のように結合されてしまいます。
問題を解決するには、TEXT関数で日付や時刻の表示形式を付けて文字列と結合します。
TEXT関数は値に表示形式を付けて返す関数です。
以下の書式に従って、引数「値」に日付や時刻のセルを指定し、「表示形式」に求めたい日付や時刻の表示形式を入力して数式を作成したら、&で文字列を結合することで解決できます。
この例では、日付を「yyyy/m/d」の表示形式にして文字列とをつなげたいので、TEXT関数の引数「表示形式」は以下のように指定して数式を作成します
エクセルにて&で結合できない原因と対策【数値のセルを日付や時刻にするために結合させる結合】
ばらばらのセルに入力された数値を日付や時刻にするときは、&で結合すると文字列になってしまい、先の説明のシリアル値にはならず、日付や時刻ではなく文字列になってしまいます。
日付や時刻で求めるには、数値のセルを結合して日付にするならDATE関数、時刻にするならTIME関数を使います。
DATE関数は年、月、日を表す数値を日付にする関数、TIME関数は時、分、秒を表す数値を時刻にする関数です
以下の書式に従って、セルに入力します。
この例は日付なのでDATE関数を使い、引数「年」「月」「日」にそれぞれの数値のセルを指定して数式を作成します。
ほかの行には、作成した数式をオートフィルすることで、それぞれの数値をつなげて日付として作成することができます。
まとめ エクセルにて文字列が結合できない(&記号や関数のCONCATNATE)時の対策【ダブルコーテーション:「” ”」】
この記事では「エクセルにて文字列が結合できない(&記号や関数のCONCATNATE)時の対策【ダブルコーテーション:「” ”」】」について解説しました。
直接文字列を結合させるときは、「” ”」(ダブルコーテーション)、日付や時刻を結合させるときはTEXT関数が必要と覚えておきましょう。
また、数値を結合して日付や時刻を作成するときは、DATE/TIME関数が必要と併せて覚えておくと便利です。
コメント