• ベストアンサー

エクセルの表示を変更する

エクセル2007を使用しています。 A列に6けたの数値が入力されています。 例えば、290527(平成29年5月27日という意味です)。これをB列に170527と表示したいのです。つまり和暦を西暦(下2桁)に変更したいのです。 質問の意図が不明でしたらご指摘ください。 よろしくお願いします。

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

  • ベストアンサー
回答No.1

単純に  290527-120000=170527 ではダメなのでしょうか?

taka1012
質問者

お礼

早速のご回答ありがとうございます。 ご教示いただいた方法で解決しました。

その他の回答 (2)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>例えば、290527(平成29年5月27日という意味です)。 Excelで日付を数字のみの6桁で表記するのはアブノーマルです。 開始日から終了日までの日数を計算するときどのようにされているのですか? >これをB列に170527と表示したいのです。 Excelで扱う日付は西暦1900年1月1日を1として、それからの経過日数を西暦や和暦で表示することになっています。 平成29年5月27日はH29.5.27のようになり、実際の値は42882です。 表示形式を西暦のすると2017/5/27のようになりますが、17/05/27と言う表示形式も設定できます。また、170527にすることもユーザー定義で可能になります。 別のソフトからテキストデータを読み込む場合は関数を使ってExcelで扱う日付の値(シリアル値)に変換すべきでしょう。 =DATEVALUE("h"&INT(A1/10000)&"."&INT(MOD(A1,10000)/100)&"."&MOD(A1,100)) または =DATE(20&LEFT(A1,2)-12,MID(A1,3,2),RIGHT(A1,2))

taka1012
質問者

お礼

ご回答ありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

こんな質問が出るのはエクセルの日付シリアル値のことを、十分わかっていないからと思う。Googleででも調べて、勉強してください。 「日付として許される形式の日付入力」ーー>エクセルが自動で日付シリアル値に変換(x)ーー>とりあえず既定の日付表示形式でシートのセルに表示 すべては、セルの値として設定された、この日付シリアル値Xから始まります。 もしエクセルのシートに、数字文字列で入っている場合は、一旦関数で日付シリアル値に変えて、(Xの値を出発点として)その後の処理を考えること。 エクセル関数の引数は、ほぼすべて日付シリアル値の入ったセルを対象にしますから。 (1)関数を使って、年や月た日を取り出したり    日付計算をしたり曜日を割り出したりします。    日付間隔や何日後・前の問題は、日付シリアル値の仕組みから   引き算、足し算で済みます。 日付シリアル値から、暦の文字列にする場合は、表示形式を指定して、TEXT関数を使います。 (2)また普通は、セルの値はそのままにして、表示形式の表現力を使って、西暦ー和暦とかの見てくれだけの変換ができて、それを使います。 決して計算をして変換をしない方がよい。和暦の代替わりの日まで考慮した、我流の日付計算などは大変で、十分なテストが必要で、使うと危険です。 ーー 本件は6桁数字でセルに入っているようだが、日付シリアル値の数とは、全くちがうので、数字の前から2けたを年数字、続く2桁を月数字、最後の2桁を日と考えて、日付シリアル値に直さないとなりません。 また元データは平成の意味なので「平成」の文字を付けて、日付文字列を日付シリアル値に変える関数DATEVALUEを使う。「H」は使えないよだが? A1  290527  <=元データ B1の式 =DATEVALUE("平成" & MID(A1,1,2) &"年" &MID(A1,3,2) &"月" & MID(A1,5,2)&"日") これで日付シリアル値をエクセルが返し、数字42882になる。 これをセルの日付の表示形式のユーザー定義で、yymmddで設定すると 170527と表示される。 この場合、セルの値は日付シリアル値のままです。 文字列にしたい場合は =TEXT(C1,"yymmdd")で170527になります。

taka1012
質問者

お礼

ご回答ありがとうございます。