質問

セルには

    A        B     
1 2005年5月   修正あり 

と入力されています。
C1に、AとBに入っている文字をつなぎ合わせ、更に結合した部分を:で区切ろうと思い、C1セルに「A1&":"&B1」と入れました。
すると、C1に 36647:修正あり と出てしまいました。
日付が数値に切り替わっちゃったのですが、日付は日付で数値に切り替わらないようにする方法はありますか?
500行ぐらいあるので・・お願いします。

通報する

回答 (6件)

エクセルは(1)値と(2)シート上で表示形式で見えている文字とは全く別です。特に日付について顕著です。
表示計数を細工すると、あるセルに0と入れると大阪、1と入れると京都と表示させることも可能です。
このことを判ってしまえば、この質問は発生しません。
また日付けの値は日付シリアル値という整数値です(1900年1月1日スタートのその日が何日目かの、順序数です。)
また「&」は「値」を結合するもので、表示形式で見えている見た目の文字を結合するものではありません。
文字列は表示形式らしいものはほとんどなく、値もそのもののケースが多いです。しかし、日付を表示形式で見えている形に関数などで変換して「値」にしないと見た目のように結合できません。その方法がTEXT関数やYEAR、MONTH、DAY関数を利用することです。

この回答へのお礼

ありがとうございました
>日付を表示形式で見えている形に関数などで変換して「値」にしないと見た目のように結合できません。
すごく勉強になりました。Excelって奥深いですね。

No.2です、訂正します。

誤)
=TEXT(A1,"yyyy年m月:"&B1)

正)
=TEXT(A1,"yyyy年m月:")&B1

この回答へのお礼

わざわざありがとうございます。
出来ました♪
TEXTとは、思いつきませんでした。
いろんな関数があるんですねぇ

EXCELは日付をシリアル値で格納しています。
表示だけフォーマットを変えているのです。

故に対処法法は”シリアル値を表示値に変える事”です

方法は二つ
=TEXT(A1,"yyyy""年""mm""月""dd""日") &・・・
とする(日が要らなければ適宜削除)

もう一つはyear、month、day其々の関数にシリアル値を与えてやること
=YEAR(A2)&"年"&MONTH(A2)&"月"&DAY(A2)&"日"&・・・
です。
前者は桁数を固定出来ます。後者は出来ません。

後は見た目の問題ですが
concatenateを使うとすっきりしますよ
concatenate(YEAR(A2),"年",MONTH(A2),"月",DAY(A2),"日"

この回答へのお礼

ありがとうございました
>”シリアル値を表示値に変える事”
仕組みが分かると分かりやすくなります。

TEXT関数で日付を文字列に変換してください
なお、"" は " の "~" 内での記述方です。

=TEXT(A1,"yyyy""年""m""月""") & ":" & B1

この回答へのお礼

ありがとうございました
簡単そうな関数で、すぐに出来ました。
解決できて良かったです。

こんにちは~

C1に
=TEXT(A1,"yyyy年m月:"&B1)

と入れてみてください。

C1
=YEAR(A1)&"年"&MONTH(A1)&"月:"&B1
でいいんじゃないの?汎用性があまりないけど、楽だとおもう。

この回答へのお礼

ありがとうございました
少し難しそうな関数ですが、試してみます。

このQ&Aは役に立ちましたか?3 件

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

新しく質問する

新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集