• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 日付入力について)

エクセルで日付を効率的に入力する方法

このQ&Aのポイント
  • エクセルで日付を入力する際に、数字のみを一度に入力してから後から整形する方法について教えてください。
  • 現在はMID関数を使用して数字を分けてからセルを結合していますが、最終的な形式が期待通りにならないため、効率的なやり方を知りたいです。
  • 日付が古い順に並んでいるため、先頭の数字に応じてSまたはHを付けることができるので、その点は手間ではありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

次のような式で良いでしょう。 =VALUE(LEFT(A1,1)&TEXT(MID(A1,2,6),"0-00-00")) セルの表示形式は和式の日付から選択します。

その他の回答 (7)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.9

>教えていただいた数式ですが、最後に1をかけるのはどうしてですか? &やMID関数やTEXT関数などの文字列を取得する数式で作成した場合は、表示結果の日付が「文字列」で返されます。単に日付を表示したいだけの場合は、文字列日付のままでも問題ないので1を掛ける必要はありません。 しかし、この日付をいろいろな計算に使用する場合は、一般的にシリアル値という連続数字(表示形式は自由に変更できる)に変換するほうが自由度が高くお勧めです。 そのために、数式の結果である「エクセルが日付と認識できる形で表示された」文字列日付に1を掛けて実際の「数値」型の日付に変換させています。 これはエクセルがシリアル値と認識できる形の文字列(時刻や日付)を加減乗除すると、エクセルが気を利かせて日付や時刻と判断して計算してくれる機能を利用していますので、1を掛けるのではなく、例えば0を足してもよいことになります。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.8

回答No5です。No5ではA1セルがS620115のように入力されていた場合を答えてしまいました。 単にA1セルに620115と入力されている場合には昭和で良いのでしょうが例えば平成24年1月15日と昭和24年1月15日の場合にはどちらも240115となって区別がつきません。 そこで区別が分かるようにもう一つ数字を頭に追加して、昭和の場合は1、平成の場合には2のように入力してはどうでしょう。 平成24年1月15日の場合には2240115、昭和24年1月15日は1240115といった入力になります。 それらの数値がA1セルにあるとしたらB1セルには次の式を入力します。 =VALUE(IF(LEFT(A1,1)="1","S","H")&TEXT(MID(A1,2,6),"0-00-00")) 又は =(IF(LEFT(A1,1)="1","S","H")&TEXT(MID(A1,2,6),"0-00-00"))*1 この式では頭に1以外の文字が有った場合には2とは限らずに平成となります。 下の式で1を掛けているのは文字列を数値に変換するためです。VALUEと同じ意味になります。 なお、回答No4さんの270000以上ではSにそれより小さければHにするとの意味は27年以上の年では昭和にして26年以下の年では平成にしなさいとの意味を含んでいます。昭和24年1月15日は平成になってしまいます。

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.7

エクセルの日付はシリアルナンバーという西暦表現です。 ・昭和の年を西暦にするには1925を加算します ・平成の年を西暦にするには1988を加算します 従って6ケタの数字がA1として 前半の昭和は =DATE((LEFT(A1,2)+1925),MID(A1,3,2),RIGHT(A1,2)) 後半の平成は =DATE((LEFT(A1,2)+1988),MID(A2,3,2),RIGHT(A2,2)) 如何ですか

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

=IF(A1="","",1*(IF(A1>260000,"S","H")&TEXT(A1,"0-00-00"))) セルの書式設定を和暦の日付に設定する とかでいいです。

omom11
質問者

お礼

シンプルな数式で、大変参考になりました。 回答ありがとうございました。 よろしければ、数式の中の260000の意味と、1をかける意味を教えていただけませんか?

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.3

そこまでいってるならもう終わったようなものですね あと一歩!! Datevalue関数で¨S62.01.15¨を くくってみてください。 ちゃんと日付けの値にしてくれると思いますよ。 別のやり方としては ¨620115¨の場合 =DATE(year(VALUE(MID(A1,1,2))),mont(VALUE(MID(A1,3,2))),day(VALUE(MID(A1,5,2)))) 620115の場合 =DATE(year(MOD(INT(A1/POWER(10,(3-1)*2),POWER(10,(3)*2))),MONTH(MOD(INT(A1/POWRE(10,(2-1)*2),POWER(10,(2)*2))),DAY(MOD(INT(A1/POWER(10,(1-1)*2),POWER(10,(1)*2)))) H62/1/15と入れても 認識してくれますよ。 お役に立てていたならば幸いです。

omom11
質問者

お礼

ご丁寧な回答ありがとうございます。 色々な方法がある事が分かり、大変参考になります。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

参考までに、 少し手間が増えるかもしれませんが、「620115」と数字が入力されているセルをまとめて直接日付シリアル値に変更したいなら以下のような操作で変換することができます。 どこかのセルに「19250000」と入力しておき、このセルをコピーし、昭和の数字のデータ範囲を選択し、右クリック「形式を選択して貼り付け」で「加算」します。 同様に平成の日付範囲を選択し「19880000」を加算して、この数字日付列を選択して「データ」「区切り位置」で「次へ」「次へ」で「日付」にチェックを入れ「完了」してください。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

例えばA1セルに日付が入力されている場合、平成2年12月25日は「21225」と入力して、昭和25年以前のデータが無い条件なら以下の式を入力して、セルの書式を日付にすればご希望の表示ができます。 =(IF(INT(A1/10000)<25,"H","S")&INT(A1/10000)&"."&MOD(INT(A1/100),100)&"."&MOD(A1,100))*1

omom11
質問者

お礼

早速のご回答、本当にありがとうございます。 この様な方法があるのかと目からウロコでした。 (もう一つの回答の方法も是非使わせていただきます。) 教えていただいた数式ですが、最後に1をかけるのはどうしてですか? 良かったら教えていただけますか?